Snímka 1

Podobné dokumenty
Algoritmizácia a programovanie - Príkazy

NÁVRH UČEBNÝCH OSNOV PRE 1

História

Informačné technológie

03_ControlFlow.dvi

Algoritmizácia a programovanie - Štruktúrované údajové typy

Snímka 1

enum

ECDL Syllabus V50 SK-V01

midterm2019

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Relačné a logické bázy dát

Úroveň strojového kódu procesor Intel Pentium Úvod Štruktúra procesorov Intel Pentium Základné inštrukcie Vetvenia a cykly Praktické programovanie jed

Microsoft PowerPoint - Prog_p08.ppt

Súkromné gymnázium, Česká 10, Bratislava INFORMATIKA

Katalóg cieľových požiadaviek k maturitnej skúške

Hardwarové prerušenie Nasledujúci kód ukazuje inštaláciu obsluhy časovača vrátane jeho inicializácie // inicializace časovače, přerušení každou milise

Paralelné algoritmy, cast c. 2

Matematika 2 - cast: Funkcia viac premenných

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

Vnútorná reprezentácia údajových typov

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

MO_pred1

Teória pravdepodobnosti Zákony velkých císel

Prezentace aplikace PowerPoint

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Klasická metóda CPM

Paralelné algoritmy, cast c. 3

Paralelné algoritmy, cast c. 3

Úvodná prednáška z RaL

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

midterm2014_1

Analýza toku dát Ján Šturc Zima 2010 Kompilátory

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

DediĊnosť

Prenosový kanál a jeho kapacita

Pokrocilé programovanie XI - Diagonalizácia matíc

MO_TČOZ_TLY_2018_2019

Microsoft Word - 16.kapitola.doc

Kolmogorovská zložitost

Republika Srbsko MINISTERSTVO OSVETY, VEDY A TECHNOLOGICKÉHO ROZVOJA ÚSTAV PRE HODNOTENIE KVALITY VZDELÁVANIA A VÝCHOVY VOJVODINSKÝ PEDAGOGICKÝ ÚSTAV

Microsoft Word - Diskusia11.doc

PowerPoint Presentation

7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min

Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach

Hospodarska_informatika_2015_2016a

Slovenská komisia Matematickej olympiády FMFI UK, Mlynská dolina, Bratislava 51. ročník matematickej olympiády Riešenia úloh I. kola kategórie

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

Identity Lifecycle Management

CviĊenie z PTS

Platný od: OPIS ŠTUDIJNÉHO ODBORU

Moderné vzdelávanie pre vedomostnú spoločnosť/ Projekt je spolufinancovaný zo zdrojov EÚ LINEÁRNE A KVADRATICKÉ PROGRAMOVANIE Vysokoškolská učebnica F

Microsoft Word - Argumentation_presentation.doc

1

Zbierka RaNRU v Delphi I.diel

Študijný program (Študijný odbor) Školiteľ Forma štúdia Téma Elektronické zbraňové systémy (8.4.3 Výzbroj a technika ozbrojených síl) doc. Ing. Martin

Informačná a modelová podpora pre kvantifikáciu prvkov daňovej sústavy SR

Multithreading a komunikácia medzi procesmi a threadmi, Časová závislosť, kritická sekcia a vzájomné vylúčenie, súvislosti medzi týmito pojmami Riešen

Intellectual Property, Psychology and Sociology

Úvod do lineárnej algebry Monika Molnárová Prednášky 2006

1 Rekurencie este raz riesenia niektorych rekurencii z cvik. mame danu rekurenciu napr T (n) = at ( n b ) + k. idea postupu je postupne rozpisovat cle

Microsoft Word - Priloha_1.docx

test z informatiky - hardvér Test vytvoril Stanislav Horváth Vstupno - výstupné zariadenia Otázka č.1: Aké zariadenie je na obrázku? (1 bod) a) vstupn

Microsoft Word - Zaver.pisomka_januar2010.doc

NSK Karta PDF

APROXIMÁCIA BINOMICKÉHO ROZDELENIA NORMÁLNYM A PRÍKLAD JEJ APLIKÁCIE V AKTUÁRSTVE S VYUŽITÍM JAZYKA R Abstrakt Príspevok sa zameriava na prezentáciu l

1 Portál pre odborné publikovanie ISSN Heuristický adaptívny PSD regulátor založený na miere kmitavosti Šlezárová Alexandra Elektrotechnika

Olympiáda v informatike ročník (2011/2012) riešenia domáceho kola kategória B Riešenia kategórie B B-I-1 Teploty Na zisk 6 bodov sta

Generovanie viacstavových modelov a ich riešenie v Maxime 1 Jozef Fecenko Abstrakt Cieľom príspevku je prezentovať zdrojový kód v open source systéme

1

Vyhodnotenie študentských ankét 2013

(Microsoft Word - Tuzemsk\341 a zahrani\350n\341 jazda \232tandardn\341 jazda.docx)

User:Andrej Sedlacek

MATEMATICKÁ OLYMPIÁDA NA STREDNÝCH ŠKOLÁCH 54. ročník, školský rok 2004/2005 Zadania úloh 3. kola kategórie P 1. súťažný deň Na riešenie úloh máte 4.5

Vývoj geografických aplikácií v GIS

Siete vytvorené z korelácií casových radov

Operačná analýza 2

Neineárne programovanie zimný semester 2018/19 M. Trnovská, KAMŠ, FMFI UK 1

Pokrocilé programovanie II - Nelineárne iteracné schémy, chaos, fraktály

Microsoft Word - Transparencies03.doc

Chemical Business NewsBase

Kritériá Právnická fakulta

Hranoly (11 hodín) September - 17 hodín Opakovanie - 8. ročník (6 hodín) Mesiac Matematika 9. ročník 5 hodín/týždeň 165 hodín/rok Tematický celok Poče

Zobrazenie čísiel v počítači Celé nezáporné čísla - čísla bez znamienka dvojková sústava iné používané sústavy - šestnástková a osmičková BCD kódovani

Olympiáda v informatike ročník (2012/2013) zadania domáceho kola kategórie A a B Informácie a pravidlá Pre koho je súťaž určená? Kat

PowerPoint Presentation

1)

Microsoft PowerPoint - OOP_prednaska_10.pptx

TECHNICKÁ UNIVERZITA VO ZVOLENE, ÚSTAV TELESNEJ VÝCHOVY A ŠPORTU usporiada 7. ročník vedeckej konferencie s medzinárodnou účasťou TELESNÁ VÝCHOVA A ŠP

Trapézy T-14 plus Karta výrobku Rabka-Zdrój 619 načítajte QR kód a pozrite si 3D model T: F:

Acta Mathematica Nitriensia Vol. 2, No. 1, p ISSN Budúci učitelia elementaristi a ich vedomosti o zlomkoch Future Elementary School T

Trapézy T-35 plus Karta výrobku Rabka-Zdrój 619 načítajte QR kód a pozrite si 3D model T: F:

Trapézy T-18 plus Karta výrobku Rabka-Zdrój 619 načítajte QR kód a pozrite si 3D model T: F:

Pocítacové modelovanie - Šírenie vln v nehomogénnom prostredí - FDTD

IPAC – Vyhľadávanie pomocou režimu INDEX

seminarna_rocnikova_a_bakalárska práca

INTERNET BANKING Práca s tokenom VŠETKO, ČO JE MOŽNÉ with.vub.sk, Bank of

Objektovo orientované programovanie

Prepis:

Mgr. Ing. Roman Horváth, PhD. Katedra matematiky a informatiky Pedagogická fakulta Trnavská univerzita v Trnave roman.horvath@truni.sk Algoritmus a vlastnosti algoritmov

Algoritmus konečná postupnosť krokov (postup), dostatočne elementárnych, ktorých vykonávanie nevyžaduje vhľad, inteligenciu či intuíciu a ktorých vykonávanie dokáže vyriešiť predložený problém v konečnom čase. postupnosť elementárnych krokov vedúca k riešeniu v konečnom čase

