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

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

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

PODPROGRAMY PROCEDURY A FUNKCE

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

Sada 1 - Základy programování

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

Programovací jazyk Pascal

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

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

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

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

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

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

Sdílení dat mezi podprogramy

Úvod do programování

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

NPRG030 Programování I, 2010/11

ALGORITMIZACE A PROGRAMOVÁNÍ

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

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

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

VY_32_INOVACE_08_2_04_PR

Podprogramy; procedury a funkce

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

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

7. OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ

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

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

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

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

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

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

Odvozené a strukturované typy dat

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

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.

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

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

DUM 06 téma: Tvorba makra pomocí VBA

Dynamické datové typy a struktury

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

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

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.

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

Struktura programu v době běhu

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

Sada 1 - Základy programování

6 Příkazy řízení toku

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

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

Algoritmizace a programování

2 Datové typy v jazyce C

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

Implementace LL(1) překladů

PB161 programování v C++ Výjimky Bezpečné programování

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).

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

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

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

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

O datových typech a jejich kontrole

Jazyk PL/SQL Úvod, blok

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

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 -

Objektové programování

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

Sada 1 - Základy programování

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

Program a životní cyklus programu

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

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ý

Anotace. Soubory a práce s nimi, rekurze podruhé, struktury (datový typ record), Martin Pergel,

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Více o konstruktorech a destruktorech

DTP Základy programování Úvod do předmětu

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

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ě

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

Funkce, intuitivní chápání složitosti

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

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Algoritmy a datové struktury 1

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

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

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

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

Algoritmizace a programování

Programování v jazyce C a C++

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

Syntaktická analýza. Implementace LL(1) překladů. Šárka Vavrečková. Ústav informatiky, FPF SU Opava

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

Úvod do programovacích jazyků (Java)

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.

POČÍTAČE A PROGRAMOVÁNÍ

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

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

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

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

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

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

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

Transkript:

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 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 9... X 4 X 4 8... X 5 X 5 10...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX NPRG030 Programování I, 2015/16 2 / 21 22. 10. 2015 13:25:32

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 NPRG030 Programování I, 2015/16 3 / 21 22. 10. 2015 13:25:32

BP/FP 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. NPRG030 Programování I, 2015/16 4 / 21 22. 10. 2015 13:25:32

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 ); NPRG030 Programování I, 2015/16 5 / 21 22. 10. 2015 13:25:32

Volání procedury <identifikátor> (<seznam skutečných parametrů>) například A; B( i ); C( k, 5 ); D( 2, 'a', 7 ); NPRG030 Programování I, 2015/16 6 / 21 22. 10. 2015 13:25:32

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 ): char; NPRG030 Programování I, 2015/16 7 / 21 22. 10. 2015 13:25:32

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 NPRG030 Programování I, 2015/16 8 / 21 22. 10. 2015 13:25:32

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) ); NPRG030 Programování I, 2015/16 9 / 21 22. 10. 2015 13:25:32

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í NPRG030 Programování I, 2015/16 10 / 21 22. 10. 2015 13:25:32

NPRG030 Programování I, 2015/16 11 / 21 22. 10. 2015 13:25:32

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 NPRG030 Programování I, 2015/16 12 / 21 22. 10. 2015 13:25:32

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říkazu volání uvedeme skutečné parametry jednou deklarovaný podprogram můžeme zavolat, kolikrát chceme NPRG030 Programování I, 2015/16 13 / 21 22. 10. 2015 13:25:32

Proč podprogramy členění problému/programu na části, které můžeme řešit odděleně další úroveň oddělení CO TO DĚLÁ od JAK TO DĚLÁ skrývání proměnných atd., které mají význam jen pro řešení určité části re-use možnost jednou vytvořený podprogram použít i v jiných programech NPRG030 Programování I, 2015/16 14 / 21 22. 10. 2015 13:25:32

Předávání parametrů a) hodnotou b) odkazem c) konstantní parametry (BP/FP) d) výstupní parametry (C#) e) výsledkem f) jménem g) Skutečným parametrem může být a) výraz b) proměnná odpovídajícího* typu * odpovídající... NPRG030 Programování I, 2015/16 15 / 21 22. 10. 2015 13:25:32

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 )... NPRG030 Programování I, 2015/16 16 / 21 22. 10. 2015 13:25:32

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 NPRG030 Programování I, 2015/16 17 / 21 22. 10. 2015 13:25:32

Příklad: Napište program, který najde 10 nejčastějších slov v souboru NPRG030 Programování I, 2015/16 18 / 21 22. 10. 2015 13:25:32

Programování shora (dolů) = řešení úlohy rozkladem na pod-úlohy = využívá volání (zatím neexistujících) podprogramů Programování zdola (nahoru) = vytváření podprogramů (řešení pod-úloh), o kterých myslíme, že je budeme potřebovat a následně z nich skládáme řešení větších pod-úloh, až k hlavní úloze NPRG030 Programování I, 2015/16 19 / 21 22. 10. 2015 13:25:32

Ladění zdola testovací podprogramy Ladění shora náhradní obsah podprogramů Testovací podprogramy, vyhodnocování správnosti, počítání chyb, automatické testování NPRG030 Programování I, 2015/16 20 / 21 22. 10. 2015 13:25:32

NPRG030 Programování I, 2015/16 21 / 21 22. 10. 2015 13:25:32