online: 6; azi: 586; total: 67898 Manual clasa a ix a - Implementarea structurilor de date - Fisiere

Manual clasa a IX a

Implementarea structurilor de date

Fisiere

În fişierul text numere.txt se află mai multe numere naturale , de câte cel mult patru cifre fiecare , scrise pe un singur rând . Scrieți un program care afişează pe ecran câte valori distincte există în fişier .
# include < iostream >
# include < fstream >
using namespace std ;
int main () {
ifstream fin ( "numere.txt" ) ;
int count [ 10001 ] = { 0 }; // initializam un vector de frecventa
int num, distinct = 0 ;
while (fin >> num) { // citim fiecare numar din fisier
count [num]++; // incrementam frecventa fiecarui numar citit
}
fin. close ();
for ( int i = 0 ; i <= 10000 ; i++) {
if ( count [i] > 0 ) { // daca numarul a aparut in fisier , il consideram distinct
distinct++;
}
}
cout << " Numarul de valori distincte este: " << distinct << endl ;
return 0 ;
}

În acest cod, am declarat un vector de frecvență cu 10.001 elemente, fiecare inițializat cu 0, care va ține evidența de câte ori apare fiecare număr citit din fișierul numere.txt. Apoi, am parcurs fișierul linie cu linie, citind fiecare număr și incrementând frecvența acestuia în vectorul de frecvență.
În final, am parcurs vectorul de frecvență și am numărat numerele care apar cel puțin o dată, astfel obținând numărul de valori distincte din fișier.
F ișier numere.txt:
1 2 3 4 1 2 3 5 6 7 8 8 8 9 10
Acest fișier conține 15 nume r e distincte: 1, 2, 3, 4, 5, 6, 7, 8, 9 și 10.