Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení se základními objekty programové implementace (proměnnými a konstantami) a jejich typy. 1. od úlohy (problému) k algoritmu a programu 2. jednoduché typy proměnných a konstant 1. dílčí téma: od úlohy (problému) k algoritmu a programu K prvnímu dílčímu tématu si přečtěte kapitoly 1 a 2 v: 1. Znát pojmy algoritmus (postup řešení) program (konkrétní implementace algoritmu) 2. Pochopit významový rozdíl mezi algoritmem a programem 2. dílčí téma: jednoduché typy proměnných a konstant K druhému dílčímu tématu si přečtěte kapitoly 3 a 4 v: 1. Znát pojmy konstanta, proměnná, identifikátor a jeho deklarace v programu číselné typy integer a real, typ char (znak), typ Boolean, a jejich realizace v paměti počítače 2. Umět napsat část záhlaví (programu v jazyce Pascal) obsahující deklarace konstant část záhlaví (programu v jazyce Pascal) obsahující deklarace proměnných 1
Způsob zakončení: Zápočet je udělován za účast na výuce. V případě absence na více než dvou přednáškách (řízených konzultacích) je zápočet udělován za zpracování zápočtové úlohy, která bude individuálně přidělena. Zkouška probíhá u počítače, každý student samostatně řeší zadané úlohy. Úkolem je zvolit pro každou úlohu správný algoritmus, naprogramovat ho v Pascalu a program odladit. Pracuje se v prostředí Borland Pascal 7.0 nebo Free Pascal. Po odladění musí student svůj program předvést, vysvětlit jeho funkci, případně být schopen ho jednoduše modifikovat. 2
Metodický list č. 2 Základní prostředky programovacího jazyka Pascal Základním cílem tohoto tematického celku je seznámení se základními výrazovými prostředky programovacího jazyka Pascal a použití těchto prostředků k psaní jednoduchých programů. 3. jednoduché a strukturované příkazy jazyka Pascal 4. vstupní a výstupní data 1. dílčí téma: jednoduché a strukturované příkazy jazyka Pascal K prvnímu dílčímu tématu si přečtěte kapitoly 5 až 9 v: 1. Znát pojmy jednoduchý příkaz, složený příkaz přiřazovací příkaz, podmíněný příkaz, cyklus 2. Umět použít výše uvedené typy příkazů v jednoduchém několikařádkovém programu 2. dílčí téma: vstupní a výstupní data K druhému dílčímu tématu si přečtěte kapitoly 5 až 9 v: 3
1. Znát pojmy standardní vstup, příkazy read a readln standardní výstup, příkazy write a writeln 2. Umět napsat krátký smysluplný program se vším všudy (tj. v odladitelné podobě), tedy program obsahující záhlaví (deklarace), vstup dat, vlastní výpočet i výstup 1. Vstup: posloupnost kladných celých čísel ukončená nulou. Výstup: minimum a maximum ze zadané posloupnosti čísel (ukončovací nula se nebere jako člen vstupní posloupnosti). 2. Vstup: kladné celé číslo n, které je nejvýše 30. Výstup: prvních n lichých čísel, každé číslo na samostatném řádku. 3. Vstup: kladné číslo h, které udává délku hrany krychlové nádrže na vodu (v metrech), a kladné číslo s, které udává denní spotřebu vody na zalévání zahrady. Výstup: na kolik dní zalévání nádrž postačuje? 4. Vstup: koeficienty a,b,c, kvadratické rovnice ax 2 +bx+c=0. Výstup: reálné kořeny dané rovnice, pokud existují. 5. Vytvořte program, který na obrazovku vytiskne přehlednou tabulku malé násobilky. 4
Metodický list č. 3 Složené datové struktury programovacího jazyka Pascal Základním cílem tohoto tematického celku je seznámení se třemi základními typy složených datových struktur programovacího jazyka Pascal a použití těchto datových typů v krátkých programech. 5. typ pole (array) 6. typ řetězec (string) 7. typ záznam (record) Ke všem dílčím tématům si přečtěte kapitoly 10 a 11 v: 3. Znát pojmy pole, položka pole, přístup k položce, vícerozměrné pole řetězec, standardní operace s řetězci záznam, položka záznamu, přístup k položce, tečková notace 4. Umět definovat výše uvedené typy v deklarační části programu použít výše uvedené typy datových struktur v jednoduchých několikařádkových programech 1. Vstup: matice reálných čísel řádu n x n (kde n je konstanta). Výstup: ANO pokud je matice symetrická (podle hlavní diagonály), NE v opačném případě. 2. Vstup: matice reálných čísel řádu n x n (kde n je konstanta). Výstup: Matice překlopená podle vedlejší diagonály. 3. Vstup: Dvě posloupnosti celých kladných čísel mezi 1 a 30, každá z nich ukončená nulou. Výstup: posloupnost čísel, které jsou v obou vstupních posloupnostech (pokud znáte datový typ množina, tak ho můžete použít) 4. Vstup: řetězec znaků Výstup: statistika výskytu písmen, číslic, a jiných znaků (tj. tři čísla udávající počet znaků ve vstupním řetězci, které patří do jednotlivých kategorií) 5. Vstup: řetězec znaků (výhradně z písmen) Výstup: vstupní řetězec v Morseovce 5
6
Metodický list č. 4 Podprogramy v jazyce Pascal Základním cílem tohoto tematického celku je seznámení s konceptem podprogramu, jakožto logicky samostatné části programu, která může být použita opakovaně. Důraz je kladen na pochopení práce s parametry podprogramu a různé způsoby jejich volání. 8. syntaxe procedur a funkcí v jazyce Pascal 9. parametry podprogramu a způsoby jejich volání 10. lokální platnost proměnných 1. dílčí téma: syntaxe procedur a funkcí v jazyce Pascal K prvnímu dílčímu tématu si přečtěte první část kapitoly 13 v: 5. Znát pojmy podprogram procedura a funkce v Pascalu a rozdíl mezi nimi 6. Umět napsat záhlaví procedury v Pascalském programu záhlaví funkce v Pascalském programu 2. dílčí téma: parametry podprogramu a způsoby jejich volání K druhému dílčímu tématu si přečtěte druhou část kapitoly 13 v: 7
3. Znát pojmy parametr podprogramu volání parametru hodnotou volání parametru odkazem 4. Umět napsat záhlaví a tělo jednoduché procedury či funkce, která volá parametr hodnotou záhlaví a tělo jednoduché procedury či funkce, která volá parametr odkazem 3. dílčí téma: lokální platnost proměnných K třetímu dílčímu tématu si přečtěte příslušný oddíl kapitoly 13 v: 5. Znát pojmy rozsah platnosti proměnné lokalita identifikátorů v podprogramu 6. Umět napsat program (včetně všech deklarací), který obsahuje podprogramy používající lokální proměnné a mající parametry s různými způsoby volání. 1. napsat procedury pro vstup čtvercové matice reálných čísel z klávesnice a pro vypsání matice na obrazovku 2. napsat procedury počítající součet a součin dvou čtvercových matic 3. napsat funkci, která vrací true pokud je daná matice regulární 4. napsat proceduru která vrátí řetězec znaků zapsaný pozpátku 5. napsat funkci která zjistí, zda je v daném řetězci znaků daný konkrétní znak a vrátí pozici prvního takového znaku nebo nulu pokud znak v řetězci není (bez použití standardní funkce Pos) 8
Metodický list č. 5 Seznámení s prostředím Borland Pascal Základním cílem tohoto tematického celku je seznámení s prostředím Borland Pascal pro tvorbu, ladění a spouštění programů psaných v jazyce Pascal. 11. ovládání integrovaného editoru 12. syntaktické ladění programu 13. sémantické ladění programu Ke všem dílčím tématům si přečtěte příslušné kapitoly v: manuál Borland Pascalu, nebo příslušné on-line nápovědy jakémkoli manuálu popisujícím ovládání programů v prostředí MS Windows Po prostudování uvedené doporučené literatury a praktickém cvičení na PC byste měli: Umět napsat v integrovaném editoru krátké zdrojové programy probírané na předchozích přednáškách spustit překladač a provést syntaktické odladění jednoduchých programů spustit překladačem vytvořený kód a odladit ho sémanticky naprogramovat a v prostředí Borland Pascal odladit úlohy z metodických listů č.2 a 3 9
Metodický list č. 6 Ladění programů v prostředí Borland Pascal Základním cílem tohoto tematického celku je naučit se používat prostředí Borland Pascal pro tvorbu, ladění a spouštění mírně netriviálních programů psaných v jazyce Pascal. 14. syntaktické ladění programu 15. sémantické ladění programu Ke všem dílčím tématům si přečtěte příslušné kapitoly v: manuál Borland Pascalu, nebo příslušné on-line nápovědy Po prostudování uvedené doporučené literatury a praktickém cvičení na PC byste měli: Umět provést syntaktické odladění mírně netriviálních programů (jejichž zdrojový kód přesahuje cca 10 řádků), tj. naučit se odhalovat i složitější zavlečené chyby provést sémantické odladění výše uvedených programů za použití pokročilejších ladících technik (krokování programu, sledování změn hodnot proměnných) naprogramovat a v prostředí Borland Pascal odladit úlohy z metodického listu č.4 10
Metodický list č. 7 a 8 Od návrhu algoritmu k implementaci programu Základním cílem tohoto tematického celku je kompletně vyřešit jeden mírně obtížný cvičný problém od analýzy problému, přes návrh algoritmu a jeho implementaci pomocí programu v jazyce Pascal, až po odladění napsaného programu a dosažení jeho plné funkčnosti. Na splnění tohoto úkolu předpokládáme práci řízenou vyučujícím v rozsahu 4 vyučovacích hodin v počítačové laboratoři. 16. analýza problému 17. návrh algoritmu na abstraktní úrovni (slovní popis) 18. implementace algoritmu Pascalským programem a jeho odladění K tomuto tématickému celku není třeba číst žádnou literaturu, jde o praktické cvičení, ve kterém budou použity dovednosti získané během předchozí výuky. Po absolvování tohoto praktického cvičení byste měli: Umět provést analýzu podobných mírně těžkých problémů navrhnout algoritmy na řešení takovýchto problémů implementovat navržené algoritmy pomocí programů v Pascalu odladit implementované programy 6. navrhněte způsob reprezentace komplexních čísel a napište podprogramy pro jejich zadávání a vypisování a pro základní aritmetické operace s kompl. čísly (+,-,*,\). 7. navrhněte způsob reprezentace velkých přirozených čísel, např. v rozsahu (0,2 128-1) a napište podprogramy pro stejné operace jako v příkladu č.1. 8. vytvořte program, který bude řešit soustavu n (lineárních) rovnic o n neznámých 9. vytvořte program, jehož vstupem je posloupnost čísel (platy zaměstnanců) a výstupem tabulka počtu jednotlivých mincí a bankovek, které jsou potřeba pro výplaty 10. vytvořte program (soubor procedur), který převádí arabská čísla na římská a naopak 11