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

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

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

> Странная ошибка, ну никак не одолеть...
сообщение
Сообщение #1


Гость






program kursov;
uses crt;
type
student=record
name:string[23]; {имя и инициалы}
number:integer; {номер группы}
ball:array[1..5] of integer; {успеваемость}
srball:real; {средняя оценка}
end;

const
max=100; {количество записей}
d=' ';
var
f1:file of student; {файловая переменная массива}
a:array [1..max] of student; {массив записей}
zap:student;
num:integer; {общее количество записей в массиве}
i,j:integer;
gg:longint;
sel:integer; {выбор пункта меню}
key1,key2:string;
key3,key4,key5:integer; {ключи для поиска, задаваемые пользователем}
sum:longint; {сумма значений полей}
err:integer;
zap1,zap2:integer; {обмен записей}
m1,m2:student; {для сортировки записей}
m,n:string; {строки для сортировки}
s:boolean; {ключ сортировки}
buf:student; {буферная запись для обмена}
filename:string; {имя файла с записями}
z:string; {фильтрация пробелов}
pball:string[9]; {Оценки для ввода и вывода}
error,x,y,dx,dy:integer;

{описание процедур}
procedure menu; forward;
procedure zapis; forward;

procedure shapka; {заголовок таблицы}
begin
writeln (' ТАБЛИЦА ЗАПИСЕЙ');
writeln;
writeln('г=========================T============'+
'T==============T==========¬');
writeln ('¦ ФАМИЛИЯ И.О. ¦ № Группы ¦ Успеваемость ¦ Ср. Балл ¦');
writeln('¦=========================+============'+
'+==============+==========¦');
end;

procedure read; {процедура добавления записи в файл}{(2 подпрограмма)}
begin
clrscr; {ассоциация с файлом и переход в конец}
writeln (' ДОБАВЛЕНИЕ ЗАПИСЕЙ В ФАЙЛ');
writeln;
write (' Введите имя файла ');
readln (filename);
assign (f1,filename);
reset (f1);
if not eof(f1) then begin
gg:=filesize(f1);
seek(f1,gg);
end;

clrscr;
writeln (' ВВОД ЗАПИСЕЙ');
writeln;
write (' Введите количество записей ');
readln (num);
for i:=1 to num do
begin
clrscr;
writeln;
writeln (' ЗАПИСЬ ',i);
with zap do
begin
write (' Фамилия И.О. ');
readln (name);
write (' № Группы ');
readln (number);
Writeln (' Успеваемость');
writeln (' Введите оценку ');
for j:= 1 to 5 do
begin
write (' №',j,' ');
readln (ball[j]);
end;

{Подсчет Среднего Балла}
sum:=0;
for j:=1 to 5 do
sum:=sum+ball[j];
srball:=sum/5;

end;

write(f1,zap);

end;
close(f1);
menu;
end; {процедура добавления записи в файл}{(конец 2 подпрограммы)}

procedure view; {вывод массива на экран}{процедура просмотра файла}
{(5 подпрограмма)}
begin
clrscr;
writeln (' ПРОСМОТР ФАЙЛА');
writeln;
write (' Введите имя файла ');
readln (filename);
assign (f1,filename);
reset (f1);
clrscr;
shapka;
while (not Eof(f1)) do
begin
read ******* (f1,zap); - Здесь возникает ошибка
with zap do
begin
write ('¦ ',name:23,' ¦ ');
write (number:10,' ¦ ');
for i:=1 to 5 do write(ball,' ');
write (' ',' ¦ ');
write (srball:6:2,' ¦');
writeln;
end;
end;
writeln('L=========================¦============'+
'¦==============¦==========-');
readkey;
menu;
end; {вывод массива на экран}{процедура просмотра файла}
{(конец 5 подпрограммы)}

procedure new; {процедура создания нового файла}
{(1 подпрограмма)}
begin
clrscr;
Writeln(' Введите имя файла');
Write(' ');
Readln(filename);
Assign(f1,filename);
Rewrite(f1);
Writeln('Файл с именем ',filename,' создан. Нажмите ENTER.');
readkey;
menu;
close(f1);
end;

procedure menu;
begin
clrscr;
writeln;
writeln;
writeln;
writeln;
writeln (' База данных ');
writeln;
writeln (' ------------------------------------');
writeln (' 1. Создание файла');
writeln (' 2. Добавление записи в файл');
writeln (' 3. Удаление указанной записи');
writeln (' 4. Корректировка указанной записи');
writeln (' 5. Просмотр файла');
writeln (' 6. Сортировка по возрастанию номера группы');
writeln (' 7. Вывод на дисплей при условии ср. балл >4.0');
writeln (' 8. Выход');
writeln (' ------------------------------------');
writeln;
write (' > ');
readln (sel);
case sel of
1:new;
2:read;
3:delete;
4:edit;
5:view;
6:sort;
7:display;
8:exit;
end;
end;


BEGIN
clrscr;
menu;
END.



В процедуре, которая под комментариями пятой считается, всё сделано довольно стандартно и вроде не должно появляться никаких ошибок, но вот что странно, на месте считывания с файла {там где ***} постоянно возникает ошибка 85, что пропущено ";". Причем не важно в какой части процедуры поставить этот read, как-будто паскаль специально его ищет и говорит об ошибке. Помогите пожалуйста, уже и не знаю что делать...
 К началу страницы 
+ Ответить 

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


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

 





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