- •Программирование на языке высокого уровня
- •1 Часть Учебное пособие Москва 2007
- •Оглавление
- •1. Основы алгоритмизации
- •1.1. Алгоритмизация и требования к алгоритму
- •1.2. Блок-схемы алгоритмов
- •1.2.1. Способы записи алгоритма
- •1.2.2. Блок-схемы
- •1.2.3. Следование, ветвление, цикл
- •1.3. Этапы разработки программы
- •1.3.1. Язык программирования. Программа
- •1.3.2. Этапы разработки
- •1.4. Ошибки
- •1.4.1. Компилятор. Синтаксис и семантика
- •1.4.2. Типы ошибок
- •2. Алфавит языка Турбо Паскаль. Программа
- •2.1. Идентификаторы
- •2.2. Разделители
- •2.3. Специальные символы
- •2.4. Структура Pascal-программы
- •Пример простейшей программы на языке Pascal
- •3. Типы данных
- •3.1. Структура типов данных
- •3.2. Простые типы
- •3.2.1. Порядковые типы
- •3.2.1.1 Целые типы.
- •3.2.1.1.1. Встроенные процедуры и функции, применимые к целым типам
- •3.2.1.2. Логический тип.
- •3.2.1.3. Символьный тип.
- •3.2.1.4. Перечисляемый тип.
- •3.2.2. Вещественные типы
- •3.3. Константы и переменные
- •3.4. Преобразование типов
- •4. Операторы
- •4.1. Ввод данных
- •4.2. Вывод данных
- •4.3. Составной оператор
- •4.4. Условный оператор
- •4.5. Операторы циклов
- •4.5.1. Оператор for
- •4.5.2. Оператор while
- •4.5.3. Оператор repeat
- •4.5.4. Стандартные функции для циклов
- •4.6. Оператор выбора case
- •5. Массивы
- •5.1 Определение массива
- •5.2. Ввод/вывод одномерного массива (вектора).
- •5.3 Типизированные константы – массивы
- •5.4. Сортировка массивов (ранжирование)
- •6. Процедуры и функции
- •6.1. Подпрограммы
- •6.2. Параметры. Глобальные и локальные описания
- •6.3. Процедуры
- •6.4. Функции
- •6.5. Процедура exit
- •6.6. Рекурсия
- •6.7. Директивы подпрограмм
- •6.8. Открытые массивы
- •7. Записи
- •7.1.Определение и правила записи
- •7.2. Оператор присоединения
- •7.3. Записи с вариантами (экономия пространства)
- •8. Множества
- •8.1. Понятие множества
- •8.2. Конструктор множества
- •8.3. Операции над множествами
- •8.4. Примеры программ, использующих множества.
- •Литература
3.2.1.2. Логический тип.
Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина). Для них справедливы правила:
ord(False) = 0;
ord(True) = 1;
False < True;
succ(False)= True; {Стандартная функция определения последующего элемента}
pred(True) = False. {Стандартная функция определения предыдущего элемента }
Поскольку логический тип относится к порядковым типам, его можно использовать в операторе счетного типа, например:
var
i : Boolean;
begin
for i:= False to True do ....
3.2.1.3. Символьный тип.
Значением символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0...255. Это код внутреннего представления символов. Его возвращает функция ORD.
Символы с кодами 0...31 относятся к служебным кодам. Если эти коды используются в символьном тексте программы, они считаются пробелами.
К типу CHAR применимы операции отношения, а также встроенные функции: СНR(В) - функция типа CHAR; преобразует выражение В типа BYTE в символ и возвращает его своим значением;
‘A’<’B’
ORD(‘B’)=66
ORD(‘a’)=97
ORD(‘0’)=48
СНR(48)=’0’
PRED(‘B’)=65
SUCC(‘д’)=’г’
UpCase(‘n’)=’N’
При выполнении операций сравнения сравниваются коды символов как обычные целые числа. При этом получается, что любая заглавная буква меньше соответствующей, та как в кодовой таблице сначала располагаются все заглавные буквы, а затем строчные.
UPCASE(CH) - функция типа CHAR; возвращает прописную букву, если СН -строчная латинская буква, в противном случае возвращает сам символ СН
3.2.1.4. Перечисляемый тип.
Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамленном круглыми скобками, например:
typе
colors =(red, white, blue,green);
var
animals:(cat,dog,cow);
Поскольку перечисляемый тип относится к порядковым типам, между значениями перечисляемого типа и его порядковыми номерами устанавливается соответствие:первое значение получает порядковый номер 0, второе 1 и т.д.до 65535.
ORD(red)=0; ORD(green)=3
Blue>red
Достоинства- 1. Улучшает смысловую читабельность программы
2. Более четко проводится контроль значений
3. имеет очень компактное машинное представления.
Недостатки – Не могут быть явно выведены с клавиатуры и выведены на пример.
3.2.1.5. Тип-диапазон (интервальный тип).
Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона. Тип-диапазон задается границами своих значений внутри базового типа:
<мин.знач.>..<макс.знач.>
Тип-диапазон может производить такие же действия, которые определены для базового типа. Для каждой операции с переменной интервального типа автоматически выполняется проверка: остается ли значение переменной внутри установленного для нее диапазона. Автоматическая проверка объявленных границ позволяет программисту не отвлекаться на организацию собственного контроля. В этом и есть смысл применения типа-диапазона.
Пример В хороша написанных программах вы скорее увидите
Var
Score : 2..12; чем
Score :i nteger;
Выход за границы вызовет программное прерывание.
Правила определения тип-диапазона:
-
Два символа .. рассматриваются как один, пробелы недопустимы
-
Необходимо, чтобы левая граница интервала не превышала правую.