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

Podobné dokumenty
POČÍTAČE A PROGRAMOVÁNÍ

Programovací jazyk Pascal

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

Sada 1 - Základy programování

6 Příkazy řízení toku

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

Sada 1 - Základy programování

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

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

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

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

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

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

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

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

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

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

Řídicí struktury. alg3 1

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Programování v jazyce JavaScript

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

2 Strukturované datové typy Pole Záznam Množina... 4

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

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

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

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

Úvod do programovacích jazyků (Java)

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

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

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

Algoritmizace prostorových úloh

Zápis programu v jazyce C#

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

Jazyk C# a platforma.net

NPRG030 Programování I, 2010/11

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Úvod do programování - Java. Cvičení č.4

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

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

Základy programovacího jazyka Turbo Pascal

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

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

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

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

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

Program a životní cyklus programu

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

Algoritmizace a programování

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

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

ALGORITMIZACE A PROGRAMOVÁNÍ

8 Třídy, objekty, metody, předávání argumentů metod

Řízení toku programu Programátor musí být schopen nějak ovlivňovat běh programu a k tomu má několik možností:

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

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

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Úvod do programování

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

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

PODPROGRAMY PROCEDURY A FUNKCE

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Jazyk PL/SQL Úvod, blok

ADT/ADS = abstraktní datové typy / struktury

Algoritmizace a programování

Algoritmizace a programování

Inovace bakalářského studijního oboru Aplikovaná chemie

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

O datových typech a jejich kontrole

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Elementární datové typy

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Násobení pomocí sčítání

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

Náznak ukázky syntaxe a sémantiky pro projekt. 1 Syntaktické prvky. Poslední aktualizace: 8.

Implementace aritmetického stromu pomocí směrníků

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Martin Hejtmánek hejtmmar

CZ.1.07/1.5.00/

LEKCE 6. Operátory. V této lekci najdete:

OSTRAVSKÁ UNIVERSITA V OSTRAVĚ Pedagogická fakulta Obor informační technologie ve vzdělávání Kombinované studium

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Algoritmizace prostorových úloh

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

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

Sada 1 - Základy programování

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Úvod do programování. Úvod do programování. ing. Miroslav Jílek 2009, SJOP Poděbrady

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

Algoritmizace. 1. Úvod. Algoritmus

Poslední nenulová číslice faktoriálu

Datové typy a struktury

Transkript:

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í byt dodrženy pravidla překrývaní jmen) Každá proměnná je nějakého konkrétního datového typu. Datové typy a struktury Typ určuje jaké data je možné do proměnné uložit a jaké operace lze s proměnnou vykonávat. Jednoduché datové typy Identifikátor Charakteristika Rozsah Ukázka deklarace a iniciace Deklarace: Boolean Booleovská Dva stavy. True a False. (Pravda Ok: Boolean; hodnota a nepravda, 1 a 0) Iniciace: Ok:= True; Integer Celé číslo -32768 až 32767 Deklarace: X: Integer; Iniciace: X:= 5; Real Reálné číslo 2.9*10-39 až 1.7*10 38 X: Real; Iniciace: Deklarace: X:= 2.92; Deklarace: String Text Text:= Ahoj ; ASCII znaky (nemůžete používat Text: String; české znaky) Iniciace: Char Jeden znak textu ASCII znak Deklarace: Znak: Char; Iniciace: Znak:= a ;

Složené datové typy Často nazývané také záznamy. Umožňují definovat komplexnější datové typy. Záznamy jsou složeny z proměnných jednoduchých i složených datových (dříve nadefinovaných) typů. Zapisují se do deklarační části programu. K jednotlivým vnořeným atributům se přistupuje pomocí operátoru. Složený datový typ type Jmeno = record JmenoPromenne: DatovyTyp; //adt. type TBod = record X: Integer; Y: Integer; Jméno: TBod X: Integer; Y: Integer; Vlastnosti: Přistup k jednotlivým vlastnostem Jmeno.JmenoAtributu A:= Bod.X; {Vlozeni hodnoty X souřadnice do proměnné A} Využití dříve definovaných záznamů při definici nových záznamů type TBod = record //Základní datový typ X: Integer; Y: Integer; type TCara = record {Při definici typu je použit Bod1: TBod; dříve definovaný datový typ} Bod2: TBod;

Pole Datová pole představují množiny prvků stejného datového typu. K jednotlivým prvkům pole přistupujeme pomocí indexu. Každé pole je nějakého konkrétního rozměru. Jednorozměrná pole si můžeme představit, jako sloupec tabulky kde každá buňka je zvoleného datového typu. Dvourozměrné pole lze reprezentovat jako tabulku a třírozměrné jako kvádr z krychliček jednotného typu. Pole můžeme rozdělit na statická a dynamická Statická pole Velikost statických polí je známa již při kompilaci. Rozsah je zadán pomocí dvou ordinálních proměnných stejného typu, které určují rozsah Statická pole - deklarace JmenoPole: array [OD..DO] of JmenoDatovehoTypu; Statická pole - použití JmenoPole[index] Statická pole projití celého pole cyklem for-to-do for A:= Low(Pole1) to High(Pole1) do Pole1: array [1..15] of Integer; Pole2: array ['A'..'Z'] of String; Pole1[5]:= 3; {Do prvku s indexem 5 je uložena hodnota 3} A:= Pole2['C']; {Do proměnné A je uložena hodnota prvku s indexem 'C'}

