Динамический массив - Pascal (9152)

Узнай цену своей работы

Формулировка задачи:

Даны действительные числа а1,..аn Получим:min(a1*a16,a2*a17,..,a15*an) заранее большое спасибо=))))

Решение задачи: «Динамический массив»

textual
Листинг программы
uses crt;
Type
  TTmas=array[1..1] of real;
  Tmas=^TTmas;
const n=30;
var
  a:Tmas;
  i,i1,i2,k:integer;
  mn:real;
begin
clrscr;
randomize;
GetMem(a,SizeOf(TTmas)*n);
writeln('Массив:');
for i:=1 to n do
 begin
   a^[i]:=10*random;
   write(a^[i]:0:1,' ');
  end;
writeln;
writeln;
k:=n div 2;
mn:=a^[1]*a^[k+1];
i1:=1;i2:=k+1;
for i:=1 to k do
if a^[i]*a^[k+i]<mn then
  begin
   mn:=a^[i]*a^[k+i];
   i1:=i;
   i2:=k+i;
  end;
write('Минимальное произведение имеют элементы a[',i1,'] и a[',i2,']=',mn:0:1);
FreeMem(a,SizeOf(TTmas)*n);
readln
end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека crt, которая используется для работы с памятью в языке Pascal.
  2. Определяется тип данных TTmas, который представляет собой динамический массив из 1 элемента типа real.
  3. Определяется константа n, которая представляет собой количество элементов в массиве.
  4. Определяется переменная a типа Tmas, которая будет представлять собой динамический массив.
  5. Определяются переменные i, i1, i2 и k, которые будут использоваться для итерации по массиву и поиска минимального произведения.
  6. Выполняется инициализация случайной генерации чисел в диапазоне от 0 до 99.
  7. Выделяется память под массив a с помощью функции GetMem. Размер массива определяется как произведение размера одного элемента на количество элементов.
  8. Выводится сообщение о содержимом массива. Для каждого элемента выполняется вывод его значения.
  9. Вычисляется значение mn, которое будет являться минимальным произведением двух элементов массива.
  10. Вычисляются индексы i1 и i2, которые будут использоваться для поиска минимального произведения.
  11. Запускается цикл, в котором проверяется условие: если произведение a^[i] * a^[k+i] меньше mn, то обновляется значение mn, а также индексы i1 и i2.
  12. После завершения цикла выводится сообщение с минимальным произведением и его индексами.
  13. Освобождается память, выделенная под массив a, с помощью функции FreeMem.
  14. Выводится сообщение readln.
  15. Выполняется ожидание ввода пользователя.

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы