
- •Данные. Обзор типов данных. Особенности численных данных.
- •Структура программы. Разделы объявления модулей, меток, данных, процедур и функций.
- •Оператор повтора «For». Пример.
- •Процедуры и функции. Способы и особенности передачи данных через имя и окно данных.
- •Стандартные процедуры и функции по работе со строками.
- •Записи. Объявление нового типа записи, обращение к полям записи.
- •Создание, чтение и запись текстовых файлов.
- •Создание, чтение и запись типизированных файлов.
- •Другие события
- •Проект в Delphi. Структура, основные файлы.
- •Файл Проект
- •Файл модуля формы.
- •Опции проекта
- •Модальные формы
- •Вывод в поле диалогового окна
- •Назначение файла (AssignFile)
Данные. Обзор типов данных. Особенности численных данных.
Каждый элемент данных относится к одному из конечного множества типов, допустимых для конкретной версии языка программирования. Тип - это множество значений, которые могут принимать объекты программы, и совокупность операции, допустимых над этими значениями. Например, значения 1 и 2 относятся к целочисленному типу. их можно складывать, умножать и выполнять другие арифметические операции. Для описания типа в общем случае используется зарезервированное слово Type.
Формат: Type <Имя типа> = значения типа>.
Все типы данных разделяются на две группы: скалярные (простые) и структурированные (составные). Скалярные типы в свою очередь подразделяются на стандартные и пользовательские, стандартные типы предлагаются пользователям разработчиками системы Turbo Delphi.
К стандартным скалярным относятся целочисленные, вещественные, литерные, булевские типы данных и указатели.
Данные целочисленных типов могут быть представлены как в десятичной. так и в шестнадцатеричной системах. Если число представлено в шестнадцатеричной системе перед ним без пробела записывается знак S. Диапазон изменении шестнадцатеричных чисел от $0000 до $FFFF.
В десятичной системе числа могут записываться двумя способами: с фиксированной и с плавающей точкой.
Вещественные десятичные числа с фиксированной точкой записываются по обычным правилам арифметики. Целая часть от дробной отделяется десятичной точкой. Если десятичная точка отсутствует, число считается целым. Перед числом может находиться знак "+" или "-•' Если знак отсутствует, по умолчанию число считается положительным .
Пример:
112 - целое десятичное число
3FF - шестнадцатеричное число
124.674 - вещественное число
-12.3 - отрицательное вещественное число
Вещественные десятичные числа в форме с плавающей точкой представлены в экспоненциальном виде: тЕ+р, где т - мантисса (целое или дробное число с десятичной точкой), Е- означает '•десять в степени", р - порядок (целое число),
Пример:
5.18E+02= 5.18 * 102 = 518
Пользовательские типы - перечисляемый и интервальный - разрабатываются самим программистом.
Структурированные типы в своей основе имеют один или несколько скалярных типов данных. К структурированным типам относятся строки, массивы, множества, записи, файлы и данные совершенно новой природы: процедурного типа и типа object, двум последним типам трудно поставить в соответствие данные в обычном понимании этого слова.
Скалярные типы данных.
Целочисленные типы. Целочисленные типы данных представляют собой значения, которые могут использоваться в арифметических выражениях и занимать в памяти от 1 до 4 байт.
Тип |
Диапазон |
Требуемая память (бит) |
Byte |
0..255 |
8 |
Shortint |
-128..127 |
8 |
Smallint |
-32768..32767 |
16 |
Integer |
-32768..32767 |
16 |
Longint |
-2147483648.. 2147483647 |
32 |
Word |
0..65535 |
16 |
Пример:
Var
XI, Х2 : byte;
YI : integer;
Вещественные типы данных представляют собой вещественные значения, которые используются в арифметических выражениях и занимают в памяти от 4 до 6 байт. Delphi допускает представление вещественных значении в виде как с плавающей, так и с фиксированной точкой.
Тип |
Диапазон |
Мантиса |
Требуемая память
|
Real |
2.9*10-39..1.7*1038 |
11-12 |
6 |
Single |
1.5*10-45..3.4*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 |
Пример:
Var
XI, Х2 : real;
YI : double;
Данные. Обзор типов данных. Особенности строковых данных.
Строковый тип представлен в виде набора символов из той или иной кодовой страницы и различаются по размеру и способу обращения. По размеру различают строки конечной и бесконечной длины.
Конечные строки бывают двух типов: ShortString (состоит из 255 символов) и String[ ] (в квадратных скобках указывается количество символов в строке).
Бесконечные строки задаются ключевым словом String.
Пример: Var
S1 : String;
S2, s3: String[27];
S4: ShortString;
Данные. Обзор типов данных. Особенности пользовательских данных.
Пользовательские типы
Кроме стандартных типов данных Паскаль поддерживает скалярные типы, определенные самим пользователем. К ним относятся перечислимые типы (когда непосредственно, в разделе описания типов, заранее записываются все значения для переменных этого типа) и интервальные (когда задаются границы диапазона значений для данной переменной), указательные тип (кроме Pointer), структурированные типы и процедурные типы.
Данные этих типов занимают в памяти один байт, поэтому скалярные пользовательские типы не могут содержать более 256 элементов. Их применение значительно улучшает наглядность программы, делает более легким поиск ошибок, экономит память.
Перечислимый тип
Перечислимый тип данных задается непосредственно перечислением всех значений, которые может принимать переменная данного типа. При описании отдельные значения указываются через запятую, а весь список заключается в круглые скобки. Например,
Var Season: (winter,spring,summer,autum );
Temp: (23,24,25,26);
Интервальный тип
Интервальный тип позволяет задавать две константы,определяющие границы диапазона значений для каждой переменной.Обе константы должны принадлежать одному и тому же стандартному типу (кроме real). Например,
Var S:1..30;
Сh:'a'..'f';
Указательный тип
Указательные типы - их значениями являются адреса памяти. В отличие от стандартного указательного типа Pointer, пользовательский тип определяет множество значений, которые указывают на динамические переменные определенного типа , называемого базовым типом. Указатель на какой-либо тип может быть описан до объявления самого типа:
Type PtStack=^Stack;
Stack=array[1..40] of real;
Процедурный тип
Процедурный тип позволяет объявлять переменные, которым допускается присваивание имен процедур, функций и методов, а также передавать такие переменные и имена в качестве параметров. Описание процедурных типов имеет такой же синтаксис, как и объявление процедур и функций:
Type Tproc1=procedure (var x,y:real);
Tproc2=function ( x:real):real;
Данные. Обзор типов данных. Объявление переменных и констант.
Арифметические операции с данными.
Основное предназначение арифметических операций - выполнять определенные арифметические действия над числовыми данными: складывать, вычитать, умножать, делить и т. д. Это означает, что для арифметических операций все операнды вычисляются в числовом скалярном контексте. При этом строки, содержащие правильные числовые литералы, автоматически будут преобразованы в числовые значения: если строка не содержит правильного числового литерала, то интерпретатор попытается выделить из нее число, начиная с левого символа, и использовать его в качестве операнда; если не удается выделить правильный числовой литерал, то строковый операнд принимает нулевое значение.
Арифметические операции
Операция |
Действие |
Типы операндов |
Тип результата |
Пример |
|
Бинарные |
+ |
Сложение
|
Целый Вещественный |
Целый Вещественный |
1 + 5 = 6 1.5 + 5.3 = 6.9 |
- |
Вычитание |
Целый Вещественный |
Целый Вещественный |
6 – 1 = 5 7.2 – 4.1 = 3.1 |
|
* |
Умножение |
Целый Вещественный |
Целый Вещественный |
3 * 5 = 15 3.2 * 2 = 6.4 |
|
/ |
Деление |
целый Вещественный |
Вещественный |
30 / 5 = 6 30 / 60 = 0.5 |
|
Div |
Целочисленное Деление |
Целый |
Целый |
12 div 5 = 2 11 div 3 = 3 1 div 3 = 0 |
|
Mod |
Остаток |
целый |
Целый |
11 mod 5 = 1 10 mod 3 = 1 14 mod 5 = 4 |
|
And |
Арифметическое И |
Целый |
Целый |
1 and 1 = 1, 1 and 0 = 0, 0 and 1=0, 0 and 0 = 0 12 and 22 = 4 |
|
Or |
Арифметическое ИЛИ |
Целый |
Целый |
1 or 1 = 1, 1 or 0 = 1, 0 or 1 = 1, 0 or 0 = 0, 12 or 22 = 30 |
|
Унарные |
+ |
Сохранение знака |
Целый Вещественный |
Целый Вещественный |
+(-12) = -12 +(34) = 34 |
- |
Отрицание знака |
Целый Вещественный |
Целый Вещественный |
-(-17) = 17 -(24) = -24 |
|
Not |
Арифметическое отрицание |
Целый |
Целый |
Not 0 = -1 Not 78 = -79 |
Операции сложения (+), вычитания (-), умножения (•) и деления (/) выполняются так же, как и в обычных арифметических выражениях. Целочисленное деление (div) отличается от обычной операции деления тем, что возвращает целую часть частного, дробная часть отбрасывается. Перед выполнением операции оба операнда округляются до целых значений. Результат целочисленного деления всегда равен нулю, если делимое меньше делителя.
Деление по модулю (mod) восстанавливает остаток от выполнения целочисленного деления.
Арифметическое И (and) производит логическое умножение операндов.
Операнды записываются в десятичной форме,но во время выполнения переводятся в двоичную форму. Результат представлен в десятичной форме.
Пример. Вычислить результат выражения A and В, если А=12 и В=22. А и В занимают в памяти 2 байта и в двоичной форме имеют вид: 000000000001100 и 000000000010110. В результате выполнения операции 0000000000001100 and 0000000010110 в соответствии с таблицей истинности получим результат 0000000000000100, или 4 в десятичной форме. Следовательно. 12 and 22 = 4.
Логическое сложение (or) выполняет сложение операндов в двоичной форме.
Пример. Вычислить результат выполнения выражения 12 or 22. 12 и 22 занимают в памяти по 2 байта и в двоичной форме имеют вид 0000000000001100 и 0000000000010110 соответственно.. Выполнив сложение в соответствии с таблицей истинности, получим двоичное значение суммы 0000000000011110, что соответствует числу 30 в десятичной форме. Следовательно, 12 or 22 = З0.
Применение операции not к данным целочисленных типов вызывает побитную инверсию соответствующего данному числу двоичного кода.