Страницы

Уроки 7, 8 Оператор цикла While

Цикл с предусловием  While имеет вид:

While логическое выражение Do оператор;

При выполнении этого оператора вначале вычисляется значение логического выражения.  Если это значение истинно, выполняется оператор, записанный после слова Do, затем значение выражения проверяется вновь и т. д., до тех пор, пока выражение не примет значение «ложь». Если выражение принимает значение «ложь» при первой же проверке, то оператор, записанный после слова Do не выполняется вообще. В операторе  обязательно изменение значений переменных, влияющих на значение логического выражения. При невыполнении этого условия получаем пример того, что называется «зацикливанием».

!!!Если условие всегда оказывается истинным, то может произойти зацикливание:
while 10>0 do write(10);

Чтобы прервать зациклившуюся программу,  следует использовать комбинацию клавиш Ctrl-F2.


Так как в операторе цикла кроме запланированных вычислений необходимо изменять значение переменной, влияющей на значение логического выражения, после слова Do записываем составной оператор:


While логическое выражение Do 
begin
оператор 1;
оператор 2;
...
end;



Пример 1. Найти сумму всех натуральных кратных 4 чисел, не превосходящих число 416.

Указание: мы будем искать сумму чисел от 4 до 416, и каждое следующее слагаемое отличается от предыдущего на 4.


program z1;

var i,s :integer; 
begin
s:=0;
i:=4;
while i<=416 do
begin
s:=s+i;
i:=i+4;
end;
writeln(s);
end.


Задание 1. Подсчитать количество цифр в десятичной записи целого неотрицательного числа N.

Указание: будем делить число на 10 до тех пор, пока не останется ни одной цифры. В переменную K будем заносить количество цифр.


       Тесты         Посмотреть решение       

Экспериментальный раздел работы

1. Дано натуральное число N. Вывести на экран все цифры числа в обратном порядке, т.е., если N=4378519, то на выходе: 9 1 5 8 7 3 4.

2. Дано натуральное число N. Вывести на экран все цифры числа в прямом порядке, т.е., если N=4378519, то на выходе: 4 3 7 8 5 1 9.



Задание 2. Дано натуральное число N. Вывести число, цифры которого записаны в обратном порядке.

Указание: выделяя цифры числа, найдем число M, цифры которого записаны в обратном порядке.


       Тесты         Посмотреть решение       

Экспериментальный раздел работы

1. Дано натуральное число N. Определить является ли оно палиндромом.

2. Дано натуральное число N. Выбросить из записи числа N все цифры, равные 1, оставив при этом прежним порядок остальных цифр. Например, число 321481 преобразуется в число 3248.


3. Приписать к исходному числу n такое же число. Например, из числа 1903 должно быть получено число 19031903.


4. Дано натуральное число N. Выбросить из записи числа N все четные цифры.



Материал для чтения

Процедуры dec и inc упрощают запись выражения A:=A-B и A:=A+B соответственно.
Dec(a,b)- уменьшает величину а на b;
Inc(a,b)- увеличивает величину а на b;
Если b не указано, его считают равным 1.


Задания

1. Найдите ошибки.
А) k :=1; f:= 0;
While к<n Do f=f*k
к:=к + 1 ;

Б) Р: =2;
While р>=0 Do Begin
а:=a+р;
р: =р +2
End;

2. Определите значения переменных а и b после выполнения операторов:
а: =1 ; b:=1;
While а<=3 Do а:=а+1; b:=b+1.

3. Дана последовательность операторов: а:=1; b:=1;
While a+b<8 Do Begin a:=a+1; b:=b+2 End;
S:=a+b
Сколько раз выполняется проверка логического выражения в операторе While? Определите значения переменных а, b и s после завершения этой последовательности операторов?


Задания для самостоятельной работы

1. Определите значение переменной s после выполнения следующих операторов:
• s:=0; i:=0; While i<5 Do inc(i); s:=s+100 Div i;
• s:=0; i:=1; While i>1 Do Begin s:=s+100 Div i; dec(i) End;

2. Найдите и исправьте ошибки в следующем фрагменте программы, определяющей для заданного натурального числа n число, записанное цифрами числа n в обратном порядке.
р : =n ;
While р>=0 Do Begin
а:=a+р Mod 10;
р: =р Div 10
End;

3. Найти минимальное число, большее 300, которое нацело делится на 19.

4. Поменять местами первую и последнюю цифры числа. Например, из числа 8547 должно быть получено число 7548.

5. Дано натуральное число N. Выбросить из записи числа N все цифры, равные 1 и 5, оставив при этом прежним порядок остальных цифр. Например, число 35145581 преобразуется в число 348.



Тест