Найти три минимальных элемента массива - Free Pascal

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

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

Запишите алгоритм,который находит три минимальных элемента массива. Какие элементарные операции в нем можно выделить? Оцените количество этих операций. Определить сложность алгоритма.

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

textual
Листинг программы
const
  n = 10;
var
  a: array[1..n] of integer;
  mins: array[1..3] of integer;
  i,j,idx: integer;
  first: boolean;
begin
  {ввод массива}
  randomize;
  writeln('Введите массив (', n, ' элементов)');
  for i:=1 to n do begin
    write('A[', i, '] = ');
    {readln(a[i]); {для ввода с клавиатуры}
    a[i]:=random(100);
    writeln(a[i]); {для заполнения рандомом}
  end;
  
  {поиск трех минимальных элементов}
  for j:=1 to 3 do begin
    first:=true;
    for i:=1 to n do
      if first or (a[i]<mins[j]) then begin
        mins[j]:=a[i];
        idx:=i;
        first:=false;
      end;
    a[idx]:=maxint; {это чтобы исключить элемент из рассмотрения}
  end;
  
  {вывод результата}
  write('Минимальные элементы: ');
  for i:=1 to 3 do
    write(mins[i], ' ');
 
end.

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

  1. Объявлены переменные: n - количество элементов в массиве (10); a - массив из 10 целых чисел; mins - массив из 3 минимальных чисел; i, j - счетчики для циклов; idx - индекс минимального элемента; first - флаг, указывающий на первый элемент в цикле.
  2. Ввод массива. Выводится сообщение с просьбой ввести массив из 10 элементов. Для каждого элемента выводится его номер и просьба ввести значение. Значения можно ввести с клавиатуры или сгенерировать случайным образом (random(100)). Значения выводятся на экран.
  3. Поиск трех минимальных элементов. Для каждого минимального элемента (от 1 до 3) выполняется поиск по массиву. Первый элемент считается минимальным, если он меньше остальных, или если это первый элемент в цикле. Далее перебираются все элементы массива. Если текущий элемент меньше первого найденного минимального элемента, то он становится новым минимальным. Если текущий элемент равен первому найденному минимальному элементу, то он исключается из рассмотрения (его значение заменяется на максимальное значение типа, maxint).
  4. Вывод результата. Выводится сообщение с просьбой вывести минимальные элементы. Для каждого минимального элемента выводится его значение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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