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

Da Gambas-it.org - Wikipedia.
 
Riga 3: Riga 3:
  
 
==Assegnazione del valore zero ad ogni elemento del vettore mediante un ciclo==
 
==Assegnazione del valore zero ad ogni elemento del vettore mediante un ciclo==
  '''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]
 
   Dim b As Byte
 
   Dim b As Byte
 
   
 
   
   
+
  For b = 0 To bb.Max
    For b = 0 To bb.Max
+
    bb[b] = 0
 
+
  Next
      bb[b] = 0
 
 
   
 
   
    Next
+
  End
+
oppure:
  '''End'''
+
  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]
 
   Dim b As Byte
 
   Dim b As Byte
 
 
      
 
      
    While b < 5  <FONT color=gray>' ''Il ciclo continua finché "b" è minore di 5''</font>
+
  While b < 5  <FONT color=gray>' ''Il ciclo continua finché "b" è minore di 5''</font>
 
+
    bb[b] = 0
      bb[b] = 0
+
    Inc b
 +
  Wend
 
   
 
   
      Inc b
+
  End
+
oppure:
    Wend
+
  Public Sub Button1_Click()
   
 
'''End'''
 
 
 
 
 
  '''Public''' Sub Button1_Click()
 
 
   
 
   
 
   Dim bb As Byte[] = [1, 2, 3, 4, 5]
 
   Dim bb As Byte[] = [1, 2, 3, 4, 5]
 
   Dim b As Byte
 
   Dim b As Byte
 
 
      
 
      
    Do
+
  Do
 
+
    bb[b] = 0
      bb[b] = 0
+
    Inc b
 
      Inc b
 
 
 
  <FONT color=gray>' ''Il ciclo continua finché "b" non è uguale a 5:''</font>
 
  <FONT color=gray>' ''Il ciclo continua finché "b" non è uguale a 5:''</font>
    Loop Until b = 5
+
  Loop Until b = 5
 
   
 
   
  '''End'''
+
  End
  
  
==Modalità con il metodo ''.Fill()''==
+
==Modalità con il Metodo ".Fill()"==
  '''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]
 
   
 
   
 +
  bb.Fill(0, 0, 5)
 
   
 
   
    bb.Fill(0, 0, 5)
+
  End
   
 
'''End'''
 
  
  
==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 Byte[], c As Byte, count As Byte) In "libc:6"
+
  Private' Extern memset(dest As Byte[], c As Byte, count As Byte) In "libc:6"
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  Dim bb As Byte[] = [1, 2, 3, 4, 5]
+
  Dim bb As Byte[] = [1, 2, 3, 4, 5]
  Dim b As Byte
+
  Dim b As Byte
 
 
 
   
 
   
  <FONT color=gray>' ''La funzione "memset" carica un valore in tutti i byte di un'area 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 risultato:''</font>
 
  <FONT color=gray>' ''Verifichiamo in console il risultato:''</font>
    For b = 0 To bb.Max
+
  For b = 0 To bb.Max
      Print bb[b]
+
    Print bb[b]
    Next
+
  Next
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 16:09, 1 lug 2024

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

oppure:

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

oppure:

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