Вычислить средний балл студентов группы. Если известны оценки каждого по трем предметам. И вывести список тех, у кого средний бал выше с
Условие Задачи:
Вычислить средний балл студентов группы. Если известны оценки каждого по трем предметам. И вывести список тех, у кого средний бал выше среднего по группе (все данные хранятся в файле). Записи в файле типа: Anafreev Denis 5 4 5 Ludkov Maks 3 5 5 Terentiev Andrei 3 3 4.
Program PascalGuru; type z=record {описание типа записи с ФИО и 3-мя оценками} fio:string; one:integer; two:integer; three:integer; end;
Var m:array[1..50] of z; {описание переменных} f:text; s:string; i,n,p,code:integer; summa:real;
begin Assign( f ,'file4.txt'); reset(f); {подключение файла для чтения} n:=0; {счётчик последовательности обнуляем} while not eof(f) do {считывание всего файла до конца} begin readln(f,s); {считывание текущей строки} inc(n); {счётчик последовательности увеличивыаем на +1} p:=pos(' ',s); p:=p+pos(' ',copy(s,p+1,length(s)-p-1)); m[n].fio:=copy(s,1,p-1); {фио текущей строки} delete(s,1,p); p:=pos(' ',s); val(copy(s,1,p-1),m[n].one,code); {первая оценка из текущей строки} delete(s,1,p); p:=pos(' ',s); val(copy(s,1,p-1),m[n].two,code); {вторая оценка из текущей строки} delete(s,1,p); val(s,m[n].three,code); {третья оценка из текущей строки} end;
summa:=0; {обнуляем сумму} for i:=1 to n do {проходим по всем записям} summa:=summa+((m[i].one+m[i].two+m[i].three)/3); {находим сумму всех среднеарифметических }
writeln('Srednii ball studentov gruppy: ',summa/n:0:2); {выводим сумму сумму всех среднеарифметических} writeln; writeln('Spisok teh, u kogo srednii bal vyshe srednego po gruppe: '); writeln('________________________________________________________'); for i:=1 to n do {проходим по всем записям} if ((m[i].one+m[i].two+m[i].three)/3)>summa/n then {если текущая СР_Ар больше общей среднеарифметической} writeln(m[i].fio,' : ',((m[i].one+m[i].two+m[i].three)/3):0:2 ); {этого учащегося выводим на экран}