Algoritmus vstávania do školy zastav budík, vstaň z postele, umy sa, vyzleč si pyžamo, obleč si šaty, naraňajkuj sa, obuj sa, zober tašku, vyjdi pred dvere, zamkni byt. (neriešime úplne elementárne úkony typu: otvor dvere, daj zubnú pastu na kefku atď.)

Vlastnosti algoritmov Elementárnosť postup je zložený z elementárnych krokov (príkazov). Determinovanosť jednoznačnosť postup má byť zostavený tak, aby bolo v každom okamihu jeho vykonávania zrejmé, čo má nasledovať ďalej a či sa postup už skončil. Rezultatívnosť pri správnom algoritme musí byť zaručené, že sa dopracujeme k správnemu výsledku, a že postup dáva rovnaké výsledky pri rovnakých vstupných údajoch.

Vlastnosti algoritmov Konečnosť postup skončí v konečnom čase, po vykonaní konečného počtu činností. Hromadnosť postup je použiteľný pre celú dostupnú množinu prípustných vstupných hodnôt pre ľubovoľné vstupné údaje. Efektívnosť postup skončí v čo najkratšom čase, s využitím čo najmenšieho počtu činností (zdrojov, prostriedkov).

Vstup a výstup vstup, či výstup údajov môže byť vykonávaný rôznymi spôsobmi: klávesnica / monitor, súbor, databáza, iný proces

Príklady príkazov vstupu Pascal: read(); readln(); Java: InputStreamReader vstup = new InputStreamReader(System.in); BufferedReader čítač = new BufferedReader(vstup); try { riadok = čítač.readline(); } catch GRobot: Long l = Svet.čítajCeléČíslo("Počet:"); Double d = Svet.čítajReálneČíslo("Číslo:");

Pascal: write(); writeln(); Príklady príkazov výstupu Java: System.out.print(""); System.out.println(""); GRobot: Svet.vypíš("Nezadali ste: "); Svet.vypíšRiadok("Hra na ozvenu", riadok);

ďalšie príkazy a úkony lineárne príkazy vetvenia a podmienené spracovanie cykly a ďalšie priradenie hodnoty podmienené spracovanie s podmienkou na začiatku výpočet hodnoty (aritmetické, bitové a iné operácie) jednoduché vetvenie s podmienkou na konci vyhodnotenie pravdivosti výrazu (logické, relačné a iné operácie) viacnásobné vetvenie s explicitným počtom iterácií a ďalšie prechádzanie zoznamov

Mgr. Ing. Roman Horváth, PhD. Katedra matematiky a informatiky Pedagogická fakulta Trnavská univerzita v Trnave roman.horvath@truni.sk Spôsoby vyjadrovania algoritmov

textové slovne, zdrojovým kódom Spôsoby vyjadrovania algoritmov grafické vývojové diagramy, Nassi-Shneidermanove diagramy = = štruktogram (štruktúrogram)

ak «podmienka» tak «príkaz(y)» Podmienené spracovanie a jednoduché vetvenie ak «podmienka» tak «príkaz(y)» inak «príkaz(y)»

Podmienené spracovanie a jednoduché vetvenie if «podmienka» then begin «príkazy»; end; if «podmienka» then begin «príkazy»; end else begin «príkazy»; end;

Podmienené spracovanie a jednoduché vetvenie if («podmienka») { «príkazy»; } if («podmienka») { «príkazy»; } else { «príkazy»; }

Podmienené spracovanie a jednoduché vetvenie if a <> 0 then c := b / a; if D = 0 then begin x1 := ( b + sqrt(d)) / (2 * a); x2 := ( b sqrt(d)) / (2 * a); end else begin writeln('nehľadáme riešenie ', 'v množine komplexných čísel'); end;

Podmienené spracovanie a jednoduché vetvenie if (a!= 0) c = b / a; if (D == 0) { x1 = ( b + Math.sqrt(D)) / (2 * a); x2 = ( b Math.sqrt(D)) / (2 * a); } else { vypíšriadok("nehľadáme riešenie " + "v množine komplexných čísel"); }

