Small Basic - Třídy TextWindow, Network a Math

Ostatní jazyky SmallBasic Small Basic - Třídy TextWindow, Network a Math

V tutoriálů si představíme třídy pro práci s konzolovým oknem, práci se sítí a také pro matematické výpočty.

Práce s konzolovým oknem

Nyní si ukážeme operace, které se ne vždy dají použít, ale jsou užitečné. Jsou to operace s konzolovým oknem ve třídě TextWindow.

Barvy

Měnit barvy textu a pozadí lze jednoduše. Takto se mění barva textu, v tomto případě na modrou

TextWindow.ForegroundColor = "Blue"

Jak vidíte, barva je napsaná v uvozovkách. Mimochodem, i u podmínek píšeme hodnoty true a false jako "True" nebo "False".

Pro změnu pozadí použijeme:

TextWindow.BackgroundColor = "Yellow"

A napíšeme nějaký program na vyzkoušení

TextWindow.ForegroundColor = "Blue"
TextWindow.BackgroundColor = "Yellow"
TextWindow.WriteLine("Hezky jsme si obarvili text a pozadí ne? :)")

Po spuštění asi budete šokování, že se nezměnila barva pozadí úplně, jen pro vypsaný text. Pokud chcete, můžete si to tak nechat, ale pokud se vám to nelíbí, tak musíme ještě něco připsat mezi výstup a změnu pozadí:

TextWindow.Clear()

Tím jsme vymazali okno. Vymazání proběhne vždy barvou pozadí. Teď už program funguje podle našich představ.

Další operace

Pokud budete v budoucnu chtít zkombinovat konzolové a grafické okno, možná ho budete chtít skrýt.

TextWindow.Hide()

A pak možná zase zobrazit

TextWindow.Show()

Můžete si nastavit titulek okna

TextWindow.Title = "Toto je nadpis"

Ve Small Basicu není nutné psát na konec programu vyčkání na klávesu. Pokud byste to však někde v programu potřebovali, stačí napsat:

TextWindow.ReadKey()
Program.End()

Na prvním řádku se čeká na vstup klávesy a na druhém je napsané ukončení programu. To by mohlo stačit a teď se podíváme na třídu Network.

Třída Network

Tato třída, jak již název napovídá, bude umět pracovat se sítí. Obsahuje pouhé dvě operace, které jsou ale opravdu užitečné :)

První z nich je operace, která přečte zdrojový kód stránky. Příklad:

TextWindow.WriteLine(Network.GetWebPageContents("http://itnetwork.cz/"))

Výstup zdrojového kódu hlavní stránky této sítě. Druhou velmi užitečnou operací je stažení souboru.

Příklad:

TextWindow.WriteLine(Network.DownloadFile("http://simonraichl.ic.cz/soubory/PicGen.exe"))

Stáhne soubor, ale kam? Výstup vám řekne, že do tempu jako soubor tmp. Chce ho ještě zkopírovat s jinou koncovkou, v tomto případě exe? Zde je kód:

s = Network.DownloadFile("http://raichlsimon.moxo.cz/soubory/PicGen.exe")
TextWindow.WriteLine(s)
u = File.CopyFile(s, "C:\soubor.exe")
TextWindow.WriteLine(u)

Na prvním řádku se stáhne soubor a řetězec, ve kterém je uloženo jeho umístění, se přiřadí do proměnné s. Pak přichází výstup s tímto řetězcem, dále je funkce ze třídy File, to je CopyFile. Zkopíruje soubor, jehož řetězec uložen v proměnné s, a zkopíruje se na disk C:\. Do proměnné u se uloží buď "SUCCESS" nebo "FAILED", podle toho, jestli se kopírování podařilo nebo nezdařilo. Na toto můžete udělat podmínku, to nechám na vás, pokud toto využijete. Možná by to chtělo ještě smazat soubor z tempu, to není žádný problém:

