Algoritmizace a programování

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

Download "Algoritmizace a programování"

Transkript

1 Algoritmizace a programování Jazyk C řízení běhu programu České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015

2 Šest zákonů programování 1. V každém programu je alespoň jedna chyba 2. Každý program lze zkrátit alespoň o jeden řádek 3. Nejjednodušší chyby se nejhůře hledají 4. Každou opravou se do programu zanese nová chyba 5. Když už se zdá, že program je v pořádku, určitě jste něco přehlédli 6. Programátor dělá to co umí, počítač si dělá, co chce A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 2

3 Proces programování SESTAVENÍ ZADÁNÍ POZOR ANALÝZA POZOR ALGORITMIZACE POZOR PODPORA IDE ZÁPIS V PROGRAM. JAZYKU PODPORA IDE SYNTAKT. KONTROLA A PŘEKLAD PODPORA IDE LOGICKÁ KONTROLA (LADĚNÍ) POUŽÍVÁNÍ A ÚDRŽBA A0B36PRI A8B14ADP PROGRAMOVÁNÍ Algoritmizace a programovaní 02 -Jazyk C - rizeni behu programu 3

4 Programy a programovací jazyky Program je předpis (zápis algoritmu) pro provedení určitých akcí počítačem zapsaný v programovacím jazyku Programovací jazyky strojově orientované strojový jazyk = jazyk fyzického procesoru asembler (jazyk symbolických adres) vyšší jazyky imperativní (příkazové, procedurální) neimperativní (např. funkcionální) Hlavní rysy imperativních jazyků (C, C++, Java, Pascal, Basic,...) zpracovávané údaje mají formu datových objektů různých typů, které jsou v programu reprezentovány pomocí proměnných resp. Konstant program obsahuje deklarace a příkazy deklarace definují význam jmen (identifikátorů) příkazy předepisují akce s datovými objekty nebo způsob řízení výpočtu A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 4

5 Základní přístupy k programování Strojový, naivní přístup Strojový kód, asembler, skripty,c Procedurální přístup C, Java, Objektový přístup Java, C++, C#, A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 5

6 C první program Příklad: program vypíše daný text na obrazovku: #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { printf("nazdar Svete\n\n"); return (EXIT_SUCCESS); Po překladu a spuštění se na obrazovku vypíše Nazdar Svete Nejjednodušší zdrojový program je uložen v jediném souboru. Rozšíření souboru budr.c. (náš program bude tedy uložen v souboru PrvniProgram.c ) Vložení funkcí standardních knihoven #inclulde hlavní funkce main Hlavička funkce funkce main (): (int argc, char** argv) specifikace vstupních parametrů A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 6

7 C bloková struktura Program má blokový charakter (bloky funkci) Nejtriviálnější program je tvořen pouze funkcí main() Hlavičkové soubory (Header) Začátek těla funkce #include <stdio.h> #include <stdlib.h> Jméno funkce int main(int argc, char** argv) { printf("nazdar Svete\n\n"); return (EXIT_SUCCESS); Hlavička funkce Tělo funkce Konec funkce A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 7

8 Syntaxe Vlastnosti programovacích jazyků souhrn pravidel udávajících přípustné tvary dílčích konstrukcí a celého programu syntaktické diagramy Sémantika udává význam jednotlivých konstrukcí A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 8

9 Algoritmus Algoritmus - definice postup při řešení určité třídy úloh, který je tvořen seznamem jednoznačně definovaných příkazů a zaručuje, že pro každou přípustnou kombinaci vstupních dat se po provedení konečného počtu kroků dospěje k požadovaným výsledkům Vlastnosti algoritmu: hromadnost měnitelná vstupní data determinovanost každý krok je jednoznačně definován konečnost a resultativnost pro přípustná vstupní data se po provedení konečného počtu kroků dojde k požadovaným výsledkům Algoritmus syntetický model postupu řešení obecných úloh Prostředky pro zápis algoritmu přirozený jazyk, vývojový diagram, strukturogram, pseudojazyk, programovací jazyk A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 9

