Дапаможнік па C++: Розніца паміж версіямі

З пляцоўкі Вікікнігі
Змесціва выдалена Змесціва дададзена
Няма тлумачэння праўкі
дрНяма тлумачэння праўкі
Радок 1: Радок 1:
'''C++''' — мова праграмаваньня агульнага прызначэньня. У гэтым дапаможніку адзначым асноўныя рысы дадзенай мовы.
'''C++''' — мова праграмавання агульнага прызначэння. У гэтым дапаможніку адзначым асноўныя рысы дадзенай мовы.


== Стандартная бібліятэка C++ ==
== Стандартная бібліятэка C++ ==
Дзеля таго, каб пісаць праграмы на C++, неабходна ведаць сынтаксіс мовы, а таксама ўмець падключаць гатовыя клясы і функцыі, якія выклікаюцца з дапамамогай загалоўкавых файлаў стандартнай бібліятэкі C++.
Дзеля таго, каб пісаць праграмы на C++, неабходна ведаць сінтаксіс мовы, а таксама ўмець падключаць гатовыя класы і функцыі, якія выклікаюцца з дапамамогай загаловачных файлаў стандартнай бібліятэкі C++.


'''Стандартная бібліятэка ў C++ (C++ Standard Library — SL)''' — сукупнасьць клясаў і функцый мовы праграмаваньня C++. Гэтая сукупнасьць адпавядае існым стандартам C++, першы зь якіх быў прыняты ў 1998 годзе ([[C++98]]). У 2011 годзе быў распрацаваны стандарт [[C++11]].
'''Стандартная бібліятэка ў C++ (C++ Standard Library — SL)''' — сукупнасць класаў і функцый мовы праграмавання C++. Гэтая сукупнасць адпавядае існуючым стандартам C++, першы з якіх быў прыняты ў 1998 годзе ([[C++98]]). У 2011 годзе быў распрацаваны стандарт [[C++11]].


=== Загалоўкавыя файлы стандартнай бібліятэкі C++ ===
=== Загаловачныя файлы стандартнай бібліятэкі C++ ===


У стандартнай бібліятэцы C++ прадугледжаная сыстэма загалоўкавых файлаў, якія неабходна падключаць да коду пры напісаньні праграмы, каб выкарыстоўваць гатовыя [[Клясы (C++)|клясы]] і [[Функцыі (C++)|функцыі]]. Гэта значна эканоміць час стварэньня праекту, бо праграмісту ня трэба самому займацца напісаньнем неабходных элемэнтаў коду.
У стандартнай бібліятэцы C++ прадугледжана сістэма загаловачных файлаў, якія неабходна падключаць да кода пры напісанні праграмы, каб выкарыстоўваць гатовыя [[Класы (C++)|класы]] і [[Функцыі (C++)|функцыі]]. Гэта значна эканоміць час стварэння праекта, бо праграмісту не трэба самому займацца напісаннем неабходных элементаў кода.
У C++ прадугледжаныя наступныя асноўныя загалоўкавыя файлы SL<ref>Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. — 8th ed, 205—207
У C++ прадугледжаныя наступныя асноўныя загаловачныя файлы SL<ref>Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. — 8th ed, 205—207
Includes index. ISBN 978-0-13-266236-9</ref>:
Includes index. ISBN 978-0-13-266236-9</ref>:


