- •Программирование на языке
- •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.8. Cимвольные типы данных
Используются для хранения одного символа.
Язык Delphi поддерживает два символьных типа: AnsiChar и WideChar:
тип AnsiChar — это символы в кодировке ANSI, которым соответствуют числа в диапазоне от 0 до 255. Каждый симол занимает 1 байт памяти.
тип WideChar — это символы в кодировке Unicode, им соответствуют числа от 0 до 65 535. Каждый симол занимает 2 байта памяти.
Object Pascal поддерживает и наиболее универсальный символьный тип Сhar, который эквивалентен AnsiChar , кажый символ которого занимает 1 байт памяти.
1.1.9. Строкоые типы данных
Язык Delphi поддерживает три строковых типа:
ShortString, LongString, WideString:
тип ShortString представляет собой статически размещаемые в памяти компьютера строки длиной от 0 до 255 символов;
тип AnsiString представляет собой динамически размещаемые в памяти строки, длина которых ограничена только объемом свободной памяти;
тип WideString представляет собой динамически размещаемые в памяти строки, длина которых ограничена только объемом свободной памяти. Каждый символ строки типа WideString является Unicode-символом.
В языке Delphi для обозначения строкового типа допускается использование универсального типа String. Объявлять строку этип типом можно как с указанием ее длины, например, var S:string[12] (в квадратных скобках -длина строки) или и без указания ее длины, например, var S:string. Тогда в первом случае такое объяление равносильно ShortString, а во втором случае - равносильно AnsiString.
1.1.10. Арифметические вычисления
Арифметические выражения строятся из числовых констант, переменных, стандартных функций и операций над ними. В арифметическом выражении принят следующий приоритет операций:
1) вычисление значений стандартных функций;
2) умножение и деление;
3) сложение и вычитание.
Порядок выполнения операций изменяется с помощью скобок.
Для проведения арифметических вычислений используются следующие процедуры и функции (табл. 1.3).
Таблица 1.3
Описание |
Обозначение |
Тип аргумента |
Тип значения |
Модуль |
1 |
2 |
3 |
4 |
5 |
Модуль (абсолютное значение) |
Abs(x) |
Целый или вещественный |
Соответствует типу аргумента |
System |
Экпонента |
Exp(x) |
Вещественный |
Вещественный |
System |
Дробная часть |
Frac(x) |
Вещественный |
Вещественный |
System |
Целая часть |
Int(x) |
Вещественный |
Вещественный |
System |
Натуральный логарифм |
Ln(x) |
Вещественный |
Вещественный |
System |
Десятичный логарифм |
Log10(x) |
Вещественный |
Вещественный |
Math |
Логарифм по основанию 2 |
Log2(x) |
Вещественный |
Вещественный |
Math |
Логарифм по основанию N |
LogN(N, x) |
Вещественный |
Вещественный |
Math |
Максимум двух чисел |
Max(A, B) |
Вещественный |
Вещественный |
Math |
Минимум двух чисел |
Min(A, B) |
Вещественный |
Вещественный |
Math |
Число π |
PI |
|
|
System |
Возведение числа А в степень Е |
Power(A, E) |
Вещественный |
Вещественный |
Math |
Округление до ближайшего целого |
Round(x) |
Вещественный |
Целый |
System |
Квадрат |
Sqr(x) |
Вещественный |
Вещественный |
System |
Корень квадратный |
Sqrt(x) |
Вещественный |
Вещественный |
System |
Возврат целой части |
Trunc(x) |
Вещественный |
Целый |
System |
Арккосинус |
ArcCos(x) |
Вещественный |
Вещественный |
Math |
Арксинус |
ArcSin(x) |
Вещественный |
Вещественный |
Math |
Арктангенс |
ArcTan(x) |
Вещественный |
Вещественный |
System |
Косинус |
Cos(x) |
Вещественный |
Вещественный |
System |
Синус |
Sin(x) |
Вещественный |
Вещественный |
System |
Тангенс |
Tan(x) |
Вещественный |
Вещественный |
Math |
Косинус гиперболический |
CosH(x) |
Вещественный |
Вещественный |
Math |
Синус гиперболический |
SinH(x) |
Вещественный |
Вещественный |
Math |
Тангенс гиперболический |
TanH(x) |
Вещественный |
Вещественный |
Math |
Генерация псевдослучайного числа из диапазона 0 .. 1 |
Random |
Вещественный |
Вещественный |
System |
Генерация псевдослучайного числа из диапазона 0 .. R |
Random(R) |
Целый |
Целый |
System |
Делает случайной генерацию псевдослучайного числа |
Randomize |
|
|
System |
Возвращает True(истина), если х - нечетное иFalse(ложь), если х - четное |
Odd(x) |
Целый |
Логический |
System |
Возвращает следующее за х значение |
Succ(x) |
Целый, символьный, перечисляемый |
Соответствует типу аргументв |
System |
Возвращает предыдующее перед х значение |
Pred(x) |
Целый, символьный, перечисляемый |
Соответствует типу аргументов |
System |
Возвращает символ ASCIIкода х |
Chr(x) |
Целый |
Символьный |
System |
Возвращает ASCIIкод символа х |
Ord(x) |
Символьный |
Целый |
System |
Увеличивает значение х на 1 |
Inc(x) |
Целый |
Целый |
System |
Увеличивает значение х на n |
Inc(x, n) |
Целый |
Целый |
System |
Уменьшает значение х на 1 |
Dec(x) |
Целый |
Целый |
System |
Уменьшает значение х на n |
Dec(x, n) |
Целый |
Целый |
System |
Примечание: В тригонометрических функциях аргумент задается только в радианах. Математические функции, находящиеся в модуле Math, могут быть использованы только после добавления его имени в раздел подключаемых модулей (uses).