10 Algoritmus, příklad Úloha: Najděte největšího společného dělitele čísel 6 a 15 Řešení: Popišme postup tak, aby byl použitelný pro dvě libovolná přirozená čísla, nejen pro 6 a 15: označme zadanáčísla x a y a menší z nich d není-li d společným dělitelem x a y, pak zmenšíme d o 1, test opakujeme a skončíme, až d bude společným dělitelem x a y Poznámka: Význam symbolů x, y a d použitých v algoritmu: jsou to proměnné (paměťová místa), ve kterých je uložena nějaká hodnota, která se může v průběhu výpočtu měnit A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 10

11 Algoritmus společný dělitel Úloha: najděte největšího společného dělitele čísel 6 a 15 Průběh řešení: krok x y d poznámka 6 15? zadání vstupních dat d není dělitelem y, proveď krok zmenšení d d není dělitelem x, proveď krok zmenšení d d není dělitelem x ani y, proveď krok zmenšení d d je dělitelem x i y, proveď krok výsledek je hodnota 3 A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 11

12 Algoritmus - zobecnění Úloha: najděte největšího společného dělitele Přesnější popis: Vstup: přirozenáčísla x a y Výstup: nsd(x,y) Postup: 1. Je-li x<y, pak d má hodnotu x, jinak d má hodnotu y 2. Opakuj krok 3, pokud d není dělitelem x nebo d není dělitelem y 3. Zmenši d o 1 4. Výsledkem je hodnota d Sestavili jsme algoritmus pro výpočet největšího společného dělitele dvou přirozených čísel A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 12

13 Vývojový diagram Zjednodušený grafický tvar nsd(x, y) Úplný grafický tvar nsd(x, y) ano x < y ne d := x d := y d není dělitelem x nebo d není dělitelem y ano ne d := d - 1 nsd := d A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 13

14 Strukturogram Strukturogram nsd(x, y) ano x < y ne d := x d := y pokud d není dělitelem x nebo d není dělitelem y opakuj nsd :=d d := d - 1 A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 14

15 Zápis algoritmu pseudojazykem Pseudojazyk nsd(x,y): if x<y then d:=x else d:=y; while d není dělitelem x or d není dělitelem y do d:=d-1; nsd:=d; Zápis algoritmu programovacím jazykem (zde C) int nsd(int x, int y){ int d; if (x<y) d = x; else d = y; while (x%d!=0 y%d!=0) d--; return d; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 15

16 Ří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: 1. posloupnost, předepisující postupné provedení dílčích příkazů 2. větvení, předepisující provedení dílčích příkazů v závislosti na splnění určité podmínky 3. cyklus, předepisující opakované provedení dílčích příkazů v závislosti na splnění určité podmínky Řídicí struktury mají obvykle formu strukturovaných příkazů Budeme používat následující složené příkazy: 1. složený příkaz nebo blok pro posloupnost Složený příkaz: { <posloupnost příkazů> Blok: { <posloupnost deklarací a příkazů> 2. příkaz if pro větvení 3. příkazy while, do while nebo for pro cyklus Pozn.:Deklarace jsou v bloku lokální, tzn. neplatí vně bloku A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 16

17 Typy řídicích struktur sekvence if if while for do switch A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 17

18 Složený příkaz, blok Složený příkaz { x = y *3; x = x - 3; y = x; Blok {. x = y*4; { // Zacatek bloku int p,q; // p,q lokalni v bloku p = x + y; q = p - 3; y = p - q; System.out.println("q="+q); // Konec bloku // p,q - zde jiz nezname x = y - 100; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 18

19 Podmíněný příkaz if Příkaz if (podmíněný příkaz) umožňuje větvení na základě podmínky Má dva tvary: if (podmínka) příkaz 1 else příkaz 2 if (podmínka) příkaz 1 kde podmínka je logický výraz (výraz, jehož hodnota je typu boolean, tj. true nebo false) Příklad (do min uložit a pak vypsat menší z hodnot x a y): // 1. varianta if (x < y) min = x; else min = y; System.out.println(min); // 2. varianta min = x; if (y < min) min = y; System.out.println(min); A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 19

20 Podmíněný příkaz if, příklad // Urči, zda x leží v intervalu <-25,50>, // když ano, nastav b = true; jinak b = false; // b = 0 -> false, b = 1-> true (Jazyk C nema logicky typ proměnné) int x = 10; int b = 0; if(x > -25 && x < 50) b = 1; // Urci, zda y lezi v intervalu (-,-10> nebo <10,+ ) // Pokud ano nastav y = 0, b = true, // jinak y = y+10, b = false int x = 33; int b; if(y < -10 y > 10){ y = 0; b = 1; else{ y = y + 10; b = 0; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 20

21 Podmíněný příkaz, chyby Jestliže v případě splněníči nesplnění podmínky má být provedeno více příkazů, je třeba z nich vytvořit složený příkaz nebo blok Příklad: jestliže x < y, vyměňte hodnoty těchto proměnných Chybně: if (x < y) pom = x; x = y; y = pom; x<y x<y Správně: if (x < y) { pom = x; x = y; y = pom; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 21

22 Podmíněný příkaz, příklad Příklad: do min uložte menší z čísel x a y a do max uložte větší z čísel Chybně: if (x < y) min = x; max = y; else min = y; max = x; Správně: if (x < y) { min = x; max = y; else { min = y; max = x; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 22

23 Podmíněný příkaz, příklad Do příkazu if lze vnořit libovolný příkaz, tedy i podmíněný příkaz Příklad: do s uložte 1, 0 nebo 1 podle toho, zda x je menší než nula, rovno nule nebo větší než nula if (x < 0)s = -1; else if (x == 0)s = 0; else s = 1; Příklad: do max uložte největší z čísel x, y a z if (x > y) if (x > z) max = x; else max = z; else if (y > z) max = y; else max = z; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 23

24 Podmíněný příkaz, příklad chyby Pozor na vnoření neúplného if do úplného if Příklad: zapište příkazem if následující větvení: ne ano i > 0 ne i <10 z = 2 ano z = 1 Chybně!!!!: if (i > 0) if (i < 10) z = 1; else z = 2; Správně: if (i > 0) { if (i < 10) z = 1; else z = 2; Pozn:: v NetBeans je možnost formátování!! A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 24

25 Podmíněný příkaz, příklad Program, který pro zadaný rok zjistí, zda je přestupný Přestupný rok je dělitelný 4 a buď není dělitelný 100 nebo je dělitelný 1000 #include <stdio.h> #include <stdlib.h> int main(nt argc, char** argv) { int rok; printf("zadejte rok = "); scanf("%d", &rok); printf("\nrok %4d",rok); if (rok%4==0 && (rok%100!=0 rok%1000==0)) else printf(" je prestupny \n\n"); printf(" neni prestupny \n\n"); A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 25

26 Cykly Cykly umožní řízené opakování výpočtu se změněnými podmínkami Cykly s testem ukončení před výpočtem while( ) { // Telo cyklu podmínka + příkaz - for( ; ; ){ // Telo cyklu Cykly s testem ukončení po výpočtu do { // Telo cyklu while( ); - příkaz podmínka + A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 26

27 Základní příkaz cyklu, který má tvar while (podmínka) příkaz Příklad: q = x; while (q>=y) q = q-y; Příkaz while podmínka + příkaz - (jsou-li hodnotami proměnných x a y přirozenáčísla, co je hodnotou proměnné q po skončení uvedeného cyklu?) Má-li se opakovaně provádět více příkazů, musíme vytvořit složený příkaz Příklad: q = x; p = 0; while (q>=y){ q = q-y; p = p+1; (jsou-li hodnotami proměnných x a y přirozenáčísla, co je hodnotou proměnných p a q po skončení uvedeného cyklu?) A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 27

28 Příkaz while, příklad Výpočet faktoriálu přirozeného čísla n ( n! = n ) #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int n, i = 1, f = 1; printf("zadejte prirozene cislo (max 12) n = "); scanf("%d", &n); if (n < 1) { printf("\n n = %d neni prirozene cislo \n\n", n); exit(0); while (i < n) { i = i + 1; f = f * i; printf("\n %3d! = %d \n\n", n, f); return (EXIT_SUCCESS); A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 28

29 Příkaz do while Příkaz cyklu do se od příkazu while liší v tom, že podmínka se testuje až za tělem cyklu Tvar příkazu: do příkaz while (podmínka); Vnořeným příkazem je nejčastěji složený příkaz Příklad (faktoriál): f = 1; i = 0; do { i = i+1; f = f*i; while (i<n); - podmínka + příkaz Poznámka k sémantice: příkaz do provede tělo cyklu alespoň jednou, nelze jej tedy použít v případě, kdy lze očekávat ani jedno provedení těla cyklu A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 29

30 Příkaz for Tvar příkazu for: for ( inicializace ; podmínka ; změna ) příkaz Provedení příkazu for : inicializace; while (podmínka) { příkaz změna; + - Cyklus je často řízen proměnnou, pro kterou je stanoveno: jaká je počáteční hodnota jaká je koncová hodnota jak změnit hodnotu proměnné po každém provedení těla cyklu A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 30

31 Příkaz for příklad faktoriál Cykly tohoto druhu lze zkráceně předepsat příkazem for: f = 1; for (i=1; i<=n; i=i+1) f=f*i; Sémantický význam int f = 1; int i = 1; while (i<=n) { // počáteční hodnota řídicí proměnné // podmínka určující koncovou hodnotu f = f*i; // tělo cyklu i = i+1; // změna řídicí proměnné A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 31

32 Zpracování posloupností I Příklad: program pro součet posloupnosti čísel Hrubé řešení: suma = 0; while (nejsou přečtena všechna čísla) { dalsi = přečti celé číslo; suma = suma+dalsi; Jak určit, zda jsou přečtena všechna čísla? Možnosti: 1. počet čísel bude vždy stejný, např počet čísel bude dán na začátku vstupních dat 3. vstupní data budou končit zarážkou, např. nulou Struktura vstupních dat formálně: 1. a 1 a 2 a 3 a 4 a 5 2. n a 1 a 2... a n 3. a 1 a 2... a 5 0, kde a i 0 A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 32

33 Zpracování posloupností II Řešení 1 vstupní data: a 1 a 2 a 3 a 4 a 5 #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int i, suma, dalsi; printf("zadejte 5 cisel \n"); suma = 0; for (i = 1; i <= 5; i++) { scanf("%d", &dalsi); suma = suma+dalsi; printf("suma = %d \n\n", suma); return (EXIT_SUCCESS); A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 33

34 Zpracování posloupností III Řešení 2 vstupní data: n a 1 a 2... a n #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int i, suma, dalsi, n; printf("zadejte pocet cisel = "); scanf("%d", &n); printf("\nzadejte %d cisel \n", n); suma = 0; for (i = 1; i <= n; i++) { scanf("%d", &dalsi); suma = suma+dalsi; printf("suma = %d \n\n", suma); return (EXIT_SUCCESS); A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 34

35 Zpracování posloupností IV Řešení 3 vstupní data: a 1 a 2... a n 0, kde a i 0 #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int suma, dalsi; printf("zadejte radu cisel zakoncenou nulou \n"); suma = 0; scanf("%d", &dalsi); while (další!= 0) { suma = suma+dalsi; scanf("%d", &dalsi); printf("suma = %d \n\n", suma); return (EXIT_SUCCESS); A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 35

36 continue vynechá část výpočtu cyklu while( ) { if( ) continue; // Vynechana cast vypoctu do { if( ) continue; // Vynechana cast vypoctu while( ); for( ; ; ){ if( ) continue; // Vynechana cast vypoctu A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 36

37 Příkaz continue Příkazy while a for testují ukončení cyklu před provedením těla cyklu Příkaz do testuje ukončení cyklu po provedení těla cyklu Někdy je třeba ukončit cyklus v nějakém místě uvnitř těla cyklu (které je v tom případě tvořeno složeným příkazem) Příkaz continue předepisuje předčasné ukončení průchodu těla cyklu Příklad: int i; for (i = 1; i <= 100; i++) { if (i%10 == 0) continue; printf("%d \n\n", i); příkaz vypíše čísla od 1 do 100 s výjimkou dělitelných 10 37

38 Příkaz break Příkaz break vnořený do podmíněného příkazu ukončí předčasně příkaz, schematicky: while (...) {... if (ukončit) break;... Příkaz break předepisuje předčasné ukončení těla cyklu Příklad: int i; for (i = 1; i <= 100; i++) { if (i%10 == 0) break; printf("%d \n\n", i); příkaz vypíše čísla od 1 do 9 A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 38

39 break předčasné ukončení výpočtu while( ) { if( ) break; // Predcasne ukonceni cyklu do { if( ) break; while( ); // Predcasne ukonceni cyklu for( ; ; ){ if( ) break; // Predcasne ukonceni cyklu A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 39

40 Příkaz break a continue příklad int main(int argc, char** argv) { int i; for (i = 1; i <= 30; i++) { if (i%10 == 0) continue; printf("%d \n", i); int i; for (i = 1; i <= 30; i++) { if (i%10 == 0) break; printf("%d \n", i); A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 40

41 Konečnost cyklů Aby algoritmus byl konečný, musí každý cyklus v něm uvedený skončit po konečném počtu kroků Nekonečný cyklus je častou chybou Základní pravidlo pro konečnost cyklu: provedením těla cyklu se musí změnit hodnota proměnné vyskytující se v podmínce cyklu Triviální příklad špatného cyklu: while (i!=0) j = i-1; Tento cyklus se buď neprovede ani jednou, nebo neskončí Uvedené pravidlo konečnost cyklu ještě nezaručuje Konečnost cyklu závisí na hodnotách proměnných před vstupem do cyklu double x = 0; int i = -1; while (i<0) {x = x + Math.sin(i* 0.6); i--; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 41

42 Konečnost cyklů Příklad: while (i!= n) { P; // příkaz, který nezmění hodnotu proměnné i i++; Otázka: co musí splňovat hodnoty proměnných i a n před vstupem do cyklu, aby cyklus skončil? Odpověď vstupní podmínka konečnosti cyklu: i <= n Vstupní podmínku konečnosti cyklu lze určit ke každému cyklu (někdy je to velmi obtížné) Splnění vstupní podmínky konečnosti cyklu musí zajistit příkazy předcházející příkazu cyklu Zásada: zabezpečený program testuje přípustnost vstupních dat A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 42

43 Příkaz switch Příkaz switch (přepínač) umožňuje větvení do více větví na základě různých hodnot výrazu (nejčastěji typu int nebo char) Základní tvar příkazu: switch (výraz) { case konstanta 1 : příkazy 1 break; k=? case konstanta 2 : příkazy 2 break;... case konstanta n : příkazy n break; default : příkazy def kde konstanty jsou téhož typu, jako výraz příkazy jsou složené příkazy Sémantika (zjednodušeně): vypočte se hodnota výrazu a pak se provede ten příkaz, který je označen konstantou označující stejnou hodnotu není-li žádná větev označena hodnotou výrazu, provedou se příkazy def A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 43

44 switch příklad den v roce Program pro výpočet pořadového čísla dne v roce #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int den, mesic, rok, n = 0; printf("zadejte den, měsíc a rok = "); scanf("%d", &den); scanf("%d", &mesic); scanf("%d", &rok) switch (mesic) { case 1: n = den; break; case 2: n = 31+den; break; case 3: n = 59+den; break; case 4: n = 90+den; break; case 5: n = 120+den; break; case 6: n = 151+den; break;... case 12: n = 334+den; break; if (mesic>2 && rok%4==0 && (rok%100!=0 rok%1000==0)) n = n+1; printf("den = %d Mesic = %d Rok = %d\n", den,mesic.rok); return (EXIT_SUCCESS); A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 44

45 Příkaz switch příklad // switch( ) Ucel: vetveni programu do vice smeru // // Testuj x, kdyz x =. tak nastav do v =. // // // jina hodnota 500 int v,x=6; v = 500; switch(x) { case 2: v = 300; break; case 6: v = 400; break; int v,x=6; switch(x) { case 2: v = 300; break; case 6: v = 400; break; default: v = 500; break; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 45

46 C struktura programu int main(int argc, char** argv) { int n; printf("zadej pocet = "); scanf("%d", &n); while (n > 0) { printf("vypis = %d", n); n = zmensi(n); int zmensi(int n) { n = n-1; return n; A8B14ADP Algoritmizace a programovaní -Jazyk C - rizeni behu programu 46

47 Algoritmizace a programování Jazyk C řízení běhu programu KONEC České vysoké učení technické Fakulta elektrotechnická

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Jazyk C řízení běhu programu České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Šest zákonů programování 1. V každém programu je alespoň jedna chyba

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

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti 3. přednáška nalezení největšího prvku, druhého nejvyššího prvku, algoritmus shozeného praporku. Algoritmizace

Více

Řídící struktury, if, while, switch

Řídící struktury, if, while, switch Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Řídící struktury, if, while, switch BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních

Více

Algoritmizace. Cíle předmětu

Algoritmizace. Cíle předmětu Cíle předmětu Algoritmizace naučit se sestavovat algoritmy řešení jednoduchých problémů a zapisovat je v jazyku Java Organizace předmětu přednášky (učast nepovinná, ale doporučená) cvičení střídavě u tabule

Více

Řídící struktury, if, while, switch

Řídící struktury, if, while, switch 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 Řídící struktury,

Více

Programování a algoritmizace 1 2012-2013

Programování a algoritmizace 1 2012-2013 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 Algoritmy Kdo je

Více

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Algoritmy BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních technologií České vysoké

Více

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1 Algoritmizace Cíl předmětu - naučit se sestavovat algorimy řešení základních problémů a zapisovat je v jazyku Java. Jádrem předmětu jsou data, typy, výrazy a příkazy demonstrované v programovacím jazyce

Více

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Algoritmy BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních technologií České vysoké

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Jazyk C funkce České vysoké učení technické Fakulta elektrotechnická A8B14ADP Algoritmizace a programovaní -Jazyk C -Ver.1.00 funkce J. Zděnek 20151 Funkce Funkce - černá (programová)

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

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku 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 příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Příkazy if, while, do-while, for, switch

Příkazy if, while, do-while, for, switch Příkazy if, while, do-while, for, switch BI-PA1 Programování a Algoritmizace 1 Ladislav Vagner, Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních technologíı

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

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 Algoritmus Daniela Szturcová Tento

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

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

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

Větvení a cykly. Úvod do programování 1 Tomáš Kühr Větvení a cykly Úvod do programování 1 Tomáš Kühr Konstrukce if u Příkazy se provádějí pouze při splnění dané podmínky u Podmínka = jakýkoli logický výraz = cokoli celočíselného u Volitelně i příkazy prováděné

Více

2. lekce Algoritmus, cyklus Miroslav Jílek

2. lekce Algoritmus, cyklus Miroslav Jílek 2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává

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

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 Algoritmus Daniela Szturcová Tento

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

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

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,

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

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

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

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3 Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................

Více

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr) Cykly Základy programování 1 Martin Kauer (Tomáš Kühr) Z minula Chary můžete používat jako znaky ale i jako čísla 0-255. Jakou formu vybrat záleží na konkrétní aplikaci. Když pracujete se znaky, používejte

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

Úvod do programování. Lekce 3

Úvod do programování. Lekce 3 Úvod do programování Lekce 3 Řízení běhu programu - pokračování /2 příklad: program vypisuje hodnotu sin x dx pro různé délky integračního kroku 0 #include #include // budeme pouzivat funkci

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

Rozklad problému na podproblémy, rekurze

Rozklad problému na podproblémy, rekurze Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Rozklad problému na podproblémy, rekurze BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Pole (array), ukazatele (pointer) Jazyk C České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Pole (array) (1) Pole je množina

Více

Výukový materiál zpracován v rámci projektu EU peníze školám

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

Rozklad problému na podproblémy, rekurze

Rozklad problému na podproblémy, rekurze 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 Rozklad problému

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

- 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

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

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

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5 Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou

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

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury 1 / 34 Obsah přednášky Základní řídící struktury posloupnost příkazů podmínka cyklus s podmínkou na začátku cyklus s podmínkou na konci cyklus s pevným počtem opakování Jednoduchá

Více

Algoritmizace. Obrázek 1: Přeložení programu překladačem

Algoritmizace. Obrázek 1: Přeložení programu překladačem Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.

Více

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí 02 Jazyk C - je imperativní říkáme, co se má udělat, voláme příkazy - další imperativní jazyky: Pascal, Java, C/C++ apod. - na rozdíl od jazyků deklarativních např. Prolog, Haskell, Scheme, Lisp (funkcionální

Více

Ú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

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

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

Ú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

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

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

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

VISUAL BASIC. Přehled témat

VISUAL BASIC. Přehled témat VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat

Více

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

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

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

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

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

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

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

Úvod do programování. Lekce 5

Úvod do programování. Lekce 5 I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í Inovace a zvýšení atraktivity studia optiky reg. č.: CZ.1.07/2.2.00/07.0289 Úvod do programování Lekce 5 Tento projekt je spolufinancován Evropským

Více

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

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

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

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní

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

1. Téma 03 - Rozhodování

1. Téma 03 - Rozhodování 1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice

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

Č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

4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady Základy programování (IZAPR, IZKPR) Přednáška 5 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky Příkazy cyklu -

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Čí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

Digitální učební materiál

Digitální učební materiál Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_142_IVT Autor: Ing. Pavel Bezděk Tematický okruh:

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Lekce 04 Řídící struktury

Lekce 04 Řídící struktury Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 04 Řídící struktury Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Algoritmus Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Klíčové pojmy: Algoritmus, vlastnosti algoritmu, tvorba algoritmu, vývojový diagram, strukturogram Algoritmus

Více

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód

Více

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++ C++ Akademie SH 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory Za áte níci C++ 20. b ezna 2011 Obsah 1 Prom nné - primitivní typy Celá ísla ƒísla s pohyblivou desetinnou árkou, typ bool 2 Podmínka

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Doporučená literatura web: http://marian.fsik.cvut.cz/zapg

Více

Programovani v Maplu Procedura

Programovani v Maplu Procedura Programovani v Maplu Procedura Priklad: procedura, ktera scita 2 cisla: a + 2*b soucet := proc (a, b) local c; # lokalni promenna - existuje a meni se jenom uvnitr procedury c:=a+b; # globalni promenna

Více

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Algoritmus Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Klíčové pojmy: Algoritmus, vlastnosti algoritmu, vývojový diagram Algoritmus Algoritmus je postup, pomocí

Více

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti LEXIKÁLNÍ ANALÝZA Kód ve vstupním jazyku Lexikální analyzátor

Více

Zápis programu v C a základní řídicí struktury

Zápis programu v C a základní řídicí struktury Zápis programu v C a základní řídicí struktury Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 03 B0B36PRP Procedurální programování Jan Faigl, 2017 B0B36PRP

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Procedurální programování Rekurze Jazyk C České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Procedurální programování - zásady Postupný návrh programu

Více

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace Programování: základní konstrukce, příklady, aplikace IB111 Programování a algoritmizace 2011 Připomenutí z minule, ze cvičení proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady:

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz

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

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

Rozklad problému na podproblémy

Rozklad problému na podproblémy Rozklad problému na podproblémy Postupný návrh programu rozkladem problému na podproblémy zadaný problém rozložíme na podproblémy pro řešení podproblémů zavedeme abstraktní příkazy s pomocí abstraktních

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

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

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,

Více

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

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

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

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