Bacalaureat 2014-Sesiunea august-septembrie
Subiecte bac 2014-Sesiunea de toamna
Rezolvare bac 2014-Sesiunea de toamna
Subiectul I
1. a
2.
a) 3
b) 4 6 7 0
c)
n<-0
-cat timp x<>0 executa
| citeste x
| (numar natural)
| a<-0
| b<-1
| -repeta
| | c<a+b
| | a<-b
| | b<-c
| | pana cand c ≥x
| |_
|
| - daca x=c atunci
| | n<n+1
| |_
|_
scrie n
d)
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
int n,a,b,c,x;
n=0;
do
{
cout<<"x=";cin>>x;
a=0;
b=1;
do
{
c=a+b;
a=b;
b=c;
}while(c<x);
if(c==x)
n=n+1;
}while(x!=0);
cout<<n;
return 0;
}
Subiectul II
1. b
2. c
3 4-1-5-2-6
4. 11BAAARET
5.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
int m,n,i,j,t=2;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
int a[m][n];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
a[i][j]=t;
t=t+2;
if(t%5==0)
t=t+2;
}
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
Subiectul III
1. c
2. 5 25
3.
#include <iostream>
using namespace std;
void triplete(int n)
{
int x,y,z;
for(x=0;x<=n;x++)
for(y=x+1;y<=n;y++)
for(z=y+1;z<=n;z++)
if((x*y+y*z)==n)
cout<<"("<<x<<","<<y<<","<<z<<")"<<endl;
}
4.
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
ifstream f("bac.txt");
long n,a[10],x,t=0,s=0;
int nr=0,i,v=0,unic=0;
for(i=0;i<=10;i++)
a[i]=0;
f>>n;
while(f>>x)
{ t=x;
nr=0;
while(t)
{
t=t/10;
nr++;
}
a[nr]++;
v++;
}
if(v<n)
cout<<"Nu exista";
else
{for(i=1;i<=10;i++)
if(s<n)
s=s+a[i];
else
if(unic==0)
{cout<<pow(10,i-2)<<" ";
unic=1;
}
}
f.close();
return 0;
}
Am citit primul numar din fisier cu ajutorul variabilei "n". Am declarat un tablou "a" cu maxim 10 elemente. Fiecare pozitie a tabloului memoreaza numarul de numere cu "i" cifre (i=1, i=2,..i=10). Am numarat numarul de cifre al fiecarui element din fisier si numarul total de numere din fisier. Daca numarul total de numere din fisier este mai mic ca "n" afisez mesajul "Nu exista".
Am calculat suma elementelor de pe pozitiile tabloului "a". Cand aceasta suma a depasit valoarea lui "n" am afisat numarul cerut cu ajutorul functiei "pow.
Algoritmul este eficient deoarece: este liniar, parcurge o singura data fisierul, este de tipul O(n).