Mi lehet a baja? (PASCAL)
Az első IF-es sornál az első := helyett akar "then"-t iratni... HÜLYE EZ?
program elso;
uses crt;
var a, b, rn1, rn2 :integer;
bill : char;
begin
a:=0;
b:=0;
repeat
randomize;
rn1:=random(5)+1;
rn2:=random(5)+1;
writeln(rn1, '-' rn2);
readln(bill);
if rn1:=rn2 and bill:='a' then a:=a+1;
else if rn1<>rn2 and bill:='a' then a:=a-1;
else if rn1:=rn2 and bill:='l' then b:=b+1;
else if rn1<>rn2 and bill:='l' then b:=b-1;
until a:=20 or b:=20;
end.
Köszi előre is :)
Elég régen pascaloztam, de a hiba mindig meg van adva helyileg.
a := (legyen egyenlő) egy művelet, míg az = (egyenlő) egy vizsgálat. Ha a feltétel úgy szól hogy rn1 egyenlő rn2-vel, akkor ott nincs kettőspont.
Amit te írtál, így néz ki: HA rn1 legyen egyenlő r2-vel..., aminek nincs értelme.
Ezt írtad: if rn1:=rn2 and bill:='a' then a:=a+1;
És ez így helyes (elvileg, én is régen pascaloztam):
if "rn1=rn2 and bill=a" then a:=a+1;
De lehet hogy a " karakter valójában ' :) Már nem emlékszem pontosan. De ha AND vagy OR parancsot használsz, akkor "-be kell tenni.
"Az első IF-es sornál az első := helyett akar "then"-t iratni... HÜLYE EZ?"
Szintaktikus hiba itt a := értékadó művelet. Ez csak egy "mechanikus" kód szintaxis ellenőrző, ír ajánlást ami nem mindig releváns, nincs 50-es IQ-ja.
Szintaktikailag így helyes:
program elso;
uses crt;
var a, b, rn1, rn2 :integer;
bill : char;
begin
a:=0;
b:=0;
repeat
randomize;
rn1:=random(5)+1;
rn2:=random(5)+1;
writeln(rn1, '-',rn2);
readln(bill);
if (rn1=rn2) and (bill='a') then a:=a+1
else if (rn1<>rn2) and (bill='a') then a:=a-1
else if (rn1=rn2) and (bill='l') then b:=b+1
else if (rn1<>rn2) and (bill='l') then b:=b-1;
until (a=20) or (b=20);
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!