Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: simo97 - 02 Giugno 2013, 18:51:08

Titolo: array, cos'è e come si usa
Inserito da: simo97 - 02 Giugno 2013, 18:51:08
il wiki non dice molto....
Citazione
Array
doors.txt;10;15

se qualcuno è così gentile di dirmi qualcosa di più....
anche solo linkatemi qualcosina...
Titolo: Re: array, cos'è e come si usa
Inserito da: pastrank - 02 Giugno 2013, 21:16:09
anche solo linkatemi qualcosina...

https://it.wikipedia.org/wiki/Array (https://it.wikipedia.org/wiki/Array)
Titolo: Re: array, cos'è e come si usa
Inserito da: simo97 - 02 Giugno 2013, 22:11:43
fin lì c'ero arrivato....
ma comunque grazie per l'interesse :bravo:
Titolo: Re: array, cos'è e come si usa
Inserito da: vuott - 02 Giugno 2013, 23:15:22
fin lì c'ero arrivato....

Non mi pare che l'amico pastrank abbia dato poca considerazione alla tua richiesta, anche perché non si capisce bene  :-\ cosa vuoi sapere riguardo agli array: una spiegazione teorica ? Esempi pratici con il linguaggio Gambas ?
In quest'ultimo caso, cercando nel forum e nella WIKI puoi trovare tanto, poiché - anche indirettamente - mi pare che il tema sia stato molto trattato.
Titolo: Re: array, cos'è e come si usa
Inserito da: pastrank - 03 Giugno 2013, 00:13:08
una spiegazione teorica ?

Io sono andato per la teorica, perche' gli array, sapendo cosa sono, non e' che siano cosi' difficili a usarsi, quanto meno negli usi comuni. La spiegazione su cosa sono, pero', comporta un discreto ammontare di testo, e se c'e' qualcosa di fatto bene, tanto meglio perche' non posso certo iniziare a scrivere un libro :-)
Titolo: Re: array, cos'è e come si usa
Inserito da: Picavbg - 06 Giugno 2013, 00:12:36
I termini inglesi sono sempre stati poco accetti nella mia terminologia tecnica. Non capisco infatti perchè noi italiani non dobbiamo essere orgogliosi e conservatori della nostra lingua. Tuttavia, visto l'ormai consolidato malcostume di utilizzare termini inglesi o storpiature di termini italiani anglicizzati, dobbiamo convivere anche con esse.
La domanda che poni mi pare assolutamente legittima e merita una risposta. Cercherò di esprimermi in maniera semplice e concisa, nonostante che l'argomento sia complesso ed alquanto impegnativo, per l'ampia casistica di strutture possibili.

