Aplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin

Podobné dokumenty
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Datové struktury 2: Rozptylovací tabulky

vyhledávací stromové struktury

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Spuštění a ukončení databázové aplikace Access

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04

CATIA V5 vs CATIA V4 Martina Staňková

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

Algoritmy I, složitost

Základy algoritmizace. Hašování

WAK INTRA. Ovládání systému. internetový informační systém. účinný nástroj pro vedení firemních agend.

Anotace. Jednotky (tvorba a využití), struktury (typ record),

Náplň. v Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Úvod. Tlačítka. Typ baterie

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Disková pole (RAID) 1

Tvar dat a nástroj přeskupování

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Manuál k ovládání aplikace INFOwin.

Digitální učební materiál

Digitální učební materiál

DUM 06 téma: Tvorba makra pomocí VBA

Webové stránky. 4. Tvorba základní HTML webové stránky. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Unity a Objekty (NMIN102) RNDr. Michal Žemlička, Ph.D.

15. Projekt Kalkulačka

Jak vyhledávat. Vyhledávače KAPITOLA 3

Semestrální práce 2 znakový strom

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Operační systém. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Algoritmus pro generování normálních magických čtverců

Microsoft Office. Excel vyhledávací funkce

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

Popis programu EnicomD

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Testování uživatelského rozhraní mobilního telefonu HTC Hero (Semestrální projekt pro předmět A7B36TUR)

Domácí hosté Program pro řízení kuželkových soutěží

Práce s programem IIS Ekonom

Uživatelská příručka pro ředitele škol

Disková pole (RAID) 1

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

VISUAL BASIC. Práce se soubory

9. Rozšiřující desky Evb_Display a Evb_keyboard

METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Soubory s reklamami musí mít stejný název jako ta výše uvedené. Stávající soubory reklam budou přepsány.

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {

Pole a kolekce. v C#, Javě a C++

Lokální definice (1) plocha-kruhu

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Dodatek k uživatelském manuálu Adash 4202 Revize MK

Plc Calculator. Nástroj pro automatizovaný návrh aplikace s automaty MICROPEL

=PREZENTACE= stručná příručka základů. (verze 2007)

Návod na instalaci a použití programu

FortiaViewer verze 5.0

Implementace LL(1) překladů

Windows - základy. Hlavním vypínačem na základní jednotce. K datům uloženým do výchozí složky.

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel I Anotace:

JRm verze Aplikace. Instalace. Ovládání

Algoritmizace a programování

Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.

Buňka typy buněk, formát buňky

Práce s programem IIS Ekonom

Základy algoritmizace a programování

Testování operačního systému Windows Phone 8

Makro. PDF vytvořeno zkušební verzí pdffactory Pro

PODPROGRAMY PROCEDURY A FUNKCE

Binární soubory (datové, typované)

Práce se soubory. Základy programování 2 Tomáš Kühr

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

TESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D.

Algoritmizace řazení Bubble Sort

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Comenius Logo. Úterý 20. března. Princip programování. Prostředí Comenius Logo

Hledání mocnin a odmocnin v tabulkách

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

CHARAKTERISTIKA VZDĚLÁVACÍ OBLAST VYUČOVACÍ PŘEDMĚT ZODPOVÍDÁ INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Digitální učební materiál

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Návod k obsluze trenažéru

METODICKÝ POKYN PRÁCE S MS PowerPoint - POKROČILÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

OZD. 2. ledna Logický (Objekty, atributy,...) objekty stejného typu.

Návod k ovladači ke sportovnímu panelu

Úvod do filtrace, Quick filtr

Obsah Navigace... 2 Primární ovládací prvky... 3 Sekundární ovládací prvky... 4 Slovní zásoba Ukončení programu... 14

MHD v mobilu. Instalace a spuštění. Co to umí

Časová a prostorová složitost algoritmů

Metodologie pro Informační studia a knihovnictví 2

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

VZDĚLÁVACÍ MATERIÁL III/2

Nápověda aplikace Patron-Pro

[RDM] STRUČNÁ UŽIVATELSKÁ PŘÍRUČKA. CENTRÁLNÍ REGISTR PODPOR MALÉHO ROZSAHU - de minimis

M - Kvadratické rovnice a kvadratické nerovnice

Migrace na aplikaci Outlook 2010

Nelineární rovnice. Numerické metody 6. května FJFI ČVUT v Praze

Ukázka knihy z internetového knihkupectví

Transkript:

Aplikace Aplikace se liší tím, k jakému účelu jsou tvořeny. To má vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin s podobnou náročností a s nějakým charakterizujícím prvkem.

Skupiny obtížnosti tvorby softwaru Dávkové systémy systémy (skupiny programů) spolupracujících na složitějších úkolech. Určeno pro zpracování velkých objemů dat se stejnou strukturou. Programy většinou malé, čtou vstupní data záznam po záznamu z několika málo souborů, zapisují nebo tisknou opět několik málo souborů. Programy mají typicky jednu funkci, ale dobře a efektivně zpracovanou. Vědecko-technické výpočty opět aplikace na transformaci dat, tentoktát výpočetně náročnější (složitější algoritmy, mnohdy se data procházejí mnohokrát). Stále ještě jednodchá struktura programu.

Skupiny obtížnosti tvorby softwaru (2) Interaktivní aplikace systémy (aplikace, programy) určené pro interaktivní spolupráci s uživatelem. Je třeba řádně ošetřit vstupy, uživatel může odbíhat od jedné aktivitě ke druhé, prostředí by mělo být intuitivní. Distribuované systémy systémy (skupiny aplikací) zpravidla pracujících na různých počítačích, ale fungujících jako jeden větší celek. Jednotlivé části mohou být schopny práce (byt třeba nějak omezené), i když jié části nejsou dostupné.

Skupiny obtížnosti tvorby softwaru (3) Systémy pracující približně v reálném čase (soft real time) systémy (aplikace, programy), u nichž je třeba, aby typicky reagovaly na podněty v nějakém poměrně krátkém čase. Často jsou to programy řídící najká nekritická zařízení, či některé interaktivní distribuované informační systémy. Systémy pracující v reálném čase (hard real time) systémy (aplikace, programy), u nichž je požadována reakce do určité (zpravidla velmi krátké) doby, jinak hrozí poškození zařízení či ještě větší ztráty. Je-li úloha kritická (v případě selhání jde o životy nebo obrovské ekonomické ztráty), její tvorba je opět pracnější (více dokazování i testování).

Obtížnost tvorby softwaru Přechod od jedné skupiny aplikací ke skupině následující znamená násobné zvýšení pracnosti průměrné řádky kódu, zvýšení pravděpodobnosti, že se projekt nepovede dokončit. Přechod o více než jeden stupeň (vůči nejtěžší skupině, co jsme dosud dělali) je téměř žádost o neúspěch. (Aneb potřebujeme někoho, kdo už něco takového nebo skoro takového dělal, aby nám pomáhal, případně aby to vedl).

Co by se nám mohlo hodit ošetření vstupu z klávesnice trošku lepší zacházení s obrazovkou schopnost reagovat na podněty

Vstup z klávesnice Je třeba rozlišovat znaky a klávesy systém dokáže přiřadit mnoha tlačítkům znaky, ale stisk některých kláves je reprezentován sekvencí znaků (například #0 + něco dalšího) Umíme rozpoznat, že byla stisknuta klávesa (pomocí funkce KeyPressed). Je však třeba ošetřit, zda to nebyla klávesa posílající sekvenci znaků (a pak je třeba zpracovat všechny znaky patřící dané klávese) zajistit příslušný počet volání funkce ReadKey

Mapování kláves na znaky se liší dle systému a nastavení.

Vstup z klávesnice (2) USES CRT; FUNCTION ReadKey:Char; FUNCTION KeyPressed:Boolean; http://freepascal.org/docs-html/rtl/crt/ Najdeme tam i prostředky na ovládání kursoru a vlastností textu.

Vstup z klávesnice Proč? Pro některé aplikace (např. výukové programy a hry) se nám může hodit kontrola nad tím, co a kam uživatel píše Někdy se může hodit, když můžeme po určité době uživatelovy nečinnosti nějak reagovat (například zobrazit nápovědu).

Program řízený událostmi Některé aplikace přijímají podněty z různých zdrojů nelze pak čekat, než se na jednom z nich něco stane (zatím by mohlo být třeba řešit nějaký podnět z jiného zdroje). Takovéto aplikace pak mají jinou strukturu: Jádrem je ošetřování nastálých událostí Ošetření události je také událost (at už pozitivní nebo negativní ošetření) a může tak spouštět další akce (ošetření těchto událostí).

Program řízený událostmi (2) CASE Co_se_stalo OF probuzeni_systemu:... stisknuta_klavesa:... utekla_chvilka:...... END;

Program s parametry Někdy může být výhodné, kdybychom mohli aplikaci při jejím spuštění sdělit, s jakými daty má pracovat, případně jinak ovlivnit její chod. Hodilo by se nám, kdybychom měli přístup k údajům, co jsou na příkazové řádce. Počet parametrů zjistíme zavoláním funkce ParamCount, k i-tému parametru se dostaneme pomocí ParamStr(i).

Efektivní ukládání dat Někdy pracujeme pouze s kĺıčem (identifikátorem) reprezentujícím objekt reálného světa, jindy potřebujeme i další údaje o tomto objektu. Hodilo by se nám mapování kĺıč data, které by bylo rychlé a nevyžadovalo zbytečně mnoho paměti.

Efektivní ukládání dat přímý přístup Je-li objektů dostatečně mnoho ve srovnání s velikostí domény kĺıče (množiny všech možných kĺıčů), je výhodné použít kĺıč přímo jako odkaz na místo, kde se data nacházejí. Data tak máme velmi rychle dostupná (jeden přístup do pole). Pozor! Pro velké domény a malá data je to prostorově velmi neefektivní!

Efektivní ukládání dat tabulka s hodnotami Mám-li velmi málo místa, mohu záznamy uložit do tabulky. Tu pak musím prohledávat vždy, když ke kĺıči potřebuji patřičný záznam. Nesetříděná tabulka vyžaduje sekvenční prohledávání (vhodné jen pro velmi málo dat), případně další pomocnou tabulku usnadňující vyhledání potřebného záznamu (index). Setříděná tabulka, kde by se dalo hledat půlením intervalu, se hůře udržuje (její údržba může vyžadovat mnoho přesunů dat). Toto řešení zabere málo místa, ale může být pro velká data nepříjemně pomalé.

Efektivní ukládání dat hašování Kompromisem je upravená varianta přímého přístupu: budeme jako adresu do tabulky využívat upravený kĺıč místo kĺıče samotného + ošetříme případné kolize. Víme-li, že budeme potřebovat místo pro n záznamů, vytvoříme si tabulku pro k n záznamů (nebo ještě lépe: pro prvočíslo bĺızké k n), kde k budeme volit například mezi 2 a 20. (Malé k zvyšuje pravděpodobnost, že budeme muset řešit kolize (zpomalení přístupu), velké k přináší neefektivní nakládání s pamětí.)

Hašování hašovací funkce Transformuje je kĺıč na odkaz do tabulky Měla by množinu očekávaných kĺıčů rozdělovat na množinu odkazů do tabulky rovnoměrně Pozor na domény typu rodné číslo nebo datum narození Situaci, kdy hašovací funkce vrátí pro různé kĺıče stejný výsledek nazýváme kolize. Je třeba je ošetřit (například hledáním správného záznamu na dalších poĺıčkách tabulky).

Hašování kolize Situace, kdy hašovací funkce pro různé kĺıče vrací tutéž hodnotu Možné řešení: kolidující záznam uložíme na první volné místo za místem doporučeným, je-li takové); při hledání hledáme za doporučeným místem do nalezení záznamu, volného místa, nebo návratu na původní pozici; dojdeme-li na konec tabulky, pokračujeme od jejího začátku Důsledek: vždy musíme kontrolovat, zda máme ten záznam, co jsme hledali, nebo nějaký jiný (kolizní).