Sari la conținut
EduCamp

Tematică științifică · 2.5

Subprograme predefinite

Funcții și metode puse la dispoziție de limbaj pentru prelucrarea numerelor, caracterelor, șirurilor și colecțiilor, cu alegerea corectă a bibliotecii, argumentelor și tipului rezultatului în C++ și Python.

∗ Și la proba practică — Titularizare

El primește, dacă este nevoie, date prin parametri, execută instrucțiunile din corpul său și poate întoarce o valoare.

Într-o expresie, apelul intră în calcul cu valoarea returnată.

Subprogramele ajută la împărțirea unei probleme în operații mai mici și reutilizabile. În funcție de cine le scrie, ele pot fi:

  • predefinite, puse la dispoziție de limbaj sau de bibliotecile lui;
  • definite de utilizator, scrise de programator pentru problema rezolvată.

Programul îl apelează, îi transmite argumente și folosește rezultatul întors, fără să-i rescrie algoritmul.

De exemplu, pentru valoarea absolută nu este nevoie să se testeze separat dacă numărul este pozitiv sau negativ. Se apelează funcția corespunzătoare:

rezultat ← valoare_abs(n)

La examen, un subprogram predefinit se alege după tipul datelor și după operația cerută. Se verifică:

  • numele exact;
  • numărul argumentelor;
  • tipul rezultatului;
  • biblioteca sau modulul necesar.

Apelul unui subprogram predefinit

Un apel are forma generală:

nume_subprogram(argument1, argument2, ...)

Ordinea lor contează. Rezultatul poate fi atribuit unei variabile, folosit într-o expresie sau comparat direct:

maxim ← max(a, b)
dacă lungime(text) > 10 atunci
    ...
sfdacă

Nu toate subprogramele întorc o valoare. Unele modifică un obiect sau efectuează o acțiune, cum este sortarea unei colecții.

Funcții matematice

În C++

Funcțiile matematice uzuale se găsesc în biblioteca <cmath>:

#include <cmath>
FuncțieRezultatObservație
sqrt(x)rădăcina pătratăpentru x >= 0
pow(x, y)x la puterea yîntoarce un tip real
fabs(x)modulul unui realpentru valori reale
sin(x), cos(x), tan(x)funcții trigonometriceargumentul este în radiani
log(x)logaritm naturalpentru x > 0
log10(x)logaritm în baza 10pentru x > 0
ceil(x)primul întreg mai mare sau egalrezultat real
floor(x)ultimul întreg mai mic sau egalrezultat real
round(x)rotunjire la cel mai apropiat întregrezultat real

Pentru numere întregi se folosește funcția abs, din <cstdlib>; începând cu standardul C++17, ea este declarată și în <cmath>:

#include <cstdlib>

int d = abs(a - b);

pow(2, 3) produce valoarea numerică 8, dar tipul rezultatului este de regulă real. Dacă este necesar un întreg, conversia trebuie făcută numai când se știe că rezultatul este exact:

int p = static_cast<int>(pow(2, 3));

Pentru o putere întreagă, înmulțirea repetată, scrisă cu o structură repetitivă, poate fi mai potrivită decât pow, mai ales când se lucrează numai cu numere întregi.

int p = 1;
for (int i = 0; i < exponent; i++)
    p *= baza;

În Python

Funcțiile matematice suplimentare se găsesc în modulul math:

import math
FuncțieRezultatObservație
math.sqrt(x)rădăcina pătratărezultat real
math.pow(x, y)x la puterea yrezultat real
abs(x)modululfuncție predefinită, fără import
math.sin(x), math.cos(x)funcții trigonometriceargumentul este în radiani
math.log(x)logaritm naturalpentru x > 0
math.log10(x)logaritm în baza 10pentru x > 0
math.ceil(x)primul întreg mai mare sau egalrezultat întreg
math.floor(x)ultimul întreg mai mic sau egalrezultat întreg
round(x)rotunjire la cel mai apropiat întregfuncție predefinită; la egalitate alege numărul par: round(2.5) este 2

Pentru puteri întregi se folosește operatorul **:

p = baza ** exponent

pow(a, b) este funcția predefinită pentru putere. Forma cu trei argumente, pow(a, b, m), calculează eficient a**b % m pentru exponenți întregi:

rest = pow(a, b, m)

Rezultatul lui // este câtul întreg, iar % este restul împărțirii:

cat = a // b
rest = a % b

Valori extreme și funcții de comparare

În C++, pentru două valori se folosesc min și max. Ele se găsesc în <algorithm>:

#include <algorithm>

int mic = min(a, b);
int mare = max(a, b);

Pentru mai multe valori se poate compune apelul:

int maxim = max(a, max(b, c));

O altă soluție, de obicei mai ușor de extins, este inițializarea cu primul element și parcurgerea valorilor:

int maxim = a;
maxim = max(maxim, b);
maxim = max(maxim, c);

În Python, min și max funcționează atât cu mai multe argumente, cât și cu o colecție:

mic = min(a, b, c)
mare = max(a, b, c)
mare_din_lista = max(valori)

sum calculează suma elementelor unei colecții:

suma = sum(valori)

Pentru o colecție goală, sum([]) este 0, iar min([]) și max([]) semnalează eroare. Dacă enunțul nu garantează existența unui element, cazul gol trebuie tratat înaintea apelului.

Materialul acesta se citește pe educamp.ro și nu se tipărește.

Ce cuprinde subcapitolul

  1. Apelul unui subprogram predefinit
  2. Funcții matematice
  3. Valori extreme și funcții de comparare
  4. Conversia și citirea datelor
  5. Funcții și metode pentru șiruri
  6. Funcții pentru colecții
  7. Subprogramul potrivit pentru cerință
  8. Greșeli frecvente la examen

Continuă lectura ca și cursant

Cel puțin un subcapitol din fiecare capitol este disponibil gratuit și integral. Pentru a citi toate celelalte subcapitole ale disciplinei, te înscrii la cursul de pregătire.

Te înscrii, alegi în cont când începe cursul și plătești prima lună prin transfer bancar. Pentru a vedea mai întâi cum este prezentată materia, poți reveni la primul subcapitol al capitolului.

Acces la suportul de curs

25 RON / lună, fără ședințe

Ce cuprinde:

  • Acces la toate lecțiile disponibile
  • Suport de curs pentru tematica științifică și metodică
  • Exemple, explicații și exerciții
  • Acces la materialele noi adăugate pe platformă
  • Posibilitatea de a adresa întrebări

Poți alege și variante cu ședințe online, în grup sau individuale. Le vezi pe pagina cursului.

Ai întrebări sau o problemă? Scrie-mi pe WhatsApp, la 0745 874 576.

Înscrie-te Alte varianteCum plătești Login

Surse (4)
  • Cerchez, E., Șerban, M., „Programarea în limbajul C/C++ pentru liceu”, Editura Polirom, Iași, 2005
  • „Informatică. Manual pentru clasa a IX-a”, Editura Didactică și Pedagogică, București
  • „Informatică. Manual pentru clasa a XI-a”, Editura Didactică și Pedagogică, București
  • „Tutorialul de Python”, documentația oficială a limbajului Python, https://docs.python.org/ro/3/library/functions.html
Actualizat: 20 octombrie 2026