- •Федеральное агентство по образованию
 - •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'.
