
- •Федеральное агентство по образованию
- •1. Метод проектирования программных средств
- •1.1. Техническое задание
- •1.2. Анализ задачи
- •1.3. Разработка алгоритма
- •1.4. Выбор языка программирования
- •2. Структуры алгоритмов
- •2.1. Алгоритм линейной структуры
- •2.2. Ветвления
- •2.3. Циклы
- •3. Еспд
- •3.1. Схемы алгоритмов, программ, данных и систем
- •1. Правила применения символов
- •2 Правила выполнения соединений
- •3 Специальные условные обозначения
- •3.2. Другие разделы еспд приведены в приложении №1.
- •4. Классификация языков программирования
- •Краткая история языков программирования
- •5. Работа в интегрированной среде Турбо Паскаль 7.0.
- •6. Основы Паскаля
- •6.1. Алфавит и лексемы
- •6.1.1. Имена, ключевые слова и знаки операций
- •6.1.2. Константы
- •6.1.3. Метки
- •6.1.4. Комментарии
- •6.1.5. Директивы компилятору
- •6.2. Структура программной единицы
- •6.3. Стиль записи программ на языке Паскаль
- •7. Типы данных в Паскале
- •7.1. Классификация типов данных в Турбо Паскале
- •7.2. Порядковые типы
- •7.2.1. Логический (булевский) тип
- •7.2.2. Целые типы
- •7.2.3. Перечисляемый тип
- •7.2.4. Тип – диапазон
- •7.2.5. Символьный тип
- •7.3. Вещественные типы
- •7.4. Строки
- •7.4.1. Основные понятия
- •7.4.2. Операции над строками
- •7.4.3. Процедуры и функции для работы со строками
- •8. Совместимость и преобразование типов
- •8.1. Совместимость типов
- •8.2. Преобразование (приведение) типов и значений
- •8.2.1. Явное преобразование типов и значений
- •8.2.2. Неявное преобразование типов
- •9. Выражения в языке Паскаль
- •10. Оператор присваивания
- •11. Простейший ввод-вывод на Паскале
- •11.1. Стандартные файлы Input и Output
- •11.2. Ввод с клавиатуры
- •11.3. Вывод на экран
- •12. Средства языка тр для циклов с известным числом повторений
- •12.1. Табулирование функций
- •13. Разветвляющиеся алгоритмы
- •13.1. Команда выбора case
- •13.2. Команда ветвления
- •14. Циклы с неизвестным числом повторений
- •14.1. Цикл с предусловием (While)
- •14.2. Цикл с постусловием (Repeat … until)
- •Приложение 1. «Стандарты еспд»
- •Руководство системного программиста гост 19503-79*
- •Общие положения
- •Содержание разделов
- •Руководство оператора гост 19.505 – 79* Общие положения
- •Содержание разделов
- •Описание программы гост 19.402-78
- •Программа и методика испытаний еспд. Гост 19.301-79
- •Общие положения
- •Содержание разделов
- •59 Лекции по курсу «Языки программирования» Часть I.
7.2.3. Перечисляемый тип
При описании переменной этого типа задается (правда, не напрямую, а косвенно) список ее возможных значений. Количество всех возможных значений конечно. Этому определению соответствуют следующие типы данных: word, byte, integer, char, Boolean.
Этот список задается в виде последовательности имен идентификаторов (каждый идентификатор соответствует одному значению), разделенных запятыми. При этом список заключается в круглые скобки:
Var
0 1 2 3 4 5 ----- в программу вместо имен будут подставлены эти значения
v:(a,
b,
c,
d,
e,
f);
идентификаторы
Синтаксическая
диаграмма:
byte=(0,1,..,255);
char=(сим0, сим1, …, сим255);
boolean = (false, true);
Правила для нахождения значений, соответствующих именам этого списка: самому левому значению соответствует - 0; следующему соответствует 1, и так далее - каждому следующему (слева направо) идентификатору соответствует значение на 1 большее, чем у соседа слева.
Смысл этого типа: как и при использовании простых констант здесь используются имена вместо чисел.
Значения этих переменных на экран и вводить с клавиатуры.
Однако можно посмотреть значение такой переменной в окне Watch.
Вопрос: что можно присвоитьпеременной этого типа – имя (из перечня) или число?
7.2.4. Тип – диапазон
Переменные данного типа объявляются с использованием указания левой и правой границы диапазона.
Общий вид:
Var
v: левая .. правая ;
Примечание 1. Правая граница должна быть обязательно больше, чем левая.
ПРИМЕР:
Var
v: 1..10; {правильная запись}
v: 10..1; {неправильная запись}
Примечание 2. Базовым типом для типа-диапазона может быть любой порядковый тип, кроме типа-диапазона. В рассмотренном выше случае базовым является целый тип.
Var
s: ‘a‘..’z’; - базовым является символьный (char) тип.
Примечание 3. Когда в объявлении типа указывается левая и правая границы, то этим вы указываете компилятору, что возможные значения переменных могут находиться только в этом диапазоне. И компилятор далее будет за этим тщательно следить, включая в программу соответствующие дополнительные команды для проверки.
Примечание 4. Если включена опция компилятора Range Checking или использована директива компилятора {$R+} в программе, то это заставляет компилятор выполнять проверку выхода значения переменной за указанный диапазон.
7.2.5. Символьный тип
Объявляется следующим образом:
Var
c: char;
Переменная этого типа занимает 1 байт без знака. Диапазон значений от 0 до 255.
Для каждой переменной символьного типа в памяти хранится код символа (порядковый номер символа в таблице кодов ASCII), то есть:
c := ‘ ‘; ------ храниться будет 3210.
c := ‘1’; ------- храниться будет 6110.
К символам можно применять операции отношения (<, <=, >, >=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. Других операций с символами нет, да они и не имеют смысла.
Стандартных подпрограмм для работы с символами тоже немного:
Имя |
Описание |
Результат |
Пояснения |
ord |
Порядковый номер символа |
Целый
|
ord(' b') даст в результате 98 ord(' ю') даст в результате 238 |
Chr |
Преобразование в символ |
Символьный |
chr (98) даст в результате ' b' chг (238) даст в результате 'ю' |
pred |
Предыдущий символ |
Символьный |
pred(' b') даст в результате ' а' |
succ |
Последующий символ |
Символьный |
succ(' b') даст в результате ' С' |
upcase |
Перевод в верхний регистр* |
Символьный |
upcase(' b') даст в результате ' В' |
* – Только для символов из диапазона 'а' .. 'z'.