45
Algoritmizácia úloh 1

Algoritmi zácia úloh 1

Embed Size (px)

DESCRIPTION

Algoritmi zácia úloh 1. Cieľ predmetu. Vytvoriť z ákladnú kostru programu Vstup údajov od užívateľa Spracovanie dát – čísla a reťazce Výstup pre užívateľa Načítanie a uloženie dát Práca so štruktúrami a pointrami, dynamická alokácia pamäte. Obsah predmetu. 1. Podmienky 2. Úvod - PowerPoint PPT Presentation

Citation preview

Page 1: Algoritmi zácia úloh 1

Algoritmizácia úloh 1

Page 2: Algoritmi zácia úloh 1

2

Cieľ predmetu

1. Vytvoriť základnú kostru programu2. Vstup údajov od užívateľa3. Spracovanie dát – čísla a reťazce4. Výstup pre užívateľa

5. Načítanie a uloženie dát6. Práca so štruktúrami a pointrami,

dynamická alokácia pamäte

Page 3: Algoritmi zácia úloh 1

3

Obsah predmetu

1. Podmienky 2. Úvod 3. Vstup a výstup 4. Typy premenných, funkcie 5. Logické výrazy, priority operátorov 6. Riadiace štruktúry, priority 7. if, while, for, switch, goto, return, subory 8. Práca so súbormi 9. Polia 10. Smerníky 11. Reťazce, konverzia 12. Štruktúry

Page 4: Algoritmi zácia úloh 1

4

Požiadavky na zápočet a skúšku

Priebežné hodnotenie cvičení: 10 bodov

Praktická časť skúšky: 20 bodov

Ústna časť skúšky: 20 bodov

Spolu: 50 bodov

Predtermíny sú možné

Page 5: Algoritmi zácia úloh 1

5

Hodnotenie predmetu

Priebežné hodnotenie 10 bodov

Praktická časť skúšky 20 bodov

Ústna časť skúšky 20 bodov

Hodnotenie Počet bodov

A 50-46

B 45-41

C 40-36

D 35-31

E 30-25

FX 25 a menej

Page 6: Algoritmi zácia úloh 1

6

Kde sa jazyk C využíva

Pomocou jazyka C sa programuje celé spektrum software: od ovládačov periférií, až po „veľké“ programy, ako sú riadiace a databázové systémy

Dôvodom, prečo sa využíva, je jednoduchosť, rýchlosť a veľkosť výsledných programov

Page 7: Algoritmi zácia úloh 1

7

Kde sa jazyk C využívaPočítačové systémy

Jazyk C sa využíva nielen pod MS Windows, ale aj pod inými operačnými systémami, ako rôzne Unixy.

Existujú aj rôzne iné jazyky, ako napr. Pascal, Assembler, Perl, Basic. Tieto ale nie sú také výkonné a využívané

Page 8: Algoritmi zácia úloh 1

8

Kde sa jazyk C využívaJednočipové systémy

Jednočipové systémy slúžia na riadenie rôznych zariadení, ako napr. automobilová technika (ABS, ESP), práčky, telefóny, telefónne ústredne, snímače teploty, tlaku, žiarenia atď.

Tieto systémy musia byť malé, výkonné ale zároveň aj spoľahlivé.

V prípade potreby je dôležité, aby sa ich program dal kedykoľvek zmeniť.

Page 9: Algoritmi zácia úloh 1

9

Kde sa jazyk C využívaJednoprocesorové systémy

Doska, na ktorej je pripojený procesor Pomocou konektorov a vodičov je spravené

riadenie okolitých periférií a snímanie dát

Page 10: Algoritmi zácia úloh 1

10

Kde sa jazyk C využívaJednoprocesorové systémy

Modul, ktorý slúži na prepojenie procesora s riadiacim PC pomocou Ethernetu

Zakúpený modul + nami zapojený a naprogramovaný jednočip

Page 11: Algoritmi zácia úloh 1

11

Vývojové prostredia pre PC

Najčastejšie sa využívajú

Microsoft Visual C++

Borland C++

Page 12: Algoritmi zácia úloh 1

12

Vývojové prostredia pre jednočipy

AVR studio

Page 13: Algoritmi zácia úloh 1

13

Vývojové prostredia

na LC sa bude používať DEV C++(www.bloodshed.net/devcpp.html)

existuje mnoho iných ako napr. MS Visual C++, Borland C++, LCC, GCC atď.

Page 14: Algoritmi zácia úloh 1

14

Page 15: Algoritmi zácia úloh 1

15

