Frengo ha scritto:
Inizialmente avevo in mente di scorrere l'array con l'uso di due cicli e due indici, verificare l'uguaglianza del dato Matricola all'interno dei record e, nel caso la condizione si verificasse, contare le presenze di ogni matricola e riportare Matricola e Totale delle presenze nel file.
Non capisco come funziona il tuo algoritmo...
Mi sono accorto che però così nel file appariranno, per ogni matricola, tanti doppioni quante sono le volte che una determinata matricola si ripete nell'array.
Non riesco a capire come impostare un controllo che mi permetta di evitare quanto sopra. Ho abbozzato una soluzione ma mi sembra alquanto fantasiosa e incerta, ma prima vorrei avere l'opinione di qualcuno più navigato.
Grazie!
Io farei così: oltre all'array PRESENZE creo l'array RIEPILOGO [1000], con i campi:
- Matricola
- Ore_presenza_tot
Uso 2 indici per i 2 array:
- l'indice che uso per l'array PRESENZE si incrementa automaticamente (ciclo for)
- l'indice che uso per l'array RIEPILOGO lo incremento solo quando inserisco un nuovo record
A questo punto l'algoritmo è il seguente:
1- scorro l'array PRESENZE con un ciclo for e per ogni record
2- leggo la Matricola e il numero delle Ore_presenza
2.1- scorro l'array RIEPILOGO e controllo se è presente quella Matricola
2.1.1- se è presente aggiorno il conteggio delle ore
2.1.2- se non è presente aggiungo la Matricola e le Ore_presenza, e poi incremento l'indice
3- dopo aver scorso tutto l'array PRESENZE copio i valori dell'array RIEPILOGO in un file
4- fine