Вы находитесь на странице: 1из 6

Varianta <4>

SUBIECTUL I
1. d
2.
a) 16 14 12 10 8 6
b) perechile de valori care pot fi citite pentru a i b
sunt: -10, 0 0, -10 -11, 0 0, -11 -10, 1 1, -10 -11, 1 1, -11








c) citete a,b (numere ntregi)
dac a<b atunci
sa; ab; bs;

xa
ct timp x>=b execut
dac x%2=0 atunci
scrie x,

xx-1


d) Varianta C/C++ Varianta PASCAL
#include<iostream.h> var a,b,x,s:integer;
void main() begin
{ write(a=);readln(a);
int a,b,x,s; write(b=);readln(b);
cout<<a=;cin>>a; if a<b then
cout<<b=;cin>>b; begin
if (a<b) s:=a;a:=b;b:=s;
{ end;
s=a; a=b; b=s; for x=a downto b do
} if x%2=0 then
for(x=a;x=b;x--) write(x, );
if(x%2==0) end.
cout<<x<< ;
}
17
Bacalaureat 2008 Modele de rezolvare


SUBIECTUL II
1. b
2. a
3.
2 vrf
1 baz
4.
Varianta C/C++
Pentru intensiv
if (s[i]>=97 && s[i]<=122)
{ for(j=i;j<strlen(s)-
1;j++) s[j]=s[j+1];
s[strlen(s)-1]=\0;
}
else i++;












Varianta PASCAL

if (s[i]>=a) and (s[i]<=z) then
delete(s,i,1)
else
i:=i+1;
Pentru neintensiv
if (s[i]>=97 && s[i]<=122) if (s[i]>=a and s[i]<=z) then
s[i]=W; s[i]:=W;
i++; i:=i+1;
5.
Varianta C/C++ Varianta PASCAL
#include<iostream.h> var a:array[1..24,1..24] of byte;
void main() n,i,j:byte;
{ unsigned a[24],n,i,j; begin
do repeat
{ write(n=);readln(n);
cout<<n=; cin>>n; until (n>=2) and (n<=24);
} for i:=1 to n do a[i,n+1-i]:=0;
while (n<2||n>24); for i:=1 to n do
for(i=0;i<n;i++) a[i][n-1-i]=0; for j:=1 to n do
for(i=0;i<n;i++) if j<>n+1-i then
for(j=0;j<n;j++) a[i,j]:=n-i;
if (j!=n-1-i) for i:=1 to n do
a[i][j]=n-i; begin
for(i=0;i<n;i++) for j:=1 to n do
{ for(j=0;j<n;j++) write(a[i,j], );
cout<<a[i][j]<< ; writeln;
cout<<\n; end;
} end.
}

SUBIECTUL III
1. c
2. 01111 pentru intensiv i *4062 pentru neintensiv
3.
Varianta C/C++ Varianta PASCAL

pentru intensiv
var f:text;

#include stdio.h

void main() a:array[1..100] of integer;
{ int n,a[100],x,i,aux,inv; n,i,x,aux:integer;

FILE *f; inv:boolean;

f=fopen(NR.TXT,r); begin

n=0; assign(f,NR.TXT);

while (!feof(f)) reset(f);

18
Bacalaureat 2008 Modele de rezolvare

{
fscanf(f,%d,&x); if
(x<100) a[n++]=x;
}
fclose(f);
if (n==0)
printf(NU
EXISTA); else
{//ordonam vectorul
descrescator do
{ inv=0; for(i=0;i<n-
1;i++)
if (a[i]<a[i+1])
{ aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
inv=1;
}
} while (inv);
for(i=0;i<n;i++)
printf(%d ,a[i]);
}
}







4. a)
Varianta C/C++
int cif(long a, int b)
{
int nr=0;
while (a!=0)
{
if (a%10==b)
nr++; a=a/10;
}
return nr;
}

b)
Varianta C/C++
Pentru intensiv
#include <iostream.h>
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;
}

