С клавиатуры вводится последовательность чисел до тех пор пока не будет введен 0....

0 голосов
135 просмотров

С клавиатуры вводится последовательность чисел до тех пор пока не будет введен 0. Требуется найти порядковый номер мин.из введенного чисел


Информатика (58 баллов) | 135 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var
  mini, min, n, i: integer;

begin
  i := 1; {порядковый номер введенного с клавы числа}
  readln(n); {считываем число в клавиатуры}
  min := n; {присваеваем минимуму первое введенное число. Если будет введено одно число то оно и есть минимум}
  mini := i; {присваеваем порядковый номер минимума}
 
  repeat{повторяем}
    i := i + 1; {порядковый номер введенного с клавы числа}
    readln(n); {считываем число в клавиатуры}
    if (n <> 0) and (min > n) then begin {если введенное число меньше минимума, то заменяем минимум}
      min := n; {присваеваем минимуму число}
      mini := i;{присваеваем порядковый номер минимума}
    end;
  until n = 0;{до тех пор пока n=0}
 
  writeln('index = ', mini);
end.

Что еще не понятно?

(53.1k баллов)
0

Теперь все понятно,спасибо большое!

0

гут

0 голосов

//Pascal ABC.NET v3.1 сборка 1172

begin
 Var seq:=SeqWhile(ReadInteger(),x -> ReadInteger(),x -> x<>0).ToArray;
 writeln(seq.Select((x,i)->Rec(x,i+1)).Where(x->x.Item1=seq.Min).Select(x->x.Item2));
end.

Пример ввода:
2
3
4
0
Пример вывода:
[1]

(38.6k баллов)
0

можно проще

0

begin
Writeln('index =',SeqWhile(ReadInteger(),x -> ReadInteger(),x -> x<>0).IndexMin+1);
end.

0

Хмм, никогда не видел такого метода. Появился в последних сборках?

0

вернее так

0

begin
Writeln('index =',SeqWhile(ReadInteger(),x -> ReadInteger(),x -> x<>0).ToArray.IndexMin+1);
end.

0

у меня еще 1200 сборка

0

давненько уже

0

Скачал 1219, не компилируется.

0

А второй вариант работает. Спасибо.