Algoritmus. Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému.

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

Funkce - opakování. Funkce může přijímat parametry na vstupu a může vracet parametry na výstupu.

PROGRAMOVÁNÍ V SHELLU

Co vás čeká. Osvojení si základy analytického myšlení při psaní algoritmů pomocí jazyka Python.

NPRG030 Programování I, 2015/16 1 / :25:32

Konečný automat. Jan Kybic.

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

dovolují dělení velkých úloh na menší = dekompozice

Motivace. Vstup a výstup. Minimální komunikace. Motivace. ÚDPJ - Vstup a výstup. Ing. Lumír Návrat katedra informatiky, A

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

POČÍTAČE A PROGRAMOVÁNÍ

Vlákna a internetové protokoly

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Úvod do programování. Lekce 1

IB111 Úvod do programování skrze Python Přednáška 7

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

PODPROGRAMY PROCEDURY A FUNKCE

Práce s texty, Transformace rastru, Připojení GPS

Django. Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Semestrální práce 2 znakový strom

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Instalace a konfigurace web serveru. WA1 Martin Klíma

Programování v jazyce C a C++

Operační systémy 2: Zápočtové úkoly

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

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

Programování II. Modularita 2017/18

IMPORT DAT DO DATABÁZE

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

VISUAL BASIC. Práce se soubory

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

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Programování v Pythonu

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul TERÉN

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

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

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

PROGRAMOVÁNÍ V C++ CVIČENÍ

2. lekce Algoritmus, cyklus Miroslav Jílek

Práce se soubory. Základy programování 2 Tomáš Kühr

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

Šifrování flash a jiných datových úložišť

SHOPTRONIC SERVIS-ZAKÁZKA OMEGA s.r.o.

Struktury a dynamická paměť

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ů

typová konverze typová inference

Výčtový typ strana 67

SEMESTRÁLNÍ PROJEKT Y38PRO

SignEditor 1 - návod k použití

Princip funkce počítače

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

NÁVOD NA VYPLNĚNÍ ELEKTRONICKÉ ŽÁDOSTI O DOTACI

ALGORITMIZACE A PROGRAMOVÁNÍ

PSK3-5. Přesměrování vstupu a výstupu. Vstup a výstup

Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

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

Inventura majetku pomocí čteček. verze 3.0.0

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

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

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

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 -

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

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

M4 PDF rozšíření. Modul pro PrestaShop.

8 Třídy, objekty, metody, předávání argumentů metod

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Algoritmy a datové struktury

Návod k práci s programem MMPI-2

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Matematika v programovacích

Uživatelská příručka pro respondenty

Soubor jako posloupnost bytů

Objektové programování

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Algoritmizace prostorových úloh

Základy algoritmizace a programování

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

SCIA.ESA PT. Export a import souborů DWG a DXF

Aplikace pro srovna ní cen povinne ho ruc ení

Razer DeathAdder Chroma česká příručka

Činnost počítače po zapnutí

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Správa zařízení Scan Station Pro 550 a Servisní nástroje zařízení Scan Station

Administrace Oracle - Správa zdrojů

ZOS OPAKOVÁNÍ. L. Pešička

Jak importovat šablony tiskových sestav do aplikace MarkTime PORTAL. Administrační manuál Bellman Group, s.r.o. 2007/09/23 verze 1.

Programování v C++, 2. cvičení

VISUAL BASIC. Přehled témat

Objektově orientované programování v jazyce Python

Uživatelská příručka k portálu Společnost pro kvalitu školy, o.s. část druhá. administrace testování na portálu

Transkript:

ZAL 2. cvičení 2016

Algoritmus Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému. Algoritmus na vstupu přijímá instanci problému a na výstupu dává řešení zadané instance. U algoritmu ověřujeme správnost a konečnost. Nekonečný algoritmus by neměl smysl - nezískali bychom řešení instance problémů.

Je algoritmus správný? Ukázka funkce isskolniden(den) kdyz(den == 'sobota' den == 'nedele') NE jinak ANO

Ukázka - rozuzlení funkce isskolniden(den) kdyz(den == 'sobota' den == 'nedele') NE jinak ANO ANO, pokud má funkce vrátit den kdy obvykle chodíme do školy. NE, pokud má funkce vrátit zdali musím dnes do školy šel snad někdo z vás 1. září do školy?

Software Software jsou logicky spolupracující funkční bloky, které slouží k vykonání požadované funkcionality. Obvykle rozdělen do tříd a balíčků. Balíček je kontejner pro několik tříd či balíčků, které jsou zodpovědné za jednu část funkcionality SW. Balíčky by měli být dobře pojmenovány. Obvykle se doporučují malá písmena code convetions. Třídy jsou součástí balíčků a implementují nebo definují funkcionalitu, kterou poskytují.

Software - pokračování Rychlá ukázka jednotlivých vrstev

Proměnné 1 Program si musí v paměti uchovávat informace (mezi výpočty a pod). Programátor potřebuje k těmto datům přístup a musí s nimi operovat. Programátor proto ukládá tyto data to proměnných, s kterými pak pracuje Jaké by mohli být operace s proměnnými?

Proměnné 1 - operace Definice proměnné alokace v paměti Přiřazení (úprava či vložení dat) Získání hodnoty, adresy v paměti, typu apod Přetypování Smazání Odstranění s paměti

Proměnné 1 práce s nimi Nejprve je potřeba proměnou vytvořit a nastavit ji počáteční hodnotu. V Pythonu velice jednoduché: name = Karel Gott Nyní lze s proměnou pracovat. Například vytisknout její obsah: print(name) # vytiskne Karel Gott Můžeme ji přiřadit i jinou hodnotu: name = Mistr Gott A vytisknout novou hodnotu: print(name) #vytiskne mistr

Standardní vstup / výstup Standardní vstup je místo, kde program očekává vstupní data (instanci problémů). Standardní výstup je místo, kam program tiskne výstupy (řešení problému). Jsou jimi: Vstup z klávesnice, senzorů, souborů, funkcí a dalších systémů. Otázka: Jaké jsou výstupy?

Jak načíst vstup? Existuje velké množství způsobů. Například: name = raw_input("napiste vase jmeno: ") funkce raw_input (Python 2.7) name = input("napiste vase jmeno: ") funkce input (Python 3.x) Předání pomocí pipe puštění z cmd / shell: OS Windows: type vstup.txt print.py OS Linux: cat vstup.txt print.py Vstup je v souboru vstup.txt, print.py musí obsahovat blog kódu, který tento předaný vstup zpracuje. data = sys.stdin.readlines() #Otázka co znamená sys?

Kdo jsem? Vytvořte si algoritmus, který načte ze standardního vstupu (klávesnice) svoje jméno. Toto jméno vytiskne na standardní výstup (konzole/obrazovka)

Kdo jsem - řešení

Kdo jsem - vysvětlení #!/usr/bin/env python o Umístění s pythonem - doporučený zápis whoami = input("kdo jsem? ") o Načtení vstupu a přiřazení do proměné whoami na obrazovku vytiskne text Kdo jsem? print("jsem: " +whoami) o Vytisknutí informace a zřetězení vstupu.

Třídy, struktury, modulyzáklad Třídy a struktury poskytují operace, které může uživatel použít. Klíčové slovo import SomeClass Volání funkce z importované třídy: SomeClass.someFunction() Co je to funkce uvidíte na příštím cvičení.

Práce se soubory - úvod Soubory můžeme, číst, vytvářet, přepisovat a mazat. Python poskytuje vestavěné funkce. Stačí mít naimportovaný základní modul sys. Se soubory se obvykle pracuje jako se streamem a ten je vždy potřeba zavírat proto to za nás Python umí dělat automaticky Předtím, než se začne se souborem pracovat tak je potřeba mu říci v jakém režimu chceme soubor používat.

Práce se soubory - ukázka with open( example.txt, 'wt') as outputfile: outputfile.write(texttofile) with open( example.txt, r') as inputfile: data = inputfile.readlines()) Důležité postřehy: o w->write o r->read o t->text mode

Funkce Funkce přijímá na vstupu 0-X parametrů a na výstupu poskytuje 0-X hodnot. Algoritmus se dělí do funkčních bloků z nichž každý poskytuje určitou část a do hromady tvoří funkční celek to usnadňuje vývoj a ladění programu. Funkce má vždy definovanou svojí hlavičky def functionname( parameters ): "function_docstring" function_suite return [expression]

Funkce ukázka kdo jsem def printnameandage(name): age = input("how old are you? ") print("i am: "+name+"i am:"+str(age)+ " years old") nameandage = name + str(age) return nameandage result = printnameandage( John ) print( Returned from function: +result) result = printnameandage( Jaina ) print( Returned from function: +result) Důležité: V Pythonu jsou funkční bloky odděleny mezerami či tabulátory.

2. domácí úloha Zadání úlohy je zde: https://cw.fel.cvut.cz/wiki/courses/b6b36zal/zadani /2_python_in_action Vypracujte ji a nahrajte do odevzdávacího systému. Systém vám poskytne zpětnou vazbu a bodově ji ohodnotí. Pozn: Otestuje, že správně spojujete čísla a texty.

Končíme otázky? Obrázek převzat z: http://shankhdhar143.blogspot.cz/