Podmienené spracovanie a jednoduché vetvenie štart štart «podmienka» + + + a > 0 koniec príkaz; príkaz; príkaz; koniec

Podmienené spracovanie a jednoduché vetvenie A «podmienka» A a > 0 N príkaz; príkaz; príkaz;

write('meno: '); readln(meno); write('heslo: '); readln(heslo); Príklady použitia if (a if-else ): if (meno = 'admin') and (heslo = 'asdfg') then begin writeln('vitajte!'); end; writeln('dovidenia...'); write('zadaj a: '); readln(a); write('zadaj b: '); readln(b); if b <> 0 then writlen('podiel je: ', a / b); else writlen('nemôžem deliť nulou! ');

String meno = čítajreťazec("meno"); String heslo = čítajreťazec("heslo"); if (meno.equals("admin") && heslo.equals("asdfg")) { vypíšriadok("vitajte!"); } vypíšriadok("dovidenia..."); Príklady použitia if (a if-else ): int a = čítajčíslo("zadaj a"); int b = čítajčíslo("zadaj b"); if (b!= 0) vypíšriadok("podiel je: " + (a / b)); else vypíšriadok("nemôžem deliť nulou!");

Viacnásobné vetvenie v prípade, že «premenná» má hodnotu «hodnota1» tak «príkaz(y)» má hodnotu «hodnota2» tak «príkaz(y)» inak «príkaz(y)»

Viacnásobné vetvenie case «premenná» of «hodnota»: «príkaz»; else «príkazy»; end; case c of 1: a := 8; -3, 2: a := c * 14; else a := 2 * c; end;

Viacnásobné vetvenie switch («premenná») { case «hodnota»: «príkazy»; break; default: «príkazy»; } switch (c) { case 1: a = 8; break; case -3: case 2: a = c * 14; break; default: a = 2 * c; }

Viacnásobné vetvenie štart c 1 1-3, 2-3, 2 inak inak príkaz; príkaz; príkaz; príkaz; koniec

Viacnásobné vetvenie 1-3, 2 c inak príkaz; príkaz; príkaz; príkaz;

Príklad použitia case-of writeln('ponuka:'); writeln(' 1. Vklad na účet'); writeln(' 2. Výber v hotovosti'); writeln(' 3. Žiadosť o hypotéku'); write('zadaj voľbu: '); readln(voľba); case voľba of 1: writeln(' -- zvolil si vklad na účet --'); 2: writeln(' -- zvolil si výber v hotovosti --'); 3: writeln(' -- zvolil si žiadosť o hypotéku --'); else writeln('neplatná voľba!'); end;

Príklad použitia switch vypíšriadok("ponuka:"); vypíšriadok(" 1. Vklad na účet"); vypíšriadok(" 2. Výber v hotovosti"); vypíšriadok(" 3. Žiadosť o hypotéku"); int voľba = čítajčíslo("zadaj voľbu"); switch (voľba) { case 1: vypíšriadok(" -- zvolil si vklad na účet --"); break; case 2: vypíšriadok(" -- zvolil si výber v hotovosti --"); break; case 3: vypíšriadok(" -- zvolil si žiadosť o hypotéku --"); break; } default: vypíšriadok("neplatná voľba!");

Cykly s podmienkou na začiatku a s podmienkou na konci pokiaľ platí «podmienka» opakuj «príkaz(y)» koniec cyklu opakuj «príkaz(y)» pokiaľ platí «podmienka»

Cykly s podmienkou na začiatku a s podmienkou na konci while «podmienka» do begin «príkazy»; end; repeat «príkazy»; until «negatívna podmienka»;

Cykly s podmienkou na začiatku a s podmienkou na konci while («podmienka») { «príkazy»; } do { «príkazy»; } while («podmienka»)

Cykly s podmienkou na začiatku a s podmienkou na konci štart štart «podmienka» príkaz; príkaz; + + + b!= c koniec koniec

