Всё очень просто (смотри коментарии) :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ задаём размерность массива }
const
N = 100;
M = 120;
{ создаём тип массива }
type
pMtype = ^Mtype; { тип pointer - ссылка на одномерный массив }
Mtype = array [1..M] of Real; { собственно массив, на который ссылаемся в предыдущем пункте }
Ntype = array [1..N] of pMtype; { одномерный массив ссылок на другой одномерный массив }
{ ИТОГО: задали тип двумерного массива }
var
Mas : Ntype; { объявляем такой массив }
i, j : Integer;
Sum : Real;
begin
{ инициализируем массив - создаём ссылки на вложенный массив и присваиваем каждой ячейке 0 }
for i := 1 to N do
begin
New(Mas[i]); { в памяти отводим кусочек под наш вложенный массив и Mas[i] присваиваем адрес начала этого кусочка в памяти }
for j := 1 to M do Mas[i]^[j] := 0; { обнуляем вложенный массив }
end;
{{ заполним случайными значениями < 100 }
Randomize;
for i := 1 to N do
for j := 1 to M do Mas[i]^[j] := Random * 100;
{ найдём сумму всех значений }
Sum := 0;
for i := 1 to N do
for j := 1 to M do Sum := Sum + Mas[i]^[j];
Memo1.Lines.Add(FloatToStr(Sum));
{ освободим память }
{ после работы с динамическими данными нужно освободить память }
{ иначе она освободится только после завершения программы }
{ т. е. этого в данном случае можно не делать, но когда динамические переменные используются где-то в подпрограммах, то это обязательная операция }
for i := 1 to N do
Dispose(Mas[i]);
end.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Поздравляю! Размерность такого массива может быть очень большая.
К примеру 1000x2000 - это вполне реально.
Другие языки программирования и технологии
Дана действительная матрица размера n * m организовать однонаправленный список матрицы. Паскаль
все писец пошло сплошное ООП в школе
Похожие вопросы
- Дана действительная матрица размера 6x9. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов.
- Дана матрица размером n x m. Найти наибольший положительный и наименьший отрицательный элементы матрицы.
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- ХЕЛП Дана квадратная матрица порядка n. на языке C или C ++
- Дано натуральное число n и вещественная матрица размера n X 9 . Плиз помогите(
- C++ -Дана целочисленная матрица
- дана матрица размерности n*m . отсортировать ее строки по возрастанию. Сделать надо в basic
- «Двумерные массивы» Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие на побочной диагонали и ниже
- как решить? Найти сумму элементов прямоугольной матрицы X(n,m), находящихся по периметру этой матрицы. язык: С++
- В матрице А (m, n) (m<=5, n<=7)найти произведение элементов столбика, в котором находится максимальный элемент.