Другие языки программирования и технологии

плизз! поомогите написать программу на паскале!

В журнале записаны аценки n студентов, сдавших m экзаменов. Если студент не сдавал экзамен, то его оценка нуль. написать программу. указывающую студентов, получивших наиболььшее количество двоек!
Erick Kartmen
Erick Kartmen
494
Доброго времени суток.

Вот программка, определяющая экзамен, по которому получен максимальный средний балл.

program Examen;
uses Crt;

const
NumStudent = 4;
NumExam = 4;
ExamName : array [1..NumExam] of String = ('Литература','Физика','Математика','Информатика');

type
RStudent = record
Name : String;
Ball : array [1..NumExam] of Integer;
end;

var
j, k, e, MaxExam, Sum : Integer;
Mid, MaxMid : Real;
Students : array[1..NumStudent] of RStudent;
S : RStudent;

begin
ClrScr;

{так можно ввести данные с клавиатуры}
for j:=1 to NumStudent do begin
WriteLn('Введите данные по ', j, ' ученику');
Write('Имя: '); ReadLn(Students[j].Name);
for k:=1 to NumExam do begin
Write('введите оценку по предмету: ', ExamName[k], ' - ');
ReadLn(Students[j].Ball[k]);
end;
end;
{ А так задать в программе
Students[1].Name := 'Иванов';
Students[1].Ball[1] := 5;
Students[1].Ball[2] := 4;
Students[1].Ball[3] := 5;
Students[1].Ball[4] := 4;
Students[2].Name := 'Петров';
Students[2].Ball[1] := 3;
Students[2].Ball[2] := 3;
Students[2].Ball[3] := 4;
Students[2].Ball[4] := 3;
Students[3].Name := 'Сидоров';
Students[3].Ball[1] := 5;
Students[3].Ball[2] := 4;
Students[3].Ball[3] := 3;
Students[3].Ball[4] := 5;
Students[4].Name := 'Пупкин';
Students[4].Ball[1] := 4;
Students[4].Ball[2] :=5;
Students[4].Ball[3] := 5;
Students[4].Ball[4] := 5;
}
{найдем максимальный средний балл}
MaxMid := -MaxInt;
for e:=1 to NumExam do begin
Sum := 0;
for j:=1 to NumStudent do Sum := Sum + Students[j].Ball[e];
Mid := Sum/NumExam;
if MaxMid < Mid then begin
MaxMid := Mid;
MaxExam := e;
end;
end;

{отсортируем список учеников}
for j:=1 to NumStudent do
for k:=1 to NumStudent-j do
if Students[k].Ball[MaxExam] < Students[k+1].Ball[MaxExam] then begin
S := Students[k];
Students[k] := Students[k+1];
Students[k+1] := S;
end;

{выводим результат}
WriteLn('Экзамен с максимальным средним баллом',MaxMid:5:2, ' - ', ExamName[MaxExam] );
for j:=1 to NumStudent do WriteLn(Students[j].Name,' ',Students[j].Ball[MaxExam]);

ReadLn; {чтобы увидеть результат}
end.

Переделать под ваши условия, что два байта переслать. Нужно всего лишь подсчитать количество двоек для сданных экзаменов.

Удачи!
BZ
Bazarbai Zhanikulov
59 612
Лучший ответ
bez ponyatia