Algoritmi zácia úloh 1

Preview:

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

Algoritmizá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

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

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é

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

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

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é

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ť.

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

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

11

Vývojové prostredia pre PC

Najčastejšie sa využívajú

Microsoft Visual C++

Borland C++

12

Vývojové prostredia pre jednočipy

AVR studio

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ď.

14

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

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é

17

Vlastnosti algoritmov

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

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

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.

19

2. Rezultatívnosť

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

20

3. Konečnosť

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

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

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ú

23

Spôsoby vyjadrenia algoritmu:

Verbálne alebo textom

Vývojový diagram

Samotný programovací jazyk

Rozhodovacie tabuľky

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ť

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.

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“

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

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).

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

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ú).

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.

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).

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.

34

Jazyk pre popis programov

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

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.

36

Grafické prvky

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

Spracovanie

A=BNIE ÁNORozhodovanie

ŠTART KONIEC

37

Grafické prvky

Cyklus

Vstup/výstup dát

A

A

Spojka

38

Grafické prvky

Podprogram

Tlač

Poznámka

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

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

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

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."

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.

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)

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)

Recommended