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

Перайсці да навігацыі Перайсці да пошуку
322 байты выдалена ,  5 гадоў таму
др
няма тлумачэння праўкі
Няма тлумачэння праўкі
дрНяма тлумачэння праўкі
'''C++''' — мова праграмаваньняпраграмавання агульнага прызначэньняпрызначэння. У гэтым дапаможніку адзначым асноўныя рысы дадзенай мовы.
 
== Стандартная бібліятэка C++ ==
Дзеля таго, каб пісаць праграмы на C++, неабходна ведаць сынтаксіссінтаксіс мовы, а таксама ўмець падключаць гатовыя клясыкласы і функцыі, якія выклікаюцца з дапамамогай загалоўкавыхзагаловачных файлаў стандартнай бібліятэкі C++.
 
'''Стандартная бібліятэка ў C++ (C++ Standard Library — SL)''' — сукупнасьцьсукупнасць клясаўкласаў і функцый мовы праграмаваньняпраграмавання C++. Гэтая сукупнасьцьсукупнасць адпавядае існыміснуючым стандартам C++, першы зьз якіх быў прыняты ў 1998 годзе ([[C++98]]). У 2011 годзе быў распрацаваны стандарт [[C++11]].
 
=== ЗагалоўкавыяЗагаловачныя файлы стандартнай бібліятэкі C++ ===
 
У стандартнай бібліятэцы C++ прадугледжанаяпрадугледжана сыстэмасістэма загалоўкавыхзагаловачных файлаў, якія неабходна падключаць да кодукода пры напісаньнінапісанні праграмы, каб выкарыстоўваць гатовыя [[КлясыКласы (C++)|клясыкласы]] і [[Функцыі (C++)|функцыі]]. Гэта значна эканоміць час стварэньнястварэння праектупраекта, бо праграмісту няне трэба самому займацца напісаньнемнапісаннем неабходных элемэнтаўэлементаў кодукода.
У 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>:
 
