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

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

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

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

PODPROGRAMY PROCEDURY A FUNKCE

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

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

Programovací jazyk Pascal

Sada 1 - Základy programování

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

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

ALGORITMIZACE A PROGRAMOVÁNÍ

NPRG030 Programování I, 2010/11

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

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

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

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

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

Sdílení dat mezi podprogramy

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

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.

VY_32_INOVACE_08_2_04_PR

Podprogramy; procedury a funkce

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

Úvod do programování

Tematická oblast: Programování 1 (VY_32_INOVACE_08_1_PR) Anotace: Využití ve výuce: Použité zdroje:

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

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

IAJCE Přednáška č. 7. řízení semaforu na křižovatce = přepínání červená/oranžová/zelená

Dynamické datové typy a struktury

O datových typech a jejich kontrole

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

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

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

Definice funkcí a procedur. Mnoho operací provozujeme opakovaně, proto je hloupé programovat je při každém použití znovu.

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

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

Struktura programu v době běhu

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

Inovace a zkvalitnění výuky prostřednictvím ICT Programování se strukturovanými údaji Programové jednotky

Odvozené a strukturované typy dat

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

Klasický podprogram, který nazýváme procedura. Jedná se v podstatě o příkaz. 1

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

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála.

Sada 1 - Základy programování

7. OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ

Programy v prostředí operačního systému

Algoritmy a datové struktury 1

Jazyk PL/SQL Úvod, blok

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

Anotace. Jednotky (tvorba a využití), struktury (typ record),

DUM 06 téma: Tvorba makra pomocí VBA

Assembler - 5.část. poslední změna této stránky: Zpět

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Sada 1 - Základy programování

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

Více o konstruktorech a destruktorech

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

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

Programování v C++ 1, 1. cvičení

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Lokální definice (1) plocha-kruhu

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

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

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

Algoritmizace a programování

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

Viditelnost (práva přístupu) Tomáš Pitner, upravil Marek Šabo

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

= knihovna prostředků pro lepší práci s textovou obrazovkou, klávesnicí a generátorem zvuků

Pointery II. Jan Hnilica Počítačové modelování 17

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

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

NPRG031 Programování II --- 2/2 Z, Zk

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

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Ing. Igor Kopetschke TUL, NTI

Sada 1 - Základy programování

Text úlohy. Systémový katalog (DICTIONARY):

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Binární soubory (datové, typované)

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

Programování. Psaní čistého kódu. Martin Urza

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

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

Programování. Programování s řetězci. Martin Urza

Pole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0

Obsah VII. kapitoly PASCAL pod OS AMOS

Zápis programu v jazyce C#

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

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

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).

Úvod do programovacích jazyků (Java)

Výčtový typ strana 67

POČÍTAČE A PROGRAMOVÁNÍ

Transkript:

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 X 1 X 1 2 3 4 5 6 7 8 9 10 X X 2 X 2 4 6 8 10 12 14 16 18 20 X X 3 X 3 6......

blok má tvar const type var tělo definice konstant; definice typů; deklarace proměnných; deklarace procedur a funkcí; Kromě těla může kterákoliv část chybět Program, procedura i funkce mají tvar hlavička; blok BP nevyžaduje dodržení pořadí a libovolná část z const, type, var, se může opakovat

např. Program Muj; const max = 15; type male = 1..max; var A, B: male; begin read( A,B ); writeln( A+B ) end.

Hlavička procedury procedure <identifikátor> (<seznam formálních parametrů>) například: procedure A; procedure B( N: integer ); procedure C( M,N: integer ); procedure D( M: integer; c: char; k: integer );

Volání procedury <identifikátor> (<seznam skutečných parametrů>) například A; B( i ); C( k, 5 ); D( 2, 'a', 7 );

Hlavička funkce function <identifikátor> (<seznam formálních parametrů>) : <typ výsledku> například function A: integer; function B( N: integer ): boolean; function C( M,N: integer ): char; function D( M: integer; c: char; k: integer ) : char;

Příklad function tg( x: real ): real; begin tg := sin(x)/cos(x) { určení výsledné hodnoty } end Přirozený požadavek: Bez ohledu na průběh výpočtu funkce musí být v jejím těle jejímu identifikátoru (nejméně jednou) přiřazena výsledná hodnota. Pozn.: C# kontroluje

Volání funkce <identifikátor> (<seznam skutečných parametrů>) uvnitř výrazu! například a := sqrt(z); b := CisloDne( den, mesic, rok ); c := 40+round( 40*sin(fi*2*PI/360) );

Viditelnost identifikátorů 1. definice objektu musí předcházet jeho použití 2. viditelnost objektu je určena hierarchickou strukturou programu 3. jednoznačný význam identifikátoru v rámci 4. zastínění globáln(ějš)í definice lokáln(ějš)í definicí

Lokální symboly proměnné deklarované uvnitř podprogramů formální parametry a další mají pouze lokální platnost => nelze s nimi pracovat v hlavním programu ani jinde mimo podprogram po vyvolání podprogramu (i opakovaném) hodnoty jeho lokálních proměnných NEJSOU DEFINOVÁNY

Shrnutí programátor může deklarovat nové podprogramy podprogram může mít své lokální proměnné (konstanty, typy, podprogramy) v hlavičce podprogramu mohou být deklarovány jeho formální parametry v příkaze volání uvedeme skutečné parametry jednou deklarovaný podprogram můžeme zavolat kolikrát chceme příklad: počet dní příklad: počet slov příklad: 10 nejčastějších slov

Předávání parametrů a) hodnotou b) odkazem c) konstantní parametry d) výsledkem e) jménem f) Skutečným parametrem může být a) výraz b) proměnná odpovídajícího* typu * odpovídající...

HODNOTOU nová proměnná, do které se na začátku dosadí hodnota skutečného parametru ODKAZEM jen nové jméno pro proměnnou předanou jako parametr procedure MINMAX( p: POLE; var MIN,MAX: real ); var platí pro všechny následující parametry až do dvojtečky příklad: P( A, B, C: integer )...

Volba způsobu předávání parametrů 1.Pokud má přenášet hodnotu ven => odkazem 2.Pokud má skutečným parametrem být výraz => hodnotou 3.Vstupní data jednoduchého typu zpravidla hodnotou 4.Velké proměnné zpravidla odkazem Konstantní parametry = předávané odkazem, ale překladač nedovolí dosadit

Representace znakových řetězců (nejen v pascalu) pole a) ukládat délku b) ukončovací znak V TP: typ string var a: string; b, c: string[10]; d: string[50];

string[ MaxDelka ] string[ N ] je representováno jako array[0..n] of char, 0-tý prvek obsahuje délku řetězce (jako char) length(s) copy( s, odkud, kolik ) pos( co, kde ), =-1, pokud neexistuje Příklad: nalezení všech výskytů podřetězce Příklad: náhrada podřetězce

Úloha: Napište program, který vytiskne svůj vlastní zdrojový kód (aniž by ho odněkud četl).