Sunteți pe pagina 1din 72

Universitatea Constatin Brncui din Trgu-Jiu Facultatea de Inginerie Departamentul de Automatic, Energie i Mediu

Programarea calculatoarelor
Lect.dr. Adrian Runceanu

Curs 11

02.12.2012

Programarea calculatoarelor

Capitolul 9.Functii
9.1. Declararea funciei 9.2. Apelul funciei 9.3. Prototipul funciei 9.4. Parametri formali i actuali 9.5. Variabile locale i variabile globale 9.6. Variabile statice i variabile automatice 9.7. Funcii matematice

02.12.2012

Programarea calculatoarelor

n limbajul C/C++, una din cele mai importante faciliti o constituie folosirea funciilor. De fapt, funciile reprezint locul unde sunt scrise i executate instruciunile oricrui program. Definiie: O funcie n C/C++ este o construcie independent care conine declaraii i instruciuni i care realizeaz o anumit aciune.

02.12.2012

Programarea calculatoarelor

Pentru a construi i folosi o funcie trebuie s cunoatem trei elemente care sunt implicate n utilizarea funciilor:

1. Declararea funciei 2. Apelul funciei 3. Prototipul funciei

02.12.2012

Programarea calculatoarelor

9.1. Declararea funciei


Forma general a unei funcii este urmtoarea: tip nume_funcie (lista de parametri formali) { declaraii variabile locale instruciuni }
02.12.2012 Programarea calculatoarelor 6

9.1. Declararea funciei


Unde: tip reprezint tipul valorii returnate de funcie lista parametri formali reprezint variabilele folosite in cadrul funciei mpreun cu tipul fiecaruia dintre ele, dar care au nume (denumiri) generice formale care nu trebuie neaprat s coincid cu denumirile variabilele folosite n alte funcii sau chiar n funcia principal.

02.12.2012

Programarea calculatoarelor

9.1. Declararea funciei


declaraii variabile locale - reprezint zona de declarare a variabilelor folosite doar n cadrul corpului funciei respective i care nu se pot folosi n alte funcii. instruciuni reprezint secvena de instruciuni care formeaz funcia considerat. Observaie: Dac lista parametrilor formali este vid, atunci reprezentarea declarrii ei se face astfel:

tip nume_funcie(void)
02.12.2012 Programarea calculatoarelor 8

Capitolul 9. Functii
9.1. Declararea funciei 9.2. Apelul funciei 9.3. Prototipul funciei 9.4. Parametri formali i actuali 9.5. Variabile locale i variabile globale 9.6. Variabile statice i variabile automatice 9.7. Funcii matematice

02.12.2012

Programarea calculatoarelor

9.2. Apelul funciei


2. Apelul funciei Apelul unei funcii se realizeaz astfel:

nume_functie(pa1, pa2, . . . ,pan);


Unde pa1, pa2, . . . ,pan, reprezint lista parametrilor actuali (reali) cu care se folosete funcia respectiv. De reinut: Apelul poate s apar ntr-o instruciune de apel dac funcia returneaz sau nu o valoare. Apelul unei funcii poate s apar ntr-o expresie numai dac funcia returneaz o valoare.
02.12.2012 Programarea calculatoarelor 10

Capitolul 9. Functii
9.1. Declararea funciei 9.2. Apelul funciei 9.3. Prototipul funciei 9.4. Parametri formali i actuali 9.5. Variabile locale i variabile globale 9.6. Variabile statice i variabile automatice 9.7. Funcii matematice

02.12.2012

Programarea calculatoarelor

11

9.3. Prototipul funciei


3. Prototipul funciei Pentru a funciona corect programul, orice funcie trebuie declarat anterior folosirii ei. Declararea este necesar dac funcia este definit n alt parte dect n fiierul n care este apelat, sau dac este definit n acelai fiier dar n urma apelrii. Prototipul unei funcii are urmtoarea form general:
tip nume_funcie(lista declaraii parametri);
02.12.2012 Programarea calculatoarelor 12

9.3. Prototipul funciei


Unde tip reprezint tipul valorii returnate de funcie: dac nu se specific, atunci implicit (automat) este considerat de ctre compilatorul C/C++ ca fiind tipul int. dac tip este void atunci funcia nu returneaz nici o valoare, i deci poate aciona ca o procedur.
02.12.2012 Programarea calculatoarelor 13

9.3. Prototipul funciei


lista declaraii parametri poate avea una din urmtoarele patru forme:
1. n list apar numai tipul de date al parametrilor separai prin virgul 2. n list apar att tipul de date al parametrilor ct i numele lor separate prin virgul 3. Lista nu este specificat 4. Lista este vid void
02.12.2012 Programarea calculatoarelor 14

9.3. Prototipul funciei


Exemplu: Prezentm n continuare declararea unei funcii de tip double care trei parametri: unul ntreg, unul de tip double i al treilea de tip caracter, n cele patru forme amintite mai sus: 1. double f(int, double, char); 2. double f(int i, double x, char c); 3. double f(); // nu nseamn ca funcia nu are parametri, ci doar compilatorul nu va mai face, la apel, verificarea tipului parametrilor 4. double g(void); // nu are parametri Se recomand folosirea formelor 1) sau 2).
02.12.2012 Programarea calculatoarelor 15

9.3. Prototipul funciei


Problema 1: Urmtorul program conine prototipul i apoi definirea a dou funcii care ridic la cub o valoare ntreag, respectiv o valoare real:

02.12.2012

Programarea calculatoarelor

16

9.3. Prototipul funciei


#include<iostream.h> int intreg_la_cub(int); float real_la_cub(float); int main() { cout<<"\n 3 la cub este "<< intreg_la_cub(3); cout<<"\n 5.2 la cub este "<< real_la_cub(5.2); }
02.12.2012 Programarea calculatoarelor 17

9.3. Prototipul funciei


int intreg_la_cub(int valoare) { return (valoare * valoare * valoare); } float real_la_cub(float valoare) { return (valoare * valoare * valoare); }
02.12.2012 Programarea calculatoarelor 18

Capitolul 10. Funcii


10.1. Declararea funciei 10.2. Apelul funciei 10.3. Prototipul funciei 10.4. Parametri formali i actuali 10.5. Variabile locale i variabile globale 10.6. Variabile statice i variabile automatice 10.7. Funcii matematice

02.12.2012

Programarea calculatoarelor

19

10.4. Parametri formali i actuali


4. Parametri formali i actuali n definiia funciilor parametrii formali sunt de fapt numele parametrilor care apar n construcia funciei. Exemplu: Definim o funcie care urmtorii parametri formali: vrsta, salariu, i nr_cod, astfel: void info_angajat(int vrsta, float salariu, int nr_cod) { // instruciunile funciei }
02.12.2012 Programarea calculatoarelor 20

10.4. Parametri formali i actuali


Atunci cnd o funcie apeleaz o alt funcie, valorile transmise de funcia apelant sunt parametrii actuali (sau parametrii reali). Astfel, dac se apeleaz funcia cu valorile 34, 4500.00 i 101, aceste valori reprezint parametrii actuali n apelul funciei: info_angajat(34, 4500.00, 101); Parametrii actuali pe care i folosete o funcie pot fi valori constante sau variabile. Valoarea si tipul parametrilor actuali trebuie s se potriveasc cu valoarea si tipul parametrilor formali.
02.12.2012 Programarea calculatoarelor 21

10.4. Parametri formali i actuali


Exemplu: Urmtoarea secven de program ilustreaz modul de folosire a variabilelor ca parametri actuali:

int vrsta_angajat = 34; float salariu_angajat = 4500.00; int numr_cod = 101; info_angajat(vrsta_angajat, salariu_angajat, numr_cod);

02.12.2012

Programarea calculatoarelor

22

10.4. Parametri formali i actuali


Astfel, atunci cnd se apeleaz o funcie folosind ca variabile parametri actuali, numele variabilelor utilizate nu au nici o legtur cu numele parametrilor formali. Compilatorul C/C++ va lua n considerare numai valorile pe care le au variabilele respective(parametrii actuali).
02.12.2012 Programarea calculatoarelor 23

Capitolul 10. Funcii


10.1. Declararea funciei 10.2. Apelul funciei 10.3. Prototipul funciei 10.4. Parametri formali i actuali 10.5. Variabile locale i variabile globale 10.6. Variabile statice i variabile automatice 10.7. Funcii matematice

02.12.2012

Programarea calculatoarelor

24

10.5. Variabile locale i variabile globale


Din punctul de vedere al vizibilitii variabilelor avem: 1. variabile locale

2. variabile globale

02.12.2012

Programarea calculatoarelor

25

10.5. Variabile locale i variabile globale


1. Variabilele locale se declar n cadrul funciilor i se numesc locale deoarece numele i valorile lor sunt valabile doar n cadrul funciei respective.

02.12.2012

Programarea calculatoarelor

26

10.5. Variabile locale i variabile globale


Exemplu: Urmtoarea funcie numit var_locale conine - trei variabile locale numite x, y i z - crora le atribuie valorile 10, 20 i 30 - i apoi execut afiarea valorilor lor, - iar n programul principal, compilatorul va genera cod de eroare la ncercarea nereuit de a afia aceleai valori ale variabilelor locale funciei considerate:
02.12.2012 Programarea calculatoarelor 27

10.5. Variabile locale i variabile globale


#include<iostream.h> void var_locale(void) { int x = 10, y = 20, z = 30; cout<<"Variabila x = "<<x<<" variabila y = "<<y<< "variabila z = " <<z<<"\n"; } int main() { var_locale(); cout<<"Variabila x = "<<x<<" variabila y = "<<y<< "variabila z = " <<z<<"\n"; }
02.12.2012 Programarea calculatoarelor 28

10.5. Variabile locale i variabile globale

02.12.2012

Programarea calculatoarelor

29

10.5. Variabile locale i variabile globale


2. Variabilele globale sunt acele variabile care se declar naintea oricror declaraii de funcii, iar numele, valorile i existena lor este recunoscut n ntregul program. Exemplu: Urmtorul program conine dou funcii, una numit var_globale() i cea de-a doua funcia principal main() i trei variabile x, y i z:
02.12.2012 Programarea calculatoarelor 30

10.5. Variabile locale i variabile globale


#include <iostream.h> int x = 10, y = 20, z = 30; void var_globale(void) { cout<<"\nVariabila x = "<<x<<" variabila y = "<<y<<"variabila z = " <<z; } int main() { var_globale(); cout<<"\nVariabila x = "<<x<<" variabila y = "<<y<<" variabila z = "<<z; }
02.12.2012 Programarea calculatoarelor 31

10.5. Variabile locale i variabile globale


Dup compilarea i execuia acestui program, ambele funcii, var_globale() i main(), vor afia pe ecran valorile variabilelor globale. Observaie: Declararea variabilelor s-a fcut n afara funciilor. Atunci cnd se declar ca variabil global, toate funciile programului pot folosi i modifica valorile acelei variabile prin simpla referire la numele su.
02.12.2012 Programarea calculatoarelor 32

10.5. Variabile locale i variabile globale

02.12.2012

Programarea calculatoarelor

33

10.5. Variabile locale i variabile globale


Chiar dac variabilele globale par convenabile la prima vedere, ele nu sunt recomandate de obicei. Astfel, dac se folosesc variabile globale se observ c nu mai trebuie utilizai parametri n cadrul funciilor i deci numai trebuie i se neleag mecanismul apelului prin valoare i apelului prin referin.
02.12.2012 Programarea calculatoarelor 34

10.5. Variabile locale i variabile globale


Totui n loc s reduc numrul de erori, folosirea variabilelor globale mresc numrul lor. Deoarece n sursa unui program se poate modifica valoarea unei variabile globale n orice loc al programului, este foarte dificil pentru un alt programator s gseasc fiecare loc din program n care variabila respectiv se utilizeaz.

02.12.2012

Programarea calculatoarelor

35

10.5. Variabile locale i variabile globale


Astfel, ali programatori pot modifica programul dar far ca s aib vreun control asupra efectelor acestor modificri asupra variabilelor declarate global. Este o regul general ca orice modificare a unei variabile s se reflecte doar asupra funciei care le folosete. De aici este recomandabil ca orice program n C/C++ s aibe numai variabile locale i eventual doar cteva variabile globale (ct mai puine).
02.12.2012 Programarea calculatoarelor 36

10.5. Variabile locale i variabile globale


Prezentm n continuare un exemplu de program care evideniaz efectele folosirii numelor de variabile identice att n funcii, ct i n funcia principal:

#include <iostream.h> int a = 10, b = 20, c = 30; // variabile globale void valoarea_lui_a(void) { int a = 100; cout<<"variabila a contine "<<a<<"variabila b contine "<<b<<"variabila c contine "<<c<<"\n"; }
02.12.2012 Programarea calculatoarelor 37

10.5. Variabile locale i variabile globale


int main() { valoarea_lui_a(); cout<<"variabila a contine "<< a <<"variabila b contine "<< b <<"variabila c contine " <<c<<"\n"; }
02.12.2012 Programarea calculatoarelor 38

10.5. Variabile locale i variabile globale

02.12.2012

Se observ c numele variabilei globale intr n conflict cu cel al variabilei locale i atunci compilatorul C++, va folosi ntotdeauna variabila local. Deci, n funcie, se va afia valoarea modificat a variabilei a i nu cea iniial, care a fost declarat global la nceputul programului.
Programarea calculatoarelor 39

Capitolul 10. Funcii


10.1. Declararea funciei 10.2. Apelul funciei 10.3. Prototipul funciei 10.4. Parametri formali i actuali 10.5. Variabile locale i variabile globale 10.6. Variabile statice i variabile automatice 10.7. Funcii matematice

02.12.2012

Programarea calculatoarelor

40

10.6. Variabile statice i variabile automatice

Din punctul de vedere al locului n care sunt alocate variabilele i al locului alocrii avem:
1. variabile automatice (auto) 2. variabile statice

02.12.2012

Programarea calculatoarelor

41

10.6. Variabile statice i variabile automatice

1. Variabilele automatice se aloc n regitrii de stare sau pe stiv i sunt disponibile numai n locul n care s-a fcut alocarea (ele se aloc la execuie) 2. Variabilele statice se aloc n zona de date a programului la ncrcarea programului n memorie. Ele sunt disponibile pe toat durata de existen a programului n memorie.
02.12.2012 Programarea calculatoarelor 42

10.6. Variabile statice i variabile automatice


Prezentm n continuare harta simplificat a memoriei la ncrcarea programului:
zona memoriei libere (HEAP) __________________________________ zona stiv __________________________________ zona de date iniializate ______________________ zona de date neiniializate __________________________________ zona text (codul programului)
02.12.2012 Programarea calculatoarelor

Registers

43

10.6. Variabile statice i variabile automatice

Acum putem specifica pentru fiecare zon, variabilele i parametrii care se aloc acolo: n zona stiv se aloc: variabilele locale automatice parametrii funciilor adresa de retur a funciei variabilele temporare necesare evalurii expresiilor
02.12.2012 Programarea calculatoarelor 44

10.6. Variabile statice i variabile automatice

n zona de date se aloc: variabilele globale iruri iniializate i constante variabilele locale statice

02.12.2012

Programarea calculatoarelor

45

10.6. Variabile statice i variabile automatice

n zona registers se aloc: variabilele locale automatice parametrii de apel ai funciilor

02.12.2012

Programarea calculatoarelor

46

10.6. Variabile statice i variabile automatice

n limbajul C++, variabilele care se declar n cadrul funciei sunt adesea numite i automatice, deoarece compilatorul C/C++ le creeaz automat cnd ncepe execuia funciei i apoi le distruge cnd ea se ncheie.
Aceast caracteristic a variabilelor se explic prin faptul c variabilele funciilor sunt pstrate de compilator temporar n stiv.
02.12.2012 Programarea calculatoarelor 47

10.6. Variabile statice i variabile automatice

Ca urmare, funcia atribuie o valoare unei variabile n timpul unei apelri, dar variabila pierde valorile dup ce funcia se ncheie. La urmtoarea apelare a funciei, valoarea variabilei este din nou nedefinit. n funcie de procesele executate de funcia respectiv, este posibil ca variabilele funciei s memoreze ultima valoare care le-a fost atribuit n cadrul funciei.
02.12.2012 Programarea calculatoarelor 48

10.6. Variabile statice i variabile automatice


Exemplu: Prezentm n continuare o funcie care afieaz numrul matricol pentru fiecare student dintr-o facultate. Funcia afieaz_matricol(), folosete o variabil static id_student care pstreaz numrul de identificare al studentului pentru care s-a tiprit ultima foaie matricol. n acest fel, fr nici o alt meniune funcia va ncepe s tipreasc foaia matricol a urmtorului student:
02.12.2012 Programarea calculatoarelor 49

10.6. Variabile statice i variabile automatice

void afiseaza_matricol(int numar_print) { static int id_student;


// celelalte instruciuni

02.12.2012

Programarea calculatoarelor

50

10.6. Variabile statice i variabile automatice

Urmtorul program ilustreaz folosirea unei variabile statice, astfel nct de fiecare dat cnd funcia este apelat se va afia o valoare cu o unitate mai mare dect precedenta datorit folosirii variabilei statice id_student:

02.12.2012

Programarea calculatoarelor

51

10.6. Variabile statice i variabile automatice


#include<iostream.h> void afiseaza_matricol(int numar_print) { static int id_student = 100; cout<<"Studentul cu numarul matricol "<<id_student<<"\n"; id_student++; // celelalte instructiuni } int main() { afiseaza_matricol(1); afiseaza_matricol(1); afiseaza_matricol(1); }
02.12.2012 Programarea calculatoarelor

52

10.6. Variabile statice i variabile automatice

Dup compilarea i execuia programului, pe ecran vor aprea urmtoarele valori:

Se observ c variabila id_student i pstreaz valoarea de la o apelare la alta.


02.12.2012 Programarea calculatoarelor 53

Capitolul 10. Funcii


10.1. Declararea funciei 10.2. Apelul funciei 10.3. Prototipul funciei 10.4. Parametri formali i actuali 10.5. Variabile locale i variabile globale 10.6. Variabile statice i variabile automatice 10.7. Funcii matematice

02.12.2012

Programarea calculatoarelor

54

10.7. Funcii matematice


n programele n care avem nevoie s efectum anumite calcule matematice, putem folosi cteva funcii predefinite ale limbajului C/C++ care efectueaz aceste calcule. Prototipurile acestor funcii se afl n fiierul sistem <math.h>, care trebuie inclus pentru compilarea programului.
02.12.2012 Programarea calculatoarelor 55

10.7. Funcii matematice


Prezint n continuare cteva exemple de funcii matematice: Valoarea absolut a unui numr ntreg abs() #include<iostream.h> #include<math.h> int main() { cout<<"Valoarea absoluta a lui "<<10<<" este "<<abs(10)<<"\n"; cout<<"Valoarea absoluta a lui "<<0<<" este "<<abs(0)<<"\n"; cout<<"Valoarea absoluta a lui "<<-10<<" este "<<abs(10)<<"\n"; }
02.12.2012 Programarea calculatoarelor 56

10.7. Funcii matematice


Dup compilarea i execuia programului se obin urmtoarele valori:
Valoarea absolut a lui 10 este 10 Valoarea absolut a lui 0 este 0 Valoarea absolut a lui 10 este 10

02.12.2012

Programarea calculatoarelor

57

10.7. Funcii matematice


Rotunjirea unei valori reale n virgul mobil ceil() i floor()

Funcia ceil() se folosete atunci cnd se dorete s se rotunjeasc valoarea unei variabile sau a unei expresii, nlocuind-o cu valoarea ntreag imediat urmtoare. Funcia floor() se folosete atunci cnd se dorete s se rotunjeasc valoarea unei variabile sau a unei expresii, nlocuind-o cu valoarea ntreag imediat anterioar.
02.12.2012 Programarea calculatoarelor 58

10.7. Funcii matematice


#include <iostream.h> #include <math.h> int main() { cout<<"Valoarea "<<1.9<<" rotunjita cu functia ceil() este"<<ceil(1.9)<<"\n"; cout<<"Valoarea "<<2.1<<" rotunjita cu functia ceil() este"<<ceil(2.1)<< "\n"; cout<<"Valoarea "<<1.9<<" rotunjita cu functia floor() este"<<floor(1.9)<<"\n"; cout<<"Valoarea "<<2.1<<" rotunjita cu functia floor() este"<<floor(2.1)<<"\n"; } 02.12.2012
Programarea calculatoarelor 59

10.7. Funcii matematice


Dup compilarea i execuia programului se obin urmtoarele valori:

Valoarea 1.900000 rotunjita cu functia ceil() este 2.000000 Valoarea 2.100000 rotunjita cu functia ceil() este 3.000000 Valoarea 1.900000 rotunjita cu functia floor() este 1.000000 Valoarea 2.100000 rotunjita cu functia floor() este 2.000000

02.12.2012

Programarea calculatoarelor

60

10.7. Funcii matematice


Funcii trigonometrice: 1. 2. 3. 4. 5. 6. 7. 8. 9.
02.12.2012

sinus sin() cosinus cos() sinusul hiperbolic sinh() cosinusul hiberbolic cosh() tangenta tan() tangenta hiperbolic tanh() arcsinus asin() arccosinus acos() arctangenta atan()
Programarea calculatoarelor 61

10.7. Funcii matematice


Exemplu: ntr-un triunghi dreptunghic, sinusul unui unghi este raportul ntre latura opus i ipotenuz. Pentru a folosi n programele C/C++, determinarea sinusului unui unghi, se poate utiliza funcia sin(), care returneaz o valoare de tip double ce reprezint sinusul unui unghi specificat n radiani. La fel, se pot calcula cosinusul unui unghi i tangenta unui unghi:
02.12.2012 Programarea calculatoarelor

62

10.7. Funcii matematice


#include <iostream.h> #include <math.h> int main() { double radian; double pi=3.14159265; for(radian=0.0; radian<3.1; radian+=0.1) cout<< " Sinus de " <<radian<< " este " <<sin(radian)<<"\n"; cout<<"Cosinus de pi/2 este "<<cos(3.14159/2.0)<<"\n"; cout<<"Cosinus de pi este "<<cos(3.14159)<<"\n"; cout<<"Tangenta de pi este "<<tan(pi)<<"\n"; cout<<"Tangenta de pi/4 este "<<tan(pi/4.0)<<"\n";
02.12.2012 Programarea calculatoarelor 63

10.7. Funcii matematice


cout<<"\n Arcsinus <<"\n"; for(radian=-0.5; radian<=0.5; radian+=0.2) cout<<" "<<radian<<" "<<asin(radian); cout<<"\n Arccosinus "<<"\n"; for(radian=-0.5; radian<=0.5; radian+=0.2) cout<<" "<<radian<<" "<<acos(radian); cout<<"\n Arctangenta "<<"\n"; for(radian=-0.5; radian<=0.5; radian+=0.2) cout<<" "<<radian<<" "<<atan(radian); }

02.12.2012

Programarea calculatoarelor

64

10.7. Funcii matematice


Funcia exponenial - ex
Pentru a calcula ex trebuie s folosim funcia exp(): #include <iostream.h> #include <math.h> int main() { double valoare; for(valoare=0.0; valoare<=1.0; valoare+=0.1) cout<<"exp("<<valoare<<") este "<<exp(valoare); }
02.12.2012 Programarea calculatoarelor 65

10.7. Funcii matematice


Dup compilarea i execuia programului se obin urmtoarele valori:
exp(0.000000) este 1.000000 exp(0.100000) este 1.105171 exp(0.200000) este 1.221403 exp(0.300000) este 1.349859 exp(0.400000) este 1.491825 exp(0.500000) este 1.648721 exp(0.600000) este 1.822119 exp(0.700000) este 2.013753 exp(0.800000) este 2.225541 exp(0.900000) este 2.459603 exp(1.000000) esteProgramarea 2.718282 02.12.2012 calculatoarelor

66

10.7. Funcii matematice


Restul mpririi unui real la un numr real fmod()
#include <iostream.h> #include <math.h> int main() { double numarator=10.0, numitor=3.0; cout<<"fmod(10,3) este "<< fmod(numarator, numitor)); }
02.12.2012 Programarea calculatoarelor 67

10.7. Funcii matematice


Dup compilarea i execuia programului se obin urmtoarele valori:
fmod(10,3)=1.000000

02.12.2012

Programarea calculatoarelor

68

10.7. Funcii matematice


Calculul parii ntregi i fracionare dintr-un numr real modf(): #include <iostream.h> #include <math.h> Partea fracionar a unui numr int main() real - modf { double valoare=1.2345; double parte_intreaga, fract; fract=modf(valoare, &parte_intreaga); cout<<"Valoarea "<<valoare<<" are partea intreaga egala cu "<<parte_intreaga<<" si partea fractionara egala cu "<<fract<<"\n"; } Dup compilarea i execuia programului se obin urmtoarele valori: Valoarea 1.234500 are partea intreaga egala cu 1.000000 si partea 02.12.2012 Programarea calculatoarelor 69 fractionara egala cu 0.234500

10.7. Funcii matematice


Calculul lui xn pow() Ridicarea unei valori x la o putere dat n se poate efectua folosind funcia pow(), care utilizeaz o valoare de tip double i returneaz o valoare de tip double: #include<iostream.h> #include<math.h> int main() n pow() calculul lui x { int putere; for(putere=-2; putere <= 2; putere++) cout<<"10 ridicat la puterea "<<putere<<" este " <<pow(10.0, putere); } Dup compilarea i execuia programului se obin urmtoarele valori: 10 ridicat la puterea 2 este 0.010000 10 ridicat la puterea 1 este 0.100000 10 ridicat la puterea 0 este 1.000000 10 ridicat la puterea 1 este 10.000000 10 ridicat la puterea 2 este 100.000000
02.12.2012 Programarea calculatoarelor 70

10.7. Funcii matematice


Calculul rdcinii ptrate a unei valori sqrt()
Pentru a calcula rdcina ptrat dintr-o valoare de tip double, putem utiliza funcia sqrt(): #include <iostream.h> #include <math.h> int main() { double valoare; for(valoare=0.0; valoare<10.0; valoare+=0.1) cout<<"Valoarea "<<valoare<<" are radacina patrata "<<sqrt(valoare); }
02.12.2012 Programarea calculatoarelor 71

ntrebri?

02.12.2012

Programarea calculatoarelor

72

S-ar putea să vă placă și