С++

С++

Типи данних

Типи данних

int (цілий )

bool (true or false)

float (дійсне число,7 значущих цифр)

double (дійсне число,15 значущих цифр)

void (пустий)

char (символьний)

long double (дійсне збільшеної точності)

Математичні та логічні операції

Математичні та логічні операції

Піднесення числа а до степеня n: pow(a,n)-лише для int

Корінь - sqrt(a)

tg(x) - tan(x)

ctg(x) - 1/tan(x)

Модуль числа - fabs(a)

Округлення вниз - floor(a)

Округлення вгору - ceil(a)

Заперечення - !

і - &&

Або - ||

Для коректного розрахунку суми чисел потрібно оголосити змінну суми і прирівняти її до 0;
Для добутку прирівнюємо до 1;

Умовний оператор

Умовний оператор

Коротка форма - if (умова) команда;

if(умова){команда 1; команда 2;};

if ( )команда;

else if ( )команда;

else ( )команда;

switch case

switch case

char k;

cin>>k;

switch(k)

{case 'значення':cout<<" ";break;

default:cout<<" ";}

Організація циклів

Організація циклів

Для збільшення лічильника на певне число: i+=n

i+1 це i++

i-1 це i--

for(int i=0; i<n;i++)

{команди;}

While

While

Спочатку перевіряє потім виконує : while(a<n)

{команди;}

Спочатку виконує потім перевіряє умову:
do{

команди; }

while (a>n);

Функції користувача

Функції користувача

Тип_повернення ім'я_функції(формальні параметри)

int Sum(int a,int b)

{ int res;

res=a+b;

return res; }

Звернення до функції: int s=Sum(x,y);

Отримання адреси &a;

Змінні-вказівники *a;

Масиви

Масиви

Масив-область пам'яті де можуть послідовно зберігатись кілька значень

Оголошення масиву: ТИП ім'я_масиву[розмірність];

int a[10];

Нумерація елементів починається з 0;

a[0]- перший елемент масиву

string a[5]={"one","two",........};

Приклад роботи з масивом:

int n;s=0;
cin>>n; - бажана розмірність масиву;
int b[n];
for(int i=0;i<n;i++)
{cin>>b[i];} - введення елементів масиву
for(int i=0;i<n;i++)
{s=+b[i];} - шукаємо суму елементів масиву
cout<<s<<endl; - виводимо суму

Багатовимірні масиви:
int a[n][m]; - оголошення, n-рядки, m-стовпці;
for(int i=0;i<n;i++)
for(int j=0;j<0;j++)
{
cin>>a[i][j]; - введення елементів
}

Сортування

Сортування

Алгоритми сортування бувають швидкі та базові

Базові : сортування вибором, вставками та бульбашкове.

Запис функції бульбашкового сортування:
void bubl(int *mas, int n)
{

int i,j;

int rab;

for(j=1; j<n; j++)

for (i=1; i<n; i++)

if (mas[i-1] > mas[i])

{

rab = mas[i-1];

mas[i-1]=mas[i];

mas[i]=rab;

}

Швидкі: злиттям, швидке, пірамідальне.

void quicksort(int *mas, int first, int last)
{
int mid, count;
int f=first, l=last;
mid=mas[(f+l) / 2];
do
{
while (mas[f]<mid) f++;
while (mas[l]>mid) l--;
if (f<=l)
{
count=mas[f];
mas[f]=mas[l];
mas[l]=count;
f++;
l--;
}
} while (f<l);
if (first<l) quicksort(mas, first, l);
if (f<last) quicksort(mas, f, last);

Вектори

Вектори

Для початку потрібно підключити бібліотеку #include<vector>

Оголошення вектору:
vector <тип>ім'я; - пустий

vector <int> a;

vector <int> b(a); - оголошення вектору-копії вектора а

vector <int> a(10,1); - 10 елементів із значенням 1

vector <int> a(10); - вектор з 10 елем. які = 0

v.empty(); - true якщо вектор пустий і false якщо заповненний
v.size(); - кількість елементів у векторі
v.push_back(t); - додавання значення t в кінець вектору
v.clear(); - очищення вектору
v.pop_back(); - видалення останнього елементу
v.end(); -звернення до елемента наступного за останнім
v.begin();-звернення до першого елемена вектора

Ітератор-це тип, що дозволяє звертатись до елементів, що зберігаються у контейнері, пересуваючись від одного до іншого.

Оголошення ітератора:
vector <int>::iterator iter=v.begin();
*iter=0 - робота з ітератором

Рандомізація

Рандомізація

Для початку потрібно підключити бібліотеки <cstdlib> та <ctime>

int i,d;
srand (time(0);
d=rand( )% n; n - діапазон чисел рандому

Рядкові величини

Рядкові величини

Ініціалізація:
string s1;
string s2("value");
string s3(s2);
string s4(5, 'h');

Введення символів :
cin>>s1; - зчитується лише перше слово. Для зчитування рядка використовується get.line

Конкатенація (додавання) працює лише за умови, що перший доданок класу string

isalpha(c) - true. якщо c -буква
isdigit(c) - true. якщо c - цифра
isgraph(c) - -true. якщо c - не пробіл
isspace(c)- true. якщо c - пробіл
ispunct(c) - true. якщо c - знак пунктуації

Методи:
s.push_back('символ');
s.insert(ітератор, 'символ');
s.insert(ітератор, кількість, 'символ');
s.insert(ітератор 1,ітератор 2,ітератор 3);
s.assign(кількість, 'символ');
s.assign(ітератор 1, ітератор 2);
s.erase(ітератор);
s.erase(ітератор 1, ітератор 2);
s.erase(pos,len);- видаляє len символів починаючи з позиції pos

Структури

Структури

Для зберігання зв'язаної інформації різних типів використовують структури.

struct uchen
{
char name[63];
int riknar;
float serbal;
char phone[10]
}

Ініціалізація структури:
uchen workers("Petrov", 2000,11.5,"526-12-44");

Щоб надати значення елементу або звернутися до значення елемента використовують операцію крапка (.)
shkolyar.serbal=12.0;

ООП

ООП

Поліморфізм- використовується спільний інтерфейс для обробки різних спеціалізованих типів.

Інкапсуляція-містяться не тільки дані, але і правила їх обробки, оформлені в вигляді виконуваних фрагментів (методів).

Наслідування-процес, завдяки якому один об’єкт може придбати властивості іншого

Об'єкт-створений та ініціалізований екземпляр класу

Клас-спеціальна конструкція, яка використовується для групування пов'язаних змінних та функцій.

private

protected

public

Приклад задачі:
class Date
{

private:
float a;
float b;
public:
void message()
{
cout << "Введіть a,b:\n";
}

void setA(float date_a)
{
a = date_a;
}

void setB(int date_b)
{
b = date_b;
}

float dod(float a,float b)
{
float c;
c=a+b;
return c;
}

float vid(float a,float b)
{
float c;
c=a-b;
return c;
}

};

int main()
{
setlocale(LC_ALL, "ukr");
float a,b;
Date c;
c.message();
cin>>a>>b;
c.setA(a);
c.setB(b);
cout << "Сума"<<c.dod(a,b)<<endl;
cout << "Віднімання: "<<c.vid(a,b)<<endl;


return 0;
}