"Принципиально" - это я насчет процедур, но без них никак. Из того что вы предложили я ничего не смог реализовать. Вот мое извращение на тему "Ввод массивов через процедуру..." :
Код
program no_name;
uses crt;
const
n=5;
m=1;
l=3;
type
mas=array[1..n,1..n] of integer;
var
i,j:integer;
x,y,a,b:mas;
procedure vvod(n,m,k:integer);
begin
for i:=1 to n do
begin
for j:=1 to m do
begin
writeln('Vvedite ',i,'[',j,']');
case k of
1: readln(x[i,j]);
2: readln(y[i,j]);
3: readln(a[i,j]);
4: readln(b[i,j]);
end;
end;
end;
end;
begin
clrscr;
writeln('vvedite X:');
vvod(2,2,1);
readkey;
end.
Мне тоже не нравится.... Это "подходит" только для ввода массивов, а как тогда будет выглядеть процедура умножения двух произвольных матриц? Т.е. мне нужно задать размерность первой, второй, имена первой, второй и третей (получающейся в результате умнажения) матриц... Как это сделать??? И пожалуйста, напишите код...
Заранее благодарствую.