PODPORA ELEKTRONICKÝCH FOREM VÝUKY

Rozměr: px
Začít zobrazení ze stránky:

Download "PODPORA ELEKTRONICKÝCH FOREM VÝUKY"

Transkript

1 PODPORA ELEKTRONICKÝCH FOREM VÝUKY CZ.1.07/1.1.06/ Tento projekt je financován z prostředků ESF a státního rozpočtu ČR. SOŠ informatiky a spojů a SOU, Jaselská 826, Kolín

2 PROGRAMOVÁNÍ PASCAL Autorem tohoto výukového materiálu je Ing. Miroslav Veverka SOŠ informatiky a spojů a SOU, Jaselská 826, Kolín

3 OBSAH Struktura programu v Pascalu Standardní datové typy Jednoduché příkazy Podmínka Cykly Podprogramy Strukturované datové typy Literatura

4 Programovací jazyk Pascal je to vyšší programovací jazyk vznikl v r. 1971, autor je Niklaus Wirth při vývoji jazyka sledoval autor dva cíle: vytvoření jazyka pro výuku programování založeného na jasných, jednoduchých a srozumitelných konstrukcích, umožnit snadnou implementaci jazyka na současných (tehdejších) počítačích oba cíle se podařilo splnit, jazyk Pascal byl velmi rozšířený a osvědčil se jako hlavní výukový jazyk 4

5 Programovací jazyk Pascal jazyk je pojmenovaný po francouzském filozofovi, matematikovi a fyzikovi Blaise Pascalovi ( ), jenž mimo jiné sestrojil počítací stroj na základě ozubených koleček (stejný princip se používal v mechanických elektroměrech, plynoměrech, počítadlech ujetých kilometrů apod.) 5

6 Struktura programu v Pascalu program KvadratickaRovnice; label návěští pro příkaz skoku; const konstanty; type definování nových typů dat; var seznam použitých proměnných; procedure definice nových procedur; function definice nových funkcí; hlavička programu deklarační část begin posloupnost příkazů oddělených středníky; end. příkazová část 6

7 Hlavička programu plná hlavička programu má podobu program Jmeno_programu (input, output); část (input, output) znamená, že program pracuje se stadardním vstupem input klávesnicí, a se standardním výstupem output monitorem část (input, output) není třeba u novějších kompilátorů zapisovat 7

8 Identifikátory identifikátor (jméno) je pojmenování nějakého objektu v programu, např. vlastního programu, proměnné, konstanty, podprogramu apod. musí začínat písmenem nebo podtržítkem, může obsahovat i číslice nesmí obsahovat mezery ani znaky s diakritikou délka (počet znaků) nebývá omezena, ale překladač rozlišuje min 31, obvykle 63 znaků Pascal nerozlišuje velká a malá písmena 8

9 Identifikátory správně KvadratickaRovnice Polomer teplota2 chybně Kvadraticka Rovnice Poloměr 2teplota nesmí být mezera nesmí být diakritika první znak nesmí být číslice 9

10 Deklarační část typická část všech moderních programovacích jazyků uvádí se zde seznam všech objektů a jejich vlastností, se kterými program pracuje na základě informací v deklarační části překladač určí, kolik místa si má vyhradit pro deklarované objekty dále provádí kontrolu správného používání objektů, může tak odhalit mnohé chyby, to zrychluje a zefektivňuje ladění 10

11 Deklarační část deklarační část může mít až šest částí : label návěští pro příkaz skoku; const konstanty obsahuje seznam konstant; type definování nových typů dat; var seznam použitých proměnných; procedure definice nových procedur; function definice nových funkcí; deklarační část končí středníkem některé objekty mohou v programech chybět, pokud tyto objekty nepotřebujeme, pak se v deklarační části neuvádějí 11

12 Příkazová část zde začíná vlastní program začíná slovem begin a končí slovem end. (s tečkou) příkazy se píší v tom pořadí, v jakém mají být provedeny příkazy se oddělují středníky, za slovem begin se středník nepíše jednotlivé příkazy se píší obvykle každý na samostatném řádku je možné psát též několik příkazů na jeden řádek, příkazy se oddělují středníky 12

13 Příkazová část příklad příkazové části: begin prikaz1; prikaz2; prikaz3; prikazn; end. 13

14 Komentáře v programu v programu je možné a velmi doporučované umísťovat komentáře komentáře slouží programátorovi, popisují co program řeší, proč je použit tento postup apod. překladač komentáře ignoruje, délka programu se nezvětší zápis komentářů v Pascalu: { Toto je komentář } (*Toto je komentář*) // Toto je komentář může být i přes více řádek jen do konce řádku 14

15 Příklad programu v Pascalu program PlochaKruhu; hlavička programu const Pi=3.14; var Polomer, Plocha : Real; deklarační část begin writeln('zadej polomer kruhu'); readln(polomer); {cteni z klavesnice} Plocha:=Pi*Polomer*Polomer; {vypocet} writeln('plocha kruhu je ',Plocha:10:2); end. příkazová část 15

16 Proměnná proměnná je datový objekt, jehož hodnota se v průběhu výpočtu může měnit každá proměnná je určitého typu a tím je definována množina povolených hodnot proměnné a také množina povolených operací s nimi typ proměnné se určuje v deklarační části deklarací proměnné se určují její vlastnosti, ale nikoliv její hodnota, ta se určí až tzv. přiřazením, které probereme později. 16

17 Standardní datové typy číselný typ celá čísla reálná čísla (s desetinnou částí) logický typ znakový typ moderní programovací jazyky mají další datové typy, např. typ řetězec řada znaků 17

18 Celočíselné datové typy nemají desetinnou část jsou v počítači uloženy přesně výpočty s nimi se provádějí velmi rychle (rozsah odpovídá rozsahu registrů procesoru) výpočty s nimi se provádějí přesně používají se tam, nepotřebujeme použít čísla s desetinnou částí překladače nabízejí typy s různými rozsahy hodnot 18

19 Příklady celočíselných typů integer B tento rozsah je závislý na překladači (zda je 16bitový nebo 32bitový) shortint B smallint B longint B int64 2^63..2^ B byte B word B longword B

20 Operace s celočíselnými typy + * div mod abs (x) sčítání, odčítání, násobení (nesmí se vynechat) celočíselné dělení (celá část podílu) zbytek po celočíselném dělení absolutní hodnota, x sqr (x) druhá mocnina, x 2 výsledkem je vždy celočíselný typ musíme dbát na to, aby výsledek operace nepřekročil povolený rozsah pro daný celočíselný typ 20

21 Příklady celočíselných operací 5 div 2 = 2 3 div 2 = 1 10 div 3 = 3 5 mod 2 = 1 10 mod 3 = 1 10 mod 6 = 4 abs(10) = 10 abs( 5) = 5 abs (0) = 0 sqr(4) = 16 sqr(10)=100 21

22 Reálná čísla jsou to čísla s desetinnou částí nejsou v počítači zobrazena přesně, ale zaokrouhleně, na určitý počet desetinných míst výpočty s nimi jsou pomalejší výpočty s nimi nejsou úplně přesné překladače nabízejí typy s různými rozsahy hodnot a různou přesností (různým počtem desetinných míst) 22

23 Reálná čísla typ rozsah platných míst bajtů Real x 10^ x 10^ Single 1.5 x 10^ x 10^ Double 5.0 x 10^ x 10^ Extended 3.6 x 10^ x 10^ Comp 2^ ^ Currency Real 5.0 x 10^ x 10^ tento typ je závislý na překladači 23

24 Zápis reálných čísel píše se desetinná tečka, nikoliv čárka 1E6 odpovídá hodnotě E5 odpovídá hodnotě E 6 odpovídá hodnotě 0, bez desetinné části, ale je to reálné číslo 24

25 Operace s reálnými čísly + * / sčítání, odčítání, násobení, dělení Abs (x) x, Sqr (x) x 2 Sin (x), Cos (x), x je v radiánech Arctan (x) arcustangens Ln (x) přirozený logaritmus (při základu e) Exp (x) funkce inverzní k Ln (e x ) Sqrt (x) druhá odmocnina čísla (x) výsledkem je vždy hodnota reálná 25

26 Logický typ v Pascalu je nazývá Boolean má dvě hodnoty true pravda false nepravda logický typ je výsledkem při porovnávání dvou hodnot: A = B A se rovná B A < B A je menší než B A > B A je větší než B A <= B A je menší nebo rovno B A >= B A je větší nebo rovno B A <> B A se nerovná B 26

27 Znakový typ hodnotou je jeden znak v PC se používá kód ASCII (American Standard Code for Information Interchange Americký standardizovaný kód pro výměnu informací) každému znaku je přiřazeno jednoznačně pořadové číslo znaky se zapisují mezi dva apostrofy 'A' 'a' pozor, toto jsou rozdílné znaky! '4' ' ' '' toto je znak, není to hodnota znak mezery, aby nedošlo k omylu prázdný (žádný) znak 27

