<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3364429883071607433</id><updated>2012-01-03T01:43:40.806-08:00</updated><title type='text'>INFORMAČNÍ TECHNOLOGIE</title><subtitle type='html'>studenti pro studenty, soubor studijních materiálů</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default?start-index=101&amp;max-results=100'/><author><name>m</name><uri>http://www.blogger.com/profile/15660426581505820308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>837</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5329125713107551614</id><published>2010-12-17T05:23:00.000-08:00</published><updated>2010-12-17T05:27:17.150-08:00</updated><title type='text'>29. Konstruktory a destruktory.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Konstruktor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Každá instance je vytvořena pomocí speciální metody - konstruktoru. Konstruktor se musí jmenovat stejně jako třída, jejíž instance bude vytvářet, nesmí mít návratovou hodnotu a měl by být veřejný. Každá třída může mít k dispozici více konstruktorů s různými parametry. Pak se jedná o přetěžování konstruktorů(netýká se otázky). Nemá-li třída žádný konstruktor (Například třída MojePrvniTrida v předcházející otázce č. 26.) vytvoří překladač takzvaný implicitní konstruktor bez parametrů. V konstruktoru by se měla provést inicializace dané instance. Nastavit všechny její atributy, vytvořit instance tříd, které obsahuje atd.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad třídy i s konstruktory:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;class Zlomek&lt;br /&gt;{&lt;br /&gt;   private:&lt;br /&gt;      int Jmenovatel, Citatel;&lt;br /&gt;   public:&lt;br /&gt;      Zlomek();  /* Bezparametrický konstruktor */&lt;br /&gt;      Zlomek(int cislo);&lt;br /&gt;      Zlomek(int citatel, int jmenovatel);&lt;br /&gt;&lt;br /&gt;      ~Zlomek(); //Bezparametrický destruktor.&lt;br /&gt;      /* Ostatní metody třídy zlomek: */&lt;br /&gt;      int dejCitatel();&lt;br /&gt;      int dejJmenovatel();&lt;br /&gt;      void nastavCitatel(int citatel);&lt;br /&gt;      void nastavJmenovatel(int jmenovatel);&lt;br /&gt;      float hodnota();&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;Zlomek::Zlomek() //1. konstruktor&lt;br /&gt;{&lt;br /&gt;   Jmenovatel = 1;&lt;br /&gt;   Citatel = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Zlomek::Zlomek(int cislo) //2.konstruktor&lt;br /&gt;{&lt;br /&gt;   Citatel = cislo;&lt;br /&gt;   Jmenovatel = 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Zlomek::Zlomek(int citatel, int jmenovatel) //3. konstruktor&lt;br /&gt;{&lt;br /&gt;   Citatel = citatel;&lt;br /&gt;   if (jmenovatel != 0)&lt;br /&gt;      Jmenovatel = jmenovatel;&lt;br /&gt;   else&lt;br /&gt;      Jmenovatel = 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int Zlomek::dejCitatel()&lt;br /&gt;{ return Citatel; }&lt;br /&gt;&lt;br /&gt;int Zlomek::dejJmenovatel()&lt;br /&gt;&lt;br /&gt;{ return Jmenovatel; }&lt;br /&gt;&lt;br /&gt;void Zlomek::nastavCitatel(int citatel)&lt;br /&gt;{ Citatel = citatel; }&lt;br /&gt;&lt;br /&gt;void Zlomek::nastavJmenovatel(int jmenovatel)&lt;br /&gt;{&lt;br /&gt;   if (jmenovatel != 0)&lt;br /&gt;      Jmenovatel = jmenovatel;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;float Zlomek::hodnota()&lt;br /&gt;{ return ((float)Citatel)/Jmenovatel; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Zlomek::~Zlomek()&lt;br /&gt;{&lt;br /&gt;   cout &lt;&lt; "Loučí se s vámi instance třídy zlomek. " &lt;&lt; endl; &lt;&lt; dejCitatel() &lt;&lt; '/' &lt;&lt; dejJmenovatel() &lt;&lt; endl;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Destruktor&lt;/span&gt;&lt;br /&gt;Destruktor, jak již asi sám jeho název napovídá, slouží k likvidaci objektů. Destruktor (stejně jako konstruktor) je metoda, která je zavolána na instanci v momentě, kdy je instance likvidována. Destruktor se jmenuje stejně jako třída, jen před názvem třídy je znak ~ . Destruktor nesmí mít návratovou hodnotu a žádné parametry. V destruktoru by se měly uvolnit všechny zdroje, se kterými instance pracovala. Například uzavřít datové soubory, uvolnit případnou alokovanou paměť a podobně. Nemá-li třída destruktor, překladač vytvoří implicitní destruktor. Ve třídě Zlomek naprosto stačí implicitní destruktor. Ale jako příklad je uveden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5329125713107551614?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5329125713107551614/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/23-konstruktory-destruktory.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5329125713107551614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5329125713107551614'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/23-konstruktory-destruktory.html' title='29. Konstruktory a destruktory.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7379248652258376115</id><published>2010-12-17T05:20:00.000-08:00</published><updated>2010-12-17T05:25:05.730-08:00</updated><title type='text'>28. Odvozené třídy: předkové, potomci, dědictví.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Vztahy mezi třídami: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mezi třídami existují 3 druhy vztahů (vazeb):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Agregace &lt;/span&gt;- "obsažení" (Anglicky aggregation) Jestliže třída A obsahuje třídu B, potom instance třídy A v sobě obsahují instance třídy B. Například v každé instanci třídy počítač existuje instance třídy procesor. Znázorněno v diagramu:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_BcZ9_qDaZ1M/TQtj7xB7UXI/AAAAAAAAApA/97LF3d8VR60/s1600/1_pdb_4cbd870e.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 212px;" src="http://4.bp.blogspot.com/_BcZ9_qDaZ1M/TQtj7xB7UXI/AAAAAAAAApA/97LF3d8VR60/s400/1_pdb_4cbd870e.jpg" alt="" id="BLOGGER_PHOTO_ID_5551640844089119090" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Asociace&lt;/span&gt; - "Link" (Anglicky association) Jestliže Třída A spojuje(asociuje) třídu B, potom instance třídy A nějakým způsobem musejí "vědět" o instancích třídy B. Zná-li objekt nějaký jiný objekt, znamená to, že jej může používat, zasílat mu zprávy a podobně. Například instance třídy učitel zná instance třídy žák. Není zde vhodná vazba agregace, protože učitel neobsahuje žáky uvnitř sebe. Asociace je obecnějsí vazba než agregace. Znázorněno v třídním diagramu:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_BcZ9_qDaZ1M/TQtkEYysDnI/AAAAAAAAApI/RFNe7xHpfNE/s1600/1_pdb_7467dd19.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 201px;" src="http://3.bp.blogspot.com/_BcZ9_qDaZ1M/TQtkEYysDnI/AAAAAAAAApI/RFNe7xHpfNE/s400/1_pdb_7467dd19.jpg" alt="" id="BLOGGER_PHOTO_ID_5551640992201576050" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Dědičnost&lt;/span&gt; - "Specializace" (Anglicky inheritance) Třída A dědí ze třídy B, jestliže třída A je podmnožinou třídy B. Třída A se nazývá podtřídou třídy B, a třída B se nazývá nadtřídou třídy A. V tomto případě instance třídy A jsou zároveň instancemi třídy B, naopak to však nemusí platit. Například třída okna v grafickém OS je nadtřídou třídy dialogových oken, nadtřídou třídy modálních oken a podobně. Znázorněno v třídním diagramu:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_BcZ9_qDaZ1M/TQtkNXx14bI/AAAAAAAAApQ/HUYGRdRCU7Y/s1600/1_pdb_m38d94ccc.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 318px; height: 273px;" src="http://4.bp.blogspot.com/_BcZ9_qDaZ1M/TQtkNXx14bI/AAAAAAAAApQ/HUYGRdRCU7Y/s400/1_pdb_m38d94ccc.jpg" alt="" id="BLOGGER_PHOTO_ID_5551641146548412850" border="0" /&gt;&lt;/a&gt;Rozdíl mezi asociaci a agregaci je zřejmý. Při agregaci objekty vždy obsahují jiné objekty v sobě. Při vztahu agregace (A agreguje B) by měly cizí objekty požadovat služby instancí agregované třídy (Třídy B) jen pomocí služeb instancí třídy A. Často se chybně zaměňuje mezi agregací, a dědičností. Je-li vztah mezi objekty "má", nebo "vlastní", potom se jedná agregaci. Například řetězec má (vlastní) znaky. Naopak je-li mezi objekty vztah "je", potom se jedná o dědičnost. Například dialogové okno je okno.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7379248652258376115?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7379248652258376115/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/28odvozene-tridy-predkove-potomci.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7379248652258376115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7379248652258376115'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/28odvozene-tridy-predkove-potomci.html' title='28. Odvozené třídy: předkové, potomci, dědictví.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BcZ9_qDaZ1M/TQtj7xB7UXI/AAAAAAAAApA/97LF3d8VR60/s72-c/1_pdb_4cbd870e.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5086586036180661600</id><published>2010-12-17T05:18:00.000-08:00</published><updated>2010-12-17T05:20:33.693-08:00</updated><title type='text'>27. Přístupová práva, inicializace, objektové typy a přiřazovací příkaz.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Přístupová práva viz otázka č. 26&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Inicializace&lt;/span&gt;&lt;br /&gt;Inicializace statických složek může být provedena v jejich definiční deklaraci . V ostatních případech je třeba využít konstruktorů.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Objektové typy a přiřazovací příkaz&lt;/span&gt;&lt;br /&gt;Jsou-li aa a bb dvě instance téhož typu třída, např. class A, lze použít přiřazovací příkaz&lt;br /&gt;&lt;br /&gt;aa = bb;&lt;br /&gt;&lt;br /&gt;ten způsobí, že hodnoty všech datových složek bb jsou přiřazeny odpovídajícím složkám aa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5086586036180661600?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5086586036180661600/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/27pristupova-prava-inicializace.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5086586036180661600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5086586036180661600'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/27pristupova-prava-inicializace.html' title='27. Přístupová práva, inicializace, objektové typy a přiřazovací příkaz.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-340487549920786748</id><published>2010-12-17T05:17:00.001-08:00</published><updated>2010-12-17T05:18:19.234-08:00</updated><title type='text'>26. Deklarace třídy, datové složky(atributy), metody(členské funkce).</title><content type='html'>Viz předchozí otázka č. 26&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-340487549920786748?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/340487549920786748/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/26deklarace-tridy-datove-slozkyatributy.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/340487549920786748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/340487549920786748'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/26deklarace-tridy-datove-slozkyatributy.html' title='26. Deklarace třídy, datové složky(atributy), metody(členské funkce).'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7819804738122370117</id><published>2010-12-17T05:14:00.000-08:00</published><updated>2010-12-17T05:18:08.594-08:00</updated><title type='text'>25. Objektové typy v C++, typy struktura, třída a unie.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Struktura viz otázka č. 16&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Datový typ union: &lt;/span&gt;&lt;br /&gt;Druhým datovým typem, o kterém dnes bude řeč, je union. Union si lze jednoduše představit jako obyčejnou strukturu, kde ale všechny její položky sdílejí jedno paměťové místo, tedy se překrývají (jsou na stejné adrese). Zatímco u obyčejných struktur bylo pro každou položku alokováno zvláštní místo v paměti, v případě unionů je tedy alokováno místo pouze pro největší z nich.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definice unionů je prakticky shodná s definicí struktur: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;union UN{&lt;br /&gt;char c;&lt;br /&gt;int pocet;&lt;br /&gt;double delka;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;Protože se jednotlivé prvky unionu překrývají, je jasné, že po přiřazení hodnoty některému z nich se dá pracovat již pouze s tímto prvkem, a to až do doby, kdy dojde k novému přiřazení. V opačném případě bychom pracovali s „deformovanými“ daty (i když i tato vlastnost se dá v některých případech patřičně využít). Zde se projeví nevýhoda unionů, které neuchovávají informaci o tom, který jejich prvek je právě využíván. Možností, jak toto obejít, je zabalit union do další struktury obsahující navíc položku s informací (např. číselnou) o právě používaném prvku unionu:&lt;br /&gt;&lt;br /&gt;struct UNIE{&lt;br /&gt;int info;&lt;br /&gt;UN x;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Třídy (class) - vytváření tříd:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definice třídy &lt;/span&gt;&lt;br /&gt;K vytvoření třídy slouží klíčové slovo class. Definice vypadá následovně:&lt;br /&gt;&lt;br /&gt;class NázevTřídy [: předchůdci třídy]&lt;br /&gt;{ Položky třídy };&lt;br /&gt;&lt;br /&gt;Tato definice třídy není jediná. Třída je v C++ velmi podobná struktuře a také jsou k dispozici stejné možnosti pro vytváření třídy a struktury.&lt;br /&gt;&lt;br /&gt;[: předchůdci třídy] je nepovinná část, která se týká dědičnosti(viz otázka č. 29). Položky třídy jsou proměnné, nebo metody(vztahuje se k následující otázce č. 27). Pojmu metoda se v C++ také někdy říká členská funkce (Member function). Metoda je vlastně funkce, která není globální, ale je volatelná jen v souvislosti s instancemi dané třídy. Položky(týká se přístupových práv z otázky č. 28) mohou být soukromé(private), chráněné(protected) a veřejné(public).&lt;br /&gt;&lt;br /&gt;Soukromé položky mohou být proměnné, ke kterým mají přístup pouze metody dané třídy, nebo metody, které mohou být volány jen jinými metodami dané třídy.&lt;br /&gt;&lt;br /&gt;Naopak veřejné položky může využívat kdokoliv. Veřejné položky tvoří rozhraní objektu dané třídy. Soukromé položky jsou zapouzdřeny, a přístup k nim se provádí jen přes veřejné rozhranní. Jako veřejné položky by neměli být proměnné, protože by docházelo k porušení zapouzdření. V praxi se ale na zapouzdření někdy moc nehledí. Chráněné položky jsou vlastně soukromé položky, které se někdy chovají jako veřejné. Jako veřejné se chovají k tak zvaným přátelským funkcím a vůči instancím tak zvaných přátelských tříd. Použití chráněných položek je vlastně také porušení zapouzdření.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad třídy:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;class MojePrvniTrida&lt;br /&gt;{&lt;br /&gt; private: /* Následující položky jsou soukromé.*/&lt;br /&gt;   int Cislo;&lt;br /&gt;   char Znak;&lt;br /&gt; public: /* Následující položky jsou veřejné.*/&lt;br /&gt;   int VratMiTvojeCislo();&lt;br /&gt;   void NastavSiCislo(int noveCislo);&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;V této definici třídy jsou deklarovány hlavičky metod. Mohli bychom napsat těla metod hned v definici třídy, ale u větších tříd by takový zápis nebyl příliš přehledný.&lt;br /&gt;Nedůležité: Také každá metoda, jejíž tělo je definováno v definici třídy je překládána, jako inline. Tedy funkce (nebo metoda) nebude volána, ale překladač vloží její tělo na místo jejího zavolání. Inline metoda je něco jako-by makro. Na rozdíl od makra, které je vkládáno na úrovni zdrojového textu, je inline funkce vkládána na úrovni přeloženého binárního kódu.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Inline není pro překladač závazný!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definice těla metod:&lt;/span&gt;&lt;br /&gt;int MojePrvniTrida::VratMiTvojeCislo()&lt;br /&gt;&lt;br /&gt;/* Operátor :: (čtyř-tečka) oznamuje překladači, že VratMiTvojeCislo() není globální funkce, ale členská metoda danné třídy.*/&lt;br /&gt;{&lt;br /&gt;  int a = 3; /* Ukázka lokální proměnné*/&lt;br /&gt;  return Cislo;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;V těle této metody je lokální proměnná. Proměnná Cislo je proměnná, která je definována v třídě. Každá instance této třídy bude obsahovat svou proměnnou Cislo. V těle metod můžeme také použít globální proměnné, kdyby nějaké byly.&lt;br /&gt;&lt;br /&gt;void MojePrvniTrida::NastavSiCislo(int noveCislo)&lt;br /&gt;{&lt;br /&gt;  Cislo = noveCislo;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;V čistě objektově orientovaném programu neexistují globální funkce, ale jen metody. V C++ je trochu problematické napsat čistý objektově orientovaný program(proto je ideální např. Java). Už jen proto, že funkce main je globální funkcí, není metodou žádné třídy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7819804738122370117?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7819804738122370117/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/25objektove-typy-v-c-typy-struktura.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7819804738122370117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7819804738122370117'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/25objektove-typy-v-c-typy-struktura.html' title='25. Objektové typy v C++, typy struktura, třída a unie.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5085107807665311404</id><published>2010-12-17T05:09:00.000-08:00</published><updated>2010-12-17T05:14:01.609-08:00</updated><title type='text'>24. Operace s ostatními soubory, ovládání souborů prostřednictvím ukazatelů.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Práce se soubory:&lt;/span&gt;&lt;br /&gt;V jazyce C++ je práce se soubory realizována pomocí tzv. datových proudů (streams), které si lze představit jako určitou konečnou posloupnost bytů, jako jsou například soubory. Datové proudy ale nemusí nutně představovat jenom soubory, ale mohou to být třeba data proudící sítí apod. Datovými proudy jsou například i standardní vstup a výstup.&lt;br /&gt;&lt;br /&gt;Souborový proud je v C++ představován ukazatelem na strukturu FILE(možno použít jako příklad předchozí otázky ukazatel na struktury☺), ve které jsou uloženy nejrůznější informace o příslušném souboru, a tak můžeme tento proud definovat stejně jako jakýkoliv jiný ukazatel v C.&lt;br /&gt;&lt;br /&gt;FILE *identifikátor;&lt;br /&gt;&lt;br /&gt;Takto nadefinovaný pointer je ale samozřejmě neinicializovaný a pro přístup k souboru jej tedy ještě nelze použít. Pro jeho inicializaci použijeme funkci fopen().&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Otevření souboru &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;FILE *fopen(char *jméno_souboru, char *mód_otevření);&lt;br /&gt;&lt;br /&gt;Funkce fopen() se pokusí otevřít soubor, jehož jméno jsme jí předali v řetězci jméno_souboru. V případě, že se soubor podařilo otevřít, vrátí funkce příslušný ukazatel. Pokud se však soubor otevřít nepodařilo (například pokud nebyl nalezen), vrací hodnotu NULL. Protože možnost, že se soubor nepodaří otevřít, je velice reálná, neměli bychom zapomínat tuto skutečnost testovat.&lt;br /&gt;Druhým parametrem mód_otevření určujeme, v jakém módu bude soubor otevřen. I tento parametr je definován jako řetězec. Jednotlivé režimy otevření souboru určujeme pomocí kombinace několika znaků.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;r  (read)&lt;/span&gt; Soubor bude otevřen pro čtení.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;w  (write)&lt;/span&gt; Soubor bude otevřen pro zápis. V případě, že otevíraný soubor již existuje, bude nejdřív zkrácen na nulovou délku. Pokud otevíraný soubor dosud neexistuje, vytvoří se nový.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;a  (append)&lt;/span&gt; Stejně jako v předchozím případě bude soubor otevřen pro zápis. Pokud otevíraný soubor neexistuje, vytvoří se nový, ale jestliže soubor již existuje, nebude, narozdíl od módu w, nijak zkracován.&lt;br /&gt;&lt;br /&gt;Po otevření souboru se automaticky nastavuje pozice tzv. file-pointeru, tedy místa, ze kterého se bude číst, nebo kam se bude zapisovat. Pro módy r a w je file-pointer nastaven na začátek souboru a pro soubor otevřený v režimu append je nastaven na pozici za posledním bytem souboru. Mód append je tedy určen pro připojení nových dat k souboru.&lt;br /&gt;&lt;br /&gt;Všechny tři režimy otevření souboru lze ještě doplnit o znaménko +. Pak bude soubor otevřen najednou pro čtení i zápis.&lt;br /&gt;&lt;br /&gt;Dále můžeme v C++ otevírat soubory buď jako textové, nebo jako binární(zvlášť vhodné pro struktury). To určíme pomocí znaků b nebo t připojených k řetězci mode. Oba způsoby jsou skoro stejné, ale narozdíl od souborů, které byly otevřeny jako binární, pro soubory otevřené v textovém módu se při čtení i při zápisu provádí konverze oddělovače řádků. Je- li tedy, například v DOSu, oddělovačem řádků sekvence znaků '\13' a '\10', ze souboru se celá dvojice přečte jako znak '\n'. Naopak, pokud zapisujeme znak '\n', ve skutečnosti se zapíše celá kombinace '\13' a '\10'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt; Testování, zda byl soubor otevřen&lt;br /&gt;&lt;br /&gt;FILE *f;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;f = fopen("soubor.txt", "rb+");&lt;br /&gt;if (f==NULL) { puts("Chyba: Soubor se nepodařilo otevřít.");&lt;br /&gt;             return(false);&lt;br /&gt;           }&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Uzavření souboru &lt;/span&gt;&lt;br /&gt;Přestaneme-li s otevřeným souborem pracovat, měli bychom ho, ačkoliv to není povinné, hned uzavřít. Počet najednou otevřených souborů je totiž omezen. Uzavření souboru provedeme voláním funkce fclose().&lt;br /&gt;&lt;br /&gt;int fclose (FILE *file);&lt;br /&gt;&lt;br /&gt;Podařilo-li se soubor uzavřít, vrací funkce hodnotu 0. Opačný případ, tedy že se soubor uzavřít nepodařilo, nastává nejčastěji, snažíme-li se uzavřít v dané chvíli neotevřený soubor. V takovém případě vrací funkce hodnotu EOF. Jiný důvod selhání prakticky nenastává, a proto se návratová hodnota funkce fclose() většinou ani netestuje.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Testování konce souboru &lt;/span&gt;&lt;br /&gt;Testovat konec souboru se dá v zásadě dvěma způsoby. Buď kontrolou návratových hodnot čtecích funkcí, nebo použitím funkce feof(). První způsob se používá především pro čtení pomocí funkce getc(), která vrací hodnotu EOF, pokud bylo dosaženo konce souboru. Druhým způsobem, pomocí funkce feof(), můžeme stejnou skutečnost zjistit pro libovolnou operaci čtení. Pokud se poslední taková operace pokoušela číst již za koncem souboru, vrací funkce feof() pravdivou (nenulovou) hodnotu. V opačném případě vrací nulu.&lt;br /&gt;&lt;br /&gt;int feof(FILE *file);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Funkce pro zápis do souboru &lt;/span&gt;&lt;br /&gt;Pro zápis do souboru nám poslouží funkce putc(), fprintf(), a fputs(), jejichž deklarace jsou zde:&lt;br /&gt;&lt;br /&gt;int putc(int c, FILE *file);&lt;br /&gt;int fprintf(FILE *file, char *formát, ...);&lt;br /&gt;int fputs (char *string, FILE *file);&lt;br /&gt;&lt;br /&gt;Po provedení některé z těchto funkcí se file-pointer posune v souboru za poslední zapsaný byte. To ostatně platí i pro všechny další funkce zapisující do souboru.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Funkce fwrite()&lt;/span&gt; – slouží pro binární zápis&lt;br /&gt;&lt;br /&gt;int fwrite(void *ptr, int size, int n, FILE *file);&lt;br /&gt;&lt;br /&gt;Funkce fwrite() zapíše do proudu file n položek přečtených z paměti označené ukazatelem ptr. Velikost jedné položky v bytech udává parametr size, takže celkový počet zapisovaných bytů je roven size*n. &lt;span style="font-weight: bold;"&gt;Funkce fwrite() vrací počet úspěšně zapsaných položek, nikoli bytů! &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Funkce pro čtení ze souboru &lt;/span&gt;&lt;br /&gt;int   getc(FILE *file);&lt;br /&gt;int   fscanf(FILE *file, char *formát, ...);&lt;br /&gt;char *fgets(char *string, int n, FILE *file);&lt;br /&gt;&lt;br /&gt;Zajímavá je především funkce fgets, která oproti příbuzné funkci gets umožňuje definovat maximální počet přečtených znaků a lze ji použít i ke čtení ze standardního vstupu.&lt;br /&gt;&lt;br /&gt;char str[50];&lt;br /&gt;&lt;br /&gt;fgets(str, 49, stdin);&lt;br /&gt;&lt;br /&gt;I funkce čtoucí ze souboru posouvají file-pointer, a to za poslední přečtený znak souboru.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Funkce fread()&lt;/span&gt; – slouží pro binární čtení&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pro blokové čtení ze souboru nám poslouží funkce fread(): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int fread(void *ptr, int size, int n, FILE *file);&lt;br /&gt;&lt;br /&gt;Z datového proudu file přečte n položek o velikosti size bytů a uloží je do paměti označené ukazatelem ptr. Návratovou hodnotou je počet skutečně přečtených položek.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nesekvenční přístup:&lt;/span&gt;&lt;br /&gt;Na souborové datové proudy lze použít tzv. nesekvenční (náhodný) přístup, což znamená, že nemusíme číst jeden byte za druhým tak, jak jsou v souboru uloženy, ale můžeme „skákat“ (přesunovat file-pointer) na libovolnou pozici v souboru. K tomuto účelu slouží funkce fseek().&lt;br /&gt;int fseek (FILE *file, long offset, int mode);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Funkce přesune file-pointer na pozici vzdálenou offset bytů od pozice mode, přičemž za parametr mode je možné zvolit jednu z následujících konstant: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SEEK_SET  Začátek souboru&lt;br /&gt;SEEK_CUR  Aktuální pozice v souboru&lt;br /&gt;SEEK_END  Konec souboru&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklady:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;zápis  file----------------pointer se přesune na...&lt;br /&gt;fseek(f, 0, SEEK_SET);  začátek souboru&lt;br /&gt;fseek(f, 0, SEEK_END);  konec souboru&lt;br /&gt;fseek(f, -10, SEEK_CUR);  pozici o deset bytů zpět od aktualní pozice&lt;br /&gt;fseek(f, 10, SEEK_SET);  jedenactý byte souboru&lt;br /&gt;&lt;br /&gt;Je-li soubor, se kterým pracujeme, otevřen v módu pro čtení i zápis, musíme mezi každou operací čtení a operací zápisu volat funkci fseek(). Tato nepříjemnost je nutná kvůli synchronizaci file-pointerů, které jinak nemusí být správně nastaveny. Funkci fseek() ale můžeme volat i s nulovým posunem.&lt;br /&gt;&lt;br /&gt;Chceme-li zjistit, jaká je aktuální pozice file-pointeru v souboru, můžeme použít funkci ftell(), která tuto pozici vrací jako svou návratovou hodnotu.&lt;br /&gt;&lt;br /&gt;long ftell (FILE *file);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5085107807665311404?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5085107807665311404/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/24operace-s-ostatnimi-soubory-ovladani.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5085107807665311404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5085107807665311404'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/24operace-s-ostatnimi-soubory-ovladani.html' title='24. Operace s ostatními soubory, ovládání souborů prostřednictvím ukazatelů.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-687206124579445994</id><published>2010-12-17T05:05:00.000-08:00</published><updated>2010-12-17T05:09:09.533-08:00</updated><title type='text'>23. Ukazatele na struktury, ukazatele na funkce.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Ukazatel na struktury:&lt;/span&gt;&lt;br /&gt;Na struktury lze ukazovat stejně jako na jakýkoliv typ proměnné.&lt;br /&gt;&lt;br /&gt;název_struktury *identifikátor;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;struct DATUM{&lt;br /&gt;int den;&lt;br /&gt;int mesic;&lt;br /&gt;int rok;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;struct CD{&lt;br /&gt;char nazev[31];&lt;br /&gt;int cislo;&lt;br /&gt;DATUM vydano;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;CD *test = new CD; //deklarace ukazatele test&lt;br /&gt;printf(“%d“,test-&gt;cislo); /*Vypíše obsah proměnné cislo ze struktury na &lt;br /&gt;                        kterou ukazuje test.*/&lt;br /&gt;printf("%d",(*test).cislo); //Udělá totéž&lt;br /&gt;printf(“%d“,(*test).vydano.den); /*Vypíše obsah proměnné den ve struktuře DATUM, kterou obsahuje struktura CD.*/&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Z předcházejícího příkladu je viděť, že lze vytvářet libovolně vnořené struktury a přistupovat k nim pomocí pointerů.&lt;br /&gt;&lt;br /&gt;Největší pointerů je, pokud chceme vytvořit dynamickou databázi struktur. Pak by struktura CD ještě obsahovala ukazatel sama na sebe, které bychom vždy přiřadily adresu následující struktury CD. Příklad viz maturita z Cčka :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ukazatele na funkce: &lt;/span&gt;&lt;br /&gt;Kromě klasických datových ukazatelů, s kterými jsme se doposud setkávali, nabízí jazyk C(C++) i ukazatele kódové. Ty ukazují na určitý úsek kódu (funkci) programu, který pak můžeme spustit nepřímo, právě pomocí těchto ukazatelů.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definice ukazatele na funkci &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Uvažujme, že máme nadefinovanou tuto funkci pro sčítání čísel double: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;double secti(double a, double b)&lt;br /&gt;{ return a+b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tuto funkci můžeme volat normálně, jak jsme zvyklí, nebo si můžeme vytvořit ukazatel na ni a volat ji pomocí něho. Formální zápis definice takového pointeru vypadá takto: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;typ (*identifikátor)(seznam_typů_parametrů)&lt;br /&gt;&lt;br /&gt;Typem rozumíme datový typ, který vrací funkce, na kterou bude ukazovat náš pointer. Identifikátor je pak označením tohoto nového pointeru a v seznamu_typů_parametrů jsou, v odpovídajícím pořadí, uvedeny všechny typy parametrů odkazované funkce. Tento seznam sice můžeme nechat prázdný, ale kompilátor by v tomto případě neměl informace o typech parametrů funkce. Pokud bychom pak volali funkci, nepřímo přes ukazatel, se špatnými typy parametrů, mohlo by to vést ke špatné funkci programu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad na funkci secti():&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;double (*pf)(double, double);&lt;br /&gt;&lt;br /&gt;Pointer pf teď může ukazovat na jakoukoliv funkci, která má dva parametry typu double a hodnotu typu double i vrací, tedy může ukazovat i na naši funkci secti(). Tento ukazatel je ale zatím neinicializovaný a pro volání funkce ho ještě nemůžeme použít. Jeho inicializaci provedeme prostým přiřazením identifikátoru existující funkce.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Inicializace kódového ukazatele &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;pf=secti;&lt;br /&gt;&lt;br /&gt;Do proměnné pf byl uložen ukazatel na funkci secti(). Identifikátor přiřazované funkce se musí uvádět bez závorek se seznamem parametrů a nemusíme(ale můžeme) použít operátor &amp;amp; pro získání adresy. Kompilátor dokáže rozeznat, že chceme přiřadit ukazatel na funkci a ne funkci samotnou.&lt;br /&gt;&lt;br /&gt;pf=§secti;&lt;br /&gt;&lt;br /&gt;Ukazatel na funkci se dá inicializovat i jinými způsoby, podobně jako datový ukazatel. Můžeme tedy přiřazovat vzájemně kompatibilní ukazatele, inicializovat návratovou hodnotou funkce apod.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Volání funkce pomocí ukazatele &lt;/span&gt;&lt;br /&gt;Jak už jsme si řekli, lze k volání funkce použít i ukazatele na tuto funkci. Zápis takového volání se řídí podle jednoho z následujících zápisů:&lt;br /&gt;&lt;br /&gt;(*identifikátor_ukazatele)(seznam_skutečných parametrů);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;nebo &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;identifikátor_ukazatele(seznam_skutečných parametrů);&lt;br /&gt;&lt;br /&gt;Oba zápisy jsou funkčně ekvivalentní, a protože druhý z nich je jednodušší a bližší skutečnému zápisu volání funkce, budeme ho nadále používat.&lt;br /&gt;Výše nadefinovaný a inicializovaný pointer pf bychom tedy pro zavolání jím odkazované funkce použili následujícím způsobem.&lt;br /&gt;&lt;br /&gt;pf(15,4);&lt;br /&gt;&lt;br /&gt;Výsledkem po vyhodnocení tohoto výrazu bude double hodnota 19.0, stejně jako kdybychom zavolali funkci&lt;br /&gt;&lt;br /&gt;secti(15,4);&lt;br /&gt;&lt;br /&gt;na kterou pointer pf ukazuje.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Kódový ukazatel jako parametr funkce a její návratová hodnota &lt;/span&gt;&lt;br /&gt;I kódový ukazatel můžeme bez problémů předat funkci jako její parametr, a to stejně, jako bychom to udělali s proměnnou jiného typu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-687206124579445994?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/687206124579445994/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/23ukazatele-na-struktury-ukazatele-na.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/687206124579445994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/687206124579445994'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/23ukazatele-na-struktury-ukazatele-na.html' title='23. Ukazatele na struktury, ukazatele na funkce.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5643696790315422618</id><published>2010-12-17T05:04:00.000-08:00</published><updated>2010-12-17T05:05:25.449-08:00</updated><title type='text'>22. Rekurze, prototyp funkce.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Rekurze:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Jako rekurzivní označujeme takové volání funkce F, které nastane dříve, než je dokončeno volání předchozí.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Klasickým příkladem na rekurzivní výpočty je funkce faktoriál:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;unsigned long Fak(unsigned n)&lt;br /&gt;{&lt;br /&gt;if(n) return n*Fak(n-1);&lt;br /&gt;else return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Prototyp funkce(deklarace funkce) – zkopírováno z otázky č.5:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Deklarace funkce je vlastně způsob jak dát překladači všechny potřebné údaje o funkci, aniž bychom ji museli celou definovat(viz Definice funkce výše). Předtím, než funkci zavoláme, měla by být vždy předem definována, nebo deklarována. To proto, aby překladač znal všechny formální parametry, a tak mohl vytvořit správný kód.&lt;br /&gt;&lt;br /&gt;Pokud funkci nebudeme ještě před jejím voláním deklarovat ani definovat, bude překladač odhadovat formální parametry podle typu skutečných parametrů (parametry předané funkci při jejím volání), které ale nemusí odpovídat typu parametrů formálních. Výsledkem by pak byl nesprávně sestavený kód. Pokud ale z nějakého důvodu není funkce definována před svým použitím, měla by být alespoň deklarována.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deklarace funkce vypadá takhle: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;návratový_typ identifikátor_funkce (seznam definicí formálních parametrů);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Je to vlastně celá hlavička definice, která je ale zakončená středníkem. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int secti (int a, int b); /*prototyp funkce - deklarace výše definované funkce.*/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5643696790315422618?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5643696790315422618/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/22-rekurze-prototyp-funkce.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5643696790315422618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5643696790315422618'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/22-rekurze-prototyp-funkce.html' title='22. Rekurze, prototyp funkce.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8297739062876769983</id><published>2010-12-17T05:02:00.000-08:00</published><updated>2010-12-17T05:04:04.371-08:00</updated><title type='text'>21. Aritmetické operátory, relační, logické, inkrementování a dekrementování(celá otázka zkopírována z otázky č.3).</title><content type='html'>&lt;span style="font-weight: bold;"&gt;aritmetické operátory&lt;/span&gt;&lt;br /&gt;+, -, * &lt;br /&gt;/ Celočíselné, nebo reálné, dělení. To, jestli bude provedeno dělení celočíselné, nebo reálné, záleží na typu operandů. Pokud oba operandy budou celočíselného typu, provede se celočíselné dělení. Pokud ovšem alespoň jeden z operandů bude reálného typu, provede se dělení reálné. V případě, že potřebujeme provést reálné dělení na operandech celočíselných typů, musíme jeden z nich přetypovat pomocí operátoru přetypování (viz. dále) na reálný typ.&lt;br /&gt;&lt;br /&gt;% Dělení modulo, neboli zbytek po celočíselném dělení.&lt;br /&gt;&lt;br /&gt;= Přiřazení.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;relační operátory &lt;/span&gt;&lt;br /&gt;&lt;, &lt;=, &gt;, &gt;= menší než, menší nebo rovno, atd...&lt;br /&gt;&lt;br /&gt;!= nerovnost&lt;br /&gt;&lt;br /&gt;== rovnost&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;logické operátory &lt;/span&gt;&lt;br /&gt;&amp;amp;&amp;amp; logický součin (AND)&lt;br /&gt;&lt;br /&gt;|| logický součet (OR)&lt;br /&gt;&lt;br /&gt;^ logický XOR&lt;br /&gt;&lt;br /&gt;! negace&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;operátory inkrementace a dekrementace &lt;/span&gt;&lt;br /&gt;++ Inkrementace. Zvýší hodnotu operandu o 1.&lt;br /&gt;-- Dekrementace. Sníží hodnotu operandu o 1.&lt;br /&gt;&lt;br /&gt;Oba operátory se dají použít jak před svým operandem, tak za ním. Význam je ale pokaždé jiný. Pokud operátor uvedeme před operandem, jedná se o tzv. preinkrementaci. To znamená, že hodnota operandu se nejprve zvýší a tato zvýšená hodnota je vrácena jako výsledek operace. Naopak při postinkrementaci je jako hodnota celého výrazu vrácena původní hodnota operandu a pak je teprve operand samotný zvýšen o 1.&lt;br /&gt;&lt;br /&gt;int a,b=1;&lt;br /&gt;a = b++;&lt;br /&gt;/*Postinkrementace. Výraz b++ je nejdříve vyhodnocen (a jeho hodnota přiřazena proměnné a) a pak je teprve inkrementována proměnná b. Proměnná a teď tedy má hodnotu 1 a b je rovno 2.*/&lt;br /&gt;&lt;br /&gt;a = ++b;&lt;br /&gt;/*Preinkrementace. Nejdříve je inkrementováno b na hodnotu 3. Tato hodnota je i výsledkem vyhodnocení výrazu ++b a tedy je přiřazena proměnné a. Hodnota a je 3.*/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8297739062876769983?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8297739062876769983/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/21-aritmeticke-operatory-relacni.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8297739062876769983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8297739062876769983'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/21-aritmeticke-operatory-relacni.html' title='21. Aritmetické operátory, relační, logické, inkrementování a dekrementování(celá otázka zkopírována z otázky č.3).'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2587315778755587981</id><published>2010-12-17T05:00:00.002-08:00</published><updated>2010-12-17T05:02:05.180-08:00</updated><title type='text'>20. Operátor přetypování, operátor získání adresy a velikosti typu.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Operátor přetypování(zkopírováno z otázky č. 3):&lt;/span&gt;&lt;br /&gt;I když se při neshodách typů provádí implicitní přetypování, někdy potřebujeme explicitně přetypovat jeden typ na jiný. To provedeme pomocí operátoru přetypování. Zápis vypadá tak, že před samotný výraz, který chceme přetypovat, uvedeme v kulatých závorkách jméno nového typu.&lt;br /&gt;&lt;br /&gt;int a=5, b=3;&lt;br /&gt;double c;&lt;br /&gt;c = a / (double)b;  /*Pokud bychom nepoužili přetypování, provedlo by se celočíselné dělení. Pro vynucení dělení reálného musíme hodnotu výrazu b přetypovat na double. */&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operátor získání adresy - Referenční operátor &amp;amp;:&lt;/span&gt;&lt;br /&gt;Abychom mohli do ukazatelové proměnné přiřadit hodnotu (nějakou adresu), musíme ji nejprve někde získat. K tomu nám může posloužit referenční operátor '&amp;amp;'. Jeho zapsáním před identifikátor proměnné získáme adresu paměti, kde je tato proměnná uložena. Tuto adresu pak můžeme přiřadit nějaké ukazatelové proměnné.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;char *p, c;&lt;br /&gt;&lt;br /&gt;c = 12;&lt;br /&gt;p = &amp;c;&lt;br /&gt;// p nyní ukazuje na proměnnou c&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operátor velikosti typu - Operátor sizeof :&lt;/span&gt;&lt;br /&gt;Tento operátor slouží ke zjišťování velikosti svého operandu. Existují dva typy operandů, na které můžeme operátor sizeof aplikovat. Je to buď identifikátor některého datového typu:&lt;br /&gt;&lt;br /&gt;sizeof( identifikátor_datového_typu )&lt;br /&gt;nebo libovolný výraz:&lt;br /&gt;sizeof výraz&lt;br /&gt;&lt;br /&gt;V případě, že operandem bude identifikátor některého datového typu (musí být uveden v závorkách), je výsledkem vyhodnocení velikost, jakou by v paměti zabíral objekt (např. proměnná) tohoto typu. Množina použitelných typů, na které lze sizeof aplikovat, není nijak omezena a je možné použít tento operátor i na uživatelsky definované typy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;sizeof(int)       //velikost int&lt;br /&gt;sizeof(int*)      //velikost ukazatele na int&lt;br /&gt;sizeof(int [10])  //velikost pole deseti intových položek&lt;br /&gt;sizeof(struct {int x; char a;})  //velikost zadané struktury&lt;br /&gt;&lt;br /&gt;Druhý případ, kdy operátor sizeof použijeme na výraz, je podobný. Operátor v tomto případě vrací velikost paměti, jaká je potřeba k uložení výsledku vyhodnocení předaného výrazu. Tedy, je-li výsledkem vyhodnocení výrazu hodnota typu int, pak operátor sizeof, aplikovaný na tento výraz, vrací velikost datového typu int.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2587315778755587981?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2587315778755587981/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/20-operator-pretypovani-operator.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2587315778755587981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2587315778755587981'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/20-operator-pretypovani-operator.html' title='20. Operátor přetypování, operátor získání adresy a velikosti typu.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6926957609301355743</id><published>2010-12-17T05:00:00.001-08:00</published><updated>2010-12-17T05:00:25.633-08:00</updated><title type='text'>19. Předávání parametrů hodnotou a odkazem.</title><content type='html'>Viz otázka č. 4&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6926957609301355743?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6926957609301355743/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/19-predavani-parametru-hodnotou-odkazem.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6926957609301355743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6926957609301355743'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/19-predavani-parametru-hodnotou-odkazem.html' title='19. Předávání parametrů hodnotou a odkazem.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7361236174863143541</id><published>2010-12-17T04:58:00.000-08:00</published><updated>2010-12-17T04:59:48.264-08:00</updated><title type='text'>18. Vícenásobné definice funkcí, implicitní hodnoty parametrů, nepoužité parametry.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Přetěžování funkcí:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pozn.:&lt;/span&gt; Mělo by jít o vícenásobné definice funkcí, ale nejsem si jistý.&lt;br /&gt;Přetížení funkcí je možnost deklarovat, i definovat více funkcí stejného jména s různým počtem, nebo s různými typy parametrů.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt; Mohu definovat dvě funkce se stejným jménem max.&lt;br /&gt;&lt;br /&gt;int max(int a, int b)&lt;br /&gt;{&lt;br /&gt; return (a&gt;b)? a:b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;float max(float a, float b)&lt;br /&gt;{&lt;br /&gt; return (a&gt;b)? a:b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Zavolám-li funkci max s parametry typu float vrátí mi větší z nich jako typ float. Zavolám-li funkci max s parametry typu int vrátí mi větší z nich jako typ int. Při přetěžování funkcí musíte dávat pozor na případné nejednoznačnosti. Kdyby jste v našem příkladě zavolali funkci max(1.0,2.0), překladač by vás upozornil na chybu. Neví totiž, zda volat max s parametry float, nebo parametry implicitně přetypovat na int a volat max s parametry int. Tedy volání funkce je nejednoznačné, překladač neví, kterou funkci vybrat. Tento problém vyřešíte, jestliže budete volat max((float)2.0,(float)3.5).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Implicitní hodnoty parametrů funkcí:&lt;/span&gt;&lt;br /&gt;Jestliže předpokládáte, že budete funkci často volat s nějakou hodnotou parametru, můžeme tuto hodnotu uvést jako implicitní, a při volání ji v seznamu parametrů neuvádět.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int soucet(int a, int b, int c = 0)     /* 3. parametr je implicitně 0. */&lt;br /&gt;{&lt;br /&gt; return (a+b+c);     /* vracím součet parametrů*/&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;int cislo;&lt;br /&gt;. . . // Nějaký program&lt;br /&gt;cislo = soucet(1,2,3);     /* Zavolá se funkce soucet s parametry a = 1 , b = 2, c = 3 */&lt;br /&gt;. . . // Nějaký program&lt;br /&gt;cislo = soucet(2,3);     /* Zavolá se funkce soucet s parametry a = 2 , b = 3, c = 0. Za c se implicitně dosadí 0. Je to stejný výsledek, jako kdybychom napsali cislo = soucet(2,3,0). */&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Implicitní hodnoty parametrů mohu zadávat jen v seznamu parametrů zprava. Pokud by tedy v naší funkci součet nemel parametr c implicitní hodnotu, parametr b by ji také nemohl mít. Parametr c (1. zprava) implicitní hodnotu má, proto lze definovat i implicitní hodnotu parametru b (2. zprava).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nepoužité parametry:&lt;/span&gt;&lt;br /&gt;Občas se stane, že potřebujeme deklarovat funkci s parametry, které ve skutečnosti nepotřebujeme. Jazyk C++ nabízí následující možnost: v definiční deklaraci uvedeme pouze typ parametru, nikoli jeho identifikátor.Taková deklarace způsobí, že překladač  nás nebude upozorňovat, že jsme parametr nepoužili.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad &lt;/span&gt;&lt;br /&gt;Uvažujme definiční deklraci&lt;br /&gt;&lt;br /&gt; int f(int)&lt;br /&gt; {&lt;br /&gt;  /* tělo funkce */&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;To je funkce s jedním parametrem typu int, který nehodláme používat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7361236174863143541?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7361236174863143541/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/18-vicenasobne-definice-funkci.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7361236174863143541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7361236174863143541'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/18-vicenasobne-definice-funkci.html' title='18. Vícenásobné definice funkcí, implicitní hodnoty parametrů, nepoužité parametry.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7023505995465759557</id><published>2010-12-17T04:54:00.000-08:00</published><updated>2010-12-17T04:57:59.725-08:00</updated><title type='text'>17. Deklarace a inicializace proměnných a polí, paměťové třídy.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Deklarace a inicializace proměnných viz otázka č. 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pole:&lt;/span&gt;&lt;br /&gt;Pole je strukturovaný datový typ, což znamená, že má svou vlastní vnitřní strukturu, která je tvořena položkami určitého datového typu. K těm lze pak přistupovat odděleně.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definice proměnné typu pole:&lt;/span&gt;&lt;br /&gt;Proměnná typu pole se definuje podobně jako proměnná jednoduchého typu. Rozdílem je, že při definici pole se za jménem identifikátoru proměnné ještě uvádějí hranaté závorky, ve kterých určíme počet prvků pole.&lt;br /&gt;&lt;br /&gt;bázový_typ identifikátor[počet_prvků];&lt;br /&gt;&lt;br /&gt;Bázový_typ neurčuje typ proměnné, ale typ položek pole. Že jde o pole pozná překladač právě podle hranatých závorek. Počet_prvků je jakýkoliv konstantní výraz, tedy takový, který lze vyhodnotit již při překladu. Podívejme se na konkrétní příklad definice pole:&lt;br /&gt;&lt;br /&gt;short int moje_pole[10];&lt;br /&gt;&lt;br /&gt;Nadefinovali jsme proměnnou typu pole, která obsahuje 10 položek typu short int. Znamená to tedy, že se pro naši proměnnou vyhradilo 20 bytů (10 * sizeof(short int)). Tato paměť tvoří jeden souvislý blok. V případě, že je takto nadefinovaná proměnná statická (static , existuje po celou dobu vykonávání programu), jsou všechny položky pole inicializovány nulovou hodnotou. Naopak, v případě že jde o lokální automatickou proměnnou (auto , vzniká až při běhu programu a existuje pouze omezenou dobu), nejsou jednotlivé prvky pole inicializovány.&lt;br /&gt;Prvky pole lze inicializovat již při definici.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;short int moje_pole[5]={1, 0, 443, -46, 987};&lt;br /&gt;&lt;br /&gt;V případě, že počet inicializačních výrazů je vyšší než počet položek pole, bude se při překladu hlásit chyba. Pokud je počet inicializátorů menší, chyba se nehlásí a zbylé položky jsou inicializovány buď nulovou hodnotou, nebo nejsou inicializovány vůbec.&lt;br /&gt;&lt;br /&gt;Pokud při definici zároveň inicializujeme prvky pole, nemusíme specifikovat velikost pole, ale stačí když uvedeme prázdné závorky. Překladač sám určí velikost pole podle počtu inicializačních výrazů.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;short int moje_pole[]={1, 0, 443, -46, 987};&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Přístup k prvkům pole &lt;/span&gt;&lt;br /&gt;Přístup k prvkům pole se provádí pomocí indexace. V jazyce C++ jsou všechny proměnné typu pole indexovány od nuly. To znamená, že první položka má vždy index 0, což není možné nijak ovlivnit.&lt;br /&gt;&lt;br /&gt;moje_pole[0]=250;&lt;br /&gt;&lt;br /&gt;Tímto zápisem jsme do první položky pole zapsali hodnotu 250.&lt;br /&gt;S poli můžou pracovat i operátory ==, != a další, nicméně význam použití těchto operátorů je, v souvislosti s poli, jiný.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int moje_pole[4]={15, 35, 66, 1000};&lt;br /&gt;int dalsi_pole[4]={15, 35, 66, 1000};&lt;br /&gt;if (moje_pole == další_pole) {...}&lt;br /&gt;&lt;br /&gt;I když by se mohlo zdát, že se porovnají jednotlivé prvky pole, není tomu tak. Ve skutečnosti se provede pouze porovnání ukazatelů na první prvek pole. Tyto ukazatele ale mohou být stejné pouze v případě, že půjde o identická pole a tedy blok v příkazu if v našem příkladu se neprovede nikdy, bez ohledu na položky pole.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Procházení pole &lt;/span&gt;&lt;br /&gt;Při procházení položek pole je nutné dát si pozor na to, abychom nikdy omylem nepřekročili hranice pole. Jazyk C++ zásadně nekontroluje meze polí, a tak je bez problémů možné číst i zapisovat do paměti, která nám již nepatří. Protože se indexuje od nuly, poslední prvek pole o n položkách tedy bude mít index n-1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int moje_pole[20], i;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;for (i=0; i&lt;20; i++) moje_pole[i]=0;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Paměťové třídy:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modifikátory paměťové třídy &lt;/span&gt;&lt;br /&gt;Kromě identifikátoru a datového typu jsou proměnné určeny ještě paměťovou třídou, které náleží. Paměťová třída určuje kde bude proměnná v paměti uložena, jakou bude mít viditelnost a jakou životnost.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modifikátor auto: &lt;/span&gt;&lt;br /&gt;Modifikátor paměťové třídy auto je implicitně používán pro všechny lokální proměnné, jejichž paměťová třída nebyla určena jiným modifikátorem. Těmto proměnným se také často říká automatické, protože paměť se pro ně alokuje automaticky až při vstupu do bloku, ve kterém jsou definovány. Po opuštění bloku je tato paměť zase uvolněna. V případě návratu do stejného bloku je místo pro proměnnou alokováno znovu, neexistuje ale žádná záruka, že to bude stejné místo jako při poslední alokaci. Stejně tak neexistuje vůbec žádná záruka, že hodnota proměnné zůstane zachována. Automatické proměnné nejsou nikdy implicitně inicializovány nulovou hodnotou. Inicializovat je musíme explicitně, například při definici proměnné. Výhodou je, že k této inicializaci není potřeba použít konstantní výraz, ale je možné inicializovat i hodnotami jiných proměnných, nebo návratovou hodnotou funkce. Automatická proměnná je viditelná jen v rámci bloku, ve kterém je definována. Existuje–li vedle této automatické proměnné i nějaká globální proměnná se stejným identifikátorem, je zastíněna automatickou proměnnou.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int        i=10; //Globální proměnná i&lt;br /&gt;auto int   j; //Způsobí chybu&lt;br /&gt;&lt;br /&gt;void fce()&lt;br /&gt;{ auto int i; // Lokální proměnná i(může být napsána i bez auto)&lt;br /&gt;&lt;br /&gt; i=20;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt; fce();&lt;br /&gt; printf("%d", i);&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;V uvedeném příkladu jsou definovány dvě proměnné i. První z nich je globální a druhá, definovaná uvnitř funkce fce(), je automatická lokální proměnná, která ,v oblasti své viditelnosti (uvnitř funkce), zastiňuje globální proměnnou i. Jak bude vidět z kontrolního výstupu funkce printf(), ve funkci fce() jsme skutečně pracovali s lokální proměnnou i. Definice proměnné j s modifikátorem auto vyvolá chybu, protože globální proměnné nemohou být automatické.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modifikátor static: &lt;/span&gt;&lt;br /&gt;Viditelnost statické lokální proměnné je shodná s viditelností automatických proměnných, tedy je viditelná jen v bloku, kde je definována. Životnost statické proměnné je ale po celou dobu vykonávání programu. Paměť pro takovou proměnnou je alokována při startu programu a uvolněna je až po jeho skončení. Z toho vyplývá, že, máme-li statickou proměnnou a opustíme blok, ve kterém byla definována, tato proměnná nezaniká, pouze již není viditelná. I tak ale lze s touto proměnnou pracovat např. pomocí ukazatele. Dojde-li k návratu do bloku s touto proměnnou, můžeme s ní znovu pracovat. Statické lokální proměnné se při definici dají inicializovat jen konstantním výrazem. Tato inicializace se ale provede jen při prvním vstupu do bloku, kde je proměnná definována. Není-li statická lokální proměnná inicializována explicitně, provede se implicitní inicializace nulovou hodnotou (opět jen při prvním vstupu do bloku).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad statické lokální proměnné je zjištění kolikrát byla nějaká funkce volána: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int fce()&lt;br /&gt;{ static int i=0;&lt;br /&gt; return ++i;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{ int j;&lt;br /&gt; for (j=0; j&lt;10; j++) printf("%d  ", fce());&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Proměnná i je při prvním zavolání funkce fce() inicializována nulovou hodnotou. Při dalším spuštění funkce se již inicializace neprovede a v proměnné i zůstává hodnota nastavená v předchozím volání funkce.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modifikátor register: &lt;/span&gt;&lt;br /&gt;Modifikátor register patří mezi modifikátory ovlivňující optimalizaci kódu programu. Pro zvýšení efektivnosti je totiž možné uložit některé proměnné přímo do registrů procesoru, a tak umožnit rychlejší přístup k těmto proměnným. Je ale nutné říct, že klíčové slovo register slouží spíše jen jako doporučení kompilátoru, že proměnná se hodí k uložení do registru. Jestli se tak opravdu stane, není zaručeno, už třeba kvůli omezenému počtu registrů. Na registrové proměnné také nelze aplikovat operátor reference &amp;amp;, a to ať už proměnná skutečně je umístěna v registru, nebo není. Životnost a viditelnost registrových proměnných je stejná jako u proměnných automatických. Modifikátor register lze aplikovat pouze na lokální proměnné, a tedy nelze definovat globální proměnnou s modifikátorem register.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modifikátor volatile: &lt;/span&gt;&lt;br /&gt;Druhým z modifikátorů, které ovlivňují optimalizaci, je modifikátor volatile. Pokud tímto klíčovým slovem označíme nějakou proměnnou, kompilátor ji nebude optimalizovat.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modifikátor const: &lt;/span&gt;&lt;br /&gt;Modifikátorem const vlastně neurčujeme paměťovou třídu, ale definujeme pomocí něho tzv. konstantní proměnné. Hodnoty takovýchto proměnných pak v programu nemůžeme přímo měnit (např. přiřazením). Jediným normálním způsobem, jak se dá hodnota konstantní proměnné nastavit, je inicializace při její definici. Pomocí ukazatelů však lze změnit hodnotu konstantní proměnné i z jiných míst programu.&lt;br /&gt;&lt;br /&gt;Konstantní proměnné lze použít např. pro inicializaci globálních proměnných, pro definování velikostí polí, apod. jen v C++. Modifikátor const lze použít i v kombinaci s jinými modifikátory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;const int i=20;&lt;br /&gt;int *p=&amp;i;&lt;br /&gt;&lt;br /&gt;i=30;   //chyba, nelze provést&lt;br /&gt;printf("%d\n", i);&lt;br /&gt;*p=40;  //nepřímá změna hodnoty konstantní proměnné&lt;br /&gt;printf("%d\n", i);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7023505995465759557?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7023505995465759557/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/17-deklarace-inicializace-promennych.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7023505995465759557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7023505995465759557'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/17-deklarace-inicializace-promennych.html' title='17. Deklarace a inicializace proměnných a polí, paměťové třídy.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6099426734885558456</id><published>2010-12-17T04:43:00.001-08:00</published><updated>2010-12-17T04:43:33.682-08:00</updated><title type='text'>16. Vytváření dynamických datových struktur pomocí struktur.</title><content type='html'>Viz otázka č. 24&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6099426734885558456?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6099426734885558456/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/16-vytvareni-dynamickych-datovych.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6099426734885558456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6099426734885558456'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/16-vytvareni-dynamickych-datovych.html' title='16. Vytváření dynamických datových struktur pomocí struktur.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8267562348683848885</id><published>2010-12-17T04:40:00.000-08:00</published><updated>2010-12-17T04:42:49.587-08:00</updated><title type='text'>15. Struktury, jejich deklarace, složky, operátor přímé a nepřímé kvalifikace.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Struktura, deklarace struktury:&lt;/span&gt;&lt;br /&gt;Typ struktura patří mezi tzv. složené datové typy. Struktura je vlastně jakýsi obal, který sdružuje více položek různých typů do jednoho celku.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;struct { char jmeno[200];&lt;br /&gt;        unsigned char vek;&lt;br /&gt;        float vyska;&lt;br /&gt;      };&lt;br /&gt;&lt;br /&gt;Klíčovým slovem&lt;span style="font-weight: bold;"&gt; struct&lt;/span&gt; uvozujeme vlastní deklaraci těla struktury. To je tvořeno dvojicí složených závorek, mezi kterými jsou deklarovány jednotlivé položky struktury tak, jako bychom definovali proměnné.&lt;br /&gt;&lt;br /&gt;Nyní tedy máme nadeklarovanou strukturu, ale nemáme žádnou proměnnou, jejímž typem by tato struktura byla. Chceme-li tedy nějakou takovou proměnnou definovat, uděláme to stejně jako u ostatních datových typů - zápisem, kdy před identifikátor proměnné uvedeme její typ.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;struct { char jmeno[200];&lt;br /&gt;        unsigned char vek;&lt;br /&gt;        float vyska;&lt;br /&gt;      } clovek; //Přibyla definice proměnné člověk&lt;br /&gt;&lt;br /&gt;Pokud bychom chtěli definovat více proměnných, jednoduše uvedeme více identifikátorů navzájem oddělených čárkou. Jestliže ale budeme chtít vytvořit proměnnou stejného typu na jiném místě programu, musíme samotnou strukturu označit identifikátorem, který uvedeme mezi klíčovým slovem struct a vlastním tělem struktury.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;struct osoba { char jmeno[200];&lt;br /&gt;              unsigned char vek;&lt;br /&gt;              float vyska;&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;Nyní ale, díky označení struktury jejím identifikátorem, můžeme proměnnou „clovek“ definovat i na jiných místech programu takto:&lt;br /&gt;&lt;br /&gt;osoba clovek;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Složky:&lt;/span&gt;&lt;br /&gt;Snad jen, že to můžou být jakékoliv typy proměnných a dokonce i jiná struktura.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operátor přímé a nepřímé kvalifikace:&lt;/span&gt;&lt;br /&gt;Operátory přímé a nepřímé kvalifikace jsou operátory pomocí nichž pracujeme se strukturou, neboli pracujeme s jednotlivými položkami struktury. Jsou to operátory tečka . a šipka -&gt;. Operátor tečka je tzv. operátor přímé kvalifikace. Pomocí něj se přistupuje k jednotlivým položkám struktury. Například pokud bychom chtěli položce ulice v proměnné bydliste přiřadit řetězec Jecna uděláme to takto: bydliste.ulice = “Jecna”;. Operátor šipka je tzv. operátor nepřímé kvalifikace. Použijeme ho tehdy když chceme k položce ve struktuře přistupovat pomocí ukazatele. Např. pokud chceme přiřadit položce mesto proměnné bydliste řetězec Praha pomocí ukazatele *pbydliste, uděláme to takto:&lt;br /&gt;&lt;br /&gt;pbydliste = &amp;bydliste;&lt;br /&gt;pbydliste-&gt;mesto = “Praha”;&lt;br /&gt;&lt;br /&gt;Nejprve musíme ukazateli pbydliste přiřadit adresu proměnné bydliste a poté pomocí operátoru šipky naplnit její položku. Použití operátoru nepřímé kvalifikace nahrazuje toto:&lt;br /&gt;&lt;br /&gt;(*pbydliste).mesto&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8267562348683848885?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8267562348683848885/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/15-struktury-jejich-deklarace-slozky.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8267562348683848885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8267562348683848885'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/15-struktury-jejich-deklarace-slozky.html' title='15. Struktury, jejich deklarace, složky, operátor přímé a nepřímé kvalifikace.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2580625651601835301</id><published>2010-12-17T04:37:00.000-08:00</published><updated>2010-12-17T04:40:20.074-08:00</updated><title type='text'>14. Dynamické proměnné.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Dynamická alokace paměti:&lt;/span&gt;&lt;br /&gt;V programu můžeme za běhu (dynamicky) přidělovat oblasti paměti různým proměnným. Přidělená paměť má určenou délku a není pojmenovaná,neboli nemá žádný identifikátor.Přistupuje se do ní pomocí ukazatelů (pointerů).&lt;br /&gt;&lt;br /&gt;Dynamické přidělování používáme tehdy,pokud nevíme předem,kolik paměti na data využijeme (např. databáze),nebo budeme za běhu programu vytvářet proměnnou,jejíž velikost bude záviset na hodnotě jiné proměnné.(Pokud bychom zadali pevnou velikost,dynamická alokace ztrácí smysl a je lepší použít typ pole).&lt;br /&gt;&lt;br /&gt;K proměnné v takovém případě přistupujeme přes ukazatel. Deklarace ukazatele je stejná, jako normální deklarace ukazatele a pro alokaci paměti se používá operátor new . V takovém případě je po ukončení používání potřeba alokovanou proměnnou zrušit operátorem delete . Obdoba new a delete je v C malloc a free . Není správné ale používat funkce malloc a free , protože jen alokují paměť. Narozdíl od toho new navíc zavolá konstruktor a delete zavolá destruktor (pokud pracujeme se třídou).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad se strukturou, třídy jsou až dál:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;struct CD{&lt;br /&gt; int cislo;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt; CD *ukazatel;&lt;br /&gt; ukazatel = new CD;&lt;br /&gt; ukazatel-&gt;cislo = 10;&lt;br /&gt; delete ukazatel;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2580625651601835301?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2580625651601835301/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/14-dynamicke-promenne.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2580625651601835301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2580625651601835301'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/14-dynamicke-promenne.html' title='14. Dynamické proměnné.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-790443823542821386</id><published>2010-12-17T04:34:00.000-08:00</published><updated>2010-12-17T04:36:54.912-08:00</updated><title type='text'>13. Ukazatele, aritmetické operace s ukazateli.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Ukazatele &lt;/span&gt;&lt;br /&gt;Ukazatel je v podstatě proměnná jako každá jiná. Liší se jen způsob, jak se s ní pracuje. Klasická proměnná představuje určitý kus paměti, ve které je uložena hodnota této proměnné. To platí i pro pointery, jenže v jejich případě je touto hodnotou adresa nějakého místa v paměti. Říkáme pak, že pointer na místo určené touto adresou ukazuje.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_BcZ9_qDaZ1M/TQtZWMkCVaI/AAAAAAAAAo4/Oy9zk1-js3s/s1600/1_pdb_m1e744487.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 306px; height: 173px;" src="http://4.bp.blogspot.com/_BcZ9_qDaZ1M/TQtZWMkCVaI/AAAAAAAAAo4/Oy9zk1-js3s/s400/1_pdb_m1e744487.png" alt="" id="BLOGGER_PHOTO_ID_5551629203528635810" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Bázový typ ukazatele &lt;/span&gt;&lt;br /&gt;Bázový typ ukazatele určuje, jak se bude interpretovat místo v paměti, kam tento pointer ukazuje. Například, je-li bázovým typem ukazatele typ int, znamená to, že obsah paměti, kam pointer ukazuje, se bude interpretovat jako datový objekt typu int. Bázový typ ukazatele určujeme při jeho definici, je ale možné určit ho až za běhu programu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definice proměnné typu ukazatel &lt;/span&gt;&lt;br /&gt;bázový_typ *identifikátor;&lt;br /&gt;&lt;br /&gt;Ukazatele definujeme podobně jako jiné proměnné. Rozdílem je, že před identifikátorem musíme uvést ještě znak ‘*‘, kterým dáme překladači vědět, že definujeme pointer. Není potřeba navzájem od sebe oddělovat definice obyčejné proměnné a pointeru, jejichž bázový typy je stejný.&lt;br /&gt;&lt;br /&gt;int  i, *p2;&lt;br /&gt;&lt;br /&gt;S pamětí, kam tyto pointery ukazují, lze pracovat, tedy číst a zapisovat do ní. V takovém případě můžeme lehce přepsat paměť používanou jinými programy nebo systémem samotným. To má většinou za následek zhroucení programu. Proto musíme ukazatel inicializovat nějakou smysluplnou hodnotou ještě před jeho prvním použitím.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Referenční operátor &amp;amp; &lt;/span&gt;&lt;br /&gt;Abychom mohli do ukazatelové proměnné přiřadit hodnotu (nějakou adresu), musíme ji nejprve někde získat. K tomu nám může posloužit referenční operátor '&amp;amp;'. Jeho zapsáním před identifikátor proměnné získáme adresu paměti, kde je tato proměnná uložena. Tuto adresu pak můžeme přiřadit nějaké ukazatelové proměnné.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;char *p, c;&lt;br /&gt;&lt;br /&gt;c = 12;&lt;br /&gt;p = &amp;c;&lt;br /&gt;// p nyní ukazuje na proměnnou c&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operátor dereference * &lt;/span&gt;&lt;br /&gt;Pomocí pointeru můžeme přistupovat k datovému objektu, na který ukazuje. K tomu nám poslouží operátor dereference '*'. Použitím tohoto operátoru na ukazatel získáme objekt, na který ukazatel odkazuje, přičemž typ takto získaného objektu bude shodný s bázovým typem dereferovaného ukazatele.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad: &lt;/span&gt;&lt;br /&gt;int i=10, *p;&lt;br /&gt;&lt;br /&gt;p = &amp;i;&lt;br /&gt;*p = 20; //zápis ekvivalentní i=20;&lt;br /&gt;printf("%d", i); //Vypíše se 20&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ukazatele NULL &lt;/span&gt;&lt;br /&gt;Jedním z případů, kdy ukazatele inicializujeme konstantní hodnotou je přiřazení symbolické konstanty NULL. Má-li pointer přiřazenu hodnotu NULL, znamená to, že nikam neukazuje.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Inicializace při definici &lt;/span&gt;&lt;br /&gt;Pointery lze, stejně jako jiné proměnné, inicializovat již při definici, ale namísto konstantní hodnoty se inicializují adresou některé dříve nadefinované proměnné, nebo hodnotou jiného pointeru. Případně konstantou NULL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ukazatel typu void (generický ukazatel) &lt;/span&gt;&lt;br /&gt;Pokud nadefinujeme ukazatel, jehož bázovým typem bude void (tzv. generický ukazatel), dáváme tím najevo, že bázový typ pointeru není předem určen. Do takového pointeru lze po přetypování přiřadit hodnotu ukazatele libovolného bázového typu.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Chceme-li dereferovat ukazatel typu void, musíme ho vždy nejdřív přetypovat! &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int  i;&lt;br /&gt;void *p;&lt;br /&gt;&lt;br /&gt;(int*)p=&amp;i;&lt;br /&gt;*(int*)p=36;&lt;br /&gt;printf ("%d", i);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aritmetické operace s ukazateli viz předchozí otázka č. 13&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-790443823542821386?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/790443823542821386/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/13-ukazatele-aritmeticke-operace-s.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/790443823542821386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/790443823542821386'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/13-ukazatele-aritmeticke-operace-s.html' title='13. Ukazatele, aritmetické operace s ukazateli.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BcZ9_qDaZ1M/TQtZWMkCVaI/AAAAAAAAAo4/Oy9zk1-js3s/s72-c/1_pdb_m1e744487.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5100022025033406152</id><published>2010-12-17T04:23:00.000-08:00</published><updated>2010-12-17T04:32:46.324-08:00</updated><title type='text'>12. Základní typy dat, celočíselné typy, znakové typy, racionální typy, prázdný typ.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Všechno viz otázka 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Prázdný typ void:&lt;/span&gt;&lt;br /&gt;Používá se u funkcí, pokud nepotřebujeme, aby funkce vracela nějakou hodnotu. Pokud funkci napíšeme bez návratového typu, překladač si za návratový typ implicitně(automaticky) doplní typ void.&lt;br /&gt;Další využití typu void je u ukazatelů(viz otázka č. 14 až na konci).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;12. Odvozené typy: ukazatele a pole.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ukazatele a pole:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pozn.:&lt;/span&gt; Myslím, že aritmetické operace patří spíš do této otázky.&lt;br /&gt;V jazyce C++ existuje úzká souvislost mezi datovým typem pole a typem ukazatel. Díky ní se můžeme na výraz typu pole dívat jako na ukazatel, a také s ním podle toho pracovat.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aritmetické operace s ukazateli: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Součet ukazatele a celého čísla&lt;/span&gt;&lt;br /&gt;Řekněme, že máme ukazatel bázového typu int ukazující někam do paměti. Pokud k tomuto ukazateli přičteme nějaké celé číslo n, vyhodnocením tohoto výrazu bude adresa paměti o n intových hodnot dál, než kam ukazoval původní pointer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad&lt;/span&gt;&lt;br /&gt;short int a[4]={15,134,29,104}; //Definování s inicializací pole&lt;br /&gt;short int *p;&lt;br /&gt;&lt;br /&gt;p=&amp;amp;a[0]; /*ukazatel p bude odkazovat na začátek pole. Zápis lze zkrátit na p = a, protože a je vlastně taky ukazatel.*/&lt;br /&gt;&lt;br /&gt;Následující tabulka ukazuje, kam se vlastně s pointrem p dostáváme, přičítáme-li k němu postupně čísla 1, 2 a 3.&lt;br /&gt;Bajt 0 Bajt 1 / Bajt 2 Bajt 3 / Bajt 4 Bajt 5 / Bajt 6 Bajt 7&lt;br /&gt;a[0]-----------a[1]-----------a[2]---------a[3]&lt;br /&gt;*p-------------*(p+1)--------*(p+2)------*(p+3)&lt;br /&gt;15--------------134------------29----------104&lt;br /&gt;&lt;br /&gt;Druhý řádek tabulky ukazuje klasický způsob, jak se dostat k jednotlivým prvkům pole – indexaci. Třetí řádek představuje ekvivalentní zápis pomocí dereferovaného ukazatele. Jak vidíte, přičtení čísla k pointeru neznamená jeho posunutí o jeden byte, ale o celou velikost jeho bázového typu. V případě námi použitého typu short int to jsou dva byty. Přičtu-li tedy k našemu pointeru p číslo jedna, výsledkem operace bude pointer ukazující v paměti o dva byty, neboli o jeden short int, dál. Prakticky tedy takto získaný pointer bude ukazovat na druhý prvek pole a. Dereferencí pak tento prvek získáme stejně, jako kdybychom použili indexaci a[1].&lt;br /&gt;Inkrementujeme-li ukazatel, jednoduše měníme místo, kam ukazuje, a to stejně, jako kdybychom k ukazateli přičetli číslo 1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Odečtení celého čísla od ukazatele &lt;/span&gt;&lt;br /&gt;Situace s odčítáním ukazatele a celého čísla je analogická operaci sčítání, jenom se posunujeme v paměti opačným směrem. Měli bychom si ale být jisti, že paměť, ke které takto přistoupíme, nám skutečně patří. To ale platí pro jakoukoliv práci s pointery a vlastně i s poli.&lt;br /&gt;Stejně jako můžeme na ukazatel aplikovat operátor inkrementace, můžeme použít i operátor dekrementace.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rozdíl dvou ukazatelů &lt;/span&gt;&lt;br /&gt;V jazyce C++ je definován i rozdíl dvou ukazatelů stejného bázového typu. Tato operace má smysl hlavně v případě, že oba pointery ukazují do stejného pole. Pak je výsledkem takové operace celočíselná hodnota, která představuje vzdálenost mezi prvky pole, na které pointery ukazují. Tato vzdálenost je měřena v počtu prvků pole.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Zaměnitelnost ukazatele a pole &lt;/span&gt;&lt;br /&gt;Aritmetické operace s ukazateli nalézají asi největší uplatnění při práci s poli. Na pole se totiž můžeme dívat jako na pointer ukazující na první prvek tohoto pole. Proto můžeme všechny operace, které jsme prováděli s pointery, dělat i s poli. Můžeme například dereferovat proměnnou typu pole, čímž získáme první prvek tohoto pole(viz předchozí příklad).&lt;br /&gt;Pole ale nelze považovat přímo za ukazatel. Bez problémů funguje přiřazení p=a, ale zápis a=p není možný. Stejný problém by nastal také při použití některého z operátorů inkrementace či dekrementace na proměnnou typu pole.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5100022025033406152?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5100022025033406152/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/12-zakladni-typy-dat-celociselne-typy.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5100022025033406152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5100022025033406152'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/12-zakladni-typy-dat-celociselne-typy.html' title='12. Základní typy dat, celočíselné typy, znakové typy, racionální typy, prázdný typ.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-468624885441448529</id><published>2010-12-17T04:21:00.000-08:00</published><updated>2010-12-17T04:22:33.168-08:00</updated><title type='text'>11. Volání funkce.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Volání funkce: &lt;/span&gt;&lt;br /&gt;identifikátor_funkce (seznam parametrů);&lt;br /&gt;&lt;br /&gt;Jednotlivé výrazy v seznamu parametrů jsou odděleny čárkou. Samotné parametry jsou pak výrazy, které jsou před předáním řízení funkci vyhodnoceny a jejich výsledné hodnoty jsou funkci předány. I když funkce nemá žádné skutečné parametry, závorky je nutné vždy uvést! Samotné volání funkce je chápáno jako výraz a to určuje i místo jeho použití.&lt;br /&gt;Např. operand některého operátoru(viz operátory tj. +,-,/,*,==,&amp;amp;&amp;amp;,||,atd.), ve výrazovém příkazu:&lt;br /&gt;&lt;br /&gt;if(secti(4,5) == 9){  //výrazový příkaz(aspoň doufám)&lt;br /&gt; vysledek = secti(3,2) + 5; //operand operátoru +&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Jako skutečný parametr jiné nebo stejné funkce:&lt;/span&gt;&lt;br /&gt;vysledek = secti(secti(5,8),3);&lt;br /&gt;&lt;br /&gt;Při volání funkce je provedeno několik kroků. Nejdříve je uložena adresa instrukce, na kterou se skočí po skončení provádění funkce. Pak se alokuje paměť pro formální parametry funkce(viz seznam definicí formálních parametrů z Definice funkce), do kterých se následně zkopírují hodnoty parametrů skutečných.&lt;br /&gt;&lt;br /&gt;Formální parametry jsou vlastně lokální proměnné, a tedy existují pouze po dobu vykonávání funkce a jsou viditelné pouze z těla funkce. Když vykonávání funkce skončí, je paměť vyhrazená pro tyto proměnné uvolněna a jako výsledek volání funkce se použije její návratová hodnota (většinou tedy hodnota výrazu za příkazem return). Uvedený způsob předávání parametrů se nazývá předávání hodnotou a znamená, že hodnoty skutečných parametrů jsou pouze zkopírovány do formálních parametrů. Ve funkci se pak pracuje pouze s těmito kopiemi. Předávání parametrů odkazem je realizováno pomocí ukazatelů.viz Předávání&lt;br /&gt;parametrů funkci!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-468624885441448529?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/468624885441448529/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/11-volani-funkce.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/468624885441448529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/468624885441448529'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/12/11-volani-funkce.html' title='11. Volání funkce.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8635962503102364455</id><published>2010-11-18T00:53:00.000-08:00</published><updated>2010-11-18T00:55:09.692-08:00</updated><title type='text'>10. Příkazy způsobující přenos řízení, příkaz break, příkaz continue, příkaz return, příkaz skoku, návěští.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;příkazy break a continue: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;break;&lt;/span&gt;&lt;br /&gt;Příkaz break může být použit v tělech cyklů (while, do-while, for) a v těle příkazu switch, přičemž jeho použití způsobí okamžité opuštění cyklu (nebo příkazu switch). Jde tedy vlastně o skok na první příkaz za cyklem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;continue;&lt;/span&gt;&lt;br /&gt;Příkaz continue, na rozdíl od break, může být použit pouze v tělech cyklů a způsobí okamžité započetí dalšího cyklu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;while (1)&lt;br /&gt; { c = getch();      &lt;br /&gt;      // do c se načte znak z klávesnice&lt;br /&gt;   if (c==27) break; &lt;br /&gt;      // pokud je stisknuta klávesa ESC, je cyklus ukončen&lt;br /&gt;   if (!isalpha(c)) continue;&lt;br /&gt;      // není-li znak písmeno, začne se provádět znovu tělo cyklu,&lt;br /&gt;      // takže už nedojde na...&lt;br /&gt;   putch (c); // ...vytištění znaku&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příkaz return(zkopírován z otázky č. 1):&lt;/span&gt;&lt;br /&gt;Provádění funkce je ukončeno po vykonání posledního příkazu těla funkce, ale v takovém případě není možné odhadnout, jakou hodnotu funkce vrátí(stejně jako u proměnné do které není po deklaraci nic zapsáno). Proto se používá příkaz return.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;return výraz;&lt;/span&gt;&lt;br /&gt;Tento příkaz způsobí okamžité opuštění funkce, ve které je použit. Hodnota nepovinného(pokud je funkce typu void, používá se return; bez parametrů) výrazu je pak návratovou hodnotou funkce. Pokud výraz neuvedeme, bude návratová hodnota předem neurčitelná.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;int secti (int a, int b)&lt;br /&gt;{ return a+b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;V příkladu je nadefinována funkce, která vrací součet dvou čísel. Typ její návratové hodnoty je určen jako int, stejně jako typy obou parametrů funkce. Po předání řízení funkci se hned začne vykonávat příkaz return, který funkci ihned ukončí a jako výsledek po jejím volání vrátí součet hodnot předaných parametrů.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příkaz skoku, návěští(zkopírováno z otázky č. 8):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;příkaz skoku goto &lt;/span&gt;&lt;br /&gt;Použití goto se lze vždy vyhnout, a proto se používá pouze v ojedinělých případech, kdy by se program bez jeho použití značně znepřehlednil.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;goto návěští;&lt;/span&gt;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;návěští: příkaz;&lt;/span&gt;&lt;br /&gt;Provedením příkazu &lt;span style="font-weight: bold;"&gt;goto&lt;/span&gt; se vykonávání programu přesune na příkaz, před kterým je uveden odpovídající identifikátor návěští následovaný dvojtečkou. Návěští nemusí být předem deklarováno, a protože pro návěští je vyhrazen vlastní jmenný prostor, mohou být jejich identifikátory shodné s identifikátory obyčejných proměnných.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8635962503102364455?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8635962503102364455/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/10-prikazy-zpusobujici-prenos-rizeni.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8635962503102364455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8635962503102364455'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/10-prikazy-zpusobujici-prenos-rizeni.html' title='10. Příkazy způsobující přenos řízení, příkaz break, příkaz continue, příkaz return, příkaz skoku, návěští.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7070060499443045542</id><published>2010-11-18T00:51:00.000-08:00</published><updated>2010-11-18T00:53:11.705-08:00</updated><title type='text'>9. Příkazy cyklu (smyčky), příkaz while, příkaz do, příkaz for.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;cyklus while: &lt;/span&gt;&lt;br /&gt;Příkaz while realizuje v C++ cykly s podmínkou na začátku.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;while (výraz) příkaz;&lt;/span&gt;&lt;br /&gt;While funguje tak, že se nejprve vyhodnotí výraz a pak, je-li vyhodnocen jako nenulový(true), provede se příkaz. Po jeho provedení se znovu vyhodnotí výraz a případně se znovu provede příkaz. Cyklus končí v okamžiku, kdy je podmínka vyhodnocena jako 0 (false). Příkaz se pak již neprovede a program pokračuje dalším příkazem po while.&lt;br /&gt;&lt;br /&gt;int a=0;&lt;br /&gt;while (a&lt;10) a++;  //desetkrát se provede inkrementace a.&lt;br /&gt;cyklus do – while:&lt;br /&gt;do příkaz1; while (výraz);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Podobný cyklu while je příkaz do&lt;/span&gt; – while, který ale vyhodnocuje pokračovací podmínku výraz až po provedení těla cyklu. To znamená, že minimálně jednou se tělo cyklu provede vždy.&lt;br /&gt;Nejprve se provede příkaz a teprve po jeho provedení je vyhodnocen výraz podmínky. Pokud je nenulový(true), znovu se vykoná příkaz. To pokračuje až do doby, kdy je podmínka vyhodnocena jako nulová(false).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;a=0;&lt;br /&gt;do&lt;br /&gt;{ printf(“ahoj\n”);&lt;br /&gt;}while (a++ != 10);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cyklus for: &lt;/span&gt;&lt;br /&gt;for (inicializační_výraz; terminální_výraz; iterační_výraz) příkaz;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;příkaz for je prováděn v těchto krocích: &lt;/span&gt;&lt;br /&gt;1. Je vyhodnocen inicializační_výraz. Ten je primárně určen pro inicializování iterační proměnné.&lt;br /&gt;&lt;br /&gt;2. Je vyhodnocen terminální_výraz. Pokud je vyhodnocen jako 0, je vykonávání cyklu for ukončeno a pokračuje se prvním příkazem uvedeným po cyklu. Pokud je ale vyhodnocen jako nenulový, pokračuje se krokem 3.&lt;br /&gt;&lt;br /&gt;3. Je proveden příkaz.&lt;br /&gt;&lt;br /&gt;4. Vyhodnotí se iterační_výraz. Ten obvykle slouží ke změně(inkrementaci, dekrementaci, přičtení hodnoty, atd.) iterační proměnné.&lt;br /&gt;&lt;br /&gt;5. Pokračuje se znovu od bodu 2.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad: &lt;/span&gt;&lt;br /&gt;int i;&lt;br /&gt;for(i=0; i&lt;5; i++) printf("%d",i);&lt;br /&gt;// 5-krát se provede příkaz printf, který tiskne hodnotu proměnné i.&lt;br /&gt;&lt;br /&gt;Jako inicializační a iterační výrazy mohou být použity výrazy jakéhokoliv typu. Terminální výraz by však měl být číselný. Je také možné vynechat libovolný z těchto výrazů. Vynecháním terminálního výrazu docílíme nekonečného cyklu, protože chybějící terminální výraz bude nahrazen nějakou nenulovou konstantou a ta nemůže být nikdy vyhodnocena jako 0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7070060499443045542?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7070060499443045542/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/9-prikazy-cyklu-smycky-prikaz-while.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7070060499443045542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7070060499443045542'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/9-prikazy-cyklu-smycky-prikaz-while.html' title='9. Příkazy cyklu (smyčky), příkaz while, příkaz do, příkaz for.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5950374838639429837</id><published>2010-11-18T00:37:00.000-08:00</published><updated>2010-11-18T00:39:40.251-08:00</updated><title type='text'>8. Příkazy, prázdný příkaz, výrazový příkaz, blok (složený příkaz), příkazy umožňující větvení algoritmu.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Příkazy, prázdný příkaz, výrazový příkaz:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Výraz:&lt;/span&gt; a * b + 5&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Přiřazení:&lt;/span&gt; c = a* b + 5&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příkaz:&lt;/span&gt; c = a * b + 5;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Blok:&lt;/span&gt;&lt;br /&gt;Syntaxe bloku je velice jednoduchá. Blok začíná otevírací složenou závorkou a končí zavírací složenou závorkou. Mezi těmito závorkami mohou být libovolné jiné příkazy včetně dalších bloků. Kromě toho mohou být ještě na začátku bloku, tedy před prvním příkazem, lokální deklarace a definice. Proměnné (a další objekty) takto definované jsou pak viditelné pouze uvnitř bloku a v dalších vnořených blocích.&lt;br /&gt;&lt;br /&gt;Blok je v C++ chápán jako jediný příkaz a proto se také dá použít všude tam, kde je možné použít příkaz. Blok se také často označuje pojmem &lt;span style="font-weight: bold;"&gt;složený příkaz&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;{ int i;&lt;br /&gt; DelejNeco(i);&lt;br /&gt;   { DelejJesteNeco(i);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příkazy umožňující větvení algoritmu:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pozn.:&lt;/span&gt; K větvení algoritmu se dají použít kromě if, switch a goto klidně i cykly, ale myslím, že to není jejich hlavní účel, takže je do této otázky nezahrnuji a navíc jsou hned v další otázce. Příkaz if je pouze zkopírován z otázky č. 3.&lt;br /&gt;K větvení algoritmu slouží hlavně příkazy if, switch a goto.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;příkaz if: &lt;/span&gt;&lt;br /&gt;if (výraz) příkaz;&lt;br /&gt;if (výraz) {&lt;br /&gt;blok příkazů;&lt;br /&gt;}else{&lt;br /&gt;další blok příkazů;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Příkaz if slouží k větvení programu. Nejdřív se vyhodnotí výraz. Pokud je hodnota, vzniklá jeho vyhodnocením, nenulová nebo true, provede se to co následuje za kulatou závorkou. Tzn. Buď jeden příkaz a nebo blok příkazů. V opačném případě, kdy je výraz vyhodnocen jako nula nebo false, se příkaz neprovede. Pokud následuje za příkazem else provede se následující příkaz(blok příkazů).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;příkaz skoku goto &lt;/span&gt;&lt;br /&gt;Použití goto se lze vždy vyhnout, a proto se používá pouze v ojedinělých případech, kdy by se program bez jeho použití značně znepřehlednil.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;goto návěští&lt;/span&gt;;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;návěští: příkaz&lt;/span&gt;;&lt;br /&gt;Provedením příkazu &lt;span style="font-weight: bold;"&gt;goto&lt;/span&gt; se vykonávání programu přesune na příkaz, před kterým je uveden odpovídající identifikátor návěští následovaný dvojtečkou. Návěští nemusí být předem deklarováno, a protože pro návěští je vyhrazen vlastní jmenný prostor, mohou být jejich identifikátory shodné s identifikátory obyčejných proměnných.&lt;br /&gt;příkaz mnohonásobného větvení – switch&lt;br /&gt;Pokud potřebujeme tok programu větvit do více jak dvou směrů, můžeme místo několika do sebe vnořených příkazů if využít možností, které nám v C poskytuje příkaz switch.&lt;br /&gt;switch (výraz)&lt;br /&gt;{&lt;br /&gt; case konstantní_výraz: příkazy&lt;br /&gt; case konstantní_výraz: příkazy&lt;br /&gt; .&lt;br /&gt; .&lt;br /&gt; .&lt;br /&gt; default: příkazy&lt;br /&gt;}&lt;br /&gt;při provádění příkazu switch je nejdříve vyhodnocen výraz a pak se postupně vyhodnocují konstantní_výrazy v návěštích case. V případě, že je nalezeno návěští, kde je konstantní_výraz roven hodnotě výrazu, začnou se provádět všechny příkazy uvedené za tímto návěštím až do konce příkazu switch. To ale znamená, že se provedou i všechny příkazy v následujících větvích. Pokud tedy chceme, aby se provedla vždy jen jedna větev, lze vykonávání příkazu switch okamžitě zastavit uvedením příkazu break. Aby tedy byl příkaz switch funkčně stejný jako obdobný Pascalský příkaz case, je nutné jako poslední příkaz v každé větvi uvést příkaz break.&lt;br /&gt;Pokud není nalezena žádná vyhovující větev, skočí se na návěští default (pokud je použito).&lt;br /&gt;int c;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;switch (c)&lt;br /&gt; {&lt;br /&gt;   case 1:&lt;br /&gt;   case 2:&lt;br /&gt;   case 3: printf ("Cislo 1, 2, nebo 3"); break;&lt;br /&gt;   case 4: printf ("Cislo 4"); break;&lt;br /&gt;   default: printf ("Jine cislo, nez 1,2,3 nebo 4"); break;&lt;br /&gt; }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5950374838639429837?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5950374838639429837/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/8-prikazy-prazdny-prikaz-vyrazovy.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5950374838639429837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5950374838639429837'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/8-prikazy-prazdny-prikaz-vyrazovy.html' title='8. Příkazy, prázdný příkaz, výrazový příkaz, blok (složený příkaz), příkazy umožňující větvení algoritmu.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1662252410000548597</id><published>2010-11-18T00:35:00.000-08:00</published><updated>2010-11-18T00:37:25.374-08:00</updated><title type='text'>7. Konstanty (celočíselné, racionální, znakové, řetězcové), klíčová slova, operátory.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Celočíselné konstanty:&lt;/span&gt;&lt;br /&gt;Prvním jsou konstanty dekadické, které jsou tvořeny libovolným řetězcem číslic, který nezačíná nulou a který ještě může předcházet znaménko ‘+’, nebo ‘-‘.&lt;br /&gt;12&lt;br /&gt;-548&lt;br /&gt;Naopak konstanty, které nulou začínají jsou interpretovány jako octalová čísla, tedy čísla zapsaná v osmičkové soustavě =&gt; Použitelné znaky náleží intervalu 0-7.&lt;br /&gt;14 (octalový zápis dekadického čísla 12)&lt;br /&gt;&lt;br /&gt;Konstanty můžeme zapsat ještě v hexadecimálním tvaru tak, že před samotné hexadecimální číslo připojíme prefix 0x, nebo 0X.&lt;br /&gt;0x15 (21 dekadicky)&lt;br /&gt;0X3e&lt;br /&gt;0xEF&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pozn.:&lt;/span&gt; V jazyku C existují ještě tzv. Sufixy, které slouží k explicitnímu určení konstanty(určují, jestli je konstanta unsigned, long double, atd.), ale nevím jak je to v C++.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reálné konstanty:&lt;/span&gt;&lt;br /&gt;Pro reálné konstanty existují dva způsoby zápisu. Prvním z nich je zápis ve tvaru s desetinnou tečkou.&lt;br /&gt;1 (typ int!)&lt;br /&gt;1.0 (typ double)&lt;br /&gt;.23&lt;br /&gt;-.378&lt;br /&gt;-125.5484&lt;br /&gt;&lt;br /&gt;Druhou možností je použití semilogaritmického tvaru.&lt;br /&gt;15e-6&lt;br /&gt;485E5&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Znakové konstanty:&lt;/span&gt;&lt;br /&gt;Ty jsou uzavřeny mezi apostrofy např.: ‘a‘&lt;br /&gt;Velikost znaku je odvozena z ASCII tabulky.&lt;br /&gt;Kód ASCII lze zadat i přímo: ‘\097‘ (stejná konstanta jako výše)&lt;br /&gt;a nebo v hexa ‘\x61‘&lt;br /&gt;znaku ‘\‘ se říká escape sekvence&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Řetězcové konstanty:&lt;/span&gt;&lt;br /&gt;Jsou odděleny uvozovkami: “Toto je řetězcová konstanta.“&lt;br /&gt;Zápis lze přerušit mezerou nebo tabulátorem: “Toto“ “je řetězcová“  “konstanta.“&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Klíčová slova&lt;/span&gt; nesmí být použita jako identifikátor proměnné nebo funkce.&lt;br /&gt;Jsou to např. if, for, int, double, atd.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operátory viz otázka č. 3&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1662252410000548597?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1662252410000548597/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/7-konstanty-celociselne-racionalni.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1662252410000548597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1662252410000548597'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/7-konstanty-celociselne-racionalni.html' title='7. Konstanty (celočíselné, racionální, znakové, řetězcové), klíčová slova, operátory.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8884163398532698302</id><published>2010-11-18T00:34:00.000-08:00</published><updated>2010-11-18T00:35:32.277-08:00</updated><title type='text'>6. Direktivy preprocesoru, předdefinované konstanty, makroinstrukce, vložení jednoho souboru do jiného.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Preprocesor jazyka C&lt;/span&gt;&lt;br /&gt;Preprocesor ještě před samotným překladem zdrojový soubor upraví a teprve upravený soubor je předán překladači. Mezi úpravy, které preprocesor provádí se řadí především substituce textu, odstraňování komentářů a podmíněný překlad.&lt;br /&gt;&lt;br /&gt;Činnost preprocesoru řídíme pomocí tzv. direktiv preprocesoru. Každá direktiva je uvozena znakem ‚#’, který musí být uveden hned jako první znak na řádku. Tak určíme, že zbytek řádku je určen preprocesoru a zápisy v něm se tedy řídí jeho syntaktickými pravidly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Direktiva&lt;/span&gt; #include&lt;br /&gt;#include &lt;soubor&gt;&lt;br /&gt;nebo&lt;br /&gt;#include "soubor"&lt;br /&gt;&lt;br /&gt;Pokud preprocesor narazí na výskyt direktivy #include, nahradí ji obsahem určeného souboru. To se nejčastěji používá pro vkládání tzv. hlavičkových souborů s deklaracemi funkcí apod., nebo přímo jiných zdrojových souborů C++. Pokud použijeme zápis se závorkami(&lt;&gt;) a nespecifikujeme úplnou cestu k souboru, bude soubor hledán ve standardním adresáři pro ukládání hlavičkových souborů. Použijeme-li zápis s uvozovkami, bude soubor hledán nejdříve v adresáři se zdrojovým souborem a pak teprve v adresáři s hlavičkovými soubory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Direktiva&lt;/span&gt; #define&lt;br /&gt;#define identifikátor_makra text_makra&lt;br /&gt;Tato direktiva se používá pro vytváření tzv. maker. Použitím této direktivy říkáme preprocesoru, aby každý následující výskyt identifikátoru makra ve zdrojovém souboru nahradil textem makra. Text makra začíná přesně po první mezeře po identifikátoru makra. Pokud tedy oddělíme identifikátor a text makra více mezerami, bude pouze první považována za oddělovač a ostatní znaky budou patřit textu makra.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;#define PI 3.141592653&lt;br /&gt;#define PI2 (2*PI)&lt;br /&gt;#define MAX 2+PI&lt;br /&gt;V textu makra se mohou vyskytovat jiné již dříve nadefinované identifikátory maker. &lt;/soubor&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8884163398532698302?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8884163398532698302/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/6-direktivy-preprocesoru-preddefinovane.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8884163398532698302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8884163398532698302'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/11/6-direktivy-preprocesoru-preddefinovane.html' title='6. Direktivy preprocesoru, předdefinované konstanty, makroinstrukce, vložení jednoho souboru do jiného.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4263176486557130966</id><published>2010-10-06T01:03:00.000-07:00</published><updated>2010-10-06T01:05:20.600-07:00</updated><title type='text'>5. Oblast platnosti identifikátoru, proměnné lokální, globální, funkce a její prototyp.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;5. Oblast platnosti identifikátoru, proměnné lokální, globální, funkce a její prototyp.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Identifikátor&lt;/span&gt; = např. jméno proměnné nebo funkce.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lokální proměnné:&lt;/span&gt;&lt;br /&gt;Lokální definice definují proměnné, jejichž rozsah platnosti je od místa definice do konce funkce, ve které jsou definovány. Tyto definice se vyskytují uvnitř definicí funkcí.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pozn.:&lt;/span&gt; Daly by se ještě přidat modifikátory paměťové třídy(auto, static, register, const), ale to se týká jiné otázky.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Globální proměnné:&lt;/span&gt;&lt;br /&gt;Globální proměnné definují proměnné, jejichž rozsah platnsti je od místa definice do konce souboru. Tyto definice se vyskytují vně definic(mimo definice) funkcí. Exituje-li globální proměnná se stejným identifikátorem, jako lokální proměnná nějaké funkce je touto lokální proměnnou zastíněna.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sdílení proměnných &lt;/span&gt;&lt;br /&gt;Mezi moduly lze sdílet pouze globální datové objekty, neboť ty existují po celou dobu vykonávání programu. Nepřímo pak, voláním sdílené funkce, lze sdílet i statické lokální proměnné. Lokální automatické proměnné sdílet nelze, již kvůli omezené délce jejich trvání (po dobu vykonávání funkce v níž jsou definovány).&lt;br /&gt;&lt;br /&gt;Sdílená proměnná musí být definována právě v jednom modulu. V ostatních modulech, ve kterých chceme k této proměnné přistupovat musí být tato proměnná již pouze deklarována (tedy již nedochází k dalšímu přidělení paměti, pouze je překladači oznámena její existence v jiném modulu).&lt;br /&gt;&lt;br /&gt;Deklarace sdílené proměnné vypadá stejně jako její definice, jen s tím rozdílem, že před ní ještě uvedeme klíčové slovo extern. V deklaraci proměnné nikdy nesmíme použít její inicializaci. Překladač by pak deklaraci považoval za definici nehledě na klíčové slovo extern.&lt;br /&gt;Následující příklad snad celou záležitost trochu objasní. Mějme dva soubory a.cpp a b.cpp, které budeme překládat odděleně, a ve kterých budeme chtít sdílet proměnné x, y a z.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//v souboru a.cpp:&lt;/span&gt;&lt;br /&gt;int x;&lt;br /&gt;int y;&lt;br /&gt;extern int z;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//v souboru b.cpp:&lt;/span&gt;&lt;br /&gt;extern int x;&lt;br /&gt;int y;&lt;br /&gt;extern int z;&lt;br /&gt;Pouze proměnná x je sdílena správně. Proměnná y je definována v obou překládaných souborech a při spojení obou modulů linkerem by tedy došlo ke kolizi. Naopak proměnná z je v obou souborech pouze deklarována, ve skutečnosti tedy fyzicky neexistuje a nedá se tedy použít.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nesdílené proměnné &lt;/span&gt;&lt;br /&gt;Pokud chceme, aby globální proměnná byla viditelná pouze v rámci svého modulu, uvedeme před její definici klíčové slovo static (Pozor, static se používá i pro automatické lokální proměnné, ale v obou případech je význam jeho použití jiný.). Protože je taková proměnná viditelná pouze v modulu, kde je definována, v ostatních modulech mohou existovat jiné proměnné se stejným identifikátorem.&lt;br /&gt;&lt;br /&gt;Úpravou předchozího příkladu získáme dvě proměnné s identifikátorem y, které jsou ovšem ,narozdíl od proměnné x, nezávislé (změna hodnoty y v jednom modulu neovlivní hodnotu y ve druhém) a navzájem si nepřekážejí.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//v souboru a.c:&lt;/span&gt;&lt;br /&gt;int x;&lt;br /&gt;static int y;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//v souboru b.c:&lt;/span&gt;&lt;br /&gt;extern int x;&lt;br /&gt;static int y;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Funkce viz otázka č.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Prototyp funkce(deklarace funkce):&lt;/span&gt;&lt;br /&gt;Deklarace funkce je vlastně způsob jak dát překladači všechny potřebné údaje o funkci, aniž bychom ji museli celou definovat(viz Definice funkce výše). Předtím, než funkci zavoláme, měla by být vždy předem definována, nebo deklarována. To proto, aby překladač znal všechny formální parametry, a tak mohl vytvořit správný kód.&lt;br /&gt;&lt;br /&gt;Pokud funkci nebudeme ještě před jejím voláním deklarovat ani definovat, bude překladač odhadovat formální parametry podle typu skutečných parametrů (parametry předané funkci při jejím volání), které ale nemusí odpovídat typu parametrů formálních. Výsledkem by pak byl nesprávně sestavený kód. Pokud ale z nějakého důvodu není funkce definována před svým použitím, měla by být alespoň deklarována.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deklarace funkce vypadá takhle: &lt;/span&gt;&lt;br /&gt;návratový_typ identifikátor_funkce (seznam definicí formálních parametrů);&lt;br /&gt;Je to vlastně celá hlavička definice, která je ale zakončená středníkem.&lt;br /&gt;int secti (int a, int b); /*prototyp funkce - deklarace výše definované funkce.*/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4263176486557130966?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4263176486557130966/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/5-oblast-platnosti-identifikatoru.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4263176486557130966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4263176486557130966'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/5-oblast-platnosti-identifikatoru.html' title='5. Oblast platnosti identifikátoru, proměnné lokální, globální, funkce a její prototyp.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2350103700267634355</id><published>2010-10-06T01:00:00.000-07:00</published><updated>2010-10-06T01:02:02.149-07:00</updated><title type='text'>4. Parametry funkce, funkce vracející hodnotu.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;4. Parametry funkce, funkce vracející hodnotu.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Parametry funkce viz otázka č. 1 – Definice funkce&lt;br /&gt;Funkce vracející hodnotu viz otázka č. 1 – Definice funkce a volání funkce&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Předávání parametrů funkci:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Předávání hodnotou:&lt;/span&gt;&lt;br /&gt;Parametry se pouze zkopírují a s originály nelze ve funkci pracovat.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nefunkční příklad:&lt;/span&gt;&lt;br /&gt;void swap(int a, int b) //Funkce swap má prohodit číslo a s číslem b&lt;br /&gt;{&lt;br /&gt; int c = a;&lt;br /&gt; a = b;&lt;br /&gt; b = c; /*Tady se funkce ukončí, ale hodnoty se prohodí JEN ve funkci, ne ve zbytku programu*/&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;// Volání v programu: &lt;/span&gt;&lt;br /&gt;int a = 2, b = 9;&lt;br /&gt;swap(a,b); &lt;br /&gt;//Po provedení funkce se proměnná a == 2 a proměnná b == 9&lt;br /&gt;K prohození nedošlo. K tomuto účelu nelze použít předání hodnotou. Aby bylo možno z funkce vrátit více hodnot je potřeba použít předání odkazem a nebo referencí.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Možné použití předání parametrů hodnotou:&lt;/span&gt;&lt;br /&gt;int vypocti(int a, int b)&lt;br /&gt;{&lt;br /&gt;return a*b;&lt;br /&gt;}&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;// Volání v programu:&lt;/span&gt;&lt;br /&gt;int a = 5, vysledek;&lt;br /&gt;vysledek = vypocti(a,6); /*Na rozdíl od předávání odkazem lze použít kromě proměnné i přímou hodnotu*/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Předávání odkazem(viz ukazatele):&lt;/span&gt;&lt;br /&gt;Používá se nejčastěji.&lt;br /&gt;void swap(int *a, int *b) //Formální parametry se definují jako ukazatele&lt;br /&gt;{&lt;br /&gt; int c = *a;&lt;br /&gt; *a = *b;&lt;br /&gt; *b = c; //Ve funkci dojde k prohození proměnných&lt;br /&gt;}&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;// Volání v programu:&lt;/span&gt;&lt;br /&gt;int a = 2, b = 9;&lt;br /&gt;swap(&amp;amp;a, &amp;amp;b); /*Funkci se předávají adresy proměnných a, b. Po ukončení funkce skutečně došlo k prohození hodnot těchto dvou proměnných.*/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Předávání referencí:&lt;/span&gt;&lt;br /&gt;V některých případech značně zjednodušuje a zpřehledňuje kód programu např. již výše uvedená funkce swap:&lt;br /&gt;void swap(int &amp;amp;a, int &amp;amp;b)&lt;br /&gt;{&lt;br /&gt; int c = a;&lt;br /&gt; a = b;&lt;br /&gt; b = c;&lt;br /&gt;}&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;// Volání v programu:&lt;/span&gt;&lt;br /&gt;int a = 2, b = 9;&lt;br /&gt;swap(a, b);&lt;br /&gt;Předávání referencí je hodně podobné předávání odkazem s tím rozdílem, že v případě reference nelze v průběhu funkce změnit proměnnou na kterou ukazují. Výhodou je možnost pracovat s referencí stejně jako s normální proměnnou.&lt;br /&gt;Při použití u pointerů:&lt;br /&gt;void swap(int *&amp;amp;ukazatel_a, int *&amp;amp;ukazatel_b)&lt;br /&gt;{&lt;br /&gt;int c = *a;&lt;br /&gt;*a = *b;&lt;br /&gt;*b = c;&lt;br /&gt;}&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;//Volání programu:&lt;/span&gt;&lt;br /&gt;int *a,*b,c1 = 2,c2 = 9;&lt;br /&gt;a = &amp;c1;&lt;br /&gt;b = &amp;c2;&lt;br /&gt;swap(*a,*b);&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pozn.:&lt;/span&gt; Reference lze použít i jako proměnou v programu(ne pouze k předávání parametrů funkcím).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;int a;    // Proměnná typu int&lt;br /&gt;int &amp;amp;b = a;    /* Reference na proměnnou a, b je nyní jiný název pro číslo, které reprezentuje proměnná a, b je přezdívka proměnné a. */&lt;br /&gt;a++;     /* Nyní se  změnila hodnota a, i hodnota b. Změnila se vlastně jen jedna hodnota, proměnná a i b reprezentují tutéž proměnnou. */&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2350103700267634355?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2350103700267634355/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/4-parametry-funkce-funkce-vracejici.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2350103700267634355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2350103700267634355'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/4-parametry-funkce-funkce-vracejici.html' title='4. Parametry funkce, funkce vracející hodnotu.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-182212618086953414</id><published>2010-10-06T00:57:00.000-07:00</published><updated>2010-10-06T00:59:35.477-07:00</updated><title type='text'>3. Výrazy, operátory, příkazy if, while.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;3. Výrazy, operátory, příkazy if, while.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Výrazy:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pozn.:&lt;/span&gt; Podle mě je výraz úplně všechno, kde se používají operátory, ale nenašel jsem žádnou definici, která by to potvrzovala.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operátory:&lt;/span&gt;&lt;br /&gt;aritmetické operátory&lt;br /&gt;+, -, * &lt;br /&gt;/ Celočíselné, nebo reálné, dělení. To, jestli bude provedeno dělení celočíselné, nebo reálné, záleží na typu operandů. Pokud oba operandy budou celočíselného typu, provede se celočíselné dělení. Pokud ovšem alespoň jeden z operandů bude reálného typu, provede se dělení reálné. V případě, že potřebujeme provést reálné dělení na operandech celočíselných typů, musíme jeden z nich přetypovat pomocí operátoru přetypování (viz. dále) na reálný typ.&lt;br /&gt;% Dělení modulo, neboli zbytek po celočíselném dělení.&lt;br /&gt;= Přiřazení.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;relační operátory &lt;/span&gt;&lt;br /&gt;&lt;, &lt;=, &gt;, &gt;= menší než, menší nebo rovno, atd...&lt;br /&gt;!= Nerovnost&lt;br /&gt;== Rovnost&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;logické operátory &lt;/span&gt;&lt;br /&gt;&amp;amp;&amp;amp; logický součin (AND)&lt;br /&gt;|| logický součet (OR)&lt;br /&gt;^ logický XOR&lt;br /&gt;! Negace&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;operátory inkrementace a dekrementace &lt;/span&gt;&lt;br /&gt;++ Inkrementace. Zvýší hodnotu operandu o 1.&lt;br /&gt;-- Dekrementace. Sníží hodnotu operandu o 1.&lt;br /&gt;&lt;br /&gt;Oba operátory se dají použít jak před svým operandem, tak za ním. Význam je ale pokaždé jiný. Pokud operátor uvedeme před operandem, jedná se o tzv. preinkrementaci. To znamená, že hodnota operandu se nejprve zvýší a tato zvýšená hodnota je vrácena jako výsledek operace. Naopak při postinkrementaci je jako hodnota celého výrazu vrácena původní hodnota operandu a pak je teprve operand samotný zvýšen o 1.&lt;br /&gt;int a,b=1;&lt;br /&gt;a = b++;&lt;br /&gt;/*Postinkrementace. Výraz b++ je nejdříve vyhodnocen (a jeho hodnota přiřazena proměnné a) a pak je teprve inkrementována proměnná b. Proměnná a teď tedy má hodnotu 1 a b je rovno 2.*/&lt;br /&gt;&lt;br /&gt;a = ++b;&lt;br /&gt;/*Preinkrementace. Nejdříve je inkrementováno b na hodnotu 3. Tato hodnota je i výsledkem vyhodnocení výrazu ++b a tedy je přiřazena proměnné a. Hodnota a je 3.*/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;operátor přetypování &lt;/span&gt;&lt;br /&gt;I když se při neshodách typů provádí implicitní přetypování, někdy potřebujeme explicitně přetypovat jeden typ na jiný. To provedeme pomocí operátoru přetypování. Zápis vypadá tak, že před samotný výraz, který chceme přetypovat, uvedeme v kulatých závorkách jméno nového typu.&lt;br /&gt;int a=5, b=3;&lt;br /&gt;double c;&lt;br /&gt;c = a / (double)b;  /*Pokud bychom nepoužili přetypování, provedlo by se celočíselné dělení. Pro vynucení dělení reálného musíme hodnotu výrazu b přetypovat na double. */&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;přiřazovací operátory &lt;/span&gt;&lt;br /&gt;Tyto operátory jsou vždy tvořeny znakem prováděné operace a znakem '='. Pro výše zmíněné operace to jsou operátory +=, -=, *=, /=, %=.&lt;br /&gt;Příklad:&lt;br /&gt;a += 10; //Je stejné jako a = a + 10;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;příkaz if: &lt;/span&gt;&lt;br /&gt;if (výraz) příkaz;&lt;br /&gt;if (výraz) {&lt;br /&gt;blok příkazů;&lt;br /&gt;}else{&lt;br /&gt;další blok příkazů;&lt;br /&gt;}&lt;br /&gt;Příkaz if slouží k větvení programu. Nejdřív se vyhodnotí výraz. Pokud je hodnota, vzniklá jeho vyhodnocením, nenulová nebo true, provede se to co následuje za kulatou závorkou. Tzn. Buď jeden příkaz a nebo blok příkazů. V opačném případě, kdy je výraz vyhodnocen jako nula nebo false, se příkaz neprovede. Pokud následuje za příkazem else provede se následující příkaz(blok příkazů).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cyklus while: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Příkaz while realizuje v C++ cykly s podmínkou na začátku.&lt;br /&gt;while (výraz) příkaz;&lt;br /&gt;While funguje tak, že se nejprve vyhodnotí výraz a pak, je-li vyhodnocen jako nenulový(true), provede se příkaz. Po jeho provedení se znovu vyhodnotí výraz a případně se znovu provede příkaz. Cyklus končí v okamžiku, kdy je podmínka vyhodnocena jako 0 (false). Příkaz se pak již neprovede a program pokračuje dalším příkazem po while.&lt;br /&gt;int a=0;&lt;br /&gt;while (a&lt;10) a++;  //desetkrát se provede inkrementace a.&lt;br /&gt;&lt;br /&gt;cyklus do-while viz otázka 9.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-182212618086953414?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/182212618086953414/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/3-vyrazy-operatory-prikazy-if-while.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/182212618086953414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/182212618086953414'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/3-vyrazy-operatory-prikazy-if-while.html' title='3. Výrazy, operátory, příkazy if, while.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-3600578413639726894</id><published>2010-10-06T00:53:00.000-07:00</published><updated>2010-10-06T00:56:58.078-07:00</updated><title type='text'>2. Nejčastější typy dat, proměnné, inicializace proměnných.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;2. Nejčastější typy dat, proměnné, inicializace proměnných.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Číselné datové typy:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Celočíselné typy:&lt;/span&gt;&lt;br /&gt;Char je znakový typ, ale lze s ním pracovat jako s číselným.&lt;br /&gt;Existuje i long int, ale ten má stejné vlastnosti jako int.&lt;br /&gt;&lt;br /&gt;typ dolní mez horní mez Velikost (v bajtech)&lt;br /&gt;char  0  255 1&lt;br /&gt;signed char  -128  127 1&lt;br /&gt;short int  -32 768  32 767  2&lt;br /&gt;unsigned short int  0  65 535 2&lt;br /&gt;int  -2 31  2 31 - 1 4&lt;br /&gt;unsigned int  0  2 32 4&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reálný typ:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;typ maximum přesnost (počet desetinných míst) velikost&lt;br /&gt;float 3.40282 . 1038 6 4&lt;br /&gt;double 1.79769313486232 . 10308 15 8&lt;br /&gt;long double 1.79769313486232 . 10308 15 8&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Datový typ bool:&lt;/span&gt;&lt;br /&gt;Typ bool může nabývat dvou hodnot true (logická 1), false (logická 0). Nad datovým typem bool jsou definovány logické operace &amp;amp;&amp;amp; (logický and), || (logický or), ! (negace), ^ (logický xor). Tedy všechny logické operace, které lze použít v podmínkách.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Proměnné a jejich inicializace:&lt;/span&gt;&lt;br /&gt;V definici proměnné se píše nejdříve typ proměnné(viz číselné datové typy), který je následován indentifikátorem. Celá definice je pak zakončena znakem “;”.&lt;br /&gt;int a;&lt;br /&gt;&lt;br /&gt;Dále je možné definovat více proměnných najednou a to tak, že jednotlivé identifikátory oddělíme čárkou a středník zapíšeme až za poslední identifikátor.&lt;br /&gt;double p, q, r;&lt;br /&gt;&lt;br /&gt;Definici proměnné lze hned také spojit s její inicializací(= naplnění proměnné nějakou konkrétní hodnotou nebo výrazem, který je vyhodnotitelný v době vzniku proměnné).&lt;br /&gt;short int a = 1;&lt;br /&gt;long b = 2*10+1, c;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-3600578413639726894?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/3600578413639726894/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/1-nejcastejsi-typy-dat-promenne.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3600578413639726894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3600578413639726894'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/1-nejcastejsi-typy-dat-promenne.html' title='2. Nejčastější typy dat, proměnné, inicializace proměnných.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4179860832630152611</id><published>2010-10-06T00:48:00.000-07:00</published><updated>2010-10-06T00:52:21.153-07:00</updated><title type='text'>PROGRAMOVACÍ JAZYKY  C / C++   1. Funkce, jejich popis. Zápis programu, komentář.</title><content type='html'>&lt;span style="font-weight: bold;"&gt;PROGRAMOVACÍ JAZYKY   C / C++&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Funkce, jejich popis. Zápis programu, komentář.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Zápis programu&lt;/span&gt;&lt;br /&gt;klávesnicí&lt;br /&gt;a pak snad jen, že je C++ case sensitive(rozlišuje malá a velká písmena).&lt;br /&gt;Většina programů má následující strukturu: vložení hlavičkových struktur, definice preprocesoru(makra), deklarace globálních proměnných, deklarace(prototypy) pomocných funkcí, hlavní funkce(main).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Komentář&lt;/span&gt;&lt;br /&gt;Komentář je text v programu, který se nepřekládá a slouží pouze pro účely programátora a přehlednost kódu. Jsou dva možné typy komentářů. Jednořádkový(začíná dvěma svislými čarami, končí s koncem řádku) a víceřádkový(začíná /* a končí */).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;//Jednořádkový komentář.&lt;br /&gt;/*Víceřádkový&lt;br /&gt;komentář*/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definice funkce &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Neplést deklaraci a definici funkce!&lt;/span&gt;&lt;br /&gt;návratový_typ identifikátor_funkce (seznam definicí formálních parametrů)&lt;br /&gt;{ lokální deklarace a definice;&lt;br /&gt;&lt;br /&gt; příkazy;&lt;br /&gt;}&lt;br /&gt;Definice funkce začíná hlavičkou funkce. To je první řádek.&lt;br /&gt;Ten obsahuje návratový typ, který určuje jakého typu bude hodnota, kterou bude vracet. Lze použít libovolný typ, který dovoluje jazyk C++(viz otázka 2). Pokud není typ uveden implicitně(=automaticky bez zásahu programátora) se použije typ void.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Další je identifikátor funkce&lt;/span&gt; = jméno funkce.&lt;br /&gt;&lt;br /&gt;V závorce následuje seznam definicí formálních parametrů. Sem se zapisují definice proměnných. Ty se definují stejně jako normální proměnné, jen u nich nelze zkrátit zápis více proměnných stejného typu oddělením jednotlivých názvů proměnných čárkou.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad: &lt;/span&gt;&lt;br /&gt;int secti (int a,b)         //nelze&lt;br /&gt;int secti (int a, int b)    //správný zápis&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pozn.:&lt;/span&gt; Existují i funkce s proměnným počtem parametrů, ale to už je trochu mimo mísu.&lt;br /&gt;int secti (int a, int b, ...) // po pevných parametrech následují 3 tečky&lt;br /&gt;Po uvedení hlavičky funkce následuje tělo funkce. V něm mohou být deklarovány další typy proměnných a obsahuje příkazy. Ty obvykle pracují s předanými parametry. Provádění funkce je ukončeno po vykonání posledního příkazu těla funkce, ale v takovém případě není možné odhadnout, jakou hodnotu funkce vrátí(stejně jako u proměnné do které není po deklaraci nic zapsáno). Proto se používá příkaz return.&lt;br /&gt;return výraz;&lt;br /&gt;&lt;br /&gt;Tento příkaz způsobí okamžité opuštění funkce, ve které je použit. Hodnota nepovinného(pokud je funkce typu void, používá se return; bez parametrů) výrazu je pak návratovou hodnotou funkce. Pokud výraz neuvedeme, bude návratová hodnota předem neurčitelná.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Příklad:&lt;/span&gt;&lt;br /&gt;int secti (int a, int b)&lt;br /&gt;{ return a+b;&lt;br /&gt;}&lt;br /&gt;V příkladu je nadefinována funkce, která vrací součet dvou čísel. Typ její návratové hodnoty je určen jako int, stejně jako typy obou parametrů funkce. Po předání řízení funkci se hned začne vykonávat příkaz return, který funkci ihned ukončí a jako výsledek po jejím volání vrátí součet hodnot předaných parametrů.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4179860832630152611?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4179860832630152611/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/programovaci-jazyky-c-c-1-funkce-jejich.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4179860832630152611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4179860832630152611'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2010/10/programovaci-jazyky-c-c-1-funkce-jejich.html' title='PROGRAMOVACÍ JAZYKY  C / C++   1. Funkce, jejich popis. Zápis programu, komentář.'/><author><name>m</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4367310089585794945</id><published>2009-03-27T14:38:00.004-07:00</published><updated>2010-03-03T01:30:06.985-08:00</updated><title type='text'>Atributy datového a objektového modelování</title><content type='html'>- preference skalárních (statických) atributů ENTIT&lt;br /&gt;- preference dynamických atributů TŘÍD objektů&lt;br /&gt;- obr.: Dekompozice logistického multisystému&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Dynamický model&lt;/span&gt;&lt;br /&gt;- v souvislosti s IS byl poprvé publikován v r. 1986&lt;br /&gt;- datové modelová bylo záležitostí kybernetiky&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;základní pojmy:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Stav&lt;/span&gt;&lt;br /&gt;- vyjadřuje hodnoty sledovaných atributů systému vztažené k časovému okamžiku&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Změny stavu &lt;/span&gt;– jak probíhají&lt;br /&gt;- skoková, neboli diskrétní&lt;br /&gt;- spojitá&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4367310089585794945?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4367310089585794945/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/atributy-datoveho-objektoveho.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4367310089585794945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4367310089585794945'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/atributy-datoveho-objektoveho.html' title='Atributy datového a objektového modelování'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1940096172073554309</id><published>2009-03-27T14:38:00.003-07:00</published><updated>2010-03-03T01:32:25.350-08:00</updated><title type='text'>Seznam událostí</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Seznam událostí&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;- shody a rozdíly v sémantice modelů&lt;br /&gt;- metody strukturované (pracujeme s entitou)   X   objektově orientované (pracujeme s objektem)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Funkční model&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Datový model&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Objektový model&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dynamický model&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dynamický model&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Funkční model&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;databázové        simulační&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;systémy         modely&lt;/span&gt;&lt;br /&gt;- v abstrakci systému a tvorbě konceptuálního modelu před realizací aplikace na požadavku, aby materiály, informace a peníze byly v potřebném množství včas na správném míst&lt;br /&gt;&lt;br /&gt;- v metodologickém základu&lt;br /&gt;&lt;br /&gt;- dynamické modelování (STD)&lt;br /&gt;&lt;br /&gt;- funkční model (informačních, peněžních, energetických, materiálových a jiných toků)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Rozdíly:&lt;/span&gt;&lt;br /&gt;- ve sledování objektů z objektivní reality (typické pro DB systémy) se u simulačního modelu rozšiřuje o objekty subjektivní reality&lt;br /&gt;&lt;br /&gt;- cíle systémové analýzy a účel modelování systémů&lt;br /&gt;&lt;br /&gt;- i DB systémů se sleduje množstevní kvantifikace stavů entit vzhledem k časovému okamžiku (časový snímek) pro účely organizace&lt;br /&gt;&lt;br /&gt;- u simulačních modelů se průběžně sledují změny stavu systému jako celku vzhledem k časovému intervalu existence za účelem poznání jeho chování&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1940096172073554309?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1940096172073554309/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/shody.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1940096172073554309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1940096172073554309'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/shody.html' title='Seznam událostí'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7049461831618657192</id><published>2009-03-27T14:37:00.002-07:00</published><updated>2010-03-03T01:34:23.973-08:00</updated><title type='text'>V CASE/4/0 jsou DSD zaznamenány:</title><content type='html'>datový tok    základ pro vytypování&lt;br /&gt;&lt;br /&gt;    &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Data Store    předmětných oblastí&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;      &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;ER model předmětné oblasti (objednávka, dodací list)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;       &lt;br /&gt;    &lt;span style="font-weight: bold;"&gt;Subsystémy&lt;/span&gt;&lt;br /&gt;1.) subsystém obchodních činností&lt;br /&gt;2.) skladové hospodářství&lt;br /&gt;3.) výroba&lt;br /&gt;4.) ekonomika, …&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Yourdonův model&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Vztah se vyjadřuje slovesně&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- v ER modelu&lt;/span&gt; – na vztah pravým tlačítkem Create Relation Mode vygeneruje se model klasický, ve kterém provádím normalizaci&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Entity na normalizaci:&lt;/span&gt;&lt;br /&gt;- objednávka&lt;br /&gt;- dodací listopad&lt;br /&gt;- faktura&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7049461831618657192?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7049461831618657192/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/v-case40-jsou-dsd-zaznamenany.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7049461831618657192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7049461831618657192'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/v-case40-jsou-dsd-zaznamenany.html' title='V CASE/4/0 jsou DSD zaznamenány:'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2392001116458519183</id><published>2009-03-27T14:37:00.001-07:00</published><updated>2010-01-29T03:10:48.688-08:00</updated><title type='text'>CASE/4/0</title><content type='html'>jednoznačné přiřazení&lt;br /&gt;&lt;br /&gt;nejednoznačné přiřazení – řeší se vazební entitou (různé číselníky, adresáře)&lt;br /&gt;- objektově orientované modelování&lt;br /&gt;- operace nejsou řešeny v relačních databázích&lt;br /&gt;&lt;br /&gt;- generalizace (v objektovém modelování nazýváme dědičností)&lt;br /&gt;- specializace&lt;br /&gt;&lt;br /&gt;Ve cvičení máme udělané:&lt;br /&gt;Model prostředí: seznam událostí                    z hlediska toků, a to&lt;br /&gt;  cíl systému        materiálových, informační, peněžních,&lt;br /&gt;  kontextový diagram                         v organizaci&lt;br /&gt;&lt;br /&gt;Model IS firmy: seznam událostí               z hlediska&lt;br /&gt;  cíl systému           informačních toků&lt;br /&gt;  kontextový diagram       v rámci subsystému IS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2392001116458519183?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2392001116458519183/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/case40.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2392001116458519183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2392001116458519183'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/case40.html' title='CASE/4/0'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8481243020827736247</id><published>2009-03-27T14:36:00.002-07:00</published><updated>2010-01-29T03:11:37.837-08:00</updated><title type='text'>Datové modelování v CASE</title><content type='html'>- datový model je ve strukturovaných metodách 2. Modelem&lt;br /&gt;- obr.:&lt;br /&gt;&lt;br /&gt;- subsystém – část systému&lt;br /&gt;- vyznačuje se tím ,že zahrnuje některou předmětnou oblast&lt;br /&gt;- předmětná oblast – data, která do této oblasti patří&lt;br /&gt;- zahrnujeme zde ta data, ty databáze, které spolu mají nějaký vztah&lt;br /&gt;- základní pojmy datového modelování:&lt;br /&gt;- entita&lt;br /&gt;- abstrakce reálného předmětu, jehož vlastnosti (atributy) eviduje v počítači (v IS)&lt;br /&gt;- pojmenování v jednotném čísle&lt;br /&gt;&lt;br /&gt;- data store&lt;br /&gt;- databázové množiny nějakých předmětů&lt;br /&gt;- pojmenování je v množném čísle (např.: Pracovníci)&lt;br /&gt;- relation – tabulka s jednotlivými záznamy&lt;br /&gt;&lt;br /&gt;- relationship – vazba mezi objekty&lt;br /&gt;- kardinalita 1 : 1, 1 : n, m : n, kde m, n = 0, 1, 2, …&lt;br /&gt;- parciální vztah – je-li kardinalita n = 0, připouštíme NULL hodnoty&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8481243020827736247?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8481243020827736247/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/datove-modelovani-v-case.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8481243020827736247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8481243020827736247'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/datove-modelovani-v-case.html' title='Datové modelování v CASE'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4891947155841890777</id><published>2009-03-27T14:36:00.001-07:00</published><updated>2009-03-27T14:36:37.925-07:00</updated><title type='text'>DFD – Data Flow Diagram</title><content type='html'> ke každé úrovni existuje DFD&lt;br /&gt; nelze spojit horizontálně, ale v DFD to lze, ale nelze to vertikální&lt;br /&gt; objevuje se zde interface, a to nám poskytuje data&lt;br /&gt; data ukládáme do databází&lt;br /&gt; musí vytvářet systém&lt;br /&gt; každá funkce musí mít vstup i výstup&lt;br /&gt; Flow (toky) mohou být:&lt;br /&gt;• informační                    (šedé)    Data Store (sklad)&lt;br /&gt;• materiálové                   (modré)    Material Store&lt;br /&gt;• peněžní           (použít materiálový tok) &lt;br /&gt;• událostní       Event Store&lt;br /&gt; mohou být obousměrné nebo bez orientace (nepůsobí jako změna, ale pouze ke čtení)&lt;br /&gt; nelze: přenos z Interface do Data Store&lt;br /&gt; lze: přenos z funkce do funkce (ale nebudeme to používat)&lt;br /&gt; vhodné pro RT systémy (Real Time) – počítačové systémy, které řídí výrobu&lt;br /&gt; TOP úroveň – má kontextový diagram – ukazuje vazby na okolí&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4891947155841890777?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4891947155841890777/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/dfd-data-flow-diagram.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4891947155841890777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4891947155841890777'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/dfd-data-flow-diagram.html' title='DFD – Data Flow Diagram'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-11173666991576914</id><published>2009-03-27T14:35:00.002-07:00</published><updated>2009-03-27T14:36:16.497-07:00</updated><title type='text'>• 70./80. léta</title><content type='html'>– vyvinuty databázové systémy na podporu dokumentace&lt;br /&gt; v 80. letech – skupina v čele s Yourdonem v r. 1989 publikovali Yourdonovu strukturovanou metodu&lt;br /&gt; 3 typy modelů:&lt;br /&gt;1.) funkční model&lt;br /&gt;• FSD (Function Structured Diagram)&lt;br /&gt;• DFD (Data Flow Diagram)&lt;br /&gt;2.) datový model&lt;br /&gt;• ERD (Entity Relationship Diagram)&lt;br /&gt;• DSD (Data Structured Diagram)&lt;br /&gt;• DDD (Data Dictionary Diagram)&lt;br /&gt;3.) dynamický model &lt;br /&gt;• STD (State Transition Diagram) – diagram přechodu stavů&lt;br /&gt; poprvé byl publikován v r. 1986&lt;br /&gt; byl převzat z kybernetiky – systémová věda pro informatiku&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-11173666991576914?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/11173666991576914/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/7080-leta.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/11173666991576914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/11173666991576914'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/7080-leta.html' title='• 70./80. léta'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5763536875555033020</id><published>2009-03-27T14:35:00.001-07:00</published><updated>2009-03-27T14:35:52.273-07:00</updated><title type='text'>BOTTOM         DOWN</title><content type='html'> minispecifikace – funkce na nejnižší úrovni, které jsou určeny k programování (jsou programovatelné)&lt;br /&gt; systém – abstrakce nějaké části reality, která je objektem našeho poznání nebo přetváření&lt;br /&gt; vlastnosti:&lt;br /&gt;1.) struktura – množina prvků a vazeb mezi nimi&lt;br /&gt;2.) chování&lt;br /&gt;3.) cíl&lt;br /&gt;4.) hierarchická výstavba systému&lt;br /&gt; subsystémy – vytypujeme podle předmětných oblastí&lt;br /&gt; mají své funkce&lt;br /&gt; funkční přístup – přístup, který je založen na tom, že se zabýváme funkcemi&lt;br /&gt;• 70. léta&lt;br /&gt; Chen, Bachmann, Codd – teorie pro způsob, jak modelovat data  na jejich základě byly vytvořeny relační databáze&lt;br /&gt; vůdčí postavení má firma IBM – vyvinula metodu HIPO&lt;br /&gt; metoda HIPO = hierarchy + Input Process Output&lt;br /&gt;• hierarchie – dekompozice na dílčí subsystému, z toho vyplynulo:&lt;br /&gt;&lt;br /&gt;• systémový diagram – specifikoval zpracovávaná data&lt;br /&gt;&lt;br /&gt; souběžně s tím vznikly jazyky pro popis (dokumentaci) výsledků systémové analýzy a projektů&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5763536875555033020?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5763536875555033020/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/bottom-down.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5763536875555033020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5763536875555033020'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/bottom-down.html' title='BOTTOM         DOWN'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-661383734818763496</id><published>2009-03-27T14:34:00.000-07:00</published><updated>2009-03-27T14:35:22.713-07:00</updated><title type='text'>Yourdonova strukturovaná metoda</title><content type='html'>Vývoj metod:&lt;br /&gt;• 60. léta&lt;br /&gt; Jackson se věnoval metodě strukturovaného programování, kterou metodicky zpracoval&lt;br /&gt; analytici zjistili, že je tato metoda vhodná i pro účely systémové analýzy&lt;br /&gt; jednou z vlastností systému je jeho hierarchická výstavba&lt;br /&gt; každá funkce má nějaký svůj cíl, popis ve Wordu&lt;br /&gt;&lt;br /&gt;Diagram hierarchické struktury (FSD)&lt;br /&gt;          úrovně&lt;br /&gt;&lt;br /&gt;         SYSTÉM   TOP&lt;br /&gt;UP          TOP D&lt;br /&gt;  1.       2.   3.    E&lt;br /&gt;  subsystém      subsystém           subsystém    nultá a K&lt;br /&gt;   s               úroveň n O&lt;br /&gt;   y      1.1                         1.2 a M  &lt;br /&gt;   n      subsystém      subsystém                   1. úroveň  l P&lt;br /&gt;   t             ý O  &lt;br /&gt;   é          z Z&lt;br /&gt;   z 1.2.1       1.2.2         1.2.3               2. úroveň a I&lt;br /&gt;   a subsystém      subsystém        subsystém     jeden vstup ,  C&lt;br /&gt;            nebo 1 výstup,  E&lt;br /&gt;            nebo obojí&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-661383734818763496?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/661383734818763496/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/yourdonova-strukturovana-metoda.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/661383734818763496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/661383734818763496'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/yourdonova-strukturovana-metoda.html' title='Yourdonova strukturovaná metoda'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1970192381690128488</id><published>2009-03-27T14:33:00.002-07:00</published><updated>2009-03-27T14:34:14.430-07:00</updated><title type='text'>6.12.2. fáze užití DW</title><content type='html'>Zajištění přístupu uživatelům k relevantním informacím a  podpora výběru prostředí dle individuálních potřeb uživatelů. Zde je kladen důraz na :&lt;br /&gt; směrování na příslušný zdroj dat operativního prostředí se zajištěním  efektivního a pružného přístupu (heterogenní a distribuované prostředí),&lt;br /&gt; respektování  standardů a všeobecného interface s cílem dosažení otevřenosti infrastruktury a integrace produktů.&lt;br /&gt;6.12.3 fáze údržba DW&lt;br /&gt;Přizpůsobení DW měnícím se potřebám řízení. Zpravidla se jedná o:&lt;br /&gt; nárůst objemu dat (historie, vývoj potřeb různých skupin uživatelů),&lt;br /&gt; zajištění průchodnosti řešení,&lt;br /&gt; modifikace získávání informací z operativní úrovně,&lt;br /&gt; změny načasování dodávky dat, &lt;br /&gt; změny v uspořádání uživatelských skupin,&lt;br /&gt; změny v jednotlivých pohledech uživatelských skupin,&lt;br /&gt; aktualizace zajištění bezpečnosti informací.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1970192381690128488?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1970192381690128488/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/6122-faze-uziti-dw.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1970192381690128488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1970192381690128488'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/6122-faze-uziti-dw.html' title='6.12.2. fáze užití DW'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6286253871742077864</id><published>2009-03-27T14:33:00.001-07:00</published><updated>2009-03-27T14:33:42.992-07:00</updated><title type='text'>6.12 Životní cyklus řešení Data Warehouse</title><content type='html'> Vytvoření&lt;br /&gt; Užití &lt;br /&gt; Údržba&lt;br /&gt;&lt;br /&gt;Obr. č. 4 Životní cyklus DW&lt;br /&gt;6.12.1. fáze vytvoření DW&lt;br /&gt;Navržení a vytvoření kvantitativní a kvalitativní formy dat, která odpovídá potřebám koncových uživatelů dispozitivní úrovně, tj.:&lt;br /&gt; dobré porozumění obsahu a struktuře operativních dat,&lt;br /&gt; zahrnutí časového faktoru pro účely komparativní a trendové analýzy,&lt;br /&gt; respektování  úrovní agregací dat (střední management, představenstvo),&lt;br /&gt; zajištění pružnosti datových pohledů vzhledem k měnícím se potřebám uživatelů.&lt;br /&gt;Produktem této fáze je vytvoření třech typů metadat, které jsou využívány ve fázi  Užití nebo modifikovány ve fázi Údržba. Jedná se o:&lt;br /&gt; popis dat operativního prostředí,&lt;br /&gt; popis dat DW,&lt;br /&gt; popis uživatelských profesních pohledů (view).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6286253871742077864?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6286253871742077864/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/612-zivotni-cyklus-reseni-data.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6286253871742077864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6286253871742077864'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/612-zivotni-cyklus-reseni-data.html' title='6.12 Životní cyklus řešení Data Warehouse'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4379849377074205484</id><published>2009-03-27T14:32:00.004-07:00</published><updated>2009-03-27T14:33:16.751-07:00</updated><title type='text'>• Data mining (surfing)</title><content type='html'>– v podstatě „prosévání“ velkých objemů dat pro nalezení vzájemných vztahů v datech, navigování v celém datovém skladu pomocí Drag&amp;Drop operací.&lt;br /&gt;• Drill-down – zobrazení detailních dat, která byla použita pro agregace.&lt;br /&gt;• Drill-up – zobrazení agregovaných hodnot na nejblíže vyšší úrovni.&lt;br /&gt;• Drill-everywhere – rozlišení aktuální analýzy v libovolném smysluplném směru.&lt;br /&gt;• Drill-across – možnost změny pohledu na jiná data beze změny stupně agregace.&lt;br /&gt;• Dicing – rotace nebo převrácení multidimenzionální kostky.&lt;br /&gt;• Slicing – vydělení jedné vrstvy z multidimenzionální kostky.&lt;br /&gt;• Pivoting – rotace dvourozměrné křížové tabulky (záměna sloupců za řádky a naopak).&lt;br /&gt;• Dynamické dotazy – dynamické SQL dotazy obvykle formulované v klientské aplikaci, nejsou předzpracovány, provádějí se v reálném čase.&lt;br /&gt;11. flexibilní výstupy – koncový uživatel musí mít možnost snadné manipulace s výstupními daty v jakékoliv formě.&lt;br /&gt;12. neomezené dimenze a úrovně agregací – nástroje by měly umožňovat práci alespoň s 15-ti, lépe s 20-ti dimenzemi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4379849377074205484?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4379849377074205484/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/data-mining-surfing.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4379849377074205484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4379849377074205484'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/data-mining-surfing.html' title='• Data mining (surfing)'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1303696087627184926</id><published>2009-03-27T14:32:00.003-07:00</published><updated>2009-03-27T14:32:51.618-07:00</updated><title type='text'>2. transparentnost</title><content type='html'>– pro uživatele by mělo být lhostejné, kde a jak jsou analytické funkce pro multidimenzionální analýzu umístěny.&lt;br /&gt;3. dostupnost dat – schopnost získat data z heterogenních zdrojů fyzických dat ( i externích zdrojů). DBMS musí pracovat nezávisle na HW a musí pracovat s nezbytným middleware přes standardní rozhraní (např. ODBC). Pro optimalizaci využívání uživatelskými skupinami musí být schopen distribuovat data na různé servery.&lt;br /&gt;4. stabilní výkonnost – výkonnost nezávislá na nárůstu počtu dimenzí pro výběr.&lt;br /&gt;5. architektura klient/server – komponenty musí být dostatečně mocné, aby je bylo možno implementovat s minimálním úsilím.&lt;br /&gt;6. generická dimenzionalita – pro všechny rozměry by měla existovat pouze jedna logická struktura.&lt;br /&gt;7. dynamické manipulace s řídkými maticemi – pro efektivní zpracování nulových či prázdných hodnot.&lt;br /&gt;8. podpora více uživatelů – řešení musí umožňovat souběžný přístup, bezpečnost a integritu pro více uživatelů.&lt;br /&gt;9. neomezené cross – dimenzionální operace – tj.výpočty a jiné činnosti mezi dimenzemi bez zásahu uživatele.&lt;br /&gt;10. intuitivní manipulace s daty&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1303696087627184926?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1303696087627184926/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/2-transparentnost.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1303696087627184926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1303696087627184926'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/2-transparentnost.html' title='2. transparentnost'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2817456704833975226</id><published>2009-03-27T14:32:00.001-07:00</published><updated>2009-03-27T14:32:26.992-07:00</updated><title type='text'>Datové sklady jsou charakterizovány těmito technologickými znaky:</title><content type='html'> zpracovávají malý počet komplexních dotazů,&lt;br /&gt; data se načítají dávkově,&lt;br /&gt; důležitým hlediskem je rychlý přístup k datům pro účely analýz a prezentací,&lt;br /&gt; integrita dat se zajišťuje při dávkových načítacích procesech,&lt;br /&gt; datové modely jsou optimalizované pro rychlé zpracování výstupů,&lt;br /&gt; používá se kombinace datových modelů (normalizované a denormalizované relační modely, sumarizované tabulky, star schema modely, snow flake modely, multidimenzionální modely).&lt;br /&gt;6.11 Kvalitativní vlastnosti OLAP&lt;br /&gt;Abychom mohli určitým způsobem kvalifikovat produkty použitelné pro OLAP, je účelné pro ně definovat určitý konceptuální architektonický rámec. Jedním z autorů, který toto kvalitativní vymezení navrhl, byl E. F. Codd. Tato kriteria je možno vymezit takto:&lt;br /&gt;1. multidimenzionální konceptuální pohled – dovoluje uživateli pohledy na data z různých hledisek. Multidimenzionalita znamená, že data jsou uspořádána alespoň s jedním dalším rozměrem – nejčastěji časem. Navíc je možné rozlišovat dotazy s různým stupněm agregace. Se snižujícím se stupněm agregace (drill-down) je možno tyto detaily zobrazit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2817456704833975226?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2817456704833975226/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/datove-sklady-jsou-charakterizovany.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2817456704833975226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2817456704833975226'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/datove-sklady-jsou-charakterizovany.html' title='Datové sklady jsou charakterizovány těmito technologickými znaky:'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2849738627674382813</id><published>2009-03-27T14:31:00.002-07:00</published><updated>2009-03-27T14:32:04.298-07:00</updated><title type='text'>Datové sklady jsou naopak charakterizovány následujícími znaky:</title><content type='html'> účelem je dostat informace ze systému,&lt;br /&gt; uživatelé mají možnost pouze číst data,&lt;br /&gt; umožňují kreativitu uživatelů při práci s daty (analýzy, prezentace dat),&lt;br /&gt; aplikace jsou dynamické (požadavky na funkčnost aplikace se mění),&lt;br /&gt; podporují dlouhodobé strategie firmy,&lt;br /&gt; poskytují konkurenční výhodu,&lt;br /&gt; proces implementace a využívání je poháněn potřebami organizace (tj. impulsem k inovaci systému jsou nové potřeby uživatelů).&lt;br /&gt;6.10.2 Technologické rozdíly&lt;br /&gt;Provozní systémy se vyznačují těmito technologickými znaky:&lt;br /&gt; zpracovávají velké objemy malých transakcí,&lt;br /&gt; transakce neustále přidávají a aktualizují data,&lt;br /&gt; důležitým hlediskem je omezení redundance dat,&lt;br /&gt; integrita dat se zajišťuje datovým modelem a aplikacemi,&lt;br /&gt; datové modely jsou optimalizované pro on-line aktualizace a rychlé zpracování transakcí,&lt;br /&gt; používají se převážně normalizované relační datové modely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2849738627674382813?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2849738627674382813/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/datove-sklady-jsou-naopak.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2849738627674382813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2849738627674382813'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/datove-sklady-jsou-naopak.html' title='Datové sklady jsou naopak charakterizovány následujícími znaky:'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6400266080241954904</id><published>2009-03-27T14:31:00.001-07:00</published><updated>2009-03-27T14:31:39.774-07:00</updated><title type='text'>6.10 Rozdíly mezi provozními systémy a datovým skladem</title><content type='html'>Hlavním účelem provozních systémů je automatizace operací a procesů. Naproti tomu za hlavní účel datových skladů je považováno vytváření podmínek pro poskytování optimálních informací pro rozhodování. Kromě hlavního účelu můžeme dále definovat dva druhy rozdílů:&lt;br /&gt; koncepční rozdíly,&lt;br /&gt; technologické rozdíly.&lt;br /&gt;6.10.1 Koncepční rozdíly&lt;br /&gt;Provozní systémy jsou charakteristické těmito znaky:&lt;br /&gt; účelem je dostat data do systému,&lt;br /&gt; uživatelé mají možnost zadávat data, měnit data, rušit data a číst data,&lt;br /&gt; zajišťují automatizaci rutinních činností,&lt;br /&gt; aplikace jsou v podstatě statické (požadavky na funkčnost jsou poměrně stálé),&lt;br /&gt; podporují každodenní firemní aktivity,&lt;br /&gt; orientované na výkonnost,&lt;br /&gt; proces implementace a využívání je poháněn technologií (tj. impulsem k inovaci systému je nové systémové prostředí, nová verze databáze apod.).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6400266080241954904?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6400266080241954904/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/610-rozdily-mezi-provoznimi-systemy.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6400266080241954904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6400266080241954904'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/610-rozdily-mezi-provoznimi-systemy.html' title='6.10 Rozdíly mezi provozními systémy a datovým skladem'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1044652167190245977</id><published>2009-03-27T14:30:00.004-07:00</published><updated>2009-03-27T14:31:15.490-07:00</updated><title type='text'>Při metodě MOLAP ...</title><content type='html'>Při metodě MOLAP se všechny podrobné údaje z kostky ukládají ve vyhrazené multidimenzionální databázi. To znamená, že relační data uložená v tabulkách dimenzí a v tabulkách faktů jsou zapsána do optimalizované multidimenzionální databáze.&lt;br /&gt;Navíc jsou k podrobným údajům o kostce do multidimenzionální databáze uloženy také všechny agregace. Tato architektura OLAP je optimalizována pro zpracování dotazu ve službách OLAP a poskytuje nejlepší výkon ze všech tří metod ukládání dat.&lt;br /&gt;Metoda ukládání ROLAP vyžaduje uložení jak všech podrobných údajů, tak agregací v relační databázi. To znamená, že všechna detailní data z kostky, která se najdou v tabulkách dimenzí a tabulkách faktů jsou ponechána v jejich přirozené relační databázi. Data se nepřesunují. Při ukládání agregací se vytvoří sumarizační tabulky, do kterých budou relační data ukládána službami OLAP pomocí jednoduchého SQL příkazu INSERT INTO. Služby OLAP vytvoří všechny tabulky a indexy samočinně. Podrobné údaje v kostce zůstávají beze změny.&lt;br /&gt;Tento způsob ukládání nenabízí pro výkon zlepšení porovnatelná s MOLAPem; nicméně jde o velmi rozšířený způsob ukládání, díky kterému může firma využít stávající možnosti uložení dat.&lt;br /&gt;Posledním způsobem ukládání dat je HOLAP. Je to kombinaci MOLAPu a ROLAPu. Jde o ukládání všech podrobných informací z kostek do relační databáze a všech agregovaných údajů do multidimenzionální databáze. Tato metoda se snaží poskytovat to nejlepší z obou světů: výkonnost MOLAPu a rozšiřitelnost ROLAPu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1044652167190245977?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1044652167190245977/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/pri-metode-molap.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1044652167190245977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1044652167190245977'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/pri-metode-molap.html' title='Při metodě MOLAP ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6746954836193170618</id><published>2009-03-27T14:30:00.003-07:00</published><updated>2009-03-27T14:30:51.435-07:00</updated><title type='text'>6.8.5 Multidimenzionální kostka</title><content type='html'>6.8.5 Multidimenzionální kostka&lt;br /&gt;Základní stavební jednotkou v multidimenzionální databázi je kostka (cube, datová kostka, multidimenzionální kostka, hyperkostka). Kostka v multidimenzionální databázi se skládá ze sady dimenzí a měr.&lt;br /&gt;Dimenze (rozměr) kostky jsou kategorie, vůči kterým chceme data agregovat a analyzovat. Dimenze vznikají z tabulek relačních databází. Typickými dimenzemi v multidimenzionálních databázích jsou čas, poloha, výrobek. Dimenze se může skládat z řady úrovní, které dále zpřesňují údaje.&lt;br /&gt;Míry kostky jsou kvantitativní údaje, které chceme analyzovat. Tak jako dimenze jsou i míry odvozeny z tabulek relačních databází. Běžnými mírami jsou prodeje, výdaje, ceny, ale téměř každý kvantitativní údaj může být mírou multidimenzionální kostky.&lt;br /&gt;6.9 Uložení dat v OLAP databázi&lt;br /&gt;Zdrojová data z relační databáze mohou být uložena jednou ze tří základních metod:&lt;br /&gt; Multidimenzionální OLAP (MOLAP).&lt;br /&gt; Relační OLAP (ROLAP).&lt;br /&gt; Hybridní OLAP (HOLAP).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6746954836193170618?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6746954836193170618/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/685-multidimenzionalni-kostka.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6746954836193170618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6746954836193170618'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/685-multidimenzionalni-kostka.html' title='6.8.5 Multidimenzionální kostka'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4382924609332226593</id><published>2009-03-27T14:30:00.001-07:00</published><updated>2009-03-27T14:30:30.936-07:00</updated><title type='text'>6.8.3 Multidimenzionální modelování</title><content type='html'>Pro efektivní využívání dat uložených v databázi datového skladu prostřednictvím OLAP aplikací je nutné uložit data určitým způsobem. OLAP aplikace jsou ve skutečnosti rozšířením či podrobnějším rozpracováním dřívějších typů aplikací, jako jsou systémy na podporu rozhodování (DSS) či exekutivní informační systémy (EIS). Cílem takovýchto aplikací je poskytování souhrnných údajů na vysoké úrovni agregace, na základě kterých se dělají rozhodnutí a díky nimž zůstává vedení firmy informováno. OLAP z tohoto přístupu vychází a dále ho rozšiřuje. Umožňuje prohlížet vybrané údaje ve firmě z různých stran, rozdělovat je, pohlížet na ně s odstupem či naopak vyhledávat podrobnosti. To, co ve skutečnosti odlišuje OLAP od klasických OLTP, je schopnost poskytovat multidimenzionální pohled na transakční data.&lt;br /&gt;6.8.4 Rozdíly mezi relační a vícerozměrnou databází&lt;br /&gt;Typický relační databázový systém poskytuje tradiční dvourozměrný pohled na data (řádky a sloupce). Tato nestrukturovaná reprezentace transakčních dat se příliš nehodí pro složité postupy analýzy dat, které zahrnují vyhledávání kvalitativních dat sečtených přes mnoho různých kategorií.&lt;br /&gt;Na druhou stranu, vícerozměrné databáze jsou schopné poskytovat n-rozměrný pohled na data. Počet rozměrů, které lze zobrazit je teoreticky nekonečný. Jsou zde nicméně jistá praktická omezení na ukládání a výkonnost, kvůli kterým je tento počet omezen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4382924609332226593?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4382924609332226593/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/683-multidimenzionalni-modelovani.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4382924609332226593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4382924609332226593'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/683-multidimenzionalni-modelovani.html' title='6.8.3 Multidimenzionální modelování'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8071595062304326580</id><published>2009-03-27T14:29:00.004-07:00</published><updated>2009-03-27T14:30:09.624-07:00</updated><title type='text'>6.8.2 Dimenze</title><content type='html'>Tabulky dimenzí se skládají hlavně z textových informací, které jsou svázány se záznamy v tabulce faktů, jako jsou jména zákazníků, popisy výrobků, dodavatelé a prodejci. Tyto tabulky obsahují méně záznamů než tabulky faktů.&lt;br /&gt;Ve schématu datového skladu se vždy používají tabulky dimenzí či tabulky, které pracují s úseky času. Tvoří základní prvek pro sledování v čase proměnných informací v tomto typu databází.&lt;br /&gt;Teorie i praxe rozeznává několik variací klasického hvězdicového schématu. Občas jsou tabulky dimenzí podrobeny více normalizovanému přístupu. Běžným postupem je i začlenění souhrnů přes hierarchii dimenzí. Výsledkem jsou schémata označována jako sněhové vločky (snow flake schema) či souhvězdí.&lt;br /&gt;Vločková schémata poskytují nejlepší výkon při použití souhrnů a tím upřednostňují výkonnost na úkor budoucích potíží při správě metadat a transformací potřebných při převodu ze zdrojových systémů.&lt;br /&gt;Dimenzionální model je logickým postupem optimalizovaným pro dotazy a souhrnné výstupy. Je to dnes nejčastěji používaný model pro zavádění datových skladů a tržišť. Poskytuje zjednodušené postupy pro implementaci operací koncových uživatelů, jako je zjemňování (drill-down) podhledu a získávání více podrobností, či naopak shrnování stále vyšších celků (drill-up).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8071595062304326580?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8071595062304326580/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/682-dimenze.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8071595062304326580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8071595062304326580'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/682-dimenze.html' title='6.8.2 Dimenze'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-316061194427585518</id><published>2009-03-27T14:29:00.003-07:00</published><updated>2009-03-27T14:29:48.366-07:00</updated><title type='text'>6.8 Dimenzionální modelování</title><content type='html'>Tradiční E-R model (entita-relace) používá pro návrh databází normalizovaný přístup. Normalizace odstraňuje ze schématu redundance, čímž optimalizuje uložení dat. Naproti tomu datové sklady nekladou takový důraz na šetření místem, záleží jim však na tom, aby se s nimi uživateli snadno a efektivně pracovalo. Z tohoto důvodu je mírná redundace obvykle akceptována. Dimenzionální modelování je pro návrh datových skladů mnohem vhodnější. Navrhujeme v něm schéma tak, že rozdělujeme činnosti do logických událostí a faktů a nastavujeme odpovídající dimenze.&lt;br /&gt;Výslednému schématu se říká hvězdicové schéma (star schema). Používá totiž pár velkých ústředních tabulek faktů a mnoho malých tabulek dimenzí. Příklad hvězdicového schématu je na obr. 2.&lt;br /&gt; &lt;br /&gt;Obr. č.3    Star schema&lt;br /&gt;6.8.1 Tabulky faktů&lt;br /&gt;Ústřední tabulky faktů se obvykle skládají z obchodních událostí, které lze zaznamenávat v čase, jako jsou bankovní operace, prodeje, objednávky, obraty, dodávky, návštěvy na Webu atd. Běžně jsou tvořeny cizími klíči do tabulek dimenzí a sadou numerických hodnot. Údaje uložené v tabulkách faktů jsou obvykle neměnné, protože jsou historické. Nejběžnějším příkladem tabulky faktů v hvězdicovém schématu jsou prodeje.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-316061194427585518?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/316061194427585518/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/68-dimenzionalni-modelovani.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/316061194427585518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/316061194427585518'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/68-dimenzionalni-modelovani.html' title='6.8 Dimenzionální modelování'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2386586657114774829</id><published>2009-03-27T14:29:00.001-07:00</published><updated>2009-03-27T14:29:24.261-07:00</updated><title type='text'>6.7 Tvorba datového skladu</title><content type='html'>Mezi základní rozhodnutí při procesu budování datového skladu patří rozhodnutí o použití určitého přístupu. Rozlišujeme dva přístupy:&lt;br /&gt; Postup zdola nahoru – při tomto postupu pracujeme s menšími, cílenějšími aplikacemi metod datových skladů, což může celý proces zjednodušit. Požadavky na data jsou obvykle menší a rozsah specializovaných dotazů a souhrnů omezenější. Postup zdola nahoru poskytuje rychlejší vývoj na úkor obtížného rozšiřování po celé organizaci. I když tato metoda může přinést nejrychlejší výsledky při zavádění, je nutné se postarat, aby příliš specializované zaměření nebránilo v budoucnosti začlenění do celopodnikových řešení. Efektivitu tohoto přístupu obvykle zvyšuje i neexistence administrativních omezení na vlastnictví údajů.&lt;br /&gt; Postup shora dolů – používá se pro dosažení nejlepších dlouhodobých výsledků. Nástrahám metody zdola nahoru je možné zabránit včasným určením standardizovaných definic obchodních cílů a požadavků na data. Cena, složitost a potřebný čas jsou mnohem větší, než u předchozího přístupu. Problémem je také zajištění spolupráce jednotlivých oddělení firmy, vlastnictví dat a finanční zajištění. Naopak největší předností je možnost získání obsažného zdroje dat, který je globálně použitelný po celé firmě.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2386586657114774829?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2386586657114774829/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/67-tvorba-datoveho-skladu.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2386586657114774829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2386586657114774829'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/67-tvorba-datoveho-skladu.html' title='6.7 Tvorba datového skladu'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2661881448892755377</id><published>2009-03-27T14:28:00.001-07:00</published><updated>2009-03-27T14:28:39.557-07:00</updated><title type='text'>6.3.4 Datový sklad (Data Warehouse)</title><content type='html'>Datový sklad tvoří vlastní databáze a server, na kterém běží datový sklad. Může se skládat z jednoho centrálního skladu či více specializovaných datových tržišť (Data Marts).&lt;br /&gt;6.3.5 Nástroje pro přístup a dotazy&lt;br /&gt;Mohou to být nástroje pro tvorbu sestav od dalších výrobců či aplikace vyvinuté přímo v podniku, které zajistí přístup k informacím uloženým v datovém skladu.&lt;br /&gt;6.6 Využití datového skladu&lt;br /&gt;Přínosy z realizace datového skladu jsou tím větší, čím větší jsou možnosti pro analýzu a prezentace dat. Nejzákladnějšími metodami využití jsou operativní dotazy (předem nepřipravené) na určité hodnoty a sestavy, které mohou být standardní generované dávkově a operativní vytvářené podle potřeby.&lt;br /&gt;Vyšším stupněm je multidimenzionální analýza OLAP, tj. rychlé prohlížení dat sumarizovaných na různých úrovních z různých pohledů neboli dimenzí. Dále nejrůznější statistické a finanční analýzy – ekonometrické modelování, termínové modely.&lt;br /&gt;Analýzy časových řad a tvorby předpovědí slouží k předpovědi budoucích hodnot a identifikace sezónních výkyvů. Jedním z posledních hitů v této oblasti je dolování dat (Data Mining). Jedná se o specializované techniky pro zpracování velkých objemů dat a hledání skrytých vzorů a souvislostí.&lt;br /&gt;Vizualizace dat nabízí prohlížení dat v dynamicky provázaných grafech pro identifikace neobvyklých a extrémních hodnot a závislostí mezi daty. Mezi důležité  aplikace patří i geografické informační systémy, které převádějí hodnoty proměnných na geografickou prezentaci (např. zabarvení okresů podle počtu zákazníků) a manažerské informační systémy (EIS), které kombinují OLAP, reporting, přehledné zobrazení kritických veličin, jednoduché předpovědi a nabízejí podklady pro manažerské rozhodování.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2661881448892755377?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2661881448892755377/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/634-datovy-sklad-data-warehouse.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2661881448892755377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2661881448892755377'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/634-datovy-sklad-data-warehouse.html' title='6.3.4 Datový sklad (Data Warehouse)'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4288866116462630975</id><published>2009-03-27T14:27:00.002-07:00</published><updated>2009-03-27T14:28:15.447-07:00</updated><title type='text'>V reálném projektu ...</title><content type='html'>V reálném projektu centralizovaného datového skladu bývají desítky až stovky pumpovacích kroků. Správa kroků v software ETL probíhá obvykle pomocí acyklického orientovaného grafu, kde uzly grafu jsou kroky a spojnice tzv. workflow (pracovní toky). Většinou existují různé typy workflow podle toho, jak dopadl krok ve výchozím uzlu spojnice (úspěch, chyba, nezáleží).&lt;br /&gt;Ukládání dat do datového skladu je možné provádět na základě dvou různých strategií. Buď se pokaždé uloží celý obsah datového skladu znovu, což je použitelné pouze u velmi malých objemů dat a pro úvodní načtení, nebo se ukládají pouze přírůstky a změněná data – v tomto případě musí být k dispozici systém zajišťující rozpoznávání změněných údajů.&lt;br /&gt;6.3.3 Metadata&lt;br /&gt;Metadata obsahují popis dat, která budou uložena do datového skladu. Mohou obsahovat zdroj původní informace a pravidla či transformace, které byly použity při nahrávání dat. Metadata lze rozdělit na dvě skupiny – technická a obchodní:&lt;br /&gt; Technická metadata definují atributy, které popisují fyzické vlastnosti položek jako: odkud pocházejí, jak byly transformovány, kdo je za to zodpovědný, kdy byly naposledy načteny atd.&lt;br /&gt; Obchodní metadata jsou důležitá pro uživatele DW, protože obsahují informace jako jsou definice dat, hodnoty atributů a domén, obchodní pravidla, vztahy mezi daty atd.&lt;br /&gt;Ukládání a využívání metadat umožňuje automatické načítání dat a údržbu datového skladu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4288866116462630975?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4288866116462630975/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/v-realnem-projektu.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4288866116462630975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4288866116462630975'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/v-realnem-projektu.html' title='V reálném projektu ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4461078994793635676</id><published>2009-03-27T14:27:00.001-07:00</published><updated>2009-03-27T14:27:47.376-07:00</updated><title type='text'>Transformace dat se skládá z těchto dílčích operací:</title><content type='html'> Validace – ověření správnosti dat,&lt;br /&gt; Čištění – odstranění či změna nesprávných dat,&lt;br /&gt; Integrace – dosažení konzistence dat pocházejících z různých systémů (datové typy, formáty),&lt;br /&gt; Derivace – vytvoření derivovaných dat na základě vstupních dat,&lt;br /&gt; Denormalizace – snížení potřeby spojování tabulek při využívání DW,&lt;br /&gt; Sumarizace – vytvoření požadovaných souhrnů z detailních dat.&lt;br /&gt;Transformace dat z provozních systémů do datového skladu je časově nejnáročnější částí projektů budování datového skladu, u většiny případů tato část zabírá 70-80 % času realizace projektu. Pro snadnější provedení těchto činností se využívají tzv. datové pumpy (ETL – Extraction Transformation and Loading). Transformace je netriviální proces, který se skládá ze dvou typů kroků:&lt;br /&gt; Přenosových – přenos dat ze zdrojového systému (jako výsledek SQL dotazu) do cíle (tabulka v relační databázi datového skladu).&lt;br /&gt; Transformačních – obvykle procedurální transformace dat v rámci jedné nebo více tabulek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4461078994793635676?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4461078994793635676/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/transformace-dat-se-sklada-z-techto.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4461078994793635676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4461078994793635676'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/transformace-dat-se-sklada-z-techto.html' title='Transformace dat se skládá z těchto dílčích operací:'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1224208118386999292</id><published>2009-03-27T14:26:00.004-07:00</published><updated>2009-03-27T14:27:20.340-07:00</updated><title type='text'>6.3 Součásti datových skladů</title><content type='html'>Za základní součásti datových skladů se považují: &lt;br /&gt; zdrojové systémy, &lt;br /&gt; transformace dat, &lt;br /&gt; metadata, &lt;br /&gt; datový sklad &lt;br /&gt; nástroje pro přístup a dotazy.&lt;br /&gt;6.3.1 Zdrojové systémy&lt;br /&gt;Jedná se o OLTP systémy používané v současnosti organizací. Mohou být rozmístěny po celém podniku a poskytovat specifické služby různým oddělením. Za zdrojové systémy jsou rovněž považovány externí zdroje dat, ze kterých vstupují data do datového skladu.&lt;br /&gt;6.3.2 Transformace dat&lt;br /&gt;Transformace dat je činnost, při které jsou data vyzvednuta z OLTP systémů, upravena, shrnuta a sjednocena do formátu vhodného pro datový sklad. Transformace dat může zahrnovat rozdělení položky (např. se jménem na jméno a příjmení) nebo sjednocení duplikovaných údajů z různorodých systémů do jednoho unifikovaného záznamu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1224208118386999292?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1224208118386999292/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/63-soucasti-datovych-skladu.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1224208118386999292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1224208118386999292'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/63-soucasti-datovych-skladu.html' title='6.3 Součásti datových skladů'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7558697009776462151</id><published>2009-03-27T14:26:00.003-07:00</published><updated>2009-03-27T14:26:52.043-07:00</updated><title type='text'>Ačkoliv centralizované Data Warehousy nabízejí mnoho výhod...</title><content type='html'>Ačkoliv centralizované Data Warehousy nabízejí mnoho výhod, mohou být nepružné, nákladné a pomalé. Jedním z možných řešení těchto problémů je tvorba závislých Data martů pro specifické podnikové jednotky nebo funkce. Závislý Data Mart přebírá již transformovaná a vyčištěná data z centralizovaného Data Warehouse, přičemž vytváří výběr, který má menší objem a který je více zaměřen na určitý podnikový problém. Data Mart může být přizpůsoben uživatelům, takže jim umožní snadnější navigaci, rychlejší využívání a větší pružnost. Závislé Data Marty umožňují větší pružnost a často poskytují vyšší výkonnost.&lt;br /&gt;6.2.2 Nezávislé Data Marty&lt;br /&gt;V případě nezávislých Data Martů se řeší potřeby jednotlivých útvarů či aplikací víceméně odděleně a vytváří se samostatná datová úložiště – tzv. Data Marty, která se někdy označují jako útvarové datové sklady. Výhodou tohoto uspořádání je snazší a rychlejší implementace a z toho vyplývající rychlejší přínosy pro uživatele. Nevýhodou je naopak fakt, že může docházet k nekonzistencím mezi jednotlivými Data Marty a načítací procesy jsou poměrně komplikované. Navíc s rostoucí velikostí datového skladu začínají nevýhody převažovat nad výhodami.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7558697009776462151?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7558697009776462151/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/ackoliv-centralizovane-data-warehousy.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7558697009776462151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7558697009776462151'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/ackoliv-centralizovane-data-warehousy.html' title='Ačkoliv centralizované Data Warehousy nabízejí mnoho výhod...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7153975853708112605</id><published>2009-03-27T14:26:00.001-07:00</published><updated>2009-03-27T14:26:25.340-07:00</updated><title type='text'>6.2 Základní koncepty datového skladu</title><content type='html'>V současné době existují dva základní koncepty datového skladu: nezávislé Data Marty (datová tržiště) a centralizovaný datový sklad.&lt;br /&gt;6.2.1 Centralizovaný datový sklad&lt;br /&gt;Centralizované Data Warehousy nabízejí výhodu konzistence. Jelikož centralizovaný Data Warehouse definuje jediný datový model, platný v celé organizaci, vynucuje si konzistentnost. Všechna data organizace jsou pak umístěna na jediném místě a při jejich čištění, transformaci a plánování se využívá společný soubor pravidel. Všichni pracovníci provádějící rozhodování mají k dispozici stejná data a Data Warehouse může také být centrálně zabezpečen, udržován a zálohován. Konečným výsledkem je Data Warehouse, poskytující vedoucím pracovníkům a pracovníkům marketingu bohatý a unifikovaný zdroj dat, který podporuje on-line analytické zpracování pomocí snadno použitelných nástrojů a aplikací.&lt;br /&gt;Výhody centralizovaného skladu jsou především v konzistenci jeho obsahu, v menším počtu a jednodušší správě načítacích procesů z provozních systémů a ve snazší tvorbě nových Data Martů. Nevýhodou je naopak složitější realizace, pomalejší implementace (lze eliminovat vhodnou metodologií) a případně sekundární načítací procesy (z centrálního DW do Data Martu). Vzhledem k tomu, že požadavek na konzistentnost obsahu datového skladu je naprosto zásadní, tento přístup v současnosti převládá.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7153975853708112605?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7153975853708112605/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/62-zakladni-koncepty-datoveho-skladu.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7153975853708112605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7153975853708112605'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/62-zakladni-koncepty-datoveho-skladu.html' title='6.2 Základní koncepty datového skladu'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-3593970050421406406</id><published>2009-03-27T14:25:00.000-07:00</published><updated>2009-03-27T14:26:05.474-07:00</updated><title type='text'>„Data Warehouse</title><content type='html'>„Data Warehouse je integrovaná, subjektově orientovaná, stála a časově rozlišitelná sbírka dat uspořádaná pro potřeby managementu“, jejichž charakteristiky lze rozvést jako:&lt;br /&gt; Subjektová orientace – data jsou kategorizována podle typu a ne podle aplikací (např. údaje o maloobchodních zákaznících  jsou v jedné databázi datového skladu (DW), zatímco v operativních systémech mohou být rozptýlena ve více tabulkách nebo databázích, neboť jejich hlavním cílem je použití v konkrétních úlohách).&lt;br /&gt; Integrita – data jsou definována a ukládána podle potřeb celého podniku a ne jednoho obchodního nebo výrobního procesu. Jsou integrována do homogenních pohledů pro jejich následné vyhodnocení.&lt;br /&gt; Stálost –read-only databáze, data zde nevznikají, pouze jsou zpracovávána data z aplikačních bází a uloženy do báze dat DW.  Data v DW nemohou být smazána nebo modifikována.&lt;br /&gt; Časová rozlišitelnost – vzhledem k tomu, že data v DW jsou určena pro analýzu v určitých obdobích, je nutné znát i čas jejich vzniku nebo platnost v čase. Proto jsou ukládány v časových řadách.&lt;br /&gt; Potřeba managementu vyšší úrovně – DW je používán pro podporu rozhodování a nikoli pro zpracování transakcí.&lt;br /&gt;         Operativní data                                                        Disponibilní data&lt;br /&gt;Obr č.2 Proces získávání informací DW&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-3593970050421406406?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/3593970050421406406/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/data-warehouse.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3593970050421406406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3593970050421406406'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/data-warehouse.html' title='„Data Warehouse'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-3991639960214357997</id><published>2009-03-27T14:24:00.002-07:00</published><updated>2009-03-27T14:25:22.127-07:00</updated><title type='text'>RIS (Reservation Information System)</title><content type='html'>– např. rezervační systémy v  organizacích dopravního, cestovního ruchu.&lt;br /&gt;GIS (Geographical Information System) – geografické informační systémy – pro podporu kreslení a vyhodnocování map, vytváření územních modelů apod.&lt;br /&gt;CAD (Computer Aided Design) – podporující konstrukční a návrhářské práce v průmyslu, počítačově podporovaný návrh výrobku a jeho konstrukční řešení.&lt;br /&gt;CAM (Computer Aided Manufacturing) – automatizovaná podpora řízení výrobních provozů.&lt;br /&gt;OIS (Office Information System) – zajišťující podporu převážně rutinních kancelářských prací (zpracování a správa dokumentů, elektronická pošta atd.).&lt;br /&gt;EDI (Electronic Data Interchange) – tyto systémy chápeme jako způsob výměny strukturovaných dat (objednávek, faktur) na základě dohodnutých standardů zpráv mezi informačními systémy jednotlivých obchodních partnerů pomocí elektronických prostředků. EDI umožňuje přímé propojení informačního systému daného subjektu s jeho zákazníky, dodavateli, finančními ústavy, dopravními organizacemi atd. a ve svém důsledku vede k tzv. „bezpapírovému“ obchodu. EDI je záležitost historicky spíše starší a proprietární mezi dvěmi firmami, dnes se více začíná mluvit v rámci B2B o standardizovaných řešeních.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-3991639960214357997?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/3991639960214357997/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/ris-reservation-information-system.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3991639960214357997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3991639960214357997'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/ris-reservation-information-system.html' title='RIS (Reservation Information System)'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-728367233243117439</id><published>2009-03-27T14:24:00.001-07:00</published><updated>2009-03-27T14:24:56.990-07:00</updated><title type='text'>DWH (Data Warehouse)</title><content type='html'>– datový sklad – představuje nový prvek v architektuře informačních systémů. Umožňuje efektivně ukládat data za delší časové intervaly a na jejich základě uskutečňovat analýzy časových řad, vývojových trendů, nejrůznějších závislostí a další analýzy. Podporuje vzájemnou provázanost mezi jednotlivými oblastmi informačního systému a hraje v něm významnou integrační roli.&lt;br /&gt;MIS (Management Information System) – podporuje zejména taktickou a operativní úroveň řízení (např. účetnictví, nákup, prodej, sklady,..).&lt;br /&gt;OLTP (On-Line Transaction Processing) – je bezprostředně spojen s typem provozu v rámci dané organizace (např. systémy bezprostředně podporující dílenské, skladovací, transportní operace výrobních podniků, rezervační systémy dopravních společností, zákaznické systémy energetických společností, systémy podporující provoz na přepážkách  u bankovních systémů, apod.).&lt;br /&gt;CIS (Customer Information System) – je implementován např. u energetických, teplárenských, servisních organizací zajišťující bezprostřední styk se zákazníkem, např. odečty spotřeby elektřiny, správu a montáž elektroměrů, fakturaci na zákazníka apod.&lt;br /&gt;Obr. č.1 Obecné schéma architektury IS/IT&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-728367233243117439?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/728367233243117439/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/dwh-data-warehouse.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/728367233243117439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/728367233243117439'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/dwh-data-warehouse.html' title='DWH (Data Warehouse)'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-9020396284561371113</id><published>2009-03-27T14:23:00.002-07:00</published><updated>2009-03-27T14:24:25.859-07:00</updated><title type='text'>Obr. č.1 Porovnání struktur EIS nad OLTP a OLAP</title><content type='html'>Chaos                                                                         Struktura&lt;br /&gt;Operativní              Dispozitivní                                     Operativní                                  Dispozitivní&lt;br /&gt; prostředí                 prostředí                                         prostředí                                     prostředí&lt;br /&gt;&lt;br /&gt;     Provozní                  Útvary                                         Provozní                                          Útvary&lt;br /&gt;     Systémy                   řízení                                           systémy                                           řízení&lt;br /&gt;Obr. č.1 Porovnání struktur EIS nad OLTP a OLAP&lt;br /&gt;EIS (Executive Information System) – systémy specializované na podporu vedení podniků a institucí  (např.  strategie  podniku, finanční řízení,  marketing apod.) byly původně orientovány na podporu nejvyšší úrovně řízení podniků. V současné době jsou však tyto aplikace stále více orientovány i na střední management, který dnes tvoří většinu jejich uživatelů a rovněž na další podnikové specialisty. EIS využívá všech dostupných informačních zdrojů vytvářených na nižších úrovních informačního systému, tj. úlohami transakčního charakteru (OLTP), úlohami pro taktické a operativní řízení (MIS), úlohami pro podporu rozhodování (DSS). EIS v sobě integruje všechny nejdůležitější datové, procedurální a další zdroje systému, významné pro řízení organizace jako celku. S tím jsou spojeny i specifické nároky na prezentace informací a jejich zpřístupnění vedoucím pracovníkům firmy. EIS je tak především analytický a prezentační nástroj založený na využití již existujících dat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-9020396284561371113?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/9020396284561371113/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/obr-c1-porovnani-struktur-eis-nad-oltp.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/9020396284561371113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/9020396284561371113'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/obr-c1-porovnani-struktur-eis-nad-oltp.html' title='Obr. č.1 Porovnání struktur EIS nad OLTP a OLAP'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-3136345291857045585</id><published>2009-03-27T14:23:00.001-07:00</published><updated>2009-03-27T14:23:42.297-07:00</updated><title type='text'>FUNKCE OLTP OLAP</title><content type='html'>FUNKCE OLTP OLAP&lt;br /&gt;OBSAH DAT průběžné hodnoty, detaily archivní, souhrnná, kalkulovaná&lt;br /&gt;USPOŘÁDÁNÍ DAT záznamy n-dimenzionální pole dat&lt;br /&gt;ORGANIZACE DAT liší se dle aplikace přizpůsobená dle potřeb podniku&lt;br /&gt;CHARAKTER DAT dynamický statický, aktualizovaný&lt;br /&gt;ČASOVÝ FAKTOR DAT průběžný historický, průběžný, kombinovaný&lt;br /&gt;STRUKTURA DAT, FORMÁT složitá, vhodná pro operativní výpočty jednoduchá, vhodná pro analýzy&lt;br /&gt;PRAVDĚPODOBNOST PŘÍSTUPU vysoká střední až nízká&lt;br /&gt;TRANSAKČNÍ OBJEM malý velký&lt;br /&gt;ZÁPIS DAT přímým přístupem do polí s přístupem a manipulací, nikoliv přímo&lt;br /&gt;UŽITÍ DAT strukturované, opakované nestrukturované, analytické&lt;br /&gt;ODEZVA DOTAZU menší než  1 až 3 sec. sec. až min.&lt;br /&gt;IMPORT DAT pouze pro obnovu velmi rychlý, dle scénáře nebo na základě události&lt;br /&gt;&lt;br /&gt;Tabulka č. 1 Porovnání Přístupu OLTP a OLAP (zdroj: SOFTWARE AG)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-3136345291857045585?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/3136345291857045585/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/funkce-oltp-olap.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3136345291857045585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3136345291857045585'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/funkce-oltp-olap.html' title='FUNKCE OLTP OLAP'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8468624523093926715</id><published>2009-03-27T14:22:00.002-07:00</published><updated>2009-03-27T14:23:12.269-07:00</updated><title type='text'>Z hlediska dlouhodobějšího ...</title><content type='html'>Z hlediska dlouhodobějšího charakteru řízení (čím je vyšší úroveň managementu, tím je dlouhodobější horizont řízení strategie firmy) má management jiná rozhodovací kritéria než na operativní úrovni, potom mluvíme o tzv. dispozitivní úrovni řízení, která je operativní úrovni nadřazena. Před vznikem konceptu Data Warehouse byly aplikace určené pro dispozitivní úroveň řízení řešeny individuálně podle specifických potřeb daného managementu. Tato řešení se vyznačují nekoordinovaným přístupem k datům, což má často za následek zkreslení jednotlivých pohledů uživatelů na dispozitivní úrovni. Příčinou takového stavu byl:&lt;br /&gt; odlišný výběr sledovaných operativních dat,&lt;br /&gt; různá míra agregace dat, jejich odlišné filtrování a konsolidace.&lt;br /&gt;S nárůstem potřeb přístupu manažerů k datům operativní úrovně z hlediska jejich dispozitivní úrovně řízení docházelo rovněž často ke zvyšování doby odezvy úloh operativní úrovně.&lt;br /&gt;Koncept Data Warehouse řeší individuální přístup k operativním datům, jež můžeme označit jako „chaotický“, pomocí zavedení speciální infrastruktury dat mezi operativní a dispozitivní úrovní řízení, tzn. zavedením datového skladu. Přístup a zpracování dat pro potřeby dispozitivní úrovně řízení je označováno jako OLAP. V následující tabulce je uvedeno porovnání obou přístupů které jsou realizovány pro operativní (OLTP) a dispozitivní úroveň (OLAP).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8468624523093926715?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8468624523093926715/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/z-hlediska-dlouhodobejsiho.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8468624523093926715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8468624523093926715'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/z-hlediska-dlouhodobejsiho.html' title='Z hlediska dlouhodobějšího ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8379799211479317423</id><published>2009-03-27T14:22:00.001-07:00</published><updated>2009-03-27T14:22:45.540-07:00</updated><title type='text'> nejednotnost (diverzita) datových struktur,</title><content type='html'> neflexibilní uživatelský přístup,&lt;br /&gt; malá integrace informačních systémů&lt;br /&gt; obsahová nedostatečnost dat, která neumožňovala komplexní pohled.&lt;br /&gt;Data Warehouse se koncentruje na požadavky koncových uživatelů manažerské úrovně, které jsou představovány převážně úlohami analytického charakteru na dispozitivní úrovni a jsou realizovány pomocí přístupu OLAP (On-Line-Analitical-Processing).&lt;br /&gt;Koncept DataWarehose byl definován firmou IBM koncem 80. let Billem Inmonem jako strategie přístupu k datům. Požadavky jednotlivých skupin uživatelů manažerské úrovně se vzhledem k datovému přístupu v rámci jedné firmy liší podle horizontální nebo vertikální úrovně jejich řízení. Zde, podle manažerských informačních potřeb, je nutné přizpůsobení datových struktur, tak i implementace přípravných procedur. Tyto požadavky přesahují rámec možností operativní úrovně řízení, která je podporována provozními programovými aplikacemi, jež většinou řeší oborově vymezenou oblast (doprava, personalistika, atd.) a jsou převážně řešeny odděleně podle svého oborového zaměření pomocí přístupu OLTP (On-Line-Transaction-Processing.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8379799211479317423?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8379799211479317423/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/nejednotnost-diverzita-datovych.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8379799211479317423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8379799211479317423'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/nejednotnost-diverzita-datovych.html' title=' nejednotnost (diverzita) datových struktur,'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1845469603717017287</id><published>2009-03-27T14:21:00.002-07:00</published><updated>2009-03-27T14:22:14.800-07:00</updated><title type='text'>Prostředí FirstStep ...</title><content type='html'>Prostředí FirstStep napomáhá udržet linii cílů, úkolů a předpokladů jednotlivých procesů. Při testování vlivu změn na modelu, by se měla zásadně používat kopie modelu. Jinak hrozí, že dojde ke změně poslání, cílů atd.&lt;br /&gt;FirstStep poskytuje možnost modelovat některé procesy s vysokou mírou podrobnosti, jiné pouze na nutné úrovni popisu. Výhodou dekompozice velkých procesů do malých „článků“ nebo sub-procesů , je možnost modelování na jednotlivých částech jednoho modelu odděleně (paralelní vývoj). Jednotlivé kousky (články) mohou být spojeny do jednoho výsledného modelu, který pak může být předmětem testování, simulace a zlepšení. Dalším důvodem dekompozice tímto způsobem je dosažení lepší komunikace a pochopení problematiky. Velké a komplexní modely mohou být representovány několika jednoduchými obdélníky na nejvyšší úrovni se skrytými detaily uvnitř. Pokud má někdo zájem nahlédnout na detaily, jednoduše provede hierarchický rozpad na požadovanou úroveň.&lt;br /&gt;&lt;br /&gt;rozpad na požadovanou úroveň.&lt;br /&gt;6.1 Úvod do problematiky koncepce datového skladu (DW)&lt;br /&gt;Koncepce Data Warehouse představuje specifickou strategii přístupu k datům a získávání informací z těchto dat, je určitým řešením problémů minulosti, tj.: &lt;br /&gt; nekonzistence dat,&lt;br /&gt;  neexistence standardů,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1845469603717017287?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1845469603717017287/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/prostredi-firststep.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1845469603717017287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1845469603717017287'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/prostredi-firststep.html' title='Prostředí FirstStep ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-3130345508880671220</id><published>2009-03-27T14:21:00.001-07:00</published><updated>2009-03-27T14:21:33.001-07:00</updated><title type='text'>obrázek č. 4 objekty procesního modelu v prostředí FirstSTEP</title><content type='html'>Obrázek 4 znázorňuje rozpad procesního modelu v prostředí FirstSTEP. Hlavní proces je tvořen několika sub-procesy (3 až 7). Každý z těchto sub-procesů je tvořen dalšími sub-procesy, až pokud nedosáhneme atomické úrovně, kde se definují aktivity (úlohy) a jejich popis. Z hlediska cílů organizace a top procesů určených k inovaci, není zcela jednoduché vybrat proces pro modelování. &lt;br /&gt;Rovněž je nutné pro daný model vybrat a nashromáždit vhodné informace, dále rozhodnout jak podrobně a do jaké hloubky budete modelovat. Je nutné, aby projektant po celou dobu prací postupoval v rámci jemu přidělených pravomocí vzhledem k projektu.&lt;br /&gt;Klíčové procesy podniku a jejich cíle, jsou determinovány předmětem podnikání a požadavky zákazníků. Většinou zahrnují náklady, dodávky, kvalitu, produktivitu, úroveň spokojenosti zákazníka atd. Aby tyto zásady byly v průběhu zpracování projektu splněny, je třeba:&lt;br /&gt;­ definovat hlavní procesy a jejich cíle tak aby bylo možné rozhodnout, které procesy se mají modelovat,&lt;br /&gt;­ identifikovat, která část organizace odpovídá za daný proces, nebo participuje na části modelovaného proces, včetně rozhraní.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-3130345508880671220?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/3130345508880671220/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/obrazek-c-4-objekty-procesniho-modelu-v.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3130345508880671220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3130345508880671220'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/obrazek-c-4-objekty-procesniho-modelu-v.html' title='obrázek č. 4 objekty procesního modelu v prostředí FirstSTEP'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7615145850382788377</id><published>2009-03-27T14:20:00.000-07:00</published><updated>2009-03-27T14:21:10.908-07:00</updated><title type='text'>• Definujte procesy</title><content type='html'>• Definujte procesy a organizační komponenty • Vytvořte mapu procesů nejvyšší úrovně • Pomoci simulace vytvořte podrobný model věcných procesů • Použijte sestavy k analýze a srovnání&lt;br /&gt;• Pro každou komponentu procesu definujte: • Propojte organizaci, zdroje, produkty, procesy a aktivity navzájem • Spusťte model k vyzkoušení dynamického chování během různých časových period &lt;br /&gt;• Úkoly a události • Upřesněte model – určete počáteční a koncové podmínky, náklady a ostatní atributy Animace poskytne vizualizovaný obraz diagramů procesů, front a chování systému &lt;br /&gt;• Zdroje   &lt;br /&gt;• Produkty   &lt;br /&gt;&lt;br /&gt;5.3.2.1 Subkroky tvorby modelu – Definice a sestavení &lt;br /&gt;Klíčovým rysem modelu FirstSTEPu je procesní tok, který je obvykle modelován shora dolů. Začíná na nejvyšší úrovní (top úrovni) konceptuálních objektů. U procesů nejvyšší úrovně (studovaného objektu) může být proveden rozpad na subprocesy dle potřeby. Nejnižší (atomická) úroveň modelu jsou samostatné právě prováděné úlohy.&lt;br /&gt;Nejobtížnější částí tvorby procesního modelu způsob uchopení reality, tj. provedení rozpadu modelu na části (elementy) a rozhodnutí, které části jsou pro model potřebné. To však neznamená, že nemodelované části nejsou důležité (např. podniková kultura nebo pravomoce). Analytik si musí pamatovat tyto ovlivňující faktory pro interpretaci výsledků modelu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7615145850382788377?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7615145850382788377/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/definujte-procesy.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7615145850382788377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7615145850382788377'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/definujte-procesy.html' title='• Definujte procesy'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2489304737254304208</id><published>2009-03-27T14:19:00.004-07:00</published><updated>2009-03-27T14:20:41.680-07:00</updated><title type='text'>­ Uskutečnění interview ...</title><content type='html'>­ Uskutečnění interview se zaměstnanci a manažery, jež jsou účastníky procesu, s cílem identifikace:&lt;br /&gt;­ co opravdu dělají,&lt;br /&gt;­ které dokumenty a prostředky (zařízení) používají,&lt;br /&gt;­ dobu vykonání činností,&lt;br /&gt;­ jakou hodnotu vytváří,&lt;br /&gt;­ s kým a jak spolupracují.&lt;br /&gt;­ Stanovení klíčových procesů na top úrovni, které budou modelovány.&lt;br /&gt;­ Identifikace a pochopení funkčních oblastí organizace a jejich podporu modelovaných procesů, určení kontaktních bodů mezi funkčními oblastmi.&lt;br /&gt;Důležitou podmínkou úspěchu je, aby tým byl zplnomocněn ke sběru těchto informací.&lt;br /&gt;5.3.2 Fáze procesní modelování – (krok 3) zmapování stávajícího stavu &lt;br /&gt;Mapovat proces znamená graficky znázornit sérií kroků nebo úloh nutných k dosažení určitého cíle. Zde by se měl projektant - analytik dopředu rozhodnout, na které úrovni podrobnosti ukončit analýzu procesu. Další úrovně podrobnosti mohou být přidány později.&lt;br /&gt;Doporučené kroky tvorby modelu jsou znázorněny na obrázku č. 3, kdy etapa srovnání může být uskutečněna před simulací.&lt;br /&gt;obrázek 3 FirstSTEP – postup tvorby modelu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2489304737254304208?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2489304737254304208/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/uskutecneni-interview.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2489304737254304208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2489304737254304208'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/uskutecneni-interview.html' title='­ Uskutečnění interview ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4325161379993016059</id><published>2009-03-27T14:19:00.003-07:00</published><updated>2009-03-27T14:19:56.698-07:00</updated><title type='text'>Komunikace</title><content type='html'>- předkládání nových idejí vedení&lt;br /&gt;- předkládání nových idejí procesnímu týmu&lt;br /&gt;- předkládání nových idejí zaměstnancům&lt;br /&gt;- předkládání nových idejí zákazníkům jako snahu o dodání vyšší hodnoty&lt;br /&gt;Obr. č. 2 Fáze (etapy) postupu procesního přístupu&lt;br /&gt;&lt;br /&gt;5.3.1. Fáze zaměření (plánování)&lt;br /&gt;Obsahuje kroky:&lt;br /&gt;­ Definice vize a rozsahu projektu&lt;br /&gt;­ Budování týmu&lt;br /&gt;V průběhu tvorby modelu je rozhodující zcela porozumět projektu a jeho vymezení. Následuje přehled plánu projektu inovace:&lt;br /&gt;­ Formulace produktu a vize trhu, za účelem úplného pochopení cílů organizace&lt;br /&gt;­ Definice velikosti a rámce projektu a sestavení týmu, který bude projekt řídit.&lt;br /&gt;­ Identifikace cíle a účelu pilotního projektu.&lt;br /&gt;­ Rozhodnutí, které informace jsou třeba tvorbě modelu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4325161379993016059?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4325161379993016059/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/komunikace.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4325161379993016059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4325161379993016059'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/komunikace.html' title='Komunikace'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4883868861994662444</id><published>2009-03-27T14:19:00.001-07:00</published><updated>2009-03-27T14:19:30.051-07:00</updated><title type='text'>5.3 Cyklus inovace podnikatelského procesu</title><content type='html'>Cyklus obnovy procesu může být rozdělen do několika různých kroků. Následující obrázek č. 2 zobrazuje typické fáze cyklu inovace podnikatelského procesu.&lt;br /&gt;Fáze (etapy)&lt;br /&gt;  &lt;br /&gt;Kroky &lt;br /&gt;&lt;br /&gt;Obsah jednotlivých kroků&lt;br /&gt;&lt;br /&gt;- formulace produktu a vize - sestavení týmu - vytvoření &lt;br /&gt;high-level modelu procesu - brainstorming nových ideí - nastartování pilotního projektu - implementace procesu&lt;br /&gt;- definování záběru BPR/BPI - zaškolení týmu - namodelování řetězce aktivit a přiřazení času, zdrojů a nákladů - what-if analýza nových scénářů - sledování / měření výkonnosti - přemístění zdrojů&lt;br /&gt;- definování cílů -  -  - detailní analýzy z hlediska času, využití a alokace zdrojů, nákladů a přínosů - úprava proměnných dle prvotních výsledků - zaškolení zdrojů&lt;br /&gt;- sledování nově zavedeného procesu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4883868861994662444?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4883868861994662444/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/53-cyklus-inovace-podnikatelskeho.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4883868861994662444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4883868861994662444'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/53-cyklus-inovace-podnikatelskeho.html' title='5.3 Cyklus inovace podnikatelského procesu'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-3201663891440491793</id><published>2009-03-27T14:18:00.002-07:00</published><updated>2009-03-27T14:19:02.411-07:00</updated><title type='text'>5.1.4 Sdílené procesy (sdílené služby)</title><content type='html'>5.1.4 Sdílené procesy (sdílené služby)&lt;br /&gt;vytvářejí podmínky, které umožňují funkci všech podnikových procesů. Zpravidla mají pouze interního zákazníka.&lt;br /&gt;5.1.5 Vedlejší procesy &lt;br /&gt;jsou obdobou hlavních procesů, nejsou však pro organizaci důležité  (nepodílí se výrazným způsobem na hlavní činnosti). Mohou být prováděny souběžně s hlavními procesy nebo sdílenými službami, jsou však vykonávány pro externího zákazníka. &lt;br /&gt;5.2.  Rámcový model procesů&lt;br /&gt;Mezi jednotlivými procesy existují vazby, které jsou v každé organizaci utvářeny odlišně. Obecně lze definovat  lze definovat rámcový procesní model organizace následujícím schématem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;obr. č.1 Rámcový procesní model&lt;br /&gt;&lt;br /&gt;­ Řídící procesy řídí činnost všech procesů v rámci celé organizace.&lt;br /&gt;­ V rámci hlavních procesů probíhají procesy klíčové. &lt;br /&gt;­ Podpůrné procesy zajišťují chod hlavních procesů.&lt;br /&gt;­ Sdílené procesy jsou využívány hlavními a vedlejšími procesy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-3201663891440491793?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/3201663891440491793/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/514-sdilene-procesy-sdilene-sluzby.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3201663891440491793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3201663891440491793'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/514-sdilene-procesy-sdilene-sluzby.html' title='5.1.4 Sdílené procesy (sdílené služby)'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8088513348783974988</id><published>2009-03-27T14:18:00.001-07:00</published><updated>2009-03-27T14:18:30.645-07:00</updated><title type='text'>Každý proces má své zákazníky, jimiž jsou:</title><content type='html'>• externí zákazník, který využívá výstupy organizace,&lt;br /&gt;• interní zákazník, jež je subjektem uvnitř organizace.&lt;br /&gt;Podle kategorií zákazníků se dělí procesy na&lt;br /&gt;• hlavní procesy&lt;br /&gt;• podpůrné procesy&lt;br /&gt;• sdílené procesy (sdílené služby)&lt;br /&gt;• vedlejší procesy&lt;br /&gt;• řídící procesy.&lt;br /&gt;5. 1  Definice procesů&lt;br /&gt;5.1.1 Řídící procesy&lt;br /&gt;definují strategické cíle a způsoby zajištění realizace těchto cílů v rámci celé organizace.&lt;br /&gt;5.1.2 Hlavní procesy&lt;br /&gt;vytvářejí hodnotu pro externího zákazníka, jejich výsledkem je produkce takových výstupů, které externí zákazník požaduje. Hlavní procesy jsou dány hlavními podnikatelskými činnostmi organizace, jež vedou k naplnění strategické vize a poslání podniku.&lt;br /&gt;5.1.3 Podpůrné procesy&lt;br /&gt;vytvářejí podmínky, které umožňují hlavní funkci procesů. Vyznačují se tvorbou přidané hodnoty pro interního zákazníka.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8088513348783974988?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8088513348783974988/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/kazdy-proces-ma-sve-zakazniky-jimiz.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8088513348783974988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8088513348783974988'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/kazdy-proces-ma-sve-zakazniky-jimiz.html' title='Každý proces má své zákazníky, jimiž jsou:'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-3152893058239038602</id><published>2009-03-27T14:17:00.002-07:00</published><updated>2009-03-27T14:18:05.571-07:00</updated><title type='text'>Jedním ze způsobu jak dosáhnout optimální definice ...</title><content type='html'>Jedním ze způsobu jak dosáhnout optimální definice požadavků uživatele již na počátku projektu informačního systému, tzn. omezit počet změn v průběhu projektu (každá pozdější změna prodražuje projekt), je důsledné zmapování organizace z pohledu procesního řízení. Na základě provedené procesní analýzy (případně následného redesignu procesů nebo jejich reengineeringu) lze kvalitně definovat uživatelské požadavky na informační systém. Výhodou tohoto přístupu k definování uživatelských požadavků je eliminace významných změn v požadavcích na nově vyvíjený informační systém v průběhu jeho vývoje, což zpravidla projekt informačního systému prodraží.&lt;br /&gt;Metodologie projektu procesní analýzy vychází z procesního pojetí činnosti organizace, jež je postaveno na následující definici procesu.&lt;br /&gt;Proces je logicky nebo chronologicky seřazený soubor činností s definovanými vstupy a výstupy, které vytvářejí ucelenou hodnotu pro zákazníka procesu.&lt;br /&gt;Procesy zpravidla procházejí napříč funkční a organizační strukturou (funkčním uspořádáním organizace) dané organizace, což nezajišťuje jejich optimální řízení. Optimální řízení procesu znamená řízení takovým způsobem, kdy celý proces řízen, monitorován, sledován a vykazován vlastníkem procesu, jež proces řídí s cílem naplnění požadavků zákazníka.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-3152893058239038602?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/3152893058239038602/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/jednim-ze-zpusobu-jak-dosahnout.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3152893058239038602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3152893058239038602'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/jednim-ze-zpusobu-jak-dosahnout.html' title='Jedním ze způsobu jak dosáhnout optimální definice ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2379710305807620433</id><published>2009-03-27T14:17:00.001-07:00</published><updated>2009-03-27T14:17:32.430-07:00</updated><title type='text'>4.2.3.4 Řízení návaznosti procesů:</title><content type='html'>Procesní mapa jasně zobrazuje body, ve kterých výsledek činnosti jednoho oddělení poskytuje produkt nebo službu jinému oddělení. V každém z těchto bodů existuje dodavatelsko-odběratelská návaznost. Tyto návaznosti často představují největší příležitosti ke zlepšení výkonu. Procesně orientovaný manažer podrobně sleduje vzájemné návaznosti a snaží se odstraňovat případné bariéry účinnosti a efektivnosti.&lt;br /&gt;&lt;br /&gt;Klíčové otázky procesního řízení jsou:&lt;br /&gt;&lt;br /&gt;Rozumíte svým procesům?&lt;br /&gt;Jsou vhodně sestaveny subcíle procesů?&lt;br /&gt;Je výkon procesu řízen?&lt;br /&gt;Jsou každému zdroji přiděleny dostatečné zdroje?&lt;br /&gt;Jsou řízeny návaznosti mezi kroky procesu?&lt;br /&gt;&lt;br /&gt;5.  Metodologie analýzy procesu podnikání pomocí procesního mapování&lt;br /&gt;Tradiční přístupy návrhu, vývoji a redesignu informačního systému organizace předpokládají, že uživatelé informačního systému předem znají a umějí formulovat své požadavky na budoucí informační systém. Tato skutečnost ovšem počítá s tím, že změny  uživatelských potřeb v průběhu vývoje informačního systému jsou minimální. Praxe však ukazuje, že právě opak je pravdou, tzn., že nejvíce požadavků na změnu informačního systému vzniká až při samotném vývoji informačního systému.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2379710305807620433?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2379710305807620433/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/4234-rizeni-navaznosti-procesu.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2379710305807620433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2379710305807620433'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/4234-rizeni-navaznosti-procesu.html' title='4.2.3.4 Řízení návaznosti procesů:'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7527507968293775564</id><published>2009-03-27T14:16:00.002-07:00</published><updated>2009-03-27T14:17:07.052-07:00</updated><title type='text'>Příklad:</title><content type='html'> Ohodnotit výkon procesu, oznámkovat jej v oblastech jako spokojenost zákazníka, náklady, jasnost a úplnost dokumentace, jakost a množství produktu nebo míra výkonu služeb. Stejně tak by mělo být ohodnoceno každé přispění organizačních jednotek k procesu.&lt;br /&gt; Určit vlastníka procesu, který bude dohlížet na celý jeho průběh.&lt;br /&gt; Ustanovit procesní tým, který se bude měsíčně scházet, aby hodnotil a zdokonaloval výkon procesu.&lt;br /&gt; Provádět měsíční hodnocení operací, ve kterých bude nejprve hodnocen výkon procesu.&lt;br /&gt; Odměňovat zaměstnance v útvarech na základě splnění cíle procesu a příspěvku útvaru k naplnění procesních cílů.&lt;br /&gt;4.2.3.3 Řízení zdrojů: &lt;br /&gt;Manageři si vždy uvědomovali, že alokace zdrojů je hlavní součástí jejich odpovědnosti. Nicméně procesně orientovaná alokace zdrojů je  odlišná od obvyklého útvarově orientovaného přístupu. Ten obvykle vyplývá z řady osobních schůzek mezi řídícím pracovníkem a jeho úsekovým nebo subúsekovým manažerem. Při těchto schůzkách každý manažer usiluje o "větší porci koláče" a nejpřesvědčivější prezentace jsou odměněny největšími příděly zdrojů.&lt;br /&gt;Procesně orientovaná alokace zdrojů je výsledkem určení finančních a lidských nároků požadovaných procesem pro dosažení jeho cílů. Poté je každému oddělení přiřazen podíl zdrojů odpovídající jeho příspěvku k  procesu. Je-li v podniku zavedeno procesní řízení, rozpočet každého oddělení je tvořen součtem všech jeho procesních rozpočtů.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7527507968293775564?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7527507968293775564/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/priklad_4651.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7527507968293775564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7527507968293775564'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/priklad_4651.html' title='Příklad:'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-2140124573462297547</id><published>2009-03-27T14:16:00.001-07:00</published><updated>2009-03-27T14:16:46.103-07:00</updated><title type='text'>Příklad</title><content type='html'>Přijetí objednávky je první částí (subprocesem) procesu vyřizování objednávek. Na tomto prvku se podílejí tři útvary:&lt;br /&gt; Oddělení prodeje, které přijímá telefonické objednávky&lt;br /&gt; Oddělení financí, které ověřuje zákazníkův úvěr&lt;br /&gt; Oddělení výrobní kontroly, které sleduje stav zásob, a pokud je to žádoucí, rozhoduje o výrobě dalšího produktu. &lt;br /&gt;&lt;br /&gt;4.2.3.2 Řízení výkonu&lt;br /&gt;Po stanovení procesu a seznamu jeho cílů a subcílů, by měli jeho manažeři určit způsoby získávání zpětné vazby na výsledek procesu od interních i externích zákazníků, posuzování výkonu procesu vzhledem k cílům a subcílům, poskytování zpětné vazby na výkonu procesu útvarům, které se na něm podílejí, zavádění mechanizmu řešení případných problémů v procesu a neustálého zdokonalování jeho výkonu, a úpravy cílů tak, aby odpovídaly novým  požadavkům zákazníků. V průběhu posledních několika let bylo získáno mnoho nových poznatků o řízení výkonu procesu. Zjistilo se, že pokud jsou procesy řízeny na základě jejich průběhu, potom manageři musí zavést styl řízení, kterou mnoho organizací začíná nazývat procesním managementem Zajistit, aby byl proces vyřizování objednávek řízen kontinuálně lze pomocí procesního řízení.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-2140124573462297547?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/2140124573462297547/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/priklad_27.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2140124573462297547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/2140124573462297547'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/priklad_27.html' title='Příklad'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6895584513527384006</id><published>2009-03-27T14:14:00.004-07:00</published><updated>2009-03-27T14:16:19.279-07:00</updated><title type='text'>Výsledkem úspěšné snahy ...</title><content type='html'>Výsledkem úspěšné snahy o zdokonalovaní procesu je kladná odpověď na klíčovou otázku návrhu nebo zdokonalení procesu: &lt;br /&gt;Je to nejvýkonnější a nejefektivnější postup &lt;br /&gt;k dosažení cílů procesu?&lt;br /&gt;Obr. 1   Procesní mapa stávajícího procesu  „jak to je“&lt;br /&gt;Obr. 2   Procesní mapa stávajícího procesu „jak to má být“&lt;br /&gt;&lt;br /&gt;4.2.3 Procesní řízení&lt;br /&gt;Bohužel ani nejlogičtější procesy, procesy přímo zaměřené na cíl, se neřídí samy. Toto jsou čtyři prvky efektivního řízení procesů:&lt;br /&gt;&lt;br /&gt;4.2.3.1 Proces řízení cílů&lt;br /&gt;Cíle procesu by měly sloužit jako základ pro stanovení jeho subcílů. Pokud řídíme stavbu vodovodu, budeme chtít, aby bylo možno měřit tlak a čistotu vody nejen na jeho konci, ale také v různých kritických spojích vodovodu. Jednoduše řečeno, potřebujeme zjistit subcíle procesu po každém kroku, který má zvlášť rozhodující vliv na konečné zákazníkem určené cíle procesu. Jakmile jsou stanoveny subcíle procesu, mohou být určeny cíle organizačních jednotek. Každý cíl činnosti organizační jednotky, který byl stanoven na podnikové úrovni by měl být, je-li to nutné, upraven tak, aby maximálně přispíval k cílům a subcílům procesů. A protože smyslem činnosti organizační jednotky je podpora procesů, měla by být hodnocena podle toho, do jaké míry těmto procesům slouží. Když stanovíme cíle organizační jednotky tak, aby podporovaly procesy, zajistíme tím shodu s potřebami interních i externích zákazníků. Prvním krokem by měla být identifikace všech organizačních jednotek, podílejících se na procesu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6895584513527384006?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6895584513527384006/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/vysledkem-uspesne-snahy.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6895584513527384006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6895584513527384006'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/vysledkem-uspesne-snahy.html' title='Výsledkem úspěšné snahy ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-144350899541465884</id><published>2009-03-27T14:14:00.003-07:00</published><updated>2009-03-27T14:14:56.557-07:00</updated><title type='text'>Během dokumentování ...</title><content type='html'>Během dokumentování a analýzy stávajícího procesu vyřizování objednávek může váš tým odhalit celou řadu „slabých míst“:&lt;br /&gt; Prodejcům trvá předkládání objednávek příliš dlouho&lt;br /&gt; Procesních kroků je příliš mnoho&lt;br /&gt; Dávkové zpracování objednávek zpomaluje proces&lt;br /&gt; Ověřování úvěru se provádí jak u starých tak u nových zákazníků&lt;br /&gt; Ověřování úvěru proces zdržuje, protože se provádí před shromažďováním  objednávek (a nikoliv souběžně) &lt;br /&gt;Tým pak vytvoří procesní mapu „jak to má být“, která odráží proces vyplňování objednávky. Tato procesní mapa je zobrazena na obrázku 2., která znázorňuje, hlavní změny v mapě „jak to má být“ jsou:&lt;br /&gt; Přímý vstup objednávek do oddělení prodeje, odstraňující prodejní administrativu&lt;br /&gt; Paralelní zpracování objednávky a kontroly platební schopnosti&lt;br /&gt; Odstranění vícenásobného vstupu a kroků zaznamenávání objednávky&lt;br /&gt;&lt;br /&gt; Další možný proces „jak to má být“  by mohl zahrnovat systém just-in-time, kde jsou zásilky sestavovány při objednávce a ne skladovány. &lt;br /&gt;Procesní mapování „jak to je“ a „jak to má být“  jsou základními kroky v projektech optimalizace procesů. Avšak neměli by se v nadměrné míře zabývat detaily „jak to je“; účelem je rázně eliminovat, zjednodušit, nebo zdokonalit vaše „jak to má být“ procesy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-144350899541465884?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/144350899541465884/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/behem-dokumentovani.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/144350899541465884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/144350899541465884'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/behem-dokumentovani.html' title='Během dokumentování ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4909319977475424811</id><published>2009-03-27T14:14:00.001-07:00</published><updated>2009-03-27T14:14:31.050-07:00</updated><title type='text'>4.2.2 Procesní projektování</title><content type='html'>Když jsou cíle kritických procesů stanoveny, musí manažeři zajistit návrh procesů, které povedou k efektivnímu dosahování těchto cílů. Abychom zjistili, zda je každý proces a podproces správně strukturován, je potřeba vytvořit komplexní tým, který sestrojí mapu procesů. Tato mapa zobrazuje vstupně-výstupní vztahy procesně závislých operací a oddělení. Pomocí posloupnosti procesních kroků dokumentuje aktivity nutné k transformaci vstupů na výstupy. Týmy procesního mapování často zjišťují, že žádné procesy nebyly stanoveny. Prostě se to nějak dělá.&lt;br /&gt; Na obrázku 1 je procesní mapa nynějšího stavu procesu vyřizování objednávek jak ji sestavil tým procesního mapování tvořen zástupci všech útvarů, které k tomuto procesu přispívají, a to včetně zákazníka. Tým procesního mapování sleduje proces transformace vstupu (objednávka) přes všechny mezikroky až k vytvoření požadovaného finálního výstupu (platba). Mapa znázorňuje jak se jednotlivé funkce zapojují do průběhu zpracování objednávky. Tato struktura procesního mapování umožňuje identifikovat kritická rozhraní, časově překrývat provádění různých podprocesů, definovat možnosti simulace procesů, aplikovat metody kalkulace nákladů založené na činnostech a odhalit „slabá místa“ procesů (nelogické, chybějící nebo nadbytečné kroky).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4909319977475424811?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4909319977475424811/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/422-procesni-projektovani.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4909319977475424811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4909319977475424811'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/422-procesni-projektovani.html' title='4.2.2 Procesní projektování'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7569450126908749784</id><published>2009-03-27T14:13:00.000-07:00</published><updated>2009-03-27T14:14:03.442-07:00</updated><title type='text'>Procesní cíle ...</title><content type='html'>Procesní cíle se vážou jak na cíle podniku, tak na požadavky zákazníků. Uvědomme si, že se nejedná pouze o cíle oddělení vývoje. Tyto procesní cíle vyjadřují také výkony, které se v procesu vývoje produktu a jeho uvedení na trh očekávají od partnerů oddělení vývoje, včetně marketingu, prodeje, a činností v terénu. Splněním těchto cílů uvedený proces významně přispěje k uskutečňování strategické vize podniku.&lt;br /&gt;Příklad:&lt;br /&gt;Představme si softwarovou společnost, jejímž firemním cílem je do konce příštího roku zkrátit čas odezvy na objednávku na 72 hodin. Pro dosažení tohoto cíle se strategicky významným stává proces vyřizování objednávek. Některé z  cílů tohoto procesu  jsou:&lt;br /&gt; Žádný produkt nebude kvůli chybě odeslán na nesprávnou adresu&lt;br /&gt; Stanovený cíl dosáhneme bez zvýšení nákladů na vyřizování objednávek&lt;br /&gt; Zákazníkům poskytneme kontaktní místo pro dotazy a reakce na objednávky&lt;br /&gt;Ke splnění těchto firemních cílů by manažeři měli stanovit také cíle vedlejších procesů (procesů služeb zákazníkům). V každém případě hlavním cílem procesního mapování je zajistit návaznost klíčových procesů na požadavky zákazníka a organizace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7569450126908749784?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7569450126908749784/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/procesni-cile.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7569450126908749784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7569450126908749784'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/procesni-cile.html' title='Procesní cíle ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8638763530397740578</id><published>2009-03-27T14:10:00.000-07:00</published><updated>2009-03-27T14:13:31.220-07:00</updated><title type='text'>4.2.1 Procesní cíle</title><content type='html'>4.2.1 Procesní cíle&lt;br /&gt;Každý hlavní proces a každý podpůrný proces existuje proto, aby přispíval k naplňování jednoho nebo několika cílů podniku. Tudíž každý proces by měl být poměřován rovněž procesními cíli, které vyjadřují očekávaný přínos tohoto procesu k jednomu nebo několika cílům podniku. Dle většiny zkušeností většina procesů cíle nemá. Zatímco jednotlivé organizační jednotky obvykle mají cíle, většina klíčových procesů překračuje hranice organizačních jednotek. Jestliže pracujeme v organizaci, ve které je fakturace klíčovým procesem a ptáme se na cíle procesu fakturace, odpověď obvykle zní: „Aha, vy myslíte cíle oddělení fakturace.“ Když namítneme, že mluvíme opravdu o procesu fakturace – a to včetně těch kroků, které se provádí mimo oddělení fakturace – často se setkáváme pouze s nechápavými pohledy.&lt;br /&gt;Měření výkonnosti je nejúčinnější, jestliže se provádí s ohledem na strategické záměry nebo taktické cíle podniku. Procesní cíle se odvozují ze tří zdrojů, jimiž jsou:&lt;br /&gt;1. cíle podniku,&lt;br /&gt;2. požadavky zákazníků,&lt;br /&gt;3. benchmarkingové informace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8638763530397740578?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8638763530397740578/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/421-procesni-cile.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8638763530397740578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8638763530397740578'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/421-procesni-cile.html' title='4.2.1 Procesní cíle'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-3368252603449701651</id><published>2009-03-27T14:09:00.004-07:00</published><updated>2009-03-27T14:10:26.597-07:00</updated><title type='text'>Pokračujme dál v příkladu výrobce automobilů.</title><content type='html'>Představme si prodejce důkladně vyplňující objednávkové formuláře, úřednice bezchybně vkládající data do počítače a pracovníky překladiště zdatně nakládající auta na kamiony. Avšak efekt jakéhokoliv zvýšení výkonnosti lidí může být limitována logikou (nebo nelogičností) celého procesu distribuce, který je tvořen podprocesy přijímání objednávek, plánování výroby a transportu.&lt;br /&gt;Procesní úroveň je důležitá, protože efektivnost a účelnost procesů by měla podmiňovat celou řadu podnikatelských rozhodnutí. Kupříkladu, jakékoliv reorganizace nebo zeštíhlování jsou zbytečné, pokud v první řadě nezvýší výkonnost procesů. Mnoho organizací, které provedli re-engineering nebo zeštíhlení, neuspělo, protože vedení rozhodlo snížit náklady o 10% napříč celou organizací místo toho, aby zjednodušilo, eliminovalo, nebo provedlo re-engineering základních procesů. Procesní mapování poskytuje ověřený nástroj umožňující pochopit a změnit procesy a tím pomoci zvýšit zisk a konkurenceschopnost.&lt;br /&gt;Stěžejním spojovacím článkem mezi výkonností podniku a individuální výkonností jsou tři procesní proměnné: &lt;br /&gt;1. procesní cíle, &lt;br /&gt;2. procesní projektování,&lt;br /&gt;3. procesní řízení.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-3368252603449701651?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/3368252603449701651/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/pokracujme-dal-v-prikladu-vyrobce.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3368252603449701651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/3368252603449701651'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/pokracujme-dal-v-prikladu-vyrobce.html' title='Pokračujme dál v příkladu výrobce automobilů.'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-9083181625547571641</id><published>2009-03-27T14:09:00.003-07:00</published><updated>2009-03-27T14:09:58.720-07:00</updated><title type='text'>Způsoby zlepšování firemních  procesů</title><content type='html'>Eliminace duplicitních činností           Kombinace souvisejících činností&lt;br /&gt;Eliminace mnohonásobných revizí a schvalování   Eliminace inspekcí&lt;br /&gt;Zjednodušení procesů       Omezení velikosti dávek&lt;br /&gt;Provádění procesů souběžně        Uplatnění principu tahu&lt;br /&gt;Provedení outsourcingu neefektivních činností       Eliminace změn pracovního tempa&lt;br /&gt;Zřízení multifunkčních týmů      Návrh pracovních buněk&lt;br /&gt;Centralizace/decentralizace     &lt;br /&gt;4.2 Výhody procesní analýzy&lt;br /&gt;Podnik je pouze natolik efektivní, nakolik jsou efektivní jeho procesy. Cíle firmy lze dosáhnout pouze vývojem logických firemních procesů. Například, jedním z cílů výrobce automobilů může být zkrácení doby dodávky vozu vybaveného doplňky podle přání zákazníka. Jestliže tato společnost používá neefektivní proces objednávání nebo zmatený proces distribuce, sotva může doufat, že uvedený cíl splní.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-9083181625547571641?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/9083181625547571641/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/zpusoby-zlepsovani-firemnich-procesu.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/9083181625547571641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/9083181625547571641'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/zpusoby-zlepsovani-firemnich-procesu.html' title='Způsoby zlepšování firemních  procesů'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7719914662154108008</id><published>2009-03-27T14:09:00.001-07:00</published><updated>2009-03-27T14:09:35.927-07:00</updated><title type='text'>Na podnikové úrovni ...</title><content type='html'>Na podnikové úrovni vede zkoumání procesů k lepšímu pochopení vztahů zákazník-dodavatel mezi jednotlivými funkcemi (prvky funkční struktury). Na úrovni výroby a služeb probíhá zkoumání rozkladem procesů na podprocesy, prvky pracovních toků, sdílené procesy (služby) a výrobní procesy.&lt;br /&gt;4.1.1 Příklady firemních procesů&lt;br /&gt;Obecné hlavní procesy&lt;br /&gt;Marketing a prodej, Vývoj výrobku/služby a uvedení na trh, Distribuce, Fakturace, Zpracování objednávek, Služby zákazníkům&lt;br /&gt;Oborově-specifické hlavní procesy&lt;br /&gt;Poskytování půjček (bankovnictví), Přiznávání pojistného nároku (pojišťovnictví), Přidělování dotací (vláda), Vrácení zboží (maloobchod), Příprava jídel (restaurace), Manipulace zavazadly (letecké společnosti), Zpracování rezervací (hotely/letecké společnosti)&lt;br /&gt;Obecné podpůrné procesy&lt;br /&gt;Formální strategické a taktické plánování, Rozpočtování, Školení, Řízení zdrojů, Nákup, Řízení IT&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7719914662154108008?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7719914662154108008/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/na-podnikove-urovni.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7719914662154108008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7719914662154108008'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/na-podnikove-urovni.html' title='Na podnikové úrovni ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6434589412453187004</id><published>2009-03-27T14:08:00.002-07:00</published><updated>2009-03-27T14:09:06.248-07:00</updated><title type='text'>Mezi každým vstupem ...</title><content type='html'>Mezi každým vstupem a každým výstupem je proces. Podrobný průzkum procesů, kterými se vstupy mění ve výstupy, je pro celkové chápání a zlepšování podnikových procesů zcela nezbytné.&lt;br /&gt;Firemní proces je sled kroků navržených za účelem vytvářet výrobek nebo službu. Některé procesy (např. proces programování) mohou být plně obsaženy v jediné organizační jednotce organizace. Většina procesů ale prochází napříč funkční strukturou organizace a překlenuje tak „bílá místa“ mezi prvky na organizačním schématu.&lt;br /&gt;Některé procesy vytvářejí výrobky nebo služby, jejíchž příjemcem je externí zákazník dané organizace. Tyto procesy nazýváme hlavní procesy. &lt;br /&gt;Jiné procesy vytvářejí výrobky nebo služby neviditelné pro externího zákazníka, avšak nezbytné pro efektivní řízení firmy. Označují se jako podpůrné procesy. &lt;br /&gt;Další kategorie procesů – řídící procesy – zahrnuje opatření, která by měli provádět manažeři na podporu podnikových procesů. Mezi řídící procesy patří stanovování cílů, operativní plánování, zpětná kontrola, odměňování a alokace zdrojů.&lt;br /&gt;Proces lze chápat jako hodnotový řetězec. Každý krok procesu by měl k tvorbě výrobku nebo poskytování služby přidat jistou hodnotu oproti kroku předchozímu. Například jedním z kroků v procesu vývoje nového produktu může být test přijatelnosti na trhu. Tento krok zvýší přidanou hodnotu zajištěním skutečnosti, že produkt vyhoví požadavkům trhu dříve, než je jeho vývoj ukončen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6434589412453187004?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6434589412453187004/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/mezi-kazdym-vstupem.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6434589412453187004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6434589412453187004'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/mezi-kazdym-vstupem.html' title='Mezi každým vstupem ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6074768836336373663</id><published>2009-03-27T14:08:00.001-07:00</published><updated>2009-03-27T14:08:41.597-07:00</updated><title type='text'>Příklad</title><content type='html'>Přístup společnosti General Electric k procesnímu mapování umožnil týmům zabývajícím se optimalizací podnikových procesů a jejich re-eingineeringem těmto procesům skutečně porozumět. Aplikace procesního mapování v závodě na výrobu elektrických spotřebičů ve městě Louisville vedla ke zjištění, že i když jedna pětina součástek libovolného modelu elektrického spotřebiče je technologicky velice složitá, pouze 5 procent z nich je drahých natolik, aby podstatně ovlivnily náklady na skladování. V General Electric dospěli k závěru, že mohou zrychlit výrobu a snížit náklady, budou-li udržovat vysoký stav zásob levných komponentů a společně s dodavateli vypracují a zavedou programy just-in-time pro dodávky ostatních součástek podle aktuální potřeby. Největší přínos mělo zavedení řízení pořadí, ve kterém jsou jednotlivé součástky předávány z překladiště na montážní linku.&lt;br /&gt;4.1 Proces&lt;br /&gt;Geary A. Rummler a Alan P. Brache ve své vynikající knize Improving Performance: How to Manage the White Space on the Organization Chart (Zvyšování výkonnosti aneb Jak zvládat bílá místa na organizačním schématu) uvádějí, že procesní úroveň je nejméně pochopenou a nejméně řízenou úrovní podnikatelské činnosti. V organizacích procesy probíhají (často spíše klopýtají) bez ohledu na to, zda se o ně staráme či nikoliv. Máme na výběr dvě možnosti:&lt;br /&gt;• můžeme procesy ignorovat a doufat, že dělají to co si přejeme, &lt;br /&gt;• nebo je můžeme pochopit a řídit. (Dokumentování a zkoumání vazeb vstup-výstup (zákazník-dodavatel) zobrazených na procesní mapě může vést k řadě nových poznatků a zlepšení).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6074768836336373663?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6074768836336373663/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/priklad.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6074768836336373663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6074768836336373663'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/priklad.html' title='Příklad'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1949438924015429</id><published>2009-03-27T14:07:00.002-07:00</published><updated>2009-03-27T14:08:14.556-07:00</updated><title type='text'>4. Úvod do procesního mapování</title><content type='html'>Procesní mapování poskytuje nástroj a ověřenou metodologii k identifikaci stávajících procesů ve firmě („jak to je“) a lze ho použít také jako návod („jak to má být“) pro re-engineering podnikových funkcí zajišťujících výrobu a poskytování služeb. Mapování procesů je rozhodujícím pojítkem, které lze využít k lepšímu pochopení a významnému zlepšení procesů ve firmě a zvýšení její výkonnosti.&lt;br /&gt;Procesní mapování je nástroj managementu, který původně vyvinula a implementovala společnost General Electric jako součást své integrované strategie „Workout, Best Practices and Process Mapping“ („Trénink, nejlepší postupy a procesní mapování“) s cílem výrazného zlepšení své výkonnosti. Koncepce procesního mapování je zde užita k popisu všech zásadních kroků ve firemních procesech, a to pomocí diagramů workflow (pracovních toků) a doplňujících komentářů.&lt;br /&gt;Manažeři se často domnívají, že procesy ve firmě dobře znají, ale ve skutečnosti většina z nich neví, jaké procesy to vlastně jsou a je-li možné je zlepšit, zjednodušit nebo odstranit.&lt;br /&gt;Procesní mapování je ověřený analytický a komunikační nástroj, určený k optimalizaci stávajících procesů a k zavádění nové procesně orientované struktury pro potřeby re-engineeringu firemních procesů. Je to vynikající nástroj procesního řízení, který lze použít k lepšímu pochopení stávajících procesů a k eliminaci nebo zjednodušení těch procesů, které vyžadují změnu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1949438924015429?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1949438924015429/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/4-uvod-do-procesniho-mapovani.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1949438924015429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1949438924015429'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/4-uvod-do-procesniho-mapovani.html' title='4. Úvod do procesního mapování'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1322563570211891035</id><published>2009-03-27T14:07:00.001-07:00</published><updated>2009-03-27T14:07:43.596-07:00</updated><title type='text'>Analýza přirozeného jazyka</title><content type='html'>Analýza přirozeného jazyka • nejrozšířenější forma informací • velká pracnost&lt;br /&gt;• vícevýznamovost přirozeného jazyka&lt;br /&gt;• bohatost výrazů přirozeného jazyka&lt;br /&gt;Opakované využití požadavků • snížení pracnosti vývoje informačního systému&lt;br /&gt;• rychlejší vývoj informačního systému&lt;br /&gt;• vytvoření aktuální dokumentace&lt;br /&gt;• snadná přenositelnost informačního systému do jiného prostředí • dodatečné finanční nároky na podpůrné nástroje a jejich údržbu&lt;br /&gt;Analýza úloh • poměrná jednoduchost&lt;br /&gt;• zaměření na komunikaci člověk– počítač&lt;br /&gt;• identifikace nutných znalostí uživatelů • nutnost modifikace uživatelských požadavků vzhledem k novému informačnímu systému&lt;br /&gt;Sociálně - technický přístup • spojení požadavků se sociálním prostředím uživatele&lt;br /&gt;• zreálnění požadavků vzhledem k prostředí • nároky na neformální  atmosféru&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1322563570211891035?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1322563570211891035/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/analyza-prirozeneho-jazyka.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1322563570211891035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1322563570211891035'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/analyza-prirozeneho-jazyka.html' title='Analýza přirozeného jazyka'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6349151514725300691</id><published>2009-03-27T14:06:00.004-07:00</published><updated>2009-03-27T14:07:20.745-07:00</updated><title type='text'>2.12.14. Výhody a nevýhody přístupů odvození uživatelských požadavků</title><content type='html'>2.12.14. Výhody a nevýhody přístupů odvození uživatelských požadavků&lt;br /&gt;Každý přístup odvození uživatelských požadavků má svá silná a slabá místa, protože obecně existují rozdílné kategorie problémů. Odvození požadavků je nejkritičtější činností vývoje informačního systému, která je spojena s nemalých úsilím analytiků a uživatelů. V tabulce č. 1 jsou uvedeny základní výhody a nevýhody přístupu odvození uživatelských požadavků.&lt;br /&gt;&lt;br /&gt;Přístup&lt;br /&gt;Výhody Nevýhody&lt;br /&gt;Přímá komunikace s uživatelem • přímočará, nevyžaduje mezičlánky • pečlivá příprava, pokud má být efektivní&lt;br /&gt;Analýza cílů • dosažení shody mezi rozdílnými uživateli • explicitní definice problému&lt;br /&gt;Tvorba scénářů • vytvoření expertizy zúčastněného uživatele • omezená paměť uživatelů&lt;br /&gt;• někdy malá zkušenost uživatelů s interakcí informačního systému&lt;br /&gt;Analýza formulářů • zdrojem informací není člověk, ale formulář • velká pracnost&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6349151514725300691?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6349151514725300691/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/21214-vyhody-nevyhody-pristupu-odvozeni.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6349151514725300691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6349151514725300691'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/21214-vyhody-nevyhody-pristupu-odvozeni.html' title='2.12.14. Výhody a nevýhody přístupů odvození uživatelských požadavků'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-6793955332107670753</id><published>2009-03-27T14:06:00.003-07:00</published><updated>2009-03-27T14:06:45.251-07:00</updated><title type='text'>2.12.13. Sociálně  technický přístup</title><content type='html'>Sociálně technický přístup vychází z předpokladu, že odvození uživatelských požadavků není primárně technický problémem, ale procesem, který se uskutečňuje uvnitř sociálního prostředí. Nedostatek ohledu na sociální kontext při vývoji informačního systému způsobuje velkou část neúspěchu, který je zapříčiněn skutečností, že je neúměrné vyhovět uživatelským požadavkům, nebo vyvíjený systém nepodporuje reálné potřeby uživatelů.&lt;br /&gt;Sociálně technické přístupy odvozování uživatelských požadavků předpokládají, že sociální a technické potřeby v rámci problémové oblasti  jsou si rovnocenné a vzájemně závislé. Formulované uživatelské požadavky jsou ve většině případů výsledkem interakce analytiků s uživateli více než zhmotněním mentálního modelu požadavků uživatelů. Z toho důvodu by odvození požadavků mělo být prováděno v pracovním prostředí uživatelů v interakci s ostatními zainteresovanými uživateli. Uživatelské požadavky se stávají více důležitými v kontextu s pracovními situacemi, ve kterých jsou nebo mají být požadavky uskutečněny (místo, čas, množství).&lt;br /&gt;V tradičních metodách má uživatel zpravidla pasivní roli, ale sociálně technický přístup klade naopak důraz na jeho aktivitu a snaží se uživatele začlenit do vývojového týmu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-6793955332107670753?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/6793955332107670753/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/21213-socialne-technicky-pristup.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6793955332107670753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/6793955332107670753'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/21213-socialne-technicky-pristup.html' title='2.12.13. Sociálně  technický přístup'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-8620967784313033157</id><published>2009-03-27T14:06:00.001-07:00</published><updated>2009-03-27T14:06:22.355-07:00</updated><title type='text'>2.12.13 Analýza úloh</title><content type='html'>2.12.13 Analýza úloh&lt;br /&gt;Analýza úloh je přístup získávání požadavků, který je zaměřen na komunikaci člověk–počítač. Při této činnosti je analyzován a popisován způsob, jakým uživatelé vykonávají svou práci v následujících pojmech:&lt;br /&gt;• činnosti  a jejich struktura,&lt;br /&gt;• identifikace znalostí, které jsou vyžadovány k zajištění těchto činností.&lt;br /&gt;Historicky je analýza úloh zaměřena na popis velice podrobných činností a jejich posloupnosti ve formě diagramů, jejichž nejvyšší rozlišovací úroveň tvoří základní činnosti, které už dále nelze členit. Analýza úloh z hlediska jejich hierarchie je metodou, která vytváří hierarchii úloh a jejich podúloh a také popis, v jakém pořadí tyto úlohy budou provedeny. Výstupem analýzy úloh je zpravidla hierarchicky očíslovaný text nebo stromový diagram, který lze velmi dobře použít v procesu odvození uživatelských požadavků. Nevýhodou je skutečnost, že výstupy analýz úloh neposkytují rozšiřující požadavky na nový systém, protože se  tyto výstupy odkazují na systém stávající. Navíc tyto výstupy jsou zatíženy balastem, který nemá být součástí zamýšleného informačního systému.&lt;br /&gt;Analýza úloh může tvořit základ pro určení požadavků na zamýšlený informační systém, které budou následně modifikovány a rozšířeny.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-8620967784313033157?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/8620967784313033157/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/21213-analyza-uloh.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8620967784313033157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/8620967784313033157'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/21213-analyza-uloh.html' title='2.12.13 Analýza úloh'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4133634515238659937</id><published>2009-03-27T14:05:00.002-07:00</published><updated>2009-03-27T14:06:00.159-07:00</updated><title type='text'>Výstup naopak tvoří model ...</title><content type='html'>formě programového kódu.&lt;br /&gt;Výstup naopak tvoří model uživatelských požadavků, který může být použit jako podklad pro specifikaci požadavků zamýšleného informačního systému. Při vývoji informačního systému často nastává situace, že nový systém bude tvořit část stávajícího informačního systému. Proto je nutné vzít v úvahu nově implementované části tak, aby se vzájemně podporovaly v konečném efektu.&lt;br /&gt;V mnoha případech je využíváno reverzní inženýrství k aktualizaci dokumentace stávajícího informačního systému, protože dokumentace buď vůbec neexistuje, nebo už neodpovídá skutečnosti, která je zachycena pouze v programovém kódu. Pomocí reverzního inženýrství lze vyhotovit poměrně rychle dokumentaci informačního systému, jejíž základ tvoří datový model. Na základě vytvořené dokumentace lze snadno přenést celý informační systém nebo jeho část do jiného prostředí. Samozřejmě lze tuto dokumentaci upravit na základě nově požadovaných vlastností uživatelem, a tak rychle vygenerovat upravený informační systém případně i do odlišného programového prostředí.&lt;br /&gt;Možnost využití reverzního inženýrství poskytují některé CASE nástroje. Tato skutečnost umožňuje snadnou údržbu aplikace aplikací modelů specifikace informačního systému místo často velmi nepřehledné údržby programového kódu. Tato výhoda je velmi efektivní u rozsáhlých informačních systémů, vyžaduje však investice do CASE nástroje a personálu, který se bude touto činností zabývat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4133634515238659937?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4133634515238659937/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/vystup-naopak-tvori-model.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4133634515238659937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4133634515238659937'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/vystup-naopak-tvori-model.html' title='Výstup naopak tvoří model ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-4414505570691634179</id><published>2009-03-27T14:05:00.001-07:00</published><updated>2009-03-27T14:05:35.973-07:00</updated><title type='text'>2.12.11 Vytváření knihoven požadavků</title><content type='html'>Knihovny pro opakované využití požadavků poskytují velmi rychle informace, které byly získány na základě zkušeností z předešlých projektů informačních systémů. Tento přístup však vyžaduje:&lt;br /&gt;• samostatný vývoj knihovny požadavků, který je spojen s obtížným naplňováním dané knihovny,&lt;br /&gt;• průběžnou údržbu takto vytvořené knihovny.&lt;br /&gt;Knihovny opakovaného využití požadavků jsou často součástí CASE nástrojů, které podporují řízení procesů, jako je například nástroj „Proces Engineer“ od firmy LBMS.&lt;br /&gt;2.12.12 Reverzní inženýrství&lt;br /&gt;Reverzní inženýrství je procesem analýzy informačního systému na jeho programové úrovni za účelem:&lt;br /&gt;• identifikace komponent informačního systému a jejich vzájemných vztahů,&lt;br /&gt;• vytvoření zobrazení systému v jiné podobě na vyšší úrovni abstrakce.&lt;br /&gt;Přístup k získávání uživatelských požadavků při využití reverzního inženýrství pracuje na rozdíl od ostatních přístupů se zdroji informací, které představují nižší úroveň specifikací ve formě programového kódu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-4414505570691634179?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/4414505570691634179/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/21211-vytvareni-knihoven-pozadavku.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4414505570691634179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/4414505570691634179'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/21211-vytvareni-knihoven-pozadavku.html' title='2.12.11 Vytváření knihoven požadavků'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1501357358794106634</id><published>2009-03-27T14:04:00.002-07:00</published><updated>2009-03-27T14:05:13.482-07:00</updated><title type='text'>Analýza problémové oblasti ...</title><content type='html'>Analýza problémové oblasti je způsobem odvození požadavků, který značně sníží úsilí odvození uživatelských požadavků, protože automatizuje činnosti související s ukládáním, vyhledáváním a modifikací požadavků aplikací databázových systémů. Opakované využití výsledků analýzy podobných problémových oblastí je běžnou technikou, která je závislá na zkušenostech analytika využívat nabízených analogií. Proces analýzy problémové oblasti lze rozdělit do následujících fází, a to na:&lt;br /&gt;• identifikaci kategorie problémové oblasti, tj. přiřazení dané aplikace k jí podobným,&lt;br /&gt;• identifikaci a formalizaci vlastností, které jsou podobné mezi rozdílnými aplikacemi v dané problémové oblasti,&lt;br /&gt;• vytvoření knihovny opakovaně použitelných požadavků a jejich zpřístupnění ostatním projektům.&lt;br /&gt;Analýza problémové oblasti ve spojení s CASE nástroji může zásadně změnit vývoj informačního systému. Aplikace tohoto přístupu je však poměrně nákladnou záležitostí, která se zatím vyplatí ve vývoji rozsáhlých, ale podobných projektů.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1501357358794106634?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1501357358794106634/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/analyza-problemove-oblasti.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1501357358794106634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1501357358794106634'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/analyza-problemove-oblasti.html' title='Analýza problémové oblasti ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-7989311021949088675</id><published>2009-03-27T14:04:00.001-07:00</published><updated>2009-03-27T14:04:52.492-07:00</updated><title type='text'>• stanovení kritérií výběru ...</title><content type='html'>• stanovení kritérií výběru „starých“ požadavků, které umožňují otestování, vhodnost a úpravu těchto požadavků vzhledem k zamýšlenému informačnímu systému,&lt;br /&gt;• menší nákladnost aplikace tohoto přístupu, než je tomu u jednoduchého a rychlého odvození požadavků jiným přístupem.&lt;br /&gt;Výše uvedené předpoklady splňují následující techniky opakovaného využití uživatelských požadavků. Jedná se o:&lt;br /&gt;• analýzu problémové oblasti,&lt;br /&gt;• vytváření knihoven požadavků,&lt;br /&gt;• reverzní inženýrství.&lt;br /&gt;2.12.10. Analýza problémové oblasti&lt;br /&gt;Analýza problémové oblasti je charakterizována jako základní podmínka analýzy uživatelských požadavků. Tento přístup umožňuje opakované využití požadavků na základě podobnosti požadovaných vlastností informačního systému v rámci stejné nebo podobné problémové oblasti. Při této činnosti jsou identifikovány v rámci problémové oblasti:&lt;br /&gt;• objekty,&lt;br /&gt;• pravidla,&lt;br /&gt;• omezení,&lt;br /&gt;které jsou obvyklé mezi rozdílnými (ale podobnými ) oblastmi problému a které formalizuje do opakovaně použitelné podoby.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-7989311021949088675?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/7989311021949088675/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/stanoveni-kriterii-vyberu.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7989311021949088675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/7989311021949088675'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/stanoveni-kriterii-vyberu.html' title='• stanovení kritérií výběru ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-907672420395559866</id><published>2009-03-27T14:02:00.002-07:00</published><updated>2009-03-27T14:04:22.592-07:00</updated><title type='text'>Objektově orientovaný přístup ...</title><content type='html'>Objektově orientovaný přístup k analýze přirozeného jazyka poskytuje analytikům mechanismus k prezentaci klíčových pojmů z dané problémové oblasti. Tento přístup však aplikuje heuristická pravidla, a tedy jistým způsobem spoléhá na schopnost analytika tato pravidla použít. Daný přístup vyžaduje zpravidla mnoho opakování, než analytik dospěje k ustálenému počátečnímu souboru objektů, atributů objektů a operací. Vzhledem k rostoucímu světovému trendu využívání objektově orientovaného přístupu tvorby informačních systémů se však metoda analýzy přirozeného jazyka zdá být velmi slibnou pro budoucnost. Tato skutečnost je ovšem podmíněna překonáváním problému mnohotvárnosti a bohatosti přirozeného jazyka.&lt;br /&gt;2.12.9. Opakované použití požadavků&lt;br /&gt;Přístup opakovaného využití požadavků vychází z předpokladu, že požadavky, které již jednou byly v nějaké aplikaci informačního systému odvozeny, mohou být opět použity při odvození požadavků v podobné aplikaci. Samotné odvození požadavků představuje nejvíce pracnou část vývoje informačního systému, a proto jakékoliv ušetření zdrojů (času, financí, atd.) může přinést velmi významné zvýšení produktivity při vývoji informačního systému. Obecně existuje velký stupeň podobnosti mezi informačními systémy v rámci stejné problémové oblasti. Literatura uvádí , že pouze 15 procent celkového počtu požadavků uživatelů na zamýšlený informační systém je skutečně unikátních, tj. nových. Opakované využití požadavků předpokládá:&lt;br /&gt;• snadnou dostupnost uživatelských požadavků předešle odvíjených informačních systémů,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-907672420395559866?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/907672420395559866/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/objektove-orientovany-pristup.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/907672420395559866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/907672420395559866'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/objektove-orientovany-pristup.html' title='Objektově orientovaný přístup ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-962632063257793231</id><published>2009-03-27T14:02:00.001-07:00</published><updated>2009-03-27T14:02:47.182-07:00</updated><title type='text'>Manuální přístupy analýzy ...</title><content type='html'>Manuální přístupy analýzy přirozeného jazyka pro získání uživatelských požadavků jsou pružnější než automatizované, protože spoléhají na lidský intelekt. Takové přístupy analýzy přirozeného jazyka identifikují konstruktory (podstatná jména, přídavná jména, slovesa atd.) modelu podle stanovených pravidel.&lt;br /&gt;Analýza přirozeného jazyka je jako technika získávání uživatelských požadavků upřednostňována objektově orientovanými přístupy tvorby informačních systémů, protože tyto přístupy se soustředí na následující konstruktory, a to na:&lt;br /&gt;• objekty (cokoli, co nás zajímá v problémové oblasti),&lt;br /&gt;• atributy objektů (charakteristické vlastnosti objektů),&lt;br /&gt;• operace (akce prováděné objekty nebo na objektech).&lt;br /&gt;V rámci analýzy přirozeného jazyka vycházejí objektově orientované přístupy ze skutečnosti, že:&lt;br /&gt;• objekty tvoří podstatná jména,&lt;br /&gt;• atributy objektu tvoří přídavná jména nebo přívlastky, které jsou vztaženy k objektu,&lt;br /&gt;• operace jsou určeny slovesy nebo slovesnými vazbami, které vypovídají a vztahují se k danému objektu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-962632063257793231?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/962632063257793231/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/manualni-pristupy-analyzy.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/962632063257793231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/962632063257793231'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/manualni-pristupy-analyzy.html' title='Manuální přístupy analýzy ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5878251683402434788</id><published>2009-03-27T14:01:00.002-07:00</published><updated>2009-03-27T14:02:21.286-07:00</updated><title type='text'>2.12.8. Analýza přirozeného jazyka</title><content type='html'>Pro většinu problémových oblastí je nejobyklejším vyjádřením znalostí přirozený jazyk. Potenciál odvozování požadavků z popisu ve formě přirozeného jazyka vychází ze skutečnosti, že vše, co je nutné znát o problémové oblasti, je už někde napsáno nebo vyjádřeno ve formě přirozeného jazyka. Přístupy analýzy přirozeného jazyka lze rozdělit do dvou základních kategorií, a to na:&lt;br /&gt;• přímo působící na uživatele za účelem odvození jeho požadavků&lt;br /&gt;• odvozující požadavky z textů v přirozeném jazyce.&lt;br /&gt;Pro stanovení požadavků daným přístupem jsou rozhodující slovní zásoba, syntaxe a neformální atmosféra. Slovní zásoba obsahující přibližně 1000 výrazů z dané problémové oblasti je účinným komunikačním médiem při popisu jakékoliv představy. Syntaxe ve významu jazykové skladby je užitečná vlastnost přirozeného jazyka, která je běžná v každodenním životě a nevyžaduje zpravidla nároky na samostatnou výuku. Neformální atmosféra má za důsledek, že výpověď uživatele může být nejasná, nepřesná, neúplná a protichůdná. Je však velmi užitečná v počátečních fázích Requirements Engineeringu, kdy usnadňuje složitá jednání s uživateli, neboť dovoluje komunikaci bez nejistoty zacházení do detailu řešeného problému.&lt;br /&gt;Automatizaci tohoto přístupu velmi komplikuje široké bohatství a mnohoznačnost přirozeného jazyka, která je také stále neřešitelným  problémem v oblasti umělé inteligence. Automatizované přístupy analýzy přirozeného jazyka omezují vstupy do této činnosti na velmi malou podmnožinu přirozeného jazyka a vytvářejí model požadavků jako málo formalizovaný.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5878251683402434788?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5878251683402434788/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/2128-analyza-prirozeneho-jazyka.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5878251683402434788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5878251683402434788'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/2128-analyza-prirozeneho-jazyka.html' title='2.12.8. Analýza přirozeného jazyka'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-1270764550833784908</id><published>2009-03-27T14:01:00.001-07:00</published><updated>2009-03-27T14:01:54.371-07:00</updated><title type='text'>2. Pravidlo připojení atributů</title><content type='html'>Jakákoliv položka, která má malý faktor proximity (blízkosti) k položce, jež byla identifikována jako entita, je pravděpodobně atributem této entity. Faktor proximity položky je definován jako rozdíl mezi postavením dané položky a postavením položky, která byla označena jako atribut entity. Toto pravidlo vyjadřuje skutečnost, že zpravidla jsou atributy entity uvedeny přímo v daném formuláři. Například atribut „daň“ u entity   „faktura“ má malý faktor blízkosti k položce „cena bez daně“, a proto je také tato položka atributem entity „faktura“.&lt;br /&gt;3. Pravidlo identifikace relace&lt;br /&gt;Sleduje strukturu klíčových atributů ve zkoumaných entitách. Je-li ve struktuře klíčových atributů obsažen atribut nebo atributy, které jsou primárními klíčí jiné entity, pak jsou tyto entity v relaci.&lt;br /&gt;Aplikací výše uvedených pravidel může analytik vyhotovit E-R model, který lze automatizovaně otestovat na datovou konsistenci. Formuláře jsou velice užitečným zdrojem informací, protože umožňují efektivní odvozování požadavků dané problémové oblasti, ve které je omezené použití řídících databázových systémů.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-1270764550833784908?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/1270764550833784908/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/2-pravidlo-pripojeni-atributu.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1270764550833784908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/1270764550833784908'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/2-pravidlo-pripojeni-atributu.html' title='2. Pravidlo připojení atributů'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3364429883071607433.post-5884432688458988952</id><published>2009-03-27T14:00:00.004-07:00</published><updated>2009-03-27T14:01:24.576-07:00</updated><title type='text'>Formulář představují nejběžnější vstup ...</title><content type='html'>Formulář představují nejběžnější vstup do procesu tvorby datového E-R modelu („entity - relationship“), který obsahuje následující komponenty:&lt;br /&gt;• entity jako objekty zájmu v problémové oblasti,&lt;br /&gt;• relace jako významné vazby mezi entitami,&lt;br /&gt;• atributy jako vlastnosti entit.&lt;br /&gt;&lt;br /&gt;Analýza formulářů má za úkol zmapovat skryté pojmy ve formulářích a vytvořit E-R model. Obecně neexistují jasná pravidla identifikace entity, relaci a atributu. Tento nedostatek je překonáván použitím:&lt;br /&gt;• manuálních metod odvození a vyhotovení E-R modelu z formuláře, které spoléhají na posouzení a zkušenosti analytika,&lt;br /&gt;• automatizovaného postupu analýzy při použití heuristických pravidel, jak vycházejí z obsahu a konstrukce formulářů.&lt;br /&gt;V praxi jsou samozřejmě žádány automatizované přístupy analýzy formulářů, protože snižují úsilí analytika a počet jeho omylů při konstrukci E-R modelu. Velice oblíbeným postupem analýzy formulářů, který používá tří druhů heuristických pravidel, je postup, který v roce 1988 zveřejnil M. Choobirech. Jedná se o tato pravidla:&lt;br /&gt;1. Pravidlo identifikace entity&lt;br /&gt;Jakákoli položka formuláře, jejímž zdrojem je jiná položka stejného nebo jiného formuláře, je potecinální entitou.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3364429883071607433-5884432688458988952?l=informacni-technologie.studentske.cz' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://informacni-technologie.studentske.cz/feeds/5884432688458988952/comments/default' title='Komentáře k příspěvku'/><link rel='replies' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/formular-predstavuji-nejbeznejsi-vstup.html#comment-form' title='Počet komentářů: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5884432688458988952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3364429883071607433/posts/default/5884432688458988952'/><link rel='alternate' type='text/html' href='http://informacni-technologie.studentske.cz/2009/03/formular-predstavuji-nejbeznejsi-vstup.html' title='Formulář představují nejběžnější vstup ...'/><author><name>f</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
