Стандартные арифметические функции языка паскаль. Стандартные функции Pascal ABC. Арифметические операции языка Pascal ABC

21.01.2024

Стандартными функциями языка программирования Pascal приведены в табл. 1

Таблица 1:

Имя функции Выполняемая операция
ABS(X) Вычисляет модуль аргумента х, тип х – вещественный или целый, тип результата совпадает с типом аргумента
SQR(X) Вычисляет квадрат аргумента (х 2), тип х – вещественный или целый, результат совпадает с типом аргумента
SQRT(X) Вычисляет корень квадратный из аргумента х (х>0); тип х – вещественный или целый, тип результата вещественный
SIN(X) Вычисляет синус аргумента х (х – в радианах); тип х – вещественный или целый, тип результата вещественный
COS(X) Вычисляет косинус аргумента х (х – в радианах); тип х – вещественный или целый, тип результата вещественный
ARCTG(X) Вычисляет арктангенс аргумента х (х – в радианах); тип х – вещественный или целый, тип результата вещественный
EXP(X) Возведение числа е=2,71828 в степень х (е х), тип х – вещественный или целый, тип результата вещественный

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

Примеры составления линейной программы

Пример 1 Найти среднее арифметическое трёх чисел - двух целых (X и Y) и одного вещественного (Z) и квадрат среднего арифметического.

Программа :

Program Midding;

X, Y: Integer;

Z, Midd, SqrMidd: Real;

WriteLn("Введите два целых числа X и Y:");

ReadLn(X,Y);

WriteLn("Введите вещественное число Z:");

ReadLn(Z);

Midd:=(X+Y+Z)/3;

SqrMidd:=SQR(Midd)

Writeln("Среднее арифметическое = ",Midd);

Write("Квадрат среднего арифметического = ",SqrMidd);

Описание программы

В заголовке указано имя программы - Midding (среднее), затем словом var открывается раздел описания переменных: X и Y – целые, Z – вещественная. Слово begin открывает основной блок программы, в котором:

▪ оператор WriteLn выводит на экран текст "Введите два целых числа X и Y:";

▪ оператор ReadLn(X,Y)считывает значения чисел, введённых с клавиатуры и присваивает их соответственно целым переменным X и Y;

оператор ReadLn(Z)считывает значение числа, введённого с клавиатуры и присваивает его вещественной переменной Z;

▪ затем оператор присваивания вычисляет среднее значение X,Y,Z и присваивает его переменной Midd, затем аналогично вычисляется квадрат этой величины и присваивается переменной SqrMidd;

▪ оператор Writeln выводит текст "Среднее арифметическое = ",

рассчитанное значение Midd и переводит курсор на новую строку;

▪ оператор Write выводит текст "Квадрат среднего арифметического = " и рассчитанное значение SqrMidd;

▪ оператор end. закрывает основной блок и завершает выполнение программы.

Пример 2 Вычислить площадь круга S и длину окружности L по заданному радиусу R.

Программа

Program KRUG;

const P=3.14159

R,S,L:Real;

Read(R);{ввод значения радиуса}

L:=2*P*R;

S:=P*SQR(R);

