шпаргалка

38, 39, 40. Операторы циклов

[ Назад ]

Цикл- это многократно повторяющаяся последовательность операторов. Один повтор такой последовательности называется итерацией цикла. В Паскале имеется три типа циклов: repeat, while и for.

Синтаксис оператора repeat: repeat операторы until логическое выражение

Между служебными словами repeat и until помещаются операторы программы, выполняемые на каждой итерации цикла (слова repeat и until образуют блок). После каждой итерации цикла проверяется it логическое выражение. Если оно истинно, то итерации прекращаются.

Оператор while имеет следующий синтаксис: while логическое выражение do оператор

Здесь логическое выражение проверяется перед каждой итерацией цикла. Если это условие ложно, то итерации прекращаются. По синтаксису тело цикла while состоит из одного оператора. Поэтому, если в теле цикла необходимо поместить несколько операторов, то их следует заключить в блок. Имеются две формы оператора for:

for p:= выр1 to выр2 do оператор

for p:= выр1 downto выр2 do оператор

Значение переменной цикла p изменяется в пределах от выр1 до выр2 , в первом варианте увеличиваясь, а во втором- уменьшаясь на единицу после каждой итерации. По синтаксису тело цикла for состоит из одного оператора. Поэтому, если в теле цикла необходимо поместить несколько операторов, то их следует заключить в блок .



Переменная цикла for может иметь любой перечислимый тип. Начальное и конечное значения этой переменной, задаваемые в заголовке цикла for, должны иметь тот же тип, что и переменная цикла.

Примеры циклов

1. Пусть требуется сложить произвольные вводимые пользователем числа до тех пор, пока их сумма не превысит 1000. Мы запрограммируем эту задачу с помощью циклов repeat и while. Сумму будем накапливать в переменной sum, а очередное число помещать в переменную a. Эти переменные могут быть как целыми, так и вещественными. С помощью цикла repeat этот алгоритм записывается так:

sum := 0;

repeat

write(' Введите число ');

read(a);

sum := sum + a

until sum > 1000;

writeln(' Сумма равна ',sum)

а с помощью цикла while так:

sum := 0;

while sum <= 1000

begin

write ('Введите число ');

read(a);

sum := sum + a

end;

writeln(' Сумма равна ',sum)

2. Пусть теперь требуется посчитать сумму квадратов целых чисел от единицы до n. Для этого воспользуемся циклом for:

sum := 0;

for i:=1 to n do

sum := sum + sqr(i);

writeln('Сумма равна ',sum)

Здесь все переменные должны быть целыми.

3. Теперь вычислим факториал числа n, который определяется как произведение чисел от 1 до n. По определению факториал нуля равен единице. Вычисления выполняем с помощью цикла for:

factorial := 1;

for i:=1 to n do

factorial := factorial * i;

writeln(n,'! = ', factorial )

Для переменной factorial лучше выбрать тип real , поскольку факториал числа- очень быстро растущая функция.

4. Наконец, в последнем примере напечатаем на экране латинские буквы от Z до A . Мы воспользуемся тем, что коды этих букв во всех кодировках идут подряд. Применим цикл for в варианте downto:

for symbol:='Z' downto 'A' do

write ( symbol );

writeln

Переменная цикла symbol здесь должна иметь символьный тип.







































КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |