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).