Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы программирования в Delphi. Учебно-методическое пособие
.pdf
Основы программирования в 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
