Var A, i, k2, k4, k5, c, d, N: integer; Begin Write('Введите количество учеников в классе: ');ReadLn(N); if (N = 32) then Begin c := 1; d := 5; WriteLn('Введите оценки учеников:'); k2 := 0; k4 := 0; k5 := 0; i := 1; While i <= N do Begin Write('Оценка ученика №',i,': ');ReadLn(A); if (c <= A)and(A <= d) then Begin Case A of 2: k2 := k2+1; 4: k4 := k4+1; 5: k5 := k5+1; End; i := i+1; End else WriteLn('Неприемлимое значение! Допустимые значения: [',c,'..',d,']'); End; WriteLn('Количество двоек: ',k2); WriteLn('Количество четвёрок: ',k4); WriteLn('Количество пятёрок: ',k5); End else WriteLn('В классе не 32 ученика'); End.
Задание предлагает несовершенный алгоритм. При поиске максимума нет никакого смысла переприсваивать 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
A, i, k2, k4, k5, c, d, N: integer;
Begin
Write('Введите количество учеников в классе: ');ReadLn(N);
if (N = 32) then
Begin
c := 1;
d := 5;
WriteLn('Введите оценки учеников:');
k2 := 0;
k4 := 0;
k5 := 0;
i := 1;
While i <= N do
Begin
Write('Оценка ученика №',i,': ');ReadLn(A);
if (c <= A)and(A <= d) then
Begin
Case A of
2: k2 := k2+1;
4: k4 := k4+1;
5: k5 := k5+1;
End;
i := i+1;
End
else
WriteLn('Неприемлимое значение! Допустимые значения: [',c,'..',d,']');
End;
WriteLn('Количество двоек: ',k2);
WriteLn('Количество четвёрок: ',k4);
WriteLn('Количество пятёрок: ',k5);
End
else
WriteLn('В классе не 32 ученика');
End.