Algoritmy a programování - Úvod
|
|
- Leoš Kovář
- před 8 lety
- Počet zobrazení:
Transkript
1 Algoritmy a programování - Úvod
2 Algoritmy a programování Přednášející: Jan Kybic, kybic@fel.cvut.cz Stránky předmětu:
3 Organizace předmětu Přednášky: Účast je nepovinná, ale doporučená Cvičení: samostatná práce pod vedením cvičícího automatické ověření správnosti řešení 50% váhy zkoušky nerozumíte-li, ptejte se pokročilí - chtějte další úlohy Domácí práce: úlohy ze cvičení další úlohy dle potřeby Literatura: Sedgewick et al.: Introduction to programming in Python Wentworth et al.: Learning with Python 3 Zelle et al.: Python Programming: An Introduction to Computer Science Kubias (překl.): Učíme se programovat v jazyce Python 3 Konzultace - po přechozí domluvě
4 Proč se učit programování číst, psát, počítat, programovat počítače jsou všude počítač je nástroj, program je nástroj programování učí logicky a strukturovaně myslet
5 Co se máme naučit Řešení problémů formulace problém analýza možných řešení a návrh algoritmu implementace v programovacím jazyce testování, ověření funkčnost optimalizace oprava chyb, implementace nových požadavků, údržba dokumentace
6 Algoritmus a program Co je to algoritmus? přesný, detailní a úplný postup (obvykle řešení problému) Co je to program? zápis algoritmu v konkrétním programovacím jazyce
7 Python I Programovací jazyk Python I autor Guido van Rossum, 1989 Figure 1: Guido van Rossum
8 Proč Python? jazyk vysoké úrovně, pro všeobecné použití dobře čitelný, multiparadigmatický mnoho knihoven velmi populární (5. místo) dynamický, interpretovaný (byte-code) s automatickou alokací paměti Budeme používat Python 3. Toto není kurz jazyka Python. Detaily najdete v dokumentaci.
9 Jak Python spustíme? Napíšeme do příkazové řádky python3:!python3 Python (default, Oct , 20:28:29) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more i >>> (nebo spustíme IDE prostředí jako idle, nebo Jupyter notebook... Možností je mnoho)
10 Python jako kalkulačka >python3 Python (default, Oct , 20:28:29) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more i >>> >>> 11*(5+3) 88 >>> 128./ >>> 2**
11 Python jako kalkulačka (2) totéž, hezky vysázeno *(5+3) / **
12 Výrazy Výrazy (expressions) obsahují Celá čísla: 3, 8,... Reálná čísla: 128., 11.5,... Operátory: +, -, /, *,... Oddělovače: (, )
13 Co se děje v zákulisí (REPL) Spustili jsme program python3, interpret Pythonu tisk výzvy (prompt) >>> přečtení uživatelského vstupu (read) vyhodnocení výrazu (evaluate) tisk výsledku (print) Opakované vykonávání (smyčka, loop) REPL (read-eval-print-loop)
14 Program jako transformace (filtr) Figure 2: Transformace vstupu na výstup Toky dat (data flow)
15 Proměnné a přiřazení Hodnotu výrazu lze uložit pro pozdější použití Příklad: a=3 b=3+a identifikátor = výraz Jaká je hodnota proměnné b? b 6
16 Příklad: Proměnné boys=15 girls=17 total=boys+girls difference=girls-boys ratio=boys/total total 32 difference 2 ratio Učte se anglicky. Počítače mluví anglicky, programy jsou anglicky, informace jsou anglicky. Z důvodů přenositelnosti je bezpečnější se omezit na znaky anglické abecedy.
17 Hodnoty proměnných lze měnit a=10 a=a-2 a=a*2 Jaká je hodnota a? a 16 Není-li pro to dobrý důvod, hodnoty proměnných neměňte.
18 Proč používat proměnné DRY = Do not repeat yourself. Šetřme si práci, neopakujme se Zlepšení Srozumitelnosti - smysluplná jména proměnných Údržby - jedna změna jen na jednom místě Efektivity - využijeme předchozích výpočtů
19 Začínáme programovat
20 První program - Hello world # Vypíše pozdravení print("hello world") vytvoříme v textovém editoru uložíme do souboru hello_world.py spustíme (z příkazové řádky, opakovaně) >python3 hello_world.py!python3 hello_world.py Hello world První řádka je komentář - každý program má být komentován.
21 Editory, integrovaná prostředí (IDE) Editory: Emacs, gedit, joe,... spouštění z příkazové řádky z integrovaného prostředí z Jupyter notebooku Integrované prostředí: IDLE, PyCharm, Eclipse,... Na konkrétním editoru, případně IDE, zase tolik nezáleží.
22 Editace a interpretace programu Figure 3: Editace a interpretace programu
23 print("%0.1f stupňů Fahrenheita je %0.1f stupňů Celsia." % Příklad: Převod stupňů Fahrenheita na stupně Celsia Kolik C je 75 F? f=75 c=(f-32)*5./9. print(c) Trochu hezčí výpis (pro pokročilé): print(f,"stupňů Fahrenheita je",c,"stupňů Celsia.") 75 stupňů Fahrenheita je stupňů Celsia. print("%f stupňů Fahrenheita je %f stupňů Celsia." % (f,c)) stupňů Fahrenheita je stupňů Celsia. funkce print vytiskne své argumenty argumentem funkce print může být číslo nebo řetězec %f do řetězce doplní reálná čísla z dalších argumentů Omezíme počet desetinných míst (pro pokročilé):
24 Program = automatizace Co když chceme převést hodnot více? Kolik C je 30 F? Šetřme si práci, neopakujme se DRY = Do not repeat yourself Vytvoříme program, který budeme moci opakovaně spouštět
25 Program = soubor Do souboru convert1.py uložíme jednotlivé příkazy: # Program pro převod stupňů Fahrenheita na stupně Celsia f=75 c=(f-32)*5./9. print("%0.1f stupňů Fahrenheita je %0.1f stupňů Celsia." % a spustíme z příkazové řádky (i opakovaně) >python3 convert1.py!python3 convert1.py 75.0 stupňů Fahrenheita je 23.9 stupňů Celsia.
26 Čtení parametru z příkazové řádky Náš program počítá pořád to samé... není flexibilní. Vylepšená verze (convert2.py): # Program convert2.py pro převod stupňů Fahrenheita na stup import sys f=int(sys.argv[1]) # první argument c=(f-32)*5./9. print("%0.1f stupňů Fahrenheita je %0.1f stupňů Celsia." % Argument (stupně Fahrenheita) zadáme pří spouštění:!python3 convert2.py stupňů Fahrenheita je 15.6 stupňů Celsia.!python3 convert2.py stupňů Fahrenheita je 32.2 stupňů Celsia.!python3 convert2.py stupňů Fahrenheita je stupňů Celsia.
27 Základní části textu programů Komentáře: # Program convert2.py pro převod stupňů Fahrenheita na Klíčová slova: import import keyword print(keyword.kwlist) ['False', 'None', 'True', 'and', 'as', 'assert', 'break', ' Identifikátory: (jména proměnných a funkcí) f, c, print,... Písmena, čísla, podtržítka, nezačíná číslem,není klíčové slovo Operátory: +,-,*,/,=,... Literály: Celá čísla: 32,-20,... Reálná čísla: 5., 9., 32.3, 1.3e-6 ( )... Řetězce: "Hello world", 'xyz',"%0.1f stupňů Fahrenheita je %0.1f stupňů Celsia."...
28 Chyby (neúplný přehled) Syntaktické chyby (syntax errors)- nejedná se o korektně zapsaný program v Pythonu, např: c=(f-32*5./9. File "<ipython-input-9-6c154279ea5c>", line 1 c=(f-32*5./9. ^ SyntaxError: unexpected EOF while parsing nedefinované jméno funkce nebo proměnné prnt("%0.1f stupňů Fahrenheita je %0.1f stupňů Celsia." % ( NameError Traceback (most r <ipython-input-8-2e2cdc5aa55f> in <module>() ----> 1 prnt("%0.1f stupňů Fahrenheita je %0.1f stupňů Cels
29 Řídící struktury (control structures)
30 Porovnávání (čísel) 8>3 True 10<=10 True 1==0 False 2!=3 True a=4 b=6 a<b True Operátory >,<,==,>=,<=,!=. Vracejí True nebo False (typ bool).
31 Podmíněný příkaz (if) # Program conditionals.py pro demonstraci podmíněných příka import sys n=int(sys.argv[1]) # první argument - celé číslo if n>0: print(n,"je kladné číslo") print("konec programu.")!python3 conditionals.py je kladné číslo Konec programu.!python3 conditionals.py -1 Konec programu. Bloky kódu jsou v Pythonu určené odsazením. Bloky kódu = základ strukturovaného programování.
32 Větvení (if-else) # Program conditionals2.py pro demonstraci podmíněných přík import sys n=int(sys.argv[1]) # první argument if n>0: print(n,"je kladné číslo") else: print(n,"není kladné číslo")!python3 conditionals2.py je kladné číslo!python3 conditionals2.py -3-3 není kladné číslo
33 Vnořené větvení # Program conditionals3.py pro demonstraci podmíněných přík import sys n=int(sys.argv[1]) # první argument if n>0: print(n,"je kladné číslo") else: if n==0: print(n,"je nula") else: print(n,"je záporné číslo")!python3 conditionals3.py je kladné číslo!python3 conditionals3.py -3-3 je záporné číslo!python3 conditionals3.py 0
34 Zřetězené podmínky (if-elif-else) # Program conditionals4.py pro demonstraci podmíněných přík import sys n=int(sys.argv[1]) # první argument if n>0: print(n,"je kladné číslo") elif n==0: print(n,"je nula") else: print(n,"je záporné číslo")!python3 conditionals4.py je kladné číslo!python3 conditionals4.py -3-3 je záporné číslo!python3 conditionals4.py 0 0 je nula
35 (Příklad:) Maximum tří čísel Vytiskněte maximum tří vstupních čísel. # maximum.py - Vytiskne maximum tří zadaných čísel import sys a=int(sys.argv[1]) b=int(sys.argv[2]) c=int(sys.argv[3]) if a>b: # maximum je a nebo c if a>c: # a>b, a>c print(a) else: # c >= a > b print(c) else: # b >= a if b>c: # b > c, b >= a print(b) else: # c >= b >= a, print(c)!python3 maximum.py
36 (Příklad:) Kontrola prázdného vstupu!python3 conditionals4.py Traceback (most recent call last): File "conditionals4.py", line 3, in <module> n=int(sys.argv[1]) # první argument IndexError: list index out of range Zkontrolujeme počet vstupních argumentů sys.argv - seznam vstupních parametrů len(sys.argv) - počet prvků seznamu = počet parametrů + 1 sys.argv[0] - nultý parametr = jméno programu (např. conditionals4.py ) sys.argv[1] - první parametr = první uživatelský argument # Program conditionals5.py pro demonstraci podmíněných přík import sys if len(sys.argv)!=2: print("zadej cele cislo")
37 Předčasný návrat # Program conditionals6.py pro demonstraci podmíněných přík import sys if len(sys.argv)<=1: print("zadej jedno cele cislo") sys.exit() # ukončí program # zde následuje původní program n=int(sys.argv[1]) # první argument if n>0: print(n,"je kladné číslo") elif n==0: print(n,"je nula") else: print(n,"je záporné číslo") Funguje stejně jako conditionals5.py. sys.exit() ukončí celý program. Jak ukončit funkce a cykly se naučíme později.
38 Cykly (smyčky) (loops) Smyčka slouží k opakování části (bloku) programu daný počet opakování (for) pro všechny elementy z dané sekvence (for) dokud platí podmínka (while) for i in range(10): print("budu se pilně učit.") Budu se pilně učit. Budu se pilně učit. Budu se pilně učit. Budu se pilně učit. Budu se pilně učit. Budu se pilně učit. Budu se pilně učit. Budu se pilně učit. Budu se pilně učit. Budu se pilně učit. for i in range(10):
39 for cyklus Proměnná v příkazu for <promenna> in range(n): <blok> nabírá postupně hodnoty 0... n 1: for i in range(5): print("i=",i) i= 0 i= 1 i= 2 i= 3 i= 4 Funkce range může mít i parametry start a step. help(range) Funkce help ukáže nápovědu k dané funkci či příkazu. Zkuste si help(). Nastavení počáteční hodnoty cyklu:
40 Soubor tabulka_fahrenheit.py Napříště už uložení do souboru a spuštění zdůrazňovat nebudeme. Příklad: Tabulka Fahrenheit - Celsius for f in range(0,110,10): c=(f-32)*5./9. print("%5.1ff = %5.1fC" % (f,c)) 0.0F = -17.8C 10.0F = -12.2C 20.0F = -6.7C 30.0F = -1.1C 40.0F = 4.4C 50.0F = 10.0C 60.0F = 15.6C 70.0F = 21.1C 80.0F = 26.7C 90.0F = 32.2C 100.0F = 37.8C
41 Příklad: Součet čísel Vypočítejte 10 i=1 i: s=0 for i in range(1,101): s=s+i print("soucet je ",s) Soucet je 5050 Kontrola: n i = i=1 n(n + 1) 2
42 Vnořené bloky a cykly Blok kódu může obsahovat další (vnořené) bloky. Příklad: násobilka (soubor nasobilka.py) n=5 for i in range(1,n+1): for j in range(1,n+1): print("%2d * %2d = %2d" % (i,j,i*j)) 1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10
43 Smyčka while Iteruje, dokud je podminka splněná while <podminka>: <blok> i=5 while i>0: print("i=",i) i=i-1 i= 5 i= 4 i= 3 i= 2 i= 1 Cyklus while může nahradit cyklus for, ale nikoliv naopak
44 Odbočka: Operátor celočíselného dělení a modulo 10/ //3 3 a zbytek po dělení (operace modulo) 10%3 1 Vždy platí: (n//k)*k+(n%k)=n (100//7)*7+(100%7) 100
45 Příklad: Kolik číslic má dané přirozené číslo? Myšlenka: Spočítáme, kolikrát lze dělit deseti, než se dostaneme k nule. c=1 # počet číslic while n>10: n=n//10 # celočíselné dělení c=c+1 print("počet číslic=%d" % c) Celý program včetně kontroly vstupů: # %load pocet_cislic.py # Spočítej, kolik číslic má dané přirozené číslo import sys if len(sys.argv)!=2: print("chyba: zadej jedno přirozené číslo.") sys.exit() n=int(sys.argv[1])
46 Zkrácené přiřazení Místo c=c+1 píšeme c+=1. Totéž funguje i pro další operátory. Místo: c=1 # počet číslic while n>10: n=n//10 # celočíselné dělení c=c+1 print("počet číslic=%d" % c) napíšeme (soubor pocet_cislic2.py) c=1 # počet číslic while n>10: n//=10 # celočíselné dělení c+=1 print("počet číslic=%d" % c)
47 Nekonečný cyklus Vinou chyby program nikdy neskončí. n=982 c=1 # počet číslic while n>10: n//10 # celočíselné dělení c+=1 print("počet číslic=%d" % c) Nekonečný cyklus může být i záměrný. Snažme se dokázat, že program skončí.
48 Přerušení cyklu (break, continue) V těle cyklu for nebo while: break ukončí celý cyklus continue přeruší aktuální iteraci a začne následující for i in range(5): if i==3: break print(i) for i in range(5): if i==3: continue print(i) 0 1
49 Příklad: Test prvočíselnosti prvočíslo n > 1 je dělitelné pouze 1 a n. 2, 3, 5, 7, 11, 13, 17, 19, 23, 29,... Test dělitelnosti v Pythonu: 10 % 3 == 0 False 10 % 5 == 0 True Úkol 1: Napište program, který zjistí, zda je zadané číslo prvočíslo. Zkusím dělit zadané číslo n čísly p 2... n 1, jestli p n. (soubor prvocislo1.py) # Test prvočiselnosti zadaného čísla import sys n=int(sys.argv[1]) # číslo, které testujeme p=2 while p<n: if n % p == 0:
50 Optimalizace - nešlo by to rychleji? Hledáme algoritmus, který je správný. Hledáme algoritmus, který je rychlý. Myšlenka: Stačí testovat pro p n, neboť pokud n = ab, pak buď a n nebo b n. # prvocislo3.py - Vypíše prvočísla menší než zadaný limit import sys m=int(sys.argv[1]) for n in range(2,m): # cyklus 2..m-1 p=2 # začátek testu while p*p<=n: if n % p == 0: break p+=1 if p*p > n: # n je prvočíslo print(n,end=", ") print() # závěrečný konec řádky!python3 prvocislo3.py 1000
51 Závěr
52 Co jsme se naučili Proč se učit programovat Program, algoritmus, programovací jazyk Python, jak ho spustit Jak spustit program ze souboru Čísla, výrazy, proměnné Vstupní argumenty, výstup Podmíněné příkazy (if,else) Smyčky (for, while, break, continue) Chyby Optimalizace
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.
SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů
SPJA, cvičení 1 ipython, python, skripty základy syntaxe: základní datové typy, řetězce podmínky: if-elif-else, vyhodnocení logických výrazů cykly: for, while kolekce: seznam, n-tice, slovník funkce, list
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.
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
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
Konečný automat. Jan Kybic.
Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s
WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007
WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové
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
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
Ří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í
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í
Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.
Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu
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 -
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
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!
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
Skripty - úvod. Linux - skripty 2
Linux - skripty Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,
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
Basic256 - úvod do programování Příklady. ing. petr polách
Basic256 - úvod do programování Příklady ing. petr polách 1 Basic 256 input, print Př.: Vytvořte program pro součet dvou čísel: input "Zadej a: ", a input "Zadej b: ", b print a+b input "Zadej a: ", a
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é
Ú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í
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í
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á
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á
NPRG030 Programování I, 2016/17 1 / :58:13
NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování
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:
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
Č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
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ář
NPRG030 Programování I, 2010/11
Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou
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í
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Ý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Ý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
Chyby a výjimky. Chyba. Odkud se chyby berou? Kdo chyby opravuje? Co můžete dělat jako programátor? Dvě hlavní metody práce s chybami.
Chyby a výjimky Petr Pošík Katedra kybernetiky, FEL ČVUT v Praze OI, B4B33RPH Řešení problémů a hry, 2016 Chyba Stav programu (podmínky), který mu brání v dosažení požadovaného výsledku. Odkud se chyby
Algoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
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
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č
Psaní jednoduchých programů (2. přednáška) F F U K. Jonathan L. Verner. Department of Logic
Psaní jednoduchých programů (2. přednáška) Jonathan L. Verner Vývoj software Vývoj není jednoduchý. Počítači je nutné říci všechno do nejmenších detailů. Počítač je tupý. Proto je třeba systematického
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é
Střední odborná škola a Střední odborné učiliště, Hořovice
Kód DUM : VY_32_INOVACE_LIN.1.02 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 02- Zásady psaní a řetězení příkazů, jednoduchý skript DUM naučí žáky zásady práce s příkazy shellu BASH, zásady psaní
C2110 Operační systém UNIX a základy programování
C2110 Operační systém UNIX a základy programování 5. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém
VISUAL BASIC. Práce se soubory
VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
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ů
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
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,
PROGRAMOVÁNÍ V SHELLU
PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který
IB111 Úvod do programování skrze Python Přednáška 7
IB111 Úvod do programování skrze Python Přednáška 7 Správa paměti (proměnné podrobněji) Práce se soubory Nikola Beneš 2. listopad 2016 IB111 přednáška 7: správa paměti, práce se soubory 2. listopad 2016
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í
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
Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1
Výraz - syntaxe i sémantika podobné jako v matematice - obsahuje proměnné, konstanty, operátory, závorky, volání funkcí - všechny operátory nutno zapisovat (nelze např. vynechat znak násobení) - argumenty
ALGORITMIZACE A PROGRAMOVÁNÍ
Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení
Sekvenční a podmíněné provádění
Programování v Bourne shellu Sekvenční a podmíněné provádění Sekvenční provádění znamená vykonávání jednoho příkazu za druhým bez ohledu na okolnosti. Pro oddělení příkazů při sekvenčním provádění se používá
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
Ú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) -
Algoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi ŘÍDÍCÍ STRUKTURY - PODMÍNKY V této lekci budeme probírat podmínkové, tj., které nám pomohou rozvětvit skript a provádět určité pouze při
Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)
Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná
A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk
A7B38UOS Úvod do operačních systémů 6. Cvičení Příkazy sed a awk sed sed [přepínače] 'příkaz' [soubory] sed [přepínače] -f skript [soubory] Stream editor - edituje neinteraktivně jeden nebo více souborů.
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,
Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013
Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521
Programování v jazyce JavaScript
Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond
Programování v Pythonu
ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního
Ú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í
Ú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
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é
Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.
TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců. Zadání: V textovém souboru text.txt je uloženo několik řádků textu. Vytvořte makro, které určí nejdelší řádek z daného souboru. 1. Název
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
Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.
Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné
Základy PERLu snadno a rychle
Základy PERLu snadno a rychle Začínáme Začneme tak, že si vytvoříme třeba soubor hellopl, do souboru napíšeme: print "Hello world\n"; Pak soubor nastavíme jako spustitelný: $ chmod +x hellopl A teď si
Stručný návod k programu Octave
Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,
PSK3-9. Základy skriptování. Hlavička
PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie
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
Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8
Přednáška 8 Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. 1 Proměnné Jména nových proměnných by neměly kolidovat se jmény předdefinovaných proměnných.
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 -
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
První kapitola úvod do problematiky
První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru
Ří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
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
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
Sada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
Třídění a vyhledávání Searching and sorting
Třídění a vyhledávání Searching and sorting Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 33 Vyhledávání Třídění Třídící algoritmy 2 / 33 Vyhledávání Searching Mějme posloupnost (pole)
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í
Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13
Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací
Časová složitost / Time complexity
Časová složitost / Time complexity Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 24 Složitost algoritmů Algorithm complexity Časová a paměťová složitost Trvání výpočtu v závislosti
Funkce, řetězce, moduly
Funkce, řetězce, moduly Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 48 Funkce Moduly Řetězce Náhodná čísla 2 / 48 Prostředky pro strukturování kódu Bloky kódu (oddělené odsazením),
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é
Makro. PDF vytvořeno zkušební verzí pdffactory Pro www.fineprint.cz
Makro Je posloupnost příkazů, která je uložena pod určitým názvem a kterou lze spustit jedinou akcí. (příkaz, klávesová zkratka nebo stisknutí tlačítka) Lze je jednoduše tvořit záznamem činnosti. Postup:
Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu
Vytěžování dat, cvičení 1: Úvod do Matlabu Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 24 Úvod do Matlabu Proč proboha Matlab? Matlab je SW pro
Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)
Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon
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
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
Úvod do programování
Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal
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
- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku
Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová
Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).
JAZYK PASCAL ÚVOD materiály pro studenty Jiráskova gymnázia v Náchodě (verze 2005-10-28) RNDr Jan Preclík, PhD preclik@gymnachodcz Jazyk Pascal byl navržen profesorem curyšské univerzity Niklausem Wirthem
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.
Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou
Příkaz expr Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou výraz1 výraz2 vrátí první výraz, pokud není nulový a není prázdným řetězcem, jinak