220 likes | 430 Views
Pudlová Iva 4.B. ALGORITMIZACE A PROGRAMOVÁNÍ. Postup vzniku programu. 1. Zadání úkolu Je třeba vyřešit nějaký problém, zefektivnit určitou činnost. Je nezbytné pokusit se co nejpřesněji určit podstatu problému a stanovit, jaký má být výsledek.
E N D
Pudlová Iva 4.B ALGORITMIZACE A PROGRAMOVÁNÍ
Postup vzniku programu • 1. Zadání úkolu Je třeba vyřešit nějaký problém, zefektivnit určitou činnost. Je nezbytné pokusit se co nejpřesněji určit podstatu problému a stanovit, jaký má být výsledek.
2. Návrh postupu řešení a jeho algoritmizace Máme-li úkol, musíme vymyslet řešení zadaného úkolu. Počítač sám řešení nenajde, vykoná jen velmi rychle operace, které mu zadáme. • slovní formulace úkolu • po slovní formulaci řešení musíme • stanovit algoritmus řešení • řešení úkolu je třeba zapsat v drobných krůčcích, které je určitý procesor schopen realizovat • pak výběr vhodného programovacího jazyka
3. Zápis programu, ladění programu, chyby • máme algoritmus, řešící zadanou úlohu • vývojové prostředí v počítači pro tvorbu programů ve zvoleném programovacím jazyku • můžeme začít vytvářet vlastní program • po vytvoření programu jej můžeme spustit Pokud program nefunguje nebo funguje špatně, začneme ho ladit (hledat a odstraňovat chyby) Chyby dvojího druhu: • syntaktické = špatně zapsaný nějaký příkaz, programovací jazyk ho nezná. Překlad programu se zastaví a objeví se hlášení o chybě • logické = program funguje, ale nedělá to co má. Složitější případ, dopustili jsme se chyby v algoritmu.
4. Podpora a údržba programu Je-li vše v pořádku hotovo, máme funkční program verze 1.0 • napsat manuál (návod k obsluze) • poskytovat k programu podporu a udržovat ho (radit uživatelům, odstraňovat chyby, program zdokonalovat).
ALGORITMIZACE • Algoritmus = posloupnost operací, která řeší daný úkol. • Arabský matematik Abu AbdalahMuhammad (800 let n.l.) napsal knihu „Algoritmi de numero Indorum“ – slovo „Algoritmi“ a desítková soustava. • Aby postup byl opravdu algoritmem, musí mít dále uvedené vlastnosti.
Vlastnosti algoritmu: • Hromadnost – musí řešit danou úlohu pro různé vstupní hodnoty Neřeší tedy 1 + 2 = 3 ale obecně X + Y = Z • Podmíněnost (determinovanost) – operace i jejich návaznosti jsou jednoznačně určeny Nic nesmí být náhodné, neurčené • Opakovatelnost – při stejných vstupních hodnotách dostaneme vždy stejný výsledek • Konečnost (rezultativnost) – celý algoritmus musí proběhnout v konečném počtu kroků.
Algoritmus lze vyjádřit: • slovně: jednotlivé kroky postupu jsou vyjádřeny větami v přirozeném jazyce • graficky: jednotlivé kroky jsou popsány grafickími značkami se slovním popisem • matematicky: soustavou rovnic, vztahem mezi veličinami • programem: jednotlivé kroky jsou popsány instrukcemi určitého procesoru
Programování = zakódování algoritmu do zvoleného programovacího jazyka • Zápis algoritmu a použitý procesor, základní příkazy: • S algoritmy se setkáváme běžně ve svém životě • Většinou nejsou zapsány žádným programovacím jazykem, ale přirozeným jazykem (slovní nebo písemnou formou) • Procesorem těchto algoritmů jsme my, lidé • Jakýkoliv návod, postup je algoritmem – příklad = kuchařské předpisy
Vývojový diagram = grafické znázornění jednotlivých příkazů pomocí normalizovaných značek. • Mezní značka – začátek a konec programu • Zpracování – příkaz, operace, činnost (x=5, VlevoVbok, …) • Větvení – ano × ne ( x > 0, když platí→ pak ano, když neplatí→pak ne – nebo nic) • Vstup a výstup hodnot ( čti y, zobraz x, tiskni x) • Poznámka (výpočet objemu, …)
PROGRAMOVÁNÍ • Program = zápis algoritmu pomocí příkazů určitého programovacího jazyka. • Programovacích jazyků vzniklo v průběhu vývoje počítačů mnoho a dnes jsou jich desítky. Podle převládajícího nasazení si je zjednodušeně můžeme rozdělit na: • obecné programovací jazyky (např. C, C++, C#, Object Pascal, Visual Basic, NET Framework, Java) • databázové programovací jazyky (např. MS Fox Pro, Oracle) • programovací jazyky používané ve webových klientech (Java, JavaSkript, ActiveX) • specializované programovací jazyky (např. simulační, makrojazyky v různých programech atd.)
Překladač, interpret, Java a vývojové prostředí Způsob vykonávání programů v počítači se může poměrně zásadně lišit.
Překladač (kompilátor, anglicky compiler) • program, který ze zdrojového kódu vytvoří spustitelný soubor. To znamená, že z textového zápisu vytvoří instrukce pro procesor. Protože překlad programu závisí na použitém hardwaru a současně na použitém operačním systému, jsou přeložené překlady použitelné pouze na počítačích, které obsahují požadovanou kombinaci hardwaru a operačního systému.
Interpret • načítá program v textovém zápisu a okamžitě jednotlivé příkazy vykonává, program tedy není předem přeložený. Protože v okamžiku běhu programu musí probíhat i jeho překlad do strojového kódu, je běh takového programu pomalejší než u programu předem přeloženého.
Java • zvláštní moderní programovací jazyk. Jeho kód je kompilován pouze částečně a na počítači musí být spuštěno prostředí Java VirtualMachine (JVM), které zajistí jeho provedení. Protože prostředí JVM existuje snad pro všechny současné typy počítačů a operačních systémů, je program vytvořený pomocí Javy využitelný na různých platformách. Dnes prostředí JVM obsahují i mobilní telefony a ve formě integrovaného čipu jej mohou obsahovat i libovolná zařízení (ledničky, pračky,…). Všechna tato zařízení pak mohou spouštět aplikace napsané v jazyku Java (třeba hry).
Vývojové prostředí • komplexní nástroj na tvorbu programů. Obsahuje vždy překladač pro určitý programovací jazyk, dále množství nástrojů na vizuální tvorbu programu, množství připravených hotových komponenta nástroje pro ladění programu a odstraňování chyb. Díky tomu zrychluje práci při vytváření nových programů. • Vývojová prostředí jsou dostupná pro většinu výše uvedených programovacích jazyků, k nejznámějším patří např. Borland Delphi nebo Microsoft Visual Studio.
Důležité pojmy • Proměnná= místo v paměti počítače, ve kterém se nachází určitá hodnota. Je označena identifikátorem. • Identifikátor = název proměnné, třeba X, Y, N, nebo třeba PocetOpakovani. Je dobré volit identifikátory mnemotechnické, to je takové, které vypovídají o významu a použití proměnné. Proměnnou, do které uložíme výsledek výpočtu plochy obdélníka, lze nazvat třeba P1, ale lépe PlochaObdelnika. Ve většině programovacích jazyků identifikátor nesmí obsahovat mezery ani písmena mimo anglickou abecedu. Jsou také rozlišována velká a malá písmena (PocetDni, Pocetdni) – mimo jazyk Pascal.
Datový typ. Proměnné jsou vždy určitého typu a podle jejich typu se s nimi pracuje. Proměnná může být např. typu ZNAK (char), pak ji ale nelze použít ve výpočtu, nebo typu CELÉ ČÍSLO (integer), pak do ní nelze vložit výsledek dělení, který nebývá celé číslo, nebo typu REÁLNÉ ČÍSLO (real), nebo typu LOGICKÁ PROMĚNNÁ (boolean), platí nebo neplatí, Ano-Ne. Typů je mnohem více. • Deklarace. Většina programovacích jazyků vyžaduje na začátku programu stanovit u všech proměnných, jakého jsou typu. Tomu se říká deklarace proměnných. Např. POPIS je typu ZNAK, N je typu CELÉ ČÍSLO atd. Konkrétní zápis deklarace (a zda jsou vůbec nutné – někdy se proměnná deklaruje sama podle prvně vloženého údaje) závisí na programovacím jazyku.
Operátory a standardní funkce. Programovací jazyk nabízí základní matematické (+, –, /, * ) a logické ( =, <, >, , , ) operátory a množství standardních funkcí: ln(x) (přirozený logaritmus), sin(x), sqrt(x) (odmocnina) atd. Důležité je brát do úvahy prioritu operátorů: nejdříve se provedou funkce, pak násobení a dělení a nakonec sčítání a odčítání. Výsledkem výrazu 5*2+1 je proto číslo 11, pokud chcete provést nejdříve součet, musíte dát část výrazu do závorky 5*(2+1), výsledek bude 15. • Syntaxe = přesné určení, jak se mají jednotlivé výrazy a vůbec části programu zapisovat. pokud příkaz tisku má syntaxi PRINT(proměnná, která se má tisknout) a místo toho zapíšeme PRONT(X), program při překladu ohlásí chybu – neznámý příkaz. Chyba může být i méně nápadná PRINT (X), (před závorkou je chybně mezera). Syntaxi zvoleného programovacího jazyka musíme bezpečně zvládnout. Nelze použít běžného jazyka např. „dej do X číslo 5“ ale nutno použít příkaz X:=5 (v jazyku Pascal).