Differenze tra le versioni di "Azzerare tutti gli elementi di un vettore di tipo numerico"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'Per azzerare tutti gli elementi di una variabile vettoriale (''array'') di un qualsiasi tipo numerico, è possibile utilizzare almeno le modalità che di seguito si espongono,...')
 
 
(8 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Per azzerare tutti gli elementi di una variabile vettoriale (''array'') di un qualsiasi tipo numerico, è possibile utilizzare almeno le modalità che di seguito si espongono, nei quali si pone come obiettivo l'azzeramento di un vettore di tipo ''Byte''.
+
Per azzerare tutti gli elementi di una variabile vettoriale (''array'') di un qualsiasi tipo numerico, è possibile utilizzare almeno le modalità che di seguito si espongono, nelle quali si avrà come obiettivo l'azzeramento di un vettore di tipo ''Byte''.
  
  
==Modalità con il ciclo ''For...Next''==
+
==Assegnazione del valore zero ad ogni elemento del vettore mediante un ciclo==
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
Riga 9: Riga 9:
 
   
 
   
 
      
 
      
     For j = 0 To bb.Max
+
     For b = 0 To bb.Max
 
    
 
    
       bb[j] = 0
+
       bb[b] = 0
 
   
 
   
 
     Next
 
     Next
Riga 18: Riga 18:
  
  
==Modalità con un ciclo ''While...Wend''==
+
'''Public''' Sub Button1_Click()
  '''Public''' Sub Button1_Click()
 
 
   
 
   
 
   Dim bb As Byte[] = [1, 2, 3, 4, 5]
 
   Dim bb As Byte[] = [1, 2, 3, 4, 5]
Riga 25: Riga 24:
 
   
 
   
 
      
 
      
     While b < 5  <FONT color=gray>' ''Il ciclo continua finché "j" è minore di 5''</font>
+
     While b < 5  <FONT color=gray>' ''Il ciclo continua finché "b" è minore di 5''</font>
 
    
 
    
       bb[j] = 0
+
       bb[b] = 0
 
   
 
   
       Inc j
+
       Inc b
 
   
 
   
 
     Wend
 
     Wend
 
   
 
   
 
  '''End'''
 
  '''End'''
 
 
  
==Modalità con un ciclo ''Do...Loop Until''==
+
 
  '''Public''' Sub Button1_Click()
+
'''Public''' Sub Button1_Click()
 
   
 
   
 
   Dim bb As Byte[] = [1, 2, 3, 4, 5]
 
   Dim bb As Byte[] = [1, 2, 3, 4, 5]
Riga 46: Riga 43:
 
     Do
 
     Do
 
    
 
    
       bb[j] = 0
+
       bb[b] = 0
 +
 +
      Inc b
 +
 +
<FONT color=gray>' ''Il ciclo continua finché "b" non è uguale a 5:''</font>
 +
    Loop Until b = 5
 +
 +
'''End'''
 +
 
 +
 
 +
==Modalità con il metodo ''.Fill()''==
 +
'''Public''' Sub Button1_Click()
 +
 +
  Dim bb As Byte[] = [1, 2, 3, 4, 5]
 
   
 
   
      Inc j
 
 
   
 
   
<FONT color=gray>' ''Il ciclo continua finché "j" non è uguale a 5:''</font>
+
     bb.Fill(0, 0, 5)
     Loop Until j = 5
 
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 58: Riga 66:
 
==Modalità con la funzione esterna di C: ''memset ()''==
 
==Modalità con la funzione esterna di C: ''memset ()''==
 
E' possibile utilizzare anche la funzione esterna di C: "memset()", dichiarando sia la funzione medesima mediante ''Extern'', sia la libreria C, nella quale essa è contenuta.
 
E' possibile utilizzare anche la funzione esterna di C: "memset()", dichiarando sia la funzione medesima mediante ''Extern'', sia la libreria C, nella quale essa è contenuta.
  '''Private''' Extern memset(dest As Integer[], c As Byte, count As Byte) In "libc:6"
+
  '''Private''' Extern memset(dest As Byte[], c As Byte, count As Byte) In "libc:6"
 
   
 
   
 
   
 
   
Riga 67: Riga 75:
 
    
 
    
 
   
 
   
  <FONT color=gray>' ''La funzione "memset" carica un valore in tutti i byte di un blocco di memoria:''</font>
+
  <FONT color=gray>' ''La funzione "memset" carica un valore in tutti i byte di un'area di memoria:''</font>
 
     memset(bb, 0, bb.Count)
 
     memset(bb, 0, bb.Count)
 
    
 
    
  <FONT color=gray>' ''Verifichiamo in console il rusultato:''</font>
+
  <FONT color=gray>' ''Verifichiamo in console il risultato:''</font>
     For j = 0 To bb.Max
+
     For b = 0 To bb.Max
 
       Print bb[b]
 
       Print bb[b]
 
     Next
 
     Next
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione attuale delle 17:19, 22 nov 2013

Per azzerare tutti gli elementi di una variabile vettoriale (array) di un qualsiasi tipo numerico, è possibile utilizzare almeno le modalità che di seguito si espongono, nelle quali si avrà come obiettivo l'azzeramento di un vettore di tipo Byte.


Assegnazione del valore zero ad ogni elemento del vettore mediante un ciclo

Public Sub Button1_Click()

  Dim bb As Byte[] = [1, 2, 3, 4, 5]
  Dim b As Byte

   
   For b = 0 To bb.Max
 
     bb[b] = 0

   Next

End


Public Sub Button1_Click()

  Dim bb As Byte[] = [1, 2, 3, 4, 5]
  Dim b As Byte

   
   While b < 5   ' Il ciclo continua finché "b" è minore di 5
 
     bb[b] = 0

     Inc b

   Wend

End


Public Sub Button1_Click()

  Dim bb As Byte[] = [1, 2, 3, 4, 5]
  Dim b As Byte

   
   Do
 
     bb[b] = 0

     Inc b

' Il ciclo continua finché "b" non è uguale a 5:
   Loop Until b = 5

End


Modalità con il metodo .Fill()

Public Sub Button1_Click()

 Dim bb As Byte[] = [1, 2, 3, 4, 5]


   bb.Fill(0, 0, 5)

End


Modalità con la funzione esterna di C: memset ()

E' possibile utilizzare anche la funzione esterna di C: "memset()", dichiarando sia la funzione medesima mediante Extern, sia la libreria C, nella quale essa è contenuta.

Private Extern memset(dest As Byte[], c As Byte, count As Byte) In "libc:6"


Public Sub Form_Open()

 Dim bb As Byte[] = [1, 2, 3, 4, 5]
 Dim b As Byte
 

' La funzione "memset" carica un valore in tutti i byte di un'area di memoria:
   memset(bb, 0, bb.Count)
 
' Verifichiamo in console il risultato:
   For b = 0 To bb.Max
     Print bb[b]
   Next

End