Программирование в среде TurboPascal 7.0
Лабораторная работа №9
Тема – параметры-процедуры и параметры-функции
Цель работы – освоить приемы и способы составления простейших программ с использованием процедур и функций пользователя, у которых в качестве параметров используются имена других процедур и функций.
Выполнил: студент гр.TO-07
Шляхов Артёма Сергеевич
Проверил: Журов Г.Н.
Дата: 19.05.08.
Вариант №10
Задача 1. Вычислить ; по формуле правых прямоугольников. Начальное значение разбиения промежутка интегрирования .
Решение.
Программа:
{$f+}
Program demoprocfar2;
type fUser=function(t:real):real;
Var int1,int2:real;
Function f1(x:real):real;
begin
f1:=sqr(x)-2*sqr(x)-3.2
end;
Function f2(x:real):real;
begin
f2:=cos(x)
end;
Function Integ(a,b:real;n:integer;e:real;f:fUser):real;
var s,sold,h,delta,t:real;i:integer;
begin sold:=0;
repeat
s:=(f(a)+f(b))/2;h:=(b-a)/n; t:=a;
for i:=1 to n-1 do begin t:=t+h;
s:=s+f(t)
end;
s:=s*h;
delta:=abs(sold-s);
sold:=s;
n:=n*2
until delta<e;
integ:=s
end;
Begin
int1:=integ(0,1,20,1.e-3,f1);
writeln('vichislennoe znachenie 1 integrala',int1:8:4);
int2:=integ(-1,1,20,1.e-3,f2);
writeln('vichislennoe znachenie 2 integrala',int2:8:4)
end.
Вид печати:
vvedite vector e2.2 -3.5
eto vector e
2.2000
-3.5000
vvedite vector c1.2 0.2 -3.1 4.3
eto vector c
1.2000
0.2000
-3.1000
4.3000
eto vector z
6.8400
14.2500
eto vector y
-2.0680
-2.8013
-3.0416
-3.9162
vichislennoe znachenie 1 integrala -3.5334
vichislennoe znachenie 2 integrala 1.6829
Задача 2. Задан вектор размерности 2, вектор размерности 4. Построить вектор размерности 2, у которого функция-элемент есть . Построить вектор размерности 4, у которого функция-элемент есть . Вычисление оформить в виде процедуры.
Решение:
Программа:
{$f+}
program demoprocfar1;
const nmax=4;
type vect=array[1..nmax] of real;
fUser=function (x:real):real;
var e,c,z,y:vect; n:integer;
procedure vvod_v(var x:vect;n:integer);
var i:integer;
begin for i:=1 to n do read (x[i]);
end;
procedure vyvod_v(x:vect;n:integer);
var i:integer;
begin
writeln;
for i:=1 to n do writeln (x[i]:8:4);
writeln
end;
procedure NewVect(x:vect;n:integer;var p:vect;f:fUser);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.