Прямоугольная целочисленная матрица содержит информацию о годовых оценках одного класса (M-кол-во учеников, N-кол-во предметов, по которым выставлены оценки). Определить, есть ли в этом классе отличники, двоечники (если есть, то сколько отличников и сколько двоечников). Найти процент «Качественной успеваемости», т.е отношение кол-ва учеников, которые учатся только на «4» и «5», к общему числу учеников в классе, а также подсчитать средний балл ученика и средний балл всего класса — Pascal(Паскаль)

uses crt;
const mmax=20;{чтобы вошла таблица на экран}
      nmax=15;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,ko,kd,kh,k45:byte;
    su,sk:real;
begin
clrscr;
randomize;
repeat
write('Количество учеников до ',mmax,' m=');
readln(m);
until m in [1..mmax];
repeat
write('Количество предметов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите оценки учеников по всем предметам:');
for i:=1 to m do
 begin
  writeln('Ученик ',i);
  for j:=1 to n do
   begin
    write(' Оценка ',j,'=');
    readln(a[i,j]);
   end;
 end;
clrscr;
writeln('Ведомость:');
writeln('Ср. ученика':n*4+18);
writeln;
sk:=0;{сумма оценок по классу}
ko:=0;{кол. отл.}
kd:=0;{кол.двоечн.}
for i:=1 to m do
 begin
   write('Уч.',i:2);
   su:=0;{сумма оценок каждого ученика}
   for j:=1 to n do
    begin
     su:=su+a[i,j];{сумма по ученику}
     if su=5*n then ko:=1;{есть отличник}
     if a[i,j]=2 then kd:=1;{есть двоечник}
     write(a[i,j]:4);
    end;
   sk:=sk+su;{сумма по классу}
   writeln(su/n:7:2);{выводим среднее по ученику}
 end;
writeln;
write('Среднее в классе:');
gotoXY(n*4+9,whereY);
writeln(sk/(m*n):0:2);{среднее по классу}
write('Нажмите Enter...');
readln;
if ko=1 then writeln('В классе еcть отличники')
else writeln('В классе нет отличников');
if kd=1 then writeln('В классе еcть двоечники')
else writeln('В классе нет двоечников');
kh:=0;{кол. хорошистов}
for i:=1 to m do
 begin
  k45:=0;{кол. 4+5}
  for j:=1 to n do
  if a[i,j] in [4,5] then k45:=k45+1;{если все 4 и 5}
  if k45=n then kh:=kh+1;{хорошист}
 end;
write('Качество успеваемости=',kh*100/m:0:1,'%');
readln
end.

Leave a Comment

59 + = 66