Turbo Pascal - 7. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Turbo Pascal - 7. lekceTurbo Pascal - 7. lekce

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

Turbo Pascal - 7. lekce

Google       Google       1. 12. 2005       43 364×

Proměnné a podmínky máme za sebou a nyní se podíváme, jak nějaký program nebo část programu zacyklovat.

Reklama
Reklama

Zacyklení programu nebo jeho části je stejně důležitá látka jako podmínky, protože se také použije skoro v každém větším programu a navíc nám může značně usnadnit práci.

Pascal rozlišuje podmínky trojího typu.

  • Cyklus se vstupní podmínkou
  • Cyklus s výstupní podmínkou
  • Cyklus s určeným počtem opakování
  • Cyklus se vstupní podmínkou

    Tento cyklus, jak už jsem zmínil na začátku předchozí lekce, se velmi podobá podmínce, ovšem řadí se mezi cykly.

    Cyklus zapisuje takto: WHILE podminka DO telo_cyklu

    While znamená dokud a Do dělej. Tělem cyklu rozumíme příkazy, které se mají vykonávat v cyklu. Uveďme si tedy malý příklad. Zadáme si proměnnou ,,a" a budeme cyklovat dokud ,,a" nenabyde hodnoty 10.

    
    ...
    a:=0;
    WHILE a<>10 DO
      begin
        writeln(a);
        a:=a+1;
      end;
    readkey;
    clrscr;
    write('Cyklus probehl pokracujeme');
    ...
    

    Možná vám bude chvíli trvat zvyknout si na podmínky u příkazu While, protože alespoň pro mě je to trochu obrácené. Pokud si příkaz přeložíme do češtiny, což je velmi dobrý způsob jak se naučit příkazy, tak by jsme to mohli chápat jako: Dokud se a nebude rovnat 10 dělej .... Tento cyklus nám v mnoha případech dokáže velmi zjednodušit zdrojový kód a jsou i ukázkové programy ve kterých je jeho použití přímo ideální ( viz. Domácí úkol )

    Cyklus s výstupní podmínkou

    Úkolem tohoto cyklu je provést tělo cyklu a na konci těla cyklu zkontrolovat podmínku, podle které se rozhodne, zda cyklus proběhne znovu a nebo se ukončí.

    Tento cyklus je zapisován pomocí složeného příkazu:

    Repeat
    ...
    Until podminka;

    Pokud si pozorně prohlídnete zápis příkazu, zjistíte dvě změny oproti jiným příkazům. Nejprve jste si všimli, že tělo příkazu není definováno složeným příkazem Begin End; . Je to proto, že Repeat je sám o sobě složený příkaz a proto zde nemusíte jiný složený příkaz používat. Druhou změnou, která souvisí s první je, že za slůvkem Repeat nepoužíváme středník, což je jako u příkazu Begin End; . Program pak může vypadat takto:

    
    ...
    write('Cyklus zacina');
    readln;
    clrscr;
    a:=1;
    Repeat
      writeln(a,' Opakovani');
      a:=a+1;
    Until a=10;
    readln;
    write('Cyklus skoncil pokracujeme...');
    ...
    

    V podmínce (za slůvkem until) mohou být výrazy jako v podmínce. Tzn. And,OR, nerovná se a další možnosti. Výjimkou je též, že cyklus skončí po stisku libovolné klávesy. Pro tuto funkci se používá příkaz Keypressed . Takový cyklus by vypadal například takto:

    
    ...
    write('Stopni si sve cislo');
      readln;
      clrscr;
      cislo:=0;
      Repeat
        clrscr;
        write('Nynejsi cislo je: ',cislo);
        cislo:=cislo+1;
        delay(200);
      until keypressed;
      readln;
      clrscr;
      write('Stopl/a sis cislo: ',cislo);
    ...
    

    Tento cyklus je alespoň pro mě nejrozšířenější a najde si nejvíce uplatnění.

    Cyklus s určeným počtem opakování

    Pokud potřebujeme provést cyklus s přesně stanoveným počtem opakovaní, jednou z možností je právě tato. Tento cyklus má dvě podoby proto se na ně podíváme.

    První podoba tohoto cyklu se zapisuje ve tvaru: FOR I:=DolniMez TO HorniMez DO Prikaz;

    Za sluvkem FOR se proměnné přiřadí počáteční hodnota, následuje slůvko TO a za ním se udá konečná hodnota, pak již následuje DO a příkaz cyklu. Na příkladu pochopíte asi jasněji:

    
    ...
    write('Nyni pobezi cyklus');
    readln;
    clrscr;
    FOR I:=1 TO 10 DO writeln('Ahoj svete');
    readln;
    write('Cyklus se ukoncil pokracujeme');
    ...
    

    Dojde tedy k cyklu a ten uvidi, že I je 1 a horni mez je 10. Znamená to tedy, že provede příkaz za slůvkem DO a automaticky zvýší I o jednotku. Potom je tedy I=2 a horní mez je 10. Opět se tedy provede příkaz za slůvkem DO. Takhle cyklus pokračuje dál dokud nedojde k číslu 11. Jakmile je I=11 je to větší než horní mez a proto se cyklus již nevykoná.

    Druhá podoba cyklu je vlastně stejná jen se zamění jedno slůvko a hodnoty Horni a Dolni mez.

    Zápis pak bude vypadat takto: FOR I:=HorniMez DOWNTO DolniMez DO prikaz;

    Průběh je stejný jako v prvním případě až na to že při vykonání cyklu se k I nepřičítá jednotka nýbrž se odečítá. Například:

    
    ...
    write('Nyni pobezi cyklus');
    readln;
    clrscr;
    FOR I:=100 TO 1 DO writeln('Ahoj svete');
    readln;
    write('Cyklus se ukoncil pokracujeme');
    ...
    

    Cyklus proběhne a odečte se jednotka. Cyklus tedy proběhne 100 krát

    Použití druhu cyklu v programu je každého volba. Některé cykly se lépe hodí pro ty programy, ale někde zas máte navýběr. Z mé nevelké praxe jsem používal nejvíce REPEAT a pak While. Ovšem snažím se vzpomenout , ale cyklus FOR jsem snad nikdy nepoužil.

    Domácí úkol

    Jelikož jsme dnes probrali hodně příkazů a u těchto příkazů je opravdu na každém člověku jaký zvolí bude takový volnější úkol. Udělejte mi hru ,,Hádej číslo." Jelikož ještě neumíme, aby počítač náhodně vybral číslo, které máte hádat stanovíme si, že hádané číslo bude 6. Chci od vás, aby jste naprogramovali tuto hru, kde správné číslo je 6 a hádat se bude v rozpětí od 0 do 10. Program bude pěkně graficky upraven. Tato úloha jde vyřešit alespoň třemi různými způsoby a je jen na vás, který zvolíte. Pokud tu jsou zkušenější programátoři mohou mi poslat i více řešení ;)

    ×Odeslání článku na tvůj Kindle

    Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
    Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

    E-mailová adresa (např. novak@kindle.com):

    TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

    Hlasování bylo ukončeno    
    0 hlasů
    Google
    Autor programuje v Pascalu.

    Nové články

    Obrázek ke článku Ericsson ConsumerLab Report: rozšířená realita je další úrovní gamingu

    Ericsson ConsumerLab Report: rozšířená realita je další úrovní gamingu

    Celkem 66 % uživatelů zajímá rozšířená realita v oblasti gamingu. Mezi nimi je i 35 % těch, kteří jinak hry nehrají.
    Pro téměř 50 % respondentů by bylo zajímavé zapojení virtuální objektů do reálného světa. Objekty by zůstaly tam, kde je při hře „umístili“.
    Až 43 % uživatelů láká využití rozšířené reality ve sportu

    Reklama
    Reklama
    Obrázek ke článku Instalace nejnovější verze Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached na Windows 10

    Instalace nejnovější verze Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached na Windows 10

    Buďte při vývoji efektivní! Pomocí tohoto návodu během chvíle vytvoříte ze svého počítače lokální webový server. Vyzbrojíte jej vším, co budete při práci potřebovat: Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached. Je to plná polní pro webové vývojáře s Windows 10. Navíc poradíme, jak mít na localhostu více projektů pomocí VirtualHost.

    Obrázek ke článku Do poskytovatele managed hostingových služeb vshosting~ vstupují zahraniční investoři

    Do poskytovatele managed hostingových služeb vshosting~ vstupují zahraniční investoři

    Po více než roce jednání do vshosting~ vstoupili 3 investiční skupiny z Německa: Pecunalta, BrainWeb Investment a Quines Capital. Jde o investiční skupiny, které mají účast na projektech jako PlusServer (největší managed provider v Německu a jeden z největších v Evropě), PLESK, cPanel, CloudLinux, GoDaddy (největší světový hostingový poskytovatel z USA), či Acronis, pomohou vshosting~ v jeho plánované mezinárodní expanzi na další zahraniční trhy. Ve vshosting~ nyní drží 75% podíl, zbylých 25 % zůstává zakladatelům vshosting~, kterými jsou Damir Špoljarič (CEO) a Jan Martinů (CTO).

    Obrázek ke článku Posuňte své znalosti IT na výrazně vyšší úroveň

    Posuňte své znalosti IT na výrazně vyšší úroveň

    Zájem o IT odborníky je v současnosti v tuzemsku i v zahraničí enormní a vedení firem si moc dobře uvědomuje, jak těžké je získat ty správné. I přesto, že je odborníků na trhu dlouhodobý nedostatek, stále platí, že část z nich je - a bude - placena výrazně lépe než ti ostatní. Proč tedy nebýt mezi nimi?

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