Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pascal / 3 лаба / ЛР3 Динамические массивы

.doc
Скачиваний:
22
Добавлен:
13.02.2015
Размер:
28.67 Кб
Скачать

Лабораторная работа №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.