Modulul II
Subprograme
Ce sunt subprogramele(func iile
ț )
în C++ (dar nu numai) ?
Ce sunt subprogramele(func iile
ț )
în C++ (dar nu numai) ?
• Să împartă codul în unită i u or de urmărit pentru om (util în special în
ț ș
cazul programelor complexe, unde lucrează mai multe persoane);
• Să evite repetarea unei secven e de cod în mai multe locuri
ț .
Cum se construie te o func ie?
ș ț
Cum se construie te o func ie?
ș ț
1. Antetul func iei
ț
Toate func iile au un antet, care arată cam a a
ț ș :
i care ne oferă următoarele informa ii
Ș ț :
o Ce tip de func ie este(int, bool, char, void)
ț ;
o Cum se nume te func ia
ș ț ;
o Parametrii func iei.
ț
Exemplu reprezentativ al antet-lui:
Cum se construie te o func ie?
ș ț
2. Corpul func iei
ț
Corpul func iei reprezintă un set de instruc iuni, delimitate de acolade
ț ț { }, care precizează pa ii care
ș
trebuie executa i.
ț
Orice variabilă declarată în func ie – inclusiv variabilele din parametri – sunt variabile locale i
ț ș
temporare, adică chiar dacă le vom modifica valorile între timp, acestea nu vor afecta valorile ini iale ale
ț
variabilelor din main().
Pentru o func ie care calculează suma a două numere, vom crea func ia astfel
ț ț :
Sau, direct:
Cum se construie te o func ie?
ș ț
2. Corpul func iei
ț
Corpul func iei reprezintă un set de instruc iuni, delimitate de acolade
ț ț { }, care precizează pa ii care
ș
trebuie executa i.
ț
Orice variabilă declarată în func ie – inclusiv variabilele din parametri – sunt variabile locale i
ț ș
temporare, adică chiar dacă le vom modifica valorile între timp, acestea nu vor afecta valorile ini iale ale
ț
variabilelor din main().
Pentru o func ie care calculează suma a două numere, vom crea func ia astfel
ț ț :
Sau, direct:
Aten ie:
ț După ce se apelează return într-o func ie, toate celelalte opera ii de
ț ț
după nu se mai execută.
Cum se construie te o func ie?
ș ț
3. Apelarea func iei
ț
Pentru a apela o func ie(subprogram), trebuie să men ionăm numele func iei, iar
ț ț ț
între paranteze, so completăm parametrii da i. Spre exemplu,
ț în int main() am putea scrie:
Func ii cu parametri vectori(tablouri
ț
unidimensionale)
Pe lângă variabile, putem să oferim ca parametru tablouri(vectori sau matrici). Exemplu ce
calculează suma numerelor unui vector:
Aten ie
ț : spre deosebire de variabile, dacă vectorul din parametru se modifică în timpul
func iei, atunci i vectorul ini ial furnizat se modifică. Acest lucru se datorează faptului că un vector
ț ș ț
este defapt un pointer.
Valori prestabilite pentru parametri
Dacă avem o func ie cu o listă de parametri, putem să specificăm o valoare implicită pentru
ț
acestea, în cazul în care nu se furnizează niciuna. Spre exemplu, următoarea func ie calculează suma
ț
numerelor a i
ș b, dar dacă b nu este furnizat, se face suma dintre a i
ș 0 (adică se returnează a):
În C++, este important ca parametrii care au valori prestabilite să fie plasa i la sfâr itul listei de
ț ș
parametri. Dacă un parametru are o valoare implicită i un alt parametru nu are, acest lucru va duce la
ș
eroare.
Parametri prin referin ă. Func ii de tipul
ț ț void
În mod normal, atunci când transmit o variabilă ca parametru într-o func ie, valoarea variabilei
ț
nu este modificată în afara func iei. Totu i, dacă dorim să
ț ș modificăm valoarea variabilei în interiorul
func iei, putem să folosim simbolul
ț & pentru a transmite parametrul prin referin ă
ț .
Func iile care modifică valorile parametrilor nu returnează nimic. Aceste func ii sunt de tipul
ț ț void
(adică nu au un tip de returnare, deoarece nu returnează niciun rezultat). De exemplu, o func ie care
ț
interschimbă valorile a două variabile ar putea arăta astfel:
Func ia
ț interschimbare prime te două variabile prin referin ă (a i b) i le schimbă între ele.
ș ț ș ș
Această func ie nu returnează nimic, pentru că scopul ei este doar să modifice valorile celor două
ț
variabile.
Tema9_Anul1.pptx. Programarea procedurala
Modularizarea unui program prin intermediul subprogramelor
Să se scrie un program care pentru un număr citit de la tastatură va determina daca e număr prim,
perfect, va face suma divizorilor i va tipări pătratul lui.
ș
Modularizarea unui program prin intermediul subprogramelor
Să se scrie un program care pentru un număr citit de la tastatură va determina daca e număr prim,
perfect, va face suma divizorilor i va tipări pătratul lui.
ș
Modularizarea unui program prin intermediul subprogramelor
Să se scrie un program care pentru un număr citit de la tastatură va determina daca e număr prim,
perfect, va face suma divizorilor i va tipări pătratul lui.
ș
Rezultatul
compilării
Modulul Sumad:
- subprogram de tip func ie;
ț
- - parametri de intrare:
numărul de tip întreg - x;
- parametri de ie ire: nu are;
ș
- scopul subprogramului:
calcularea sumei divizorilor unui
număr i returnarea lui ca
ș
rezultat al func iei (tip intreg).
ț
Modulul Prim:
- subprogram de tip func ie;
ț
- - parametri de intrare: numărul (tip
intreg) - x;
- - parametri de ie ire: nu are;
ș
- - scopul subprogramului: verificarea
daca un număr este prim sau nu i
ș
returnarea ca
rezultat al func iei valoarea 0 dacă este
ț
prim i 1 dacă nu este prim.
ș
Modulul Perfect:
- subprogram de tip procedura;
- parametri de intrare: numarul (tip
intreg) - , suma divizorilor (tip intreg)
- sum;
- - parametri de ie ire: o variabilă a
ș
cărei valoare va fi 0 dacă este perfect
sau 1 dacă
numărul nu este perfect - rez;
- scopul subprogramului: compararea
numărului cu suma divizorilor săi i
ș
atribuirea
unei valori corespunzătoare parametrului
de ie ire.
ș
Ce vor afi a următoarele programe?
ș
Ce va afi a următorul program?
ș
Rezultatul compilării
Problema 1
Oglinditul unui număr natural este numărul format
prin inversarea ordinii cifrelor sale. Spre exemplu, oglinditul
lui 123 este 321, iar oglinditul lui 10000 este 1.
Cerin ă
ț
Să se scrie o func ie care să ia ca parametru un număr
ț
natural n i să returneze oglinditul său.
ș
Detalii spre implementare
o Numele func iei este oglindit
ț ;
o Func ia acceptă un parametru număr întreg, n
ț ;
o Func ia returnează un număr întreg, reprezentând valoarea
ț
cerută.
Problema 2
Cerin ă
ț
Să se scrie o func ie care să ia ca parametru
ț
un număr natural n i să returneze suma 1+2+3+4+...+
ș
n.
Detalii spre implementare
o Numele func iei este suma_gauss
ț ;
o Func ia acceptă un parametru număr întreg, n
ț ;
o Func ia returnează un număr întreg, reprezentând
ț
valoarea cerută.

