1. ЦИКЛ С ПРЕДУСЛОВИЕМ или цикл "ПОКА".
Сначала проверяется условие и тело цикла выполняется ПОКА УСЛОВИЕ ИСТИННО,
если условие становится ЛОЖНЫМ, то происходит выход из цикла.
Реализуется этот цикл инструкцией:
WHILE <условие> DO <тело цикла>
while - (вайл) - пока, do - (ду) – делать (выполнять).
В тело цикла входит только один оператор! Если нужно объединить в тело цикла несколько операторов, то применяются операторные скобки begin-end.
Условие может быть простым или сложным, если применить слова: NOT, AND, OR.
Пример 1. Вывести 20 одинаковых символов на экран.
Program Simwol;
Uses crt;
var i,h,n: integer;
Begin {Действительно ли на экране 20 символов?}
clrscr; {пронумеруем символы:}
i:=1; h:=1; n:=20;
while i<=n do while i<=n do
begin begin
write('* '); writeln(i,'- * ');
i:=i+h; i:=i+h;
end; end;
readkey;
End.
Пример 2. Вывести на экран числа от 1 до 20. |
Пример 3. Вывести на экран числа от 20 до 1. |
Program Ch; |
Program Ch; |
Uses crt; |
Uses crt; |
var i,h,n: integer; |
var i,h,n: integer; |
Begin |
Begin |
Clrscr; |
Clrscr; |
i:=1; h:=1; n:=20; |
i:=20; h:=-1; n:=1; |
while i<=n do |
while i>=n do |
begin |
begin |
write(i,' '); |
write(i,' '); |
i:=i+h; |
i:=i+h; |
end; |
end; |
readkey; |
readkey; |
End. |
End. |
Пример 4. Вывести на экран числа, оканчивающиеся на 7 на интервале от -100 до 100.
Program Ch;
Uses crt;
var i,h,n: integer;
Begin
clrscr;
i:=-100; h:=1; n:=100;
while i<=n do
begin
if i mod 10=7 then write(i,' ');
i:=i+h;
end;
readkey;
End.
нечетные: if odd(i) then write(i,' ');
четные: if not(odd(i)) then write(i,' ');
делящиеся на 7: if i mod 7=0 then write(i,' ')
нечетные и делящиеся на 7: if (odd(i)) and (i mod 7=0) then write(i,' ');
Пример5. Найти сумму ряда: 1, 2, ..20.
Тип переменной S может быть integer, если сумма чисел не более 32767.
Program Summa;
Uses crt;
var i,n,h,s: integer;
Begin
clrscr;
i:=1; n:=20; h:=1; s:=0; { s:=0 -обнуление суммы }
while i<=n do
begin
s:=s+i; { процесс суммирования }
i:=i+h;
end;
write('Сумма чисел натурального ряда от 1 до 20 равна ',s);
readkey;
End.
Пример 6. Найти сумму ряда: 0.1, 0.3, 0.5, .. , 32.5
Program Summa;
Uses crt; { s - сумма }
var x,h,n,s: real; { h - шаг }
Begin { x – начальное значение параметра цикла}
ClrScr; { n - конечное значение параметра цикла.}
s:=0; x:=0.1; h:=0.2; n:=32.5;
while (x<=n) do
begin
s:=s+x; { -суммирование очередного элемента }
x:=x+h; { -изменение параметра цикла на шаг }
end;
writeln('Сумма ряда: 0.1, 0.3,.., 32.5 S=',s); readkey;
End.
Пример 7. Вывести на экран таблицу функции Y=sin(х), где х изменяется от 10 до 90 градусов с шагом 5 .
Program Tabl;
Uses crt;
var x, h, n, y: real;
Begin
ClrScr;
writeln(' Таблица функции y=sin(х)');
x:=10; h:=5; n:=90;
while x<=n do
begin
y:=sin(x*pi/180);
writeln('X=',x,' Y=',y);
x:=x+h;
end;
readkey;
End.
З А Д А Н И Я:
1. Найти сумму ряда: 5.6, 5.9, .. ,9.7
2
2. Получить таблицу функции y=cos(5?х), где х изменяется от 1 до 10 с шагом 0.5
3. Найти произведение чисел от 6.7 до 7.8 с шагом 0.4
4. Сравнить, что больше сумма ряда 8.5, 8.6,...,40.9 или произведение чисел от 1 до 3 с шагом 0.25