Writeln(Длина окружности = ",L,"см");

Write("Площадь круга = ",S,"кв.см");

Контрольные вопросы

1 Из каких разделов состоит любая программа на языке Pascal?

2 Формат и назначение оператора присваивания.

3 Формат и назначение операторов ввода данных.

4 Формат и назначение операторов вывода данных.

Задание

Найти площадь поверхности куба по формуле T=6a 2
Определить расстояние, пройденное физическим телом за время t, если тело движется с постоянной скоростью v.
Вычислить:
В году примерно 3.156х10 7 сек. Написать программу, которая запрашивает возраст в годах и переводит его в секунды.
Вычислить:
Найти объем цилиндра по формуле: V=pR 2 H
Найти расстояние от точки с координатами (x,y) до начала координат.
Масса m одной молекулы воды примерно равна 3.0х10 -23 гр. Кварта воды равна примерно 950 гр. Написать программу, которая запрашивает количество воды в квартах и выводит число молекул в этом количестве воды.
Найти объем куба по формуле V=a 3 . (с использованием и без использования стандартных функций).
Вычислить:
Написать программу, которая запрашивает количество дней и переводит в недели и дни. Например, 18 дней = 2 недели и 4 дня.
Найти диагональ и площадь квадрата
Вычислить:
Найти площадь боковой поверхности шара: T=4pR 2
Вычислить:
Вычислить:

Выражения

Константы и переменные

Константы и переменные могут принимать значения любого из разрешенных типов данных в заданных диапазонах.

Константы определяют значения, которые известны до начала выполнения программы. Попытка присвоить константе новое значение во время выполнения программы приведет к ошибке. Переменные в отличие от констант в процессе вычислений могут принимать различные числовые значения.

В ПК каждой переменной соответствует определенная область памяти, в которую заносится ее значение.

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

Вычисление значений выражений выполняется в определенном порядке, показанном таблице 2.3.

Таблица 2.3

Для вычисления наиболее часто используемых функций библиотека Паскаля содержит соответствующие подпрограммы (таблица 2.4), вычисляющие значения основных стандартных функций. В качестве аргументов функции могут использоваться константы, переменные и выражения.

Например: Sin(X) + Cos(A/2+Z) - Log(7) .

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

1) имя функции должно строго соответствовать имени;

2) аргумент должен заключаться в круглые скобки, а его тип должен соответствовать типу, указанному в таблице 2.4.

Таблица 2.4

Запись на Паскале Название функции Тип аргумента Тип результата
Abs(X) Абсолютная величина Integer Real Совпадает с типом X
Sqr(X) Вычисляет X во 2-ой степени Integer Real Совпадает с типом X
Sin(X) Cos(X) ArcTan(X) Синус, косинус и арктангенс X Integer Real Real
Exp(X) Экспоненциальная функция e x Integer Real Real
Ln(X) Логарифм натуральный Вещественный или целый Вещественный
Exp10(X) Log(X) Данные функции аналогичны Exp(X ) и Ln(X ), но по основанию 10 Вещественный или целый Вещественный
Sqrt(X) Корень квадратный числа X Вещественный или целый Вещественный
Odd(X) Выдает True, если X нечетный и False, если X четный Целый Булевский
Trunc(X) Выдает целую часть X , дробная часть отбрасывается Вещественный Целый
Round(X) Округляет X до ближайшего целого Вещественный Целый

Примечание . Тангенс x вычисляется как ; возведение в степень производится по следующей формуле: a x =Exp (x*Ln(a)) .

Процедуры ввода-вывода

Ввод-вывод связан с обменом информацией между оперативной памятью и внешними носителями информации (терминалом ввода-вывода, АЦПУ, ГМД (дискета), ЖМД (винчестер) и др. устройствами).

В языке Паскаль стандартным средством общения человека и ЭВМ являются предопределенные файлы Input u Output, которые по умолчанию являются пара­метрами программы. Программа получает входные данные из файла Input и поме­щает результат обработки в файл Output. Стандартно файлу Input назначена клавиатура, а файлу Output - экран терминала.

Различают следующие разновидности оператора ввода (процедуры чтения):

READ (A1,A2,A3,...,AN)

READLN (A1,A2,A3....AN)

где А - переменные, которым последовательно присваиваются вводимые значения.

Во время выполнения программы, как только встречается оператор READ (READLN), ЭВМ "останавливается" и ожидает ввода числовых, символьных зна­чений. Когда значения введены и нажата клавиша ввода Enter процесс выполнения программы продолжается. Клавиша ввода нажимается после набора данных для каждой процедуры чтения. Значения вводятся через (как минимум) один пробел после набора всей программы и запуска её на выполнение.

