Bližší popis IDE Gambas3

Keď začnete v Gamase3 vyvíjať nový projekt, pravdepodobne budete chcieť začať s novým hlavným formulárom. Hlavný formulár je ukázaný hneď po odštartovaní programu a zvyčajne je to prvá vec, ktorú užívateľ vidí. Zvyčajne sa po vytvorení nového projektu tento nový formulár volá Fmain. Na tento formulár môžete pridávať kontrolné prvky a zvyčajne definujete chovanie týchto prvkov. Interakcia medzi užívateľom a rozhraním sa zvyčajne nazýva udalosti (tzv. Events). Kontrolné prvky (tlačítka atď.), ktoré Gambas používa sa nachádzajú vpravo dole v nástrojovej lište (tzv. Toolbox). Je možné meniť vzhľad a správanie kontrolných prvkov nastavovaním ich vlastností (tzv. Properties). Vlastnosti kontrolných prvkov sa nastavujú v okne vlastností na obr. 5 ho vidíme vpravo hore. Na obrázku tiež vidíte kontrolný formulár bez pridaných kontrolných ovládacích prvkov. Obrázok 5 zobrazuje vývojové prostredie IDE Gambas3 po spustení a vytvorení nového projektu. Vľavo vidíme zvislý strom s prvkami formuláre, triedy, moduly a dáta. Vpravo od stromu vidíme prázdny formulár pre pridávanie nových prvkov. Môžeme naň umiestňovať tlačítka, zoznamy prvkov, prípadne iné ovládacie prvky ako sú napr. aj radiobuttons, checkboxes a iné. Pod formulárom vidíme konzolu, kde sa nám vypisujú všetky správy ohľadne programu. Do tejto konzoly môžeme vypisovať príkazom PRINT “toto je správa“ Ale to už predbieham. Vpravo vidíme dve malé podokná. Vpravo hore vidíme podokno vlastností vybraného prvku. Vpravo dole vidíme podokno tzv. toolbox s ovládacími kontrolnými prvkami, ktoré je možné na formulár pridávať. Nižšie uvádzam spomínaný obr. 5:

IDE Gambas3

IDE Gambas3


Keď poklikáme na hlavný formulár v IDE Gambas3, tak sa nám otvorí okno hlavnej triedy FMain.class, ktorá v sebe skrýva dve subrutiny a to je _new(), ktorá sa spúšťa hneď po novovytvorení triedy FMain a potom je to subrutina Form_Open(), ktorá sa spúšťa na otvorenie a vykreslenie formulára FMain.
Zapisovanie kódu v prostredí Gambas3

Zapisovanie kódu v prostredí Gambas3


Jazyk Gambas3 sa podobá na jazyk Basic, no nie je to jeho klon, ale toto hovorí aj jeho rekurzívny akronym Gambas is not Basic. Vývojové prostredie poskytuje aj také vlastnosti ako je zvýrazňovanie syntaxe nielen jazyka Gambas, ale aj HTML a CSS, automatické dokončovanie kľúčových slov ako aj štruktúrované odsadzovanie.

Posted in Úvod do Gambas3 | Zanechať komentár

Gambas3 IDE (Vývojové prostredie-Integrated Development Environment)

Poďme si teraz spolu narýchlo prejsť vývojové prostredie Gambas. Všetky tu uvedené príklady boli testované na Gabas3Alpha. Keď prvýkrát spustíte Gambas, otvorí sa Vám úvodná obrazovka známa z prostredia Gambas2. Aj v Gambas3 sa táto obrazovka zachovala. Následne je potrebné zvoliť si Nový projekt New project a na nasledujúcej obrazovke si zvoliť typ projektu.

Výber projektu Gambas

Výber projektu Gambas


V našom príklade si zvolíme grafický projekt a následne si vyberieme priečinok a názov projektu. Odklikáme Next(Ďalší) a nakoniec nám Gambas oznámi, že projekt bol úspešne vytvorený, čo následne potvrdíme kliknutím na OK. Následne sa dostaneme do vývojového prostredia, v ktorom budeme písať náš kód, program.
Editor kódu Gambas3

Editor kódu Gambas3


Hlavný navigačný nástroj v IDE (Integrated Development Environment) Gambas je prieskumník projektu (Obr.4, zvislá časť všavo). V tomto prieskumníkovi vidíte strom zobrazujúci typy súborov vo Vašom projekte. V tomto stromovom zobrazení vidíte moduly, formuláre, triedy a údaje. Moduly sú súbory obsahujúce procedúry, funkcie, subrutiny, ktoré môžete použiť kdekoľvek vo Vašom projekte. Narozdiel od tried, z modulov nevytvárate objekty a moduly nemahú obsluhovače udalostí (event handlers). Ďalšou položkou stromového prieskumníka sú triedy, ktoré sú akousi šablónou pre vytváranie objektov z týchto tried. Triedy definujú metódy, vlastnosti a obsluhu udalostí(event handlers) v rámci objektov, ktoré ste vytvorili z týchto tried, šablón pre objekty. Formuláre sú okná, ktoré ste vytvorili v projekte. Dáta, údaje zobrazujú súbory Vášho projektu, čo môžu byť aj grafické súbory, ikonky, prípadne HTML súbory. V spodnej časti prieskumníka projektu nájdete stavový riadok, ktorý zobrazuje aktuálnu činnosť Gambasu.
Na tomto mieste by sme pre dnešok skončili a budeme pokračovať v ďalšom článku nabudúce.

Posted in Úvod do Gambas3 | Zanechať komentár

Let’s not open sole gyms – Otvorme nielen telocvične

Eng:
There was an article in some newspaper with huge title Let’s open the gyms. Author of the article wanted to suppress bad behaviour of people in their free time by sport. And in my opinion this is not the only way how to avoid the consequences of the sentence: Idle hands are the devil’s workshop. I think we need to divide the activities of people to sport and leasure and the education in free time. Due to this we need to empower the libraries and open them to people. We need to spread the internet to every human to be free in acquiring the information from various sources. Then we need to enrich the fond of the libraries to give the people chance to find interesting books, articles and information in general for their personal benefit. We can overcome bad times by sport and reading+education in tight cooperation. The result of endowing common people by the information will be the society ready to face the crisis on several levels: intelectual, moral and social. This seems to be a kind of utopian society. But let’s try to imagine better equipped intellectual and fit society. History might be our teacher in the hard times. I see nobody is perfect, we all have our weaknesses but we must admit we have our strenghts. Everything around us many times seems to be the test, the exam evaporating stamina from ourselves. But we can not follow ancient Rome into vnity…
Svk:
Kedysi som videl v novinách článok s veľkým nápisom Otvorme telocvične. Autor článku sa snažil zmeniť nevhodné správanie ľudí vo voľnom čase športovaním. A podľa mňa to nie je jediné riešenie, ako by sme sa vyhli dôsledkom vety: Lenivosť prináša diabolské nápady. Myslím si, že môžeme rozdeliť aktivity ľudí na športovanie ako aj vzdelávanie sa vo voľnom čase. Práve pre toto potrebujeme posilniť knižnice a otvoriť ich ľuďom. Potrebujeme rozšíriť internet pre každého kvôli slobodnému získavaniu informácií z rôznych zdrojov. Mali by sme rozšíriť fond knižníc, aby sa ľudia obohacovali informáciami pre vzájomný prospech. Možno prekonáme zlé časy nielen športovaním, ale aj získavaním informácií a vzdelávaním sa a spoluprácou. Výsledok obohacovania ľudí informáciami bude spoločnosť schopná čeliť kríze na viacerých úrovniach: intelektuálnej, morálnej a sociálnej. Toto vyzerá na utopickú spoločnosť. Ale predstavme si spoločnosť, ktorá bude vzdelaná a fit. Našou učiteľkou v týchto zlých časoch by mohla byť história. Chápem, že nikto nie je dokonalý, ale máme aj svoje slabosti, no i silné stránky. Mnokrát sa všetko okolo nás zdá byť skúškou, ktorá z nás vysáva životnú energiu. Ale uvedomme si, že nemôžeme nasledovať staroveký Rím do zabudnutia…

Posted in Moje komentáre | Zanechať komentár

Čo je Gambas3