Operátory Aritmetické operátory Identifikátor Operace Ukázka použití + Sčítaní. Datový typ výsledku je určen datovými typy operandů. Pokud je alespoň jeden s operandu typu Real výsledek je také typu Real. X:= 5 + 6; //X = 11 X:= 5.2 + 6; //X = 11.2 C:= A + B; - Odčítání. Datový typ viz +. X:= 5-6; //X = -1 C:= A - B; * Násobení. Datový typ viz +. X: = 5 * 6; //X = 30 C:= A * B; / Děleni. Výsledek je typu Real. X: = 5 / 6; //X = 0.83 div mod Celočíselné dělení. Výsledkem je cela část čísla po dělení. Výsledek je typu Integer. Zbytek po celočíselném dělení. Často nazýván také Modulo. C:= A / B; X: = 47 div 6; //X = 7 X: = -9 div 4; //X = -2 C:= A div B; X: = 47 mod 6; //X = 5 X: = -9 mod 4; //X = -1 C:= A mod B; Booleovské operátory Identifikátor Operace Ukázka použití not gace X: = not True; //X = False B:= not A; and Logicky součin (oba musí platit) X: = True and False; //X = False C:= A and B; or Logicky součet X: = True or False; //X = True (alespoň jeden musí platit) C:= A or B; > Větší X: = 5 > 6; //X = False C:= A > B; < Menší X: = 5 < 6; //X = True C:= A < B; >= Větší a rovno X: = 5 >= 6; //X = False C:= A >= B; <= Menší a rovno X: = 5 <= 6; //X = True C:= A <= B; = Rovná se X: = 5 = 6; //X = False C:= A = B; <> rovná se X: = 5 <> 6; //X = True C:= A <> B;

Řízení toku kódů Konstrukce pro řízení toku kódu slouží buď k větvení (Podmínky) anebo k opakování (Cykly) částí programu. Pomocí těchto konstrukci je dosaženo toho, že program vykoná pouze určité operace a v určitém počtu, podle vstupních dat. Podmínky Podmínky slouží k větvení programu. Zda se má daná část kódu vykonat. Při pohledu na tvorbu programu jako na dialog programátora a počítače umožňují podmínky programátorovi pokládat dotazy počítači. Podmínka musí být výraz, který je možné ohodnotit booleovskou hodnotou ( Ano/ ). If-then Podmínka If-then umožňuje rozhodnout, zda vykonat část kódu. Volitelně muže obsahovat část vykonanou při nesplnění podmínky Podmínka if if Podminka then // Pokud je podmínka splněna if A>B then C:= 2;{Pokud je A větší než B do C vlož 2} Ano A>B C:= 2; Úplná podmínka if-else if Podminka then // Pokud je podmínka splněna end else // Pokud je podmínka nesplněna if A>B then C:= 2;{Pokud je A větší než B do C vlož 2} end else C:= 0;{Pokud A není větší než B do C vlož 0} Ano A>B C:= 2; C:= 0; Case-of

Podmínka case-of umožňuje větvení do více než dvou cest. Vhodná cesta je vybrána podle hodnot v návěstí. Také je možné vytvořit větev, která je vykonána pokud hodnota proměnné neodpovídá žádnému navěstí. Proměnná požita v podmínce case-of musí být ordinálního typu. Podmínka case-of case Proměnná of Hodnota1: // podmínky 1 Hodnota2: // podmínky 2 Hodnota3: // podmínky 3 case A of 1: B:= 5; { podmínky pro A = 1} 2: B:= 8; { podmínky pro A = 2} -1, -2: B:= 3; { podmínky pro A = -1, -2} else B:= 0; { podmínky pro A = ostatní} Hodnota1 Proměnná Hodnota3 A Hodnota2 1 2-1, -2 Ostatní podmínky podmínky podmínky B:= 5; B:= 8; B:= 3; B:= 0;

