Acasa atestat informatica rezolvari c++

SUBIECTE SI REZOLVARI C++ PENTRU EXAMENUL DE ATESTAT LA INFORMATICĂ

1.Scrieţi un program C/C++ care citeşte de la tastatura un număr natural n (2<n<21) si apoi n linii cu cate n numere întregi de cel mult 7 cifre ce formează un tablou bidimensional a. Sa se afişeze pe ecran diferenţa dintre suma elementelor de pe diagonala principala si suma elementelor de pe diagonala secundara a matricei a.

#include<iostream.h>
void main()

{int n,i,j;
long a[20][20],s1=0,s2=0,d;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}}
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
if(i==j)
s1=s1+a[i][j];};
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
if(i+j==n+1)
s2=s2+a[i][j];}
cout<<s1-s2;
}

3.Scrieţi programul C/C++ care citeşte de la tastatura un număr natural n (n<100) si un sir cu n numere întregi din intervalul [100 ;999] ; programul construieşte un sir de numere rezultat prin înlocuirea fiecărui număr din şirul citit cu numărul obţinut prin interschimbarea cifrei unitatilor cu cifra sutelor. Numerele din noul sir se vor afişa pe ecran separate printr-un singur spaţiu. De exemplu , pentru n=3 si şirul 123 , 904 , 500 , se afişează 321 , 409 , 5.

#include<iostream.h>
void main()
{int n,i,o,v[20],c;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"v["<<i<<"]=";cin>>v[i];}
for(i=1;i<=n;i++)
{o=0;
c=v[i]%10;
o=o*10+c;
v[i]=v[i]/10;
c=v[i]%10;
o=o*10+c;
v[i]=v[i]/10;
o=o*10+v[i];
v[i]=o;
cout<<v[i]<<endl;
}
}

4.Doua tablouri unidimensionale a si b , cu elementele a1 , a2 , … , an , respectiv b1 , b2 , … bn sunt in relaţia a<=b daca : a1<=b1 , a2<=b2 , … , an<=bn. Scrieţi program in limbajul C/C++ care citeşte doua tablouri unidimensionale a si b cu acelaşi număr de elemente de tip întreg si verifica daca a<=b sau b<=a afişând un mesaj adecvat.

#include<iostream.h>
void main()
{int a[10],i,n,j,k,aux,min;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin>>a[i];}
for(i=1;i<=n-1;i++)
{min=a[i];
k=i;
for(j=i+1;j<=n;j++)
if(a[j]<min)
{min=a[j];
k=j;}
aux=a[k];
a[k]=a[i];
a[i]=aux;}
for(i=1;i<=n;i++)
cout<<a[i]<<" ";}

8.Scrieţi un program in limbajul C/C++ care afişează toate numerele naturale formate din cifre identice , mai mari decât 10 si mai mici decât o valoare data n, n<=2.000.000. De exemplu pentru n=195 , se afişează : 11 , 22 , 33 , 44 , 55 , 66 , 77 , 88 , 99 , 111.

#include<iostream.h>
int n,i;
int identic(int n)
{int d,c;
c=n%10;
while (n>0)
{d=n%10;
if(d==c)
n=n/10;
else
return 0;}
if(n==0)
return 1;}
void main()
{cout<<"n=";cin>>n;
for (i=10;i<=n;i++)
{if(identic(i))
cout<<i<<endl;}}

10.Scrieţi un program C/C++ care citeşte de la tastatura trei numere naturale x, y si k, (1<x<y<2000000, k<1000) si afişează pe ecran k numere prime din intervalul [x, y]. Daca nu exista k numere prime în intervalul [x,y] se vor afişa toate numerele prime găsite iar pe linia următoare se va afişa mesajul “s-au găsit mai puţine numere prime: ” urmat de numărul acestora. De exemplu, pentru x=3, y=12 si k=5 se vor afişa pe ecran:
3 5 7 11
s-au găsit mai puţine numere prime:4

