MU002 Informatika II Základy algoritmizace 2/13

Slides:



Advertisements
Podobné prezentace
Programování funkcí v Excelu
Advertisements

Konstanty jsou datové objekty jejich hodnoty nelze v programu měnit Deklarace Const jméno = hodnota Příklad: Textový řetězec ZPRAVA Const ZPRAVA = “Zadej.
Konstanty u jsou datové objekty u jejich hodnoty nelze v programu měnit u Deklarace Const jméno = hodnota Příklad: Textový řetězec ZPRAVA Const ZPRAVA.
VISUAL BASIC PRALG.
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
Školení MS Word 2007 pro začátečníky RNDr. Milan Zmátlo MěÚ Třebíč, říjen 2011 Vzdělávání v eGON centru Třebíč Tento.
Školení MS Excel 2007 pro začátečníky RNDr. Milan Zmátlo MěÚ Třebíč, listopad-prosinec 2010 Vzdělávání v eGON centru.
Tabulkový procesor Formuláře – interaktivní prvky v Excelu Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Růžena Hynková. Dostupné z Metodického.
Snímek 1 PowerPoint2OP381 Manažerská informatika 1 2OP381 Manažerská informatika 1 Microsoft PowerPoint 2016 – 2. část.
Funkce Lineární funkce a její vlastnosti 2. Funkce − definice Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
Makra v Excelu syntaxe. Zápis nahraného makra SubEnd Sub O klíčová slova Sub a End Sub – začátek a konec makra O komentáře O text za znakem ', až do konce.
Název projektu: ZŠ Háj ve Slezsku – Modernizujeme školu
Nadpis prezentace Zdeněk Tišl
Vytvořil: Robert Döring
Lineární funkce - příklady
MS ACCESS a VBA.
Přetěžování Datové typy.
Uživatelem definované datové typy
Programování v jazyce C++
Abstraktní datové typy
Algoritmizace a programování
Překladače Lexikální analýza
ADT zásobník - příklad Prakticky aplikovatelný příklad využití ADT zásobník je vyhodnocování aritmetických výrazů v Postfixové notaci: Pro zápis aritmetických.
Výukový materiál zpracován v rámci projektu
Databáze MS ACCESS 2010.
Uložení dat v PC -Binární (dvojkový) systém-
Programovací jazyky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Algoritmizace a programování
Překladače 4. Lexikální analýza
Datové typy v jazyce C Datové typy void skalární aritmetické
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Lexikální atomy jazyka C
Příkazy IF a SELECT CASE
Výukový materiál zpracován v rámci projektu
Jak brouček sekal souček
Překladače 6. Sémantická analýza
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu
Výukový materiál zpracován v rámci projektu
Kvadratické nerovnice
Procedury a Funkce v programovacím jazyce Pascal
Programování (14PRG) 1. cvičení.
Stavební fakulta ČVUT, B407
BIBS Informatika pro ekonomy přednáška 2
Informatika pro ekonomy přednáška 8
Rovnice základní pojmy.
Číslicové měřící přístroje
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Jak postupovat při měření?
4b. Makra Visual Basic pro Microsoft Excel
Základy algoritmizace 3/13 příkaz cyklus, proměnná typu pole
MU002 Informatika II Základy algoritmizace 1/13
Materiál byl vytvořen v rámci projektu
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Algoritmizace a datové struktury (14ASD)
Aritmetické operace s binárními čísly
* Funkce Matematika – 9. ročník *.
Datové typy v jazyce C Datové typy void skalární aritmetické
Přednáška 10 Uložené procedury.
Základní logické funkce
Informatika pro ekonomy přednáška 8
Lineární funkce a její vlastnosti
Algoritmizace a datové struktury (14ASD)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
MU002 Informatika II Základy algoritmizace 1/13
CU01 Informatika II 2/13 Základy algoritmizace
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Autor: Mgr. Michal Přikryl
Transkript prezentace:

MU002 Informatika II Základy algoritmizace 2/13

Základy algoritmizace CU01 Informatika II MU002 Informatika II Základy algoritmizace Základy algoritmizace Strukturované programování Dekompozice problému na prvky, které lze přepsat do příkazů nazávisle na programovacím jazyku Program = algoritmus + data Data Skalárních data rozsah paměti, povolené operace Strukturovaná data Pole, objekty, kolekce jako pole objektů Třída objektu jako zobecněný typ

Excel udělá téměř vše za nás MU002 Informatika II Základy algoritmizace – algoritmus Excel udělá téměř vše za nás Pole názvů

VBA za nás neudělá téměř nic. Co musíme udělat? MU002 Informatika II Základy algoritmizace – algoritmus VBA za nás neudělá téměř nic. Co musíme udělat? Aktivovat VBA prostředí. Vložit modul. Vytvořit funkci nebo procedure (pojmenovaná část kódu) implementace algoritmu použít správně příkazy odladit funkci/proceduru použít funkci v Excelu

VBA za nás neudělá téměř nic MU002 Informatika II Základy algoritmizace – algoritmus VBA za nás neudělá téměř nic

VBA – zobrazení proměnných Locals, Watch Window MU002 Informatika II Základy algoritmizace – algoritmus VBA – zobrazení proměnných Locals, Watch Window

VBA – zadávání příkazů Immediate Windows MU002 Informatika II Základy algoritmizace – algoritmus VBA – zadávání příkazů Immediate Windows

MS Excel nabízí kategorii Vlastní funkce MU002 Informatika II Základy algoritmizace – algoritmus Vlastní funce MS Excel nabízí kategorii Vlastní funkce

Deklarace dat Identifikátor proměnné jako symbolická adresa CU01 Informatika II MU002 Informatika II Základy algoritmizace – algoritmus Deklarace dat Identifikátor proměnné jako symbolická adresa Pravidla pro tvorbu identifikátorů (VB je case insensitive NA VELIKOSTI NEZÁLEŽÍ) Explicitní a implicitní deklarace (option explicit) Dim a – implicitní deklarace proměnné typu Variant Dim b as Integer – explicitní deklarace Dim pocet, a, b, c as Integer – hromadná deklarace Dim pocet as Integer, a as Integer, b as Integer, c as Integer – hromadná deklarace Pole – indexovaná homogenní množina nemusíme deklarovat velké množství proměnných k prvkům pole lze přistupovat pomocí hodnot indexů hodnotu indexu lze vypočítat – dynamický přístup k prvkům pole použití prvku s indexem 0 Dim poleCisel(10) as Integer – deklarace pole s 11 prvky (v deklaraci uvádíme nejvyšší hodnotu indexu) Dim vektor(1 to 3) as Single – uvedení počátečního indexu Dim matice(2,2) as Single – deklarace 2D pole (3 x 3 prvky)

Název proměnné Musí být jedinečný v kontextu deklarace CU01 Informatika II MU002 Informatika II Základy algoritmizace – algoritmus Název proměnné Musí být jedinečný v kontextu deklarace Musí začínat písmenem nebo podtržítkem Následovat mohou písmena, číslice, podtržítko Nesmí obsahovat mezeru a další znaky, které mají ve VBA jiný význam + - * / . , & ‘ : ! ” Nesmí být delší než 255 znaků Nesmí se shodovat s klíčovým slovem přípustné názvy nepřípustné Dim a As Byte Dim & As Byte Dim a1 As String Dim 1a As String Dim _a1 As Single Dim _a 1 As Single Dim _Nazdar_1_Karle As Variant Dim string As Variant

(C) J. Macur, M. Menšík, AIU FAST, 2013 MU002 Informatika II Základy algoritmizace – algoritmus Reprezentace dat v počítači Typ Počet bajtů, popis Rozsah Byte 1, binární data 0 – 255 Integer 2, celé číslo -32,768 – 32,767 Long 4, celé číslo -2,147,483,648 – 2,147,483,647 Single 4, reálné číslo -3.4 1038 – 3.4 1038 Double 8, reálné číslo -1.79 10308 – 1.79 10308 Currency 8, číslo s pevným počtem des.míst -922,337,203,685,477.5808 –   +922,337,203,685,477.5807 String 4, řetězec znaků 2 miliardy znaků Boolean 1, logická hodnota True – False Date 8, datum/čas Rok 100 – 9999, čas na ms Object 4, objektová reference Ukazatel (adresa) Variant 16 plus 1B/znak v případě řetězce. Podle kontextu Long, Double, Date, String, referenci. Cokoli. Zpomaluje výpočet, neefektivní práce s pamětí, zdroj chyb. (C) J. Macur, M. Menšík, AIU FAST, 2013

Příklad uložení celého čísla MU002 Informatika II Základy algoritmizace – algoritmus Příklad uložení celého čísla (12345)10 dvojkově-desítkový tvar do dvojkové soustavy se převádí jednotlivé číslice hodnota každé číslice je uložena v 1 bytu číslice s nejmenší vahou se uloží do slabiky s nejnižší adresou 5 4 3 2 1 0000 0101 0000 0100 0000 0011 0000 0010 0000 0001

Přiřazovací příkaz a skalární proměnná CU01 Informatika II MU002 Informatika II Základy algoritmizace – algoritmus Přiřazovací příkaz a skalární proměnná <identifikátor> = <výraz> Modifikace obsahu proměnné Výrazy aritmetické, relační, logické, kombinace mohou obsahovat volání funkcí Dim a as Integer, b as Integer Dim pozdrav As String, veta As String Dim b1 as Boolean a = 2 b = a * a pozdrav = "Ahoj" jmeno = "Karle" veta = pozdrav & ", " & jmeno ’výsledek je "Ahoj, Karle" b1 = (a = b) b1 = (a = b) and (Len(b1) >= b) ’funkce Len() vrací informaci o počtu znaků v proměnné b

MU002 Informatika II Základy algoritmizace – algoritmus Logické operátory And provedení logické kombinace (součinu) dvou výrazů Or provedení logické disjunkce dvou výrazů Not provedení logické negace výrazu Eqv porovnání logické shody dvou výrazů Xor provedení výhradní logické disjunkce dvou výrazů

Životní cyklus proměnné CU01 Informatika II MU002 Informatika II Základy algoritmizace – algoritmus Životní cyklus proměnné Životnost proměnné je spojena s existencí kontextu, ve kterém byla deklarována Procedura/funkce, událost, modul, třída. Proměnná se dá číst a měnit jen z kontextu, ve kterém byla vytvořena. Implicitně je každá proměnná lokální pro svoji vlastní proceduru. Kontext deklarace procedura, funkce – deklarace uvnitř příkazu Sub, Function modul – deklarace nad první procedurou modulu projekt direktiva Option Explicit kompilátor vypíše chybu a vynutí si deklaraci proměnné. Automatické vložení Option Explicit volba Require Variable Declaration  karta Tools – Options – Editor.

Lokální a globální proměnné CU01 Informatika II MU002 Informatika II Základy algoritmizace – algoritmus Lokální a globální proměnné Životnost proměnné je spojena s existencí kontextu, ve kterém byla deklarována Modul 1 Modul 2 Public a As Integer Sub init() a = 3 End Sub Sub test1() Call init MsgBox (a) Sub test2() Dim a As Integer MsgBox (Module1.a) Sub test3()

MU002 Informatika II Základy algoritmizace – algoritmus Sub kvadRovnice() Dim a As Single, b As Single, c As Single, d As Single Dim x1 As Single, x2 As Single, real As Single, imag As Single Dim vystupRovnice As String a = InputBox("Zadejte koeficient a") b = InputBox("Zadejte koeficient b") c = InputBox("Zadejte koeficient c") vystupRovnice = "Kořeny rovnice " & a & "x2 + " & b & "x + " & c & " = 0" d = b * b - 4 * a * c real = -b / (2 * a) If (d >= 0) Then x1 = real + d ^ 0.5 / (2 * a) x2 = real - d ^ 0.5 / (2 * a) MsgBox (vystupRovnice & vbCrLf & "x1: " & x1 & vbCrLf & "x2: " & x2) Else imag = -d ^ 0.5 / (2 * a) MsgBox (vystupRovnice & vbCrLf & "x1: " & real & "+i." & imag & _ vbCrLf & "x2: " & real & "-i." & imag) End If End Sub

VBA - spuštění funkce 1. Možnost 2. Možnost 3. Možnost MU002 Informatika II Základy algoritmizace – algoritmus VBA - spuštění funkce 1. Možnost 2. Možnost 3. Možnost

