- •Р.К. Ахмадулин технология программирования
- •Оглавление
- •§1. Основные понятия
- •Основные символы языка Паскаль
- •Элементарные конструкции языка Паскаль
- •Примеры записи чисел и выражений на языке Паскаль
- •Вопросы для самопроверки
- •§2. Типы данных
- •Целые типы
- •Вещественные типы
- •Символьный тип
- •Логический тип
- •Скалярные типы, определяемые пользователем
- •Вопросы для самопроверки
- •§3. Операции и выражения
- •Приоритет операций и отношений в выражениях
- •Стандартные (встроенные) функции
- •Вопросы для самопроверки
- •§4. Структура программы
- •Комментарии
- •Директивы компилятора
- •Оформление исходного текста
- •Вопросы для самопроверки
- •§5. Переменные и константы. Оператор присваивания
- •Понятие константы
- •Понятие переменной
- •Оператор присваивания
- •Совместимость типов данных
- •Понятие типизированной константы
- •Вопросы для самопроверки
- •§6. Процедуры ввода и вывода
- •Процедуры вывода
- •Форматированный вывод
- •Процедуры ввода
- •Вопросы для самопроверки
- •§7. Условный оператор и оператор выбора. Оператор перехода
- •Условный оператор if
- •Понятие составного оператора
- •Оператор выбора
- •Оператор перехода
- •Вопросы для самопроверки
- •§8. Операторы цикла
- •Циклы с заданным числом итераций
- •Циклы с предусловием
- •Циклы с постусловием
- •Вопросы для самопроверки
- •§9. Пример использования циклов
- •Вычисление факториала
- •Вычисление суммы по заданной формуле
- •Вычисление суммы по формуле с заданной точностью
- •Вычисление максимального элемента последовательности
- •Вычисление длины последовательности элементов
- •Вопросы для самопроверки
- •§10. Массивы
- •Описание массива
- •Обращение к элементам массива
- •Многомерные массивы
- •Допустимые операции с массивами
- •Инициализация массива
- •Вопросы для самопроверки
- •§11. Алгоритмы сортировки
- •Сортировка выбором
- •Сортировка вставкой
- •Пузырьковая сортировка
- •Улучшенные сортировки
- •Вопросы для самопроверки
- •§12. Строковый тип
- •Описание строковых переменных
- •Операции над строками
- •Процедуры и функции для работы со строками
- •Вопросы для самопроверки
- •§13. Записи
- •Объявление записи
- •Обращение к записям
- •Оператор присоединения with
- •Записи с вариантами
- •Инициализация записи
- •Вопросы для самопроверки
- •§14. Множества
- •Описание множеств
- •Операции над множествами
- •Пример использования множеств
- •Множества как типизированная константы
- •Вопросы для самопроверки
- •§15. Процедуры и функции
- •Понятие процедуры и функции
- •Структура процедуры
- •Структура функции
- •Формальные параметры
- •Глобальные и локальные объекты
- •Вопросы для самопроверки
- •§16. Модули
- •Понятие модуля
- •Стандартные модули в Турбо Паскаль
- •Подключение модулей
- •Структура модуля
- •Вопросы для самопроверки
- •§17. Файлы
- •Понятие файла
- •Процедуры и функции для работы с файлами
- •Понятие буфера ввода-вывода
- •Вопросы для самопроверки
- •§18. Типизированные файлы
- •Описание типизированных файлов
- •Операции над типизированными файлами
- •Последовательный и прямой доступ
- •Вопросы для самопроверки
- •§20. Текстовые файлы
- •Описание типизированных файлов
- •Чтение и запись
- •Конец строки и конец файла
- •Дополнительные процедуры для работы с текстовыми файлами
- •Файлы Input и Output
- •Вопросы для самопроверки
- •§21. Ссылки и указатели
- •Понятие указателя
- •Описание указателей
- •Операции с указателями
- •Выделение и освобождение динамической памяти
- •Вопросы для самопроверки
- •Рекомендуемая литература
- •Технология программирования
- •625000, Тюмень, ул. Володарского, 38
- •625039, Тюмень, ул. Киевская, 52
Вопросы для самопроверки
1. Что понимают в языках программирования под символами, элементарными конструкциями, выражениями и операторами?
2. Какие ошибки в коде программы может обнаружить компилятор: синтаксические или семантические?
3. Какие элементарные конструкции языка Паскаль Вы знаете?
4. Как на языке Паскаль в строке записать символ апостроф « ‘ »?
5. Как будет выглядеть запись числа 2,5 на языке Паскаль?
6. Что означает запись $ABC на языке Паскаль?
§2. Типы данных
В математике переменные классифицируются в соответствии с некоторыми важными характеристиками. Так, выделяются целые и вещественные числа, комплексные числа, логические значения и т.д.
При обработке данных с помощью компьютера такая классификация еще более важна. Любая переменная или константа, результат любого вычисления относится к определенному типу.
Тип данных, в свою очередь, определяет:
формат представления данных;
множество допустимых значений;
множество допустимых операций.
В языке Паскаль существуют скалярные и структурированные типы данных. К скалярным типам относятся стандартные типы и типы, определяемые пользователем. Стандартные типы включают целые, вещественные, символьный, логические и адресный типы. Типы, определяемые пользователем, перечисляемый и интервальный.
К структурированным типам относятся массивы, записи и т.п. Более подробно такие типы данных будут рассмотрены позже.
Далее рассмотрим, что из себя представляют скалярные типы данных.
Целые типы
Стандартные целые типы позволяют хранить только целые значения. Ниже в таблице приводится список существующих в языке Паскаль целых типов, диапазон допустимых значений, а также формат представления значений указанного типа.
Тип |
Допустимые значения |
Формат |
Integer |
-32768 … 32767 |
2 байта со знаком |
ShortInt |
-128 … 127 |
1 байт со знаком |
LongInt |
-2147483648 ... 2147483647 |
4 байта со знаком |
Byte |
0 ... 255 |
1 байт без знака |
Word |
0 … 65535 |
2 байта без знака |
Так, например, оценку студента по физике (от 0 до 100) позволит сохранить любой из перечисленных целых типов. Однако лучше всего для этого выбрать тип ShortInt или Byte, т.к. они занимают меньше всего места в памяти (1 байт). В то же время ни один из перечисленных типов не позволит сохранить среднюю оценку группы по физике, т.к. обычно такая оценка имеет дробную часть и не относится к категории целых.
Вещественные типы
Вещественные типы позволяют хранить дробные значения. В отличие от целых типов, они занимают больше памяти, а также имеют некоторые ограничения в плане допустимых операций и областей применения. Также, когда речь идет о вещественных значениях, появляется понятие точности таких чисел (знаков после десятичной точки).
Тип |
Допустимые значения |
Точность |
Формат |
Real |
2.9*10-39 ... 1.7*1038 |
11-12 знаков |
6 байт |
Single |
1.5*10-45 ... 1.7*1038 |
7-8 знаков |
4 байт |
Double |
5.0*10-324 ... 1.7*10308 |
15-16 знаков |
8 байт |
Extended |
3.4*10-4932 ... 1.1*104932 |
19-20 знаков |
10 байт |
Comp |
-263 ... 263-1 |
19-20 знаков |
8 байт |
Для вещественных чисел возможна запись в экспоненциальной форме.
Тип Real определен в стандартном Паскале и математическим сопроцессором не поддерживается. Остальные действительные типы определены стандартом IEEE 457 и реализованы на всех современных компьютерах.
Тип Comp хотя и относится к действительным типам, хранит только длинные целые значения.
Вещественный тип, например, подойдет для хранения средней оценки группы по физике.