Jazyk C základní informace. Vlastnosti

Rozměr: px
Začít zobrazení ze stránky:

Download "Jazyk C základní informace. Vlastnosti"

Transkript

1 Jazyk C základní informace Vlastnosti - Univerzální strukturovaný programovací jazyk - Jazyk nižší úrovně používá jen standardní jednoduché datové typy - Neumožňuje přímou práci s řetězci, poli, vstup a výstup vše je řešeno přes funkce - Vysoce efektivní kód - Snadná přenositelnost zdrojových programů na různé procesory i OS - Navržen a implementován pro/s UNIXem - Existuje spousta překladačů Historie původní C K&R Kernighan and Ritchie Kernighan and Ritchie: The C programming language ANSI C americký standard pro C přesně definuje jazyk C i překladače a standardní sadu hlavičkových souborů a knihoven ISO C90 mezinárodní norma ISO C99 novější norma Princip překladu Zdrojový kód napsaný v editoru.c je společně s hlavičkovými soubory.h zpracován preprocesorem. Compiler (překladač) pak takto zpracovaný výstup převede do relativního kódu.obj. Linker následně připojí knihovny, upraví adresy na absolutní a vytvoří spustitelný EXE soubor.

2 Jazyk C popis První program: - struktura zdrojového kódu - úprava zdrojového kódu - prvky zdrojového kódu /* soubor hello.c */ #include <stdio.h> /* vlozeni rozhrani */ int main(void) { printf( Ahoj!\n ); return 0; pozn. system("pause"); Identifikátory Představují názvy proměnných, konstant, funkcí, maker,. - case sensitive - omezená délka 31 (63) ale někdy podle kompilátoru i méně - dovoleny jsou klasické znaky (písmena, čísla, _, ) Klíčová slova Řídí provádění programu (if, while, for, ) Existuje celá řada klíčových slov

3 Komentáře Do poznámek: - popis (vysvětlení) co část kódu provádí - minimálně popis u hlavičky funkcí - části kódu, které nechceme zrovna překládat /* klasická C poznámka */ // ISO C99 poznámka do konce řádku Jednoduché datové typy void - prázdný datový typ char - znak short - krátké celé číslo int - celé číslo (podle registru procesoru) long - dlouhé celé číslo float - reálné číslo double - reálné číslo vyšší přesnost + další typy: long long int, long double, Modifikátory: unsigned / signed Rozsah hodnot: char - 1B ( ) int - podle architektury 4B, 2B float - 4B + 6B přesnost (za des. čárkou) Př.: Zjištění velikosti přidělené paměti pro datový typ: sizeof(int);

4 Př.: Zápis proměnné konkrétního typu a konstanty int pocet; int promena1, promena2; int velikost=15; const char pismeno= a ; Pozn.: vytvoření vlastního jména typu: typedef int LENGTH; Operátory Definují jednotlivé operace ve výrazech: +, - *, /, &&,, =, ==, <>, <=,., %,!,.. atd. Operátory se mohou chovat různě vzhledem k použitým operandům (jejich typům) např. dělení (celočíselné a reálné) Literály - celočíselné 5, -564, 06 (osmičkové), 0x5E (šestnáctkové) Poslední znak v literálu L, LL, U, určuje typ long, long long, unsigned, - reálné 5.75, -2e+9, Standardně double, přípony L, F (long double, float) - znakové a Znaky, které mají v C speciální význam nutno zapsat pomocí \ (escape sekvence) \n, \t, \\, \,, \x0a - řetězce string Každý řetězec končí znakem \0 NUL

5 Výrazy a práce s proměnnými int i; - DEKLARACE i=5; i=5+5; i=5*i; i=(5+i)*i; i++; i=i+5; /* nebo zkráceně i+=5; */ - každý příkaz končí ; - identifikátor (proměnná) musí být nejprve deklarována než je použita - globální identifikátor X lokální X formální parametr funkce int x=10; int main() { double x=1.1; /* ve funkci platí double x */ printf( %f,x); return 0; void printxy(int y) { /* zde platí int x a parametr funkce y*/ printf( %d,x); printf( %d,y);

6 Hlavní program funkce main() - hlavní funkce musí v programu být - defaultní typ int int main() { // název funkce a její typ return 0; // návratová hodnota NEBO int main(int argc, char *argv[]) { // dva parametry funkce main return 0; Standardní knihovny podle ISO C

7 Knihovny (hlavičkové soubory) obsahují definice typů, maker, funkcí, proměnných. Připojení #include <stdio.h> #include soubor.h // dovoz rozhraní modulu z vlastního souboru Terminálový výstup a vstup Znak: getchar(); // vrací načtený znak ze stdin getc(stdin); putchar(); // zapíše znak na stdout, vrací znak nebo nelze-li zapsat EOF putc(c,stdout) Pozn.: Při spouštění programu lze přesměrovat stdin i stdout do/ze souboru program.exe <vstup.txt >vystup.txt EOF je hodnota (makro) určující konec souboru - 26D Formátovaný vstup a výstup: printf(); Tisk řetězce na stdout. př.: printf( Výsledek je %d,vysledek); Za znakem % může být celá řada specifikací, které říkají formát výpisu: %d - celé desítkové číslo %c - znak %f - float %s - řetězec %x - hexa číslo atd

8 %5.2lf - long float 5 míst a 2 desetinná scanf(); Formátované čtení ze stdin. scanf( %d, &cislo); Použití zápisu % podobně jako u printf. & - značí adresu proměnné Můžeme načítat více hodnot současně. Pozn. %*d - * potlačí přiřazení Př.: Napište program, který vyzve uživatele k zadání dvou čísel a vypíše je i jejich součet. Př.: Napište program, který načte 3 reálná čísla a vypíše jejich průměr na 2 desetinná místa. Booleovské výrazy využití typu int 0 TRUE (PRAVDA) jinak FALSE (NEPRAVDA) operátory ==,!=, &&,,!, <, <=, >, >= Pozn. Standardně se využívá zkrácené vyhodnocování výrazů Př. (y!=0) && (x/y <5) // OK Pozn.: pozor na priority jednotlivých operátorů (pokud si nejsme jisti závorkujeme) aritmetické > porovnávací > logické

9 Řídící struktury if a if-else v závislosti na splnění či nesplnění podmínky je nebo není provedena určitá část kódu. Složený příkaz je nutno zavřít do závorek {. Vyhodnocovaný výraz musí být vždy uzavřen v závorkách (). if (výraz) příkaz; if (výraz) { blok příkazů if (výraz) příkaz1; else příkaz2; CYKLY - každý cyklus musí někdy skončit ukončovací podmínky - obecně lze různé typy cyklů zaměňovat, volba závisí na programátorovi cyklus while testuje podmínku před začátkem cyklu. cyklus tedy vůbec nemusí proběhnout. V těle cyklu je příkaz nebo blok příkazů {, event. i prázdný příkaz ; while (x<10) příkaz; cyklus do-while podmínka se testuje až na konci cyklu a cyklus tak proběhne minimálně jednou. Cyklus se opouští při nesplněné podmínce.

10 do { i++ while (i<10); cyklus for Pokud známe předem počet průchodů cyklem používáme for. Nevhodné měnit řídicí proměnou kdekoliv v těle cyklu. for (i=1; i<=10; i++) { printf( %d,i); příkazy break a continue break; - ukončuje neuzavřenou vnitřní smyčku ukončí cyklus continue; - skočí na konec smyčky a spustí další iteraci cyklu Př.: Napište program, který načte číslo značící limit jako požadavek ze stdin, toto číslo uložte. Program pak v cyklu čte čísla a sčítá je dokud nenačte číslo 0. Program porovná součet čísel s uloženým limitem a vypíše výsledek porovnání a výsledek součtu načtených čísel. příkaz switch využívá se pro mnohonásobné větvení dá se nahradit kombinací a vnořováním if-else rozhodovací podmínka musí být int každá větev ukončena příkazem break; a příkazy v ní není nutno uzávorkovávat { větev default (nepovinná) se provádí pokud žádná podmínka nevyhovuje switch(getchar()) { case a : putchar( 1 ); break; case b : putchar( 2 );

11 break; default: break; příkaz goto používat pouze ve výjimečných případech nazev: goto nazev; podmíněný výraz podmínka? výraz1 : výraz2 Př. c = (c >= A && c<= Z )? c + ( a A ) : c; 65 (41H) A. 97 (61H) a operátor čárky výraz1, výraz2 vyhodnotí jako první (zde zaručeno!) výraz1 a pak výraz2 Používat pouze v řídících částech cyklů apod. Př.: for (i=1, j=10; i<=limit; i++, j++) Př.: Napište program, který čte znaky ze stdin (můžete přesměrovat soubor) dokud nedojde na EOF a pak vypíše počet řádků, znaků a písmen a spočte průměrný počet znaků ve slově a znaků na řádku a vypíše.

12 FUNKCE Jakýkoliv jen trochu větší program se prakticky neobejde bez používání funkcí. definice kompletní specifikace vč. typu i s alokací paměti u funkce určuje jak hlavičku tak tělo funkce minimálně jedna funkce: main() v těle funkce nemůže být definice jiné funkce int secti(int a, int b) { return (a + b); vysledek = secti(5,x);.. pokud je typ funkce void funkce nic nevrací jedná se o proceduru (return pak obsahuje jen pro nucené ukončení) Funkce je použitelná (volatelná) až za její definicí. Jinak je nutné uvést funkční prototyp tj. hlavička funkce v oblasti globálních proměnných: int secti(int a, int b); // úplný funkční prototyp Pozor na oblasti platnosti všech identifikátorů v programu!!! Př.: Napište program, který vypíše faktoriály čísel od 0 do 12 K vlastnímu výpočtu faktoriálu napište funkci factorial() Zkuste zapsat rekurzivní i nerekurzivní variantu. Pozor na rozsah typů, které použijete (popř. testujte přetečení a při chybě vracejte 0)

13 Statická Pole jednorozměrná pole int x[pocet]; double d[3] = {5.5, 3.5, 2.0 ; Prvků v poli je vždy 0 až počet-1!!! Počet musí být znám již v době překladu. Pozor C nekontroluje meze polí!!! pozor na indexaci. x[i] = 15; vícerozměrná pole int x[6][5]; // jedná se o pole polí - matice Statický řetězec string char retezec[10] = text ; řetězec končí vždy znakem \0 řetězec nelze přiřazovat: str = text ; Pozn.: char *retezec = text ; čtení a výpis řetězce: scanf( %s, s1); pozor není zde &s1!!! Načte řetězec (končí prázdným znakem tj i mezera!!!) do s1 pozor na přetečení pole (řetězce) Př. scanf( %1s, s1); // načte jeden znak printf( %s,s1);

14 funkce pro práci s řetězci gets(); strlen(); strcpy(); strcat(); strchr(); strcmp(); atd atoi(); atoll();. sprintf(); sscanf(); Př.: Napište funkci Strcmp int StrCmp(const char *s1, const char *s2); která lexikálně porovná dva ASCII řetězce. Výsledek funkce je definován takto: <0: s1 < s2 0: s1 = s2 >0: s1 > s2 Př.: Napište program obsahující pevně danou definici matice 6 x 6. Tmat M = { {1, {2,2, {3,3,3, {4,4,4,4, {5,5,5,5,5, {6,6,6,6,6,6, ; Program obsahuje tři funkce. Provede tisk, tisk transponované, a tisk otočené: void tiskmatice(const Tmat M); void transpon(tmat M); void otoc(tmat M); Struktura a výčtový typ struktura varianty zápisu struct { polozky; nazev_promenych;

15 struct nazev_s { polozky; ; struct nazev_s promena; typedef struct nazev_s { polozky; NAZEV_S; NAZEV_S promene; promena.polozka = hodnota; Výčtový typ typedef enum { PO, UT, ST, CT, PA DNY; DNY den; den=po; Prvky mají hodnoty 0, 1, 2, nebo jim můžeme hodnotu přiřadit PO=5, Souborový vstup a výstup Načítání rozsáhlých dat z klávesnice a jejich výpis na monitor je často nepoužitelný, proto se používají soubory. Také je často potřeba ukládat perzistentní data pro běh programu. Kromě přesměrování stdin a stdout (viz. výše) můžeme se soubory pracovat přímo. FILE *soubor; // definice proměnné soubor (pointer na objekt FILE) pozn.: pro zápis a čtení používat odlišné identifikátory

16 Před prací se souborem je třeba jej otevřít: soubor = fopen( NAZEV_SOUBORU, REZIM_OTEVRENI ); fopen() vrací NULL při nesprávném otevření souboru vždy testovat! Režimy otevření: r, rb - čtení a čtení binárního souboru w, wb - zápis a zápis binárního souboru a, ab - připojení a připojení k binárnímu souboru (jsou možné i kombinace) Př.: const char *name = test.txt ; FILE *fp; fp = fopen( name, r ); if( fp == NULL ) error( soubor %s nelze otevrit pro cteni, name); Uzavření souboru: fclose(soubor); // vrací EOF pokud se nepodaří uzavřít Pozn.: Standardně jsou již otevřeny tři io proudy dat (soubory): FILE *stdin, *stdout, *stderr; (pozn.: je možné přiřazení např.: fw = stdout; ) Funkce pro práci se souborem: znak = getc(soubor); putc(znak, soubor); //precte znak //zapise znak

17 fscanf(soubor, data, argumenty), fprintf(soubor, data, argumenty) ungetc(c, soubor) Konec souboru: - testovat přes symbolickou konstantu EOF if ((c=getc(fr))!= EOF). int main(int argc, char *argv[]) argc počet argumentů při spuštění programu argv pole řetězců (vlastní argumenty) Př.: Napište program který odstraní komentáře v C zdrojovém souboru - program očekává 2 parametry: vstupní a vystupni soubor - pokud má jen 1 parametr jedná se o vstupní a jako výstupní použije out.txt - pokud nemá žádný parametr očekává zápis z klávesnice a výpis na monitor - čte ze souboru dokud nenarazí na jeho konec - vypisuje to co načte, ale odstraní komentáře o oba typy komentářů o pozor na řetězce a znakové konstanty o implementujte konečný automat nebo řešte intuitivně

18 Ukazatele int *px = NULL; int x,y; px = &x; y = *px; // deklarace ukazatele // proměnné typu int // & - získá adresu a * zpřístupní hodnotu Při klasickém volání funkce se předávají parametry hodnotou. S využitím ukazatelů můžeme předávat parametry odkazem: void prohod(int *px, int *py) { int temp = *px; *px = *py; *py = temp; int x,y;... prohod(&x,&y); v praxi je třeba často přidělovat (a uvolňovat) paměť dynamicky: malloc(); free(); Abstraktní datové typy: Seznam: ke každému prvku lze určit jediný bezprostředně následující prvek; je definován jeden z prvků, který je aktivní (pokud takový prvek není, celý seznam je neaktivní). Seznam může dále být jednosměrný, obousměrný nebo kruhový Zásobník: LIFO (last in first out) s definovanými operacemi Push, Pop, Top, IsEmpty Fronta: FIFO (first in first out) QueUp, First, Remove, může být oboustranně ukončená Pole: náhodný přístup, počet prvků je předem stanoven (statické pole) nebo se mění (dynamické pole) Tabulka: vyhledávací tabulka, každá položka má klíč a hodnotu

19 Stromy: mají kořen a listy, nejjednodušší je binární strom. BS je buď prázdný nebo se sestává z vrcholu a levého a pravého podstromu. Oba podstromy mají vlastnosti BS. (rekurzivní definice) Př.: (zásobník) typedef struct tzasobnik { char name[100]; struct tzasobnik *pre; tzasobnik; tzasobnik *top, *act, *zas; // ukazatel na predchozi // vklada se vzdy na TOP // ukazatele na zasobnik top=null; //VKLADANI if ((zas = (tzasobnik *) malloc(sizeof(tzasobnik))) == NULL) fprintf(stderr,"malo pameti \n"); strcpy(zas->name,ctk); zas->pre=top; top=zas; // vytvori novy a ulozi tam nazev // predchozi je ten co byl na TOP // TOP je ted ten novej //PROCHAZENI for(act=top; act!= NULL; act=act->pre){ Základní algoritmy pro řazení a vyhledávání Řazení Hodnotící kritéria: stabilita: metoda je stabilní, pokud zachovává relativní pořadí prvků se stejným klíčem přirozenost: metoda je přirozená, pokud nejkratší dobu trvá seřazení již seřazeného pole, potom náhodně seřazené pole a nejdelší je opačně seřazené pole in situ: pracuje najednou se všemi prvky pole (bez rekurze), používá jen řazené pole (a žádné další)

20 Straight selection sort: nestabilní Část pole od 1 do K je již seřazena. Minimální prvek z části od K+1 do N se vymění s K+1. prvkem. Na začátku je seřazená část pole prázdná Bubble sort: stabilní a přirozená, vhodná na testování, zda je pole seřazené Neseřazená část pole se prochází zprava doleva a porovnávají se postupně každé dva sousední prvky pole. Nejsou-li vzájemně seřazeny, tak se vymění. Tímto způsobem vybublá na nejlevější pozici minimum a i ostatní prvky se posunou ke svým správným pozicím. (existuje spousta variant a modifikací základního algoritmu) Quick sort: nestabilní, nepřirozená, nepracuje in situ Rozdělí pole na dvě části, ve kterých platí, že všechny prvky první části jsou menší než prvky ve druhé části. int polea[10]; Qsort(poleA,0,9); int Qsort(int pole[],int d,int h) { int i,j; int x,z; i=d;j=h;x=pole[(int)((d+h)/2)]; do { while (pole[i]<x) i++; while (pole[j]>x) j--; if(i<=j){ z=pole[i]; pole[i]=pole[j]; pole[j]=z; i+=1; j-=1; while(i<=j); if(d<j) Qsort(pole,d,j); if(i<h) Qsort(pole,i,h); return 0; Další algoritmy: HeapSort (využití stromové struktury), MergeSort, RadixSort,

21 Vyhledávání Sekvenční vyhledávání: sekvenčně se prochází všechny prvky. Nesekvenční vyhledávání v seřazeném poli Binární vyhledávání: na principu metody půlení intervalů Fibonacciho vyhledávání: nedělí interval na poloviny, ale podle hodnot Fibonacciho posloupnosti, ke kterým stačí aditivní operace (rychlejší) Binární vyhledávací strom: binární uspořádaný strom, pro jehož každý uzel platí, že jeho levý podstrom je buď prázdný, nebo sestává z uzlů, jejichž klíče jsou menší než jeho, podobně i pro pravý podstrom. Při průchodu INORDER v BVS získáme seřazený lineární seznam.

22 Moduly a vkládání souborů Program můžeme rozdělit do několika souborů.c. Společnou část pak tvoří rozhraní uvedené v souboru.h (hlavičkový soubor) který obsahuje jen externí deklarace funkcí, proměnných apod. využitelných ve všech souborech do kterých se vkládá. Správné sestavení programu zajišťuje integrované vývojové prostředí nebo třeba makefile.

23 C++ - jazyk vyšší úrovně - podpora abstraktních datových typů - vychází z C zpětná kompatibilita - objektová orientace - #include <iostream> int main() { std::cout << Hello! \n ; // tisk retezce OO přístup (Objektově orientovaný přístup): V objektově orientovaném přístupu uvažujeme o organizaci software jako kolekci diskrétních objektů, které zahrnují jak data tak i jejich chování. Důležitým pojmem je Objekt. Existuje mnoho různých definicí objektu, ale všechny mají několik základních podobných rysů. Objekt můžeme definovat jako reálnou věc nebo její abstrakci. Z pohledu programátora se jedná o abstrakci, která reprezentuje reálnou věc. Každý objekt má svoji jednoznačnou identifikaci v daném systému. Objekt zahrnuje řadu dat a operací nad nimi. Objekt je vůči okolí uzavřený, s lokálními daty pracují lokální metody. Komunikace mezi dvěma objekty se odehrává prostřednictvím zpráv. Objekt na příchozí zprávu reaguje zpuštěním vlastní metody, která provádí určitou činnost s daty objektu, nebo posílá zprávu dalšímu objektu. Celý softwarový systém je pak tvořen řadou objektů, mezi nimiž existují přesně definované vztahy.

24 Seznam zpráv, které je možné objektu poslat Metody posloupnosti kódu vykonávajícího činnost Metoda 3 Zpráva 1 Zpráva 2 Zpráva 3 Zpráva n Metoda 2 Metoda 4 Odkazy na jiné objekty Metoda 1 Lokální data hodnoty atributů určují stav objektu Pro usnadnění vývoje objektově orientovaných systémů byl zaveden pojem třída. Třída popisuje vlastnosti objektu. Definuje tedy vnitřní strukturu objektu. Každý objekt odvozený od konkrétní třídy bude mít stejný typ a počet atributů i metod. Objekt potom můžeme definovat jako instanci jeho třídy. Stav, v jakém se objekt nachází, však není dán třídou, ale provedenými operacemi, tedy hodnotami jeho atributů. Zaměstnanec Jméno Příjmení RČ Adresa Telefon Pracovní zařazení vypiš informace() přidej() odeber() uprav údaje()

25 Základní vlastnosti OO přístupu: - Zapouzdření (viditelné je pouze rozhraní, podrobnosti implementace nás nezajímají) - Dědičnost (objekty často mívají společné vlastnosti a mohou je dědit odpadají tak zbytečné redefinice) - Abstrakce (zavedením abstraktních tříd můžeme lépe využít dědičnosti ) - Vztahy mezi objekty (dynamické předávání zpráv mezi objekty X statické asociace, generalizace/specializace a agregace) - Polymorfismus (jedna operace provádí jinou činnost pro různé typy objektů) Př.: (diagram tříd - UML) Role Agregace Zodpovědnost Násobnost Generalizace Atributy Pojmenování asociace Operace

26 class T { // data (i jiné objekty) int i; // metody void m(); // specifikace pristupovych prav private: // definice vnorenych typu, trıd, konstant,... typedef int typ; ; Přístupová práva mohou být: public, private, protected class T { int i; // class => implicitne private public: int j; // public protected: int k; // protected public: int l; // public int m; ; Př.: class FPS // Trida FPS { private: unsigned int stary_cas; unsigned int aktualni_cas; double fps; // Pocet snímku za sekundu public: void Vypocet(); // funkce pro výpočet fps inline double GetFPS() { return fps; ;

27 void FPS::Vypocet() { aktualni_cas = SDL_GetTicks(); // Vrátí milisekund od inicializace SDL fps = 1.0 / ((aktualni_cas - stary_cas) / ); stary_cas = aktualni_cas; FPS fps;// Objekt tridy /* POUŽITÍ*/ fps.vypocet(); // Aktualizace FPS aktual_fps = fps.getfps();

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Programovací jazyk C++ Hodina 1

Programovací jazyk C++ Hodina 1 Programovací jazyk C++ Hodina 1 Používané překladače Bloodshed Dev C++ http://www.bloodshed.net/devcpp.html CodeBlocks http://www.codeblocks.org pokud nemáte již nainstalovaný překladač, stáhněte si instalátor

Více

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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT; Programovací jazyk C(++) static struct vm_area_struct * unmap_fixup(struct mm_struct *mm, struct vm_area_struct *area, unsigned long addr, size_t len, struct vm_area_struct 1. *extra) Základy { struct

Více

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

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru

Více

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

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

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Páté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 5. týden

Více

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

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

IUJCE 07/08 Přednáška č. 1

IUJCE 07/08 Přednáška č. 1 Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming

Více

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské

Více

- jak udělat konstantu long int: L long velka = 78L;

- jak udělat konstantu long int: L long velka = 78L; Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

PROGRAMOVÁNÍ V C++ CVIČENÍ

PROGRAMOVÁNÍ V C++ CVIČENÍ PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné

Více

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

Jazyk C++, některá rozšíření oproti C

Jazyk C++, některá rozšíření oproti C Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra

Více

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

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

ADT/ADS = abstraktní datové typy / struktury

ADT/ADS = abstraktní datové typy / struktury DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní

Více

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce. Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby

Více

Práce se soubory. Základy programování 2 Tomáš Kühr

Práce se soubory. Základy programování 2 Tomáš Kühr Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup

Více

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

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

Operační systémy. Cvičení 3: Programování v C pod Unixem

Operační systémy. Cvičení 3: Programování v C pod Unixem Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené

Více

10 Práce s řetězci - pokračování

10 Práce s řetězci - pokračování 10 Práce s řetězci - pokračování Máme deklarováno: char retez[50]; - čtení z klávesnice: scanf("%s", retez); - čtení zadané počtu znaků z klávesnice scanf("%10s", retez); // přečti řetězec z klávesnice,max

Více

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace

Více

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

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

Formátové specifikace formátovací řetězce

Formátové specifikace formátovací řetězce 27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete

Více

Operační systémy. Cvičení 4: Programování v C pod Unixem

Operační systémy. Cvičení 4: Programování v C pod Unixem Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

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

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje Konstanty I možnosti: přednostně v paměti neexistuje žádný ; o preprocesor (deklarace) #define KONSTANTA 10 o konstantní proměnná (definice) const int KONSTANTA = 10; příklad #include v paměti

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden

Více

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

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Reprezentace dat v informačních systémech. Jaroslav Šmarda Reprezentace dat v informačních systémech Jaroslav Šmarda Reprezentace dat v informačních systémech Reprezentace dat v počítači Datové typy Proměnná Uživatelské datové typy Datové struktury: pole, zásobník,

Více

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

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44 Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251

Více

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16 Jazyk C práce se soubory 1 Soubory Použití souborů pro vstup většího množství dat do programu (uživatel nezadává z klávesnice ručně tisíce údajů...) pro uložení většího množství výsledků, např. k pozdějšímu

Více

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

Pole a Funkce. Úvod do programování 1 Tomáš Kühr Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19 Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář

Více

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Čtvrté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 4.

Více

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

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 Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

Objektově orientované programování

Objektově orientované programování 10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh

Více

Proměnná a její uložení v paměti

Proměnná a její uložení v paměti Proměnná a její uložení v paměti Počítačová paměť - řada buněk uložených za sebou, každá buňka má velikost 1 bajt (byte, B) - buňky jsou očíslovány, tato čísla se nazývají adresy Proměnná - data, se kterými

Více

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný

Více

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

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44 Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

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

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20 Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................

Více

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

Funkce, intuitivní chápání složitosti Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní

Více

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 -

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 - 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 - Preprocesor je možné ovládat pomocí příkazů - řádky začínající

Více

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

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 Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze

Více

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

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Velké projekty v C velký = 100ky a více řádek udržovatelnost, bezpečnost, přehlednost kódu rozdělení programu do více souborů další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Globální

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 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í

Více

Standardní vstup a výstup

Standardní vstup a výstup Standardní vstup a výstup Trochu teorie S pojmy standardní vstup/výstup (I/O, input/output) jste se již pravděpodobně setkali, pokud ale ne, zde je krátké vysvětlení. Standardní vstup a výstup jsou vlastně

Více

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

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

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je

Více

Práce se soubory. Úvod do programování 2 Tomáš Kühr

Práce se soubory. Úvod do programování 2 Tomáš Kühr Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C u Soubor chápeme jako posloupnost bytů uložených na disku u Datový proud (anglicky stream) u Ještě obecnější přístup u Sjednocuje

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

Vstup a výstup datové proudy v C

Vstup a výstup datové proudy v C Vstup a výstup datové proudy v C Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 24. října 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Vstup a výstup 24. října 2011 1 / 37 Přehled, rozdělení

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr Funkce pokročilé možnosti Úvod do programování 2 Tomáš Kühr Funkce co už víme u Nebo alespoň máme vědět... J u Co je to funkce? u Co jsou to parametry funkce? u Co je to deklarace a definice funkce? K

Více

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Lineární datové struktury

Lineární datové struktury Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Lineární datové

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

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

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) % vstup a výstup na konzolu - vstupním zařízením je klávesnice, výstupním monitor (přístup jako k sériovým zařízením) - spojení s konzolami je nastaveno automaticky na začátku programu - ke konzole je možné

Více

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

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Základy C++ I. Jan Hnilica Počítačové modelování 18

Základy C++ I. Jan Hnilica Počítačové modelování 18 Základy C++ I 1 Přechod z C na C++ jazyk C++ je nadmnožinou jazyka C z hlediska syntaxe se jedná o velmi podobné jazyky, spolu s dalšími jazyky "céčkovské" rodiny, jako je např. C# každý platný program

Více

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

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

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

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr Bitové operátory a bitová pole Úvod do programování 2 Tomáš Kühr Bitové operátory Provádějí danou operaci s jednotlivými bity svých operandů Operandy bitových operátorů mohou být pouze celočíselné Vyhodnocení

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura

Více

Stručný obsah První týden Druhý týden 211 Třetí týden 451 Rejstřík 787

Stručný obsah První týden Druhý týden 211 Třetí týden 451 Rejstřík 787 Stručný obsah První týden 25 den 1 Začínáme 27 den 2 Anatomie programu C++ 43 den 3 Proměnné a konstanty 57 den 4 Výrazy a příkazy 79 den 5 Funkce 107 den 6 Objektově orientované programování 141 den 7

Více

Prezentace a vysvětlení programového prostředí NXC

Prezentace a vysvětlení programového prostředí NXC Úvod Další jazyk, který je možno použít pro programování NXT kostky je NXC Not exatly C Na rozdíl od jazyku NXT-G, kde jsme vytvářeli program pomocí grafických prvků přesněji řečeno pomocí programovacích

Více

Řídicí struktury. alg3 1

Řídicí struktury. alg3 1 Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení

Více

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

DTP Základy programování Úvod do předmětu DTP Základy programování 01 - Úvod do předmětu Úvod Co již umíte? Plán předmětu Studijní materiály Způsob ukončení předmětu Základní pojmy I. Řešený problém: Řešeným nebo zpracovávaným problémem je konkrétní

Více

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

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start

Více

Výrazy, operace, příkazy

Výrazy, operace, příkazy Výrazy, operace, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad Karel Richta, Martin Hořeňovský,

Více

Šablony, kontejnery a iterátory

Šablony, kontejnery a iterátory 7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by

Více

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

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Jazyk C# a platforma.net

Jazyk C# a platforma.net Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu

Více