Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 19:18   #1
Faina
Новичок
Джуниор
 
Регистрация: 21.03.2010
Сообщений: 2
Радость Сортировка записей в типизированном файле

Здравствуйте!
Задача такова,что я пишу сортировку записей с учениками в типизированном файле по среднему баллу.
Однако после запуска программы база обнуляется.
Подскажите в чём ошибка.
вот код:
const
marks_count=3;{кол.-во оценок}
type
Tstudent = record
name,fam : string;
year : integer;
marks : array [1..3] of integer;
end;
var
student : Tstudent;
student1 : Tstudent;
minstudent:Tstudent;
tempstudent:Tstudent;
f:file of Tstudent;
k,z,t,i,j,num,u:integer;
q,z1,nmin:real;
begin
Assign(f,'f.txt');{открываю файл}
reset(f);{перезаписываю}

q := 0;{начало расчёта среднего балла}
for i:=1 to u do begin
z:=0;
for k:=1 to marks_count do begin
z:=z+student.marks[k];
q:=q+student.marks[k];
end;
z1:=z/marks_count;{средний балл}
end;
{начало сортировки}
t := filesize(f)-1;

for i:=0 to t-1 do begin
seek(f,i);
read(f,student);{читаю записи}
nmin:=Z1;
num:=i;

for k:=i+1 to t do begin
seek(f,k);
read(f,student);
if z1 < nmin then
begin
minstudent:=student;
nmin:=z1;
num:=k;
end;
end;
seek(f,i);
read(f,student);

seek(f,num);
write(f,student);

seek(f,i);
write(f,minstudent);
end;

for i:=0 to t do begin
seek(f,i);
read(f,student);
writeln(z1:2:2,' ');
END;

close(f);
end.
Надеюсь он вполне понятен.

Последний раз редактировалось Faina; 26.03.2010 в 17:29.
Faina вне форума Ответить с цитированием
Старый 25.03.2010, 21:47   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) не забывайте использовать код [СODE] (кнопка с "решёточкой" - #)

2) так у вас второй строкой после begin
идёт обнуление файла:
Цитата:
Код:
  rewrite(f);{перезаписываю}
если файл есть - используйте
reset(f)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.03.2010, 17:28   #3
Faina
Новичок
Джуниор
 
Регистрация: 21.03.2010
Сообщений: 2
По умолчанию

да я пробовала reset(f)
Однако ошибка явно в другом.Так как сортировка не работает.
Faina вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение инфо в типизированном файле prostac Помощь студентам 2 23.11.2009 14:55
Сортировка записей в тип. файле sixxn Помощь студентам 7 10.05.2009 17:24
отсортировать информацию обменом в типизированном файле rainbow Помощь студентам 6 07.03.2009 09:26
Сортировка записей в файле. Turbo Pascal. Dexterello Помощь студентам 1 28.02.2009 18:14
Расчет числа строк в типизированном файле 1234 Паскаль, Turbo Pascal, PascalABC.NET 6 20.05.2008 11:14