Vývojové diagramy Vývojový diagram je symbolický počítačových jazyk, ktorý sa používa pre názorné zobrazenie algoritmu spracovania informácií a prípadnú stručnú publikáciu programov. Tento jazyk je tvorený presnými definované značkami s ich jednoznačným významom a pravidlá ako tieto značky vo vzájomnej súvislosti používať. Jeho používanie je vhodné najmä u začínajúcich programátorov, pretože dovoľuje názorným spôsobom formulovať postup riešenia danej úlohy s vyznačením všetkých možných alternatív. Používa sa však aj pri tímovom riešení problému, keď slúži ako komunikačný prostriedok medzi analytikom a programátorom. Analytik na základe vykonanej analýzy zostaví postup riešenia vo forme vývojového diagramu, programátor potom podľa tohto diagramu napíše v príslušnom programovacom jazyku program. Vývojový diagram predstavuje grafické znázornenie logickej štruktúry riešeného problému. Môže byť zostavený tak, že daný problém rieši vo všeobecnej rovine, bez zreteľa na špeciálne vlastnosti konkrétneho počítača a programovacieho jazyka. Symboly vývojových diagramov Symboly vývojových diagramov predstavujú grafické značky presne definovaného významu. Pre upresnenie funkcie symbolu sa do nich zapisujú slovný alebo symbolické operácie, alebo skupiny operácií. Spracovanie Symbol predstavujúci akýkoľvek druh spracovania alebo vykonanie definovanej operácie alebo skupiny operácií, ktorých výsledkom je transformácia informácie, napríklad zmena hodnoty, umiestnenie a pod. Možnosť vstupu do tohto symbolu je z ľubovoľnej strany a týchto vstupov môže byť aj niekoľko. Pritom to môžu byť vstupy samostatné, alebo sa môže jednať o jednu spojnici výslednú, ktorá vznikla spojením niekoľkých spojníc čiastkových. Výstup je však v zásade vždy len jeden. Rozhodovanie Symbol predstavuje rozhodovaciu alebo prepínaciu funkciu. Symbol má jeden vstup (ten môže byť realizovaný ako výsledná spojnica) alebo výstupy. Daný výstup je aktivovaný po vyhodnotení podmienok vnútri symbolu. Príslušné výsledky hodnotenia podmienky môžu byť zapísané ridružene pri spojniciach reprezentujúcich cesty ďalšieho riešenia. Táto značka má obyčajne dva výstupy, vo všeobecnosti môže mať aj tri výstupy a môže mať aj výstup vetvenia. Príprava Tento symbol predstavuje úpravu alebo modifikáciu (preto sa mu niekedy tiež hovorí modifikačný symbol) činnosti, ktorá mení vlastný postup následnej činnosti, napríklad nastavenia prepínača, vymenovaním hodnôt, ktorých nadobúda premenná cyklu, úprava indexového registra a iné. Symbol má dva vstupy, jeden sekvenčný, druhý pre návrat po vykonaní príslušného bloku operácií a dva výstupy, jeden vstupujúci do daného bloku operácií, druhý sekvenčný, ktorý pokračuje do ďalšej časti programu.
Dáta - vstup a výstup dát Symbol reprezentuje vstupno - výstupné operácie s dátami, tj dodanie dát pre spracovanie v programe alebo spracovanie dát do požadovanej formy výstupu. Druh vstupného alebo výstupného zariadenia alebo nosiča dát je buď jednoznačne určený charakterom spracovávanej úlohy, alebo môže byť opísaný slovne, alebo k tomuto symbolu je možné pripojiť symbol charakterizujúci vstupno-výstupné zariadenia alebo nosič dát. V prípade použitia vstupno - výstupného zariadenia je tento pripojený k uvedenému symbolu paralelne. Symbol má jeden vstup (realizovaný ako výsledná spojnica) a jeden výstup. Ručný vstup Tento symbol predstavuje všetky nosiče a zariadenia pre ručný vstup informácií ako sú napríklad spriahnuté klávesnice počítače, svetelné péro, snímač čiarového kódu, rôzne prepínače apod Symbol má jenom jeden výstup. Interná pamäť Symbol predstavuje nosič dát v prípade, že nosičom je vnútorný pamäť počítača. Dáta v tomto prípade môžu do programu z tohto nosiče vstúpiť, alebo sa môžu z programu do tejto pamäte ukladať. Symbol môže tak mať jeden výstup alebo jeden vstup.
Pamäť s priamym prístupom Symbol predstavuje nosič s priamym prístupom dát. Príkladom je napríklad magnetický disk, magnetický bubon alebo pružný disk (disketa). Podobne ako u internej pamäti môžu dáta do programu z tohto nosiča vstupovať, alebo sa môžu z programu do tejto pamäte ukladať. Symbol môže mať tak jenom jeden vstup alebo jeden výstup. Zobrazenie Tento symbol predstavuje zariadenie pre vizuálnu zobrazenie dát, ako je napríklad monitor počítača, viacdielne indikátory, signálne zariadenia a pod. Symbol má jenom jeden vstup. Dokument Symbol predstavuje zariadenie pre tlačený výstup, ktorým môže byť klasická tlačiareň, ale aj zariadení pre tvorbu mikrofilmy, pokladničná tlačiareň a iné. Symbol má iba jeden vstup. Spojka Tento symbol predstavuje prechod z jednej časti vývojového diagramu na inú časť. Používa sa k prerušeniu spojnice a jej pokračovanie na inom mieste. Zodpovedajúce symboly musia obsahovať rovnaké označenie. Spojka má buď iba jeden vstup alebo jeden výstup. Spojku možno použiť aj pre zobrazenie vetvenia programu pomocou prepínača.
Limitná značka Symbol predstavuje vstup z vonkajšieho prostredia do programu alebo výstup z programu do vonkajšieho prostredia, napríklad začiatok alebo koniec programu, zastavenie programu alebo začiatok a koniec samostatne spracovanej časti programu (napr. podprogram) a pod. Podobne ako spojka môže mať buď jenom jeden výstup alebo jeden Spojnice Symbol v tvare vertikálne alebo horizontálne čiary predstavuje tok dát alebo konania a slúži na spojenie jednotlivých symbolov vo vývojovom diagrame. Štandardné smer toku informácií je zhora nadol a zľava doprava. To znamená, že spojnice by mali do symbolu vstupovať zhora alebo zľava a vystupovať dole alebo vpravo. Ak tok nie je v týchto smeroch dodržaný, odporúča sa túto spojnici pre označenie smeru toku informácie zaobstarať plnú alebo otvorenou šípkou. Podobne je možné spojnice zaobstarať šípkou pre zvýšenie názornost a jasnosti vývojového diagramu (napr. pri fúziách). Spojnice sa môžu podľa potreby spájať. Pre zvýšenie prehľadnosti by mal byť u pripojených spojníc poskytnutý smer toku informácií plnú alebo otvorenou šípkou. Kríženie spojníc sa neodporúča. Ak dôjde ku kríženiu, neznamená to žiadny vzájomný vzťah a žiadne zmeny v smere informácií. Vetvenia spojníc sa oužíva v prípade výstupu z podmieneného symbolu. V tom prípade by mala byť u každej cesty uvedená hodnota tejto podmienky.
Anotácia Symbol sa používa na pripojenie opisných komentárov alebo vysvetľujúcich textov. Prerušovaná čiara symbolu anotácie je pripojená k príslušnému výkonnému symbolu, alebo môže byť pripojená k ohraničenej skupine symbolov.
Príklad Úloha - Najväčší spoločný deliteľ čísiel x, y Tento príklad vývojového diagramu rieši problém najväčšieho spoločného deliteľa čísiel x,y. Na vstupe sú kladné prirodzené čísla x,y a na výstupe a=NSD(x,y) najväčší spoločný deliteľ čísiel x,y. Čísla a,b sú tzn pomocné premenné. Slovný zápis vývojového diagramu :
1) Načítanie vstupov x, y.
2) Inicializácia pomocných premenných a = x, b=y.
3) Keď a<>b tak pokračovať na 4, v opačnom prípade Skok na 6 {v tomto prípade b=a}
4) Keď a >b tak a = a-b, inak b=b-a {v tomto prípade b>a} 5) Skok na 3) 6) NSD(x,y) = a
Test algoritmu : Dosadíme konkrétne vstupy x=12, y=8 do našej schémy a vykonáme jeden krok za druhým. Môžeme dosadiť ľubovoľné iné hodnoty, kladné celé čísla, pre každý správny vstup x, y algoritmus nájde NSD(x,y) )
Príklad 2
Programovanie Programovanie je proces vytvárania algoritmu a jeho zápisu v tvare programu. Program je konkrétny zápis algoritmu založený na konkrétnom programovacom jazyku. Vlastnosti programu: - správnosť a spoľahlivosť, - pružnosť a modifikovanosť, - prispôsobivosť, - odolnosť voči vonkajším chybám, - zdokumentovateľnosť, - zrozumiteľnosť, - dostupnosť
Metódy tvorby programov Programovacie jazyky Každý počítač má svoj programovací jazyk, ktorý je určený pre procesor, na báze ktorého počítač pracuje. V informatike sa pojmom programovací jazyk označuje sústava vyjadrovacích prostriedkov na opísanie výpočtového postupu úlohy riešenej na počítači. Podľa vzťahu k počítaču a problému rozdeľujeme jazyky: strojovo orientované jazyky - sú viazané s konkrétnym počítačom alebo triedou počítačov. problémovo orientované jazyky - dovoľujú zapisovať určité vymedzené typy úloh. Podľa spôsobu vyjadrenia riešenia problému: procedurálne - dávajú návod "ako" riešiť daný problém neprocedurálne - vyjadrujú "čo" treba riešiť.
História programovacích jazykov ASSEMBLER je prekladačom jazyka symbolických konštrukcií. Je to medzistupeň medzi strojovým kódom a vyššími programovacími jazykmi. Jeho súčasťou bývajú makrá (postupnosti príkazov alebo funkcií, ktoré možno kedykoľvek odštartovať). Vytváranie programu v assembleri je náročné a zdĺhavé, ale výsledný kód je kratší a vykonávanie programu je rýchlejšie, ako pri použítí vyšších programovacích jazykov. FORTRAN (FORmula TRANslator) vznikol v polovici 50. rokov a bol určený na riešenie vedeckotechnických úloh. Tento jazyk nie je príliš prehľadný, obsahuje mnoho dodatkov a zmien. BASIC (Beginners All-purpose Symbolic Instruction Code) mal nahradiť Fortran. Je ľahko zvládnuteľný, dobre sa používa pri riešení jednoduchých aplikácií. Je to jeden z najpoužívanejších a najrozšírenejších jazykov implementovaných na osobných počítačoch. Ľahko sa učí a začiatočník s ním pomerne rýchlo získa dobré výsledky. COBOL (Common Businnes Oriented Language) vznikol len krátko neskôr ako Fortran. Dobre sa hodí na používanie v oblasti obchodu a účtovníctva. Syntax jazyka je prísna, samotné vykonávanie programu je však relatívne rýchle. LISP (LISt Processing language) je mladší ako Fortran. Bol určený pre programovanie problémov z oblasti umelej inteligencie a pre vytváranie programov na riadenie. Spracované údaje sa ukladajú do zásobníka, takže v priebehu programu ich možno meniť. PROLOG (PROgramming in LOGic), európsky produkt. Je jazykom pre riešenie problémov v oblasti umelej inteligencie. Na rozdiel od ostatných jazykov si sám riadi priebeh programu. Programy v tomto jazyku sú krátke, ale veľmi náročné na pamäť a čas počítača. C jazyk- pôvodne pomocný prostriedok pre písanie a vývoj operačného systému Unix, je
vhodný na písanie programov, ktoré sa používajú v rámci operačného systému. Pre jeho nesporné kvality sa však v poslednej dobe rozšíril aj do iných oblastí tvorby programov. PASCAL bol vyvinutý v r. 1971 švajčiarskym profesorom N. Wirthom. Dnes je predovšetkým vo svete osobných počítačoch veľmi rozšírený. Je vzorom pre písanie štruktúrovaných programov. Pôvodne bol určený na vyučovanie programovania. Vďaka svojím vlastnostiam sa však veľmi rozšíril. ADA - používa sa predovšetkým v technickej oblasti. Z Pascalu prevzal prísne typové väzby. Okrem týchto jazykov boli vyvinuté aj jazyky špeciálneho zamerania ( napr. APL-A Programming Language, Forth, LOGO, MODULA-2, PL/1).
Základné pojmy programovacieho jazyka príkazy sú vety jazyka, ktoré prikazujú procesoru vykonať stanovené činnosti. - základné príkazy: vstup, výstup, priradenie - premenná je objekt, ktorý obsahuje počas realizácie algoritmu konkrétnu hodnotu podľa presne stanoveného typu - konštanta je objekt, ktorý nadobúda počas behu celého programu jedinú konkrétnu hodnotu príslušného typu - výraz je predpis obsahujúci konštanty, premenné a spôsob ich spracovania pomocou operácií a funkcií. - sekvencia je postupnosť príkazov: vyplní sa v poradí, v akom sú príkazy pod sebou zapísané - vetvenie - v závislosti od splnenia podmienky sa postup vetví na rôzne prípady - cyklus - pri opakovaní činnosti musíme vedieť, čo sa má opakovať a dokedy sa to má opakovať. Činnosť, ktorá sa má opakovať nazývame telom cyklu, podmienku, ktorá určuje dokedy sa bude opakovať, nazývame podmienka cyklu