- •Контрольные вопросы экзамену
- •2 Семестр
- •Группы символов языка Паскаль.
- •Структура языка Паскаль.
- •Понятие лексемы языка, категории лексем.
- •Зарезервированных слова в языке Паскаль.
- •Понятие идентификатора, допустимая длина идентификаторов, разновидности идентификаторов, стандартные идентификаторы.
- •Формы записи чисел в языке паскаль.
- •Использование комментариев.
- •Символы используемые в качестве разделителей лексем.
- •Разделы описаний и объявлений языка Паскаль.
- •Раздел операторов.
- •Виды констант.
- •Стандартные типы языка паскаль.
- •Интервальный и перечисляемый типы данных.
- •Порядковые типы и их свойства.
- •Совместимость типов данных.
- •Выражения и их использование.
- •Операции и операнды, приоритет и классификация операций.
- •Синтаксис выражений
- •Операции
- •Арифметические операции
- •Унарные арифметические операции
- •Логические операции
- •Булевские операции
- •Операция со строками
- •Операции над символьными указателями
- •Операции над множествами
- •Операции отношения
- •Сравнение простых типов
- •Сравнение строк
- •Сравнение упакованных строк
- •Сравнение указателей
- •Сравнение символьных указателей
- •Сравнение множеств
- •Проверка на принадлежность к множеству
- •Операция @
- •Использование операции @ для переменной
- •Использование операции @ для процедуры или функции или метода
- •Стандартные функции языка Паскаль. Арифметические функции
- •Функции преобразования типов
- •Функции для величорядкового типа
- •Функция ord
- •Функция chr
- •Функции succ и pred
- •3 Семестр
Функции для величорядкового типа
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;