Метки и оператор безусловного перехода Go To 


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



ЗНАЕТЕ ЛИ ВЫ?

Метки и оператор безусловного перехода Go To



Современная технология структурного программирования основана на принципе «программировать без Go To».

Тем не менее оператор Go To используется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой оператор, отмеченный меткой.

Форматоператора: Go Tо <метка>;

где < метка > – произвольное имя (идентификатор).

Метка объявляется в разделе описания меток (Label) и может содержать цифровые и буквенные символы. Чаще всего это целое число из диапазона 1–9999.

Метка ставится перед оператором, отделяясь от него «:», и дает возможность ссылки на него.

 

Например.

...........

Label 10, 45;

...........

GoTo 45;

10: A:=x+2.4;

...........

45: Y:=x+21;

 

Здесь после оператора GoTo будет выполняться оператор с меткой 45. Оператор, следующий за GoTo, тоже должен быть отмечен меткой, иначе к этому участку программы не будет доступа.

Оператор GoTo полезно использовать для прекращения выполнения программы, когда встречаются функции Lnx при x<=0, при x<0 или 1/x при х=0.

Например.

Label 100;

...........

If x<=0 then GoTo 100 else A:=A+LN(x);

...........

100: A:=A+Sqr(x);

 

Пример 4.4. Организовать диалог пользователя и ПК о продолжении (прекращении) счета.

Program DemoIf;

Label 55;

Var t,z: real;

Priznak: char;

Begin

55: Writeln(‘введите t=:’); Readln (t);

z:=Sin(t); Writeln (t:6:2,z:8:3);

Write(‘Продолжить счет? (Y/N)’);

Readln (Priznak);

If (Priznak=’y’) or (Priznak=’Y’) then GoTo 55;

Writeln(‘Конец счета’);

End.

Контрольные вопросы и задания

1. Оператор присваивания, его назначение и порядок выполнения.

2. Какие операции определены над переменными булевского типа?

3. Каковы отличия оператора выбора Case от оператора условия If?

4. Оператор безусловного перехода GoTo, его назначение и особенности применения.

5. Записать приведенные ниже высказывания в виде выражений отношения:

– значение А не принадлежит интервалу (0, 3);

– значение А принадлежит отрезку [-2, 0];

– значение А принадлежит одному из отрезков [–2, –1], [0, 5];

– точка М с координатами (х, у) лежит на границе или вне круга радиусом 2 с центром в начале координат.

6. Изменить программу примера 4.3, дополнив ее контролем правильности ввода, т.е. если пользователь введет значение дня недели вне отрезка [1,2,..,7], то на экране должно появляться сообщение об ошибке.

7. Составить программу, проверяющую, верно ли утверждение, что введенное вами число является четным.

8. Составить программу, проверяющую, верно ли утверждение, что введенное вами число делится без остатка на 3.

9. Составить программу, которая анализирует человека по возрасту и относит его к одной из четырех групп: дошкольник, ученик, работник, пенсионер. Возраст вводится с клавиатуры.

10. Написать программу решения уравнения ax3+bx=0 для вводимых с клавиатуры значений a, b.

11. Дано число х. Напечатать в порядке возрастания числа sin x, сos x, (1 – 1,5 x 2 ).

12. Написать программу, которая определяет, пройдет ли график функции y = x 2 + 3,55 x – 1 через точку с координатами М(а, в). Значения а, в вводятся с пульта.

13. Яблоко стоит 1,5 руб. Компьютер запрашивает количество имеющихся у вас денег и сообщает о количестве яблок, которое вы можете купить, и положенной вам сдаче или сообщает размер недостающей суммы.

14. Пусть элементами круга являются радиус (первый элемент), диаметр (второй элемент), длина окружности (третий элемент). Написать фрагмент программы, который по номеру элемента запрашивал бы его соответствующее значение и вычислял бы площадь круга. Использоватьоператор выбора Case.

 

 


Лекция 5.

Организация циклических процессов


Если в программе возникает необходимость неоднократно выполнить некоторую группу операторов, то используются операторы цикла (повтора). В ТР существуют три вида операторов цикла: while, repeat, for. Они используются для организации циклов различного типа. Выражение, управляющее повторениями, должно иметь булевский тип.

Оператор цикла

с предварительным условием While (с предусловием)

Оператор While (пока) используется, когда заранее неизвестно количество повторов тела цикла. Его называют оператором цикла с предусловием, потому что проверка условия выполнения тела цикла производится в самом начале оператора.

Формат оператора:

While <условие> do <оператор>;

где < условие > – булевское выражение, условие продолжения или окончания повторений;

< оператор > – тело цикла, может быть как простым, так и составным оператором.

Работа оператора:

Перед каждым выполнением тела цикла вычисляется значение выражения < условие >.

Если < условие >= True, то выполняется < оператор > и снова вычисляется значение выражения < условие >.

Если <условие>=False, то происходит выход из цикла, управление передается следующему за While оператору.

Пример 5.1. Вычислить сумму десяти вводимых с клавиатуры чисел.

Введем обозначения: для вводимых чисел будем использовать один идентификатор – а,

Count – счетчик, иначе говоря, номер вводимого числа и одновременно параметр цикла,

Sum –сумма вводимых чисел.

Блок-схема

 

 

Программа имеет вид.

Program DemoWhile;

Var a,, Sum: integer;

Begin

Count:=1; {счетчик}

Sum:=0; {сумма чисел}

While(Count<=10) do

Begin

Write(‘введи’, Count:2,’-е число:’);

Readln (a); тело цикла

Sum:=Sum+a;

Count:= Count+1;

End;

Writeln(‘Сумма=’, Sum:5);

End.

 

 

Пример 5.2. Вычислить значения функции y=x2-4 в равноудаленных точках отрезка [–2, 5].

Такая задача называется задачей табулирования функции на заданном отрезке [ a, b ]. Равноудаленные точки xi (i= 0,1,.., n) называются узлами, а расстояние между ними – шагом табулирования , где n – количество разбивок.

Блок-схема для этого примера похожа на блок-схему примера 5.1, поэтому запишем только программу, используя оператор цикла While.

 

 

Program DemoTab;

Сonst n=10; {количество разбивок}

Var a, b, x, y, h: real;

Begin

Readln(a, b); {ввод отрезка табулирования}

h:=(b-a)/n; {шаг табулирования }

x:=a;

While(x<=b) do

Begin

у:=sqr(x)-4;

Writeln (x:5:2, y:8:3); тело цикла

х:=x+h;

End;

End.

 



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 581; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.51.117 (0.011 с.)