- •Министерство образования и науки российской федерации
- •Начальный курс программирования на основе алгоритмического языка Паскаль
- •Введение
- •Часть. Основы программирования на Паскале
- •1.1. Структура простейшей Паскаль-программы
- •1.2. Данные и операции над ними
- •1.2.1. Свойства ячейки памяти. Переменные и константы
- •1.2.2. Типы данных
- •1.2.3. Правила записи констант
- •1.2.4. Описание переменных и именованных констант в Паскале
- •1.2.5. Выражения
- •1.3. Операторы преобразования данных
- •1.3.1. Оператор присваивания
- •1.3.2. Понятие ввода и вывода
- •1.3.3. Оператор вывода
- •1.3.4. Оператор ввода
- •1.4. Разработка простейших программ
- •1.4.1. Понятие о качестве программы и основные технологические принципы разработки программ
- •1.4.2. Алгоритм и способы его записи.
- •1.4.3. Изображение алгоритмов в виде блок-схем
- •1.4.4. Базовые структуры алгоритмов и их кодирование на Паскале
- •1. Следование
- •2. Ветвление (развилка)
- •If условие then
- •If условие then
- •3. Цикл
- •1.4.5. Примеры разработки программ
- •1.5. Массивы
- •1.5.1. Понятие массива. Основные правила работы с массивами в Паскале
- •1.5.2. Примеры программ с массивами
- •1.614. Структура паскаль-программы
- •Часть.Подпрограммы
- •2.1. Общие сведения о подпрограммах
- •2.2. Процедуры в Паскале
- •2.2.1.Описание процедур
- •2.2.2. Обращение к процедуре
- •2.3. Функции Паскаля
- •2.3.1. Описание функций
- •2.3.2. Обращение к функции
- •2.4. Глобальные и локальные имена
- •2.5. Использование подпрограммы в качестве параметра другой подпрограммы
- •2.6. Модули
- •2.6.1. Общие сведения
- •2.6.2. Структура модуля
- •2.6.3. Использование модулей
- •2.6.4. Модули как средство программирования
- •Часть. Обработка символьной информации и документов сложной структуры
- •3.1. Обработка символьной информации
- •3.1.1. Символьный тип
- •3.1.2.Строковые типы
- •3.1.3. Подпрограммы, работающие со строками
- •Функции
- •Процедуры
- •3.2. Тип запись
- •3.3. Файлы
- •3.3.1. Общие понятия
- •3.3.2. Файлы в Турбо Паскале
- •3.3.3. Текстовые файлы
- •Пример 1
- •Пример 2
- •3.3.4. Типизированные файлы
- •3.3.5. Нетипизированные файлы
- •Часть IV. Работа с динамическими массивами
- •О статическом и динамическом распределении памяти
- •Указатели в Паскале
- •Динамические массивы
- •Формальные параметры-массивы без указания границ
- •Приложение 1. Краткая инструкция по работе в среде Turbo (Borland) Pascal.
- •Режимы компиляции программы, использующей модули
- •Приложение 2. Краткая инструкция по работе в режиме консольного приложения средыDelphi. Создание консольного приложения
- •Сохранение консольного приложения.
- •Отладка программы
- •Контрольные вопросы
- •Заключение
- •Библиографические ссылки
- •Содержание
- •Часть IV. Работа с динамическими массивами 98
1.2.2. Типы данных
Кроме разделения данных на переменные и константы, существует классификация данных по типу. Описание переменных прежде всего состоит в объявлении их типа. Тип данных характеризует форму их представления в памяти компьютера, и, следовательно, область значений. Каждый тип характеризуется набором выполняемых над данными операций. Традиционно в универсальных языках программирования имеются такие стандартные типы, как целый, вещественный, символьный и логический5.
Существование двух числовых типов (целого и вещественного) связано с двумя возможными формами представления чисел в памяти компьютера.
Данные целого типахранятся в форме представленияс фиксированной точкой. Для нее характерны абсолютная точность представления чисел и выполнения операций над ними, а также ограниченный диапазон значений чисел. Целый тип используется для данных, которые в принципе не могут иметь дробной части (количество людей, машин, и т. д., номера и счетчики).
Тип вещественныйсоответствует форме представления чиселс плавающей точкой, для которой характерны приближенное представление числа с заданным количеством значащих цифр (знаков мантиссы) и большим диапазоном порядка числа, что обеспечивает возможность представления как очень больших, так и очень малых по абсолютной величине чисел.В силу приближенного представления данных вещественного типа сравнение их на равенство является некорректным.
В современных реализациях универсальных языков программирования обычно существует несколько целых и несколько вещественных типов, каждый из которых характеризуется определенным размером отводимой под одно значение памяти и, соответственно, определенным диапазоном значений чисел, а для вещественных типов - и определенной точностью (числом цифр мантиссы).
Данные символьного типапринимают значения на всем множестве допустимых для данного компьютера символов. Каждому символу соответствует двоичный код, все коды символов собраны в специальные стандартные таблицы кодирования. В настоящее время используются таблицыANSI(в которой для хранения одного символьного значения отводится один байт) иUNICODE(код одного символа занимает два байта). Эти таблицы совместимы: первые 256 кодовUNICODEсовпадают с кодамиANSI. Существование двух кодовых таблиц объясняется необходимостью поддержки приемственности программного обеспечения при развитии компьютерной техники: для уже устаревших 16-разрядных компьютеров используется таблицаASCII, первая половина которой совпадает сANSI.
В Паскале для описания данных символьного типа используется ключевое слово char. В версииBorlandPascalиспользуется только система кодирования ANSI. ВObjectPascal, кроме типаchar,имеется типwidechar, поддерживающий кодировкуUNICODE.
Данные логического типа в Паскале описываются с помощью ключевого слова boolean.
Используемые в различных версиях Паскаля целые и вещественные типы представлены в таблицах 1-4.
Таблица 1.
Стандартные целые типы данных Borland Pascal (операционная среда MS DOS)
Тип данных |
Размер, байты |
Диапазон значений |
byte |
1 |
0...255 |
shortint |
1 |
-128...127 |
word |
2 |
0...65535 |
integer |
2 |
-32768...32767 |
longint |
4 |
-2147483648...2147483647 |
Таблица 2.
Стандартные целые типы данных Object Pascal (операционная среда Windows)
Тип данных |
Размер, байты |
Диапазон значений |
byte |
1 |
0...255 |
shortint |
1 |
-128...127 |
word |
2 |
0...65535 |
smallint |
2 |
-32768...32767 |
integer |
2 |
-2147483648...2147483647 |
longint |
4 |
-2147483648...2147483647 |
longword |
4 |
0…4294967295 |
int64 |
8 |
-263…+263-1 |
Таблица 3. Стандартные вещественные типы данных Borland Pascal (операционная среда MS DOS)
Тип данных |
Размер, байты |
Диапазон порядка |
Число цифр мантиссы |
single |
4 |
-45...+38 |
7…8 |
real |
6 |
-39…+38 |
11…12 |
double |
8 |
-324...+308 |
15…16 |
extended |
10 |
-4951...+4932 |
19…20 |
comp6 |
8 |
-263-1…+263-1 |
19…20 |
Таблица 4. Стандартные вещественные типы данных Object Pascal (операционная среда Windows)
Тип данных |
Размер, байты |
Диапазон порядка |
Число цифр мантиссы |
single |
4 |
-45...+38 |
7…8 |
real48 |
6 |
-39…+38 |
11…12 |
real |
8 |
-324...+308 |
|
double |
8 |
-324...+308 |
15…16 |
extended |
10 |
-4951...+4932 |
19…20 |
comp7 |
8 |
-263-1…+263-1 |
19…20 |
currency8 |
8 |
‑922337203685477.5808…922337203685477.5807 |
19…20 |
Заметим, что помнить эти таблицы совершенно необязательно. Для написания программ первой части пособия нам потребуются всего два числовых типа: вещественный real и целый integer.
Все рассмотренные в этом параграфе типы относятся к стандартным ( т. е. встроенным в язык) типам Паскаля. У пользователя имеется возможность задать собственные, нестандартные типы в разделе TYPEпрограммы – об этом см. §§1.5.2, 1.6.