#include<iostream.h>
void main()
{int x,y,k,n,d,a,p;
cout<<"x=";cin>>x;
cout<<"y=";cin>>y;
cout<<"k=";cin>>k;
a=0;
n=x;
while ((n>=x)&&(n<=y)&&(a<k) )
{d=2;p=1;
while((d<=n/2)&&(p==1))
if(n%d==0)
p=0;
else
d++;
if(p)
{cout<<n<<endl;a++;}
n++;}
if(a<k)
cout<<"au fost gasite mai putine nr prime"<<a;}

12.Scrieţi un program C/C++ care citeşte din fişierul text BAC.TXT , cel mult 100 de numere naturale aflate pe o singura linie, formate din cel mult 9 cifre fiecare, separate prin spatii si dintre acestea le afişează pe ecran doar pe acelea care au proprietatea de a fi palindrom. Daca nu se găsesc numere palindrom, se va afişa pe ecran valoarea –1. Un număr are proprietatea de a fi palindrom daca citit de la dreapta la stânga sau de la stânga la dreapta are aceeaşi valoare. De exemplu 1221 este palindrom, in timp ce 1210 nu este palindrom.

Exemplu : daca din fişierul BAC.TXT se citesc numerele : 7341 , 8228 , 660 , 2 , 80 , 131 , atunci pe ecran se vor afişa : 828 , 2 , 131.

#include<iostream.h>
int palindrom(int n)
{int copie=n,oglindit,c;
oglindit=0;
{while(n!=0)
c=n%10;
oglindit=oglindit*10+c;
n=n/10;}
return (copie==oglindit);}
void main()
{int v[100],n,i,p;
p=0;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"v["<<i<<"]=";cin>>v[i];}
for(i=1;i<=n;i++)
if(palindrom(v[i]))
{cout<<v[i];
p=1;}
if(p==0)
cout<<"-1";}

14.Pentru orice număr natural nenul n definim n factorial (notat n!) ca fiind produsul tuturor numerelor naturale nenule mai mici sau egale cu n (n! = 1*2*3*…*n) De exemplu : 3!=1*2*3=6 5!=1*2*3*4*5=120 . Scrieţi un program C/C++ care determina numărul de cifre nule aflate pe ultimele poziţii consecutive ale valorii obţinute in urma evaluării lui n!, n fiind un număr natural de cel mult 4 cifre. De exemplu daca n=10, n!=3628800 rezultatul va fi 2 deoarece 3628800 are două zerouri la sfârşit.

#include<iostream.h>
void main()

{long int n,x=1,nr=0,c,p=1;
cout<<"n=";cin>>n;
for(int i=1;i<=n;i++)
p=p*i;
while(x==1)
{c=p%10;
if(c==0)
{nr=nr+1;
p=p/10;}
else
x=0;}
cout<<nr;}

15.Scrieţi un program C/C++ care citeşte din fişierul text DATE.IN cel mult 100 de numere naturale nenule aflate pe o singura linie, formate din cel mult 4 cifre fiecare, separate prin spatii si scrie in fişierul DATE.OUT numerele, in ordinea inversa fata de cea in care au fost citite, pe o singura linie separate prin spatii. De exemplu daca din fişierul DATE.IN se citesc numerele 93 207 15 1982 3762, atunci conţinutul fişierului DATE.OUT va fi 3762 1982 15 207 93.

#include<fstream.h>
void main()
{int n,i,v[100];
fstream f("date.in",ios::in);
fstream g("date.out",ios::out);
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
for(i=n;i>0;i--)
g<<v[i];
f.close();
g.close();}

17.Scrieţi un program C/C++ care citeşte de pe prima linie a fişierului text BAC.TXT trei numere naturale a, b, c formate din cel mult patru cifre fiecare, separate prin cate un spaţiu si afişează pe ecran cel mai mare divizor comun al acestora. De exemplu, daca din fişier se citesc numerele : 9 27 15, atunci se afişează 3.