Gambas vytvoril Benoit Minisini, programátor žijúci v Paríži. Podľa neho je to podoba Basicu s objektovými rozšíreniami. Samotný názov znamená Gambas almost means Basic – Gambas takmer znamená Baisc. Tento jazyk vznikol na základe Minisiniho skúseností s jazykom Visual Basic. Autor sa snažil odstrániť mnohé chyby a tak vznikol jazyk Gambas. Gambas je licencovaný pod licenciou GNU GPL a stal sa veľmi populárny. Gambas beží na väčšine Linuxových platforiem a aktuálna verzia v dobe písania tohoto článku je verzia 3. Autor tvrdí, že Gambas nie je kompatibilný s jazykom Visual Basic a nikdy ani nešlo o to, aby sa kompatibilným stal. Naopak, tento nový jazyk je oveľa užívateľsky prívetivejší a jednoduchší. Je tu možnosť rýchlo a jednoducho vytvárať programy pomocou grafického rozhrania, často len na pár kliknutí myškou. Gambas bol vytvorený, aby bol čo najviac koherentný, logický a spoľahlivý. Bol vytvorený, aby zachytil, čo možno najviac dobrých vlastností, ktoré môže objektový programovací jazyk ponúknuť. Postupom času sa Gambas začlenil medzi moderné programovacie jazyky používané hlavne v komunite programátorov pre operačný systém Linux.
Architektúra Gambasu
Každý program napísaný v Gambase sa skladá z niekoľkých súborov tvoriacich projekt, ktorý si užívateľ vytvorí. Každý súbor v projekte popisuje jedna trieda tzv class. Súbory s triedami sú kompilované a následne vykonávané interpreterom. Tento spôsob je veľmi podobný spôsobu, akým pracuje jazyk Java. Gambas sa skladá z nasledujúcich programov:
kompilátor
interpreter
balíčkovač
komponent užívateľského rozhrania
vývojové prostredie
Na nasledujúcom obrázku popíšeme, ako pracuje Gambas. Projekt v Gambase obsahuje súbory s triedami, modulmi, formulármi, dátovými súbormi. Gamabs projekt je vždy uložený v jednom priečinku. Počas kompilovania prebieha inkrementálne kompilovanie, ktoré vyžaduje rekompiláciu zmenených, modifikovaných tried. Každá vonkajšia referencia triedy sa rieši dynamicky za behu programu, teda počas runtime behu. Balíčkovač transformuje celú štruktúru priečinka projektu do jedného spustiteľného súboru. Vývojové prostredie Gambasu bolo napísané v samotnom Gambase, aby autor ukázal obrovské možnosti samotného jazyka.

Architektúra Gambas

Architektúra Gambas



Niektoré ďalšie možnosti, ktorými sa Gambas vymyká iným jazykom sú možnosti rozšírenia a celková rozšíriteľnosť jazyka. Prakticky ktokoľvek môže napísať novú knižnicu, ktorá dynamicky pridáva nové vlastnosti. O komponentoch Gambasu si porozprávame neskoršie. Štandardne je interpreter Gambasu konzolový program založený nap príkazovom riadku. Grafické používateľské rozhranie GUI je implementované ako komponent Gambasu. S Gambasom si môžete zvoliť grafické rozhranie Vášho programu ako napríklad GTK+ alebo Qt, prípadne nejaké iné. Ak sa chcete dozvedieť viac o GTK, či Qt, stačí si preštudovať ich manuály.
Úvodná obrazovka Gambas

Úvodná obrazovka Gambas



Ak si chcete stiahnuť PDF tohoto článku, tu je:

Gambas3-1.cast.pdf

Posted in Úvod do Gambas3 | Zanechať komentár

Ako napísať kvalitne spracovaný dokument nielen pomocou OoO

Je to už nejaký ten piatok, čo je na scéne Open Office, prípadne jeho sestra LibreOffice. Tieto programy sú veľmi silné nástroje šírené zdarma. Ak používate Linux, tak sú tieto nástroje väčšinou jeho štandardnou výbavou na písanie. Môžete si ich samozrejme stiahnuť aj pre Windows. Čo však, ak chcete vytvárať dokumenty inou formou? Že akou? Je tu ešte možnosť zvaná Kile. V Ubuntu ju nainštalujeme dvoma príkazmi: sudo apt-get install kile (enter) a po skončení inštalácie ešte treba doinštalovať prehliadač dokumentov sudo apt-get install okular (enter) Tento mocný nástroj v sebe skrýva editor typu WYSIWYM=what you see is what you mean. Predstavte si teda, že píšete dokument pomocou špeciálnych príkazov, ktoré vkladáte medzi písaný text a sám editor potom rozpozná, ako má text usporiadať, ako má očíslovať strany, kde má vložiť obrázky a ako ich očíslovať. Že by ste taký editor chceli? Nuž, stačí vyskúšať Kile v Ubuntu, prípadne obdobu programu pre iné operačné systémy. Tu je malá nápoveda, ako začať: introduction_to_latex

