Оператор безусловного перехода Goto 


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



ЗНАЕТЕ ЛИ ВЫ?

Оператор безусловного перехода Goto



 

Оператор безусловного перехода Goto используют для изменения последовательности (порядка) выполнения операторов и перехода к выполнению программы, начиная с оператора, имеющего метку. Эта же метка должна быть указана и в операторе Goto. Пример:

Label 1, 2;

Goto 1

.

.

.

1: WriteLn ('Abnormal program termination');

2: WriteLn ('Normal program termination');

Метки, используемые в Turbo Pascal, могут быть двух типов:

¨ целым числом (в пределах от 0 до 9999);

¨ обычным идентификатором.

Все используемые метки должны быть описаны в разделе объявления меток, начинающемся зарезервированным словом Label, пример: Label 1,2,A,B,X2;

Для того, чтобы пометить оператор, перед ним пишут метку, двоеточием отделяя её от оператора. Таким образом, можно пометить только один оператор. Следует иметь ввиду, что использовать оператор Goto нужно очень осторожно. Частое его применение приводит к затруднению понимания логики работы программы. При написании блок-схемы этот оператор отображается стрелкой перехода в нужную часть алгоритма.

 

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

 

Пример 1. О пределите, попала ли заданная точка с координатами (X,Y) в заштрихованную область, включая ее границы.

 

Program Example_5_1;

Uses Crt; { подключаем модуль }

Var

X,Y:Real; { описываем переменные }

Begin { начало программы }

ClrScr; { Производим очистку экрана }

WriteLn ('Введите координаты Х,У точки'); { выводим сообщение на экран }

ReadLn(x,y); { вводим данные }

If ((Y<=4*Sqr(X)+2) And (Y>=0)) Or (Y<=-1) then { если условия истинные }

WriteLn ('Точка попала в заданную область') { то вывод сообщения }

Else { иначе }

WriteLn ('Точка не попала в заданную область');{ вывод другого сообщения }

End. { конец программы }

Пример 2. Значения переменных X, Y, Z вводятся с клавиатуры. Если X£Y£Z, то все значения возвести в квадрат, при X>Y>Z каждое из них разделить на 2, в противном случае изменить знаки чисел. Изменённые значения переменных вывести на экран.

Обратите внимание, что при решении данной задачи в каждой ветви условного оператора используется составной оператор.

Program Example_5_2;

Uses Crt;

Var

X,Y,Z:Real; { описываем переменные }

Begin { начало программы }

ClrScr; { Производим очистку экрана }

Write ('Введите значение X,Y,Z'); { вывод сообщения на экран }

ReadLn (X,Y,Z); { ввод данных с клавиатуры }

If (X<=Y) And (Y<=Z) Then { проверяем условие, если условие истинно, }

Begin { то открываем составной оператор }

X:=Sqr(X); { вычисляем значение Х }

Y:=Sqr(Y); { вычисляем значение Y }

Z:=Sqr(Z); { вычисляем значение Z }

End; { закрываем составной оператор }

If (X>Y) And (Y>Z) Then { проверяем условие, если условие истинно, }

Begin { то открываем составной оператор }

X:=X/2; { вычисляем значение Х }

Y:=Y/2; { вычисляем значение Y }

Z:=Z/2; { вычисляем значение Z }

End { закрываем составной оператор }

Else { иначе выполняем ветку нет }

Begin { то открываем составной оператор }

X:= -X; { вычисляем значение Х }

Y:= -Y; { вычисляем значение Y }

Z:= -Z; { вычисляем значение Z }

End; { закрываем составной оператор }

WriteLn('X=',X,' Y=',Y,' Z=',Z); { вывод значения переменных }

End. { Конец программы }

5.6. Контрольные вопросы

 

1. Дайте определение разветвляющегося процесса.

2. Какую структуру имеет алгоритм с ветвлениями?

3. Какие переходы в программе называются безусловными, условными? Перечислите операторы передачи управления.

4. Приведите пример записи строки программы с оператором безусловного перехода, поясните ее выполнение.

5. Перечислите основные формы записи оператора условного перехода If. Приведите примеры сокращенной и полной записи такого оператора. Объясните их выполнение.

6. Существуют ли какие-либо ограничения на количество разветвлений в алгоритмах?

7. Из каких блоков состоит схема разветвляющегося процесса в общем случае?

8. Дайте определение логического выражения.

9. Каким образом описывают логические переменные?

10. Какие логические функции вам известны? Приведите примеры логических выражений с ними.

11. Каков порядок вычисления значения логического выражения?

12. Какие побитовые операции реализуются в языке Turbo Pascal?

13. Что такое составной оператор?

14. Приведите пример сложного условного оператора.

15. Каким образом описывают и используют метки в программе?

16. Пусть дана следующая последовательность операторов:

If <выражение> Then <оператор 1> Else <оператор 2>;

<оператор 3>;

Установите:

a) значение <выражения>, при котором выполняется <оператор 3>;

b) возможность записи после слова Then нескольких операторов;

c) условие выполнения оператора <оператор 1>;

d) значение <выражения>, при котором выполняется <оператор 2>;

Варианты заданий

 

1. Составить программу вычисления функции F(x) вида:

2. Составить программу вычисления

3. Даны три числа, a,b,c. Если они все положительные, найти минимальное из них, иначе вычислить их среднее арифметическое.

4. При заданном значении x вычислить значение функции

5. Составить программу вычисления значения функции, заданной следующим образом для произвольного x:

6. Даны три неравные переменные a,b,c. Найти наибольшую из них и возвести ее в куб.

7. Даны четыре числа a,b,c,d. если хотя бы одно из этих чисел равно нулю, то вычислить их сумму, в противном случае – произведение.

8. Составить алгоритм и написать программу вычисления функции:

9. Составить программу вычисления функции F(x) вида:

10. Составить алгоритм и написать программу определения знака вводимого числа. Результат вывести на экран.

11. Составить программу вычисления значения функции, заданной следующим образом:

, где x=1.5, y – произвольное число.

12. Составить программу вычисления значения функции, заданной следующим образом для произвольного x:

13. При выполнения условия x<y вычислить t=(a+b)/2-a2+b3, в противном случае проверить условие x>y. Если это условие выполняется, вычислить t=(a+b/2)/2, в противном случае t=3.2. Принять a=2.58, b=12.4.

14. Составить программу вычисления функции F(x) вида:

15. Составить алгоритм и написать программу вычисления функции:

16. Даны три неравные переменные a,b,c. Найти наименьшую из них и возвести ее в четвертую степень.

17. Составить программу преобразования заданных значений x и y по правилу: если x и y отрицательные, то каждое значение заменить его модулем. Если отрицательное только одно из них, то оба значения увеличить на 0.5. Если оба значения неотрицательны, то оставить их без изменения.

18. Составить программу, которая бы запрашивала номер дня недели и выводила на печать соответствующие им названия (1 - понедельник, 2 – вторник и т.д.).

19. Составить программу вычисления функции

20. Составить программу вычисления функции

21. Составить программу вычисления функции

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

23. Составить программу вычисления функции

24. Написать программу, которая в зависимости от номера месяца выдавала бы сообщение о времени года.

25. Составить программу вычисления функции F(x) вида:

26. Составить программу вычисления значения функции, заданной следующим образом для произвольного x:



Поделиться:


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

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