Odporúčaná literatúra

Herout, P.: Učebnice jazyka C - 1.díl. KOOP, České Budějovice, 2004.

Matiaško K. a kolektív: Základy informatiky, vysokoškolská učebnica, EDIS, Žilinská univerzita v Žiline, 2004,

ISBN 80-8070-186-5

Page 16: Algoritmi zácia úloh 1

16

Algoritmus

Algoritmus je konečná postupnosť dobre definovaných inštrukcií na splnenie určitej úlohy

Všeobecné pravidlá, ktoré určujú postupnú transformáciu vstupných údajov na výstupné

Page 17: Algoritmi zácia úloh 1

17

Vlastnosti algoritmov

Nie každý návod je algoritmom, algoritmus musí mať tieto vlastnosti:

Je determinovanýJe rezultatívnyJe konečný Je hromadný

Page 18: Algoritmi zácia úloh 1

18

1. Determinovanosť

Činnosť algoritmu je natoľko presná a pritom všeobecne pochopiteľná, že nepripúšťa v žiadnom kroku procesu subjektívnu možnosť voľby ďalšieho pokračovania.

Činnosť algoritmu nesmie závisieť od ľubovôli osoby, ani na vlastnostiach zariadenia, ktoré ho realizuje. Je to proces, ktorý môže byť kedykoľvek a kýmkoľvek opakovaný s rovnakým výsledkom.

Page 19: Algoritmi zácia úloh 1

19

2. Rezultatívnosť

Výsledok musí byť za rovnakých vstupných podmienok vždy rovnaký.

Page 20: Algoritmi zácia úloh 1

20

3. Konečnosť

Každý algoritmus musí skončiť po vykonaní konečného počtu krokov.

Page 21: Algoritmi zácia úloh 1

21

4. Hromadnosť

Algoritmus je použiteľný na ľubovoľné vstupné údaje spĺňajúce požadované podmienky

Algoritmus je popis riešenia celej skupiny príbuzných úloh, ktoré sa od seba líšia vstupnými údajmi

Page 22: Algoritmi zácia úloh 1

22

Algoritmizácia

tvorivý proces, ktorý pri zápise algoritmu vykonávame

všeobecný návod neexistuje, ale existujú heuristiky (určité rady) získané skúsenosťami, ktoré proces tvorby algoritmu uľahčujú

Page 23: Algoritmi zácia úloh 1

23

Spôsoby vyjadrenia algoritmu:

Verbálne alebo textom

Vývojový diagram

Samotný programovací jazyk

Rozhodovacie tabuľky

Page 24: Algoritmi zácia úloh 1

24

Zápis algoritmov prirodzeným jazykom

S kľúčovými(vyhradenými) slovami kvôli lepšej zrozumiteľnosti

Výhody - ľahko čitateľný, každý mu rozumie

nevýhody – nejednoznačnosť, nízka prehľadnosť

Page 25: Algoritmi zácia úloh 1

25

Vstupné údaje a výstupné údaje

Vstupné údaje – reprezentujú počiatočný stav problému

Výstupné údaje – tvoria množinu koncových stavov

Kroky algoritmu sa vykonávajú postupne za sebou, ak nie je explicitne dané iné poradie.

Page 26: Algoritmi zácia úloh 1

26

Metódy zostavenia algoritmov

Keď riešenie poznáme, potrebujeme ho zapísať vo forme algoritmu.

Riešenie rozkladáme na jednoduchšie operácie až dospejeme k elementárnym krokom – metóda „odhora dole“

Page 27: Algoritmi zácia úloh 1

27

Postup konštrukcie algoritmu

formulácia problému stanovenie cieľov tvorba myšlienky a stratégie riešenia zápis vytvorených postupov overenie správnosti vytvorených

postupov

Page 28: Algoritmi zácia úloh 1

28

Základné zložky algoritmu

Medzi základné konštrukčné zložky patrí:

Postupnosť (sekvencia) príkazov, Cyklus (iterácia) - if, whilePodmienené operácie (selekcia a výber).

Page 29: Algoritmi zácia úloh 1

29

Postupnosť (sekvencia)

je tvorená jedným alebo niekoľkými krokmi, ktoré sa vykonajú len raz v danom poradí a nemusia to byť kroky elementárne.

Základné zložky algoritmu

Page 30: Algoritmi zácia úloh 1

30

Základné zložky algoritmu

Cyklus (iterácia)

predstavuje časť algoritmu, ktorá sa opakuje, pokiaľ je splnená podmienka opakovania. Cyklus sa skladá z podmienky opakovania a tela cyklu (krokov, ktoré sa opakujú).

