Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольные вопросы экзамену программирование.doc
Скачиваний:
5
Добавлен:
16.04.2019
Размер:
264.19 Кб
Скачать

Функции для величорядкового типа

odd (x)

- проверяет аргумент на нечетность. Аргумент функции величина типаlongint, результат true, если аргумент нечетный, false – если четный.

pred (x)

- определяет предыдущее значение величины x.

succ (x)

- определяет последующее значение величины x.

ord (x)

- возвращает порядковый номер величины x.

Следующие две функции можно применять к целым параметрам, и в этом случае они возвращают целый результат. Этим функциям можно также передавать вещественный параметр, получая вещественный результат.

abs(выражение) – абсолютное (т.е. положительное) значение параметра. abs(-2), abs(0), abs(2). Результат: 2, 0, 2 abs(-2.0), abs(0.0), abs(2.0). Результат: 2.0, 0.0, 2.0

sqr(выражение) – квадрат параметра. sqr(-2), sqr(0), sqr(2). Результат: 4, 0, 4 sqr(-2.0), sqr(0.0), sqr(2.0). Результат: 4.0, 0.0, 4.0

Остальные арифметические функции воспринимают целый или вещественный параметр; результат в любом случае будет вещественным:

sqrt(выражение) – квадратный корень. sqrt(16), sqrt(0.64), sqrt(0). Результат: 4.0, 0.8, 0.0 sqrt(-16). Результат: ошибка

ln(выражение) – натуральный логарифм. ln(1), ln(2.7182):4:1, ln(7.5):4:1. Результат: 0.0, 1.0, 2.0 ln(0), ln(-1). Результат: ошибка

exp(выражение) – экспонента. exp(0):4:1, exp(1):8:5, exp(2.014903):4:1. Результат: 1.0, 2.71828, 7.5 exp(-1):7:4. Результат: 0.3579 Примечание: e-1 = 1 / e

Ниже определяются тригонометрические функции. Аргумент любой их них может быть целым или вещественным; результат в любом случае – вещественный.

1 радиан = 180 / пи

sin(выражение) – синус угла, измеренного в радианах sin(-pi / 6):4:1. Результат: -0.5 sin(0):4:1. Результат: 0.0 sin(pi / 2):4:1. Результат: 1.0

cos(выражение) – косинус угла, измеренного в радианах cos(-pi / 6):4:1. Результат: 0.8 cos(0):4:1. Результат: 1.0 cos(pi):4:1. Результат: -1.0

arctan(выражение) – арктангенс arctan(1e35):8:5. Результат: 1.57080 arctan(0):4:1. Результат: 0.0 arctan(-1):8:5. Результат: 0.78540

Кода целое значение присваивается вещественной переменной, оно автоматически преобразуется в вещественный тип и никакие функции для этого не требуются. Такое преобразование типов называется неявным. Так, если переменную объявить как real, а затем присвоить ей целое число 5, то последнее автоматически преобразуется в 5.0.

Обратного неявного преобразования нет: будет ошибкой пытаться присваивать переменной целого типа вещественный результат.

Перед присваиванием целой переменной вещественного значения это значение следует преобразовать к целому типу отбрасыванием дробной части или округлением. Для этих целей служат функции trunc иround соответственно.

trunc(вещественное_выражение) – преобразует вещественное в целый тип, отбрасывая дробную часть. trunc(3.1), trunc(3.8). Результат: 3, 3 trunc(-3.1), trunc(-3.8). Результат: -3, -3

round(вещественное_выражение) – преобразует вещественное в целый тип, округляя до ближайшего целого. round(3.1), round(3.8). Результат: 3, 4 round(-3.1), round(-3.8). Результат: -3, -4

Здесь возможны недоразумения. Пусть вещественная переменная x имеет значение 3.499999. Если это значение напечатать с использованием оператора write(x:8:5), то получится 3.50000, в то время как write(round(x)) даст 3, а не 4. Это затруднение можно обойти при помощи небольшой поправки, например write(round(x + 0.000001)) (в предположении, что значение переменной x заведомо положительное).

Применять функции trunc и round к параметрам целого типа нельзя. Например, будут ошибкой такие выражения, как trunc(3) или round(3).

Функция odd используется для проверки четности или нечетности целого выражения. odd(целое_выражение) – возвращает true, если параметр – нечетный, в противном случае возвращает false. odd(3), odd(2), odd(0). Результат: true, false, false odd(-3), odd(-2). Результат: true, false odd(3.0). Результат: ошибка

Следующие функции служат для определения конца строки или конца файла соответственно. Функция eoln используется только с текстовыми файлами, которые организованы как строки символов. Функцию eof не следует использовать при вводе данных с клавиатуры. eoln(имя_файла) – возвращает true, если была прочитана последняя литера текущей строки.

while not eoln do begin

read(i); {целый тип, пробелы пропускаются}

writeln(i:3)

end;

while not eoln do begin

read(a); {вещественный тип, пробелы пропускаются}

write(a:5:1)

end;

eof(имя_файла) – возвращает true, если была прочитана последняя литера файла (попытка дальнейшего чтения ведет к ошибке).

while not eof(f) do begin

while not eoln(f) do begin

read(ch); {тип char, пробелы учитываются}

write(ch)

end;

writeln

end;

while not eof(g) do begin

read(ch); {признак конца строки читается как пробел}

write(ch)

end;