#include<iostream.h>
int cmmdc (int x,int y)
{while (x!=y)
if(x>y)
else
y=y-x;
return x;}
void main()
{int a,b,c,d;
fstream("bac.txt";ios::in);
f>>a>>b>>c;
f.close;
d=cmmdc(a,b);
cout<<cmmdc(c,d);}

19.Scrieţi un program care verifica daca un număr natural k(1<k<100000) citit de la tastatura este prim. Programul va afişa pe ecran mesajul DA sau mesajul NU;

#include<iostream.h>
int prim(int n)
{int prim=1;
for(int d=2;d<=n/2;d++)
if(n%d==0)
prim=0;
if(prim)
return 1;
else
return 0;}
void main()
{int n;
cout<<"n=";cin>>n;
if(prim(n))
cout<<"da";
else
cout<<"nu";}

21.Se considera fişierul text date.in care conţine exact 19 numere distincte formate fiecare din maxim 2 cifre. Sa se afişeze in fişierul text date.out numărul care lipseşte din fişierul date.in.

#include<fstream.h>
void main()
{int v[100],n,i,j,p;
fstream f("date.in",ios::in);
fstream g("date.out",ios::out);
for(i=1;i<=19;i++)
f>>v[i];
f.close();
for(i=10;i<=99;i++)
{p=1;
for(j=1;j<=19;j++)
if(i==v[j])
p=0;
if(p)
g<<i;}
g.close();}

22.Se citeşte de la tastatura un număr natural nenul n (n<1000). Scrieţi un program C/C++ care construieşte fişierul text bac.txt care sa contina, pe prima linie, toţi divizorii lui n in ordine strict descrescătoare. Divizorii vor fi separaţi prin spaţiu. De exemplu, daca n=10 , atunci fişierul bac.txt va conţine : 10 , 5 , 2 , 1

#include<iostream.h>
#include<fstream.h>
void main()
{int d,n;
cout<<"n=";cin>>n;
fstream g("bac1.txt",ios::out);
for(d=n;d>=1;d--)
if(n%d==0)
g<<d<<" ";
g.close();}

dati click pentru pagina urmatoare partea a doua




