Стандартные функции
СТАНДАРТНЫЕ ФУНКЦИИ
Для выполнения часто встречающихся вычислительных операций и преобразования данных, относящихся к разным типам, в языке Турбо-Паскаль реализуются следующие стандартные (не требующие отдельного описания) функции:
— арифметические;
— преобразования и упорядочения типов;
— логические;
— строковые;
— файловые;
— адресные.
Арифметические выражения
Арифметические выражения строятся из имен переменных, констант, знаков операций и круглых скобок так, как это принято в математике. При вычислении их значений операции выполняются в порядке приоритета: *, /, DIV, MOD, а затем + и -. Операции одинакового старшинства выполняются слева направо.
Наряду с переменными и константами в арифметические выражения можно включать функции. При определении значения выражения, прежде всего, вычисляются значения входящих в него функций. В Паскале имеются следующие стандартные функции:
функция | назначение | тип результата |
ABS(X) | Абсолютное значение Х | Вещественный |
ARCTAN(X) | Арктангенс Х | Вещественный |
COS(X) | Косинус Х | Вещественный |
EXP(X) | ех | Вещественный |
FRAC(X) | Дробная часть Х | Вещественный |
INT(X) | Целая часть Х, обнуление дробной части | Вещественный |
LN(X) | Натуральный логарифм | Вещественный |
PI | Значение PI=3.1415926535897932385 | Вещественный |
ROUND(X) | Округление до ближайшего целого | Целый |
SIN(X) | Синус Х | Вещественный |
SQR(X) | Квадрат Х | Тип аргумента |
SQRT(X) | Квадратный корень Х | Вещественный |
TRUNC(X) | Отбрасывание дробной части | Целый |
Аргумент функции обязательно заключается в скобки.
Выражение на Паскале, как впрочем, и на других языках программирования, записывается в одну строчку, а для сохранения порядка действий используются скобки. Все действия должны быть указаны. Например, 2Х + XY надо записать как 2*Х + Х*Y.
random — генерирует случайное число типа real с равномерным законом распределения в диапазоне от 0 до 1.
random(x) — генерирует случайное целое число с равномерным законом распределения в диапазоне от 0 до х; х — число типа integer.
Примечание: для того чтобы избежать постоянно повторяющихся случайных чисел, функциям random и random(x) должна предшествовать процедура randomize, которая инициализирует генератор случайных чисел. Для стандартных функций arctan, cos, exp, In, sin, sqr, sqrt аргумент х может быть типа real или integer, а результат всегда real.
Функции преобразования и упорядочения типов
frac(x) — вычисляет дробную часть х, целая часть отбрасывается; х — тип real; результат — тип real. Например,
frac(123.456); {0.456} frac(-123.456); {-0.456}
int(x), trunc(x) — вычисляет целую часть х, дробная часть отбрасывается; х — тип real; результат — тип integer (для trunc), тип real (для int). Например,
trunc(325.568); {325} trunc(-325.568); {-325}
round(x) — вычисляет округленную целую часть; х — тип real; результат — тип integer. Например,
round(325.568); {326} round(-325.568); {-325}
round(325.268); {325} round(-325.268); {-324}
chr(x) — по числовому коду определяет символ в ASCII; x — тип integer; результат — тип char.
Например, chr(65); {'A'}
ord(x) — вычисляет порядковый номер символа в упорядоченном множестве символов (порядковый номер начинается с нуля); х — тип char; результат — тип integer.
Например,
program primer3;
type day=(mo, tu, we , th, fr, sa, su);
var x:day;
begin
x:=we;
writeln(ord(x));
end.
Результат — {2}
succ(x) — дает значение, следующее за х (если оно существует); х — значение любого простого типа (кроме real).
pred(x) — дает значение, предшествующее х (если оно существует); х — значение любого простого типа (кроме real). Например,
colors=(red, blue, green);
succ(blue); {green}
pred(blue); {red}
Логические функции
odd(x) — дает значение true, если х — нечетное число, и false в противном случае; х — тип integer. eof(f) — дает значение true, если при чтении файла с файловой переменной f достигнут конец файла, в противном случае — false.
eoln(f) — функция принимает значение true, если при чтении текстового файла с файловой переменной f достигнут конец текущей строки, в противном случае — false.
Строковые функции
copy(str,n1,n2) — результат работы функции — подстрока строки str, начинающаяся с номера п1 от начала строки, длиной n2; str — выражение строкового типа; п1, п2 — тип integer.
Например,
copy('abcdefg',5,2);
{'ef'}
Примечания:
— если п1 больше длины строки str, то результат — пустая строка;
— если п1+п2 больше длины строки str, то результатом будет подстрока, символы которой находятся в пределах str; если п1 выходит за пределы диапазона 1..255,то результат — ошибка.
concat(str1,str2,..strn) — результат работы функции — сцепление (сложение) строк; число аргументов может быть произвольным; аргументы отделяются запятыми; strl,
str2..... strn — выражения строкового типа.
Например,
concat('ab’,’cd’,’ef'); {'abcdef'}
Операцию, осуществляемую этой функцией, можно заменить простым сцеплением строк с помощью операции «+».
length(str) — вычисляет число символов в строке; str — выражение строкового типа; результат — тип integer.
Например,
length('abcdef'); {6}
pos(str1 ,str) — результат работы функции — целое число, равное той позиции в строке str, в которой находится первый символ подстроки strl, если подстрока в строке не обнаружена, то результат работы функции — 0; strl, str — выражения строкового типа; результат — тип integer.
Например,
pos('de', 'abcdef'); {4}
pos('gh’,’abcdef'); {0}
Задания
1) Найдите значения переменных, если это возможно. Учтите, что число 7.0 является вещественным, т.к. оно имеет дробную часть, хотя и равную нулю. Операции MOD и DIV можно выполнять только над целыми числами (Урок 2):
a) A:=21 DIV 5 b) A:= 2 MOD 3
B:= 20 MOD 5 B:= 36.0 MOD 6
C:= 14 DIV 6.0 C:= 81 DIV 0
D:= 14 MOD 0 D:= 38 DIV 6
E:= 5 MOD 13 E:= 3 DIV 2
2) Найдите значения переменных, если это возможно:
a) A:=SQR(100) b) A:=sqrt(9)
B:=sqrt(100) B:=SQR(9)
C:=SQR(-10) C:=SQRT(-9)
D:=SQRT(-10) D:=SQR(-9)
E:=SQR(0.9) E:=SQRT(0.0)
F:=SQRT(0) F:=SQR(0.1)
3) Найдите значения переменных, если это возможно:
a) A:=ROUND(6.9) b) A:=ROUND(15.39)
B:=ROUND(6.48) B:=ROUND(15.8)
C:=TRUNC(9.5) C:=TRUNC(-39)
D:=FRAC(9.5) D:=FRAC(39)
E:=INT(9.5) E:=INT(39)
F:=TRUNC(-17) F:=TRUNC(5.6)
G:=FRAC(17) G:=FRAC(-0.3)
H:=INT(-17) H:=INT(1.25)
ОТВЕТЫ
2. Найдите значения переменных, если это возможно:
a) A:=SQR(100)=10000 b) A:=sqrt(9)=3.0
B:=sqrt(100)=10.0 B:=SQR(9)=81
C:=SQR(-10)=100 C:=SQRT(-9) (выр. < 0)
D:=SQRT(-10)(выр <0) D:=SQR(-9)=81
E:=SQR(0.9)=0.81 E:=SQRT(0.0)=0.0
F:=SQRT(0)=0.0 F:=SQR(0.1)=0.01
3. Найдите значения переменных, если это возможно:
a) A:=ROUND(6.9)=7 b) A:=ROUND(15.39)=15
B:=ROUND(6.48)=6 B:=ROUND(15.8)=16
C:=TRUNC(9.5)=9 C:=TRUNC(-39)=-39
D:=FRAC(9.5)=0.5 D:=FRAC(39)=0.0
E:=INT(9.5)=9.0 E:=INT(39)=0.0
F:=TRUNC(-17)=-17 F:=TRUNC(5.6)=5
G:=FRAC(17)=0.0 G:=FRAC(-0.3)=-0.3
H:=INT(-17)=-17.0 H:=INT(1.25)=1.0
страница 1
скачать
Другие похожие работы: