Esercizio con array e file, algoritmo

di il
3 risposte

Esercizio con array e file, algoritmo

Ciao a tutti,

Dato che sto cercando di impratichirmi con gli algoritmi, mi è capitato sottomano un esercizio, per cui mi servirebbe uno spunto. Di seguito la consegna:

"Dato un Array di nome Presenze[1000], non ordinato, con i seguenti campi:
Matricola
Data lezione
Ore presenza

Caricare un file di nome Riepilogo con con Matricola e Tot presenze per ogni matricola"

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.

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!

3 Risposte

  • Re: Esercizio con array e file, algoritmo

    Parliamo in via teorica o usi un linguaggio?
  • Re: Esercizio con array e file, algoritmo

    Ciao e grazie, parliamo in via teorica, costruzione di un flowchart con blocchi di esecuzione, scelta, iterazioni e operatori logici.
  • Re: Esercizio con array e file, algoritmo

    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
Devi accedere o registrarti per scrivere nel forum
3 risposte