Содержание:
Стандартные функции языка Pascal
Арифметические функции (основные)
| Функция | Назначение | Тип результата |
|---|---|---|
| abs (x) | абсолютное значение аргумента | совпадает с типом аргумента |
| sqr (x) | квадрат аргумента | совпадает с типом аргумента |
| sqrt (x) | квадратный корень аргумента | вещественный |
| cos (x) | косинус аргумента | вещественный |
| sin (x) | синус аргумента | вещественный |
| arctan (x) | арктангенс аргумента | вещественный |
| exp (x) | ex | вещественный |
| ln (x) | натуральный логарифм | вещественный |
| int (x) | целая часть числа | вещественный |
| frac (x) | дробная часть числа | вещественный |
Функции преобразования типов
| round (x) | — округляет вещественное число до ближайшего целого. |
| trunc (x) | — выдает целую часть вещественного числа, отбрасывая дробную. |
Пользовательские функции Pascal
Функция в Паскале — это подпрограмма, которая в отличие от процедуры всегда возвращает какое-либо значение. Для этого в теле функции её имени присваивается вычисленное значение — результат, который она возвращает.
- Функция – это подпрограмма, результатом работы которой является определенное значение.
- Функции используются для:
- выполнения одинаковых расчетов в различных местах программы;
- для создания общедоступных библиотек функций.
- Синтаксис:
- заголовок начинается служебным словом
function - описание формальных параметров (тех, значения которых передаются из основной программы в функцию):
- параметры-переменные — параметры, значения которых становятся доступны и в основной программе (возвращаются в программу)
- тип возвращаемого функцией результата описывается в конце заголовка функции через двоеточие:
- Вызывается функция в теле основной программы, только если ее имя фигурирует в каком-либо выражении. В отличие от процедуры, которая вызывается отдельно.
- Внутри функции можно объявлять и использовать локальные переменные:
- значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:
Рассмотрим синтаксис:
var …;{объявление глобальных переменных} function название (параметры): тип результата; var…; {объявление локальных переменных} begin … {тело функции} название:=результат; {результат вычислений всегда присваивается функции} end; begin … {тело основной программы} end.
Решение:
PascalABC.NET:
1. Мы должны написать тип значения, которое возвращает функция.
2. Переменная Result хранит результат функции.
function f(x: real): real; begin Result := x * x + 1; end; |
Вызов функции стоит в выражении:
// основная программа begin var x := 5; var r := Sqrt(x) + f(x); end. |
✍ Пример результата:
Введите три числа: 4 1 6 наибольшее = 6
✍ Пример результата:
✍ Решение:
1 2 3 4 5 6 7 8 9 10 11 12 | var x,y:integer; function f(a,b:integer):integer; begin f:= a+b; end; begin writeln('первое число:'); readln(x); writeln('второе число:'); readln(y); writeln('сумма= ',f(x,y)); end. |
В рассмотренном примере использования функции в Паскале: функция f имеет два целочисленных параметра — a и b. Через двоеточие в заголовке функции (строка 2) указано, что значение, вычисляемое функцией, будет тоже целочисленным. В теле функции вычисляемая сумма присваивается имени функции. А в основной программе вызов функции осуществляется в качестве параметра оператора writeln.
Таким образом, главное отличие функции от процедуры — это то, что функция производит какие-либо вычисления и выдает в программу результат в виде значения, в то время как процедура чаще всего выполняет какие-либо действия с результатом, например, выводит его на экран (функция этого делать не может).
✍ Пример результата:
Введите два числа: 4 7 среднее арифметическое = 5,5
| Pascal | PascalABC.NET | ||||
|
|
В рассмотренном примере функция имеет один параметр — a. Вычисляемое функцией значение имеет целочисленный тип, это указывается в заголовке функции (строка 2). В теле функции в цикле for вычисляется факториал числа. Результат вычисления присваивается имени функции (строка 9). В теле программы для вывода результата функции она вызывается в операторе writeln (строка 14), который и выводит результат на экран.
PascalABC.NET:
function Sq(x: real) := x * x + 1; begin var x := 10; var r := Sq(x) + Sq(2) end. |
Если тело функции состоит только из одного оператора, PascalABC.NET позволяет использовать при описании сокращенный синтаксис, без ключевых слов begin и end:
1 2 3 4 5 6 | ## function SumXY(x,y: real) := x + y; // основная программа begin Print (SumXY(9,2)); //11 end; |
Пример:
Введите число: 100 сумма = 5050
N — параметр функции.
Пример:
Введите номер клетки: 28 На 28-ой клетке 134217728 зерен.
IsDigit(A), которая возвращает истину, если целое число A представляет цифру (то есть A лежит в диапазоне 0–9). В основной программе вывести значение этой функции для N (N ≥ 0) данных чисел.Пример:
Введите N: 3 Введите число: 2 >>> true Введите число: 34 >>> false Введите число: 4 >>> true
Пример:
Введите число: 3 Введите степень числа: 2 Результат 3^2 = 9
Calc(A, B, Operation) вещественного типа, выполняющую над ненулевыми вещественными числами A и B одну из арифметических операций и возвращающую ее результат. Вид операции определяется целым параметром Operation: 1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение. С помощью Calc выполнить для данных A и B операции, определяемые данными целыми N1, N2, N3.Пример:
Введите два числа: 5 7 Введите номер операции (1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение): 2 Результат 5*7 = 35
Самостоятельная работа
CircleS(R) вещественного типа, находящую площадь круга радиуса R (R — вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площадь круга радиуса R вычисляется по формуле S=π∗R2. В качестве значения Пи использовать 3.14.
Пример:
Введите радиус: 5.2 Площадь круга = 16,328 ___ Введите радиус: 6.3 Площадь круга = 19,782 ___ Введите радиус: 7.1 Площадь круга = 22,294
2 вариант: Описать функцию TriangleP(a, h), находящую периметр равнобедренного треугольника по его основанию a и высоте h, проведенной к основанию (a и h — вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты (периметр = сумме длин всех сторон). Для нахождения боковой стороны b треугольника использовать теорему Пифагора: b2=(a/2)2+h2.
Пример:
Введите основание треугольника: 6 Введите высоту треугольника: 5 Периметр треугольника = 17,83095 ___ Введите основание треугольника: ... Введите высоту треугольника: ... Периметр треугольника = ... ___ Введите основание треугольника: ... Введите высоту треугольника: ... Периметр треугольника = ...
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:





Спасибо!