На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила ЧаВО (FAQ) разделов Паскаля
В этом разделе разрешено создавать только темы, в которых описано РЕШЕНИЕ какой-либо общей проблемы, или описание какого-либо аспекта языка Паскаль.
Обсуждение уже созданных тем разрешено, но только конструктивное, например указание на ошибку или уточнение имеющегося текста.

Стоит почитать Структуры данных
Модераторы: volvo877, Romtek
  
> Найти самое большое число из 50 данных, курс для начинающих
    Обычно 50 чисел заданы в виде массива. Хотя это не обязательно. Возможно все 50 чисел вводятся с клавиатуры, и отображаются на экран.

    Чтобы найти наибольшее число из 50 данных мы должны сделать следующее:
    У нас будет отдельная переменная, в которой в конце концов будет самое большое число.
    Давайте назовём её max.
    Так вот, предположим в самом начале её значение бесконечно маленькое. Ну просто мизерное %) Меньше чем любое число из 50. Ок? Как это сделать?
    Если все числа из 50 - целые, то у них есть какой либо тип, например word, или integer, или longint.
    И тогда самым маленьким возможным числом будет low(word) или low(integer) ну и тому подобное.
    Если же у вас числа с плавающей запятой, то у них тип real, single или double. Для таких чисел самое маленькое значение можно посмотреть в хелпе по этим типам Borland Pascal'я (навести на тип и нажать ctrl+f1).
    Вот.. справились с этой задачей. А теперь как? Ну а дальше если мы сравним по очереди со всеми 50 числами наше max, то любое из этих чисел будет больше чем max.
    А давайте будем делать так: мы по очереди будем сравнивать каждое число из 50 с значением переменной max, и если найдём число, которое больше чем max, то сразу-же изменим значение max, чтобы оно стало равно числу, которое мы нашли. И тогда если мы все по порядку числа сравним, то max будет постепенно становиться всё больше и больше, по мере того, как нам на пути будут встречаться всё большие и большие числа, и в конце концов, когда мы закончим просмотр всех 50 чисел, то в результате получим в нашем max самое большое число из 50.

    Пообдумайте это. Если не поняли, то прочтите опять.
    Далее я напишу реализацию этого на паскале.
    Для случая, когда 50 чисел вводятся с клавиатуры, но не запоминаются в массив:
    ExpandedWrap disabled
      var
        v:integer; {Текущее введённое число}
        max:integer; {Наша переменная max}
        n:byte; {Это нам нужно для перебора 50 чисел}
      begin
        max:=low(integer); {В начале у нас max настолько маленькое, насколько можно}
        for n:=1 to 50 do {Вот тут мы будем перебирать все 50 чисел по очереди}
        begin
          write('Введите ',n,' число: '); {Попросим ввести очередное число}
          readln(v); {Ввод числа с клавиатуры}
          if v>max then max:=v; {Если число больше чем max, значит надо max сделать равным ему}
        end;
        writeln('Самым большим из этих чисел было число ',max); {Ну и всё. тут мы вывели его на экран}
      end.

    Или для случая, когда числа заданы в массиве:
    ExpandedWrap disabled
      var
        a:array[1..50] of integer;
        max:integer; {Наша переменная max}
        n:byte; {Это нам нужно для перебора 50 чисел}
      begin
        max:=low(integer); {В начале у нас max настолько маленькое, насколько можно}
        ...
        тут должно идти заполнение элементов массива "a" с клавиатуры, или из файла,
        это как вам хочется.
        ...
        for n:=1 to 50 do {Вот тут мы будем перебирать все 50 чисел по очереди}
          if a[n]>max then max:=a[n]; {Если число больше чем max, значит надо max сделать равным ему}
        writeln('Самым большим из этих чисел было число ',max); {Ну и всё. тут мы вывели его на экран}
      end.
    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script Execution time: 0,0591 ]   [ 15 queries used ]   [ Generated: 26.08.19, 05:09 GMT ]