zoradene prednasky

Návrat na detail prednášky / Stiahnuť prednášku / Technická Univerzita Košice / Fakulta Elektrotechniky a Informatiky / Počítače a algoritmizácia

 

prednáška 3 (3_pr.doc)

3. Metódy algoritmizácie a základné zložky algoritmu

 

3.1.Metódy algoritmizácie - metóda "zhora nadol"

                                 - metóda " zdola nahor"

                                 - hybridná metóda

● metóda "zhora nadol" → Algoritmus je zápis postupu, kt. je použiteľný pre riešenie určitej triedy problémov Ak postup riešenia rozkladáme na jednoduchšie operácie, až dospejeme k elementárnym krokom → potom tento postup návrhu algoritmu označujeme metóda "zhora nadol"

Pr. Kvadrantická rovnica- budeme chcieť na základe navrhnutého algoritmu napísať program, kt. bude riešiť rovnice, kt. koeficienty sú uložené v súbore A. Výsledok sa má uložiť do súboru B.

Najhrubšia formulácia môže mať tvar:

Pokiaľ nenarazíte na koniec súboru A riešte rovnice, určené koeficientami uloženými v súbore A a výsledky zapisujte do súboru B.

- je nutné upresniť význam:

"riešte rovnice, určené..." - rozklad na jednoduchšie kroky"

 

Algoritmus hrubého riešenia:

1. Vykonaj úvodné operácie.

2. pokiaľ nenarazíš na koniec súboru A, opakuj kroky 3-5, potom prejdi na krok 6.

3. Prečítaj zo súboru koeficienty a,b,c

4.Vyrieš kvadrantickú rovnicu s koeficientami a,b,c.

5.Zapíš výsledky do súboru B a vráť sa na krok 2.

6. Vykonaj záverečné operácie.

Kroky 1., 4., 6 sa dajú spresniť.

Budeme sa zaoberať iba krokom 4. na riešenie KR.

 

4a. Vypočítaj d=b2-4ac

4b. Ak je d<0, pokračuj bodom 4f, inak pokračuj bodom 4c

4c. Priraď d=odmocnina D

4d. Rovnica má korene x1,2=-b+-d/2a

4e. Pokračuj krokom 5

4f. Priraď d=odmocnina-d

4g. Rovnica má korene x1,2=-b+-id/2a

i je imaginárna jednotka

 

Poz.Upresniť postup, ak nastane chyba pri otvorení súboru, prípadne obsahuje chybné údaje,... formát vstupných a výstupných údajov

metóda "zdola nahor": postupujeme od elementárnych krokov - vytvárame prostriedky, kt. umožnia vyriešiť daný problém.

hybridná metóda: kombinácia predošlých dvoch metód (vytváranie programov CASE).

 

 

 

 

 

 

 

 

 

 

3.2 Základné zložky algoritmov-základné riadiace štruktúry

V algoritmoch sa stretávame s troma základnými konštrukciami, kt. označujeme:

● postupnosť (sekvencia)

● vetvenie (selekcia)

● cyklus (iterácia)

Postupnosť(sekvencia) → najjednoduchšia riadiaca štruktúra. Je tvorená jedným alebo niekoľkými krokmi, kt. sa vykonávajú práve raz v danom poradí.

(Príklad KR: kroky 4c-4e)

So sekvenciou sa stretávame pri globálnom popise algoritmu pri upresnení zložitejšie konštrukcie!

 

Vetvenie(selekcia) → je taká štruktúra, kt. v procese vykonávania algoritmu umožňuje vyberať rôzne alternatívy riešenia podľa splnenia či nesplnenia zadaných podmienok.

Vetvenie môže byť realizované:

Preskok

činnosť

Podmienka

 

Čin 2

Čin 1

splnená

nesplnená

Dvojcestné vetvenie

a. Preskok - po vyhodnotení podmienky sa uvedená činnosť (sekvencia operácií) buď vykoná, alebo sa preskočí (v príklade 4b)

b. Dvojcestné vetvenie - po vyhodnotení logickej podmienky sa vykoná práve jedna z uvedených činností

(Ak je podmienka splnená- potom sa vykoná sekvencia príkazov tvoriacich činnosť Čin1; v opačnom prípade sa vykoná sekvencia príkazov Čin2)

Po ukončení ľubovoľnej z týchto dvoch alternatív sa pokračuje ďalej v algoritme (viaccestné vetvenie → vnorenie dvojcestných vetvení)

 

c. Prepínač - modifikácia viaccestného vetvenia

Pri viaccestnom vetvení -každá z vetiev je špecifikovaná pre celú množinu hodnôt podmienky.

Pri prepínači-je každá vetva určená pre konkrétnu hodnotu výrazu uvedeného v podmienke

Výraz

 

Činnosť 1

Činnosť 2

Činnosť n-1

Činnosť n

=hn

hn-1

=h2

=h1

 

 

Použitie vetvení znamená zaradenie rozhodovacieho procesu do vykonávania algoritmu a súvisí s vyhodnotením PODMIENKY.

 

 

 

 

 

 

 

 

CYKLY

Cykly(iterácie)-predstavujú časť algoritmu, kt. sa opakuje pokiaľ je splnená podmienka opakovania.

Cyklus sa skladá z: -podmienky opakovania

                               -tela cyklu

Počet opakovaní teda cyklu môže byť dopredu zadaný alebo je odvodený od splnenia podmienky -

a.cyklus s podmienkou na začiatku (príkaz jazyka C: while, for)

b.cyklus s podmienkou na konci (príkaz jazyka C: do-while)

c.cyklus s daným počtom opakovaní (aritmetický cyklus) (príkaz jazyka C: for)

a.,b. sú logické cykly;

V príklade riešenia kvadrantickej rovnice tvoria kroky 2-5 cyklus s podmienkou na začiatku.

 

A. Cyklus s podmienkou na začiatku

1.Vyhodnotenie podmienky P

2. Ak je podmienka P splnená vykonajú sa operácie dané štruktúrou S (telo cyklu) a nasleduje návrat na začiatok cyklu

3. Ak podmienka P nie je splnená cyklus končí.

[Pozn. cyklus sa nemusí vykonať ani raz]

P

S

nie

áno

 

 

B. Cyklus s podmienkou na konci:

1.cyklus začína svoju činnosť operáciami v sekvencii S

2.ak podmienka P je splnená návrat na bod 1 (začiatok tela cyklu)

3.ak podmienka P nie je splnená vykonávanie (logického) cyklu je ukončené  [Cyklus sa vykoná vždy raz oproti prípadu A.]

 

splnená

S

P

nie

Nesplnená

áno

 

 

Obr. 7 Cyklus

 

 

 

 

C.cyklus s daným počtom opakovaní

c1)aritmetický cyklus(for) - štruktúra cyklu

c2)logický (cyklus-a)while

 

1. Inicializácia cyklu

2. Test podmienky

3. Vykonanie tela cyklu

4. Aktualizácia

 

 

I≤N

I ← 1

 

I ← I+1

 

S

 

→ Telo cyklu

→ Aktualizácia

áno

nie

→ Inicializácia pre riadiacu pr. cyklu

I = 1,...,N

S

 

Štruktúra cyklu

 

 

Obr. 9 Cyklus s daným počtom opakovaní

 

 

 

1