Доброго времени суток
Вот пример программы, реализующей динамический массив. Правда, эжто не совсем динамический массив в полном смысле этого термина, т. к. он не позволяет изменять свой размер. Для примера приведена процедура поиска минимумов в статическом и динамическом массивах.
Согласен с EVG OWS в том, что для работы таким образом требуются специальные знания. Кроме того, необходим навык работы с указателями. И, скорее всего, избыточность при отсутствии таких знаний лучший выход. Но, поскольку вопрос прозвучал, привожу решение.
program MinIntDyn;
uses Crt;
{$R-} {отключаем проверку компилятором границ массива}
type
arrInt = array[1..1] of Integer; {массив из 1 элемента}
arrIntPtr=^arrInt;
var
a : arrIntPtr; {указатель на динамический массив}
c : array[1..10] of Integer; {статический массив}
n,j,L : Integer; {вводимый размер массива}
{находит минимальное значение в динамическом массиве}
function MinDynArray(arr: arrIntPtr; Size: Integer): Integer;
var
k, MinN : Integer;
begin
MinN := MaxInt;
for k:=1 to Size do if MinN > arr^[k] then MinN := arr^[k];
MinDynArray := MinN;
end;
begin
ClrScr;
{вводим размер массива}
Write('Введите размер массива : ');
ReadLn(n);
{выделяем под него память}
GetMem(a, n * SizeOf(Integer));
{заполняем массивы значениями}
for j:=1 to n do a^[j] := j; {в целях контроля элемент равен индексу}
for j:=1 to 10 do c[j] := j;
{проверяем массивы}
for j:=1 to n do Write(a^[j] :4); WriteLn;
for j:=1 to 10 do Write(c[j] :4); WriteLn;
{ищем минимум в массиве с}
L := MaxInt;
for j:=1 to 10 do if L > c[j] then L := c[j];
{добавляем минимумы динамических массивов}
L := L + MinDynArray(a,n) + MinDynArray(b,m);
WriteLn('Результат вычислений : ', L);
{освобождаем память, занятую массивами}
FreeMem(a, n * SizeOf(Integer));
ReadLn; {задержка}
end.
Двухмерный массив строится аналогично.
Это один путь. Вторым является построение массива на основе динамических связанных списков.
Удачи!
Другие языки программирования и технологии
Как задать массив с неизвестным окончанием типа а[1..n,1..k] в паскале?
Динамический массив, вы имеете в виду?
Это не лучший вариант, если вы не знаете механизмов распределения памяти.
Лучше создайте избыточный массив
Это не лучший вариант, если вы не знаете механизмов распределения памяти.
Лучше создайте избыточный массив
Серый Ха-Ха-Ха
Спасибо за ответ а можете прокомментировать что такое избыточный массив? Или если можно ссылку на умную книгу?
Похожие вопросы
- Написать в С++.В заданной матрице A[1:N,1:M] поменять местами следующие два элемента:
- дано масів А(1...n, 1...m) скласти програму пошуку всіх його елементів, що знаходяться між a та b
- Определить число k, которое отсутствует в неупорядоченном массиве чисел (0, 1,...k-1,k+1,...n) за один цикл
- Помогите составить блок схему. Данны целые числа n, k (n>=k>=0). Вычислить n(n-1)*(n-2)... (n-k-1)/k!
- Задан числовой массив A[1:m, 1:n]. Составить программу...
- №1.Как вычислить произведение элементов массива(1..5)В Паскале=)))№2.Найти наименьший элемент в массиве!Тоже в Паскале)
- Помогите написать программу Дано натуральное число n. Вычислить сумму всех k(k+1), k меняется от 1 до n.
- Объявление массива С++. С клавиатуры вводится число n, потом надо задать массив nxn. Как это сделать?
- Задайте массив из файла в Pascal.ABC.net
- паскаль Ввести числовую матрицу {Aij}i=1,...n;j=1,...m. Найти произведение сумм элементов строк Помогите решить)