28 28 Tabulka ASCII del 127 o 111 _ 95 O 79? 63 / 47 ~ 126 n 110 ^ 94 N 78 > } 125 m 109 ] 93 M 77 = l 108 \ 92 L 76 < 60, 44 { 123 k 107 [ 91 K 75 ; z 122 j 106 Z 90 J 74 : 58 * 42 y 121 i 105 Y 89 I ) 41 x 120 h 104 X 88 H ( 40 w 119 g 103 W 87 G ' 39 v 118 f 102 V 86 F & 38 u 117 e 101 U 85 E % 37 t 116 d 100 T 84 D $ 36 s 115 c 99 S 83 C # 35 r 114 b 98 R 82 B '' 34 q 113 a 97 Q 81 A ! 33 p 112 ` 96 P mezera 32 znak kód znak kód znak kód znak kód znak kód znak kód

29 Ordinální datové typy platí pro ně: každá hodnota má svoje pořadové číslo každá hodnota má předchůdce každá hodnota má následníka patří sem tyto datové typy celočíselné (integer) znakový typ (char) logický typ (boolean) výčtový typ typ interval nepatří sem reálné typy (s desetinnou částí) 29

30 Ordinální datové typy pro ordinální typy platí tyto operace ord (x) dává ordinální (pořadové) číslo prvku x succ (x) dává následníka prvku x (jehož ordinální číslo je o 1 větší než x) pred (x) dává předchůdce prvku x (jehož ordinální číslo je o 1 menší než x) 30

31 Deklarace proměnných hodnota proměnné se v programu obvykle mění deklaruje se v části var obsahuje seznam identifikátorů, které označují nové proměnné a jejich typ var Identifikátor : Datový_typ; příklady var PocetZaku : integer; Polomer, Plocha : single; Splneno : boolean; 31

32 Deklarace konstant konstanta je datový objekt, jehož hodnota se v průběhu výpočtu nemění konstanty mohou být číselné, znakové, řetězcové, logické při deklaraci konstant se neuvádí jejich typ, typ konstanty si překladač domyslí podle přiřazované hodnoty ve vlastním programu se na konstantu odkazujeme jejím jménem v Pascalu je celá řada předdefinovaných konstant, např. Pi 32

33 Deklarace konstant const Pi= ; // reálná konstanta Splneno=False; //logická konstanta PocetTrid=14;// celočíselná konstanta výhoda potřebujeme-li změnit její hodnotu, změní se v deklarační části na jediném místě 33

34 Příkaz výstupu slouží k výpisu hodnoty na obrazovku dvě podoby: write po výpisu hodnot další výpis pokračuje těsně za poslední hodnotou writeln další výpis pokračuje na začátku nového řádku writeln (výraz) nebo writeln(výraz, výraz, ) 34

35 Příkaz výstupu výraz: číslo proměnná, konstanta libovolné (povolené) operace s předchozími objekty 'Text uzavřený v apostrofech, zde rozlišují velká a malá písmena writeln další tisk bude na novém řádku, odřádkuje 35

36 Příkaz vstupu slouží k zadání hodnoty od uživatele z klávesnice zadání se ukončí stiskem klávesy ENTER podoby příkazu vstupu: 36 read (proměnná) přečte hodnotu z klávesnice a přiřadí ji dané proměnné readln (proměnná) přečte hodnotu z klávesnice a přiřadí ji dané proměnné a odřádkuje, další text bude na nové řádce readln (proměnná1,..., proměnnán) čte zklávesnice více hodnot a přiřazuje je příslušným proměnným, jednotlivé hodnoty se ukončují stiskem klávesy ENTER. Proměnné v závorce mohou být různého typu

37 Příkaz vstupu Readln bez závorek a proměnných v nich zastaví chod programu a čeká na stisk klávesy Enter, nepřiřazuje žádnou hodnotu žádné proměnné pokud zadávaná hodnota neodpovídá datovému typu uvedenému v deklarační části, program se zastaví a zobrazí chybové hlášení 37

38 Přiřazovací příkaz přiřazuje proměnné hodnotu, slouží k zadání nebo ke změně aktuální hodnoty proměnné novou hodnotou tvar přiřazovacího příkazu: proměnná := výraz ; operátor přiřazení := se nesmí rozdělit mezerou typ proměnné musí být definován v deklarační části není povoleno přiřazení jedné hodnoty více proměnným ve tvaru a:=b:=c:=1; musíme použít 3 samostatné přiřazovací příkazy a:=1; b:=1; c:=1; 38

39 Složený příkaz ve většině strukturovaných příkazů je povoleno použít v jejich konstrukci jen jeden jediný příkaz potřebujeme-li použít více příkazů, zavádíme tzv. složený příkaz, který má tvar begin příkaz1; příkaz2;... příkazn; end; 39

40 Složený příkaz příkazy ve složeném příkazu jsou prováděny v tom pořadí, v jakém jsou napsány počet příkazů v posloupnosti není omezen (nemusí být ani jeden) v dalším textu budeme pod slovem příkaz rozumět i složený příkaz klíčová slova begin a end tvoří v programu jakési "příkazové závorky", mohou se v něm vyskytovat pouze ve dvojicích pro přehlednost píšeme příslušné begin a end stejně daleko od levého okraje, tedy pod sebe 40

41 Jednoduchá podmínka slouží k naprogramování činnosti, kterou program vykoná pouze při splnění dané podmínky IF Podmínka THEN Příkaz; Podmínka je výraz typu Boolean a Příkaz může být jednoduchý nebo složený je-li Podmínka splněna (tj. nabývá hodnoty true), provede se příkaz za slovem THEN, není-li splněna (nabývá hodnoty false), příkaz se přeskočí a pokračuje se následujícím příkazem 41

42 Úplná podmínka větví chod programu do dvou cest v závislosti na platnosti podmínky IF Podmínka THEN Příkaz1 ELSE Příkaz2; je-li Podmínka splněna (tj. nabývá hodnoty true), provede se Příkaz1 za slovem THEN, není-li splněna (nabývá hodnoty false), provede se Příkaz2 za slovem ELSE před slovem ELSE se středník nepíše (při použití složeného příkazu) 42

43 Vnořené podmínky v podmíněném příkazu může být za klíčovým then nebo else uveden libovolný příkaz, tedy i opět podmíněný příkaz tuto konstrukci používáme pro větvení do více než dvou cest, nejčastěji do tří cest (pro větvení do více cest použijeme jiný příkaz tzv. přepínač case) nejčastěji taková struktura vypadá následovně: If Podmínka1 Then Příkaz1 Else If Podmínka2 Then Příkaz2 Else Příkaz3; 43

44 Vnořené podmínky u vnořených podmínek není vždy na první pohled patrná struktura vnoření Pascal chápe varianta else tvoří dvojici s nejbližším předchozím then, které ještě nemá variantu else při užívání složitějších vnořených podmíněných příkazů je vhodné užívat příkazových závorek begin a end pro ohraničení neúplného podmíněného příkazu, vyvarujeme se tím těžko odhalitelných chyb. 44

45 Příkaz CASE větvení programu do více než dvou variant je možné řešit buď do sebe vnořenými podmínkovými příkazy IF anebo řadou po sobě jdoucích příkazů IF přehlednější je použití tzv. přepínače CASE: CASE výraz OF konstanta1 : příkaz1; konstanta2 : příkaz2;... konstantan : příkazn; END; 45

46 Příkaz CASE výraz smí být pouze ordinálního typu (Integer, Char aj.) konstanta před dvojtečkou může být jedna nebo jich může být více oddělených čárkami každá konstanta smí být v seznamu uvedena jen jednou přepínač funguje takto: vypočte se hodnota výrazu za slovem CASE. Je-li nalezena konstanta rovná výrazu, provede se příkaz na příslušném řádku a program pokračuje za slovem END. Pokud není nalezena konstanta se stejnou hodnotou jako je výraz, nic se neprovede a pokračuje se za slovem END. 46

47 Příkaz CASE druhá podoba příkazu CASE může být: CASE výraz OF 47 konstanta1 : příkaz1; konstanta2 : příkaz2;... konstantan : příkazn; ELSE příkazp END; pracuje stejně jako první verze s tím rozdílem, že pokud není nalezena konstanta se stejnou hodnotou jakou má výraz, provede se příkaz za slovem ELSE

48 Příkazy cyklu cykly jsou programové konstrukce, které umožňují předepsat opakované provádění příkazu nebo skupiny příkazů příkazu (skupině příkazů), který se v cyklu opakuje, říkáme tělo cyklu Pascal rozlišuje tři druhy cyklu: cyklus se vstupní podmínkou cyklus s výstupní podmínkou cyklus s určeným počtem opakování 48

49 Cyklus se vstupní podmínkou 49 WHILE Podminka DO Prikaz; je-li vstupní podmínka splněna (nabývá hodnoty true), provede se příkaz uvedený za slovem DO a znovu se testuje vstupní podmínka. Má-li hodnotu false, tělo cyklu se přeskočí a pokračuje se následujícím příkazem za cyklem má-li podmínka hodnotu false již při prvním průchodu cyklem, cyklus se neprovede ani jednou má-li podmínka stále hodnotu true, vznikne nekonečný cyklus za slovem DO smí být jen jeden příkaz, potřebujeme-li jich více, použijeme složený příkaz

50 Cyklus s výstupní podmínkou REPEAT Příkaz1; Příkaz2;... PříkazN; UNTIL Podmínka; provede se tělo cyklu a vyhodnotí se podmínka, má-li hodnotu FALSE, opakuje se znovu tělo cyklu. při hodnotě TRUE se cyklus opouští a program pokračuje prvním příkazem za cyklem 50

51 Cyklus s výstupní podmínkou tento cyklus se provede vždy alespoň jednou mezi slovy REPEAT a UNTIL smí být libovolný počet příkazů bez nutnosti použít složeného příkazu má-li Podmínka stále hodnotu false, pak je cyklus nekonečný 51

52 Cyklus se zadaným počtem opakování cyklus s řídící proměnnou FOR I:= DolníMez TO HorníMez DO Příkaz; do řídící proměnné se přiřadí dolní hodnota a není-li větší než horní hodnota, provede se tělo cyklu (za slovem do) řídící proměnná se zvýší o jedničku a nepřesáhne-li horní mez, provede se opět tělo cyklu překročí-li hodnota řídící proměnné horní mez, cyklus se už neprovede a pokračuje se prvním příkazem za cyklem řídící proměnná se může zvýšit jen o hodnotu 1 52

53 Cyklus se zadaným počtem opakování příkaz za slovem DO smí být jen jeden, jinak použijeme složený příkaz tento cyklus se nemusí provést ani jednou řídící proměnná smí být ordinálního typu (celočíselná, znaková, ale nesmí být reálná) tento cyklus nemůže být nekonečný, protože řídící proměnná má konečný počet hodnot v těle cyklu se nesmí měnit hodnota řídící proměnné (některé překladače to ani nepovolí) 53

54 Cyklus se zadaným počtem opakování druhá varianta: FOR I:= HorníMez DOWNTO DolníMez DO Příkaz; druhá podoba cyklu pracuje obdobně, jen první číslo je větší než druhé a jednička se odečítá, počítání probíhá pozpátku 54

55 Podprogramy důvody zavedení podprogramů: zkrácení délky programu pokud se v programu vyskytovala část vícekrát, naprogramovala se jednou jako podprogram a na patřičných místech se podprogram zavolal výsledný program se zkrátil program stal se přehlednější 55

56 Podprogramy přehlednější program celý program se rozdělí na několik menších a tudíž jednodušších problémů hlavní program pak podprogramy jen ve vhodném pořadí volá výhodou je i snadnější ladění samostatných podprogramů programy sestavené z podprogramů lze snadněji modifikovat, přizpůsobovat novému zadání podprogramy výrazně zvyšují srozumitelnost programu 56

57 Podprogramy v Pascalu Pascal rozeznává dva druhy podprogramů Procedura je to pojmenovaná posloupnost příkazů, má charakter příkazu, volání procedury je příkaz Funkce je proceduře podobná, má však charakter výrazu, jejím úkolem je vypočítat nějakou hodnotu určitého typu, volání funkce je výraz podprogramy je nutné deklarovat (definovat) v deklarační části var, na vzájemném pořadí procedur a funkcí v deklarační části nezáleží 57

58 Funkce funkce je podprogram, který vypočítá jednu hodnotu určitého datového typu a tuto hodnotu dodá volajícímu programu, říkáme také, že funkce vrací hodnotu deklarace funkce FUNCTION Jméno(vstupní parametry):typ výsledku; lokální deklarace (Label, Const, Type, Var, Procedure, Function) 58 Begin Příkazy; Jméno:=vypočtená hodnota; End;

59 Funkce volání funkce je výraz, volání funkce může být všude tam, kde v Pascalu může být výraz výslednou hodnotou funkce může být: jednoduchý datový typ (integer, real, char, boolean) řetězec string ukazatel výslednou hodnotou nesmí být strukturovaný datový typ jako je pole, záznam, soubor 59

60 Funkce posledním vykonaným příkazem funkce musí být přiřazení jmeno_funkce:=vypoctena_hodnota; umístěné nejčastěji na konci deklarace těla funkce, tato hodnota se odevzdává do místa vyvolání funkce funkce může mít libovolný počet vstupních parametrů libovolných datových typů, jejich počet je dán tím, co funkce počítá a co k tomu potřebuje za vstupní hodnoty vstupní parametr je hodnota (hodnoty), kterou funkce potřebuje pro svůj výpočet 60

61 Funkce voláním funkce je výraz, nejčastěji na pravé straně přiřazovacího příkazu nebo v příkazu výstupu writeln. proměnná := Jméno(parametry); Writeln(Jméno(parametry)); 61

62 Příklad funkce: tangens úhlu program funkce; var alfa, Vysledek:single; function Tg(uhel:single):single; begin Tg:=Sin(uhel)/Cos(uhel); end; {Tg} begin alfa:=pi/6; {30 stupnu} Vysledek:=Tg(alfa); writeln(vysledek:10:5); readln; end. 62

63 Parametry funkce uhel je formální parametr, jeho jméno není nikde deklarované, vyskytuje se jen v hlavičce a v těle deklarace funkce, volíme takové jméno, které nám vyhovuje pro danou funkci alfa je skutečný parametr, při volání funkce dosadíme skutečnou hodnotu parametru, skutečný parametr může být výraz, je-li jím proměnná, musí být deklarovaná v části var hlavního programu 63

64 Procedury procedury použijeme tam, kde se nedá použít funkce např. potřebujeme více výstupních hodnot, případně nepotřebujeme nic vypočítat, jen něco vypsat nebo vykreslit na obrazovku apod. volání funkce je příkaz ukončený středníkem procedury: bez parametrů s parametry (vstupními, výstupními, obojími) 64

65 Deklarace procedury procedure Jmeno(vstupní paramenty, výstupní parametry); lokální deklarace (label, const, type, var, procedure, function); begin end; {tělo procedury} 65

66 Procedury bez parametrů deklarace procedury bez parametrů: procedure JmenoProcedury; lokální deklarace const, type, var, begin příkazy; end; za jménem procedury nejsou uvedeny žádné parametry procedura je pro svoji činnost nepotřebuje 66

67 Procedury bez parametrů všechny objekty uvedené v deklarační části procedury jsou lokální, existují jen po dobu práce procedury, po ukončení práce se z paměti odstraňují tyto objekty nejsou přístupné z vnějšího volajícího programu, ten k nim nemá přístup používání procedur (podprogramů obecně) přispívá k šetření paměti všechny proměnné nemusí existovat současně a blokovat tak paměť se svým okolím mohou komunikovat jen přes globální proměnné 67

68 Procedury bez parametrů příklad: smazání obrazovky řešení: použijeme tolik příkazů odřádkování, kolik jich má textová obrazovka (obvykle 50) program Mazani; procedure SmazObrazovku; var I:integer; //lokalni promenna begin for I:=1 to 50 do writeln; end; {SmazObrazovku} begin {hlavni program} SmazObrazovku; {volani procedury} end. 68

69 Procedury s parametry vstupní parametry slouží pro přenos hodnot do procedury (stejně jako u funkce), procedura tyto hodnoty potřebuje ke své práci (výpočtu); v hlavičce procedury se napíše seznam vstupních parametrů i s jejich datovými typy vstupními parametry jsou výrazy výstupní parametry slouží k předání výsledků práce procedury volajícímu programu, obvykle jich bývá od 2 více; v hlavičce procedury se označují klíčovým slovem var výstupními parametry mohou být jen proměnné protože pouze do proměnných může procedura uložit výsledky své práce 69

70 Příklad procedury s parametry program PrikladProcedury; var soucet, rozdil : integer; procedure Vypocitej(c1, c2:integer; var sou, roz:integer); begin sou:=c1+c2; roz:=c1-c2; end; {Vypocitej} begin Vypocitej(100,20,soucet,rozdil); {volani procedury je prikaz} writeln('soucet: ',soucet); writeln('rozdil: ',rozdil); readln; end. 70

71 Parametry podprogramů zatím jsme si parametry dělili na vstupní parametry výstupní parametry ve skutečnosti se parametry dělí na: parametry volané hodnotou parametry volané odkazem 71

72 Parametry volané hodnotou v hlavičce procedury (i funkce) se nijak zvlášť neoznačují (nemají před sebou klíčové slovo var) slouží pro předání hodnoty dovnitř procedury (funkce) je-li jako skutečný parametr uvedena proměnná, předá se do procedury její kopie pokud procedura (funkce) ve svém těle změní hodnotu vstupního parametru, změní se hodnota jen této kopie proměnné, skutečná hodnota proměnné zůstane nezměněna, proto parametr volaný hodnotou je vhodný jako vstupní parametr do procedury (i funkce), nehrozí jeho nechtěné přepsání 72

73 Parametry volané hodnotou další výhodou je možnost předání skutečné hodnoty nejen z nějaké proměnné, ale lze takto předat do procedury libovolný výraz 73

74 Parametry volané odkazem v hlavičce procedury se označují klíčovým slovem var před jmény parametrů jako skutečný parametr volaný odkazem smí být (na rozdíl od parametru volaného hodnotou) jen globální proměnná a nikoliv výraz procedura ve svém těle pracuje se skutečnou (globální) proměnnou (nikoliv s její kopií), takže každá její změna v těle procedury se promítne v její hodnotě, hodí se tedy jako výstupní parametr procedury, je to jediný mechanismus, jak může procedura předat výsledek své práce do globální proměnné 74

75 Parametry volané odkazem parametr volaný odkazem lze použít i jako vstupní parametr, zde hrozí nebezpečí jeho nechtěného přepsání, proto jako vstupní volíme raději parametr volaný hodnotou 75

76 Volba způsobu předávání parametrů píšeme-li podprogram, musíme se rozhodnout, které parametry budou předávány hodnotou a které odkazem. Rozhodovat se budeme podle těchto pravidel: Pokud parametr slouží k přenesení hodnoty z podprogramu ven, musí být vždy předán odkazem (je to výstupní parametr) Pokus parametr slouží k přenesená hodnoty jednoduchého typu (integer, real, char, boolean, string) dovnitř podprogramu, předáváme jej (zpravidla) hodnotou (vstupní parametr). Předání hodnotou je nutné, chceme-li, aby skutečným parametrem mohl být výraz 76

77 Volba způsobu předávání parametrů velké strukturované proměnné (pole, záznamy) předáváme zpravidla odkazem. Předávání hodnotou zvolíme pouze tehdy, pokud si přejeme, aby podprogram pracoval s kopií struktury 77

78 Datové struktury datové typy celá čísla (integer), reálná čísla (real), logické hodnoty (boolean) a znaky (char) patří mezi jednoduché datové typy jednoduché datové typy jsou dále nedělitelné pro mnohé algoritmy jsou tyto jednoduché datové typy nedostačující, algoritmus by ani nešel pro ně sestavit proto programovací jazyky nabízejí i složitější datové struktury, které lépe poslouží k sestavení jednoduchého algoritmu 78

79 Datové struktury Pascal nabízí tyto datové struktury pole záznam soubor 79

80 Pole datový typ pole se skládá z uspořádané množiny hodnot jistého datového typu (např. Integer, Real, Char, Boolean) každé takové hodnotě říkáme složka nebo častěji prvek pole všechny prvky pole jsou stejného datového typu a jejich počet musí být předem znám jednotlivé prvky pole jsou označovány hodnotami nějakého ordinálního typu, nejčastěji Integer. Jde vlastně o pořadí (pořadová čísla) jednotlivých prvků 80

81 Pole, deklarace pole pole se 6 prvky typu integer indexy indexy obecně nemusejí začínat číslem 1, ale libovolnou hodnotou daného ordinálního typu deklarace pole: první index poslední index var Pole : Array [1..100] of Integer; Cetnost : Array ['A'..'Z'] of Integer; Odchylky : Array [-2..8] of Real; 81

82 Práce s prvky pole z hodnot prvního a posledního indexu překladač spočítá počet prvků pole (horní dolní + 1) za jméno pole doplníme do hranaté závorky index, který nám označuje konkrétní prvek pole, se kterým pracujeme přiřazení do prvku pole: Pole[3]:=34; Pole[67]:=-123; Cetnost['K']:=12; Odchylky[0]:=3.23; Polovina:=Pole[6] DIV 2; A:=Odchylky[6]/Pole[Polovina]; 82

83 Pole musíme dbát, aby index pole "nevyběhl" z daného intervalu, jinak počítač ohlásí chybu pole lze použít i jako konstanta const DnyVMesici:Array [1..12] of Integer = (31,28,31,30,31,30,31,31,30,31,30,31); deklarace je podobná jako u proměnné, za typem prvků se napíše rovnítko a do kulaté závorky se napíší hodnoty oddělované čárkami 83

84 Řetězce řetězec je řada několika znaků, na rozdíl od typu char, ten představuje jen jeden znak pro řetězce Pascal rozšiřuje základní datové typy o typ string deklaruje se s udáním maximální délky nebo bez udání maximální délky (pak je délka 255 znaků, nebo jiná podle typu překladače) var jmeno:string[20]; //délka je 20 znaků radek:string[80]; //délka je 80 znaků retez:string; // délka je 255 znaků 84

85 Řetězce řetězec se zapisuje do apostrofů: 'Toto je retezec' prázdný řetězec řetězec s délkou 0 znaků: Prazdny:='' (dva apostrofy vedle sebe) indexy pole jsou celočíselného typu existuje i prvek s indexem [0], ve kterém je počet znaků řetězce 85

86 Řetězce přiřadí-li se do řetězce více znaků, než je v deklaraci, znaky nad uvedený počet se vynechají var maly : string[6]; maly:='turbopascal'; v proměnné maly zůstane: 'TurboP' 86 stejně jako u typu pole (array) lze pracovat s jednotlivými prvky řetězce. Řetězec je vlastně pole znaků, index prvního znaku je 1, index posledního znaku se zjistí funkcí lenght jmeno:='martin' writeln(jmeno[2]) vypíše znak 'a' writeln(jmeno[4]) vypíše znak 't'

87 Operace s řetězci funkce Length (Retezec) udává počet znaků v Retezci, výsledkem je číslo typu Integer. Funkce, bez které se neobejdeme :) jmeno:='martin' PocetZnaku :=Length (jmeno) výsledek je 6 87

88 Operace s řetězci procedura Str (Cislo, Retezec) převede číselnou hodnotu Císlo do podoby znakového řetězce Cislo může být typu integer nebo real Retezec vypadá přesně tak, jak by ho vypsal příkaz writeln na obrazovku Str(2010, Slovo) Str(22/7:6:3,Slovo) výsledkem bude: '2010' výsledkem bude: ' 3.143' 88

89 Operace s řetězci procedura Val (Retezec, Cislo, Chyba) převede Retezec do proměnné Cislo (integer nebo real) není-li Retezec korektní (je-li v něm znak, který do zápisu čísla nepatří), uloží se pořadí tohoto vadného znaku do proměnné Chyba (Integer), při správném převodu se nastaví Chyba na nulu Retezec:='322H'; Val(Retezec,Cislo,Chyba); v proměnné Chyba bude 4, písmeno H nemá vzápisu čísla být 89

90 Operace s řetězci funkce Pos (Podretezec, Retezec) vyhledá Podretezec v Retezci když najde výsledkem je pozice 1. znaku výskytu Podretezce v Retezci když nenajde výsledkem bude číslo 0. Retezec:= Rozumim programovani writeln(poz('umim',retezec)) vytiskne 4, začíná na 4. pozici writeln(poz('ahoj',retezec)) vytiskne 0, protože 'ahoj' v Reztezci není 90

91 Operace s řetězci funkce Concat (Retezec1, Retezec2,..., RetezecN) spojí (zřetězí) posloupnost řetězců do jednoho výsledného řetězce. Je-li výsledný řetězec delší než 255 znaků, nadbytečné znaky nad počet 255 se z řetězce vypustí. spojovat řetězce je možné také pomocí znaménka + Vysledny:='Turbo'+'Pascal' v proměnné Vysledny bude řetězec 'TurboPascal' 91

92 Operace s řetězci funkce Copy (Retezec, Od, Pocet) vrací část Retezce začínající na pozici Od (typu integer) délky Pocet (typu integer). je-li hodnota Od menší než 1 nebo větší než skutečná délka řetězce, výsledkem bude prázdný řetězec je-li parametr Pocet větší než počet znaků zbývajících do konce řetězce, funkce Copy vrátí jen tolik znaků, kolik jich zbývá do konce řetězce Novy:=Copy('TurboPascal',4,5) bude v proměnné Novy hodnota 'bopas' 92

93 Operace s řetězci procedura Delete (Retezec, Od, Pocet) odmaže část Retezce začínající na pozici Od (Integer) délky Pocet (Integer) je-li hodnota Od menší než 1 a větší než skutečná délka řetězce, neodstraní se z Retezce žádné znaky je-li parametr Pocet větší než počet znaků zbývajících do konce řetězce, odstraní se znaky pouze do konce Retezce Delete('TurboPascal', 3,4) z řetězce zbyde: 'Tuscal' 93

94 Operace s řetězci procedura Insert (Novy, Retezec, Od) vloží řetězec Novy do Retezce od pozice Od (Integer) má-li vzniknout řetězec s více jak 255 znaky, nadbytečné znaky se vypustí je-li pozice Od < 1, vloží se řetězec Novy od pozice 1, tedy od počátku je-li pozice Od větší než skutečný počet znaků Řetězce, zůstane Retezec beze změny Retezec:='Pascal'; Insert('***',Retezec,3); výsledek bude: 'Pa***scal' 94

95 Spolupráce typů char a string: do proměnné typu string lze přiřadit hodnoty typu char (na datový typ char můžeme pohlížet jako na jednoznakový řetězec): var zavinac: char; jmeno, mail : string; begin zavinac:='@'; jmeno:='jan.novak'; mail:=jmeno+zavinac+'seznam.cz'; writeln(mail); end. 95

96 Spolupráce typů char a string: do proměnné char lze přiřadit jeden znak z řetězce: var znak:char; ret:string; begin ret:='pascal'; znak:=ret[2]; {druhy znak retezce} writeln(znak); readln; end. 96

97 Vícerozměrná pole v Pascalu můžeme mít i pole s více indexy, tedy vícerozměrná pole počet dimenzí pole není omezen obvykle budeme používat dvourozměrné pole (tabulka), umíme si ještě představit třírozměrné pole deklarace: Array [1..10,1..10] Of Integer; v hranaté závorce jsou dva rozsahy indexů, řádkový a sloupcový 97

98 Vícerozměrná pole dvourozměrné pole 4x4 prvků [1,1] [1,2] [1,3] [1,4] [2,1] [2,2] [2,3] [2,4] [3,1] [3,2] [3,3] [3,4] hodnoty [4,1] [4,2] [4,3] [4,4] indexy pole 98

99 Typ interval počet možných hodnot daného datového typu může být pro některé aplikace příliš velký, často využíváme jen nepatrný interval typ interval je popsán minimální a maximální hodnotou (mohou to být i konstanty), tvoří tedy souvislou podmnožinu hodnot nějakého ordinálního typu deklaruje se v části type type TDen = 1..31; TMesic = 1..12; TRok = ; TCislice = '0'..'9'; 99 TVelkaPismena = 'A'..'Z';

100 Typ interval interval si zachovává všechny vlastnosti původního datového typu mimo rozsahu hodnot a jména ordinální čísla zůstávají rovněž původní 100

101 Výčtový typ při psaní programů se setkáváme s potřebou zobrazit určitý údaj, který nabývá pouze malého počtu různých hodnot Pro tyto účely zavádí Pascal výčtový typ. Konkrétní výčtový typ se definuje seznamem (vyjmenováním) všech jeho hodnot, deklaruje se v části type takto type TStav = (svobodny, zenaty, rozvedeny, vdovec); TDen = (pondeli, utery, streda, ctvrtek, patek, sobota, nedele); TBarvy = (bila, zluta, modra, zelena, cervena, hneda, seda, cerna); TKarty = (krize, listy, kara, srdce); 101

102 Výčtový typ výčtový typ je ordinálním typem, uspořádání je dáno pořadím zápisu hodnot ve vyjmenovaném seznamu první hodnota v seznamu je nejmenší a poslední největší ordinální čísla jsou hodnotám přiřazena postupně od 0 do n 1 (kde n je počet hodnot výčtového typu) rovněž podle pořadí v seznamu platí pro ně relační (porovnávací: <, >, <> apod) operace a funkce ord, succ a pred. jiné operace nelze užít 102

103 Výčtový typ není možné hodnoty výčtového typu získat přímo ze vstupu příkazem readln a předávat je na výstup příkazem writeln pro tyto činnosti bychom museli sestavit procedury, které by tyto činnosti zajišťovaly 103

104 Výčtový typ Příklad procedury vypisující dny v týdnu: Procedure TiskDnu(D:Den); Begin Case D of pondeli : Write('pondělí'); utery : Write('úterý'); streda : Write('středa'); ctvrtek : Write('čtvrtek'); patek : Write('pátek'); sobota : Write('sobota'); 104 End; End; nedele : Write('neděle');

105 Datový typ záznam datový typ pole má všechny složky stejného základního datového typu pro popis reálných objektů se příliš nehodí skutečné objekty mají velký počet vlastností obvykle různých typů nejběžnější metodou vytváření strukturovaných datových typů je spojování libovolných prvků do složených typů pro popis těchto objektů Pascal nabízí strukturovaný datový typ záznam 105

106 Záznam příklad záznamu Jméno Příjmení Pohlaví Stav Den Měsíc Rok záznam je datová struktura skládající se z několika položek různého typu počet položek záznamu je předem neomezený, ale konečný 106

107 Záznam jména a typy položek záznamu se specifikují popisem, který má obecný tvar : Record jméno položky1: typ1; jméno položky2: typ2;... jméno položkyn: typn; end; 107

108 Deklarace typu záznam type TDatum = record den : 1..31; mesic : 1..12; rok : end; TOsoba = record Prijmeni : String[12]; Jmeno : String[20]; Narozeni : Datum; Pohlavi : String[4]; Stav : String[10]; end; var D, Dnes : TDatum; Pracovnik : TOsoba; 108

109 Záznam přístup k jednotlivým položkám proměnné typu záznam se provádí následovně: promenná typu záznam. jméno složky nastavení datumu se může provést následovně : D.den := 23; D.mesic := 12; D.rok := 1988; 109

110 Záznam hodnota proměnné typu záznam může být přiřazena jediným přiřazovacím příkazem jiné proměnné stejného typu. Je tedy přípusný příkaz: Dnes := D; jehož činnost je stejná jako činnost trojice příkazů Dnes.Den := D.Den; Dnes.Mesic := D.Mesic; Dnes.Rok := D.Rok; 110

111 Soubory typ soubor popisuje posloupnost hodnot stejného typu, které jsou uloženy na vnější paměti, nejčastěji tedy na pevném disku počet složek souboru není pevně stanoven v deklaraci a je proměnlivý soubor se v programu deklaruje jako proměnná, ukteré se musí určit typ složek 111

112 Typy souborů v Pascalu textové znaky jsou organizovány do řádku, které jsou zapisovány bezprostředně za sebou, délka řádků je proměnná a řádky jsou navzájem odděleny znaky #13 a #10 (hexa kódy 13 a 10 CR a LF ), které znamenají návrat na začátek řádky a přesun na nový řádek typové jednotlivé složky mají stejnou délku a následují bezprost-ředně za sebou netypové jednotlivé složky mají stejnou délku, mohou obsahovat data libovolného typu a struktury, používají především pro přímý přístup na disk, bez rozlišení typů a struktur přenášených položek 112

113 Deklarace typu souboru deklarace typu soubor je v části var tvořena klíčovým slovem FILE OF, za kterým následuje typ složky, který může být libovolný s výjimkou typu soubor. Takto je deklarován typový soubor, pro textové soubory je předdeklarován typ TEXT, netypové soubory deklarujeme klíčovým slovem FILE. příklad: Var typový : FILE OF integer; textový : TEXT; netypový : FILE; 113

114 Soubory Při práci se soubory musíme dodržet následující sled úkonů: přiřazení jména souboru otevření souboru operace se souborem zavření souboru 114

115 Textové soubory Přístup ke složkám textového souboru je sekvenční (postupný), to znamená, chceme-li např. pracovat s padesátým řádkem, musíme jich nejprve 49 "odebrat", pak máme přístup k padesátému. deklarace textového souboru: var Soubor : Text; MujText : Text; 115

116 Textové soubory přiřazení jména souboru pro každý soubor je nejprve nutné přiřadit proměnné typu soubor jméno skutečného souboru na disku, nebo tiskárna. To zařizuje procedura ASSIGN. Assign(proměnná typu soubor,jméno souboru) Příklad: Assign(Vystupni, c:\data.txt ) jméno souboru musí splňovat podmínky operačního systému na jméno souboru. Všechny operace s proměnnou Vystupni se budou provádět na diskovém souboru c:\data.txt, tedy na pevném disku C: a na souboru data.txt 116

117 Textové soubory otevření souboru před prací se souborem je třeba ho otevřít, druhy otevření závisí na existenci souboru a na tom, co s ním chceme provádět Rewrite (soubor) založení a otevření nového souboru, pokud soubor se jménem dodaným procedurou Assign již existuje, je jeho obsah přepsán. Je povolen pouze zápis do souboru. Reset (soubor) otevření existujícího souboru. Pokud soubor na disku neexistuje, je signalizována chyba. Je povoleno pouze čtení ze souboru. Append (soubor) otevření existujícího souboru pro zápis za poslední řádku (přidávání do souboru). Pokud soubor na disku neexistuje, je hlášena chyba. 117

118 Textové soubory operace se souborem příkazy vstupu: readln (soubor, proměnná); proměnná musí být typu string přečte ze souboru aktuální řádek a uloží ho do uvedené proměnné vnitřní ukazatel se přesune na další řádek pokud byl již přečten poslední řádek, vznikne chyba běhu programu (nelze číst "za koncem" souboru) 118

119 Textové soubory operace se souborem příkazy výstupu: write (soubor, výraz) nebo write (soubor, výraz1, výraz2,...) writeln (soubor, výraz) nebo writeln (soubor, výraz1, výraz2,...) zapíše do souboru uvedené výrazy (výrazy) v textové podobě 119

120 Textové soubory operace se souborem funkce pro práci s textovými soubory Eof (soubor) zjistí konec souboru, vrací True, je-li ukazatel na konci souboru, jinak vrací False Eoln (soubor) zjistí konec řádku, vrací True, jeli ukazatel nastaven na značku konec řádku (znaky #13#10 ) nebo na konec souboru EOF End Of File = konec souboru EOLN End Of Line = konec řádky 120

121 Textové soubory zavření souboru každý otevřený soubor je třeba také uzavřít (vyrovnávací paměť se zapíše na disk a aktualizují se údaje v adresáři) Close (soubor) 121

122 Textové soubory další operace zrušení souboru: Erase (soubor) po provedení je diskový soubor přiřazený proměnné soubor zrušen, pokud chceme zrušit neexistující soubor, je hlášena chyba přejmenování souboru: Rename (soubor, nové jméno) nové jméno je řetězec znaků, který musí splňovat podmínky operačního systému na jméno souboru. Chceme-li přejmenovat neexistující soubor, je hlášena chyba. 122

123 Typové soubory jednotlivé složky typového souboru mají stejnou délku a následují bezprostředně za sebou protože u typového souboru mají složky stejnou délku, je umožněn: sekvenční (postupný) přístup ke složkám přímý přístup ke složkám zadáním pořadového čísla požadované složky (první složka má pořadové číslo 0) kombinovaný přístup ke složkám (kombinace předchozích přístupů) 123

124 Typové soubory - deklarace Deklarace typového souboru: type TOsoba = Record Prijmeni:String; Jmeno:String; Tel:LongInt; end; var Soubor : File of TOsoba; 124

125 Typové soubory Přiřazení jména souboru: Assign(proměnná typu soubor,jméno souboru) Otevření souboru: Rewrite(soubor) založení a otevření nového souboru. Pokud soubor se jménem dodaným procedurou Assign již existuje, je přepsán, Reset(soubor) otevření existujícího souboru. Pokud soubor na disku neexistuje, je signalizována chyba. u obou typů otevření je možné soubor číst i zapisovat do něj 125

126 Typové soubory operace se soubory příkazy vstupu: Read(soubor,proměnná) nebo Read(soubor,proměnná1,proměnná2,...) je-li uvedena jedna proměnná, je jí přiřazena hodnota aktuální složky souboru a pozice souboru se zvýší o 1 příkazy výstupu: Write(soubor,proměnná) nebo Write(soubor,proměnná1,proměnná2,...) je-li uvedena jedna proměnná, bude její hodnota zapsána do sou-boru a pozice souboru se zvýší o 1 126

127 Typové soubory operace se soubory přístup ke složkám souboru je umožněn nastavením pořadového čísla složky Seek(soubor,pořadí složky) pořadí složky je typu longint při rozšiřování souboru je možné nastavit pozici za poslední složku souboru : 127 Seek(soubor,FileSize (soubor)) nastavení na libovolnou vyšší složku způsobí chybu

128 Typové soubory operace se soubory funkce pro práci s typovými soubory: Eof(soubor) zjištění konce souboru. Výsledek je True, pokud pozice souboru je nastavena na konec souboru FilePos(soubor) výsledek je typu LongInt a vrací pozici v souboru FileSize(soubor) výsledek je typu LongInt a vrací počet složek souboru Truncate(soubor) smazání všech složek od aktuální až do konce souboru 128

129 Typové soubory zavření souboru Zavření souboru Close (soubor) 129

130 130 Literatura

131 Literatura PŠENČÍKOVÁ, Jana. Algoritmizace. 1. vyd. Kralice na Hané : Computer Media s.r.o., s. ISBN PŠENČÍKOVÁ, Jana. Programování v Pascalu. 1. vyd. Kralice na Hané : Computer Media s.r.o., s. ISBN Wikipedie : Otevřená encyklopedie [online] [cit ]. Dostupný z WWW: < 131

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 07. Základní příkazy vstup a výstup hodnot Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 06. Proměnné, deklarace proměnných Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Č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

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2010/11 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou

Více

NPRG030 Programování I, 2016/17 1 / :58:13

NPRG030 Programování I, 2016/17 1 / :58:13 NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování

Více

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná

Více

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů. Základní symboly - písmena A B C Y Z a b c y z - číslice 0 1 2 9 - speciální symboly + - * / =., < > = a další - klíčová slova and array begin case const a další Klíčová slova jsou chráněnými útvary,

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Základy programovacího jazyka Turbo Pascal

Základy programovacího jazyka Turbo Pascal Základy programovacího jazyka Turbo Pascal Programovací jazyk Pascal byl navržen začátkem 70. let profesor Niklaus Wirth z Vysoké školy technické v Curychu Cíle návrhu vytvořit jazyk vhodný pro výuku programování

Více

NPRG030 Programování I, 2017/18 1 / :22:16

NPRG030 Programování I, 2017/18 1 / :22:16 NPRG030 Programování I, 2017/18 1 / 26 20. 10. 2017 11:22:16 Ordinální typy standardní: integer, char, boolean Vlastnosti ordinálních typů: 1. hodnot je konečný počet a hodnoty jsou uspořádány 2. ke každé

Více

dovolují dělení velkých úloh na menší = dekompozice

dovolují dělení velkých úloh na menší = dekompozice Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Více

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování. Delphi lekce 6 Minimum z Object Pascalu Vrátíme se ještě k základům Object Pascalu. Struktura programu Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

PODPROGRAMY PROCEDURY A FUNKCE

PODPROGRAMY PROCEDURY A FUNKCE PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy). JAZYK PASCAL ÚVOD materiály pro studenty Jiráskova gymnázia v Náchodě (verze 2005-10-28) RNDr Jan Preclík, PhD preclik@gymnachodcz Jazyk Pascal byl navržen profesorem curyšské univerzity Niklausem Wirthem

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D.

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D. Programování 2 (NMIN102) Soubory RNDr. Michal Žemlička, Ph.D. Soubor abstrakce vstupního, výstupního či vstupně výstupního zařízení textová, typovaná a netypovaná varianta základní operace: otevření, čtení/zápis,

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

Více

NPRG030 Programování I, 2018/19 1 / :25:37

NPRG030 Programování I, 2018/19 1 / :25:37 NPRG030 Programování I, 2018/19 1 / 26 24. 9. 2018 10:25:37 Čísla v algoritmech a programech 10 26 Poloměr vesmíru 2651 studujících studentů MFF UK 3.142857... Ludolfovo číslo 10 16 stáří vesmíru v sekundách!!!

Více

NPRG030 Programování I, 2015/16 1 / :25:32

NPRG030 Programování I, 2015/16 1 / :25:32 NPRG030 Programování I, 2015/16 1 / 21 22. 10. 2015 13:25:32 Podprogramy Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

VY_32_INOVACE_08_2_04_PR

VY_32_INOVACE_08_2_04_PR Ing. Petr Stránský VY_32_INOVACE_08_2_04_PR Příkazy vstupu - definice Výstupním zařízením může být obrazovka, tiskárna nebo soubor. Jednotlivé údaje se zapisují pomocí příkazu WRITE nebo WRITELN. Příkaz

Více

Ing. Igor Kopetschke TUL, NTI

Ing. Igor Kopetschke TUL, NTI ALGORITMY A DATOVÉ STRUKTURY 1. Organizace dat v paměti, datové typy Ing. Igor Kopetschke TUL, NTI http://www.nti.tul.cz Jednotlivé body Ukládání a a organizace dat Vnitřní paměť Vnější paměť Přístup k

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

Více

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty. Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné

Více

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5 Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

Programy na PODMÍNĚNÝ příkaz IF a CASE

Programy na PODMÍNĚNÝ příkaz IF a CASE Vstupy a výstupy budou vždy upraveny tak, aby bylo zřejmé, co zadáváme a co se zobrazuje. Není-li určeno, zadáváme přirozená čísla. Je-li to možné, používej generátor náhodných čísel vysvětli, co a jak

Více

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4

2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4 Obsah Obsah 1 Jednoduché datové typy 1 2 Strukturované datové typy 2 2.1 Pole.................................. 2 2.2 Záznam................................ 3 2.3 Množina................................

Více

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1 Výraz - syntaxe i sémantika podobné jako v matematice - obsahuje proměnné, konstanty, operátory, závorky, volání funkcí - všechny operátory nutno zapisovat (nelze např. vynechat znak násobení) - argumenty

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

Více

Úvod do programování

Úvod do programování Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

Pseudonáhodná čísla = algoritmicky generovaná náhrada za náhodná čísla

Pseudonáhodná čísla = algoritmicky generovaná náhrada za náhodná čísla Pseudonáhodná čísla = algoritmicky generovaná náhrada za náhodná čísla Použití: - náhodnost při rozhodování např. ve hrách (výběr z více možných stejně dobrých tahů v dané pozici, házecí kostka) - generování

Více

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V. Přiřazovací příkaz V := E, V jednoduchá nebo indexovaná proměnná, E výraz, jehož typ je kompatibilní podle přiřazení s typem proměnné V. 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Více

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,

Více

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu 1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy

Více

O datových typech a jejich kontrole

O datových typech a jejich kontrole .. O datových typech a jejich kontrole Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Typová kontrola Programovací techniky O datových typech

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 13. Práce s řetězci - palindrom Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona:

Více

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

6. Příkazy a řídící struktury v Javě

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Doporučená literatura web: http://marian.fsik.cvut.cz/zapg

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 14. Strukturované datové typy - pole, záznam, množina Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

Stručný návod k programu Octave

Stručný návod k programu Octave Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,

Více

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: vzdělávací

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury, standardní metody Problematika načítání pomocí Scanner Některé poznámky k příkazům Psaní kódu programu Metody třídy Math Obalové třídy primitivních datových

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Odvozené a strukturované typy dat

Odvozené a strukturované typy dat Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu

Více

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných jakési nádoby na hodnoty jsou různých typů při běžné

Více

Řídicí struktury. alg3 1

Řídicí struktury. alg3 1 Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení

Více

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; } Pole Kdybychom v jazyce C++chtěli načíst větší počet čísel nebo znaků a všechny bylo by nutné všechny tyto hodnoty nadále uchovávat v paměti počítače, tak by bylo potřeba v paměti počítače alokovat stejný