Comments (158)
  • keap  - ajutatima plz
    avatar
    Elaborati algoritmul si programul pentru prelucrarea unui tablou patratic ca sa se obtina urmatoarele rezultate: 0-daca tabloul este simetric fata de diagonala principala: 1-daca tabloul este superior triunghiular (toate elementele de sub diagonala principala sunt nule);
    2-daca tabloul este inferior triunghiular ;3-daca tabloul este unitar ;4-in restul cazurilor....
  • Ioana  - va rog ajutatima
    avatar
    Scrieţi un program C/C++ care citeşte de la tastatură un cuvânt format din cel mult 20 de caractere, doar litere ale alfabetului englez. Programul determină transformarea cuvântului citit prin înlocuirea fiecărei litere mici a cuvântului cu litera mare corespunzătoare, restul literelor nemodificându-se, ca în exemplu. Programul afişează pe ecran cuvântul obţinut.

    Exemplu: pentru cuvântulbacalaureat se va afişa pe ecran: bAcAlAUrEat
  • dacsa
    avatar
    exemplul tau transforma vocalele mici in litera mare corespunzatoare
    problema este rezolvata aici http://informaticasite.ro/rezolvari-probleme/atestat/probleme-rezolvat e-atestat-informatica-2011.html
    la nr.12
  • Deniisze  - urgeent!
    avatar
    Pe prima linie a fişierului text DATE.TXT se află un număr natural nenul n (n≤1000), iar pe
    a doua linie un şir de n numere întregi nenule, depărţite prin câte un spaţiu, fiecare având
    cel mult 9 cifre.
    a) Scrieţi un program C/C++ care citeşte numerele din fişier şi ordonează crescător doar
    numerele pozitive din şir, fără a modifica poziţiile numerelor negative. Programul va afişa, pe
    ecran, pe o singură linie, şirul obţinut după ordonare, numerele fiind despărţite prin câte un
    spaţiu. În locul fiecărui număr negativ din şirul citit se va afişa valoarea 0. Realizaţi un
    program eficient din punct de vedere al spaţiului de memorie folosit.
    Exemplu: dacă fişierul DATE.TXT conţine:
    7
    32 -491 23 -328 213 51 -4
    pe ecran se va afişa:
    23 0 32 0 51 213 0
    b) Descrieţi succint, în limbaj natural, metoda utilizată, justificând eficienţa acesteia.
  • Deniisze  - Ajutati-ma va rog cu o porblema urgent!!
    avatar
    Subprogramul Nr are un singur parametru, k, prin intermediul căruia primeşte un număr
    natural de cel puţin 3 cifre şi cel mult 9 cifre, cu toate cifrele nenule. Subprogramul
    furnizează tot prin intermediul parametrului k, valoarea obţinută prin eliminarea primei cifre a
    numărului transmis la apel.
    Exemplu: dacă subprogramul primeşte prin intermediul parametrului k valoarea 12438,
    atunci în urma apelului subprogramului Nr, k va primi valoarea 2438.
    Scrieţi, în limbajul C/C++, definiţia completă a subprogramului Nr.
    Multumesc De Raspuns!
  • admin
    avatar
    http://informaticasite.ro/probleme-rezolvate-c++/subprograme/eliminare -prima-cifra-subprogram.html
  • oanaoana  - matrci
    avatar
    va rog frumos sa ma ajutati si pe mine la o problema de informatica

    1)scrieti un program c/c++ care citeste de la tastatura numerele naturale m si n, spoi construieste si afiseaza pe ecran un tablou bidimensional cu m linii si n coloane astfel incat prin parcurgerea acestuia linie cu linie se obtin in ordine descrescatoare toate numerele naturale de la 1 la m*n

  • tinnna  - ma poate ajuta cineva sa rezolv problema:
    avatar
    11351 in figura alaturata apare un patrat
    33203 continand cifre a.i. nr.de 5 cifre
    30323 corespunzatoare fiecarei linii
    14033 coloane, diagonale sun prime
    33311 folosind fisierul de intrare input.txt
    sa se scrie un program care sa construiasca astfel de patrate cu respectarea conditiior:
    *suma cifrelor celor 12 numere este aceeasi(11 pt exemplul considerat)
    *cifra din coltul stanga sus este data la intrare
    *liniile se citesc de la stanga la dreapta, coloanele de sus in jos

    VA MULTUMESC ANTICIPAT!
  • roxi  - pt darkangel
    avatar
    citeste n
    i=2
    nr=0
    cat timp (nr mai mic egal n)
    d=2
    cat timp ( d mai mic egal i/2)
    daca (i mod d =0)
    d=i/2 +1
    sfarsit_daca
    d=d+1
    sf_cat_timp
    i=i+1
    nr=nr + 1
    sfarsit_ cat_timp
    scrie i
  • DARKANGEL  - thank you
    avatar
    ScrieŃi un program care citeste de la tastatură două numere naturale p si n (1
  • darkangel  - ms anticipat
    avatar
    ScrieŃi un program care citeste de la tastatură două numere naturale p si n (1
  • darkangel
    avatar
    DefiniŃi un subprogram tprim, care primeste prin intermediul singurului său parametru, n, un
    număr natural nenul de cel mult trei cifre si returnează al n-lea termen din sirul strict crescător al
    numerelor prime.
  • darkangel  - help please
    avatar
    DescrieŃi în limbaj natural metoda de rezolvare si reprezentaŃi în pseudocod algoritmul prin
    care se citeste un număr natural n si se afisează al n-lea termen din sirul strict crescător al
    numerelor prime (2, 3, 5, 7, 11, 13, 17, 19, 23 etc). De exemplu, pentru n=8 se afisează 19.
  • Alex
    avatar
    Plzzz.....sa ma ajute cnv la problemele de mai sus....Cat de repede cu putinta.Ms anticimat!
  • Alex
    avatar
    1) Se citesc numerele nenule a si b, reprezentand numaratorul si numitorul unei fractii. Sa se afiseze fractia simplificata.

    2) Se citeste n, p, q. Cate numere din intervalul [1,n] se divid cu p? Dar cu q? Dar cu p si q?
  • eu  - de cata ori apare cifra c
    avatar
    http://informaticasite.ro/probleme-rezolvate-c++/algoritmi-elementari/ numarul-de-aparitii-a-unei-cifre-intr-un-numar.html
  • Alex  - VA rog .....Ajj
    avatar
    1) Se citeste un numar natual n si o cifra c. Sa se determine de cata ori apare cifra c in scrierea lui n.
    De exemplu, pentru n=1756553 si c=5, raspunsul va fi 3.

    2) Se citesc numere naturale pana la aparitia lui zero. Sa se determine cea mai mare cifra care apare in scrierea acelor numere.
    De exemplu, pentru numerele 543 235 150 51 0 raspunsul va fi 5.

    3) Se citesc numere naturale pana la aparitia lui zero. Sa se determine cea mai mare cifra care apare in scrierea acelor numere si de cate ori apare.
    De exemplu, pentru numerele 543 235 150 51 0 raspunsul va fi 5 4, pentru ca cea mai mare cifra este 5 si apare de 4 ori.

    4) Se citeste n – numar natural. Sa se afiseze toate numerele mai mici decat n care sunt palindrom.

    5) Se citesc doua numere naturale a si b. Sa se verifice daca cele doua numere au cifre comune.
    De exemplu, pentru a=29832 si b=17655, raspunsul este NU, iar pentru a=29832 si b=17685 raspunsul este DA.
