Найти минимальное и второе по величине значение массива - PascalABC.NET

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

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

заполнить массив 10 рандомными числами в пределах 100. вывести минимальное число и его номер и предминимум и тоже его номер

Решение задачи: «Найти минимальное и второе по величине значение массива»

textual
Листинг программы
const n=10;
var
  a:array[1..n] of integer;
  i,j,d1,d2:integer;
begin
  randomize;
  for i:=1 to n do a[i]:=random(0,100);
  writeln(a);
  d1:=1;d2:=1;
  for i:=2 to n do 
    if a[i]<a[d1] then begin
      d2:=d1;
      d1:=i;
    end else 
  if ((d1=d2) and (a[i]>a[d2])) or ((a[i]<a[d2]) and (i<>d1) and (a[i]>a[d1])) then d2:=i;
  WritelnFormat('A({1})={0}, A({3})={2}',a[d1],d1,a[d2],d2);
end.

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

  1. Задается константа n=10, которая определяет размер массива.
  2. Создается массив a размером n и заполняется случайными числами в диапазоне от 0 до 100 с помощью цикла for и функции random.
  3. Выводится содержимое массива a с помощью функции writeln.
  4. Инициализируются переменные d1, d2, которые будут использоваться для поиска минимального и второго по величине значения массива.
  5. Переменная d1 инициализируется значением 1, а переменная d2 - значением 1.
  6. Цикл for i=2 до n выполняет следующие действия:
    • Если элемент массива a[i] меньше, чем элемент массива a[d1], то выполняются следующие действия:
    • Переменной d2 присваивается значение d1.
    • Переменной d1 присваивается значение i.
    • Если элемент массива a[i] равен a[d1] и a[i] больше, чем a[d2], или если элемент массива a[i] меньше, чем a[d1] и i не равно d1 и a[i] больше, чем a[d1], то переменной d2 присваивается значение i.
  7. Выводится сообщение с минимальным и вторым по величине значением массива a с помощью функции WritelnFormat.

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

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