P. 1
Rezolvari informatica intensiv si neintensiv bacalaureat 2008

Rezolvari informatica intensiv si neintensiv bacalaureat 2008

4.9

|Views: 381,098|Likes:
Published by MelittaKrestel
Rezolvari informatica intensiv si neintensiv bacalaureat 2008
Rezolvari informatica intensiv si neintensiv bacalaureat 2008

More info:

Published by: MelittaKrestel on Feb 25, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

12/05/2015

pdf

original

SUBIECTUL I
1.
a
2.
a)
9
b) 13
c)

citeşte n (număr natural)
s← -1
┌dacă n>0 atunci
│ ┌repetă
│ │ ┌dacă n%10>s atunci
│ │ │ s←n%10
│ │ │ altfel
│ │ │ s←11
│ │ └■
│ │ n←[n/10]
│ └până când n=0
└■

scrie s

d) Varianta C/C++

Varianta PASCAL

#include
void main()
{

unsigned int n,s;
cout<<”n=”;cin>>n;
s=-1;
while (n>0)
{

if (n%10>s)
s=n%10;

else

s=11;
n=n/10;

}

var n,s:word;
begin

write(‘n=’);readln(n);
s:=-1;
while n>0 do
begin

if n mod 10>s then

s:=n mod 10

else

s:=11;

n:=n div 10;

end;
write(s)

end.

Bacalaureat 2008 – Modele de rezolvare

25

cout<

}

SUBIECTUL II
1.
c pentru intensiv şi a pentru neintensiv
2.
b pentru intensiv şi c pentru neintensiv
3.
12 noduri pentru intensiv şi 14 muchii pentru neintensiv
4. Pentru intensiv

8 componente conexe

Pentru neintensiv

16

5.
Varianta C/C++

Varianta PASCAL

