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.
pondělí 7. června 2010
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
Následující ukázka vypisuje náhodná celá čísla z intervalu 0..1
pondělí 12. dubna 2010
Vývojové diagramy
úkoly:
- Vytvořte vývojový diagram popisující vaši ranní činnost.
- 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.
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
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
pondělí 1. března 2010
Hustě zapsaný program s menu a grafikou
Vo co de?
Úkol:
Úkol:
- Nejdřív namaluješ menu
- Pak se zeptáš, co BFUchce, aby se namalovalo
- Pak se to namaluje
- Pak se to zeptá jestli ještě jednou, pokud jo, tak menu...
- 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.
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:
Ú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.
Postup:
- Uložte si tenhle soubor (text viz níže) na svůj disk.
- 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).
- Spusťte pascalský program z této ukázky.
- Tento program
- otevře textový soubor "muj.txt"
- načte soubor "muj.txt"
- vypíše tento soubor na obrazovku
- po stisknutí klávesy skončí
- 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.
Práce se soubory I
Funkce | Význam |
assign(f: file, jmeno) | Přiřadí proměnné typu file jméno souboru |
reset(f: file) | Otevře soubor |
rewrite(f: file) | Vytvoří nový soubor (nebo přepíše starý se stejným jménem) |
append(f: text) | Otevře textový soubor a nastaví pozici na konec souboru |
close(f: file) | Ukončí práci se souborem |
Filesize(f: file) | Vrátí počet dat stejného typu jako soubor |
seek(f: file, pozice) | Přejde na pozici v souboru |
filepos(f: file) | Vrátí pozici v souboru |
rename(f: file, jmeno) | Přejmenuje soubor na zadané jméno |
erase(f: file) | Smaže soubor |
eof(f: text): boolean | Logická hodnota - je pozice na konci souboru? |
eoln(f: text): boolean | Logická hodnota - je pozice na konci řádku? |
readln(f: text, prom) | Načte řádek do textové proměnné |
read(f: file, prom) | Načte hodnotu do proměnné stejného typu jako soubor |
writeln(f: text, text) | Zapíše text do textového souboru |
write(f: file, prom) | Zapíše hodnotu stejného typu jako soubor |
pondělí 1. února 2010
Zvuk v Pascalu (pozor zvlášť ohavné)
Následující program vyluzuje kvílivé zvuky.
Nic moc na poslech.
Čím je užitečný?
Nic moc na poslech.
Čím je užitečný?
- Dokumentuje využití procedury volané hodnotami.
- Uvádí na scénu typ proměnné WORD.
úterý 26. ledna 2010
Volání procedury hodnotou: hodně základní info
Následující ukázka demonstruje, kterak volat proceduru hodnotou. Hodnoty jsou ta čísla v závorce za názvem procedury.
Pozor: Mohou to být čísla i proměnné! Název procedury je pak tvořen jejím jménem a seznamem proměnných. Ten je uveden v závorce.
Za seznamem proměnných je uveden jejich typ. Tedy něco jako integer, character a tak...:)
Pozor: Mohou to být čísla i proměnné! Název procedury je pak tvořen jejím jménem a seznamem proměnných. Ten je uveden v závorce.
Za seznamem proměnných je uveden jejich typ. Tedy něco jako integer, character a tak...:)
pondělí 18. ledna 2010
Volání procedury hodnotou
Proceduru nemusíme volat pouze jejím jménem, k jménu můžeme přidat i vstupní hodnoty, s kterými bude procedura pracovat. Hezky to ukazuje elegantní program z Pedagogické fakulty Jihočeské univerzity:
Písmenka pomocí procedur
Následující program namaluje svislou a vodorovnou čáru i obě šikmé čáry pomocí pseudografiky.
Voláme v něm procedury. Je to zdánlivě zbytečné. Jde ovšem o přípravu volání procedury hodnotou.
Pak bude moci z našeho programu zmizet vždy jedna z dvojice procedur "svisla1" + "svisla2" atd.
Každou proceduru zkrátka zavoláme hodnotami určujícími, kde má čára začínat a kde má končit...
See U later:)
Voláme v něm procedury. Je to zdánlivě zbytečné. Jde ovšem o přípravu volání procedury hodnotou.
Pak bude moci z našeho programu zmizet vždy jedna z dvojice procedur "svisla1" + "svisla2" atd.
Každou proceduru zkrátka zavoláme hodnotami určujícími, kde má čára začínat a kde má končit...
See U later:)
pondělí 4. ledna 2010
Pseudografika
Pseudografika je vcelku k ničemu.
Její jediný význam spočívá v tom, že se na ni pěkně pocvičí cykly a prvotní programátorské dovednosti.
Zásadní je tu příkaz gotoXY (cislo, cislo)
je to asi o tom, že se položí kurzor na místo zadané souřadnicemi X a Y a tam se pak píše příkazem write
Její jediný význam spočívá v tom, že se na ni pěkně pocvičí cykly a prvotní programátorské dovednosti.
Zásadní je tu příkaz gotoXY (cislo, cislo)
je to asi o tom, že se položí kurzor na místo zadané souřadnicemi X a Y a tam se pak píše příkazem write
Přihlásit se k odběru:
Příspěvky (Atom)