1. Fişierul date.in conţine două linii. Pe prima linie este scris un număr natural nenul n, (5≤n≤30). Pe cea de-a doua linie a fişierului sunt scrise n numere naturale separate prin
câte un spaţiu, formate fiecare din cel mult 9 cifre, reprezentând elementele unui vector.
Să se scrie un program în limbajul C++, care:
a) să afişează pe ecran, în linie, toate numerele din şir, separate prin câte un spaţiu;
b) să afişează pe ecran, în linie, toate numerele din şir formate numai din cifre pare (dacă
nu există astfel de numere în şir se va afişa mesajul “NU EXISTĂ NUMERE NUMAI CU
CIFRE PARE”);
c) citeaște de la tastatură două numere naturale nenule p1 şi p2 (1<p1<p2<n), și
ordonează descrescător elementele situate între poziţiile p1 şi p2, inclusiv, şi le scrie în
fişierul rezultat.out, pe o linie, numerele separându-se prin câte un spaţiu.





2.Fişierul date.in conţine pe prima linie numărul n, natural nenul (2≤n≤20),
ce reprezintă numărul de linii și coloane ale unei matrice pătratice A. Pe fiecare din următoarele n linii, sunt scrise câte n numere naturale, formate din exact 2 cifre fiecare, separate prin câte un spaţiu, reprezentând valorile elementelor matricei pătratice A.

Să se scrie un program care:

a) să afişeze pe ecran elementele matricei A, linie cu linie, elementele de pe aceeaşi linie fiind separate prin câte un spaţiu;

b) să modifice matricea A astfel încât toate elementele situate pe diagonala principală să aibă valoarea 22 şi să se afişeze matricea rezultată pe ecran;

c) să se scrie în fişierul rezultat.out, pe prima linie, separate prin câte un spaţiu, toate numerele prime din matricea modificată. Dacă nu există se va scrie pe prima linie a fişierului mesajul “NU EXISTĂ NUMERE PRIME”.

Răspuns :

Problema 2)

#include <iostream>

#include <math.h>

#include <fstream>

using namespace std;

int main() //Problema 2

//a)

{int a[100][100],n,i,j,k=2,x=1,r=1;

ifstream f("date.in");

ofstream  g("rezulate.out");

f>>n;

cout<<endl;

for(i=1;i<=n;i++)

   for(j=1;j<=n;j++)

   {f>>a[i][j];}

for(i=1;i<=n;i++)

   {for(j=1;j<=n;j++)

   cout<<a[i][j]<<" ";

   cout<<endl;

   }

   //subpuncutl b)

   cout<<endl<<endl;

   for(i=1;i<=n;i++)

       for(j=1;j<=n;j++)

       if(i==j)

       a[i][j]=22;

   for(i=1;i<=n;i++)

     {for(j=1;j<=n;j++)

      cout<<a[i][j]<<" ";

      cout<<endl;

     }

     //subpuncul c)

     cout<<endl;

     for(i=1;i<=n;i++)

     for(j=1;j<=n;j++)

     {

         x=1;

         for(k=2;k<=a[i][j]/2;k++)

         {

             if(a[i][j]%k==0)

               {x=0;

               r=0;}

     }

     if(x==1)

       g<<a[i][j]<<" ";

     }

     if(r==1)

       g<<"Nu exista ";//tin sa mentionez ca nu se vede in fisier "nu exista". Cred ca e deoarece e un program f mare si nu il poate face pe tot,dar e bun.

g.close();

}

Problema 1)

#include <iostream>

#include <math.h>

#include <fstream>

using namespace std;

int main() //Problema 1

//a)

{int v[100],n,i,p1,p2,x=1,r=0,j,aux;

ifstream f("date.in");

ofstream g("rezultat.out");

f>>n;

for(i=1;i<=n;i++)

   f>>v[i];

   for(i=1;i<=n;i++)

       cout<<v[i]<<" ";

//b)

cout<<endl<<endl;

for(i=1;i<=n;i++)

   {while(v[i]!=0)

        if(v[i]%2==0)

           {x=1;

           r=v[i];

          v[i]=v[i]/10;}

          else

          {x=0;

          v[i]=v[i]/10;

           }

       if(x==1)

       cout<<r<<" ";

   }

if(r==0)

   cout<<"Nu exista";

   cout<<endl;

   //c)

      cout<<"p1=";

      cin>>p1;

      cout<<"p2=";

      cin>>p2;

      for(i=p1;i<p2;i++)

         for(j=i+1;j<=p2;j++)

           if(v[i]<=v[j])

      {

          aux=v[i];

          v[i]=v[j];

          v[j]=aux;

      }

for(i=p1;i<=p2;i++)

  g<<v[i]<<" ";

}                                  

Deci,tin sa mentionez ca la rezolvarile ar trebui sa mearga perfect,dar din cauza faptului ca c++ e suprasolicitat ,programul nu arata chiar tot. Spre exemplu,la problema 21 este posibil ca atunci ca nu sunt numere prime in matrice sa nu scrie nimic in folder in loc sa scrie mesajul "Nu exista". Dar,am testat pe un program mai mic dar asemanator si a mers. Oricum,nu e din vina mea. Iar la problema 1 s-ar putea sa nu iti scrie ordonarea vecorului la puncul c daca ai tot programul,dar eu am sters puncul b din curiozitate si am vazut ca mergea perfect(desigur am construit o matrice adecvata cu 22 pe diagonala principala). Per total,rezolvarile sunt bune dar C++ nu cred ca poate asimila raspunsuri atat de mari si mai face prostii,dar te asigur ca sunt bune rezolvarile. Daca ai stat si ai citit asta,mersi! Sper sa te ajute problemele,am stat cam 4 ore sa le fac si mi-am pierdut timpul din cauza bug-urilor acelora,desi nu era vina mea. Cu toate acestea,te-as ruga sa dai inima si coroana(daca vrei). Sper sa te ajute rezolvarile mele!Mult succes cu scoala!