Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Type
Mas = array [ 1..2 ] of < требуемый_тип_элемента >;
Ms = ^ mas;
Var
A: Ms;
I, NF: integer;
Begin
Writeln ('Введите фактическое число элементов массива');
Readln (NF);
GetMem (A, SizeOf (< требуемый_тип_элемента >)*NF);
For i:= 1 to NF do
Begin
Writeln ('Введите ', i, ' -ый элемент массива ');
Readln (A^ [ i ])
End;
{ И далее все циклы работы с массивом используют NF }
.....
FreeMem (a, nf*SizeOf (< требуемый_тип_элемента> ));
End.
Рассмотрим пример использования динамического одномерного массива, который используется как двумерный массив. После ввода реальной размерности массива и выделения памяти для обращения к элементу двумерного массива адрес его рассчитывается, исходя из фактической длины строки и положения элемента в строке (при заполнении матрицы по строкам). Требуется найти максимальный элемент в матрице и его координаты.
Uses crt;
type t1=array[1..1] of integer;
Var
a:^t1;
n,m,i,j,k,p:integer;
max:integer;
Begin
Clrscr;
write('n='); readln (n);
write('m='); readln (m);
getmem (a,sizeof(integer)*n*m);
for i:=1 to n*m do
read(a^[ i ]);
max:=a^[1]; k:=1; p:=1;
for i:=1 to n do
for j:=1 to m do
if a^[(i-1)*m+j] > max then
Begin
max:=a^[(i-1)*m+j];
k:=i; p:=j
End;
write('строка=',k:2,' столбец=',p:2);
freemem(a,2*n*m);
Readkey;
End.
В следующем примере для хранения двумерного массива используется одномерный массив указателей на столбцы. В задаче требуется найти столбцы матрицы, в которых находятся минимальный и максимальный элементы матрицы и если это разные столбцы, то поменять их местами.
Дата публикования: 2014-11-04; Прочитано: 293 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!