Doar utilizatorii inregistrati pot scrie comentarii.!
teste online
Statistics
Membri : 436
Conţinut : 542
Link-uri web : 5
Număr afişări conţinut : 751426

Ultimele articole

Prev Next Page:

litere de A si M backtracking

Metoda Backtracking Sa se genereze toate sirurile de lungime n, formate numai din literele A si M, siruri care sa nu... Read more

17 Feb 2012 Hits:27 backtracking

probleme rezolvate atestat informatica c++ p2

SUBIECTE SI REZOLVARI C++ PENTRU EXAMENUL DE ATESTAT LA INFORMATICĂ 25.Se citeşte de la tastatura un număr natural nenul n care... Read more

07 Feb 2012 Hits:319 atestat

Varianta 30 bacalaureat informatica 2007

Varianta 30 bacalaureat informatica 2007Cerinte si rezolvari {pdf=pdf/bacalaureat2007/varianta_030.pdf|600|600} Rezolvari probleme 1) #include<fstream.h>ofstream g("bac.txt");int a[101][101],i,j,n;void fct(){ for(i=1;i<=n;i++) ... Read more

31 Ian 2012 Hits:59 bacalaureat 2007

Varianta 29 bacalaureat informatica 2007

Varianta 29 bacalaureat informatica 2007Cerinte si rezolvari {pdf=pdf/bacalaureat2007/varianta_029.pdf|600|600} Rezolvari probleme 1) #include<fstream.h>ofstream g("bac.txt");void main(){ int n; cin>>n; for(int i=1;i<=n;i++) g<<i*3<<" ";} 2) #include<iostream.h>long n;void f(){ cin>>n; int i=0,a[10]; while(n) { i++; a[i]=n%10; n/=10; } int x=a[1]; int y=a[2]; int ok=1; for(int j=3;j<=i;j++) { if(j%2==1) if(a[j]!=x) ok=0; if(j%2==0) if(a[j]!=y) ok=0; } if(ok) cout<<"DA"; else cout<<"NU";}void... Read more

