Мегаобучалка Главная | О нас | Обратная связь


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



2018-07-06 521 Обсуждений (0)
Оператор цикла с параметром 0.00 из 5.00 0 оценок




служит для повторения последовательности операторов, когда известно количество повторений. Имеются два формата:

for<параметр>:=<выражение1>to<выражение2>do<тело цикла>;

for<параметр>:=<выражение1>downto<выражение2>do<тело цикла>;

гдеfor, to , downto, do - служебныеслова,

<параметр> - любая переменная порядкового типа;

<выражение1> - любое выражение порядкового типа, задающее в первом формате начальное значение параметра цикла, а во втором формате - конечное значение;

<выражение2> - любое выражение порядкового типа, задающее в первом формате конечное значение параметра цикла, а во втором формате - начальное значение;

<тело цикла> - последовательность повторяющихся операторов.

 

ИСПОЛНЕНИЕ ОПЕРАТОРА ЦИКЛА С ПАРАМЕТРОМ For … to ПО ШАГАМ:

Параметру присваивается начальное значение (результат выражения1);

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

Выполняется тело цикла, стоящее после do;

Работает счетчик цикла, т.е. значение параметра увеличивается на 1, и переходим к шагу 2.

БЛОК-СХЕМА ОПЕРАТОРА ЦИКЛА С ПАРАМЕТРОМ For … to:

Примечания.

1. Выполнение оператора цикла с параметром For … downto почти такое же, как и оператора For … to, но есть два существенных отличия:

1) условие выполнения цикла другое: параметр должен быть больше или равен выражения2.

2) счетчик цикла другой: значение параметра уменьшается на 1 (параметр=параметр-1).

2. В этом операторе цикла главную роль играет параметр и неявно работает счетчик (т.е. к параметру прибавляется или отнимается единица), поэтому этот оператор цикла называют оператор цикла с параметром или со счетчиком.

3. Параметр можно описать непосредственно в заголовке цикла:

for<параметр>:<тип>:=<выр.1>to<выр.2>do<тело цикла>;

или

for<параметр>:<тип>:=<выр.1>downto<выр.2>do<тело цикла>;

или

forvar<параметр>:=<выр.1>to<выр.2>do<тело цикла>;

или

forvar<параметр>:=<выр.1>downto<выр.2>do<тело цикла>;

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

Оператор цикла с параметром часто использует при работе с массивами.

ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМ служит для повторения последовательности операторов, пока истинно некоторое условие. При этом проверка условия производится перед выполнением последовательности операторов. Формат:

while<условие>do<тело цикла>;

где while, do - служебные слова (пока, делать),

<условие> - любое логическое выражение,

<тело цикла> - последовательность операторов.

ИСПОЛНЕНИЕ ОПЕРАТОРА ЦИКЛА С ПРЕДУСЛОВИЕМ ПО ШАГАМ:

Проверяется условие;

Если логическое выражение истинно, то выполняется тело цикла, стоящее после do, и переходим к шагу 1. Если оно ложно, то выполнение оператора повторения заканчивается и выполняется следующий оператор в программе.

БЛОК-СХЕМА ОПЕРАТОРА ЦИКЛА С ПРЕДУСЛОВИЕМ:

Рассмотрим задачу, для решения которой нельзя применить оператор цикла с параметром (таких задач довольно много): Вычислить сумму ряда:

члены которого больше числа 10-3.Здесь нам неизвестно количество членов суммы, поэтому нельзя применить оператор цикла с параметром. Зато известно условие, по которому прекращается суммирование. Пример программы, которая вычисляет данную сумму:

programpr10;

vari, s : integer;

begin

s:=0; i:=1;

while 1/i> 0.001 do begin s:=s+1/i; i:=i+1 end;

write(‘Сумма членов ряда 1/n , которые больше 0.001, равна ’, s);

end.

