Bacalaureat 2015-Sesiunea iunie-iulie
Subiecte bac 2015-Sesiunea de vara
Rezolvare bac 2015-Sesiunea de vara
Subiectul I
1. d
2.
a) 2
b) cel mai mic n: 125
cel mai mare n: 624
c) citeste n,k
(numere naturale, k>1)
pm<-0
- pentru i<-1,n executa
| x<-i
| p<-0
| -cat timp x%k=0 executa
| | x<-[x/k]
| | p<-p+1
| |_
|
| - daca p>pm atunci
| | pm<-p
| |_
|_
scrie pm
d)
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
int n,k,pm,i,p,x;
cout<<"n=";cin>>n;
cout<<"k=";cin>>k;
pm=0;
i=1;
while(i<=n)
{
x=i;
p=0;
while(x%k==0)
{
x=x/k;
p=p+1;
}
if(p>pm)
pm=p;
i=i+1;
}
cout<<pm;
return 0;
}
Subiectul II
1. a
2. b
3. 2, 7, 8
4.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
char a[21],b[21];
int i;
cout<<"b=";cin.get(b,20);
cin.get();
for(i=0;i<strlen(b)/2;i++)
a[i]=b[i];
for(i=0;i<strlen(b)/2;i++)
cout<<a[i];
return 0;
}
5.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
int n,i,j;
cout<<"n=";cin>>n;
int a[n][n];
for(i=0;i<n;i++)
cin>>a[0][i];
for(i=1;i<n;i++)
for(j=0;j<n;j++)
if(j==0)
a[i][j]=a[i-1][n-1];
else
a[i][j]=a[i-1][j-1];
cout<<endl;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
Subiectul III
1. b
2. dcba
3.
#include <iostream>
using namespace std;
int Fibo(int n)
{
int f1=1,f2=1,f,p=2;
if(n==2 || n==1)
return 1;
else
{
while(p<n)
{
f=f2+f1;
f1=f2;
f2=f;
if(f%2!=0)
p++;
}
return f;
}
}
4.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
ifstream f("bac.txt");
int i,a[101]={0},n,p=0,x=0;
while(f>>n)
a[n]++;
while(a[x]==0)
x++;
for(i=x;i<=100;i++)
{if(a[i]!=0)
if(i-x>=2)
{
cout<<x<<" "<<i;
cout<<endl;
x=i;
p=1;
}
else
x=i;
}
if(p==0)
cout<<"nu exista";
f.close();
return 0;
}
Memorez intr-un tablou de aparitii cu 101 elemente aparitia fiecariu element din intervalul [0;100] din secventa din fisier. In variabila "x" memorez prima pozitie cu valoare nenula din tabloul de aparitii. Cu variabila "i" pornind de la "x" la 100, cautam a doua pozitie cu valoare nenula. Daca "i-x ≥2" afisam perechea, altfel reinitializam pe x. La prima pereche solicitata, atribuim lui "p" valoarea 1. Daca la sfarsit "p" nu este 1, afisam "nu exista".
Algoritmul este eficient deoarece: este liniar, parcurge o singura data fisieruil, este de de tipul O(n).