Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методички по информатике / Конспект лекций (Delphi).pdf
Скачиваний:
63
Добавлен:
27.05.2015
Размер:
1.2 Mб
Скачать

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

<оператор>;

Особенностями данного цикла являются:тело цикла может не выполняться ни разу;