Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы программирования в Delphi. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Основы программирования в Delphi
x:= StrToInt(Edit1.Text); y:=StrToInt(Edit2.Text); Summa:= x - y; Edit3.Text:= IntToStr(Sum); end;
Остальные три кнопки пользователю предлагается запрограммировать
самостоятельно. Теперь можно сохранить проект и выполнить компиляцию программы (команда Проект/Компилировать проект), запустить ее, ввести в
поля ввода два произвольных числа и щелкать на соответствующих кнопках.
Примечание. В этом примере считалось, что в текстовые полях вводят-
ся только целочисленные значения. Для вычисления суммы чисел с десятичной запятой необходимо использовать другие функции преобразования строки в
число и наоброт:
1) StrToFloat( ) – это преобразование строки в вещественное число;
2) FloatToStr( ) – это преобразование вещественнго числа в строку.
В данном примере мы использовали такие компоненты как: кнопка, тек­стовое поле, метка. Этот же пример можно реализовать, используя другой ком-
понент – ComboBox(Раскрывающийся список). Рассмотрим данный вариант ре­ализации калькулятора (рис. 1.4):
Рис. 1.4 Использование компонента ComboBox
21
Основы программирования в Delphi
Приводим программный код выбора пункта компонента Раскрывающийся список:
procedure TForm1.ComboBox1Select(Sender: TObject);
var a,b,c:Real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
case ComboBox1.ItemIndex of
0: c:=a+b;
1: c:=a-b;
2: c:=a*b;
3: c:=a/b;
end;
Edit3.Text:=FloatToStr(c);
end;
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Перечислите основные окна среды разработки Delphi 7.
2. Для чего предназначен программный модуль Unit?
3. Основные свойства управляющего элемента Edit?
4. Каким образом формируется обработчик события в Delphi 7?
5. Назовите основные операторы для преобразования типов.
ВИДЕО-УРОК 1
https://youtu.be/31m78R2yrzI
22
Основы программирования в Delphi
Тип
Число байтов
Диапазон значений
Целочисленные типы
Integer
4 байта
-2 147 483 648. . .+2 147 483 647
ShortInt
1 байт
-128. . .+127
Byte
1 байт
0. . .255
Word
2 байта
0. . .65 535
Вещественные типы
Real
8 байт
5.0 х 10
-234
. . .1.7 х 10
308
Extended
10
3.6 х 10
-4951
. . .1.1 х 10
4932
Логический тип
Boolean
1 байт
True или False
2. ПРОСТЫЕ ТИПЫ ДАННЫХ В DELPHI
Базовым языком программирования Delphi является язык Pascal. Так как
этот язык изучается еще в школьном курсе информатики и ИКТ, рассмотрим
только основные правила программирования, связанные с ним. Более того, сто­ит отметить, что среде программирования Delphi 7 используется не просто Pascal, а его объектно-ориентированное расширение – язык Object Pascal (Объ­ектный Pascal).
2.1 Встроенные типы данных
Все данные, используемые в программе, относятся к конкретным типам
данных. Это связано с тем, сколько байтов оперативной памяти отводится для этих данных и каким образом будут интерпретированы компилятором операции
с этими данными. Ниже приведен список основных типов данных языка Pascal и диапазоны их изменения (табл. 2.1). Все типы можно разделить на три основ­ные группы:
1) целочисленные типы;
2) вещественные типы;
3) логический тип.
Табл. 2.1 Встроенные типы переменных в языке Pascal
Переменные и константы языка
Команда описания переменных в языке Pascal записывается следующим образом:
var имя_переменной: тип_переменной;
23
Основы программирования в Delphi
Слово var – ключевое. В качестве имени переменной выступает любой
допустимый идентификатор, если он не является зарезервированным словом. В
качестве типа может быть одно из допустимых типов. Например,
var
k1, k2, My_Int: integer; My_Var, Data, A, B: Real;
В некоторых случаях бывает удобно использовать константы – фиксиро-
ванные значения, для которых определено имя. Константы отличаются от пе­ременных тем, что не могут менять свои значения. Они предназначены только
для удобства программиста.
Константы описываются способом, напоминающим описание переменных,
только вместо ключевого слова var применяется ключевое слово const, а тип
можно указывать, а можно и не указывать. Значение константы задается после
знака равенства, например следующим образом:
const
PI = 3.14; E: Real = 2.87;
Комментарии в Delphi
При повторном просмотре кода программы трудно сразу понять, что дела-
ет участок программы, особенно если реализуемая им логика достаточно слож­ная. Поэтому следует сопровождать тексты своих программ пояснениями в ви-
де комментариев.
Комментарии в языке Pascal бывают двух видов: многострочные и одно-
строчные. Многострочные комментарии заключаются в фигурные скобки {… }. Однострочный комментарий начинается с пары символов //. При этом весь текст до конца текущей строки считается комментарием. Примеры коммента-
риев:
// Однострочный комментарий { Начало многострочного комментария
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
…………………………………………………. Окончание многострочного комментария }
Символы и строки
24
Основы программирования в Delphi
Помимо чисел, в Pascal разрешается обрабатывать данные в виде одиноч­ных символов и их последовательностей (строк). Символы имеют тип Char и
записываются в виде знака, взятого в одиночные кавычки:
var
MyCh, Ch1:Char;
begin
MyCh:= „S‟;
Ch1:= „ф‟;
Иногда требуется обрабатывать символы, имеющие значения, которые не­возможно отобразить на экране. В таких случаях символ записывается в виде
числа (ASCII-кода), перед которым стоит знак #. Например,
MyCh:= #0;
Ch1:= #40;
Последовательность символов, заключенная в одиночные кавычки, назы-
вается строкой. Например: „Это текстовая строка Паскаля‟.
Строки описываются переменной типа String. Например:
var Str: string; begin
Str:= 'Я учусь на факультете математики и информатики НГПУ';
end;
По умолчанию строка типа String может иметь размер до 2 Гбайт, а опера-
тивная память для нее выделяется автоматически, в зависимости от текущей
длины строки. Для явного указания длины после ключевого слова string в квад­ратных скобках задается число, определяющее эту длину:
string[50]
Для такой строки на этапе компиляции будет выделена область памяти в
50 символов. Строку большей длины (например, 51 символ) записать в нее уже нельзя.
Преобразование типов
В ряде случаев требуется гарантировать, чтобы результат вычисления вы­ражения принадлежал конкретному типу. Например, вычисления могут произ­водиться над числами типа Longint, а результат должен принадлежать типу
Byte. Такая операция называется приведением типов.
25
Основы программирования в Delphi
Для этого применяют так называемые преобразователи типов, которые напоминают стандартные функции Паскаля с именами, совпадающим с имена-
ми базовых типов (Byte, Integer и другие). Результат, возвращаемый таким пре-
образователем, гарантированно лежит в диапазоне указанного типа. При этом, конечно, возможна потеря значащих цифр: берется остаток от деления значения аргумента на максимально допустимое значение соответствующего типа.
Например, значение Byte(300) равно 44.
var
X: Integer; L: Longint;
begin
X := Integer (L * 1234567);
Однако подобным способом невозможно преобразовать число типа Real в число типа Integer или любое число в строку. Для таких, более сложных, преоб­разований типов в Delphi 7 имеется набор стандартных функций, упрощающих процесс преобразования:
1) Round – округление дробного числа до ближайшего целого;
2) Trunc – отбрасывание дробной части числа.
Приведение типов переменных
Помимо стандартных функций, в Pascal имеется еще одна возможность яв-
но указывать, в какой тип должны быть приведены конкретные данные. В сле-
дующем примере укажем преобразование типов:
var
C: byte;
begin
Char(C):= „A‟;
Переменной С будет присвоен ASCII-код символа „A‟. При этом необхо­димо, чтобы длины (в байтах) переменной и присваимого значения совпадали.
Другая форма записи этого оператора:
C:=Byte („A‟);
2.2 Определение собственных типов
При создании практически любой серьезной программы приходится опре-
делять новые типы данных, которые облегчают программирование и делают
26
Основы программирования в Delphi
код более понятным и доступным. Чтобы описать новый тип данных, в Pascal имеется специальное ключевое слово type:
type название_типа = описание_типа;
Название типа - это произвольный идентификатор Паскаля. Описание типа
может представлять собой описание перечислимого типа, описание сложного
типа, описание массива и так далее.
2.2.1. Перечислимые типы
Помимо обычных числовых и строковых типов Pascal позволяет создавать типы, диапазон значений которых – это просто набор идентификаторов. Например, переменную, которая может присвоить только одно из значений: зима, весна, лето и осень (сезоны года) можно определить следующим образом:
type
Season = (winter, spring, summer, autumn);
var
Time_Seas: Season;
begin
Time_Seas := vesna;
2.2.2. Типы поддиапазонов
В языке Pascal можно накладывать жесткие ограничения на диапазоны
значений переменных. Например, если заранее известно, что значение некото­рой переменной на протяжении работы программы не должно выходить из
промежутка 0-100, то такую переменную лучше описывать не как имеющую тип Integer, а как имеющую тип поддиапазона 0-100. Это позволит автоматиче­ски проконтролировать выход значений за пределы конкретного поддиапазона.
Диапазон данных в Pascal описывается следующим образом:
мин_значение . . макс_значение
Две точки без пробела между ними является символом определения под-
диапазонов. Ниже приведем пример использования такой переменной.
type
TMySub = 0..100; var MySub: TMySub; begin
27
Основы программирования в Delphi
MySub:= 15; // все нормально MySub:= 105; // возникает ошибка
Помимо числовых значений в типах поддиапазонов можно использовать и
значения других типов, например Char:
type
TMyChar = „a‟ .. „z‟;
Переменная типа TMyChar сможет принимать значения только из набора символов от „a‟ до „z‟, в порядке возрастания значений (кодов ASCII) этих сим­волов.
2.2.3. Множества
Множества напоминает перечислимый тип, но отличается от него тем, что
переменной типа множество можно одновременно присвоить несколько значе­ний из заданного множества. Множество описывается следующим образом:
type
тип_множества = set of диапазон_значений_множества;
В качестве диапазона указывается любой тип Паскаля, число элементов в
котором не более 256: Char, Byte, 0. .255 и так далее.
type
MySet1 = set of 0 . . 255;
MySet2 = set of Byte;
MySet3 = set of (Spartak, Zenit, Rubin, KamAZ);
Конкретные значения множества задаются перечислением списка значений через запятую, который берется в квадратные скобки:
var MySet: MySet1;
. . . . . . . . . . . . . . . . . . . . .
MySet := [4, 13, 27, 42]; // переменная MySet содержит 4 значения
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Перечислите основные встроенные типы данных языка Delphi.
2. Каким образом определяются перечислимые типы?
3. Что такое множества?
28
Основы программирования в Delphi
4. Как формируются типы поддиапазонов?
5. Какие способы записи комментариев в Delphi вы знаете?
29
Основы программирования в Delphi
Приоритет
Знак операции
Описание операции
1
*
умножение
/
деление
div
деление 2 целых значений с отбрасыванием остатка
mod
взятие остатка от деления 2 целых
значений
2
+
сложение
-
вычитание
3. АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ В DELPHI
При составлении программ на любом языке программирования приходится использовать арифметические выражения. Обычно арифметические выражения
строятся из операндов, в качестве которых могут быть константы, переменные и стандартные функции языка программирования. В арифметические выраже­ния также входят арифметические операции и круглые скобки. В Delphi опре-
делено 6 основных арифметических операций. Перечислим их в соответствии с
приоритетом (табл. 3.1). Операции с одинаковым приоритетом являются равно­правными и выполняются слева направо, также как в математических выраже­ниях.
Табл. 3.1 Основные арифметические операции языка Pascal
Операции div и mod определены только для целочисленных операндов. Для вещественных переменных их использовать нельзя. Рассмоотрим пример их использования:
var y, m, n:integer;
y:=2017;
m:=y div 100;
n:=y mod 100;
Здесь переменная m получит значение 20, а n - значение 17.
Стандартные функции служат для выполнения элементарных математи­ческих вычислений. Разработчики языка Pascal (Никлаус Вирт и др.) стреми­лись сделать его ядро максимально компактным, поэтому в него не вошел це­лый ряд функций, обычно имеющихся в других языках программирования,
например, таких, как вычисление тангенса, возведение числа в определенную
степень и др. Все функции в Delphi оформляются одинаково: после имени
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]