VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
ALGORITMIZACE A PROGRAMOVÁNÍ Název tématického celku:
Metodický list č. 1
Algoritmus a jeho implementace počítačovým programem
Cíl: 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. Tématický celek je rozdělen do těchto dílčích témat: 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: • T.Hála: Pascal, Computer Press Praha 2002 nebo kapitoly s odpovídajícím obsahem v: • J.Drózd, R. Kryl: Začínáme s programováním, Grada Praha 1992 Po prostudování uvedené doporučené literatury byste měli: 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: • T.Hála: Pascal, Computer Press Praha 2002 nebo kapitoly s odpovídajícím obsahem v: • J.Drózd, R. Kryl: Začínáme s programováním, Grada Praha 1992 Po prostudování uvedené doporučené literatury byste měli:
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
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
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
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 2 Název tématického celku:
Základní prostředky programovacího jazyka Pascal Cíl: 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ů. Tématický celek je rozdělen do těchto dílčích témat: 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: • T.Hála: Pascal, Computer Press Praha 2002 nebo kapitoly s odpovídajícím obsahem v: • J.Drózd, R. Kryl: Začínáme s programováním, Grada Praha 1992 Po prostudování uvedené doporučené literatury byste měli: 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: • T.Hála: Pascal, Computer Press Praha 2002 nebo kapitoly s odpovídajícím obsahem v: • J.Drózd, R. Kryl: Začínáme s programováním, Grada Praha 1992 Po prostudování uvedené doporučené literatury byste měli:
3
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
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 Úlohy k procvičení: 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 ax2+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. Další úlohy k procvičení je možno nalézt například v: • J.Jančík, M.Kvoch: Sbírka úloh z jazyka Pascal, Kopp České Budějovice 2002 • P. Töpfer: Základy programování v úlohách, Scientia Praha 1997
4
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
ALGORITMIZACE A PROGRAMOVÁNÍ Název tématického celku:
Cíl:
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. Tématický celek je rozdělen do těchto dílčích témat: 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: • T.Hála: Pascal, Computer Press Praha 2002 nebo kapitoly s odpovídajícím obsahem v: • J.Drózd, R. Kryl: Začínáme s programováním, Grada Praha 1992 Po prostudování uvedené doporučené literatury byste měli:
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
Úlohy k procvičení: 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
Další úlohy k procvičení je možno nalézt například v: • J.Jančík, M.Kvoch: Sbírka úloh z jazyka Pascal, Kopp České Budějovice 2002 5
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
•
6
P. Töpfer: Základy programování v úlohách, Scientia Praha 1997
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 4 Název tématického celku:
Podprogramy v jazyce Pascal Cíl: 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í. Tématický celek je rozdělen do těchto dílčích témat: 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: • T.Hála: Pascal, Computer Press Praha 2002 nebo kapitoly s odpovídajícím obsahem v: • J.Drózd, R. Kryl: Začínáme s programováním, Grada Praha 1992 Po prostudování uvedené doporučené literatury byste měli: 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: • T.Hála: Pascal, Computer Press Praha 2002 nebo kapitoly s odpovídajícím obsahem v: • J.Drózd, R. Kryl: Začínáme s programováním, Grada Praha 1992
7
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
Po prostudování uvedené doporučené literatury byste měli: 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: • T.Hála: Pascal, Computer Press Praha 2002 nebo kapitoly s odpovídajícím obsahem v: • J.Drózd, R. Kryl: Začínáme s programováním, Grada Praha 1992 Po prostudování uvedené doporučené literatury byste měli: 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í. Úlohy k procvičení: 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) Další úlohy k procvičení je možno nalézt například v: • J.Jančík, M.Kvoch: Sbírka úloh z jazyka Pascal, Kopp České Budějovice 2002 • P. Töpfer: Základy programování v úlohách, Scientia Praha 1997
8
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 5 Název tématického celku:
Seznámení s prostředím Borland Pascal Cíl: 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. Tématický celek je rozdělen do těchto dílčích témat: 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 Úlohy k procvičení: • naprogramovat a v prostředí Borland Pascal odladit úlohy z metodických listů č.2 a 3 Další úlohy k procvičení je možno nalézt například v: • J.Jančík, M.Kvoch: Sbírka úloh z jazyka Pascal, Kopp České Budějovice 2002 • P. Töpfer: Základy programování v úlohách, Scientia Praha 1997
9
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 6 Název tématického celku:
Ladění programů v prostředí Borland Pascal Cíl: 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. Tématický celek je rozdělen do těchto dílčích témat: 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) Úlohy k procvičení: • naprogramovat a v prostředí Borland Pascal odladit úlohy z metodického listu č.4 Další úlohy k procvičení je možno nalézt například v: • J.Jančík, M.Kvoch: Sbírka úloh z jazyka Pascal, Kopp České Budějovice 2002 • P. Töpfer: Základy programování v úlohách, Scientia Praha 1997
10
VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s.
ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 7 a 8 Název tématického celku:
Od návrhu algoritmu k implementaci programu Cíl: 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. Tématický celek je rozdělen do těchto dílčích témat: 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
Úlohy k procvičení: 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,2128-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 Další úlohy k procvičení je možno nalézt například v: • J.Jančík, M.Kvoch: Sbírka úloh z jazyka Pascal, Kopp České Budějovice 2002 • P. Töpfer: Základy programování v úlohách, Scientia Praha 1997 11