12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008

344
1 MODELE DE REZOLVARE A SUBIECTELOR DE BACALAUREAT 2008 INFORMATIC Ă  intensiv şi neintensiv

description

dsfsdgsdggg

Transcript of 12790948 Rezolvari Informatica Intedssfdnsiv Si Neintensiv Bacalaureat 2008

  • 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