Počítače a programování 1

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Programování v C jazyku - SEMINÁŘ
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Funkce Připomeňme si program pro výpočet faktoriálu:
Přednáška 11 Jiří Šebesta
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
Příkazy Přednáška č. 4. Příkazy (statements)  Příkaz – dílčí krok programu (část kódu – zpravidla jeden řádek)  Program – posloupnost příkazů  Příkazy.
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Metody (funkce, procedury)
Algoritmizace a programování Podprogramy v Delphi - 10
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
Středoevropské centrum pro vytváření a realizaci inovovaných technicko-ekonomických studijních programů Registrační číslo CZ.1.07/2.2.00/ Tento.
Programování v C++ Cvičení.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Principy překladačů Mezikód Jakub Yaghob.
Čtvrté cvičení Objektové programování Objektový model v Javě
Materiály k přednášce Úvod do programování Ondřej Čepek.
Generování mezikódu Jakub Yaghob
MATLAB® ( Funkce v Matlabu ).
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
Algoritmizace a programování
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Procedury a funkce Základní charakteristika a použití v programu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
PB161 Jmenné prostory, I/O proudy PB161 | Jmenné prostory, IO proudy PB161 – Programování v jazyce C++ Objektově Orientované Programování.
Objektové programování
Sémantická analýza Jakub Yaghob
C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
PB161 Právo friend, přetěžování operátorů, přetypování PB161 | Friend, operátory PB161 – Programování v jazyce C++ Objektově Orientované Programování.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
IB111 Programování a algoritmizace
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
POSLOUPNOST úkol 1_41. ZADÁNÍ Sestavte program, který doplní tabulku nepřímé úměrnosti pro hodnoty proměnné x = 1, …, n. Nepřímá úměrnost je zadána uživatelem.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Pokročilé programování v C++ (část B)
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
PŘÍKAZ while úkol 1_42.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
C – procedury Mgr. Lenka Švancarová.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Podprogramy (subroutines) Pojmenované kousky programu, které –tvoří logicky ucelené části –se v programu opakují Jsou zapsány na jednom místě a v případě.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
Překladače 6. Sémantická analýza
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Programování v jazyce C++ Speciality jazyka C++, úvod do OOP.
Moduly.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Y36PJC Programování v jazyce C/C++
Překladače Syntaktická analýza
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Oblast platnosti identifikátoru (1)
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Podprogramy.
MU002 – Informační technologie Základy algoritmizace 5/13
C# přehled vlastností.
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Transkript prezentace:

Počítače a programování 1 5.přednáška

Obsah přednášky Dekompozice algoritmu – podprogramy Podprogramy – funkce, procedury Podprogramy v jazyku Java – metody Statické metody Parametry formální a skutečné Aktivace podprogramů Rekurzivní metody Metody s více parametry, metody přetížené

Podprogramy - procedury a funkce Základní pojmy Podprogram  pojmenovaná část algoritmu reprezentující určitý logický celek.   Obecně  podprogramy dvojího druhu: Procedury  podprogramy, hlavním výsledkem je provedení nějaké činnosti. Funkce  podprogramy, hlavním výsledkem je získání určité hodnoty.

Podprogramy – procedury a funkce Volání (aktivace) procedury  příkaz procedury. Volání funkce  zápis funkce. Deklarace procedury (funkce)  část textu programu, která definuje činnost provedenou při volání procedury (funkce). Standardní neboli předdefinované, knihovní) procedury (funkce)  (matematické funkce či algoritmy běžných operací týkající se vstupu a výstupu programu, ovládání periferií)

Aktivace podprogramů Aktivace procedury  příkaz procedury Aktivace funkce se provádí ve výrazu  zápis funkce Funkce vždy představuje hodnotu!

Parametry Činnost programu lze ovlivnit parametry Parametrem může být výraz:  hodnotou ovlivňuje činnost podprogramu (počáteční hodnota),  prostor pro zápis výsledné hodnoty (tvořen pouze zápisem proměnné).  

Parametry skutečné a formální Parametry uvedené při volání podprogramu  skutečné. Parametry uvedené v deklaraci podprogramu  formální.   Pořadí, počet a typ skutečných parametrů musí přesně odpovídat pořadí a typu formálních parametrů.

Metody Podprogram– v objektově orientovaném programování (OOP) je nahrazen pojmem metoda – způsob „jak čeho dosáhnout“ (poznámka: často užívaný termín funkce není v tomto případě přesný, jdná se více o syntaktický rozdíl, nikoli sémantický) Program zapsaný v jazyce Java – vždy obsahuje minimálně jednu metodu (funkci – podprogram), který se musí jmenovat main() Zpracování programu začíná voláním metody main() a končí opuštěním této metody

Metody Elementární a nezbytné části metody: Základní podoba definice: Název Argumenty Typ návratové hodnoty Tělo metody Základní podoba definice: typNávratovéHodnoty názevMetody (/* seznam argumentů*/) { /* tělo metody*/ }

Metody Název metody a seznam argumentů metodu jednoznačně určují Návratový typ je typ návratové hodnoty, která je získána zavoláním metody Seznam argumentů ( v podstatě parametrů podprogramu) určuje typy a názvy jednotlivých položek, jejichž prostřednictvím jsou metodě předávány určité informace Název metody a seznam argumentů metodu jednoznačně určují

Metody Metody v Javě: Metody třídy (statické metody) Metody instance Poznámka: na rozdíl od jazyků typu Pascal nemohou být metody vnořovány (tj. jedna metoda nemůže ve svém těle obsahovat deklaraci další metody).

Metody Cíl metody – provedení jedné, jasně definované činnosti Délka kódu metody – ne delší než 20 řádek Název metody – výstižný, krátký V celém programu jednotná konvence zápisu identifikátorů, především u metod

Deklarace metody Hlavička metody – jméno, typ návratové hodnoty, popř. typy a jména jejích formálních parametrů Tělo metody – (program) – je uzavřeno do složených závorek { }, může obsahovat příkazy i deklarace proměnných Výstupní hodnota metody je předávána příkazem return

Příkaz return return (výraz) nebo return výraz Je vypočtena hodnota výrazu a přiřazena jako návratová hodnota metody, metoda je ukončena Statické metody jsou uvnitř jedné třídy volány použitím běžné konvence: x = min(3*a,b-c*d)

Metoda bez parametrů Metoda musí být deklarována i volána stejným způsobem jako metoda s parametry Příklad: static int nasob ( ) { int a,b; a=ctiInt(); b=ctiInt(); return (a*b); } Volání: i = nasob ( );

Metoda bez návratového typu - procedura V podstatě nelze zapsat metodu bez návratového typu, lze však použít návratový typ void (tj.prázdný) Metoda musí být deklarována i volána stejným způsobem jako v předchozím případě Příklad: static void tiskVysledku(int cas) { System.out.println(„hod:“ +cas+“hod.“); } Volání: tiskVysledku(t); tiskVysledku(2);

Metoda bez návratového typu - procedura Poznámka: U procedur není příkaz return povinný, není-li uveden, je nahrazen běžným ukončením metody, tj. složenou závorkou } Příkaz return se pak používá pouze pro nucené ukončení metody před dosažením běžného konce na základě nějaké podmínky

Procedura bez parametrů Nejjednodušší typ metody Použití – především pro různé výstupy (tisky) Příklad: static void tisk() { System.out.println(„KONEC“); }

Metoda s více parametry různých typů Větší počet formálních parametrů – vypisují se jednotlivě včetně svých typů a oddělují se čárkami V deklaraci lze volit pořadí parametrů libovolně, při volání je nutno zvolené pořadí dodržet Pozor - na rozdíl od Pascalu nelze uvést seznam parametrů určitého typu, v OOP je počet parametrů nižší než ve strukturovaném programování Doporučení – není vhodné volit větší počet parametrů (cca 5 parametrů, ne více)

Rekurze Podprogram volá sám sebe  přímá rekurze Podprogram X volá podprogram Y a ten opět volá podprogram X  nepřímá rekurze Podprogramy existují ve všech programovacích jazycích; rozdílný je způsob deklarace, konkrétní způsob realizace a možnost použití rekurze

Rekurzivní metody Rekurze – v těle metody volá metoda sama sebe Public class Faktor { public static void main }String [] args{ System.out.println(“20!” + fakt (20)); } Public static long fakt (long n){ if (n>1) return n * fakt (n-1); else return 1;

Konverze skutečných parametrů a návratové hodnoty Není-li typ návratové hodnoty shodný s návratovým typem metody: Je provedena implicitní konverze (zúžení) Není-li možný předchozí krok, je nutno provést explicitní rozšiřující typovou konverzi Obdobný postup platí v případě typové rozdílnosti pro skutečné a formální parametry

Mechanismus volání podprogramu Volání podprogramu  programový skok s uchováním návratové adresy (adresa následující instrukce za voláním procedury) (funkce). Uchování návratové adresy  na jeden a ten samý podprogram mohou vést odkazy z různých míst programu.

Mechanismus volání podprogramu Instrukce vyvolání podprogramu zajistí uchování návratové adresy do speciální části paměti.  Paměť typu LIFO (Last In First Out  zásobník

Způsoby předávání parametrů Parametry (obecně u jazyků typu Pascal):  volané hodnotou  volané odkazem  s udáním typu bez udaného typu  

Mechanismus předávání 1. parametry volané hodnotou a) v okamžiku volání se v zásobníku (STACK) vyhradí místa pro všechny parametry volané hodnotou a označí se jmény formálních parametrů. hodnoty skutečných parametrů se do takto alokovaných míst zkopírují 2. parametry volané odkazem Místo kopie do stacku (zásobníku) se pouze ztotožní adresy skutečného a formálního parametru (nealokuje se nové paměťové místo).  

Předávání skutečných parametrů metod Java umožňuje pouze předávání hodnotou (call by value), skutečné parametry mohou být v metodě pouze čteny Možnost volání odkazem je na rozdíl od jazyka C řešeno pomocí OOP

Přetížené metody Overloaded Metody mající stejná jména, ale různé hlavičky Formální parametry se musí lišit počtem nebo typem nebo pořadím Pozor – nelze přetížit pouze změnou návratové hodnoty Příklad – metoda print ()

Globální a lokální proměnné Nelokální proměnné – „globální“ – nesprávná terminologie Lokální proměnné – deklarace v těle metody (řešeno v problematice tříd – oblast viditelnosti) Zastínění nelokálních proměnných lokálními – v případě stejných jmen (na typu nezáleží) je nelokální proměnná zastíněna – existuje však možnost přístupu k zastíněné proměnné pomocí plně kvalifikovaného jména (full qualified name – jméno třídy a jména proměnné oddělené tečkou)