Znamená to vytvárať informačné systémy pozostávajúce z niekoľkých nezávislých podsystémov, ktoré vzájomne spolupracujú:
Obor ktorý rieši komplexne Informačné technológie sa nazýva Informatika. Jej dôležitou časťou je vytváranie programov, ktorým sa špeciálne zaoberá profesia, ktorá sa nazýva Softwarové inžinierstvo. Jeho hlavným cieľom je nájsť algoritmy - t.j. postupy a metódy riešenia úloh a činností - ktoré sa uložia ako riadiaci kód do pamäti počítača.
Prvé automaty riadené diernymi štítkami boli použité pre tkacie stroje. Umožňovali opakovane a bezchybne riadiť pletací vzor aj zložitých vzoriek, t.j. činnosť, ktorá by ľuďom trvala niekoľkonásobne viac času. Nie náhodou aj prvé počítače boli riadené diernymi štítkami, šlo o overenú metódu. Podobný princíp používali aj muziku hrajúce skrinky poháňané hodinovým strojčekom, ktoré používali dierne štítky, alebo otáčajúcu sa kovovú platňu s dierkami (alebo s kolíčkami ) resp. bubon s kolíčkami. Spomeňte si na "orchestrión" alebo flašinet.
Je zložitá činnosť, ktorá má niekoľko etáp:
Príklad: AUTO sa skladá z troch častí: karoséria, podvozok a pohon. Podvozok sa skladá z riadených kolies a pevných kolies. Riedené kolesá majú volant, tiahla, upínacie ramená kolies, čapy, pruženie, tlmiče, brzdový podsystém. Brzdový podsystém má dve časti: brzdený kotúč a brzdiace kliešte v ktorých sú upnuté brzdiace doštičky. Výroba auta znamená výrobu aj tej najjednoduchšej súčiastky. Kompletizovanie auta znamená skladanie jednoduchých dielov do väčších celkov, vznikajú agregáty ktoré sa zamontujú ešte do väčších celkov. Popis celého postupu je Algoritmus.
Príklad: Založenie ohňa v podmienkach prvotnopospolnej spoločnosti: Nájdete kus spráchnivelého dreva najlepšie z kusa spadnutého kmeňa stromu, alebo postačí suchá tráva a mach. Nájdete dva kúsky tvrdšieho dreva a kúsok rovného konára dlhého jeden lakeť. Použijete svoj luk, ktorý má tetivu z mačacieho čreva, alebo použijete asi dva lakte dlhú koženú šnúrku, ktorú priviažete na konce asi o dve dlane dlhšieho konára než je šnúrka. Pri naväzovaní šnúrky bude potrebné konár ohnúť a vytvoriť luku podobný nástroj. Ak toto máte, vydlabete do dvoch tvrdších kúskov dreva do každého po jednej priehlbinke tak, aby ste do nich mohli vsunúť konce rovného konára tak, že jeden bude na zemi a druhý budete držať kolmo nad ním v ruke. Tlakom nadol zabránite aby konár zo zovretia driev vypadol. Rovný konár sa musí vrtieť medzi týmito dvomi drevami. Teraz vezmete luk a jeho tetivu raz obtočíte okolo kolmého konára. Ak teraz chytíte luk za jeden koniec a potiahnete dopredu a dozadu, konár - opretý v priehlbinkách dvoch drievok na každom jeho konci - sa začne rýchlo vrtieť. Nám stačí pohybovať lukom dopredu a dozadu a konár sa bude neustále vrtieť. Ak to budete robiť dostatočne rýchlo pocítite v ruke ktorá drží drevo s priehlbinou narastajúce teplo. Čím viac drevo pritlačíte (vrtenie bude ťažšie) tým viac tepla bude vznikať. Po čase zistíte, že sa z koncov konára začína dymiť. Zároveň uvidíte že v miestach kde sa drevá dotýkajú tieto teplotou sčerneli. Ak teraz vyberiete konár z priehlbinky a jemne doň fúknete uvidíte rozpálené červené uhlíky. Fúkaním ich ešte viac viac rozpálite. Drievko položíte na zem a okolo priehlbinky a do jej vnútra nasypete kúsky uschnutej trávy alebo spráchnivelého dreva. Okolo už pripravíte viac suchých konárikov a trávy. Keď teraz do toho znova mierne zafúkate môže vzbĺknuť oheň. Keď sa tak stane, priložte ďalšiu trávu a suché konáriky a oheň neustále udržujte. l
Príklad: 250 upgrate metódy Založenie ohňa v podmienkach "už nie" prvotnopospolnej spoločnosti: Nasmerujete laserový ručný zapaľovač na kôpku suchého raždia a pár dobre mierenými impulzmi mierenými na kúsky v ich strede raždie podpálite.
Sú presné jednoznačné postupy riešenia úlohy konečným počtom krokov. Obsahujú popisy činností spojené s podmienkami a rozhodovacími otázkami. Tak ako sa v bežnom živote rôzne činnosti prispôsobujú podmienkam, to isté riešia algoritmy pomocou formalizovaných postupov.
Príklad algoritmu: Športová zábava. Ráno vstanem a nahliadnem do kalendára. Je školský deň alebo deň voľna? Ak je školský deň končí zábava inak Je deň voľna rozhodnem sa pre zábavu. Nahliadnem do kalendára. Je leto alebo zima? Ak je leto idem sa kúpať inak Ak je zima rozhodneme sa pre zimné športy. Nahliadnem na teplomer za oknom. Je pod bodom mrazu áno. Ak nie idem do kina ak áno rozhodnem sa podľa množstva snehu. Ak je veľa snehu idem sa lyžovať inak sa pôjdem korčuľovat. Vezmem správny nástroj a odchádzam z domu.
Základné vlastnosti algoritmu sú:
Algoritmické postupy sa dajú zobraziť mnohými spôsobmi. Dôležité je aby sme si po čase vedeli spomenúť čo sme zaznamenali a aby nášmu záznamu rozumeli aj ostatní. Dnes sa používajú dva základné typy zobrazovania algoritmov:
Vývojové diagramy - popisujú algoritmus programu grafickými značkami
Význam jednotlivých značiek:
Na obrázku vidno dve časti vytvárajúce jeden celok. Kružnice s návestím len predstavujú naviazanie jednej časti na druhú. Všetky možné cesty algoritmu sú uzatvorené medzi dva krajné body ŠTART a KONIEC. Grafické algoritmy boli používané v počiatkoch počítačov. Sú výhodné pre jednoduché a prehľadné postupy. Zložitejšie myšlienkové konštrukcie vyžadujú iné technológie.
Riešia algoritmy slovnými výrazovými prostriedkami ľudského jazyka. Mnohé programovacie jazyky majú syntaktické pravidlá, ktoré už kopírujú formu textových algoritmov. Prvým takýmto jazykom bol jazyk Algol (Algorithmical language). Ale aj neskorší jazyk Pascal a jazyky C a Java. Jednotlivé časti popisu algoritmu, ktoré spolu súvisia môžu byť uzatvorené do jedného bloku, ktorý začína buď slovom begin a end alebo značkami zložených zátvoriek { }. Uzatváranie príkazov do blokov a ich spájanie podmienkovými spojeniami typu Ak platí podmienka urob to alebo urob ono, umožňuje tzv. štrukturované programovanie. Miesto to a ono môžeme zaradiť blok príkazov, v ktorých sa môžu nachádzať rovnaké štruktúry, t.j. štruktúry v štruktúrach.
Elementárne prvky algoritmov.
Príkaz - výraz ukončený bodkočiarkou (v C jazyku / v Pascale bodkočiarka ako oddelovač príkazov/ ) (v ďalšom vytvoríme model príkazu ako Si; kde i je rozlišovací index pre príkaz ) napr. Pascalovské priradenie A:= X + Y ;
Logický výraz - vyjadrujúci logickú podmienku b napr. (X>=Y) .
Zložený príkaz - (obr. a ) obsahuje viac príkazov po sebe a vykonávajú sa v poradí ako sú uvedené. Viacnásobné vnorené bloky (obr. d) ukazujú metódu štrukturovaného programovania. Dva bloky do seba včlenené obsahujú štruktúru v štruktúre. Ak by sme včlenený druhý zložený príkaz celý umiestnili do samostatnej funkcie, v programe na jeho mieste stačí uviesť volanie podprogramu.
Podmienený príkaz - (obr. b) rieši vetvenie programu typu Ak je splnená podmienka b potom vykonaj príkaz S1. Miesto jedného príkazu môže byť vložený zložený príkaz. (obr. c) rieši aj zápornú odpoveď podmienky spôsobom Ak je splnená podmienka b vykonaj príkaz S1 inak vykonaj príkaz S2.
Cyklenie s podmienkou - má dve riešenia:
Viac cestný prepínač - case (obr. g) podľa hodnoty riadiacej premennej sa vyberie príslušná vetva programu. V C jazyku prepínač preskakuje inštrukcie pokiaľ nie je splnená podmienka, potom ak nenasleduje príkaz break;, ktorý ukončí case príkaz, program začne vykonávať všetky ďalšie inštrukcie. V jazyku Pascal skočí program automaticky na koniec po vykonaní vybratej vetvy.
Cyklické opakovanie s dopredu určeným počtom cyklov. Riadiacim parametrom je premenná cyklu, ktorá sa v každom cykle zmení o konštantu (1). Aj toto cyklické opakovanie má dve možnosti:
Podprogramy a funkcie - (obr. j, obr. k) riešia čiastkové problémy, ktoré sa často opakujú. Analýza riešenia, pozostáva z riešení čiastkových problémov, ktoré sa dajú riešiť samostatnou procedúrou alebo funkciou. Vytváraním procedúr a funkcií si zjednodušujeme opakujúce sa algoritmy v riešeniach. Taktiež rozbitie veľkého projektu na jednoduchšie čiastkové riešenia, zjednodušujú celkové riešenie a robia ho prehľadným.
Nepodmienené skoky - (obr. l ) v lineárnom programovaní boli často využívané. Štrukturované programovanie tieto technológie nepotrebuje používať. Jedinou výnimkou môže byť tvrdé ukončovanie vnorených cyklov, resp. skok na koncový bod programu.
begin |
if
b then S1
;
|
C
{ S1;
|
C if ( b ) S1 ;
|
a | b |
if
b
then S1 else
S2 ;
|
Praktiky štrukturovaného programovania
begin |
C if ( b ) S1; else S2 ;
|
C
{ S1; { S2; S3; ... Sn; } } |
c | d |
while b
do S1
;
|
repeat
S1; S2; ... Sn; until b ; |
C
while ( b ) S1;
|
C
do {
|
e | f |
case w
of Pozn.: V Pascale by sa vykonal len jeden príkaz splňujúci podmienku, ale v C jazyku sa len začne daným príkazom, a vykonávajú všetky následné tak ako to ukazuje graf. Prerušenie je možné príkazom break; |
for v
= m to
n do
S1;
alebo for v
= m downto
n do
S1; |
C
switch ( w
) {
|
C
for ( výraz_štart, výraz_stop, výraz_iter ) S1; realizujúci program
výraz_štart ; |
g | h |
begin |
function XY(
a,b:
integer): integer;
|
C
{ S1; XY( a, b); } |
C
int XY( int a, int b) { S1;S2; ... Sn; }
|
j | k |
label ABC; |
|
l |
R
R