Page 31: Algoritmi zácia úloh 1

31

Čiastkový algoritmus

Pokiaľ sa určitá časť algoritmu opakuje na niekoľkých miestach (i keď sa používajú rôzne dáta), stačí ju rozložiť na elementárne kroky len raz. Na ostatných miestach sa na ňu odvoláme ako na čiastkový algoritmus alebo podprogram.

V programovacích jazykoch odpovedajú podprogramom procedúry a funkcieprocedúry a funkcie.

Page 32: Algoritmi zácia úloh 1

32

Časová a pamäťová náročnosť algoritmov

Pri zostavení algoritmov nás zaujíma nielen správnosť a presnosť riešenia ale aj doba, ktorú budeme na vykonanie algoritmu potrebovať a veľkosť operačnej pamäti, ktorú bude potrebovať program na realizáciu algoritmu.

Do časovej náročnosti je treba zarátať aj dobu potrebnú na čítanie dát z pevného disku (spravidla je o 3 rády dlhšia ako najnáročnejšia operácia).

Page 33: Algoritmi zácia úloh 1

33

Popis algoritmov

Algoritmy je možné vyjadriť rôznymi spôsobmi, ktoré sa opierajú o slovné vyjadrenie alebo grafické prostriedky.

Voľba prostriedku závisí na charaktere riešenej úlohy a osobných zvyklostiach programátora.

Page 34: Algoritmi zácia úloh 1

34

Jazyk pre popis programov

Slovný popis algoritmov môže byť základom komentára k výslednému programu.

Page 35: Algoritmi zácia úloh 1

35

Vývojové diagramy

Sú klasickým prostriedkom pre znázornenie algoritmov.

Predstavujú grafické znázornenie jednotlivých krokov programu.

V súčasnosti sa používajú menej.

Page 36: Algoritmi zácia úloh 1

36

Grafické prvky

Medzná značka (začiatok a koniec programu)

Spracovanie

A=BNIE ÁNORozhodovanie

ŠTART KONIEC

Page 37: Algoritmi zácia úloh 1

37

Grafické prvky

Cyklus

Vstup/výstup dát

A

A

Spojka

Page 38: Algoritmi zácia úloh 1

38

Grafické prvky

Podprogram

Tlač

Poznámka

Page 39: Algoritmi zácia úloh 1

39

Vývojové diagramy - príklad

ŠTART

Úvodné operácie

Koniec A

NIE

ÁNO

Čítaj zo súboru A koeficienty a, b, c

Rieš rovnicu

Zapíš výsledky do B

Záverečné operácie

KONIEC

Page 40: Algoritmi zácia úloh 1

40

4ac-bd 2

Riešenie kvadratickej rovnice

ac

dibx

42,1

Ulož korene do súboru B

ÁNO

NIEd<0

ac

dbx

42,1

Page 41: Algoritmi zácia úloh 1

4141

Spôsob spracovania programu

Schematické znázornenie fáz spracovania programu

Editor Preprocesor Compiler

Linker

Debugger

.C .LIB .OBJ

.H .LIB

.EXE

ladenie

spustenie

Page 42: Algoritmi zácia úloh 1

4242

Preprocesor

Preprocesor sa spustí pri každom spustení kompilátora. Prejde si zdrojový kód a nájde riadky, ktoré začínajú symbolom #.

S týmito riadkami pracuje ešte pred spustením samotného kompilátora.

Príkaz include je inštrukcia pre preprocesor, ktorá mu hovorí: "To, čo nasleduje, je názov súboru. Nájdi tento súbor a vlož jeho obsah priamo do tohto miesta programu."

Page 43: Algoritmi zácia úloh 1

4343

Compiler

Prekladač, kompilátor – vykonáva preklad zdrojového súboru do relatívneho kódu počítača, vzniká .OBJ súbor (prípadne .O, .A).

Pomocným súborom je protokol o preklade (.LIS), v ktorom sú uložené informácie o chybách prekladu.

Page 44: Algoritmi zácia úloh 1

4444

Linker

Zostavovací program. Pridelí relatívnemu kódu absolútne adresy a odkazy na identifikátory knižničných funkcií. Výsledkom je spustitelný program (napr. .EXE)

Page 45: Algoritmi zácia úloh 1

4545

Debugger

Ladiaci program. Slúži na ladenie – nájdenie chýb, ktoré vznikajú pri behu programu. Po odladení chyby sa celý cyklus opakuje (editor, compiler, linker, debugger)