nyto4ka
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Дан список группы в 10 человек в виде ФАМИЛИЯ ПОЛ РЕЗУЛЬТАТЫ_СЕССИИ 15 симв 1 симв 4 симв Данные в одной строке отделяются друг от друга пробелами. Например: Иванов м 4455 Петрова ж 3554 …………………………. Определить лидеров среди мужчин и женщин по успеваемости и их средний балл(у мужчин и женщин отдельно). Решить с помощью двухмерного символьного массива и текстовых файлов, но без процедур. Program Num1; Uses max_crt; Var q:array[1..10,1..22] of char; t:text; i,j:integer; c:char; s,sm,sf:string; f,m,sum,km,kf:longint; msum,fsum:real; Begin assign(t,'bas.txt'); reset(t); for i:=1 to 10 do begin readln(t,s); for j:=1 to 22 do q[i,j]:=s[j]; end; close(t); assign(t,'itog.txt'); rewrite(t); for i:=1 to 10 do begin for j:=1 to 22 do write(t,q[i,j]); writeln(t); end; f:=0; m:=0; fsum:=0; msum:=0; km:=0; kf:=0; for i:=1 to 10 do begin sum:=ord(q[i,19])+ord(q[i,20])+ord(q[i,21])+ord(q[i,22]); if (q[i,17]='m')then begin msum:=(msum+sum)/4; km:=km+1; if (sum>m) then begin m:=sum; sm:=''; for j:=1 to 15 do if q[i,j]<>' ' then sm:=sm+q[i,j] else j:=15; end; end else if (q[i,16]='f') then begin fsum:=fsum+sum/4; kf:=kf+1; if (sum>f) then begin f:=sum; sf:=''; for j:=1 to 15 do if q[i,j]<>' ' then sf:=sf+q[i,j] else j:=15; end; end; end; msum:=msum/km-48; fsum:=fsum/kf-48; Writeln(t); Writeln(t,'Goodest boy is ',sm); Writeln(t,'Middle ball of boys : ',msum:2:2); Writeln(t,'Goodest girl is ',sf); Writeln(t,'Middle ball of girls : ',fsum:2:2); close(t); end. ЧТО не правильно в ней? Почему то запускаться не хочет она |