More Related Content

PPTX
Tema8_Anul1.pptx.Programarea procedurala
PPT
Limbaje de programare ingineresti - C++ notiuni
PPT
Limbaje de programare ingineresti - C++ notiuni
PPT
Tema2final
PPT
utilizarea functiilor in Excel
PPT
functii in Excel
PPTX
Tutorial C++
Tema8_Anul1.pptx.Programarea procedurala
Limbaje de programare ingineresti - C++ notiuni
Limbaje de programare ingineresti - C++ notiuni
Tema2final
utilizarea functiilor in Excel
functii in Excel
Tutorial C++

Similar to Tema9_Anul1.pptx. Programarea procedurala (20)

DOC
Manual de programare c
DOC
Functii, tablouri si pointeri in c si c++
DOC
Reprezentarea algoritmilor ap 21feb2011
PDF
manual-de-programare-c
PDF
CIG. Baze de date curs tema 5 partea 2.pdf
PPSX
Scanner class and Decimal Format in Java
PPTX
Programarea calculatoarelor - Limbajul C
DOC
Manual limbaj c
ODP
PDF
Pointeri şi tablouri
PPTX
0.0 particularitatile programarii с++
PPT
Initiere in turbo pascal
PDF
2006 intro java_v01
PDF
baze c++sructura unui program declarare variabilepdf.
DOCX
EXAMEN MNI 5-9.docx
PDF
Aplicatia calculator
DOC
Instructiuni in c si c++
PPT
Cap.4
PDF
initiere matlab
Manual de programare c
Functii, tablouri si pointeri in c si c++
Reprezentarea algoritmilor ap 21feb2011
manual-de-programare-c
CIG. Baze de date curs tema 5 partea 2.pdf
Scanner class and Decimal Format in Java
Programarea calculatoarelor - Limbajul C
Manual limbaj c
Pointeri şi tablouri
0.0 particularitatile programarii с++
Initiere in turbo pascal
2006 intro java_v01
baze c++sructura unui program declarare variabilepdf.
EXAMEN MNI 5-9.docx
Aplicatia calculator
Instructiuni in c si c++
Cap.4
initiere matlab
Ad

