pondělí 7. června 2010

Logická hra

Hra Kdo bere poslední, prohrál


 uses Crt;
 var i, bere, pocet:integer;
 begin
   Randomize;
       { Píše text v náhodných barvách }
     i:= (Random(5)+6);
     writeln('Mam', i,'sirek');
     writeln('Kolik beres Ty *1-2*');
     readln (bere);
     pocet:= i-bere;
     writeln('zbylo', pocet);
     if pocet mod 2 = 1 then bere := 1 else bere := 2;
     pocet:= i-bere;

     readln (bere);
 end.

Náhodná čísla v Pascalu

RANDOMIZE to zamíchá, RANDOM vybere náhodné číslo z intervalu 0..(to, co je v závorce)
Následující ukázka vypisuje náhodná celá čísla z intervalu 0..1

pondělí 12. dubna 2010

Vývojové diagramy


zdroj: http://cs.wikipedia.org/wiki/Vývojový_diagram

úkoly:

  1. Vytvořte vývojový diagram popisující vaši ranní činnost.
  2. Vytvořte vývojový diagram z některých předchozích programů.

Třídění, řazení, uspořádání... zkrátka sort

Třídění, řazení, uspořádání... zkrátka sort
Jeden z algoritmů je tzv. Probublávání (boublesort). 


princip boublesortu
Program prohledá všechna zadaná čísla, najde největší z nich a v každé fázi největší číslo (ze zbyvajicich) probublá až na konec (doprava). To dělá pořád dokola, až není co probublávat:)

Novou věcí zde je pojem POLE (v pascalštině array). Zde je použito jednorozměrné pole. Chápejme ho jako řadu čísel. Dvourozměrné pole si představme jako tabulku, kdy každé číslo je určeno souřadnicí X a souřadnicí Y. Třírozměrné pole si představme jako kvádr (souřadnice X, Y, Z). Čtyřrozměrné pole si raději nepředstavujme vůbec.

pondělí 22. března 2010

Týmová tvorba programu

Program řešící výpočet kořenů kvadratické rovnice.
Postup tvorby:
team leader vysvětlí problém, uvede dohodu o použitých proměnných
tým č. 1 píše proceduru na vkládání dat
tým č. 2 píše proceduru na výpočet diskriminantu
tým č. 3 píše proceduru na výpočet kořenů
tým č. 4 píše proceduru na zobrazení výsledků
tým č. 5 píše hlavičku programu včetně deklarace proměnných
tým č. 6 píše vlastní program
tým č. 7 ladí program, odstraňuje chyby

úterý 16. března 2010

Kudy dál?

  • algoritmy 
    • třídění (sort)
  • výpočty: 
    • vyznamenání / prospěl / neprospěl
    • kvadratická rovnice

Grafika: final cut

Program elegantně řešící grafiku

  • Menu
  • Procedury
  • Snadná modifikovatelnost


pondělí 1. března 2010

Hustě zapsaný program s menu a grafikou

Vo co de?
Úkol:
  1. Nejdřív namaluješ menu
  2. Pak se zeptáš, co BFUchce, aby se namalovalo
  3. Pak se to namaluje
  4. Pak se to zeptá jestli ještě jednou, pokud jo, tak menu...
Upozornění:
  • návrhy některých procedur jsou psány záměrně chybně, copy and paste tu stačit nebude
  • procedury je nutno seřadit tak, aby procedura volající proceduru, byla umístěna zásadně níže než procedura, která je volaná (v ukázce tomu tak není)


pondělí 15. února 2010

Opravdová grafika

Následující program využívá jednotku GRAPH. To jsou příkazy, které nebyly součástí původního Pascalu. Byly dopsány z pohodlnosti, protože ne každému se chce malovat čáru tak, že naprogramuje cyklus pokládající do řady za sebe bod po bodu. Jednodušší jistě je napsat něco jako LINE (souradnice zacatku, souradnice konce).
Tato ukázka namaluje 5 soustředných kružnic

pondělí 8. února 2010

Práce se soubory III

Nejjednodušší ukázka práce se soubory!
Postup:

  1. Uložte si tenhle soubor (text viz níže) na svůj disk.
  2. Do stejné složky k němu vytvořte textový soubor s názvem "muj.txt". Obsah tohoto textového souboru může být libovolný. Měl by však obsahovat několik řádků (zhruba 200 znaků či více).
  3. Spusťte pascalský program z této ukázky.
  4. Tento program 
    1. otevře textový soubor "muj.txt"
    2. načte soubor "muj.txt"
    3. vypíše tento soubor na obrazovku
    4. po stisknutí klávesy skončí
    5. zavře soubor "muj.txt"

Úkol:
Upravte tento program tak, aby vstupem byl textový soubor a výstupem byla melodie hraná pomocí SOUND.
Vstup bude tvořen dvojicemi číslic frekvence, délka tónu.