Мы с вами неоднократно возвращаемся к предмету программирования как аналитическому материалу, позволяющему расширить и углубить способности каждого, возможно, и заинтересовать для дальнейшего выбора специальности.
Современный человек не представляет себе жизнь без компьютера, редко вспоминая о том, что программное обеспечение было когда – то и кем – то написано, и мы с вами пользуемся плодами работы этих людей.
Предлагается создание программ, телом которых является цикл.
Цикл – это многократное повторение последовательности действий по некоторому условию. Любой цикл состоит из тела и заголовка. Тело цикла – это набор повторяющихся операторов, а условие – это логическое выражение, в зависимости от результата которого происходит повторное выполнение цикла.
Известны три типа циклических алгоритмических структур: цикл с предусловием, цикл с постусловием и цикл с параметром. Паскаль реализует все три типа циклов.
Цикл с предусловием (цикл – пока) – наиболее универсальная циклическая структура. Реализуется оператором While.
Формат оператора:
While <логическое выражение> do <тело цикла>
Пока значение логического выражения – true, выполняется тело цикла; как только условие становится false, выполнение цикла прекращается.
Если используем несколько операторов в коде, заключаем их в операторные скобки – begin и end.
Цикл с постусловием (цикл – до) имеет формат:
Repeat <тело цикла>
until <логическое выражение>
Выполняется тело цикла до тех пор, пока условие – false, как только логическое выражение принимает значение true, выполнение цикла прекращается.
Тело цикла с постусловием выполняется хотя бы один раз. Использования begin и end для ограничения составного тела цикла не требуется.
Цикл с параметром имеет два варианта записи:
1) For I:= In to Ikdo <тело цикла>;
2) For I:= In downto Ikdo <тело цикла>.
Здесь I – параметр цикла – простая переменная, как правило, целого типа;
In и Ik - выражения целого типа, определяющие начальное и конечное значение параметра.
<тело цикла> может быть простым или составным оператором.
Цикл повторяется, пока значение параметра лежит в интервале между In и Ik. Причём эти значения вычисляются только один раз в начале выполнения цикла.
Значение параметра увеличивается на единицу (первый вариант) и уменьшается на единицу (второй вариант) при каждой итерации.
Рассмотрим решение одной задачи тремя способами.
Задача1. Вычислить сумму чётных чисел натурального ряда от 1 до N.
А)
program Project1;
var a,s,n: integer;
begin
write('n = ');
readln(n);
a:= 2;
s:= 0;
while a<=n do
begin
s:=s + a;
a:= a+2
end;
writeln(s);
readln;
end.
Б)
program Project1;
var a,s,n: integer;
begin
write('n = ');
readln(n);
a:= 2;
s:= 0;
repeat
s:=s + a;
a:= a+2
until a>n;
writeln(s);
readln;
end.
В)
program Project1;
var a,s,n: integer;
begin
write('n = ');
readln(n);
s:= 0;
for a:= 1 to n
do
begin
if a mod 2 = 0 then
s:=s + a;
end;
writeln(s);
readln;
end.
Очевидно, все три результата будут одинаковыми.
Предлагаются следующие задачи:
1.Напечатать минимальное число, большее 200, которое нацело делится на 17.
2.Гражданин 1 марта открыл счёт в банке, вложив 1000 рублей. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Через сколько месяцев размер вклада превысит 1200 рублей?
3.Вычислить сумму натурального ряда от m до n.
program Project1;
var n: integer;
begin
n:=200;
while n mod 17<>0 do
n:=n+1;
writeln(n);
readln;
end.
program Project2;
var n,s: integer;
begin
s:=1000; n:=1;
while s<=1200 do
begin
s:=1000+20*n;
n:=n+1;
end;
writeln(n-1);
readln;
end.
или
program Project2;
var n,s: integer;
begin
s:=1000; n:=1;
repeat
s:=1000+20*n;
n:=n+1;
until s>=1200;
writeln(n);
readln;
end.
program Project3;
var i,m,n,s: integer;
begin
readln(m);
readln(n);
s:=0;
for i:=m to n do begin
s:=s+i;
end;
writeln(s);
readln;
end.