. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Co je to programování? PLIN048 – Základy programování pro humanitní obory Richard Holaj FF MU 15. února 2017 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Co nás dnes čeká? Úvod Jak počítače rozumí programům Koloběh života programu „Překladatel“ vs. „Tlumočník“ Reprezentace stavu (proměnné) Pojmenování Proměnné jako koncept v odlišných jazycích Zápis instrukcí (výrazy) Elementární instrukce a stavební bloky Vyhodnocování jednoduchých výrazů Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Podmínky zápočtu ▶ docházka ▶ aktivita na hodině ▶ samostatná práce (stačí jedna možnost) (a) vypracování jednoduchých úloh (odevzdávárny) (b) závěrečný projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Motivace ▶ NLP ▶ automatizace ▶ preprocessing ▶ modelování ▶ e-learning ▶ širší uplatnění ▶ … . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Lingvistický pohled na programování ▶ komunikace mezi člověkem a počítačem ▶ rysy pidginu ▶ jazykové roviny ▶ známe „mentální“ reprezentaci ▶ analytické (izolační, amorfní) jazyky s flektivními rysy ▶ slovosled ▶ rozšiřování slovní zásoby ▶ formální gramatiky (Chomsky) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Základní cyklus obecného programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Základní cyklus kompilovaného programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Základní cyklus interpretovaného programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Pojmenování ▶ odpovídá místu v paměti ▶ povolené znaky 1. písmena (lépe jen latinka) 2. čísla (ne na začátku) 3. $ a _ 4. keywords Definice proměnné (v Pythonu) 1 my_variable = 42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Proměnné jako koncept v odlišných jazycích (a) reference (b) hodnota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Elementární instrukce a stavební bloky ▶ strojové instrukce vs. složené příkazy ▶ nižší vs. vyšší programovací jazyky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Vyhodnocování jednoduchých výrazů I Do result ulož hodnotu 60 result = 60 10 a + 50 2 * 25 5 b ** 2 1 result = a+2*b**2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Vyhodnocování jednoduchých výrazů II Do result ulož hodnotu 400 result = 400 20 10 a + 10 2 * 5 b ** 2 1 result = (a+2*b)**2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Cvičení Jaké jsou hodnoty proměnných a a b po provedení následujícího kódu v jazyce s proměnnými typu hodnota? 1 a = 10 2 b = a 3 b = 20 Jaké jsou hodnoty proměnných a a b po provedení následujícího kódu v jazyce s proměnnými typu reference? 1 a = 10 2 b = a 3 b = 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Cvičení Nakreslete strom vyhodnocení volání výrazu pro následující kód v jazyce Python: 1 a = 10 2 b = 20 3 result = (a + 2) * (10 * a) ** b - 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Úvod Jak počítače rozumí programům Reprezentace stavu (proměnné) Zápis instrukcí (výrazy) Cvičení Cvičení Napište kód např. v Pythonu, který odpovídá následujícímu stromu vyhodnocení výrazu: Do result ulož hodnotu 4096 result = 4096 1024 2 ** 10 b * 4 2 + 2 a