Всем привет. Ну народ, помогите!

Условие:
Цитата

Выполнить программу, включающую меню следующего содержания:
• Формирование файла записей.
• Чтение записей из файла.
• Добавление записей в файл.
• Выборка записей из файла.

Составить программу для обработки списка студенческой группы, в котором записаны фамилия студента, результаты экзаменов по химии, математике и информатике. Определить списки студентов, кто не будет получать стипендию (у кого есть тройки), кто будет получать обычную стипендию (менее 50% отличных оценок) и повышенную стипендию (более 50% отличных оценок).


Решил делать программу по частям а потом собрать во едино, сделал запись и чтение типизированого файла, а вот условие что бы выполнялось: "Определить списки студентов, кто не будет получать стипендию (у кого есть тройки), кто будет получать обычную стипендию (менее 50% отличных оценок) и повышенную стипендию (более 50% отличных оценок)." не знаю как сделать ПОМОГИТЕ друзья! Есть едии как делть а записать не могу их!!!
п.с. поиском ниче не нашел =(

вот тут читаю запись из файла:

program chitivaem;
uses crt;
Type rez = record
        fio: string [20];
        him: integer;
        mat: integer;
        inf: integer;
end;
var rezult: rez;
    fp: file of rez;
begin
 clrscr;
    assign (fp, 'D:\rez.dat'); reset(fp);
    writeln ('список студентов');
    while not eof (fp) do
     begin
     read (fp,rezult);
     //if rezult.him > 0
     if (rezult.him < 4) and (rezult.mat < 4) and (rezult.inf < 4)
     then writeln ('фамилия ',rezult.fio, ' оценки ',rezult.him,' ',rezult.mat,' ',rezult.inf);
     end;
    close (fp);
    readln;
    readln;
end.