Подпрограммы Процедуры Функции Дибиров Магомедшапи Дибиргаджиевич
Подпрограмма-функция Функция – вид подпрограмм, независимая именованная часть программы, которую можно вызывать по имени для выполнения определенных действий. Упоминание имени функции в тексте программы приводит к активизации функции и называется ее вызовом. По структуре функция повторяет структуру программы и содержит почти все те же элементы, что и обычная программа. В отличие от процедуры имя функции имеет значение и тип.
Структура подпрограммы: Function [ (список) ] : ; { Раздел описания } Begin … End; ( список) – список формальных параметров. Подпрограмма-функция
Переменные… Результат работы функции возвращается через имя функции. Вызов функции может осуществляться только как часть выражения, в котором функция выступает в роли параметра.
Пример: Program Summa; Uses CRT; Function Summ(a, b:real):real; var c:real; begin c:=a+b; summ:=c end; Var x, y: real; Begin clrscr; write (x, y : ); read (x, y); write (сумма =, summ (x, y):6:2); readkey End. составить программу нахождения суммы двух чисел.
Пример: Program treugolnik; Uses CRT; Function St ( a, b : real ):real; var s:real; begin s:= a * b; st := s/2 end; Var x, y: real; Begin clrscr; write (x, y : ); read (x, y); write (Площадь =, st (x, y):6:2); readkey End. составить программу нахождения площади прямоугольного треугольника
Задание: Составить программу для вычисления значения выражения F. Поиск значения оформить в виде функции.
Пример: Program Funct1; Uses CRT; Function F1(a, b : real):real; var f:real; begin f:=(a*a*a+2*a*a)/(sqr(a+b)+1); f1:=f end; Var x, y : real; Begin clrscr; write (x, y : ); read (x, y); write (f =, f1(x,y):6:2); readkey End. составить программу нахождения
Пример: Program Funct2; Uses CRT; Function F2(a, b:real):real; var f:real; begin f:=1/(a+b); f2:=f end; 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); readkey End. составить программу нахождения
Площадь треугольника : формула Герона d c b a g f e a b c Задание: составить программу нахождения площади пятиугольника зная параметры 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 := g End; { 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); readkey End.
Задание: Составить программу поиска средней скорости автомобиля на пути от А до В, зная скорости на участках АB, BC, CD. Поиск скорости на указанных участках оформить в виде подпрограммы. A B C D AB=___км; t 1 =___ч BC=___км; t 2 =___ч CD=___км; t 3 =___ч
Задание: Скалярным произведением двух векторов называют величину, равную произведению модулей этих векторов на косинус угла между ними. Есть и другое определение: это величина, равная сумме произведений соответствующих координат. Составить программу и описать подпрограмму нахождения скалярного произведения 2-х векторов по второму определению. A B C
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); readkey End. Скалярным произведением двух векторов…
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); readkey End. Скалярным произведением двух векторов…
Задание: Векторным произведением двух векторов a и b называют такой вектор с, координаты которого определяют по следующим правилам: Составить программу и описать подпрограмму нахождения координат векторного произведения 2-х векторов. A B C
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, ) ); readkey End. Векторным произведением двух векторов…