Aangelus (Normal User)
Pro
Messaggi: 143
Iscritto: 29/03/2011
|
Salve creando questo tipo di array mi genera un errore di "Tipo non corrispondente"
modulo
Type Dativoti
QVoti As Integer
Voto(10) As Integer
End Type
Type Nomiclasse
QNomi As String
Nomi(5) As Dativoti
End Type
Type Daticlasse
NClassi As Integer
Classe(3) As Nomiclasse
End Type
Global classi As Daticlasse
form
classi.Classe(0) = "1E"
classi.Classe(0).Nomi(0) = "Alessandra"
classi.Classe(0).Nomi(0).Voto = "8"
Suggerimenti ? grazie in anticipo
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6405
Iscritto: 03/01/2010
|
Fossi in te rivedrei tutte le strutture ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Aangelus (Normal User)
Pro
Messaggi: 143
Iscritto: 29/03/2011
|
Ciao nessuno le strutture vengono autocompilate come suggerimenti il che mi fa escludere un errore di incatenamento della struttura, il codice si blocca sull'assegnazione della classe 1E mentre se eliminassi le prime due assegnazioni come classe 1E e nome Alessandra il programma funziona assegnandomi soltanto il voto
Ultima modifica effettuata da Aangelus il 15/07/2014 alle 16:31 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6405
Iscritto: 03/01/2010
|
"Errore di incatenamento" non so cosa sia ... io intendevo il fatto che le strutture non mi sembrano "logicamente" organizzate correttamente. In realtà non conosco il problema completamente ma penso siano da rivedere ...
Per l'errore, dovresti scrivere
classi.Classe(0).QNomi = "1E"
ma non so cosa rappresenta QNomi ...
Anche il resto non è corretto ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Aangelus (Normal User)
Pro
Messaggi: 143
Iscritto: 29/03/2011
|
Grazie nessuno della disponibilità ho modificato il tutto in questo modo
Modulo:
Type Dativoti
QVoti As Integer
SVoto As String
End Type
Type Nomiclasse
QNomi As Integer
SNomi As String
Nomi(5) As Dativoti
End Type
Type Daticlasse
QClassi As Integer
SClasse As String
Classe(3) As Nomiclasse
End Type
Global classi(5) As Daticlasse
Form:
classi(0).SClasse = "1E"
classi(0).Classe(0).SNomi = "Alessandra"
classi(0).Classe(0).Nomi(0).SVoto = "8"
Le variabili con inizio Q le userò per rendere l'array dinamico
che ne pensi ?
|
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
Quello che ti chiami array dinamico........... Per caso.............. è un vettore?
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6405
Iscritto: 03/01/2010
|
Le variabili con inizio Q le userò per rendere l'array dinamico
|
Questa non l'ho capita ...
Dovresti postare la tua necessità, descrivendole senza pensare alle strutture. Solo così è possibile risponderti.
Prima di tutto, cosa deve fare il tuo programma?
Quali dati deve trattare?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Aangelus (Normal User)
Pro
Messaggi: 143
Iscritto: 29/03/2011
|
Il programma dovrebbe:
1) contenere tutte le classi di una scuola
2) contenere i nomi degli studenti all'interno delle classi
3) contenere i rispettivi voti che potranno avere
di conseguenza ho cercato di creare un array a 3 dimensioni dove una volta creata la struttura avrei voluto renderla dinamica con redim preserve per non aumentare inutilmente lo spazio di memoria
come per esempio
QClassi = QClassi +1
redim preserve classi(0).Classe(QClassi)
Ultima modifica effettuata da Aangelus il 16/07/2014 alle 2:29 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6405
Iscritto: 03/01/2010
|
Devi farlo con le strutture per forza? Più adatte sarebbero le classi e un DB ...
In ogni caso, se nella struttura indichi il numero di elementi di un vettore, non potrai ridimensionarlo.
Una rivisitazione con le strutture, anche se può apparire un po' complicata, sarebbe
Codice sorgente - presumibilmente Delphi |
Type Voto Materia As String Valore As String End Type Type Alunno Nome As String NumVoti As Integer Voti() As Voto End Type Type Classe ClSez As String TotAlunni As Integer Alunni() As Alunno End Type Global QClassi As Integer Global Classi() As Classe
|
e quindi nel form Load
Codice sorgente - presumibilmente Plain Text |
mentre per aggiungere i vari elementi
Codice sorgente - presumibilmente VB.NET |
' Aggiunge classe QClassi = QClassi + 1 ReDim Preserve Classi(QClassi) With Classi(QClassi) .ClSez = "1E" .TotAlunni = 0 End With
|
Codice sorgente - presumibilmente VB.NET |
' Aggiunge alunno in classe numero cix (da fornire) Classi(cix).TotAlunni = Classi(cix).TotAlunni + 1 ReDim Preserve Classi(cix).Alunni(Classi(cix).TotAlunni) With Classi(cix).Alunni(Classi(cix).TotAlunni) .Nome = "Pinco Pallo" .NumVoti = 0 End With
|
Codice sorgente - presumibilmente VB.NET |
' Aggiunge voto per l'alunno numero aix in classe numero cix (da fornire) Classi(cix).Alunni(aix).NumVoti = Classi(cix).Alunni(aix).NumVoti + 1 ReDim Preserve Classi(cix).Alunni(aix).Voti(Classi(cix).Alunni(aix).NumVoti) With Classi(cix).Alunni(aix).Voti(Classi(cix).Alunni(aix).NumVoti) .Materia = "Informatica" .Valore = "4-" End With
|
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|