|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
СТРУКТУРЫ
Для составления программы циклической структуры используются операторы цикла FOR, REPEAT, WHILE. Оператор цикла FOR используется, когда известно число повторений. При этом различают две формы записи: 1. Оператор с организацией счета при изменении параметра цикла от начального (меньшего) значения до конечного (большего) значения этого параметра цикла. Такой оператор цикла имеет вид: FOR K: = NZ TO KZ DO S; 2. Оператор с организацией счета при изменении параметра цикла от начального (большего) значения до конечного (меньшего) значения этого параметра цикла. Такой оператор цикла имеет вид: FOR K: = NZ DOWNTO KZ DO S; Здесь К — параметр цикла (целочисленная переменная); NZ, KZ — выражения, задающие соответствующее начальное и конечное значения параметра цикла; S — простой или составной оператор. Оператор цикла выполняется следующим образом. Параметру цикла К присваивается начальное значения NZ. Затем управление передается в тело цикла и выполняется оператор S, после выполнения которого параметр цикла меняет свое значение на (единицу) (шаг изменения параметра цикла). При этом шаг равен +1, если используется оператор цикла с ключевым словом ТО (случай 1), а если используется оператор цикла с ключевым словом DOWNTO (случай 2), то шаг равен –1. Далее измененное значение параметра цикла сравнивается с конечным значением KZ и, если параметр цикла не превышает КZ (случай 1) или превышает KZ (случай 2), то управления передается в тело цикла и выполняется оператором S; в противном случае осуществляется выход из цикла. Рассмотрим фрагменты записи операторов цикла: 1) Y: = 0; FOR I = 3 TO 5 DO Y = Y + 1; 2) Y: = 0; FOR I = 12 DOWNTO 6 DO Y = Y + 1; В результате выполнения первого оператора цикла параметр цикла 1 будет изменятся от начального значения I = 3 до конечного значения I = 5 с шагом, равным +1, причем по окончании цикла Y = 3. При выполнении второго оператора цикла параметр цикла I будет изменятся от начального значения I = 12 до конечного значения I = 6 с шагом, равным . По окончании цикла Y = 7. Пример 1. Найти: составить программу с применением оператора цикла FOR.
PROGRAM SUMFOR; VAR X,Y: REAL; I, N: INTEGER; BEGIN WRITELN (‘ Ввести N, X’); READ (N, X); Y: = 0; FOR I: = 1 TO N DO Y: = Y + COS (I + SQR ( X ) / 4 ); WRITELN (‘ N = ‘, N, ‘ ‘, ‘ X = ‘, X); WRITELN (‘ Y = ‘, Y); END.
Оператор цикла WHILE позволяет организовать цикл, количество повторений которого зависит от включенного в него условия, т.е. цикл с неизвестным числом повторений. Этот оператор имеет вид: WHILE LV DO S; где LV — логическое выражение; S — простой или составной оператор. Выполнение оператора начинается с проверки выражения LV. Если логическое выражение имеет значение TRUE, то выполняется оператор S до тех пор, пока выражение LV не примет значение FALSE. В этом случае уравнение передаётся оператору, следующему за оператором S. Если же выражение LV принимает значение FALSE при первоначальной проверке, то оператор S не выполняется ни разу. При этом чтобы выйти из цикла, внутри него нужно изменить значения переменных, входящих в логическое выражение. Иначе оператор цикла будет выполняться бесконечное число раз. Пример 2. Используя условия примера 1, программу запишем в виде:
PROGRAM SUMWHL; VAR X, Y: REAL; I, N: INTEGER; BEGIN WRITELN (‘ ВВЕСТИ N, X’); READ (N, X); Y:= 0; I:=1; WHILE I <= N DO BEGIN {открываем операторные скобки} Y=Y + COS (I+ SQR ( X )/ 4 ); I:=I+1; END; {закрываем операторные скобки} WRITELN (‘N =’, N,’ ‘,’ X = ‘,X); WRITELN (‘Y =’,Y); END. Оператор цикла REPEAT также позволяет организовать цикл с неизвестным числом повторений. Такой оператор имеет вид: REPEAT S UNTIL LV Здесь S — простой или составной оператор; LV — логическое выражение. Выполнение оператора REPEAT начинается с вычисления оператора S и продолжается до тех пор, пока не выполняется LV, т.е. когда логическое выражение примет значение FALSE (ложь). Из этого следует, что проверка LV проводится после каждой итерации и в случае принятия LV значения TRUE (правда) осуществляется выход из цикла. При использовании составного оператора S операторные скобки (BEGIN и END) не требуются. Кроме того, оператор, стоящий перед словом UNTIL, не имеет после себя точки с запятой.
XVII. МАССИВЫ К наиболее часто встречающимся типовым вычислениям относятся: вычисление суммы и произведения элементов одномерного массива, нахождение наименьшего и наибольшего элементов одномерного массива. Массив представляет собой набор конечного числа элементов одинакового типа. Объявление массивов происходит в разделе описания переменных следующим образом: VAR <имя массива>: ARRAY [n..m] OF <тип элементов>, где n — начальное значение индекса массива; m — конечное значение индекса массива. В учебном пособии будут использоваться массивы типа INTEGER (целые) и REAL (дробные). Элементы обозначаются именем массива и следующим за ним в квадратных скобках индексом. Для ввода (вывода) элементов массива используются операторы READ (READLN) (WRITE (WRITELN)), записанные в цикле. Например: FOR I: = 1 TO 10 DO READ (A[I]); Пример 3. Составить программу для вычисления сумм S элементов числовой последовательности А1, А2, …, А10 по формуле S = А1+ А2+ … +А10. Входными данными являются значения членов последовательности и число членов последовательности; выходными сумма членов последовательности. Для решения задачи используется циклический алгоритм. Подготовка цикла заключается в задание начального значения суммы, равного 0. В качестве параметра цикла берём номер члена последовательности. Начальное значение параметра цикла равно i, конечное — числу членов последовательности, шаг цикла +1. В теле цикла выполняется суммирование. Окончание цикла будет при значении параметра цикла, превышающего количество членов последовательности. Числовую последовательность а1, а2, …, а10 обозначим как массив действительных чисел с именем — А. Сумму членов — через S. Размерность массива — n, параметр цикла — i. Программа вычисления группы членов числовой последователь-ности имеет вид: PROGRAM PR 1; CONST N=10; {РАЗМЕРНОСТЬ МАССИВА А} VAR A: ARRAY [1..N] OF REAL; {ОПИСАНИЕ МАССИВА А} S: REAL; {ИНДЕНТИФИКАТОР СУММЫ} I: INTEGER; {ПАРАМЕТР ЦИКЛА} BEGIN {ВВОД ИСХОДНЫХ ДАННЫХ} WRITELN (‘ВВЕСТИ 10 ЭЛЕМЕНТОВ МАССИВА ЧЕРЕЗ ПРОБЕЛ’); FOR I: = 1 TO N DO READ (A [1]); {ВЫЧИСЛЕНИЕ СУММЫ} S: = 0; {ПОДГОТОВКА ЦИКЛА} FOR I: = 1 TO N DO S: = S + A [ I ]; {ПЕЧАТЬ} WRITELN; {ПРОПУСК СТРОКИ} WRITELN (“ СУММА РАВНА “, S:7:3); WRITELN (“ ВЫЧИСЛЕНИЯ ЗАКОНЧЕНЫ ”); END.
Результат работы программы выглядит следующим образом:
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.009 сек.) |