Sunteți pe pagina 1din 2

7 Se citeste de la tastatura un sir de 10 numere întregi mai mici decât 100.

a. Sa se creeze fisierul text date.in care sa contina patru linii. Fiecare linie afisata contine elementele unei linii
din matrice, separate prin spatii;
b. Sa se scrie un subprogram care sa returneze elementul maxim de pe diagonala principala a matricei din
fisierul date.in;
c. Sa se scrie un subprogram care sa determine numarul elementelor de tip palindrom continute de fisierul
date.in (palindrom este un numar de cel putin doua cifre care citit de la dreapta la stânga este identic cu
numarul citit de la stânga la dreapta);
d. Scrieti în fisierul text date.out elementele de pe linia a doua din matricea de mai sus, ordonate crescator.

Exemplu:
Date de intrare: k=4
13, 2, 3, 66, 55, 4, 3, 22, 2, 3, 4, 5, 1, 2, 1, 17,

Date de iesire :
a) Fisierul text date.in contine matricea:
13 2 3 66
55 4 3 22
2345
1 2 1 17
Elementul maxim de pe diagonala principala a matricei din fisierul date.in este:17
c) Exista 3 elemente de tip palindrom.
d) Fisierul date.out contine pe o linie: 3 4 22 55
Rezolvare:
In programul principal se citesc datele de la tastatura si se depun in fisierul date.in, sub forma unui tablou
bidimensional ;
In subprogramul palindrom se verifica daca exista elemente palindrom in matrice si in caz afirmativ cate
sunt ; numarul elementelor palindrom se transmite programului principal si se afiseaza ;
In subprogramul maxim se cauta elementul maxim al tabloului situat ,pe diagonala principala ,si se transmite
programului principal unde se afiseaza ;
In programul principal se ordoneaza elementele de pe linia a doua a tabloului si noul tablou se depune in
fisierul date.out.

Varianta C
#include<iostream>
#include <fstream>
using namespace std;

fstream f("dateIn.txt",ios::out);
fstream h("dateOut.txt",ios::out);
int a[50][50],i,j,k,elem;
//----------------------------------
int palindrom(int a[50][50],int k)
{
int i,j,nr,c=0,p;
for(i=1;i<=k;i++)
for (j=1;j<=k;j++) {
nr=0;p=0;
if (a[i][j]>9)
{
nr=a[i][j];
while (nr!=0)
{
p=p*10+nr%10;
nr=nr/10;}
}
if (p==a[i][j]) c++;
}
return c;
}
//-----------------------------------------
int maxim(int a[50][50],int k)
{
int max=a[1][1],i;

for(i=1;i<=k;i++)
if(a[i][i]>max)
max=a[i][i];
return max;
}
//-----------------------------------------
int main()
{cout<<" dati dimensiunile matricii ";cin >>k;
// a)
//----se introduce elementele matrici----------
cout<<"Introdu elementele matricii "<<endl;
for (i=1;i<=k;i++)
for(j=1;j<=k;j++)
{cout<<"a["<<i<<","<<j<<"]= "; cin>>a[i][j];}
//-------se scrie elementele in fisier----------
for (i=1;i<=k;i++)
{
for(j=1;j<=k;j++)
f<<a[i][j]<<' ';
f<<endl;
}
//------------------------------------------------
cout<<" Elementul maxim pe diagonala principala "<<maxim(a,k);
// c)
cout<<endl<<"Exista "<<palindrom(a,k)<<" elemente de tip palindrom";
// d)
for(i=1;i<=k;i++)
for (j=i+1;j<=k;j++)
if (a[2][i]>a[2][j]) {
elem=a[2][i]; a[2][i]=a[2][j]; a[2][j]=elem;
}
for (i=1;i<=k;i++)
h<<a[2][i]<<" ";
h<<endl;
return 0;
}
//=============================================================

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