Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы перебора в задачах поиска Попович.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
83 Кб
Скачать
☆

Практическая часть Задача №1

В одномерном массиве X заданы координаты п точек, лежащих на вещественной числовой оси. Точки пронумерованы. Их номера соответствуют последовательности в массиве X. Определить номер первой точки, наиболее удаленной от начала координат.

Словесный алгоритм:

  1. Объявляем константы в разделе констант

  2. В разделе переменных объявляем переменные и массив

  3. Прописываем в коде программы циклическую структуру для полного перебора элементов массива

  4. Выводим результат на экран

Листинг:

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

const N=100;

var

X: array [1..N] of Real;

I, number: 1..N;

begin

{ввод массива X}

Number:=1;

for i:=2 to N do

if Abs (x[i]) > Abs (x[number])

then number:=i;

Writeln (number);

readln;

readln;

{ TODO -oUser -cConsole Main : Insert code here }

end.

Задача 2

Исходные данные — те же, что и в предыдущей; требуется определить пару точек, расстояние между которыми наибольшее.

Применяя метод перебора, эту задачу можно решать так: перебрать все пары точек из Ладанных и определить номера тех, расстояние между которыми наибольшее (наибольший модуль разности координат).

Словесный алгоритм:

  1. Объявляем константы в разделе констант

  2. В разделе переменных объявляем переменные и массив

  3. Прописываем в коде программы циклическую структуру для полного перебора элементов массива

  4. Выводим результат на экран

Листинг:

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

const N=100;

var

X: array [1..N] of Real;

I,j, number1,number2: 1..N;

begin

{ввод массива X}

Number1:=1;

Number2:=2;

for i:=1 to N do

for j:=1 to N do

if Abs (x[i]-x[j]) > Abs ((x[number1])-x[number2])

then

begin

number1:=i;

number2:=j;

end;

Writeln ( number1);

Writeln (number2);

readln;

{ TODO -oUser -cConsole Main : Insert code here }

end.

Задача №3

Исходные данные — те же, что и в предыдущей; требуется определить пару точек, расстояние между которыми наибольшее.

Применяя метод перебора, эту задачу можно решать так: перебрать все пары точек из Ладанных и определить номера тех, расстояние между которыми наибольшее (наибольший модуль разности координат). Для исключения повторений изменить начало внутреннего цикла на i+1.

Словесный алгоритм:

  1. Объявляем константы в разделе констант

  2. В разделе переменных объявляем переменные и массив

  3. Прописываем в коде программы циклическую структуру для полного перебора элементов массива

  4. Выводим результат на экран

Листинг:

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

const N=100;

var

X: array [1..N] of Real;

I,j, number1,number2: 1..N;

begin

{ввод массива X}

Number1:=1;

Number2:=2;

for i:=1 to N do

for j:=i+1 to N do

if Abs (x[i]-x[j]) > Abs ((x[number1])-x[number2])

then

begin

number1:=i;

number2:=j;

end;

Writeln (number1);

Writeln (number2);

readln;

{ TODO -oUser -cConsole Main : Insert code here }

end.