#include
#include
#include
void main()
{ char t[255];
unsigned i,l,pl=1;
cout<<”text:”;
cin.get(t,256);
l=strlen(t);
for(i=0;i if (pl && t[i]!=’ ‘)
{ t[i]=toupper(t[i]);
pl=0;

}
else

if (t[i]==’ ‘)
pl=1;

cout<

}

Var t:string;
i,l:word;
pl:boolean;

begin

write('text:');readln(t);
l:=length(t);
pl:=true;
for i:=1 to l do
if pl and (t[i]<>' ') then
begin

t[i]:=chr(ord(t[i])-32);
pl:=false;

end
else

if t[i]=' ' then pl:=true;

write(t)

end.

SUBIECTUL III
1.
a
2. 7 pentru intensiv şi 143 pentru neintensiv
3.
Varianta C/C++

Varianta PASCAL

Pentru intensiv

#include
void main()
{ unsigned a[100],n,i,s=0;
do
{ cout<<”n=”;
cin>>n;

type vector=array[1..100] of word;
var a:vector;
n,i,s:word;

begin

repeat

write('n=');

10

1

2

3

4

5

6

7

8

9

11

12

Bacalaureat 2008 – Modele de rezolvare

26

}
while (n<2 || n>100);
for(i=0;i do
{ cout<<”a[“< cin>>a[i];

}

while (a[i]>9999);
for(i=0;i s=s+a[i];
cout< for(i=1;i {

s=s-a[n-i];
cout<

}

}

readln(n);
until (n>=1)and(n<=100);
for i:=1 to n do
repeat
write('a[',i,']=');
readln(a[i]);
until (a[i]<=9999);
for i:=1 to n do s:=s+a[i];
writeln(s);
for i:=2 to n do
begin

s:=s-a[n+2-i];
writeln(s);

end;

end.

Pentru neintensiv

a)

void s1(int &a,int &b)

b)

int s2(int a[100],int p,int q)
{ int i=p ;
if(p {while (i<=q && a[i]%5!=0) i++;
if (i<=q) return i;
else return -1;
}
else
{while(i>=q&& a[i]%5!=0) i--;
if(i>=q) return i;
else return -1;

}

}

c)

#include
ofstream f(“bac.txt”);
int a[100],n,p1,p2,i;
void s1(int &a,int &b)
{int c;
c=a;a=b;b=c;
}
int s2(int a[100],int p,int q)
{ int i=p ;
if(p {while (i<=q && a[i]%5!=0) i++;
if (i<=q) return i;
else return -1;
}
else
{ while (i>=q && a[i]%5!=0) i--;
if (i>=q) return i;
else return -1;
}

a)

procedure

s1(var

a:integer;var

b:integer);

b)

function
s2(a:vector;p,q:integer):integer;
var i:integer;
begin
i:=p;
if(p begin

while (i<=q) and (a[i] mod 5<>0)

do

i:=i+1;
if i<=q then s2:=i
else s2:=-1;

end
else
begin

while (i>=q) and (a[i] mod 5<>0)

do

i:=i-1;
if i>=q then s2:=i
else s2:=-1;

end;

end;

c)

type vector=array[1..100] of integer;
var a:vector;

n,p1,p2,i:integer;

procedure

s1(var

a:integer;var

b:integer);
var c:integer;
begin

c:=a;a:=b;b:=c;

end;
function
s2(a:vector;p,q:integer):integer;
var i:integer;
begin
i:=p;
if(p

Bacalaureat 2008 – Modele de rezolvare

27

}
void main( )
{ do

{ cout<<'n=';cin>>n;
}

while (n<1 || n>=100);
for(i=0;i do

{ cout<<'a['< cin>>a[i];

}

while (a[i]<-9999||a[i]>9999);
p1=s2(a,0,n-1);p2=s2(a,n-1,0);
if(p1= =-1||p2= =-1) f<<0;
else
{s1(a[p1],a[p2]);
for(i=0;i

}
f.close();
}

begin

while (i<=q) and (a[i] mod 5<>0)

do

i:=i+1;
if i<=q then s2:=i
else s2:=-1;

end
else
begin

while (i>=q) and (a[i] mod 5<>0)

do

i:=i-1;
if i>=q then s2:=i
else s2:=-1;

end;

end;
begin
repeat

write('n=');
readln(n);
until (n>=1)and(n<=100);
for i:=1 to n do
repeat
write('a[',i,']=');
readln(a[i]);
until

(a[i]>=-

9999)and(a[i]<=9999);
p1:=s2(a,1,n);p2:=s2(a,n,1);
assign(f,’Bac.txt’);
rewrite(f);
if (p1=-1) or (p2=-1) then
write(f,0)
else
begin

s1(a[p1],a[p2]);
for i:=1 to n do write(f,a[i],'

');

end;
close(f);
end.

4. a)
Varianta C/C++

Varianta PASCAL

#include "stdio.h"
void main()
{ long n1,n2,nr_ap;
FILE *f;
f=fopen("BAC.TXT","r");
fscanf(f,"%ld",&n1);
nr_ap=1;
while(!feof(f))
{ fscanf(f,"%ld",&n2);
if (n1==n2) nr_ap++;
else
{ printf("%ld %ld ",n1,nr_ap);
nr_ap=1;
n1=n2;

}

}
printf("%ld %ld ",n1,nr_ap);

var f:text;

n1,n2,nr_ap:longint;

begin

assign(f,'BAC.TXT');
reset(f);
read(f,n1);
nr_ap:=1;
while not(eof(f)) do
begin

read(f,n2);
if n1=n2 then nr_ap:=nr_ap+1
else
begin

write(n1,' ',nr_ap,' ');
nr_ap:=1;
n1:=n2;

end;

Bacalaureat 2008 – Modele de rezolvare

28

}

end;
write(n1,' ',nr_ap,' ');

end.

b) Se citeşte primul număr din fişier şi se iniţializează variabila nr_ap cu
valoarea 1. Cât timp nu s-a întâlnit sfârşitul de fişier se mai citeşte un nr şi se compară cu
cel anterior citit. Dacă sunt egale creşte cu 1 numărul de apariţii; dacă nu sunt egale se
tipăreşte primul dintre ele cu numărul de apariţii corespunzător, se reiniţializează variabila
care numără apariţiile cu valoarea 1, după care se reconsideră primul număr din secvenţa de
numere egale ca fiind cel de-al 2-lea citit.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->