Gambas-it

Gambas3 => Programmazione => Topic aperto da: Karl - 06 Maggio 2018, 12:58:15

Titolo: aggiungere dato ad array
Inserito da: Karl - 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
Titolo: Re:aggiungere dato ad array
Inserito da: vuott - 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.

Titolo: Re:aggiungere dato ad array
Inserito da: Gianluigi - 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: