Tohle hlásí (při průběžné kompilaci) error in statement (co s tím):
program akcies;
uses crt;
var kb, cedok, ba, csad, microsoft :integer;
account, mymoney :integer;
fr,sr,tr :integer;
pass :string;
ackb, acced, acba, acs, acmic :integer;
function password (x : string) : boolean;
begin
if x='root' then password:=true
else password:=false;
end;
begin
kb :=2000;
cedok :=890;
ba :=1300;
csad :=1700;
microsoft :=2400;
writeln ('Zadej heslo');
readln (pass);
if password (pass) then
begin
repeat
begin
fr :=random (2 )+1;
sr :=random (890)+1;
tr :=random (4)+1;
if fr=1 then begin
if (kb < 0) or (cedok < 0) or (ba < 0) or (csad < 0) or (microsoft < 0) then
begin
kb :=kb-(tr*sr);
cedok :=cedok-(tr*sr);
ba :=ba-(tr*sr);
csad :=csad-(tr*sr);
microsoft :=microsoft-(tr*sr);
end;
if fr=2 then begin
kb :=kb+(tr*sr);
cedok :=cedok+(tr*sr);
ba :=ba+(tr*sr);
csad :=csad+(tr*sr);
microsoft :=microsoft+(tr*sr);
end;
writeln ('Komercni banka ', kb);
writeln ('Cedok ', cedok);
writeln ('British Arways ', ba);
writeln ('CSAD ', csad);
writeln ('Microsoft ', microsoft);
readln (com);
if com='kb' then begin
writeln ('Chcete kupovat?');
readln (com);
if com='ano' then begin
writeln ('Kolik?');
readln (com);
if mymoney-com*kb>0 then begin
ackb := ackb+com
end;
else writeln ("Nemas dost penez");
end;
if com='ne' then begin
writeln ('Kolik?');
end;
end;
if com='cedok' then begin
writeln ('Chcete kupovat?');
readln (com);
if com='ano' then begin
end;
if com='ne' then begin
end;
end;
if com='ba' then begin
writeln ('Chcete kupovat?');
readln (com);
if com='ano' then begin
end;
if com='ne' then begin
end;
end;
if com='csad' then begin
end;
if com='microsoft' then begin
end;
end;
until com='exit';
end;
else writeln ('Zadal jsi spatne heslo');
end.
Fórum › Pascal
Error in statement
Chybu, kterou popisuješ, ti to určitě hází kvůli tomuhle středníku před else:
...
end;
else writeln ('Zadal jsi spatne heslo');
...
Až to opravíš a překladač se se za to místo dostane, možná ti vynadá ve stylu "; expected", "end expected" nebo "unexpected end of file", protože se mi zdá, že tady, jak jsem připsal ty otazníky, ti chybí jeden end:
...
if fr=1 then begin
if (kb < 0) or (cedok < 0) or (ba < 0) or (csad < 0) or (microsoft < 0) then
begin
kb :=kb-(tr*sr);
cedok :=cedok-(tr*sr);
ba :=ba-(tr*sr);
csad :=csad-(tr*sr);
microsoft :=microsoft-(tr*sr);
end;
????????
if fr=2 then begin
...
Pak tam nikde nevidím deklaraci proměnné Com a divím se, že ti to prošlo.
P.S.: příště prosím používej tlačítko "kód" v horní liště, aby se zdroják vypsal neproporcionálním písmem.
Moje stránka.
Ta verze před tím tam bylo chyb jak naseto, ale tohle nechápu.
Na řádce kde je until, tak to píše error in statement
program akcies;
uses crt;
var kb, cedok, ba, csad, microsoft :integer;
account, mymoney, comi :integer;
fr,sr,tr :integer;
pass,com :string;
ackb, acced, acba, acs, acmic :integer;
function password (x : string) : boolean;
begin
if x='root' then password:=true
else password:=false;
end;
begin
kb :=2000;
cedok :=890;
ba :=1300;
csad :=1700;
microsoft :=2400;
writeln ('Zadej heslo');
readln (pass);
if password (pass) then
begin
repeat
begin
fr :=random (2 )+1;
sr :=random (890)+1;
tr :=random (4)+1;
if fr=1 then begin
if (kb < 0) or (cedok < 0) or (ba < 0) or (csad < 0) or (microsoft < 0) then
begin
kb :=kb-(tr*sr);
cedok :=cedok-(tr*sr);
ba :=ba-(tr*sr);
csad :=csad-(tr*sr);
microsoft :=microsoft-(tr*sr);
end;
if fr=2 then begin
kb :=kb+(tr*sr);
cedok :=cedok+(tr*sr);
ba :=ba+(tr*sr);
csad :=csad+(tr*sr);
microsoft :=microsoft+(tr*sr);
end;
writeln ('Komercni banka ', kb);
writeln ('Cedok ', cedok);
writeln ('British Arways ', ba);
writeln ('CSAD ', csad);
writeln ('Microsoft ', microsoft);
readln (com);
if com='kb' then begin
writeln ('Chcete kupovat?');
readln (com);
if com='ano' then begin
writeln ('Kolik?');
readln (comi);
if mymoney-comi*kb>0 then begin
ackb := ackb+comi;
end
else writeln ('Nemas dost penez');
end;
if com='ne' then begin
writeln ('Kolik?');
end;
end;
if com='cedok' then begin
writeln ('Chcete kupovat?');
readln (com);
if com='ano' then begin
end;
if com='ne' then begin
end;
end;
if com='ba' then begin
writeln ('Chcete kupovat?');
readln (com);
if com='ano' then begin
end;
if com='ne' then begin
end;
end;
if com='csad' then begin
end;
if com='microsoft' then begin
end;
end;
until com='exit';
end;
else writeln ('Zadal jsi spatne heslo');
end.
Chyba je v tomhle úseku. Přebývá ti tam BEGIN pře podmínkou IF. Další chyba je v řádku pod until, kde mezi "end" a "else" přebývá středník.
if fr=1 then begin
if (kb < 0) or (cedok < 0) or (ba < 0) or (csad < 0) or (microsoft < 0) then
begin
kb :=kb-(tr*sr);
cedok :=cedok-(tr*sr);
ba :=ba-(tr*sr);
csad :=csad-(tr*sr);
microsoft :=microsoft-(tr*sr);
end;
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
No SQL statement available — založil dyžon
QT error: Error code 62097 — založil QtProgramming
Moderátoři diskuze