Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания ЛПЗ по программированию.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
676.86 Кб
Скачать

Краткие сведения из теории

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

Порядок работы

1. Составить алгоритм и программу с использованием подпрограммы-функции

Таблица 13

Номер варианта

Условие

1

Вычислить число сочетаний из n по m(n>m) по формуле:

2

Вычислить:

3

Вычислить:

4

Найти все трехзначные числа, равные сумме факториалов своих цифр.

5

Два треугольника заданы координатами своих вершин. Вычислить площади треугольников с помощью формулы Герона и определить, какой треугольник имеет большую площадь.

6

Решить уравнение ax+b=0, где . Значения k,l,m вводятся.

7

Даны действительные числа s,t. Вычислить: ,

где

8

Вычислить число сочетаний с повторениями по формуле:

9

Найти наибольший общий делитель целых положительных чисел a, b, c.

10

Даны действительные числа х,у. Вычислить: , Где

11

Решить уравнение , где , r,m,n вводятся.

12

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

13

Вычислить:

14

Вычислить:

Практическое занятие13 процедурные типы

Цель работы:

Научиться использовать процедурные типы при составлении программ

Краткие сведения из теории

Так как процедурные типы допустимы в любом контексте, то можно объявить процедуры или функции, параметрами которых являются тоже процедуры или функции. такие параметры являются параметрами значения, так как записываются в объявление без служебного слова var. В качестве фактических параметров в этом случае используются объявленные процедуры или функции, имеющие соответствующее количество параметров требуемых типов.

Пример: задача формирования матрицы , элементами которой являются:

  • сумма индексов i и j;

  • произведение индексов i и j;

  • сумма квадратов индексов i и j.

Program pr_typ

Type Tfunc = function (X,Y:integer): integer; //Объявление процедурного типа

TMatrix = array [1..5,1..5]of integer; //Объявление типа для матрицы

Var M_Sum,M_Mult,M_SgrSum: Tmatrix;

{Функция суммы двух чисел}

function Sum(X,Y: integer): integer;

begin Sum:=X+Y; end;

{Функция произведения двух чисел}

function Mult (X,Y: integer): integer;

begin Multiply:=X*Y; end;

{ Функция суммы квадратов двух чисел}

function SgrSum(X,Y: integer): integer;

begin SgrSum:= (X*X) + (Y*Y); end;

{ Процедура заполнения матрицы с параметром процедурного типа}

procedure FillMatrix(M:Tmatrix; Operation:Tfunc);

var I,J: integer;

begin for I:=1 to 5 do // Вложенные циклы заполнения матрицы

for J:=I to 5 do {Элементы матрицы вычисляются в зависимости от используемой функции}

begin M[I,J]:= Operation (I,J); M[I,J]:= M[I,J] еnd

end;

begin

FillMatrix(M_Sum,Sum); //Элемент матрицы – сумма индексов i и j

FillMatrix(M_Mult,Mult) ;//Элемент матрицы–произведения индексов i и j

FillMatrix(M_SgrSum, SgrSum); //Элемент матрицы–сумма квадратов индексов i и j

Вывод результатов;

End.