IB111 - cvičení 1. Základy, želví grafika Miroslav Kadlec Obsah  Organizační pokyny, cíle předmětu  Základní programové konstrukce (nejen) v Pythonu  O jazyku Python  Jednoduché příklady  Želví grafika Organizační pokyny  Přednášky nepovinné  Cvičení povinné  Zapisuje se docházka  Maximálně 2 neomluvené absence  Hodnocení - celkem 400 bodů  80 bodů půlsemestrální test  120 bodů domácí úlohy Organizační pokyny  Bonusové/záporné body  Bonusové: výborná domácí úloha nad rámec zadání, ...  Záporné: plagiátorství (dále řešení s garantem předmětu, případně disciplinární komisí)  Přestávka?  Otázky, nejasnosti  1) Materiály k předmětu  2) Diskuzní fórum  3) E-mail Organizační pokyny  Cíle předmětu  Naučit se algoritmicky myslet  Řešit problémy s pomocí programovacího jazyka  Ilustrovat obecné programové konstrukce s pomocí Pythonu  NEJDE o to, učit se detaily jazyka  Osvojit si psaní přehledného a efektivního kódu  Obsah  Organizační pokyny, cíle předmětu  Základní programové konstrukce (nejen) v Pythonu  O jazyku Python  Jednoduché příklady  Želví grafika Základní programové konstrukce  Proměnné  Uchovávají hodnotu, která se může měnit  Mají jméno a typ (celé číslo, desetinné číslo, řetězec znaků, pole, slovník, …)  V Pythonu  Dynamické implicitní typování  Typ proměnné se může měnit  Typ proměnné se určuje automaticky podle hodnoty, která je do ní přiřazena  Konstanty  Neměnné hodnoty  V Pythonu  Nejsou konstanty jako takové – vytvoříme proměnnou a neměníme ji Základní programové konstrukce  Blok kódu  Posloupnost příkazů, které se provedou jeden za druhým  V Pythonu – vyznačeno odsazením  Podmínka  Provedení jedoho nebo druhého bloku kódu podle hodnoty nějakého výrazu   Cyklus  Opakování bloku kódu,  Předem definován početopakování (for)  dokud je splněna podmínka (while) V Pythonu například: if x < 0: print("x je zaporne") elif x > 0: print("x je kladne") else: print("x je nula")V Pythonu například: for i in range(2, 6): print(i) Obsah  Organizační pokyny, cíle předmětu  Základní programové konstrukce (nejen) v Pythonu  O jazyku Python  Jednoduché příklady  Želví grafika O Pythonu  Používáme Python 3.5  Novější, zatím méně rozšířený, drobné změny oproti verzi 2.7  https://docs.python.org/3  Python je jazyk  Vysokoúrovňový – abstrakce od detailů HW  Kompilovaný do „bajtkódu“ a interpretovaný  Komentáře začínají křížkem (#)  Na konci řádků není středník  Case sensitive  Výhody: jednoduchá syntax, úsporný kód, dobrá čitelnost kódu, ...  Nevýhody: nemožná typová kontrola O Pythonu  IDLE  Vývojové prostředí pro Python  Umožňuje 2 typy zadávání příkazů  Shell – jednořádkové příkazy  Psaní skriptu Obsah  Organizační pokyny, cíle předmětu  Základní programové konstrukce (nejen) v Pythonu  O jazyku Python  Jednoduché příklady  Želví grafika Základní programové konstrukce  Literály – přímo napsaná hodnota  13 "Praha" 16.2  V Pythonu: řetězec znaků uzavřen mezi (') nebo (")  Operátory – manipulují/kombinují proměnné/literály  Aritmetické: sčítání, násobení  Logické: and, or, not, . . .  Konkatenace řetězců  V Pythonu – většina operací intuitivně (+, -, *, and, or)  Mocnina **  Dělení se zbytkem %  Zkrácený zápis x += 5 odpovídá x = x + 5  Výrazy  Zkombinované proměnné, literály a operátory Jednoduché příklady  Sbírka příkladů  https://www.fi.muni.cz/IB111/sbirka/01-zelvi_grafika.html  Faktoriál  Rekurzí  Cyklem  Fibonacciho posloupnost  Rekurzí  Cyklem Obsah  Organizační pokyny, cíle předmětu  Základní programové konstrukce (nejen) v Pythonu  O jazyku Python  Jednoduché příklady  Želví grafika Želví grafika  from turtle import Turtle  Standardně začíná uprostřed natočená směrem doprava  Metody ● Forward(n) ● n: Počet bodů posunu ● Right(angle), left(angle) ● Speed(x) ● 1 (pomalá) ● 10 (rychlá) ● 0 (nejrychlejší) Želví grafika - úkoly  1) Obecný mnohoúhelník  2) Pěticípá hvězda (pentagram)  3) Obecná hvězda ● N: počet vrcholů celkem ● Step: na kolikátý vrchol se skočí ● Side: délka spojnice vrcholů ● 4) Spirála ● 5) Další možosti třídy Turtle