- •Программирование в системе Pascal abc
- •Введение
- •1. Система программирования pascal abc
- •1.1. Структура меню среды
- •1.2. Команды редактора Pascal abc
- •Команды удаления и вставки
- •1.3. Правила оформления программ
- •1.4. Компиляция и исправление синтаксических ошибок
- •1.5. Этапы подготовки и решения задач на компьютере
- •1.6. Словарь основных терминов
- •2. Начальные сведения о языке pascal abc
- •2.1. Алфавит языка
- •2.2. Константы
- •2.3. Идентификаторы и типы данных
- •2.4. Переменные и именованные константы
- •2.5. Структура простой программы и комментарий
- •3. Оператор присваивания и числовые данные
- •3.1. Арифметические выражения
- •Приоритеты операций в выражении
- •3.2. Оператор присваивания
- •3.3. Процедуры ввода-вывода
- •3.4. Стандартные функции Pascal abc
- •3.5. Целые типы в Pascal abc
- •3.6. Вещественные типы
- •Переменные комплексного типа
- •3.7. Примеры и задания к самостоятельному выполнению
- •4. Программирование разветвленных алгоритмов
- •4.1. Логические выражения
- •4.2. Условный оператор if
- •4.3. Составной и пустой операторы
- •4.4. Оператор безусловного перехода
- •4.5. Пример и задания с оператором if
- •4.6. Оператор выбора варианта case
- •4.7. Примеры и задания с оператором case
- •5. Программирование алгоритмов циклической структуры
- •5.1. Оператор счётного цикла
- •5.2. Примеры и задания для оператора цикла со счётчиком
- •Задания к самостоятельному выполнению
- •5.3. Оператор цикла с предусловием
- •5.4. Пример и задания для оператора цикла с предусловием
- •5.5. Оператор цикла с постусловием
- •5.6. Процедуры прерываний циклов
- •5.7. Примеры и задания для циклов с постусловием
- •Задания для самостоятельного выполнения
- •6. Структурированные типы данных
- •6.1. Массивы данных
- •Типизированные константы-массивы
- •6.2. Пример и задания для одномерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •6.3. Ограниченный тип (диапазон)
- •6.4. Пример и задания для двумерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •Задание 3
- •7. Структурное программирование
- •7.1. Структура сложной программы
- •7.2. Подпрограммы. Процедуры и функции
- •7.3. Структура подпрограммы-функции
- •7.4. Примеры и задания с подпрограммой-функцией
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •7.5. Структура подпрограммы-процедуры
- •7.6. Передача в подпрограмму массивов и строк
- •7.7. Рекурсия в программе
- •7.8. Вложенные подпрограммы
- •7.9. Процедуры exit и halt
- •7.10. Пример и задания с подпрограммой-процедурой
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •8. Обработка символьных данных
- •8.1. Символьный тип
- •8.2. Задания для символьных данных
- •9. Обработка строк текста
- •9.1. Строковый тип
- •9.2. Встроенные функции и процедуры для обработки строк
- •9.3. Пример и задания для обработки строк
- •Задания для самостоятельного выполнения
- •10. Файлы
- •10.1. Процедура связывания файлов
- •10.2. Процедуры и функции для работы с файлами
- •10.3. Типизированные файлы
- •10.4. Текстовые файлы
- •10.5. Процедуры ввода
- •10.6. Процедуры вывода
- •10.7. Примеры и задания для работы с файлами
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •11. Комбинированный тип – записи
- •11.1. Структура данных типа записи
- •11.2. Обработка полей записей
- •11.3. Задания с обработкой записей Задание 1
- •Задание 2
- •12. Процедурные типы
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Содержание
4.6. Оператор выбора варианта case
Оператор CASE позволяет в зависимости от значения какой-либо переменной или выражения порядкового типа выполнить те или иные действия.
Его структура имеет следующий вид:
CASE <ключ_выбора> OF
<константа_выбора1>: <оператор1>;
<константа_выбора2>: <оператор2>;
. . .
<константа_выбораN>: <операторN>
ELSE <оператор>
END;
где <ключ_выбора> переменная (или выражение) любого порядкового типа; <константа_выбора> константа того же типа, что и <ключ_выбора>; <оператор> произвольный оператор Pascal ABC.
Принцип действия оператора. Сначала вычисляется <ключ_выбора>, затем в списке констант выбора отыскивается нужная константа, равная <ключу_выбора>, и выполняется стоящий за ней оператор. После этого оператор CASE завершает работу. Если в списке не найдена константа, совпадающая с "ключом", выполняется оператор, стоящий после ELSE.
Заметим, что стоящая в конце часть ELSE <оператор> является не обязательной. При отсутствии в списке выбора нужной константы оператор выбора просто завершает свою работу.
Любому из операторов <списка выбора> может предшествовать несколько <констант выбора>. В этом случае они разделяются запятыми или представляют собой диапазон значений.
Пример:
CASE <ключ> OF
1: <оператор1>;
2, 3: <оператор2>;
4 .. 6: <оператор3>
ELSE <оператор>
END;
<Константа_выбора> не является меткой оператора, поэтому в разделе меток описывать её нельзя.
4.7. Примеры и задания с оператором case
Пример 1. Выполнить арифметическую операцию в зависимости от введенного с клавиатуры символа.
VAR operation: char;
x, y, z: real;
BEGIN
read(x,y);
read (operation);
CASE operation OF
'+': z:=x+y;
'-': z:=x-y;
'*': z:=x*y;
'/': z:=x/y;
ELSE write('нет опеpаций')
END;
WRITELN( ' z= ' , z )
END.
Пример 2. Составить программу для начисления зарплаты согласно следующему правилу: если стаж работы сотрудника менее пяти лет, то зарплата равна 50$, при стаже работы от пяти до 15 лет – 100$, свыше 15 лет зарплата повышается с каждым годом на 10$, причем при стаже, превышающем 30 лет, она составляет 300$.
Для программирования решения этой задачи определим математическую формулировку задачи:
50, если ST < 5;
ZP =
100 + (ST -15)*10 при 15 < ST ≤ 30;
300, если ST > 30;
где ZP – зарплата, ST – стаж работы.
Реализация задачи для примера 2
представлена следующим алгоритмом
(рис. 6) и программой:
Program zarplata;
var ST: byte; {стаж (байтовый) тип)}
Рис.
6
begin
writeln('введите стаж');
read(ST); {ввод стажа}
case ST of {выбор из }
1..4: ZP:=50;
5..15: ZP:=100;
16..29: ZP:=100+(ST-15)*10
else ZP:=300
end;
writeln(' Зарплата = ' , ZP:10:2,' $'); {вывод результата}
end.
Задания к самостоятельному выполнению (программа 2_2)
1. Определить остаток от деления на восемь введенного числа х и написать восьмеричную цифру прописью.
2. По цифре (0..9), введенной с клавиатуры, напечатать название этой цифры.
3. С клавиатуры ввести число k (1..30). Определить, какому дню недели оно соответствует, если первое число – понедельник.
4. Ввести число и номер месяца. Напечатать дату с названием месяца прописью.
5. Идет k секунда суток. Вычислить, сколько прошло часов и полных минут к этому моменту, при этом согласовать со значением слова (час, часа, часов, минута, минуты, минут).
6. В зависимости от номера (N) типа фигуры организовать ввод необходимых данных и вычислить при N = 1 – площадь круга, N = 2 – объем шара (4/3πR3), N = 3 – объем цилиндра, N = 4 – площадь поверхности сферы 4πr2.
7. Ввести число N (0 ≤ N ≤ 15). Определить и напечатать шестнадцатеричную цифру, ему соответствующую.
8. Для целого числа R (1…99) напечатать фразу « Мне R лет », при некоторых значениях R слово «лет» заменить словом «год» или «года».
9. В зависимости от заданного номера фигуры ввести необходимые данные и вычислить при к = 1 площадь прямоугольника, при к = 2 площадь параллелограмма, а при к = 3 площадь трапеции по формуле (a+b) h/2. Во втором случае напечатать: является ли фигура параллелограммом или ромбом.
10. Перевести введенное целое число 0 ≤ х ≤ 31 в шестнадцатеричную систему счисления.