ОПЕРАТОР ЦИКЛА С ПОСТУСЛОВИЕМслужит дляповторения заданной последовательности операторов до тех пор, пока значение некоторого условия не станет истинным. Проверка условия производится после выполнения последовательности операторов. Формат:

repeat<тело цикла>until<условие>;

где repeat, until - служебные слова (повторять, пока),

<тело цикла> - последовательность операторов.

<условие> - любое логическое выражение,

ИСПОЛНЕНИЕ ОПЕРАТОРА ЦИКЛА С ПОСТУСЛОВИЕМ ПО ШАГАМ:

Выполняется тело цикла, стоящее после repeat;

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

БЛОК-СХЕМА ОПЕРАТОРА ЦИКЛА С ПОСТУСЛОВИЕМ:

В качестве примера возьмем программу pr10 и заменим в ней оператор цикла с предусловием на оператор цикла с постусловием:

program pr11;

vari, s : integer;

begin

s:=0; i:=1;

repeat

s:=s+1/i; i:=i+1

until 1/i <= 0.001;

write(‘Сумма членов ряда 1/n , которые больше 0.001, равна ’, s);

end.

Примечания.

Из циклов можно досрочно выйти с помощью оператора BREAK.

Оператор CONTINUE передает управление в конец цикла.

В операторе цикла с постусловием заданная последовательность выполнится хотя бы ОДИН РАЗ! А в случае оператора цикла с предусловием этого может и не быть.

Отличие операторов цикла с предусловием и с постусловием от оператора с параметром еще в том, что в них нет <встроенного> счетчика.

Вложенные циклы

Основная идея использования вложенных циклов состоит в том, что даже когда некий процесс, требует цикла -- повтора действий (т.н. "внешний цикл"), то даже внутри отдельного действия можно запустить свой цикл (т.н. "внутренний" или "вложенный цикл") для решения какой-то "местной" задачи.

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

Работу циклов также можно сравнить с вращением связанных шестерёнок разного размера:

Внешний цикл - это как бы большая шестерёнка, за один свой оборот (виток цикла), внешний цикл заставляет вращаться вложенный цикл (меньшую шестерёнку) несколько раз.

Такая иллюстрация точна в случае, если число повторов вложенного цикла не зависит от того какой именно (1-ый, n-ый или иной) виток делает внешний цикл, а так бывает не всегда.

Пример №1.1: Repeat/until + For: работа с пользователем до его указания на завершение программы.Пользователь вводит целые положительные числа, большие 5. Пока он не введёт число 22 в ответ на каждое введённое число выводите все целые числа от 1 до этого числа, если же пользователь ввёл ноль, то объявите о завершении работы программы.

Program dd;

var a,i:integer;

begin

repeat // внешнийцикл

writeln('vveditechislo>5:');

readln(a);

for i:=1 to a do // (вложенныйцикл) выводимвсечисладо a

write(i, ' ');

writeln(); // переносстроки

until (a = 22); // конец тела внешнего цикла

writeln('zaversheno!');

readln();

end.

Прокомментируем это решение:

1)В качестве внешнего цикла мы выбрали repeat/until, чтобы проверять условие уже после ввода значения пользователем.

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

3)минусом выбора repeat/until внешним циклом является то, что эта программа, в случае если пользователь введёт число 22, все равно выведет ряд чисел, а только потом завершится.

Пример2. Вывести на экран таблицу умножения чисел от 1 до 9.

Program dd;

vari, j: integer;

begin

fori := 1 to 9 do // цикл по строкам таблицы, счетчик как левый множитель

begin

forj := 1 to 9 do // выводим равенства очередной строки, счётчик как правый множитель

write(i, '*', j, '=', i*j, ' ');

writeln(); // переносимстроку

end;

readln();

end.

 



2018-07-06 521 Обсуждений (0)
Оператор цикла с параметром 0.00 из 5.00 0 оценок









Обсуждение в статье: Оператор цикла с параметром

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (521)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)