Documente Academic
Documente Profesional
Documente Cultură
SUBIECTUL I
1. d
2.
a) 963
b) 61, 65, 67
c)
citete n (numr
natural) z0
p1
dac n<>0 atunci
repet
cn%10
n[n/10]
dac c%3=0 atunci
zz+p*(9-c)
pp*10
pn cnd n=0
d) Varianta C/C++
#include<iostream.h>
void main()
{
unsigned int n,c,z=0,p=1;
cout<<n=;cin>>n;
while(n>0)
{
c=n%10;
n=n/10;
if(c%3==0)
{
z=z+p*(9-
c); p=p*10;
}
}
cout<<z;
}
SUBIECTUL II
1. c
2. d
3.
Varianta C/C++
C.x = (A.x + B.x)/2;
C.y = (A.y + B.y)/2;
4.
Pentru intensiv
nlimea arborelui este 3 Frunzele
arborelui sunt: 1, 2, 3 i 8
Pentru neintensiv
Nodul cu cei mai muli fii este 6.
Varianta <1>
Varianta PASCAL
var n,c,z,p:word;
begin
z:=0;p:=1;
write(n=);readln(n);
while n>0 do
begin
c:=n mod 10;
n:=n div 10;
if c mod 3=0 then
begin
z:=z+p*(9-c);
p:=p*10;
end
end;
write(z)
end.
Varianta PASCAL
C.x := (A.x + B.x)/2;
C.y := (A.y + B.y)/2;
5
Bacalaureat 2008 Modele de rezolvare
Frunzele arborelui sunt: 1, 2, 3 i 8
5.
Varianta C/C++
#include<iostream.h>
void main()
{
unsigned int
n,m,i,j,A[11][11];
do
{cout<<n=;cin>>n;
}
while(n<2 || n>10);
do
{cout << m; cin>> m;
}
while ( m<2 || m>10);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if(i<j) A[i][j]=i;
else A[i][j]=j;
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
cout <<A[i][j]<<` `;
cout <<`\n`;
}
}
Varianta PASCAL
var n,m,,i,j:byte;
A:array[1..10,1..10] of
byte; begin
repeat
write(n=);readln(n);
until (n>=2) and (n<=10);
repeat
write(m=);readln(m);
until (m>=2) and (m<=10);
for i:=1 to n do
for j:=1 to m do
if i<j then A[i,j]:=i
else A[i,j]:=j;
for i:=1 to n do
begin
for j:=1 to m do
write(A[i,j], );
writeln;
end
end.
SUBIECTUL III
1. b
2. 12345 pentru intensiv
6 pentru neintensiv n cazul n care prima condiie a funciei n C/C++ este n= =0
3.
Varianta C/C++ Varianta PASCAL
Pentru intensiv
var f:text;
# include stdio.h
void main() n,a:word;
{ este:boolean;
unsigned n,a,este=0; begin
FILE *f; assign(f,bac.txt);
f=fopen(bac.txt,r); reset(f);
do repeat
{ printf(n=) write(n=);readln(n);
scanf(%d, &n); until (n<>0) and (n<=999);
} este:=false;
while (n==0 || n>999); while not(eof(f)) do
while(!feof(f)) begin
{ read(f,a);
fscanf(f,%d,&a); if a mod n=0 then
if(a%n==0) begin
{printf(%d ,a); write(a, );
este=1; este:=true;
} end;
} end;
if(este==0) if not este then
printf(NU write(NU EXISTA);
6
Bacalaureat 2008 Modele de rezolvare
EXISTA);
fclose(f);
}
4. a)
Varianta C/C++
Pentru intensiv
int sub (int v[100],int n,int
a)
{int i; nr=0 ;
for(i=0; i<n; i++)
if (v[i]<a)
nr++; return nr;
}
La neintensiv se modific
doar condiia v[i]==a n loc
de v[i]<a
b)
Varianta C/C++
Pentru intensiv
#include <iostream.h>
#include <conio.h>
int v[100],int n, int a;
{
int i, nr=0 ;
for(i=0;i<n;i++)
if(v[i]<a) nr++ ;
return nr;
}
void main()
{
int
i,j,este=1; do
{
cout<<n= ; cin>>n ;
}
while(n==0 || n>100);
for(i=0;i<n;i++)
do
{
cout <<v[<<i<<]=;
cin>>v[i] ;
}
while(v[i]<-9999 || v[i]>9999);
for(i=0;i<n;i++)
t[i]=sub(v,n,v[i]);
i=0;
while(i<n && este)
{
este=0;
for(j=0;j<n;j++)
if(i==t[j]) este=1;
i++;
}
close(f);
end.
Varianta PASCAL
type vector=array[1..100] of integer;
function
sub(v:vector;n:integer;a:integer):integer;
var i,nr:integer;
begin
nr:=0;
for i:=1 to n do
if v[i]<a then
nr:=nr+1; sub:=nr;
end;
La neintensiv se modific doar condiia
v[i]=a n loc de v[i]<a
Varianta PASCAL
type vector=array[1..100] of integer;
var v:vector;
n,a,i,j:integer;
este:boolean;
function
sub(v:vector;n:integer;a:integer):integer;
var i,nr:integer;
begin
nr:=0;
for i:=1 to n do
if v[i]<a then
nr:=nr+1; sub:=nr;
end;
begin
este:=true;
repeat
write(n=);readln(n);
until (n<>0) and (n<=100);
for i:=1 to n do
repeat
write(v[,i,]=);
readln(v[i]);
until (v[i]>=-9999)and(v[i]<=9999);
for i:=1 to n do
t[i]:=sub(v,n,v[i]);
i:=0;
while (i<n) and este=true
do begin
este:=0;
for j:=1 to n do
if i=t[j] then este:=true;
i:=i+1;
end;
if este=true then write(DA)
else write(NU);
7
Bacalaureat 2008 Modele de rezolvare
if(este) cout<<DA; end.
else cout <<NU;
}
Pentru neintensiv
#include <iostream.h> type vector=array[1..100] of integer;
#include <conio.h> var v:vector;
int v[100],int n, int a; n,a,i:integer;
{ function
int i, nr=0 ; sub(v:vector;n:integer;a:integer):integer;
for(i=0;i<n;i++) var i,nr:integer;
if(v[i]==a) nr++ ; begin
return nr; nr:=0;
} for i:=1 to n do
void main()
if v[i]=a then nr:=nr+1;
sub:=nr;
{ end;
int i; begin
Do repeat
{ write(n=);readln(n);
cout<<n= ; cin>>n ; until (n<>0) and (n<=100);
} for i:=1 to n do
while(n==0 || n>100); repeat
for(i=0;i<n;i++) write(v[,i,]=);
Do readln(v[i]);
{ until (v[i]>=-9999)and(v[i]<=9999);
cout <<v[<<i<<]=; for i:=1 to n do
cin>>v[i] ; t[i]:=sub(v,n,v[i]);
} i:=0;
while(v[i]<-9999 || v[i]>9999); while (i<n) and (t[i]=1) do i:=i+1;
for(i=0;i<n;i++) if i<n then write(NU)
t[i]=sub(v,n,v[i]); else write(DA);
i=0; end.
while(i<n && t[i]==1) i++;
if(i<n) cout<<NU;
else cout <<DA;
}