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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.11.2013, 18:38   #21
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Конечно! У вас каждый раз генерируется новая последовательность чисел. И программа находит индекс элемента массива, ближайшего к заданному числу.
Посмотрите сами внимательно.
ZX Spectrum-128 вне форума
Старый 21.11.2013, 21:23   #22
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Скажите, пожалуйста, почему тут min взяли 1000?

Код:
USES CRT;
Var
a: array [1..3] of REAL;
n, min, max: REAL;
i, ind: integer;
Begin
CLRSCR;

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


  writeln('Enter values: ');
For i:= 1 to 3 Do begin
    write('Element[', i, '] = ');
    READLN(a[i]);
end;


  min := 1000;
  for i:=1 to 3 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 вне форума
Старый 21.11.2013, 21:43   #23
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Не знаю, обычно пишут так:
Код:
min:=a[1];
for i:=2 to n do 
  ...
ZX Spectrum-128 вне форума
Старый 21.11.2013, 22:18   #24
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Не знаю, обычно пишут так:
Код:
min:=a[1];
for i:=2 to n do 
  ...
Спасибо
AZelensky вне форума
Старый 21.11.2013, 23:19   #25
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Код:
USES CRT;
CONST
MaxElMass = 100;
Var
Mass: array [1..MaxElMass] of REAL;
number, min: REAL;
n: INTEGER;
i: byte;
Begin
TextBackGround(White);
TextColor(Black);
CLRSCR;
write('Enter number: '); READ(number);
write('Enter max element: '); READ(n);
writeln('Enter values: ');
For i:= 1 to n Do begin
    write('Element[', i, '] = ');
    READLN(Mass[i]);
end;
writeln('The resulting array: ');
write('Array: [');
For i:= 1 to n Do begin
    write(',', Mass[i]:0:0);
end;
write(']');
ReadLN;
TextColor(20);
writeln('');
writeln('Press "ENTER" to continue...');
ReadLN;
TextColor(Black);
For i:= 1 to n Do
If ABS(number - Mass[i]) < Mass[i] then
   min:= ABS(number - Mass[i]);
writeln('The smille number = ', i);
ReadLN;
END.
Что тут не так?
AZelensky вне форума
Старый 21.11.2013, 23:48   #26
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
var i, minI : integer; {хотя можно и byte}
begin
....
  minI := 1;  {считаем, что 1й элемент ближе всего к заданному числу}
  For i:= 2 to n Do
     If ABS(number - Mass[i]) < ABS(Mass[minI] - Mass[i]) then
              minI := i;
writeln('The near element  index = ', minI);
Serge_Bliznykov вне форума
Старый 22.11.2013, 14:36   #27
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

А вот так можно?

Код:
USES CRT;
CONST
MaxElMass = 30;
Var
Mass: array [1..MaxElMass] of REAL;
number, min: REAL;
n: INTEGER;
i: byte;
Begin
TextBackGround(White);
TextColor(Black);
CLRSCR;
write('Enter number: '); READ(number);
write('Enter max element: '); READ(n);
writeln('Enter values: ');
For i:= 1 to n Do begin
    write('Element[', i, '] = ');
    READLN(Mass[i]);
end;
writeln('The resulting array: ');
write('Array: [');
For i:= 1 to n Do begin
    write(',', Mass[i]:0:0);
end;
write(']');
ReadLN;
TextColor(20);
writeln('');
writeln('Press "ENTER" to continue...');
ReadLN;
TextColor(Black);
min:= Mass[1];
For i:= 1 to n Do begin
If ABS(number - Mass[i]) < min then begin
   min:= ABS(number - Mass[i]);
writeln('The smille number = ', i);
end;
end;
ReadLN;
END.
AZelensky вне форума
Старый 22.11.2013, 14:48   #28
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет. так нельзя.
Цитата:
Код:
For i:= 1 to n Do begin
If ABS(number - Mass[i]) < min then begin
   min:= ABS(number - Mass[i]);
   writeln('The smille number = ', i);
в логике у Вас ошибка.
у вас отображение результата будет столько раз, сколько раз будет уточняться min
в худшем случае - n-1 раз!


Лучше объясните, чем Вас мой вариант не устроил?!!

Последний раз редактировалось Serge_Bliznykov; 22.11.2013 в 14:50.
Serge_Bliznykov вне форума
Старый 22.11.2013, 14:57   #29
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
нет. так нельзя.

в логике у Вас ошибка.
у вас отображение результата будет столько раз, сколько раз будет уточняться min
в худшем случае - n-1 раз!


Лучше объясните, чем Вас мой вариант не устроил?!!
А вот чем:


Если посчитать в ручную, то получается 2, а не 3

Последний раз редактировалось AZelensky; 22.11.2013 в 14:58. Причина: Фото
AZelensky вне форума
Старый 22.11.2013, 15:09   #30
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Вариант Сергея вовсе не этот. Это уж вы сами чего-то наструячили. А его вариант работает.
ZX Spectrum-128 вне форума
Закрытая тема


Купить рекламу на форуме - 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