Опишите ** языке pascal алгоритм подсчета числа элементов, равных максимальному, в...

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

Опишите на языке pascal алгоритм подсчета числа элементов, равных максимальному, в числовом массиве из 30 элементов
Более простым способом,если можно,пожалуйста!!!
10 класс


Информатика (15 баллов) | 70 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var
   max,k:integer;
   a:array[1..30] of integer; 
procedure vvodmassiva; 
  begin     
 var i:integer;   
  for i:=1 to 30 do   
   begin      
    read(a[i]);     
    write(' ')   
  end   
 end; 
procedure poiskmax; 
var i:integer;   
begin     
max:=a[1];     
for i:=2 to 30 do   
   if a[i]>max then max:=a[i] 
   end;
 procedure poiskkol;
 var i:integer;
   begin   
 k:=0;     
for i:=1 to 30 do 
     if a[i]=max then k:=k+1; 
  end; 
begin 
vvodmassiva; 
poiskmax; 
poiskkol; 
write(k)
end.   

(1.3k баллов)
0

проще некуда)))

0

у нас разные понятия о сложности )

0

просто сейчас изучаю процедуры и функции, надо же практоковаться

0 голосов

// Предполагаем, что первый 
// это максимальный элемент
v := a[1]; // значение максимального
n := 1; // число равных максимальному

for i := 2 to 30 do begin
   // Если текущий элемен равен максимальному,
   // то увеличим число
   if a[i] = v then 
      n := n + 1
   else if a[i] > v then
   begin
      // если текущий больше максимального,
      // то скинем счетчик и запомним значение
      n := 1;
      v := a[i];
   end;
end;

(3.8k баллов)
0

а всё-таки моё решение выбрали лучшим

0

ну наверно потому что твой вариант компилируется) а я просто алгоритм описал