Помогите Исправить Ошибки В Паскаль

  • Автор темы romka7
  • Дата начала
R

romka7

#1
Дан двухмерный массив размером M x N. Найти сумма
положительных элементов каждой строки массива. Из первых четырех строк массива сформировать четыре новых вектора (одномерные массивы). Определить отношение произведения элементов массива, расположенных до максимального элемента в массиве,
к произведению элементов, расположенных после максимального.

program gjh;
uses graph, crt;
type
realVector=array [1..15] of real;
realMatrix=array [1..15] of realvector;
var
M,N,pr:integer;
iii, f , i, j, Driver, Mode:integer;
s,df_name:string;
ch:char;
A:realMatrix;
P, A1, A2, A3, A4: realvector;
t:text;
procedure mulpus(A:realmatrix; M,N:integer; var sum:realVector);
var
i,j:integer;
begin
for i:= 1 to M do
begin
sum:=0;
for j:=1 to N do
if A[i,j]> 0 then
begin
if sum=0 then
sum:=A[i,j]
else
sum:=sum+A[i,j];
end;
end;
end;
Function Zero(A:realVector; N: integer):integer;
var
i,j,max, imax, jmax:integer;
pr, pr1, pr2: real;
begin
writeln;
readln;
max:=a[1,1];imax:=1;jmax:=1;
for i:=1 to n do
for j:=1 to m do if a[i,j]>max then
begin max:=a[i,j];imax:=i;jmax:=j;end;
writeln('max = ',max);
pr1:=1;pr2:=1;
for i:=1 to n do
for j:=1 to m do
begin
if (i<imax) then pr1:=pr1*a[i,j];
if i>imax then pr2:=pr2*a[i,j];
if i=imax then
begin
if j<jmax then pr1:=pr1*a[i,j];
if j>jmax then pr2:=pr2*a[i,j];
end;
end;
writeln('proizvedenii do max = ',pr1:4:2);
writeln('proizvedenii posle max = ',pr2:4:2);
if pr2<>0 then
begin
pr:=pr1/pr2;
writeln('otnoshenie = ',pr:4:10);
end else writeln('delnie na 0');
end else writeln('nevernyy vvod');
readln;
end;
procedure roundedRect(x, y, l:integer);
const
r=5;
b=7;
var
d:array [1..4] of ArcCoordsType;
begin
Arc(x+r,y+r,90,180,r);
getarccoords(d[l]);
arc(x+r,y+r+b,180,270,r);
getarccoords(d[4]);
Arc(x+r+l, y+r+b, 270,360,r);
getarcCoords(d[2]);
Arc(x+r+l, y+r,0, 90, r);
getarccoords(d[3]);
Line(d[1].Xstart, d[1].YStart, d[3].Xend, d[3].Yend);
Line(d[3].Xstart, d[3].YStart, d[2].Xend, d[2].Yend);
Line(d[2].Xstart, d[2].YStart, d[4].Xend, d[4].Yend);
Line(d[4].Xstart, d[4].YStart, d[1].Xend, d[1].Yend);
end;
procedure button(x, y, l:integer; KeyName:string; cl:integer);
begin
SetColor(8);
RoundedRect(x+2, y+2, l);
SetfillStyle(1,8);
FloodFill(x+4, y+4,8);
SetColor(15);
RoundedRect(x,y,l);
SetFillStyle(1,15);
FloodFill(x+4, y+4, 15);
SetColor(cl);
OutTextXY(x+5, y+11, KeyName);
end;
procedure Win1;
begin
setfillstyle(1,0);
Bar3D(150,3,GetMaxX-4, GetmaxY-4,0,true);
TextColor(15);
Windows(20,2,79,24);
end;
begin
Mode:=VGAHi;
Driver:=VGA;
f:=InstallUserFont('smal');
InitGraph(Driver,Mode,'');
SetTextJustify(0,0);
SetTextStyle(f,0,4);
SetColor(8);
SetFillStyle(1,9);
Bar3D(1,1,getmaxX-2,getmaY-2,0,True);
Button(10,20,120,'vvod s klavy',12);
Button(10,50,120,'chtenie iz file',8);
Button(10,80,120,'zapis v file',8);
Button(10,110,120,'reshenie zadachi',12);
Button(10,440,120,'vyhod',8);
SetFillStyle(1,15);
Bar3D(150,3,GetmaxX-4,GetmaxY-4,0,True);
DirectVideo:=False;
iii:=1;
repeat
repeat
ch:=ReadKey;
if ch=#0 then
ch:=Readkey;
if ch in[#72,#80] then
begin
case iii of
1:Button(10,20,120,'vvod s klavy',8);
2:Button(10,50,120,'chtenie iz file',8);
3:Button(10,80,120,'zapis v file',8);
4:Button(10,110,120,'reshenie zadachi',8);
5:Button(10,440,120,'vyhod',8);
end;
case ch of
#80:begin
iii:=iii+1;
if iii>5then iii:=1;
end;
#72:begin
iii:=iii-1;
if iii<1 then iii:=5;
end;
end;
case iii of
1:Button(10,20,120,'vvod s klavy',12);
2:Button(10,50,120,'chtenie iz file',12);
3:Button(10,80,120,'zapis v file',12);
4:Button(10,110,120,'reshenie zadachi',12);
5:Button(10,440,120,'vyhod',8);
end;
end;
until ch=#13;
case iii of
1:begin
Win1;
repeat
write('vvedite chislo strok M(>=4):');
ReadLn(M);
until M>3;
Write('vvedite chislo stolbtsov N:');
ReadLn(N);
WriteLn('vvedite matritsu:');
for i:=1 to M do
begin
Write(i,':');
for j:=1 to N do
Read(A[i,j]);
ReadLn;
end;
SetFillStyle(1,15);
Bar3D(150,3,getmaxX-4,getmaxY-4,0,True);
end;
2:begin
Win1;
write('name file:');
Readln(df_name);
Assign(t,df_name);Reset(t);
Readln(t,M,N);
for i:=1 to M do
begin
for j:=1 to N do
Read(t,A[i,j]);
readln(t);
end;
Close(t);
SetFillStyle(1,15);
Bar3D(150,3,getmaxX-4,getmaxY-4,0,true);
end;
3:begin
Win1
write('name file:');
Readln(df_name);
Assign(t,df_name); Rewrite(t);
writeln(t,M,'',N);
for i:=1 to N-1 do
write (t,A[[i,j]:3:1,'');
writeln(t,A[i,N]:3:1);
end;
Close(t);
SetfillStyle(1,15);
Bar3D(150,3,getmaxX-4,getmaxY-4,0,true);
end;
4:begin
Assign(t,'v31.dat'); Rewrite(t);
A1:=A[1];
A2:=A[2];
A3:=A[3];
A4:=A[4];
MulPos(A,M,N,P);
for i:= 1 to M do
begin
for j:=1 to N do
write(t,A[i,j]:7:1);
writeln(t,'otnoshenie=',P:3:1;
end;
writeln(t);
writeln(t,'massiv1');
for j:=1 to N do
write(t,A1[j]:7:1);
writeln(t);
writeln(t,'massiv2');
for j:=1 to N do
write(t,A2[j]:7:1);
writeln(t);
writeln(t,'massiv3');
for j:=1 to N do
write(t,A3[j]:7:1);
writeln(t);
writeln(t,'massiv4');
for j:=1 to N do
write(t,A4[j]:7:1);
writeln(t);
writeln(t,'otnoshenie',pr);
Close(t);
Reset(t);
j:=15;
SetColor(8);
while not EOF(t) do
begin
readln(t,s);
outtextXY(155,j,s);
j:=j+10;
end;
Close(t);
end;
end;
until iii=5;
CloseGraph;
end.