0% au considerat acest document util (0 voturi)
22 vizualizări5 pagini

Tema Vacanta

Documentul conține o serie de probleme de programare în C++, fiecare cu un algoritm specific. Problemele includ verificarea numerelor prietene, determinarea numerelor perfecte, numărarea pătratelor perfecte dintr-un fișier, numărarea valorilor pare dintr-o matrice, frecvența cifrelor dintr-un număr mare, identificarea elementelor unice dintr-un șir și verificarea sumelor coloanelor dintr-o matrice. Fiecare problemă este însoțită de cod sursă relevant pentru implementare.

Încărcat de

Stanciu Bogdan
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
22 vizualizări5 pagini

Tema Vacanta

Documentul conține o serie de probleme de programare în C++, fiecare cu un algoritm specific. Problemele includ verificarea numerelor prietene, determinarea numerelor perfecte, numărarea pătratelor perfecte dintr-un fișier, numărarea valorilor pare dintr-o matrice, frecvența cifrelor dintr-un număr mare, identificarea elementelor unice dintr-un șir și verificarea sumelor coloanelor dintr-o matrice. Fiecare problemă este însoțită de cod sursă relevant pentru implementare.

Încărcat de

Stanciu Bogdan
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

STANCIU CLAUDIU BOGDAN

XI B
TEMA VACANTA

Probleme

1. Două numere sunt prietene dacă suma divizorilor proprii ai unui


număr este egală cu celălalt număr. Citite două numere întregi a și b
de la tastatură, să se scrie algoritmul care verifică dacă ele sunt
prietene, afișându-se mesaj corespunzător.

#include <iostream>

using namespace std;

int main()

int a, b, aux, s=0;

cin>>a>>b;

if (a<b){

aux=a;

a=b;

b=aux;

for (int i=2; i<=a/2; i++)

if (a%i==0)s=s+i;

if (s==b)cout<<"DA";

else cout<<"NU";

return 0;

2. Să se citească un număr întreg de la tastatură și să se stabilească


dacă acesta este perfect sau nu. (un număr este perfect dacă e egal
cu suma divizorilor săi mai puțin el însuși de ex.6=1+2+3)

#include <iostream>

using namespace std;

int main()

int n, s=1;
cin>>n;

for (int i=2; i<=n/2; i++)

if (n%i==0)s=s+i;

if (s==n)cout<<"da";

else cout<<"nu";

return 0;

3. Se dă un fişier text cu numere naturale mai mici sau egale cu 10 000


000, separate între ele prin câte un spaţiu. Să se afişeze pe ecran
numărul de pătrate perfecte care se găsesc în fişier.

#include <iostream>

#include <fstream>

using namespace std;


ifstream fin("date.in");
int main()
{
int n, c=0, k;
while(fin>>n)
for (k=1; k<=n/2; k++)
if(k*k==n)c++;
cout<<c;

return 0;
}
4. In fisierul UNU.TXT se gaseste pe prima linie un numar natural nenul
n&lt;=10 reprezentand dimensiunea unei matrici patratice. Pe
urmatoarele n linii se gasesc cate n numere naturale separate prin
spatiu, reprezentand valorile elementelor din matrice. Sa se
determine cate valori pare sunt. Rezultatul se va scrie in fisierul
DOI.TXT

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin('UNU.TXT');
ofstream fout("DOI.TXT");
int main()
{
int n, a[100][100], i, j, c=0;
fin>>n;
for (i=1; i<=n; i++)
for (j=1; k<=n; j++)
{
fin>>a[i][j];
if (a[i][j]%2==0)c++;
}
fout<<c;
return 0;
}

5. In fisierul IN.TXT se gaseste un numar natural foarte mare (maxim


300 de cifre) scris pe prima linie din fisier, cifrele fiind separate prin
cate un spatiu. Sa se scrie in fisierul OUT.TXT cifrele care apar in
scrierea numarului impreuna cu frecventa lor de aparitie. Pe fiecare
linie din fisier se vor scrie doua valori separate prin spatiu : cifra si
de cate ori apare ea in numar. Cifreele vor fi afisate
in ordine crescatoare..

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("IN.TXT");
ofstream fout("OUT.TXT");
int v[9];
int main()
{
int n, i;
while (fin>>n)
v[n]++;
for (i=0; i<=9; i++)
if (v[i]!=0) fout<<i<<" "<<v[i]<<endl;
return 0;
}
6. Fiind date două şiruri de numere întregi cu câte m (m&lt;=100),
respectiv n elemente (n&lt;=100), să se afişeze elementele primului
şir care nu se găsesc şi în cel de-al doilea şir, precum şi numărul
acestora. Rezultatele se vor scrie in fisirul OUT.TXT, cate un numar
pe o linie.

#include <iostream>
#include <fstream>
using namespace std;
ifstream fout("OUT.TXT");
int main()
{
int v[100], u[100], m, n, i, j, c=0;
cin>>n>>m;
for (i=1; i<=n; i++)
cin>>v[i];
for (j=1; j<=m; j++)
cin>>u[j];
for (i=1; i<=n; i++)
{
int ok=1;
for (j=1; j<=m; j++)
if (v[i]==u[j])ok=0;
if (ok==1){fout<<v[i]<<" ";
c++;
}
}
fout<<c;
return 0;
}
7. In fisierul UNU.TXT se gaseste pe prima linie un numar natural
nenul n&lt;=10 reprezentand dimensiunea unei matrici patratice. Pe
urmatoarele n linii se gasesc cate n numere intregi separate prin
spatiu, reprezentand valorile elementelor din matrice. Sa se verifice
daca toate coloanele din matrice au suma elementelor strict
pozitiva. Rezultatul se va scrie in fisierul DOI.TXT sub forma DA sau
NU.

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("UNU.TXT");
ofstream fout ("DOI.TXT");
int main()
{
int a[100][100],i, j ,n, s, ok=1;
fin>>n;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
fin>>a[i][j];
for (j=1; j<=n; j++)
{
s=0;
for (i=1; i<=n; i++)
s=s+a[i][j];
if (s<0)ok=0;
}
if (ok==1)cout<<"DA";
else cout<<"NU";
return 0;
}

S-ar putea să vă placă și