Cykly Cykly se požívají k určitému počtu opakovaní zvolené části kódů. V jazyku Object Pascalu existují tři typy cyklů. Vhodný typ cyklu je zvolen na základě vlastností vyžadovaných v konkrétní situaci. For-to-do Vlastnosti cyklu for: jčastěji používaný cyklus Používá se všude tam kde je znám počet opakovaní před započetím cyklu Vždy používá některou z proměnných (tzv. řídící proměnná cyklu), která musí být deklarována jako proměnná ordinálního typu Vždy má definovánu počáteční a koncovou hodnotu Cyklus provádí změnu řídicí proměnné automaticky sám Hodnotu řídící proměnné cyklu je zakázáno v těle cyklu měnit. Je jí možné pouze číst. Nikdy nemůže nastat nekonečný cyklus Krok je vždy 1 cyklu nemusí proběhnou ani jednou Cyklus for-to-do vzestupný for Proměnná:=A to B do {Hodnota v proměnná stoupá v jednotlivých opakováních od A do B} for A:=0 to 9 do {Hodnota v A stoupá v jednotlivých opakováních od 0 do 9} Ano (A<=9) A:= 0:9 Cyklus for-downto-do sestupný for Proměnná:=A downto B do {Hodnota v proměnná klesá v jednotlivých opakováních od A do B} for A:=9 downto 0 do {Hodnota v A klesá v jednotlivých opakováních od 9 do 0} Ano (A>=0) A:= 9:0

Příkazy break a continue Tyto příkazy umožňují přerušení vykonávání těla cyklu. Příkaz break přerušuje cely cyklus for-todo. Vztahují se k cyklu, ve kterém jsou zapsány (k nejbližší úrovni vnoření). Cyklus for-to-do příkaz break for Proměnná:=A to B do break; for A:=0 to 9 do if A=5 then break; {Při A = 5 ukončí cyklus. dojde tedy nikdy na 6-9} { cyklu (neproběhne pro A = 5)} Ano (A<=9) break; A:= 0:9 Cyklus for-to-do příkaz continue for Proměnná:=A to B do continue; for A:=0 to 9 do if A=5 then continue; {Při A = 5 ukončí kolo cyklu a pokračuje při A = 6} { cyklu (neproběhne pro A = 5)} Ano (A<=9) A:= 0:9 continue;

Repeat-until Vlastnosti cyklu repeat-until: Používá se všude, kde je před započetím cyklu, není znám počet opakovaní a je vhodné projít alespoň jednou tělo cyklu Podmínka je na konci cyklu. Podmínkou je myšlen jakýkoli výraz o kterém lze rozhodnout Ano/NE Cyklus probíhá při nesplnění podmínky Při nevhodném zadání může vest na nekonečný cyklus Hodnotu proměnné vyžité v podmínce je třeba v cyklu měnit cyklu proběhne alespoň jednou Cyklus repeat-until repeat end until Podmínka; A:= 0; //Iniciace proměnné repeat A:= A + 1; {Změna hodnoty proměnné použité v podmínce. Inkrementace A} end until A>9; //Podmínka A := 0; A := A + 1; A>9 Ano

While-do Vlastnosti while-do: Používá se všude, kde je před započetím cyklu, není znám počet opakovaní a je možné že tělo cyklu nebude potřebovat vůbec vykonat Podmínka je na začátku cyklu. Podmínkou je myšlen jakýkoli výraz, o kterém lze rozhodnout Ano/NE Cyklus probíhá při splnění podmínky Při nevhodném zadání může vést na nekonečný cyklus Hodnotu proměnné vyžité v podmínce je třeba v cyklu měnit cyklu nemusí proběhnou ani jednou Cyklus while-do while Podmínka do //Podmínka A:= 0; //Iniciace proměnné while A<10 do //Podmínka A:= A + 1; {Změna hodnoty proměnné použité v podmínce. Inkrementace A} A := 0; A<10 A := A + 1; Ano

Procedury Vlastnosti procedur: Používá se k zapouzdření dílčích částí algoritmu Využití procedur pomáhá k rozdělení a strukturovaní kódu Pomáhají také ke zvýšení přehlednosti a znuvupoužitelnosti vytvořeného kódu mají návratovou hodnotu (nevrací volajícímu žádnou informaci) Jedná se o předpis toho, co se má udělat Procedury //Implementace procedury 1 procedure Nazev( Atributy); //Telo procedury //Implementace procedury 2 procedure Nazev2; //Bez atributu //Telo procedury //Implementace procedury Draw procedure Draw( colored: Boolean); //Telo procedury //Volani procedur Draw( True); end. //Volani procedur Nazev( Atributy); Nazev2; end. Funkce Vlastnosti funkcí: Mají pro kód obdobný přínos jako procedury Mají návratovou hodnotu (mají nějaký výsledek) Jedná se o operaci Funkce //Implementace funkce 1 function Nazev( Atributy): NavratovyTyp; Nazev:= //Telo funkce //Implementace funkce 2 function Nazev2: NavratovyTyp2; Nazev2:= //Telo funkce //Volani funkci var A: NavratovyTyp; B: NavratovyTyp2; A:= Nazev( Atributy); B:= Nazev2; end. //Implementace funkce 1 function NaDruhou( A: Integer): Integer; NaDruhou:= A*A; //Telo funkce //Volani funkci var A: Integer; A2: Integer; A2:= NaDruhou ( A); end.