iİnformatikanın məktəbdə tədrisi

8-3r

Дан массив. Найти максимальный элемент.

Нахождение максимального элемента – одно их часто повторяющихся действий в программировании. Поэтому идею этого алгоритма надо знать безукоризненно и уметь реализовать в различных задачах. 
Предположим вы попали в большой яблочный сад в период уборки урожая. Конечно, вы уже хорошо поработали и сели около большого, наполненного яблоками ящика, он у вас слева. А справа  - пустой ящик. И вот вы решили выбрать в левом ящике самое большое яблоко (по весу).  Ну не высыпать же на землю все яблоки. Вы берете первое яблоко и кладете его перед собой на стол. А затем, пока левый ящик не опустеет, вы будете выполнять одни и те же действия:
1. взять яблоко из левого ящика.
2. если оно меньше яблока, которое лежит на столе, то положить его в правый ящик, иначе (то есть оно больше) заменить яблоко, лежащее на столе, новым яблоком, а старое яблоко отправить в левый ящик. 
3. В самом конце, когда левый ящик будет пустым, на столе перед вами будет красоваться самое большое яблоко. Кушайте его на здоровье.
Это алгоритм мы и осуществили в нашей программе.
а) берем первый элемент и делаем его максимальным – строка 8.
b) Перебираем все оставшиеся элементы (строка 9) и каждый элемент сравниваем с максимальным, если он больше максимального, то заменяем максимальный этим новым элементом – строка 10.
c) В конце в maxa окажется самый максимальный элемент.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Const
 n=10;
 a:array [0..n-1] of integer=
               (6,-5,1,4,2,7,4,2,1,-5);
Var
 i,maxa:integer;
 BEGIN
   maxa:=a[0];
   for i:=1 to n-1 do
     if (a[i]>maxa) then maxa:=a[i];
     writeln(maxa);
   readln;
 END.
#include <iostream>
 
using namespace std;
 
int main()
{ int a[10]={6,-5,1,4,2,7,4,2,1,-5};
    int n=sizeof(a)/sizeof(int);
    int i,maxa=a[0];
    for(i=1;i<n;i++)
        if(a[i]>maxa) maxa=a[i];
    cout<<maxa<<endl;;
    return 0;
}