Seminář z Informatiky a výpočetní techniky Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr
Tomáš Kühr
Lektor na Katedře informatiky Přírodovědecké fakulty Univerzity Palackého v Olomouci
Web: http://www.inf.upol.cz/lide/tomas-kuhr
Email:
[email protected]
Telefon: 585 634 708 608 752 083
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
Laik: „magická“ černá skříňka
Programátor: software a data
Fyzik: hardware
Jak může vypadat počítač?
Jak může vypadat počítač?
Jak může vypadat počítač?
Jak může vypadat počítač?
Jak může vypadat počítač?
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 = b2 - 4ac.
Pokud D>0, pak x1 = (-b - D1/2)/(2a), x2 = (-b + D1/2)/(2a).
Pokud D=0, pak x1 = x2 = -b/(2a).
Pokud D<0, pak x1 = (-b - i(-D)1/2)/(2a), x2 = (-b + i(-D)1/2)/( 2a).
Výstup: kořeny kvadratické rovnice x1, x2
Příklady algoritmu
Příklady algoritmu
Příklady algoritmu #include <stdio.h> void tecka(int pocet) { if (pocet <= 0) return; for (; 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
C
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čí…