Algoritmizace a programování



Podobné dokumenty
Algoritmizace a programování

Programování - úvod. Programování. Proces programování. Vlastnosti dobrého programu: Kapitola seznamuje se základními pojmy programování.

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO PŘÍRUČKA UŽIVATELE

Algoritmus (nebo dřívějším pravopisem algorithmus)

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

1.2.5 Reálná čísla I. Předpoklady:

ROZCVIČKY. (v nižší verzi může být posunuta grafika a špatně funkční některé odkazy).

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Modul Řízení objednávek.

Poměry a úměrnosti I

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

1 Matematické základy teorie obvodů

1.4.1 Výroky. Předpoklady: Výrok je sdělení, u něhož má smysl otázka, zda je či není pravdivé

NÁVOD K OBSLUZE MODULU VIDEO 64 ===============================

Databáze invazivních vstupů jako zdroj dat pro účinnou kontrolu infekcí

( x ) 2 ( ) Další úlohy s kvadratickými funkcemi. Předpoklady: 2501, 2502

Česká zemědělská univerzita v Praze Fakulta provozně ekonomická. Obor veřejná správa a regionální rozvoj. Diplomová práce

Tekla Structures Multi-user Mode

1.2.7 Druhá odmocnina

Žáci mají k dispozici pracovní list. Formou kolektivní diskuze a výkladu si osvojí grafickou minimalizaci zápisu logické funkce

Školní kolo soutěže Mladý programátor 2016, kategorie A, B

Elektrická měření 4: 4/ Osciloskop (blokové schéma, činnost bloků, zobrazení průběhu na stínítku )

Zákon o elektronickém podpisu

Marketing. Modul 5 Marketingový plán

4. Počítačová síť. Co je to počítačová síť

SRF08 ultrazvukový dálkoměr

Inovace bakalářského studijního oboru Aplikovaná chemie. Reg. č.: CZ.1.07/2.2.00/

Úvod do jazyka C. Proč jazyk C

PŘIJÍMACÍ ŘÍZENÍ. Strana


Příloha č. 7. ročník 9. 1h 1x za 14 dní. dotace. nepovinný. povinnost

účetních informací státu při přenosu účetního záznamu,

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Cyklus while, do-while, dělitelnost, Euklidův algoritmus

MATEMATIKA A BYZNYS. Finanční řízení firmy. Příjmení: Rajská Jméno: Ivana

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

MAGIS ve strojírenské firmě Strojírna Vehovský s.r.o.

Příprava na 1. čtvrtletní písemku pro třídu 1EB

Matematika. Charakteristika vyučovacího předmětu. Výchovné a vzdělávací strategie pro rozvíjení klíčových kompetencí žáků

4.5.1 Magnety, magnetické pole

MĚŘENÍ IMPEDANCE. Ing. Leoš Koupý 2012

1. POLOVODIČOVÁ DIODA 1N4148 JAKO USMĚRŇOVAČ

Orientační průvodce mateřstvím a rodičovstvím v zadávacích dokumentacích poskytovatele

ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ

MECHANICKÁ PRÁCE A ENERGIE

3. Polynomy Verze 338.

MOBILNÍ KOMUNIKACE STRUKTURA GSM SÍTĚ

c sin Příklad 2 : v trojúhelníku ABC platí : a = 11,6 dm, c = 9 dm, α = Vypočtěte stranu b a zbývající úhly.

Číslicová technika 3 učební texty (SPŠ Zlín) str.: - 1 -

Změny obsahu GP Změny obsahu ZPMZ

POKYNY PRO PLATBY FINANČNÍ MECHANISMUS EHP A NORSKÝ FINANČNÍ MECHANISMUS (1.revize - 21.června 2007)

OBOUSMĚRNÝ PŘEKLAD V ELETRONICKÝCH SLOVNÍCÍCH ZNAKOVÉHO JAZYKA

Metody hodnocení rizik

