
- •Тема 3. Ветвящиеся алгоритмы (оператор выбора)
- •Пример 3.1п. Оператор выбора. Часть I.
- •Тема 4. Циклические алгоритмы (операторы цикла)
- •Пример 4.1.1п. Операторы цикла. Часть I.
- •Var n,f1,f2,fnew,I:integer; {раздел описания переменных,
- •Пример 4.1.2п. Операторы цикла. Часть I.
- •Var a,t,n:integer; {раздел описания переменных,
- •Часть II
- •Пример 4.2п. Операторы цикла. Часть II.
- •Пример 4
Пример 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 оператора (вычисление времени и нового количества амеб), то для объединения их в один воспользуемся составным оператором. Тогда программа будет выглядеть следующим образом.