Programování v Pascalu Přednáška 8

Slides:



Advertisements
Podobné prezentace
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_17 Digitální učební materiál Sada: Úvod do programování.
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Programování funkcí v Excelu
Datové a časové funkce Date () – vrací aktuální systémové datum
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
Programování v Pascalu
Algoritmizace od algoritmu k Pascalu.
1 Vnitřní řazení s využitím dynamických struktur Tvorba spojového seznamu je vcelku triviální záležitostí: a)Vytvořím prázdný seznam příkazem LIST:=nil.
DATOVÝ TYP POLE.
Fronta - a)Implementace s využitím statických struktur (pole) b)Implementace s využitím dynamických struktur (spojového seznamu) odebírá se ze začátku.
Programování v Pascalu Přednáška 4
Programování v Pascalu Přednáška 2
Programování v Pascalu Přednáška 10 RNDr. Hana Havelková.
Programování v Pascalu Přednáška 6
Programování v Pascalu Přednáška 3
Programování v Pascalu Přednáška 5 RNDr. Hana Havelková.
Programování v Pascalu Přednáška 9 RNDr. Hana Havelková.
Algoritmizace a programování Datové typy v Delphi - 05
Algoritmizace a programování Podprogramy v Delphi - 10
9. Jednotka - unit Jednotky jsou základem modulárního programování v pascalu. Mohou sloužit jako knihovny, které lze připojovat k různým programům bez.
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
Základy Visual Basicu.
VY_32_INOVACE_INF_RO_12 Digitální učební materiál
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_15 Digitální učební materiál Sada: Úvod do programování.
1 Vyhledávání Principy vyhledávání Klasifikace klíče:  Interní klíč – je součástí prohlížených záznamů  Externí klíč – není jeho součástí, je jím např.
Informatika I 3. přednáška
Jazyk vývojových diagramů
Procedury a funkce Základní charakteristika a použití v programu.
Násobení zlomků – teorie a cvičení VY_32_INOVACE_19
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Deklarace Radim Štefan. 2 Použité zkratky BP – Borland Pascal De – Delphi.
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_18 Digitální učební materiál Sada: Úvod do programování.
Podmienený príkaz. Kĺúčové slová  Pro podmínky se v Pascalu používají klíčové příkazy IF, THEN a ELSE.  Také se jim říká „príkaz vetvenia"..  Příkaz.
Algoritmy a programovací techniky
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_09 Digitální učební materiál Sada: Úvod do programování.
Sčítání a odčítání zlomků
Jazyk vývojových diagramů
Úvod do Pascalu. Co je Pascal? vyšší programovací jazyk poskytuje prostředky pro popis algoritmů, které odrážejí povahu řešených problémů, a nikoliv technickou.
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ ŘAZENÍ PRVKŮ – OPAKOVANÝM VÝBĚREM NEJVĚTŠÍHO PRVKU (SELECTSORT) Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ ŘAZENÍ PRVKŮ – PŘÍMOU VÝMĚNOU (BUBBLESORT) Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V. Raise, Hlinsko, Adámkova.
Informatika I 4. přednáška
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
VISUAL BASIC PRALG.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_06 Digitální učební materiál Sada: Úvod do programování.
Objektově orientované programování - cvičení 1
10. Dynamické proměnné Dynamická proměnná se nezavádí deklarací proměnných, ale vzniká za běhu programu provedením speciálního příkazu. Nemá přidělen žádný.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_08 Digitální učební materiál Sada: Úvod do programování.
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_02 Digitální učební materiál Sada: Úvod do programování.
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_16 Digitální učební materiál Sada: Úvod do programování.
Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě VY_32_INOVACE_INF_RO_07 Digitální učební materiál Sada: Úvod do programování.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
6. Typ záznam Strukturovaný datový typ - znamená spojení několika elementů stejného nebo různých typů do jedné proměnné. Např. pole je strukturovaný datový.
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ PROCEDURY S PARAMETRY – NEJBLIŽŠÍ VYŠŠÍ A NIŽŠÍ ČÍSLO Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V. Raise, Hlinsko,
doc. RNDr. Zdeněk Botek, CSc.
Pascal – if Mgr. Lenka Švancarová.
4. Typ pole 4.1 Jednorozměrná pole
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
Cvičení 3-4 Procedury, funkce,řetězce. Procedury Procedura Procedura Procedura je podprogram, který mění stav programu (změnou stavu proměnných nebo změnou.
Strukturované typy proměnných v programovacím jazyce Pascal - 2.hodina
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Transkript prezentace:

Programování v Pascalu Přednáška 8 RNDr. Hana Havelková

Typ záznam Deklarace Přístup k položkám záznamu, příkaz with Záznam obsahující záznamy Záznam obsahující pole Pole záznamů Variantní typy Typové konstanty Vybrané systémové záznamy Záznamy jako parametry procedur a funkcí

Deklarace záznamu ; seznam položek record seznam položek end pevná část proměnná část ;

seznam identifikátorů Pevná část záznamu pevná část seznam identifikátorů : typ ;

Proměnná část záznamu , ( ) : proměnná část varianta case identifikátor typ of varianta varianta , konstanta seznam položek ( ) :

Příklady type TDatum = record den : 1..31; mesic : 1..12; rok : word; end; TAdresa = record ulice : string [20]; cislo : string [10]; mesto : string [25]; psc : string [5];

Příklady type TCas = record hod : 0..24; min : 0..60; sec : 0..60; end; TZak = record trida : string [4]; cislo : byte; jmeno : string [15]; prijmeni : string [20];

Přístup k jednotlivým položkám pomocí tečky identifikátor proměnné . identifikátor proměnné var datum : TDatum ; begin Write('Zadej den: '); ReadLn (datum.den); Write('Zadej mesic: '); ReadLn (datum.mesic); Write('Zadej rok: '); ReadLn (datum.rok); … end.

Přístup k položkám záznamu (.) var pracovnik : record jmeno, prijmeni : string[15]; datnar : TDatum; adresa : TAdresa; end; begin Write('Zadej jmeno'); ReadLn(pracovnik.jmeno); Write('Zadej prijmeni'); ReadLn(pracovnik.prijmeni); Write('Zadávej postupně datum narozeni (den, mesic, rok)'); ReadLn(pracovnik.datnar.den, pracovnik.datnar.mesic, pracovnik.datnar.rok); WriteLn('Zadej adresu'); Write('Ulice: '); ReadLn(pracovnik.adresa.ulice); Write('Číslo: '); ReadLn(pracovnik.adresa.cislo); Write('Město: '); ReadLn(pracovnik.adresa.mesto); Write('PSČ: '); ReadLn(pracovnik.adresa.psc); … end.

Přístup pomocí příkazu with proměnná záznamového typu do , var datum : TDatum; begin WriteLn('Zadání data'); with datum do begin Write('Zadej den: '); ReadLn (den); Write('Zadej mesic: '); ReadLn (mesic); Write('Zadej rok: '); ReadLn (rok); end; … end.

Přístup pomocí with var termin : record datum : TDatum; cas : TCas; end; begin WriteLn('Stanovený termín:'); with termin do begin with datum do begin Write('den, mesic, rok: '); ReadLn (den, mesic, rok); with cas do begin Write('hod, minuta, sekunda: '); ReadLn (hod, min, sec); … end.

Záznam obsahující pole type TZnamka = 0..5; TZnamky = array [1..15] of TZnamka; TZak = record cislo : byte; jmeno : string[30]; znamky : TZnamky; end; var Zak : TZak; pocet, i : 1..15; begin {pristup pomoci tecky} Write('Počet predmetu (znamek) – max 15'); ReadLn(pocet); Write('Cislo zaka: '); ReadLn(Zak.cislo); Write('Prijmeni a jmeno zaka: '); ReadLn(Zak.jmeno); for i := 1 to pocet do begin Write(i, '. znamka: '); ReadLn(Zak.znamky[i]); … end.

Pole záznamů type TZbozi = record nazev : string [40]; jednotka : string [2]; cena_j : real; end; var Zbozi : array [1..200] of TZbozi; pocet : byte; begin {pristup pomoci with} Write('Počet položek (zboží) – max 200'); ReadLn(pocet); for i := 1 to pocet do with Zbozi[i] do begin Write('Nazev: '); ReadLn(nazev); Write('Jednotka: '); ReadLn(jednotka); Write('Jednotkova cena: '); ReadLn(cena_j); … end.

Pole záznamů obsahujících pole type TBody = array [1..10] of real; TZavodnik = record start_cislo : byte; jmeno : string [30]; stat : string [3]; umelecky_dojem : TBody; technicka_hodnota : TBody; end; var Zavodnici : array [1..100] of TZavodnik; jméno 3. závodníka Zavodnici[3].jmeno body 5. závodníka za umělecký dojem Zavodnici[5].umelecky_dojem[1] Zavodnici[5].umelecky_dojem[2] Zavodnici[5].umelecky_dojem[3] …

Variantní záznam type TDoprava = (Mistni, Dojizdejici, Internatni); Zak = record trida : string [3]; Jmeno : string [30]; case Doprava : TDoprava of Mistni : (delka : real); Dojizdejici : (druh : char; delka : real); Internatni : (pokoj: byte; cena : real); end;

Variantní záznam type TOsoba = record Jmeno : string [30]; Vek : byte; Vyska : byte; Vlasy : string [30]; case Pohlavi : char of 'M' : (plnovous, knir : boolean); 'Z' : (prsa, pas, boky : byte); end;

Typové konstanty type TZavod = record misto : string [50]; datum : TDatum; start : TCas; end; const ADRESA : TAdresa = (ulice:'Jeronymova'; cislo:'10'; mesto:'CB'); ZACATEK : TCas = (hod:9; min:0; sec:0); KONEC : TCas = (hod:11; min:59; sec:59); ZAVOD : TZavod = ( misto: 'Praha'; datum: (den:12; mesic:12; rok:2008); start: (hod:14; min:14; sec:14));

Systémové záznamové typy DateTime (DOS) Registers (DOS) SearchRec (DOS) PalleteType (GRAPH) PointType (GRAPH) ViewPortType (GRAPH) …

Datový typ DateTime, Registers type DateTime = record Year,Month,Day: Word; Hour,Min,Sec: Word; end; Registers = record case Integer of 0: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Word); 1: (AL, AH, BL, BH, CL, CH, DL, DH: Byte);