Posted in Moje komentáre | Zanechať komentár

Eclipse – prechod na novšiu verziu v staršom Ubuntu

Tak sa mi stalo, že som potreboval prejsť na novšiu verziu v starom Ubuntu v prostredí Eclipse Galileo. Ja som samozrejme chcel prechod o dve verzie vpred, teda na Eclipse Indigo. Na internete bolo pekných pár návodov, ako to spraviť, no ani jeden mi akosi nevyhovoval a počítač odmietal spolupracovať. Možno bola chyba medzi klávesnicou a stoličkou, no nakoniec sa ukázalo byť riešením to najjednoduchšie. Pre prechod na novšiu verziu som sa teda rozhodol len stiahnuť binárku z netu a používať starú verziu paralelne s tou novou a čuduj sa svete, všetko zatiaľ funguje. Teda zo stránky programu som stiahol binárny súbor pre Linux, ktorý som si uložil a na polochu som si vytvoril odkaz. Tento postup mi pripomenul vetu môjho kamaráta, ktorý mi odporučil, aby som písal básne a mal sa krásne. Nuž niekedy to nie je také ľahké a treba sem tam aj nejakú tú novšiu verziu Eclipse pre písane programíkov. Nakoniec všetko funguje (zatiaľ) dobre, aj keď všetci vieme, že tie počítače si aj tak väčšinou robia to, čo sa im zachce.

Posted in Linux návody | Zanechať komentár

Newtonova metóda, nájdenie PÍ a obsah kruhu – praktické využitie Newtona

Tak ma napadlo praktické využitie Newtonovej metódy pre nájdenie obsahu kruhu. Keďže túto metódu môžeme využiť na nájdenie mocniny resp. odpocniny, tak ešte potrebujeme nájsť číslo pí a to nájdeme ako 4*súčet čísiel 1/1-1/3+1/5-1/7+1/9 atď. Toto všetko si poďme skúsiť skombinovať ako vždy v našom obľúbenom jazyku Gambas3. Tu je teda zdroják:

' Gambas class file

'mnohe veci v tomto programe sa daju vylepsit
'podla vlastnej fantazie a podla chuti
'toto je len koncept programu,
'treba si ho dopisat podla vlastnej chuti

Public Sub umocni(n As Float, k As Float) As Variant
  'funkcia umocni n^k a vrat vysledok
  'pozor k moze byt zaporne alebo desatinne cislo
  'ak sa jedna o celociselne umocnenie, tak spravim toto
  'najskor skontrolujem, ci k je cele cislo a potom umocnim
  Dim cele, zaporne As Integer
  'vysledok
  Dim vysl, fi, fra, vysl1, vysl2, vysl3 As Float
  vysl = 0
  'bool je/nieje cele cislo
  cele = 0
  'bool k je/nieje zaporne cislo, nula pre nezaporne
  zaporne = 0

  If Abs(Frac(k)) > 0 Then
    'ak desatinna cast cisla je vacsia ako nula, tak k neni cele cislo
    cele = 0
  Else
    'inak k je cele cislo
    cele = 1
  Endif

  'kontrola zaporneho k
  If k > 0 Then
    'nie je zaporne
    zaporne = 0
  Endif
  'kontrola zaporneho k
  If k < 0 Then
    'je zaporne
    zaporne = 1
  Endif

  'ak k je rovne nule, vratim rovno vysledok 1
  'hocico umocnene na nultu je jedna
  If k = 0 Then
    Return 1.0
  Endif

  'ak sa jedna o cele cislo a nezaporne, tak vytvorim umocnenie
  If cele = 1 And zaporne = 0 Then
    'vynasobim float, lebo chcem float vysledok
    'explicitny casting premennej
    vysl = n * 1.0
    k = CInt(k)
   While (k - 1 > 0)
     vysl = n * vysl
     Dec k
   Wend

  Endif

   'ak sa jedna o cele cislo a zaporne, tak vytvorim umocnenie
  If cele = 1 And zaporne = 1 Then
    'vynasobim float, lebo chcem float vysledok
    'explicitny casting premennej
    vysl = n * 1.0
    k = CInt(k)
   While (k - 1 > 0)
     vysl = n * vysl
     Dec k
   Wend

   vysl = 1 / vysl
  Endif 

  'ak sa jedna o necele cislo a nezaporne, tak vytvorim umocnenie
  If cele = 0 And zaporne = 0 Then
   'spravim si 100 nasobok, aby som sa dostal za desatinnu ciarku na dve miesta
    fra = Frac(k)
    'cela cast
    fi = k - fra
    'desatinna cast
    fra = fra * 100
    fra = Round(fra)
    'Print "cela cast= " & fi & " des cast= " & fra & " n= " & n
    vysl1 = umocni(n, fi)
    'Print vysl1
    vysl2 = umocni(n, fra)
    'Print vysl2
    vysl3 = odmocni(100, vysl2)
    'Print vysl3
    vysl = vysl1 * vysl3

  Endif

  'vrat vysledok
    Return vysl