n:=0;
while not (eof(f))
do begin
read(f,x);
if x<100
then begin
n:=n+1;
a[n]:=x;
end;
end;
close(f);
if n=0 then
writeln(NU EXISTA)
else
begin
repeat
inv:=false;
for i:=1 to n-1 do if
a[i]<a[i+1] then
begin
aux:=a[i];
a[i]:=a[i+1];
a[i+1]:=aux;
inv:=true;
end; until
not inv;
for i:=1 to n do
write(a[i], );
end;
end.

Varianta PASCAL
function
cif(a:longint;b:integer):integer;
var nr:integer;
begin
nr:=0;
while (a<>0)
do begin
if (a mod 10=b) then
nr:=nr+1; a:=a div 10;
end;
cif:=nr;
end;

Varianta PASCAL

Var x:array[1..8] of integer;
n,m,numar:longint;
i,j,p,t:integer;
ok:boolean;
function
cif(a:longint;b:integer):integer;
var nr:integer;
begin
nr:=0;
while (a<>0)
do begin
if (a mod 10=b) then nr:=nr+1;
19
Bacalaureat 2008 Modele de rezolvare

void main() a:=a div 10;
{ end;
int i,ok=1,j,p=0,x[8],t; cif:=nr;
do end;
{ begin
cout<<n=; cin>>n; repeat
long m=n; write(n=);readln(n);
while (m!=0 && ok) m:=n;ok:=true;
{if(m%10==0) ok=0; while (m<>0) and ok do
m=m/10;} begin
} if m%10=0 then ok:=false;
while ((n<10000000 || m:=m/10;
n>99999999)|| end;
ok==0); until
for(i=1;i<=9;i++) ((n>=10000000)and(n<=99999999))and
{t=cif(n,i); ok;
if (t!=0) ok:=true;
if (t%2!=0)ok=0; p:=0;
else for i:=1 to 9 do
for(j=1;j<=t;j++) begin
{ x[p]=i; t:=cif(n,i);
p++; if t<>0 then
} if t mod 2<>0
} then ok:=false
if(ok) else
{i=0; for j:=1 to t do
do begin
{ for(j=i+1;j<8-i;j++) p:=p+1;
x[j]=x[j+1]; x[p]:=i;
x[7-i]=x[i]; end;
i=i+1; end;
} while (i<=2); if ok then
numar=0; begin
for(i=0;i<8;i++) i:=1;
numar=numar*10+x[i]; repeat
cout<<numar; for j:=i+1 to 9-i do
} x[j]:=x[j+1];
else cout<<0; x[9-i]:=x[i];
} i:=i+1;
until i>3;
numar:=0;
for i:=1 to 8 do
numar:=numar*10+x[i];
writeln(numar);
end
else writeln(0);
end.
Pentru neintensiv
#include <iostream.h> var x:array[1..8] of integer;
long n;int i; n:longint;
int cif(long a, int b) i,j,t,numar:integer;
{ function
int nr=0; cif(a:longint;b:integer):integer;
while (a!=0) var nr:integer;
{ begin
if (a%10==b) nr++; nr:=0;
a=a/10; while (a<>0) do
} begin
return nr; if (a mod 10=b) then nr:=nr+1;
} a:=a div 10;
20
Bacalaureat 2008 Modele de rezolvare

void main() end;
{ cif:=nr;
do end;
{ begin
cout<<"dati n(cu cel putin o repeat
cifra write('dati n(cu cel putin o
impara)="; cin>>n; cifra impara)=');readln(n);
} while (n<0 || n>99999999); until (n>=0) and (n<=99999999);
int j,t,numar=0; numar:=0;
for(i=1;i<=9;i=i+2) i:=1;
{t= cif(n,i); while i<=9 do
if (t!=0) begin
for(j=1;j<=t;j++) t:=cif(n,i);
numar=numar*10+i; if (t<>0) then
} for j:=1 to t do
if(numar==0) cout<<"numarul nu are numar:=numar*10+i;
cifre impare"; i:=i+2;
else cout<<numar; end;
} if numar=0 then write('numarul nu
are cifre impare')
else writeln(numar);
end.

Вам также может понравиться