E N D
http://www.cplusplus.com/info/description/ Počítače sú určite jedným z najvšestrannejších nástrojov, ktoré má dnes človek k dispozícii. Sú schopné vykonávať ohromujúce množstvo výpočtov, umožňujú jednoduchú výmenu informácií bez ohľadu na umiestnenie zdrojov poznatkov, zjednodušujú veľa každodenných úloh, umožňujú automatizovať rad procesov, ktoré by inak boli nudné, alebo by sa museli vykonať inak. Avšak počítače nie sú "inteligentné" v tom zmysle, v akom chápeme ľudskú inteligenciu. Musí im byť povedané úplne jednoznačným spôsobom presne to, čo majú robiť, a ich "rodný" jazyk je úplne odlišný od hovorenej ľudskej reči. Tu práve leží často neprekonateľná jazyková bariéra medzi osobou, ktorá si praje aby počítač niečo urobil, a počítačom, ktorý nevie, čo má robiť. Počítače nevedia na vlastnú päsť prísť na to, čo od nich chceme aby vykonali, a úplne sa spoliehajú na programy, ktoré pre ne vytvára človek. Programy sú postupnosťami inštrukcií, ktorým počítač rozumie a vie podľa nich vykonávať výpočty.
Úvod do programovania v jazyku C++ Kde hľadať korene informačných technológií a prečo IT vyzerajú práve tak, ako ich poznáme v našich PC . . .
Chceme sa naučiť programovať! Procesor Vášho počítača rozumie jedine programu, ktorý je napísaný v strojovom kóde. Tu je ukážka Je to postupnosť čísel (vo výpise sú zobrazené v šestnástkovej sústave). Je nemysliteľné, aby sa od človeka žiadalo písať priamo takýto program existujú jazyky vyššej úrovne (napr. C++) blízke k bežnej reči, ale každý takto napísaný program treba preložiť (kompilovať) do strojového kódu!
A je to! 1,2,3, … Motivačné poznámky typu "aké je to jednoduché ". Programy píšeme v textovom editore, ktorý produkuje čistý text – bez formátovacích znakov. Výhodné je používať vývojové prostredia ako napr.: • NetBeans, SciTe, CodeBlocks, Eclipse • V editore zvoleného prostredia napíšeme program:
A je to! 1,2,3, … Intuitívne vysvetlenie významu použitých prvkov programu: Program napísaný v zdrojovom kóde treba kompilátorom jazyka C++ preložiť # označenie príkazov určených pre preprocesor includezahrnúť súbor zo štandardnej knižnice <iostream> názov knižničného súboru vstupno/výstupných operácií using … stdinformácia, že všetky požité názvy sú zo štandardnej knižnice intmain() jediná povinná funkcia programu C++ (bez parametrov) { } otváracia a zatváracia zátvorka bloku inštrukcií funkcie main
A je to! 1,2,3, … coutfunkcia cout: výstup na štandardné výstupné zariadenie << operátor (príkaz) presmerovania výstupu "Vitaj… " textový reťazec (v uvodzovkách) endlpríkaz nového riadku ; každá inštrukcia programu musí byť ukončená znakom ";" return 0 návratová hodnota funkcie main (0 – normálne ukončenie) v okne konzoly sa objaví výpis:
Cesta k vzniku informačných technológií K dnešnej podobe informačných technológií (IT) rozhodujúcim spôsobom prispeli tri vedné disciplíny – samy o sebe vôbec nesúvisiace: • výroková logika • Booleova algebra • (polovodičová) elektronika ich interakcia je základom dnešnej číslicovej techniky
výroková logika • je najstaršou z týchto troch vied a ponúka výsledky snáh antických mysliteľov o jednoznačné medziľudské dorozumievanie sa; • základným pojmom je v ý r o k a chápeme pod ním akýkoľvek slovný útvar, o ktorého pravdivosti sa vieme presvedčiť, t.j. vieme povedať, či tento výrok je pravdivý alebo je nepravdivý;
príklady výrokov • Anička má mladšieho brata. (T/F – treba sa jej opýtať) • Na Marse je uhlie. (T/F – možno už „Curiosity“ dá jednoznačnú odpoveď) • Slovensko susedí s Portugalskom. (F) • Po nedeli nasleduje pondelok. (T) Na označenie pravdivosti či nepravdivosti výroku sa používajú skratky T a F (z anglických slovíčok „true“ a „false“). Skutočnosť, že výrok je T alebo F nazývame hodnotou výroku. Výrok je typický dvojstavový útvar.
zložené výroky • výroky možno spájať vznikajú zložené výroky; • či výrok bude pravdivý alebo nepravdivý závisí jednak od hodnôt výrokov (T/F), ktoré tvoria zložený výrok a od spojky, ktorou ich navzájom viažeme: výrok 1 AND(a; a súčasne) výrok 2 zložený výrok voláme logický súčin (AND) výrok 1 OR(alebo) výrok 2 zložený výrok voláme logický súčet (OR) Zložené výroky označujeme aj ako logické funkcie.
vyhodnocovanie zložených výrokov príklady: Kredity za tento predmet získate, ak absolvujete cvičenia a samostatne vytvoríte záverečný program v jazyku C++. Na FMFI sa dostanete vchodom v pavilóne matematiky alebo vchodom v pavilóne F1.
Ešte niekoľko ďalších logických funkcií • Ku každému výroku vieme vytvoriť inverzný (negovaný) výrok: dnes je utorok/dnes nie je utorok • K obom už poznaným logickým funkciám AND a OR možno vytvoriť ich negované varianty NAND a NOR • Často používanou je aj funkcia exkluzívne OR(XOR):
O mnhoho storočí neskôr: Booleova algebra • Írsky matematik George Boole (1815 – 1864) položil matematické základy dnešných IT – vytvoril špeciálnu algebru dvojstavých prvkov, ktorú dnes všeobecne nazývameBooleova algebra. • Tá verne kopíruje princípy výrokovej logiky a je tak ideálnym nástrojom na formalizáciu ("matematizáciu") inak ťažkopádnych logických výrokov.
Niekoľko pojmov a princípov Booleovej algebry (1) • Logické premenné a, b, c, …môžu nadobúdať hodnoty iba z dvojprvkovej množiny: a, b, c, … {0, 1} • Je definovaná funkcia negácie premennej: • Sú definované operácie logického súčtu (a + b) a logického súčinu (a . b)
Niekoľko pojmov a princípov Booleovej algebry (2) • Ak prijmeme substitúcie: výrok (logická) premenná a, b, c, … logická hodnota F 0 logická hodnota T 1 logický súčet OR a + b logický súčin AND a . b možno všetky princípy výrokovej logiky vyjadriť algebraicky:
Na scénu vstupuje elektronika • Úsilie ľudstva o zjednodušenie výpočtov nie je novodobý výdobytok a za všetky tie dômyselné stroje aspoň jeden: Na podobné zariadenia si bielovlasí súčasníci ešte veľmi dobre pamätajú. Kalkulátor samozrejme pracoval v desiatkovej pozičnej číselnej sústave a vtedy nik nepochyboval, že táto sústava bude základom aj ďalšieho rozvoja výpočtových zariadení x = dn.10n + dn-1.10n-1 + … + d2.102 + d1.101 + d0.100
ponuka elektroniky pre výpočtovú techniku Jedným z najpálčivejších problémov mechanických výpočtových zariadení bola pamäť na ukladanie medzivýsledkov. V prvej polovičke minulého storočia elektronika poznala už celý rad súčiastok, ktoré sa vyznačovali jasne oddelenými stabilnými stavmi: páčkový vypínač (vypnutý/zapnutý), relé (rozopnuté/zopnuté), žiarovka (nesvieti/svieti), elektrický prúd (netečie/tečie), hysteréznasľučka magneticky tvrdých materiálov v nasýtenom stave vykazuje dve stabilné polohy, … Nebolo ťažké uhádnuť, že využitie týchto prvkov je perspektívna cesta pre rozvoj výpočtových technológií … ale všetky zariadenia vykazovali iba dva stabilné stavy, takže ………
z núdze cnosť … otcovia dnešných IT zariadení veľmi skoro pochopili, že je jediná schodná cesta: orientovať architektúru číslicových zariadení na dvojkovú (binárnu) číselnú sústavu x = bn.2n + bn-1.2n-1 + … + b2.22 + b1.21 + b0.20 bkje dvojková číslica; môže nadobúdať iba hodnoty {0, 1}. Elektronika ponúka viacero technických riešení, ale aspoň jedno za všetky - pred nedávnom ešte veľmi populárna tzv. TTL logika: • logické hodnoty T/F (1/0) sa modelujú elektrickým napätím; • sú definované dva intervaly napätí 0,0 – 0,8 V nízka úroveň (L – low) 2,0 – 5,0 V vysoká úroveň (H – high) interval medzi úrovňami L a H je tzv. zakázané pásmo V V 5.0 H 2.0 0.8 0 L
základné číslicové obvody keď polovodičová technológia dostatočne pokročila, vedeli vývojári ponúknuť obvody s pozoruhodnými vlastnosťami , napr. jedným z prvých bol: obvod s dvoma vstupmi a, b a jedným výstupom y. Ak sa na vstupy a, b pripojilo jedno z napätí H alebo L, výstup nadobudol úroveň podľa tabuľky: Teraz stačí prijať konvenciu L0F a H1T a môžeme konštatovať, že obvod modeluje negovaný logický súčin NAND. a y b
kruh sa uzatvára obvod, ktorý sme práve "objavili" sa skutočne vyrábal a obsahoval štyri nezávislé dvojvstupové tzv. hradlá NAND. Na snímke je fotografia prototypu tohto obvodu a je to zároveň ukážka, ako vyzerajú integrované číslicové obvody. Značka hradla NAND podľa STN tak, ako sa objavuje v schémach, je na pripojenom obrázku. & je symbol pre hradlo AND krúžok na výstupe symbolizuje negáciu. & a b
Súvis logických funkcií s výpočtovou technikou Porovnaním dvoch tabuliek: sčítanie v 2-kovej sústave tabuľka logických funkcií AND a XOR môžeme konštatovať, že súčet dvoch binárnych čísel a, b sa dá technicky realizovať pomocou hradiel AND a XOR: a & prenos b =1 a+b binárna (polo)sčítačka
Ešte jeden (a posledný) obvod: použime dve hradlá NAND v zapojení: Ak na vstupy S a R privedieme logické hodnoty podľa tabuľky, výstup Q1 musí prejsť do stavu H, tabuľka NAND. Výstup Q2 bude v stave L (oba jeho vstupy sú H). Komutujeme vstup S: L H Obvod nezmení svoj stav, pretože úroveň Q1 = H "drží" jeho druhý vstup (odvodený z výstupu Q2) S Q1 & & Q2 R
Ešte jeden (a posledný) obvod: Vychádzajme z opačného zapojenia vstupov R a S: Keďže obvod je úplne symetrický, komutácia na vstupe R (L H) opäť nezmení stav výstupov. Obvod si v stave S = R = H pamätá svoj predchodzí stav! Navrhnutý obvod je tzv. SR preklápací obvod (set – reset) a je najednoduchším 1-bitovým pamäťovým prvkom. S Q1 & & Q2 R
koniec úvah o koreňoch IT Teraz by mali nasledovať dlhé kapitoly venované poznaniu štruktúry elektronických obvodov, ktoré máte skryté vo Vašich laptopoch. V tomto okamžiku však zastavíme naše rozprávanie o obvodoch číslicovej techniky – to je náplň iného kurzu – a vrátime sa k programovaniu. Odnášame si poznatok, že axiómy výrokovej logiky sú skutočnou bázou fungovania dnešných IT zariadení a že všetky údaje sú v počítačoch uchovávané v dvojkovej (binárnej) pozičnej číselnej sústave. A ešte jeden pojem: bit (binarydigit) je názov pre binárnu číslicu napr. : 1010 je štvorbitové binárne číslo.