Дапаможнік па C++

З пляцоўкі Wikibooks
Перайсці да: рух, знайсці

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