Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilAnna Procházková
1
M2160 – Úvod do programování II RNDr. Jaroslav PELIKÁN, Ph.D. katedra počítačových systémů a komunikací Fakulta informatiky Masarykovy univerzity Botanická 68a, 602 00 BRNO Kanc.: A209, : +420 – 549 495 751 E-mail: pelikan@fi.muni.cz http://www.fi.muni.cz/usr/pelikan
2
28/09/20162 Organizace předmětu Předmět M2160 má hodinovou dotaci 2/2, tj. 2 hodiny přednáška a 2 hodiny cvičení Rozvrh hodin: –1 přednáška: pátek 10:00 – 11:50 (C525) –1 cvičební skupina: čtvrtek 14:00 – 15:50 (A215) Předmět je ukončen kolokviem
3
28/09/20163 Požadavky ke kolokviu Zápočet: –„úspěšné“ napsání průběžných písemek –splnění všech domácích úkolů (v termínu) –maximálně dvě neomluvené neúčasti na cvičení Zápočet musí být zapsán na ISu nejpozději 12 hodin před začátkem kolokvia Kolokvium probíhá ve dvou částech: –vypracování programu (na počítači): 90 minut –diskuse nad řešeným problémem + další otázky
4
28/09/20164 Osnova (1) Datový typ množina Datový typ záznam, příkaz with Datový typ soubor: –typový soubor –textový soubor Datový typ ukazatel: –dynamické proměnné –dynamické datové struktury Vyhodnocování aritmetického výrazu
5
28/09/20165 Osnova (2) Programové jednotky (units) Předávání parametrů z příkazové řádky OS Příkazy Goto, Break, Continue, Exit, Halt Složitost algoritmů Úvod do objektově orientovaného progra- mování Vývojové prostředí Borland Delphi: –vývoj programů v prostředí MS-Windows Kolokvium
6
28/09/20166 Literatura (1) Pelikán, Jaroslav: Prezentace k přednáškám z předmětu M2160 Úvod do programování II http://www.fi.muni.cz/usr/pelikan Borland Pascal 7.0 manuál, Borland International, 1992 Hála, Tomáš: Učebnice Pascalu, Computer Press 2002 Drózd, Januš – Kryl, Rudolf: Začínáme s programováním, Praha: Grada 1992
7
28/09/20167 Literatura (2) Wirth Niklaus: Algoritmy a štruktúry údajov: Algorithm + Data Structures = Programs, Bratislava Alfa, 1989 Teixeira, S. – Pacheco, X.: Mistrovství v Delphi 6, Computer Press 2002 Lischner, R.: Delphi v kostce, Computer Press 2000
8
28/09/20168 Typ množina (set) (1) Definice typu množina je tvaru: type T = set of T z ; kde T: jméno nově definovaného typu množina T z : označení ordinálního typu (identifikátor nebo popis typu), kterému se říká bázový typ Hodnotami proměnných typu T jsou všechny podmnožiny bázového typu T z a prázdná množina
9
28/09/20169 Typ množina (set) (2) Např.: type zakladnibarva = (cervena, zelena, modra); barva = set of zakladnibarva; –Hodnotami proměnných typu barva jsou: [cervena, zelena, modra], [cervena, zelena], [cervena, modra], [zelena, modra], [cervena], [zelena], [modra], []
10
28/09/201610 Typ množina (set) (3) Konstrukce hodnoty množina spočívá ve výčtu množinových elementů, které jsou odděleny čárkami a uzavřeny do hranatých závorek Elementy mohou být dány výrazem bázové- ho typu nebo ve tvaru m..n, který představu- je množinu všech prvků i bázového typu takových, že m i n
11
28/09/201611 Typ množina (set) (4) [] je prázdná množina stejně jako [m..n], kde m > n. Příklady: [6], [i+j, i–j], [’0’..’9’], [’a’, ’b’, ’c’] Operátory aplikovatelné na operandy typu množina s kompatibilními bázovými typy: + sjednocení
12
28/09/201612 Typ množina (set) (5) * průnik – množinový rozdíl =, test na rovnost (nerovnost) =, test na, množinovou inkluzi intest na příslušnost k množině Příklad: if (ch = ’a’) or (ch = ’e’) or (ch = ’i’) or (ch = ’o’) or (ch = ’u’) or (ch = ’y’) then P;
13
28/09/201613 Typ množina (set) (6) lze nahradit: if ch in [ ’a’, ’e’, ’i’, ’o’, ’u’, ’y’] then P; Implementace Pascalu obvykle omezují rozsah bázového typu množina v závislosti na délce posloupností z 0 a 1, kterými jsou reprezentovány množiny Díky této reprezentaci však mohou probíhat množinové operace velmi rychle
14
28/09/201614 Typ množina (set) (7) Omezení Free Pascalu: –bázový typ nesmí mít více než 256 hodnot –ordinální hodnoty dolní a horní meze bázového typu musí ležet uvnitř intervalu 0..255 Poznámka: Množina je statický a homogenní datový typ
15
28/09/201615 Typ záznam (record) (1) Hodnoty typu záznam jsou tvořeny složka- mi různých typů záznam je heterogenní datový typ Tyto složky (jejich počet a typ) jsou pevně dány definicí typu záznam, popř. deklarací proměnné typu záznam záznam je statický datový typ
16
28/09/201616 Typ záznam (record) (2) Typ záznam definujeme takto: type T = record p 11, p 12,..., p 1n 1 : T 1 ; p 21, p 22,..., p 2n 2 : T 2 ; p m1, p m2,..., p mn m : T m ; end;
17
28/09/201617 Typ záznam (record) (3) p ij značí identifikátory složek, kterým se říká položky Položky záznamu mohou být dále strukturovaného typu (např. pole, množina nebo opět záznam)
18
28/09/201618 Typ záznam (record) (4) Příklad: na základě definic typů: type den = 1..31; mesic = (leden, unor, brezen, duben, kveten, cerven, cervenec, srpen, zari, rijen, listopad, prosinec); rok = 1900..2100;
19
28/09/201619 Typ záznam (record) (5) můžeme definovat typ: datum = record d: den; m: mesic; r: rok; end;
20
28/09/201620 Typ záznam (record) (6) Výběr položky (přístup k položce) záznamu se realizuje zápisem, který je tvořen identifikátorem záznamu následovaným tečkou a identifikátorem příslušné položky Je-li proměnná deklarována jako: var prijezd:datum; pak se její složky označují: prijezd.d, prijezd.m, prijezd.r
21
28/09/201621 Typ záznam (record) (7) Změna hodnoty proměnné se realizuje změnou jednotlivých položek: Např.: if prijezd.m prosinec then prijezd.m := succ (prijezd.m) else begin prijezd.m := leden; prijezd.r := prijezd.r+1; end;
22
28/09/201622 Typ záznam (record) (8) Typ záznam může mít i tzv. variantní část: type typvoz = (autobus, naklauto); Vozidlo = record cena:longint; case TV:typvoz of autobus: (pocosob:integer); naklauto: (nosnost: integer); end;
23
28/09/201623 Příkaz with (1) Slouží ke zjednodušení přístupu k položkám proměnných typu záznam Obecný tvar: with p 1, p 2,..., p n do P; kde p i : proměnná typu záznam P: příkaz, v jehož rámci je možné praco- vat přímo s položkou záznamu, aniž bychom museli uvádět proměnnou typu záznam následovanou tečkou
24
28/09/201624 Příkaz with (2) Příklad: with prijezd do if m prosinec then m := succ (m) else begin m := leden; r := r+1; end;
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.