Nel wiki del forum puoi trovare una spiegazione (http://www.gambas-it.org/wiki/index.php?title=Matrici_ed_Array_multidimensionali_definiti), secondo me poco chiara del termine array. In parole povere l'array corrisponde ad una tabella. Qualsiasi tabella presenta un insieme di righe e colonne in cui ciascuna riga contiene a sua volta una ricorrenza per ciascuna colonna e ciascuna colonna contiene lo stesso tipo di ricorrenza per ciascuna riga presente nella tabella. Ne segue che un certo valore x contenuto nella cella Rm, Cn, dove R rappresenta il n° di riga della tabella data e C il n° di colonna della stessa, mentre m ed n] identificano la cella in cui si incrociano la riga R e la colonna C.
Se fin qui è chiaro posso aggiungere che esistono diverse strutture di tabelle dalle semplici composte da una riga ed una sola colonna alle più copmplesse formate da più righe e da più colonne. Esistono anche tabelle contenenti a loro volta altre tabelle, la cui complessità richiederebbe un dispendio di energie e tempo non indifferenti, comunque difficili da riscontrare ordinariamente. Di solito si utilizzano, array(o tabelle o matrici) organizzate in più righe e più colonne, del tipo cella R1C1;  R1C2; ..... R1Cn; R2C1; R2C2; .....;  R2Cn; ......;  RnC1; RnCn; .....; R1Cn;
Per ora mi fermerei qui. Se dovessi avere bisogno di scendere in particolari applicati al linguaggio Gambas, possiamo proseguire l'argomento. Per ora è importante sapere se il concetto teorico risulti chiaro.
 ;D  :ciao:
Titolo: Re: array, cos'è e come si usa
Inserito da: pastrank - 06 Giugno 2013, 07:27:09
I termini inglesi sono sempre stati poco accetti nella mia terminologia tecnica. Non capisco infatti perchè noi italiani non dobbiamo essere orgogliosi e conservatori della nostra lingua. Tuttavia, visto l'ormai consolidato malcostume di utilizzare termini inglesi o storpiature di termini italiani anglicizzati, dobbiamo convivere anche con esse.

Oh, sono un ammiratore dell'opera dell'Accademia della Crusca, ma questo non vuol dire che in un linguaggio di programmazione un termine come array debba essere tradotto, sarebbe follia...
Titolo: Re: array, cos'è e come si usa
Inserito da: vuott - 06 Giugno 2013, 14:22:23
I termini inglesi sono sempre stati poco accetti nella mia terminologia tecnica. Non capisco infatti perchè noi italiani non dobbiamo essere orgogliosi e conservatori della nostra lingua. Tuttavia, visto l'ormai consolidato malcostume di utilizzare termini inglesi o storpiature di termini italiani anglicizzati, dobbiamo convivere anche con esse.
Anch'io odio profondamente l'uso insulso ed insensato di quella lingua, quando vi è la tranquilla possibilità di usare termini italiani.


Nel wiki del forum puoi trovare una spiegazione (http://www.gambas-it.org/wiki/index.php?title=Matrici_ed_Array_multidimensionali_definiti), secondo me poco chiara del termine array.
La definizione è breve, poiché posta nella sezione Guide della comunità, che - mi sembra - ha una funzione più generica e pratica rispetto alla sezione Indice, più teorica.
...se anche gli altri utenti del forum mettessero mano all'intera nostra WIKI, gli argomenti lì sarebbero meglio e ben descritti ed esposti !  :evil:

" Invece di maledire il buio, è meglio accendere una candela. "
(Lao Tzu, IV sec. a.c.)
Titolo: Re: array, cos'è e come si usa
Inserito da: Picavbg - 06 Giugno 2013, 15:11:31
Nel wiki del forum puoi trovare una spiegazione (http://www.gambas-it.org/wiki/index.php?title=Matrici_ed_Array_multidimensionali_definiti), secondo me poco chiara del termine array.
La definizione è breve, poiché posta nella sezione Guide della comunità, che - mi sembra - ha una funzione più generica e pratica.
...se anche gli altri utenti del forum mettessero mano all'intera nostra WIKI, gli argomenti lì sarebbero meglio e ben descritti ed esposti !  :evil:
Riprendo quanto citato in merito al termine array nel Wiki della comunità perchè mi sono reso conto di essermi espresso male. La mia considerazione personale sulla chiarezza della spiegazione non vuole criticare quanto inserito nel Wiki dall'autore, al quale va il plauso di avere affrontato un argomento che è senz'altro degno di attenzione. La spiegazione però è rivolta, sempre secondo me, al lettore che già abbia già conoscenza dell'argomento "Matrici, Array, o come altrimenti vogliamo chiamare simili strutture". Chiedo scusa se, col mio precedente intervento, abbia involontariamente generato effetti di critica negativa.
 :ciao:
Titolo: Re: array, cos'è e come si usa
Inserito da: Top Fuel - 06 Giugno 2013, 16:12:46
Oh, sono un ammiratore dell'opera dell'Accademia della Crusca, ma questo non vuol dire che in un linguaggio di programmazione un termine come array debba essere tradotto, sarebbe follia...

Perchè follia? In molti testi di programmazione che ho letto definivano l'array monodimensionale come vettore, e quello pluridimensionale come matrice.
Per me ci sta.
Titolo: Re: array, cos'è e come si usa
Inserito da: vuott - 06 Giugno 2013, 16:30:09
In molti testi di programmazione che ho letto definivano l'array monodimensionale come vettore...
Anche qui, ad esempio:
http://it.wikipedia.org/wiki/Array
Titolo: Re: array, cos'è e come si usa
Inserito da: simo97 - 06 Giugno 2013, 19:02:03
chiedo qui....

come faccio a sapere se un determitato indice contiene qualcosa??
Titolo: Re: array, cos'è e come si usa
Inserito da: pastrank - 06 Giugno 2013, 19:27:29
n molti testi di programmazione che ho letto definivano l'array monodimensionale come vettore, e quello pluridimensionale come matrice.
Per me ci sta.

Io dissento totalmente. Nella documentazione inglese, array e' array. Anche senza considerare altre cose, che alla stregua di questo potrebbero essere tradotte nella documentazione (parlo di documentazione: modificare il codice, come successe ad una software house traducendo il linguaggio  delle macro di un noto programma per ufficio, sarebbe ancora piu' demenziale, e i vecchi come me potranno ancora ricordarsi i casini che in Visual Basic causava l'uso di TRUE e FALSE sui pc con lingua di default in italiano), trovo irripetibile l'occasione di trovarsi sia nella documentazione sia nella finestra del codice gli stessi termini.
Al piu', preferirei vedere continuare a usare il termine array, e nella spiegazione italiana potrebbe essere spiegato ad esempio
Diro' anche di piu', sono sicuro che se uno non si impara l'inglese almeno per il necessario, non riuscira' mai a programmare con successo, visto che si taglia il 99% delle fonti di informazioni su internet. E' uno sforzo che va fatto: purtroppo le scuole adesso non mi paiono aver tanto successo nell'insegnamento di questo, anzi, rimango sbigottito quando si fa male quello e si inserisce un'altra lingua, dimostrando di essere interessati piu' al collocamento degli insegnanti in eccesso che all'apprendimento dei ragazzi.
Titolo: Re: array, cos'è e come si usa
Inserito da: vuott - 06 Giugno 2013, 20:23:20
come faccio a sapere se un determitato indice contiene qualcosa??
Se tu conosci già il valore, e vuoi sapere se è contenuto all'interno dell'array, puoi usare il metodo .Exist(...).

Se, invece, vuoi semplicemente sapere se l'array contiene un qualche valore, allora direi di verificarlo mediante la proprietà .Count .
Titolo: Re: array, cos'è e come si usa
Inserito da: simo97 - 06 Giugno 2013, 21:32:46
non esattamente....
allora ho un array float e mi servirebbe saper se in un determinato indice c'è qualcosa...in caso contrario metterci uno 0
non sò bene se così funziona....
Codice: gambas [Seleziona]
 For n = 0 To var_x.Max
    If var_x[n] = "" Then var_x.Add(0, n)
  Next

Titolo: Re: array, cos'è e come si usa
Inserito da: fsurfing - 06 Giugno 2013, 22:48:31
Se è un array flot non puo vontenere un valore "" .
Inoltre .add ti agiunge un valore prr cui il tuo aray se prima aveva n elementibora ne avrà n+1,
 Dovresti usare .fill mi pare
Titolo: Re: array, cos'è e come si usa
Inserito da: vuott - 06 Giugno 2013, 22:51:14
non esattamente....
allora ho un array float e mi servirebbe saper se in un determinato indice c'è qualcosa...in caso contrario metterci uno 0
non sò bene se così funziona....
Codice: gambas [Seleziona]
 For n = 0 To var_x.Max
    If var_x[n] = "" Then var_x.Add(0, n)
  Next


Ma un Float non è una stringa: non comprendo come tu possa usare = ""  :-\ .

Inoltre, se esiste un elemento nel array, che quindi assume un certo indice, vuol dire che c'è qualcosa, sia anche lo zero.
Infatti, l'inesistenza di "qualsiasi" valore può essere inteso come opposto o contrario dell'esistenza: un non-essere assoluto, il nulla, che, in questo senso, non è neppure possibile pensare e dire. Lo zero, invece, ammette ed anzi presuppone una molteplicità di esistenze, di valori, poiché esso è un attributo quantitativo della realtà, e quindi è "diverso" dal nulla ed è ammissibile.
(http://www.jndyos.com/Gif/demenziali/Bambina_Strana.gif)
Titolo: Re: array, cos'è e come si usa
Inserito da: Picavbg - 06 Giugno 2013, 23:18:28
non esattamente....
allora ho un array float e mi servirebbe saper se in un determinato indice c'è qualcosa...in caso contrario metterci uno 0

Scusa simo97, ma se vuoi avere le idee chiare, credo sia opportuno distinguere la differenza fra indice e cella x dell'array.
Quando ci riferiamo ad un indice vogliamo indicare una variabile di tipo numerico contenente appunto il puntamento su una cella dell'array, perciò se la variabile "ind" contiene il valore numerico 5, vuol dire essa punta al sesto elemento dell'array (secondo la numerazione da 0 a n-1). Diverso invece è il concetto se vogliamo riferirci al contenuto della cella x dell'array. In questo caso non diremo mai "se un determinato indice contiene qualcosa", ma diremo invece "se la casella x (puntata dall'indice Ind)  contiene qualcosa"; ciò in termini di codice si traduce in
Codice: [Seleziona]
Dim cellax As String
If cellax[Ind] = "" Then var_x[ind] = "0"

 ;D