Автор: FAUST 13.05.2008 17:39
Дан набор из n вещественных чисел и целое число М. Найти порядковый номер числа, которое наиболее близко к данному числу.
З.Ы. буду очень признателен, кто поможет
Автор: volvo 13.05.2008 22:31
Что именно не получается? Идешь по массиву, для каждого элемента вычисляя Abs(arr[ i ] - M), одновременно проверяя, не меньше ли оно, чем то, которое на предыдущей итерации было минимальным... Итого - один цикл...
Автор: mind abuse 13.05.2008 23:22
Вот возможная интерпретация слов volvo
Код
Program t1;
uses
crt;
var
a:array[1..1000] of real;
i,n,k:integer;
M,q,s:real;
begin
clrscr;
writeln('input M');
write('M=');
readln(M);
writeln('input number of elements of array');
write('n=');
readln(n);
writeln('input elements');
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
for i:=1 to n do
begin
q:=Abs(a[i-1]-M);
s:=Abs(a[i]-M);
if s<q then
begin
k:=i;
end;
end;
writeln('No=',k);
end.
Только у меня следующие вопросы /*паскалем давно не занимался, лишь недавно на голову свалился*/: как сделать, чтоб M было integer и как сделать чтоб выводило номера равноудалённых элементов? К примеру, M=4 a1=2, a2=6 ?
Автор: Гость 14.05.2008 0:00
извините конечно, но я в Паскале дуб дубом, поэтому и не смог эту простейшую прогу написать. Я очень мало понял из ваших слов... а вообще конечно огромное спасибо... выручили!