Autore Topic: aggiungere dato ad array  (Letto 319 volte)

Offline Karl

  • Gamberetto
  • *
  • Post: 35
  • l'è meij un dì da leun che cent'dì da pegura
    • Mostra profilo
aggiungere dato ad array
« il: 06 Maggio 2018, 12:58:15 »
ciao a tutti, dunque....sto estraendo dei numeri e vorrei durante l'estrazione metterli in un aray  dove nello stesso ciclo  controllare se sono gia stati estratti.
non riesco a trovare come inserire in un array dichiarato vuoto  e poi come fare rifare  durante il ciclo  l'estrazione se il numero fosse presente nellìarray.
grazie e scusate se tutto cio è un poco contorto

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.292
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:aggiungere dato ad array
« Risposta #1 il: 06 Maggio 2018, 15:28:21 »
Gli Array in Gambas sono ''Oggetti'' che posseggono proprie risorse tipiche (''Proprietà'' e ''Metodi''); la soluzione va cercata fra queste risorse.

...prima dell'inserimento del valore in un Elemento indicizzato dell'Array, per effettuare il controllo dovuto, puoi utilizzare il Metodo " .Find( ) " dell'Oggetto Array, che ti consentirà di sapere se il valore, posto nel primo argomento di tale Metodo, è già presente nell'Array.

« Ultima modifica: 06 Maggio 2018, 16:39:06 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:aggiungere dato ad array
« Risposta #2 il: 07 Maggio 2018, 13:03:39 »
ciao a tutti, dunque....sto estraendo dei numeri e vorrei durante l'estrazione metterli in un aray  dove nello stesso ciclo  controllare se sono gia stati estratti.
non riesco a trovare come inserire in un array dichiarato vuoto  e poi come fare rifare  durante il ciclo  l'estrazione se il numero fosse presente nellìarray.
grazie e scusate se tutto cio è un poco contorto

Puoi vedere il funzionamento di questo codice, copiandolo e incollandolo in un nuovo progetto command-line application.

Codice: [Seleziona]
Public Sub Main()

  Dim nNumbers As New Short[]
  Dim n, e As Short

  ' inserisce 90 numeri nel vettore già istanziato.
  For n = 1 To 90
    nNumbers.Push(n)
  Next

  ' cicla fintantoché ci sono numeri nel vettore...
  While nNumbers.Count > 0
    ' sceglie un numero a caso fra 1 e 90
    e = Rand(1, 90)
    ' ricerca nel vettore l'indice del numero estratto
    n = nNumbers.Find(e)
    ' se non lo trova salta al ciclo successivo
    If n = -1 Then Continue
    ' usa il numero estratto per fare qualcosa
    Print e
    ' lo cancella dal vettore in modo che non venga più estratto
    nNumbers.Extract(n, 1)
  Wend

End

 :ciao:
« Ultima modifica: 07 Maggio 2018, 13:06:43 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro