|
Язык Delphi (краткий справочник)
Зарезервированные слова и директивы
Зарезервированные слова:
|
|
|
|
|
|
|
and |
File |
not |
then |
|
|
array |
For |
object |
to |
|
|
asm |
function |
of |
type |
|
|
begin |
Goto |
or |
unit |
|
|
case |
If |
packed |
until |
|
|
const |
implementation |
procedure |
uses |
|
|
constructor |
In |
program |
var |
|
|
destructor |
inherited |
record |
while |
|
|
div |
inline |
repeat |
with |
|
|
do |
intenface |
set |
xor |
|
|
downto |
Label |
shl |
|
|
|
else |
Mod |
shr |
|
|
|
end |
Nil |
string |
|
|
|
|
|
|
|
|
Директивы:
|
|
|
|
|
|
|
absolute
assembler
external |
Far
forward
interrupt |
near
private
public |
virtual |
|
|
|
|
|
|
|
Структура модуля
Модуль состоит из последовательности разделов. Каждый раздел начинается ключевым словом и продолжается до начала следующего раздела.
unit ИмяМодуля;
interface // раздел интерфейса
{ Здесь находятся описания процедур и функций модуля, коч-орые могут использоваться другими модулями. )
const // раздел объявления констант
{ Здесь находятся объявления глобальных констант модуля, которые могут использоваться процедурами и функциями модуля.}
type // раздел объявления типов
{ Здесь находятся объявления глобальных типов модуля,
которые могут использоваться процедурами и функциями модуля }
var // раздел объявления переменных
{ Здесь находятся объявления глобальных переменных модуля, которые могут использоваться процедурами и функциями модуля }
implementation // раздел реализации
{ Здесь находятся описания (текст) процедур и функций модуля)
end.
Основные типы данных
К основным типам данных языка Delphi относятся: П целые числа (integer); П дробные числа (real); П символы (char);
- строки (string);
- логический тип (boolean).
Целые числа и числа с плавающей точкой могут быть представлены в различных форматах (табл. П1.1 и П2.2).
Таблица П1.1. Целые числа
|
|
|
|
|
Формат |
Диапазон |
|
|
Shortint |
-128.. 127 |
|
|
Integer |
-32 768.. 32 767 |
|
|
Longint |
-2 147 483 648.. 2 147 483 647 |
|
|
Byte |
0..255 |
|
|
Word |
0..65535 |
|
|
|
|
|
Таблица П1.2. Числа с плавающей точкой
|
|
|
|
|
|
Формат |
Диапазон |
Кол-во значащих цифр |
|
|
Real |
2,9e-39.. 1,7e38 |
11-12 |
|
|
Single |
1,5e-45.. 3,4e38 |
7-8 |
|
|
Double |
5,0e-324.. 1,7e308 |
15-16 |
|
|
Extended |
3,4e-4932.. 1,1e4932 |
19-20 |
|
|
|
|
|
|
Строки
Имя:string;
- Объявление переменной-строки указанной длины:
Имя:string [ ДлинаСтроки ].
Массив
- Объявление одномерного массива:
ИмяМассива: array [НижнийИндекс...ВерхнийИндекс] of ТипЭлементов;
- Объявление двумерного массива:
ИмяМассива: array [НижнийИндекс1..ВерхнийИндекс1,
НижнийИндекс2..ВерхнийИкдекс2] of ТипЭлементов;
Запись
Вариант 1. Объявление записи в разделе переменных: Запись: record Поле1:Тип1; Поле2: Тип2;
ПолеJ: TиnJ; end;
Вариант 2. Сначала объявляется тип-запись, затем — переменная-запись:
type
ТипЗапись = record Поле1: Тип1; Поле 2:Тип2;
ПолеК: ТипК; end;
var
За пись: ТипЗапись;
Инструкции выбора
Инструкция if
Вариант 1: if-then-else. if Условие then
begin
{ Инструкции, которые выполняются, ) { если условие истинно. } end else
begin
{ Инструкции, которые выполняются, } { если условие ложно } end ;
Вариант 2. if-then.
if Условие then
begin
{ Инструкции, которые выполняются, } { если условие истинно. } end;
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Инструкция case
Вариант 1:
case Выражение of
Список1_Констант: begin
. { инструкции } end; Список2_Констант: begin
{ инструкции } end;
СписокJ_Констант: begin
{ инструкции } end; end;
Вариант 2.
case Выражение of
Список1_Констант: begin
{ инструкции } end;
Список2_Констант: begin
{ инструкции } end; СписокJ_Констант: begin
{ инструкции J} end; else
begin
{ инструкции } end; end;
Инструкции между begin и end выполняются, если значение выражения, записанного после case, совпадает с константой из соответствующего списка. Если это не так, то выполняются инструкции, находящиеся после else, между begin И end.
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Циклы
Инструкция for
Вариант 1 (с увеличением счетчика):
for Счетчик:=НачальноеЗначение to КонечноеЗначение do begin
{ здесь инструкции } end;
Инструкции между begin и end выполняется (КонечноеЗначение - НачальноеЗначение) + 1 раз.
ЕСЛИ НачальноеЗначение > КонечноеЗначение, ТО инструкции между begin И
end не выполняются.
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Вариант 2 (с уменьшением счетчика)'.
for Счетчик:=НачальноеЗначение downto КонечноеЗначение do begin
{ здесь инструкции } end;
Инструкции между begin и end выполняется (НачальноеЗначение - КонечноеЗначение) + 1 раз.
Если НачальноеЗначение < КонечноеЗначение, то инструкции между begin и end не выполняются.
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Инструкция repeat
repeat
{ инструкции } until Условие;
Сначала выполняются инструкции цикла, которые расположены между repeat и until. Затем вычисляется значение выражения Условие, и если оно равно False, то инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения Условие не станет равным True.
Инструкция while
while Условие do begin
{ инструкции ) end;
Сначала проверяется Условие, если оно истинно, то выполняются инструкции между begin и end. Затем снова проверяется Условие. Если оно выполняется, то инструкции цикла выполняются еще раз. И так до тех пор, пока Условие не станет ложным.
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Безусловный переход
Инструкция GoTo
GoTo Метка;
Инструкция осуществляет переход к инструкции, перед которой стоит метка. Метка должна быть объявлена в разделе label.
Объявление функции
function ИмяФункции(var Параметр1: Тип 1; var Параметр2: Тип2;
var ПараметрJ: TиnJ ) : Тип; const
{ описание констант } var
/ описание переменных } begin
{ инструкции функции }
Result:=Значение; end;
Примечание
Слово var ставится перед именем параметра в том случае, если параметр используется для возврата значения из функции в вызвавшую ее программу.
Объявление процедуры
procedure ИмяПроцедуры(var Параметр1: Тип1;
var Параметр2: Тип2;
var ПараметрJ: TипJ } ; const
{ описание констант }
var
{ описание переменных } begin
{ инструкции процедуры } end;
Примечание
Слово var ставится перед именем параметра в том случае, если параметр используется для возврата значения из функции в вызвавшую ее программу.
Стандартные функции и процедуры
При описании функций и процедур приняты следующие обозначения:
- имена функций и процедур выделены полужирным;
- формальные параметры изображены курсивом. В качестве параметра могут использоваться константы, переменные или выражения соответствующего типа. Если параметром обязательно должна быть переменная, то перед ним поставлено слово var. После параметра через двоеточие указывается его тип;
- после списка параметров функций через двоеточие указан тип результата, возвращаемого функцией.
В табл. П1.3 приведены описания математических функций языка Delphi.
Таблица П1.3. Математические функции
|
|
|
|
|
Функция |
Описание |
|
|
Abs (Выражение) |
Абсолютное значение аргумента (целый или вещественный тип) |
|
|
Sqr (Выражение) |
Квадрат аргумента (целый или вещественный тип) |
|
|
Sqrt( Выражение: real) :real |
Квадратный корень аргумента |
|
|
Sin (Выражение: real) : real |
Синус |
|
|
Cos (Выражение: real) : real |
Косинус |
|
|
Arctant Выражение: real) : real |
Арктангенс |
|
|
Exp( Выражение: real) :real |
Экспонента |
|
|
Ln ( Выражение : real ) : real |
Натуральный логарифм |
|
|
|
|
|
В табл. П1.4 приведены описания преобразований языка Delphi.
Таблица П1.4. Преобразования
|
|
|
|
|
Преобразование |
Описание |
|
|
Int( Выражение: real) :real |
Целая часть |
|
|
Trunc (Выражение: real) : longint |
Целая часть |
|
|
Round (Выражение: real) : longint |
Округление к ближайшему целому |
|
|
IntToStr (Выражение) |
Преобразование числового выражения цело-
го типа в строку |
|
|
|
|
FloatToStr (Выражение) |
Преобразование вещественного числа в его изображение |
|
|
FloatToStrF ( Выражение, Формат, Точность, КоличествоЦифр) |
Преобразование вещественного числа в его изображение с возможностью выбора способа изображения |
|
|
StxToInt ( Строка : string) |
Преобразование строки, изображающей целое или вещественное число, в число |
|
|
StrToFloat ( Строка : string) |
Преобразование строки, изображающей вещественное число, в число |
|
|
|
|
|
В табл. 1.5 приведены описания функций работы со строками и символами.
Таблица П1.7. Работа со строками и символами
|
|
|
|
|
Строковая функция |
Описание |
|
|
Concat( Строка1: string, ... , Строкам: string) : string
Copy ( Строка : string , НомерСимвола : integer, Длина: integer) : string
Delete (var Строка :srting, НомерСимвола : integer, Сколько : integer)
Length (Строка: string) : integer Pos (Строка: string, Подстрока: string) :byte Chr ( КодСимвола : byte ) |
Объединение нескольких строк в одну
Выделение подстроки
Удаление части строки
Длина строки Позиция подстроки в строке Символ с указанным кодом |
|
|
|
|
|
Приложение 2. Кодировка символов в Windows
В Windows в основном используется кодировка, которая называется ANSI. Разновидность набора ANSI, содержащая символы русского алфавита, называется Windows-1251.
В табл. П2.1 приведены коды некоторых служебных символов.
В табл. П2.2 и П2.3 приведены коды с символами 32—127 и 192—255.
Таблица П2.1. Некоторые служебные символы
|
|
|
|
|
Код символа |
Символ |
|
|
9 |
Табуляция |
|
|
11 |
Новая строка |
|
|
13 |
Конец абзаца |
|
|
32 |
Пробел |
|
|
|
|
|
Таблица П2.2.. Символы с кодами 32—127
|
|
|
|
|
|
|
|
|
|
|
Символ |
Код |
Символ |
Код |
Символ |
Код |
Символ |
Код |
|
|
32 |
Пробел |
42 |
* |
52 |
4 |
62 |
> |
|
|
33 |
! |
43 |
+ |
53 |
5 |
63 |
7 |
|
|
34 |
к |
44 |
, |
54 |
6 |
64 |
@ |
|
|
35 |
# |
45 |
- |
55 |
7 |
65 |
А |
|
|
36 |
$ |
46 |
, |
56 |
8 |
66 |
В |
|
|
37 |
% |
47 |
/ |
57 |
9 |
67 |
С |
|
|
38 |
& |
48 |
0 |
58 |
: |
68 |
D |
|
|
39 |
' |
49 |
1 |
59 |
; |
69 |
Е |
|
|
40 |
( |
50 |
2 |
60 |
< |
70 |
F |
|
|
41 |
) |
51 |
3 |
61 |
= |
71 |
G |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Символ |
Код |
Символ |
Код |
Символ |
Код |
Символ |
Код |
|
|
72 |
Н |
87 |
W |
101 |
е |
114 |
r |
|
|
73 |
I |
88 |
X |
102 |
f |
115 |
S |
|
|
74 |
J |
89 |
Y |
103 |
g |
116 |
t |
|
|
75 |
К |
90 |
Z |
104 |
h |
117 |
u |
|
|
76 |
L |
91 |
[ |
105 |
i |
118 |
V |
|
|
77 |
М |
92 |
\ |
105 |
i |
119 |
W |
|
|
78 |
N |
93 |
] |
106 |
j |
120 |
X |
|
|
79 |
О |
94 |
^ |
107 |
k |
121 |
У |
|
|
80 |
Р |
95 |
_ |
108 |
I |
122 |
Z |
|
|
81 |
Q |
96 |
' |
109 |
m |
123 |
[ |
|
|
82 |
R |
97 |
а |
110 |
n |
124 |
| |
|
|
83 |
S |
98 |
b |
111 |
0 |
125 |
] |
|
|
84 |
Т |
99 |
с |
112 |
P |
126 |
~ |
|
|
85 |
U |
100 |
d |
113 |
q |
127 |
|
|
|
86 |
V |
|
|
|
|
|
|
|
Таблица П2.3. Символы с кодами 192—255
|
|
|
|
|
|
|
|
|
|
|
Символ |
Код |
Символ |
Код |
Символ |
Код |
Символ |
Код |
|
|
192 |
А |
201 |
Й |
210 |
Т |
219 |
Ы |
|
|
193 |
Б |
202 |
К |
211 |
У |
220 |
Ь |
|
|
194 |
В |
203 |
Л |
212 |
Ф |
221 |
Э |
|
|
195 |
Г |
204 |
М |
213 |
X |
222 |
Ю |
|
|
196 |
Д |
205 |
Н |
214 |
Ц |
223 |
Я |
|
|
197 |
Е |
206 |
О |
215 |
Ч |
224 |
А |
|
|
198 |
Ж |
207 |
П |
216 |
Ш |
225 |
б |
|
|
199 |
3 |
208 |
Р |
217 |
Щ |
226 |
в |
|
|
200 |
И |
209 |
С |
218 |
Ъ |
227 |
г |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Символ |
Код |
Символ |
Код |
Символ |
Код |
Символ |
Код |
|
|
|
228 |
д |
235 |
л |
242 |
т |
249 |
щ |
|
|
|
229 |
е |
236 |
м |
243 |
у |
250 |
ъ |
|
|
|
230 |
ж |
237 |
н |
244 |
ф |
251 |
ы |
|
|
|
231 |
3 |
238 |
о |
245 |
х |
252 |
ь |
|
|
|
232 |
и |
239 |
п |
246 |
ц |
253 |
э |
|
|
|
233 |
й |
240 |
р |
247 |
ч |
254 |
ю |
|
|
|
234 |
к |
241 |
с |
248 |
ш |
255 |
я |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Представление информации в компьютере
Десятичные и двоичные числа
В обыденной жизни человек имеет дело с десятичными числами. В десятичной системе счисления для представления чисел используются цифры от О до 9. Значение числа определяется как сумма произведений цифр числа на весовой коэффициент, определяемый местом цифры в числе. Весовой коэффициент самой правой цифры равен единице, цифры перед ней — десяти, затем ста и т. д. Например, число 2703 равно 2x1000+7x100+0x10+3x1.
Если места цифр пронумеровать справа налево и самой правой позиции присвоить номер "ноль", то можно заметить, что вес i-го разряда равен i-й степени десяти (П3.1.
Для внутреннего представления чисел компьютер использует двоичную систему счисления. Двоичные числа записываются при помощи двух цифр -нуля и единицы. Как и десятичная, двоичная система — позиционная. Весовой коэффициент i-го разряда равен двум в i-й степени (П3.2.
Память компьютера
Память компьютера состоит из ячеек (битов). Каждый бит может хранить одну двоичную цифру. Следовательно, значением бита может быть ноль или единица. Восемь битов объединены в байт. Максимальное число, которое можно записать при помощи восьми двоичных цифр — это 11111111, что соответствует десятичному числу 255, минимальное — ноль. Поэтому значением байта может быть число от нуля до 255.
Память используется для хранения переменных. Так как переменные различных типов могут принимать различные значения, то для их хранения нужно разное количество памяти. Память под переменные выделяется целым числом байтов. Например, значением переменной типа char может быть любой из 256 символов. Поэтому для хранения переменной этого типа достаточно одного байта. Значением переменной типа integer может быть число от -32 768 до 32 767 (65 535 значений), для хранения переменной этого типа требуется два байта. Очевидно, что чем больше диапазон значений типа, тем больше байтов нужно для хранения переменной этого типа (табл. П3.1).
Таблица П3.1. Диапазоны значений и занимаемая память для разных типов переменных
|
|
|
|
|
|
Тип переменной |
Занимаемая память (количество байтов) |
Диапазон значений |
|
|
Char |
1 |
Любой символ |
|
|
String |
256 |
Строка до 256 символов |
|
|
String [n] |
1хn |
Строка до n символов |
|
|
|
|
|
|
|
|
|
|
|
|
Тип переменной |
Занимаемая память (количество байтов) |
Диапазон значений |
|
|
Byte |
1 |
0-255 |
|
|
Word |
2 |
0-65 535 |
|
|
Integer |
2 |
-32 768-32 767 |
|
|
Longint |
4 |
-2 147 483 648-2 147 483 647 |
|
|
Real |
6 |
2,9е-39-1 ,7е38 |
|
|
Single |
4 |
1,5е-45-3,4е38 |
|
|
Double |
8 |
5,0е-324-1 ,7е308 |
|
|
Extended |
8 |
3,4е-4932-1,1е4932 |
|
|
|
|
|
|
В программе для хранения одного и того же значения можно использовать переменные разных типов (при этом будет применяться разное количество памяти). Например, если в программе используется переменная Day, содержащая число месяца, то для нее можно задать тип byte, integer или longint. В первом случае будет занят один байт памяти, во втором — два, в третьем — четыре. Но реально будет использоваться только один байт, а остальные будут только заняты. Поэтому, выбирая тип для переменной, следует подбирать наиболее подходящий тип для каждой конкретной ситуации. Особо необходимо обращать внимание на описание строковых переменных и массивов.
Выделяя память для строковых переменных, следует помнить, что если не указана предельная длина строки, то переменной выделяется 256 байтов. Объявляя переменную, предназначенную, например, для хранения имени человека, нужно писать name: string [30], а не name: string.
Каждому массиву программы выделяется память, объем которой определяется как типом элементов массива, так и их количеством. Для хранения двумерного массива, например, 20x20 вещественных чисел нужно более 3 Кбайт памяти (20x20x8 = 3200).
Память компьютера кажется неограниченной, но если ее использовать нерационально, то в некоторый момент может возникнуть ситуация, связанная с нехваткой памяти. |
|