С++
Типи данних
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
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(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;
}