| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Интересная задача, помогите решить |
| Автор: Mcicool 14.10.2005, 22:05 |
| Вводится последовательность чисел. Признак конца ввода - число 100. Записать алгоритм решения следующей задачи. 1. Нахождения количества чисел в последовательности. 2. Нахождения суммы последовательности чисел. 3. Нахождения произведения последовательности чисел. 4. Нахождения максимального числа последовательности чисел. |
| Автор: Zero 14.10.2005, 22:12 | ||||||||||||||||
Если эта последовательность перечисляется через запятые или пробелы, то подсчтать их кол-во и минус один.
А там в начале создаёшь переменную типа реал:
а далее к в цикле прибавляешь к S соответствующие значения:
Тоже самое, но вот так:
А тут вот типа такого:
далее в цикле: проверяешь, если следующее число последовательности больше текущего Max, тогда Max, присвоит то самое число... |
| Автор: Mcicool 14.10.2005, 22:18 |
| Я не понимаю, как задать эту последовательность. Как ее задать в описательной части программы? |
| Автор: Mal Hack 14.10.2005, 22:24 |
| Объявляешь массив от 1 до 100, к примеру. делаешь ввод элементов массива в цикле от 1 до 100. После readln( x[i] ); делаешь проверку: if x[i] = 100 then begin n := i; break; end; Ну и затем при рассчетах используешь N как кол-во элементов в массиве (последовательности). |
| Автор: maxim1000 14.10.2005, 22:34 | ||
ну... без массива тут можно обойтись... просто хранить искомые значения (минимум, среднее, ... что там еще) и обновлять их при вводе каждого числа... после 100 - выводить... |
| Автор: Mal Hack 14.10.2005, 22:41 | ||
Ну это да, но я так понимаю человеку надо на учебу, а там все-таки привычка у преподов видеть данные и т.п. Хотя, конечно, для птимальности для конкретных задач можно и не хранить. |
| Автор: Mcicool 14.10.2005, 22:49 |
| А вы не могли бы пример привести такой проги, если это не сложно. |
| Автор: Diesel Draft 15.10.2005, 01:07 | ||
Давно не писал тому могут бить ошыбкы
|
| Автор: Druidik25 17.10.2005, 13:36 | ||||||
Кстати есть небольшая поправка к такой программе. Я не видел, что было сказано, что последовательность нужна положительная поэтому код
Не должен быть так записан. Я думаю стоит ставить
Чего не может быть, а потом ставить проверку типа:
|
| Автор: Zero 18.10.2005, 07:31 | ||
Diesel Draft и Druidik25, не забываем что оператор присваивания в Паскале пишется ":=", а не "=".
Тогда условие теряет смысл, вначале, максимум, должен выбиратся самым маленьким а не большим... иначе он не будет найден. |
| Автор: Druidik25 20.10.2005, 21:14 | ||
Да забыл ещё втулить одну строку:
Эта строка всё выравняет... И сразу же повится смысл в том что я говорил... Хотя, придираться - третье дело, но если кто и будет придираться, то лучьше тут чем где сдавать работу... |
| Автор: Zero 20.10.2005, 23:50 |
| Druidik25 Прочитай мой предыдущий пост... (на счёт оператора присваивания) |