
- •Тема 2.2. Основные понятия языка программирования высокого уровня Free Pascal
- •Системы программирования
- •Интегрированная среда разработки FreePascal
- •Введение в язык Паскаль Характеристика языка программирования Паскаль
- •Основные понятия технологии программирования
- •Алфавит языка Паскаль
- •Структура программы на Паскале
- •Типы данных
- •Стандартные типы данных
- •Структуры данных
- •Строковый тип
- •Структурированные переменные
- •Представление основных структур программирования на языке Паскаль Операции и выражения
- •Арифметические операции и выражения
- •Логические операции
- •Оператор присваивания
- •Составной оператор
- •Условный оператор
- •Процедура write
- •Процедура ввода
- •Оператор выбора
- •Операторы повторений
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Метки и операторы перехода
- •Работа с массивами
- •Операции над строками
- •Функция Length
- •Функция Upcase
- •Функция Сopy
- •Функция Pos
- •Процедуры Insert и Delete
- •Процедура Str
- •Процедура val
- •Практические примеры работы со строковыми данными
- •Оператор присоединения with
- •Процедуры и функции Паскаля
- •Формальные и фактические параметры
- •Типизированные константы
- •Interface
- •Implementation
- •Interface
- •Interface
- •Implementation
- •Файловый тип данных Типизированные файлы
- •Текстовые файлы
Оператор выбора
По практическим соображениям существует еще один тип условного оператора. Оператор выборапозволяет выбрать одно из нескольких возможных продолжений программы. Структура оператора выбора:
CASE <ключ выбора> OF <список выбора> ELSE <оператор> END
Здесь CASE, OF, ELSE, END – зарезервированные слова (случай, из, иначе, конец); <ключ выбора> – выражение порядкового типа (любого из рассмотренных, кроме типов REAL и STRING); <список выбора> – одна или более конструкций вида: <константа выбора> : <оператор>; <константа выбора> – константа того же типа, что и выражение <ключ выбора>; <оператор> – произвольный оператор.
Поясним общий вид оператора. В этой записи с – ключ выбора; ni : pi – список выбора; ni – константа выбора; pi – оператор.
CASE c OF
n1 : p1;
n2 : p2;
n3 : p3;
.............
nn : pn
ELSE
p
end;
Оператор работает следующим образом. Вначале вычисляется значение выражения <ключ выбора>, а затем в последовательности операторов <список выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается оператору, стоящему за словом ELSE.
Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.
Задача. В зависимости от вводимого признака q рассчитать значение функции Z.
0, если q = 0;
sin(x), если q = 1;
Z = ex, если q = 2;
log(x), если q = 3;
x*x во всех остальных случаях.
Рис. 2. Множественный выбор
На рис. 2 приведена структура, которая называется «множественный выбор».
В зависимости от вводимого значения q вычисления осуществляются по одной ветви из пяти.
Программа.
program task4;
var X, Z : real; q : integer;
begin
write(‘Введите X ‘); readln(x);
write(‘Введите признак: 0, 1, 2, 3 : 0–0, 1–sin(x), 2–exp(x), 3–log(x) ‘);
readln(q);
case q of
0 : Z := 0;
1 : Z := sin(x);
2 : Z := exp(x);
3 : Z := ln(x)
else
Z := x*x
end;
write(‘Z = ‘, Z)
end.
Задача. Ввести два числа, знак арифметического действия и вывести на экран результат соответствующего действия.
Программа.
program task;
var
op : char;
x, y, z : real;
begin
write(‘x, y = ‘);
readln(x,y);
write(‘операция: ‘);
readln(op);
case op of
‘+’ : z:= x + y;
‘–’ : z:= x – y;
‘*’ : z:= x * y;
‘/’ : z:= x / y;
else
write(‘Такое действие не предусмотрено!’);
end;
write(‘Результат = ‘, z)
end.
В программе ключом выбора является переменная литерного типа. В зависимости от введенного значения символа выполнится одно из арифметических действий: сложение, вычитание, умножение или деление. Если будет введен какой-либо другой символ, то результатом будет сообщение: “Такое действие не предусмотрено!”.
Программа вводит две строки: первая содержит два произвольных числа, разделенных пробелом, вторая – символ арифметического действия. На следующей строке будет выведен результат. Например:
2 2
*
Результат = 4
или
18.5 0.12
+
Результат = 18.62