Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.84] |
|
Сообщ.
#1
,
|
|
|
Обычно 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 чисел вводятся с клавиатуры, но не запоминаются в массив: 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. Или для случая, когда числа заданы в массиве: 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. |