End. – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

End. – Pascal – Fórum – Programujte.comEnd. – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
sa54d
~ Anonymní uživatel
30 příspěvků
22. 3. 2007   #1
-
0
-

program subor;
uses crt;
var a,b,body:integer;
c:char;
hra:text;
procedure cislo;
begin
body:=0;
while a=6 do
begin
writeln('ake cislo si myslim?:');
readln(b);
case b of
6:begin
writeln('uhadli ste');
a:=6;
end;
else
begin
writeln('neuhadli ste hadajte este raz');a:=a+1;
body:=body+1;
end;
end;
end;
begin
writeln('dobry den');
writeln('spustit hru - stlacte:s');
writeln('ulozit skore - stlacte:o');
writeln('ukoncit hra - stlacte:q');
c:=readkey;
case c of
's':cislo;
'o':begin
assign(hra,'hra.txt');
{$I-}
Append(hra);
if IOResult<>0 then Rewrite(hra);
{$I+}
writeln(hra,body);
close(hra);
end;
'q':exit;
end;
end.

44 / 4 untitl~1.pas
Fatal: Syntax error, ; expected but . found
prelozil som si to tak:ocakavalo sa ; ale naslo sa .
lenze ked tam dam etse jeden end; pise to tiez
co mam robit?

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Jura
~ Anonymní uživatel
634 příspěvků
22. 3. 2007   #2
-
0
-

Nezkoumal jsem to, ale obvykle takova chyba znaci, ze ti nekde chybi end. A jak se tak divam, tak jsi neukoncil case nebo hlavni program - proste pred end. dopis jeste end;

Nahlásit jako SPAM
IP: ...–
sa54d
~ Anonymní uživatel
30 příspěvků
23. 3. 2007   #3
-
0
-

aha nemal som ukoncenu proceduru.ale teraz ked to spustim tak mi vypise:dobry den,pre novu hru stlacte.....
ale ked nieco stlacim dam enter a vypne sa mi to.co s tym?

Nahlásit jako SPAM
IP: ...–
retriwr0
Stálý člen
23. 3. 2007   #4
-
0
-

program dojde na konec a vypne se, protože ho nic 'nezastaví' - před end. dej prázdný readln



...
readln;
end.

Nahlásit jako SPAM
IP: ...–
You gotta do what you gotta do
Mircosoft+1
Věrný člen
23. 3. 2007   #5
-
0
-

Zmáčknu 's' (hra). Spustí se procedura Cislo. Ta začíná cyklem while a=6, který se neprovede ani jednou (na začátku programu je hodnota proměnné a nedefinovaná a nejspíš bude 0) a procedura skončí. Pak skončí příkaz case v hlavním programu (který není nijak zacyklen, takže po skončení hry nečekej, že se ti znovu objeví menu) a to je celé, pak už tam je end.

Jestli jsem to dobře pochopil, tak fatální chyby jsou:
1) V té proceduře má být podmínka while a<>6 (cyklus prováděj, dokud a není 6).
2) Na začátku té procedury nutně musíš přiřadit a:=0, jinak při příštím spuštění bude a=6 od minula a cyklus hned skončí.

Další drobná vylepšení:
3) Příkaz case v hlavním programu zabal do cyklu repeat ... until c='q'; a z case vyřaď poslední podmínku (tu s tím exitem) - bude zbytečná.
4) Proměnnou A deklaruj v procedure Cislo lokalne, bude to tak prehlednejsi.
5) Proměnná B je zbytečná (není nikde použita).
6) Je zbytečné používat jednotku CRT, program nepoužívá žádné její funkce.

Už to běhá?

Nahlásit jako SPAM
IP: ...–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
sa54d
~ Anonymní uživatel
30 příspěvků
23. 3. 2007   #6
-
0
-

uz to ide.case som nedal do cyklu ale dal som tam:
label skok;
promenna b je:
begin
writeln('ake cislo si myslim?:');
readln(b);
case b of

dakujem za ochotu.

Nahlásit jako SPAM
IP: ...–
retriwr0
Stálý člen
24. 3. 2007   #7
-
0
-

Mircosoft píše:#
#Je zbytečné používat jednotku CRT, program nepoužívá žádné její funkce.


A co třeba readkey?
Pokud se nepletu, tak je právě z unity crt

Nahlásit jako SPAM
IP: ...–
You gotta do what you gotta do
Mircosoft+1
Věrný člen
27. 3. 2007   #8
-
0
-

No jo, toho jsem si nevšiml :-]. Takže CRT jo.

Nahlásit jako SPAM
IP: ...–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Jan Sedlák0
Expert
9. 5. 2007   #9
-
0
-

A v jednotce crt je taky clrscr - příkaz pro vymazání obrazovky, to bys' tam taky mohl použít.

Nahlásit jako SPAM
IP: ...–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 28 hostů

Podobná vlákna

Prázdniny - in the end? — založil Tocimanko

Syntaxová chyba $end — založil Alex Candle

Front-end developer — založil Pixelko

Hledá se Front-end parťák! — založil Eva Neva

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý