1 / 19

CU01 Informatika II 6 /13 Základy algoritmizace

CU01 Informatika II 6 /13 Základy algoritmizace Funkce pro validaci obsahu, konverzní funkce a úvod do OOP. CU01 Informatika II Z áklady algoritmizace – validační funkce. IsNumeric (). Syntaxe IsNumeric ( expression )

osborn
Download Presentation

CU01 Informatika II 6 /13 Základy algoritmizace

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CU01 Informatika II6/13Základyalgoritmizace Funkce pro validaci obsahu, konverzní funkce a úvod do OOP

  2. CU01 Informatika IIZáklady algoritmizace – validační funkce IsNumeric() Syntaxe IsNumeric(expression) • Vrací logickou hodnotu, která vyjadřuje, zda je možné parametr funkce vyhodnotit jako číslo. • Funkce vrací hodnotu True, je-li celý výraz expression číslo ifIsNumeric(prumer) then plocha = pi * prumer ^2 endif POZNÁMKA: Pokud chceme v procedurách a funkcích testovat číselnost parametrů, je nutné je deklarovat jako typ Variant. Při explicitní deklarace případný rozdíl obsahu vůči typu generuje chybu běhu (Run-timeerror) Type mismatch.

  3. CU01 Informatika II Základy algoritmizace – validační funkce IsNull() Syntaxe IsNull(expression) • Vrací logickou hodnotu, která vyjadřuje, zda parametr obsahuje platná data. • Povinný parametr expressionje typu Variant. • Vrací hodnotu True, jestliže je argument roven hodnotě Null. • Nesprávně IfVar = Null... rovněžIfVar <> Null Dimx MsgBox(IsNull(x)) ' False x = "" MsgBox(IsNull(x)) ' False x = Null MsgBox(IsNull(x)) ' True

  4. CU01 Informatika II Základy algoritmizace – validační funkce IsEmpty() Syntaxe IsEmpty(expression) • Funkce vrací logickou hodnotu, pokud byla proměnná inicializována. • True, jestliže proměnná není inicializována nebo je explicitně nastavena na hodnotu Empty. • Povinný argument expressionje typu Variant. Dimx MsgBox(IsEmpty(x)) ' True x=10 MsgBox(IsEmpty(x)) ' False x=Empty MsgBox(IsEmpty(x)) ' True x=Null MsgBox(IsEmpty(x)) ' False

  5. CU01 Informatika II Základy algoritmizace – validační funkce IsMissing() Syntaxe IsMissing(expression) • Slouží k detekci zadání volitelného argumentu do procedury. • Funkce se používá pro testování chybějícího argumentu, jehož použití v další části kódu může vést k chybám běhu. • Logická hodnota Truevyjadřuje, že byl nepovinný parametr předán proceduře. • Funkci nelze použít s jednoduchými (primitivními) datovými typy • test je třeba udělat např. pomocí speciální hodnoty SubMySub(OptionalMyVarAsString = "specialvalue") IfMyVar = "specialvalue" Then ' MyVarnebylazadána. Else ... EndSub

  6. CU01 Informatika IIZáklady algoritmizace – procedury a funkce PŘÍKLAD: Validace a konverze parametrů FunctionTap(t AsVariant) AsVariant Dim ti AsSingle IfIsEmpty(t) Then Tap = "Chyba!" MsgBox ("Parametr funkce je prázdná hodnota!") ExitFunction EndIf If Not IsNumeric(t) Then Tap = "Chyba!" MsgBox ("Parametr funkce není číselná hodnota!") ExitFunction EndIf ti = CSng(t) Tap = ti + 1 EndFunction

  7. CU01 Informatika IIZáklady algoritmizace – procedury a funkce PŘÍKLAD: Validace a konverze parametrů – volitelný parametr FunctionTap(t AsVariant, Optional t0 AsVariant) Dim ti AsSingle Tap= "Chyba!" IfIsMissing(t0) Then t0 = 20 EndIf IfIsEmpty(t) Then MsgBox("Parametr funkce je prázdná hodnota!") ExitFunction EndIf IfNotIsNumeric(t) Then MsgBox("Parametr funkce není číselná hodnota!") ExitFunction EndIf ti = CSng(t) If ti + 1 > t0 Then Tap = ti + 1 Else MsgBox (“Teplotav interiéru musí být > " & CStr(t0) & ".") EndIf EndFunction

  8. CU01 Informatika IIZáklady algoritmizace – procedury a funkce PŘÍKLAD: Validace a konverze parametrů – volitelný parametr FunctionTap(t AsVariant, Optional t0 AsVariant = 20) ... End Function FunctionMoje_Funkce(a AsVariant, b AsVariant, Optional c AsVariant) AsVariant IfIsMissing(c) Then c = "n/a" EndIf IfIsNumeric(a) AndIsNumeric(b) Then Ifb = 0 Then Moje_Funkce = a ^ 2 Else Moje_Funkce = a ^ 2 / b End If ExitFunction End If Moje_Funkce = c End Function

  9. CU01 Informatika IIZáklady algoritmizace – procedury a funkce Konverzní funkce – slouží ke konverzi parametru na požadovaný typ Název Typ Argument funkce CBoolBooleanplatný řetězcový nebo číselný výraz CByte Byte 0 až 255. CIntInteger -32,768 až 32,767 CLng Long -2,147,483,648 až 2,147,483,647 fractionsare rounded CSng Single -3.402823*1038až -1.401298*10-45 1.401298*10-45 až 3.402823*1038 CDbl Double -1.79769313486231*10308 až 4.94065645841247*10-324 4.94065645841247*10-324až 1.79769313486232*10308 CDecDecimal +/-79,228,162,514,264,337,593,543,950,335 forzero-scalednumbers, thatis, numberswithno decimalplaces. Fornumberswith 28 decimalplaces, therangeis +/-7.9228162514264337593543950335. Thesmallestpossible non-zeronumberis 0.0000000000000000000000000001.

  10. CU01 Informatika IIZáklady algoritmizace – procedury a funkce Konverzní funkce – slouží ke konverzi parametru na požadovaný typ Název Typ Argument funkce CCurCurrency -922,337,203,685,477.5808 až 922,337,203,685,477.5807. CDateDateplatné datum. CStrStringReturnsforCStrdepend on theexpressionargument. CVar Variant Same range as Double fornumerics. Same rangeas Stringfor non-numerics.

  11. CU01 Informatika IIZáklady algoritmizace – procedury a funkce Zaokrouhlování čísel Fix() Zaokrouhluje na celá čísla směrem k nule. Pro kladná čísla vrací celočíselnou část hodnoty, pro záporná čísla vrací nejbližší záporné celé číslo >= hodnotě vstupu. ?Fix(3.5) ?Fix(-3.5) Int() Zaokrouhluje na celá čísla směrem doleva. Vrací pro kladná čísla celočíselnou část hodnoty. Vrací pro záporná čísla nejbližší záporné celé číslo <= hodnotě vstupu. ?Int(3.5) ?Int(-3.5) Val() Extrahuje číslo z řetězce, automaticky ořezává mezery. Vyhodnocování ukončujeprvním nečíselný znak kromě mezery. ?Val("-6.5") ?Val("-6,5") ?Val("&O166") ?Val("&H166")

  12. CU01 Informatika IIZáklady algoritmizace – procedury a funkce Konverze typu Str() převádí číslo na řetězec. Zaokrouhlí výraz delší jak 17 znaků(včetně znaménka a desetinné tečky). Pro kladné výrazy zobrazí na začátku mezeru,pro záporné znaménko mínus. ?Str(4*Math.Atn(1)) ?Str(-4*Math.Atn(1)) CStr() převádí číslo na řetězec, pro kladné výrazy nezobrazí na začátku mezeru jako Str ?CStr(4*Math.Atn(1)) ?CStr(-4*Math.Atn(1)) CInt() zaokrouhluje 0.5 na nejbližší sudé číslo podobně CLng ?CInt(4*Math.Atn(1)) ?CInt(-4*Math.Atn(1)) ?CInt(6.5) ?CInt(-6.5)

  13. CU01 Informatika IIZáklady algoritmizace – OOP KONCEPCE OOP – základní pojmy Třída – je základní konstrukční prvek OOP. Slouží jako předpis pro objekty. Definuje jejich vlastnosti a metody. Objekt – data, související funkčnost jsou seskupeny do entit, nazývaných objekty. Objekt je instancí třídy. Abstrakce – každý objekt pracuje jako černá skříňka. Dokáže provádět určené činnosti a komunikovat s okolím, aniž by vyžadovala znalost způsobu, kterým vnitřně pracuje. Zapouzdření – každý objekt zveřejňuje rozhraní, pomocí kterého se s objektem pracuje. Skládání– objekt může obsahovat jiné objekty. Dědičnost– objekty jsou organizovány stromovým způsobem. Mohou dědit z jiného druhu objektů, čímž přebírají jejich schopnosti, ke kterým pouze přidávají svoje vlastní rozšíření. Polymorfismus– např. volat jednu metodu s různými parametry, u objektů odvozených z různých tříd lze volat tutéž metodu se stejným významem v kontextu jejich třídy, přetěžování operátorů znamená provedení operace v závislosti na typu operandů (operátorový polymorfismus) polymorfní.

  14. CU01 Informatika IIZáklady algoritmizace – OOP NAŠE DEFINICE OBJEKTU Objekt je speciální typ proměnné, který má na rozdíl od primitivních typů (Single, StrING, BOOLEAN, DATE, ... ) vlastnosti metody METODY JSOUfunkce pro manipulaci s vlastnostmi objektu.

  15. CU01 Informatika IIZáklady algoritmizace – OOP DEFINICE TŘÍDY: Třída, objekt a instance třídy • Vložit Modul třídy • Zadat název třídy • Definovat vlastnosti • definovat metody, které provádějí manipulace s vlastnostmi • Definovat metody • speciální metodou je konstruktor • Deklarovat proměnnou typu objekt

  16. CU01 Informatika IIZáklady algoritmizace – OOP OOP: Vlastnosti objektu Privater_ As Single Privatepi_ As Double PublicPropertyGet r() AsSingle r = r_ EndProperty PublicProperty Let r(hodnota As Single) Ifhodnota < 0 Then r_ = Math.Abs(hodnota) Else r_ = hodnota EndIf EndProperty

  17. CU01 Informatika IIZáklady algoritmizace – OOP OOP: METODY OBJEKTU ’ konstruktor třídy PrivateSubClass_Initialize() pi_ = 4 * Math.Atn(1) r_ = 0 EndSub ’ metoda pro výpočet plochy PublicFunction Obvod() AsDouble Obvod = 2 * pi_ * r_ EndFunction ’ metoda pro výpočet obvodu PublicFunction Plocha() AsDouble Plocha = pi_ * r_ ^ 2 EndFunction

  18. CU01 Informatika IIZáklady algoritmizace – OOP OOP: POUŽITÍ TŘÍDY A OBJEKTU ... ’ deklarace proměnných Dim plocha As Single, obvod As Single DimkAs cKruznice Set k= New cKruznice k.r = InputBox("Zadej poloměr kružnice") ’ stanovení plochy pomocí metody Plocha() plocha = k.Plocha() ’ stanovení obvodu pomocí metody Obvod() obvod= k.Obvod() ...

  19. Děkuji za pozornost.

More Related