(C) J. Macur, M. Menšík, AIU FAST, 2013 MU002 Informatika II Základy algoritmizace – algoritmus Okna usnadňující ladění programu (IDE) (C) J. Macur, M. Menšík, AIU FAST, 2013

(C) J. Macur, M. Menšík, AIU FAST, 2013 MU002 Informatika II Základy algoritmizace – algoritmus Ladící příkazy (C) J. Macur, M. Menšík, AIU FAST, 2013

=KDYŽ(podmínka; ano; ne) MU002 Informatika II Základy algoritmizace – algoritmus KDYŽ v Excellu =KDYŽ(podmínka; ano; ne) podmínka – výraz (logický, relační), který může nabývat hodnotu PRAVDA nebo NEPRAVDA ano – hodnota/výraz, je-li hodnota podmínky PRAVDA. ne – hodnota/výraz, je-li hodnota podmínky NEPRAVDA.

Logické funkce A (AND) IFERROR (IFERROR) IFNA (IFNA) – Excel 2013 MU002 Informatika II Základy algoritmizace – algoritmus Logické funkce A (AND) IFERROR (IFERROR) IFNA (IFNA) – Excel 2013 KDYŽ (IF) NE (NOT) NEBO (OR) NEPRAVDA (FALSE) PRAVDA (TRUE) XOR (XOR) – Excel 2013

(C) J. Macur, M. Menšík, AIU FAST, 2013 MU002 Informatika II Základy algoritmizace – algoritmus Příkazy pro řízení běhu programu – podmíněný příkaz Syntaxe příkazu If <podmínka> Then <příkaz> If <podmínka> Then <příkaz1> Else <příkaz2> End If If <pod1> Then <př1> ElseIf <pod2> Then <př2> ... End If Příklad if diskriminant < 0 then MsgBox("Rovnice nemá reálné řešení.") if diskriminant < 0 then MsgBox("Rovnice nemá reálné řešení.") Exit Sub end if if diskriminant > 0 then x1 = (-b + Math.Sqr(diskriminant)) / (2 * a) x2 = (-b - Math.Sqr(diskriminant)) / (2 * a) elseif diskriminant = 0 then x1 = -b / (2 * a) else (C) J. Macur, M. Menšík, AIU FAST, 2013

(C) J. Macur, M. Menšík, AIU FAST, 2013 MU002 Informatika II Základy algoritmizace – algoritmus Příkazy pro řízení běhu programu – podmíněný příkaz if (t < -20) Or (t >= 60) Then MsgBox ("Teplota je mimo rozsah <-20;60).") Exit Sub ' nebo Exit Function End if If (t < 0) Then pds = 4.689 * (1.486 + t / 100) ^ 12.3 If (t >= 0) And (t < 30) Then pds = 288.68 * (1.098 + t / 100) ^ 8.02 If (t >= 30) Then pds = 931.46 * (0.937 + t / 100) ^ 7.125 (C) J. Macur, M. Menšík, AIU FAST, 2013

(C) J. Macur, M. Menšík, AIU FAST, 2013 MU002 Informatika II Základy algoritmizace – algoritmus Příkazy pro řízení běhu programu – podmíněný příkaz if (t < -20) Or (t >= 60) Then MsgBox ("Teplota je mimo rozsah <-20;60).") else If (t < 0) Then pds = 4.689 * (1.486 + t / 100) ^ 12.3 End if If (t >= 0) And (t < 30) Then pds = 288.68 * (1.098 + t / 100) ^ 8.02 If (t >= 30) Then pds = 931.46 * (0.937 + t / 100) ^ 7.125 end if (C) J. Macur, M. Menšík, AIU FAST, 2013

(C) J. Macur, M. Menšík, AIU FAST, 2013 MU002 Informatika II Základy algoritmizace – algoritmus Příkazy pro řízení běhu programu – podmíněný příkaz if (t < -20) Or (t >= 60) Then MsgBox ("Teplota je mimo rozsah <-20;60).") elseIf (t < 0) Then pds = 4.689 * (1.486 + t / 100) ^ 12.3 elseIf (t >= 0) And (t < 30) Then pds = 288.68 * (1.098 + t / 100) ^ 8.02 else pds = 931.46 * (0.937 + t / 100) ^ 7.125 end if (C) J. Macur, M. Menšík, AIU FAST, 2013