Pascal 语法错误'';预期但';直到';建立

Pascal 语法错误'';预期但';直到';建立,pascal,Pascal,我的Pascal代码有问题。 有一些错误,我不知道在哪里 program GTA6; uses Crt; var obraz, x, mampistoli, mamnuz: Integer; begin clrscr; randomize; obraz := 1; repeat clrscr; if obraz = 1 then begin writeln('Je 9:00 rano. Probudis se ve svem by

我的Pascal代码有问题。 有一些错误,我不知道在哪里

program GTA6;

uses
  Crt;

var
  obraz, x, mampistoli, mamnuz: Integer;
begin
  clrscr;
  randomize;
  obraz := 1;

  repeat
    clrscr;
    if obraz = 1 then
    begin
      writeln('Je 9:00 rano. Probudis se ve svem byte. Nekdo ti zvoni na dvere. Pujdes otevrit(2) nebo budes zvonek ignorovat(3)?');
      readln(obraz);
      if (obraz <> 2) and (obraz <> 3) then
        obraz := 1;
    end
    else
    if obraz = 2 then
    begin
      writeln('Otevres dvere a jsou tam dva dvoumetrovy plesaty chlapi s pistolema v ruce. Prej dluzis jejich sefoj 200 000 Kc a chce je vratit do 19:00 jinak te prijdou zabit.');
      writeln('  Sahnout po pistoli(4), nedelat nic (5)');
      readln(obraz);
      if (obraz <> 2) and (obraz <> 3) and (obraz <> 4) and (obraz<> 5) then
        obraz := 2;
    end
    else
    if obraz = 5 then
    begin
      if mampistoli <> 1 then
      begin
        writeln('Odesli. Ty zjistis, ze nemas 200 000.');
        writeln('vzit si pistoli(1), nebo si vzit nuz(2)');
        readln(x);
        if x = 1 then
          mampistoli := 1;
        if x = 2 then
          mamnuz := 1;
      end;
      writeln('Takhle narychlo tolik penez nesezenes...budes muset udelat banku, nebo tak neco.');
      writeln('Vyloupit banku (6), trafiku (7), vykr st auto (8)');
      readln(obraz);
      if (obraz <> 6) and (obraz <> 7) and (obraz <> 8) then
        obraz := 5;
    end
    else
    if obraz = 6 then
    begin
      if mampistoli = 1 then
      begin
        writeln('Rozhodl jsi se vyloupit banku s pistoli.');
        writeln('Hlidac videl tvoji zbran a vystrelil po tobe!');
        x := random(100);
        if x < 50 then
          writeln('Trefil te primo do hlavy!');
        writeln('Zemrel jsi!');
        obraz := 0;
      end;
    until obraz = 0;

  writeln('KONEC HRY');
  if x > 50 then
    writeln('Netrefil se!');
  readln;
end.
程序GTA6;
使用
阴极射线管;
变量
obraz,x,mampostoli,mamnuz:整数;
开始
clrsc;
随机化;
obraz:=1;
重复
clrsc;
如果obraz=1,则
开始
书面形式('Je 9:00 rano.Probudis se ve svem byte.Nekdo ti zvoni na dvere.Pujdes otevrit(2)nebo budes zvonek ignorovat(3)?);
readln(obraz);
如果(obraz 2)和(obraz 3),则
obraz:=1;
结束
其他的
如果obraz=2,则
开始
书面形式(“Otevres dve a jsou tam dva dva dva DVO METROVY plesaty chlapi s pistolema v ruce.Prej dluzis jejich sefoj 200000 Kc a chce je vratit do 19:00 ZINAK te prijdou zabit.”);
书面语('Sahnout po pistoli(4),nedelat nic(5)';
readln(obraz);
如果(obraz 2)和(obraz 3)以及(obraz 4)和(obraz 5),则
obraz:=2;
结束
其他的
如果obraz=5,则
开始
如果我是1,那么
开始
书面形式(“Odesli.Ty zjistis,ze nemas 200000”);
书面形式(“vzit si pistoli(1),nebo si vzit nuz(2)”;
readln(x);
如果x=1,则
mampostoli:=1;
如果x=2,则
mamnuz:=1;
结束;
书面形式(“纳里奇洛·托利克·佩内兹·内塞泽内斯……班库博物馆,内波·塔克·内科”);
书面形式(“Vyloupit banku(6家)、trafiku(7家)、vykr st auto(8家)”;
readln(obraz);
如果(obraz 6)和(obraz 7)和(obraz 8),则
obraz:=5;
结束
其他的
如果obraz=6,则
开始
如果i=1,则
开始
书面形式(“Rozhodl jsi se vyloupit banku s pistoli”);
书面形式(“Hlidac videl tvoji zbran a vystrelil po tobe!”);
x:=随机(100);
如果x<50,则
书面语(“Trefil te primo do hlavy!”);
writeln('Zemrel jsi!');
obraz:=0;
结束;
直到obraz=0;
书面形式(“KONEC HRY”);
如果x>50,则
writeln('Netrefil se!');
readln;
结束。

问题在哪里?

添加一个
结束
语句之前,直到
语句。

您缺少
结尾if
语句的code>

在代码块开头有以下两个
if
语句:

end else if obraz=6 then begin
  if mampistoli=1 then begin
但只有一个
end以结束它们

如果仔细缩进代码,则更容易发现类似这样的问题。

重复
repeat
...
    end else if obraz=6 then
    begin
        if mampistoli=1 then 
        begin
            writeln('Rozhodl jsi se vyloupit banku s pistoli.');
        writeln('Hlidac videl tvoji zbran a vystrelil po tobe!');
        x:=random(100);
        if x< 50 then writeln('Trefil te primo do hlavy!');
            writeln('Zemrel jsi!');
        obraz:=0;
        end;
    END; <---
until obraz=0;
... 如果obraz=6,则结束else 开始 如果i=1,则 开始 书面形式(“Rozhodl jsi se vyloupit banku s pistoli”); 书面形式(“Hlidac videl tvoji zbran a vystrelil po tobe!”); x:=随机(100); 如果x<50,则写入('Trefil te primo do hlavy!'); writeln('Zemrel jsi!'); obraz:=0; 结束;
结束;请在要求其他人查看代码时格式化代码。编辑你的帖子,去掉所有的空白,并缩进,以便阅读。试着学习如何使用
case
语句。它将简化您的意大利面代码。波多维杰·泽洛夫纳瓦特·科德——从乌罗夫尼开始结束。缩进是编程的基础,特别是在pascal中。:D你是对的-我做了这个“错误的缩进”只是为了找到错误的地方。我希望现在一切都好:)