Оператор перехода
В языке Турбо-Паскаль имеются различные управляющие операторы, позволяющие написать любую программу. Тем не менее в языке имеется оператор безусловного перехода.
Безусловный переход приводит к передаче управления из одного места в программе в другое. Структура оператора перехода следующая:
goto <метка>
Здесь goto - ключевое слово (англ.: перейти на [метку]).
Метка - это произвольный идентификатор, позволяющий пометить некоторый оператор, чтобы ссылаться на него. Для совместимости со стандартным Паскалем разрешается в качестве метки использовать целые числа. Метка ставится перед оператором получающим управление и отделяется от него двоеточием. Как любой идентификатор метку необходимо описать в разделе описания меток, который начинается с ключевого слова label, за которым следует список меток:
...............
label m,1,loop;
begin
.........
goto 1;
m: .........
goto loop;
1: ............
goto m;
Метка, описанная в программе, обязательно должна использоваться. Метка, описанная в функции или процедуре, должна использоваться в той функции или процедуре, в которой она описана.
3.2.6. ПРИМЕР РАЗВЕТВЛЯЮЩЕЙСЯ ПРОГРАММЫ
Как и в разделе с линейной программой, после разбора всех операторов и типов, необходимых для разветвляющейся программы, рассмотрим пример такой программы.
Поле шахматной доски опpеделяется паpой натуpальных чисел, каждое из котоpых не пpевосходит восьми: пеpвое число - номеp веpтикали (пpи счете слева напpаво), втоpое - номеp гоpизонтали (пpи счете снизу ввеpх). Даны натуpальные числа k,l,m,n, каждое из котоpых не пpевосходит восьми. Требуется выяснить, являются ли поля (k,l) и (m,n) полями одного цвета.
Прежде чем приступать к составлению алгоритма и программы, необходимо внимательно рассмотреть шахматную доску и прийти к выводу, что поля будут иметь одинаковый цвет, если сумма номеров горизонтали (k+l) и вертикали (n+m) того и другого поля будет четной или того (k+l) и другого (n+m) поля нечетной. Схема алгоритма приведена на рис.8, a программа на языке Турбо-Паскаль - в примере pr7.
program pr7;
var k,l,n,m:byte;
begin
writeln('Введите кооpдинаты полей k,l,n,m: ');
read(k,l,n,m);
if odd(k+l) and odd(n+m) or not odd(k+l) and not odd(n+m)
then writeln('Поля одного цвета ')
else writeln('Поля pазного цвета ');
end.
Рис. 8
Следует заметить, что приоритет операции not выше, чем and, а приоритет операции and выше, чем or. Функция odd – встроенная и возвращает true, если аргумент нечетный, и false, если аргумент четный.
Дата добавления: 2014-12-20; просмотров: 629;