
- •Языки и системы программирования Алгоритмы
- •Языки программирования
- •Область применения языков программирования
- •Сложность и эффективность языков программирования
- •Трансляторы
- •Характеристика с/п Pascal abc
- •Используемые в с/п Pascal abc «горячие клавиши»
- •Структура программы на Паскале
- •Сообщения об ошибках. Отладка программы.
- •Система подсказок.
- •Команды вывода данных на экран
- •Константы
- •Переменные
- •Арифметические выражения. Приоритет арифметических операций
- •Стандартные арифметические функции
- •Процедуры инкремента и декремента
- •Примеры решения линейных задач
- •Ввод данных с клавиатуры
- •Примеры решения диалоговых задач
- •Линейные задачи для самостоятельной работы
- •Лаб. 1. Линеаризовать выражение:
- •Лаб. 2. Линейные диалоговые задачи (на одно действие)
- •Лаб. 3. Диалоговые задачи на несколько действий
- •Ветвление
- •Логические выражения
- •Вложенное ветвление
- •Лаб. 4. Задачи на ветвление:
- •Лаб. 5. Задачи на ветвление с вычислениями:
- •Выбор варианта
- •Лаб. 6. Задачи на выбор варианта:
- •Как выбрать цикл?
- •Экстренные события в теле цикла
- •Лаб. 7. Числовые задачи с циклом For
- •Лаб. 8. Сюжетные задачи с циклом For
- •Лаб. 9. Задачи с условными циклами
- •Библиотека crt
- •Библиотека sounds
- •Лаб. 10. Задачи с использованием циклов и библиотек crt и sounds
- •Порядковые типы данных
- •Перечислимый тип данных
- •Символьный тип данных
- •Ограниченный (интервальный) тип данных
- •Лаб. 11. Задачи со строками
- •Массивы
- •Решение задач с массивами
- •Поиск минимального (максимального) элемента массива
- •Сортировка массива.
- •Двумерные и многомерные массивы
- •Лаб. 12. Задачи с одномерными массивами
- •Лаб. 13. Задачи с двумерными массивами
- •Множества
- •Файлы данных
- •Записи и базы данных
- •Библиотека GraphAbc
- •Действия с графическим окном:
- •Точечная графика
- •Графические примитивы
- •Текст в графическом окне
- •Использование готовых точечных рисунков
- •Вспомогательные алгоритмы
- •Рекурсия
- •Событийное программирование
- •Использование таймеров
- •Использование сторонней библиотеки ukeyb
Порядковые типы данных
В программировании (как и в математике) используются два набора чисел: непрерывный и дискретный.
К непрерывному набору относятся вещественные (дробные) числа. Смысл непрерывности заключается в том, что для двух любых, сколь угодно близких друг другу неравных чисел найдётся промежуточное число. Например, возьмём A=0.000001 и B=0.000002. Для них существует промежуточное число C=0.0000015. При использовании компьютера понятие непрерывности нарушается. Дело в том, что для дробного числа в компьютере выделяется определённое количество байт. Например, в Pascal ABC для числа типа Real резервируется 8 байт. Такое число содержит 16 значащих цифр и по модулю не может превосходить величины 1.7∙10308. Самое маленькое положительное число типа Real равно 5.0∙10-324. Следовательно, если A и B отличаются на 1 только в 16-ой цифре, то найти между ними промежуточное значение C невозможно.
Надо иметь в виду, что в других реализациях Паскаля тип Real может отличаться по количеству байт, верхнему и нижнему пределам, числу значащих цифр. Кроме того, многие реализации Паскаля имеют и другие вещественные типы данных (single, double, cardinal…), которые отличаются от Real количеством байт, верхним и нижним пределами, числом значащих цифр. Поэтому, приступая к работе с какой-либо реализацией Паскаля, следует изучить используемые в ней вещественные типы данных или, если очень высокая точность расчётов не требуется, ограничиться типом Real, который имеется в любой реализации Паскаля.
К дискретному набору (порядковые типы данных) относятся целые числа. Кроме уже известного Вам типа Integer, существуют и другие. Сравним их с помощью таблицы:
-
Тип
Байт
Значащих цифр
Нижний предел
Верхний предел
Integer
2
5
-32768
32767
Byte
1
3
0
255
ChortInt
1
3
-128
127
Word
2
5
0
65535
LongInt
4
9
-2147483648
2147483647
К порядковым типам данных относятся не только числовые, но ещё перечислимые, символьные и ограниченные типы данных. Рассмотрим их подробнее:
Перечислимый тип данных
Перечислимый тип определяется упорядоченным набором идентификаторов. Задаётся этот набор в разделе type (он находится до раздела var), а в разделе var описываются переменные такого типа. Например:
type
DayOfWeek = (Mon,Tue,Wed,Thi,Thr,Sat,Sun); var
Segodnya,
Zavtra: DayOfWeek; begin
Segodnya:=Wed;
Zavtra:=succ(Segodnya);
writeln('Завтра
будет
',ord(Zavtra)); end.
С данными перечислимого типа возможны такие операции:
Найти порядковый номер величины в наборе: k:=ord(Zavtra);
Найти следующее значение в наборе: Zavtra:=succ(Segodnya);
Найти предыдущее значение в наборе: Vchera:=pred(Segodnya);
Переменную перечислимого типа можно использовать в качестве счётчика в цикле for и в качестве проверяемого выражения в команде выбора варианта case. Например: