Od zadání úlohy k programu Výpočetní systémy I 8. přednáška.

Slides:



Advertisements
Podobné prezentace
Stručný úvod do UML.
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
VÝVOJ PROGRAMOVACÍCH JAZYKŮ PERSPEKTIVY ELEKTRONIKY 3. Celostátní seminář, 18. března 2003 Ing. Pavel Pokorný UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ Fakulta technologická.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Operační systémy jednouživatelské, jednoúlohové - MS DOS (výjimka pro PRINT) jednouživatelské, víceúlohové - MS Windows víceživatelské, víceúlohové - Unixy.
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Přednáška č. 5 Proces návrhu databáze
Programovací jazyky Programovací jazyky jsou jazyky sloužící k tvorbě počítačových programů Dělení:  nižší  vyšší jazyky primitivní, jejichž instrukce.
ALGO – Algoritmizace 1. cvičení
Informační systémy Analýza systému. Sestavení týmů a potvrzení téma projektu.
Základy informatiky programovací prostředky
Algoritmizace a programování
Algoritmizace a programování Podmíněné a cyklické příkazy- 08
Informatika I 3. přednáška
25. ALGORITMIZACE A PROGRAMOVÁNÍ
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Informatika I 2. přednáška
Algoritmizace a základy programování
Základy algoritmizace a programování
Tradiční metodiky vývoje softwaru
13AMP 9. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled ADA ADA Java Java.
Modelovací jazyk UML. Jazyk UML je víceúčelový modelovací jazyk, který byl vyvinut speciálně pro účely softwarového inženýrství. Obsahuje formalizovaný.
Základy objektově orientovaného programování Jiří Strach.
Implementace Přednáška z předmětu Počítače I Dana Nejedlová
Základy programování a programovací jazyky
Modelování a simulace MAS_02
4. Lekce Dílčí procesy funkčního testování
Simulační modely a programové vybavení. Vývoj simulačních programů  Původně pouze strojový kód –Příliš dlouhé, náročné na programátora, obtížné hledání.
Informatika I 1. přednáška
Pascal - cykly.
Dokumentace informačního systému
Algoritmizace a programování Vývojové diagramy - 03
Přednáška č. 1 Proces návrhu databáze
Algoritmizace a programování Algoritmizace – základní pojmy - 01
Databázové modelování
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Úvod do programování.
1 Programování a p. jazyky Postup při tvorbě programu (systému) –strategie –analýza ( konceptuální modely) Datová Procesní –návrh (i/o, výjimky, algoritmus)
Procedurální (klasické) programování Popisuje algoritmus – postup, jak vyřešit úlohu.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
Jazyky pro umělou inteligenci RNDr. Jiří Dvořák, CSc.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
Procedurální (klasické) programování Popisuje algoritmus – postup, jak vyřešit úlohu.
doc. RNDr. Zdeněk Botek, CSc.
Informatika I 2. přednáška
doc. RNDr. Zdeněk Botek, CSc.
Visual Basic - programování
Visual Basic Úvod do programování. Co je to program  Program je řada příkazů, které určují počítači, co má provádět, jak má zacházet s vloženými daty.
IB111 Programování a algoritmizace
Cvičení 2 Podmíněné příkazy, cykly. Podmíněné příkazy Podmínka – jakýkoliv logický výraz ( a=1,……..) ( a=1,……..) Příkaz – vlastní instrukce, která se.
Informatika (1) Počítač - základní pojmy HW a SW4 OS MS-DOS, Windows 95, 982 Org. souborů na disku, operační paměť2 Aplikace Malování, Word8 Základy programování.
Úvod do programování Vyučující: Mgr. Vítězslav Jersák
Překladače Vnitřní struktura překladače © Milan Keršláger
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 4: Programovací jazyk C Bc. Radek Libovický.
CZ.1.07/1.5.00/ Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/ Střední odborná škola elektrotechnická, Centrum odborné přípravy.
Programovací jazyky OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
AS/400 (IBM iSeries) Úvod. Co vlastně je AS/400 (IBM i)? Aplikační systém 400 (AS/400) byl navržen jako počítač obecně použitelný v obchodním prostředí.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Výukový materiál zpracován v rámci projektu
Algoritmizace – základní pojmy
Výukový materiál zpracován v rámci projektu
Operační systémy Vnitřní struktura překladače
Tradiční metodiky vývoje softwaru
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
© Copyright Radim Štefan
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Tradiční metody vývoje softwaru
METODOLOGIE PROJEKTOVÁNÍ
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Transkript prezentace:

Od zadání úlohy k programu Výpočetní systémy I 8. přednáška

Životní cyklus software Specifikace požadavků na řešený úkol Specifikace požadavků na řešený úkol Dekompozice úkolu na části Dekompozice úkolu na části Návrh algoritmu(ů) Návrh algoritmu(ů) Implementace algoritmu na program Implementace algoritmu na program Testování programu Testování programu Používání a údržba programu Používání a údržba programu

Životní cyklus software Specifikace požadavků Specifikace požadavků zadavatel často neví, co přesně požadujezadavatel často neví, co přesně požaduje vyjasnit rozpory, neúplnosti a nejasnosti zadánívyjasnit rozpory, neúplnosti a nejasnosti zadání vyjasnit reakci na nepřípustná datavyjasnit reakci na nepřípustná data Umění porozumět uživateliUmění porozumět uživateli  systémový integrátor

Životní cyklus software Dekompozice a návrh algoritmu Dekompozice a návrh algoritmu hierarchický rozklad úlohy na části řešitelné jedním pracovníkem nebo týmemhierarchický rozklad úlohy na části řešitelné jedním pracovníkem nebo týmem návrh strukturovaných algoritmů nezávislých na konečné implementacinávrh strukturovaných algoritmů nezávislých na konečné implementaci určení vazeb mezi jednotlivými částmiurčení vazeb mezi jednotlivými částmi

Životní cyklus software Implementace algoritmů Implementace algoritmů zjemňování návrhu – CASE nástrojezjemňování návrhu – CASE nástroje (Computer Aided Software Engineering) zdrojový text v programovacím jazycezdrojový text v programovacím jazyce překlad zdrojového textu do kódu počítače  spustitelný programpřeklad zdrojového textu do kódu počítače  spustitelný program

Životní cyklus software Testování programu Testování programu zkoušení jednotlivých komponentzkoušení jednotlivých komponent zkoušení celkuzkoušení celku odhalování chyb prováděním programu na vhodně zvolených testovacích datechodhalování chyb prováděním programu na vhodně zvolených testovacích datech „Zkoušej a prověřuj okamžitě, jakmile je co zkoušet !“

Životní cyklus software Používání a údržba Používání a údržba odstranění skrytých vadodstranění skrytých vad potřeba reakce na změny okolípotřeba reakce na změny okolí (jiný hardware, jiný OS, změny v legislativě, organizační struktuře, …) nutnost pečlivé dokumentace !nutnost pečlivé dokumentace !

Programovací jazyky Syntaxe Syntaxe soubor pravidel, které určují, jaké zápisy (konstrukce) jsou v daném jazyce povolené Sémantika Sémantika soubor pravidel popisujících význam povolených konstrukcí

Programovací jazyky Neprocedurální Neprocedurální popisují co se má řešit, ale ne jak dojít k výsledkupopisují co se má řešit, ale ne jak dojít k výsledku algoritmus řešení nepřipravuje autoralgoritmus řešení nepřipravuje autor Procedurální Procedurální popisují algoritmus, tj. jak řešit úlohu – rozklad na dílčí kroky (příkazy)popisují algoritmus, tj. jak řešit úlohu – rozklad na dílčí kroky (příkazy) jednotlivé kroky více či méně vzdálené kódu počítačejednotlivé kroky více či méně vzdálené kódu počítače

Neprocedurální programovací jazyky Obecně orientované Obecně orientované široký okruh řešených úloh x omezené možnosti řešeníširoký okruh řešených úloh x omezené možnosti řešení logické jazyky – PROLOG, LISPlogické jazyky – PROLOG, LISP Specializované Specializované úzký okruh řešených úloh x účinnější a rychlejší možnosti řešeníúzký okruh řešených úloh x účinnější a rychlejší možnosti řešení dotazovací jazyky databázídotazovací jazyky databází

Procedurální programovací jazyky Strojově orientované jazyky Strojově orientované jazyky mnemotechnické názvy instrukcí kódu počítačemnemotechnické názvy instrukcí kódu počítače řada makroinstrukcí (maker)řada makroinstrukcí (maker) velká závislost na konkrétním počítačivelká závislost na konkrétním počítači assemblerassembler

Procedurální programovací jazyky Vyšší programovací jazyky Vyšší programovací jazyky pohodlnější a bezpečnější programovánípohodlnější a bezpečnější programování větší nezávislost na počítači – bližší člověkuvětší nezávislost na počítači – bližší člověku nutnost překladu do kódu počítačenutnost překladu do kódu počítače součástí je deklarace struktury datsoučástí je deklarace struktury dat FORTRAN, COBOL, PASCAL, C, JAVAFORTRAN, COBOL, PASCAL, C, JAVA

Procedurální programovací jazyky Objektově orientované jazyky Objektově orientované jazyky popisují model světa pomocí tříd objektů, které mezi sebou komunikují posíláním zprávpopisují model světa pomocí tříd objektů, které mezi sebou komunikují posíláním zpráv objekt = celek obsahující jak data, tak metody (imperativní programy)objekt = celek obsahující jak data, tak metody (imperativní programy) změna stavu objektu provedením metodyzměna stavu objektu provedením metody provedení algoritmu = změna stavu objektů a jejich vzájemná komunikaceprovedení algoritmu = změna stavu objektů a jejich vzájemná komunikace OBJECT PASCAL, C++, SMALLTALK, …OBJECT PASCAL, C++, SMALLTALK, …

Překlad zdrojového textu do kódu počítače Kompilátor Kompilátor překlad celého zdrojového textu najednoupřeklad celého zdrojového textu najednou překlad v několika fázích (průchodech)překlad v několika fázích (průchodech) výsledkem je program v kódu počítačevýsledkem je program v kódu počítače překlad se provádí jen jednoupřeklad se provádí jen jednou Zdrojový text Kód počítače provedeníprovedení

Překlad zdrojového textu do kódu počítače Interpret Interpret překlad po částech (příkazech, skupinách)překlad po částech (příkazech, skupinách) přeložená část se ihned provedepřeložená část se ihned provede snadnější kontrola sémantikysnadnější kontrola sémantiky Zdrojový text Kód

Implementace algoritmu úprava (doplnění) algoritmu pro konkrétní programovací jazyk úprava (doplnění) algoritmu pro konkrétní programovací jazyk realizace základních struktur (sekvence, selekce, iterace) ve zvoleném jazyce realizace základních struktur (sekvence, selekce, iterace) ve zvoleném jazyce překlad do kódu počítače překlad do kódu počítače

Úprava algoritmu Čím nižší programovací jazyk, tím větší úpravy algoritmu Čím nižší programovací jazyk, tím větší úpravy algoritmu Úprava podmínek (assembler)Úprava podmínek (assembler) výraz > ( (<, =) hodnota  S := výraz - hodnota S > ( (<, =) 0

Realizace sekvence Assembler instrukce AKCE 1 instrukce AKCE 2 Formát instrukce - assembler Formát instrukce - assembler adresa : návěští : instrukce 200 : start : LDA : start : LDA 100 AKCE 1 AKCE 2

Realizace sekvence PASCALbegin PASCALbeginend jazyk C jazyk C{}

Realizace selekce Assembler JP AKCE_A JP AKCE_A instrukce instrukce AKCE_B AKCE_B JMP SPOL JMP SPOL AKCE_A: instrukce AKCE_A AKCE_A SPOL: společné pokrač. S > 0 AKCE_AAKCE_B SPOLEČNÉ ano ne

Realizace selekce PASCAL PASCAL if S > 0 then begin beginAKCE_A end end else begin AKCE_B end end Jazyk C Jazyk C if (S > 0) {AKCE_A } else { AKCE_B }

Realizace iterace s podmínkou na začátku Assembler ZNOVA: JP POKRAC instrukce instrukce AKCE_K AKCE_K JMP ZNOVA JMP ZNOVA POKRAC: instrukce Pokračuj Pokračuj S ≤ 0 AKCE_K Pokračuj ano ne

Realizace iterace s podmínkou na začátku PASCAL PASCAL while S ≤ 0 do begin beginAKCE_K end; end;beginPokracujend Jazyk C Jazyk C while (S ≤ 0) {AKCE_K }; };{Pokracuj}

Realizace iterace s podmínkou na konci AssemblerZNOVA: instrukce instrukce AKCE_K AKCE_K JP POKRAC JP POKRAC JMP ZNOVA JMP ZNOVA POKRAC: instrukce Pokračuj Pokračuj S > 0 AKCE_K Pokračuj ano ne

Realizace iterace s podmínkou na konci PASCAL PASCAL repeat begin AKCE_K end end until S > 0 ; beginPokracujend Jazyk C Jazyk C do { AKCE_K } while (S ≤ 0) ; {Pokracuj}