Funcții predefinite în C++ (matematice, șiruri de caractere)

De multe ori calcularea unei anumite valori poate fi foarte complicată și repetitivă. Din acest motiv, există o sumedenie de funcții predefinite care se includ cu ușurință în programele C++ și care ușurează procesul de rezolvare a problemei.

Ce este o funcție?

O funcție este o grupare de instrucțiuni care așteaptă niște parametri și îi prelucrează, pentru ca mai apoi să furnizeze (returneze) un rezultat. Spre exemplu, o funcție care calculează rădăcina pătrată a unui număr poate aștepta un număr n, căruia îi aproximează radicalul, după care să returneze această valoare.

Cum se apelează o funcție

O funcție se apelează în felul următor:

nume_functie(param1, param2, param3, …)

Iar valoarea acestei funcții este însuși rezultatul returnat.

Spre exemplu, funcția sqrt() din biblioteca <cmath> se poate folosi în felul următor:

#include <iostream>
#include <cmath>
…
cout << sqrt(9); //Afișează: 3

Trebuie avut grijă ca biblioteca ce conține funcția să fie inclusă în program, altfel, programul nu va ști despre ce funcție este vorba și va afișa o eroare:

#include <cmath>

Funcții matematice

Funcțiile matematice se regăsesc în biblioteca <cmath>, care trebuie inclusă la începutul funcției. Iată câteva dintre cele mai uzuale funcții matematice din această bibliotecă:

Funcțiile abs și fabs — cum funcționează

Funcția abs (și fabs) așteaptă un număr real x și returnează valoarea absolută a sa (adică dacă x este pozitiv, returnează x, altfel, returnează -x). Prototipul funcției este:

double abs(double x)

Funcția floor — cum funcționează

Funcția floor așteaptă un număr real x și returnează cel mai mare număr întreg mai mic sau egal cu x (indiferent dacă x este pozitiv sau negativ).

double floor(double x)

Funcția ceil — cum funcționează

Funcția ceil așteaptă un număr real x și returnează cel mai mic număr întreg mai mare sau egal cu x (indiferent dacă x este pozitiv sau negativ).

double ceil(double x)

Funcția sqrt — cum funcționează

Funcția sqrt așteaptă un număr real pozitiv x și returnează rădăcina pătrată a sa.

double sqrt(double x)

Funcția cbrt — cum funcționează

Funcția cbrt așteaptă un număr real x și returnează rădăcina cubică a sa.

double cbrt(double x)

Funcția pow — cum funcționează

Funcția pow așteaptă două numere reale x și y și returnează numărul x la puterea y. Funcția nu trebuie folosită în exces, se recomandă implementarea unei funcții proprii pentru concursuri sau olimpiade.

double pow(double x, double y)

Funcția sin — cum funcționează

Funcția sin așteaptă un număr real x și returnează valoarea funcției trigonometrice sinus, sin x.

double sin(double x)

Funcția cos — cum funcționează

Funcția cos așteaptă un număr real x și returnează valoarea funcției trigonometrice cosinus, cos x.

double cos(double x)

Funcția tan — cum funcționează

Funcția tan așteaptă un număr real x și returnează valoarea funcției trigonometrice tangentă, tg x.

double tan(double x)

Funcțiie log, log10, log2 — cum funcționează

Cele trei funcții așteaptă un număr real pozitiv x. Funcția log returnează logaritmul natural al lui x (ln x). Funcția log10 returnează logaritmul în baza 10 al lui x. Funcția log2 returnează logaritmul în baza 2 al lui x.

double log(double x)
double log10(double x)
double log2(double x)

Funcții predefinite cu șiruri de caractere

Funcțiile predefinite cu șiruri de caractere se pot găsi în această lecție despre șiruri de caractere. Există o sumedenie de funcții care permit prelucrarea extensivă a șirurilor de caractere, însă este nevoie de exercițiu pentru a le deprinde cu totul.

Funcții predefinite pentru olimpiadă

Spre deosebire de unele admiteri și de bacalaureat, pentru olimpiadă sau concursuri, funcțiile predefinite care se pot folosi sunt diferite.

Ce funcții predefinite se pot folosi pentru olimpiada de informatică?

La olimpiada de informatică sau la alte concursuri se pot folosi toate funcțiile din standardele C++11. Asta include toate funcțiile matematice descrise în această lecție (și toate celelalte din biblioteca <cmath>), toate funcțiile predefinite cu șiruri de caractere, precum și o multitudine de alte funcții STL care nu se pot folosi la alte examene.

Câteva dintre cele mai importante funcții din STL sunt menționate mai jos.

Funcția sort — cum funcționează

Funcția sort se găsește în biblioteca <algorithm> și ordonează după o anumită regulă (implicit crescător) elementele dintre doi indici dați. Trebuie menționat faptul că sort funcționează cu pointeri, astfel că definiția funcției arată în felul următor:

sort(st, dr)
sort(st, dr, comp)

Și sortează elementele aflate cu adresele între [st; dr) (dr nu este inclus!). De pildă, un vector a cu n elemente numere naturale cu indici de la 1 la n se sortează în felul următor:

sort(a + 1, a + n + 1); //crescător, implicit
sort(a + 1, a + n + 1, greater<int>()); //descrescător

Funcția swap — cum funcționează

Funcția swap se găsește în biblioteca <algorithm> și interschimbă valorile a două elemente de același tip. Funcția așteaptă doi pointeri către adresele de memorie ce trebuie interschimbate.

swap(x, y)

Iată un exemplu de interschimbare a două numere int, iar mai apoi a două tablouri de double:

int x = 1, y = 2;
swap(x, y); //-> x = 2, y = 1

double a[] = {1, 2, 3}, b[] = {4, 5, 6};
swap(a, b);

Alte resurse și bibliografie

DS

Autorul acestei lecții

Dominic Satnoianu

Această lecție a fost redactată de către Dominic Satnoianu.

© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.

Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te