Оператор READLN (A1,A2,...AN) сначала вводит значения переменных, а затем в отличие от оператора READ (Al, ...,AN) осуществляет переход на новую строку.

Использование оператора ввода без параметров READLN просто осуществляет переход на новую строку ввода. Оператор READLN (A1....AN) равносилен исполь­зованию 2-х операторов READ (Al .....AN) и READLN.

Например:

1) VAR А, В. : REAL

С. D: INTEGER;

READ (А.В);

READ (C,D);

READLN (A,B);

READLN (C,D);

READ (A.B);

READ (C.D);

В первом случае после набора в одной строке каждой пары данных нажима­ется клавиша ввода Enter. Во втором случае процедура чтения аналогична. Отличие заключается в том, что после считывания значений А и В первой проце­дурой чтения, данные для следующей процедуры чтения будут считываться с начала новой строки, т.е. набор данных для переменных A,B,C,D для первого и второго случаев соответственно будут выглядеть следующим образом:

1) 4.83 Е - фЗ 35.71 Е + ф1Еnteг 51 2134 Enter

2) 4.83 Е - ф3 35.71 Е + ф1Еп1ег

Допускается вводить целые, действительные и символьные данные. Ввод символьных данных имеет особенности, поскольку пробел, как и любой символ языка Паскаль относится к символьным данным. Символьные данные вводятся сплошной строкой. Например:

VAR A.B.C.D: CHAR;

READ (A.B.C.D);

Набираем на клавиатуре КИЕВ и нажимаем клавишу ввода Enter. Перемен­ные получат следующие значения А-"К", В-"И", С-"Е", D-"B". Другая особенность ввода символьных данных заключается в том, что нажатие самой клавиши Enter воспринимается как символ пробела, поэтому для правильного ввода рекоменду­ется перед каждым оператором ввода символьных данных ставить оператор READLN, чтобы их ввод осуществлялся всегда с новой строки.



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

WRITE (A1,A2.....AN);

WRITELN (A1,A2,...,AN);

WRITELN;

В качестве параметров А1, А2,..., AN могут быть целые, вещественные, символьные (строковые) и логические переменные.

Допускается бесформатный вывод и вывод данных с форматами, определя­ющие ширину поля выбора.

При бесформатном выводе для выводимых значений переменных различных типов отводится стандартное (определённое для конкретного класса машин) количество позиций. Например для ПК ЭВМ ЕС, ПК IBM.

Общая длина поля для значения переменной вещественного Типа занимает 18 позиций, а сама дробная часть числа - 10 позиций.

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

Приведем несколько примеров вывода данных с форматами для выше приве­денных значений переменных.

При выводе значения вещественной переменной В в первом случае использу­ется формат с плавающей точкой (нормализованный формат) с использованием десятичного множителя - латинской буквы Е (которая отделяет мантиссу числа от порядка). Минимальная длина поля вывода 8 символов. Во втором случае значение В выводится в формате с фиксированной точкой.

Если поле формата выбрано больше, чем количество позиций, занимаемых числом, то перед целой частью будет отведено соответствующее количество пробе­лов, а после дробной части - соответствующее количество нулей.

Первая часть последнего замечания относится и к случаям вывода значений символьных, строковых и логических переменных

Функция Назначение Тип аргумента Тип функции
Abs (x) Вычисление абсолютного значения Х R, I R, I
Sin (x) Вычисление значения функции SIN арг. X R, I R, R
Cos (x) Вычисление значения функции COS арг. X R, I R, R
Arctan(x) Вычисление значения функции ARCTG арг. X R, I R, R
SQR(x) Вычисляет значение квадрата аргум. R, I R, I
SQRT (x) Вычисляет значение корня квадратного из X R, I R, R
EXP (x) Вычисление значения экспонен циальной функции аргумента. R, I R, R
ЕХР10 (х) Вычисление 10 в степени аргумента X R, I R, R
Ln (x) Вычисление значения ф-ции натурального логарифма аргумента. R, I R, R
LOG (x) Вычисление значения ф-ции десятичного логарифма аргумента R, I R, R
TRUNC (x) Нахождение целой части X R, I I, I
INT (x) Вычисление целой части аргумента R, R R, R
ROUND (x) Округление Х в сторону ближайшего целого. R, I I, I
FRAC (x) Вычисляет дробную часть аргумента R R
ODD (x) TRUE, если Х-нечётное число; FALSE, если Х - четное число; I B
ORD(x) 1. Нахождение номера величины перечислимого типа 2. Нахождение номера символа языка Паскаль (в десятичной системе счис.) Перечисл. C I I
CHR (x) Определение символа языка Паскаль по его порядковому номеру. I C

ОБЩЕЕ ЗАДАНИЕ

1. Изучить самостоятельно

а) построение простейшей структуры программы на Паскале;

б) типы данных, описание констант, переменных.стандартных функций;

в) правила записи арифметических выражений.

2. Познакомиться с общими сведениями и методическими ука­заниями данной лабораторной работы.

3. Составить алгоритм и программу решения предлагаемой задачи.

4. Отладить на ПЭВМ рабочую программу. Распечатать листинг прог­раммы, входные данные и результат счета.

Индивидуальные задания

Вычислить на ЭВМ:

  1. , при с=0.7; m=0.3´10 -2 ; a=5; n=1.2
  2. , при r=5; k=1.24´10 -7 ; t=0.1´10 -6 ;z=0.5´10 2
  3. ; , при a=0.1; b=1.4; a=0.02; z=3´10 -3 ; k=4.5
  4. ; , при a=3.4; b=1.1; c=9
  5. ; , при δ=0.8; b=1.5; a=3; a=0.394
  6. ; , при λ=0.1; b=0.6; c=2.4´10 -4 ; t=15
  7. ; , при a=0.1; b=88;; c=0.2´10 -6
  8. ; , при a=0.3; b=0.9; c=0.61
  9. ; , при a=38.9; b=-4.7; c=5; z=0.8
  10. ; , при a=15.123; b=9.563; z=0.717
  11. ; , при a=0.5; b=3.1; c=1.4
  12. ; , при a=4.4; b=0.57; c=6; z=0.054
  13. ; , при a=0.5; b=2.7; c=0.4;
  14. ; , при a=4.5´10 -4 ; b=-2´10 -5 ; c=25
  15. ; , при a=9.6; b=8.2; c=2; k=0.7
  16. ; , при a=1.256; b=-13.5; c=4
  17. ; , при a=1.256; b=3.5; c=0.53; z=7
  18. ; , при a=2.8; b=16.4; c=-5.4
  19. ; , при a=2.953; b=0.254; c=0.5
  20. ; , при a=4.125; b= -1.234; c=0.487
  21. ; , при a= -0.92; b= 0.58
  22. ; , при a=1.725; b=19; c= -2.153
  23. ; , при a=3.457; b= 3.1; c=2
  24. ; , при a=2.389; b= 3.1; c=17
  25. ; , при a=-0.5; b= 1.7; t=0.44
  26. ; , при a=0.816; b= 3.4; c=16.7
  27. ; , при a=1.1; b= 0.2; c=4´10 -3

Контрольные вопросы

1. Какие из приведенных ниже имен переменных допустимы или запрещены в Турбо Паскале?

KAFEDRA_SAPR HELP+ME
KAFEDRA SAPR help-me
KAFEDRASAPR ABC...XYZ
ОКТ16 FOR
160KT SIGMA
ABVGD SIGMA?
abvgd number1
A BVGD номер1
A.B.V.G.D. XXXXXXXXXXXX

2. Можно ли изменять значения констант в программе?

3. Какие из приведенных ниже операторов присваивания являются правильными, если переменные

I,J,K:INTEGER;

X,Y:REAL;

А,В:BOOLEAN

A:=(XK);

I:=I+K/I;

X:+I+J-B;