End

'funckia najde vhodne X0
Public Sub NajdiX0(k As Float, n As Float) As Float
  Dim x, t, fx, fxd2 As Float
  t = 1
  While t < 10000
    fx = umocni(t, k) - n
    fxd2 = (k * k - k) * umocni(t, (k - 2))
    If fx * fxd2 > 0 Then
      Return t
    Endif
    t = t + 1
  Wend
  Return k
End

Public Sub odmocni(k As Float, n As Float) As Variant
  'premenne xi+1 a xi0
  Dim xi0, xi1, k2 As Float
  'iterator q
  Dim q As Integer
  k2 = k
  k = Abs(k)
  q = 1

  'nastavim si xi0 podla podmienok, ktore uvazim
  'vid podmienky Newtonovej metody pre ziskanie korena
  xi0 = NajdiX0(k, n)
  'ak k > 180 tak vrat 1
  'vacsia odmocnina ako 180 beriem, ze je uz prakticky rovna 1
  If Abs(k) > 180 Then
    Return 1.0
  Endif
  While q < 10000

    xi1 = xi0
    'pouzijem Newtonovu metodu pre vypocet odmocniny z cisla
    'pozor na delenie nulou - treba este upravit, domysliet

        Try xi0 = xi0 - (umocni(xi0, k) - n) / (k * umocni(xi0, k - 1))
        If Error Then
          Message.Error("Chyba, toto umocnenie, odmocnenie neviem spočítať! " & error.text)
          Exit
          Endif

    If Abs(xi1 - xi0) = 0 Then
      'ak som nasiel cistu odmocninu, vratim vysledok
      If k2 < 0 Then
        Return 1 / xi1
      Endif
      If k2 > 0 Then
        Return xi1
      Endif
      If k2 = 0 Then
        Message.Error("Nultá odmocnina???")
        Return -1.0
      Endif
    Endif
    'zdvihnem q o jedna
    Inc q
  Wend
  Return xi1
End

Public Sub zisti_pi() As Float
'funkcia vyrata pi
Dim s As Float
Dim n, presnost, delta, x As Integer
s = 1
x = 1
delta = 2
'pocet clenov
presnost = 1000
'vypocitam pi stvrt
For n = 1 To presnost
  x = x + delta
  s = s + umocni(-1, n) / (x)
  Print x
Next
'vratim cele pi
Return s * 4
End

Public Sub _new()
'konstruktor triedy
End

Public Sub Form_Open()
Dim r, s As Float
r = 3.5
s = zisti_pi() * 3.5 * 3.5
Message.Info("Obsah kruhu s polomerom 3.5m je " & CStr(s) & " m^2")
Me.Close
End

Tento malý program, ktorý ma napadol ako ukážka využitia Newtonovej metódy a nájdenia čísla Pí spočíta obsah kruhu. Čo je zaujímavé je to, že vôbec neberieme pevnú konštantu čísla pí, ale si toto číslo sami vypočítame. Ďalej je tu zaujímavé spočítanie mocniny a odmocniny, na to využijeme Newtonovu metódu. Program som komentoval a nadvazuje na sériu článkov na tomto Blogu. Ak tento Content Management System zasa náhodou nezmenil niektoré znaky zdrojáku, tak by malo stačiť len skopírovať si tento zdroják do Gambas3 a malo by to fičať. Výsledkom programu je len okienko, ktoré vypíše obsah kruhu s polomerom 3.5metra ako vidíme v zdrojáku. Polomer je pevne zadaný. Dalo by sa ešte spraviť to, že v Gambase by sme si vytvorili textové políčko a v ňom by sme si zadávali polomery kruhu a po kliknutí na tlačítko by nám program zrátal obsah príslušného kruhu, ale to je už len námet na ďalšie rozmýšľanie…

Posted in Jazyk Gambas | Zanechať komentár