русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-28; просмотров: 969; Нарушение авторских прав


Затем выполняются цикл ввода 10 чисел и их суммирование. Вначале оператор условия while проверяет условие Count < Limit. Если условие верно, то выполняется составной оператор в теле цикла:

Begin

Count : = Count+1;

Write('Введите ', Count, '—в целое число: ';

Readln(Item);
Sum:= Sum+Item;

End.

В нем вводится значение очередного числа, и на это значение увеличивается значение суммы. После этого управление в программе вновь передается оператору цикла while, опять проверяется условие Count < Limit. Если условие верно, то выполняется составной оператор и т. д., пока значение переменной Count будет меньше 10.

Как только значение Count станет равно 10 и условие Count < Limit не будет соблюдено, выполнение цикла завершится, а управление в программе будет передано на оператор, находящийся за словом end, т. е. первый оператор за границей while. Это вызов процедуры Writeln, которая выведет сообщение 'Сумма введенных чисел равна' и напечатает значение переменной Sum.

Упражнение 4.Введите текст программы, откомпилируйте ее и исполните для разных значений чисел. Проверьте выполнение программы, пронаблюдав значения переменных Sum, Item и условия Count < Limit в режиме отладки "по шагам".

Оператор повтора repeat.Оператор повтора repeat аналогичен оператору while, но отличается от него, во-первых, тем, что условие проверяется после очередного выполнения операторов тела цикла (очередной итерации) и таким образом гарантируется хотя бы однократное выполнение цикла, а во-вторых, тем, что критерием прекращения цикла является равенство выражения константе True. За это цикл repeat часто называют циклом с постусловием, или циклом "ДО", так как он прекращает выполняться, как только значение выражения условия, записанного после слова until, равно True (истина).



Оператор повтора repeat состоит из заголовка repeat, тела и условия окончания until.

Синтаксическая диаграмма выглядит следующим образом:

 

Формат записи

Repeat

<оператор>

<оператор>

unltil <условие окончания цикла>

Операторы, заключенные между словами repeat и until, являются телом цикла. В начале выполняется тело цикла, затем проверяется условие выхода из цикла. Именно поэтому цикл, организованный с помощью оператора repeat, в любом случае выполнится хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется еще раз; если результат True, происходит вы ход из цикла.

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

В следующем фрагменте показано, как оператор repeat используется для ожидания нажатия клавиш Y и N. Нажатие других клавиш будет игнорироваться:

uses Crt;

Var

YH: char;

Begin

Repeat

YN:= ReadKey;

until Upcase(YN) in [‘Y’, ‘N’];

End.

Примером действия оператора repeat может служить программа DemoRepeat, которая вводит и суммирует любое количество целочисленных значений. Если введено значение 999, то на экран выводится результат суммирования.

program DemoRepeat;

Var

X: integer;

Sum: real;

Begin

Sum:=0;

repeat {Повторять}

Write('Значение X= ');{Начало тела цикла}

Readln(X); {Считать очередное значение X с клавиатуры)

if X <> 999 then

Sum:= Sum+X;

until X = 999; {Условие окончания цикла}

Writeln('Сумма введенных чисел* ',Sum);

End.

В данном примере в разделе описания переменных описана переменная X целочисленного типа integer и Sum вещественного типа real.

В начале выполнения программы обнуляется значение суммы чисел. Затем зарезервированным словом repeat объявляется цикл, после чего следуют операторы тела цикла, которые выводят на экран запрос 'Значение Х= ', считывают введенное с клавиатуры значение X. Оператор if проверяет его на неравенство числу 999 и, если оно не равно 999, увеличивает значение суммы Sum на значение числа X. В конце цикла оператор until X = 999 проверяет условие окончания цикла. Если значение выражения X = 999 истинно, то цикл завершится, а управление в программе будет передано на оператор, находящийся за словом until, т. е. первый оператор за границей цикла repeat. Это вызов процедуры Writeln, которая выведет сообщение 'Сумма введенных чисел равна' и напечатает значение переменной Sum.

Оператор повтора for.В случаях, когда число повторений может быть заранее известно, для организации циклической обработки информации применяется оператор повтора for. Часто этот оператор повтора называют оператором цикла с параметром, так как число повторений задается переменной, называемой параметром цикла, или управляющей переменной.

Оператор повтора for состоит из заголовка и тела цикла.

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

Как видно из диаграммы, он может быть представлен в двух форматах:

for <параматр цикла> := <S1> to <S2> do <оператор>;

for <параметр цикла> :=<S1> downto <S2> do <оператор>;

где SI и S2 —выражения, определяющие соответственно начальное и конечное значения параметра цикла;

for …. do — заголовок цикла;

<оператор> — тело цикла.

Тело цикла может быть простым или составным оператором. Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного. Заголовок оператора повтора for определяет диапазон изменения значений управляющей, переменной (параметра цикла) и одновременно число повторений оператора, содержащегося в теле цикла; направление изменения значения параметра цикла (возрастание — to или убывание — downto).

Пример:

for I:=1 to 100 do Read(M[I]);{Чтение элементов массива}

for I:=1 100 downto 1 do Write(M[I]);{Вывод элементов массива}

При первом обращении к оператору for вначале вычисляются выражения S1, S2 и осуществляется присваивание <параметр цикла>:=S1.

После этого циклически повторяются следующие действия.

1. Проверяется условие <параметр цикла>:<=S2,

2. Если условие выполнено, то оператор for продолжает работу (выполняется оператор в теле цикла), если условие <параметр цикла>:<=S2 не выполнено, то оператор for завершает работу, и управление в программе передается на оператор, следующий за циклом.

3. Значение управляющей переменной изменяется на +1 (to) или -1 (downto) и далее с п. 1. Обратите внимание, что шаг изменения управляющей переменной — единица.

На использование управляющей переменной (параметра цикла) в цикле for налагаются следующие ограничения.

1. В качестве параметра должна использоваться простая переменная, описанная в текущем блоке.

2. Управляющая переменная должна иметь дискретный тип.

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

4. В теле цикла запрещается явное изменение значения управляющей переменной (например, оператором присваивания).

5. После завершения оператора значение управляющей переменной становится неопределенным, если только выполнение оператора не было прервано оператором .перехода.

Примером действия оператора for может служить программа DemoFor, которая выводит на экран таблицу перевода из градусов по шкале Цельсия(С) в градусы по Фаренгейту(Р) для значений от 15°С до 30°С с шагом 1 градус. Перевод осуществляется по формуле: F = С* 1.8+32.

program DemoFor;

Var

I: integer;

F: real;

Begin

Writeln (' Температура ');

for I:= 15 to 30 do{Заголовок цикла с параметром)

begin{Начало тела цикла}

F:= 1*1.8+32;

Writeln('По Цельсию* ',I,' по Фаренгейту= ', F:5:2) end;{Конец тела цикла)

End.

В блоке описания переменных описаны параметр цикла I типа integer и пере менная F — температура по Фаренгейту типа real. Переменная I, помимо функций управляющей переменной, является переменной, хранящей целочисленные значения температуры по шкале Цельсия. В начале выполнения программы на экран выводится надпись ' Температура ', а затем оператором повтора выводится таблица соотношения температуры в шкалах Цельсия и Фаренгейта. Печать таблицы выполняется оператором Writeln('По Цельсию» ' ,I, ' по Фаренгейту= ', F:5:2)

Цикл выполняется следующим образом.

При первом обращении к оператору for вычисляются значения начального (15) и конечного (30) параметров цикла и управляющей переменной I присваивается начальное значение 15.

Затем циклически выполняется следующее:

1. Проверяется условие I<=30.

2. Если оно соблюдается, то выполняется составной оператор в теле цикла, т.е. рассчитывается значение выражения I*1.8+32, затем оно присваивается переменной F, к на экран выводится сообщение

‘По Цельсию» ‘,I,’ по Фаренгейту’ , F:5:2

Если условие 1<=30 не соблюдается, т. е. как только I станет > 30, оператор тела цикла не выполняется, а управление в программе передается за пределы оператора for, в нашем примере на оператор end;. Программа завершает работу.

3. Значение параметра цикла I увеличивается на единицу, и управление передается в заголовок цикла for для проверки условия.

Далее цикл повторяется с п. 1.

 



<== предыдущая лекция | следующая лекция ==>
Операторы повтора | Вложенные операторы цикла


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.501 сек.