Pascal Cyklus While chyba

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Akrej
Level 5.5
Level 5.5
Příspěvky: 2999
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Pascal Cyklus While chyba

Příspěvekod Akrej » 29 dub 2014 20:51

Pracuji na takovem jednoduchem programu kde se vytvoři test potom se vrati člověk do menu a spusti test jenomže mi to nefunguje chcu tam doplnit cyklus while ale když ho tam tam tak mi jenom problikne cmd nebo to rozhodi celi program přidavam kod kdyby si někdo věděl rady tak diky mužete mi to tam klidně dopnit aby to bylo funkční bude jenom rad morduju se stim 20 minut

Kód: Vybrat vše

program Tester;

uses Crt;
var menu,volba:integer;
var ot1,ot2,ot3,ot4,ot5,odpo1,odpo2,odpo3,odpo4,odpo5,a,b,c,d,f:string;
begin
        writeln('Tester:');
     ClrScr;
     writeln('Vytvorit test [1]');
     writeln('Spustit test test [2]');
     readln(volba);
     readln();


     if (volba = 1) then
     begin
     writeln('Napis prvni otazku:  ');
     readln(ot1);
     writeln('Napis druhou otazku:  ');
     readln(ot2);
     writeln('Napis treti otazku:  ');
     readln(ot3);
     writeln('Napis cvrtou otazku:  ');
     readln(ot4);
     writeln('Napis patou otazku:  ');
     readln(ot5);
     clrscr;
     writeln('Napis spravnou odpoved na:', ot1);
     readln(odpo1);
      writeln('Napis spravnou odpoved na:', ot2);
     readln(odpo2);
      writeln('Napis spravnou odpoved na:', ot3);
     readln(odpo3);
      writeln('Napis spravnou odpoved na:', ot4);
     readln(odpo4);
      writeln('Napis spravnou odpoved na:',ot5);
     readln(odpo5);
     writeln('Ulozit test a vratit se do menu [3]');
     readln(menu);
     readln(volba);


     if (volba = 2) then
     begin
     write(ot1);
     read(a);
     write(ot2);
     read(b);
     write(ot3);
     read(c);
     write(ot4);
     read(d);
     write(ot5);
     read(f);
     end;


       end;
       end.
"Nejsem nerozumný. Jen nemám ten samý rozum jako vy."
Diogénes ze Sinopé
-------------------------------------
„Mějte dobrou náladu. Dobrá nálada vaše problémy sice nevyřeší, ale naštve tolik lidí kolem, že stojí za to si ji užít.“
Jan Werich
--------------------------------------
Snažím se psát bez chyb
-------------------------

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod faraon » 29 dub 2014 21:16

Cyklus s podmínkou na začátku:

Kód: Vybrat vše

while (podmínka)
  begin
    ...
  end;

Dokud platí podmínka, provádí se pořád dokola ...
Z toho vyplývá, že pokud při vstupu do cyklu podmínka neplatí, neprovede se ani jednou!

Opravdu to chceš udělat tak, že volba 2 je vnořená ve volbě 1?

Kód: Vybrat vše

if (volba = 1) then
  begin
    ...
    readln(menu);
    readln(volba);

    if (volba = 2) then
      begin
        ...
      end;
  end;

Sice to není nejlepší způsob jak udělat nějaké vícenásobné větvení, ale neměly by ležet spíš za sebou?
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Akrej
Level 5.5
Level 5.5
Příspěvky: 2999
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod Akrej » 30 dub 2014 17:38

I když tma dam cyklus while stale jenom problikne cmd
přidavam upraveny kod něco jsem i přidal doporučuji vyzkoušet

Kód: Vybrat vše

program Tester;

uses Crt;
var volba:integer;
var ot1,ot2,ot3,ot4,ot5,odpo1,odpo2,odpo3,odpo4,odpo5,a,b,c,d,f:string;
begin

        writeln('Tester:');
       readln();
     ClrScr;
     writeln('Vytvorit test [1]');
     writeln('Spustit test test [2]');
     readln(volba);

     if (volba = 1) then
     begin
     writeln('Napis prvni otazku:  ');
     readln(ot1);
     writeln('Napis druhou otazku:  ');
     readln(ot2);
     writeln('Napis treti otazku:  ');
     readln(ot3);
     writeln('Napis cvrtou otazku:  ');
     readln(ot4);
     writeln('Napis patou otazku:  ');
     readln(ot5);
     clrscr;
     writeln('Napis spravnou odpoved na:', ot1);
     readln(odpo1);
      writeln('Napis spravnou odpoved na:', ot2);
     readln(odpo2);
      writeln('Napis spravnou odpoved na:', ot3);
     readln(odpo3);
      writeln('Napis spravnou odpoved na:', ot4);
     readln(odpo4);
      writeln('Napis spravnou odpoved na:',ot5);
     readln(odpo5);
     writeln('Ulozit test a vratit se do menu [3]');
     readln(volba);

      if (volba = 3) then
     begin
          ClrScr;
          writeln('Vytvorit test [1]');
     writeln('Spustit test test [2]');
     readln(volba);
     end
     else
          writeln('Program bude ukoncen');





     end;
     if (volba = 2) then
     begin
     writeln(ot1);
     readln(a);
     writeln(ot2);
     readln(b);
     writeln(ot3);
     readln(c);
     writeln(ot4);
     readln(d);
     writeln(ot5);
     readln(f);
     end;


     if (odpo1 = a) then
      begin
     writeln('Spravne');
     end
     else
      begin
      writeln('Spatne');

           end;



       end.
"Nejsem nerozumný. Jen nemám ten samý rozum jako vy."
Diogénes ze Sinopé
-------------------------------------
„Mějte dobrou náladu. Dobrá nálada vaše problémy sice nevyřeší, ale naštve tolik lidí kolem, že stojí za to si ji užít.“
Jan Werich
--------------------------------------
Snažím se psát bez chyb
-------------------------

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod faraon » 30 dub 2014 17:53

Je to nějaké zmatené, nevím co to přesně má ten program dělat.

Zkus si ze všeho nejdřív udělat ten cyklus while, který poběží dokud nezadáš třeba číslo nebo písmeno, které ho má ukončit. Když zadáš něco jiného, zeptá se znova, a tak pořád dokola... A nezapomeň před začátkem nastavit řídící proměnnou na nějakou vhodnou hodnotu!
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Akrej
Level 5.5
Level 5.5
Příspěvky: 2999
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod Akrej » 30 dub 2014 18:18

v tom programu si na začatku v menu vybereš jestli chceš udělat test nebo spustit test 1. si to vytvořiš na konci chcu aby tě to vratilo do menu a mohl si test spustit + ti to ještě ukaže jestli to máš dobre nebo ne u každe otazky
"Nejsem nerozumný. Jen nemám ten samý rozum jako vy."
Diogénes ze Sinopé
-------------------------------------
„Mějte dobrou náladu. Dobrá nálada vaše problémy sice nevyřeší, ale naštve tolik lidí kolem, že stojí za to si ji užít.“
Jan Werich
--------------------------------------
Snažím se psát bez chyb
-------------------------

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod faraon » 30 dub 2014 18:38

Píšu to z hlavy, takže neručím za chyby:

Kód: Vybrat vše

program Menu;

var
  volba:integer;
  konec:boolean;

begin
  konec:=false;

  while (konec=false) do
    begin
      writeln('Menu:');
      writeln('1 - ABC');
      writeln('2 - XYZ');
      writeln('3 - konec');
      write('volba: ');
      readln(volba);

      if volba=1 then writeln('ABC');

      if volba=2 then writeln('XYZ');

      if volba=3 then konec:=true;
    end;

  readln;
end.

To větvení by se dalo vylepšit pomocí else, takže by se zjistila i chybná volba, která není v nabídce, to třeba někdy příště.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Akrej
Level 5.5
Level 5.5
Příspěvky: 2999
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod Akrej » 30 dub 2014 20:45

no zajimave akorat se po každe s opakuje menu když zvolim 1 tak to napiše ABC ale vyskočí menu
"Nejsem nerozumný. Jen nemám ten samý rozum jako vy."
Diogénes ze Sinopé
-------------------------------------
„Mějte dobrou náladu. Dobrá nálada vaše problémy sice nevyřeší, ale naštve tolik lidí kolem, že stojí za to si ji užít.“
Jan Werich
--------------------------------------
Snažím se psát bez chyb
-------------------------

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod faraon » 01 kvě 2014 08:55

Akrej píše:na konci chcu aby tě to vratilo do menu a mohl si test spustit

Však tak to má být, ne? Aspoň jsi to tak popsal ;-)

Podstatný je ten cyklus, a jeho ukončení. Co se bude dít uvnitř něj je jen na tobě...
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Akrej
Level 5.5
Level 5.5
Příspěvky: 2999
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod Akrej » 01 kvě 2014 12:11

no ja chcu any to neskočilo hned ale po entru nebo aby to napsalo tak jsem to myslel kdybys to vyzkoušel ten muj kod tak bych pochopil

--- Doplnění předchozího příspěvku (01 Kvě 2014 13:01) ---

Problem s menu vyřešen ale tet mam problem to že chcu aby mi to pokaždé odpovědi napsalo jestli je dobře nebo ne

Kód: Vybrat vše

program Tester;

uses Crt;
var volba:integer;
var ot1,ot2,ot3,ot4,ot5,odpo1,odpo2,odpo3,odpo4,odpo5,a,b,c,d,f:string;
begin

        writeln('Tester:');
       readln();
     ClrScr;
     writeln('Vytvorit test [1]');
     writeln('Spustit test test [2]');
     readln(volba);

     if (volba = 1) then
     begin
      ClrScr;
     writeln('Napis prvni otazku:  ');
     readln(ot1);
     writeln('Napis druhou otazku:  ');
     readln(ot2);
     writeln('Napis treti otazku:  ');
     readln(ot3);
     writeln('Napis cvrtou otazku:  ');
     readln(ot4);
     writeln('Napis patou otazku:  ');
     readln(ot5);
     clrscr;
     writeln('Napis spravnou odpoved na:', ot1);
     readln(odpo1);
      writeln('Napis spravnou odpoved na:', ot2);
     readln(odpo2);
      writeln('Napis spravnou odpoved na:', ot3);
     readln(odpo3);
      writeln('Napis spravnou odpoved na:', ot4);
     readln(odpo4);
      writeln('Napis spravnou odpoved na:',ot5);
     readln(odpo5);
     writeln('Ulozit test a vratit se do menu [3]');
     readln(volba);

      if (volba = 3) then
     begin
          ClrScr;
          writeln('Vytvorit test [1]');
     writeln('Spustit test test [2]');
     readln(volba);
     end
     else
          writeln('Program bude ukoncen');





     end;
     if (volba = 2) then
     begin
      ClrScr;
     writeln(ot1);
     readln(a);
      writeln('-----------------------');
     writeln(ot2);
     readln(b);
     writeln('-----------------------');
     writeln(ot3);
     readln(c);
     writeln('-----------------------');
     writeln(ot4);
     readln(d);
     writeln('-----------------------');
     writeln(ot5);
     readln(f);
     writeln('-----------------------');
     end;


     if (a = odpo1) then
   begin
   writeln('je spravne');
   readln();
   end
else
   begin
   writeln('neni spravne');
   readln();
   
     if (odpo2 = b) then
   begin
   writeln('je spravne');
   readln();
   end
else
   begin
   writeln('neni spravne');
   readln();
   
     if (odpo3 = c) then
   begin
   writeln('je spravne');
   readln();
   end
else
   begin
   writeln('neni spravne');
   readln();
   
     if (odpo4 = d) then
   begin
   writeln('je spravne');
   readln();
   end
else
   begin
   writeln('neni spravne');
   readln();
   end;
   
     if (odpo5 = f) then
   begin
   writeln('je spravne');
   readln();
   end
else
   begin
   writeln('neni spravne');
   readln();

   writeln('Test dokoncen');
   writeln('[EXIT] = Enter');
   readln();

   end;
   end;
   end;
   end;



       end.


Spust si jeste ten vysledny exe soubor prosimte aby lepe mohl konstatovat problem
http://leteckaposta.cz/243163135 (radši jsem to hodil na leteckou postu)
"Nejsem nerozumný. Jen nemám ten samý rozum jako vy."
Diogénes ze Sinopé
-------------------------------------
„Mějte dobrou náladu. Dobrá nálada vaše problémy sice nevyřeší, ale naštve tolik lidí kolem, že stojí za to si ji užít.“
Jan Werich
--------------------------------------
Snažím se psát bez chyb
-------------------------

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod faraon » 01 kvě 2014 21:18

Spustit EXE z nějakého cizího zdroje? A co jestli máš počítač zavirovaný? :evil:
Kromě toho můj Linux žádné EXE nespouští, tady se používá ELF!

Už jsem si ten tvůj zdroják prohlédl, a měl bys zapracovat na odsazování. Když jsem si to srovnal podle begin a end, tak jsem na tu chybu přišel hned, ještě než jsem došel na konec kódu. Ty vyhodnocuješ odpovědi postupně, ale každou další odpověď ověřuješ jen pokud byla předchozí nesprávně! Zkus přemístit pár end tam kam patří, a uvidíš co se bude dít.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Akrej
Level 5.5
Level 5.5
Příspěvky: 2999
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod Akrej » 01 kvě 2014 21:57

ok pc zavirovany nemam použivam aviru ale přece v linuxu jde spustit exe pomoci wine.
Ok zkontroluji kod
"Nejsem nerozumný. Jen nemám ten samý rozum jako vy."
Diogénes ze Sinopé
-------------------------------------
„Mějte dobrou náladu. Dobrá nálada vaše problémy sice nevyřeší, ale naštve tolik lidí kolem, že stojí za to si ji užít.“
Jan Werich
--------------------------------------
Snažím se psát bez chyb
-------------------------

Uživatelský avatar
Akrej
Level 5.5
Level 5.5
Příspěvky: 2999
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Pascal Cyklus While chyba

Příspěvekod Akrej » 02 kvě 2014 21:15

pro změnu mam chybu v tomhle řadku

Kód: Vybrat vše

if (volba = 2) then


ja už bych byl rad kdyby to fungovalo normalně
"Nejsem nerozumný. Jen nemám ten samý rozum jako vy."
Diogénes ze Sinopé
-------------------------------------
„Mějte dobrou náladu. Dobrá nálada vaše problémy sice nevyřeší, ale naštve tolik lidí kolem, že stojí za to si ji užít.“
Jan Werich
--------------------------------------
Snažím se psát bez chyb
-------------------------


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Chyba CPU na desce
    od petan320 » 24 bře 2025 15:29 » v Problémy s hardwarem
    16
    7668
    od petr22 Zobrazit poslední příspěvek
    02 dub 2025 21:50
  • Chyba hardware. Příloha(y)
    od Steage7717 » 10 lis 2024 16:29 » v Problémy s hardwarem
    4
    3267
    od Steage7717 Zobrazit poslední příspěvek
    12 lis 2024 18:49
  • Sqlite - systémová chyba Příloha(y)
    od cindy the skull » 27 úno 2025 11:59 » v Vše ostatní (sw)
    6
    10182
    od atari Zobrazit poslední příspěvek
    16 bře 2025 11:11
  • Chyba příkazový řádek Příloha(y)
    od zik9 » 05 čer 2025 11:24 » v Windows 11, 10, 8...
    4
    1145
    od zik9 Zobrazit poslední příspěvek
    12 čer 2025 15:33
  • prohližeč událostí id 1796 chyba Příloha(y)
    od walderan » 01 dub 2025 15:58 » v Problémy s hardwarem
    9
    3947
    od walderan Zobrazit poslední příspěvek
    04 dub 2025 15:42

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů