Найти максимальный элемент численного массива и его индекс1.В переменной Amax текущее...

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

Найти максимальный элемент численного массива и его индекс
1.В переменной Amax текущее максимальное значение, а в Aindex- его позиция(индекс).
2. В программе можно выделить две части: заполнение массива числами с выводом их на экран (первый цикл for) и непосредственно (второй цикл for)
3. Перед первым циклом запускается процедура randomize для того чтобы при каждом запуске программы значения массива были разными.
4.Изначально делятся предположения, что первый элемент массива и есть максимум. Поэтому переменной Aindex присваивается значение (т.е указатель на первый элемент массива), Amax - непосредственно значение, хранящееся в первой ячейке массива.
5. Начиная со второго элемента, каждое очередное значение массива сравнивается с текущим значением Amax. В случае если текущее значение массива больше чем хранящейся в Aindex происходит новое присваивание обоим переменным текущего значения и индекса.


Информатика (29 баллов) | 30 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Задание предлагает несовершенный алгоритм. При поиске максимума нет никакого смысла переприсваивать Amax. Образец того, как в школах сначала дают неоптимальные алгоритмы, а потом на ЕГЭ за неоптимальность снимают балл.

Предлагаемый вариант программы лишен указанного выше недостатка.

const
  nn=100; { максимальное количество элементов в массиве }

var
  a:array[1..nn] of integer;
  i,n,Amax,Aindex:integer;
 
begin
  Randomize;
  Write('n='); Read(n);
  for i:=1 to n do begin
    a[i]:=Random(101)-50;
    Write(a[i],' ')
    end;
  Writeln;
  Aindex:=1;
  for i:=2 to n do
    if a[i]>a[Aindex] then Aindex:=i;
  Amax:=a[Aindex];
  Writeln('Максимальный элемент номер ',Aindex,' равен ',Amax)
end.

Пример
n=15
24 14 44 4 41 -50 14 3 7 38 21 -39 31 -2 12
Максимальный элемент номер 3 равен 44

(142k баллов)