Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оператор цикла с последующим условием RepeatСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Оператор цикла с постусловием Repeat похож на оператор цикла с предусловием While, но условие вычисляется и проверяется после выполнения операторов тела цикла. Формат оператора: Repeat <оператор 1>; <оператор 2>; …………….. <оператор N> Until <условие>; где < условие > – выражение булевского типа; Repeat, Until – зарезервированные слова (повторять до тех пор, пока не выполнится условие). Работа оператора начинается с выполнения тела цикла. Затем вычисляется значение выражения < условие >, а далее возможны два варианта: – если <условие>=False, то тело цикла выполняется еще раз, а затем снова вычисляется выражение < условие >, – если <условие>=True, то осуществляется выход из цикла. Особенности оператора Repeat: 1) оператор выполняется, по крайней мере, один раз; 2) в отличие от оператора с предусловием While, выход из цикла с постусловием осуществляется при истинности выражения < условие >, 3) число операторов в теле цикла произвольно и роль операторных скобок выполняют зарезервированные слова Repeat, Until. Пример 5.3. Вычислить сумму четных чисел от 0 до 100, т.е. Sum= 2+4+6+….+100 Введем обозначения: k – счетчик и одновременно параметр цикла. Блок-схема
Программа имеет вид Program DemoRepeat; Var k, Sum: integer; Begin k:=2; Sum:=0; Repeat; Sum:=Sum+k; k:=k+2; until (I>=102); Writeln(‘Сумма=’, Sum:5); End. Счетный оператор FOR Оператор For используется, когда заранее известно количество повторений тела цикла. Формат оператора: For I:=In To Ik Do <оператор>; где For……Do – заголовок цикла, < оператор > – тело цикла, постой или составной оператор, I – параметр цикла (integer), In, Ik – начальное и конечное значения параметра цикла, могут быть константами, арифметическими выражениями целочисленного типа (integer). Оператор For обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного. Работа оператора Параметру цикла присваивается начальное значение (I:=In). Затем циклически повторяются следующие действия. 1. Если I>Ik, то оператор For завершает свою работу и управление передается на следующий за For оператор. 2. Если , то выполняется тело цикла (< оператор >). 3. Параметр цикла получает приращение с шагом h=1, т.е. I:=I+1, далее происходит переход на пункт 1 (на проверку продолжения или окончания цикла). Пример 5.4. Вывести на экран таблицу перевода из градусов по шкале Цельсия (С) в градусы по Фаренгейту (F) для значений от 10° до 30° с шагом 1 градус. Перевод осуществляется по формуле F = C ×1,8 + 32. Блок-схема
В блоке модификации (блок оператора For) указывается параметр цикла k и его начальное и конечное значения. Приведем программу этого примера. Program DemoFor; Var k: integer; F: real; Begin Writeln (‘ Температура ’); For k:=10 to 30 do Begin {начало тела цикла} F:=k*1.8+32; Writeln(‘По Цельсию=’,k:3,’ По Фаренгейту=’,F:6:2); End; {конец тела цикла} End.
Переменная цикла в операторе For может изменятся в противоположном направлении – убывать, т.е. с шагом h = –1. Для этого зарезервированное слово DO надо заменить на DOWNTO. Пример 5.5. Вывести на экран символы американского стандартного кода обмена информацией (ASCII) в порядке убывания кода. Program DemoASCII; Var i: integer; Begin Writeln (‘ Таблица ASCII ’); For i:=255 down to 0 do Writeln(‘Код символа-’,i:3,’ Символ-’, chr(i)); End. Cтандартная функция Chr(i:byte):char возвращает символ из ASCII c кодом i. Например Chr(82)=R. Тело цикла содержит единственный простой оператор Writeln, поэтому операторные скобки (Begin-End) необязательны. Результатом работы программы будет выведенная на экран таблица: Код символа-255 Символ- ٱ ………………………………. Код символа-148 Символ- Ф ………………………………. Код символа-82 Символ- R ……………………………….
Пример 5.5. Найти наибольшее Mmax и наименьшее Mmin число из N вводимых с пульта чисел. Алгоритм выбора наибольшего/наименьшего из множества числа основан на последовательном сравнении двух чисел. Наибольшее из них присваивается переменной Mmax, наименьшее – Mmin. Первоначально принимается Mmax=–1Е+10 и Mmin=1Е+10, т.е. соответственно очень маленькое и очень большое значения, так чтобы на первом шаге в ячейки Mmax и Mmin записалось первое, вводимое число.
Блок-схема
Программа имеет вид:
Program DMin_Max; Var i, n: integer; a, Mmin, Mmax: real; Begin Mmin:=1E+10; Mmax:=-1E+10; Write('введи n=');Readln(n); For i:=1 to n do begin Write('i=',i:2,' a='); Readln(a); If a<Mmin then Mmin:=a; If a>Mmax then Mmax:=a; End; Writeln('min =',Mmin:6:2,' max=',Mmax:6:2);End.
Контрольные вопросы и задания. 1. Понятие циклического алгоритма. Какие данные необходимы для организации цикла. Что такое параметр цикла? 2. Операторы для организации циклических процессов. 3. В чем отличие операторов цикла While и Repeat? 4. В каких случаях предпочтительнее использовать для организации цикла оператор FOR? Что записывается в заголовке этого оператора? 5. Каким образом в операторе цикла For описывается направление изменения значения параметра цикла? 6. Алгоритм табулирования функции. Как выводить результаты табулирования по колонкам с учетом структуры таблицы? 7. С помощью оператора While напишите программу определения суммы всех четных чисел в диапазоне от 2 до 100 включительно. 8. Составить программу, вычисляющую значения k первых членов арифметической прогрессии: . 9. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько клеток будет через 3, 6, 9, 24 часа. В начальный момент времени была 1 клетка. 10. Вычислить сумму N элементов, заданных формулой . Выдать на экран сообщение о нечетности результата. Лекция 6. Подпрограммы
|
||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 797; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.28.111 (0.011 с.) |