Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция3_циклы.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
76.29 Кб
Скачать

Пример 4.1.1п. Операторы цикла. Часть I.

Вычислить и вывести на экран первые N чисел Фибоначчи. Числа Фибоначчи образуют последовательность, в которой очередной элемент равен сумме двух предыдущих, а первые два равны единице.

Сначала определимся, какие переменные понадобятся при написании программы. Понадобиться переменная N (количество чисел Фибоначчи), которая будет целого типа, а ее значение будет задаваться с клавиатуры. Понадобятся еще три переменные: f1 и f2 - значения двух предыдущих чисел Фибоначчи, а так же переменная fnew, в которую будет записываться новое значение, найденное через два предыдущих. Эти переменные так же будут целого типа. Так как первые два числа известно, что равны единице, то, тогда в начале исполняемой части зададим первые два значения через оператор присваивания, а далее организуем цикл, в котором на каждом витке цикла будет высчитываться новое значение числа Фибоначчи через два предыдущих, а затем сразу же выводиться на экран. Этот цикл будет повторяться (N-3+1) раз, так как нужно вычислить оставшиеся числа, начиная с 3 и до N. Как видно, в данном случае заранее можно подсчитать количество витков цикла, поэтому целесообразно использовать арифметический оператор цикла. Следовательно, понадобиться еще одна переменная, которая будет выступать в качестве счетчика цикла, обозначим ее i. Она будет тоже целого типа, так как счетчик цикла - переменная порядкового типа, и в данном случае она будет принимать целые значения, начиная с 3 и до N. Таким образом, получим следующую программу.

Var n,f1,f2,fnew,I:integer; {раздел описания переменных,

в котором регистрируется переменные N,f1,f2,fnew,i - типа integer}

begin {начало раздела операторов}

readln(N); {задание значения N через оператор ввода}

f1:=1; f2:=1; {присвоение первоначальных двух чисел Фибоначчи}

write(f1,' ',f2,' '); {вывод на экран первоначальных двух чисел Фибоначчи}

for i:=3 to N do {цикл для вычисления остальных чисел Фибоначчи}

begin {начало составного оператора}

fnew:=f1+f2; {вычисление нового значения через 2 предыдущих}

f1:=f2; {переопределение пред предыдущего значения}

f2:=fnew; {переопределение предыдущего значения}

write(fnew,' '); {вывод на экран вновь вычисленного числа Фибоначчи}

end; {конец составного оператора}

readln; {ожидание нажатия клавиши Enter}

end. {конец программы}

Пример 4.1.2п. Операторы цикла. Часть I.

Вычислить время (в часах), через которое будет не менее N амеб, если известно, что в начале имеется 1 амеба, и амеба делится пополам каждые 3 часа.

Сначала определимся, какие переменные понадобятся при написании программы. Понадобиться переменная N - требуемое количество амеб, которая будет целого типа, а ее значение будет задаваться с клавиатуры. Понадобится еще две переменные: переменная a - будет отвечать за текущее количество амеб, переменная t - за время прошедшее с начала эксперимента. Эти переменные так же будут целого типа. Так как заранее сложно сказать, сколько будет витков цикла, то в данном случае удобно воспользоваться оператором цикла с предусловием либо постусловием. В рамках которых, на каждом витке цикла будет происходит очередное деление амеб, а следовательно время будет увеличиваться на 3 часа. Тогда получается, что повторяющиеся действия это: деление амеб и увеличение времени на 3 часа. Воспользуемся оператором цикла с предусловием, а так как в теле цикла нужно будет выполнять 2 оператора (вычисление времени и нового количества амеб), то для объединения их в один воспользуемся составным оператором. Тогда программа будет выглядеть следующим образом.