Сейчас работаю над заданием, которое выглядит так:
Дан список группы в 10 человек в виде:
ФАМИЛИЯ: 14 символов (13+1 пробел)
ПОЛ: 2 символа (1+1 пробел)
РЕЗУЛЬТАТЫ_СЕССИИ: 4 символа
Всего в строке 20 символов.
Данные в одной строке отделяются друг от друга пробелами. Например:
Иванов________м_4455
Петрова_______ж_3554
………………………….
Отсортировать по убыванию среднего балла мужчин и женщин по отдельности. Список брать из файла и сохранить в файл. Процедуры, функции и string-и не использовать. Реализовать программу через сортировку двумерного массива.
Вот что я написал:
program Zachet1;
type massC=array[1..10,1..20] of char;
var A:massC;
C:massC;
my1,my2,i,j:integer;
myin,myout:text;
begin
assign (myin, 'INPUT.TXT');
assign (myout, 'OUTPUT.TXT');
reset (myin);
rewrite (myout);
for i:=1 to 10 do
begin
for j:=1 to 20 do
read(myin,A[i,j]);
readln(myin);
end;
for i:=1 to 10 do {перевожу 4 цифры в числовой тип и сортирую по убыванию}
for j:=1 to 20 do
begin
my1:= (ord(A[i,17])-48)+(ord(A[i,18])-48)+(ord(A[i,19])-48)+(ord(A[i,20])-48);
my2:= (ord(A[i+1,17])-48)+(ord(A[i+1,18])-48)+(ord(A[i+1,19])-48)+(ord(A[i+1,20])-48);
if my1<my2
then
begin
C[i,j]:=A[i,j];
A[i,j]:=A[i+1,j];
A[i+1,j]:=C[i,j];
i:=i+1;
end;
end;
for i:=1 to 10 do {вывожу мужской пол}
begin
if (A[i,15]='м') then
begin
for j:=1 to 20 do
write(myout,A[i,j]);
writeln(myout)
end;
end;
for i:=1 to 10 do {вывожу женский пол}
begin
if (A[i,15]='ж') then
begin
for j:=1 to 20 do
write(myout,A[i,j]);
writeln(myout);
end;
end;
close(myin);
close(myout);
end.
Но программа не работает.
Пожалуйста, помогите исправить ошибку. Заранее спасибо.
P.S. Файл "INPUT.TXT" приложил, "OUTPUT.TXT" программа создаст сама.