Bacalaureat 2012-Sesiunea iunie-iulie
Subiecte bac 2012-Sesiunea de vara
Rezolvare bac 2012-Sesiunea de vara
Subietul I
1. c
2.
a) 46402
b) 1040, 1041, 1050, 1051, 1140, 1141, 1150, 1151
c)
citeste n (numar natural)
m<-0
p<-1
- repeta
| -daca n%2<>0 atunci
| | n<-n-1
| |_
|
| m<-m+(n%10)*p
| n<-[n/10]
| p<-p*10
| pana cand n<=0
|_
scrie m
d)
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
unsigned int m,n,p;
cout<<"n=";cin>>n;
m=0;
p=1;
while(n>0)
{
if(n%2!=0)
n=n-1;
m=m+(n%10)*p;
n=n/10;
p=p*10;
}
cout<<m;
return 0;
}
Subiectul II
1. b
2. b
3. cout<<(s.A.x-s.B.x)*(s.A.x-s.B.x) + (s.A.y-s.B.y)*(s.A.y-s.B.y);
4.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
int a[5][5],i,j;
for(i=1;i<=5;i++)
for(j=1;j<=5;j++)
{if(i+j<5)
a[i][j]=i+j;
else
a[i][j]=i+j-5;
if(i==5&&j==5)
a[i][j]=0;
}
for(i=1;i<=5;i++)
{for(j=1;j<=5;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
5.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
char a[31],b[31],p[31],s[31],aux1[31];
int na,nb,q=1,w=1,aux5,i,j=0;
cout<<"Introduceti primul cuvant: ";cin.get(a,30);
cin.get();
cout<<"Introduceti al doilea cuvant: ";cin.get(b,30);
na=strlen(a);
nb=strlen(b);
if(na>nb)
{
strcpy(aux1,a);
strcpy(a,b);
strcpy(b,aux1);
aux5=na;
na=nb;
nb=aux5;
}
for(i=0;i<na;i++)
if(a[i]!=b[i])
q=0;
if(q==1)
strcpy(p,a);
for(i=nb-na;i<nb;i++)
{if(b[i]!=a[j])
w=0;
j++;
}
if(w==1)
strcpy(s,a);
if(q==1&&w==1)
{if(strcmp(p,s)==0)
cout<<s;
}
else
cout<<"Nu exista ";
return 0;
}
Subiectul III
1. c
2. 94*2*10
3.
#include <iostream>
using namespace std;
void dublu(int &n, int a[50])
{
int i,j;
for(i=0;i<n;i++)
{
if (a[i]>0)
{
n++;
for(j=n-1;j>i+1;j--)
a[j]=a[j-1];
a[i+1]=a[i];
i++;
}
}
}
4.
#include <iostream>
#include <fstream>
using namespace std;
int cifre( int n,int k)
{
int aux,a[10],i=0,t=0,p=1;
aux=n;
while(aux)
{
a[i]=aux%10;
aux=aux/10;
i++;
t++;
}
for(i=0;i<t-1;i++)
if(!((a[i]-a[i+1])==k))
p=0;
return p;
}
int main()
{
cout << "Hello world!" << endl;
ofstream g("BAC.TXT");
unsigned int x;
long i;
do
{
cout<<"Introduceti o cifra intre 1 si 8: ";cin>>x;
}while(x<1 || x>8);
for(i=10;i<=123456789;i++)
if(cifre(i,x))
g<<i<<endl;
return 0;
}
Subprogramul "cifre" verifica conditia ceruta. Daca conditia este indeplinita, atunci numarul va fi scris in fisier, urmat de instructiunea de sfarsit de rand, "endl". Programul este eficient deoarece: este liniar, nu foloseste un tablou, este de tipul O(n).