Язык программирования определение функция задача

Pascal: Занятие № 8. Подпрограммы: функции в Pascal

егэ разбор егэ разбор pascal уроки c уроки python уроки c++ уроки vb уроки lazarus уроки php уроки html уроки css уроки javascript уроки jquery и ajax уроки prolog уроки flash уроки

На занятии будет объяснен алгоритм работы с функциями на Паскале, рассмотрены стандартные функции. Будут разобраны примеры использования функций с параметрами и без параметров.

Стандартные функции языка 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

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

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

    1

    формальные параметры в паскале

    параметры-переменные в паскале

    тип функции

    локальные переменные в функции

    результат функции

    var; function название (параметры): тип результата; var; beginназвание:=результат; end; beginend.

    пример функции в паскале

    1. Мы должны написать тип значения, которое возвращает функция.
    2. Переменная Result хранит результат функции.

    function f(x: real): real; begin Result := x * x + 1; end;

    function f(x: real): real; begin Result := x * x + 1; end;

    Вызов функции стоит в выражении:

    // основная программа begin var x := 5; var r := Sqrt(x) + f(x); end.

    // основная программа begin var x := 5; var r := Sqrt(x) + f(x); end.

    Задача function 0. Написать функцию, которая вычисляет наибольшее из заданных трех значений. Функция с тремя параметрами.

    Введите три числа: 4 1 6 наибольшее = 6
    первое число: 2 второе число: 5 сумма = 7
    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.

    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 .

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

    Задача function 1. При помощи функции найти среднее арифметическое двух чисел (функция с двумя параметрами).

    Введите два числа: 4 7 среднее арифметическое = 5,5
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
    var x:integer; function fact(a:integer):integer; var i: integer; begin if a=1 then begin fact:=1;exit; end; result:=2; for i:=3 to a do result:=result*i; fact:=result; end; begin writeln('число:'); readln(x); writeln(fact(x)); end.
    function Fact(n: integer): integer; begin Result := 1; for var i:=1 to n do Result *= i end; begin var x:= readInteger('число:'); println(x,'! = ',fact(x)); end.

    function Fact(n: integer): integer; begin Result := 1; for var i:=1 to n do Result *= i end; begin var x:= readInteger(‘число:’); println(x,’! = ‘,fact(x)); end.

    В рассмотренном примере функция имеет один параметр — a . Вычисляемое функцией значение имеет целочисленный тип, это указывается в заголовке функции (строка 2). В теле функции в цикле for вычисляется факториал числа. Результат вычисления присваивается имени функции (строка 9). В теле программы для вывода результата функции она вызывается в операторе writeln (строка 14), который и выводит результат на экран.

    function Sq(x: real) := x * x + 1; begin var x := 10; var r := Sq(x) + Sq(2) end.

    function Sq(x: real) := x * x + 1; begin var x := 10; var r := Sq(x) + Sq(2) end.

    Если тело функции состоит только из одного оператора, PascalABC.NET позволяет использовать при описании сокращенный синтаксис, без ключевых слов begin и end :

    ## function SumXY(x,y: real) := x + y; // основная программа begin Print (SumXY(9,2)); //11 end;

    ## function SumXY(x,y: real) := x + y; // основная программа begin Print (SumXY(9,2)); //11 end;

    Задача function 2. Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования. N — параметр функции.

    Введите число: 100 сумма = 5050

    Задача function 3. Составить функцию, которая определяет, сколько зерен попросил положить на N-ую клетку изобретатель шахмат (на 1-ую – 1 зерно, на 2-ую – 2 зерна (в два раза больше предыдущего результата), на 3-ю – 4 зерна, на 4-ю – 8 зерен…). N — параметр функции.

    Введите номер клетки: 28 На 28-ой клетке 134217728 зерен.

    Задача function 4. Описать функцию IsDigit(A) , которая возвращает истину, если целое число A представляет цифру (то есть A лежит в диапазоне 0–9). В основной программе вывести значение этой функции для N (N ≥ 0) данных чисел.

    Введите N: 3 Введите число: 2 >>> true Введите число: 34 >>> false Введите число: 4 >>> true

    Задача function 5. Вычисление степени числа с помощью функции на языке Паскаль.

    Введите число: 3 Введите степень числа: 2 Результат 3^2 = 9

    Задача function 6. Описать функцию 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

    Самостоятельная работа

    1 вариант: Описать функцию CircleS(R) вещественного типа, находящую площадь круга радиуса R ( R — вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площадь круга радиуса R вычисляется по формуле S=π∗R 2 . В качестве значения Пи использовать 3.14 .

    Введите радиус: 5.2 Площадь круга = 16,328‬ ___ Введите радиус: 6.3 Площадь круга = 19,782‬‬ ___ Введите радиус: 7.1 Площадь круга = 22,294

    2 вариант: Описать функцию TriangleP(a, h) , находящую периметр равнобедренного треугольника по его основанию a и высоте h , проведенной к основанию ( a и h — вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты (периметр = сумме длин всех сторон). Для нахождения боковой стороны b треугольника использовать теорему Пифагора: b 2 =(a/2) 2 +h 2 .

    Введите основание треугольника: 6 Введите высоту треугольника: 5 Периметр треугольника = 17,83095 ___ Введите основание треугольника: . Введите высоту треугольника: . Периметр треугольника = . ___ Введите основание треугольника: . Введите высоту треугольника: . Периметр треугольника = .

    Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

    Источник

    Читайте также:  Программирование какие предметы нужно знать
Оцените статью