Bacalaureat 2013-Sesiunea august-septembrie

Subiecte bac 2013-Sesiunea de toamna

Rezolvare bac 2013-Sesiunea de toamna

Subiectul I

1. b

2.

a) 2

b) 7776

c)

citeste a,b

(numere naturale nenule, a ≤b)

nr<-0

i<-a

-daca i<=b

| -repeta

| | x<-i

| | c<-x%10

| | cat timp x<>0 si x%10=c executa

| | x<-[x/10]

| |

| | daca x=0 atunci

| | nr<nr+1

| |

| | i<-i+1

| |

| | pana cand i>b

| |_

|_

scrie nr

d)

#include <iostream>

using namespace std;

int main()

{

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

unsigned int a,b,i,c,x,nr;

cout<<"a=";cin>>a;

cout<<"b=";cin>>b;

nr=0;

for(i=a;i<=b;i++)

{

x=i;

c=x%10;

while(x!=0 && x%10==c)

x=x/10;

if(x==0)

nr=nr+1;

}

cout<<nr;

return 0;

}

Subiectul II

1. d

2. c

3. 6, 8

4. (p.x>d.p.A.x && p.y<d.p.A.y && p.x<d.p.B.x && p.y>d.p.B.y )

5.

#include <iostream>

#include <string.h>

using namespace std;

int main()

{

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

char a[101];

int i,s=0,j;

cout<<"a=";cin.get(a,100);

cin.get();

for(i=0;i<strlen(a);i++)

{

if(a[i]==' ')

s++;

else

s=0;

while(s>1)

{ i--;

s--;

for(j=i;j<strlen(a);j++)

a[j]=a[j+1];

}

}

cout<<a;

return 0;

}

Subiectul III

1. b

2. CDEBA, CEDAB

3.

#include <iostream>

using namespace std;

int sub( int n, int v[49], int k)

{

int i,s=0,t=0;

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

if(v[i]%2!=0 && t<k)

{ s=s+v[i];

t++;

}

if(t==k)

return s;

else

return -1;

}

4.

#include <iostream>

#include <fstream>

#include <cmath>

using namespace std;

int main()

{

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

ifstream f("bac.txt");

long x,a,t;

int p=0,i=0,aux=0,n;

f>>x;

cout<<"x="<<x<<endl;

while(x!=0)

{

x=x/10;

aux++;

}

n=pow(10,aux);

while(f>>a)

{

if(a%n==x ||a==x)

{

t=a;

p=1;

}

else

{cout<<i<<" "<<a<<" "<<a%n<<endl;

i++;

}

}

if(p==1)

cout<<t;

else

cout<<"Nu exista ";

f.close();

return 0;

}

Am citit primul numar din fisier. Cat timp exista numere in fisier, am continuat citirea, folosind variabila "a". Valoarea variabilei "a" am pus-o in variabila "v". Folosind variabila "aux" am numarat numarul de cifre ale variabile "a". Daca valoarea variabilei "v" este egala cu valoarea variabilei "x" sau daca valoarea variabilei "x" este egala cu restul impartirii lui "v" la 10 ridicat la puterea (aux-1) atunci valoarea variabilei "t" ia valoarea variabilei "v" si variabila "p" care contorizeaza aparitia acestui fenomen ia valoarea 1.

Daca valoarea variabilei "p" este 1, atunci afisam variabila "t", iar in caz contrar, afisam mesajul "Nu exista.".

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