
Краткий теоретический материал по C++
Самые основы
#include <iostream> - подключение библиотек ввода и вывода
using namespace std; - использование пространства стандартных имен std
{} - начало, конец
int main () {} - главная функция
// - однострочный комментарий
/* */ - многострочный комментарий
setlocale(LC_ALL, "RUS"); - подключение русского языка (для того, чтобы в консоли отображались русские буквы)
return 0; - возвращение значения функции 0 (можно заменить на cin.get();)
= - оператор присваивания (варианты присваивания: i = 5; или i(5);)
* - умножение
- - вычитание
+ - сложение
/ - деление нацело (div)
% - деление с остатком (mod)
== - равенство
> - больше
< - меньше
!= - неравно
>= - больше или равно
<= - меньше или равно
Простейшая программа
#include <iostream>
using namespace std;
int main() {
cout << "Hey";
return 0;
}
Ввод / вывод
cin >> a >> b >> c;
cout << a << b << c << "Text\n" << endl;
cout << "\n" << endl; - два варианта перехода на новую строку
Все типы данных в C++
Константы
const int i = 5;
const double Pi = 3.14;
Основные операции
i << 3 // i shl 3
i >> 2 // i shr 2
a+=2; // a=a+2;
c*=n; // c=c*n;
c/=n; // c=c/n;
c-=n; // c=c-n;
b=a++; // t=a; a++; b=t;
b=++a; // a++; b=a;
7/3 // 7 div 3
7%3 // 7 mod 3
(i>=2 || i==2) // или
(i>=2 && i==2) // и
!(i>=2 && i==2)// не
& | ^ // побитовые and, or, xor
min = a<b ? a : b; // условная
a=b=c; // множественное присваивание
Условный оператор
if (a<b)
min=a;
else
min=b;
if (i==0 && i!=1)
i++;
else
i--;
if (x<y) {
double t=x;
x=y;
y=t;
}
Оператор множественного выбора
switch (i) {
case 1:
cout<<1;
j++;
break;
case 2:
case 3:
cout<<2;
break;
default:
cout<<3;
break;
}
Оператор цикла
i=5; j=0;
while (i>0) {
i--;
j++;
}
do {
i++;
j--;
} while (i<5);
for (int i=0; i<10; i++) {
cout<<i<<" ";
}
for (double i=0; i<10; i+=0.2) {
cout<<i<<" ";
}
Функции
void f(int i, int j)
{
cout<<i*j<<endl;
}
int abs(int a)
{
return (a>0) ? a : -a;
}
Стандартные функции
#include <cmath> // подключение библиотеки математических функций
abs(x) // модуль
floor(x) // ближайшее целое <= x
ceil(x) // ближайшее целое >= x
sin(x) // синус
cos(x) // косинус
tan(x) // тангенс
exp(x) // экспонента
log(x) // логарифм
log10(x) // логарифм по основанию 10
pow(x,y) // возведение числа x в степень y
sqrt(x) // квадратный корень
Перестановка значений двух переменных
// первый вариант: через специальный алгоритм
#include <algorithm> // подключение библиотеки алгоритмов
swap(x, y);
// второй вариант: через дополнительную переменную
x=dop;
x=y;
y=dop;
Генерация случайных чисел
#include <iostream> // подключение библиотек ввода и вывода
#include <cstdlib>
#include <ctime>
int main() {
srand( (unsigned)time( NULL ) );
const int size = 10;
const int maxNumber = 100;
for(int i=0; i<size; i++)
cout << rand()%maxNumber<<" ";
system("pause");
return 0;
}
Одномерные массивы
int a[5]; // a[0],...,a[4]
int mm[]={1,2,3,1}
int a[3] = {1, 2, 3}; // все три элемента получат соответствующие значения
int b[5] = {1, 2}; // элементы 2, 3 и 4 будут заполнены значением 0
int c[5] = {}; // все элементы массива будут заполнены значением 0
int d[2] = {1, 2, 3}; // это не скомпилируется, слишком много значений
int e[] = {5, 4, 3, 7, -1}; // это скомпилируется, компилятор сам
// вычислит размер массива (то есть 5)
int f[] = {}; // это не скомпилируется: не ясно, сколько элементов мы
// хотим завести
Презентации по теме:
Поиск минимального (или максимального) элемента в одномерном массиве
// допустим, что значения N и a уже введены в коде выше
int mn = a[0]; // считаем, что искомый минимум равен a[0],
// пока не доказано обратное
for (int i = 1; i < N; i++) { // проверяем элементы a[1]…a[N-1]
if (mn > a[i])
mn = a[i];
}
Поиск индекса минимального (или максимального) элемента в одномерном массиве
// допустим, что значения N и a уже введены в коде выше
int mn_idx = 0; // как и прежде, считаем минимальным нулевой элемент,
// просто теперь мы храним его индекс (то есть 0), а
// не его значение
for (int i = 1; i < N; i++) {
if (a[mn_idx] > a[i]) // a[mn_idx] – текущий минимум
mn_idx = i;
}
Двумерные массивы
Двумерные массивы
int c[3][4];
int ff[2][3]={{1,1,1}{2,3,4}};
int ff1[2][3]={1,1,1,2,3,4};
Вывод двумерного массива
for (int i=0; i<3; i++) {
for (int j=0; j<4; j++) {
cout<<с[i][j]<<' ';
}
cout<<endl;
}