Fisiere
Fişierele text alfa.txt şi beta.txt conțin numele unor persoane, câte o linie pentru fiecare persoană. Ştiind că în fiecare fişier numele sunt memorate în ordine alfabetică, scrieți un program care să construiască fişierul gama.txt care să conțină toate numele din cele două fişiere date, în ordinea alfabetică. 1
#include <iostream> #include <fstream> #include <string> using namespace std; int main() { // deschidem fisierele alfa.txt si beta.txt ifstream alfa(„alfa.txt”); ifstream beta(„beta.txt”); // deschidem fisierul gama.txt pentru scriere ofstream gama(„gama.txt”); string nume_alfa, nume_beta; // citim primul nume din ambele fisiere getline(alfa, nume_alfa); getline(beta, nume_beta); //...
Scrieți un program care generează toate numerele prime strict mai mici decât n (n număr natural). Valoarea variabilei n se citeşte de la tastatură. Numerele prime generate vor fi scrise în fişierul text prime.txt, câte unul pe linie. 2
Pentru a genera toate numerele prime mai mici decât n, vom parcurge toate numerele între 2 și n-1 și vom verifica dacă fiecare număr este prim sau nu. Pentru a verifica dacă un număr x este prim, vom parcurge toate numerele între 2 și x-1 și verificăm dacă x este divizibil cu vreunul dintre acestea....
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. 3
#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...
Fişierul text litere.txt conține mai multe cuvinte scrise cu litere mici, câte un cuvânt pe fiecare linie. Scrieți un program care să afişeze litera care apare de cele mai multe ori. Dacă există mai multe astfel de litere, se vor afişa toate 4
Pentru a rezolva această problemă, putem folosi un array de contoare pentru fiecare literă mică din alfabet și să parcurgem cuvintele din fișier linie cu linie, incrementând contorul pentru fiecare literă din cuvânt. Apoi, putem parcurge array-ul de contoare și să găsim valoarea maximă (adică litera care apare cel mai des) și să afișăm litera/literele...
Scrieți un program care citeşte de la tastatură un număr natural n (0<=n<=15) şi o literă c şi creează un fişier text cu numele caracter.txt ce conține pe prima linie un caracter c, pe a doua linie două caractere c nedespărțite prin spații, pe linia a treia trei caractere c nedespărțite prin spații etc. Ultima linie a fişierului trebuie să fie linia a n-a care conține n caractere c nedespărțite prin spații. Afişaţi conținutul fişierului. 5
Pentru a rezolva această problemă, putem folosi o buclă for pentru a parcurge toate liniile fișierului și a afișa caracterele respective în fiecare linie. Vom utiliza un obiect de tipul ofstream pentru a scrie în fișier. #include <iostream> #include <fstream> using namespace std; int main() { int n; char c; cout <<...
Î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. 6
#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(); ...
În fişierul text alfa.txt se află mai multe numere naturale, de cel mult trei cifre fiecare, scrise pe un singur rând. Scrieți un program care creează un alt fişier text beta.txt care să conțină exact aceleaşi numere din fişierul alfa.txt, câte unul pe linie, în ordinea crescătoare a valorilor acestora. (Indicație. Sortarea numerelor se va face într-un vector). 7
#include <iostream> #include <fstream> using namespace std; int main() { int nums[1000]; // vectorul in care se vor stoca numerele int n = 0; // numarul de numere din fisierul alfa.txt // Citim numerele din fisierul alfa.txt si le stocam in vectorul nums ifstream fin(„alfa.txt”); while (fin >> nums[n]) {...
În acest caz, dacă nu avem voie să folosim funcții din librării externe, putem rezolva problema folosind doar structurile de control și variabilele standard din limbajul C++ 8
Pentru a rezolva această problemă, vom citi fiecare număr din fișierul numere.txt și vom calcula suma cifrelor acestuia. Dacă suma cifrelor este un număr par, vom scrie acel număr în fișierul pare.txt. #include <iostream> #include <fstream> using namespace std; int suma_cifrelor(int n) { int suma = 0; while (n > 0) { ...
În fişierul text alfa.txt se află, câte unul pe linie, mai multe numere. În fişierul text divizori.txt se vor scrie pe câte o linie, în aceeaşi ordine, divizorii unui număr din fişierul alfa.txt. Afişaţi pe ecran, pe câte un rând, folosind informațiile din cele doua fisiere: Numarul …. Are divizori…… 9
#include <iostream> #include <fstream> using namespace std; int main() { // deschidem fisierul alfa.txt pentru citire ifstream alfa(„alfa.txt”); // deschidem fisierul divizori.txt pentru scriere ofstream divizori(„divizori.txt”); int numar; // parcurgem fisierul alfa.txt si scriem divizorii in fisierul divizori.txt while (alfa >> numar) { divizori << „Divizorii lui...
Să se verifice dacă două fişiere text conțin acelaşi număr de linii. Dacă au acelaşi număr de linii să se afişeze mesajul „Număr egal de linii”, altfel să se afişeze un mesaj prin care să se precizeze care fişier are mai multe linii. 10
#include <iostream> #include <fstream> using namespace std; int main() { ifstream file1(„fisier1.txt”); ifstream file2(„fisier2.txt”); int count1 = 0, count2 = 0; string line; // numărăm numărul de linii din primul fișier while (getline(file1, line)) { count1++; } // numărăm numărul de linii din al doilea fișier...
Se citesc de la tastatură trei numere întregi n, a şi b şi un şir de n numere reale care se scriu într-un fişier text alfa.txt toate pe acelaşi rând. Să se afişeze câte dintre numerele din fişier se află în afara intervalului [a,b]. 11
Pentru a rezolva această problemă, putem citi valorile din fișierul alfa.txt și le putem compara cu valorile intervalului [a, b]. Vom folosi o variabilă count pentru a număra numerele care se află în afara intervalului și vom afișa acest număr la sfârșit. #include <iostream> #include <fstream> using namespace std; int main() { int n,...
Un fişier alfa.txt conține mai multe cuvinte, câte unul pe fiecare rând. Se citeşte de la tastatură un caracter c. Afişaţi numărul de înregistrări ale fişierului care conțin cuvinte care încep cu caracterul c. 12
#include <iostream> #include <fstream> #include <string> using namespace std; int main() { ifstream in(„alfa.txt”); char c; cout << „Introduceti un caracter: „; cin >> c; int count = 0; string word; while (in >> word) { if (word[0] == c) { count++; } }...
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. 13
#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 <<...
Se citesc de la tastatură mai multe triplete de numere întregi (a,b,c) care 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ă dacă ele reprezintă laturile unui triunghi şi se scrie pe un rând, în fişierul beta.txt, aria triunghiului, dacă ele reprezintă laturile unui triunghi, şi 0 dacă nu reprezintă laturile unui triunghi. Afişaţi apoi pe ecran, pe câte un rând, informații despre triunghiurile găsite: dimensiunile laturilor şi aria. 14
#include <iostream> #include <fstream> #include <cmath> using namespace std; int main() { ifstream in(„alfa.txt”); ofstream out(„beta.txt”); int a, b, c; double p, aria; while (in >> a >> b >> c) { if (a + b > c && a + c > b && b + c >...