КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оператор перехода
Оператор case Оператор case предназначен для организации выбора из множества различных вариантов. В общем случае оператор case выглядит следующим образом: case <выражение> of <список выбора> else <оператор> end; Здесь case, of, else, end - ключевые слова (пер. с англ.: выбор, из, иначе, конец); <выражение> - выражение любого порядкового типа; <список выбора> - одна или более конструкций вида: <значение>: <оператор>; <значение> - константа или константное выражение того же типа, что и <выражение>; <оператор> - любой оператор Турбо-Паскаля, в том числе и составной. Работа оператора начинается с вычисления <выражения>. Значение этого выражения является критерием для выбора из нескольких вариантов. Если полученное значение выражения совпадает с одной из констант, то выполняется тот оператор, которому предшествует эта константа. Если такой константы не обнаруживается, то выполняется оператор следующий за ключевым словом else. Ветвь else может отсутствовать, и в этом случае управление передается оператору следующему за оператором case. Ниже приведены примеры, демонстрирующие работу оператора выбора. program pr4; var n:integer; begin writeln('Введите число'); read(n); case n mod 2 of 1: writeln(n,'- нечетное'); 0: writeln(n,'- четное'); end; end. Следующая программа по номеру месяца определяет время года. program pr5; var month: integer; begin writeln('Введите число - номеp месяца'); read(month); case month of 12,1,2: writeln(month,' - зимний месяц'); 3,4,5: writeln(month,' - весенний месяц'); 6,7,8: writeln(month,' - летний месяц'); 9,10,11: writeln(month,' - осенний месяц'); else writeln('Пpо это мне неизвестно!'); end; end. Составим программу, имитирующую работу простейшего калькулятора, выполняющего четыре арифметических действия. program pr6; var op: char;{Арифметическая операция} x,y,z: real;{Операнды и результат} begin write('x,y='); readln(x,y); write('Введите аpифметическую опеpация:'); readln(op); case op of '*': begin z:= x* y; writeln('z=',z);end; '/': begin z:= x/ y; writeln('z=',z);end; '+': begin z:= x+y; writeln('z=',z);end; '-': begin z:= x- y; writeln('z=',z);end; else writeln('Увы! Это не аpифметическая опеpация.'); end; end.
В языке Турбо-Паскаль имеются различные управляющие операторы, позволяющие написать любую программу. Тем не менее в языке имеется оператор безусловного перехода. Безусловный переход приводит к передаче управления из одного места в программе в другое. Структура оператора перехода следующая: 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-11-18; Просмотров: 438; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |