Úvod do programování. Úvod do programování. Mar n Podloucký

Podobné dokumenty
Algoritmizace a programování

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:

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

VISUAL BASIC. Práce se soubory

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

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

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

Zápis programu v jazyce C#

Algoritmizace a programování

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ů

Algoritmizace a programování

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.

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

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

1. Téma 03 - Rozhodování

C# konzole Podíl dvou čísel, podmínka IF

Úvod do programování 6. hodina

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

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

PHP tutoriál (základy PHP snadno a rychle)

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

Základy programování (IZP)

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

Programy a algoritmy pracující s čísly. IB111 Úvod do programování skrze Python

C2110 Operační systém UNIX a základy programování

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Programování v jazyce JavaScript

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

PROGRAMOVÁNÍ V SHELLU

Sada 1 - Základy programování

Jazyk C# a platforma.net

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

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

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

Konečný automat. Jan Kybic.

Programy a algoritmy pracující s čísly. IB111 Úvod do programování skrze Python

Základy algoritmizace a programování

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

Inovace bakalářského studijního oboru Aplikovaná chemie

Základy algoritmizace a programování

Standardní algoritmy vyhledávací.

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

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

Úvod do programování. Lekce 1

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

Programy a algoritmy pracující s čísly. IB111 Úvod do programování

Algoritmizace a programování

První kapitola úvod do problematiky

Objektově orientované programování

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Programování v jazyce JavaScript

Programování v Pythonu

Stručný návod k programu Octave

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

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

Basic256 - úvod do programování Příklady. ing. petr polách

LEKCE 6. Operátory. V této lekci najdete:

ZÁPOČTOVÝ TEST. Zpracoval Vilém Závodný, #include "stdafx.h" #include "stdio.h"

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

Seminář z IVT Proměnné a operátory. Slovanské gymnázium Olomouc 11. září 2014 Tomáš Kühr

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

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

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Základy PERLu snadno a rychle

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

VISUAL BASIC. Přehled témat

VY_32_INOVACE_08_2_04_PR

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

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

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

Sekvenční a podmíněné provádění

Rozklad na prvočinitele. 3. prosince 2010

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

2 Datové typy v jazyce C

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

IB015 Neimperativní programování. Seznamy, Typy a Rekurze. Jiří Barnat Libor Škarvada

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

IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Poslední nenulová číslice faktoriálu

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

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

MAXScript výukový kurz

Algoritmizace a programování. Terminálový vstup a výstup

Školní kolo soutěže Baltík 2009, kategorie C

Programování. Psaní čistého kódu. Martin Urza

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Funkce, řetězce, moduly

NPRG031 Programování II --- 2/2 Z, Zk

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Algoritmizace a programování

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

Transkript:

Úvod do programování Úvod do programování Mar n Podloucký Mar n Podloucký

Co je to programování?

Co je to programování? Způsob, jak říct počítači, co má dělat?

Programování je řešení problémů Počítač je připraven za nás řešit spoustu náročných problémů Musíme mu ale sdělit postup řešení, sám počítač ho nevymyslí

Problém: spolubydlení Libor Zuzka? Petr Pavla Ondra Míša

Tabulka výdajů Jméno Petr Ondra Pavla Zuzka Pavla Libor Petr Míša Ondra Míša Zuzka Petr Ondra Věc Prací prášek Savo Toaleťák Mýdlo Závěs do koupelny Pivka na kolaudačku Mýdlo Zuzka 50 kč Pytle na odpadky Utěrky na nádobí Toaleťák Pečící papír Savo Tapeta na záchod Toaleťák Částka 240 kč 80 kč 65 kč 50 kč 350 kč 124 kč 75 kč 130 kč 120 kč 30 kč 80 kč 315 kč 64 kč

Tož kouknu a vidím, né? Text Text Číslo

Recept na řešení 01 02 03 SPOČÍTEJ KOLIK KAŽDÝ ČLEN UTRATIL CELKEM SPOČÍTEJ PRŮMERNOU ÚTRATU NA JEDNOHO ČLENA SPOČÍTEJ ROZDÍLY JEDNOTLIVÝCH ČLENŮ PROTI PRŮMĚRU 04 VŠECHNY PENÍZE TĚCH, KTEŘÍ ZAPLATILI PODPRŮMĚR, DEJ DO BANKU 05 BANK ROZDĚL MEZI TY, KTEŘÍ ZAPLATILI NAD PRŮMĚR Pro počítač je ale takový popis pořád strašlivě složitý.

Programovací jazyk

Kdo je to programátor? Chlap? Vysokoškolák? Matema k? Mladík? Bledá mastná ježatá příšera, která právě vylézá ze sousedovic sklepení?

Kdo je to počítač? Člověk, který počítá. Vážně!

Kdo je to počítač? Stroj, který počítá. Ale až od 40-tých let.

Co je to počítač? Jenom strašně rychlá kalulačka. Vážně! Všechny ty obrazovky, klávesnice, harddisky, reproduktory jsou jenom externí zařízení. Člověk: 1 op/sec? Stroj kdysi: 5 000 op/sec Stroj dnes: 5 000 000 000 op/sec

Vaše první zakázka

Divadlo Pěst na oko Naše umění vás zasáhne

Výpočet ceny vstupného Cena podle věku Základní cena vstupenky je 12 euro. Výsledný cena vstupenky činí 0 euro pro návštěvníky mladší 6 let, 65% ze základní ceny pro návštěvníky 6 až 26 let (žák, student), 100% ze základní ceny pro návštěvníky 27 až 64 let (dospělý), 50% ze základní ceny pro ostatní (senior).

Co budeme potřebovat? K programování nám stačí dva nástroje: Samotný jazyk Python h p://www.python.org Visual Studio Code h p://code.visualstudio.com/

První povídání s počítačem Počítač je kalkulačka, tak pojďme něco spočítat. >>> 1 + 1 2 >>> 3 * 4 12 >>> 3 / 4 0.75! Pozor, dese nná čísla se píšou s tečkou, nikoliv s čárkou.

Aritme cké operátory Máme i některé zajímavé, které ještě neznáte. + * Sčítání Odčítání Násobení 17 + 5 = 22 17-5 = 12 17 * 5 = 85 ** Mocnění 17 ** 5 = 1419857 / // % Dělení Celočíselné dělení Zbytek po dělení 17 / 5 = 3.4 17 // 5 = 3 17 % 5 = 2

Hodnoty 0 celé číslo int 1 celé číslo int 27 celé číslo int 3.14 dese nné číslo float -5 celé číslo int 0.0001 dese nné číslo float

Hodnoty Tyhle všechny už známe TYP NÁZEV PŘÍKLAD int float celé číslo dese nné číslo 1, 27, -5,... 3.14, 0.5,...

Řetězce Chcete další hodnoty? Tady je máte! "5" řetězec str "ahoj" řetězec str 'Martin' řetězec str "3.14" řetězec str

Hodnoty Tyhle všechny už známe TYP NÁZEV PŘÍKLAD int float str celé číslo dese nné číslo textový řetězec 1, 27, -5,... 3.14, 0.5,... "ahoj", '12',...

Čas na cvičení http://kodim.cz/uvod-do-progr

Proměnné >>> x = 7 >>> korun = 7 >>> dnivtydnu = 7 Proměnné jsou jako šuplíky, do kterých si můžeme schovat nějakou hodnotu pro pozdější použi.

Jména proměnných Začínají malým písmenem PocetHodin Nesmí obsahovat diakri ku počethodin Nesmí obsahovat mezery pocet hodin Velbloudí notace Nechť jméno proměnné pocethodin pcthdn dává vždy smysl!! Naučte se pojmenovávat proměnné anglicky numberofhours

Čas na cvičení

Funkce Funkce je malý kousek programu, který pro nás udělá nějakou užitečnou činnost. Funkce je něco jako topinkovač. Dáme do něj chleba (vstup) a vypadne nám topinka (výstup).

Volání funkce Spuštění topinkovače... 3.14 round( ) dese nné číslo float jméno funkce vstup funkce 3.0 dese nné číslo float výstup (výsledek)

Šikovné funkce Funkce, které se nám budou hodit v celém kurzu round() print() input() str() int() float() len() exit() Zaokrouhlování Tiskne na obrazovku Vstup od uživatele Převod na řetězec Převod řetězce na celé číslo Převod řetězce na deset. číslo Délka sekvence Konec programu

Moduly Moduly jsou balíčky užitečných funkcí math random statistics sys Matema cké funkce Náhodná čísla Sta s ka Práce se systémem A spousta spousta dalších...

Práce s moduly Každý modul je nejdříve potřeba importovat >>> import math Poté můžeme volat funkce z modulu pomocí tečkové notace >>> math.floor(3.95) 3 >>> math.ceil(3.15) 4

Užiteční funkce v modulech math.floor() Zaokrouhlování dolů math.ceil() Zaokrouhlování nahoru random.randint() Náhodné celé číslo v zadaném rozmezí random.uniform() Náhodné dese nné číslo v zadaném rozmezí

Čas na cvičení

První prográmky

Co je to program? Obyčejný textový soubor, který obsahuje příkazy pro Python 1 2 3 a = float(input('první strana: ')) b = float(input('druhá strana: ')) c = float(input('třetí strana: ')) 4 5 6 7 s = (a + b + c) / 2 obsah = (s*(s-a)*(s-b)*(s-c)) ** 0.5 print('obsah trojúhelníka je ' + str(obsah)) Můžeme použít vše, co jsme do teď psali do konzole!

Spuštění programu Do terminálu napsat: python mujprogram.py

Výstup do konzole Výstup provádíme, chceme-li uživateli něco sdělit nebo jej o něco požádat print("volební kalkulačka")...... print("vydržte, probíhá výpočet")......

Načítání vstupu V programech je důležité umět načíst vstup od uživatele. print("zadejte rok narození") roknarozeni = input() Tyto příkazy můžeme spojit do jednoho roknarozeni = input("zadejte rok narození")

Pozor na typy! Řetězce nejsou čísla 2 + 3 = 5 '2' + '3' = '23' 2 + '3' =

Konverze hodnot POZOR! Funkce input() ale vrací vždycky řetězec! roknarozeni = "1986" my ale potřebujeme číslo. roknarozeni = int(input()) Podobně, pokud chceme číslo jako součást řetězce, musíme ho na řetězec převést print("narozen " + str(roknarozeni))

Komentáře Komentáře jsou vysvětlivky pro toho, kdo bude náš kód číst. # Jednořádkový komentář začíná mřížkou """ Pokud chceme vysvětlit něco obsáhleji na víc řádcích, uzavřeme text do trojitých uvozovek """ Jazyk Python komentáře zcela ignoruje, jsou zde jen pro nás.

Čas na cvičení

Podmínky

Podmínky Umožňují programu se rozhodnout 18+

Podmínky Umožňují programu se rozhodnout _ ne ano Vrať se za pár let! Oh yeah baby!!

Pravdivostní hodnoty Už zase nový typ hodnot True pravdivostní hodnota bool False pravdivostní hodnota bool Naštěs jsou pouze dvě možnos

Hodnoty Tyhle všechny už známe TYP NÁZEV PŘÍKLAD int float str bool celé číslo dese nné číslo textový řetězec pravdivostní hodnota 1, 27, -5,... 3.14, 0.5,... "ahoj", '12',... True, False

Porovnávací operátory Ty právě potřebujeme k rozhodování v podmínkách ==!= > >= < <= Rovnost Nerovnost Větší než Větší nebo rovno Menší než Menší nebo rovno

Příkaz if... else... Rozhodnu podle pravdivostní hodntoy if vek >= 18: print("oh yeah baby!!") else: print("vrať se za pár let!")

Bloky Pozor na správné odsazení if podmínka: příkaz příkaz if jiná podmínka: příkaz příkaz příkaz

Podmínky s více větvemi Známka podle počtu bodů z písemky body < 50 True False znamka = 'F' body < 60 True False znamka = 'E' body < 70 True False znamka = 'D' A tak dále...

Podmínky s více větvemi Jak to napsat v Pythonu? if body < 50: znamka = 'F' elif body < 60: znamka = 'E' elif body < 70: znamka = 'D' elif body < 80: znamka = 'C' elif body < 90: znamka = 'B' else: znamka = 'A'

Čas na cvičení

Sekvenční hodnoty

Hodnoty Tyhle všechny už známe TYP NÁZEV PŘÍKLAD int float str bool celé číslo dese nné číslo textový řetězec pravdivostní hodnota 1, 27, -5,... 3.14, 0.5,... "ahoj", '12',... True, False A teď to rozjedem!

Řetězec je sekvenční hodnota Je to sekvence jednotlivých znaků 'martin' 0 1 2 3 4 5 >>> jmeno = 'martin' >>> jmeno[0] 'm' >>> jmeno[5] 'n'

Operátor in Zjišťuje, zda sekvence obsahuje daný prvek >>> 'm' in 'martin' True >>> 'p' in 'martin' False >>> 'p' not in 'martin' True

Porovnávací operátory Přibyly nám dva nové ==!= > >= < <= in not in Rovnost Nerovnost Větší než Větší nebo rovno Menší než Menší nebo rovno Patří do Nepatří do

Seznamy Nová sekvenční hodnota je tady! Seznamte se. [1, 2, 3] seznam list ['a', 'b', 'b', 'd'] seznam list [-5, 3.14, 'ahoj', True] seznam list

Co se dá dělat se seznamy Všechno co s běžnými hodnotami a ještě spousta věcí navíc. Kolik jsem naběhal kilometrů? ubehnuto = [5, 6, 2, 0, 10, 5, 5] Pozor na číslování položek, vždy začíná od nuly!!! >>> ubehnuto[0] >>> ubehnuto[1] >>> ubehnuto[7]

Seznam může obsahovat cokoliv Do seznamu můžete vložit jakékoliv hodnoty. seznam = [15, 3.14, 'Jana', True] Seznam je také hodnota, takže není problém udělat seznam seznamů. ubehnuto = [[11, 2, 3, 0, 0, 4, 5], [10, 6, 0, 4, 0, 2, 3], [15, 7, 0, 0, 0, 0, 6]] >>> ubehnuto[1][4]

Hodnoty Tyhle všechny už známe TYP NÁZEV PŘÍKLAD int float str bool list celé číslo dese nné číslo textový řetězec pravdivostní hodnota seznam 1, 27, -5,... 3.14, 0.5,... "ahoj", '12',... True, False [1, 3.14, 'ahoj']

Čas na cvičení

Cyklus

Cyklus for Slouží k procházení sekvencí for znak in 'martin': print(znak) for cislo in [2, 3, 5, 7, 11]: print(cislo)

Co lze dělat s cykly Seznam známek z písemky znamky = [ ['Petr', 2], ['Roman', 1], ['Jitka', 3], ['Zuzana', 5], ['Ondřej', 2], ['Julie', 2], ['Karel', 4], ['Anna', 1], ['Eva', 1] ]

Co lze dělat s cykly Průměrná známka soucet = 0 for radek in znamky: soucet = soucet + radek[1] prumer = soucet / len(znamky) Podobně bychom například spočetli průměrnou útratu na člověka v našem úvodním příkladu se spolubydlením.

Tabulka výdajů jako seznam Jméno Věc Částka vydaje = [ Petr Ondra Pavla Zuzka Pavla Libor Petr Míša Ondra Míša Zuzka Petr Ondra Prací prášek Savo Toaleťák Mýdlo Závěs do koupelny Pivka na kolaudačku Pytle na odpadky Utěrky na nádobí Toaleťák Pečící papír Savo Tapeta na záchod Toaleťák 240 kč 80 kč 65 kč 50 kč 350 kč 124 kč 75 kč 130 kč 120 kč 30 kč 80 kč 315 kč 64 kč ] ['Petr', 'Prací prášek', 240], ['Ondra', 'Savo', 80], ['Pavla', 'Toaleťák', 65], ['Zuzka', 'Mýdlo', 50], ['Pavla', 'Závěs do koupelny', 350], ['Libor', 'Pivka na kolaudačku', 124], ['Petr', 'Pytle na odpadky', 75], ['Míša', 'Utěrky na nádobí', 130], ['Ondra', 'Toaleťák', 120], ['Míša', 'Pečící papír', 30], ['Zuzka', 'Savo', 80], ['Petr', 'Tapeta na záchod', 315], ['Ondra', 'Toaleťák', 64]

Program pro finanční narovnání import statistics seznamjmen = [] utraty = [] for vydaj in vydaje: jmeno = vydaj[0] utrata = vydaj[2] if jmeno in seznamjmen: index = seznamjmen.index(jmeno) utraty[index] += utrata else: seznamjmen.append(jmeno) utraty.append(utrata) prumernautrata = statistics.mean(utraty) for index, utrata in enumerate(utraty): vyrovnani = round(utrata - prumernautrata) if vyrovnani > 0: print(seznamjmen[index] + ' dostane\t' + str(vyrovnani)) else: print(seznamjmen[index] + ' má dáti\t' + str(-vyrovnani))

Závěr

Kam dál? Jak se dále vzdělávat v programování Dlouhodobé kurzy Czechitas Kurzy programování od pyladies.cz Jejich stránky obsahují též mnoho online materiálů Stránky české komunity python.cz mají rosáhlou sekci se zdroji pro začátečníky YouTube video tutoriály freecodecamp.org: Learn Python - Full Course for Beginners www.codecademy.com/learn/learn-python Velmi kvalitní kurz jdoucí krok po kroku

Čas jít na pivo