
- •Министерство общего и профессионального образования Российской Федерации Уральский государственный технический университет Основы программирования на языке Паскаль
- •Структура программы на паскале
- •Типы данных
- •Правила программирования арифметических операций
- •Арифметические функции
- •Операции отношения (сравнения)
- •Логические операции
- •Приоритет операций
- •Операторы турбо-паскаля ввод и вывод данных
- •Составной оператор
- •Условный оператор
- •Оператор выбора
- •Операторы повторений (циклов) счетный цикл
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Использование массивов
- •Процедуры и функции
- •Описание и использование функций
- •Описание и использование процедур
- •Взаимодействие подпрограмм
- •Стандартные модули
- •Использование модуля crt
- •Практический пример. Программа "меню"
- •Использование модуля graph
- •Установка цветов
- •Изображение точек и линий
- •Практический пример. Построение графика функции
- •Работа с текстом
- •Практический пример. Построение спирали
- •Программирование с использованием нестандандартных типов данных перечисляемый тип
- •Множества
- •Основы программирования на языке Паскаль
Составной оператор
Понятие составного оператора в Паскале имеет очень важное значение. Это станет нам понятным совсем скоро. А пока ограничимся только его определением. СОСТАВНОЙ ОПЕРАТОР - это последовательность произвольных операторов программы, заключенная
в так называемые ОПЕРАТОРНЫЕ СКОБКИ
begin ... end
Среди операторов, входящих в составной оператор, могут находиться и другие составные операторы. В этом смысле мы можем сказать, что весь раздел операторов любой программы представляет собой один оператор.
Условный оператор
Условный оператор Паскаля очень похож на аналогичный оператор Бейсика. Его формат
IF <условие> THEN <оператор 1> ELSE <оператор 2>;
Здесь <условие> - любое логическое выражение; <оператор 1> выполняется, если оно истинно, а <оператор 2>, если оно ложно. Как и в Бейсике слово ELSE и <оператор 2> могут отсутствовать. Точка с запятой ставится один раз в конце оператора. Применение оператора иллюстрирует следующий фрагмент.
Var
x, y, max: real;
...
BEGIN
...
IF x>max
THEN y:=max
ELSE y:=x;
...
END.
Очень важно обратить внимание на то, что после слов THEN и ELSE допускается наличие ТОЛЬКО ОДНОГО оператора. Вот именно в таких случаях нам и потребуются составные операторы.
Рассмотрим пример. Требуется составить программу, которая вводит с клавиатуры целое число в диапазоне от нуля до 15 и преобразует его к шестнадцатиричной системе счисления. В шестнадцатиричной системе цифры от нуля до 9 обозначаются как и в десятичной, цифра 10 обозначается буквой А, 11 - В и т. д. При составлении программы для того, чтобы не использовать слишком много вложенных условных операторов учтем, что коды цифр и букв упорядочены следующим образом:
Десятичная система |
0 |
1 |
2 |
|
9 |
10 |
11 |
|
15 |
Шестнадцатиричная система |
0 |
1 |
2 |
|
9 |
A |
B |
|
F |
Kод |
48 |
49 |
50 |
|
57 |
65 |
66 |
|
70 |
Для преобразования данных типа CHAR в целое число предназначена функция Паскаля ORD, обратное преобразование целого числа в символ осуществляет функция СНR. Программа может выглядеть, например, так:
Program No3;
VAR
N, C : integer;
BEGIN
write('Введите целое число '); readln(N);
IF (N>=0) and (N<=15)
THEN begin
IF N<10
THEN C:=ORD('0')+N
ELSE C:=ORD('A')+N-10;
writeln('N=',CHR(C));
end
ELSE writeln('Ошибка!');
END.
Оператор выбора
Этот оператор имеет то же назначение, что и известный нам оператор языка Quick Basic - SELECT CASE. Его формат:
CASE <ключ> OF <список выбора> ELSE <оператор> END;
где <ключ> - имя какой-либо переменной, по значению которой будет осуществляться далее выбор одного из нескольких вариантов;
<список выбора> - одна или более конструкций вида <список констант>:<оператор>.
Следующий пример иллюстрирует действие этого оператора. В программе осуществляется ввод с клавиатуры произвольного символа; в том случае, если введены символы 'n', 'N' выводится слово 'Нет'. Если введены символы 'y', 'Y', то выводится слово 'Да'.
Program No4;
Var ch: Char;
BEGIN
Readln(ch);
CASE ch OF
'n’, ‘N': writeln('Нет');
'y’, ‘Y': writeln('Да');
ELSE
writeln('следовало ввести n, N, y или Y');
END;
END.
Заметим, что слово ELSE и следующий за ним оператор могут отсутствовать. Кроме того, еще раз обратим внимание, что в <списке выбора> каждому <списку констант> соответствует только ОДИН оператор. Если же необходимо выполнить несколько операторов, то их нужно объединять в СОСТАВНОЙ оператор.