IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задачи по файлам, помогите найти ошибку!
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


задача: создать файл, содержащий сведения о сдаче студентами сессии и организовать поиск по ФИО.

Вот прога:
program q;
type ekz=record
gr:string;
fio:string;
ex:array[1..5] of integer end;
var spf:file of ekz;
spr:ekz;
rej,i:integer; f:string; c:char;
procedure sozd;
begin
rewrite(spf);
with spr do begin
writeln('введите группу');
readln(gr);
writeln('введите ФИО');
readln(fio);
writeln('введите 5 оценок по экзаменам');
for i:=1 to 5 do begin write(i,'-ая оценка');
readln(ex[i]) end;
write(spf,spr);
writeln('продолжить ввод? y/n');
read©;
if (c='n') or (c='N') then exit; end;
end;
procedure obr;
begin
reset(spf);
writeln('введите ФИО для поиска');
readln(f);
with spr do while not Eof(spf) do begin
read(spf,spr);
if f=fio then begin writeln('ФИО:',fio:30,'группа:',gr:7);
writeln('оценки:');
for i:=1 to 5 do write(ex[i]:4,',') end;
close(spf)
end;
begin
assign(spf,'D:\spis.txt');
while true do
begin
writeln('меню:');
writeln('1: создание списка;');
writeln('2: поиск по ФИО студента;');
writeln('3: выход');
readln(rej);
case rej of
1: sozd;
2: obr;
3: halt;
else writeln('ошибка!!! повторите ввод'); end; end;
end.


требует ; после последнего end перед точкой.

Сообщение отредактировано: PaPoV -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


wacko.gif я совсем замучался:
процедура sozd работает криво после
writeln('продолжить ввод? y/n');

т.е. пропускает чтение группы и ожидает пока будет введена фамилия.
Процедура obr выдает dick read error


ПОМОГИТЕ, ПОЖАЛУЙСТА!!! unsure.gif


const n=99;
type ekz=record
gr:string;
fio:string;
ex:array[1..5] of integer
end;
fl=array[1..n] of ekz;
var spf:file of fl;
spr:fl;
j,rej,i:integer; f:string; c:char;
procedure sozd;
begin
j:=1;
rewrite(spf);
with spr[j] do
while true do
begin
writeln('введите группу');
readln(gr);
writeln('введите ФИО');
readln(fio);
writeln('введите 5 оценок');
for i:=1 to 5 do
begin write(i,'-ая оценка');
readln(ex[i])
end;
writeln('продолжить ввод? y/n');
read©;
if (c='n') or (c='N')
then exit
else j:=j+1
end;
write(spf,spr);
close(spf)
end;
procedure dob;
begin
j:=1;
reset(spf);
seek(spf,filesize(spf));
with spr[i] do
while true do
begin
writeln('введите группу');
readln(gr);
writeln('введите ФИО');
readln(fio);
writeln('введите 5 оценок');
for i:=1 to 5 do
begin write(i,'-ая оценка');
readln(ex[i])
end;
writeln('продолжить ввод? y/n');
read©;
if (c='n') or (c='N')
then exit
else j:=j+1
end;
write(spf,spr);
close(spf)
end;
procedure obr;
begin
j:=1;
reset(spf);
writeln('введите ФИО для поиска');
readln(f);
for j:=1 to n do
with spr[j] do
begin
read(spf,spr);
if f=fio then
begin writeln('ФИО:',fio:30,'группа:':12,gr:7);
writeln('оценки:');
for i:=1 to 5 do write(ex[i]:4,',')
end;
end;
close(spf)
end;
begin
assign(spf,'D:\spis.txt');
while true do
begin
writeln('меню:');
writeln('1: создание списка;');
writeln('2: поиск по ФИО;');
writeln('3: добавление записей;');
writeln('4: выход');
readln(rej);
case rej of
1: sozd;
2: obr;
3: dob;
4: halt;
else writeln('ошибка!!! повторите ввод')
end
end
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.09.2025 20:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name