Блог учителя Информатики

Решение задачи ExamBegin58


Условие задачи:

На вход в первой строке подается целое число N (> 1), а во второй строке — массив из N вещественных чисел. Рассматривая всевозможные пары элементов массива, найти пару ближайших элементов, т. е. элементов, расстояние между которыми минимально (определение расстояния приводится в ExamBegin57). Вывести номера ближайших элементов (элементы нумеруются от 1). Каждый номер выводить на новой строке; первым выводится меньший номер. Предполагается, что в массиве имеется единственная пара ближайших элементов.


uses PT4Exam;

const
  P = 100;

var
  m: array[1..P] of real;
  i, j, n, a, b: integer;
  max, min: real;

begin
  Task('ExamBegin58');
  Readln(n);
  max := 0;
  for i := 1 to n do 
  begin
    Read(m[i]);
    if max < m[i] then max := m[i];
  end;
  min := max; a := 0; b := 0;
  for i := 1 to n do
    for j := 1 to n do
      if i <> j then
        if abs(m[i] - m[j]) < min then 
        begin
          a := i; b := j;
          min := abs(m[i] - m[j]);
        end;
  Writeln(a);
  Writeln(b);
end.
Поделиться:
Вам также может понравится
Делаем Черепашку в виде снежинки
Перевод десятичных чисел в двоичные на Pascal
Решение задачи ExamBegin80
Решение задачи ExamBegin79

Оставьте комментарий