|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 118
|
[visual baisc]: aiuto in piccolo programma
Ciao a tutti non sono esperto di visual basic ma dovrei realizzare la codifica di questo programma:
Realizzare un programma che richieda all'utente 10 numeri interi e che,alla fine della introduzione dei valori, al click sul tasto CMDCONTROLLA stampi a video in opportune label: 1.Quanti e quali sono i valori dispari introdotti. 2.Quanti e quali sono i valori pari introdotti. Ho già realizzato la GUI ma non sò procedere alla codifica. ![]() Quest'ultima dovrebbe essere fatta utilizzando un ciclo for.. Di solito non sono uno che va a chiedere aiuto nei forum per le codifiche perchè penso che la miglior cosa sia ricercare da solo ma è veramente urgente.. grazie a chiunque mi aiuti. P.S. il risultato se pari o dispari andrebbe trovato utilizzando la funzione MOD che calcola il resto di una divisione,quindi se dividendo il numero per 2 il resto è 0 il numero sarà pari se ci sarà il resto sarà dispari. P.P.S: i controlli sono organizzati (sono array di controlli). ho realizzato una codifica ma senza il totale...solo che mi da errore:"sub o function non definita" ecco: Codice:
Private Sub Form_Load() Dim N (1 to 10) as Integer Dim TP As Integer //Totale Pari. Dim TD As Integer// Totale Dispari. End Sub ----------------------------------------- Private Sub Cmdcontrolla_Click() For i = 1 To 10 N(i) = Val(Text1(i).Text) Next i If N Mod 2 = 0 Then Lblpari(i).Caption = Str(N(i)) Else Lbldispari(i).Caption = Str(N(i)) Next i End if End Sub
__________________
CPU:intel core I7 920 step D0 MOBO: Asus P6T RAM: corsair xms3 3x2gb VGA: NVidia GTX560Ti CASE: Aerocool XPredator White. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
1. L'array e le due variabili create nell'evento Load della Form vengono create e distrutte alla fine dell'evento stesso. Le devi dichiarare Private a livello di Form, ossia fuori dall'evento, ( ed eventualmente le inizializzi nel Load... ) affinchè siano visibili da ogni subroutine della Form... 2. C'è UN "For i" e DUE "Next i"... |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 118
|
Ho cambiato il codice ora mi da questo errore: "errore di compilazione:impossibile trovare il metodo o il membro dei dati"
Codice:
Private Sub Command1_Click() For I = 1 To 10 numero(I) = Val(txtN.Text(I)) valore(I) = numero(I) Mod 2 If valore(I) = 0 Then lblpari(I).Caption = Str(numero) Else lbldispari(I).Caption = Str(numero) Next I End If End Sub Private Sub Form() Dim numero(1 To 10) As Integer Dim valore As Integer End Sub
__________________
CPU:intel core I7 920 step D0 MOBO: Asus P6T RAM: corsair xms3 3x2gb VGA: NVidia GTX560Ti CASE: Aerocool XPredator White. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Ok, come lo farei io :
Codice:
Private Sub Command1_Click()
Dim numero As Integer
Dim valore As Integer
Dim contaPari As Integer
Dim contaDispari As Integer
Dim i As Integer
For i = 0 To 9
numero = Val(txtN(i).Text)
valore = numero Mod 2
If valore = 0 Then
lblpari(i).Caption = Str(numero)
contaPari = contaPari + 1
Else
lbldispari(i).Caption = Str(numero)
contaDispari = contaDispari + 1
End If
Next i
Label3.Caption = contaPari
Label4.Caption = contaDispari
End Sub
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 118
|
Quote:
e se volessi fare in modo che i numeri(pari o dispari) che mano mano vengono inseriti nelle label vengano elencati in modo ordinato? nel senso che non vengano saltate delle label ma che i numeri vengano elencati uno dietro l'altro? ![]() come sono ora vengono saltate delle label... come si può fare?
__________________
CPU:intel core I7 920 step D0 MOBO: Asus P6T RAM: corsair xms3 3x2gb VGA: NVidia GTX560Ti CASE: Aerocool XPredator White. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Allora in quel caso, con una minima modifica al codice precedente...:
Codice:
Dim numero As Integer
Dim valore As Integer
Dim contaPari As Integer
Dim contaDispari As Integer
Dim i As Integer
For i = 0 To 9
numero = Val(txtN(i).Text)
valore = numero Mod 2
If valore = 0 Then
lblpari(contaPari).Caption = Str(numero)
contaPari = contaPari + 1
Else
lbldispari(contaDispari).Caption = Str(numero)
contaDispari = contaDispari + 1
End If
Next i
Label3.Caption = contaPari
Label4.Caption = contaDispari
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:11.






















