Contact și feedback

Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.


Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.


Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

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>

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

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)

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

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.

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

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);

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

Alte resurse și bibliografie

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

Cuprinsul lecției

Se încarcă…

Citește și

Afișarea divizorilor primi ai unui număr în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Ce este o variabilă unsigned în C++?Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicPrima cifră a unui număr în C++Factorialul unui număr în C++Maximul și minimul a trei valori în C++Instrucțiunea do while (structuri repetitive)Oglinditul unui număr în C++Citește un șir de caractere cu spații în C++Verificare număr prim în C++ (Clasa a IX-a)Maximul și minimul a n valori în C++CMMDC recursiv a două numere naturale în C++Divide et Impera (metodă de programare C++)Numărul de apariții al unui număr într-un vector în C++Transformarea unei litere mici în literă mare în C++Șirul lui Fibonacci în C++Cifra de control a unui numărVerifică dacă un număr dat este o putere de 2 în C++Calculul combinărilor de n luate câte k (nCk) în C++Numărul de cifre ale factorialului unui numărNumărul aranjamentelor în C++ (formula aranjamentelor)Cea mai lungă secvență de elemente crescătoare în C++Indicatorul lui Euler în C++Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Suma divizorilor unui număr în C++Vectorii în C++: citire și afișareAl N-lea termen dintr-o progresie geometricăVerifică dacă un număr aparține șirului Fibonacci în C++Interclasarea a doi vectori în C++Ce este o funcție void în C++?Radicalul unui număr în C++ (rădăcina pătrată)Numărul de divizori al unui număr în C++Verifică dacă un număr este par sau impar fără modulo în C++Cum să citești și să afișezi în fișiere în C++Ridicarea la putere în timp logaritmic în C++. Exponențiere rapidăDe ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Ciurul lui Eratostene în C++Suma 1 + 2 + 3 + ... + N în C++Suma numerelor naturale dintr-un interval dat în C++Codul ASCII (tabel complet)Funcții în C++. Ce sunt subprogrameleVectorii în C++: declarare și parcurgereInversarea unui șir de caractere în C++Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleVerifică dacă un caracter este literă în C++Copiuțe: Cifrele unui numărNumărul combinărilor în C++ (formula combinărilor)Verificarea unui an bisect în C++Verifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Aflarea sumei primelor N sume GaussCitirea și afișarea matricelor în C++Valoarea absolută (modulul) unui număr în C++Numărul de divizori primi ai unui număr în C++Cel mai semnificativ bit în C++Cum să calculezi instant 2 la puterea N în C++Comentarii în C++Distanța dintre două puncte în C++Suma elementelor unui vector recursiv în C++Mediana unui șir de valori în C++Al N-lea termen dintr-o progresie aritmeticăCMMMC a două numere în C++ (cel mai mic multiplu comun)Câte numere naturale sunt într-un interval dat? (C++)Maximul și minimul a două valori în C++Algoritm recursiv pentru căutare binară (clasa a X-a)Verifică dacă un caracter este cifră în C++Instrucțiunea break (structuri repetitive)Tipul struct în C++. Ce sunt structurile de date neomogeneRădăcina cubică a unui număr în C++ (cube root)Verifică dacă o literă este vocală în C++Află secolul unui an citit de la tastatură în C++Verificare dacă șir de caractere este palindrom în C++Verificare dacă un număr este palindrom în C++Numere triunghiulare. Verificarea unui număr triunghiularInstrucțiunea continue (structuri repetitive)Transformarea unui număr din baza 2 în baza 10 în C++Căutare binară în C++Bordarea unei matrice în C++Aria unui triunghi folosind coordonatele acestora în C++Inversarea unui vector în C++Șiruri de caractere în C++. Tot ce trebuie să știiCel mai frecvent element dintr-un șir în C++Indicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Vectori de frecvență (de apariții) în C++Do while vs while în C++ - Care e diferența?Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Complexitatea unui algoritm (timp și spațiu) în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleNumărul minim de peroane pentru o gară în C++Verifică dacă o literă este mică sau mare în C++Cel mai puțin semnificativ bit în C++Cifrele unui număr. Prelucrarea cifrelor unui număr în C++Pointer în C++. Variabile de tipul char * (char steluță)Cifra maximă a unui număr recursiv în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiNumărul permutărilor în C++ (formula permutărilor)Cel mai mic număr cu suma cifrelor N în C++Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorMatrice pătratice în C++. Diagonala principală și secundarăStructuri repetitive (while, do while, for, etc)Cifra maximă și minimă a unui număr în C++Ce înseamnă endl în C++?Ce înseamnă variabilă globală și locală în C++?Transformarea unui număr din baza 10 în baza 2 în C++Combinatorică în C++: permutări, aranjamente, combinări și alteleVerifică dacă trei puncte sunt coliniare C++Oglinditul recursiv al unui număr în C++Afișarea elementelor unui vector recursiv în C++Transformarea unei litere mari în literă mică în C++Tutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortAria și circumferința unui cerc în C++Generarea șirului Fibonacci generalizat în C++Instrucțiunea while (structuri repetitive)Maximul și minimul unui vector în C++Cel mai mare divizor comun (CMMDC) a două numere în C++Funcții predefinite în C++ (matematice, șiruri de caractere)Al N-lea termen Fibonacci în C++Recursivitate în C++Instrucțiunea for (structuri repetitive)Cum să afișezi partea întreagă a unui număr real în C++Interschimbarea a două variabile în C++ (3 metode)Instrucțiunea de decizie în C++: if, else, switch, caseOperații cu numere mari în C++ - Toate funcțiile explicate

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont