L1a

2
 Structuri de Date (1CC) L A B O R A T O R 1a Functii recursive  1. Functie recursiva pentru cautarea primei aparitii a unei valori date "" intr!un vector "a" de n elemente cu reultat pointer# adresa valorii $asite sau %&LL daca nu e'ista.  int irst (int * int a+,* int n)-  . Functie recursiva ec/ivalenta cu unctia de ilioteca "strc/r"#  c/ar strc/r (c/ar s* c/ar c)- 0ndicatie# Se cauta prima aparitie a lui "c" in sirul (vectorul) "s".  . Functie recursiva pentru determinarea celui mai mare divior comun a doi intre$i "a" si "" pe aa relatiei de recurenta#  cmmdc(a*) 2 cmmdc (* a3) pentru 4 5  Sa se adau$e apoi aisarea ar$umentelor la iecare apel al unctiei.  6. Functie recursiva* de tip "lon$"* pentru calculul cominarilor de "n" luate cate "7" olosind relatia de recurenta #  C(n*7) 21 pentru n27 sau 725  C(n*7) 2 C(n*7!1) (n!781)97 ptr 7 4 5 si 7 : n  Sa se adau$e apoi numararea apelurilor unctiei si aisarea lor in "main"* ara a olosi variaile e'terne unctiilor (cu un parametru in plus).  ;. Functie recursiva* de tip "lon$"* pentru calculul cominarilor de "n" luate cate "7" olosind relatia de recurenta #  C(n*7) 21 pentru n27 sau 725  C(n*7) 2 C(n!1*7) 8 C(n!1*7!1) ptr 7 4 5 si 7 : n  Sa se adau$e apoi numararea apelurilor unctiei si aisarea lor in "main". <. Functie pentru cautarea inara a unei valori date "" intr!un vector ordonat "a" de n elemente distincte cu reultat intre$# poitia lui "" in "a" sau !1 daca "a" nu contine pe ""#  int searc/ (int * int a+,* int n)- Se va apela o unctie recursiva de cautare inara cu 6 ar$umente#  int s (int * int a+,* int in* int sup)- "in"*"sup" sunt prima si ultima poitie dintr!un suvector din =a= unde se cauta ==  >. Functie recursiva pentru calculul valorii unui polinom cu n coeicienti ?(n)2c+5,'@(n!1)8c+1,'@(n!)8...8c+n!,'8c+n!1, pentru o valoare data '#  int valpol( int c+,* int n* int ') - Se va olosi relatia de recurenta#  ?(n) 2 ?(n!1)' 8 c+n!1, ptr n45 si ?(5)25

description

l1aa

Transcript of L1a

Page 1: L1a

7/18/2019 L1a

http://slidepdf.com/reader/full/l1a55cf864f550346484b965ac5 1/2

Structuri de Date (1CC)

L A B O R A T O R 1a

Functii recursive

  1. Functie recursiva pentru cautarea primei aparitii a unei valori date ""

intr!un vector "a" de n elemente cu reultat pointer# adresa valorii $asite

sau

%&LL daca nu e'ista.

  int irst (int * int a+,* int n)-

  . Functie recursiva ec/ivalenta cu unctia de ilioteca "strc/r"#

  c/ar strc/r (c/ar s* c/ar c)-

0ndicatie# Se cauta prima aparitie a lui "c" in sirul (vectorul) "s".

  . Functie recursiva pentru determinarea celui mai mare divior comun

a doi intre$i "a" si "" pe aa relatiei de recurenta#

  cmmdc(a*) 2 cmmdc (* a3) pentru 4 5  Sa se adau$e apoi aisarea ar$umentelor la iecare apel al unctiei.

  6. Functie recursiva* de tip "lon$"* pentru calculul cominarilor de

"n" luate cate "7" olosind relatia de recurenta #

  C(n*7) 21 pentru n27 sau 725

  C(n*7) 2 C(n*7!1) (n!781)97 ptr 7 4 5 si 7 : n

  Sa se adau$e apoi numararea apelurilor unctiei si aisarea lor in

"main"* ara a olosi variaile e'terne unctiilor (cu un parametru in plus).

  ;. Functie recursiva* de tip "lon$"* pentru calculul cominarilor de

"n" luate cate "7" olosind relatia de recurenta #

  C(n*7) 21 pentru n27 sau 725

  C(n*7) 2 C(n!1*7) 8 C(n!1*7!1) ptr 7 4 5 si 7 : n

  Sa se adau$e apoi numararea apelurilor unctiei si aisarea lor in "main".

<. Functie pentru cautarea inara a unei valori date "" intr!un vector

ordonat

"a" de n elemente distincte cu reultat intre$# poitia lui "" in "a" sau !1

daca

"a" nu contine pe ""#

  int searc/ (int * int a+,* int n)-

Se va apela o unctie recursiva de cautare inara cu 6 ar$umente#

  int s (int * int a+,* int in* int sup)-

"in"*"sup" sunt prima si ultima poitie dintr!un suvector din =a= unde secauta ==

  >. Functie recursiva pentru calculul valorii unui polinom cu n coeicienti

?(n)2c+5,'@(n!1)8c+1,'@(n!)8...8c+n!,'8c+n!1, pentru o valoare data '#

  int valpol( int c+,* int n* int ') -

Se va olosi relatia de recurenta#

  ?(n) 2 ?(n!1)' 8 c+n!1, ptr n45 si ?(5)25

Page 2: L1a

7/18/2019 L1a

http://slidepdf.com/reader/full/l1a55cf864f550346484b965ac5 2/2

  . Functie recursiva ec/ivalenta cu unctia standard "atoi" dupa modelul

unctiei "valpol"#

  int atoin(c/ars* int n)- 99 n2lun$ime sir s

0ndicatie# Se va olosi aceeasi metoda de calcul din unctia "valpol" deoarece

16 2 115@ 8 15@ 8 15@1 2 615@5 deci ?(6) cu '215

  . Functie recursiva ec/ivalenta cu unctia standard "atoi" care sa apelee

o varianta a unctiei "valpol" (modiicata astel ca reultatul sa ie

corect).

  int atoir (c/ars)- 99 conversie din sir ASC00 in "int"

  15. Functie recursiva pentru aisare unui sir in ordine inversa#

  void rprint (c/ar s)-

  Functie recursiva pentru crearea unui sir t cu caractereledin s in

ordine

inversa# void reverse (c/ars* c/art)-