online: 12; azi: 441; total: 50896 Manual clasa a ix a - Implementarea structurilor de date - Fisiere

Manual clasa a IX a

Implementarea structurilor de date

Fisiere

Pe prima linie a fişierului text alfa.txt, se găseşte o succesiune de cel puțin două şi cel mult 200 de caractere , caractere care pot fi doar litere mici . Scrieți un program care citeşte de la tastatură un număr natural n (0< = n< = 100) şi stabileşte dacă există în fişier vreo literă ce apare de exact n ori . Programul afişează pe ecran mesajul "da" în cazul în care există cel puțin o literă cu proprietatea menționată şi mesajul "nu" în caz contrar .
# include < iostream >
# include < fstream >
# include < cstring >
using namespace std ;
int main () {
char text[ 201 ];
int freq [ 26 ] = { 0 }; // initializam vectorul de frecvente cu 0
int n;
bool found = false ;
// Citim textul din fisier
ifstream fin ( "alfa.txt" ) ;
fin. getline (text, 201 );
fin. close ();
// Numaram frecventa fiecarei litere din text
int len = strlen (text);
for ( int i = 0 ; i < len ; i++) {
if (text[i] >= 'a' && text[i] <= 'z' ) { // verificam daca e litera mica
freq [text[i] - 'a' ]++; // incrementam frecventa literei gasite
}
}
// Citim numarul n de la tastatura
cout << " Introduceti un numar natural n (0 <= n <= 100): " ;
cin >> n;
// Cautam daca exista o litera cu frecventa n in vectorul de frecvente
for ( int i = 0 ; i < 26 ; i++) {
if ( freq [i] == n) {
found = true ;
break ;
}
}
// Afisam mesajul corespunzator
if ( found ) {
cout << "da\n" ;
} else {
cout << "nu\n" ;
}
return 0 ;
}

Acest program citește textul din fișierul alfa.txt folosind ifstream , numără frecvența fiecărei litere din șirul de caractere și apoi caută o literă care apare de exact n ori. Mesajul "da" sau "nu" este afișat pe ecran în funcție de rezultatul căutării.