ПОСТРОЕНИЕ ПРОГРАММЫ, РЕАЛИЗУЮЩЕЙ ЦИКЛИЧЕСКИЙ АЛГОРИТМ



Циклические вычислительные процессы (в дальнейшем циклы) в Турбо Бейсике реализуются с помощью трёх различных конструкций языка: for – next , while – wend , do – until.

 

5.1.  Организация цикла с помощью операторов for – next

 

Формат операторов цикла For – next .

[n] for V = выражение 1 to выражение 2 [step выражение 3]

          тело цикла

          next V

Здесь:

тело цикла – последовательность исполняемых операторов, зависящих от значений переменной V;

for - оператор заголовок цикла;

next - оператор окончания цикла;

V - переменная (параметр) цикла;

Выражение 1 - начальное значение переменной цикла;

Выражение 2 - конечное значение переменной цикла;

Выражение 3 – шаг изменения цикла;

n – метка оператора заголовка цикла (может отсутствовать).

 

Выражения выражение 1, выражение 2, выражение З в операторе заголовка могут быть записаны в виде числовых констант, арифметических вы­ражений, идентификаторов переменных. В дальнейшем эти атрибуты получили название характеристика цикла. Если выражение З тождественно равно 2, то конструкция step выражение З в операторе for может быть опущена. Выражение 1, выражение 2, выражение З могут принимать любые значения, в том числе и отрицательные.

Алгоритм выполнения операторов цикла:

1). Вычисляются выражения выражение 1, выражение 2, выражение З и их значения присваиваются фиктивным переменным el, e2, еЗ соответственно;

2). V=e1 ;

3). Осуществляется сравнение: если V<=e2 и e3>0 или если V>=е2 и е3<0 , то принимается решение войти внутри тела цикла, в противном случае, принимается решение выйти из цикла, т.е. передать управление к оператору, следующему за next (пункт 7);

4). Вычисляются операторы тела циклa;

5). При выполнении оператора next переменной цикла при­сваивается новое значение, большее на величину шага еЗ: V= V+e3 ;

6). Управление вычислительным процессом передается пункту 3;

7). Выход из цикла (продолжение программы) начинается со
следующего за next по порядку оператора в тексте программы.

 

Рассмотрим следующую задачу: составить программy вычисления функции F=A*x^2+B*X+C , где аргумент X изменяется от ХО до ХК с шагом Н, а А, В, С - произвольные константы

rem построение программы циклической структуры

rem с использованием операторов foг - next

input a, в, с, х0, хk, h

foz х = x0 to xk step h

f = a*x^2+b*x+c

print “x=”; x, “f=” ; f

next x

stop

 

5.2.  Организация циклов с помощью оператора while – wend

 
Формат операторов цикла while – wend

[n] while условие

тело цикла

wend

Здесь:

While - оператор заголовок цикла,

Wend - оператор окончания цикла,

<условие> - логическое выражение,

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

n - метка оператора заголовка (может отсутствовать).

 

Алгоритм выполнения цикла while - wend

1) Проверяется <условие> в операторе While . В случае истинности принимается решение войти внутрь цикла, в противном случае принимается решение выйти из цикла; (пункт 4)

2) выполняются все операторы в теле цикла;

3) При достижении оператора wend управление передается пункту I;

4) Выход из цикла (продолжение программы) начинается со следующего за wend оператора текста программы. Особенность данной конструкции цикла заключается в том, что переменная цикла в явном виде нигде не присутствует. Задание начального значения переменной цикла (до входа в цикл), вычисление нового значения, большего на величину шага изменения (внутри тела цикла), разработчик осуществляет сам в программе. Этот цикл иногда в литературе называют циклом: "повторить - пока".

Как правило,  данную конструкцию цикла используют для реали­зации итерационных циклических процессов, когда неизвестно заранее количество повторений (итераций), а известно условие продол­жения (прекращения) вычислений.

Организация циклов с помощью операторов do - loop

Формат цикла do – loop

 

Уел - 50 -
[n] do

тело циклa

loop until условие

 

в ел
Здесь:

do - оператор заголовок цикла,

loop until - оператор окончания цикла,

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

 

Алгоритм выполнения цикла do - lоор

1) вход внутри цикла осуществляется без предварительных
условий,

2) выполняются все операторы в теле цикла,

3) при выполнении оператора loop until проверяется <условие>, и в случае ложности управление передается первому оператору в теле цикла, (цикл повторяется), в противном случае, принимается решение о прекращении цикла.

Как видно из формата оператора, параметр цикла создается самим пользователем до входа в цикл, изменение его значения долж­но быть осуществлено в явном виде внутри цикла. Эту конструкцию иногда называют: "делай - до тех пор ...".

Три конструкции цикла обеспечивают возможность структуриро­вать программу в полном объеме, не уступая в этом другим языкам программирования.

 

Примеры построения программ

       Задание: Дана последовательность чисел длиною n. Определить максимальный элемент последовательности.

 

Пример использования цикла FOR…NEXT

сls                                                                         ‘ Очистка экрана

input “Введите количество элементов”; n      ‘ Ввод кол-ва элементов

input “Введите элемент ”; x                  ‘ Вводится первый элемент

max=x            ‘ В переменную max заносится первое значение х

for i=1 to n                ‘ Открывается цикл (перебор значений i от 1 до

                                                                                         ‘ введенного n)

input “Введите элемент ”;x       ‘ Ввод элементов последовательности

if x>max then max=x    ‘ Проверка условия, обозначенного в задании.

                                       ‘ Если условие выполняется, тогда текущее 

                                 ‘значение переменной х заносится в переменную max

