Помощь - Поиск - Пользователи - Календарь
Полная версия: Файлы и записи.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
gryzlik
Помогите, пожалуйста...В пятницу нужно сдать, а программа не работает...Подскажите, где ошибка!
Задача:Распечатать список тех учителей школы, которые преподают математику и информатику, указать стаж их работы и недельную нагрузку.


Type Uchitel=record
fam: string[15];
nam: string[15];
otch: string[20];
predmet: string[30];
stazh: 1..50;
nagruzka: string [10];
end;
var a:array[1..100] of Uchitel;
fin,fout:text;
i,j:integer;
BEGIN
assign(fin, 'uch.pas');
reset(fin);
i:=0;
repeat i:=i+1;
with a[i] do
readln(fin,fam,nam,otch,predmet,stazh,nagruzka);
until eof(fin);
close(fin);
assign(fout,'spisok.pas');
rewrite(fout);
for j:=1 to i do
if (a[i].predmet='informatika') or (a[i].predmet='matematika') then
writeln(fout,a[i].fam,a[i].nam,a[i].otch,a[i].stazh,a[i].nagruzka);
close(fout);
END.



К ней я предварительно создаю файл uch.pas в той же папке...Но прога не работает! Очень прошу о помощи.Найдите ошибку!
volvo
Цитата
К ней я предварительно создаю файл uch.pas в той же папке...
В том файле, который ты создаешь, все данные для одного учителя находятся в одной строке? Тогда это работать не будет - у тебя массив неправильно заполняется... Надо ввести какой-то разделитель, для отделения одного поля записи от другого, читать ВСЮ строку полностью и уже потом разбивать ее на элементы... Если интересно, как именно это делается - смотри здесь:

Заполнение полей записи из файла
gryzlik
Спасибо. Я так и подозревала, что протсо написать строку нельзя. А как её разбивать не знала. Спасибо, что помогли.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.