+ All Categories
Home > Documents > sub atestat

sub atestat

Date post: 18-Feb-2018
Category:
Upload: andra-bragadireanu
View: 239 times
Download: 0 times
Share this document with a friend
22
7/23/2019 sub atestat http://slidepdf.com/reader/full/sub-atestat 1/22 SUBIECTE ATESTAT INFORMATICĂ PROGRAMARE INTENSIV INFORMATICĂ Subiectul nr.1 Fişierul număr.in conţine pe prima linie un număr natural  n, format din cel mult 8 cifre iar cel puţin o cifră este impară. Se consideră subprogramele: S1 cu doi parametri, a şi  b, prin intermediul cărora primete două numere naturale ș formate fiecare din cel mult 8 cifre; subprogramul determină modificarea conţinutului celor doi parametri a i ș  b prin eliminarea cifrei unităţilor numărului conţinut de parametrul a, şi mutarea ei la sfârşitul numărului conţinut de parametrul  b, returnând prin intermediul parametrilor a şi  b noile numere obţinute. De exemplu, pentru valorile 21134 şi 61 ale parametrilor a şi  b, n urma executării subprogramului S1 valorile returnate prin intermediul parametrilor vor fi 2113 şi 614 . S2 cu un singur parametru, k, prin intermediul căruia primeşte un număr natural ! k>1); subprogramul returnea"ă numărul natural obţinut prin eliminarea fiecărei cifre pare din numărul k. De exemplu, pentru k=12345, subprogramul S2 va returna 135, iar pentru k=177 subprogramul S2 va returna 177. Cerinţe: ! Scrieţi definiţia completă a subprogramului S1; b! Scrieţi definiţia completă a subprogramului S2; c! Să se scrie un program Pascal/C/C++ care să citească din fişierul număr.in numărul n, iar apoi, folosind apeluri utile ale subprogramelor S1 şi S2, să afişe"e pe ecran mesa#ul  dacă numărul citit este un palindrom format doar din cifre impare. $n ca" contrar, va afi a mesa#ul ș  !". E"e#$le: Dacă fişierul număr.in are conţinutul alăturat, programul va afişa pe ecran mesa#ul  !". 831#$327 Dacă fişierul număr.in are conţinutul alăturat, programul va afişa pe ecran mesa#ul . 3571753 %inclu&e 'i()tre#* %inclu&e '+)tre#* u)in, n#e)$ce )t&- i+)tre# +/nu#r.in/!- 0(i& S1l(n, l(n, 2b! 3  int 4-  45617- 1
Transcript
Page 1: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 1/22

SUBIECTE ATESTAT INFORMATICĂ

PROGRAMAREINTENSIV INFORMATICĂ

Subiectul nr.1

Fişierul număr.in conţine pe prima linie un număr natural n, format din cel mult 8 cifre iar cel puţin o cifră este impară.

Se consideră subprogramele:• S1  cu doi parametri, a  şi b, prin intermediul cărora prime te două numere naturaleș

formate fiecare din cel mult 8  cifre; subprogramul determină modificarea conţinutuluicelor doi parametri a  iș b prin eliminarea cifrei unităţilor numărului conţinut de parametrula, şi mutarea ei la sfârşitul numărului conţinut de parametrul b, returnând prin intermediulparametrilor a şi b noile numere obţinute. De exemplu, pentru valorile 21134 şi 61 ale

parametrilor a şi b, n urma executării subprogramului S1  valorile returnate prinintermediul parametrilor vor fi 2113 şi 614.

• S2 cu un singur parametru, k,  prin intermediul căruia primeşte un număr natural ! k>1);subprogramul returnea"ă numărul natural obţinut prin eliminarea fiecărei cifre pare dinnumărul k. De exemplu, pentru k=12345, subprogramul S2 va returna 135, iar pentruk=177 subprogramul S2 va returna 177.

Cerinţe:

! Scrieţi definiţia completă a subprogramului S1;

b! Scrieţi definiţia completă a subprogramului S2;

c! Să se scrie un program Pascal/C/C++  care să citească din fişierul număr.innumărul n, iar apoi, folosind apeluri utile ale subprogramelor S1 şi S2, să afişe"e pe ecranmesa#ul D  dacă numărul citit este un palindrom format doar din cifre impare. $n ca" contrar,va afi a mesa#ulș  !".

E"e#$le:

• Dacă fişierul număr.in are conţinutul alăturat, programul va afişape ecran mesa#ul !".

831#$327

• Dacă fişierul număr.in are conţinutul alăturat, programul va afişape ecran mesa#ul D .

3571753

%inclu&e 'i()tre#*

%inclu&e '+)tre#*

u)in, n#e)$ce )t&-

i+)tre# +/nu#r.in/!-

