Страница 1 из 1

Вопрос по двумерным массивам.

Добавлено: 30 мар 2009, 21:03
Henaro
Возможно ли задать размер матрицы с клавиатуры. То есть не в теле программы, а пользователь при запуске программы сам должен опеределить каков размер матрицы будет. Потом, например, занесет в нее данные какие-либо, потом с этими данными программа произвдет определенные действия и выведет на экран. Если возможно, то как? Заранее спасибо.

Re: Вопрос по двумерным массивам.

Добавлено: 31 мар 2009, 00:44
dr.Jekill
Размер матрицы задать с клавиатуры можно. Во многих случаях так и нужно делать.
В разделе описания переменных необходимо задать кол-во строк и столбцов побольше (желательно описать указатель на массив, а потом использовать динамическое выделение памяти). После этого принять от пользователя кол-во строк и столбцов (если матрица квадратная, то достаточно одного значения), проверить не превышают ли они максимальное количество и собственно после этого делать, то что Вам нужно. Вот накропал небольшой пример:
[syntax=pascal]
uses crt;
type
massiv=array[1..100,1..100] of real;
var
MATRIX:^massiv;
i,j,k,n:byte;
begin
repeat
clrscr;
write('Zadaite kol-vo strok: ');
readln(k);
write('Zadaite kol-vo stolbcov: ');
readln(n);
until (k<=100) and (n<=100);
new(MATRIX);
writeln('Vvodite elementy matricy: ');
for i:=1 to k do
for j:=1 to n do
begin
write('[',i,',',j,']: ');
readln(MATRIX^[i,j]);
end;
clrscr;
for i:=1 to k do
begin
writeln;
for j:=1 to n do write(MATRIX^[i,j]:6:2,' ');
end;
readln;
dispose(MATRIX);
end.
[/syntax]

Re: Вопрос по двумерным массивам.

Добавлено: 31 мар 2009, 01:44
Henaro
Спасибо за пример.