Obsah

Export page to Open Document format

Řídící struktury

Dělíme na funkce a příkazy

Funkce

Deklarace funkce = prototyp. double sqrt(double x); - návratový typ jméno (parametry); - deklarujeme funkci před jejím použítím, využivá se v hlavičkových souborech

Definice funkce = implementace návratový typ jméno (parametry) {telo funkce, return}

return - ukončuje provádení funkce, může být kdekoliv, ne pouze na konci, i vícekrát

- pokud funkci použijeme dříve než jí definujeme, musí být předtím deklarována.

Příkazy

Jednoduchý příkaz - zkrátka příkaz, např a = b + c;

Složený příkazy - více příkazů, složeny do bloků

V bloku mohou být lokální proměnné, i se stejným jménem jako mimo blok, mají platnost pouze v bloku. Nelze je použít mimo.

Podmíněné příkazy

klasické if/else. V některých jazycích lze pouze if, nekdě je nutná i else část. Může být v bloku i bez bloku, pokud je bez bloku, počítá se pouze první příkaz za podmínkou. Ja slovem if následuje výraz. Tyto podmínky lze libovolně vnořovat - pozor na správné zavorkovíní.

Switch - přepínač

Přepínač slouží k větvenívýpočtu podle hodnoty celočíselného výrazu (v některých jazicích to mohou být i znaky a řetězce).

Cykly

Cykly lze take libovolne vnorovat, nebo kombinovat s podminkami a vsim ostatnim.

while - while (vyraz) {telo} - dopředu neznáme počet iterací, cyklus nemusí proběhnout ani jednou.

do while - do {} while (vyraz); - proběhne alespoň jednou

for for( inicializace ; test podmínky ; zmena ridici promenne) {telo}

break - tímto příkazem lze kdykoliv ukončit nejblíže vnořený cyklus

continue - tímto příkazem lze kdykoliv ukončit aktualní opakování a začít další iteraci.

Skoky

goto

goto navesti;
printf("Toto se nikdy nevytiskne.");
navesti: printf("Toto se vytiskne.");

- nepoužívá se! - jako příkaz skoku se dá označit i break a continue, protože také přesunou vykonávání na jiné místo.

Datové struktury

Datová struktura - abstraktní vyjádření zúčastněných vlastností (atributů) prvků (objektů) řešeného problému

Abstraktní datový typ (ADT) - je definován množinou hodnot, jichž mohou nabývat prvky tohoto typu a množinou operací definovaných nad tímto typem. Jeden konkrétní prvek ADT bývá označován jako abstraktní datová struktura (ADS).

Základní datové strukuty nám často nabízí samotný programovací jazyk, například strutury, uniony, množiny. O tom ale tato otázka asi být nemá, jde o struktury které si vytváříme sami a musíme pracovat s pamětí.

Seznamy

Seznam je homogenní, lineární, dynamická struktura.

Lineárnost = každý prvek struktury má právě jednoho předchůdce a jednoho následníka (mimo první a poslední prvek).

Prvkem seznamu může být libovolný datový typ (klidně další seznam). Seznam může být i prázdný. Přístup k prvnímu prvku je přímý, k ostatním sekvenční ve směru průchodu.

Jednosměrný seznam – průchod jedním směrem.

Operace:

Dvojsměrný seznam - průchod oběma směry

- doplnění operací jednosměrného First → First, Last; Post → Post, před

Kruhový jednosměrný – poslední prvek ukazuje na první

Typické operace nad seznamem – zjištění délky, ekvivalence dvou seznamů, hledání prvku v seznamu, řazení prvků v seznamu, konkatenace (spojení) seznamů

Zásobník

- homogenní, lineární, dynamická struktura

- lze odvodit od seznamu pokud má přístup pouze od začátku

- struktura typu lifo

- implementace polem, seznamem

Operace:

Fronta

- dynamická, homogenní, lineární struktura

- struktura typu FIFO

Operace:

Strom

Rekurzivní definice: Binární strom je buď prázdný nebo se sestává z jednoho uzlu zvaného kořen a dvou podstromů – levého a pravého.

Binární strom je váhově vyvážený pokud pro všechny jeho uzly platí že počty uzlů jejich levého a pravého podstromu se rovnají nebo se liší právě o 1.

Binární strom je výškově vyvážený pokud pro všechny jeho uzly platí že výška levého a pravého podstromu se rovná nebo se liší právě o 1.

Absolutně vyvážený strom – n výška stromu n > 0 a 2n – 1 = počet uzlů.

Algoritmy nad BS můžou být rekurzivní i nerekurzivní.

Průchod stromem:

- preorder - jdeme po stromu, kdyz k prvku dorazime zleva, zapiseme ho

- inorder - jdeme po stromu, kdyz k prvku dorazime zespodu, zapiseme ho

- postorder - jdeme po stromu, kdyz k prvku dorazime zprava, zapiseme ho

Potvrzení

26
Celé jménoOK!!!
,