next i          ‘ Происходит прибавление i+1 и управление программой

                 ‘ передается for

print max                                             ‘ Вывод максимального элемента

stop                                                                ‘ Остановка программы

Пример использования цикла WHILE…WEND

 

сls                                                                        ‘ Очистка экрана

input “Введите количество элементов”; n      ‘ Ввод кол-ва элементов

input “Введите элемент ”; x                         ‘ Вводится первый элемент

max=x            ‘ В переменную max заносится первое значение х

i=2                                ‘Поскольку первый элемент уже введен, отсчет

                                   ‘ необходимо начинать со второго элемента

while i<>n                     ‘ Открытие цикла. Цикл выполняется пока i не

                                                                                                   ‘ равно n

input “Введите элемент ”; x   ‘ Вводится элемент последовательности

if x>max then max=x              ‘ Проверка условия, обозначенного

‘ в задании. Если

                                  ‘ условие выполняется, тогда текущее значение 

                                      ‘переменной х заносится в переменную max

i=i+1                          ‘Сумматор, необходимый для смены значения i

wend                          ‘ Завершение цикла. Управление программой

                                                                                  ‘передается на while

print max                                   ‘ Вывод максимального элемента

stop                                                                         ‘ Остановка программы

 

Пример использования цикла DO…LOOP (связка «пока»)

 

сls                                                                        ‘ Очистка экрана

input “Введите количество элементов”; n      ‘ Ввод кол-ва элементов

input “Введите элемент ”; x                ‘ Вводится первый элемент

max=x            ‘ В переменную max заносится первое значение х

i=2                               ‘ Поскольку первый элемент уже введен, отсчет

                                      ‘ необходимо начинать со второго элемента

do while i<>n              ‘ Открытие цикла. Цикл выполняется, пока i не

                                                                                                   ‘ равно n

input “Введите элемент ”; x   ‘ Вводится элемент последовательности

if x>max then max=x    ‘ Проверка условия, обозначенного в задании.

                                         ‘Если условие выполняется, тогда текущее

                         ‘значение переменной х заносится в переменную max

i=i+1                         ‘Сумматор, необходимый для смены значения i

loop                              ‘ Завершение цикла. Управление программой

                                                                  ‘передается на do while

print max                                            ‘ Вывод максимального элемента

stop                                                                ‘ Остановка программы

 

Пример использования цикла DO…LOOP (связка «пока не»)

 

сls                                                                           ‘ Очистка экрана

input “Введите количество элементов”; n      ‘ Ввод кол-ва элементов

input “Введите элемент ”; x                          ‘ Вводится первый элемент

max=x            ‘ В переменную max заносится первое значение х

i=2                               ‘ Поскольку первый элемент уже введен, отсчет

                                           ‘ необходимо начинать со второго элемента

do until i=n                   ‘Открытие цикла. Цикл выполняется, пока i не

                                                                                         ‘ будет равно n

input “Введите элемент ”; x   ‘ Вводится элемент последовательности

if x>max then max=x ‘ Проверка условия, обозначенного в задании.

                            ‘Если условие выполняется, тогда текущее значение 

                                    ‘ переменной х заносится в переменную max

i=i+1                         ‘ Сумматор, необходимый для смены значения i

loop                            ‘ Завершение цикла. Управление программой

                                                                              ‘передается на do until

print max                                   ‘ Вывод максимального элемента

stop                                                            ‘Остановка программы

 

Пример использования цикла с постусловием DO…LOOP

(связка «пока»)

 

сls                                                                        ‘ Очистка экрана

input “Введите количество элементов”; n      ‘ Ввод кол-ва элементов

input “Введите элемент ”; x                          ‘ Вводится первый элемент

max=x            ‘ В переменную max заносится первое значение х

i=2                                  ‘ Поскольку первый элемент уже введен, отсчет

                                      ‘ необходимо начинать со второго элемента

do                                                                                 ‘ Открытие цикла.

input “Введите элемент ”; x   ‘ Вводится элемент последовательности

if x>max then max=x ‘ Проверка условия, обозначенного в задании.

                            ‘Если условие выполняется, тогда текущее значение 

                                     ‘переменной х заносится в переменную max

i=i+1                            ‘Сумматор, необходимый для смены значения i

loop while i<>n         ‘ Проверка условия для завершение цикла. Цикл

                  ‘ выполняется, пока i не равно n. Управление программой

                                                                           ‘ передается на do

print max                                    ‘ Вывод максимального элемента

stop                                                          ‘ Остановка программы

Пример использования цикла с постусловием DO…LOOP

(связка «пока не»)

 

сls                                                                  ‘ Очистка экрана

input “Введите количество элементов”; n      ‘ Ввод кол-ва элементов

input “Введите элемент ”; x                         ‘ Вводится первый элемент

max=x            ‘ В переменную max заносится первое значение х

i=2                               ‘ Поскольку первый элемент уже введен, отсчет

                                           ‘ необходимо начинать со второго элемента

do                                                                                     ‘ Открытие цикла.

input “Введите элемент ”; x   ‘ Вводится элемент последовательности

if x>max then max=x        ‘ Проверка условия, обозначенного в задании.

                           ‘ Если условие выполняется, тогда текущее значение 

                                       ‘переменной х заносится в переменную max

i=i+1                         ‘Сумматор, необходимый для смены значения i

loop until i=n           ‘ Проверка условия для завершение цикла. Цикл

                             ‘ выполняется, пока i не будет равно n. Управление 

‘ программой передается на do

print max                                            ‘ Вывод максимального элемента

stop                                                          ‘Остановка программы

 


Дата добавления: 2021-11-30; просмотров: 20; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!