- •Программирование на языке
- •Object pascal в среде delphi
- •(Лабораторные работы)
- •Содержание
- •Лабораторная работа 1. Программирование линейных алгоритмов
- •1.1. Базовые элементы языка Object Pascal
- •1.1.1. Алфавит языка
- •1.1.2. Синтаксис языка
- •1.1.3. Основные типы данных
- •1.1.4. Оператор присваивания
- •1.1.5. Целые типы данных
- •1.1.6. Вещественные (действительные) типы данных
- •1.1.8. Cимвольные типы данных
- •1.1.9. Строкоые типы данных
- •1.1.10. Арифметические вычисления
- •1.2. Интегрированная среда разработчика delphi
- •1.3. Структура программ delphi
- •Interface
- •Implementation
- •1.4. Пример написания программы
- •1.4.2. Изменение заголовка формы
- •1.4.6. Написание программы обработки события
- •1.4.7. Написание программы обработки события
- •2.3. Оператор выбора Case
- •2.4. Составной оператор
- •2.5. Некоторые возможности, предоставляемые Delphi для организации разветвлений
- •Interface
- •Implementation
- •2.7. Индивидуальные задания
- •3.1.2. Организация цикла с помощью оператора repeat
- •3.2. Организация вложенных циклов
- •3.3. Организация прерывания цикла
- •3.4. Алгоритмы, использующие рекуррентную последовательность
- •3.5. Пример написания программы
- •Interface
- •Implementation
- •3.6. Индивидуальные задания
- •Лабораторная работа 4. Программирование с использованием массивов
- •4.1. Работа с массивами
- •4.2. Операции над массивами
- •4.3. Примеры часто встречающихся алгоритмов работы с массивами
- •4.4. Компонент tStringGrid для ввода/вывода массивов
- •4.5. Пример написания программы с использованием tStringGrid
- •Interface
- •Implementation
- •4.6. Компонент tEdit для ввода одномерных массивов
- •4.7. Пример написания программы с использованием tEdit
- •4.7. Компонент tMemo для ввода/вывода одномерных массивов
- •4.8. Пример написания программы с использованием tMemo
- •4.9. Индивидуальные задания
- •Лабораторная работа 5. Программирование с использованием строковых данных
- •5.1. Работа со строками
- •5.2. Пример написания программы
- •Лабораторная работа 6. Программирование с использованием подпрограмм и модулей
- •6.1. Описание подпрограмм
- •6.2. Передача данных через формальные параметры
- •6.3. Процедурные типы
- •6.4. Область видимости переменных
- •6.5. Пример написания программы с использованием процедур
- •Interface
- •Implementation
- •6.6. Использование модулей
- •6.7. Пример написания программы с использованием модуля
- •6.7.1. Создание модуля
- •6.7.2. Подключение модуля
- •Implementation
- •6.8. Индивидуальные задания
- •Лабораторная работа 7. Построение графиков
- •7.1. Компонент tChart
- •7.2. Пример написания программы
- •7.4. Индивидуальные задания
- •Лабораторная работа 8. Работа с файлами
- •8.2. Прямая работа с файлами (классический способ)
- •Доступ к файлам
- •Подпрограммы для работы с файлами
- •Запись и чтение типизированных файлов
- •Запись и чтение нетипизированных файлов
- •8.3. Диалоги открытия и сохранения файлов
- •8.4. Пример написания программы
- •8.5. Индивидуальные задания
- •Средства отладки программ в delphi
- •Литература
1.1.3. Основные типы данных
Тип данных определяет количество выделяемых ячеек памяти и перечень допустимых операций. Существует две основные группы типов данных: скалярные (простые) и структурированные (составные). Данные скалярного типа представляют собой одно значение, размещенное в одной или нескольких ячейках памяти. Структурированные данные (объявляются после ключевого слова type) представляют собой объединение нескольких однотипных или неоднотипных данных скалярного типа.
Все данные могут быть либо константами (объявляются после ключевого слова const), либо переменными (объявляются после ключевого слова var). Значение переменных может быть изменено в процессе выполнения программы, а значение констант – не может. Типы данных приведены на рис. 1.1.
Рис. 1.1. Типы данных Object Pascal
1.1.4. Оператор присваивания
Оператор присваивания записывается в виде:
<имя переменной>:=< выражение соответствующего типа>;
Переменная может быть любого типа, а выражение должно иметь тип, соответствующий типу переменной (разрешается присваивать действительной переменной значение, имеющее целый тип).
1.1.5. Целые типы данных
Используются для представления целых чисел. Характеристики основных целых типов данных приведены в табл. 1.1.
Таблица 1.1
Тип |
Диапазон возможных значений |
Размер памяти для хранения данных |
Integer |
-2147483648 .. 2147483647 |
4 байта (32 бита) |
Cardinal |
0 .. 4294967295 |
4 байта (32 бита) |
ShortInt |
-128 .. 127 |
1 байт (8 бит) |
SmallInt |
-32768 .. 32767 |
2 байта (16 бит) |
LongInt |
-2147483648 .. 2147483647 |
4 байта (32 бита) |
Int64 |
-263 .. 263-1 |
8 байт (64 бита) |
Byte |
0 .. 255 |
1 байт (8 бит) |
Wodd |
0 .. 65535 |
2 байта (16 бит) |
LongWord |
0 .. 4294967295 |
4 байта (32 бита) |
Object Pascal поддерживает и наиболее универсальный целый тип - Integer, который эквивалентен LongInt.
Операции над целыми числами:
Наименование операции |
Обозначение |
Пример |
Сложение |
+ |
5 + 2 = 7 |
Вычитание |
- |
5 - 2 = 3 |
Умножение |
* |
5 * 2 = 10 |
Целочисленное деление |
div |
5 div 2 = 2 |
Остаток от целочисленного деления |
mod |
5 mod 2 = 1 |
Логическое равно |
= |
5 = 5 , результат: истина |
Логическое не равно |
<> |
5 <> 5 , результат: ложь |
Сравнение |
>, >=, <, <= |
|
1.1.6. Вещественные (действительные) типы данных
Используются для представления чисел, имеющих дробную часть. Характеристики основных вещественных типов данных приведены в табл. 1.2.
Таблица 1.2
Тип |
Диапазон возможных значений |
Максимальное количество цифр в числе |
Размер в байтах |
Real48 |
2,9 x 10-39 .. 1,7 x 1038 |
11 - 12 |
6 |
Real |
5,0 x 10-324 .. 1,7 x 10308 |
15 - 16 |
8 |
Single |
1,5 x 10-45 .. 1,7 x 1038 |
7 - 8 |
4 |
Double |
5,0 x 10-324 .. 1,7 x 10308 |
15 -16 |
8 |
Extended |
3,6 x 10-4951 .. 1,1 x 104932 |
19 - 20 |
10 |
Comp |
-263+1 .. 263 |
19 - 20 |
8 |
Cyrrency |
-922337203685477,5808 .. 922337203685477,5808 |
19 - 20 |
8 |
Язык Delphi поддерживает и наиболее универсальный вещественный тип - Real, который эквивалентен Double.
Операции над вещественными (действительными) числами:
Наименование операции |
Обозначение |
Пример |
Сложение |
+ |
5 + 1,5 = 6,5 |
Вычитание |
- |
8 - 4,2 = 3,8 |
Умножение |
* |
2 * 2,6 = 5,2 |
Деление |
/ |
5 / 2 = 2,5 |
Логическое равно |
= |
5 = 5 , результат: истина |
Логическое не равно |
<> |
5 <> 5 , результат: ложь |
Сравнение |
>, >=, <, <= |
|
1.1.7. Булевы типы данных
Используются для представления логических значений. Наиболее часто используется тип Boolean, который занимает 1 байт памяти и может принимать два значения: true (истина) или false (ложь). Для булевых типов данных определены логические операции and, or, not, xor. Например, если переменные b1 и b2 имеют тип Boolean, то
b1 := 5 > 3; // результат: b1=true
b2 := 5 = 3; // результат: b2=false
b1 := not b2; // результат: b1=true
b2 := b1 and b2; // результат: b2=true