Стандартные арифметические функции в паскале. Стандартные функции Pascal. Примеры составления линейной программы

Windows 10

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

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

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

В Паскале можно выделить два типа подпрограмм:

  • Функции
  • Процедуры

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

Структура процедуры в Паскале представлена так:

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

var имя параметра: имя типа;

Формальные параметры разделяются запятыми; ключевое слово var в некоторых случаях может быть опущено. Когда параметры имеют одинаковый тип, то имена этих параметров перечисляют чрез запятую, указывая в конце после знака «:» имя соответствующего типа.

Когда описывают параметры, то можно пользоваться только стандартными именами типов, которые определены при помощи команды type. Процедуры вызываются с помощью оператора, имеющего следующую структуру:

имя процедуры(список фактических параметров);

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

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

имя функции:=результат;

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

  1. количество формальных параметров = количество фактических параметров;
  2. фактические и формальные параметры должны обладать одним и тем же порядком следования и типом.

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




Например: 11 div 5 = 2 10 div 3 = 3 2 div 3 = div 4 = div -5 = div 5 = div -5 = 3 10 mod 5 = 0 11 mod 5 = 1 10 mod 3 = 1 14 mod 5 = 4 17 mod - 5 = mod 5 = mod -5 = -2


0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом" title="Взаимосвязь между операциями div и mod Аргументы операций div и mod целые числа. Для а>0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом" class="link_thumb"> 6 Взаимосвязь между операциями div и mod Аргументы операций div и mod целые числа. Для а>0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целому b. А именно, а кратно b тогда и только тогда, когда а mod b = 0 0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом"> 0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целому b. А именно, а кратно b тогда и только тогда, когда а mod b = 0"> 0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом" title="Взаимосвязь между операциями div и mod Аргументы операций div и mod целые числа. Для а>0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом"> title="Взаимосвязь между операциями div и mod Аргументы операций div и mod целые числа. Для а>0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом">