4. Допустимо ли использование величин разных типов в арифметических выражениях?

5. Какие из приведенных ниже записей являются правильными с точки зрения языка Паскаль?

"А"<"В" ; "А"<"В" AND 4<5;

TRUE>FALSE; ("C"<"D") OR (4<5);

"8"<"3" ;

6. Можно ли переменной целого типа присвоить выражение вещест­венного типа и наоборот, переменной вещественного типа - выра­жение целого типа?

7. Какие функции предназначены для преобразования значений ве­щественного типа в значения целого типа?

8. Найти ошибки в программе RM1 (если они есть) и исправить их.

PROGRAM;

(Программа для контроля)

VARY Х: INTEGERS, Y REAL X + 3: = Y ;

Y:=Y + 5.7;

Z:= 4X + 9Y

В программировании, довольно часто приходиться выполнять однотипные действия, причем в задачах разного уровня и класса. И для ускорения процесса написания кода эти действия выносят в специальные подпрограммы – стандартные функции. Обращение к такой подпрограмме происходит по ее имени, а в скобках указывается значение аргумента. В следующей таблице указаны те стандартные функции, которые используются в языке программирования Pascal.

Функция Назначение
ABS(x) Вычисление абсолютного значения x: |х|
SQR(x) Вычисление квадрата x: x*x
SIN(x) Вычисление синуса x: sin x
COS(x) Вычисление косинуса x: cos x
ARCTAN(x) Вычисление арктангенса x: arctg x
EXP(x) Вычисление экспоненты (числа Е) в степени x
EXP10(x) Вычисление 10 в степени x
LN(x) Вычисление натурального логарифма x
LOG(x) Вычисление десятичного логарифма x
SQRT(x) Вычисление квадратного корня из x
A DIV B Вычисление частного при делении А на В с отбрасыванием остатка
A MOD B Нахождение остатка от делении А на В
TRUNC(x) Нахождение целой части x
RANDOM(x) Псевдослучайное число в интервале
ROUND(x) Округление значения x в сторону ближайшего целого
ODD(x) Проверяет аргумент на нечетность. Результат TRUE, если аргумент нечетный, FALSE – если четный.
ORD(x) Возвращает порядковый номер аргумента и, как следствие, преобразует величину порядкового типа в величину целого типа.
CHR(x) Определение символа языка Паскаль по его порядковому номеру
SUCC(x) Нахождение элемента, идущего после данного в перечне допустимых элементов
PRED(x) Нахождение элемента, идущего перед данным в перечне допустимых элементов
FRAC(X) Возвращает дробную часть x
INT(X) Возвращает целую часть x
Pi Значение математической постоянной π
EOF(x) Возвращает TRUE, если файл находится в стоянии “конец файла”, иначе FALSE, если нет конца файла

Выражения

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

1) 12+3*3=21 (12+3)*3=45

Как видите выражения в Pascal , имеют такой же приоритет, как и в математике, а с помощью круглых скобок его можно изменить.

2) (a >1) and (a <=20)

Такое логическое выражение возвращает истину, лишь в том случае, когда истинны оба выражения, т. е. если a входит в диапазон от 1 до 20 включительно. Стоит обратить внимание на скобки, здесь они необходимы для изменения приоритета, так как у операторов сравнения он низший.

3) (a+3>0) and (a+3<15) or (b>1) and (b<10)

Условие вернет истину, тогда когда истинными будут два условия слева или справа от OR , а также если они оба будут истинными.

Логическая операция OR (или) суть дизъюнкция в логики и поэтому имеет следующую таблицу истинности:

X Y X or Y
0 0 0
0 1 1
1 0 1
1 1 1

Ложь имеет место только когда X и Y ложны (нули). В том случае, чтобы истина возвращалась только тогда, когда одно из условий верно следует применить оператор XOR (исключающее или).

4.3. Стандартные функции в Turbo Pascal 7

