Урок 11
Тема: «Длинные целые числа. Циклы с предусловием»
1. Длинные целые числа.
Кроме обычных целых чисел, можно использовать так называемые длинные числа, которые могут принимать значения из большего диапазона. Переменные соответствующего типа описываются посредством идентификатора Longint и могут принимать значения в диапазоне от –2 до 2
2. Цикл с предусловием.
Цикл с предусловием используется тогда, когда число повторений оператора цикла заранее не известно, а задается некоторое условие продолжения цикла.
While <условие> Do <тело цикла>;
Выполнение оператора цикла с предусловием начинается с проверки условия, записываемого после оператора While. Если оно соблюдается, то выполняется <тело цикла>, затем вновь проверяется условие и т. д. Как только при очередной проверке окажется, что условие не соблюдается, <тело цикла> выполняться не будет.
Примечание
1. Если <тело цикла> состоит из нескольких операторов, то они объединяются операторными скобками.
2. В теле цикла обязательно должен быть оператор, влияющий на соблюдение условия, в противном случае произойдет зацикливание.
Пример 1
Подсчитать количество цифр заданного натурального числа n.
Решение
Подсчет количества цифр начнем с последней цифры числа. На очередном шаге цикла увеличим счетчик цифр на единицу, а число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий и т. д., пока число не станет равным нулю.
Program Example_1;
Var m, n: Longint;
K: Integer;
Begin
Writeln(‘Введите натуральное число’);
Readln(n); m:=n;
K:=0;
While m<>0 Do
Begin
Inc(k); {k:=K+1;}
m:=m div 10; {выбрасываем последнюю цифру}
End;
Writeln(‘В числе ’, n,’–‘,K,’ цифр’);
Readln;
End.
Пример 2
Дана непустая последовательность натуральных чисел, за которой следует 0. Найти порядковый номер наименьшего элемента последовательности.
Решение
Обозначим через x и i очередной элемент последовательности и его номер; min и k – минимальный элемент последовательности и его номер. Считывание элементов последовательности производится до тех пор, пока не будет введен 0, т. е. пока x<>0. Начальное значение минимума определяется значением первого элемента последовательности. Очередное вводимое число требуется сравнивать с текущим значением минимума, и если текущее значение min окажется больше очередного элемента последовательности, то min нужно изменить, а номер очередного элемента последовательности – запомнить.
Program Example_2;
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-1 End;
Writeln(‘Введите ’,i, ‘элемент последовательности’);
Read(x);
Inc(i);
End;
Writeln(‘Номер минимального элемента - ’, k);
Readln;
End.
Домашнее задание: 1. Найти сумму цифр числа.
2. Найти старшую цифру числа.


