Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.

Slides:



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

Standardní knihovní funkce pro práci s textovými řetězci
Programování v C jazyku - SEMINÁŘ
Programovací jazyk C++
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.
Programování 2 Cvičení 5.
Pole, ukazatele a odkazy
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Algoritmizace a programování Podprogramy v Delphi - 10
C++ Přednáška 3 Konstantní a statické členy tříd, ukazatel this, konstantní instance třídy Ing. Jiří Kulhánek , kat. 352, VŠB TU Ostrava 2004.
Preprocess Úvod do tvorby funkcí Princip preprocesoringu Direktivy preprocesoru Podmíněný překlad Základy tvorby funkcí Zjednodušený popis principu předávaní.
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Programování v C++ Cvičení.
Algoritmizace a programování
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
Procedury a funkce Základní charakteristika a použití v programu.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
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
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
Příklady v jazyku C – část 6
Současný svět Projekt č. CZ /3. 1
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Počítače a programování 1
Cvičení.
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
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í.
JavaScript Funkce.
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
10. Dynamické proměnné Dynamická proměnná se nezavádí deklarací proměnných, ale vzniká za běhu programu provedením speciálního příkazu. Nemá přidělen žádný.
Napište program v C pro výpočet plochy obdélníka se stranami A=3 a B=2. Výsledek vytiskněte s patřičným komentářem na obrazovku formátovým příkazem printf.
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
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.
Ukazatele BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Pokročilé programování v C++ (část B)
Příklady v jazyku C – část 1. Výstupy pomocí printf. printf(" Tisk textu \n v apostrofech \n ") ; p=10; printf("%d\n", p) ; /* tisk konstanty */ printf("Tisk.
Příklady v jazyku C – část 8. Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec.
Vazby dynamických proměnných,databázové systémy Přednáška č. 10.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
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é.
Funkce, intuitivní chápání složitosti
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ě.
Pokročilé datové typy (struktury, unie, dynamické proměnné)
IB111 Práce se soubory Správa paměti. Práce se soubory v Pythonu Soubor musíme „otevřít“ Poté s ním pracujeme –Čteme a/nebo zapisujeme Nakonec musíme.
Práce se soubory a řetězci Přednáška č. 9. Práce se soubory v C (1)  Knihovna #include  Knihovna #include  Ukazatel FILE *stream;  Otevření souboru.
Úvod do programování2 Vyučující: Mgr. Vítězslav Jersák Web: xjv.webnode.cz.
PROGRAMOVÁNÍ: 1) 2D pole 2) Předávání polí jako parametr f-cí 2) Ukazatele na pole a f-ce Jaroslav Burdys.
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ ERIK KRÁL.
Počítače a programování 2
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
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++
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.
Programování v jazyce C++
TNPW1 JavaScript Ing. Jiří Štěpánek.
Databázové systémy a SQL
Oblast platnosti identifikátoru (1)
C# přehled vlastností.
Transkript prezentace:

Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL

Obsah Operátor sizeof Funkce Volání funkce Předávání argumentů hodnotou Pole jako parametr funkce Pole jako návratový typ

Operátor sizeof Operátor sizeof zjistí délku typu nebo objektu v bajtech. Používáme ho především u dynamické alokace paměti, kterou probereme později. V této lekci ho využijeme v souvislosti s předáváním pole jako argumentu funkce. int pocet = 0; pocet = sizeof(char); pocet = sizeof(int); pocet = sizeof(float); pocet = sizeof(double); pocet = sizeof(int[4]); char x = 0; int pole[4] = { 0 }; pocet = sizeof(x); pocet = sizeof(pole); Délka typu Délka objektu Otestuje, jaká bude délka pole int a jednoho int

Funkce Funkce v C přiřazují složený příkaz k identifikátoru. Funkce mohou přijímat 0 a více parametrů, které se zapisují jako seznam parametrů funkce oddělený, kde každý parametr má typ a identifikátor, případně specifikátor například const. Funkce mohou vracet hodnotu pomocí příkazu return. Typ void znamená, že funkce nevrací žádnou hodnotu. int VratSoucet(int x, int y) { int soucet = x + y; return soucet; } Identifikátor (název funkce) Seznam parametrů Návrat hodnoty

Deklarace a definice funkce Deklarace hlavičky funkce a definice těla funkce mohou být uvedeny zvlášť. Deklarace potom bývají typicky v souborech s příponou.h a definice v souborech s příponou.c. int VratSoucet(int, int); int VratSoucet(int x, int y) { int soucet = x + y; return soucet; } Deklarace funkce (hlavička funkce), není nutné uvádět názvy parametrů Definice funkce

Volání funkce Funkce se volá pomocí jejího identifikátoru (názvu) a mohou se předávat argumenty. Výsledkem volání funkce je návratová hodnota, kterou můžeme přiřadit pomocí operátoru přiřazení. int VratSoucet(int x, int y) { int soucet = x + y; return soucet; } int main() { int a = 3; int b = 2; int z = VratSoucet(a, b); printf("soucet = %d\n", z); } Volání funkce Návratová hodnota

Předávání argumentů hodnotou Při volání funkce se předává hodnota argumentů. Pro parametry funkce se tedy vytvoří nové lokální proměnné, které přestanou existovat po skončení funkce. int VratSoucet(int x, int y) { int soucet = x + y; ++x; y = 10; return soucet; } int main() { int x = 3; int y = 2; int z = VratSoucet(x, y); printf("soucet = %d\n", z); } Proměnné x a y jsou nezávislé na parametrech x a y. Otestuje že jejich změna nemá vliv na hodnotu proměnných ve funkci main().

Pole jako parametr funkce Pole se předává funkci jako ukazatel a ztrácí informaci o počtu prvků. int VratPocetBajtu(int pole[3]) { int pocetBajtu = sizeof(pole); return pocetBajtu; } void main() { int pole[3] = { 0 }; int pocetBajtu = 0; pocetBajtu = sizeof(pole); pocetBajtu = VratPocetBajtu(pole); } Protože se pole předává jako ukazatel, tak operátor sizeof vrací jen délku typu int* Otestujte, že se počet bajtů bude lišit.

Pole jako parametr funkce Protože se předává ukazatel a ne nezávislá (hluboká) kopie pole, tak je možné ve funkci změnit prvky pole, které je parametrem funkce. #include #define POCET 3 void Napln(int pole[], int pocetPrvku, int hodnota) { for (int i = 0; i < pocetPrvku; i++) { pole[i] = hodnota; } void main() { int pole[POCET] = { 0 }; Napln(pole, POCET, 1); for (int i = 0; i < POCET; i++) { printf("%i ", pole[i]); } I ve funkci Napln měníme hodnotu prvků proměnné pole ve funkci main() protože zapisujeme na stejné místo v paměti.

Pole jako návratový typ Pole nemůže být použito jako návratový typ funkce. Místo toho můžeme využít struktury, dynamické alokace paměti a nebo mít pole jako argument funkce a do něj pak zapisovat. char[] VratPrvniZnaky(char pole[], int pocetPrvnich) { } void ZkopirujZnaky(char odkud[], char kam[], int pocetZnaku) { for (int i = 0; i < pocetZnaku; i++) { kam[i] = odkud[i]; } void main() { char text[] = "ahoj jak se mas"; char buffer[4]; ZkopirujZnaky(text, buffer, 4); } Zkopíruje první 4 znaky do pole buffer

Pole jako parametr funkce Live coding

Děkuji za pozornost Otázky?