С++
ООП
Приклад задачі:
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 << "Сума"<
Клас-спеціальна конструкція, яка використовується для групування пов'язаних змінних та функцій.
public
protected
private
Об'єкт-створений та ініціалізований екземпляр класу
Поліморфізм- використовується спільний інтерфейс для обробки різних спеціалізованих типів.
Інкапсуляція-містяться не тільки дані, але і правила їх обробки, оформлені в вигляді виконуваних фрагментів (методів).
Наслідування-процес, завдяки якому один об’єкт може придбати властивості іншого
Структури
Щоб надати значення елементу або звернутися до значення елемента використовують операцію крапка (.)
shkolyar.serbal=12.0;
Ініціалізація структури:
uchen workers("Petrov", 2000,11.5,"526-12-44");
struct uchen
{
char name[63];
int riknar;
float serbal;
char phone[10]
}
Для зберігання зв'язаної інформації різних типів використовують структури.
Рядкові величини
Методи:
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
isalpha(c) - true. якщо c -буква
isdigit(c) - true. якщо c - цифра
isgraph(c) - -true. якщо c - не пробіл
isspace(c)- true. якщо c - пробіл
ispunct(c) - true. якщо c - знак пунктуації
Конкатенація (додавання) працює лише за умови, що перший доданок класу string
Введення символів :
cin>>s1; - зчитується лише перше слово. Для зчитування рядка використовується get.line
Ініціалізація:
string s1;
string s2("value");
string s3(s2);
string s4(5, 'h');
Рандомізація
Для початку потрібно підключити бібліотеки та
int i,d;
srand (time(0);
d=rand( )% n; n - діапазон чисел рандому
Вектори
Ітератор-це тип, що дозволяє звертатись до елементів, що зберігаються у контейнері, пересуваючись від одного до іншого.
Оголошення ітератора:
vector ::iterator iter=v.begin();
*iter=0 - робота з ітератором
v.empty(); - true якщо вектор пустий і false якщо заповненний
v.size(); - кількість елементів у векторі
v.push_back(t); - додавання значення t в кінець вектору
v.clear(); - очищення вектору
v.pop_back(); - видалення останнього елементу
v.end(); -звернення до елемента наступного за останнім
v.begin();-звернення до першого елемена вектора
Оголошення вектору:
vector <тип>ім'я; - пустий
vector a;
vector b(a); - оголошення вектору-копії вектора а
vector a(10,1); - 10 елементів із значенням 1
vector a(10); - вектор з 10 елем. які = 0
Для початку потрібно підключити бібліотеку #include
Сортування
Швидкі: злиттям, швидке, пірамідальне.
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) l--;
if (f<=l)
{
count=mas[f];
mas[f]=mas[l];
mas[l]=count;
f++;
l--;
}
} while (f
Базові : сортування вибором, вставками та бульбашкове.
Запис функції бульбашкового сортування:
void bubl(int *mas, int n)
{
int i,j;
int rab;
for(j=1; j mas[i])
{
rab = mas[i-1];
mas[i-1]=mas[i];
mas[i]=rab;
}
Алгоритми сортування бувають швидкі та базові
Масиви
Багатовимірні масиви:
int a[n][m]; - оголошення, n-рядки, m-стовпці;
for(int i=0;i>a[i][j]; - введення елементів
}
Приклад роботи з масивом:
int n;s=0;
cin>>n; - бажана розмірність масиву;
int b[n];
for(int i=0;i>b[i];} - введення елементів масиву
for(int i=0;i
string a[5]={"one","two",........};
Нумерація елементів починається з 0;
a[0]- перший елемент масиву
Оголошення масиву: ТИП ім'я_масиву[розмірність];
int a[10];
Масив-область пам'яті де можуть послідовно зберігатись кілька значень
Функції користувача
Змінні-вказівники *a;
Отримання адреси &a;
Звернення до функції: int s=Sum(x,y);
Тип_повернення ім'я_функції(формальні параметри)
int Sum(int a,int b)
{ int res;
res=a+b;
return res; }
While
Спочатку виконує потім перевіряє умову:
do{
команди; }
while (a>n);
Спочатку перевіряє потім виконує : while(a
Організація циклів
for(int i=0; i
{команди;}
Для збільшення лічильника на певне число: i+=n
i-1 це i--
i+1 це i++
switch case
char k;
cin>>k;
switch(k)
{case 'значення':cout<<" ";break;
default:cout<<" ";}
Умовний оператор
if ( )команда;
else if ( )команда;
else ( )команда;
if(умова){команда 1; команда 2;};
Коротка форма - if (умова) команда;
Математичні та логічні операції
Для коректного розрахунку суми чисел потрібно оголосити змінну суми і прирівняти її до 0;
Для добутку прирівнюємо до 1;
Або - ||
і - &&
Заперечення - !
Округлення вгору - ceil(a)
Округлення вниз - floor(a)
Модуль числа - fabs(a)
ctg(x) - 1/tan(x)
tg(x) - tan(x)
Корінь - sqrt(a)
Піднесення числа а до степеня n: pow(a,n)-лише для int
Типи данних
long double (дійсне збільшеної точності)
char (символьний)
void (пустий)
double (дійсне число,15 значущих цифр)
float (дійсне число,7 значущих цифр)
bool (true or false)
int (цілий )