Professional Documents
Culture Documents
Bac Info Test 3
Bac Info Test 3
Proba E. d)
Informatică
Limbajul C/C++
Testul 3
Subiectul I
1. d
2. b
3. b
4. c
5. a
Subiectul al II-lea
1. a. 1 275
b. 57, 75
c. int main( )
{ int n, c1, c2, s;
cout<< “n=”;
cin>>n;
c1=n%10;
n=n/10;
c2=n%10;
if ( c1==c2)
s=0;
else
if ( c1>c2)
s=1;
else
s=-1;
do{ c1=n%10;
n=n/10;
c2=n%10;
}while ( ( c1-c2)*s>0);
cout<<s<< ‘ ‘ << n;
return 0;
}
d. citeste n
c1←n%10
n←n/10
c2←n%10
daca c1=c2 atunci s←0
altfel
daca c1>c2 atunci s←1
altfel s←-1
c1←n%10
n←n/10
c2←n%10
cat timp (c1-c2)*s>0 executa
{ c1←n%10
n←n/10
c2←n%10
}
scrie s, ‘ ‘ , n
3. k=0;
aux= ‘.’;
for ( i=1; i<=7; i++)
{ cin>>a;
if (a!= ‘A’)
if ( aux!= ‘A’&& a== ‘I’)
k++;
else
if ( a!= ‘I’)
k++;
else
if (aux != ‘I’)
k++;
aux=a;
}
Subiectul al III-lea
2. int main ( )
{ int n, k, v[21], i, m=1, p=1;
cout<< “n=”;
cin>>n;
cout<<”k=”;
cin>>k;
v[k]=0;
for (i=k+1; i<=n; i++)
{v[i]=m; //v[i]=v[i-1]+1;
m++; //
}
for( i=k-1; i>=1; i--)
{ v[i]=p; //v[i]=v[i+1]+1;
p++; //
}
for (i=1; i<=n; i++)
cout<<v[i]<< ‘ ‘;
return 0;
}
3. a) #include<iostream.h>
#include<fstream>
using namespace std;
int main ( )
{ long x, l, b=0, k=0;
ifstream fin (“bac.txt”); //nu functioneaza corespunzator!! -5p
while ( fin>>x)
{ if (x<0 && k==0)
{ b=1;
k=1;
}
if (k!=0)
{ b++;
if( x<0)
l=b;
}
}
cout<<l;
fin.close();
return 0;
}
b) Algoritmul utilizat cauta prima data primul numar negativ din fisier. In momentul in care l-a gasit,
acesta incepe sa numere cate numere sunt in fisier, de fiecare data cand intalneste un numar negativ
retinand lungimea secventei in variabila l. Acest algoritm prezinta eficienta din punct de vedere al
spatiului de memorie si al timpului de executie. De ce?? Memorie – nu utilizez tablouri Timp –
prelucreaz numerele pe masura preluarii din fisier
lungimea maximă a unei secvenţe a şirului care fie începe, fie se încheie cu un număr negativ
int main()
{ifstream fin("bac.in");
int x,pplus=-1,uplus=-1,pminus=-1,uminus=-1,k=0;
while(fin>>x)
{k++;
if(x<0) if(pminus==-1) pminus=k;
else uminus=k;
}
int b=uminus-pminus+1;
cout << b;
return 0;
}