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

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

Форум «Всё о Паскале» _ Задачи _ Наибольшее из N чисел

Автор: barlog 26.09.2006 2:38

Нужно написать прогу по нахождению максимального числа из введённых.
Вот одна из них. Но если числа вводятся рандомом? Нужен алгоритм, так как он может быть не один, то самый лучший из них.

Код

Program maximum;
Var    N, max, next, k: integer;
Begin
  Write('Введите количество чисел'); Readln(n);
  Write('Введите число'); Readln(max);
  k:=1;
  repeat
    Write('Введите число'); Readln(next);
    K:=k+1;
    If next>max then max:=next
  Until k=n;
  Writeln(max);
  Readln
End.


Автор: volvo 26.09.2006 2:51

Цитата
Но если числа вводятся рандомом?
Так "если" или "вводятся"? Что за привычка давать расплывчатые задания???

Кстати, твое решение тоже не особо оптимальное: ни один преподаватель (тем более работодатель), находящийся в здравом уме, не пропустит такую программу. Хотя бы вот так:

Program maximum;
Var N, max, next, k: integer;
Begin
Write('Введите количество чисел'); Readln(n);
max := -maxInt;
for k := 1 to n do begin
Write('Введите число'); Readln(next);
If next>max then max:=next
end;
Writeln(max);
Readln
End.

Автор: мисс_граффити 26.09.2006 18:44

а если они вдруг начнут вводиться рэндомом (всякое в жизни бывает), то достаточно в приведенном volvo коде изменить

Код
Write('Введите число'); Readln(next);

на
Код
next:=random(100)-50; {это для примера. чтобы были и положительные, и отрицательные}
writeln(next); {чтобы отслеживать, что у нас там навводилось}


а если вводим вручную... может, заранее не просить количество чисел? спрашивать "хотите ввести еще одно?".

Автор: barlog 27.09.2006 21:43

Большое вам спасибо за ответы.
Тут нам сегодня дали около сотни задач на 5 тем. Если будут вопросы по некоторым, буду обращаться, надеюсь поможете. Спасибо ещё раз!