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

Змесціва выдалена Змесціва дададзена
Новая кніга па праграмаваньню.
(Няма розніцы)

Версія ад 12:48, 4 лістапада 2014

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