русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор перехода


Дата добавления: 2013-12-23; просмотров: 623; Нарушение авторских прав


Оператор 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, если аргумент четный.

 



<== предыдущая лекция | следующая лекция ==>
ЛОГИЧЕСКИЙ ТИП | ЦИКЛИЧЕСКИЕ ПРОГРАММЫ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.