Více

CZ.1.07/1.5.00/

CZ.1.07/1.5.00/ Celá čísla Celočíselný typ má označení INTEGER. Kromě tohoto základního jsou k dispozici ještě další celočíselné typy, které uvádí následující tabulka. Každý typ umožňuje definovat určitý rozsah celých

Více

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

POČÍTAČE A PROGRAMOVÁNÍ

POČÍTAČE A PROGRAMOVÁNÍ POČÍTAČE A PROGRAMOVÁNÍ Práce se soubory, čtení dat ze souboru a zapis dat do souboru Miroslav Vavroušek PPI 10 V1.1 Opakovaní z minulé přednášky Moderní metody vývoje softwaru Složení softwaroveho vývojového

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

Práce se soubory. Základy programování 2 Tomáš Kühr

Práce se soubory. Základy programování 2 Tomáš Kühr Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup

Více

1. D Y N A M I C K É DAT O V É STRUKTUR Y

1. D Y N A M I C K É DAT O V É STRUKTUR Y 1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 05. Turbopascal, prostředí TP6, struktura programu v TP Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Programovací jazyk PASCAL Turbo

Programovací jazyk PASCAL Turbo Obsah 1 Programovací jazyk PASCAL Turbo 5 11 Základní prostředky pro zápis programu 5 111 Lexikální symboly jazyka 6 12 Struktura programu 7 13 Část definicí a deklarací 8 131 Deklarace návěští 8 132 Definice

Více

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie

Více

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní

Více

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka X36UNX 16 Numerické výpočty v sh příkazy expr, bc, dc Zdeněk Sojka sojkaz1@fel.cvut.cz dc desk calculator - zadávání příkazů postfixově - data se ukládají do stacku - příkazy obyčejně pracují s jedním

Více

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů Výrazy podle priority operátorů (od nejnižší priority) OPERANDY OPERÁTORY výraz = jednoduché výrazy a relační operátory

Více

Sada 1 - PHP. 03. Proměnné, konstanty

Sada 1 - PHP. 03. Proměnné, konstanty S třední škola stavební Jihlava Sada 1 - PHP 03. Proměnné, konstanty Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a

Více

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina 5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.

Více

Algoritmy a datové struktury 1

Algoritmy a datové struktury 1 Modul 1 Vývojové diagramy a příkazy jazyka Borland Pascal Text pro distanční studium Ing. Eliška Treterová Ostravská univerzita v Ostravě, Přírodovědecká fakulta Katedra Informatiky a počítačů Ostrava

Více