📒 Գրադարանային ֆունկցիաներ
Ֆունկցիաների օգտագործումը թույլ է տալիս կոդը բաժանել տրամաբանական մասերի։ Առավել կարևոր է այն, որ ֆունկցիաները հնարավորություն են տալիս ստեղծել գրադարաններ։ Մինչ այս մենք գրեթե բոլոր ծրագրերում օգտվել ենք
<iostream>
(input-output stream) գրադարանից։ Նկատեք, որ մենք ուղղակի օգտագործում ենք iostream
գրադարանի cout/cin<<
ֆունկցիաներն առանց իմանալու, թե ի՞նչ գործողություններ է հարկավոր կատարել որևէ տող էկրանին տպելու համար։ Սա ֆունկցիաների կիրառման գլխավոր առավելություններից մեկն է։ Գրադարանային Ֆունկցիաներին կարող եք վերաբերվել ինչպես «սև արկղերի»։ Դուք փոխանցում եք մուտքային տվյալներ և օգտագործում եք ստացված արդյունքը, առանց իմանալու, թե ինչ եղանակով է ֆունկցիան ստանում այդ արդյունքը։
![std::cout-ի իմպլեմենտացիան մեզ անհայտ է։](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fdc2742ba-8ed8-45b8-a651-0bc31c9e1b51%2FUntitled.png?table=block&id=1053a749-bf33-4c08-92f4-074adadf6cc2&cache=v2)
Գրեթե բոլոր ծրագրավորման լեզուներն ունեն այսպես կոչված «ստանդարտ գրադարաններ»։ Ստանդարտ գրադարանները ներառում են այն հիմնական ֆունկցիաները, առանց որոնց հնարավոր չէ պատկերացնել ժամանակակից ծրագրավորման լեզուները։ Այդպիսի օրինակներ են «մուտքի/ելքի» գրադարանը (
<iostream>
գրադարանը C++ լեզվում), ֆայլերի, տողերի, օպերացիոն համակարգի հետ աշխատող գրադարանները, մաթեմաթիկական գրադարանները և այլն։ Դիտարկենք, օրինակ,
cmath
C++ ստանդարտ մաթեմատիկական գրադարանը։ Գրադարանի ֆունկցիաների մասին ամբողջ անհրաժեշտ ինֆորմացիան կարելի է հեշտությամբ գտնել համացանցում։ Այս գրադարանը պարունակում է մի քանի տասնյակ ֆունկցիաներ, որոնք կարող եք ազատորեն օգտագործել՝ կցելով cmath
գրադարանը ձեր ծրագրին։ #include <iostream>
#include <cmath>
int main() {
double input;
std::cout << "Input number: ";
std::cin >> input;
double result = sqrt(input); // sqrt ֆունկցիայի իրականացման մանրամասները կարևոր չեն
std::cout << "Square root of " << input << " is " << result << std::endl;
}
Այս օրինակում ևս, մենք չգիտենք, թե ի՞նչ ալգորիթմ է կիրառվում sqrt ֆունկցիայում քառակուսի արմատ հաշվելու համար։ Մենք միայն գիտենք, որ sqrt ֆունկցիան վերադարձնում է մուտքային թվի քառակուսի արմատը։
Բացի ստանդարտ գրադարաններից, գոյություն ունեն նաև բազմաթիվ այլ (անվճար և վճարովի) գրադարաններ, որոնք ստեղծվել են (և շարունակաբար ստեղծվում են) տարբեր կազմակերպությունների կամ անհատ ծրագրավորողների կողմից: Ահա դրանցից մի քանիսը՝
- OpenCV - համակարգչային տեսողության (computer vision) գրադարան։ Պարունակում է մոտ 2500 ալգորիթմներ՝ նախատեսված դեմքերի, օբյեկտների ճանաչման, շարժումների դասակարգման և բազմաթիվ այլ խնդիրների լուծման համար։
- OpenSSL - կրիպտավորման գրադարան։ Լայնորեն օգտագործվում է համացանցում անվտանգ կապեր հաստատելու համար։ Գրեթե բոլոր կայքերը այժմ օգտագործում են
http
s
(http secure) պրոտոկոլը սերվերների հետ կապ հաստատելու համար։ Այս պրոտոկոլը օգտագործում է openSSL գրադարանը՝ սերվեր փոխանցվող տվյլաները ցույց տալու համար։
- FFmpeg - աուդիո և վիդեո մշակման համար նախատեսված գրադարան։