Урок 21-22
Тема: Операторы цикла на Паскале. Цикл с предусловием.
Цель: познакомить учащихся с форматом оператора цикла с предусловием, учить составлять программы на использование оператора цикла с предусловием.
1.Проверка домашнего задания.
2.Самостоятельная работа.
3. Новый материал.
Оператор цикла while – цикл с предусловием
Оператор цикла while имеет следующую форму:
Тело цикла
Условие повтора
да
нет
while условие do
оператор
Условие представляет собой выражение логического типа, а оператор после do называется телом цикла. Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла.
Если условие всегда оказывается истинным, то может произойти зацикливание:
while 2>1 do
write(1);
Чтобы прервать зациклившуюся программу, следует использовать комбинацию клавиш Ctrl-F2
Точка с запятой сразу после do в Pascal ABC считается синтаксической ошибкой.
4.Решение задач.
Задача 1. Вычислить 12+32+…+252.
program z2;
uses crt;
var i:integer; s: longint;
begin
s:=0; i:=1;
while i<=25 do begin s:=s+sqr(i); i:=i+2; end;
writeln (s);
end.
Задача 2. Найти НОД(а, b).
program z1;
uses crt;
var a, b: integer;
begin
read (a, b);
while a<>b do
if a>b then a:=a-b else b:=b-a;
writeln (a);
end.
Задача 3. Даны натуральные числа a и b, обозначающие соответственно числитель и знаменатель дроби. Сократить дробь, т.е. найти такие натуральные числа p и q, не имеющие общих делителей, что p / q = a / b.
program z1;
uses crt;
var a,b,m,n:integer; p,q: real;
begin
read (a,b);
m:=a; n:=b;
while m<>n do
if m>n then m:=m-n else n:=n-m;
p:= a/m;
q:= b/m;
writeln(p,'/',q);
end.
Задача 4. Среди чисел 1, 4, 9, 16, 25, … найти первое число, большее n.
program z1;
uses crt;
var i, n: integer;
begin
read (n);
i:=1;
while sqr(i)<n do
i:=i+1;
writeln (sqr(i));
end.
Задача 5. Определить количество цифр в числе.
program z1;
uses crt;
var n,i: integer;
begin
readln (n);
i:=0;
while n <>0 do
begin
n:= n div 10;
i:=i+1; end;
write (i);
end.
5. Итог урока.
6. Домашнее задание.
Задача 1. Дано число n.
a) напечатать те натуральные числа, квадрат которых не превышает n.
b) найти первое натуральное число, квадрат которого больше n.
a) program z1;
uses crt;
var i, n: integer;
begin
read (n);
i:=1;
while sqr(i) < n do
begin writeln (i); i:=i+1; end;
end.