III Паскаль программы:
3.1 Паскаль-программа блочной структуры:
PROGRAM tipovichok;
TYPE MATRICA=array[1..5,1..6] of real;
MASSIV=array[1..6] of real;
VAR A,B:MATRICA;
C,SU:MASSIV;
N,i,j:integer;
f1,f2:text;
Procedure SUMST(Var A:MATRICA;Var S1:MASSIV);
Var i,j:integer;
Begin
For j:=1 to 6 do
begin
S1[j]:=0;
For i:=1 to 5 do
S1[j]:=S1[j]+A[i,j]
end
End;
Function MST(Var S2;D:integer):integer;
Type AXAXA=array[1..10922] of real;
Var i,ms:integer;
M:real;
Begin
M:=AXAXA(S2)[1];
ms:=1;
For i:=1 to D do
If AXAXA(S2)[i]>=M Then
begin
M:=AXAXA(S2)[i];
ms:=i
end;
MST:=ms
End;
Procedure SOZMATR(Var A:MATRICA;N1:integer;Var B1:MATRICA);
Var i,j:integer;
Begin
For j:=1 to N1 do
For i:=1 to 5 do
B1[i,j]:=A[i,j]
End;
Procedure SOZMAS(Var A:MATRICA;N2:integer;Var C1:MASSIV);
Var i:integer;
Begin
For i:=1 to 5 do
C1[i]:=A[i,N2]
End;
BEGIN
assign(f1,'slish.pas');
assign(f2,'mish.pas');
reset(f1);
rewrite(f2);
For i:=1 to 5 do
begin
For j:=1 to 6 do
Read(f1,A[i,j]);
Readln(f1);
end;
Read(f1,N);
Writeln(f2,' ':35,'Результаты');
Writeln(f2);
SUMST(A,SU);
If MST(SU,6)>N Then
begin
SOZMATR(A,MST(SU,6),B);
Writeln(f2,' ':13,'{B}:');
For i:=1 to 5 do
begin
Write(f2,' ':10);
For j:=1 to MST(SU,6) do
write(f2,B[i,j]:6:1,' ');
Writeln(f2)
end;
end
Else
begin
SOZMAS(A,N,C);
Write(f2,' ':10,'{C}: ');
For i:=1 to 5 do
Write(f2,C[i]:6:1,' ')
end;
close(f1);
close(f2)
END.
3.2 Паскаль-программа модульной структуры:
UNIT OBIVL;
INTERFACE
TYPE MATRICA=array[1..5,1..6] of real;
MASSIV=array[1..6] of real;
VAR A,B:MATRICA;
C,SU:MASSIV;
N,i,j:integer;
f1,f2:text;
IMPLEMENTATION
BEGIN
assign(f1,'slish.pas');
assign(f2,'mish.pas');
reset(f1);
rewrite(f2)
END.
UNIT A1;
INTERFACE
USES OBIVL;
Procedure SUMST(Var A:MATRICA;Var S1:MASSIV);
Function MST(Var S2;D:integer):integer;
IMPLEMENTATION
Procedure SUMST;
Var i,j:integer;
Begin
For j:=1 to 6 do
begin
S1[j]:=0;
For i:=1 to 5 do
S1[j]:=S1[j]+A[i,j]
end
End;
Function MST;
Type AXAXA=array[1..10922] of real;
Var i,ms:integer;
M:real;
Begin
M:=AXAXA(S2)[1];
ms:=1;
For i:=1 to D do
If AXAXA(S2)[i]>=M Then
begin
M:=AXAXA(S2)[i];
ms:=i
end;
MST:=ms
End;
END.
UNIT B1;
INTERFACE
USES OBIVL;
Procedure SOZMATR(Var A:MATRICA;N1:integer;Var B1:MATRICA);
Procedure SOZMAS(Var A:MATRICA;N2:integer;Var C1:MASSIV);
IMPLEMENTATION
Procedure SOZMATR;
Var i,j:integer;
Begin
For j:=1 to N1 do
For i:=1 to 5 do
B1[i,j]:=A[i,j]
End;
Procedure SOZMAS;
Var i:integer;
Begin
For i:=1 to 5 do
C1[i]:=A[i,N2]
End;
END.
Program tipovichok_mod;
USES OBIVL,A1,B1;
Begin
For i:=1 to 5 do
begin
For j:=1 to 6 do
Read(f1,A[i,j]);
Readln(f1);
end;
Read(f1,N);
Writeln(f2,' ':35,'Результаты');
Writeln(f2);
SUMST(A,SU);
If MST(SU,6)>N Then
begin
SOZMATR(A,MST(SU,6),B);
Writeln(f2,' ':13,'{B}:');
For i:=1 to 5 do
begin
Write(f2,' ':10);
For j:=1 to MST(SU,6) do
write(f2,B[i,j]:6:1,' ');
Writeln(f2)
end;
end
Else
begin
SOZMAS(A,N,C);
Write(f2,' ':10,'{C}: ');
For i:=1 to 5 do
Write(f2,C[i]:6:1,' ')
end;
close(f1);
close(f2)
end.
