5 kapitola Spouštění aplikací Visual BasicNet, spustitelné soubory V předchozích příkladech jsme již naše nově vytvořené příklady spouštěli Využili jsme nabídky Debug, vybereme Start Debugging Totéž se dá udělat klepnutím na tlačítko Start na standardním panelu nebo můžeme stisknout F5 Víme také, že ve složce projektu název_projektu/bin/debug/nazev_projektuexe najdeme také spustitelný soubor Máme i jiné možnosti, jak distribuovat hotový program Vytváření spustitelných souborů V různých verzích VB je možné vytvářet spustitelné exe soubory různě V naší verzi máme dvě možnosti BuildBuild automat V této volbě vytvoříme klasický spustitelný exe soubor a nezbytné podpůrné soubory Před využitím této volby je třeba nastavit (Projectnázev projektu properties) cílovou složku, kde se uloží vytvořené soubory (Compile) a další informace (ikona, firma atd) Program spouštíme exe souborem 17 / 51
Druhá možnost je vytvoření klasického instalátoru programu ve Windows BuildPublish automat Vytvořili jsme složku Automat s instalátorem programu Setup můžeme spustit instalaci a program spouštět z nabídky StartVšechny programy Odinstalace je možná standardními prostředky Windows (Ovládací panely) 18 / 51
POZNÁMKA: Pozor, vytvořené exe soubory či instalátory nelze nijak modifikovat Je proto nutné uchovávat zdrojové soubory programmů pro případnou další modifikaci či opravu programů Úkoly: 1 Vytvořte z některého svého programu spustitelný soubor a instalátor pro windows 19 / 51
6 kapitola Matematické funkce a metody, cykly (DoLoop) Ve 4 kapitole jsme pracovali s funkcemi Nyní se k nim vrátíme troškou teorie Vestavěné funkce jsou důležitou součástí VB Již víme, že funkce patří mezi podprogramy a vrací nějakou hodnotu Funkce od nás převezmou požadované parametry a pak nám sdělí výsledek Parametry uvádíme do závorky, jsou odděleny čárkou a musí zachovávat předepsané pořadí V minulé kapitole jsme pracovali s funkcí Rnd Ta má žádný nebo jediný parametr Ten určuje, jak se bude číslo generovat Dim A As Single Randomize A = Rnd (1) Print A Funkce mohou být součástí složitějších výrazů, argumentem funkce může být opět hodnota funkce (viz Př) Dim A As Integer Dim B As Integer A = 1 + Cos(05) B = Sin (Rnd(1)) Rnd [(výraz)] Již známe generátor náhodných čísel Generuje pseudonáhodné číslo v intervalu <0,1> Parametr: >0 funkce generuje další náhodné číslo, =0funkce generuje opět předchozí náhodné číslo (tj Bude generováno stále stejné náhodné číslo), <0funkce generuje pro každé číslo ve výrazu jedno číslo náhodné, které je mu přiřazeno, bez parametru činnost stejná, jako v případě, že výraz je kladný Funkce generuje čísla v intervalu <0,1> Chceme-li generovat číslo celé a v jiném rozsahu, musíme nejdříve náhodné číslo vynásobit rozdílem horní a dolní hranice rozsahu (např Chceme generovat čísla v intervalu <10,100>, násobíme číslem 90), pak přičteme k výsledku dolní hranici a na závěr využijeme funkci Int(výraz), která náhodné číslo zaokrouhlí na celá čísla (Již jsme se s tím setkali ve 4 kapitole) Aby sekvence čísel byla opravdu náhodná, musíme před použitím této funkce použít příkaz Randomize Matematické metody třídy Math NET Framework Budeme-li některou z metod použít, musíme na úplný začátek textu umístit příkaz Imports systemmath Sin(výraz), Cos(výraz), Tan(výraz) Vracejí hodnoty daných goniometrických funkci Parametr (výraz) nutno zadat v obloukové míře (radiány) Pokud používáme velikosti úhlu ve stupních, je třeba je nejdříve převést na radiány, tj vynásobit číslem Pi/180 Abs(výraz) Vrací absolutní hodnotu čísla, které je výsledkem výrazu A = Abs(-5) 20 / 51
Sign(výraz) Vrací signum čísla, které je výsledkem výrazu Hodnota: >0 1 =0 0 <0-1 Log(výraz) Signum: Vrací přirozený logaritmus čísla, které je výsledkem výrazu (>0) A = Log(1) Exp(výraz) 'A=0 Vrací hodnotu, která vznikne umocněním Eulerova čísla e na hodnotu výrazu A = Exp (0) Sqrt(výraz) 'A=1 Vrací hodnotu druhé odmocniny z čísla, které je výsledkem výrazu (parametrem výraz větší nebo roven 0) 21 / 51
Cykly začneme praktickou ukázkou jednoho z typů cyklů (DoLoop) V učivu o algoritmech jsme se mohli setkat tímto algoritmem Je to algorimus na výpočet největšího společného dělitele Spočívá v tom, že opakovaně odečítáme menší číslo od většího, dokud se čísla nerovnají Toto shodné číslo je pak jejich největším společným dělitelem Opakování zadané činnosti umožňují cykly V našem případě nevíme přesně, kolikrát budeme čísla odečítat, víme ale, že odečítáme čísla do té doby, než se rovnají, tj do té doby, než je splněna nějaká podmínka Použijeme proto cyklus DoLoop Vzhled aplikace jeho vytvoření, úprava formuláře Známým postupem vytvoříme formulář programu Nebudu už zde popisovat názvy a vlastnosti jednotlivých objekt -jsou zřejmé ze zdrojového kódu aplikace Zdrojový kód aplikace Tlačítku Největší společný dělitel přiřadíme následující událost Click Private Sub Button1_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles Button1Click Dim A As Integer Dim B As Integer A = Val(txtAText) B = Val(txtBText) Do While A <> B Loop End Sub If A > B Then Else End If A = A - B B = B - A txtvysledektext = A 22 / 51
Popis jednotlivých částí kódu: Dim A As Integer Dim B As Integer A = Val(txtAText) B = Val(txtBText) 'deklarujeme proměnné 'deklarujeme proměnné 'načteme hodnoty proměnných z textboxu Dále následuje tzv Podmíněný cyklus, jeho běh závisí na splnění či nesplnění obecné podmínky Existují dvě varianty cyklu DoLoop Buď cyklus pokračuje, je-li podmínka splněna (While) nebo cyklus pokračuje, není-li podmínka splněna (Until) Do End If While A <> B Loop If A > B Then Else A = A - B B = B - A Po proběhnutí cyklu zbývá určit, kde se zobrazí výsledek txtvysledektext = A 'začátek cyklu 'podmínka cyklu 'podmíněný příkaz 'konec cyklu Jak je možno dále upravit program, je vidět na vedlejším obrázku Nově je tam zařazeno tlačítko Smaž NSD Stiskem tohoto tlačítka vymažeme textbox, ve kterém se zobrazuje výsledek Využijeme metodu seznam Clear 23 / 51
Cyklus DoLoop Dvě varianty: Do [Exit Do] Loop [Until / While podminka ] Do [Until / While podminka] [Exit Do] Loop Do a Loop uvozují začátek a konec cyklu Klíčové slovo před podmínkou rozhoduje o tom jak poběží cyklus While - cyklus pokračuje, je-li podmínka splněna, Until - cyklus pokračuje, není-li podmínka splněna Úkoly: 1 Zkuste modifikovat výše uvedený program (jeho vzhled,) 7 kapitola Cykly přehled všech typů, příklad na cykly ForNext V případě, že potřebujeme, aby se nějaký blok příkazů vykonával opakovaně (viz Příklad v předchozí kapitole), využijeme cykly Existují dva hlavní typy cyklů Výše uvedený cyklus s podmínkou a cyklus, který opakuje činnost skupiny příkazů tolikrát, kolikrát určíme Cyklus FORNext Je to základní, velmi často používaný cyklus Má následující syntaxi: Dim A As Integer For promenna=od To do [Step krok] [Exit For] Next promenna For A = 1 To 100 Next Print A Proměnná (promenna) se nazývá řídící proměnná cyklu, od a do jsou hranice intervalu, mezi kterým se hodnota řídící proměnné pohybuje Volitelný je krok (pokud neuvedeme, Visual Basic pracuje s krokem 1) Příkaz Exit For umožňuje kdykoli během vykonávání cyklu opustit cyklus a pokračovat ve vykonávání dalších příkazů 24 / 51