online: 2; azi: 277; total: 50732 Manual clasa a ix a - Implementarea structurilor de date - Fisiere

Manual clasa a IX a

Implementarea structurilor de date

Fisiere

Se citesc de la tastatură mai multe triplete de numere întregi ( a ,b,c ) care reprezintă laturile unui triunghi şi se scriu într -un fişier alfa.txt, câte o tripletă pe fiecare rând . Se citesc apoi din fişier aceste triplete de numere şi se analizează tipul triunghiului ( oarecare , echilateral , isoscel , dreptunghic , dreptunghic isoscel ) şi se scrie tipul triunghiului pe un rând , în fişierul beta.txt. Fişierul beta.txt va avea tot atâtea înregistrări ca şi fişierul alfa.txt. Afişaţi apoi pe ecran , pe câte un rând , informații despre fiecare triunghi : dimensiunile laturilor şi tipul triunghiului .
# include < iostream >
# include < fstream >
using namespace std ;
int main () {
// Deschidem fisierul alfa.txt pentru citire
ifstream fin ( "alfa.txt" ) ;
if (!fin) {
cout << "Nu s-a putut deschide fisierul alfa.txt" ;
return 1 ;
}
// Deschidem fisierul beta.txt pentru scriere
ofstream fout ( "beta.txt" ) ;
if (! fout ) {
cout << "Nu s-a putut deschide fisierul beta.txt" ;
return 1 ;
}
// Citim tripletele de numere din fisierul alfa.txt
int a, b, c;
while (fin >> a >> b >> c) {
// Analizăm tipul triunghiului
if (a == b && b == c) {
// Triunghi echilateral
fout << "Echilateral" << endl ;
cout << "Triunghi echilateral: laturi = " << a << " " << b << " " << c << endl ;
} else if (a == b || b == c || a == c) {
if (a*a == b*b + c*c || b*b == a*a + c*c || c*c == a*a + b*b) {
// Triunghi dreptunghic isoscel
fout << "Dreptunghic isoscel" << endl ;
cout << "Triunghi dreptunghic isoscel: laturi = " << a << " " << b << " " << c << endl ;
} else {
// Triunghi isoscel
fout << "Isoscel" << endl ;
cout << "Triunghi isoscel: laturi = " << a << " " << b << " " << c << endl ;
}
} else if (a*a == b*b + c*c || b*b == a*a + c*c || c*c == a*a + b*b) {
// Triunghi dreptunghic
fout << "Dreptunghic" << endl ;
cout << "Triunghi dreptunghic: laturi = " << a << " " << b << " " << c << endl ;
} else {
// Triunghi oarecare
fout << "Oarecare" << endl ;
cout << "Triunghi oarecare: laturi = " << a << " " << b << " " << c << endl ;
}
}
// Închidem fișierele
fin. close ();
fout. close ();
return 0 ;
}

Programul începe prin citirea numărului de triplete de numere întregi, apoi citirea acestora din fișierul "alfa.txt" și stocarea lor într-un vector de structuri de tipul "Triunghi".
Pentru fiecare triunghi, se verifică dacă este un triunghi echilateral, isoscel, dreptunghic sau dreptunghic isoscel, prin intermediul unor structuri condiționale. Tipul de triunghi este stocat în câmpul "tip" al structurii corespunzătoare.
Se scriu apoi tipurile de triunghiuri în fișierul "beta.txt", câte unul pe fiecare linie.
În final, se afișează informații despre fiecare triunghi (lungimile laturilor și tipul de triunghi) pe ecran, folosind datele stocate în vectorul de structuri.