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

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

Pro začátek něco lehčího
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Programování funkcí v Excelu
Racionální čísla, operátory, výrazy, knihovní funkce
Pascal - větvení.
Programování v Pascalu
Algoritmizace od algoritmu k Pascalu.
Programování v Pascalu Přednáška 8
Programování v Pascalu Přednáška 4
Programování v Pascalu Přednáška 2
Programování v Pascalu Přednáška 6
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í Operátory a příkazy v Delphi - 07
Informatika pro ekonomy II přednáška 11
If-else, do-while, switch, operátory
Druhé cvičení Vytváření identifikátorů Datové typy
Skriptový jazyk, který se používá při tvorbě stránek.
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
Booleova logika(algebra)
Základy Visual Basicu.
Operátory (1. část) 3 A1PRG - Programování – Seminář
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ř.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Informatika I 3. přednáška
Procedury a funkce Základní charakteristika a použití v programu.
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.
Jednoduché datové typy
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í.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
LOGICKÉ ŘÍZENÍ GEORGE BOOLE
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.
PHP PHP – základy syntaxe (část 2) - 04 Mgr. Josef Nožička IKT PHP
Ú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.
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
Programovací jazyk PASCAL
Informatika I 1. přednáška
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
STROMY Datová struktura sestávající z uzlů
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.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
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ý.
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
doc. RNDr. Zdeněk Botek, CSc.
Pascal – if Mgr. Lenka Švancarová.
4. Typ pole 4.1 Jednorozměrná pole
Pascal – strukturované příkazy
ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
doc. RNDr. Zdeněk Botek, CSc.
Cvičení 2 Podmíněné příkazy, cykly. Podmíněné příkazy Podmínka – jakýkoliv logický výraz ( a=1,……..) ( a=1,……..) Příkaz – vlastní instrukce, která se.
Pascal - větvení.
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.
Algoritmizace a programování Aritmetické, Relační a Logické operátory, Knihovny.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ ERIK KRÁL.
Výukový materiál zpracován v rámci projektu
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Výukový materiál zpracován v rámci projektu
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
DATOVÉ TYPY určuje druh hodnoty (číslo, text, logická hodnota) a množinu operací (aritmetické, logické, ...) skalární datový typ - hodnoty jsou uspořádané.
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
CU01 Informatika II 2/13 Základy algoritmizace
Vyhodnocování aritmetického výrazu (1)
Transkript prezentace:

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

Výrazy tvořeny kombinací operátorů, operandů (a oddělovačů) většina operátorů je binárních, některé jsou unární pořadí vyhodnocení složitých výrazů je dáno prioritou operátorů Pravidla: operand mezi dvěma operátory s různou prioritou se váže k operátoru s vyšší prioritou operand mezi dvěma operátory se stejnou prioritou se váže k tomu vlevo – vyhodnocování operací zleva výrazy uvnitř závorek jsou vyhodnoceny přednostně

Priorita operátorů 1. @ , not 2. *, /, div, mod, and, shl, shr 3. +, - , or, xor 4. =, <>, <, > , <= , >=, in

Aritmetické operátory +, - unární *, /, mod, div binární +, - binární

Relační operátory = , <> < , > <= , >=

Bitové operátory dají se aplikovat na celočíselné typy not bitová negace and bitový součin or bitový součet xor bitová nonekvivalence shl posun vlevo shr posun vpravo

Logické operátory dají se aplikovat na boolean typ not negace and logický součin (konjunkce) or logický součet (alternativa) xor nonekvivalence

Tabulka pravdivostních hodnot a and b a or b a xor b not a true false

Datové typy jednoduché strukturované pointer ordinální reálné char boolean celočíselné interval výčet pole záznam množina soubor řetězec

Ordinální datové typy Ord('A') vrací 65 Pred ('C') vrací 'B' popisují konečnou uspořádanou množinu hodnot mají vždy minimální a maximální hodnotu každé hodnotě z oboru hodnot tohoto typu je přiřazeno ordinální číslo udávající v podstatě pořadí hodnot (celá čísla jsou zobrazena sama na sebe) funkce pracující s ordinálními hodnotami Ord – vrací ordinální hodnotu Pred – vrací předchozí hodnotu Succ – vrací následnou hodnotu Ord('A') vrací 65 Pred ('C') vrací 'B' Succ(10) vrací 11 je-li x < y, platí Ord(x) < Ord(y)

Celočíselné typy typ rozsah velikost byte 0 255 1B shortint -128 +127 1B integer -32 768 +32 767 2B word 0 +65 535 2B longint -2 147 483 648 +2 147 483 647 4B Specielní operátory: div celočíselné dělení mod zbytek po celočíselné dělení

Funkce pracující s celočíselnými typy abs(n) absolutní hodnota dec(n) dekrement – snížení hodnoty n o 1 dec(n, i) dekrement – snížení hodnoty n o i inc(n) inkrement o 1 inc(n, i) inkrement o i sqr(n) druhá mocnina n Převedení reálných čísel na celá int(x) celá část x round(x) zaokrouhlení x trunc(x) useknutí desetinné části

Typ boolean pouze hodnoty true a false logické operátory and or xor relační operátory < , >, = , <> <=, >= false < true Ord(false)<Ord(true) ord (false) = 0 ord (true) = 1 succ (false) = true pred (true) = false

Typ char hodnotou je znak (kódování dle ASCII) znak zapisujeme mezi apostrofy 'A', 'B' , '@', '0', 'č' platí: '0' < '1' < '2' < .. < '9' succ('0') = '1', succ('1') = 2 … 'A' < 'B' < … < 'Z' < … < 'a' < 'b' < … < 'z' ord('0') = 48, ord('A') = 65, ord('Z') = 90, ord('a') = 97

