Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оператор цикла






 

В Паскале 3 вида оператора цикла: цикл с предусловием, цикл с постусловием ицикл с фиксированным числом шагов.

1. Цикл с предусловием:

 
 


Логическое выражение в заголовке цикла является условием возобновления цикла, то есть, пока оно истинно, выполняется оператор - тело цикла. Если при входе в цикл логическое выражение ложно, то тело цикла не выполнится ни разу.

Опишем программу для нахождения наибольшего общего делителя двух чисел, используя алгоритм Евклида.

Program LCD;

var a, b, m, n, r: word;

begin

write(‘Введите два натуральных числа. ’); read(a, b);

m: = a; n: = b; {для сохранения исходных данных}

r: = a mod b;

while r < > 0 do

begin

{Тело цикла - составной оператор, содержащий три оператора}

a: = b; b: = r; r: = a mod b

end;

writeln(‘НОД(’, m, ‘, ’, n, ‘)=’, b)

end.

2. Цикл с постусловием:

 

 


Телом цикла с постусловием является последовательность операторов между ключевыми словами repeat и until. Логическое выражение представляет собой условие выхода из цикла, то есть тело цикла выполняется до тех пор, пока значение логического выражения ложно. Как только оно станет истинным, происходит выход из цикла. Так как условие выхода из цикла проверяется после выполнения тела цикла, тело цикла с постусловием выполняется хотя бы один раз.

Опишем программу для решения следующей задачи. С клавиатуры вводится последовательность символов. Признак конца ввода - точка. Определить количество введенных цифр. Вводимую последовательность не хранить.

 

Prоgram digits_sum;

Var ch: char; sum: word;

Begin writeln(‘Введите текст, оканчивающийся точкой.’);

sum: =0;

repeat {начало цикла}

read(ch); {считывание очередного символа}

if (ch > =’0’) and (ch < = ‘9’) {если символ - цифра}

then sum: = sum + 1; {увеличиваем счетчик}

until ch = ’. ’; {выход из цикла после считывания точки}

writeln(‘ Число цифр в тексте= ‘, sum)

end.

 

3. Цикл с фиксированным числом шагов:

 
 

 


-

 

В приведенной диаграмме оператор представляет собой тело цикла. Перед телом цикла - заголовок цикла. Идентификатор после ключевого слова for называется управляющей переменной или параметром цикла. Управляющая переменная должна иметь упорядоченный тип, совместимый по присваиванию с первым (начальным) и вторым (конечным) выражениями в заголовке цикла. Следовательно, начальное и конечное выражения также должны быть упорядоченного типа.

Значения начального и конечного выражений вычисляются один раз при входе в цикл. Цикл for является циклом с предусловием. При входе в цикл управляющей переменной (назовем ее i) присваивается значение начального выражения (обозначим его bn). Затем i сравнивается со значением конечного выражения (обозначим его bk). Если i£ bk для цикла с ключевым словом to или i³ bk для цикла с ключевым словом downto, то выполняется тело цикла. После чего изменяется значение i: для цикла с ключевым словом to i: =succ(i), для цикла с ключевым словом downto i: =pred(i). И снова i сравнивается с bk. Если условие возобновления цикла не выполняется, то происходит выход из цикла. Алгоритм работы цикла for можно описать блок-схемами.

1) for i: = bn to bk do < оператор> 2) for i: = bn dounto bk do < оператор>

 

В теле цикла for нельзя изменять параметр цикла. Так как начальное и конечное выражения вычисляются только один раз при входе в цикл, то изменение bn и bk на количество повторений не влияет. После выхода из цикла for значение параметра цикла считается неопределенным.

 

Пример 1. Последовательность Фибоначчи задается рекуррентно:

f1=1, f2=1,

fi = fi-2+ fi-1 для i> 2.

Определить n-й член последовательности.

Программа для нахождения fn:

 

Program Fibonacci;

Var f1, f2, f3: longint; i, n: word;

Begin write(‘Введите n’); read(n);

f1: = 1; f2: = 1;

for i: = 3 to n do

begin

f3: = f1+f2; f1: = f2; f2: = f3

end;

writeln(n, ‘-ое число Фибоначчи=’, f2)

end.

 

17. СТИЛЬ ЗАПИСИ ПРОГРАММЫ

 

При создании понятных, удобочитаемых программ большое значение имеет стиль записи программы. Стандарта для стиля записи нет, но можно дать некоторые рекомендации:

1. Основные части программы разделять пустыми строками.

2. Служебные слова, которыми начинается и заканчивается оператор, располагать одно под другим, начиная с одной позиции по вертикали.

3. Операторы одного уровня вложенности начинать с одной позиции по вертикали.

4. Вложенные операторы записывать с некоторым смещением вправо.

5. Включать в программу комментарии.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.