31 Ian 2012 Hits:60 bacalaureat 2007

Varianta 28 bacalaureat informatica 2007

Varianta 28 bacalaureat informatica 2007Cerinte si rezolvari {pdf=pdf/bacalaureat2007/varianta_028.pdf|600|600} Rezolvari 1) #include<iostream.h>#include<math.h>long a,v[11],i,j,ok=1;void fct(){ int x=a%10; v[1]=x; int y=x; for(i=2;i<=10;i++) { y=y*x; v[i]=y%10; if(v[i]==v[1]) i=11; else ok++; }}void main(){ cin>>a; fct(); int n=2007%ok; cout<<v[n];} 2) #include<iostream.h>int a[101][101],i,j,n;void fct(){ for(j=1;j<=n;j++) a[1][j]=j; for(i=2;i<=n;i++) for(j=1;j<=n;j++) { if(a[i-1][j+1]==0) a[i][j]=a[i-1][n-j+1]; else a[i][j]=a[i-1][j+1]; }}void afis(){ for(i=1;i<=n;i++) { for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; }}void main(){ cin>>n; fct(); afis();} 3) #include<iostream.h>#include<math.h>long k;int panta(long... Read more

31 Ian 2012 Hits:38 bacalaureat 2007

Varianta 27 bacalaureat informatica 2007

Varianta 27 bacalaureat informatica 2007Cerinte si rezolvari {pdf=pdf/bacalaureat2007/varianta_027.pdf|600|600} Rezolvari 1) #include<iostream.h>int n,i;void main(){ cin>>n; for(i=1;i<=n;i++) cout<<i*10<<" ";} 2) #include<iostream.h>#include<string.h>char a[101],b[101];int n;int aparitii(char s[101],char x){ int ok=0; for(int i=0;i<strlen(s);i++) if(s[i]==x) ok++; return ok;}void main(){ cin>>a; cin>>b; int ok=1; for(int... Read more

31 Ian 2012 Hits:33 bacalaureat 2007

Varianta 26 bacalaureat informatica 2007

Varianta 26 bacalaureat informatica 2007Cerinte si rezolvari {pdf=pdf/bacalaureat2007/varianta_026.pdf|600|600} Rezolvari 1) #include<iostream.h>#include<math.h>void main(){ float a; int x,y; cin>>a; cout<<floor(a)<<" "; if(ceil(a)==a) cout<<ceil(a)+1; else cout<<ceil(a);} 2) #include<iostream.h>#include<math.h>int A[11][11];void citire(){ for(int i=1;i<=10;i++) for(int j=1;j<=10;j++) cin>>A[i][j];}int maxim(int A[11][11],int i1,int i2){ int max=0; for(int... Read more

31 Ian 2012 Hits:32 bacalaureat 2007

Varianta 25 bacalaureat informatica 2007

Varianta 25 bacalaureat informatica 2007Cerinte si rezolvari {pdf=pdf/bacalaureat2007/varianta_025.pdf|600|600} Rezolvari 1) #include<fstream.h>ifstream f("bac.txt");#include<math.h>int i,n;float min;struct vect { float x,y;};vect v[100];void citire(){ f>>n; for(i=1;i<=n;i++) f>>v[i].x>>v[i].y; }void f1(){ min=sqrt(pow(v[1].x,2)+pow(v[1].y,2)); for(i=2;i<=n;i++) if(sqrt(pow(v[i].x,2)+pow(v[i].y,2)) < min) { min=sqrt(pow(v[i].x,2)+pow(v[i].y,2)); }}void f2(){ for(i=1;i<=n;i++) { float d... Read more

31 Ian 2012 Hits:33 bacalaureat 2007