Bacalaureat 2014-Sesiunea iunie-iulie

Subiecte bac 2014-Sesiunea de vara

Rezolvare bac 2014-Sesiunea de vara

Subiectul I

1. c

2.

a) 2 7 1

b) 25

50

c)

citeste n

(numar natural nenul)

d<-2

-repeta

| p<-0

| -cat timp n%d=0 executa

| | p<-p+1

| | n<-[n/d]

| |_

|

| -daca p%2=0 si p<>0 atunci

| | scrie 'd '

| |_

|

| d<-d+1

| pana cand d>n

|_

scrie n

d)

#include <iostream>

using namespace std;

int main()

{

cout << "Hello world!" << endl;

unsigned int n,d,p;

cout<<"n=";cin>>n;

d=2;

while(d<=n)

{

p=0;

while(n%d==0)

{

p=p+1;

n=n/d;

}

if(p%2==0&&p!=0)

cout<<d<<" ";

d=d+1;

}

cout<<n;

return 0;

}

Subiectul II

1. c

2. d

3. if(start.minut<stop.minut)

cout<<"acceptat";

else

if(start.minut==stop.minut)

if(start.secunda<stop.secunda)

cout<<"acceptat";

else

cout<<"respins";

else

if(start.minut>stop.minut)

cout<<"respins";

4. 7 9

5.

#include <iostream>

using namespace std;

int main()

{

cout << "Hello world!" << endl;

int m,n,i,j;

cout<<"m=";cin>>m;

cout<<"n=";cin>>n;

int a[m][n];

for(i=0;i<m;i++)

for(j=0;j<n;j++)

cin>>a[i][j];

for(j=0;j<n;j++)

a[m-2][j]=a[m-1][j];

for(i=0;i<m;i++)

a[i][n-2]=a[i][n-1];

cout<<endl;

for(i=0;i<m-1;i++)

{

for(j=0;j<n-1;j++)

cout<<a[i][j]<<" ";

cout<<endl;

}

return 0;

}

Subiectul III

1. b

2. rosu roz violet albastru

rosu albastru galben roz

3.

#include <iostream>

using namespace std;

void interval(int n,int &a, int &b)

{

int i,fact=1;

for(i=1;i<=n+1;i++)

fact=fact*i;

b=fact-1;

fact=1;

for(i=1;i<=n-1;i++)

fact=fact*i;

a=fact+1;

}

4.

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

cout << "Hello world!" << endl;

ifstream f("bac.txt");

int x,a[100],aux,i,max;

for(i=1;i<100;i++)

a[i]=0;

while(f>>x)

{

while(x)

{

aux=x%100;

a[aux]=a[aux]+1;

x=x/10;

}

}

max=a[10];

for(i=11;i<100;i++)

if(max<a[i])

max=a[i];

for(i=10;i<100;i++)

if(max==a[i])

cout<<i<<" ";

f.close();

return 0;

}

Am declarat tabloul "a[100]" in care am numarat pe fiecare pozitie numarul de aparitii a numarul de doua cifre corespunzator pozitiei care se regaseste in numerele din fisier.(ex: pe pozitia 21 se regaseste numarul de aparitii a lui 21 in numerele din fisier, adica de cate ori 21 a fost subnumar). Daca pozitia i nu este nula, atunci afisam acea pozitie.

Algoritmul este eficient deoarece: este liniar, parcurge o singura data fisierul, este de tipul O(n).