создать еще одну матрицу (есть matr, сделай matr1)
и, например, в ней получать вторую... а matr переделать в третью.
или изначально записать в них одинаковые значения, потом из одной получить вторую, из другой третью.
а еще можно через подпрограммы... не создавая доп. матрицу.
program matrixa;
uses crt;
const n=7;
name='C:\neo.out';
lin='*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*';
var fiogr:string[50];
neo:text;
sumstr,sumst:integer;
srsumstr,srsumst:real;
i,j:byte;
t,f:boolean;
v,u:real;
c,d:shortint;
a,b:array[1..n] of real;
type
matr=array[1..n,1..n] of shortint;
procedure creatematrix(var matrix:matr; const n:byte);
var i,j:byte;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
matrix[i,j]:=random(99)-49;
end;
procedure printmatrix(matrix:matr; const n:byte);
var i,j:byte;
begin
for i:=1 to n do begin
for j:=1 to n do begin
write(neo,' ',matrix[i,j]:3);
end;
writeln(neo);
end;
end;
begin
clrscr;
assign(neo,name);
rewrite(neo);
writeln('Laboratornaya rabota 7');
writeln('Vvedite FIO, gruppu');
readln(fiogr);
writeln('Zadacha na dvujmerniy massiv');
writeln(neo,' Rezultat vichisleniy sojraneni v failie ', name);
writeln(neo,' Laboratornaya rabota 7');
writeln(neo,' Zadacha na dvujmerniy massiv');
writeln(neo,lin);
writeln(neo,fiogr);
writeln(neo,lin);
writeln(neo,' Isjodnaya matritsa');
creatematrix(matrix,n);
printmatrix(matrix,n);
writeln(neo,lin);
writeln(neo,' Sriedniye arifmieticheskiye strok');
for i:=1 to n do begin
sumstr:=0;
for j:=1 to n do
sumstr:=sumstr+matr[i,j];
srsumstr:=sumstr/n;
a[i]:=srsumstr;
write(neo,' a[',i,']=',a[i]:6:2);
if i mod 4 =0 then writeln(neo);
end;
writeln(neo);
writeln(neo,lin);
writeln(neo,' Orsortirovanniy massiv iz srednij arifmeticheskij');
writeln(neo,' eliemientov strok');
repeat
t:=true;
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
for j:=1 to n do begin
c:=matr[i,j];
matr[i,j]:=matr[i+1,j];
matr[i+1,j]:=c;
end;
u:=a[i];
a[i]:=a[i+1];
a[i+1]:=u;
t:=false;
end;
until t;
for i:=1 to n do
begin
write(neo,' a[',i,']=',a[i]:6:2);
if i mod 4 =0 then writeln(neo);
end;
writeln(neo);
writeln(neo,lin);
writeln(neo,' Otsortirovannaya matritsa po strokam');
for i:=1 to n do begin
for j:=1 to n do begin
write(neo,' ',matr[i,j]:3);
end;
writeln(neo);
end;
writeln(neo,lin);
for i:=1 to n do begin
for j:=1 to n do begin
write(neo,' ',matr1[i,j]:3);
end;
writeln(neo);
end;
writeln(neo,' Sriedniye arifmieticheskiye stolbtsov');
for j:=1 to n do begin
sumst:=0;
for i:=1 to n do
sumst:=sumst+matr[i,j];
srsumst:=sumst/n;
b[j]:=srsumst;
write(neo,' ','b[',j,']=',b[j]:6:2);
if j mod 4 =0 then writeln(neo);
end;
writeln(neo);
writeln(neo,lin);
writeln(neo,' Orsortirovanniy massiv iz srednij arifmeticheskij');
writeln(neo,' eliemientov stolbtsov');
repeat
f:=true;
for j:=1 to n-1 do
if b[j]>b[j+1] then
begin
for i:=1 to n do begin
d:=matr[i,j];
matr[i,j]:=matr[i,j+1];
matr[i,j+1]:=d;
end;
v:=b[j];
b[j]:=b[j+1];
b[j+1]:=v;
f:=false;
end;
until f;
for j:=1 to n do
begin
write(neo,' ','b[',j,']=',b[j]:6:2);
if j mod 4 =0 then writeln(neo);
end;
writeln(neo);
writeln(neo,lin);
printmatrix(matrix,n);
writeln(neo,' Otsortirovannaya matritsa po stolbtsam');
for i:=1 to n do begin
for j:=1 to n do begin
write(neo,' ',matr[i,j]:3);
end;
writeln(neo);
end;
close(neo);
readln;
end.
а прочитать, что за ошибка - не судьба?
Unknown Identifier, то есть компилятор не знает, что такое (выделено жирным)
printmatrix(matrix,n);
ты же должен вызывать процедуру для конкретной матрицы!
Исправил, но всё равно выдаёт ошибку. Error 88: "(" expected. после matr в строчке printmatrix(matr,n);
так, как у тебя сейчас написано, matr - это тип.
А где переменная такого типа, с которой ты работаешь?
Тебе ведь не приходит в голову требовать, чтобы посчитался sin(real)? вот и здесь то же самое.
Обьясните, пожалуйста, попроще
Попроще?
Ну, вот тебе попроще... Что будет, если я напишу:
var?
a: integer;
begin
A := byte + integer;
end.