Cyklus s podmienkou na začiatku a s podmienkou na konci «podmienka» príkaz; príkaz; b!= c

Príklad použitia while-do domacirozpocet := 0; pocetpoloziek := 0; writeln('domáci rozpočet...'); write('vložte prvú položku: '); readln(ďalšiahodnota); while 0 <> ďalšiahodnota do begin domacirozpocet := domacirozpocet + ďalšiahodnota; inc(pocetpoloziek); write('vložte ďalšiu položku'); readln(ďalšiahodnota); end; writeln('domáci rozpočet: ', domacirozpocet); writeln('počet položiek: ', pocetpoloziek);

Príklad použitia while int domácirozpočet = 0; int početpoložiek = 0; vypíšriadok("domáci rozpočet..."); int ďalšiahodnota = čítajčíslo("vložte prvú položku"); while (0!= ďalšiahodnota) { domácirozpočet = domácirozpočet + ďalšiahodnota; ++početpoložiek; ďalšiahodnota = čítajčíslo("vložte ďalšiu položku"); } vypíšriadok("domáci rozpočet: " + domácirozpočet); vypíšriadok("počet položiek: " + početpoložiek);

Príklad použitia repeat-until var nevzniklavynimka: boolean; repeat nevzniklavynimka := true; try write('zadaj celé číslo: '); readln(retazec); cislo := StrToInt(retazec); except on e : EConvertError do writeln('nastala výnimka!'); nevzniklavynimka := false; end; until nevzniklavynimka;

Príklad použitia do-while boolean vzniklavýnimka; do { vzniklavýnimka = false; try { vypíšriadok("zadaj celé číslo: "); reťazec = vstup.readline(); číslo = Integer.parseInt(reťazec); } catch (Exception e) { vypíšriadok("nastala výnimka!"); vzniklavýnimka = true; } } while (vzniklavýnimka);

Cyklus s explicitným počtom iterácií (a cyklus na prechádzanie polí) pre každé «premenná» z rozsahu od «spodná hranica» do «horná hranica» opakuj «príkaz(y)» pre každé «premenná» v poli «pole» opakuj «príkaz(y)»

Cyklus s explicitným počtom iterácií for «premenná» := «spodná hranica» to «horná hranica» do begin «príkazy»; end; for «premenná» := «horná hranica» downto «spodná hranica» do begin «príkazy»; end; for i := 1 to 10 do writeln(i);

Cyklus s explicitným počtom iterácií for («inicializácia»; «podmienka»; «iteračný príkaz») { «príkazy»; } for (int i = 0; i < 10; ++i) vypíšriadok(i);

for («premenná» : «pole») { «príkazy»; } Cyklus na prechádzanie polí int[] a; int result = 0; for (int i : a) result += i;

Cyklus s explicitným počtom iterácií (a cyklus na prechádzanie polí) štart štart štart ++a a = 0; a < 10 príkaz; koniec a = 0; a < 10; ++a príkaz; koniec pre každé i v poli k príkaz; koniec

Cyklus s explicitným počtom iterácií (a cyklus na prechádzanie polí) nech a je 0 a je menšie ako 10 príkaz(y); zvýš a o 1 pre každé i v poli k príkaz; a = 0; a < 10; ++a príkaz;

štart Najväčší spoločný deliteľ čísiel x, y x, y x, y a = x; b = y; a = x; b = y; a!= b a = b; + a!= b + a > b NSD(x, y) je a koniec a > b A N a = b; b = a; NSD(x, y) je a b = a;

Najväčší spoločný deliteľ čísiel x, y var x, y, a, b: integer; begin write('x: '); readln(x); write('y: '); readln(y); a := x; b := y; while a <> b do begin if (a > b) a := a - b else b := b - a end; writeln('nsd(', x, ', ', y, ') je ', a); end.

Najväčší spoločný deliteľ čísiel x, y int x = čítajčíslo("x"); int y = čítajčíslo("y"); int a = x; int b = y; while (a!= b) { if (a > b) a -= b; else b -= a; } vypíšriadok("nsd(", x, ", ", y, ") je ", a);