- •Курс лекций Язык программирования Turbo Pascal
- •Тема 1 «Языки программирования»
- •Тема 2 «Основные понятия языка»
- •2.1 Алфавит языка
- •2.2 Основные определения языка
- •2.3 Служебные слова
- •2.4 Стандартные имена
- •2.5 Идентификатор
- •2.5 Элементы данных
- •Тема 3 «Общая структура программы на языке Turbo Pascal»
- •3.1 Общая структура программы на Паскале.
- •3.2 Некоторые правила оформления программ
- •Тема 4 «Типы данных, выражения»
- •4.1. Типы данных
- •4.2 Целочисленные типы данных
- •4.3 Вещественные типы данных
- •4.4 Символьный тип данных
- •4.5 Булевский тип (Логический) данных
- •4.6 Перечисляемый тип.
- •4.7 Интервальный тип.
- •4.8 Выражения.
- •1. Умножение, деление;
- •3. Сложение, вычитание.
- •1) Арифметические операции;
- •2) Операции отношений;
- •3) Логические операции.
- •4.9 Объявление констант
- •4.10 Объявление переменных
- •Тема 5 «Операторы для записи линейных процессов»
- •5.1 Оператор присваивания
- •5.2 Оператор ввода числовых данных
- •5.3 Оператор вывода числовых данных
- •5.4 Вывод числовых данных с форматом и без формата
- •1. Вывод данных без формата.
- •2. Вывод данных с форматом.
- •Контрольные вопросы и задания
- •Тема 6 «Разветвляющиеся вычислительные процессы»
- •6.1 Типы разветвляющихся алгоритмов
- •6.2 Оператор выбора case
- •Тема 7 «Операторы цикла»
- •7.1. Типы циклических процессов
- •7.2 Цикл с известным числом повторений for
- •Оператор повтора for.
- •Домашнее задание:
- •7.3 Итерационные циклы
- •7.4 Оператор цикла с предварительным условием
- •7.5 Оператор цикла с последующим условием Repeat
- •Домашнее задание:
- •8.1 Модуль crt. (Процедуры и функции управления экраном)
- •8.2 Константы цветов.
- •Процедуры управления цветом.
- •Тема № 9: «Структурированные типы данных»
- •9.1. Массивы
- •9.2. Записи
- •9.2.1. Оператор присоединения
- •9.2.2. Записи с вариантами.
- •9.3. Множества
- •9.4. Строки
- •9.4.1. Основные операции
- •9.4.2. Доступ к элементам строковых данных
- •9.4.3. Пустой стринг
- •9.4.4. Функции преобразования
- •9.4.5. Стандартные процедуры и функции
- •Тема № 10: Работа с файлами
- •10.1. Доступ к файлам
- •10.1.1. Имена файлов
- •Инициация файла
- •10.2.Процедуры и функции для работы с файлами
- •10. 3. Текстовые файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Тема № 11: «Процедуры и функции»
- •11.1. Процедуры
- •11.2. Функции
- •Тема №12: Указатели и динамическая память.
- •12.1. Выделение и освобождение динамической памяти.
- •Тема № 13: Модули.
- •13.1.Компиляция модулей.
- •13.2. Стандартные модули.
- •13.2.1.Модуль crt.
- •13.2.2. Модуль Graph
- •13.2.3. Модуль Overlay
- •Задания для самостоятельной работы по теме «линейные алгоритмы»
- •Задания для самостоятельной работы по теме «разветвляющиеся алгоритмы»
- •Задания для самостоятельной работы по теме «циклические алгоритмы»
- •Задания для самостоятельной работы «векторы»
- •Задания для самостоятельной работы «строки»
- •Задания для самостоятельной работы «процедуры и функции»
- •Задания для самостоятельной работы «записи»
- •Задания для самостоятельной работы по теме «множества»
- •Задания для самостоятельной работы по теме «файлы»
- •Задания для самостоятельной работы по теме «модуль graph»
- •Задания для самостоятельной работы по теме «модули, определяемые пользователем»
6.2 Оператор выбора case
З
апись
оператора выбора
CASE K OF
A1 : серия 1;
A2 : серия 2;
...
AN : серия N
ELSE серия N + 1
END;
Индекс выбора К состоит из выражения. Элементы списка выбора включают список операторов, каждый из которых помечен одной или несколькими константами выбора. Все константы выбора А1, А2,…,АN должны быть различными, а их тип должен быть идентичен типу выражения (индекса выбора ). В качестве типа выражения К, следовательно и констант выбора можно использовать любой простой тип, за исключением типа REAL.
Выполнение оператора выбора: вначале вычисляется значение индекса выбора. Затем выбирается для выполнения тот оператор из списка элементов выбора, который помечен константой выбора, имеющей данное значение. Если константы с таким значением нет, то возникает ошибка, и выполнение всей программы завершается аварийно.
Таким образом, в результате выполнения оператора выбора должен быть выполнен один из операторов, входящих в его состав.
Любая из указанных серий операторов может состоять как из единственного оператора, так и нескольких (в этом случае, как обычно, операторы, относящиеся к одной метке, должны быть заключены в операторные скобки begin..end).
Задача 1. В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому календарю. Справка: 1996 г. — год крысы — начало очередного цикла.
Поскольку цикл является двенадцатилетним, поставим название года в соответствие остатку от деления номера этого года на 12.
Program Goroskop;
Var Year : Integer;
Begin
Write('Введите год '); ReadLn(Year);
CASE Year MOD 12 OF
0 : WriteLn('Год Обезьяны');
1 : WriteLn('Год Петуха');
2 : WriteLn('Год Собаки');
3 : WriteLn('Год Свиньи');
4 : WriteLn('Год Крысы');
5 : WriteLn('Год Коровы');
6 : WriteLn('Год Тигра');
7 : WriteLn('Год Зайца');
8 : WriteLn('Год Дракона');
9 : WriteLn('Год Змеи');
10 : WriteLn('Год Лошади');
11 : WriteLn('Год Овцы')
END;
END.
Задача 2. Найти наибольшее из двух действительных чисел, используя оператор выбора.
Program Maximum;
Var Max, X, Y : Real;
Begin
Write('Введите два неравных числа:');
ReadLn(X, Y);
Case X > Y Of
TRUE : Max := X;
FALSE : Max := Y
End;
WriteLn('Максимальное из двух есть ', Max : 12 : 6)
End.
Задача 3. Преобразовать символ, если он является строчной русской буквой, в заглавную букву.
Так как в альтернативной системе кодировки ASCII строчные русские буквы идут не подряд, а с некоторым разрывом, то в данном случае, в зависимости от того, в какую часть таблицы попадает введенная буква, используется та или иная формула. Если введённый символ не является строчной русской буквой, он выводится без изменения.
Program UpCase;
Var C : Char;
Begin
Write('Введите символ:');
ReadLn(C);
Case C Of
'а'..'п' : C := Chr(Ord(C) - 32);
'р'..'я' : C := Chr(Ord(C) - 80)
End;
WriteLn(C);
End.
Как видно из примера, в качестве метки может выступать не только отдельное значение, но и диапазон значений. Кроме того, в качестве метки может выступать перечень значений выражения (значения перечисляются через запятую).
6.3 Метка. Оператор перехода. Пустой оператор
Каждый оператор в программе может быть помечен меткой - целым числом без знака, содержащим не более четырех цифр. Ведущие незначащие нули не влияют на значение метки. Поэтому метки 5, 05, 005, 0005 считаются одинаковыми. Метка располагается перед оператором и отделяется от него двоеточием.
Метки не влияют на выполнение оператора. Они должны быть описаны в разделе описания меток прежде, чем они используются. Описание меток состоит из ключевого слова LABEL и следующего за ним списка меток.
Описания меток располагаются до совокупности всех описаний переменных. Описанной меткой должен быть помечен только один оператор программы.
Оператор перехода прерывает естественный порядок выполнения операторов. Он состоит из ключевого слова GOTO, за которым следует метка. Дальнейшее выполнение программы должно продолжаться, начиная с оператора, помеченного указанной меткой.
Пустой оператор в программе обозначается точкой с запятой. Чаще всего он встречается с меткой и ставится в конце составного оператора или программы.
Пример: Написать программу «Пароль»
Program Parol;
Label m;
Const par=’Пароль’;{Это пароль для входа в систему}
Var P : Char;
Begin
M: Write('Введите пароль:');
ReadLn(P);
If P<>Par then begin
WriteLn(‘Вы ошиблись. Повторите ввод!’);
Goto m;
End
Else WriteLn(‘Добро пожаловать!’);
End.
Контрольные вопросы и задания
Когда возникает необходимость в организации развилки?
Какая развилка называется полной? неполной?
Выражение какого типа может выступать в качестве условия при организации развилки? Какие значения принимают такие выражения?
Могут ли в полной развилке не выполниться операторы ни по одной из ветвей? выполниться по обеим ветвям?
Записать примеры 1-3 по теме "Оператор выбора" с помощью условного оператора. Сколько развилок понадобилось в каждом из случаев?
В каком случае целесообразно использовать оператор выбора?
Какого типа может быть выражение, являющееся селектором выбора? Приведите примеры.
Используя оператор выбора решить задачу: "Определить знак заданного целого числа".
Приведите пример оператора выбора, где выражение-селектор выбора имеет перечислимый тип.
