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

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

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

Балтийский государственный технический университет «ВОЕНМЕХ» им. Д. Ф. Устинова

Кафедра информационных систем и технологий

Лабораторная работа №1

«Использование директивы подключения файлов исходного текста. Передача имени функции в качестве параметров. Построение таблицы символами псевдографики. Строковые данные.»

Преподаватель: Шеляпин Ю. П.

Выполнил: Королев М. Ю.

Группа: И-351

Санкт-Петербург

2005 год.

Задание


Блок-схема алгоритма

Вв. х

 

Вы. My_Func

 
Овал: My_Func

false

 

Вы. rez

 
Блок-схема: решение: abs(a)<=eps

My_Func:=s;

 
Овал: Конец
Овал: Root
Овал: Конец



Lb1-main.pas

program Lab1;{Королев Михаил И351}

uses crt;

{$i lb1-opis}

{$i lb1-tabl}

{$i lb1-root}

{$i lb1-myfu}

{$i lb1-em}

begin

ClrScr;

EnterMassive(n,arg);

root(n,arg,My_Func,rez1);

root(n,arg,My_Func2,rez2);

clrscr;

textcolor(15); WriteLn('Полученные результаты:'); textcolor(7);

table(n,arg,rez1,rez2);

readkey;

end.

Lb1-em.pas

procedure EnterMassive (n:integer;var a:massiv);

var

i:integer;

begin

textcolor(10);

WriteLn('Ввод масива:');

For i:=1 to n do

begin

textcolor(7);Write(i,': ');

textcolor(15);ReadLn(a[i]);

end;

textcolor(7);

end;

lb1-myfu.pas

function My_Func(x:real):real;

const eps=1e-5;

var s,a:real;

i:integer;

begin

s:=0;a:=x/2;i:=1;

Repeat

s:=s+a;

i:=i+1;

a:=a*i*i*x/((i-1)*(i+1));

Until abs(a)<=eps;

My_Func:=s;

end;

function My_Func2(x:real):real;

const eps=1e-5;

var s,a:real;

i:integer;

begin

s:=0;a:=x/2;i:=1;

While abs(a)>eps do begin

s:=s+a;

i:=i+1;

a:=a*i*i*x/((i+1)*(i-1));

end;

My_Func2:=s;

end;

lb1-opis.pas

const

n=5;

{$F+}

type

massiv=array[1..n] of real;

my_func_type=function(x:real):real;

var

arg,rez1,rez2:massiv;

lb1-root.pas

procedure root(n:integer;a:massiv;work_func:my_func_type;var rez:massiv);

var

i:integer;

begin

For i:=1 to n do

rez[i]:=work_func(a[i]);

end;

lb1-tabl.pas

procedure table(n:integer;a,r1,r2:massiv);

var

i:integer;

begin

clrscr;

writeln('-==================T==================T==================¬');

writeln('¦     Аргумент     ¦ Значение ф-ции 1 ¦ Значение ф-ции 2 ¦');

writeln('¦==================+==================+==================¦');

for i:=1 to n do

writeln('¦  ',a[i]:10:4,'      ¦ ',r1[i]:12:5,'     ¦ ',r2[i]:12:5 ,'     ¦');

writeln('L==================¦==================¦==================-');

end;


Контрольные расчеты:


При исходных данных(Х: 0.1, 0.2, 0.3, 0.4, 0.5) программа выдала результаты:


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

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