File.DeleteFile(s)

Ovšem problémem je spuštění souboru, žádná taková operace ve Small Basicu neexistuje :(.

Třída Math

Třída Math obsahuje matematické funkce a užitečné konstanty jako např. PI. Tato třída obsahuje velké množství funkcí, my se podíváme na ty nejdůležitější a užitečné. Určitě užitečnou operací je na navrácení pseudonáhodného čísla:

TextWindow.WriteLine(Math.GetRandomNumber(15000))

Dostanete číslo od 1 do 15000. Můžete udělat cyklus, který bude vypisovat pseudonáhodná čísla do šesti a budete mít kostku.

Teď funkce pí:

TextWindow.WriteLine(Math.Pi)

Na porovnání čísel slouží Max a Min, Max vypíše větší, Min menší

TextWindow.WriteLine(Math.Max(1, 10))

Min

TextWindow.WriteLine(Math.Min(1, 10))

Dále jsou zde fuknce Cos, Sin, Tan, například Tan, uhly se zadávají v radiánech. Můžete si to převést na stupně a nemusíte vůbec psát zápis na převod na stupně, ve Small Basicu existuje Math.GetDegrees(1), který vám úhel na stupně převede.

c = 1
TextWindow.WriteLine(Math.Tan(c))
TextWindow.WriteLine(Math.GetDegrees(c))

Naučme se porovnávání desetinných čísel a zaokrouhlení (i nahoru a dolů):

TextWindow.WriteLine(Math.Round(1.6))

Výstup:

2

Zaokrouhlení vždy nahoru:

TextWindow.WriteLine(Math.Ceiling(1.2))

Výstup:

2

A vždy dolů:

TextWindow.WriteLine(Math.Floor(1.6))

Výstup

1

A na konec si ukažme ještě umocnění čísla:

TextWindow.WriteLine("Ahoj, jsem Small Basicový umocňovač! Napiš číslo:")
c = TextWindow.ReadNumber()
TextWindow.WriteLine("Ještě potřebuji exponent! Napiš číslo:")
e = TextWindow.ReadNumber()
TextWindow.WriteLine(Math.Power(c, e))

Více zatím nebudeme potřebovat.

To je zase pro dnešek vše, dnes jsme se to hodně naučili. Příště se přesuneme do grafických oken, máte se na co těšit :). Zdrojový kód stahovače souborů máte níže ke stažení.


 

Stáhnout

Staženo 47x (160 B)
Aplikace je včetně zdrojových kódů v jazyce SmallBasic

 

  Aktivity (1)

Článek pro vás napsal Šimon Raichl
Avatar
Autor se věnuje tvorbě her v GM: Studio pro Android a v GM8 pro Windows a hraje si se Small Basicem

Jak se ti líbí článek?
Celkem (1 hlasů) :
55555


 


Miniatura
Předchozí článek
Small Basic - Cykly, funkce a pole
Miniatura
Všechny články v sekci
SmallBasic
Miniatura
Následující článek
Small Basic - Grafická okna

 

 

Komentáře

Avatar
Šimon Raichl
Redaktor
Avatar
Šimon Raichl:

Prosím vás lidi, mám tam chybku, ale nešlo mi to editovat, tak to píšu sem, v příkladu se stahováním:

s = Network.DownloadFile("http://simonraichl.ic.cz/soubory/PicGen.exe")
TextWindow.WriteLine(s)
u = File.CopyFile(s, "C:\")
TextWindow.WriteLine(u)

Se koncovka vůbec nezmění, má to vypadat takto:

s = Network.DownloadFile("http://raichlsimon.moxo.cz/soubory/PicGen.exe")
TextWindow.WriteLine(s)
u = File.CopyFile(s, "C:\soubor.exe")
TextWindow.WriteLine(u)

Děkuji za pochopení a omlouvám se za nepozornost :)

 
Odpovědět 10.10.2014 20:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.