Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "FabioColinelli/Prove0"
Differenze tra le versioni 11 e 12
Versione 11 del 14/12/2007 15.21.59
Dimensione: 10089
Commento:
Versione 12 del 14/12/2007 15.30.11
Dimensione: 3962
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 48: Linea 48:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Grandi/info.png,,center)]] ||<style="padding:0.5em; border:none;"> Chi ha già esperienza di programmazione in Visual Basic avrà notato che dopo l'istruzione '''NEXT''' non è stato specificato a quale variabile si fa' riferimento: VB=''NEXT variabile'' <> Gambas=''NEXT''. In realtà questo è superfluo per il semplice motivo che un ciclo '''FOR...NEXT''' è fine a se stesso e di tipo concentrico: '''Ogni istruzione FOR deve concludersi con una istruzione NEXT.|| ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Grandi/info.png,,center)]] ||<style="padding:0.5em; border:none;"> Chi ha già esperienza di programmazione in Visual Basic avrà notato che dopo l'istruzione '''NEXT''' non è stato specificato a quale variabile si fa' riferimento: VB=''NEXT variabile'' <> Gambas=''NEXT''. In realtà questo è superfluo per il semplice motivo che un ciclo '''FOR...NEXT''' è fine a se stesso e di tipo concentrico: '''Ogni istruzione FOR deve concludersi con una istruzione NEXT'''.||
Linea 64: Linea 64:
|||| '''Spiegazione''' |||| Al primo avvio ''variabile'' assume il valore ''0'', ''variabile1'' assume il valore ''0'' e ''variabile2'' assume il valore ''0''. Il primo valore che viene incrementato è quello riferito a ''variabile2'', quando questa arriva a ''10'' il sistema passa il controllo a ''variabile1'' e così via fino a che ''variabile'' assume valore ''10'', ''variabile1'' valore ''10'' e ''variabile2'' valore ''10''. Possiamo quindi notare che all'interno di un codice composto da vari cicli ''FOR NEXT'' nidificati la priorità di esecuzione è sempre riferita all'ultimo ciclo scritto.||
Linea 66: Linea 65:
|||| '''Spiegazione''' |||| Al primo avvio ''variabile'' assume il valore ''0'', ''variabile1'' assume il valore ''0'' e ''variabile2'' assume il valore ''0''. Il primo valore che viene incrementato è quello riferito a ''variabile2'', quando questa arriva a ''10'' il sistema passa il controllo a ''variabile1'' e così via fino a che ''variabile'' assume valore ''10'', ''variabile1'' valore ''10'' e ''variabile2'' valore ''10''. Possiamo quindi notare che all'interno di un codice '''FOR...NEXT''' composto da vari cicli nidificati la priorità di esecuzione è sempre riferita all'ultimo ciclo scritto. ||
Linea 67: Linea 67:


||<tablestyle="text-align: justify; width:65%; " style="border:none;" 5%>[[Immagine(Icone/Grandi/gambas.png,50,center)]] ||<style="padding:0.5em; border:none;">'''Gambas''' è un linguaggio di programmazione per Linux che unisce alla facilità di utilizzo di Visual Basic un interprete [http://it.wikipedia.org/wiki/BASIC BASIC] con estensioni orientate agli oggetti. ||

Tutto ciò rende Gambas una buona scelta per gli utenti Ubuntu che vogliono usare le loro conoscenze Visual Basic su basi GNU. Con Gambas è possibile disegnare velocemente una GUI per i propri programmi, accedere alle basi di dati ODBC, Firebird, Mysql , Sqlite e Postgres, pilotare applicazioni '''KDE''' con DCOP e '''GNOME''' con GTK+.

Sviluppato a Parigi da Benoît Minisini a partire dal 1999, Gambas è rilasciato sotto la GNU General Public Licence.

= Installazione =

== Versione stabile ==

Per installare la versione stabile distribuita con il sistema è sufficiente aggiungere il [:Repository/Componenti:componente] '''universe''' al file `/etc/apt/sources.list`, dunque [:AmministrazioneSistema/InstallareProgrammi:installare] il pacchetto ''gambas''.

[[Anchor(gambas2)]]
== Versione in fase di sviluppo ==



Per le versioni di Ubuntu fino alla 7.04 (Feisty Fawn) la versione in fase di sviluppo non viene fornita dai [:Repository:repository] ufficiali, dunque è necessario aggiungere dei repository esterni al fine di poter procedere con l'installazione. Se si utilizza '''Ubuntu 7.10''' «'''Gutsy Gibbon'''» è possibile trovare la versione di Gambas 1.9.49 nei repository.

=== Aggiornare i repository ===

Aprire `/etc/apt/sources.list` con un [:EditorDiTesto:editor di testo] con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] e inserire in fondo al file le righe adatte alla propria versione:

 * '''Ubuntu 6.06''' «'''Dapper Drake'''»: {{{
deb http://xoomer.alice.it/pixel dapper gambas
}}}

 * '''Ubuntu 6.10''' «'''Edgy Eft'''»: {{{
deb http://xoomer.alice.it/pixel edgy gambas
}}}

 * '''Ubuntu 7.04''' «'''Feisty Fawn'''»: {{{
deb http://xoomer.alice.it/pixel feisty gambas
}}}

Salvare e chiudere. Aprire una finestra di terminale e digitare il seguente comando:
{{{
sudo apt-get update
}}}

=== Installazione del pacchetto ===

[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto ''gambas2''.

=== Installazione Gambas2 SVN ===

Solo per gli utilizzatori di '''Ubuntu 7.10''' «'''Gutsy Gibbon'''» è possibile installare la versione SVN (aggiornata quasi settimanalmente) tramite questo repository:

 * '''Ubuntu 7.10''' «'''Gutsy Gibbon'''»:

Una volta installata NON comparirà l'icona di avvio nel menu, di conseguenza per eseguire il programma sarà necessario creare un'icona di lancio oppure da terminale tramite il comando ''gambas2''

=== Avvertenze di installazione ===

Si consiglia di utilizzare Synaptic o Adept e selezionare TUTTI i pacchetti con dicitura iniziale ''gambas2'', in caso contrario si potrebbero avere dei malfunzionamenti.
Se utilizzate '''Ubuntu 7.10''' «'''Gutsy Gibbon'''» e decidete di installare la versione SVN di Gambas2 ricordate di NON selezionare il pacchetto ''gambas2.gb.ldap'', tale modulo è stato rimosso dal linguaggio di programmazione e la sua installazione comporta dei malfunzionamenti.

== Supporto per le basi di dati ==

Le applicazioni testate e funzionanti sulla versione più recente di Gambas sono:

 * [:Server/Web:Apache2]
 * Php
 * [:Server/MySql:MySql]
 * Sqlite



attachment:sqle.png

= Il linguaggio =

[[Anchor(esempioclassi)]]
== Una classe d'esempio ==

Costruire una classe è semplice, basta creare un nuovo oggetto di tipo classe. Creaiamo la '''classe Contatto'''. Per convenzione le variabili stringa iniziano con una 's' e così anche le altre variabili. All'interno del codice dell'oggetto appena creato scriviamo:

{{{
'Gambas classfile

PUBLIC sNome as String
PUBLIC sCognome as string
PUBLIC sIndirizzo as String
PUBLIC sCitta as String
PUBLIC sCap as String

}}}

Inizializziamo le variabili appena definite:

{{{
PUBLIC SUB _new(nom AS String,cog AS String,ind AS String,cit AS String,cap AS String)

sNome=nom
sCognome=cog
sIndirizzo=ind
sCitta=cit
sCap=cap

END
}}}

Utilizziamo la classe, attraverso una sua istanza, all'interno di un qualunque form del proprio progetto:

{{{

'Gambas classfile

'definiamo la variabile
c1 AS Contatto

'creiamo l'oggetto Contatto
PUBLIC SUB Button1_Click()

  c1 = NEW Contatto("Andrea", "Rossi", "Via del Corso 112", "Roma", "00100")
  TextArea1.Text = "Nome " & c1.snome & ", Cognome " & c1.scognome & "."

END

}}}

attachment:classe.png

[[Anchor(helloworld)]]
== Un programma d'esempio ==

 * Aprire il programma selezionando l'icona dal menù '''''Applicazioni -> Programmazione -> Gambas2''''':
attachment:g1png.png

 * Selezionare '''''Nuovo progetto -> Applicazione grafica GTK'''''

 * Crea una nuova cartella denominata «'''hello'''», assegna «'''hello'''» come nome e titolo del progetto:

 * Cliccare sulla ''form'' denominata '''FMain'''.

 * Cliccare sulla barra in basso a destra e inserire un pulsante nella form; assegnare a quest'ultimo il testo «OK»:

 * Cliccare di nuovo sulla barra e inserire un controllo di tipo testo nella ''form'':
attachment:g2png.png

 * Cliccare ora sulla ''form'' evidenziando il codice sottostante la ''form'' stessa.

 * Inserire il codice come nella seguente figura:
attachment:g4png.png

 * Compilare e avviare il programma:
attachment:g3png.png

= Copia, incolla e contribuisci =

In [:/Codice:questa pagina] viene raccolto il codice, diviso per categorie, utilizzato dagli utenti nelle proprie applicazioni.

= Ulteriori risorse =

 * [http://gambas.sourceforge.net/ Sito ufficiale del progetto]
 * [http://forum.ubuntu-it.org/index.php?board=33.0 Board programmazione del forum di Ubuntu-it]
 * [http://en.wikipedia.org/wiki/Gambas Voce enciclopedica] (in inglese)
 * [http://www.sqliteexpert.com/download.html Editor gratuito SqliteExpert]

BR

ISTRUZIONI FONDAMENTALI

In ambiente Gambas le istruzioni sono delle vere e proprie parole che permettono al programmatore di leggere il codice in maniera decisamente semplice.

FOR..NEXT

FOR variabile = valore1 TO valore2 [ STEP valore3 ] vostro codice NEXT

Immagine(Icone/Piccole/note.png,,center)

Ripete un ciclo incrementando o decrementando un valore

Esempio 1 - Ciclo crescente semplice

DIM variabile AS Integer
   FOR variabile = 0 TO 10
      Message.Info("Numero " & Str$(variabile))
   NEXT 

Spiegazione

Per ogni valore da 0 a 10 che può assumere variabile, mostra il messaggio "Numero" ed il valore di variabile. In questo caso saranno mostrati tutti i messaggi con i seguenti numeri: 0-1-2-3-4-5-6-7-8-9-10.

Esempio 2 - Ciclo crescente con passo

DIM variabile AS Integer
   FOR variabile = 0 TO 10 STEP 2
      Message.Info("Numero " & Str$(variabile))
   NEXT 

Spiegazione

Per ogni valore da 0 a 10 con passo (STEP) 2 che può assumere variabile, mostra il messaggio "Numero" ed il valore di variabile. In questo caso saranno mostrati i messaggi con questi numeri: 0-2-4-6-8-10.

Ovviamente è possibile eseguire dei cicli decrescenti

Esempio 3 - Ciclo decrescente con passo

DIM variabile AS Integer
   FOR variabile = 10 TO 0 STEP -2
      Message.Info("Numero " & Str$(variabile))
   NEXT 

Spiegazione

Per ogni valore da 10 a 0 con passo (STEP) -2 che può assumere variabile, mostra il messaggio "Numero" ed il valore di variabile. In questo caso saranno mostrati i messaggi con questi numeri: 10-8-6-4-2-0. Siccome per definizione di linguaggio un ciclo FOR..NEXT è crescente (1-2-3-ecc.) in caso venga omesso il comando STEP -2 non sarà mostrato alcun messaggio in quanto il nostro codice viene soddisfatto immediatamente.

Immagine(Icone/Grandi/info.png,,center)

Chi ha già esperienza di programmazione in Visual Basic avrà notato che dopo l'istruzione NEXT non è stato specificato a quale variabile si fa' riferimento: VB=NEXT variabile <> Gambas=NEXT. In realtà questo è superfluo per il semplice motivo che un ciclo FOR...NEXT è fine a se stesso e di tipo concentrico: Ogni istruzione FOR deve concludersi con una istruzione NEXT.

Esempio 4 - Cicli nidificati

DIM variabile AS Integer
DIM variabile1 AS Integer
DIM variabile2 AS Integer
   FOR variabile = 0 TO 10
      FOR variabile1 = 0 TO 10
         FOR variabile2 = 0 TO 10
            Message.Info("Numero " & Str$(variabile) & Str$(variabile1) & Str$(variabile2))
         NEXT 
      NEXT
   NEXT

Spiegazione

Al primo avvio variabile assume il valore 0, variabile1 assume il valore 0 e variabile2 assume il valore 0. Il primo valore che viene incrementato è quello riferito a variabile2, quando questa arriva a 10 il sistema passa il controllo a variabile1 e così via fino a che variabile assume valore 10, variabile1 valore 10 e variabile2 valore 10. Possiamo quindi notare che all'interno di un codice FOR...NEXT composto da vari cicli nidificati la priorità di esecuzione è sempre riferita all'ultimo ciclo scritto.


CategoryProgrammazione CategoryDaRevisionare