Помощь - Поиск - Пользователи - Календарь
Полная версия: массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Sir-j
как решить задачу, выгледит в общем?
Дано вещественное число R и массив размера N. Найти элемент массива, который наиболее1|наименее2 близок к данному числу.
в смысле близок к данному числу!
volvo
To: Sir-j
"Наиболее близок к данному числу" это значит, что модуль разности между элементом массива и данным числом МИНИМАЛЕН... Для "наименее близок", естественно, наоборот - модуль разности МАКСИМАЛЕН.
Sir-j
вводишь R и вводишь массив размера N т.е. прграмма смотрит наибольшее число и наименьшее и выводит к нему близкое сравнивая только их!
volvo
Sir-j, ты условие ВНИМАТЕЛЬНО прочти !!!
Цитата
Дано вещественное число R и массив размера N.

Ввел массив, и идешь по нему, вычисляя для КАЖДОГО элемента модуль разности. То число, у которого модуль - максимальный, будет "наименее близким"...

Сразу говорю, код писать не буду. Начинай сам думать...

P.S.
Цитата
прграмма смотрит наибольшее число и наименьшее и выводит к нему близкое сравнивая только их!
Это ты сам придумал? Или это как-то следует из условия. Если следует, то докажи. Если придумал сам, то больше НИЧЕГО не придумывай, у тебя есть ясное и четкое задание !!! mad.gif
Sir-j
Мне не понятно! От кудо надо найти элемент массива!
Volvo обьясни а????
volvo
Цитата
От кудо надо найти элемент массива!

blink.gif mega_chok.gif Как откуда? Его ввести надо !!! Кстати, можно вообще без массива обойтись... Вводить очередное число, и его проверять на наиболее/наименее близкое к заданному R

Кстати, чего поиском не пользуешься? Есть же решения:
одномерный массив (нужно чуть-чуть подправить)...
Sir-j
Да у меня неплохо получается!
я сделал так: из данного массива я выражаю среднее число, так.. среднее=элемент массива!!Так ???
далее а как правильно всего сравнить наиболее1|наименее2 близок к данному числу.Т.е. если находится в таких пределах то наиболее близок, если в других то наименее близок???Правильно я мыслю или нет???
hiv
тебе нужно найти элемент массива, а не его среднее значение. Сравниваются число R и КАЖДЫЙ элемент массива!
Sir-j
А теперь я понял! good.gif
Sir-j
Volvo, там где ты мне дал ссылку, решал задачу! а для чего
Код

a: array[1 .. n] of integer =
  (2, 5, 3, 8, 6, 9, 1, 13, 10, 22);

Для чего они(цифры), Обьясни хочу разобраться!!
volvo
А для того, чтобы при тестировании НЕ набирать вручную (все-таки, код тестируется, причем не один раз, перед выкладыванием на форум)... Кстати, я там написал:
Цитата
(просто замени константы на переменные и организуй ввод массива)
Sir-j
как примерно сравнить с этой R массив? unsure.gif
volvo
Все, тема закрыта (совершенное нежелание автора темы думать самостоятельно) mad.gif

Найди на досуге, сколько отличий есть от кода, на который я давал ссылку.
const
n = 10;

{ Это - твой массив }
a: array[1 .. n] of integer =
(2, 5, 3, 8, 6, 9, 1, 13, 10, 22);

var
r, min: real;
i, index: integer;

begin
r := 9.3;
min := maxInt;
for i := 1 to n do
if min > abs(a[i] - r) then
begin
min := abs(a[i] - r); index := i
end;

writeln('closest = a[', index, '] = ', a[index]:4);
end.


Наименее близкое число найдешь сам... Все.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.