Dimensione: 7739
Commento:
|
← Versione 18 del 14/03/2011 12.51.59 ⇥
Dimensione: 4156
Commento: converted to 1.6 markup
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from FabioColinelli/Prove | |
Linea 3: | Linea 4: |
[[BR]] ||<tablebgcolor="#f1f1ed" tablewidth="35%" tablestyle="margin: 0pt 0pt 1em 1em; float: right; font-size: 0.9em;"style="padding: 0.5em;">'''Indice'''[[BR]][[TableOfContents(1)]] || |
<<BR>> <<Indice>> |
Linea 6: | Linea 7: |
= Introduzione = In ambiente '''Gambas''' le istruzioni sono delle vere e proprie parole che permettono al programmatore di leggere il codice in maniera decisamente semplice. |
= ISTRUZIONI FONDAMENTALI = |
Linea 12: | Linea 11: |
'''FOR''' ''variabile'' '''=''' ''valore1'' '''TO''' ''valore2'' [ '''STEP''' ''valore3'' ] | || '''FOR''' ''variabile'' '''=''' ''valore1'' '''TO''' ''valore2'' [ '''STEP''' ''valore3'' ] ''vostro codice'' '''NEXT''' || |
Linea 14: | Linea 13: |
''vostro codice'' | ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Ripete un ciclo incrementando o decrementando un valore'' || |
Linea 16: | Linea 15: |
'''NEXT''' 'Ripete un ciclo incrementando o decrementando un valore' ||<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 == ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Le seguenti istruzioni sono adatte solo per architetture a 32 bit.'' || 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 |
''Esempio 1 - Ciclo crescente semplice'' {{{ DIM variabile AS Integer FOR variabile = 0 TO 10 Message.Info("Numero " & Str$(variabile)) NEXT |
Linea 47: | Linea 23: |
* '''Ubuntu 6.10''' «'''Edgy Eft'''»: {{{ deb http://xoomer.alice.it/pixel edgy gambas |
|||| '''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 |
Linea 51: | Linea 33: |
* '''Ubuntu 7.04''' «'''Feisty Fawn'''»: {{{ deb http://xoomer.alice.it/pixel feisty gambas |
|||| '''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 |
Linea 55: | Linea 45: |
Salvare e chiudere. Aprire una finestra di terminale e digitare il seguente comando: | |||| '''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. || ||<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'''.|| ''Esempio 4 - Cicli nidificati'' |
Linea 57: | Linea 51: |
sudo apt-get update | 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 |
Linea 60: | Linea 63: |
=== Installazione del pacchetto === | |||| '''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 62: | Linea 65: |
[: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'''»: {{{ deb http://xoomer.alice.it/pixel gutsy gambas |
''Esempio 5 - Uscita anticipata'' {{{ DIM variabile AS Integer FOR variabile = 0 TO 10 IF variabile = 5 then Message.Info("Esco dal ciclo.") EXIT ENDIF Message.Info("Numero " & Str$(variabile)) NEXT |
Linea 72: | Linea 77: |
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 ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Grandi/info.png,,center)]] ||<style="padding:0.5em; border:none;"> Per l'editing delle basi di dati si consigliano di usare le seguenti applicazioni: '''Kexi''', '''Rekall''', '''Php``My``Admin''', '''Knoda''', '''SQLite Expert'''. Quest'ultimo software, illustrato nella figura sottostante, merita una menzione particolare. È gratuito, si utilizza con [:Emulatori/Wine:Wine] e permette la perfetta gestione dei database '''sqlite'''. Per la progettazione delle basi di dati sono invece disponibili l'ottimo [:Server/DbDesigner:Dbdesigner] e la suite Open``Office.|| 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] |
|||| '''Spiegazione''' |||| Il programma mostrerà i messaggi per ogni valore di ''variabile'' da ''0'' a ''4''; quando ''variabile'' raggiunge il valore ''5'' il sistema uscirà ('''EXIT''') dal ciclo e non mostrerà più alcun messaggio. || |
Linea 182: | Linea 80: |
CategoryProgrammazione CategoryDaRevisionare | CategoryHomepage |
Indice
ISTRUZIONI FONDAMENTALI
FOR..NEXT
FOR variabile = valore1 TO valore2 [ STEP valore3 ] vostro codice NEXT |
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. |
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. |
Esempio 5 - Uscita anticipata
DIM variabile AS Integer FOR variabile = 0 TO 10 IF variabile = 5 then Message.Info("Esco dal ciclo.") EXIT ENDIF Message.Info("Numero " & Str$(variabile)) NEXT
Spiegazione |
Il programma mostrerà i messaggi per ogni valore di variabile da 0 a 4; quando variabile raggiunge il valore 5 il sistema uscirà (EXIT) dal ciclo e non mostrerà più alcun messaggio. |