Динамический массив: найти произведение наибольшего и наименьшего элемента - Pascal
Формулировка задачи:
Помогите.
Составит программу, в которой вводится размер массива (одномерный). Выделить память, найти произведение наибольшего и наименьшего элемента. Освободить память.
Начало программы вроде правильно.
program Est;
type
mss = ^mas;
mas = array of integer;
var
a: mss;
i, s, n, j: byte;
sr,cr: real;
begin
s:=0;
new(a);
write('Введите размер массива: ');
readln(n);
setlength(a^, n);
for i := 1 to a^.Length - 1 do
begin
a^[i] := random(7) + 1;
write(a^[i],' ');
j:=i;
end;Решение задачи: «Динамический массив: найти произведение наибольшего и наименьшего элемента»
textual
Листинг программы
var
a: array of Integer;
i, n, mn, mx: Integer;
begin
Randomize;
Write('Размер массива: '); Read(n);
SetLength(a,n); mn:=MaxInt; mx:=-MaxInt-1;
for i:=0 to n-1 do begin
a[i]:=1+Random(7); Write(' ',a[i]);
if mn>a[i] then mn:=a[i];
if mx<a[i] then mx:=a[i];
end; WriteLn;
SetLength(a,0); { необязательно }
WriteLn('Произведение min*max: ',mn*mx);
end.
Объяснение кода листинга программы
- Объявляется переменная
aкак динамический массив целых чисел. - Объявляются переменные
i,n,mnиmxкак целые числа. - Генерируется случайное начальное значение для генератора случайных чисел.
- Пользователю выводится запрос на ввод размера массива, который сохраняется в переменной
n. - Задается размер динамического массива
aравнымn. Переменныеmnиmxинициализируются соответственно максимально возможным и минимально возможным значением Int. - В цикле заполняется массив случайными числами от 1 до 7, каждый элемент выводится на экран. Одновременно проверяется, является ли текущий элемент минимальным или максимальным в массиве, и если это так, они обновляются.
- По завершении цикла размер массива устанавливается в 0 (необязательно).
- На экран выводится произведение наименьшего и наибольшего элементов массива.