Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задачка на массив

Автор: 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

извините конечно, но я в Паскале дуб дубом, поэтому и не смог эту простейшую прогу написать. Я очень мало понял из ваших слов... а вообще конечно огромное спасибо... выручили!