Page 128 - MATINF Nr. 1
P. 128

˘
            128                                          PROBLEME DE INFORMATICA PENTRU EXAMENE


                       for j:=4 downto i do
                          begin
                                 x[i][j]:=a+b;
                                 c:=x[i][j];
                                 x[j][i]:=c;
                                 a:=b; b:=c;
                          end;
               5. Scriet , i un program ˆın Pascal care cites , te un text de maxim 250 de caractere litere ale
                  alfabetului englez sau spat , ii s , i determin˘a s , i afis , eaz˘a pe ecran num˘arul total de cuvinte din
                  text, iar pe urm˘atorul rˆand, separate prin cˆate un spat , iu, cuvintele din text ˆın care primul
                  s , i ultimul caracter sunt ambele vocale sau ambele consoane.                      (10p.)
                  Exemplu: pentru textul La bacalaureat la proba de Informatica a fost un su-
                  biect cu un sir de caractere se va afis , a: 15.

                SUBIECTUL al III-lea (30 de puncte)


               1. Utilizˆand metoda backtracking, sunt generate ˆın ordine lexicografic˘a toate anagramele
                  cuvˆantului ecran. S˘a se precizeze care sunt cuvintele generate imediat ˆınainte s , i dup˘a
                  secvent , a urm˘atoare: ernac, ernca, nacer.                                         (4p.)

                    a) ercan,              b) ercna,              c) ercna,             d) ercan,
                       nacre                  narce                  nacre                 narce

               2. Fie urm˘atorul subprogram:
                    procedure bac (x,d:integer)
                    begin
                       if d<=x/d then
                           begin
                                if x div d=0 then write(d,’ ’);
                                bac(x,d+1);
                                if x div d=0 then write(x div d,’ ’);
                           end;
                    end;

                  Ce va afis , a subprogramul ˆın urma apelurilor bac(13, 1) s , i bac(56, 1)?          (6p.)
               3.   a) Scriet , i definit , ia complet˘a a subprogramului bac cu doi parametri, care primes , te prin
                       intermediul primului parametru x un num˘ar natural nenul de minim 2 cifre s , i maxim
                       9 cifre nenule s , i returneaz˘a prin intermediul celui de-al doilea parametru, y, num˘arul
                       obt , inut din x prin eliminarea primei s , i a ultimei cifre. Subprogramul returneaz˘a
                       valoarea 1 dac˘a num˘arul x ˆıncepe s , i se termin˘a cu aceeas , i cifr˘a.
                       Exemplu: dac˘a x=12341, subprogramul returneaz˘a valoarea 1 deoarece num˘arul x
                       ˆıncepe s , i se termin˘a cu aceeas , i cifr˘a, iar y=234.                      (6p.)
                    b) Scriet , i un program Pascal care cites , te de la tastatur˘a n numere naturale nenule
                       de minim 2 cifre s , i maxim 9 cifre, 1 ≤ n ≤ 100, s , i folosind apeluri utile ale
                       subprogramului de la punctul a) determin˘a s , i afis , eaz˘a pe ecran cˆate dintre cele n
                                                  ˆ
                       numere sunt palindrom. In cazul ˆın care nu exist˘a ˆın s , ir numere palindrom se va
                       afis , a un mesaj corespunz˘ator.                                                (4p.)

                       Exemplu: pentru n=5 s , i numerele 12341, 454, 11, 89, 4567, se va afis , a 2
                       (numerele 454 s , i 11).
   123   124   125   126   127   128   129   130   131   132   133