0(i& S1l(n, l(n, 2b!

3

  int 4-

  45617-

1

Page 2: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 2/22

  b5b81794-

int S;int 4!

3  int #57-

  <=ile4*7!

  3

  i+46;557!

  454>17-

  el)e

  3

  #5#81794617-

  454>17-

 

 

  457-

  <=ile#*7!

  3

  4548179#617-

  #5#>17-

 

  i+4617557! 454>17-

  return 4-

int #in!

3

  l(n, -l(n, b57-

  +**-

  int 4-

  l(n, #5-

  <=ile#*7!

  3

  S1#b!-

  #5#>17-

 

2

Page 3: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 3/22

  i+55b!

  i+ S;!55! c(ut''/?A/-

  el)e c(ut''/NU/-

  el)e c(ut''/NU/-

Subiectul nr.;

 $n fişierul %a&'.in se găsesc pe o singură linie, separate prin câte un spaţiu, mai multenumere naturale din intervalul nc%is (1#1#6*1, repre"entând un ir de numere naturale.ș

Se consideră subprogramele:

• S1 cu un singur parametru, k, prin intermediul căruia primeşte un număr natural nenul cu

cel mult 6 cifre, k>$; subprogramul returnea"ă numărul ob inut prin eliminarea ultimeiț

cifre a valorii parametrului k;E"e#$lu. &entru k=12345 subprogramul returnea"ă valoarea 1234.

• S2 cu un singur parametru, k, prin intermediul căruia primeşte un număr natural nenul cucel mult 6 cifre, k>$; subprogramul returnea"ă valoarea 1 dacă valoarea parametrului keste un număr prim, altfel returnea"ă valoarea #.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;

c! Să se scrie un program Pascal/C/C++  care cite te irul de numere din fi ierulș ș ș%a&'.in  i nlocuie te fiecare numărș ș , din ir cuș cel mai mare prefix număr prim al lui său.Dacă nu există un astfel de prefix, numărul , va fi nlocuit n ir cu valoareaș #. 'umerele dinirul ob inut se vor afiș ț şa pe ecran, pe prima linie, separate prin câte un spa iu. Se vor folosiț

apeluri utile ale subprogramelor S1  iș S2 pentru determinarea prefixelor numere prime.

E"e#$lu.  Dacă fişierul date.in are conţinutulalăturat, programul va afişa numerele următoare:

1373 # 2234$ 2  13736 12345 2234$ 226

%inclu&e 'i()tre#*%inclu&e '+)tre#*u)in, n#e)$ce )t&-int )1 l(n, 4!3  return 4>17-int ); l(n, 4!3  int #51-

  +(r int i5;- i'4>;- i99!

3

Page 4: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 4/22

  i+46i557!  3  #57-  bre4-    return #-i+)tre# +/&te.in/!-int #in!3  l(n, 0@177 n-  int i57-  <=ile+**0@i!  3

  i99-    n5i-  +(ri57-i'5n-i99!  3  <=ile 0@i*7!  3  i+ );0@i!551! 3 c(ut'' 0@i''/ /- bre4-  el)e  0@i5)10@i!-   

Subiectul nr.

 $n fişierul %a&'.in se găsesc pe o singură linie, separate prin câte un spaţiu, mai multenumere naturale din intervalul nc%is (1#1#6*1.

Se consideră subprogramele:

• S1 cu un singur parametru, k, prin intermediul căruia primeşte un număr natural nenul cucel mult 6 cifre !k>$(; subprogramul returnea"ă cea mai mare cifră a valorii parametruluik;E"e#$lu. &entru k=125353 subprogramul returnea"ă valoarea

 5.

• S2 cu doi parametri, k  iș c. &rin intermediul parametrului k primeşte un număr naturalnenul cu cel mult 6  cifre, k>$  iar prin parametrul c  prime te o cifră. Subprogramulș

determină eliminarea tuturor apari iilor cifreiț c n numărul k  i returnea"ă numărul re"ultat.ș

Dacă numărul k  nu con ine cifraț c  atunci subprogramul va returna valoarea lui knemodificată.E"e#$lu.  &entru k=125353  i cifraș c=3 subprogramul returnea"ă valoarea 1255 iar pentru cifra c=7 subprogramul returnea"ă valoarea 125353.

4

Page 5: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 5/22

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;c! Să se scrie un program Pascal/C/C++ care să determine pentru fiecare număr ,,

citit din fişierul %a&'.in, cel mai mare număr natural care se poate construi din cifrele

distincte ale acestuia, folosind apeluri utile ale subprogramelor S1 şi S2. 'umerele construitese vor afi a pe ecran, n linie, separate prin câte un spa iu, n ordinea n care au fost construite.ș ț

E"e#$lu.  Dacă fişierul date.in are conţinutulalăturat, programul va afişa numerele următoare:

7631 54321 $432 2

  13736 12345 2234$ 222

)include *iostream+)include *fstream+using namespace std;

int S!int -(  int m/0;  1%ile !-+0(    if!-20+m( m/-20;  -/-30;  4  return m;4int S5!int -, int c(  int n/0,#/0;  1%ile !-+0(    if!-206/c( n/n708-20;  -/-30;  4  1%ile !n+0(    #/#708n20;  n/n30;  4

  return #;4ifstream f!9date.in9(;int main !(

  int v00,n,i/0,-,m/0;  1%ile!f++vi(    i88;  4  n/i;

  for!i/0;i*n;i88( 

5

Page 6: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 6/22

  1%ile!vi+0(    -/S!vi(;  m/m708-;  vi/S5!vi,-(;  4  cout**m**9 9;  m/0;  4

Subiectul nr.

Fişierul %a&'.in conţine două linii. &e prima linie a fişierului este scris un număr natural n

!1 n 1##(, iar  pe a doua linie sunt scrise n numere naturale, formate fiecare din cel mult 4cifre, separate prin câte un spaţiu.

Se consideră subprogramele:• S1 cu un singur parametru, k, prin intermediul căruia primeşte un număr natural nenul,

1-k-1####; subprogramul returnea"ă cel mai mare număr natural pătrat perfect mai micsau egal cu k

• S2 cu trei parametri, care primeşte prin intermediul parametrilor:-   şi 0  , două numere naturale !1  -0  1##(;- ,un tablou unidimensional format din cel mult 1## componente, cu indicii de la

1, ce memorea"ă numere naturale, cu cel mult 4 cifre fiecare.Subprogramul determină ordonarea crescătoare doar a secvenţei din vector formată dinvalorile componentelor (, (+1, (+2,<,(0, restul componentelor tablouluinemodificându=se, apoi returnea"ă tabloul ordonat prin intermediul aceluiaşi parametru.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;c! Să se scrie un program Pascal/C/C++  care să citească din fişierul %a&'.in

numărul n şi cele n numere naturale, iar apoi, folosind apeluri utile ale subprogramelor S1 şiS2, să determine şi să afişe"e pe prima linie a ecranului toate numerele pătrate perfecte carese află pe a doua linie a fişierului %a&'.in, n ordinea crescătoare a valorilor lor, separateprin câte un spaţiu. Dacă nu există astfel de numere se va afişa mesa#ul !".

E"e#$lu. Dacă fişierul date.in are conţinutul alăturat,programul va afişa pe ecran numerele următoare:

$ 4$ 121

 8 12 121 $ 3 28 3 4$ 24

%inclu&e 'i()tre#*%inclu&e '+)tre#*u)in, n#e)$ce )t&-int S1int 4!3  +(rint D54-D*5-D!  +(rint i5;- i'54>;- i99!  i+i8i55D! return D-

0(i& S;int $ int int 0@177!

6

Page 7: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 7/22

3  int #,)it-  &(  3  ,)it57-  +(r int i5$- i'5- i99!  i+ 0@i*0@i91!  3  #50@i-  0@i50@i91-  0@i915#-  ,)it51-    <=ile ,)it!-

i+)tre# +/&te.in/!-

int #in!3  int 0@177iD57#@177n-  +**n-  +(r i57- i'n- i99!  3

  +**0@i-  i+0@i55S10@i!!  3  @D50@i-  D99- 

    #5D -

  i+#557! c(ut''/NU/-  el)e  3  S;7#!-  +(r int i57- i'#- i99!  c(ut''@i''/ /- 

Subiectul nr.

7

Page 8: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 8/22

Fişierul %a&'.in conţine două linii. &e prima linie a fişierului este scris un număr natural n

!1 n 1##(, iar  pe a doua linie sunt scrise n numere naturale, formate fiecare din cel mult 6cifre, separate prin câte un spaţiu.

Se consideră subprogramele:• S1 cu un singur parametru, k, prin intermediul căruia primeşte un număr natural nenul,

1-k-1####; subprogramul returnea"ă suma cifrelor numărului primit prin parametrul k• S2 cu trei parametri, care primeşte prin intermediul parametrilor:

- nun număr  natural !1 n 1##(;-  un număr  natural !1  -n(;- ,un tablou unidimensional format din cel mult 1## elemente, cu indicii de la 1,

ce memorea"ă numere naturale, cu cel mult 6 cifre fiecare.Subprogramul determină modificarea con inutului tabloului prin rearan#area elementelor ț

tabloului situate pe po"i iileț  +1+2...n, crescător după suma cifrelor fiecăruielement, ca n exemplu.E"e#$lu. &entru  n=8 =4  şi tabloul cu elementele=12121$32834$24)  după apelul subprogramului S2  conținutul tabloului

poate fi: =12121$3324284$) deoarece sumele cifrelor elementelor sunt, naceastă ordine: 34$3361#13.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;c! Să se scrie un program &ascal3>3>88 care să citească din fişierul date.in numărul

n  şi cele n  numere naturale, iar apoi, folosind apeluri utile ale subprogramelor S1  şi S2,aran#ea"ă cele n  numere citite  n ordinea crescătoare a sumei cifrelor fiecăruia, apoi  leafi ea"ă pe ecran, n linieș  separate prin câte un spaţiu.

E"e#$lu. Dacă fişierul date.in are conţinutul alăturat,programul poate afi a pe ecran numerele astfel:ș

12 3 3 121 24 $ 28 4$

 8 12 121 $ 3 28 3 4$ 24

Subiectul nr.H

Fişierul %a&'.in conţine două linii. &e prima linie a fişierului este scris un număr natural n!1 n 1##(, iar  pe a doua linie sunt scrise n numere naturale, formate fiecare din cel mult 4cifre, repre"entând un irș ) de numere. 'umerele din fi ier sunt separate prin câte un spaţiu.ș

Se consideră subprogramele:• S1 cu doi parametri, ,  iș  prin intermediul cărora primeşte două numere naturale nenule.

Subprogramul returnea"ă cea mai mare valoare dintre valorile primite prin intermediulparametrilor ,  iș ;

• S2 cu patru parametri, care primeşte prin intermediul parametrilor:- ,un tablou unidimensional format din cel mult 1## componente, cu indicii de la

1, ce memorea"ă numere naturale cu cel mult 4 cifre fiecare;- n numărul de elemente ale tabloului;- k un număr natural kn- , un număr natural de cel mult patru cifre.

Subprogramul inserea"ă n tabloul  valoarea con inută de parametruț , pe po"i iaț k din

tablou, şi apoi, returnea"ă tabloul modificat prin intermediul aceluiaşi parametru i numărulșmodificat de elemente prin intermediul parametrului n.

8

Page 9: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 9/22

Cerinţe: Scrieţi definiţia completă a subprogramului S1;b Scrieţi definiţia completă a subprogramului S2;c Să se scrie un program Pascal/C/C++ care citeşte din fişierul %a&'.in numărul n

şi  irulș ) de numere, iar apoi, folosind apeluri utile ale subprogramelor S1 şi S2, #(&i+ic

irulș  inserând după fiecare număr sp din ir un număr repre"entând cea mai mare valoareșdintre cele situate n ir pe po"i iile ,5,...,p !?p?n(ș ț . 'umerele din irul modificat se vor afi aș ș

 n fi ierulș %a&'.u&, n prima linie, separate prin câte un spa iu.ț

E"e#$lu. Dacă fişierul date.in are conţinutul alăturat, programul vaafişa n date.out numerele următoare:

1# 1# 2 1# 14 14 $ 14

 4 1# 2 14 $

Subiectul nr.J

Fişierul %a&'.in conţine două linii. &e prima linie a fişierului este scris un număr natural n!1 

1##(, iar  pe a doua linie sunt scrise n numere naturale, formate fiecare din cel mult 4cifre, separate prin câte un spaţiu.

Se consideră subprogramele:

• S1 cu patru parametri !nm(, care prime te prin intermediul parametrilor:ș

- ,un tablou unidimensional format din cel mult 1## componente, cu indicii de la1, ce memorea"ă numere naturale cu cel mult 4 cifre fiecare;

- n numărul de elemente ale tabloului;

Subprogramul furni"ea"ă prin parametrul m  valoarea elementului maxim din tablou i prinșparametrul  po"i ia primei apari ii a valorii maxime memorate de elementele tabloului.ț ț

• S2 cu %i parametri, care primeşte prin intermediul parametrilor:- ,un tablou unidimensional format din cel mult 1## componente, cu indicii de la

1, ce memorea"ă numere naturale cu cel mult 4 cifre fiecare;- n numărul de elemente ale tabloului;

Subprogramul permută circular la stânga cu o po"i ie elementele tablouluiț   i furni"ea"ăș

tabloul modificat prin intermediul aceluiaşi parametru. De exemplu, dacă tabloul arecon inutulț =12345), atunci după apelul subprogramului va avea con inutulț

=23451).

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;c! Scrie i un programț Pascal/C/C++ care cite te din fişierulș %a&'.in  numărul n  şi

cele n  numere naturale n tabloul unidimensional , iar apoi, folosind apeluri utile alesubprogramelor S1  şi S2,  permută circular la stânga valorile din tabloul  astfel ncât peultima po"i ie să fie situată valoarea maximă memorată n tablou. @alorile tabloului se vor ț

afi a n fi ierulș ș %a&'.u&

E"e#$lu. Dacă fişierul date.in are conţinutul alăturat,

programul va afişa pe ecran numerele următoare:

8

3 1# 4# 7# 25 7# 6# 6

9

Page 10: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 10/22

25 7# 6# 6 3 1# 4# 7#

Subiectul nr.K

Fişierul %a&'.in conţine două linii. &e prima linie a fişierului este scris un număr natural n

!1 n 1##(, iar pe a doua linie sunt scrise n numere naturale, formate fiecare din cel mult 4cifre, separate prin câte un spaţiu.

Se consideră subprogramele:

• S1 cu trei parametri, care primeşte prin intermediul parametrilor:- n un număr natural nenul !n 1##(;- i un număr  natural !1 i n(;- , un tablou unidimensional format cu n componente, ce memorea"ă numere

naturale, cu cel mult 4 cifre fiecare.Subprogramul determină eliminarea din tabloul   a elementului (i, actuali"ândvaloarea parametrului n.Aabloul modificat este furni"at tot prin parametrul .

 

S2  cu un singur parametru k  prin intermediul căruia primeşte un număr natural, k>1;subprogramul returnea"ă o valoare naturală repre"entând cel mai mic divi"or prim alnumărului k. 

Cerinţe:

! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;

c! Să se scrie un program Pascal/C/C++ care să citească din fişierul date.in număruln şi cele n numere naturale, iar apoi, folosind apeluri utile ale subprogramelor S1 şi S2, săelimine din şirul aflat pe a doua linie, un număr minim de elemente, astfel ncât să nu existedouă numere prime aflate pe po"iţii consecutive. Birul obţinut va fi afişat pe ecran, pe o linie,numerele din ir separate prin câte un spa iu.ș ț

E"e#$lu. Dacă fişierul %a&'.in are conţinutul alăturat,o soluţie posibilă este :

12 6 3 $ 7 8 13

1#

12 6 3 2 5 $ 7 8 13 17

Subiectul nr.LFişierul %a&'.in conţine cel mult 1## de numere naturale, fiecare număr fiind format din celmult patru cifre, numerele fiind scrise pe o singură linie, separate prin câte un spaţiu.

Se consideră subprogramele:

  S1 cu un singur parametru, , prin intermediul căruia primeşte un număr natural nenulformat din cel mult patru cifre şi care returnea"ă valoarea 1 dacă valoarea parametrului ,este un număr prim iș # n ca" contrar .

  S2 cu doi parametri, care primeşte prin intermediul parametrilor:= n, un număr natural, #-n

 

1##

= un şir de n numere naturale, fiecare număr având cel mult patru cifre.

10

Page 11: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 11/22

  Subprogramul furni"ea"ă prin parametrul v şirul ordonat crescător. 

Cerinţe:

! Scrieţi definiţia completă a subprogramului S1.b! Scrieţi definiţia completă a subprogramului S2.

c!Scrieţi un program Pascal/C/C++, care citeşte din fişierul %a&'.in toate numerele

şi, folosind apeluri utile ale subprogramelor S1 şi S2, scrie n fişierul %a&'.u&, pe o singurălinie, separate printr=un spaţiu, două numere naturale repre"entând cel mai mic număr,respectiv cel mai mare număr prim din fişierul %a&'.in. Dacă niciun număr din fişierul%a&'.in nu este număr prim, atunci pe prima linie a fişierului %a&'.u& se va scrie mesa#ul

 !" 9S:.

E"e#$lu. Dacă fişierul %a&'.in  are conţinutul alăturat,atunci fişierul %a&'.u&  va avea următorul conţinut:

3 13

3 5 7 13 56 778 $$

Subiectul nr.17

Fişierul %a&'.in  conţine pe prima linie un număr natural nenul n, !1n3#),  iar peurmătoarele n linii câte n numere ntregi, cu cel mult patru cifre fiecare, separate prin câte unspațiu, repre"entând elementele unei matrice cu n linii și n coloane.

Se consideră subprogramele:

• S1, cu doi parametri:= a, un tablou bidimensional cu cel mult 3# de linii și cel mult 3# de coloane, ce

memorea"a numere ntregi;= n, numărul efectiv de linii i coloane ale matriceiș a.

Subprogramul S1 citește din fișierul %a&'.in și furni"ea"ă, prin intermediul parametrilor săi, elementele unei matrice precum şi numărul de linii i coloane.ș

• S2, cu doi parametri care primeşte prin intermediul parametrilor:= a, un tablou bidimensional cu cel mult 3# de linii și cel mult 3# de coloane= ;, indicele unei linii din matricea a.

Subprogramul S2 returnea"ă suma elementelor aflate pe diagonala paralelă cudiagonala secundară care porneşte cu primul element al liniei ;. 

Cerinţe:

! Scrieţi definiţia completă a subprogramului S1.b! Scrieţi definiţia completă a subprogramului S2.

c! Scrieţi un program Pascal/C/C++ care, folosind apeluri utile ale subprogramelor S1şi S2, citeşte datele din fişierul %a&'.in şi scrie pe ecran, cea mai mare sumă care se poateobţine adunând elementele aflate pe una dintre diagonalele paralele cu diagonalasecundară, situate deasupra acestei diagonale secundare.

E"e#$lu. Dacă fişierul %a&'.in are conţinutul alăturat, programul vascrie pe ecran valoarea: 36.

Dintre: 12 27+$ 1+4+8, cea mai mare sumă este dată de 27+$=36.Diagonala secundară con ine numerelț e $212

412 $ 8 227 4 1 41 2 3 7

$ 5 8 2

11

Page 12: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 12/22

Subiectul nr.11

Fişierul &te.in  conţine pe prima linie două numere naturale nenule  m   iș   n1m3#1n3#), separate printr=un spa iu.ț

Se consideră subprogramele:• S1, cu trei parametri, care primeşte prin intermediul parametrilor:  , un tablou bidimensional cu cel mult 3# de linii și cel mult 3# de coloane, cu elemente

numere ntregi formate din cel mult patru cifre.=  m , numărul efectiv de linii ale matricei  1m3#= n, numărul efectiv de coloane ale matricei  1n3#.

Subprogramul S1  citește din fișierul %a&'.in  numerele m   iș n, ini iali"ea"ă fiecareț

element al tabloului    cu valoarea *1  și furni"ea"ă prin intermediul parametrilor săinumărul de linii și respectiv coloane, precum și elementele tabloului bidimensional;

• S2,cu patru parametri, care primeşte prin intermediul parametrilor:=   , un tablou bidimensional cu cel mult 3# de linii și cel mult 3# de coloane, cu

elemente de tip ntreg;=  m , numărul efectiv de linii ale matricei  1m3#= n, numărul efectiv de coloane ale matricei  1n3#.= ,, un număr ntreg format din cel mult C cifre;= i  iș  < două numere naturale repre"entând indicii liniei i coloanei unui elementș

  i< din matricea .Subprogramul modifică valorile elementelor vecine cu elementul  i< pe ori"ontală, peverticală i pe diagonalăș care sunt egale cu *1 cu valoarea lui ,+1.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1.

b! Scrieţi definiţia completă a subprogramului S2.

c! Scrieţi un program principal Pascal/C/C++  care, folosind apeluri utile alesubprogramelor S1 şi S2, cite te datele din fişierulș %a&'.in, construie te o matriceș    cu nlinii i m coloane care are elementul ș   egal cu valoarea #  şi restul elementelor ca nexemplu. Eatricea construită se va scrie n fi ierulș %a&'.u& câte o linie a matricei pe câteo linie a fi ierului, numerele de pe fiecare linie fiind separate prin câte un spa iuș ț .

E"e#$lu. Dacă fişierul %a&'.in are conţinutul alăturat, programul va

scrie n fi ierulș %a&'.u&:# 1 2 3 4 5 6 71 1 2 3 4 5 6 72 2 2 3 4 5 6 73 3 3 3 4 5 6 74 4 4 4 4 5 6 75 5 5 5 5 5 6 76 6 6 6 6 6 6 7

7 8

12

Page 13: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 13/22

Subiectul nr. 1;Fişierul &te.in  conţine pe prima linie două numere naturale nenule m   iș n  1m3#1n3#), iar pe următoarele m   linii câte n  numere ntregi, cu cel mult 4  cifre fiecare,separate prin câte un spațiu, repre"entând elementele unei matrice cu m  linii și n coloane.

  Se consideră subprogramele:• S1, cu parametrii:

=   , o matrice cu cel mult 3# de linii și cel mult 3#  de coloane, i elemente numereș

 ntregi formate din cel mult C cifre fiecare;=  m , un număr natural repre"entând numărul efectiv de linii ale matricei  1m3#= n, un număr natural repre"entând numărul efectiv de coloane ale matricei 

1n3#.Subprogramul S1  determină citirea i memorarea numerelor din prima linie a fi ieruluiș ș

%a&'.in  n parametrii m   iș n, apoi cele m,n numere repre"entând elementele matricei  . Subprogramul va furni"a valorile citite prin intermediul parametrilor.

• S2, care primeşte prin intermediul parametrilor:

=   , o matrice cu cel mult 3# de linii și cel mult 3#  de coloane, i elemente numereș ntregi formate din cel mult C cifre fiecare;

= n, un număr natural repre"entând numărul efectiv de coloane ale matricei 1n3#.

k un număr natural , 1-km Subprogramul furni"ea"ă suma elementelor situate pe linia - n matricea .

Cerinţe:! Scrieţi definiţia completă a subprogramului S1.

b! Scrieţi definiţia completă a subprogramului S2.

c! Scrieţi un program principal Pascal/C/C++  care, folosind apeluri utile alesubprogramelor S1 şi S2, cite te matricea din fişierulș %a&'.in, calculea"ă pentru fiecarelinie a matricei suma elementelor corespun"ătoare i afi ea"ă pe ecran indicele primei liniiș ș

din matrice de sumă maximă, precum i valoarea acestei sume. >ele două numere suntș

afi ate pe aceea i linie, separate printr=un spa iu.ș ș ț

E"e#$lu. Dacă fişierul %a&'.in  are conţinutul alăturat,programul va scrie pe ecran: C G !indicii liniilor de suma maximăsunt: C i H(.ș

6 74 3 8 5 8 # 25 1 3 5 $ 6 86 7 4 $ 3 2 13 8 1 $ 7 8 31 2 1 3 5 2 $4 7 $ $ 3 4 3

Subiectul nr.1

Fişierul %a&'.in conţine două linii. &e prima linie a fişierului este scris un număr natural n,1n1##) iar  pe următoarele n linii sunt scrise câte n numere naturale, formate fiecaredin cel mult 4 cifre, separate prin câte un spaţiu.

Se consideră subprogramele:• S1 cu trei parametri, care primeşte prin intermediul parametrilor:

- a,un tablou bidimensional format din cel mult 3# de linii i cel multș 3# de coloanecu elemente numere ntregi;

- n1n1##) numărul efectiv de linii i de coloane ale matriceiș a;-  ma, un număr natural nenul.

13

Page 14: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 14/22

Subprogramul furni"ea"ă prin intermediul parametrului ma, elementul maxim de pediagonala principală a matricei a.

S2 cu doi parametri, care primeşte, prin intermediul parametrilor:- a,un tablou bidimensional format din cel mult 3# de linii i cel mult 0 de coloaneș

cu elemente numere ntregi;

- nnumărul efectiv de linii i de coloane ale matriceiș a.Subprogramul returnea"ă suma elementelor situate pe rama matricei, formată dinelementele situate pe prima linie, prima coloană, ultima linie i ultima coloană a matricei.ș

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;c! Scrieţi un program principal Pasca/C/C++  care, folosind apeluri utile ale

subprogramelor S1 şi S2, să citească datele din fişierul %a&'.in şi care să scrie pe ecran,pe linii separate, elementul maxim de pe diagonala principală i suma elementelor de peș

rama matricei.

E"e#$lu. Dacă fişierul date.in are conţinutul alăturat,programul va afişa pe ecran numerele următoare:

l'm'n&ul ma,im = $Suma = 58

4

# 2 4 61 3 5 76 4 2 83 5 7 $

Subiectul nr.1

Fişierul %a&'.in conţine pe prima linie un cuvânt format din cel mult 5# de caractere, doar litere mici ale alfabetului engle". 

Se consideră subprogramele:

• S1  care primeste prin intermediul singurului său parametru s  un cuvânt şi returnea"ă

numărul de consoane conţinute de  cuvântul s  !se consideră vocale literele:a'iu);

  S2  care primeste prin intermediul singurului său parametrul s un cuvânt !format din celpuţin 5 litere( i returnea"ă cuvântul obţinut prin dublarea fiecș ărei consoane din cuvântul s.De exemplu, pentru cuvântul abac !primit prin intermediul parametrului s( subprogramulreturnea"ă cuvântul: abbacc.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;

b! Scrieţi definiţia completă a subprogramului S2;

c! Scrieţi un program Pascal/C/C++, care folosind apeluri utile ale subprogramelor S1

şi S2, citeşte textul din fişierul %a&'.in, determină numărul de consoane con inute dețcuvântul citit i scrie pe prima linie a fiș șierului %a&'.u& numărul determinat iar pe a doualinie scrie cuvântul obţinut prin dublarea fiecărei consoane din cuvântul s.

E"e#$lu. Dacă fişierul date.in are conţinutulalăturat, programul va scrie n fişierul date.out:

5 bbaccallaurr'a&&

 bacalaur'a&

Subiectul nr.1

14

Page 15: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 15/22

Fişierul %a&'.in  conţine o singură linie pe care este scris un text de cel mult 25#  decaractere, care con ine cel pu in o cifră.ț ț

Se consideră subprogramele:• S1 cu un singur parametru care determină, n urma apelului, citirea textului din fişierul

%a&'.in şi returnea"ă prin intermediul parametrului s textul citit;

• S2 cu doi parametri, care primeşte prin intermediul parametrilor:-  c un caracter;-  s un şir de caractere format din cel mult 25# de caractere.

Subprogramul returnea"ă valoarea 1 dacă numărul de apariţii ale caracterului c n şiruls este cel puţin 1, altfel subrogramul va returna valoarea #.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1b! Scrieţi definiţia completă a subprogramului S2c! Scrieţi un program Pascal/C/C++, care, folosind apeluri utile ale subprogramelor S1

şi S2, citeşte textul din fişierul %a&'.in şi afişea"ă pe ecran, pe o singură linie, separateprin câte un spaţiu, n ordine crescătoare, toate cifrele care se află n textul citit.

E"e#$lu. Dacă fişierul date.in are conţinutul următor:

 acan&a mar' inc'' in 16.#6.2#15 si s' &'rmină '14.#$.2#15

programul va afişa pe ecran cifrele următoare: # 1 2 4 5 6 $

Subiectul nr.1H

Fişierul %a&'.in conţine pe prima linie un text format din cel mult 25# de caractere, scris pe

o singură linie. >uvintele din text sunt separate prin câte un spaţiu, iar fiecare cuvânt esteformat din cel mult 2# caractere, doar literele mici ale alfabetului engle". Fi ierul con ine pe aș ț

doua linie un cuvânt format din cel mult 2# de caractere doar literele mici ale alfabetuluiengle".

Se consideră subprogramele:• S1  care prime te prin intermediul celor doi parametriș &1 i &2ș  două cuvinte formate

fiecare din cel puţin două caractere şi returnea"ă valoarea 1 dacă cuvântul primit prinparametrul &1 repre"intă un prefix pentru cuvântul primit prin parametrul &2, sau valoarea#  n ca" contrar;S2  care primeste prin intermediul singurului său parametru & un cuvânt din text iș

 nlocuie te prima, respectiv ultima literă, cu litera mare corespun"ătoare şi furni"ea"ă prinș

intermediul parametrului & cuvântul obţinut. De exemplu, pentru cuvântul in&'nsi&a&'primit prin intermediul parametrului & subprogramul returnea"ă cuvântul: 9n&'nsi&a&.Cerinţe:

! Scrieţi definiţia completă a subprogramului S1;

b! Scrieţi definiţia completă a subprogramului S2;

c! Scrieţi un program Pascal/C/C++, care citeşte din fişierul %a&'.in  n variabila stextul aflat pe prima linie i n variabilaș , cuvântul aflat pe cea de a doua linie din fi ier iș ș

folosind apeluri utile ale subprogramelor S1 şi S2, modifică textul memorat n variabila s printransformarea n literă mare a primei i ultimei litere din fiecare cuvânt dint text care are caș

prefix cuvântul x. &rogramul scrie noul text n fişierul %a&'.u& pe o singură linie.

E"e#$lu. Dacă fişierul date.in are conţinutul următor:

ambii cii am's&'cau i%'il' si amin&iril' %' 's&' i

15

Page 16: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 16/22

am 

programul va scrie n fişierul date.out textul:

 mbi9 cii m's&'ca" i%'il' si min&iril %' 's&' i

Subiectul nr. 1J

Fişierul %a&'.in conţine un text format din cel mult 25# de caractere, scris pe o singurălinie. >uvintele din text sunt separate prin câte un spaţiu, iar fiecare cuvânt este format dincel mult 2# caractere, doar literele mici ale alfabetului engle". 

Se consideră subprogramele:

• S1  care primeste prin intermediul singurului său parametru s  un cuvânt şi returnea"ănumărul de vocale !a'iu( conţinute de cuvântul s;

  S2 care primeste prin intermediul singurului său parametru s un cuvânt format din cel puţin2  litere şi returnea"ă cuvântul obţinut prin (,lin&ire ce)tui. De exemplu, pentru

cuvântul abc%  primit prin intermediul parametrului s subprogramul returnea"ă cuvântul:%cba.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;

b! Scrieţi definiţia completă a subprogramului S2;

c! Scrieţi un program Pascal/C/C++, care folosind apeluri utile ale subprogramelor S1şi S2, citeşte textul din fişierul %a&'.in şi l modifică oglindind fiecare cuvânt din text careconţine exact trei vocale. &rogramul scrie noul text n fişierul %a&'.u& pe o singură linie.

E"e#$lu. Dacă fişierul date.in are conţinutul următor 

ani ar' un cr'in si un cai'&

programul va scrie n fişierul date.out următoarele:

ani ar' un ni'rc si un &'iac

Subiectul nr.1K

Fişierul &te.in conţine un text format din cel mult 255 de caractere, scris pe o singură linie.>uvintele din text sunt separate prin unul sau mai multe spaţii, iar fiecare cuvânt este formatdin cel mult 3# de caractere, doar litere mici ale alfabetului engle".Se consideră subprogramele:•

S1 care primeşte prin intermediul singurului său parametru s, un şir de caractere formatdin maximum 3# de caractere doar litere mici, şi returnea"ă :"/1 dacă şirul s  areliterele n ordine alfabetică sau ?;S/# altfel;

• S2 cu doi parametri s şi i, care primeşte prin intermediul parametrilor:= s un şir cu cel mult 3# de caractere;= i un număr natural repre"entând o po"i ie n şir.ț

Subprogramul modifică şirul s prin eliminarea caracterului situat pe po"itia i n acesta.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;c! Să se scrie un program Pascal/C/C++ care citeşte textul din fişierul %a&'.in şi

apoi, folosind apeluri utile ale subprogramelor S1  şi S2, modifică fiecare cuvânt care areliterele n ordine alfabetică prin eliminarea caracterelor identice . >uvintele astfel modificate

16

Page 17: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 17/22

se vor scrie n fişierul %a&'.u& câte unul pe linie, n ordinea apariţiei lor n text. >uvintelecare au toate literele distincte şi n ordine alfabetică vor fi afişate nemodificate. Dacă textulnu conţine niciun cuvânt cu proprietatea cerută, atunci n fişier se va scrie pe prima liniemesa#ul !" 9S:@.

E"e#$lu. Dacă fişierul %a&'.in are conţinutul următor:

abc %ar aaabcc 's&' iar cccAAiii

atunci programul va scrie in fisierul %a&'.u&:

abcabccAi

Subiectul nr.1L

Fişierul %a&'.in conţine două linii. &e prima linie a fişierului este scris un număr natural nn-1##), iar  pe fiecare din următoarele n linii este scris câte un cuvânt format din cel mult

2# de caractere, doar litere mici ale alfabetului engle".Se consideră subprogramele:• S1 care prime te prin intermediul singurului său parametruș s  un cuvânt i verifică dacăș

acesta este palindrom. In cuvânt care poate fi citit de la stânga la dreapta i de laș

dreapta la stânga fără să= i piardă sensul, este palindrom, de exemplu: JrarK, JpotopK.ș

• S2 cu doi parametri s  iș & care prime te prin parametrulș s un irș cu maximum 2# decaractere, litere mici ale alfabetului engle". Subprogramul returnea"ă prin intermediulparametrului & irul ob inut dinș ț s  prin nlocuirea fiecărei vocale cu caracterul 7. Seconsideră vocale literele: a ' i u.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1-

b! Scrieţi definiţia completă a subprogramului S2;c! Scrieţi un program principal Pascal/C/C++  care, folosind apeluri utile ale

subprogramelor S1 şi S2, cite te numărul n i cele n cuvinte, apoi determină toate cuvinteleș ș

de tip palindrom i le modifică nlocuind n acestea fiecare vocală cu caracterul 7 . &rogramulș

afi ea"ă pe ecran cuvintele modificate, n linie, separate prin câte un spa iu. Dacă niciunulș ț

dintre cele n cuvinte citite nu este de tip palindrom, atunci programul va afi a pe ecranș

mesa#ul 'I LMNSA.

E"e#$lu. Dacă fişierul date.in are conţinutul alăturat,programul va afişa pe ecran:

cB<Bc

BnBBlBBlB

6c<ciarnaana

 rimaara'l''l'&amna

Subiectul nr.;7

Se consideră declarările următoare utili"ate pentru a defini o listă simplu nlănţuită !tip stivă(,alocată dinamic:

&' lis&a=n%

  n%=r'cr%

nrin&'E'r urmlis&a

'n%

s&ruc& n% 

  F in& nr

n%B urmG

17

Page 18: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 18/22

Cerinţe:

!  Scrieţi definiţia completă a subprogramului S1  cu &(i $r#etri care primeşte prinintermediul parametrilor:

=    adresa primului nod din lista definită mai sus;= k  un număr natural cu cel mult nouă cifre.

Subprogramul determină adăugarea la nceputul listei, naintea nodului cu adresa  !primul(,a unui nou nod care să memore"e n câmpul nr numărul k. Subprogramul returnea"ă prinintermediul parametrului  adresa primului nod din lista modificată prin adăugare.

b! Scrieţi definiţia completă a subprogramului S2 care primeşte prin intermediul singuruluiparametru  adresa unui nod al listei definite şi care returnea"ă numărul memorat n câmpulnr al acestui nod.

c!  Scrieţi un program Pascal/C/C++, care citeşte de la tastatură un număr natural n!n-1##( şi un şir s format din n numere naturale, fiecare număr din şir având cel mult nouăcifre, iar apoi, folosind apeluri utile ale subprogramului S1, construieşte o listă simplu nlănţuită alocată dinamic ale cărei noduri să memorea"ă n câmpul nr toate numerele din

şirul s !ncepând de la po"i ia a doua(ț  care au ca sufix primul număr din şirul s. &rogramul,folosind apeluri utile ale subprogramului S2, va scrie n fişierul %a&'.u&  toate numerelememorate n nodurile listei, pe o singură linie, separate prin câte un spaţiu, n ordineainversă apariţiei lor n şirul s. Dacă şirul s nu conţine niciun număr cu sufixul cerut atunciprogramul va scrie n fişier mesa#ul NU EISTA.

E"e#$lu. Dacă n=11  iar şirul s este format din numerele:

15 24 8815 123 215 4$# 6 21 # 6 1#15 

atunci fişierul date.out va avea conţinutul:

1#15 215 8815

Subiectul nr.;1

Se consideră declarările următoare utili"ate pentru a defini o listă simplu nlănţuită alocatădinamic:

&' lis&a=n%

n%=r'cr%

nrin&'E'r urmlis&a

'n%

s&ruc& n% 

  F in& nr

n%B urmG

Cerinţe:

!  Scrieţi definiţia completă a subprogramului S1  cu doi parametri  care primeşte prinintermediul parametrilor:

=    adresa primului nod din lista definită;= k un număr natural cu cel mult nouă cifre.

Subprogramul adaugă un nod cu informaţia k  la sfârşitul listei. Subprogramul returnea"ăprin intermediul parametrului  adresa primului nod din lista modificată după adăugare.

b! Scrieţi definiţia completă a subprogramului S2 care primeşte prin intermediul singuruluiparametru  adresa primului nod al listei definite şi care returnea"ă valoarea din câmpul nral ultimului nod.

18

Page 19: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 19/22

c! Scrieţi un program Pascal/C/C++, care citeşte de la tastatură un număr natural n nenul,format din cel mult $ cifre toate nenule, şi construieşte o listă liniară simplu nlănţuită cu toatenumerele obţinute din numărul n prin eliminarea succesivă a ultimei cifre, apoi a ultimelor două cifre, ş.a.m.d. până se obţine un număr format dintr=o singură cifră folosind apeluri utileale subprogramului S1. &rogramul afişea"ă pe ecran valorile memorate de nodurile listei

create şi, folosind apeluri utile ale subprogramului S2, va scrie n fişierul %a&'.u& valoareamemorată de ultimul nod din listă.E"e#$lu. Dacă n=23456  atunci pe ecran se va afişa:

2345 234 23 2

 $n fişierul %a&'.u& se va scrie valoarea: 2

Subiectul nr.;;

Se consideră un graf neorientat G  cu n  vârfuri !n∈ !, 2-n-3#(, dat prin matricea de

adiacenţă A. @ârfurile grafului sunt etic%etate cu numerele distincte: 12...n.Fişierul %a&'.in  conţine n+1  linii. &e prima linie a fişierului este scris numărul n  devârfuri ale grafului G, iar pe fiecare dintre următoarele  n  linii, sunt scrise câte n  valoriaparţinând mulţimii F#1G, separate prin câte un spaţiu, repre"entând valorile elementelor matricei de adiacenţă A a grafului G.

Se consideră subprogramele:• S1 cu doi parametri n şi ,, care determină, n urma apelului, citirea numerelor din fişierul

%a&'.in şi returnea"ă prin intermediul parametrilor:= n  numărul de vârfuri ale grafului G;= ,  un tablou bidimensional cu n  linii şi n coloane care memorea"ă valorile

elementelor matricei de adiacenţă A a grafului G;•

S2 cu doi parametri n, şi , care primeşte prin intermediul parametrilor:- n un număr natural nenul !2-n-3#(;-  un tablou unidimensional cu n elemente care memorea"ă numere ntregi.

Subprogramul afi ea"ă pe ecran indicii tuturor elementelor nenule ale tablouluiș

unidimensional .Cerinţe:

! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;c! Scrieţi un program Pascal/C/C++, care citeşte datele din fi ierul date.in i de laș ș

tastatură un număr natural k !1 k n( şi apoi, folosind apeluri utile ale subprogramelor S1 şiS2, determină şi afişea"ă pe ecran lista de adiacen a a nodului cu etic%etaț k. Ltic%etele din

lista de adiacen ă se vor afişa pe o singură linie, separate prin câte un spaţiu, n ordineațdescrescătoare a valorilor lor. Dacă lista este vidă, atunci programul va afişa valoarea #.

E"e#$lu.

Dacă k=2 iar fişierul date.in are conţinutul alăturat, atunciprogramul va afişa pe ecran etic%etele următoare:

1 6 7

7# 1 # # # 1 11 # # # # 1 1# # # 1 # # ## # 1 # # # ## # # # # # #1 1 # # # # 11 1 # # # 1 #

Subiectul nr.;

Se consideră un graf orientat H  cu n  vârfuri n∈ ! 2-n-3#)  etic%etate cu numereledistincte: 12...n. 

19

Page 20: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 20/22

Fişierul &te.in conţine mai multe linii. &e prima linie a fişierului este scris numărul natural nrepre"entând numărul de vârfuri ale grafului H, iar pe următoarele linii, perec%i de numerenaturale, separate prin câte un spaţiu, repre"entând câte un arc al grafului H.

Se consideră subprogramele:• S1 cu doi parametri, care prime te prin intermediul parametrilor:ș

* nun numar natural repre"entând numarul de vârfuri ale grafului H* a, un tablou bidimensional pătratic cu n linii repre"entând matricea de adiacenţă agrafului H

Subprogramul determină, n urma apelului, citirea numerelor din fişierul EraA.in  şireturnarea prin intermediul parametrului n a numărului de vârfuri ale grafului H, iar prinintermediul parametrului a returnarea  matricei de adiacenţă a grafului H;• S2 cu doi parametri n şi , care primeşte prin intermediul parametrilor:

* n un număr natural nenul !2-n-3#(;*  un tablou unidimensional cu n componente care memorea"ă numere naturale.

Subprogramul returnea"ă numărul valorilor nenule din vector.Cerinţe:

! Scrieţi definiţia completă a subprogramului S1;b! Scrieţi definiţia completă a subprogramului S2;c! Scrieţi un program Pascal/C/C++, care, folosind apeluri utile ale subprogramelor S1

şi S2 determină şi afişea"ă pe ecran, pe prima linie, valoarea maximă a gradului extern iar,pe a doua linie, etic%etele nodurilor din graful O care au gradul extern maxim.

E"e#$lu. Dacă fişierul graf.in are conţinutul alăturat, programul vaafişa pe ecran:32 4

72 12 32 43 47 34 5

4 64 7

Subiectul nr.;

Se consideră un arbore cu rădăcină şi n vârfuri !n∈ !, 2-n-1##(, dat prin vectorul de tţi.@ârfurile arborelui sunt etic%etate cu numerele distincte: 12...n.

Fişierul %a&'.in conţine două linii. &e prima linie a fişierului este scris un număr naturalnenul n repre"entând numărul de vârfuri ale arborelui dat, iar pe a doua linie sunt scrise nnumere naturale, separate prin câte un spaţiu, repre"entând valorile componentelor vectorului de tţi.

Se consideră subprogramele:

• S1 cu doi parametri n şi &, care determină, n urma apelului, citirea numerelor din fişierul%a&'.in  şi returnarea prin intermediul parametrului n  a numărului de vârfuri alearborelui din enunţ, iar prin intermediul parametrului & returnarea unui tablouunidimensional cu n  componente numere naturale repre"entând vectorul de JtaţiK alarborelui din enunţ;

• S2 cu trei parametri n, & şi k, care primeşte prin intermediul parametrilor:= n numărul de vârfuri ale arborelui din enunţ;= & vectorul de PtaţiK al arborelui din enunţ;= k un număr natural !1≤k≤n( repre"entând etic%eta unui vârf al arborelui din enunţ.

20

Page 21: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 21/22

Subprogramul returnea"ă numărul tuturor fiilor !descendenţilor direcţi( ai vârfului cuetic%eta k.

Cerinţe:! Scrieţi definiţia completă a subprogramului S1b! Scrieţi definiţia completă a subprogramului S2

c! Scrieţi un program Pascal/C/C++ care să citească datele din fişierul %a&'.in şi dela tastatură un număr natural m #-m-n!; programul va afişa pe o linie a ecranului, separateprin câte un spaţiu, etic%etelor tuturor vârfurilor arborelui care au cel pu iț n m   fii, folosindapeluri utile ale subprogramelor S1 şi S2.

E"e#$lu. Dacă fişierul date.in areconţinutul alăturat iar m=2, programul va afişape ecran numerele următoare:

2 3 5 6

 1# 6 5 5 2 # 3 3 3 6 2

Subiectul nr.;

Fişierul %a&'.in  con ine pe prima linie un număr naturalț n  !n-1#(, iar pe fiecare dinurmătoarele n linii, separate prin câte un spaţiu, câte două numere naturale nenule !cu celmult G cifre fiecare( ce repre"intă numărătorul i numitorul unei frac ii algebrice.ș ț

Se consideră declarările următoare utili"ate pentru a memora numărătorul i numitorul uneiș

frac ii algebrice, n această ordineț :

&' Arac&i' = r'cr%

abin&'E'r

'n%

s&ruc& Arac&i'

  F in& ab

G

Cerinţe:

! Scrieţi definiţia completă a subprogramului S1 cu doi parametri, de tipul frac ie definitț

mai sus, prin intermediul cărora primeşte două frac ii algebrice şi care returnea"ă un re"ultatț

de tip frac ie ce repre"intă suma celor două frac ii primite prin parametri.ț ț

b! Scrieţi definiţia completă a subprogramului S2  cu doi parametri  a  iș   b prinintermediul cărora prime te două numere naturale nenule !cu cel mult G cifre fiecare( şi careș

returnea"ă cel mai mare divi"or comun al celor două numere primite.

c! Scrieţi un program Pascal/C/C++, care citeşte din fişierul %a&'.in, de pe primalinie a acestuia, un număr natural n  !n-1#( şi apoi cele n frac ii. &rin apeluri utile aleț

subprogramelor S1 şi S2, programul va calcula o frac ie algebrică ireductibilă repre"entândțsuma celor n frac ii citite din fi ier. &rogramul va afişa pe ecran frac ia sumț ș ț ă determinată subforma numărător 3 numitor, ca n exemplu.

E"e#$lu. Dacă fişierul date.in are conţinutul alăturat,programul va afişa pe ecran:

$1/12

6 1 51 42 36 24 58 3

21

Page 22: sub atestat

7/23/2019 sub atestat

http://slidepdf.com/reader/full/sub-atestat 22/22

C(lecti0ul &e ut(ri:

$r(+. Cr#enNic(let Minc

$r(+. Alin Gbriel B(c

$r(+. ?(inu#iniţ ?ruţ$r(+. C(rin Elen B&e

$r(+. C(rinElen Vinț

$r(+. ?(in Mrin ?inc

- C(le,iul Nţi(nl &e In+(r#tic QTu&(r Vinu

- C(le,iul Nţi(nl QI(n Neculce

- iceul Te(retic Q?nte Ali,=ieri- iceul Te(retic QAle"n&ru I(n Cu

- C(le,iul Nţi(nl &e In+(r#tic QTu&(r Vinu

- C(le,iul Nţi(nl QOct0 Onice)cu

C((r&(nt(r:$r(+.te+ni Pene in)$ect(r c(lr &e )$ecilitte In+(r#tic i Te=n(l(,iIn+(r#tiei i C(#unicţiil(r In)$ect(rtul c(lr l Munici$iului Bucureti


Recommended