Цикл с предусловием 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. Вывести число, цифры которого записаны в обратном порядке.
2. Дано натуральное число N. Вывести на экран все цифры числа в прямом порядке, т.е., если N=4378519, то на выходе: 4 3 7 8 5 1 9.
Задание 2. Дано натуральное число N. Вывести число, цифры которого записаны в обратном порядке.
Указание: выделяя цифры числа, найдем число M, цифры которого записаны в обратном порядке.
Тесты Посмотреть решение
2. Дано натуральное число N. Выбросить из записи числа N все цифры, равные 1, оставив при этом прежним порядок остальных цифр. Например, число 321481 преобразуется в число 3248.
3. Приписать к исходному числу n такое же число. Например, из числа 1903 должно быть получено число 19031903.
4. Дано натуральное число N. Выбросить из записи числа N все четные цифры.
Экспериментальный раздел работы
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.