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 500 bodů    140 bodů za půlsemestrální testy (budou 2) 160 bodů za domácí úlohy (bude 5) 200 bodů za závěrečnou zkoušku https://www.fi.muni.cz/IB111/?p=hodnoceni 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á syntaxe, ú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 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