12790948 rezolvari informatica intedssfdnsiv si neintensiv bacalaureat 2008
DESCRIPTION
dsfsdgsdgggTRANSCRIPT
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
1/344
1
MODELE DE REZOLVARE
A SUBIECTELOR DE BACALAUREAT 2008
INFORMATICintensiv i neintensiv
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
2/344
2
Descrierea CIP a Bibliotecii Naionale a Romniei
Metode de rezolvare a subiectelor de bacalaureat 2008 :informatic intensiv i neintensiv/ coord.: GiorgieDaniel Vlad, Ovidiu Marian Marcu. - Suceava : LittleLamb, 2008ISBN 978-973-7762-63-4
I. Vlad, Giorgie Daniel (coord.)II. Marcu, Ovidiu (coord.)
004
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
3/344
3
MODELE DE REZOLVARE
A SUBIECTELOR DE BACALAUREAT 2008
INFORMATIC
intensiv i neintensiv
n conformitate cu modificrile prevzute
n erata publicatpe situl MECT,
n luna aprilie, 2008
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
4/344
Bacalaureat 2008 Modele de rezolvare
4
Autori:
Numele i prenumele Jude VarianteMarinescu Minodora Arad 1 7
Vtmnescu NicuPetrior AdrianCostineanu RalucaHatmanu Mihaela
Suceava 10, 118, 91412, 13
TarasDaniela Bac u 15 21Murean Ciprian Bistria Nsud 22 28Voinea-Axinte Alina Botoani 29 35Prus Paul Brila 36 42Istrate Nicolae Cecilian , Vitan Adrian Dmbovia 43 - 49
Bradatan Claudita (52)Popa Carmen (51)Pintea Eugen (53)Ududec Marius si Stefanescu Narcisa (54)Erhan Mihail (56)Zotic Cristina (50)Aga Petronela (55)
Suceava 52515354565055
Balacea Georgeta Iulia Galai 57 63Runceanu Mihaela Gorj 64 - 70
Iacobescu Raluca Silvia Hunedoara 71 77Hadmbu Stelian Iai 78 84Ungureanu Florentina Neam 85 91Vlad Giorgie Daniel (coordonator)
Marcu Ovidiu Marian (coordonator)
Marcu Daniela
HojbotRodica
Suceava 92 9394 9798 100
VariantaPascal:
13 (I. 2) c))24 (III. 4)63 (III. 3)
Coperta i tehnoredactare: Daniela Marcu
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
5/344
Bacalaureat 2008 Modele de rezolvare
5
Varianta SUBIECTUL I
1. d2.
a) 963b) 61, 65, 67c)citete n (numr natural)z0
p1dacn0 atuncirepetcn%10n[n/10]dacc%3=0 atuncizz+p*(9-c)pp*10pncnd n=0d) Varianta C/C++ Varianta PASCAL#includevoid main(){
unsigned int n,c,z=0,p=1;coutn;while(n>0){
c=n%10;n=n/10;if(c%3==0){
z=z+p*(9-c);p=p*10;
}}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
6/344
Bacalaureat 2008 Modele de rezolvare
6
Frunzele arborelui sunt: 1, 2, 3 i 85.
Varianta C/C++ Varianta PASCAL#includevoid main(){
unsigned intn,m,i,j,A[11][11];
do{coutn;}while(n10);do{cout > m;}while ( m10);for (i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
7/344
Bacalaureat 2008 Modele de rezolvare
7
EXISTA);fclose(f);
}
close(f);end.
4. a)
Varianta C/C++ Varianta PASCAL
Pentru intensivint sub (int v[100],int n,inta){int i; nr=0 ;for(i=0; i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
8/344
Bacalaureat 2008 Modele de rezolvare
8
if(este) cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
9/344
Bacalaureat 2008 Modele de rezolvare
9
d) Varianta C/C++ Varianta PASCAL
#includevoid main(){
unsigned int x,y;do{
coutx;}
while(x==0);while(x>0)
{couty;if(x>y) cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
10/344
Bacalaureat 2008 Modele de rezolvare
10
l=strlen(cuv);for(i=0;i=97 &&cuv[i]
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
11/344
Bacalaureat 2008 Modele de rezolvare
11
n++;}
}fclose(f);if (n==0)
printf(NU EXISTA);
else{ do{ inv=o;for(i=0;ia[i+1]){ aux=a[i];a[i]=a[i+1];a[i+1]=aux;inv=1;
}}while (inv);
for(i=0;i0 thenbeginn:=n+1;a[n]:=x;
end;
end;close(f);if n=0 thenwriteln(NU EXISTA)
elsebeginrepeatinv:=false;for i:=1 to n-1 doif a[i]>a[i+1] thenbeginaux:=a[i];
a[i]:=a[i+1];a[i+1]:=auxinv:=true;
end;until not inv;for i:=1 to n dowrite(a[i], );
end;end.
4. a)
Varianta C/C++ Varianta PASCALunsigned f(unsigned a){ unsigned i,nr,s=0;i=2;while (i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
12/344
Bacalaureat 2008 Modele de rezolvare
12
{ a=a/i;nr++;
}if (nr!=0) s+=nr;else i++;
}
return s;}void permut(unsigned i){ unsigned j,l,nr;if (i==c)
{nr=0;for(l=0;l1)extraprim=0;
}else
{ p[i]=i;for(j=0;j
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
13/344
Bacalaureat 2008 Modele de rezolvare
13
else write(NU);end.
Pentru neintensiv se modificverificarea lui n, adicn>99 n locde n>999 i dispare if(c==3)... dinfuncia main rmnnd doarif(c==2)...
Pentru neintensiv se modificverificarea lui n, adicn
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
14/344
Bacalaureat 2008 Modele de rezolvare
14
Pentru intensiv, drumul (5,4), (4,2), (2,1), (1,6), (6,3) are lungimea maxim5.Pentru neintensiv, nodurile 5 i 6 au gradul exterior strict mai mare dect cel interior.2. c
1 2 3 4 5 6 7 8 9 10 11
6 5 5 2 0 3 3 3 8 7 7
Frunzele sunt: 4, 1, 10, 11, 93.
Varianta C/C++ Varianta PASCALf.x=f1.x*f2.y+f1.y*f2.xf.y=f1.y*f2.y
f.x:=f1.x*f2.y+f1.y*f2.xf.y:=f1.y*f2.y
4.irul memorat n variabila s este idealepentru intensivirul memorat n variabila s este elenepentru neintensiv 5. Varianta C/C++ Varianta PASCAL#include void main(){unsigned n,A[24][24],i,j;do{
coutn;}while (n24);for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
15/344
Bacalaureat 2008 Modele de rezolvare
15
fscanf(f,%d,&x);if (x>=100){a[n]=x; n++;}
}fclose(f);
if (n==0)printf(NU EXISTA);
else{ inv=0;for(i=0;ia[i+1]){ aux=a[i];a[i]=a[i+1];a[i+1]=aux;inv=1;
}}
while (inv);for(i=0;i=100 thenbeginn:=n+1;a[n]:=x;
end;end;close(f);if n=0 thenwriteln(NU EXISTA)
elsebeginrepeatinv:=false;for i:=1 to n-1 doif a[i]>a[i+1] thenbegin
aux:=a[i];a[i]:=a[i+1];a[i+1]:=aux;inv:=true;
end;until not inv;for i:=1 to n dowrite(a[i], );
end;end.
4. a)
Varianta C/C++ Varianta PASCALint cif(long a, int b){int nr=0;while (a!=0){if (a%10==b) nr++;a=a/10;}return nr;
}
functioncif(a:longint;b:integer):integer;var nr:integer;beginnr:=0;while (a0) dobeginif (a mod 10=b) then nr:=nr+1;a:=a div 10;
end;cif:=nr;
end;
b)
Varianta C/C++ Varianta PASCALPentru intensiv#include long n,numar;int cif(long a, int b){int nr=0;while (a!=0){if (a%10==b) nr++;a=a/10;}
return nr;}void main(){
Var x:array[1..8] of integer;n,numar:longint;i,j,p,t:integer;ok:boolean;
functioncif(a:longint;b:integer):integer;var nr:integer;beginnr:=0;while (a0) do
beginif (a mod 10=b) then nr:=nr+1;a:=a div 10;
end;
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
16/344
Bacalaureat 2008 Modele de rezolvare
16
do{coutn;} while (n99999999);int i,ok=1,j,p=0,x[8],t;
for(i=9;i>=0;i--){t=cif(n,i);if (t!=0)if (t%2!=0)ok=0;elsefor(j=1;j
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
17/344
Bacalaureat 2008 Modele de rezolvare
17
for(i=9;i>=1;i=i-2){t= cif(n,i);if (t!=0)for(j=1;j
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
18/344
Bacalaureat 2008 Modele de rezolvare
18
SUBIECTUL II
1. b 2. a 3.
2 vrf1 baz
4.
Varianta C/C++ Varianta PASCAL
Pentru intensivif (s[i]>=97 && s[i]
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
19/344
Bacalaureat 2008 Modele de rezolvare
19
{fscanf(f,%d,&x);if (x
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
20/344
Bacalaureat 2008 Modele de rezolvare
20
void main(){int i,ok=1,j,p=0,x[8],t;do{coutn;
long m=n;while (m!=0 && ok){if(m%10==0) ok=0;m=m/10;}
}while ((n99999999)||ok==0);
for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
21/344
Bacalaureat 2008 Modele de rezolvare
21
void main(){do{cout>n;} while (n99999999);int j,t,numar=0;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
22/344
Bacalaureat 2008 Modele de rezolvare
22
y=y/10;z=z/10;
}if (y+z==0)
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
23/344
Bacalaureat 2008 Modele de rezolvare
23
void main(){ long n;FILE *f;f=fopen(NR.TXT,w);do{ printf(n=;
scanf(%d,&n);} while (n99999999);while (n!=0){ fprintf(f,%d ,n);n=n/10;
}fclose(f);
}
n:longint;beginassign(f,NR.TXT);rewrite(f);repeatwrite(n=);readln(n);
until (n>=10) and (n
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
24/344
Bacalaureat 2008 Modele de rezolvare
24
if(y[i]>y[i+1]){ aux=y[i];y[i]=y[i+1];y[i+1]=aux;inv=1;
}
} while (inv);//afisarea numerelor obtinutefor(i=0;is)
s=n%10;elses=11;
n=n/10;}
var n,s:word;beginwrite(n=);readln(n);s:=-1;while n>0 dobeginif n mod 10>s then
s:=n mod 10elses:=11;
n:=n div 10;end;write(s)
end.
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
25/344
Bacalaureat 2008 Modele de rezolvare
25
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
26/344
Bacalaureat 2008 Modele de rezolvare
26
}while (n100);for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
27/344
Bacalaureat 2008 Modele de rezolvare
27
}void main( ){ do
{ coutn;}while (n=100);
for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
28/344
Bacalaureat 2008 Modele de rezolvare
28
} end;write(n1,' ',nr_ap,' ');
end.
b)Se citete primul numr din fiier i se iniializeazvariabila nr_ap cuvaloarea 1. Ct timp nu s-a ntlnit sfritul de fiier se mai citete un nr i se compar cu
cel anterior citit. Dac sunt egale cre te cu 1 numrul de apariii; dac nu sunt egale setiprete primul dintre ele cu numrul de apariii corespunztor, se reiniializeazvariabilacare numrapari iile cu valoarea 1, dupcare se reconsider primul num r din secvena denumere egale ca fiind cel de-al 2-lea citit.
Varianta SUBIECTUL I
1. d.2.
a) 9432
b) 4569, 45690c) citete n (numr natural nenul)
nr0; a9repet mn ct timp m0 i m%10a execut m[m/10] dacm0 atunci nrnr*10+m%10
aa-1pncnd a
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
29/344
Bacalaureat 2008 Modele de rezolvare
29
SUBIECTUL II
1. a2. b pentru intensiv i d pentru neintensiv3. 2pentru intensivVarianta C/C++ Varianta PASCAL
pentru neintensivcout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
30/344
Bacalaureat 2008 Modele de rezolvare
30
daca e consoanap=i;
}while (!ok);cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
31/344
Bacalaureat 2008 Modele de rezolvare
31
pentru neintensiv#include "stdio.h"void main(){ unsigned v[300],n,i,exista,aux,p;FILE *f ;f=fopen("BAC.TXT","w");do{printf("n=");scanf("%d",&n);}while (n100);for(i=0;i9999);for(i=0;i5 thenbeginwhile n>t do t:=2*t;t:=t div 2;
endelse t:=n;
sub:=t;end;
b)#include unsigned long s,n;unsigned long sub (unsigned long n){unsigned long t=5;if (n>5){ while (n>t) t=2*t;t=t/2;
}else t=n;
return t;}void main()
var s,n:longint;function sub(n:longint):longint;var t:longint;begint:=5;if n>5 thenbeginwhile n>t do t:=2*t;t:=t div 2;
end
else t:=n;sub:=t;
end;
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
32/344
Bacalaureat 2008 Modele de rezolvare
32
{do{ couts;
}while (s>10000000);
while (s>0){n=sub(s);cout10000000);while (s>0){n=sub(s);g
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
33/344
Bacalaureat 2008 Modele de rezolvare
33
p1 -execut| - dacn%2=0 atunci| | nrnr+n%10*p
| | pp*10| | altfel| | kk-1| |
| | n[n/10]| cat timp
ct timp n0 i k0
scrie nr
d) Varianta C/C++ Varianta PASCAL#include#include
void main( ){long int n,k,nr=0,p=1;clrscr();
cin>>n;cin>>k;while (n!=0 && k!=0)
{if(n%2==0)
{nr=nr+n%10*p;p=p*10;}
elsek=k-1;n=n/10;
}couturm;s=s+p->info;}
s:=p^.info;
while p^.urmNIL dobeginp:=p^.urm;s=s+p^.info;
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
34/344
Bacalaureat 2008 Modele de rezolvare
34
coutp;}while(2>n || n>20 || 1>p || p>20);for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
35/344
Bacalaureat 2008 Modele de rezolvare
35
3.Varianta C/C++ Varianta PASCALPentru neintensiv
:#include#include#includeFILE*f=fopen("BAC.TXT","w");void main(){ int i,j,a[100][100],n,k=0;do {coutn;}while(n>50);for( i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
36/344
Bacalaureat 2008 Modele de rezolvare
36
for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
37/344
Bacalaureat 2008 Modele de rezolvare
37
4.b)Pentru intensiv
Eficiena metodei utilizate va ine seama de faptul ccei doi vectori introdu i sunt ordonaii au componente de paritate diferit. astfel vom lua un element dintr-un tablou si cellaltelement din cel dea doilea tablou ct timp a[i]>n;}while(n==0);
while(n!=0){if(p1(n)==p1(p2(n)))
nr++;n=p2(n);
}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
38/344
Bacalaureat 2008 Modele de rezolvare
38
s 10repet dacn%10 0)
{if(n%10
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
39/344
Bacalaureat 2008 Modele de rezolvare
39
} write(a[i,1],' ');end.
SUBIECTUL III
1. bpentru intensiv i apentru neintensiv 2. 1pentru intensiv i 156pentru neintensiv 3.Varianta C/C++ Varianta PASCAL
Pentru intensiv Pentru intensiv#include#includeint v[100];void sub(int n,int k){int i,c=1;for (i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
40/344
Bacalaureat 2008 Modele de rezolvare
40
{int i, ep=-1, ei=-1;for (i=p; i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
41/344
Bacalaureat 2008 Modele de rezolvare
41
int v[1000];FILE *f=fopen("BAC.TXT","r");void main (){clrscr();int i,x,c=0;
while(!feof(f)){fscanf(f,"%d",&x);if(x/100=1)v[x]=1;}for(i=999;i>=100;i--){if( v[i]==0){printf("%d ",i);c++;}if(c==2)
break;}}
i,x,c:integer;f:text;beginassign(f,'BAC.TXT');reset(f);c:=0;
while not eof(f) dobeginread(f,x);if (x div 100=1) thenv[x]:=1;end;
for i:=999 downto 100 dobeginif v[i]=0 then
beginwrite(i,' ');inc(c);end;if c=2 thenbreak;endend.
Parcurgem o singurdat fi ierul de intrare ,care conine numerele.Marchez n vectorul vnumerele de trei cifre existente n fiier. Parcurgnd descresctor verific care nu se regsescn vector.
Varianta SUBIECTUL I
1. a2.
a) 24 b) n=233456, k=4
n=237458, k=3c)
citete n,k (numere naturale nenule)nr
0p1dacn 0 i k0executdacn%2 0 atunci nr nr+[n/10] %10*p p p*10altfel k k-1nn/10ct timp n0 i k0scrie nr
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
42/344
Bacalaureat 2008 Modele de rezolvare
42
d) Varianta C/C++ Varianta PASCAL
#include unsigned long n,k,p,nr;
void main(){coutn>>k;nr=0; p=1;while(n!=0 && k!=0){if(n%2!=0) {nr=nr+n%10*p;
p=p*10;} else k=k-1;n=n/10;}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
43/344
Bacalaureat 2008 Modele de rezolvare
43
#include #include int i,j,n,p; unsigned long a[20][20];void main()
{do{coutn;}while(n20);do{coutp;}while(p20);for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
44/344
Bacalaureat 2008 Modele de rezolvare
44
a[101],s[101];void main(){do{coutn;}while(n100);s[0]=0;
for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
45/344
Bacalaureat 2008 Modele de rezolvare
45
dacx nu e putere a lui 2.
Varianta SUBIECTUL I
1. c2.
a) a)15 (se afieazprodusul ultimelor p cifre ale lui n, unde n e minimul dintre k inr. de cifre ale lui n) b) 1 (sau orice alt numr care nu are printre ultimele 4 cifre 3,5,7 i 9).c) Varianta C/C++ Varianta PASCAL#include unsigned long n,k,p; int c;void main(){coutn>>k;p=1;
while(n>0 && k>0){c=n%10;if(c%2==1) p=p*c;n=n/10; k=k-1;}
cout0))do
begin c:=n mod 10;if(c mod 2=1)then p:=p*c;n:=n div 10; k:=k-1 end;write(p)end.
d)citete n, k (numere naturalep1dack>0pentru i=k,1,-1 executdacn>0 atuncicn%10
dacc%2=1 atuncipp*cn[n/10]kk-1scrie p
SUBIECTUL II
1. a (drumul este 4-5-1-2-6 i are 4 arce) 2. Pentru intensiv: d (nr. de grafuri orientate frbucle cu n noduri este 2 n(n-1). Pentrun=4 avem 24*3=212=4096).Pentru neintensiv,d 3.
11 brcdbr (se afieazlungimea ini iala lui s, spa iu i apoi irul s frvocala a. 4.
Pentru intensiv
p->nr+p->urm->nr+p->urm->urm->nr (pentru C++), respectivp^.nr+p^.urm^.nr+p^.urm^.urm^.nr (pentru Pascal)Pentru neintensiv
64 (nr. de grafuri neorientate distincte cu vrfuri e 2n(n-1)/2. Pentru n=4 avem
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
46/344
Bacalaureat 2008 Modele de rezolvare
46
24*3/2=26=64.5.
Pentru intensiv
Varianta C/C++ Varianta PASCAL#include int a[10][10],i,j,m,max,min,n;void main(){do{coutm;}while(m10);do{coutn;}
while(n10);for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
47/344
Bacalaureat 2008 Modele de rezolvare
47
x>max sau i pstreaz vechea valoare n caz contrar, nemaifiind nevoie s comparm cu toate numerele anterioare. Astfel se evitutilizarea vectorilor, deci seface economie de memorie i timp. Se fac doar n+1 citiri din fiier, n comparaii icel mult n atribuiri i folosim doar 2 variabile simple, x i max.
Varianta C/C++ Varianta PASCALb)#include int i,n; long x,max; ifstreamf("numere.txt");void main(){f>>n>>x; coutmax) max=x;cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
48/344
Bacalaureat 2008 Modele de rezolvare
48
#include unsigned long i,n,nr,x;unsigned long sum(unsigned longx){int i,s=0;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
49/344
Bacalaureat 2008 Modele de rezolvare
49
while(x){while(x>9) x/=10;y=y*10+x;coutx;//printf(x=);scanf(%d,&x);}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
50/344
Bacalaureat 2008 Modele de rezolvare
50
pentru numerele din al doilea ir.Algoritmul este eficient deoarece nu necesitspa iu pentru memorarea, valorile suntprelucrate printr-o singurparcurgere, la citirea lor.b) Varianta C/C++ b) Varianta PASCAL#include
ifstream f("nr1.txt");ifstream g("nr2.txt");
int diviz(long x){ if(x%5==0)return 1;else return 0;}void main()
{long x,y;f>>x;g>>y;while(!f.eof()&&!g.eof())
{if(x==y){f>>x; g>>y;}while(x
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
51/344
Bacalaureat 2008 Modele de rezolvare
51
Varianta C/C++ Varianta PASCAL
b) #includelong v[100];int n,m;int caut(int li,int ls,int x)
{int m;if(li
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
52/344
Bacalaureat 2008 Modele de rezolvare
52
beginnr:=nr+1; write(v[i],' ');end;
end.
4. Pentru neintensiv
a) int nr(long n, int c)
a)function
nr(n:longint;c:integer):integer;b)#includeint nr(long n, int c)
{ if(n)if(n%10==c)
return 1+nr(n/10,c);else return nr(n/10,c);
}void main(){ long n; int x=0,i;
coutn;// printf(n=);scanf(%d,&n);
for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
53/344
Bacalaureat 2008 Modele de rezolvare
53
if(c>0)thenk:=k+1;
end;write(k=,k);readln;
end.
d)Citete a, by0; iact timp ib executa ni; c0 ct timp n>0 executa daca n%2=1 atunci cc+1 n[n/10]
daca c>0 atunci kk+1 Scrie k
SUBIECTUL II
1. c2. b pentru intensiv i b pentru neintensiv3. Pentru intensiv
Vom nota prin L(i) lista de adiacenanodului i, pentru i=1,6L(1)={2, 3}, L(2)={1, 4}, L(3)={1, 4}L(4)={2, 3, 5, 6}, L(5)={4, 6} L(6)={4, 5}
3. Pentru neintensiv
struct medicament {chardenumire[31];
floatpret;} m;
4. Secvena afieazlungimea irului de caractere apoi elimintoate vocalele din ir.Valorile afiate sunt: 11 bcdfghd
5. Pentru intensiv:Varianta C/C++ Varianta PASCAL#includevoid main(){ int a[50][50],n,i,j;do{coutn;
// printf(n=);scanf(%d,&n);}while(n=50);
for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
54/344
Bacalaureat 2008 Modele de rezolvare
54
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
55/344
Bacalaureat 2008 Modele de rezolvare
55
while(x0&&x
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
56/344
Bacalaureat 2008 Modele de rezolvare
56
b) Analiznd algoritmul dat, se observc el determin num rul care se formeazutilizndcea mai mare cifrdin fiecare num r dat n ir (mai puin 0 care este introdus pentru antrerupe citirea).n consecin, pentru a obine 752trebuie introdus un sir de 4 numere dincare ultimul 0 i primele 3 trebuie sa aibca cifre maxime pe 7, 5 i respectiv 2. Deexemplu, un set de date de intrare ar putea fi: 127, 253, 12, 0.c) Varianta C/C++ Varianta PASCAL#include#includevoid main(){
unsigned int x,n,y,c;scanf("%d",&x); //cin>>x;n=0;while(x!=0)
{ y=x;c=0;while(y>0)
{if(y%10>c)
c=y%10;y=y/10;}
n=n*10+c;scanf("%d",&x);//cin>>x;
}printf("%d",n); //coutc then
c:=y mod 10;
y:=y div 10;end;
n:=n*10+c;readln(x);
end;write(n);end.
d) Deoarece introducerea, la prima citire, a valorii 0 pentru x nu influeneaz cu nimicrezultatul, nu mai este necesar o verificare anterioar structurilor repetitive i algoritmuldevine:citete x (numr natural)n0
repet yx; c0 repet dacy%10>c atunci cy%10 y[y/10] pncnd y=0 nn*10+c citeste xpncnd x=0scrie n
SUBIECTUL II
1. b 2. c 3. Varianta C/C++ Varianta PASCAL
pentru intensivse va afi a 9 bduediar pentru neintensiv 9 2
pentru intensivse va afi a9bduediar pentru neintensiv9 2
4. Etichetele frunzelelor arborelui sunt: 2, 3, 4, 6.5. Pentru intensiv Se parcurge matricea pecoloane i fiecare coloan(de la 1 la num rul
Pentru neintensiv Se parcurge matricea pecoloane. Dupcompletarea unei coloane cu
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
57/344
Bacalaureat 2008 Modele de rezolvare
57
de cifre a lui n) se completeaz cu ultimacifr a num rului n. Dup completarea uneicoloane cu ultima cifr a num rului n, acestai va schimba valoarea n n=n/10. Numrulde linii a matricei, respectiv cel de coloane sedetermin n momentul valid rii datelor deintrare, pentru care trebuie s determin mnumrul de cifre.
ultima cifr a num rului n, acesta i vaschimba valoarea n n=n/10.
Varianta C/C++ Varianta PASCAL
Program intensiv#include#includevoid main(){ unsigned a[9][9],i,j,nc;long n,m;do{scanf("%D",&n);//cin>>n;
nc=0;m=n;while(m!=0){m=m/10;nc++;}
}while(nc>8 || n
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
58/344
Bacalaureat 2008 Modele de rezolvare
58
SUBIECTUL III
1. b 2. 8 pentru intensiv i 72 pentru neintensiv3. Pentru intensiv
a)Folosim un vector c cu 10 elemente, unul corespunztor fiecrei cifre. C[i] va reprezentanumrul de citiri a cifrei i. n momentul citirii nu vom reine cele n numere ci vom formavectorul c. Vectorul c este iniial 0 i la fiecare citire adugam 1 elementului corespunztorcifrei citite. Pentru a afia cifrele citite n ordine cresctoare vom parcurge vectorul c ivom afia fiecare cifri (i=0..9) de attea ori de cte ori a fost citit , adicde c[i] ori.Metoda este mai eficientdin punct de vedere a spa iului de memorie utilizat (pentru ca nureinem toate cele n cifre) i din punct de vedere a timpului de execuie(pentru cnu maieste necesarsortarea celor n numere).b)Varianta C/C++ b)Varianta PASCAL#include
int c[10];void main(){
int n,cif;do{cin>>n;}while(n>500);for(int i=1;i>cif;c[cif]++;}
for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
59/344
Bacalaureat 2008 Modele de rezolvare
59
end.
4. Pentru intensivVom citi toate datele din fiierul de intrare (pnla sfr itul fiierului) i vom contorizacte afiri au fost efectuate pnla momentul respectiv, n variabila c. Afi m numrulimediat dupcitire pe aceea i linie ca i precedentul i urmat de un spaiu, iar n cazul ncare au fost efectuate 5 afiri (dacc este 5) se trece la linie nou i se reseteazcontorul c(c redevine 0). Tot n momentul citirii vom determina i cte dintre numerele din fiier ausuma cifrelor par, utiliznd funcia definitanterior pentru a calcula suma cifrelor unuinumr natural.Varianta C/C++ Varianta PASCAL#includeint sumac(long n){ int s=0;
while(n){s=s+n%10;n=n/10;}
return s;}void main(){ long nr;
int c=0,cp=0;ifstream f("bac.txt");while(f>>nr)
{cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
60/344
Bacalaureat 2008 Modele de rezolvare
60
if(n%d==0)return 0;
return 1;}void main(){
for(int i=11;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
61/344
Bacalaureat 2008 Modele de rezolvare
61
valorilor va ine seam de faptul cmatricea este simetric fa de diagonalaprincipal deci a[i][j]=a[j][i]. Dup completarea unei linii cu ultima cifr a
numrului n, acesta i va schimbavaloarea n n=n/10.
n=n/10.
Varianta C/C++ Varianta PASCAL
Program intensivmain(){ unsigned m,a[7][7],n, i,j,k;do{scanf(%d,&n);//cin>>n;k=0;m=n;
while(m!=0){m=m/10;k++;}}while(k!=5);for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
62/344
Bacalaureat 2008 Modele de rezolvare
62
writeln();end; end.
SUBIECTUL III
1. b
2. 4pentru intensiv i 85pentru neintensiv3. pentru intensiv : Pentru fiecare valoaredin intervalul [1,n], parcurs de la n la 1,se contorizeazn variabila k num ruldivizorilor i apoi se verificcu valoareamax (ce reprezintnum rul maxim dedivizori). n cazul n care s-a gsit ovaloare ce are un numr mai mare dedivizori aceastvaloare este testat cu
variabila min(ce reprezintcea mai mic valoare care n deplinete condiia pentrunumrul maxim de divizori), i pstratn min dacndepline te condiia impus.
pentru neintensiv: Folosim o variabilcontor k pentru a numra de cite ori gsimcifra 5 n fiecare numr citit n variabila x.Pentru citire vom folosi o structurrepetitivcu test ini ial care va include tot oastfel de structurpentru a parcurgenumrul x, cifrcu cifr i a verificaexistena cifrei 5. Dupfiecare verificarevom folosi operatorul div pentru a elimina
cifra unitilor i pentru a verificaurmtoarea cifr, a zecilor care, a devenitastfel cifra unit ilor. nainte de a nentoarce n prima structurrepetitiv , citimurmtoarea valoare din ir.
Varianta C/C++ Varianta PASCAL
Pentru intensiv Pentru intensiv#include#includemain(){ unsigned n,min=32000,max=0,i,j,k;
do scanf(%d,&n);//cin>>n;while(n>32000);for(i=n;i>=1;i--){ k=0;for(j=1;jx;}printf(%d%,k);//cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
63/344
Bacalaureat 2008 Modele de rezolvare
63
parametrul x, reprezintun num r prim.Vom citi numerele din fiier, rand perand n variabila x (citirea se finalizeazn momentul n care s-a ajuns la sfritul
fiierului). Variabilele a i b vor memorapenultimul i respective ultimul numrprim citit din fier, dacacestea exist .La citirea fiecrei valori se verificdac este numr prim i dacnoua valoarecititeste diferit de ultima valoarememoratn variabila b. n caz afirmativvariabila a preia vechea valoare avariabilei b iar variabila b preia nouavaloare a num
rului prim citit
n x.
o pstrm n variabila k. Folosimvariabila logicok pentru a verificadaca existat sau nu m car o valoareimparn fi ier, iar la finalul
programului afim rezultatul n funciede valoarea acestei variabile.
b) Varianta C/C++ Varianta PASCAL
Program intensiv#includeifstream f("BAC.IN");
int prim (long int x){long int i;for(i=2;i>x)if(prim(x)&&x!=b) {a=b;b=x;}if(a*b>0) cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
64/344
Bacalaureat 2008 Modele de rezolvare
64
end.
Varianta SUBIECTUL I
1. a2. a) un caracterb) Cerina este greit. Dac se dore te afiarea caracterului # atunci rspunsulcorect este 134.c)
Varianta C/C++ Varianta PASCAL
void main(){ unsigned i,j,n;scanf(%d,&n); //cin>>n;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
65/344
Bacalaureat 2008 Modele de rezolvare
65
for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
66/344
Bacalaureat 2008 Modele de rezolvare
66
main(){unsigned v[10],i,k=0;for(i=1;i>v[i];if(v[i]%13==0) k++;}
printf(%d ,k);//cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
67/344
Bacalaureat 2008 Modele de rezolvare
67
if(cifrak(n,0)==3) couty;if(x=y)
{ printf( A);//cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
68/344
Bacalaureat 2008 Modele de rezolvare
68
} end;for i:=1 to n dobeginfor j:=1 to n dowrite(a[i,j], );writeln();
end; end.
SUBIECTUL III
1. a2. 12347, 12346, 123453. Se vor compara cele douvalori i se va salva n min cea mai mic i n max ceamai mare. Se parcurge vectorul de la a doua poziie pnla penultima (observa i cvariabila contor ka plecat de la valoarea 2, adic primul i ultimul element au fostdeja numrate) i se verificcondi iile impuse n enunul problemei contoriznd nvariabila knum rul de elemente ce verificcondi iile.Varianta C/C++ Varianta PASCAL
Pentru intensiv Pentru intensivint interval(int v[100], int n){ int i,k=2,min,max;if(v[1]>v[n]){min=v[n]; max=v[1];}else {min=v[1];max=v[n];}for (i=2;i=min&&v[i]v[n] thenbegin min:=v[n];max:=v[1];endelse begin min:=v[1];max:=v[n];end;for i:=2 to n-1 doif (v[i]>=min and v[i]>n>>x;for(i=1;i>y; if(y
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
69/344
Bacalaureat 2008 Modele de rezolvare
69
end.
Pentru neintensivifstream f("numere.txt");
main()
{ int v[100],i=1,n;while(f>>v[i]) i++;n=i-1;if(v[1]
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
70/344
Bacalaureat 2008 Modele de rezolvare
70
while(n=20);for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
71/344
Bacalaureat 2008 Modele de rezolvare
71
b) Varianta C/C++ Varianta PASCALifstream f("numere.txt");main(){ unsigned x,k,p=0,ok=0;cin>>k;while(f>>x){if(x>=k) p++; if(x==k)ok=1;}if(ok)coutb;a=a/10%10*10+a%10;b=b/10%10*10+b%10;for(i=a;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
72/344
Bacalaureat 2008 Modele de rezolvare
72
d. i=a;ct timp (i>n;while(n=20);for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
73/344
Bacalaureat 2008 Modele de rezolvare
73
writeln();end;end.
SUBIECTUL III
1. a2. 10349, 10356,103573.Varianta C/C++ Varianta PASCAL
Pentru intensiv Pentru intensivvoid aranjare(float a[100], int n){int i,j; float aux;for(i=1;ia[j] then beginaux:=a[i];a[i]:=a[j];a[j]:=aux; end;end;
Pentru neintensiv:
4 a) Pentru intensiv: Ideea de rezolvare const n citirea pe rnd din cele dou fi ierea valorilor, cele din nr1 se vor citi n x, cele din nr2 n y. Prin evitarea citirii lor ntr-unvector, se utilizeazeficient memoria. Din punct de vedere a timpului de execu ieacest algoritm este mult mai eficient pentru cocole te ordonarea valorilor.Algoritmul este asemntor celui de interclasare a doi vectori ordonai. n variabilaa am memorat permanent ultima valoare afiat. nainte de a afia o valoare noucare ndeplinete condiia(de a fi mai micdect ultima citit ) se verificdac aceast valoare nu a mai fost afiatanterior, evitnd astfel afi area dublurilor. La finalulprogramului n cazul n care nu avem un acelai numr de numere n cele doufi iere,i tiind cvalorile din fiecare fi ier sunt distincte i ordonate cresctor, am fcutverificarea finalului de fiier i n cazul n care au mai rmas valori necitite le-amafiat exact n ordinea citirii lor.b) Varianta C++ Varianta PASCAL
Pentru intensivifstream f("nr1.txt"),g("nr2.txt");main(){ unsigned x,y,a;
long n1,n2,k=0,p=0;f>>n1>>x;g>>n2>>y;while(k
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
74/344
Bacalaureat 2008 Modele de rezolvare
74
begin write(y);readln(g,y); end;close(f);close(g);end.
Pentru neintensivifstream f("nr1.txt");ofstream g("nr2.txt");
main(){ float a[100][100];int n,m,i,j;f>>n>>mfor(i=1;ia[i][j];a[i][j]=-a[i][j];}for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
75/344
Bacalaureat 2008 Modele de rezolvare
75
scrie m;
SUBIECTUL II1. pentru intensiv:a , pentru neintensiv:d2. pentru intensiv:d , pentru neintensiv:a3. pentru intensiv: 5 , pentru neintensiv:9 cu 7
34. pentru intensiv: (strchr("0123456789 ",a[i])==0) , pentru neintensiv:(i=strlen(a)-1;i>=0;i--) 5.Varianta C/C++ Varianta PASCAL
Pentru intensivmain()
{ unsigned a[20][20],n, i,j;do scanf(%d,&n);//cin>>n;while(n=20);for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
76/344
Bacalaureat 2008 Modele de rezolvare
76
void nule(int a[100],int n){ int i,j,k,nr=0;for(i=1;ix iar n2la citirea g>>y.Varianta C/C++ Varianta PASCAL
Pentru intensiv#includeifstreamf("nr1.txt"),g("nr2.txt");main(){ unsigned x,y,n1,n2;f>>n1>>x;g>>n2>>y;n1--;n2--;while(n1>0 && n2>0)if(x==y) {couty;n2--;}else if (x>y){ g>>y;n2--;}else {f>>x;n1--;}f.close();g.close();}
Pentru intensivvar f,g:text;x,y,n1,n2:integer;beginassign(f,nr1.txt);assign(g,nr2.txt);reset(f);reset(g);read(f,n1,x);read(g,n2,y);while (n1>0 and n2>0) doif x=y thenbeginwrite(x, ); read(f,x);dec(n1);read(g,y);dec(n2);endelse if x>y thenbeginread(g,y);dec(n2);end
else begin read(f,x);dec(n1);end;close(f);close(g);end.
Pentru neintensivifstream f("nr1.txt");ofstream g("nr2.txt");main(){ int a[100][100], n,m,i,j,aux;f>>n>>mfor(i=1;ia[i][j];
for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
77/344
Bacalaureat 2008 Modele de rezolvare
77
{aux=a[i][j];a[i][j]=a[i][m+1-j];a[i][m+1-j]=aux;}for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
78/344
Bacalaureat 2008 Modele de rezolvare
78
SUBIECTUL II
1. pentru intensiv:d pentru neintensiv: c2. c3. ev.data_nasterii.an=1990;4. 4
5. Se parcurge irul de caractere verificnd dac n dou pozi ii consecutive segsete acelai caracter cu condiia suplimentarca acesta s fie diferit de caracterul*.Varianta C/C++ Varianta PASCALmain(){ unsigned i=0; char a[30];scanf(%s,&a);//cin.get(a,30);for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
79/344
Bacalaureat 2008 Modele de rezolvare
79
for(i=1;i>v[i]; S=S+v[i];}imax=1;i=1;for(j=k+1j>v[j];S=S-v[i];S=S+v[j];i++;if (S>Smax){Smax=S;imax=i;}
}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
80/344
Bacalaureat 2008 Modele de rezolvare
80
writeln;end;
end.
SUBIECTUL III
1. a2. ABACABA3. Intensiv
a) Deoarece nu putem calcula factorialul unui numar mare, vom determina ordinul demultiplicitate al cifrei 5 n n! (ordinul de multiplicitate al cifrei 2 este mai mare decat alcifrei 5)Varianta C/C++ Varianta PASCALint nz(int n){ int p=5, o=0;while(p
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
81/344
Bacalaureat 2008 Modele de rezolvare
81
4. ExplicaiiFolosim o funcie care calculeazcea mai mare putere a lui 2 mai mic decat parametrul b,iar dac aceast valoare e mai mare decat a, atunci ea este valoarea cutat din intervalul[a,b]. Varianta C/C++ Varianta PASCAL#includeint p2(int b){ int p=1;while(p>n;for(int i=1;i>a>>b;
if(p2(b)>=a) cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
82/344
Bacalaureat 2008 Modele de rezolvare
82
| | |altfel| | | bb+3| | | ct timp abscrie p
SUBIECTUL II
1. b2. abs3. 2, 3 pentru intensiv, respectiv 5 pentru neintensiv4. 300 pentru intensiv, respectiv 200 pentru neintensiv5.
Varianta C/C++ Varianta PASCAL#include int a[101][101],m,n;void main(){cin>>m>>n;for(int i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
83/344
Bacalaureat 2008 Modele de rezolvare
83
void shift(int n, int x[100]){int aux;aux = x[1];for(int i=1;i>n;for(int i=1;i>x[i];for(i=n;i>=2;i--)
shift(i,x);for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
84/344
Bacalaureat 2008 Modele de rezolvare
84
};
int n;interval x[1000];
void main()
{int max;interval imax;ifstream fin ("bac.txt");fin>>n;for(int i=1;i>x[i].a>>x[i].b;max=x[1].b-x[1].a;imax=x[1];for(i=2;imax){ max=x[i].b-x[i].a;imax=x[i];
}elseif(x[i].b-x[i].a==max)
if(x[i].b
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
85/344
Bacalaureat 2008 Modele de rezolvare
85
qbdacp=0 sau q=0| pp*q| qp*qdacpq atunci| execut| | dacp
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
86/344
Bacalaureat 2008 Modele de rezolvare
86
while(a[i]==b[j]){ i--;j--;
}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
87/344
Bacalaureat 2008 Modele de rezolvare
87
void main(){ int n, x[30001],i,a,b,k;ifstream f("bac.txt");f>>n;for(i=1;i>x[i];f>>a>>b;
if(a
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
88/344
Bacalaureat 2008 Modele de rezolvare
88
endelse writeln('NU');end.
Varianta SUBIECTUL I1. c2.
a) 12, 18b)citete a, b, c (numere naturale nenule)daca>b| ta| ab| bt
execut| dacc|a atunci| | scrie a| | aa+1ct timp a>a>>b>>c;
if(a>b){ t=a;a=b;b=t;
}while(a
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
89/344
Bacalaureat 2008 Modele de rezolvare
89
int p=1;for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
90/344
Bacalaureat 2008 Modele de rezolvare
90
for j:=1 to n doif p2(j)>max then max:=p2(j);
for j:=1 to n doif p2(j)=max then write(j,' ');
end.
SUBIECTUL III
1.c2. 0 , 953.
Intensiv
Varianta C/C++ Varianta PASCALvoid f(int n, int a[9], int &k){ int i,p;k=0;p=0;for(i=n-1;i>=0;i--)
if(a[i]%2==0) {
k=k*10+a[i];p++;}
if(p==0) k=-1;}
type sir = array [1..10] of integer;procedure f(n:integer; a:sir; vark:integer);var i,p:integer;begin
k:=0; p:=0;for i:=n-1 downto 0 do
if a[i] mod 2 = 0 thenk:=k*10+a[i];if p=0 then k:=-1;
f:=k;end;
Neintensiv
Varianta C/C++ Varianta PASCALvoid f(int n, int a[9]){ int mi=-1,mp=32000,i,aux,imi,imp;for(i=0;imp) { mp=a[i];
imp=i;}if(a[i]%2!=0)if(a[i] mp then begin
mp:=a[i]; imp:=i; end;if a[i] mod 2 0 thenif a[i] < mi then begin
mi:=a[i]; imi:=i; end;end;
if((mi -1) and (mp 32000))thenbegin
aux:=a[imi];a[imi]:=a[imp];a[imp]:=aux;
end;end;
4.
a)
Varianta C/C++ Varianta PASCAL#include
int cmmdc(int a, int b){int r;
function cmmdc(a,b:integer)
:integer;var r:integer;beginwhile a mod b 0 do
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
91/344
Bacalaureat 2008 Modele de rezolvare
91
while(a%b){r=a%b;a=b;b=r;}
return r;}
void main(){double x;long a,b,c;cin>>x;b=1;while(x!=(long)x){
x=x*10;
b=b*10;}a=(long)x;c=cmmdc(a,b);cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
92/344
Bacalaureat 2008 Modele de rezolvare
92
d) 10
SUBIECTUL II
1. d2. c3. roton4. 4 (20, 16, 9, 8) pentru intensiv, 4 pentru neintensiv5. ExplicaiiAm folosit o funcie care primete parametrii i ijsi calculeaz produsul elementelor de pecoloanajexceptnd elementul de pe linia i.Varianta C/C++ Varianta PASCAL#includeint n,a[7][7];int p(int i, int j){ int k,p=1;for(k=1;k>n;for(i=1;ia[i][j];
for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
93/344
Bacalaureat 2008 Modele de rezolvare
93
a) tergem fiecare element de pe poziia k ntre i i jprin deplasarea spre stnga cu cte opoziie a elementelor de pe poziiile k+1, k+2...n, dup care l sc dem pe n cu 1 pentrufiecare element ters.Varianta C/C++ Varianta PASCALvoid sterge(int v[1000], int &n, int
i, int j){ int k,l;for(k=i;k
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
94/344
Bacalaureat 2008 Modele de rezolvare
94
j:=i;while((v[j]=v[j+1]) and
(j
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
95/344
Bacalaureat 2008 Modele de rezolvare
95
sterge(v,n,i)else i:=i+1;
afis(v,n);close(f);
end.
Varianta SUBIECTUL I
1. a2.
a) 2329b)
Varianta C/C++ Varianta PASCAL#includevoid main(){ int a,b,c,d,p;
cin>>a>>b;c=0; d=0; p=1;while(a+b+c>0){ c=a%10+b%10+c;d=d+(c%10)*p;p=p*10;a=a/10;b=b/10;c=c/10;
}cout0scrie dd)citete a, b (numere naturale)da+bscrie d
SUBIECTUL II
1. a2. b3.
Varianta C/C++ Varianta PASCALH.x=F.x*G.y+F.y*G.x;
H.y=F.y*G.y;
H.x:=F.x*G.y+F.y*G.x;
H.y:=F.y*G.y;4. 120 pentru intensiv, respectiv 6 pentru neintensiv5.
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
96/344
Bacalaureat 2008 Modele de rezolvare
96
Varianta C/C++ Varianta PASCAL#include
int a[101][101],n;
void main(){cin>>n;for(int i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
97/344
Bacalaureat 2008 Modele de rezolvare
97
int nrint(float x, float y){ int a,p=0;
a=(int)x+1;while(a>n;f>>x>>y;min=nrint(x,y);f>>x;for(int i=4;i>y;p=nrint(x,y);if(px;min=x;max=x;for(int i=2;i>y;if(ymax) max=y;x=y;
var n,p,i:integer;x,y,min,max:real;
f:text;
beginassign(f,'numere.in');reset(f);read(f,n);read(f,x);min:=x;max:=x;
for i:=2 to n dobeginread(f,y);if y < min then min:=y
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
98/344
Bacalaureat 2008 Modele de rezolvare
98
}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
99/344
Bacalaureat 2008 Modele de rezolvare
99
Funcia afis afieazun ir de caractere din care lipsesc caracterele identice cu parametrulv. Folosim aceastfun ie pentru a afia irurile obinute frvocale.Varianta C/C++ Varianta PASCAL#include#include
void afis(char s[10], char v){ int i;for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
100/344
Bacalaureat 2008 Modele de rezolvare
100
primul:=i;end;
beginend.
b) Un numr aproape prim are proprietatea c mp rit la primul su divizor obinemnumr prim. Pentru numerele prime, funcia prim returneaz valoarea transmis caparametru. De asemenea, nu lum n considerare numerele din fiier care sunt prime.Varianta C/C++ Varianta PASCAL#include
int primul(int a){ int i=2;while(a%i) i++;return i;
}
void main(){ int n,i,a,max=0,p;ifstream f("numere.in");f>>n;for(i=1;i>a;if(primul(a)!=a){p=primul(a);if(primul(a/p)==a/p)
if(a>max) max=a;}
}
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
101/344
Bacalaureat 2008 Modele de rezolvare
101
{n=n+1;m=m-1;
}while(m
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
102/344
Bacalaureat 2008 Modele de rezolvare
102
} p:=p*x;end;
end;writeln('produsul este ',p);end.
SUBIECTUL III
1. c pentru intensiv,d pentru neintensiv
2. 123 12 1 0 1 2 3 pentru intensiv,1 2 3 pentru neintensiv
3.
a)
Varianta C/C++ Varianta PASCALunsigned int multipli(unsigned inta,unsigned int b,unsigned int c)
{unsigned int i;i=a;if(in>>m;for(i=1;i>a[i];
for(i=1;i>b[i];k=1;i=1;while(i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
103/344
Bacalaureat 2008 Modele de rezolvare
103
}else{
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
104/344
Bacalaureat 2008 Modele de rezolvare
104
daca c>0 atuncicc-1sfarsit_daca
mm+c*p
pp*10n[n/10]cat_timp(n>0)scrie m
d) 3119 i 3019
SUBIECTUL II
1. c2. a3. 5,4,2,34. pe a treia pozitiepentru intensiv,
respectiv 8pentru neintensiv5. Varianta C/C++ Varianta PASCAL#includevoid main(){
unsigned int n,i,j,A[15][15];do{
coutn;
}while(n15);for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
105/344
Bacalaureat 2008 Modele de rezolvare
105
} end;
4a)Varianta C/C++ Varianta PASCAL
Pentru intensiv
#includevoid main(){
ifstream fin("NUMERE.IN");unsigned int n,k,i,x,y;float nr;fin>>n;fin>>nr;x=(unsigned int)nr;y=x+1;k=1;for(i=2;i>nr;if(nr>x && nr>y){
k++;x=(unsigned
int)nr;y=x+1;
}}couty)
thenbegin
k:=k+1;x:=trunc(nr);y:=x+1;
end;end;write(' ',k);close(fin);
end.
b)Se citete primul numr, se formeazintervalul [x,y], conform enun ului, apoi ncepndcu al doilea numr se verificapartenen a la interval.Dacnum rul citit nu aparine intervalului anterior se formeazurm torul interval.Eficiena constn faptul c nu se folosesc tablouri i are doar o structurrepetitiv .4. Varianta neintensiv
Varianta C/C++a)#includevoid main(){
ifstream fin("NUMERE.IN");unsigned int n,k,i;
float nr,x;fin>>n;fin>>nr;k=1;for(i=2;i>x;if(nr!=x ){
k++;nr=x;
}
}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
106/344
Bacalaureat 2008 Modele de rezolvare
106
b)Se memoreaz primul num r din ir, se verific fiecare element urm tor cu acesta idacnu sunt egale se schimb valoarea lui, m rindu-se i contorul cu 1.Eficiena const n faptul c nu se folosesc tablouri, sau subprograme i se parcurgelementele o singurdat .
Varianta SUBIECTUL I
1. b2.
a) 16b) 3 i 5c)
Varianta C/C++ Varianta PASCAL#includevoid main()
{unsigned int a,k,b;do{
couta;
}while(a==0);k=0;b=(a+1)*(a+2)/2;while(b>=a){
b=b-a;k++;
}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
107/344
Bacalaureat 2008 Modele de rezolvare
107
5.Pentru intensiv:Varianta C/C++ Varianta PASCAL
#include#include
struct nod{ char info[20];nod *urm;}*prim,*p;
void main(){unsigned int n,i,k=0,lung;char cuv[20];struct nod * nou;do{
coutn;
}while(n>100);
do{coutcuv;cin.get();k++;lung=strlen(cuv);
}while(cuv[0]!=cuv[lung-1]&&kurm=NULL;
for(i=k+1;iinfo,cuv);nou->urm=prim;prim=nou;}
}p=prim;while(p!=NULL){
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
108/344
Bacalaureat 2008 Modele de rezolvare
108
int a[11][8],i,j,s=0;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
109/344
Bacalaureat 2008 Modele de rezolvare
109
x[j]=aux;}
for(i=1;i>y;max=x;min=y;
for(i=2;i>x>>y;if(maxy)
min=y;}if(max
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
110/344
Bacalaureat 2008 Modele de rezolvare
110
}while(a
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
111/344
Bacalaureat 2008 Modele de rezolvare
111
2. 16 4 6 18pentru varianta intensivrespectiv: 16 4 pentru neintensiv 3.
Varianta C/C++ Varianta PASCAL
Pentru intensiv Pentru intensivunsigned int nr_prim(unsigned int x)
{ unsigned int ok=0,y,i;if(x%2==0)y=x+1;
elsey=x;
while(ok==0){for(i=2;iy){aux=x;x=y;y=aux ;}for(i=x;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
112/344
Bacalaureat 2008 Modele de rezolvare
112
cifre.Dac n final s-au schimbat valorile ini iale ale lui min1 i min2 atunci se vor afi a noilevalori .Dacnu se va afi a doar min1.b)Varianta C/C++ Varianta PASCAL#includevoid main(){
long int nr;int min1,min2;ifstream fin("numere.txt");min1=100;min2=100;while(!fin.eof()){
fin>>nr;if((nr>=10 &&
nr=-99 && nr
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
113/344
Bacalaureat 2008 Modele de rezolvare
113
ifstream fin("numere.txt");max1=-100;max2=-100;while(!fin.eof()){
fin>>nr;
if(nr%2==0)if(nr>max1 &&
nr>max2){
max1=max2;max2=nr;
}else{
if(nr>max1&& nr
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
114/344
Bacalaureat 2008 Modele de rezolvare
114
citeste x,y(numere naturale)scrie x*y
SUBIECTUL II
1. a2. c3. Varianta C/C++
struct cerc{int
abscisa,ordonata;float raza;
}x;
Varianta PASCAL
type cerc=recordabscisa,ordonata:integer;raza: real;end;var x:cerc;
4. 2 3 45 6 7
8 9 1011 12 1314 15 16
5. Intensiv:Varianta C/C++ Varianta PASCAL//se declarglobalstruct nod{
float info;nod *prec,*urm;
}*prim;//funcia ceruteste:void prelucrare(){
struct nod *nou,*p;p=prim;while(p->urm){
if(p->infoinfo=0;nou->urm=p->urm;p->urm->prec=nou;nou->prec=p;
p->urm=nou;}p=p->urm;
}if(p->infoinfo=0;
nou->urm=NULL;p->urm=nou;nou->prec=p;
}p=prim;while(p){
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
115/344
Bacalaureat 2008 Modele de rezolvare
115
p=p->urm;}
}Obs.pentru verificare se poate completacu:#include
void main(){
int n,i;struct nod *nou,*ultim,*p;coutn;prim=new nod;coutprim->info;prim->urm=prim->prec=NULL;ultim=prim;for(i=2;i>nou->info;nou->urm=NULL;nou->prec=ultim;ultim->urm=nou;ultim=nou;
}p=prim;while(p){
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
116/344
Bacalaureat 2008 Modele de rezolvare
116
for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
117/344
Bacalaureat 2008 Modele de rezolvare
117
max_cif:=0else
max_cif:=max;end;
b)Varianta C/C++ Varianta PASCAL#includeint max_cif(int [],unsigned int);void main(){
ifstream fin("numere.txt");int x[100];unsigned int i,n;fin>>n;for(i=1;i>x[i];n=n*n;coutn;for(i=1;i>nr;if((nr>=-999 && nr=100 && nr
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
118/344
Bacalaureat 2008 Modele de rezolvare
118
}
if(n==0)return 0;
elsereturn max;
}
for i:=1 to n*n dobegin
read(fin,nr);if((nr>=-999) and (
nr=100) and (nrn>>m;for(i=1;i>nr;for(i=m+1;i>nr;s=s+nr;
}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
119/344
Bacalaureat 2008 Modele de rezolvare
119
rmase (care sunt i cele cerute).Programul este eficient deoarece se parcurg o singur dat numerele din fi ier i nu sefolosesc tablouri.
Varianta SUBIECTUL I1. a2.
a) 38 47 56b) x=9, y=1 sau x=149, y=201c)
Varianta C/C++ Varianta PASCAL#includevoid main(){
unsigned int x,y,aux;coutx;couty;x=x%10;y=y%10;if(y
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
120/344
Bacalaureat 2008 Modele de rezolvare
120
numr par. Aadar primul element al matricei ar trebui sfie 2.Varianta C/C++ Varianta PASCAL#includevoid main(){
unsigned intn,i,j,a[20][20],nr;do{
coutn;}while(n>20);
nr=0;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
121/344
Bacalaureat 2008 Modele de rezolvare
121
{ok=0;
fin>>x[1]>>x[2];r=x[2]-x[1];for(j=3;j>x[j];
for(j=3;j>x[2];r=x[2]-x[1];
for(j=3;j>x[j];
for(j=3;j
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
122/344
Bacalaureat 2008 Modele de rezolvare
122
void main(){
ifstream fin("numere.txt");unsigned int n,i;unsigned long int nr;fin>>n;
for(i=1;i>nr;if(nr>100 &&
cifre_impare(nr)==1)cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
123/344
Bacalaureat 2008 Modele de rezolvare
123
l=0;}
if(l>lmax)cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
124/344
Bacalaureat 2008 Modele de rezolvare
124
coutn;
}while(n>50);for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
125/344
Bacalaureat 2008 Modele de rezolvare
125
{if(i>1)
if(x%i==0)return
i+sum(x,i-1);else
return sum(x,i-1);
elsereturn 0;
}
if(i>1) thenif(x mod i=0) then
sum:=i+sum(x,i-1)
elsesum:=sum(x,i-1)
elsesum:=0;
end;
b)#includeunsigned int sum(unsignedint,unsigned int);void main(){unsigned int i,n,j,nr,v[100],aux;do{
coutn;
}while(n==0|| n>=100);for(i=1;i9999);v[i]=sum(nr,nr/2);
}for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
126/344
Bacalaureat 2008 Modele de rezolvare
126
coutn;
}while(n==0|| n>=100);for(i=1;i9999);v[i]=sum(nr);
}for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
127/344
Bacalaureat 2008 Modele de rezolvare
127
Varianta SUBIECTUL I
1. b2. a) 249
b) 4950c) s = 0citeste v executa a=v%10 b=[v/10]%10 s=s+a*10+b daca v>0 atunci citeste vpana cand v=0scrie sd)
Varianta C/C++ Varianta PASCAL
#includevoid main(){int s,a,b,v;s=0; cin>>v;while(v!=0)
{a=v%10; b=v/10%10;s=s+a*10+b; cin>>v; }
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
128/344
Bacalaureat 2008 Modele de rezolvare
128
2. 2+3+7; 2+4+6; 2+103. Pentru intensiv:
a) Varianta C/C++ Varianta PASCALint cifra(int a){while(a)
{if(a%2==0) return a%10;a=a/10;}return -1;}
function cif (x: integer):integer;var c:integer;
begin c:=-1;if x=0 then c:=0else while ((x>0) and (c=-1)) do
beginif x mod 2= 0 then c:=x mod 10;x:=x div 10; end;
cif:=c;end;
b) #include#includeint n, v[10],i,a,c;fstream f("bac.in", ios::in);int cifra(int a)
{ if(a==0) return 0;while(a){if(a%2==0) return a%10;a=a/10;}
return -1;}void main(){f>>n;for(i=1;i>a;c=cifra(a);
if(c>=0) v[c]++; }for(i=9;i>=0;i--)
while (v[i]) {cout-1 then inc(v[c]);end;for i:=9 downto 0 dowhile v[i]>0 do beginwrite (i); dec(v[i]); end;
end.
c) Cele n numere au fost prelucrate f ra fi memorate, rezultatele (ultima cifr par )au fost memorate ntr-un vector de cifre (0..9) apoi s-a parcurs vectorul 9->0 i s-au afiatcifrele. Nu s-au folosit vectori de dimensiuni mari i nu s-a facut ordonarea cifrelorrezultate. Complexitate de ordin O(n).3. Pentru neintensiv:
Varianta C/C++ Varianta PASCAL
#includevoid main(){int i,n;coutn;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
129/344
Bacalaureat 2008 Modele de rezolvare
129
c) citeste n,knr=0; p=1
executa c=n%10 nr=nr+c*p p=p*10 daca c=k atunci nr=nr+c*p p=p*10 n=n/10pana cand n=0n=nrscrie n
d)
Varianta C/C++ Varianta PASCAL#includevoid main(){int n,p,k,c,nr;cin>>n>>k; nr=0; p=1;while(n!=0)
{c=n%10; nr=nr+c*p; p=p*10;if(c==k){nr=nr+c*p; p=p*10;}n=n/10; }
n=nr; cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
130/344
Bacalaureat 2008 Modele de rezolvare
130
SUBIECTUL III
1. c pentru varianta intensiv, respectiv b pentru neintensiv 2. -113.
Varianta C/C++ Varianta PASCAL#includevoid main(){int n,v[100],k,i,j,aux;coutn;coutk;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
131/344
Bacalaureat 2008 Modele de rezolvare
131
{int n, v[100],i;f>>n;for(i=1;i>v[i];for(i=1;i0) {n=n/10; i- -;}z=n%10; cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
132/344
Bacalaureat 2008 Modele de rezolvare
132
SUBIECTUL III
1. d pentru varianta intensiv, respectiv c pentru neintensiv 2. 193.
Varianta C/C++ Varianta PASCALvoid del (longint &x, int y){ longint p=1, x0=0;while(x){ if(x % 10 0 do beginif (x mod 10)>n;for(i=1;i>v[i];for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
133/344
Bacalaureat 2008 Modele de rezolvare
133
c)citeste nnr=0 p=1executa c=n%10 daca c>n; nr=0; p=1;while(n!=0) {c=n%10;
if(c
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
134/344
Bacalaureat 2008 Modele de rezolvare
134
a[k2-j]=aux;}} a[n]=NULL;
coutn;for(i=1;i>v[i];ok=1;x=-1;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
135/344
Bacalaureat 2008 Modele de rezolvare
135
daca y=0 atunci y=d z=d d=d+1pana cand x=1scrie y scrie zd)Varianta C/C++ Varianta PASCAL#includevoid main(){int x,d,y,z,p;cin>>x; d=2; y=0; z=0;while(x!=1) {p=0;while(x%d==0)
{p=p+1; x=x/d; }if(p!=0) {if(y=0) y=d;
z=d; }d=d+1;}
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
136/344
Bacalaureat 2008 Modele de rezolvare
136
SUBIECTUL III
1. c pentru varianta intensiv, respectiv a pentru neintensiv2. 12 pentru varianta intensivrespectiv 5 pentru neintensiv 3.
Varianta C/C++ Varianta PASCAL#includefstream f(bac.in, ios::in);int n, v[1000],i,x,ok;void sortare(){int t=0;while(!t){t=1;for(int i=1;iv[i+1])
{int aux=v[i];v[i]=v[i+1];v[i+1]=aux;t=0;}
}}void main(){f>>n;for(i=1;i>v[i];ok=1;x=-1;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
137/344
Bacalaureat 2008 Modele de rezolvare
137
{int i,s=0;for(i=1;i>n;
for(i=2;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
138/344
Bacalaureat 2008 Modele de rezolvare
138
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
139/344
Bacalaureat 2008 Modele de rezolvare
139
singurparcurgere a celor n numere) complexitate O(n).
Varianta
SUBIECTUL I1. a2. a) 5b) Algoritmul calculeaz cmmdc. Cerina b) pentru y=20 i rezultatul s fie 10 ar rezultax=90.c) citeste x,yexecuta z=x%y x=y y=zpana cand y0) {z=x%y; x=y; y=z; }cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
140/344
Bacalaureat 2008 Modele de rezolvare
140
while(k>0){max=-10000;for(i=1;imax) {max=a[i];j=i;}
s+=a[j];
a[j]=-10000; k--;}return s;}
Var i,j,aux:integer;s:longint;
beginfor i:=1 to n-1 dofor j:=i+1 to n doif a[i]>n;for(inti=1;i>x;a[x]++;}for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
141/344
Bacalaureat 2008 Modele de rezolvare
141
Varianta SUBIECTUL I
1. a2.
a) 5b) 13, 39, 65, 91c)citeste x,yrepetadaca x>y atunci x
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
142/344
Bacalaureat 2008 Modele de rezolvare
142
3.
Se citete n, apoi se citesc cele n numere succesiv n variabila x. Fiecare numar esteverificat; daceste impar, atunci se adaug la suma s.Varianta C/C++ Varianta PASCAL#include
void main(){int n,x,i; long s=0;coutn;}for (i=1;icif;cifre[cif]++;
}f.close();for (k=9;k>=0;k--)for (j=1;j
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
143/344
Bacalaureat 2008 Modele de rezolvare
143
d)
Varianta C/C++ Varianta PASCAL#include void main(){int x,y;
coutx;couty;while(x*y !=0)if(x>y) x=x%y; else y=y%x;
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
144/344
Bacalaureat 2008 Modele de rezolvare
144
P:=s;end.
4.
a)
Varianta C/C++ Varianta PASCAL
#includevoid main(){ifstream f("numere.txt");unsigned long n,i, nrapar=1;f>>n;int x,cifmax=0;for (i=1;i>x;if (x==cifmax) nrapar++;else if (x>cifmax){cifmax=x;
nrapar=1;}
}
f.close();cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
145/344
Bacalaureat 2008 Modele de rezolvare
145
SUBIECTUL II
1. a2. a3. 2, 6, 74. jogp5. ExplicaiiPlasm sub diagonala secundar, pe fiecare linie i coloan, irul de numere 1, 2, 3, , n,ncepnd cu valori de 1 pe diagonal. Iar deasupra diagonalei plasm numai valori de 1.Ideea este c fiecare linie i coloan este mp rit n dou p ri de diagonala respectiv.Asemntor se poate proceda folosind diagonala principala.Varianta C/C++ Varianta PASCAL#includevoid main(){int n,i,j,k,mat[24][24];coutn;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
146/344
Bacalaureat 2008 Modele de rezolvare
146
end.
4.
a)
Varianta C/C++ Varianta PASCAL#include
int cifre[10];void main(){unsigned long n,i;int x,cif;ifstream f("numere.txt");f>>n;for (i=1;i>x;while(x)
{cif=x%10;cifre[cif]=1;x/=10;}}
f.close();for (i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
147/344
Bacalaureat 2008 Modele de rezolvare
147
SUBIECTUL II
1. a2. d3. 2, 6, 74. fo5. ExplicaiiPlasm sub diagonala secundar, pe fiecare linie i coloan, irul de numere 1, 2, 3, , n,ncepnd cu valori de 1 pe diagonal. Iar deasupra diagonalei plasm numai valori de 1.Ideea este c fiecare linie i coloan este mp rit n dou p ri de diagonala respectiv.Asemntor se poate proceda folosind diagonala principala.Varianta C/C++ Varianta PASCAL#includevoid main(){int n,i,j,k,mat[24][24];coutn;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
148/344
Bacalaureat 2008 Modele de rezolvare
148
end.
4.
a)
Varianta C/C++ Varianta PASCAL#include
unsigned long nr[100];void main(){unsigned long n,i;int x;ifstream f("numere.txt");f>>n;for (i=1;i>x;nr[x]++;}
f.close();for (i=0;i=2) cout=z){if (x%z==y) t=z;z++;}
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
149/344
Bacalaureat 2008 Modele de rezolvare
149
SUBIECTUL II
1. a2. a3. Descendenii direci ai rdcinii sunt 1 i 7. Arborele are 4 frunze.4. Cel mai mic element din linia a doua are valoarea -3 i este situat in coloana 5.5. ExplicaiiDin irul auxiliaryse terge pe rnd cte o liter i se afieaz irul rezultat.Varianta C/C++ Varianta PASCAL#include #include void main(){char sir[40],y[40];int i;cin.getline(sir,40,'\n');int n=strlen(sir);for (i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
150/344
Bacalaureat 2008 Modele de rezolvare
150
4.
a)
Varianta C/C++ Varianta PASCAL#includeunsigned long nr[100];
void main(){unsigned long n,i,j;int x;ifstream f("numere.txt");f>>n;for (i=1;i>x;nr[x]++;}
f.close();for (i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
151/344
Bacalaureat 2008 Modele de rezolvare
151
SUBIECTUL II
1. a2. a3. Descendenii direci ai rdcinii sunt 1 i 7. Arborele are 4 frunze.4. Cel mai mic element din linia a doua are valoarea 1 i este situat n coloana 1.5. ExplicaiiDin irul auxiliaryse terge pe rnd cte o liter i se afieaz irul rezultat.Varianta C/C++ Varianta PASCAL#include #include void main(){char sir[40],y[40];int i;cin.getline(sir,40,'\n');int n=strlen(sir);for (i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
152/344
Bacalaureat 2008 Modele de rezolvare
152
#includeunsigned long nr[100];void main(){unsigned long n,i,j;int x;ifstream f("numere.txt");
f>>n;for (i=1;i>x;nr[x]++;}
f.close();for (i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
153/344
Bacalaureat 2008 Modele de rezolvare
153
SUBIECTUL II
1. b2. a3. 64. 135. ExplicaiiSirul de lungime n este parcurs caracter cu caracter. Pentru fiecare vocala se afla codulASCII si se mareste cu o unitate. In sir, in locul vocalei se pune caracterul ce are noul codASCII determinat.Varianta C/C++ Varianta PASCAL#include#includevoid main(){char sir[100];cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
154/344
Bacalaureat 2008 Modele de rezolvare
154
} pozv:=pozv+1;v[pozv]:=x;end;
end;close(f);for i:=1 to pozv do write(v[i],' ');
end.4.
a)
Varianta C/C++ Varianta PASCALvoid cifre(unsigned long nr,int&nc, int &sc)
procedure cifre(x:longint;var nc,sc:integer);
b)int subp(unsigned long x){int nc,sc;cifre(x,nc,sc);
int media=sc/nc;int ok=0;while (!ok && x){ int cif=x%10;
ok=cif==media;x/=10;
}return ok;
}
function subp(x:longint):integer;var nc,sc,media,cif,ok:integer;begin
cifre(x,nc,sc);media:=sc div nc;ok:=0;while (ok=0) and (x>0) dobegincif:=x mod 10;if cif=media then ok:=1;x:=x div 10;end;subprog:=ok;end;
Varianta SUBIECTUL I
1. c2.
a) 1b) 60c)citeste ns
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
155/344
Bacalaureat 2008 Modele de rezolvare
155
n=n/10;}if (s!=0) nr=1;cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
156/344
Bacalaureat 2008 Modele de rezolvare
156
int nrd=2;for (int d=2;d
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
157/344
Bacalaureat 2008 Modele de rezolvare
157
d)
Varianta C/C++ Varianta PASCAL#include void main(){unsigned int n,max;
coutn;max=0;do{ n/=10 ;if (max
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
158/344
Bacalaureat 2008 Modele de rezolvare
158
{f>>x ;y=x; g=0 ;while (y && !g){if (y%10==k) g=1;y/=10;}
if (g) {cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
159/344
Bacalaureat 2008 Modele de rezolvare
159
sfarsit cat timpscrie max
d)
Varianta C/C++ Varianta PASCAL#include
void main(){unsigned int n,max;coutn;max=0;do{ n/=10 ;if (max
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
160/344
Bacalaureat 2008 Modele de rezolvare
160
3.
Varianta C/C++ Varianta PASCAL#includefstream f(bac.txt,ios::in);void main()
{unsigned int n,x,y,g,k,nr=0,i;f>>n;cin>>k;
for (i=1;i>x ;y=x; g=0 ;while (y && !g){if (y%10==k) g=1;y/=10;}
if (g) {cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
161/344
Bacalaureat 2008 Modele de rezolvare
161
c)citeste n (numar natural nenul)i1repetaciteste x (numar natural)nr0cat timp x>0 executanrnr*100+x%10x[x/100]
sfarsit cat timpcat timp nr>0 executaxx*10+nr%10nr[nr/10]
sfarsit cat timpscrie xii+1pana cand i>n
d)
Varianta C/C++ Varianta PASCAL#include void main(){unsigned int n,x,nr;coutn;for (i=1;i>x;nr=0;while (x>0){nr=nr*100+x%10;x/=100;}
while (nr>0){x=x*10+nr%10;nr/=10;}cout0 dobeginx:=x*10+nr%10;nr:=nr div 10;
end;write(x, );end;end.
SUBIECTUL II
1. d2. a3. 34. sqrt(a.x*a.x+a.y*a.y)5.
Varianta C/C++ Varianta PASCAL#includevoid main(){unsigned int n,i,j,a[10][10];coutn;for (i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
162/344
Bacalaureat 2008 Modele de rezolvare
162
for(j=1;j>b>>n;if (a>b) {a=a+b;b=a-b;a=a-b;}
for (i=a;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
163/344
Bacalaureat 2008 Modele de rezolvare
163
i=1;while (i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
164/344
Bacalaureat 2008 Modele de rezolvare
164
nr/=10;}
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
165/344
Bacalaureat 2008 Modele de rezolvare
165
end;for i:=a to b do
if div1(i,n)=1 then begininc(x);v[x]:=i;end;
for i:=1 to x dowrite(v[i], );
end.
4.
Varianta C/C++ Varianta PASCAL#includevoid main(){unsigned int v[5000],n,i,x,a,j,nr;fstream f(bac.in,ios::in);fstream g(bac.out,ios::out);f>>n;for (i=1;i>v[i];do{x=1;for (i=1;iv[i+1]){a=v[i];v[i]=v[i+1];v[i+1]=a;x=0;}
}while (x==1);i=1;while (i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
166/344
Bacalaureat 2008 Modele de rezolvare
166
pana cand x=0repetaxx*10+k%10k[k/100]
pana cand k=0scrie x
d)Varianta C/C++ Varianta PASCAL#include void main(){unsigned int x,k;coutx;k=0;while (x){k=k*10+x%10;x=x/10;}
while (k)
{x=x*10+k%10;k=k/100;}cout>n;
program trei;var a,b,n,i,x:word;v:array[1..100] of word;
begin
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
167/344
Bacalaureat 2008 Modele de rezolvare
167
if (a>b) {a=a+b;b=a-b;a=a-b;}while (a%n) a++;i=a/n;while (i*n
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
168/344
Bacalaureat 2008 Modele de rezolvare
168
Varianta SUBIECTUL I
1. b2.
a) 204b) 90807c)citeste x (numar natural nenul)k0repetakk*10+x%10x[x/10]
pana cand x=0repetaxx*10+k%10k[k/100]
pana cand k=0scrie x
d)
Varianta C/C++ Varianta PASCAL#include void main(){unsigned int x,k;coutx;k=0;while (x){k=k*10+x%10;x=x/10;}
while (k){x=x*10+k%10;k=k/100;}cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
169/344
Bacalaureat 2008 Modele de rezolvare
169
SUBIECTUL III
1. c2. 43.
Varianta C/C++ Varianta PASCAL#includevoid main(){unsigned int a,b,n,i,x=0,v[100];cin>>a>>b>>n;if (a>b) {a=a+b;b=a-b;a=a-b;}while (a%n) a++;i=a/n;while (i*n
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
170/344
Bacalaureat 2008 Modele de rezolvare
170
beginread(f,x);cmax(x,b);if b>p then p:=b;
end;write(p);
end.
Varianta SUBIECTUL I
1. b2. a) 2b) Se poate citi orice set de patru valori care conine la cifra zecilor cifra 9. Exemplu: 19,
192, 396, 999c) i1
executa
citeste x
c[x/10]%10daca c
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
171/344
Bacalaureat 2008 Modele de rezolvare
171
dup care se elimin folosind un ir auxiliarm. Algoritmul se repetpentru ultima apari iea unei vocale parcurgnd irul de la sfrit lanceput.
dup care se elimin folosind un irauxiliar m. Algoritmul se repet pentruultima apariie a unei vocale parcurgndirul de la sfrit la nceput.
#include#includevoid main(){char s[21],*p, voc[]="aeiou",m[21];couts;int ok=1;for(int i=0;i=0&&ok;i--)
if(strchr(voc,s[i]))ok=0;
m[0]=0;strncat(m,s,i+1);strcat(m,s+i+2);strcpy(s,m);cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
172/344
Bacalaureat 2008 Modele de rezolvare
172
mulimea numerelor, iar cele care sunt divizori ale lui nvor fi introduse n vectorul v pepoziia k.
#includeunsigned int div(unsigned int x,unsigned int y)
{if(x%y==0)return 1;
return 0;}
void main(){unsigned int v[500],a,b,n,k,i;do{coutn;couta;coutb;
}while(a>999||b>999||n>999);if(b
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
173/344
Bacalaureat 2008 Modele de rezolvare
173
f.close();g.close();
}
write(g,i,' ');close(g);close(f);
end.
Varianta SUBIECTUL I
1. d2. a) 4220b) Orice numr format numai din cifre pare cu ultima cifrdiferit de 0: 2468 c)citeste x
(numar natural nenul)
z
0
cat timp x0 executacx%10daca c%20 atunci
zz*10+c-1altfel
zz*10+csfarsit dacax[x/10]
sfarsit cat timpscrie z
d) Varianta C/C++ Varianta PASCAL#include
unsigned int x,z,c;void main(){cin>>x;do{c=x%10;if(c%2==1)z=z*10+c-1;
elsez=z*10+c;
x=x/10;}while(x);
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
174/344
Bacalaureat 2008 Modele de rezolvare
174
caracter din sirul s din pozitia i se adauga de i+1 ori la sirul s1.
pentru fiecare caracter verificm dacnueste contrazispresupunerea ini ial.
Varianta C/C++ Varianta PASCAL
Program intensiv#include
#includechar s[53],s1[255];void main(){cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
175/344
Bacalaureat 2008 Modele de rezolvare
175
vector, corespunztoare laturilor i 2 valoricorespunztoare celor doua diagonale, egalecu maximul din vector.Varianta C/C++ Varianta PASCAL
a) Pentru intensivunsigned long dist2(int xa,int ya,intxb,int yb){return pow(xb-xa,2)+pow(yb-ya,2);}
a) Pentru intensivfunctiondist2(xa,ya,xb,yb:integer):longint;begindist2:=sqr(xb-xa)+sqr(yb-ya) ;
end;
b)#include#includeint xa,xb,xc,xd,ya,yb,yc,yd;unsigned long a[6],min,max,k1=1,k2=1;unsigned long dist2(int xa,int ya,int
xb,int yb){return pow(xb-xa,2)+pow(yb-ya,2);}void main(){cin>>xa>>ya>>xb>>yb>>xc>>yc>>xd>>yd;a[0]=dist2(xa,ya,xb,yb);a[1]=dist2(xa,ya,xc,yc);a[2]=dist2(xa,ya,xd,yd);a[3]=dist2(xb,yb,xc,yc);a[4]=dist2(xb,yb,xd,yd);a[5]=dist2(xc,yc,xd,yd);min=a[0];max=a[0];for(int i=1;ia[i])
{min=a[i];k1=1;}
elseif(min==a[i])k1++;
if(max
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
176/344
Bacalaureat 2008 Modele de rezolvare
176
end.
Pentru neintensiv: Pentru neintensiv:a)unsigned int divizor(unsigned int k)
{unsigned int d=2;while(k%d)d++;
return d;}
a)function divizor(k:word):word;
var d:word;begin
d:=2;while(k mod d0) dod:=d+1;
divizor:=d;end;
b)
#includeunsigned int k,n,s;unsigned int divizor(unsigned int a)
{unsigned int d=2;while(a%d)d++;
return d;}void main(){ifstream f("date.in");f>>n;for(int i=1;i>k;s+=divizor(k);
}
f.close();coutn;for(int i=1;i>a[i];f.close();
for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
177/344
Bacalaureat 2008 Modele de rezolvare
177
for(int j=i+1;j
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
178/344
Bacalaureat 2008 Modele de rezolvare
178
cat timp x%2=0 executax
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
179/344
Bacalaureat 2008 Modele de rezolvare
179
void main ( ){char s[101], b[]="aeiou";int n, i, nr=0;printf(%d n=); //coutn;for (i=1; i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
180/344
Bacalaureat 2008 Modele de rezolvare
180
Se determinnum rul maxim de cifre distinctepentru fiecare numr din fisier. Se afieaznumrul corespunztor acestui maxim
componente distincte..
Varianta C/C++ Varianta PASCAL
a) Pentru intensiv Pentru intensivvoid dist(unsigned long a, int &b){int v[10];for (int i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
181/344
Bacalaureat 2008 Modele de rezolvare
181
beginb:=0;dist(x[i],b);if (b=max) thenwrite(x[i],' ');
end;
end.
Pentru neintensiv Pentru neintensiva)int dist (long int a){int w=0, i, v[9];while(a){v[++w]=a%10;for (i=1; in;for (i=1; i>a[i];for (i=1; i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
182/344
Bacalaureat 2008 Modele de rezolvare
182
cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
183/344
Bacalaureat 2008 Modele de rezolvare
183
{printf(%d n=); //coutn;
}while(n100);for(int i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
184/344
Bacalaureat 2008 Modele de rezolvare
184
{int x,z=0,p=1,c;coutx;do{
c=x%10;
if(c%2!=0){
z=z+c*p;p=p*10;
}x=x/10;
}while(x!=0);cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
185/344
Bacalaureat 2008 Modele de rezolvare
185
Program intensiv
#includetypedef struct nod{
unsigned int info;nod* urm;};nod * prim;unsigned int n,a,r;void creare(nod * &prim){nod *ultim, *nou;prim=new nod;prim->info=a;prim->urm=NULL;ultim=prim;for(int i=2;iinfo=a+(i-1)*r;nou->urm=NULL;ultimo->urm=nou;ultim=nou;}}void afisare(nod* p){nod *q;q=p;while(q){cout10);
do{coutr;}while(r>10);creare(prim);afisare(prim);}
Program intensivprogram bac53;type adresa=^Nod;
nod=recordinfo:word;
urm:adresaend;var prim:adresa;
n,a,r:word;procedure creare(var prim:adresa);
var nou,ultim:adresa;i:word;begin
new(prim);prim^.info:=a;prim^.urm:=nil;ultim:=prim;for i:=2 to n do
beginnew(nou);nou^.info:=a+(i-1)*r;nou^.urm:=nil;ultim^.urm:=nou;ultim:=nou;
end;end;procedure afisare(p:adresa);var q:adresa;beginq:=p;while(qnil) dobeginwrite(q^.info,' ');q:=q^.urm;end;
end;begin
repeatwrite('n=');read(n);until(n
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
186/344
Bacalaureat 2008 Modele de rezolvare
186
int a[10][20],aux;coutm;coutn;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
187/344
Bacalaureat 2008 Modele de rezolvare
187
f>>n;for(i=1;i>a[i];f.close();i=1;while(i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
188/344
Bacalaureat 2008 Modele de rezolvare
188
4. Pentru intensiv: Pentru intensiv :
Varianta C/C++ Varianta PASCAL#includevoid main()
{unsigned int n, i, man,j,a[100];coutn;for(i=1;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
189/344
Bacalaureat 2008 Modele de rezolvare
189
d) Varianta C/C++ Varianta PASCAL#include#include#includevoid main(){unsigned int n,s,p,c,i;do{scanf(%u,&n); //cin>>n;} while (n0){c=n%10;if(c%2==0){
p=1;for(i=2;in;
}while(n10);do{
scanf(%d,&x); //cin>>x;}while(x999);c3=x%10;x=x/10;c2=x%10;c1=x/10;for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
190/344
Bacalaureat 2008 Modele de rezolvare
190
for(i=0;i
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
191/344
Bacalaureat 2008 Modele de rezolvare
191
inv=0;while(aa!=0){
inv=inv*10+aa%10;aa=aa/10;
}if(inv==x)
ok=1;if(k%2==0){
i++;aa=a-i;
}else{
j++;aa=a+j;
}k++;
}b=inv;
}
begininv:=inv*10+aa mod 10;aa:=aa div 10
end;if inv=x then
ok:=1;
if (k mod 2=0)begini:=i+1; aa:=a-i
endlelsebeginj:=j+1; aa:=a+j
end;k:=k+1end;b:=inv;
end;
b)#include#includevoid main(){
clrscr();unsigned long x,y,n,i;ifstream f("date.in");f>>n;for(i=0;i>x;pal(x,y);printf(%d,y);//cout
-
5/20/2018 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008
192/344
Bacalaureat 2008 Modele de rezolvare
192