Цикл с предусловием
Цикл с предусловием используется для
программирования процессов, в которых
число повторений оператора цикла не
известно, а задается некоторое условие его
окончания.
Оператор цикла с
предусловием
|
while <условие> do <тело
цикла>;
|
Примечание. К уроку можно
подготовить таблицу с конструкцией
оператора цикла с предусловием (цикл while).
Выполнение оператора цикла с
предусловием начинается с проверки условия,
записанного после слова while. Если оно
соблюдается, то выполняется <тело цикла>,
а затем вновь проверяется условие и т.д. Как
только на очередном шаге окажется, что
условие не соблюдается, то выполнение <тела
цикла> прекратится.
Подсчёт количества цифр начнём с
последней цифры числа. Увеличим счётчик
цифр на единицу. Число уменьшим в 10 раз (тем
самым мы избавляемся от последней цифры
числа). Далее с получившимся числом
проделаем ту же последовательность
действий и т. д., пока число не станет равным
нулю .
Примечание:
- Если <тело цикла> состоит из
нескольких операторов, то они
объединяются операторными скобками.
- В теле цикла обязательно должен быть
оператор, влияющий на соблюдение условия,
в противном случае произойдет
зацикливание.
Пример:
Дано натуральное число n. Подсчитать
количество цифр данного числа.
Решение
Подсчет количества цифр начнем с
последней цифры числа. Увеличим счетчик
цифр на единицу. Число уменьшим в 10 раз (тем
самым мы избавляемся от последней цифры
числа). Далее с получившимся числом
проделаем ту же последовательность
действий и т.д., пока число не станет равным
нулю.
Program Exampl_8;
Var m, n: Longint;
k: Integer; {счетчик цифр}
Begin
Writeln('Введите целое число); {вводим целое
число n}
Readln(n);m:n;
k:=0;<ик> Writeln('В числе' n,' - ',k,' цифр!); {вывод
количества цифр}
Readln;
End.
Трассировка примера
Рассмотрим выполнение этой программы в
пошаговом режиме для числа 65387:
n
|
m
|
k
|
65387
|
65387
|
0
|
65387
|
6538
|
1
|
65387
|
653
|
2
|
65387
|
65
|
3
|
65387
|
6
|
4
|
65387
|
0
|
5
|
В результате работы программы на экране
появится предложение:
В числе 65387 - 5 цифр!
Пример:
Дана непустая последовательность
натуральных чисел, за которой следует 0.
Составить программу поиска в данной
непустой последовательности порядкового
номера наименьшего элемента.
Решение
Обозначим через x, i - очередной член
последовательности и его номер; min, k -
минимальный член последовательности и его
номер. Считывание членов
последовательности производится до тех пор,
пока не будет введен 0, то есть пока x<>0.
Начальное значение минимума определяется
значением первого члена
последовательности. Очередное вводимое
число требуется сравнивать с текущим
значением минимума, и если текущее значение
min окажется больше очередного члена
последовательности, то его нужно изменить.
Учитывая вышесказанное, составим программу:
Program Example_9;
Var x, i, min, k : Integer;
Begin
Writeln('Введите первый член
последовательности');
Read(x); k:=1;
min:=x; i:=2;
While x<>0 Do
Begin
If x<min Then Begin min:=x; k:=i End;
Writeln (' Введите ',i,' элемент
последовательности');
Read(x); Inc(i);
End;
Writeln('Номер минимального элемента - ', k);
End.
Решение задач
- Дана последовательность операторов:
a := 1; b := 1;
while a + b < 8 do Begin a :=a + 1; b := b + 2 End;
s := a + b
Сколько раз будет повторен цикл и
какими будут значения переменных a, b
и s после завершения этой
последовательности операторов?
- Какими будут значения переменных a
и b после выполнения операторов:
a := 1; b := 1;
While a <= 3 Do a := a + 1; b := b + 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;
- Дана последовательность операторов,
вычисляющих факториал f числа n:
k := 1; f := 0:
While k<n Do f := f * k
k := k + 1;
которая содержит пять ошибок. Найдите
эти ошибки.
- Найдите и исправьте ошибки в следующем
фрагменте программы, определяющей для
заданного натурального числа n число,
записанное цифрами числа n в
обратном порядке.
p := n;
While p>=0 Do
Begin
a := a + p Mod 10;
p := p Div 10
End;
- Найти сумму цифр числа.
- Найти первую цифру числа.
- Приписать по 1 в начало и в конец записи
числа n. Например, было n=3456, стало n=134561.
- Поменять местами первую и последнюю
цифры числа.
- Поменять порядок цифр числа на обратный.
Например, было 12345, стало 54321.
- Найти количество чётных цифр целого
положительного числа.
- Найти самую большую цифру целого числа.
- Найти сумму цифр целого числа, больших 5.
- Сколько раз данная цифра встречается в
целом числе?
- Составить программу, проверяющую,
является ли последовательность из 10
целых чисел, вводимых с клавиатуры,
возрастающей.
- Составить программу, проверяющую,
является ли заданное натуральное число
палиндромом, то есть таким, десятичная
запись которого читается одинаково слева
направо и справа налево.
Содержание