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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2009, 00:48   #1
fit
 
Регистрация: 19.12.2009
Сообщений: 5
По умолчанию Файлы и записи (Pascal)

прошу помощи в решении:
Дан файл F, содержащий сведения о учениках школы. Сведения о ученике содержат имя и фамилию, класс (номер и буква) и отметки за последнюю четверть. Выяснить, сколько учеников школы не имеют отметок ниже четырех.
вот что у меня получилось:
Код:
program laba;
uses crt;
type uchenik=record
                   F:string[30];
                   I:string[30];
                   K:string[3];
                   O:real;
                   end;
var F:file of uchenik;
    uch:array[1..3] of uchenik;
    s,i:integer;
begin
writeln('vvedite svedenia o uchenikah');
assign(F,'c:\uchenik.txt');
rewrite(F);
for i:=1 to 3 do begin
                      write ('Familia:');
                      readln(uch[i].F);
                      write ('Imya:');
                      readln(uch[i].I);
                      write ('Klass:');
                      readln(uch[i].K);
                      write ('Ocenka:');
                      readln(uch[i].O);
                      write (F, uch[i]);
                      writeln('- - - - - - - - - - - - - - - - -');
                      end;
                      close (F);

reset(F);
s:=0;
while not Eof(F) do  begin
                            inc(i);
                            read(F,uch[i]);
                            if uch[i].O>=4 then begin
                                                       s:=s+1;
                                                       end;
                            end;
Close(F);
writeln (s);
readkey;
end.
но почему-то работает только первая часть программы (там где идет ввод данных). т.е. ввожу данные, нажимаю enter - прога ничего больше не выводит. как я понял, цикл while do не выполняется. почему? может подскажите в чем дело?)
задачка вроде не сложная, а самому ошибку найти не получается. лекций по этой теме не было, а лабу на практику делать все равно как-то надо зараннее благодарю)
fit вне форума Ответить с цитированием
Старый 19.12.2009, 01:00   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
reset(F);
s:=0;i:=0;
И можно без массива(он всё равно не используется) - просто читать в переменную типа uchenik
eoln вне форума Ответить с цитированием
Старый 19.12.2009, 01:38   #3
fit
 
Регистрация: 19.12.2009
Сообщений: 5
По умолчанию

точно! спасибо) а я над такой глупостью парился)) а можно ли сделать так, чтобы не вводить самому с клавиатуры все эти фамилии, оценки и тд? т.е. чтобы программа сама создавала файл с уже существующими данными, а потом его читала
fit вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы и записи в Delphi Console Application S1av0k Помощь студентам 6 27.11.2009 18:27
Паскаль. Записи, Файлы. B_A_N_D_E_R_A Помощь студентам 1 02.06.2009 16:53
Записи/типизированые файлы innaa639 Паскаль, Turbo Pascal, PascalABC.NET 3 08.12.2008 09:08
требуется помощь записи и типизированные файлы в паскале GaJIbI4 Помощь студентам 3 27.11.2008 21:28