Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.11.2013, 13:59   #1
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию Задана последовательность из N вещественных чисел...

Задана последовательность из N вещественных чисел. Определить
порядковый номер того из них, которое ближе всего к заданному
числу

Массив я задал, а дальше не понимаю как
AZelensky вне форума
Старый 17.11.2013, 14:12   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Найти минимальное из разниц между элементами массива и заданным числом (по модулю)
Числа в массиве
1 2 3 заданное 2.4
Вычитаете |2.4-1|=1.4
|2.4-2|=0.4
|2.4-3|=0.6
Минимальное 0.4, то есть 2 и будет ближним

Последний раз редактировалось ZX Spectrum-128; 17.11.2013 в 14:20.
ZX Spectrum-128 вне форума
Старый 17.11.2013, 14:22   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
if abs(a[i]-Zadannoe)<a[min] then min:=i;
Где:
i:integer - счетчик цикла
Zadannoe - ну думаю понятно
min:integer - номер наиближнего на момент итерации цикла и позтом в массиве

Идея понятна?
I'm learning to live...
Stilet вне форума
Старый 17.11.2013, 16:50   #4
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
if abs(a[i]-Zadannoe)<a[min] then min:=i;
Где:
i:integer - счетчик цикла
Zadannoe - ну думаю понятно
min:integer - номер наиближнего на момент итерации цикла и позтом в массиве

Идея понятна?


Правильно?
Код:
USES CRT;
Var
a: array [1..3] of REAL;
n, min: REAL;
i: byte;
ind: byte;
Begin
CLRSCR;

 write('N = '); readln(n);


  for i:=1 to 10 do begin
    a[i]:=random(103)/7;
    write(a[i]:6:3);
  end;



  min := 1000;
  for i:=1 to 10 do begin

    if abs(a[i]-n) < min then begin

        min :=  abs(a[i]-n);
        ind := i;

    end;
  end;

  writeln;
  writeLN(ind);
END.
AZelensky вне форума
Старый 17.11.2013, 17:09   #5
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Массив описан как array [1..3] , а в цикле пытаетесь работать с ним до 10.
ZX Spectrum-128 вне форума
Старый 17.11.2013, 17:15   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Запусти программу - что выдаст?
I'm learning to live...
Stilet вне форума
Старый 17.11.2013, 17:28   #7
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Запусти программу - что выдаст?
Вот, что. ПРавильно?
AZelensky вне форума
Старый 17.11.2013, 17:29   #8
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Массив описан как array [1..3] , а в цикле пытаетесь работать с ним до 10.

А так правильно?
Код:
USES CRT;
Var
a: array [1..10] of REAL;
n, min: REAL;
i: byte;
ind: byte;
Begin
CLRSCR;

 write('N = '); readln(n);


  for i:=1 to 10 do begin
    a[i]:=random(103)/7;
    write(a[i]:6:3);
  end;



  min := 1000;
  for i:=1 to 10 do begin

    if abs(a[i]-n) < min then begin

        min :=  abs(a[i]-n);
        ind := i;

    end;
  end;
ReadLN;
  writeln;
  writeLN(ind);
END.
AZelensky вне форума
Старый 17.11.2013, 17:36   #9
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Это был какой-то неправильный паскаль

Теперь согласен. Выводит 9, что есть хорошо
Изображения
Тип файла: jpg Безымянный.jpg (12.9 Кб, 122 просмотров)

Последний раз редактировалось Stilet; 17.11.2013 в 17:54.
ZX Spectrum-128 вне форума
Старый 17.11.2013, 17:44   #10
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Теперь согласен. Выводит 9, что есть хорошо


Т.е. у меня на скрине всё правильно работает? Просто при вводе любых чисел всё ровно ряд одинаковый выводит!
AZelensky вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана непустая последовательность вещественных чисел, оканчивающаяся числом 1000. Последовательность является неубывающей. fanatloko Паскаль, Turbo Pascal, PascalABC.NET 1 23.06.2013 14:25
Дана последовательность вещественных чисел. каждая пара чисел задает границы отрезка. Найти количество целых чисел на отрезках 'studentka' Помощь студентам 6 30.11.2011 18:35
Последовательность вещественных чисел ch1c1sT Помощь студентам 1 09.10.2011 19:05
Ввести строку символов,в которой задана последовательность целых чисел (возможно со знаком), разделенных killoff1234 Помощь студентам 0 16.05.2010 18:37