Студопедия

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

КАТЕГОРИИ:

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






Операторы итерационных циклов






 

Формат оператора итерационного цикла с предусловием:

WHILE < усл> DO (S1; S2;...; Sn);

где

- WHILE - первое ключевое слово, в переводе означает " пока";

- < усл> - условие естественного окончания цикла, записанное в

- виде логического выражения или операции отношения;

- DO - второе ключевое слово, в переводе означает " выполняем";

- (S1; S2;...; Sn) - составной оператор, тело цикла.

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

Формат оператора итерационного цикла с постусловием:

 

REPEAT S1; S2;...; Sn UNTIL < усл>;

где

- REPEAT - первое ключевое слово, в переводе означает " повторять";

- S1; S2;...; Sn - составной оператор, тело цикла. В этом составном операторе слова BEGIN... END не нужны, поскольку считается, что слова REPEAT...UNTIL сами являются операторными скобками;

- UNTIL - второе ключевое слово, в переводе означает " до тех пор, пока";

- < усл> - условие естественного окончания цикла, записанное в виде логического выражения или операции отношения.

Оператор работает следующим образом: после первого выполнения операторов тела цикла происходит проверка условия окончания цикла (отсюда взято название цикла-" с последующей проверкой условия"). Если оно не выполняется, управление передаётся на начало цикла и работа продолжается до выполнения < усл>.

При всей несхожести этих операторов они выдвигают одни и те же требования к организации вычислительного процесса:

- перед началом работы цикла управляющая переменная должна получить нужное начальное значение;

- условие естественного окончания цикла - " < усл> " - необходимо составить таким образом, чтобы оно обеспечивало многократное его повторение;

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

 

       
   
 

 

 


нет

       
 
   
 

 


да

Тело цикла
нет

 
 

 


да

 

 
 

 

 


а) б)

 

Рис.2.4. а) цикл WHILE-DO; б) цикл REPEAT-UNTIL

 

 

2.15. Характерные приёмы программирования циклических вычислительных процессов

 

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

В таких ситуациях принято применять специальные операторы, называемые счётчик, сумматор, накопитель произведения. Рассмотрим работу счётчика. Условимся о таком допущении: введём индексацию переменных, которая будет обозначать текущее её значение на соответствующем шаге цикла. Формула счётчика выглядит так:

N: =N+1;

C точки зрения алгебры это сплошной абсурд - переменная не может равняться себе самой плюс ещё какая-то константа. Чтобы понять, в чём тут дело, необходимо вспомнить, как выполняется оператор присваивания. Символ ": =" не означает равенства левой и правой частей уравнения. При обработке этого оператора транслятором сначала в процессор будет отослана информация, уже записанная в ячейку, отведённую под переменную N, т.е. " старое", (предыдущее) значение N. Затем туда будет послана константа " 1" и т.д. После вычисления суммы " старое" значение + 1 - этот результат будет записан туда же, т.е. в ячейку переменной N.

Счётчик располагается на циклическом участке

................... программы. До начала цикла он инициализирует-

................... ся нулевым значением (N0=0).Подсчитаем, какое

N: =0; значение он получит на первом шаге:

................... I N1 = N0 + 1 = 0 + 1 = 1

{Начало цикла} Второе значение будет вычислено также, но с

................... учётом значения N, полученного после первого

N: =N+1; шага:

................... II N2 = N1 + 1 = 1 + 1 = 2

{Конец цикла} Третье значение вычисляется по уже известной

................... схеме:

III N3 = N2 + 1 = 2 + 1 = 3 и т.д.

Сумматор выполняется следующим оператором:

S: = S + Y;

Переменная S до начала цикла, как и N у счётчика, обнуляется. Затем к начальному значению последовательно, на каждом шаге цикла, вместо единицы, как у счётчика, добавляются значения суммируемой переменной. В нашем примере - рассчитываемой функции Y. Для нормальной работы накопителя произведения его начальное значение должно быть равным 1. В противном случае конечное значение произведения будет искажено начальной величиной. Совершенно недопустимым является присваивание накопителю произведения в качестве начального значения нуля. Вычисления производятся оператором:

P: = P*Y;

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал