Pascal – Podmínka CASE


Tento další díl programování v Pascalu bych rád věnoval podmínce CASE, je to velice podobné podmínce IF. První co by jsme si měli ukázat bude syntaxe a pak nějaký jednoduchý příklad. Aby tomu ale nebylo ihned konec, vysvětlím i příklad s funkcí náhodných čísel s využitím podmínky CASE.


Syntaxe:

case proměnná of
  1: //příkazy;
  2: //příkazy;
  3: //příkazy;
end;

Takto vypadá syntaxe, pokud v poli pro podmínku bude zadáno například x = 1 ,tak program vyvolá case 1: . Pokud by tam byla dvojka, vybral by v menu pro CASE dvojku. Je to primitivní.

Jak celá podmínka vypadá, ukážu na jednoduchém příkladu.

readln(volba);
  case volba of
  1: begin
        writeln('volba prvni');
     end;
  2: begin
        writeln('volba druha');
     end;
  3: begin
        writeln('volba treti');
     end;
  4: begin
        writeln('volba ctvrta');
     end;
  5: begin
        writeln('volba pata');
     end;
  else
     begin
        writeln('volba ELSE');
     end;
  end;

Uživatel zadává hodnotu do proměnné volba a program vybere dle zadání čísla určitou proměnnou a podle toho vypíše text. Je to stejné jako u podmínky IF ,ale měli by jsme přijít s programem  na náhodné číslo. Tentokrát, použijeme něco podobného jako v příkladu PASCAL – NÁHODNÉ ČÍSLO. Program už nebude jen vypisovat náhodné číslo,ale použijeme ho početním způsobem. Program bude vypisovat čísla pro násobení, dělení,sčítání a odčítání. Uživatel bude zadávat odpovědi a v závěru program vypíše statistiku správnosti příkladů. Vypíšu zde rovnou hotový kód s popisem, protože popis takového kódu krok po kroku by byl opravdu zdlouhavý.

Příklad:

Kód příkladu je delší, proto provedu vysvětlení již teď. Program má zaúkol náhodně vybírat z použitých početních operací (sčítání,odčítání,násobení). Poté náhodně přiřadit čísla dané operaci. Program sám provede výpočet příkladu a uloží si výsledek do proměnné C, poté vypíše znění příkladu a vyčká na zadání výsledku od uživatele. Odkáže dále na proceduru kontrola(), pomocí které přiřadí bod do správných výsledků či špatných. Pak už jen připíše proměnné priklad kolikátý příklad byl vypočítán a pokračuje, do doby dokud hodnota není vyšší než 9. Po vypočítání 10ti příkladů program vypíše statistiku úspěšnosti a ukončí program. Program využívá toho co již umíme z předchozích dní nebo zde článků na blogu. Vše potřebné naleznete zde a v případě nejasností komentujte tento příspěvek.

program pocitani;

var operace,spravne,spatne,priklad,a,b,c,vysledek:integer;

procedure kontrola();
  begin
    if (c = vysledek) then
    begin
      spravne := spravne + 1;
    end
    else
    begin
      spatne := spatne + 1;
    end;
  end;

begin
  writeln('Pocetni operace v konzoli');
  writeln('Stiskem klavesy ENTER spustite test...');
  write('--------------------------------------------');
  readln();
  randomize();
  while (priklad <= 9) do
  begin
   operace := random(3);
    case operace of
    0:
     begin
        a := random(150);
        b := random(150);
        c := a + b;
        write(a,' + ',b,' = ');
        readln(vysledek);
        priklad := priklad + 1;
        kontrola();
        writeln('****************************');
     end;
     1:
     begin
        a := random(150);
        b := random(150);
        c := a - b;
        write(a,' - ',b,' = ');
        readln(vysledek);
        priklad := priklad + 1;
        kontrola();
        writeln('****************************');
     end;
     2:
     begin
        a := random(11);
        b := random(11);
        c := a * b;
        write(a,' * ',b,' = ');
        readln(vysledek);
        priklad := priklad + 1;
        kontrola();
        writeln('****************************');
     end;
    end;
  end;
  writeln('---------------------------------------------------------------');
  writeln('Spravne zodpovezeno: ',spravne);
  writeln(' Spatne zodpovezeno: ',spatne);
  writeln('    Celkem prikladu: ',priklad);
  writeln('---------------------------------------------------------------');
  writeln('Stiskem klavesy ENTER bude program ukoncen...');
  readln();
end.
Příspěvek byl publikován v rubrice Pascal se štítky , , , , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>