var i,j: integer;
var A: array [i,j] of integer;
begin
Write('Введите размерность: строк -');
readln(j);
Write('столбцов: ');
readln(i);
readkey;
exit;
end.
вот так не катит=(
Другие языки программирования и технологии
Как на паскале будет - создать масив, чтобы в дальнейшем можно было задать его размерность?
Доброго времени суток.
Нет в ТР динамических массивов, это так, но можно решить эту проблему.
{$R-} {отключаем проверку компилятором границ массива}
type
MyType = Word;
PMyVector = ^MyVector;
MyVector = Array[1..1] of MyType; { "строка" динамической матрицы - массив из одного элемента }
MyArrayPtr = ^MyArray;
MyArray = Array[1..1] of PMyVector; { сама матрица - представляется как массив указателей на "строки" }
var
DynamicArray : MyArrayPtr; { Указатель на матрицу }
Count, I,J,Size : Word;
begin
Write('Число элементов массива: ');
ReadLn(Count);
{ выделяем память под указатели на "строки" }
GetMem(DynamicArray, Count * SizeOf(PMyVector));
{ и для каждой "строки" - выделяем память для хранения данных }
For i := 1 To Count Do
GetMem(DynamicArray^[ i ], Count * SizeOf(MyType));
For I:=1 to Count do { Lines }
For J:=1 to Count do { Columns }
{ немного изменяется способ обращения к элементу матрицы }
DynamicArray^[ I ]^[J]:=I*J;
For I:=1 to Count do begin
WriteLn;
For J:=1 to Count do Write(DynamicArray^[ I ]^[J]:4);
end;
{ освобождаем память в обратном порядке: }
{ сначала - удаляем все "строки" }
For i := 1 To Count Do FreeMem(DynamicArray^[ i ], Count * SizeOf(MyType));
{ и указатели на них }
FreeMem(DynamicArray, Count * SizeOf(PMyVector));
end.
В примере строится квадратная матрица. Переделать под прямоуголную попробуйте сами.
Удачи!
Нет в ТР динамических массивов, это так, но можно решить эту проблему.
{$R-} {отключаем проверку компилятором границ массива}
type
MyType = Word;
PMyVector = ^MyVector;
MyVector = Array[1..1] of MyType; { "строка" динамической матрицы - массив из одного элемента }
MyArrayPtr = ^MyArray;
MyArray = Array[1..1] of PMyVector; { сама матрица - представляется как массив указателей на "строки" }
var
DynamicArray : MyArrayPtr; { Указатель на матрицу }
Count, I,J,Size : Word;
begin
Write('Число элементов массива: ');
ReadLn(Count);
{ выделяем память под указатели на "строки" }
GetMem(DynamicArray, Count * SizeOf(PMyVector));
{ и для каждой "строки" - выделяем память для хранения данных }
For i := 1 To Count Do
GetMem(DynamicArray^[ i ], Count * SizeOf(MyType));
For I:=1 to Count do { Lines }
For J:=1 to Count do { Columns }
{ немного изменяется способ обращения к элементу матрицы }
DynamicArray^[ I ]^[J]:=I*J;
For I:=1 to Count do begin
WriteLn;
For J:=1 to Count do Write(DynamicArray^[ I ]^[J]:4);
end;
{ освобождаем память в обратном порядке: }
{ сначала - удаляем все "строки" }
For i := 1 To Count Do FreeMem(DynamicArray^[ i ], Count * SizeOf(MyType));
{ и указатели на них }
FreeMem(DynamicArray, Count * SizeOf(PMyVector));
end.
В примере строится квадратная матрица. Переделать под прямоуголную попробуйте сами.
Удачи!
В turbo паскале нету динамических массивов. Т. е. так как описано - не сделать. В Delphi появились дин. массивы. Там для задания размера есть ф-ция SetLength
Надо работать с динамической памятью.
Type m=array[1..100,1..100] of integer;
var a:m;
i,j,n,m:integer;
begin
writeln('vvedite razmer matrici');
readln(n,m); {razmer matrici budet n*m; n - строк, m - столбцов}
writeln('vvedite elementi matrici');
for i:=1 to n do
for j:=1 to m do
readln(a[i,j]);
...
var a:m;
i,j,n,m:integer;
begin
writeln('vvedite razmer matrici');
readln(n,m); {razmer matrici budet n*m; n - строк, m - столбцов}
writeln('vvedite elementi matrici');
for i:=1 to n do
for j:=1 to m do
readln(a[i,j]);
...
Похожие вопросы
- Паскаль помогите с масивами плз
- Как рисовать анимацию в Турбо Паскале??? Нужно создать рисунок на котором Земля вращается вокруг солнца
- Как создать сайт женщине для дальнейшего получения прибыли?
- помогите склась програму в паскале:переписать в массив Y[4x4] елементы масива X[4x4] в порядку возростання.
- ПОМОГИТЕ! В паскале заполнить квадратный массив размерностью n числами 1,2,3… по спирали от края к центру по часовой стр
- С Указатели двухмерный масив
- Помогите пожалуйста создать программу на Паскале. Заранее всем благодарен
- Здравствуйте, кто нибудь, сможет создать программу через паскаль, вычисляющую произведение цифр 10-х значных чисел?
- масивы. может ли реальное количество элеентов в масиве быть меньше, чем указано при описании? больше? почему?
- Помогите с одномерным масивом. Программа нужна на С или C++.