Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программирование алгоритмов циклической структуры
Программы циклической структуры могут быть организованы с помощью следующих операторов IF, FOR, WHILE, REPEAT. Условный оператор IF требует задания начального параметра цикла, проведения в цикле вычисления с этим параметром, изменения его на величину шага и проверки условия окончания цикла. Если цикл не закончен, то вычисления продолжаются. Пример 5. Составить схему алгоритма и программу для вычисления выражения. Схема алгоритма и программа имеют вид: Схема алгоритма и программа имеют вид:
LABEL 3; VAR X,Y: REAL; I,N:INTEGER; BEGIN WRITELN(‘ВВЕСТИN,X’); READ(N, X); Y:=Ø; I:=1; 3: Y:=Y+COS(I+SQR(X)/4); I:=I+I; Рис. 4 IF X<=N THEN GOTO 3; WRITELN(‘N=’,N); WRITELN(‘X=’,X, ‘ ‘,’Y=’,Y); END. Оператор цикла FOR используется для организации цикла с известным числом повторений. При этом различают две формы записи: А) с организацией счета при изменении параметра цикла от начального (меньшего) значения до конечного (большего) значения этого параметра цикла. Такой оператор цикла имеет вид: FOR K:=NZ TO KZ DO Б) с организацией счета при изменении параметра цикла от начального(большего) значения до конечного(меньшего) значения этого параметра. Этот оператор имеет вид:
FOR K: = NZ DOWNTO KZ DO Где К- параметр цикла (целочисленная переменная), NZ, KZ-выражения, задающие соответственно начальное и конечное значения параметра цикла; S–простой или составной оператор (тело цикла). Оператор цикла выполняется следующим образом. Параметру цикла К присваивается начальное значение NZ. Затем уравнение передается в тело цикла и выполняется оператор S, после выполнения которого параметр цикла меняет свое значение на единицу(шаг изменения параметра цикла). При этом шаг равен +I, если используется оператор цикла с ключевым словом TO(случай а), а если используется оператор цикла с ключевым словом DOWNTO (случай б), то шаг равен –I. Далее измененное значение параметра цикла сравнивается с конечным значением KZ и, если параметр цикла не превышает К(случай а) или превышает KZ (случай б), то управление передается в тело цикла и выполняется оператор S; в противном случае осуществляется выход из цикла. Рассмотрим фрагменты записи операторов цикла: VARY,I: INTEGER; 1) Y:=0; FOR I=3 TO 5 DO Y=Y+1; 2) Y:=0; FOR I=12 DOWNTO 6 DO Y:=Y+1; В результате выполнения первого оператора цикла параметр цикла I будет изменяться от начального значения I=3 до конечного значения I=5 с шагом, равным +I, причем после окончания цикла значения переменной Y=3. При выполнении второго оператора цикла параметр цикла I будет изменяться от начального значения I=I2 до конечного значения I=6 с шагом, равным –I. После окончания цикла Y=7. Пример 6. Используя условия примера 5 программу с изменением оператора цикла FOR. PROGRAM SUM; VAR X,Y: REAL; I,N: INTEGER; BEGIN WRITELN(‘ВВЕСТИN,X ‘); READ(N, X); Y:=Ø; 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 Где LV- логическое выражение; S- простой или составной оператор. Выполнение оператора начинается с проверки выражения LV. Если логическое выражение имеет значение TRUE, то выполняется оператор S. Выполнение оператора S продолжается до тех пор, пока значение выражения LV не станет равным FALSE. В этом случае уравнение передается оператору, следующему за оператором S. Если же выражение LV имеет значение FALSE при первоначальной проверке, то оператор S не выполняется ни разу. При этом, чтобы выйти из цикла, внутри его должно быть организовано изменение значений переменных, входящих в логическое выражение. Иначе оператор цикла будет выполняться бесконечное число раз. Пример 7. Составим программу, используя условия примера 5. Программа запишется в виде: PROGRAM SUMWHL; VARX,Y: REAL; I,N:INTEGER; BEGIN WRITELN(‘ВВЕСТИN,X’); READ(N,X); Y:=Ø; 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 также позволяет организовать цикл с неизвестным числом повторений. Такой оператор имеет вид: REPEATS UNTILLV где S – простой или составной оператор; LV- логическое выражение.
Выполнение оператора REPEAT начинается с вычисления оператора S и продолжается до тех пор, пока не выполняется LV т.е. когда значение этого логического выражения равно FALSE. Это означает, что проверка LV проводится после каждой итерации и в случае принятия LV значения TRUE осуществляется выход из цикла. При использовании составного оператора S операторные скобки (BEGIN и END) не требуются. Кроме того оператор, стоящий перед словом UNTIL, не имеет после себя точку с запятой. Пример 8. Задан массив вещественных чисел, состоящий из десяти элементов. Требуется вывести четные элементы этого массива. Программа имеет вид: PROGRAM MAS; VAR I: INTEGER; A: ARRAY[1…10] OF REAL; BEGIN WRITELN(‘ ВВЕСТИМАССИВ(1..10)’); FOR I:=1 TO 10 DO; READ (A[I]); I:=0; REPEAT I=I+2; WRITE (A[I]:5:2) UNTIL I>10; END.
|
||||||||||||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 72; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.130.24 (0.007 с.) |