Vyvažování tuhého rotoru v jedné rovině přístrojem Adash Vibrio

ODBORNÝ POSUDEK. č. 2661/108/15

Škola VOŠ a SPŠE Plzeň, IČO , REDIZO

Typy umělých neuronových sítí

Zadávací dokumentace k veřejné zakázce

Microsoft Office Project 2003 Úkoly projektu 1. Začátek práce na projektu 1.1 Nastavení data projektu Plánovat od Datum zahájení Datum dokončení

Osvětlení modelového kolejiště Analog / DCC

Popis realizace sociální služby Keramická dílna Eliáš. Poslání. Hlavními cíli naší dílny jsou

Oblastní stavební bytové družstvo, Jeronýmova 425/15, Děčín IV

PŘÍLOHA č. 2C PŘÍRUČKA IS KP14+ PRO OPTP - ZPRÁVA O REALIZACI

8 EGPVTW RQ\QTPQUVK ĮÉFKEÉ U[UVÅO 5'.1)+%# 7PKXGT\½NPÉ OCPCIGOGPV RTQEGUW

Adresace paměti. 11.přednáška

Úvod Petr Kropík viz:

Vzdělávací program pro obchodní partnery společnosti ROCKWOOL průvodce školením

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

4. cvičení: Pole kruhové, rovinné, Tělesa editace těles (sjednocení, rozdíl, ), tvorba složených objektů

S_5_Spisový a skartační řád

I. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb

6. Příklady aplikací Start/stop Pulzní start/stop. Příručka projektanta VLT AQUA Drive

1. DÁLNIČNÍ A SILNIČNÍ SÍŤ V OKRESECH ČR

Obecně závazná vyhláška města Žlutice č. 2/2011 Požární řád obce

5.2.1 Matematika povinný předmět

Úprava tabulek v MS Word. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T. G. Masaryka, Kostelec nad Orlicí

Č e s k ý m e t r o l o g i c k ý i n s t i t u t Okružní 31,

TECHNICKÉ KRESLENÍ A CAD

VYKAZOVÁNÍ VÝSLEDKŮ VÝZKUMU A VÝVOJE

MS měření teploty 1. METODY MĚŘENÍ TEPLOTY: Nepřímá Přímá - Termoelektrické snímače - Odporové kovové snímače - Odporové polovodičové

Podpůrný výukový materiál s využitím ICT* Podpůrný výukový materiál reedukační hodiny *

7. Domy a byty Charakteristika domovního fondu

Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika:

Matematický KLOKAN kategorie Benjamín

vydává DRAŽEBNÍ VYHLÁŠKU o provedení elektronické dražby nemovitých věcí

STANDARD 3. JEDNÁNÍ SE ZÁJEMCEM (ŽADATELEM) O SOCIÁLNÍ SLUŽBU

Veřejné připomínky k cenovému rozhodnutí, kterým se stanovují regulované ceny související s dodávkou elektřiny

Centrum pro flexibilní zpracování plechových polotovarů (II)

Výchovné a vzdělávací strategie pro rozvoj klíčových kompetencí žáků

Základní stavební prvky algoritmu

Bude nás sledovat inteligentní prach? Ing. Bibiána Buková, PhD. ( )

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS

ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE

Aritmetika s didaktikou II.

mísy na koření akční pole prostor pro karty koření 1 mlýnek na pepř

DRAŽEBNÍ VYHLÁŠKU o provedení elektronické dražby nemovitých věcí

Obsah. Úvodem 9 Komu je kniha určena 9 Forma výkladu 9 Konkrétní postup výuky 10 Příklady ke knize 11

Aktivity s GPS 3. Měření některých fyzikálních veličin

2 Trochu teorie. Tab. 1: Tabulka pˇrepravních nákladů

Transkript:

Algoritmizace a programování V algoritmizaci a programování je důležitá schopnost analyzovat a myslet. Všeobecně jsou odrazovým můstkem pro řešení neobvyklých, ale i každodenních problémů. Naučí nás rozdělit složité informace na jednodušší a pochopit tak lépe podstatu problému. Problém je stav, ve kterém je rozdíl mezi tím, co v daném momentě máme a tím, co chceme dosáhnout. Řešení problému je odstraňování rozdílu mezi aktuálním stavem a tím, co chceme dosáhnout Algoritmus Algoritmus = přesný postup, který je potřeba k vykonání určité činnosti Vlastnosti: elementárnost postup je složený z jednoduchých kroků, které jsou pro počítač srozumitelné konečnost musí skončit v konečném počtu kroků jednoznačnost - každý krok algoritmu musí být jednoznačně a přesně definován rezultativnost - výpočet dává po konečném počtu prvků výsledek hromadnost - algoritmus je schopen zpracovávat jakákoliv vstupní data, která vyhovují zadaným podmínkám efektivnost výpočet se uskutečňuje v co nejkratším čase a s využitím co nejmenšího množství prostředků Algoritmický jazyk jazyk pro komunikaci se strojem vyžaduje stabilní a neměnný seznam umožňující přesnou specifikaci příkazů je vyžadována přesnost, konkrétnost a adresnost Algoritmické jazyky můžeme rozdělit na graficky orientované vývojové diagramy, strukturogramy a obrázkové jazyky textově orientované slovní zápis v přirozeném jazyce, programovací jazyky a rozhodovací tabulky

Vývojový diagram je grafické znázornění algoritmu. Vývojové diagramy se skládají z grafických značek. Značky jsou různé a různě se kombinují, tím se simulují různé situace a různé příkazy, do těchto značek se pak vypisují upřesňující údaje. Takto vypadají jednotlivé části vývojového diagramu. Konec a začátek algoritmu Vstup nebo výstup Běžný příkaz Podmíněný výraz Cyklus s určeným počtem opakování Cyklus s podmínkou na konci Cyklus s podmínkou na začátku Podprogram Spojovací značka Spojovací čára

Rozdělit proces do čtyř kroků: 1. přesná definice problému 2. sestavení algoritmu 3. tvorba programového kódu 4. ověření funkce programu Vytváření programu ad1. Programátor by měl velice přesně znát, co chce naprogramovat, co má program umět a kdo jej bude používat. Je vhodné kontaktovat i budoucí uživatele a vyjasnit si co lze a nelze naprogramovat. Při tvorbě jednoduchých programů je tato fáze velice krátká a často odpadá, ale u složitějších projektů může být stěžejní. ad2. Tato fáze nastává u jakéhokoliv programu. U jednodušších stačí mít algoritmus v hlavě, u složitějších je lepší použít tužku a papír. Prvním krokem bývá rozdělení velkého problému na několik jednodušších U algoritmizace úlohy je třeba zdůraznit některé důležité zásady: a) každý příkaz musí mít jednoznačný význam, který je počítač schopen provést b) algoritmizace se musí řídit tzv. matematickou logikou ad3. Programátor píše zdrojový kód a zodpovídá za to: - aby kód dělal skutečně to co má - aby v programu nebyly chyby (aby byl program správně odladěn) - aby byl psán optimálním způsobem ad4. Stejně jako se provádí v matematice zkouška, zde se provádí ověření funkce - simuluje se zadávání vstupních dat, které se mohou vyskytnout za běžného provozu - zadávají se různé kombinace nesmyslných dat a zjišťuje se, jak si s nimi program poradí (neměl by havarovat) - navozují se mezní podmínky, při kterých by měl program ještě pracovat dobře Ladění, druhy chyb v programu Programování je komplexní proces, a protože je vykonáván lidmi, dochází při něm ke vzniku chyb. Anglicky se chyby nazývají bugs a jejich odstraňování debugging (ladění).

V programu mohou existovat tři druhy chyb. Je potřeba naučit se mezi nimi rozlišovat kvůli snadnějšímu vyhledávání. 1. Syntaktické chyby překladače mohou přeložit jen syntakticky správný zdrojový text, jinak se překlad přeruší a je ukončen s chybou. Syntaxe popisuje strukturu zdrojového textu a pravidla definující tuto strukturu. Jde vlastně o chyby pravopisné. Je možné jich objevit snadněji než chyby ostatní. S narůstajícími zkušenostmi s daným jazykem a programováním počet syntaktických chyb klesá. 2. Běhové chyby, to jsou chyby vznikající až při běhu programu. Tyto chyby se nazývají výjimkami, jelikož většinou indikují vznik výjimečné situace. Typickým příkladem je dělení nulou. Na tyto chyby narazíme až u složitějších programů. 3. Logické chyby, jsou to chyby v logickém návrhu programu. Tento typ chyb je nejzáludnější, nejhůře vyhledatelný, protože program se spustí bez problému, nevypisuje žádné chybové hlášky, ale nepracuje správně. Dělá přesně to, co jsme mu řekli. Problém spočívá v tom, že jsme napsali část programu jinak, než jsme zamýšleli. Vyhledávání takovéto chyby vyžaduje zpětnou kontrolu logiky programu, sledování kontrolních programů a odhadování toho, co vlastně program v daném okamžiku dělá (krokování programu) Ladění je jednou z nejdůležitějších dovedností, kterou je nutné se naučit. I když to zpočátku vypadá jako marná práce, je ladění duševně náročnou, podnětnou a zajímavou částí programování. Jistým způsobem připomíná detektivní práci. Jsme konfrontováni se stopami, ze kterých se musíme snažit vydedukovat procesy a události, které vedou k výsledkům, jež vidíte. Ladění občas připomíná vědecký výzkum. Jakmile máte tušení kde je chyba, upravíte program a zkusíte to znova. Byla-li vaše hypotéza správná a potvrdí-li se výsledky vaší modifikace, jste o krůček blíž k funkčnímu programu. Nebyla-li hypotéza správná, musíte přijít s novou.

Programovací jazyky a metody programování Program je jedním z možných zápisů algoritmů, na rozdíl od ostatních forem zápisu mu kromě člověka rozumí i počítač Programovací jazyk byl vyvinut pro usnadnění komunikace člověka s počítačem Rozdělení programovacích jazyků a) na nižší a vyšší podle toho jak blízko mají ke strojovému kódu strojový kód hovorová řeč nižší jazyky vyšší jazyky Počítač Člověk Zdrojový kód psaný v nižším programovacím jazyce je podstatně delší než ve vyšším Nižší programovací jazyky všechny jazyky operačních systémů Assemblery, jazyk C Vyšší programovací jazyky všechny uživatelsky orientované Fotran, Pascal, Delphi, Java. b) překládané (kompilované) a interpretované Překlad neboli kompilace je úkon, při kterém se převede program ze zdrojového kódu do strojového. Programy napsané v překládaných programovacích fungují tak, že se nejprve vytvoří spustitelný exe-soubor a pak už se spouští pouze ten. Interpretace programu je postup, při kterém se nevytvoří dopředu spustitelný soubor, ale překládá se až za běhu programu. Tyto jazyky jsou nezávislé na prostředí, ve kterém jsou spuštěny. Překládané jazyky jsou rychlé zákazníkovi nemusí být poskytnut zdrojový kód je úzce svázán s operačním systémem a typem počítače Interpretované jazyky je nezávislý na operačním systému a typu počítače jsou pomalé zákazníku musí být poskytnut zdrojový kód

Programovací metody Podle způsobu tvorby programu existují dva směry programování: 1. Strukturované programování a. složitá úloha se rozdělí na dílčí úkoly, které lze řešit samostatně b. při návrhu řešení dílčích úloh lze použít pouze povolené řídící struktury, což jsou sekvence, větvení a cykly 2. Objektové programování a. v rámci úlohy se identifikují objekty (např. formulář, tlačítko, ) b. každý objekt má svoje vlastnosti a metody c. zdrojový kód se vytváří formou procedur, které jsou připojeny k událostem určitého objektu d. uvnitř procedur však stejně postupujeme strukturovaně Sekvence nejjednodušší typ algoritmu, kromě mezních značek se skládá pouze ze sekvenčních bloků. Během sekvence nesmí docházet k větvení algoritmu ani k cyklu. Je jedním ze základních stavebních kamenů algoritmu. Povolené operace v sekvencích Operace Značka Rozdíl - Součin * Mocnina SQR Logický součet OR Logický součin AND Negace NOT Nepovolené operace v sekvencích Operace Značka Podíl / Celočíselné dělení DIV Odmocnina SQRT Jakákoliv forma cyklu

Operace jsou nepovolené proto, neboť by musely být nejprve ošetřeny větvením, nebo jde o cyklus, což u sekvencí není možné Matematické operace začátek Čti: A, B C:= A + B D:= A B E:= A * B Zobraz:C, D, E konec Výměna obsahu dvou buněk začátek Čti: A, B POM := A A := B B := POM Zobraz A,B 3. Konec

Obvod a obsah obdélníka začátek Čti: a, b o:= 2*(a+b) S:= a*b Zobraz o,s Konec Obvod a obsah kruhu začátek Čti: r o:= 2*Pi *r S:= Pi * r * r Zobraz o,s Konec Úterý 29. září

Větvení Úplný příkaz větvení je-li ve větvích jediný příkaz Zápis v programu: if podmínka then jediný příkaz else jediný příkaz; Úplný příkaz větvení je-li ve větvích více příkazů

Zápis v programu: if podmínka then begin první příkaz end else begin end; poslední příkaz první příkaz poslední příkaz Neúplný příkaz větvení je-li ve větvích jediný příkaz Zápis v programu: if podmínka then jediný příkaz;

Neúplný příkaz větvení je-li ve větvích více příkazů Dělení x = A B C D Začátek Čti: A,B,C,D - + C+D = 0 X:= (A+B)/(C+D) Zobraz: Nulou nelze dělit Zobraz: X Konec

Obecný výraz X A B C D Absolutní hodnota Namísto větvení můžeme použít funkci abs Absolutní hodnota pomocí větvení if A < 0 then A:= -A; Absolutní hodnota pomocí funkce abs A := abs(a);

Zjištění, je-li číslo sudé nebo liché A div(2) celočíselné dělení dvěma

Namísto celočíselného dělení a zpětného násobení lze použít funkci odd (lichost) Zjištění lichosti pomocí celočíselného dělení a zpětného násobení POM:= A div(2); ZB:= A- 2* POM; if ZB = 0 then write ( Číslo A je sudé ) else ( Číslo A je liché ); Zjištění lichosti pomocí funkce odd if odd (A) then write ( Číslo A je sudé ) else ( Číslo A je liché ); Dělitelnost

Početní operace modulo je zbytek po dělení a souvisí s celočíselným dělením. Př. 17 : 4 = 4 zb. 1 = > 17 mod 4 = 1 Je-li modulo (zbytek po dělení) nula, můžeme říct, že první číslo je dělitelné druhým číslem. Procedura exit Program lze někdy zjednodušit instrukcí exit. Má za následek okamžité ukončení programového celku. Největší ze tří čísel

Seřadit tři čísla sestupně Case vícenásobné větvení

Napište program, který ze zadané ujeté vzdálenosti vypočte platbu taxikáři, jestliže má stanoveny následující sazby: 0-19km 25 Kč/km 20-39km 23 Kč/km 40-59km 20 Kč/km 60km a více 17 Kč/km Interval v Pascalu se píše 2..8

Rozhodněte, o jaký druh trojúhelníku jde