Лабораторная работа №5 — Динамические массивы
Задача:
Десять раз генерировать ряд случайных чисел от 0 до 99. Каждый ряд также должен иметь произвольную длину. В каждом ряде следует найти максимальное число. Сохранить только максимальные числа и вывести их на экран.
Описание переменных:
arrmax – обычный массив, где будут сохраняться максимальные значения рядов;
row – динамический массив для текущего ряда чисел;
n – длина текущего ряда чисел.
Алгоритм решения задачи:
Переменной j будет играть роль индекса элементов массива arrmax. В конце цикла for, который сделает 10 итераций, j будет увеличиваться на единицу, что будет означать переход к следующей ячейке массива.
Длина очередного ряда чисел случайна. Получив значение n, выделяем память под динамический массив с помощью процедуры getmem.
Заполняем динамический массив случайными числами.
Записываем в очередную ячейку массива arrmax первое значение динамического массива. Если какое-либо последующее значение массива, на который указывает row, будет больше arrmax[j], то производится перезапись значения.
После нахождения максимума память можно освободить (freemem).
Программа на языке Паскаль:
type
arrdinamic = array[1..50] of integer;
var
arrmax: array[1..10] of integer;
row: ^arrdinamic;
n, i, j, k: integer;
begin
randomize;
j := 1;
for i := 1 to 10 do begin
n := random(50) + 1;
getmem(row,n*sizeof(integer));
for k := 1 to n do
row^[k] := random(100);
arrmax[j] := row^[1];
for k := 1 to n do
if row^[k] > arrmax[j] then
arrmax[j] := row^[k];
freemem(row,n*sizeof(integer));
j := j + 1
end;
for i := 1 to 10 do
write(arrmax[i], ' ');
readln
end.
Задания по теме «Динамические массивы»
Задача 1.
Вычислить сумму элементов одномерного массива с числом элементов n (n вводится пользователем) и, если эта сумма больше 100, переписать элементы с нечетными номерами в другой массив. По завершению работы программы освободить память.
Задача 2.
Инициализировать массив строк размерностью n (n вводится пользователем) . Сохранить массив в файл.
Задача 3.
Инициализировать массив строк значениями из файла. Использовать файл полученный в результате работы задания 2.