Čtvrtek 8. prosince Pascal - opakování základů Struktura programu: 1. hlavička – obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury a funkce 2. tělo programu – sem se píší všechny příkazy, které určují, co má program dělat. Na začátku těla je uvedeno slovo begin a na konci end a za ním tečka Klíčová slova – pro programovací jazyk mají zásadní význam a nesmějí být použita jinak. Jsou to např. begin, var, and, if, …. Identifikátory – názvy všeho, co budeme v programu používat – názvy programu, podprogramu, proměnných a konstant. Mohou obsahovat pouze písmena anglické abecedy, číslice a podtržítka, číslice nesmí být na začátku. Název identifikátorů musí být v rámci celého programu jedinečný. Obvod a obsah rovnostranného trojúhelníku
Výměna obsahu dvou buněk
Zkuste vymyslet výměnu hodnot ve dvou buňkách bez pomocné buňky
Čtvrtek 15. Prosince Výměna hodnot ve dvou buňkách bez pomocné buňky
Větvení 1. Úplný příkaz větvení je-li ve větvích jediný příkaz
Zápis v programu:
Středník se píše jen na konci příkazu větvení
if podmínka then jediný příkaz else jediný příkaz;
2. Úplný příkaz větvení je-li ve větvích více příkazů
Zápis v programu: if podmínka then begin první příkaz; poslední příkaz end else begin první příkaz; poslední příkaz end;
Středníky sepíší za všemi příkazy, které jsou uzavřeny v logických závorkách begin – end; u posledního příkazu před end se středník psát nemusí Středník se také píše úplně na konci větvení (za posledním end) Nikde jinde se středník psát nesmí!
3. Neúplný příkaz větvení je-li ve větvích jediný příkaz
Zápis v programu: if podmínka then jediný příkaz;
4. Neúplný příkaz větvení je-li ve větvích více příkazů
Zápis v programu: if podmínka then begin první příkaz; poslední příkaz end;
Příklad dělení – program vypočítá podíl dvou čísel a zároveň zajistí, aby nedošlo k dělení nulou
Dělitelnost čísla A číslem B
Řešení výrazu
√
Řešení lineární rovnice AX + B = 0
Čtvrtek 5. ledna Procedura exit – program můžeme někdy zjednodušit instrukcí exit. Má za následek okamžité ukončení programového celku, přejde na konec programu (popř. procedury), kde byl použit
Porovnání dvou čísel
Maximum ze tří čísel
Maximum ze tří čísel s použitím dočasného maxima
Po zadání tří stran program zjistí, zda jde o trojúhelník
Čtvrtek 12. ledna Case – vícenásobné dělení
Napište program, který ze zadané ujeté vzdálenosti vypočte platbu taxikáři
Čtvrtek 19. ledna
Př. Vypiš čísla od 1 do 20
Př. Sečti čísla od 1 do 20
Př. Sečti 10 zadaných čísel
Př. Najdi maximum z N zadaných čísel
Čtvrtek 26. ledna Procedury a funkce Procedury a funkce tvoří posloupnosti instrukcí, které potřebujeme v programu provádět na různých souborech dat nebo na různých místech programu. Procedura nebo funkce může být po deklaraci použita kdekoli v následujícím textu bloku programu. Rozdíl mezi procedurou a funkcí je v tom, že funkce vrací hodnotu a může se použít přímo ve výrazech. Procedura se vyvolá příkazem volání procedury ke splnění jedné nebo více operací. Procedury a funkce umožňují vnořovat přídavné bloky do hlavního programového bloku. Každá deklarace procedury nebo funkce má hlavičku, po které následuje blok příkazů. Procedura se aktivuje příkazem volání procedury, funkce se aktivuje vyhodnocením výrazu, který obsahuje její volání. Za identifikátorem procedury nebo funkce může následovat seznam parametrů, uzavřený v kulatých závorkách. Každý parametr v seznamu má své místo, kterému odpovídá příslušný typ. Zdrojový text programu je ukončen tělem hlavního programu. Tělo hlavního programu se musí uvést vždy jako poslední. Mezi část deklarace proměnných a tělo hlavního programu lze vložit libovolné množství deklarací procedur a funkcí v jakémkoli pořadí. Musí se však dodržovat zásada, že cokoli použijeme, musí být deklarováno, jinak dojde k chybě během překladu. Tělo deklarace procedury nebo funkce končí středníkem místo tečky u hlavního programu. Procedura nebo funkce může mít své vlastní interní datové typy, proměnné i své vlastní procedury a funkce. Veškeré prvky deklarované uvnitř procedury nebo funkce mají lokální charakter, tzn. lze je využít pouze uvnitř procedury nebo funkce, ve které jsou deklarovány. Deklarace, které jsou uvedeny v hlavním programu, mají globální charakter.
Podprogram typu Procedura Je-li nějaká ucelená část programu upotřebitelná ve více programech, nebo se vícekrát vyskytuje v tomtéž programu, můžeme z ní udělat podprogram. Máme dva typy podprogramů Procedura a Funkce Procedura je uvedena v deklarační části programu, kde se nachází celá v těle programu – ve všech místech, kde je tato procedura volána se uvede její název a tím se „dosadí“ místo jejího jména její celý zdrojový kód
Struktura procedury: Procedure Název (seznam formálních předávaných parametrů: jejich datový typ); definice konstant; definice proměnných; deklarace procedur a funkcí, které procedura používá; begin {tělo – výkonná část procedury} end; V těle programu, tam kde je procedura volána, se pak objeví Název (seznam skutečných předávaných parametrů, už bez datového typu);
Formální a skutečné parametry Každou proceduru můžeme v hlavním programu volat několikrát, pokaždé s jinými parametry, proto musí být deklarace procedury obecná. V závorce za jejím názvem se uvádějí tzv. formální proměnné, které jsou v místě, kde je podprogram volán, nahrazeny parametry skutečnými Globální a lokální proměnné
Globální proměnné jsou takové, které platí jak v hlavním programu, tak i v podprogramu. Chcete-li použít globální proměnnou, pak musíte:
používat stejného označení jak v hlavním programu, tak i podprogramu
deklarovat proměnnou pouze v hlavním programu, v podprogramu už deklarována být nesmí
Lokální proměnné jsou takové, které platí pouze v určitém programovém bloku, hlavní program je „nezná“. Chcete-li použít lokální proměnnou
pak ji musíte deklarovat v podprogramu
můžete pro ni použít stejný název, jako má proměnná v hlavním programu, která je určena pro něco úplně jiného, ale nedoporučuje se to z hlediska přehlednosti programu
Procedury volané hodnotou a odkazem
Tyto pojmy se týkají parametrů, které jsou uvedeny v závorce za názvem procedury. Mají zásadní vliv na chování procedur Procedury volané hodnotou syntaxe: deklarční část: Procedure Název (seznam formálních proměnných: datový typ); . . . volání v těle programu . . Název (seznam skutečných proměnných); . . Chování:
z hlavního programu předá do procedury (dosadí do jejich formálních parametrů) hodnoty, jakých v místě volání procedury nabývají parametry (proměnné) uvedené v závorce
uvnitř s nimi pracuje a „zná“ tyto hodnoty
nazpět ale parametr z podprogramu nepředá, protože s nimi pracovala jako s lokálními parametry, které hlavní program nezná
Procedury volané odkazem syntaxe: deklarční část: Procedure Název (var seznam formálních proměnných: datový typ); . Toto je v procedurách volaných odkazem navíc . . volání v těle programu . . Název (seznam skutečných proměnných); . .
Chování:
z hlavního programu dosadí do procedury (do jejich formálních parametrů) skutečné parametry jaké mají v místě volání procedury
uvnitř s nimi pracuje jako s globálními parametry (vlivem var byl předán celý parametr, nikoliv jen hodnota)
při návratu z procedury nazpět do hlavního programu předá nazpět parametry včetně jejich hodnot, kterých v okamžiku výstupu z procedury nabývají
Čtvrtek 1. března Datový typ řetězec (string)
Znakový řetězec je homogenní strukturovaný datový typ, který slouží k ukládání více znaků strukturovaný se mu říká proto, že na rozdíl od jednoduchých proměnných obsahuje několik položek (až 255) homogenní je proto, že všechny položky jsou stejného typu (v tomto případě jsou všechny znakové) Protože je řetězec strukturovaná proměnná, lze jednoduše pracovat s jednotlivými položkami – znaky Např. mobil je proměnná typu string, pak: mobil[1] je první znak proměnné mobil, tj. zde m mobil[2] je druhý znak proměnné mobil, tj. zde o . . . Délka textového řetězce Funkce length – určí délku řetězce length (mobil) = 5
Zjištění, kolikrát se v textu objeví zadané písmeno – text je zadán vcelku
Čtvrtek 15. března
Datový typ pole (array) Datový typ pole je homogenní strukturovaný datový typ. Pole může být vícerozměrné (vícedimenzionální). Jednorozměrné pole je např. vektor, dvourozměrné např. matice, trojrozměrné pole by byla například kubická matice… Počet položek v dimenzích pole není omezen na 255, zato se maximální počet položek v dimenzích musí deklarovat Jeho položkami mohou být libovolné jednoduché či strukturované proměnné (obsahují více hodnot). Podmínkou však je, že musí být všechny stejného datového typu (např. celočíselné pole, pole reálných čísel, pole logických hodnot, pole znakových řetězců…)
Převod z desítkové soustavy do dvojkové – nové cifry se vypisují od nejnižších, tj. první cifra je v zápisu čísla poslední
78d = 1001110b
Převod z desítkové soustavy do dvojkové – nové cifry se vypisují od nejvyšších
137d = 10001001b
Čtvrtek 22. března Spočítejte hodnoty prvních N prvků aritmetické řady, znáte-li hodnotu prvního prvku A[1] a hodnotu přírůstku D
Vytvořte algoritmus pro zjištění součtu aritmetické řady, zadáte-li hodnotu prvního prvku řady A[1], hodnotu rozdílu dvou po sobě jdoucích prvků D a počet prvků, které máme se číst