Funkce související s typem char ord(c) ordinalita – vlastně ASCII kód chr(n) znak odpovídající ASCII kódu n succ(c) pred(c) Platí: ord(chr(ASCII_kod)) = ASCII_kod chr(ord(znak)) = znak

Výčtový typ je uživatelsky definovaný definuje se seznamem identifikátorů reprezentujících hodnoty tohoto typu jde o seznam pojmenovaných konstant první konstanta má hodnotu 0, druhá 1 , … výskyt identifikátoru představuje jeho zavedení jako identifikátoru konstanty příslušného typu výčtový typ je ordinální – na operandy (téhož) výčtového typu mohou být aplikovány relační operátory standardní funkce ord (x), succ (x) , pred(x) výčtový typ nelze přímo použít na vstupu ani výstupu

Příklad výčtového typu type Dny = (po, ut, st, ct, pa, so, ne); Barvy = (modra, cervena, zelena, bila, cerna) ; Karty = (zelena, cervena, kule, zaludy); Hodnoceni = (vyborne, velmi_dobre, dobre, nedostatecne) ; var den : Dny; karta : Karty; begin den := st; karta := zaludy; … end.

Typ interval představuje souvislou podmnožinu nějakého ordinálního typu dolní i horní mez podmnožiny udávají dvě konstanty (konstantní výrazy) ordinálního typu horní mez musí být větší nebo rovna dolní mezi interval, který specifikuje nějakou podmnožinu ordinálního typu T nazýváme intervalem z T a typ T hostitelským typem tohoto intervalu .. konstanta

Příklady typu interval type velka_pismena = 'A' .. 'Z' ; mala_pismena = 'a' .. 'z' ; var v_znak : velka_pismena ; m_znak : mala_pismena ; cislo_do_100 : 1 .. 99 ; rocnik : 1 .. 6 ; znamka : 0 .. 5 ; teplota : -10 .. 25 ;

Typ real konečná podmnožina reálných čísel – tj. čísla z jistého intervalu v jisté přesnosti (počet desetinných míst) číslo v pohyblivé řádové čárce, tj. jako dvojice čísel (a, b), kde: a je mantisa b je exponent zápis aEb 1.268E13 1,268 . 1013

Reálné typy Typ Rozsah Platné Velikost cifry real 2.9*10-39 .. 1.7*1038 11 – 12 6 B single 1.5*10-45 .. 3.4*1038 7 – 8 4 B double 5.0*10-324 .. 1.7*10308 15 – 16 8 B extended 3.4*10-4932 .. 1.1*104932 19 – 20 10 B comp -9.2*1018 .. 9.2*1018 19 – 20 8 B

Použití jiných typů než real zapnout numerický koprocesor – direktiva {$N+} (event. zapnout jeho emulaci pomocí {$E+} ) typ comp zobrazuje vlastně celá čísla, ale s vyšší přesností

Strukturované příkazy složený příkaz podmíněné příkazy příkaz if příkaz case příkazy cyklu for while repeat .. until příkaz with

Složený příkaz posloupnost příkazů uzavřených mezi symboly begin a end chová se jako jediný nedělitelný příkaz tj. kde může být jediný příkaz, může být složený příkaz symboly begin a end bývají nazývány jako příkazové závorky středník není součástí příkazů, slouží pouze k jejich oddělení za posledním příkazem (před end) se neuvádí středník (je-li použit, chová se jako prázdný příkaz)

Podmíněný příkaz IF (neúplný) if podmínka then příkaz podmínka příkaz + - vyhodnotí se podmínka za klíčovým slovem if je-li podmínka splněna (true), provede se příkaz uvedený za then, v opačném případě program pokračuje dalším příkazem

Podmíněný příkaz IF (úplný) if podmínka then příkaz1 else příkaz2 podmínka příkaz1 + - příkaz2 vyhodnotí se podmínka za klíčovým slovem if je-li podmínka splněna (true), provede se příkaz1 uvedený za then, v opačném případě se provede příkaz2 uvedený za else

If příklad var a, b : real; begin Write('Zadej dvě čísla: '); ReadLn(a, b); if a < b then WriteLn('První je menší než druhé') else if a = b then WriteLn('Čísla jsou stejná') else WriteLn('První je větší než druhé'); … end.

If příklad var hod, min, sec : byte; OK : boolean; begin OK := true; Write('Zadej čas (hod min sec): '); ReadLn(hod, min, sec); if hod > 23 then OK := false else if min > 59 then OK := false if sec > 59 then OK := false; if OK then WriteLn('Korektní čas') else WriteLn('Chybný čas'); end.

Podmíněný příkaz CASE vyhodnotí se ordinální výraz uvedený za case, porovnává se postupně s uvedenými případy, dojde-li ke shodě, provede se příkaz odpovídající případu, jinak se provede příkaz uvedený za else, nebo se neprovede nic, pokud klauzule else není použita case výraz případ of end else příkaz ; případ konstanta .. : příkaz

Case - příklad type operator = (Plus, Minus, Krat, Deleno); var op : operator; x, y, z : real; begin … case op of Plus : z := x + y ; Minus : z := x – y; Krat : z := x * y; Deleno : z := x / y; else WriteLn('Chybný operátor') end;

Case - příklad var n : word; begin WriteLn('Zadej celé číslo: '); ReadLn(n); case n of 0 .. 9 : WriteLn('Jednociferné číslo'); 10 .. 99 : WriteLn('Dvojciferné číslo'); 100 .. 999 : WriteLn('Trojciferné číslo'); 1000 .. 9999 : WriteLn('Čtyřciferné číslo'); else WriteLn('Pěticiferné číslo???'); end; ReadLn; end.