{| class="wikitable"
{| class="wikitable"
|-
|-
!Загаловак SL||Тлумачэньне
!Загаловак SL||Тлумачэнне
|-
|-
|<cstdio>||Утрымлівае прататыпы для стандартнага ўводу/вываду дадзеных стандарту C
|<cstdio>||Утрымлівае прататыпы для стандартнага ўводу/вываду дадзеных стандарту C
Радок 20: Радок 20:
|<iostream>||Утрымлівае прататыпы для стандартнага ўводу/вываду дадзеных стандарту C++
|<iostream>||Утрымлівае прататыпы для стандартнага ўводу/вываду дадзеных стандарту C++
|-
|-
|<iomanip>||Утрымлівае прататыпы для функцый [[Маніпулятары (C++)|маніпулятараў над патокам]].Маніпулятары фарматуюць патокі дадзеных
|<iomanip>||Утрымлівае прататыпы для функцый [[Маніпулятары (C++)|маніпулятараў над патокам]]. Маніпулятары фарматуюць патокі дадзеных
|-
|-
|<cmath>||Утрымлівае прататыпы для матэматычных функцый
|<cmath>||Утрымлівае прататыпы для матэматычных функцый
|-
|-
|<cstdlib>||Утрымлівае прататыпы для функцый для пераўтварэньня лікаў у тэкст і наадварот, разьмеркаваньня памяці і падключэньня [[Рандамізацыя|рандамізацыі]].
|<cstdlib>||Утрымлівае прататыпы для функцый для пераўтварэння лікаў у тэкст і наадварот, размеркавання памяці і падключэння [[Рандамізацыя|рандамізацыі]].
|-
|-
|<ctime>||Утрымлівае прататыпы для функцый маніпуляваньня часам
|<ctime>||Утрымлівае прататыпы для функцый маніпулявання часам
|-
|-
|<vector>, <list>, <deque>, <queue>, <stack>, <map>, <set>, <bitset>||Утрымлівае клясы разнастайных кантэйнераў
|<vector>, <list>, <deque>, <queue>, <stack>, <map>, <set>, <bitset>||Утрымлівае класы разнастайных кантэйнераў
|-
|-
|<cctype>||Утрымлівае прататыпы для функцый, якія тэстуюць даныя (напрыклад, зьяўляецца сымбаль коскай або лікам)
|<cctype>||Утрымлівае прататыпы для функцый, якія тэстуюць даныя (напрыклад, з'яўляецца сімвал коскай або лікам)
|-
|-
|<cstring>||Утрымлівае прататыпы для функцый апрацоўкі радкоў
|<cstring>||Утрымлівае прататыпы для функцый апрацоўкі радкоў
|-
|-
|<string>||Утрымлівае вызначэньне кляса string
|<string>||Утрымлівае вызначэнне класа string
|-
|-
|<typeinfo>||Утрымлівае клясы, якія вызначаюць [[Тыпы даных (C++)|тыпы даных]] у час выкананьня праграмы
|<typeinfo>||Утрымлівае класы, якія вызначаюць [[Тыпы даных (C++)|тыпы даных]] у час выканання праграмы
|-
|-
|<fstream>||Утрымлівае прататыпы для функцый, якія ажыцьцяўляюць увод дадзеных у [[файл]] і іх вывад з файлу
|<fstream>||Утрымлівае прататыпы для функцый, якія ажыццяўляюць увод дадзеных у [[файл]] і іх вывад з файла
|-
|-
|<sstream>||Утрымлівае прататыпы для функцый, якія ажыцьцяўляюць увод і вывад радкоў у [[Аператыўная памяць кампутару|памяці]]
|<sstream>||Утрымлівае прататыпы для функцый, якія ажыццяўляюць увод і вывад радкоў у [[Аператыўная памяць камп'ютара|памяці]]
|-
|-
|<algorithm>||Утрымлівае прататыпы для функцый маніпуляваньня данымі
|<algorithm>||Утрымлівае прататыпы для функцый маніпулявання данымі
|}
|}


Радок 49: Радок 49:


== Функцыі ў C++ ==
== Функцыі ў C++ ==
Праграміст здольны пісаць свае функцыі дзеля мэтаў праграмы.
Праграміст можа пісаць свае функцыі дзеля мэт праграмы.


'''Функцыя ў C++''' — модуль праграмы C++, у якім закладзены асноўны код і канцэпцыя праграмы. Функцыі могуць быць гатовыя і ўтрымлівацца ў [[Стандартная бібліятэка C++|стандартнай бібліятэцы C++]], а могуць быць напісаныя самім праграмістам.
'''Функцыя ў C++''' — модуль праграмы C++, у якім закладзены асноўны код і канцэпцыя праграмы. Функцыі могуць быць гатовыя і ўтрымлівацца ў [[Стандартная бібліятэка C++|стандартнай бібліятэцы C++]], а могуць быць напісаныя самім праграмістам.
Радок 58: Радок 58:


<source lang="cpp">
<source lang="cpp">
#include <stdio.h> // падключэньне стандартнай бібліятэкі
#include <stdio.h> // падключэнне стандартнай бібліятэкі


main()
main()
Радок 81: Радок 81:
</source>
</source>


=== Напісаньне функцый ===
=== Напісанне функцый ===


==== Прыклад праграмы ====
==== Прыклад праграмы ====
Радок 87: Радок 87:
''Гл. таксама ''[[Аператары C++]]'''
''Гл. таксама ''[[Аператары C++]]'''


Вылічэньне выразу: <math>\min(a,a+b)+min(a,b+c))/(1.0+min(a+b*c,b)</math>:
Вылічэнне выразу: <math>\min(a,a+b)+min(a,b+c))/(1.0+min(a+b*c,b)</math>:


<source lang="cpp">
<source lang="cpp">
Радок 108: Радок 108:
cin >> "%f%f%f",&a,&b,&c;
cin >> "%f%f%f",&a,&b,&c;
r=(min(a,a+b)+min(a,b+c))/(1.0+min(a+b*c,b));
r=(min(a,a+b)+min(a,b+c))/(1.0+min(a+b*c,b));
cout << "\nЗначэньне выразу=%.3f",r;
cout << "\nЗначэнне выразу=%.3f",r;
cout << "\nНацісьніце любую клявішу для заканчэньня" << endl;
cout << "\nНацісніце любую клавішу для завяршэння" << endl;


getch();
getch();
Радок 124: Радок 124:




== Аргумэнты функцыі main() ==
== Аргументы функцыі main() ==
'''argc і argv''' — [[аргумэнты функцыяў|аргумэнты]] да галоўнай [[функцыі (C++)|функцыі]] «main» у мове праграмаваньня [[C++]].<ref>Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 144; ISBN 0078824761</ref>:
'''argc і argv''' — [[аргументы функцыі|аргументы]] да галоўнай [[функцыі (C++)|функцыі]] «main» у мове праграмавання [[C++]].<ref>Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 144; ISBN 0078824761</ref>:


=== Прыклад выкарыстаньня argc і argv ===
=== Прыклад выкарыстання argc і argv ===
Даволі зручна заносіць інфармацыю ў [[праграма|праграму]] падчас яе выкананьня. Пры гэтым зьвесткі ў праграму заносяцца праз аргумэнты каманднага радку. У функцыі «main» прадугледжаныя два спэцыяльна ўбудаваныя аргумэнты: «argc» і «argv». Argc утрымлівае колькасьць аргумэнтаў, напісаных у камандным радку (argc — цэлалікавы тып зьвестак «int»). Аргумэнт argv — гэта паказальнік да масіву паказальнікаў сымбальнага тыпу ў камандным радку (argv — сымбальны тып зьвестак «char»). Напрыклад, наступная праграма выводзіць «Hello», а затым праз прабел вашае імя, калі вы ўвялі імя ў праграму:
Даволі зручна заносіць інфармацыю ў [[праграма|праграму]] ў час яе выканання. Пры гэтым звесткі ў праграму заносяцца праз аргументы каманднага радка. У функцыі «main» прадугледжаныя два спецыяльна ўбудаваныя аргументы: «argc» і «argv». Argc утрымлівае колькасць аргументаў, напісаных у камандным радку (argc — цэлалікавы тып дадзеных «int»). Аргумент argv — гэта ўказальнік на масіў указальнікаў сімвальнага тыпу ў камандным радку (argv — сімвальны тып даных «char»). Напрыклад, наступная праграма выводзіць «Hello», а затым праз прабел вашае імя, калі вы ўвялі імя ў праграму:


<source lang="cpp">
<source lang="cpp">
Радок 148: Радок 148:
</source>
</source>


*'''Тлумачэньне.''' ''Пасьля кампіляцыі праграмы неабходна зайсьці ў камандны радок (для [[Кампілятары C++ для Windows|Windows-кампілятараў]]), або тэрмінал (для [[Кампілятары C++ для Linux|Linux-кампілятараў]]), перайсьці ў дырэкторыю, дзе зьмяшчаецца скампіляваная праграма і надрукаваць яе назву (хай праграма называецца «arg.exe»), а затым сваё імя, напрыклад:''
*'''Тлумачэнне.''' ''Пасля кампіляцыі праграмы неабходна зайсці ў камандны радок (для [[Кампілятары C++ для Windows|Windows-кампілятараў]]), або тэрмінал (для [[Кампілятары C++ для Linux|Linux-кампілятараў]]), перайсці ў дырэкторыю, дзе знаходзіцца скампіляваная праграма і надрукаваць яе назву (хай праграма называецца «arg.exe»), а затым сваё імя, напрыклад:''


'''arg Erka'''
'''arg Erka'''
Радок 164: Радок 164:
'''Вы забыліся надрукаваць сваё імя'''
'''Вы забыліся надрукаваць сваё імя'''


''таму што першым аргумэнтам лічыцца назва праграмы, а другім — імя. А па ўмове''
''таму што першым аргументам лічыцца назва праграмы, а другім — імя. А па ўмове''


<source lang="cpp">
<source lang="cpp">
Радок 171: Радок 171:
</source>
</source>


''колькасьць аргумэнтаў не павінна быць няроўнай двум.''<ref>Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 145; ISBN 0078824761</ref>
''колькасць аргументаў павінна раўняцца двум.''<ref>Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 145; ISBN 0078824761</ref>




== Масівы ў C++ ==
== Масівы ў C++ ==
'''Масівы ў C++''' — структуры даных мовы праграмаваньня C++, якія ўтрымліваюць зьвязаныя адзін з адным аднатыпныя элемэнты гэтых даных.
'''Масівы ў C++''' — структуры даных мовы праграмавання C++, якія ўтрымліваюць звязаныя адзін з адным аднатыпныя элементы гэтых даных.


== Прымяненьне масіваў ==
== Прымяненне масіваў ==
У розных сфэрах народнай гаспадаркі неабходна структураваць і аналізаваць вялікую колькасьць аднатыпных даных. Для аўтаматызацыі і спрашчэньня гэтага працэсу выкарыстоўваюцца масівы. Масівы — адзін з элемэнтаў [[Кіруючыя структуры ў C++|кіруючых структур]] у [[C++]].
У розных сферах народнай гаспадаркі неабходна структураваць і аналізаваць вялікую колькасць аднатыпных даных. Для аўтаматызацыі і спрашчэння гэтага працэсу выкарыстоўваюцца масівы. Масівы — адзін з элементаў [[Кіруючыя структуры ў C++|кіруючых структур]] у [[C++]].


=== Аб’яўленьне масіваў ===
=== Аб’яўленне масіваў ===
У мове С++ масівы аб’яўляюцца наступным чынам:
У мове С++ масівы аб'яўляюцца наступным чынам:


<source lang="cpp">
<source lang="cpp">
Радок 189: Радок 189:
Тут «int a[100]» — масіў з сотняй элементаў [[цэлы тып лікаў|цэлага тыпу]].
Тут «int a[100]» — масіў з сотняй элементаў [[цэлы тып лікаў|цэлага тыпу]].


==== Прыклад праграмы: заданьне масіву з пячатных сымбаляў і вывад яго на экран ====
==== Прыклад праграмы: заданне масіву з пячатных сімвалаў і вывад яго на экран ====


<source lang="cpp">
<source lang="cpp">
#include <stdio.h> // падключэньне стандартнай бібліятэкі
#include <stdio.h> // падключэнне стандартнай бібліятэкі
#include <iostream>
#include <iostream>


Радок 198: Радок 198:
{
{


char z[ 8 ] = { a, b, c, d, e, f, g, h }; // заданьне сымбальнага масіву з васьмі элементаў
char z[ 8 ] = { a, b, c, d, e, f, g, h }; // заданьне сімвальнага масіву з васьмі элементаў
cout << "Масіў з васьмі элементаў:" << "%s", z[8] << endl; // вывад яго на экран
cout << "Масіў з васьмі элементаў:" << "%s", z[8] << endl; // вывад яго на экран


return 0; // вяртаньне да пачатку праграмы
return 0; // вяртанне да пачатку праграмы
}
}


</source>
</source>


==== Прыклад праграмы: пошук максымальнага элементу [[вэктар]]у ====
==== Прыклад праграмы: пошук максімальнага элемента [[вектар]]а ====


<source lang="cpp">
<source lang="cpp">
Радок 214: Радок 214:
main()
main()
{
{
int a[100]; // Заданьне вэктару са 100 элемэнтаў
int a[100]; // Заданне вектару са 100 элемэнтаў
int max, n; // Заданьне максымальнага элемэнту вэктару і іх колькасці
int max, n; // Заданне максімальнага элементу вектара і іх колькасці
int i; //
int i; //


cout << "Увядзіце колькасьць элемэнтаў вектару: \n";
cout << "Увядзіце колькасць элементаў вектара: \n";
cin << n;
cin << n;


cout << "Увядзіце ў адзін радок альбо слупок элемэнты вектару: \n";
cout << "Увядзіце ў адзін радок альбо слупок элементы вектара: \n";


for (i=1; i<=n; i++) // увод элементаў вэктара з дапамогай цыклу for
for (i=1; i<=n; i++) // увод элементаў вектара з дапамогай цыкла for
{
{
cin >> a[i];
cin >> a[i];
Радок 230: Радок 230:
max =a[1];
max =a[1];


// прысваеньне першаму элемэнту значэньня максымальнага і далейшае параўнаньне з астатнімі элемэнтамі
// прысваенне першаму элементу значэння максімальнага і далейшае параўнанне з астатнімі элементамі


for (i = 2; i <= n; i++)
for (i = 2; i <= n; i++)
Радок 236: Радок 236:
if (a[i] > max) max = a[i];
if (a[i] > max) max = a[i];
}
}
cout << "Максымальны элемэнт вектару: %i\n",max << endl;
cout << "Максімальны элемент вектара: %i\n",max << endl;


return 0;
return 0;
Радок 247: Радок 247:




== Стандартная бібліятэка шаблёнаў C++ ==
== Стандартная бібліятэка шаблонаў C++ ==
'''Стандартная бібліятэка шаблёнаў C++''' (''[[Ангельская мова|англ.]]'' Standard Template Library — STL) — сукупнасьць магутных кампанентаў мовы праграмаваньня [[C++]], якія ўтрымліваюць шматлікія структуры дадзеных і альгарытмы, якія выкарыстоўваюцца для апрацоўкі дадзеных<ref>Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. -- 8th ed, p. 851,
'''Стандартная бібліятэка шаблонаў C++''' (''[[Англійская мова|англ.]]'' Standard Template Library — STL) — сукупнасць магутных кампанентаў мовы праграмавання [[C++]], якія ўтрымліваюць шматлікія структуры дадзеных і альгарытмы, якія выкарыстоўваюцца для апрацоўкі дадзеных<ref>Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. -- 8th ed, p. 851,
ISBN 978-0-13-266236-9</ref>.
ISBN 978-0-13-266236-9</ref>.


=== Гісторыя стварэньня ===
=== Гісторыя стварэння ===
Стандартная бібліятэка шаблёнаў C++ была распрацаваная [[Мэнг Лі]] ды [[Аляксандар Сьцяпанаў|Аляксандрам Сьцяпанавым]] у карпарацыі "[[Х'юлет-Пакард]]". У аснову распрацоўкі былі закладзеныя агульныя дасьледаваньні Сьцяпанава і Лі ў вобласьці праграмаваньня. Таксама значны ўнёсак у стварэньне STL [[Дэвід Мюсэр|Дэвіда Мюсэра]]<ref>Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. -- 8th ed, p. 851, ISBN 978-0-13-266236-9</ref>.
Стандартная бібліятэка шаблонаў C++ была распрацавана [[Мэнг Лі]] ды [[Аляксандр Сцяпанаў|Аляксандрам Сцяпанавым]] у карпарацыі "[[Х'юлет-Пакард]]". У аснову распрацоўкі былі закладзеныя агульныя даследаванні Сцяпанава і Лі ў вобласці праграмавання. Таксама значны ўклад у стварэнне STL [[Дэвід Мюсэр|Дэвіда Мюсэра]]<ref>Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. -- 8th ed, p. 851, ISBN 978-0-13-266236-9</ref>.


=== Кампанэнты STL ===
=== Кампаненты STL ===
Асноўныя кампанэнты STL — [[Кантэйнэры (C++)|кантэйнэры]] (англ. containers), [[Ітэратары (C++)|ітэратары]] (iterators) і [[Алгарытмы C++|алгарытмы]] (algorithms). Вылучаюцца таксама [[Разьмеркавальнікі (C++)|разьмеркавальнікі]] (allocators), [[Выказьнікі (C++)|выказьнікі]] (predicates), [[Параўнальныя функцыі (C++)|параўнальныя функцыі]] (comparison functions) ды [[Аб'екты функцый (C++)|аб'екты функцый]] (function objects)<ref>Schildt, Herbert. C++: The Complete Reference, 3th Edition, 626-628; ISBN 0078824761</ref>.
Асноўныя кампаненты STL — [[Кантэйнеры (C++)|кантэйнеры]] (англ. containers), [[Ітэратары (C++)|ітэратары]] (iterators) і [[Алгарытмы C++|алгарытмы]] (algorithms). Вылучаюцца таксама [[Размеркавальнікі (C++)|размеркавальнікі]] (allocators), [[Выказнікі (C++)|выказнікі]] (predicates), [[Параўнальныя функцыі (C++)|параўнальныя функцыі]] (comparison functions) ды [[Аб'екты функцый (C++)|аб'екты функцый]] (function objects)<ref>Schildt, Herbert. C++: The Complete Reference, 3th Edition, 626-628; ISBN 0078824761</ref>.




== Глядзі таксама ==
== Глядзі таксама ==
'' Гэтая кніга грунтуецца на артыкулах з [https://be-x-old.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D1%8D%D0%B3%D0%BE%D1%80%D1%8B%D1%8F:C%2B%2B беларускае Вікіпэдыі]. Любыя дапаўненьні заахвочваюцца.''
'' Гэтая кніга грунтуецца на артыкулах з [[:be:w:Катэгорыя:C++|Беларускай Вікіпедыі]]. Любыя дапаўненні заахвочваюцца.''



== Крыніцы ==
== Крыніцы ==


[[Катэгорыя:Праграмаванне]]
[[Катэгорыя:Праграмаванне]]
[[Катэгорыя:Падручнікі]]
[[Катэгорыя:Падручнікі]]
[[Катэгорыя:Вікі-Кнігі на тарашкевіцы]]

Версія ад 18:46, 26 лютага 2017

C++ — мова праграмавання агульнага прызначэння. У гэтым дапаможніку адзначым асноўныя рысы дадзенай мовы.

Стандартная бібліятэка C++

Дзеля таго, каб пісаць праграмы на C++, неабходна ведаць сінтаксіс мовы, а таксама ўмець падключаць гатовыя класы і функцыі, якія выклікаюцца з дапамамогай загаловачных файлаў стандартнай бібліятэкі C++.

Стандартная бібліятэка ў C++ (C++ Standard Library — SL) — сукупнасць класаў і функцый мовы праграмавання C++. Гэтая сукупнасць адпавядае існуючым стандартам C++, першы з якіх быў прыняты ў 1998 годзе (C++98). У 2011 годзе быў распрацаваны стандарт C++11.

Загаловачныя файлы стандартнай бібліятэкі C++

У стандартнай бібліятэцы C++ прадугледжана сістэма загаловачных файлаў, якія неабходна падключаць да кода пры напісанні праграмы, каб выкарыстоўваць гатовыя класы і функцыі. Гэта значна эканоміць час стварэння праекта, бо праграмісту не трэба самому займацца напісаннем неабходных элементаў кода. У C++ прадугледжаныя наступныя асноўныя загаловачныя файлы SL[1]:

Загаловак SL Тлумачэнне
<cstdio> Утрымлівае прататыпы для стандартнага ўводу/вываду дадзеных стандарту C
<iostream> Утрымлівае прататыпы для стандартнага ўводу/вываду дадзеных стандарту C++
<iomanip> Утрымлівае прататыпы для функцый маніпулятараў над патокам. Маніпулятары фарматуюць патокі дадзеных
<cmath> Утрымлівае прататыпы для матэматычных функцый
<cstdlib> Утрымлівае прататыпы для функцый для пераўтварэння лікаў у тэкст і наадварот, размеркавання памяці і падключэння рандамізацыі.
<ctime> Утрымлівае прататыпы для функцый маніпулявання часам
<vector>, <list>, <deque>, <queue>, <stack>, <map>, <set>, <bitset> Утрымлівае класы разнастайных кантэйнераў
<cctype> Утрымлівае прататыпы для функцый, якія тэстуюць даныя (напрыклад, з'яўляецца сімвал коскай або лікам)
<cstring> Утрымлівае прататыпы для функцый апрацоўкі радкоў
<string> Утрымлівае вызначэнне класа string
<typeinfo> Утрымлівае класы, якія вызначаюць тыпы даных у час выканання праграмы
<fstream> Утрымлівае прататыпы для функцый, якія ажыццяўляюць увод дадзеных у файл і іх вывад з файла
<sstream> Утрымлівае прататыпы для функцый, якія ажыццяўляюць увод і вывад радкоў у памяці
<algorithm> Утрымлівае прататыпы для функцый маніпулявання данымі


Функцыі ў C++

Праграміст можа пісаць свае функцыі дзеля мэт праграмы.

Функцыя ў C++ — модуль праграмы C++, у якім закладзены асноўны код і канцэпцыя праграмы. Функцыі могуць быць гатовыя і ўтрымлівацца ў стандартнай бібліятэцы C++, а могуць быць напісаныя самім праграмістам.

Прыклады функцый са стандартнай бібліятэкі C++

  • Функцыя "main", у якой утрымліваецца канцэпцыя праграмы і асноўны код (функцый "main" у праграме можа быць некалькі):
#include <stdio.h> // падключэнне стандартнай бібліятэкі

main() 
{
  // код C++
}
  • Функцыя "sqrt" — корань квадратны:
sqrt(x) // корань квадратны з x
  • Функцыя "exp" — экспанента :
exp(x) // экспанента ў ступені x

Напісанне функцый

Прыклад праграмы

Гл. таксама Аператары C++

Вылічэнне выразу: :

#include <stdio.h>
#include "iostream"
#include <conio.h>

float min(float x,float y) // функцыя выбару мінімальнага ліку з "a, b, c"

{
  if (x<y) return x; // калі (x<y) -> пакідаем у выразе x
  else return y;     // калі не -> пакідаем y
}

void main() // асноўная функцыя праграмы
{
  float a,b,c; // задаём лікі тыпу з плаваючай коскай
  float r;
		  cout << "Увядзіце тры розныя лікі a,b,c: ";
		  cin >> "%f%f%f",&a,&b,&c;
		  r=(min(a,a+b)+min(a,b+c))/(1.0+min(a+b*c,b));
		  cout << "\nЗначэнне выразу=%.3f",r;
		  cout << "\nНацісніце любую клавішу для завяршэння" << endl;

		  getch();
  return 0;
}

Глядзі таксама

Літаратура

  • C++ How to Program (8th Edition). By : Paul Deitel , Harvey Deitel. Pages : 1104. Year : 2011. Publisher : Prentice Hall. ISBN 978-0132662369


Аргументы функцыі main()

argc і argvаргументы да галоўнай функцыі «main» у мове праграмавання C++.[2]:

Прыклад выкарыстання argc і argv

Даволі зручна заносіць інфармацыю ў праграму ў час яе выканання. Пры гэтым звесткі ў праграму заносяцца праз аргументы каманднага радка. У функцыі «main» прадугледжаныя два спецыяльна ўбудаваныя аргументы: «argc» і «argv». Argc утрымлівае колькасць аргументаў, напісаных у камандным радку (argc — цэлалікавы тып дадзеных «int»). Аргумент argv — гэта ўказальнік на масіў указальнікаў сімвальнага тыпу ў камандным радку (argv — сімвальны тып даных «char»). Напрыклад, наступная праграма выводзіць «Hello», а затым праз прабел вашае імя, калі вы ўвялі імя ў праграму:

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
  if (argc != 2) {                                            
	  printf("Вы забыліся надрукаваць сваё імя.\n");   
	  exit(1);                                               
                                                              
	  }                                                    
                                                               
  printf("Hello %s", argv[2]);                                
  return 0;
}
  • Тлумачэнне. Пасля кампіляцыі праграмы неабходна зайсці ў камандны радок (для Windows-кампілятараў), або тэрмінал (для Linux-кампілятараў), перайсці ў дырэкторыю, дзе знаходзіцца скампіляваная праграма і надрукаваць яе назву (хай праграма называецца «arg.exe»), а затым сваё імя, напрыклад:

arg Erka

Вывад будзе наступным:

Hello Erka

Калі ўвод такі:

arg

То праграма выведзе радок:

Вы забыліся надрукаваць сваё імя

таму што першым аргументам лічыцца назва праграмы, а другім — імя. А па ўмове

if (argc != 2)

колькасць аргументаў павінна раўняцца двум.[3]


Масівы ў C++

Масівы ў C++ — структуры даных мовы праграмавання C++, якія ўтрымліваюць звязаныя адзін з адным аднатыпныя элементы гэтых даных.

Прымяненне масіваў

У розных сферах народнай гаспадаркі неабходна структураваць і аналізаваць вялікую колькасць аднатыпных даных. Для аўтаматызацыі і спрашчэння гэтага працэсу выкарыстоўваюцца масівы. Масівы — адзін з элементаў кіруючых структур у C++.

Аб’яўленне масіваў

У мове С++ масівы аб'яўляюцца наступным чынам:

  int a[100];

Тут «int a[100]» — масіў з сотняй элементаў цэлага тыпу.

Прыклад праграмы: заданне масіву з пячатных сімвалаў і вывад яго на экран

#include <stdio.h> // падключэнне стандартнай бібліятэкі
#include <iostream>

main() // пачатак цела праграмы
{

  char z[ 8 ] = { a, b, c, d, e, f, g, h }; // заданьне сімвальнага масіву з васьмі элементаў
  cout << "Масіў з васьмі элементаў:" << "%s", z[8] << endl; // вывад яго на экран

return 0; // вяртанне да пачатку праграмы
}

Прыклад праграмы: пошук максімальнага элемента вектара

#include "stdio.h"
#include "iostream"

main()
{
  int a[100]; // Заданне вектару са 100 элемэнтаў
  int max, n; // Заданне максімальнага элементу вектара і іх колькасці 
  int i;      //

  cout << "Увядзіце колькасць элементаў вектара: \n"; 
  cin << n;

  cout << "Увядзіце ў адзін радок альбо слупок элементы вектара: \n";  

  for (i=1; i<=n; i++) // увод элементаў вектара з дапамогай цыкла for
  {
    cin >> a[i];
}

  max =a[1];

// прысваенне першаму элементу значэння максімальнага і далейшае параўнанне з астатнімі элементамі

  for (i = 2; i <= n; i++)
  {
    if (a[i] > max) max = a[i];
}
  cout << "Максімальны элемент вектара: %i\n",max << endl;

return 0;
}

Літаратура

  • C++ How to Program (8th Edition). By : Paul Deitel , Harvey Deitel. Pages : 1104. Year : 2011. Publisher : Prentice Hall. ISBN-13: 978-0132662369


Стандартная бібліятэка шаблонаў C++

Стандартная бібліятэка шаблонаў C++ (англ. Standard Template Library — STL) — сукупнасць магутных кампанентаў мовы праграмавання C++, якія ўтрымліваюць шматлікія структуры дадзеных і альгарытмы, якія выкарыстоўваюцца для апрацоўкі дадзеных[4].

Гісторыя стварэння

Стандартная бібліятэка шаблонаў C++ была распрацавана Мэнг Лі ды Аляксандрам Сцяпанавым у карпарацыі "Х'юлет-Пакард". У аснову распрацоўкі былі закладзеныя агульныя даследаванні Сцяпанава і Лі ў вобласці праграмавання. Таксама значны ўклад у стварэнне STL Дэвіда Мюсэра[5].

Кампаненты STL

Асноўныя кампаненты STL — кантэйнеры (англ. containers), ітэратары (iterators) і алгарытмы (algorithms). Вылучаюцца таксама размеркавальнікі (allocators), выказнікі (predicates), параўнальныя функцыі (comparison functions) ды аб'екты функцый (function objects)[6].


Глядзі таксама

Гэтая кніга грунтуецца на артыкулах з Беларускай Вікіпедыі. Любыя дапаўненні заахвочваюцца.

Крыніцы

  1. Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. — 8th ed, 205—207 Includes index. ISBN 978-0-13-266236-9
  2. Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 144; ISBN 0078824761
  3. Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 145; ISBN 0078824761
  4. Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. -- 8th ed, p. 851, ISBN 978-0-13-266236-9
  5. Deitel, Paul J. C++ : how to program / P.J. Deitel, H.M. Deitel. -- 8th ed, p. 851, ISBN 978-0-13-266236-9
  6. Schildt, Herbert. C++: The Complete Reference, 3th Edition, 626-628; ISBN 0078824761