почему нет результата проги на паскале?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

почему нет результата проги на паскале?

Сообщение AlexSt » 25.05.2007 19:06:41

Пусть в файле фамилий ffam находятся фамилии студентов(одна запись - одна фамилия), в файле оценок fnote - в том же порядке оценки студентов( одна запись - массив оценок одного студента), в файле fchg - изменения к файлу оценок(структура записи:номер студента, совпадающий с номером фамилии в файле ffam, номер изменённой оценки, новая оценка). Записи упорядочены по номеру студента. Распечатайте список фамилий студентов, сдавших сессию на 4 и 5. Файлы ffam, fnote, fchg читаются один раз.

Код: Выделить всё
program file_stipendiya_n23;
uses    crt;
type    fam=record
        f:string[20]
        end;
        note=record
        a:array[1..10] of byte
        end;
        chg=record
        ns,no,new:byte
        end;
var     ffam:file of fam;
        fnote:file of note;
        fchg:file of chg;
        p,f:string[20];
        i,j,exam,kolstud:integer;
        mark:byte;
        b:boolean;
        fam1:fam;
        note1:note;
        chg1:chg;
        a:array[1..10] of byte;
begin   clrscr;
        writeln('введтите путь к файлу, содержащему фамилии студентов');
        readln(p);
        assign(ffam,p);
        rewrite(ffam);
        writeln('введите фамилии студентов, окончание ввода - "0"');
        kolstud:=0;
        repeat readln(f);
               if f<>'0' then begin write(ffam,fam(f));
                                    kolstud:=kolstud+1
                              end;
        until f='0';    close(ffam);
                        reset(ffam);
        writeln('введтите путь к файлу, содержащему оценки студентов');
               readln(p);
        assign(fnote,p);
        writeln('введите количество экзаменов');
               readln(exam);
        writeln('введите оценки каждого студента');
        rewrite(fnote);
        for i:=1 to kolstud do
              begin writeln('оценки студента № ',i,':');
                    for j:=1 to exam do
                    readln(a[j]);
                    write(fnote,note(a));
              end;  close(fnote);
                    reset(fnote);
        writeln('введтите путь к файлу, содержащему изменения к файлу оценок');
        readln(p);
        assign(fchg,p);
        rewrite(fchg);
        with chg1 do
        repeat writeln('введите номер студента, номер изменённой оценки и новую оценку, окончание ввода - "0"');
               readln(ns);
               readln(no);
               readln(new);
               if (ns<>0)and(no<>0)and(new<>0) then write(fchg,chg1);
        until (ns=0)and(no=0)and(new=0);     close(fchg);
                                             reset(fchg);
        b:=true; j:=0;
        writeln('студенты, получающие стипендию:');
        while not eof(ffam) do {считывание данных}
        begin j:=j+1;
              read(ffam,fam(f));
              read(fnote,note(a));
              for i:=1 to exam do
              if a[i]<4 then with chg1 do
                             begin b:=false;
                                   while eof(fchg) do
                                   begin read(fchg,chg1);
                                    if (ns=j)and(no=i)and(new>3) then b:=true
                                   end;
                                   close(fchg);
                                   reset(fchg);
                             end;
              if b=true then writeln(f);
        end;
end.
AlexSt
незнакомец
 
Сообщения: 1
Зарегистрирован: 25.05.2007 19:00:18

Сообщение v-t-l » 26.05.2007 19:37:39

Совет: учитесь пользоваться отладчиком.
v-t-l
энтузиаст
 
Сообщения: 740
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

Рейтинг@Mail.ru