Лекция: Работа с динамическими массивами.

 

При работе с массивами практически всегда возникает задача настройки программы на фактическое количество элементов массива. В зависимости от применяемых средств решение этой задачи бывает различным.

Первый вариант -использование констант для задания размерностимассива.

 

Program First;

Const

N: integer = 10;

{ либо N = 10; }

Var

A: array [ 1..N ] of real;

I: integer;

Begin

For i := 1 to N do

Begin

Writeln ('Введите', i, '-ый элемент массива');

Readln ( A [ i ] )

End;

{ И далее все циклы работы с массивом используют N}

Такой способ требует перекомпиляции программы при каждом изменении числа обрабатываемых элементов.

Второй вариант — программист планирует некоторое условно максимальное (теоретическое) количество элементов, которое и используется при объявлении массива. При выполнении программа запрашивает у пользователя фактическое количество элементов массива, которое должно быть не более теоретического. На это значение и настраиваются все циклы работы с массивом.

Program Second;

Var

A: array [ 1..25 ] of real;

I, NF: integer;

Begin

Writeln ('Введите фактическое число элементов’,

‘ массива <= 25');

Readln ( NF );

For i := 1 to NF do

Begin

Writeln ('Введите ',i, ' -ый элемент массива');

Readln ( A [ i ] )

End;

{ И далее все циклы работы с массивом используют NF}

Этот вариант более гибок и технологичен по сравнению с предыдущим, так как не требуется постоянная перекомпиляция программы, но очень нерационально расходуется память, ведь ее объем для массива всегда выделяется по указанному максимуму. Используется же только часть ее

Вариант третий — в нужный момент времени надо выделить динамическую память в требуемом объеме, а после того, как она станет не нужна, освободить ее.

еще рефераты
Еще работы по информатике