Мегаобучалка Главная | О нас | Обратная связь


Разветвляющиеся программы



2020-02-04 179 Обсуждений (0)
Разветвляющиеся программы 0.00 из 5.00 0 оценок




 

3.1. Общие положения

 

До сих пор мы рассматривали линейные программы, алгоритм которых можно было представить в виде блок-схемы (рис. 3.1)

 

                                  

 

Возможны случаи, когда программа ветвится в зависимости от какого-либо условия (см. рис. 3.2). Ветвление может быть двух направлений: по принципу условие верно – идти по одной ветви, условие ложно – по другой. В этом случае применяется оператор if. возможно ветвление сразу нескольких направлений: если k=l – идти по одной ветви, если k=2 – по другой, k=3 – по третьей и т.д. в этом случае удобнее применять оператор Case.


          

 

3.2. Оператор goto, раздел описания меток

 

Последовательное выполнение операторов в программе может быть нарушено оператором перехода. Общий вид оператора: goto метка; где метка – буква, либо цифра, либо набор букв и цифр, из которых первая – всегда буква, Например, М1, LI, NK. Метка, стоящая после goto, указывает, куда нужно пойти. Достигается это тем, что если в программе находится оператор goto метка; то в этой же программе обязательно имеется какой-либо оператор вида метка: оператор; который считается помеченным, и машина, встретив goto метка; не будет выполнять оператор, записанный после оператора goto метка; а перейдет к выполнению оператора метка: оператор;

 

Иллюстрация:   

 а: = b +с;

с: = sgrt ( a + exp ( b ));

goto M1;

z: = x+y;

Writeln (z);

M 1: S : = P ;

 


В случае, если бы не было оператора goto М1; все операторы выполнялись бы последовательно один за другим. здесь же после оператора с: =... стоит goto М1; следовательно, машина не будет выполнять z:=... и writeln..., а сразу после с: =... перейдет к выполнению оператора М: S : = Р;

Метки, применяемые в программе, должны быть описаны в разделе описания меток, который желательно ставить первым среди описаний. Выглядит раздел так: Label М1, М2, L, NK; т.е. после слова Label перечисляются через запятую все метки, которые будут применяться в данном блоке (программе). Заканчивается описание символом ';'.

Пример: составить программу, вычисляющую значения функции cos х, где начальное х = 0, следующее х = 0.01 и т.д.

     Program Prim3; Label M;  Var x:real; BEGIN x:=0;    M: writeln('x=',x,'cos x = ',cos(x));       x:=x+0.01;

       goto M ; readln ; END .

Программа будет работать следующим образом: х присвоится значение 0; writeln выведет на экран текст, который указан в первых кавычках х =, далее извлечет из ячейки х значение и выведет его на экран; затем снова выведет текст cos х =, затем вычислит значение cos х и выдаст его на экран, т.е. машина выведет первую строку в виде

x = 0.0000000000Е + 00 cos х = 9.9999999999Е - 01.

После этого возьмется то х, которое было извлечено из ячейки памяти х (прежнее значение х), т.е. 0.0, к нему прибавляется величина 0.01 и результат снова занесется в ячейку памяти х так, что в х будет 0.01, после этого оператор goto m; передаст управление оператору, помеченному меткой м, т.е. оператору writeln, и машина выдаст новую строку:

x = 1.0000000000Е - 02 cos х = 9.9995000041Е - 01;

– выполнит оператор

х: =x + 0.01, получит х = 0.02;

– выведет строку

x = 2.0000000000Е - 02 cos х = 9.9980000666Е – 01;

– сделает х = 0.03 и т.д., до бесконечности, так как в данном алгоритме окончание работы не предусмотрено. Для завершения работы следует применить оператор if.


3.3. Оператор if



2020-02-04 179 Обсуждений (0)
Разветвляющиеся программы 0.00 из 5.00 0 оценок









Обсуждение в статье: Разветвляющиеся программы

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (179)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)