Datový typ SearchRec type { záznam použitý v rutině FindFirst a FindNext } { vyhledávání souborů v adresáři } SearchRec = record Fill: array [1..21] of Byte; Attr: Byte; Time: Longint; Size: Longint; Name: string [12]; end;

Ukázky datových typů jednotky GRAPH const MaxColors = 15; type PaletteType = record Size : Byte; Colors : array [0..MaxColors] of Shortint; end; PointType = record X, Y : integer; ViewPortType = record x1, y1, x2, y2 : integer; Clip : Boolean;

Záznam jako parametr procedur a funkcí vstupní parametr (volání hodnotou) formální a skutečný parametr by měly být shodné typy výstupní parametr (volání odkazem) používáme pokud chceme načíst záznam v podprogramu chceme změnit hodnoty položek záznamu chceme výsledek výpočtů podprogramu uložit do proměnné typu záznam event. uložit více výsledků u formálního parametru musíme použít var funkce nesmí vracet typ záznam !!!

Zlomky - krácení type TZlomek = record citatel : integer; jmenovatel : word; end; {predpokladame existenci funkce NSD - nejvetsi spolecny delitel} procedure Kraceni (var z : TZlomek); var delitel : word; begin delitel := NSD(z.citatel, z.jmenovatel); z.citatel := z.citatel div delitel; z.jmenovatel := z.jmenovatel div delitel;

Zlomky procedure Soucet (z1, z2 : TZlomek; var s : TZlomek); begin Kraceni(z1); Kraceni(z2) ; s.citatel := z1.citatel*z2.jmenovatel + z1.jmenovatel*z2.citatel ; s.jmenovatel := z1.jmenovatel * z2.jmenovatel ; Kraceni(s) ; end;

Převod času zadaného v sekundách type TCas = record hod : word; min : byte; sec : byte; end; procedure Sec_HMS (s : word; var cas : TCas); begin with cas do begin hod := s div 3600; s := s mod 3600; min := s div 60; s := s mod 60; sec := s;