Программирование. Стандартные функции Pascal-Паскаль

Стандартные функции Pascal-Паскаль

Стандартные математические функции Турбо Паскаля
Обращение Тип аргумента Тип результата Примечание
Abs(x) Real, integer Тип аргумента Модуль аргумента
ArcTan(x) Real, integer Real Арктангенс (значение в радианах)
Cos(x) Real, integer Real Косинус, угол в радианах
Exp(x) Real, integer Real Экспонента
Frac(x) Real Real Дробная часть числа
Int(x) Real, integer Real Целая часть числа
Ln(x) Real, integer Real Логарифм натуральный
Pi Нет Real 3,141592653
Sin(x) Real, integer Real Синус, угол в радианах
Sqr(x) Real, integer Тип аргумента Квадрат аргумента
Sqrt(x) Real, integer Real Корень квадратный
Random Нет Real Псевдослучайное число в интервале [0, 1]
Random(I) Integer Integer Псевдослучайное число в интервале [0, I]
Round(x) Real Integer Округление до ближайшего целого
Trunc(x) Real Integer Отбрасывание дробной части числа

Порядок вычислений в выражениях следующий:

  1. вычисляются подвыражения, заключенные в скобки;
  2. затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
    • возведение в степень;
    • мультипликативные операции: * , / , div , mod;
    • унарные операции: + , - , abs , not;
    • аддитивные операции: +, -;
    • операции отношения: = , <>, <, >, <=, >=;
    • логические операции: and, or, not;
  3. операции с одинаковым приоритетом выполняются слева направо.

Хотя нет ограничений на сложность выражений, однако выражения, содержащие более 7 операндов, трудны для чтения и понимания и поэтому такие выражения не рекомендуется использовать.

Замечание (это важно!)

  • в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: xy= eylnx
  • в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a

Математическое выражение: x3/2 - 7x + tg (x+2)

Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)

Операторы действия

Операторы действия - это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия - оператор присваивания.

<имя_переменной>:=<выражение>

Пример оператора присваивания

a:=15+5;{переменной a присваиваем математическое выражение. Стоит заметить, что переменная a должна быть числового типа}

Оператор присваивания, несмотря на кажущуюся простоту, имеет очень важное алгоритмическое значение.

Удобно считать, что выполнение присваивания переменной некоторого значения означает помещение этого значения в выделенный для переменной ящик. При этом каждый запоминающий ящик обладает следующими свойствами.

  1. В каждый момент времени в ящике может храниться не более одного значения.
  2. Каждый ящик способен хранить только значения одного и того же типа. Попытка поместить в ящик значение любого другого типа приводит к тому, что ящик отказывается принимать на хранение передаваемое ему значение - это расценивается как ошибка в программе.
  3. Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) - при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).
  4. Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения.
  5. К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.

Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это - пустой оператор (в Паскале он обознается знаком ";"). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия - оператор останова, который прерывает работу программы (в Паскале это оператор halt).

Ввод и вывод данных

Ввод данных с клавиатуры производится с помощью стандартной процедуры read(<список ввода>) или ее разновидности readln(<список ввода>). Элементы списка ввода - идентификаторы (имена) переменных, перечисляемые через запятую. При выполнении этого оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами (это важно!).

Пример ввода данных с клавиатуры

read(a,b,c);{где a,b,c - переменные. Ввод данных осуществляется через пробел}

readln(a,b,c);{где a,b,c - переменные. Ввод данных осуществляется через enter(возврат корретки)}

Вывод данных на экран производится с помощью стандартной процедуры write(<список вывода>) или ее разновидности writeln(<список вывода>).

Список вывода может содержать константы, переменные, выражения, формат вывода. Выражения в списке вывода разделяются запятыми.

Пример вывода данных на экран

write(a,b,c);{где a,b,c - переменные. После вывода данных на экран, курсор останется на последнем символе}

writeln(a,b,c);{где a,b,c - переменные. После вывода данных на экран, курсор перейдет на новую строку)}

Окончание ln в имени процедуры означает, что курсор автоматически будет переведен в начало следующей строки экрана.