Tema9_Anul1.pptx. Programarea procedurala

  • 2. Ce sunt subprogramele(func iile ț ) în C++ (dar nu numai) ?
  • 3. Ce sunt subprogramele(func iile ț ) în C++ (dar nu numai) ? • Să împartă codul în unită i u or de urmărit pentru om (util în special în ț ș cazul programelor complexe, unde lucrează mai multe persoane); • Să evite repetarea unei secven e de cod în mai multe locuri ț .
  • 4. Cum se construie te o func ie? ș ț
  • 5. Cum se construie te o func ie? ș ț 1. Antetul func iei ț Toate func iile au un antet, care arată cam a a ț ș : i care ne oferă următoarele informa ii Ș ț : o Ce tip de func ie este(int, bool, char, void) ț ; o Cum se nume te func ia ș ț ; o Parametrii func iei. ț Exemplu reprezentativ al antet-lui:
  • 6. Cum se construie te o func ie? ș ț 2. Corpul func iei ț Corpul func iei reprezintă un set de instruc iuni, delimitate de acolade ț ț { }, care precizează pa ii care ș trebuie executa i. ț Orice variabilă declarată în func ie – inclusiv variabilele din parametri – sunt variabile locale i ț ș temporare, adică chiar dacă le vom modifica valorile între timp, acestea nu vor afecta valorile ini iale ale ț variabilelor din main(). Pentru o func ie care calculează suma a două numere, vom crea func ia astfel ț ț : Sau, direct:
  • 7. Cum se construie te o func ie? ș ț 2. Corpul func iei ț Corpul func iei reprezintă un set de instruc iuni, delimitate de acolade ț ț { }, care precizează pa ii care ș trebuie executa i. ț Orice variabilă declarată în func ie – inclusiv variabilele din parametri – sunt variabile locale i ț ș temporare, adică chiar dacă le vom modifica valorile între timp, acestea nu vor afecta valorile ini iale ale ț variabilelor din main(). Pentru o func ie care calculează suma a două numere, vom crea func ia astfel ț ț : Sau, direct: Aten ie: ț După ce se apelează return într-o func ie, toate celelalte opera ii de ț ț după nu se mai execută.
  • 8. Cum se construie te o func ie? ș ț 3. Apelarea func iei ț Pentru a apela o func ie(subprogram), trebuie să men ionăm numele func iei, iar ț ț ț între paranteze, so completăm parametrii da i. Spre exemplu, ț în int main() am putea scrie:
  • 9. Func ii cu parametri vectori(tablouri ț unidimensionale) Pe lângă variabile, putem să oferim ca parametru tablouri(vectori sau matrici). Exemplu ce calculează suma numerelor unui vector: Aten ie ț : spre deosebire de variabile, dacă vectorul din parametru se modifică în timpul func iei, atunci i vectorul ini ial furnizat se modifică. Acest lucru se datorează faptului că un vector ț ș ț este defapt un pointer.
  • 10. Valori prestabilite pentru parametri Dacă avem o func ie cu o listă de parametri, putem să specificăm o valoare implicită pentru ț acestea, în cazul în care nu se furnizează niciuna. Spre exemplu, următoarea func ie calculează suma ț numerelor a i ș b, dar dacă b nu este furnizat, se face suma dintre a i ș 0 (adică se returnează a): În C++, este important ca parametrii care au valori prestabilite să fie plasa i la sfâr itul listei de ț ș parametri. Dacă un parametru are o valoare implicită i un alt parametru nu are, acest lucru va duce la ș eroare.
  • 11. Parametri prin referin ă. Func ii de tipul ț ț void În mod normal, atunci când transmit o variabilă ca parametru într-o func ie, valoarea variabilei ț nu este modificată în afara func iei. Totu i, dacă dorim să ț ș modificăm valoarea variabilei în interiorul func iei, putem să folosim simbolul ț & pentru a transmite parametrul prin referin ă ț . Func iile care modifică valorile parametrilor nu returnează nimic. Aceste func ii sunt de tipul ț ț void (adică nu au un tip de returnare, deoarece nu returnează niciun rezultat). De exemplu, o func ie care ț interschimbă valorile a două variabile ar putea arăta astfel: Func ia ț interschimbare prime te două variabile prin referin ă (a i b) i le schimbă între ele. ș ț ș ș Această func ie nu returnează nimic, pentru că scopul ei este doar să modifice valorile celor două ț variabile.
  • 13. Modularizarea unui program prin intermediul subprogramelor Să se scrie un program care pentru un număr citit de la tastatură va determina daca e număr prim, perfect, va face suma divizorilor i va tipări pătratul lui. ș
  • 14. Modularizarea unui program prin intermediul subprogramelor Să se scrie un program care pentru un număr citit de la tastatură va determina daca e număr prim, perfect, va face suma divizorilor i va tipări pătratul lui. ș
  • 15. Modularizarea unui program prin intermediul subprogramelor Să se scrie un program care pentru un număr citit de la tastatură va determina daca e număr prim, perfect, va face suma divizorilor i va tipări pătratul lui. ș Rezultatul compilării
  • 16. Modulul Sumad: - subprogram de tip func ie; ț - - parametri de intrare: numărul de tip întreg - x; - parametri de ie ire: nu are; ș - scopul subprogramului: calcularea sumei divizorilor unui număr i returnarea lui ca ș rezultat al func iei (tip intreg). ț Modulul Prim: - subprogram de tip func ie; ț - - parametri de intrare: numărul (tip intreg) - x; - - parametri de ie ire: nu are; ș - - scopul subprogramului: verificarea daca un număr este prim sau nu i ș returnarea ca rezultat al func iei valoarea 0 dacă este ț prim i 1 dacă nu este prim. ș Modulul Perfect: - subprogram de tip procedura; - parametri de intrare: numarul (tip intreg) - , suma divizorilor (tip intreg) - sum; - - parametri de ie ire: o variabilă a ș cărei valoare va fi 0 dacă este perfect sau 1 dacă numărul nu este perfect - rez; - scopul subprogramului: compararea numărului cu suma divizorilor săi i ș atribuirea unei valori corespunzătoare parametrului de ie ire. ș
  • 17. Ce vor afi a următoarele programe? ș
  • 18. Ce va afi a următorul program? ș Rezultatul compilării
  • 19. Problema 1 Oglinditul unui număr natural este numărul format prin inversarea ordinii cifrelor sale. Spre exemplu, oglinditul lui 123 este 321, iar oglinditul lui 10000 este 1. Cerin ă ț Să se scrie o func ie care să ia ca parametru un număr ț natural n i să returneze oglinditul său. ș Detalii spre implementare o Numele func iei este oglindit ț ; o Func ia acceptă un parametru număr întreg, n ț ; o Func ia returnează un număr întreg, reprezentând valoarea ț cerută. Problema 2 Cerin ă ț Să se scrie o func ie care să ia ca parametru ț un număr natural n i să returneze suma 1+2+3+4+...+ ș n. Detalii spre implementare o Numele func iei este suma_gauss ț ; o Func ia acceptă un parametru număr întreg, n ț ; o Func ia returnează un număr întreg, reprezentând ț valoarea cerută.