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