Seminář z Informatiky a výpočetní techniky Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr
Lektor na Katedře informatiky Přírodovědecké fakulty Univerzity Palackého v Olomouci Web: Telefon:
Volitelný seminář z Informatiky a výpočetní techniky Organizační záležitosti Poučení o pravidlech chování v počítačové učebně SGO
Něco pro odlehčení Dva programátoři se ocitli v nejmenované televizní soutěži… Moderátor: „Takže pane Jaroslave, pan Zbyněk dostal jméno osobnosti a vy máte hádat, kdo to je, a to jen pomocí otázek, na které pan Zbyněk může odpovídat jen ANO nebo NE.“ Jaroslav: „Jaké je jméno osobnosti, kterou představujete?“ Zbyněk: „ne ano ne ne ano ano ano ne ne ne ano ne ano ano ano ne ne ano ne ne ne...“
Co je to informatika? a) Věda o zahlcení lidstva informacemi b) Věda o šíření drbů (informací) c) Věda o počítačích
Co je to počítač? a) Můj nejlepší kamarád / miláček b) Myslící stroj plánující zotročení lidstva c) Prostě trochu složitější stroj d) Schránka astrální bytosti
Počítač z různých úhlů pohledu LLaik: „magická“ černá skříňka PProgramátor: software a data FFyzik: hardware
Jak může vypadat počítač?
Výpočetní technika = Informační Technologie (anglicky Information Technology, zkráceně IT) technické odvětví, které se zabývá způsobem, jakým fungují počítače souhrnné označení pro související technologie
Co je to tedy ta informatika? Informatika = obor lidské činnosti, který se zabývá zpracováním informací Zahrnuje mimo jiné následující oblasti: teorie informace, teorie kódování vyčíslitelnost a složitost kryptologie, steganografie programovací jazyky, překladače softwarové inženýrství databáze, data mining počítačová grafika umělá inteligence „Informatika se nezabývá počítači o nic více než astronomie dalekohledy.“ Edsger Wybe Dijkstra
Anketa 1. Jak se jmenujete? 2. Co už s počítačem umíte? 3. Proč jste si zvolili právě tento seminář?
Algoritmus návod či postup, kterým lze vyřešit daný typ úlohy Abú Abd Alláh Muhammad Ibn Músá al-Chórezmí Vlastnosti: Jednoznačnost (determinovanost) Jednoduchost kroků (elementárnost) Konečnost (finitnost) Výstup (resultativnost) Obecnost (hromadnost, masovost, univerzálnost)
Příklady algoritmu Ingredience: bílý rum (2 cl) sodovka (2 dl) limetkový sirup (5 kapek) čerstvá máta (12 lístků) limetka (1 kus) třtinový cukr (1 lžíce) led (5 kostek) Postup přípravy receptu: Limetu nakrájíme na malé kostičky a vložíme do vyšší sklenice. Přidáme lístky máty a třtinový cukr. Stlačíme ke dnu sklenice, dokud se nezačne tvořit šťáva. Zakapeme limetovým sirupem. Přidáme ledovou tříšť, rum a sklenici dolijeme sodovkou. Hladinu koktejlu dozdobíme čerstvou mátou. Pokud je koktejl příliš kyselý, přidáme lžičku cukru.
Příklady algoritmu Ingredience: bílý rum (2 cl) sodovka (2 dl) limetkový sirup (5 kapek) čerstvá máta (12 lístků) limetka (1 kus) třtinový cukr (1 lžíce) led (5 kostek) Postup přípravy receptu: Limetu nakrájíme na malé kostičky a vložíme do vyšší sklenice. Přidáme lístky máty a třtinový cukr. Stlačíme ke dnu sklenice, dokud se nezačne tvořit šťáva. Zakapeme limetovým sirupem. Přidáme ledovou tříšť, rum a sklenici dolijeme sodovkou. Hladinu koktejlu dozdobíme čerstvou mátou. Pokud je koktejl příliš kyselý, přidáme lžičku cukru.
Příklady algoritmu Vstup: koeficienty a, b a c Postup: Vypočítej D = b 2 - 4ac. Pokud D>0, pak x 1 = (-b - D 1/2 )/(2a), x 2 = (-b + D 1/2 )/(2a). Pokud D=0, pak x 1 = x 2 = -b/(2a). Pokud D<0, pak x 1 = (-b - i(-D) 1/2 )/(2a), x 2 = (-b + i(-D) 1/2 )/( 2a). Výstup: kořeny kvadratické rovnice x 1, x 2
Příklady algoritmu
#include void tecka(int pocet) { if (pocet 0; pocet--) printf(". "); } int mocnina(int x) { return x * x; } int main(void) { tecka(10); printf("-5^2 = %i\n", mocnina(-5)); return 0; }
Špatný algoritmus Manželka programátora vyšle svého chotě na nákup: „Kup dvě vejce a když budou mít párky, tak deset.“ Programátor vstoupí do obchodu: „Dobrý den, máte párky?“ „Ano.“ „Tak deset vajec.“
Programování proces tvorby softwaru zahrnuje mimo jiné: návrhu algoritmu, psaní programu, testování a ladění zdrojového kódu, následnou údržbu softwaru.
Styly programování (paradigmata) strukturované programování procedurální programování funkcionální programování objektově orientované programování logické programování ...
Programovací jazyky Fortran Cobol Basic Pascal CC Smalltalk C++ Perl Python Java C# ……
Jazyk C# Jednoduchý, moderní, mnohoúčelový, objektově orientovaný jazyk Vytvořen v roce 2000 firmou Microsoft Aktuální verze 5.0 (15. srpna 2012) Vývojové prostředí MS Visual C# (Express Edition) Podpora více paradigmat: strukturované procedurální objektově orientované událostmi řízené funkcionální
Microsoft Visual C#
Cvičení
Pro dnešek to stačí…