- •Программирование на языке Паскаль
- •Содержание
- •Введение. Структура программы. Типы данных
- •Структура программы в зыке Паскаль
- •Комментарии
- •Раздел описания переменных
- •Имена идентификаторов в языке Паскаль
- •Типы данных в языке Паскаль
- •Целые типы
- •Вещественные типы
- •Раздел описания констант
- •Оператор ввода
- •Составной оператор
- •Условный оператор
- •Выражения
- •Арифметические операции
- •Логические выражения
- •Логические операции
- •Приоритеты операций
- •Стандартные математические и арифметические функции
- •Структурированные операторы
- •Оператор выбораCase
- •Оператор циклаFor
- •Оператор циклаWhile
- •Inc(n); { Увеличение значения пременнойnна 1 }
- •Оператор циклаRepeat
- •Пользовательские порядковые и составные типы. Процедуры и функции
- •Раздел описания типов
- •Интервальный тип
- •Перечислимый тип
- •Тип массив
- •Строковый тип
- •Процедуры и функции для работы со строками
- •Типизированные константы
- •Процедуры и функции
- •Обращение к процедурам и функциям
- •Процедуры и функции. Процедурные типы. Тип указатель
- •МодификаторыVar иConst в описании формальных параметров
- •Локальность и область действия
- •Процедурные типы
- •Тип указатель
- •Нулевой указатель
- •Работа с текстовыми файлами. Тип запись. Алгоритмы сортировки
- •Файловые типы
- •Процедуры и функции для работы с текстовыми файлами
- •Стандартные текстовые файлы
- •Тип запись
- •Обращение к элементам записи
- •Алгоритмы сортировки
- •Алгоритмы сортировки
- •Алгоритмы сортировки сравнениями
- •Объектно-ориентированное программирование. Структура программного модуля
- •Тип данных «объект»
- •Тип данных «класс»
- •Классификация стилей программирования
- •Структура программного модуля
- •Основы визуального программирования
- •Элемент управления «Поле ввода»
- •Элемент управления «Кнопка»
- •Элемент «Метка»
- •Элемент «Группа переключателей»
- •0:ShowMessage('Выбран вариант 1');
- •Виды изображений
- •КлассTPicture
- •КлассTBitmap
- •ОператорWith
- •КлассTCanvas
- •Библиографический список
- •620002, Екатеринбург, Мира, 19
Целые типы
Название |
Знаковый |
Размер |
Возможные значения | |
Integer |
да |
DOS: 2 байта (16 битов) Delphi: 4 байта (32 бита) |
–32768..32767 –2147483648..2147483647 |
–215..215–1 –231..231–1 |
Cardinal |
нет |
Delphi: 4 байта (32 бита) |
0..4294967295 |
0..232 |
Shortint |
да |
1 байт (8 битов) |
–128..127 |
–27..27–1 |
Smallint |
да |
2 байта (16 битов) |
–32768..32767 |
–215..215–1 |
Longint |
да |
4 байта (32 бита) |
–2147483648..2147483647 |
–231..231–1 |
Int64 |
да |
Delphi: 8 байтов (64 бита) |
≈ –9.2∙1018..9.2∙1018 263=9223372036854775808 |
–263..263–1 |
Byte |
нет |
1 байт (8 битов) |
0..255 |
0..28–1 |
Word |
нет |
2 байта (16 битов) |
0..65535 |
0..216–1 |
Longword |
нет |
Delphi: 4 байта (32 бита) |
0..4294967295 |
0..232–1 |
Представления типа Integer (а также и некоторых других типов, которые будут рассмотрены в дальнейшем) зависит от платформы, на которой производится компиляция программы. Например, в 16-битной системеMS‑DOS этот тип занимает 16 битов памяти, а в средеDelphi, которая работает в 32-битной системеWindows, типInteger имеет размер 32 бита. В зависимости от этого он позволяет представлять различные диапазоны целых чисел.
Некоторые типы (как Cardinal,Int64 и Longword) определены только для 32-битных программ в среде Delphi.
Вещественные типы
Название |
Размер |
Возможные значения |
Количество значащих цифр |
Real |
DOS: 6 байтов (48 битов) Delphi: как Double |
≈ 2.9∙10–39..1.7∙1038 |
11–12 |
Single |
Delphi: 4 байта (32 бита) |
≈ 1.5∙10–45..3.4∙1038 |
7–8 |
Double |
1 байт (8 битов) |
≈ 5.0∙10–324..1.7∙10308 |
15–16 |
ExtENDed |
2 байта (16 битов) |
≈ 3.6∙10–4951..1.1∙104932 |
19–20 |
Comp |
4 байта (32 бита) |
–263..263–1 |
19–20 |
Currency |
Delphi: 8 байтов (64 бита) |
≈ –9.2∙1014..9.2∙1014 |
19–20 |
Тип Real применялся в ранних версиях языка Паскаль, вDelphi он работает какDouble. Для обеспечения обратной совместимости вDelphi имеется типReal48, который работает как старыйReal.
Тип Comp представляет целые числа от –263до 263–1, но не является порядковым, а реализован как вещественный тип.
Тип Currency – это вещественные числа с фиксированной запятой с точностью 4 десятичных разряда, фактически представляет числа от 263/104до (263–1)/104, т.е. хранится как типComp, а при выполнении с ним операций автоматически делится на 104.
Раздел описания констант
Синтаксис
CONST
<Имя 1> = <Значение 1>;
<Имя 2> = <Значение 2>;
∙ ∙ ∙
<Имя N> = <Значение N>;
<Имя 1>, <Имя 2>, …, <Имя N>– имена описываемых констант, <Значение 1>, <Значение 2>, …, <Значение N>– константы или выражения-константы.
Пример
CONST
E= 2.7182818284590452354;
Str= 'Строковая константа';
HalfLen = (Length(Str)+1) div 2;
Выражения-константы
Выражения-константы могут являться либо константами, либо выражениями, в которых содержатся только константы и не могут употребляться переменные и функции, кроме следующих стандартных функций языка Паскаль: Abs,Chr,Hi,Length,Lo,Odd,Ord,Pred,Ptr,Round,
SizeOf, Succ, Swap, Trunc.
Исполнительная часть
Исполнительная часть программы на языке Паскаль начинается ключевым словом BEGIN, заканчивается словомEND (с точкой) и содержит последовательность операторов, разделенных между собой точкой с запятой.
Простые и структурированные операторы. Выражения
Операторы языка Паскаль
Все операторы языка Паскаль делятся на простые и структурированные.
Примерами простых операторов являются рассматриваемые далее оператор присваивания и операторы ввода и вывода. Структурированные операторы содержат простые или структурированные операторы внутри себя.
Оператор присваивания
( Синтаксис
<Имя переменной> := <Выражение>
Тип значения выражения должен либо совпадать с типом переменной, либо являться преобразуемым к типу переменной. Например, целочисленное значение можно преобразовать к вещественному типу, но не наоборот. Символьное значение можно преобразовать к строковому, но нельзя к целому или вещественному и т.д.
Оператор вывода
Синтаксис
Write[Ln](<Список выражений>);
В списке выражений через запятую может перечисляться любое количество значений, которые необходимо вывести на экран. Оператор WriteLn, как иWrite, выводит на экран значения указанных выражений, но в отличие от оператораWrite после этого переводит курсор на следующую строку. Для каждого выражения можно дополнительно указать формат вывода.
Синтаксис формата вывода
<Выражение>[:<Минимальная длина>[:<Точность>]]
<Минимальная длина> и <Точность> – целые числа. Если длина значения выражения при выводе на экран будет меньше, чем указанная минимальная длина, то оно будет дополнено слева соответствующим количеством пробелов. Точность задает количество десятичных знаков, которые будут напечатаны при выводе вещественных чисел. Если точность не указана, вещественные числа выводятся в экспоненциальной форме.
Пример
WriteLn(Pi,Sqrt(2)/2);
WriteLn('Sin(Pi/4)=',Sin(Pi/4):1:5);
Результат выполнения
3.14159265358979E+0000 7.07106781186548E-0001
Sin(Pi/4)=0.70711