Процедуры. Функции Дибиров Магомедшапи Дибиргаджиевич
Подпрограмма-функция Функция – вид подпрограмм, независимая именованная часть программы, которую можно вызывать по имени для выполнения определенных действий.Упоминание имени функции в тексте программы приводит к активизации функции и называется ее вызовом.По структуре функция повторяет структуру программы и содержит почти все те же элементы, что и обычная программа.В отличие от процедуры имя функции имеет значение и тип.
Подпрограмма-функция Структура подпрограммы:Function <имя> [ (список) ] : <тип>;{ Раздел описания }Begin…End;(список) – список формальных параметров.
Переменные… Результат работы функции возвращается через имя функции.Вызов функции может осуществляться только как часть выражения, в котором функция выступает в роли параметра.
Пример: составить программу нахождения суммы двух чисел. Program Summa; Uses CRT;Function Summ(a, b:real):real;var c:real;beginc:=a+b; summ:=cend;Var x, y: real;Begin clrscr;write (’x, y : ’); read (x, y); write (’сумма = ’, summ (x, y):6:2);readkeyEnd.
Пример: составить программу нахождения площади прямоугольного треугольника Program treugolnik; Uses CRT;Function St ( a, b : real ):real;var s:real;begins:= a * b; st := s/2end;Var x, y: real;Begin clrscr;write (’x, y : ’); read (x, y); write (’Площадь = ’, st (x, y):6:2);readkeyEnd.
Задание: Составить программу для вычисления значения выражения F. Поиск значения оформить в виде функции.
Пример: составить программу нахождения Program Funct1; Uses CRT;Function F1(a, b : real):real;var f:real;beginf:=(a*a*a+2*a*a)/(sqr(a+b)+1);f1:=fend;Var x, y : real;Begin clrscr;write (’x, y : ’); read (x, y); write (’f = ’, f1(x,y):6:2);readkeyEnd.
Пример: составить программу нахождения Program Funct2; Uses CRT;Function F2(a, b:real):real;var f:real;beginf:=1/(a+b); f2:=fend;Var x, y : real;Begin clrscr;write (’x, y : ’); read (x, y); write(’ F = ’, F2(f2(x,y*y), f2(x*x,y)):7:2);readkeyEnd.
Площадь треугольника: формула Герона Задание: составить программу нахождения площади пятиугольника зная параметры a, b, c, d, e, f, g. Написать подпрограмму-процедуру для поиска площади составляющих пятиугольника.
Решение задачи по формуле Герона Program Plosad; Uses CRT;Function st (A, B, C : real) : real;Var p, g : real;Begin { begin_geron }p:=(a+b+c)/2; g:= sqrt(p*(p-a)*(p-b)*(p-c)); st := gEnd; { end_geron }Var a, b, c, d, e, f, g : real;Begin clrscr; write (’ Vvedite a, b, c, d, e, f, g: ’); read (a, b, c, d, e, f, g); write (’ Plosad 5-ugolnika ravna = ’, st (a, b, g) + st (b, c, f) + st (c, d, e):6:2); readkeyEnd.
Задание: Составить программу поиска средней скорости автомобиля на пути от А до В, зная скорости на участках АB, BC, CD. Поиск скорости на указанных участках оформить в виде подпрограммы. AB=___км; t1=___чBC=___км; t2=___чCD=___км; t3=___ч
Задание: Скалярным произведением двух векторов называют величину, равную произведению модулей этих векторов на косинус угла между ними. Есть и другое определение: это величина, равная сумме произведений соответствующих координат.Составить программу и описать подпрограмму нахождения скалярного произведения 2-х векторов по второму определению.
Скалярным произведением двух векторов… Program Skalyar; Uses CRT;Function Sk(x1, y1, x2, y2: real): real;Var s:real;Begin s:=x1*x2+y1*y2; sk:=s end;Var x1, y1, x2, y2 : real;Begin clrscr;write(’ Введите координаты вектора AB: ’);read(x1, y1);write(’ Введите координаты вектора AC: ’);read(x2, y2);write(’ (AB, AC) = ’, sk(x1, y1, x2, y2):6:2);readkeyEnd.
Скалярным произведением двух векторов… Program Skalyar; Uses CRT; Type vector = array [1..2] of real;Function Sk(a, b: vector): real;Var s:real;Begin s:=a[1]*b[1]+a[2]*b[2]; sk:=s end;Var AB, AC : vector;Begin clrscr;write(’ Введите координаты вектора AB: ’);read(AB[1], AB[2]);write(’ Введите координаты вектора AC: ’);read(AC[1], AC[2]);write(’ (AB, AC) = ’, sk(AB, AC):6:2);readkeyEnd.
Задание: Векторным произведением двух векторов a и b называют такой вектор с, координаты которого определяют по следующим правилам:Составить программу и описать подпрограмму нахождения координат векторного произведения 2-х векторов.
Векторным произведением двух векторов… Program Vectornoe; Uses CRT;Function St (a1, a2, b1, b2 : real ):real;Var s :real;Begin s:=a1*b2-b1*a2; st:=s end;Var x1, y1, z1, x2, y2, z2 : real;Begin clrscr;write (’Введите координаты первого вектора: ’);read (x1, y1, z1);write (’Введите координаты второго вектора: ’);read (x2, y2, z2);write (’Вектор [a, b] = ( ’, st(y1, y2, z1, z2):6:2, ’ , ’,st(z1, z2, x1, x2):6:2, ’ , ’,st(x1, x2, y1, y2):6:2, ’ ) ’);readkeyEnd.