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

3. AND – логическое «и». Результат такой операции можно представить в виде следующей таблицы:

a \ b

T

F

T

T

F

F

F

F

4. NOT – логическое отрицание. Результат такой операции можно представить в виде следующей таблицы:

a

Not a

T

F

F

T

Побитные логические операции

Перечисленные выше логические операции можно применять к переменным не только логического типа, но и к переменным целого типа. При этом эти операции производятся над соответствующими битами чисел. Например, 1 XOR 1 дает константу 0. Имеются еще две логоческие побитные операции:

shl – побитный сдвиг влево, например 1 shl 1 равно 2,

shr – побитный сдвиг вправо, например 16 shr 2 равно 4.

Ввыражениях без скобок операции выполняются в следующем порядке:

1.Not

2./ div mod and shl shr

3.+ – or xor

4.= <> > < >= <= in

Например, выражение y = bac можно запрограммировать как y:=a/b/c или со скобками y:=a/(b*c).

5. СТАНДАРТНЫЕ ФУНКЦИИ И ПОДПРОГРАММЫ

Для выполнения часто встречающихся вычислений и преобразований язык Delphi предоставляет программисту ряд стандартных функций.

Значение функции связано с ее именем. Поэтому функцию можно использовать в качестве операнда выражения, например в инструкции присваивания. Так, чтобы вычислить квадратный корень, достаточно записать k:=Sqrt(n), где Sqrt — функция вычисления квадратного корня, n — переменная, которая содержит число, квадратный корень которого надо вычислить.

Функция характеризуется типом значения и типом параметров. Тип переменной, которой присваивается значение функции, должен соответствовать типу функции. Точно так же тип фактического параметра функции, т.е. параметра, который указывается при обращении к функции, должен соответствовать типу формального параметра. Если это не так, компилятор выводит сообщение об ошибке.

30

 

5.1. Математические функции

Функция

Значение

Аbs (x)

Абсолютное значение x

Sqrt (x)

Квадратный корень из x

Sqr (x)

Квадрат x

Sin (x)

Синус x

Cos (x)

Косинус x

Arctan (x)

Арктангенс x

Ехр(x)

Экспонента x

Ln(x)

Натуральный логарифм x

Random(n)

Случайное целое число в диапазоне

 

от 0 до n- 1

Random

Случайное вещественное число в

 

диапазоне от 0 до 1

Exp(b*ln(a))

Возведение в степень ab

Величина угла тригонометрических функций должна быть выражена в радианах.

5.2. Функции преобразования

Функции преобразования наиболее часто используются в инструкциях, обеспечивающих ввод и вывод информации. Например, для того чтобы вывести в поле вывода (компонент Label) диалогового окна значение переменной типа real, необходимо преобразовать число в строку символов, изображающую данное число. Это можно сделать при помощи функции FloatToStr, которая возвращает строковое представление значения выражения, указанного в качестве параметра функции.

Например, инструкция Labeil1.caption:=FioatTostr(x) выводит значение переменной х в поле Label1.

Функция

Значение функции

IntToStr(k)

Строка, являющаяся изображением целого k

Chr(n)

Символ, код которого равен n

Ord(c)

Код символа C

FloatToStr(x)

Строка, являющаяся изображением вещественного x

FloatToStrF(x,f,k,m)

Строка, являющаяся изображением вещественного x. При

 

вызове функции указывают: f — формат (способ

 

изображения, обычно – ffgeneral); k — точность (нужное

 

общее количество цифр); m — количество цифр после

 

десятичной точки

StrToInt(s)

Целое, полученное из строки s

StrToFloat(s)

Вещественное, полученное из строки s

Round(x)

Целое, полученное путем округления x по известным

 

правилам

31

Trunc (x)

Целое, полученное путем отбрасывания дробной части x

Frac(x)

Вещественное, представляющее собой дробную часть

 

вещественного x

 

Int (x)

Вещественное, представляющее собой целую часть

 

вещественного x

 

5.3. Дополнительные системные подпрограммы и функции

Имя процедуры или

Назначение

функции

 

 

Abort

Процедура окончания процесса без сообщения об

 

ошибке

 

Halt(CodeError)

Процедура вызывает прекращение выполнения

 

программы и устанавливает код ошибки CodeError

DateTimeToStr(Now) Функция возвращает

текущую дату и время в виде

 

строки. Здесь функция Now дает текущую дату и время

 

в виде 4–байтовой величины

Beep(F,D)

Функция из модуля Windows позволяет воспроизвести

 

звук частотой F

(герц) и длительностью D

 

(миллисекунд)

 

Dec(X,N)

Процедура уменьшения значения числовой переменной

 

Х на единицу, если нет второго параметра, или на N

Inc(X,N)

Процедура увеличения значения числовой переменной

 

Х на единицу, если нет второго параметра, или на N

Pred(X)

Функция возвращает предыдущее порядковое значение

 

числовой переменной Х

Succ(X)

Функция возвращает следующее порядковое значение

 

числовой переменной X

FillChar(X,Count,B)

Процедура заполнения поля переменной Х Count

 

значениями байта B

 

Hi(X)

Функция возвращает старших байт двухбайтовой

 

переменной Х

 

Lo(X)

Функция возвращает младший байт переменной X

LowerCase(S)

Функция возвращает строку S, в которой все латинские

 

буквы будут маленькими

UpperCase(S)

Функция возвращает строку S, в которой все латинские

 

буквы будут большими

SizeOf(X)

Функция возвращает длину переменной X в байтах

Val(S,X,Code)

Процедура перевода строки S в число X. Code – код

 

ошибки перевода. Если Code не равен 0, эта

 

переменная целого типа указывает на первый слева

 

символ, который не может определять число

Odd(N)

Функция возвращает True, если аргумент N (целого

 

типа) имеет нечетное значении

32

Move(Source,Dest, Процедура копирования Count байт из переменной

Count) Source в переменную Dest

Ramdomize Процедура инициализации датчика случайных чисел, которая позволяет получать каждый раз новую последовательность случайных чисел с помощью функции Random

6. ОПЕРАТОРЫ DELPHI

6.1.Оператор присваивания

Врезультате выполнения оператора присваивания значение переменной меняется – ей присваивается новое значение. В общем виде оператор присваивания выглядит так: Имя : = Выражение, где Имя — переменная, значение которой изменяется в результате выполнения оператора присваивания; : = — символы инструкции присваивания; Выражение — выражение, значение которого присваивается переменной, имя которой указано слева от символа инструкции присваивания.

Пример:

Y:=a*b/10; S:=’Дом’; F1:= False;

Результат вычисления выражения всегда приводится к типу имени переменной и только затем записывается в поле переменной.

Каждый оператор Delphi заканчивается точкой с запятой (;), что позволяет в одной строке программы записывать несколько операторов.

6.2.Оператор безусловной передачи управления

Оператор безусловной передачи управления имеет вид: Goto метка;

Метка – это идентификатор, описанный в разделе меток – Label. Например:

Label M1;

………

Goto M1;

………..

M1:y:=sin(x);

……………

Оператор Goto передает управление оператору с указанной меткой, в нашем случае M1. Оператор, следующий за Goto, обязательно должен иметь метку, иначе он никогда не получит управление. По возможности следует избегать использования оператора Goto, так как это приводит к созданию неэффективных программ. Перескок внутри программы приводит к тому, что нужно заново обновлять очередь команд, готовых к выполнению в процессоре, и перенастраивать его управляющие регистры. Чем меньше в программе операторов Goto, тем выше квалификация программиста.

33