Error: Illegal qualifier - Free Pascal

Узнай цену своей работы

Формулировка задачи:

написал такой код:
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.
Вот ,что пишет компилятор : nem.pas(16,32) Error: Illegal qualifier nem.pas(16,34) Fatal: Syntax error, ")" expected but "." found nem.pas(0) Fatal: Compilation aborted Что я делаю не так?

Решение задачи: «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'.

  1. Тип данных metk представляет собой перечисление (a,b), где a и b - некоторые значения.
  2. Тип данных st - это запись, содержащая поля mark, fio, nomr и otm типа string, а также поле otm типа metk.
  3. Массив mas[1..10] содержит 10 записей типа st.
  4. Файл fail содержит записи типа st.
  5. Процедура zap запрашивает у пользователя количество записей для добавления (не более 10), затем запрашивает сами данные (mark, fio, nomr) и значение поля otm (y/n).
  6. В зависимости от введенного значения c, поле otm принимает значение a или b.
  7. Записи добавляются в файл 'text.txt'.
  8. В конце работы программы выводится сообщение 'end'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы