Error: Illegal qualifier - Free Pascal
Формулировка задачи:
написал такой код:
Вот ,что пишет компилятор :
nem.pas(16,32) Error: Illegal qualifier
nem.pas(16,34) Fatal: Syntax error, ")" expected but "." found
nem.pas(0) Fatal: Compilation aborted
Что я делаю не так?
type
metk=(a,b);
st=record
mark:string;
fio:string;
nomr:string;
otm:metk;
end;
var i:integer;
tabl:array [1..10] of st;
f:file of st;
procedure zap(tabl:st;i:integer);
var
c:string;
begin
write('marka=');readln(tabl [i].mark);
write('fio=');readln(tabl [i].fio);
write('nomer=');readln(tabl [i].nomr);
write('otmetka=');
readln(c);
case c of
'yes':tabl[i].otm:=a;
'no' :tabl[i].otm:=b;
end;
begin
assign(f,'C:\text.txt');
rewrite(f);
i:=1;
repeat
writeln('заполните ',i,' строчку');
zap(tabl,i);
inc(i);
until i>5;
close(f);
reset(f);
write('end');
end.Решение задачи: «Error: Illegal qualifier»
textual
Листинг программы
type
metk=(a,b);
st=record
mark:string;
fio:string;
nomr:string;
otm:metk;
end;
mas=array [1..10] of st;
fail=file of st;
procedure zap(var tabl:mas;var n:integer;var f:fail);
var
i:integer;
c:char;
begin
repeat
write('Количество записей не более 10 n=');
readln(n);
until n in [1..10];
writeln('Введите данные:');
for i:=1 to n do
begin
writeln('Запись ',i);
write('marka=');readln(tabl[i].mark);
write('fio=');readln(tabl [i].fio);
write('nomer=');readln(tabl [i].nomr);
write('otmetka(y/n)=');readln(c);
case c of
'y':tabl[i].otm:=a;
'n':tabl[i].otm:=b;
end;
write(f,tabl[i]);
end;
end;
var n,i:integer;
tabl:mas;
f:fail;
begin
assign(f,'C:\text.txt');
rewrite(f);
Zap(tabl,n,f);
close(f);
reset(f);
write('end');
end.
Объяснение кода листинга программы
В данном коде на языке Free Pascal реализована процедура zap, которая отвечает за добавление записей в файл 'text.txt'.
- Тип данных metk представляет собой перечисление (a,b), где a и b - некоторые значения.
- Тип данных st - это запись, содержащая поля mark, fio, nomr и otm типа string, а также поле otm типа metk.
- Массив mas[1..10] содержит 10 записей типа st.
- Файл fail содержит записи типа st.
- Процедура zap запрашивает у пользователя количество записей для добавления (не более 10), затем запрашивает сами данные (mark, fio, nomr) и значение поля otm (y/n).
- В зависимости от введенного значения c, поле otm принимает значение a или b.
- Записи добавляются в файл 'text.txt'.
- В конце работы программы выводится сообщение 'end'.