Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
3903/8050
Tato stránka slouží jako podpora k mé výuce jazyka Pascal. Najdete u několik málo řešených příkladů.
Programovací jazyk Pascal se u nás již nevyučuje. (Věnujeme se programovacímu jazyku Python. →) Tato stránka tedy již není aktualizována …
Domácí úkoly jsou dobrovolné. Jejich řešitelům můžu slíbit, že je použiji při zkoušení. Pokud máte k řešení úkolů jakékoli dotazy, kontaktujte mě nejlépe osobně nebo pomocí elektronické pošty. Pokud to bude jen trochu možné, slibuji, že se vám budu věnovat.
Pro psaní zdrojových kódů doporučuji textový editor Vim nebo Emacs. Uživatelům M$ Windows se může hodit Dev-Pascal (rovnou stáhnout) nebo PSPad.
Pro kompilaci používám a doporučuji multiplatformní překladač Free Pascal. Pokud prahnete po nějakém IDE, tak Free Pascal oplývá podobným rozhraním jako stařičký Turbo Pascal 7. Na Free Pascalu je založen také projekt Lazarus, který se snaží být Open Source alternativou k Delphi.
Myslím, že pro potřeby naší výuky je nejvhodnější Lazarus. Od verze 0.9.28 je opravdu dobře použitelný a osobně bych mu dal přednost i před Delphi 7, které jsou už postarší a nelze je provozovat (prý) na Windows Vista. Nejsou zde problémy s žádnou licencí ani registrací a navíc je multiplatformní.
Vynikající publikací je kniha Pavla Satrapy Pascal pro zelenáče. Vaší pozornosti bych také rád doporučil vynikající skriptum Karla Müllera, Výpočetní technika a programování, které lze stáhnout z jsoft.web2001.cz. [ Stáhnou skriptum Výpočetní technika a programování (2,1 MB)]
Vytvořte program, sloužící pro výpočet kvadratické rovnice.
Vytvořte program, krerý si vyžádá rok a měsíc vašeho narození a podle nich určí, v kterém ročním období jste narozen, a zda jste mladý nebo starý.
Příklad
řešení
Příklad řešení
podruhé
Malá ukázka použítí cyklů FOR, WHILE a REPEAT
Napište program, který realizuje funkci ex
. Využijte přitom nekonečnou řadu:
Napište program, který vás vyzve k zadání řetězce znaků, a poté vypíše četnost výskytu jednotlivých znaků. Pro jednoduchost nerozlišujte velikosti písmen a uvažujte jen znaky A až Z.
Napište program, který po zadání souřadnic dvou nebo více bodů v rovině spočítá délku úsečky či lomené křivky, která těmito body prochází.
Načtěte ze souboru matici čísel, představující mapu krajiny. Každé číslo udává nadmořskou výšku (dále nv). Na obrazovku vypište procentuální zastoupení moří (nv=0), nížin (nv<10) a hor (nv≥10). Vypište souřadnice nejvyššího bodu na mapě. Ošetřete program pro případ, že nejvyšších bodů je na mapě více.
soubor.txt, Příklad řešení
Načítání matice čísel z textového
souboru
Napište funkci a proceduru pro výpočet n-té mocniny čísla. Proceduru a funkci definujte v samostatné jednotce.
Příklad řešení: hlavní program, připojená jednotka
Vyzkoušejte si volání dvou shodně definovaných procedur nebo funkcí, v jejichž těle budete měnit hodnoty globálních proměnných. Jednou se na proměnnou odkazujte její hodnotou a podruhé odkazem.
Tento příklad má demonstrovat jak lze použít funkci, jako parametr funkce. Typicky se tento postup používá v situacích, kdy potřebujeme několik podprogramů, které jsou naprosto schodné a liší se pouze voláním jedné funkce, procedury , kritériem výběru atp. Bylo by pracné a hlavně velice náchylné k chybám, kdyby se všechny kopie podprogramu měly udržovat stejné. Proto se podprogram vytvoří jeden a pomocí parametru se mu řekne, co přesně má dělat.
V našem případě tiskneme tabulku goniometrické funkce. Tabulka vypadá vždy stejně, ale goniometrická funkce je pokaždé jiná. Proto se odkaz na konkrétní goniometrickou funkci předává v parametru. V příkladu je uvedena konstrukce se @, která funguje v Delphi a ve FreePascalu -- v TurboPascalu ji není možné použít.
Do samostatné jednotky implementujte funkci, která vrátí TRUE, pokud jí bude jako argument předáno prvočíslo menší než 1000. S výhodou můžete použít funkce mod, div a exit. Jednotku pojmenujte prvocisla_unit.pas a funkci pojmenujte prvocislo.
Příklad práce s
ukazateli
Příklad implementace
jednosměrného seznamu
Vytvořte aplikaci, která po zadání souřadnic tří bodů v rovině vypíše na obrazovku délky stran, velikosti vnitřních úhlů, obvod a obsah trojúhelníka tvořeného těmito body. Pokud je trojúhelník rovnoramenný, aplikace na tuto skutečnost upozorní.
Vytvořte aplikaci generující tabulky goniometrických funkcí.
Příklad řešení: hlavní formulář, tabula, připojená jednotka
Kompletní
projekt pro: Lazarus: gfnf.zip 11kB
Vytvořte aplikaci, která umožňuje sčítat, odčítat, násobit a dělit komplexní čísla. Umožněte uživateli čísla zadávat i číst ve složkovém i exponenciálním tvaru.
Příklad řešení: formulář, připojená jednotka
Kompletní
projekt pro: Lazarus: kc.zip 99kB
Napište program...