Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.

3903/8043

Pascal a Delphi

Tato stránka slouží jako podpora k mé výuce jazyka Pascal. Najdete u několik málo řešených příkladů.

Tato stránka již není aktuální

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.

Co je potřeba?

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í.

Literatura

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)]

| navigace |

Datové typy v Pascalu

větvení datových typů v Paccalu - klikací mapa

Datový typy jednoduchý strukturovaný ukazatel real ordinální pole (array) řetězec (string) záznam (record) množina soubor (file) integer boolean char výčet interval

| navigace |

Větvení

Vytvořte program, sloužící pro výpočet kvadratické rovnice.

Příklad řešení

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é

Cykly

Malá ukázka použítí cyklů FOR, WHILE a REPEAT

Napište program, který realizuje funkci ex. Využijte přitom nekonečnou řadu: něco

Příklad řešení

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.

Příklad řešení

Délka lomené čáry

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í.

Příklad řešení

Moře, nížiny a hory

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

Procedury a funkce

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

Volání proměnné odkazem a hodnotou

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.

Příklad řešení

Funkce a procedury jako parametr

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.

Příklad řešení

Prvočísla

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 řešení

Datový typ ukazatel

Příklad práce s ukazateli
Příklad implementace jednosměrného seznamu

Trojúhelník

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í.

Goniometrické funkce

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

Komplexní čísla

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

Práce se soubory

Napište program...


| navigace |

Licence Creative Commons Valid XHTML 1.0 Strict Valid CSS! Antispam.er.cz Blog: Tlapicka.net