В языке Паскаль существует ряд заранее разработанных подпрограмм-функций, которые можно использовать как готовые объекты. В Turbo Pascal их количество увеличено по сравнению со стандартом языка, и все они объединены в стандартные модули (см. п. 16). В данном разделе рассмотрены наиболее часто используемые стандартные функции. Стандартные функции ввода-вывода и динамического распределения памяти описаны в пп. 11 и 7 соответственно. Другие стандартные функции (работы со строками, указателями и адресами и т. д.), а также более подробное рассмотрение всех упомянутых выше функций, приведены в п. 16.

4.3.1. Арифметические функции

Арифметические функции можно использовать только с величинами целого и ипцественного типа. Их перечень приведен в табл. 4.

Таблица 4. Арифметические функции

Функция Назначение Тип результата
Abs(X) Абсолютное значение аргумента Совпадает с типом X
Arctan(X) Арктангенс аргумента Вещественный
Cos(X) Косинус аргумента Вещественный
Ехр(Х) е x Вещественный
Frac(X) Дробная часть числа Вещественный
Lnt(X) Целая часть числа Вещественный
Ln(X) Натуральный логарифм Вещественный
Pi Значение величины Pi=3.1415926535897932385 Вещественный
Sin(X) Синус аргумента Вещественный
Sqr(X) Квадрат аргумента Совпадает с типом X
Sqrt(X) Квадратный корень аргумента Вещественный

Примечание. Если функция используется с ключом компилятора {$N+}, то вместо величины типа Real она вычисляет величину типа Extended.

Пример.

{$N-}
begin
Р:= Pi {3.1415926536E+00}
end.

{$N-}
begin
Р:= Pi {3.1415926535897932385E+0000}
end.

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

Эти функции предназначены для преобразования типов величин, например (им иола в целое число, вещественного числа в целое и т. д. К ним относятся следующие функции:

Chr (X) - преобразование ASCII-кода в символ.

Аргумент функции должен быть целого типа в диапазоне (0..255). Результатом является символ, соответствующий данному коду.

High(X) - получение максимального значения величины.

Аргумент функции - параметр или идентификатор порядкового типа, типа-массива (см. п. 6.1), типа-строки (см. п. 6.2) или открытый массив (см. п. 10.3.5).

Результат функции для величины порядкового типа - максимальное значение этой величины, типа-массива - максимальное значение индекса, типа-строки -объявленный размер строки, открытого массива - количество компонент массива минус 1 (максимальный индекс, при начале нумерации с нуля).

Low(X) - получение минимального значения величины.

Аргумент функции - параметр или идентификатор порядкового типа, типа-массива (см. п. 6.1), типа-строки (см. п. 6.2) или открытый массив (см. п. 10.3.5). Результат функции для величины порядкового типа - минимальное значение этой величины, типа-массива - минимальное значение индекса, типа-строки или открытого массива - 0.

Ord(X) - преобразование любого порядкового типа в целый тип.

Аргументом функции может быть величина любого порядкового типа (логический, символьный, перечисляемый). Результатом является величина типа Longint.

Round (X) - округление вещественного числа до ближайшего целого.

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

Trunc(X) - получение целой части вещественного числа.

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

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

Эти функции позволяют выполнить ряд действий над величинами порядкового i типа (найти предыдущий или последующий элемент, проверить число на нечетность) . К этим функциям относятся следующие:

Odd(X) - проверка величины X на нечетность.

Аргументом функции является величина типа Longint, результат равен True, если аргумент нечетный, и False - если четный.

Pred(X) - определение предыдущего значения величины X.

Аргументом функции является величина любого порядкового типа, результатом - предшествующее значение того же типа (например, Pred(2) равно 1). При применении функции к первому элементу последовательности возникает ошибка.

Succ(X) - определение последующего значения величины X.

Аргументом функции является величина любого порядкового типа, результатом - последующее значение того же типа (например, Succ(2) равно 3). При применении функции к последнему элементу последовательности возникает ошибка.

Похожие статьи