
- •Содержание
- •1. PASCAL
- •1.1 Алфавит
- •1.2 Типы данных
- •1.3 Переменные
- •1.4 Константы
- •1.5 Стандартные функции
- •1.6 Выражения
- •1.7 Операторы
- •1.7.1 Оператор присваивания
- •1.7.2 Составной оператор
- •1.7.3 Условный оператор IF
- •1.7.4 Условный оператор CASE
- •1.7.5 Оператор цикла FOR
- •1.7.6 Оператор цикла REPEAT
- •1.7.7 Оператор цикла WHILE
- •1.8 Одномерные массивы
- •1.9 Многомерные массивы
- •1.10 Строки
- •1.11 Записи
- •1.12 Множества
- •1.13 Пользовательские типы
- •1.14 Файлы
- •1.15 Перечисляемый тип
- •1.16 Тип-диапазон
- •1.17 Функции и процедуры
- •1.18 Локализация имен
- •1.19 Модули
- •1.20 Операторы прерывания
- •1.21 Комментарии
- •1.22 Указатели
- •1.23 Динамические массивы Delphi
- •2. Основные положения ООП
- •3. Базовые классы Delphi
- •3.1 TObject
- •3.2 Exception
- •3.3 TList
- •3.4 TPersistent
- •3.5 TCollection
- •3.6 TCollectionItem
- •3.7 TStrings
- •3.8 TStringList
- •3.9 TGraphicsObject
- •3.10 TPen
- •3.11 TBrush
- •3.12 TCanvas
- •3.13 TGraphics
- •3.14 TPicture
- •3.15 TComponent
- •3.16 TControl
- •3.17 TWinControl
- •3.18 TGraphicControl
- •3.19 TTimer
- •3.20 TThread
- •3.21 TTreeView
- •3.22 TTreeNodes
- •3.23 TTreeNode
- •3.24 TForm
- •3.25 TMainMenu
- •3.26 TMenuItem
- •3.27 TStatusBar
- •3.28 TStatusPanels
- •3.29 TStatusPanel
- •3.30 TToolBar
- •3.31 TToolButton
- •3.32 TActionList
- •3.33 TAction
5
логические операции: not
X |
Y |
and |
or |
xor |
False |
False |
False |
False |
False |
False |
True |
False |
True |
True |
True |
False |
False |
True |
True |
True |
True |
True |
True |
False |
операции отношений: =, <>, <, >, <=, >=;круглые скобки.
Порядок вычисления выражений приведен ниже в таблице.
Группа |
Операции или элементы |
1 |
() |
2 |
функции |
3 |
@, not, унарные операции |
4 |
*, /, div, mod, and |
5 |
+, -, or, xor |
6 |
=, <>, <, >, <=, >=, in |
1.7 Операторы
1.7.1 Оператор присваивания
Оператор присваивания выполняет присвоение переменной результата выражения и записывается в виде :=.
Пример:
a := b*10; {целая или вещественная в зависимости от b} a := a+1; {целая или вещественная}
a := sqr(sin(b)); { вещественная}
a := b<c; {логическая}
Переменная, которой присваивается результат выражения, должна быть одного с ним типа, или типа большего разряда.
1.7.2 Составной оператор
Необходим в тех случаях, когда оператор требует после себя только один оператор, а необходимо выполнить несколько (begin … end).
1.7.3 Условный оператор IF
Оператор if реализует алгоритмическую конструкцию “развилка” и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Форматы оператора:
6
if <условие> then <выполнять если истина>;
if <условие> then <выполнять если истина> else <выполнять если ложь>;
Блоки <выполнять если истина> и <выполнять если ложь> являются
одиночным оператором, поэтому часто применяется составной оператор. Пример (сравнение двух чисел):
procedure TForm1.Button1Click(Sender : TObject); var
a,b : integer; s : string;
begin
a := ???;
b := ???;
if a>b then
s := 'А больше В' else
if a<b then
s := 'А меньше B' else
s := 'А и В равны'; <вывод s>;
end;
1.7.4 Условный оператор CASE
Данный оператор целесообразно использовать для реализации разветвляющегося алгоритма, когда возможно несколько (более 2) вариантов решения. Формат описания данного оператора:
case <выражение> of <значение1> : <оператор1>; <значение2> : <оператор2>;
…
<значениеN> : <операторN>; else <оператор>;
end;
<выражение> должно быть любого порядкового типа, <значение?> – любое значение из диапазона данного типа, <оператор?> – выполняемые операторы. Оператор else является необязательным.
Пример (определение дня недели по номеру):
procedure TForm1.Button1Click(Sender: TObject); var
DayOfWeek : integer; s : string;
7
begin
DayOfWeek := ???;
case DayOfWeek of
1 : s := 'Это понедельник';
2 : s := 'Это вторник';
3 : s := 'Это среда';
4 : s := 'Это четверг';
5 : s := 'Это пятница';
6 : s := 'Это суббота';
7 : s := 'Это воскресенье';
else s := 'Вы неправильно ввели номер дня недели'; end;
<вывод s>; end;
1.7.5 Оператор цикла FOR
Данный оператор служит для реализации алгоритмов итерационной структуры при заранее известном числе итераций. Формат оператора:
for <параметр цикла> := <начальное значение> to <конечное значение> do <оператор>;
for <параметр цикла> := <конечное значение> downto <начальное значение> do <оператор>;
<параметр цикла>, <начальное значение>, <конечное значение>
должны быть порядкового типа. При этом <начальное значение> должно быть меньше или равным <конечное значение>, иначе цикл не выполнится ни разу. Первый вид оператора организует перебор <параметр цикла> с увеличением на 1, второй – с уменьшением на 1.
Пример (вычисление факториала):
procedure TForm1.Button1Click(Sender: TObject); var
i,N,F : integer; begin
N := ???;
F := 1;
for i := 2 to N do F := F*i;
<вывод F>; end;
8
1.7.6 Оператор цикла REPEAT
Позволяет организовать итерационный алгоритм в случае, когда заранее неизвестно число повторений. Формат оператора:
repeat
<операторы> until <условие>;
Особенностями данного цикла являются:
тело цикла выполняется как минимум один раз;
выход из цикла происходит в случае, если условие выполнено, т.е. цикл можно трактовать как “пока не выполнится <условие> выполнять тело цикла”;
между ключевыми словами repeat … until нет необходимости вставлять составной оператор;
в цикле нет “параметра цикла”;
в теле цикла должно быть изменение величин, входящих в условие, иначе
может получиться “вечный цикл”. Пример (xk/k < a {поиск k}):
var
k : integer; x,a,p : real;
begin
a := ???;
x := ???;
k := 0; p := 1; repeat
inc(k); p := p*x;
until p/k<a; <вывод k>;
end;
1.7.7 Оператор цикла WHILE
Позволяет организовать итерационный алгоритм в случае, когда заранее неизвестно число повторений. Формат оператора:
while <условие> do
<оператор>;
Особенностями данного цикла являются:тело цикла может не выполняться ни разу;