Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Типовой var 8.doc
Скачиваний:
2
Добавлен:
13.09.2019
Размер:
254.98 Кб
Скачать

III. 1.Паскаль-программа блочной структуры.

PROGRAM TR_8;

CONST kk=50;

TYPE MATR=array [1..kk,1..kk] of integer;

VAR i,j,k:integer;

A:MATR;

F:boolean;

f1,f2:text;

FUNCTION simm (Var A:MATR;k:integer):boolean;

Var n:integer;

Begin

n:=0;

F:=FALSE;

FOR i:=1 TO (k-1) DO

FOR j:=(i+1) TO k DO

IF A[i,j]=A[j,i] THEN

n:=n+1;

IF n=10 THEN

F:=TRUE;

simm:=F

End;

PROCEDURE OBN (Var A:MATR;k:integer);

Begin

FOR i:=1 TO (k-1) DO

FOR j:=(i+1) TO k DO

A[i,j]:=0

End;

FUNCTION sum(Var A:MATR;k:integer):integer;

Var S: integer;

Begin

S:=0;

FOR i:=2 TO k DO

FOR j:=1 TO (i-1) DO

S:=S+A[i,j];

sum:=S

End;

BEGIN

ASSIGN (f1,'isdan.pas');

ASSIGN (f2,'vdan.pas');

RESET (f1);

REWRITE (f2);

READ (f1,k);

READLN (f1);

FOR i:=1 TO k DO

Begin

FOR j:=1 TO k DO

Read (f1,A[i,j]);

Readln (f1)

End;

WRITELN (f2,' ':35,'РЕЗУЛЬТАТЫ');

F:=simm(A,k);

IF F THEN

Begin

OBN(A,k);

FOR i:=1 TO k DO

Begin

FOR j:=1 TO k DO

WRITE (f2,' ',A[i,j]);

WRITELN (f2)

End;

WRITELN (f2,' ':25,'сумма= ',sum(A,k))

End

ELSE

WRITELN (f2,' ':25,'Матрица не симметрична');

CLOSE (f1);

CLOSE (f2)

END.

2. Паскаль-программа модульной структуры.

UNIT OBIVL;

INTERFACE

CONST kk=50;

TYPE MATR=ARRAY [1..kk,1..kk] of integer;

VAR i,j,k:integer;

A:MATR;

F:boolean;

f1,f2:text;

IMPLEMENTATION

BEGIN

ASSIGN (f1,'isdan.pas');

ASSIGN (f2,'vdan.pas');

RESET (f1);

REWRITE (f2)

END.

UNIT PFUN;

INTERFACE

USES OBIVL;

FUNCTION simm (Var A:MATR;k:integer):boolean;

FUNCTION sum(Var A:MATR;k:integer):integer;

IMPLEMENTATION

FUNCTION simm;

Var n:integer;

Begin

n:=0;

F:=FALSE;

FOR i:=i TO (k-1) DO

FOR j:=(i+1) TO k DO

IF A[i,j]=A[j,i] THEN

n:=n+1;

IF n=10 THEN

F:=TRUE;

simm:=F

End;

FUNCTION sum;

Var S: integer;

Begin

S:=0;

FOR i:=2 TO k DO

FOR j:=1 TO (i-1) DO

S:=S+A[i,j];

sum:=S

End;

END.

UNIT PPROC;

INTERFACE

USES OBIVL;

PROCEDURE OBN (Var A:MATR;k:integer);

IMPLEMENTATION

PROCEDURE OBN;

begin

FOR i:=1 TO (k-1) DO

FOR j:=(i+1) TO k DO

A[i,j]:=0

End;

END.

Основная программа.

PROGRAM TR_8;

USES OBIVL,PFUN,PPROC;

BEGIN

READ (f1,k);

READLN (f1);

FOR i:=1 TO k DO

begin

FOR j:=1 TO k DO

read (f1,A[i,j]);

readln (f1)

end;

WRITELN (f2,' ':35,'РЕЗУЛЬТАТЫ');

F:=simm(A,k);

IF F THEN

Begin

OBN(A,k);

FOR i:=1 TO k DO

begin

FOR j:=1 TO k DO

WRITE (f2,' ',A[i,j]);

WRITELN (f2)

End;

writeln (f2,' ':25,'сумма= ',sum(A,k))

End

ELSE

WRITELN (f2,' ':25,'Матрица не симметрична');

CLOSE (f1);

CLOSE (f2)

END.