{| class="wikitable"
|-
!Загаловак SL||ТлумачэньнеТлумачэнне
|-
|<cstdio>||Утрымлівае прататыпы для стандартнага ўводу/вываду дадзеных стандарту C
|<iostream>||Утрымлівае прататыпы для стандартнага ўводу/вываду дадзеных стандарту C++
|-
|<iomanip>||Утрымлівае прататыпы для функцый [[Маніпулятары (C++)|маніпулятараў над патокам]]. Маніпулятары фарматуюць патокі дадзеных
|-
|<cmath>||Утрымлівае прататыпы для матэматычных функцый
|-
|<cstdlib>||Утрымлівае прататыпы для функцый для пераўтварэньняпераўтварэння лікаў у тэкст і наадварот, разьмеркаваньняразмеркавання памяці і падключэньняпадключэння [[Рандамізацыя|рандамізацыі]].
|-
|<ctime>||Утрымлівае прататыпы для функцый маніпуляваньняманіпулявання часам
|-
|<vector>, <list>, <deque>, <queue>, <stack>, <map>, <set>, <bitset>||Утрымлівае клясыкласы разнастайных кантэйнераў
|-
|<cctype>||Утрымлівае прататыпы для функцый, якія тэстуюць даныя (напрыклад, зьяўляеццаз'яўляецца сымбальсімвал коскай або лікам)
|-
|<cstring>||Утрымлівае прататыпы для функцый апрацоўкі радкоў
|-
|<string>||Утрымлівае вызначэньневызначэнне клясакласа string
|-
|<typeinfo>||Утрымлівае клясыкласы, якія вызначаюць [[Тыпы даных (C++)|тыпы даных]] у час выкананьнявыканання праграмы
|-
|<fstream>||Утрымлівае прататыпы для функцый, якія ажыцьцяўляюцьажыццяўляюць увод дадзеных у [[файл]] і іх вывад з файлуфайла
|-
|<sstream>||Утрымлівае прататыпы для функцый, якія ажыцьцяўляюцьажыццяўляюць увод і вывад радкоў у [[Аператыўная памяць кампутарукамп'ютара|памяці]]
|-
|<algorithm>||Утрымлівае прататыпы для функцый маніпуляваньняманіпулявання данымі
|}
 
 
== Функцыі ў C++ ==
Праграміст здольныможа пісаць свае функцыі дзеля мэтаўмэт праграмы.
 
'''Функцыя ў C++''' — модуль праграмы C++, у якім закладзены асноўны код і канцэпцыя праграмы. Функцыі могуць быць гатовыя і ўтрымлівацца ў [[Стандартная бібліятэка C++|стандартнай бібліятэцы C++]], а могуць быць напісаныя самім праграмістам.
 
<source lang="cpp">
#include <stdio.h> // падключэньнепадключэнне стандартнай бібліятэкі
 
main()
</source>
 
=== НапісаньнеНапісанне функцый ===
 
==== Прыклад праграмы ====
''Гл. таксама ''[[Аператары C++]]'''
 
ВылічэньнеВылічэнне выразу: <math>\min(a,a+b)+min(a,b+c))/(1.0+min(a+b*c,b)</math>:
 
<source lang="cpp">
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ЗначэньнеnЗначэнне выразу=%.3f",r;
cout << "\nНацісьніцеnНацісніце любую клявішуклавішу для заканчэньнязавяршэння" << endl;
 
getch();
 
 
== АргумэнтыАргументы функцыі main() ==
'''argc і argv''' — [[аргумэнтыаргументы функцыяўфункцыі|аргумэнтыаргументы]] да галоўнай [[функцыі (C++)|функцыі]] «main» у мове праграмаваньняпраграмавання [[C++]].<ref>Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 144; ISBN 0078824761</ref>:
 
=== Прыклад выкарыстаньнявыкарыстання argc і argv ===
Даволі зручна заносіць інфармацыю ў [[праграма|праграму]] падчасў час яе выкананьнявыканання. Пры гэтым зьвесткізвесткі ў праграму заносяцца праз аргумэнтыаргументы каманднага радкурадка. У функцыі «main» прадугледжаныя два спэцыяльнаспецыяльна ўбудаваныя аргумэнтыаргументы: «argc» і «argv». Argc утрымлівае колькасьцьколькасць аргумэнтаўаргументаў, напісаных у камандным радку (argc — цэлалікавы тып зьвестакдадзеных «int»). АргумэнтАргумент argv — гэта паказальнікўказальнік дана масівумасіў паказальнікаўуказальнікаў сымбальнагасімвальнага тыпу ў камандным радку (argv — сымбальнысімвальны тып зьвестакданых «char»). Напрыклад, наступная праграма выводзіць «Hello», а затым праз прабел вашае імя, калі вы ўвялі імя ў праграму:
 
<source lang="cpp">
</source>
 
*'''ТлумачэньнеТлумачэнне.''' ''ПасьляПасля кампіляцыі праграмы неабходна зайсьцізайсці ў камандны радок (для [[Кампілятары C++ для Windows|Windows-кампілятараў]]), або тэрмінал (для [[Кампілятары C++ для Linux|Linux-кампілятараў]]), перайсьціперайсці ў дырэкторыю, дзе зьмяшчаеццазнаходзіцца скампіляваная праграма і надрукаваць яе назву (хай праграма называецца «arg.exe»), а затым сваё імя, напрыклад:''
 
'''arg Erka'''
'''Вы забыліся надрукаваць сваё імя'''
 
''таму што першым аргумэнтамаргументам лічыцца назва праграмы, а другім — імя. А па ўмове''
 
<source lang="cpp">
</source>
 
''колькасьцьколькасць аргумэнтаў неаргументаў павінна быць няроўнайраўняцца двум.''<ref>Schildt, Herbert. C++: The Complete Reference, 3th Edition, p. 145; ISBN 0078824761</ref>
 
 
== Масівы ў C++ ==
'''Масівы ў C++''' — структуры даных мовы праграмаваньняпраграмавання C++, якія ўтрымліваюць зьвязаныязвязаныя адзін з адным аднатыпныя элемэнтыэлементы гэтых даных.
 
== ПрымяненьнеПрымяненне масіваў ==
У розных сфэрахсферах народнай гаспадаркі неабходна структураваць і аналізаваць вялікую колькасьцьколькасць аднатыпных даных. Для аўтаматызацыі і спрашчэньняспрашчэння гэтага працэсу выкарыстоўваюцца масівы. Масівы — адзін з элемэнтаўэлементаў [[Кіруючыя структуры ў C++|кіруючых структур]] у [[C++]].
 
=== Аб’яўленьнеАб’яўленне масіваў ===
У мове С++ масівы аб’яўляюццааб'яўляюцца наступным чынам:
 
<source lang="cpp">
Тут «int a[100]» — масіў з сотняй элементаў [[цэлы тып лікаў|цэлага тыпу]].
 
==== Прыклад праграмы: заданьнезаданне масіву з пячатных сымбаляўсімвалаў і вывад яго на экран ====
 
<source lang="cpp">
#include <stdio.h> // падключэньнепадключэнне стандартнай бібліятэкі
#include <iostream>
 
{
 
char z[ 8 ] = { a, b, c, d, e, f, g, h }; // заданьне сымбальнагасімвальнага масіву з васьмі элементаў
cout << "Масіў з васьмі элементаў:" << "%s", z[8] << endl; // вывад яго на экран
 
return 0; // вяртаньневяртанне да пачатку праграмы
}
 
</source>
 
==== Прыклад праграмы: пошук максымальнагамаксімальнага элементуэлемента [[вэктарвектар]]уа ====
 
<source lang="cpp">
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++ ==
'''Стандартная бібліятэка шаблёнаўшаблонаў 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>.
 
=== Гісторыя стварэньнястварэння ===
Стандартная бібліятэка шаблёнаўшаблонаў 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 — [[КантэйнэрыКантэйнеры (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:w:Катэгорыя:C%2B%2B++|Беларускай беларускае ВікіпэдыіВікіпедыі]]. Любыя дапаўненьнідапаўненні заахвочваюцца.''
 
 
== Крыніцы ==
 
 
[[Катэгорыя:Праграмаванне]]
[[Катэгорыя:Падручнікі]]
[[Катэгорыя:Вікі-Кнігі на тарашкевіцы]]

Навігацыя