Автор: scharhan
Дата сообщения: 04.05.2008 20:19
Всем привет! ...плиз помогите...!!! найдите ошибки(((
Задача такая..Нужно чтобы из главной программы вызывались модули которые решают
1. Метод Хорд
2. Умножение матрицы на матрицу
3. Метод Рунге - Кутта
Курсач нужно уже завтра распечатать ....
вот тексты программ...
........................................
ГЛАВНАЯ
[more]program glavn;
uses crt,Hord,Manama,Runge;
var e1:THord; m1:TManama; r1:TRunge;
buf:string;
begin
repeat
clrscr;
writeln(' ');
writeln(' MENU ');
writeln(' ');
writeln(' 1 - Метод хорд ');
writeln(' 2 - Умножение матрицы на матрицу ');
writeln(' 3- Метод Рунге-Кутта ');
writeln(' 4- Выход ');
writeln(' ');
case readkey of
'1':begin
clrscr;
e1.metodhord;
assign(e1.f,'d:\File.txt');
reset(e1.f);
while not eof (e1.f) do
readln(e1.f,buf);
writeln(buf);
close(e1.f);
readkey;
end;
'2':begin
clrscr;
m1.manama;
assign(m1.f,'d:\File.txt');
reset(m1.f);
while not eof (m1.f) do
begin
for m1.i:=1 to 200 do
begin
read(m1.f,buf);
write(buf);
end;
readln(m1.f,buf);
writeln;
end;
close(m1.f);
readkey;
end;
'3':begin
clrscr;
r1.rk;
assign(r1.f,'d:\File.txt');
reset(r1.f);
while not eof (r1.f) do
begin
for r1.i:=1 to 200 do
begin
read(r1.f,buf);
write(buf);
end;
readln(r1.f,buf);
writeln;
end;
close(r1.f);
readkey;
end;
'4':begin
close();
readkey;
end;
end;
writeln;
writeln('Повтор (y/n)');
until readkey='n';
end.[/more]
.............................................
Метод Хорд
[more]unit metodhord;
interface
uses crt;
type hord=object
a,b,c,cp,eps:real;
constructor init;
procedure shag;
function poisk:real;
end;
function funct(x:real):real;
implementation
begin
funct:=x*x*x*x*x+5*x+1;
end;
constructor hord.init;
begin
clrscr;
writeln(' Metod HORD');
write(' ВВЕДИТЕ ТОЧНОСТЬ: eps = ');
readln(eps);
write(' ВВЕДИТЕ ЛЕВУЮ ГРАНИЦУ ОТРЕЗКА: a = ');
readln(a);
write(' ПРАВУЮ ГРАНИЦУ ОТРЕЗКА: b = ');
readln(b);
cp:=a;
c:=a-(funct(a)*(b-a))/(funct(b)-funct(a));
end;
procedure hord.shag;
begin
if(funct(a)*funct(c)>0)
then a:=c
else b:=c;
cp:=c;
c:=a-(funct(a)*(b-a))/(funct(b)-funct(a));
end;
function hord.poisk:real;
begin
while (abs(c-cp)>eps) do
begin
if(funct(c)=0) then
begin
break;
end
else
begin
shag;
end;
end;
poisk:=c;
end;
var y:hord;
eps:real;
begin
y.init;
writeln(y.poisk);
readkey;
end.[/more]
..........................................
Умножение матрицы на матрицу
[more]
unit manama;
interface
uses crt;
type mptr = ^matrix;
matrix=object
a:array[1..3,1..3]of real;
constructor init;
procedure printf;
end;
implementation
constructor matrix.init;
var i,j:integer;
begin
clrscr;
writeln(' Matrica na matricu ');
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write(' ВВЕДИТЕ a[',i,',',j,'] =');
readln(a[i,j]);
end;
end;
end;
procedure matrix.printf;
var i,j:integer;
begin
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write(a[i,j]:3:3,' ');
end;
writeln;
end;
end;
procedure summ(e,f:matrix;t:mptr);
var i,j,k:integer;
s:real;
begin
For i:= 1 to 3 do
begin
For j:= 1 to 3 do
begin
s:=0;
for k:= 1 to 3 do
begin
s:=s+e.a[i,k]*f.a[k,j];
end;
t^.a[i,j]:=s;
end;
end;
end;
var a,b,c:matrix;
begin
a.init;
b.init;
summ(a,b,@c);
c.printf;
readkey;
end.
[/more]
..........................................................
Метод Рунге-Кутта
[more]
unit rk;
interface
uses crt;
type TEiler=object
x,y,h,b,dx1,dx2,dx3,dx4,ddx:real;
constructor init;
procedure shag;
procedure poisk;
end;
function proizv(f,g:real):real;
implementation
begin
proizv:=f*f+f*g+g*g;
end;
constructor TEiler.init;
begin
clrscr;
x:=0;
y:=0.5;
h:=0.1;
b:=1;
end;
procedure TEiler.shag;
begin
dx1:=proizv(x,y);
dx2:=proizv(x+h/2,y+h*dx1/2);
dx3:=proizv(x+h/2,y+h*dx2/2);
dx4:=proizv(x+h,y+h*dx3);
ddx:=(dx1+2*dx2+2*dx3+dx4)/6;
y:=y+ddx*h;
x:=x+h;
end;
procedure TEiler.poisk;
var f:text;
begin
assign(f,'1.txt');
rewrite(f);
while (x<=b) do
begin
writeln('x=',x:3:3,' ','y=',y:3:3);
writeln(f,x,' ',y);
shag;
end;
close(f);
end;
var q:TEiler;
eps:real;
begin
q.init;
q.poisk;
readkey;
end.
[/more]
....
Вот и сдать нам сказали 9 файлов
файлы pas и tpu и 1 файл exe. т.е. главная программа из которой все и работает(откомпилированная) и блоксхемы к ним.., но блок-схемы я уже сделал а проги не работают(((
ПЛИЗ ОТВЕТЬТЕ СЕГОДНЯ!!!
Заранее спасибо!!!!