Определить кол-во оставшихся слив, если их делили на 5 человек write (Кол-во слив = "); readln (a); b:= a mod 5; writeln(Осталось,b, слив);


Операции отношения Не равно Меньше = Равно Больше = Меньше или равно Больше или равно = Меньше или равно Больше или равно"> = Меньше или равно Больше или равно"> = Меньше или равно Больше или равно" title="Операции отношения Не равно Меньше = Равно Больше = Меньше или равно Больше или равно"> title="Операции отношения Не равно Меньше = Равно Больше = Меньше или равно Больше или равно">






Вычислить гипотенузу прямоугольного треугольника (длина катетов - a и b) write ("a="); readln (a); write ("b="); readln (b); c:= sqrt (sqr(a) + sqr(b)); writeln ("c=", с:5:2);


Вычислить модуль разности чисел a и b write ("a="); readln (a); write ("b="); readln (b); c:= abs (a - b); writeln ("модуль=", с);






Экспонента и логарифм Exp (x) ln x (натуральный логарифм) Ln (x) e x (экспонента числа, e) Exp (b*Ln (a)) ab ab










Примеры использования DIV и MOD: Операции DIV и MOD часто используются для анализа чисел, например, для получения цифр, из которых состоит число. Задача: Ввести с клавиатуры какое-нибудь трехзначное число. Определить сумму его цифр и вывести эти цифры в обратном порядке.


Пусть переменная а содержит значение заданного числа. Цифры числа а обозначим так: i - количество сотен; j – количество десятков; k - количество единиц; s – сумма этих цифр. Program MyNamber; Uses Crt; Var a, i, j, k, s: integer; Begin clrscr; Writeln (Задайте 3-х значное число); Readln (a); i:=a div 100; {количество сотен} j:=a div 10 mod 10; {десятков} k:=a mod 10; {количество единиц} s:=i+j+k; Writeln (Сумма цифр числа,a,=,s); Writeln (k, j, i); Readln; End.


Стандартные функции Функция ПаскаляМатематическая запись Название Abs(x)|Х||Х| Абсолютная величина числа Х (модуль) Sqr(x)Х2Х2 Возведение числа в квадрат Exp(x)exex Экспонента Sqrt (x) x Вычисление квадратного корня Exp(b*ln(a)) abab Возведение числа в степень Round (x) Округляет до ближайшего целого числа Trunc (x) Отсекает дробную часть Sin(x)sinx Вычисление синуса Cos(x)сosx Вычисление косинуса



Ответы 1.1,68 4.2,06 5.1,10 6.2,16 7.3,05 8.0,10


2.Дано трёхзначное число. В нём зачеркнули первую слева цифру и приписали её справа. Вывести полученное число.(Например,) 3.Дано трёхзначное число. Вывести число, полученное при перестановке цифр десятков и единиц исходного числа. (Например,)

Для выполнения часто встречающихся операций и преобразований данных, относящихся к разным типам, существуют заранее определенные функции, которые называются СТАНДАРТНЫМИ. Для обращения к функции необходимо задать ее имя и в скобках список аргументов (параметров).

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

  • 1. Имя функции записывается прописными буквами латинского алфавита.
  • 2. Аргумент функции записывается в круглых скобках после имени функции.
  • 3. Аргументом функции может быть константа, переменная, или арифметическое выражение того же типа

Теперь рассмотрим некоторые стандартные функции:

Функция Действие Тип Х Тип возвращаемого значения

SQRT(X) вычисляет квадратный корень из аргумента Х действительный действительный

SQR(X) вычисляет квадрат аргумента Х целый действи-тельный целый действи-тельный

RANDOM(X) возвращает случайное число, перед вызовом функции желательно использовать в программе оператор RANDOMIZE включающей случайную инициализацию генератора случайных чисел целый, положительный соответствует типу переменной принимающей значение

SIN(X) вычисляет синус аргумента Х действительный действительный

COS(X) вычисляет косинус аргумента Х действительный действительный

ABS(X) вычисляет абсолютное значение (модуль) аргумента Х целый действи-тельный целый действи-тельный

ODD(X) проверяет Х на четность длинное целое логический

ORD(X) определяет порядковый номер символа Х любой тип кроме действительного длинное целое

CHR(X) определяет символ стоящий по порядковому номеру Х byte символьный

PRED(X) определяет предыдущее значение по отношению к Х любой тип кроме действительного тот же тип

SUCC(X) определяет последующее значение по отношению к Х любой тип кроме действительного тот же тип

ARCTAN(X) вычисляет арктангенс аргумента Х действительный действительный

EXP(X) вычисляет экспоненту от аргумента Х действительный действительный

LN(X) вычисляет натуральный логарифм от Х действительный действительный

TRUNC(X) находит целую часть от Х действительный длинное целое

ROUND(X) округляет Х в сторону ближайшего целого действительный длинное целое

INT(X) возвращает целую часть аргумента Х действительный действительный

FRAC(X) возвращает дробную часть аргумента Х действительный действительный

DEC(X,N) уменьшает значение переменной Х на заданное число N любой тип кроме действительного тот же тип

INC(X,N) увеличивает значение переменной Х на заданное число N любой тип кроме действительного тот же тип

PI возвращает значение числа - действительный

  • 1. ORD(‘R’)=82; ORD(5)=5;
  • 2. CHR(68)=’D’; можно вызывать эту функцию через #, если аргумент функции константа (#68="D");
  • 3. PRED(‘N’)=’M’; PRED(87)=86;
  • 4. SUCC(‘S’)=’T’; SUCC(87)=88;
  • 5. PI=3.141592653897932385;
  • 6. ROUND(3.1415)=3;
  • 7. LN(1)=0.000;
  • 8. SQRT(36)=6.000;
  • 9. SIN(90*pi/180)=1.000.

Замечание:

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

В программировании, довольно часто приходиться выполнять однотипные действия, причем в задачах разного уровня и класса. И для ускорения процесса написания кода эти действия выносят в специальные подпрограммы – стандартные функции. Обращение к такой подпрограмме происходит по ее имени, а в скобках указывается значение аргумента. В следующей таблице указаны те стандартные функции, которые используются в языке программирования 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 (исключающее или).

Арифметические операции языка Pascal ABC

СТРУКТУРА ПРОГРАММЫ. ОПИСАНИЕ ПЕРЕМЕННЫХ В PASCAL ABC

Цель работы Изучить структуру программы. Освоить работу пользователя по описанию переменных различных типов при работе в интегрированной среде PASCAL ABC 7.0.

ЗНАК ВЫРАЖЕНИЕ ОПЕРАЦИЯ
+ A+B СЛОЖЕНИЕ
_ A – B ВЫЧИТАНИЕ
* A*B УМНОЖЕНИЕ
/ A/B ДЕЛЕНИЕ
DIV A div B ЦЕЛОЕ ДЕЛЕНИЕ
MOD A mod B ОСТАТОК ОТ ЦЕЛОГО ДЕЛЕНИЯ
Функция Функция
Frac(x) Дробная часть х
Int(x) Целое
Ln(x) Натуральный логарифм
Pi Постоянная величина π
Abs(x) Абсолютное значение (модуль числа)
Arctan(x) Арктангес х
Cos(x) Косинус х
Exp(x) е - экспанента
Random Случайное число от 0 до 1
Random(n) Случайное число от 0 до n
Odd(x) True , если х – нечетное False , если х – четное
Sin(x) Синус х –(в радианах)
Sqr(x) Квадрат аргумента
Sqrt(x) Квадратный корень
Trunc(x) Ближайшее целое, не превышающие аргумент по модулю (отсекание дробной части числа x)
Round(x) Округление до ближайшего целого аргумента

Задания 1

Вычислить месячные выплаты m по займу в s рублей на n лет под процент p. Вычисления выполняются по формулам:

Наберите текст программы:

Выполнить самостоятельно:

1. Заданы длины трех сторон треугольника a , b , c . Вычислить периметр и площадь треугольника по формуле Герона

2. Вычислить значение выражения по формуле (все переменные принимают действительные значения):

1. Запустите программу на выполнение и проверьте её работу;

2. Просмотрите результат выполнения программы;