Составление простейших программ с использованием процедур и функций пользователя, у которых в качестве параметров используются имена других процедур и функций

Страницы работы

Содержание работы

Программирование в среде 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);

Похожие материалы

Информация о работе