Общие понятия
Что такое С++? Это компилируемый язык программирования общего назначения.
Компилируемый означает, что исходный код (программа) преобразуется компилятором в машинный код и записывается в исполняемый файл exe. Компиляция — преобразование программы, написанной на исходном языке высокого уровня (к примеру, С++), то есть программного кода, в эквивалентную программу на низкоуровневом языке, близком машинному коду, выполняемая компилятором.
С++ является языком общего назначения. Его можно использовать при написания программ различной функциональности будь то программы для контройлеров, пк, телефонов и т.п.. Для упрощения написания программ в нём имеется множество заранее написанных элементов, доступных программисту.
Функция — фрагмент программного кода (подпрограмма). В С++ исполняемый программный код можно писать только в функциях.
Естественно для различных задач на различных устройствах требуются различные функции. К примеру функция ввода-вывода на пк и контройлере будут различны. Если бы язык содержал все эти функции сразу, то программы были бы слишком громоздкие. Поэтому большинство функционала языка С находятся в подключаемых библиотеках. Для подключения библиотеки необходимо прописать дерективу (команду) #include < название библиотеки >.
|
|
Пример:
#include <iostream>
#include <stdio.h>
Деректива #include ещё до компиляции заменяется на код из библиотеки.
Общая структура программы
Любая программа на языке С начинает своё выполнение с функции main. Функция main начинается с заголовка функции – int main(), где int - возвращаемый тип. После main идут (), обозначающие, что main является функцией. В них указываются аргументы, принимаемые функцией в данном случае их можно опустить. В блоке обозначаемым {} содержится само тело функции, аналогом таких скобок является begin end в паскале.
Функция main должна вернуть значение, поэтому в конце программы пишется ключевое слово return (вернуть) с кодом ошибки. Оно завершает выполнение функции main, а значит и всей программы. Сочетание return 0 означает штатное завершение работы программы (возвращает код ошибки 0). Иначе (к примеру в ситуации деления на ноль) main вернёт не нулевое значение являющееся кодом ошибки. Задавать коды ошибок и соответствующие им return’ы не обязательно.
Int main()
{
// тело функции
return 0;
}
После знака // можно писать комментарии до конца строки. Также можно заключить комментарий в сочетания знаков /* */, /* обозначает начало комментария, а */ - конец, такой комментарий может растянуться на несколько строк. При преобразовании программы в исполняемый файл все комментарии удаляются и не учитываются при компиляции.
|
|
После команды обязательно ставиться точка с запятой.
Переменные и типы данных
Переменная – это ячейка памяти в которой может храниться значение определённого типа. Основные типы данных в С следующие:
int | целое число | ± 2.14 · 109 | 4 байта |
float | число с плавающей точкой | ± 3.4 · 10± 38 | 4 байта |
double | ± 1.7 · 10± 308 | 8 байт | |
char | символ | -128 / 127 | 1 байт |
bool | булевый тип | true / false | 1 байт |
(объем памяти выделяемый на переменные может меняться в зависимости от компилятора и процессора)
Объявление переменной – это её создание в тексте программы.Объявление переменной выглядит следующим образом:
int m;
Инициализация – это присвоение переменной начального значения.
Пример инициализации переменной:
a = 5;
c = -7.6;
Пример объявление переменной с её инициализацией:
double a = 5, c = -7.6;
bool flag = true;
В С целая и дробная части у нецелых чисел отделяются точкой. Если в конце записи числа поставить букву f, то тип числа будет float, иначе – double.
float f = 3.55f;
float ff = 4.f
double d = 56.;
double dd = 7333.333;
Основные математические операции
присваивание | = |
сложение | + |
вычитание | - |
умножение | * |
деление | / |
квадрат x | x*x |
остаток от деления | % |
инкремент x | ++x (префиксный), x++ (постфиксный) |
декремент x | --x (префиксный), x-- (постфиксный) |
Функции из библиотеки math.h
модуль x | abs(x) |
квадратный корень из x | sqrt(x) |
возведение в степень y числа x | pow(x, y) |
Все вычисления выполняются в типах данных их параметров. К примеру, если написать
int a = 3/2;
То в а будет лежать число 1. Во-первых из-за того, что а – целое, а округление всегда происходит вниз, то есть даже если результат деления будет равен 1.5, в а запишется 1. Но даже если написать
double a = 3/2;
То результат будет тот же. Поскольку числа 3 и 2 имеют тип int, вызывается оператор деления для целых чисел. Результат деления округляется до 1 и записывается в а.
Для того, чтобы в а лежало 1.5, необходимо чтобы одно из чисел, участвующих в делении, было нецелого типа. Это можно достичь, поставив точку после одного из них.
double a = 3./2;
double a = 3/2.;
double a = 3./2.;
float a = 3.f/2;
Также в С возможно применить некоторое действие к переменной x, и записать в неё результат этого действия. Для этого необходимо написать x [знак действия]= выражение.
Пример:
x += 1; (прибавить 1 к x)
x *= 7 / 3; (умножит x на 2)
x %= y * 5; (записать в x остаток от деления x на (y * 5))
Оператор ветвления
Оператор ветвления или условия - if. После if в () пишется условие, а затем в {} что необходимо выполнить, если условие истинно. Если требуется выполнить одно действие, скобки можно опустить. Также после оператора if можно применить оператор else код в котором выполниться если условие будет ложно.
проверка равенства | == |
больше | > |
меньше | < |
больше или равно | >= |
меньше или равно | <= |
И | && |
ИЛИ | || |
НЕ | ! |
if (x > 0)
{
x = 1;
}
Else
{
x = 0;
}
Также операторы if else можно вкладывать друг в друга.
if (…){ …}
else if (...) {…}
else if (…){…}
else {…}
Оператор ввода вывода
Для ввода – вывода можно использовать библиотеку iostream (input output stream). Подключив её становится возможным использование объектов cin (in - в) – ввод и cout (out - из) – вывод. Для того, чтобы cin записал значение в переменную необходимо применить оператор >>, а за ним имя переменной в которую будет произведена запись. К примеру:
int a;
std::cin >> a;
Если требуется сканировать несколько переменных, достаточно просто добавить ещё один оператор, а за ним имя следующей переменной.
int a, b, c;
std::cin >> a >> b >> c;
Поскольку cin является частью Стандартной Библиотеки (Standard Library) и находится в пространстве имён std, перед оператором cin необходимо всегда прописывать std::. Однако, если вначале программы (сразу после подключения библиотек и до main) прописать команду using namespace std; (использовать пространство имён std), то std:: можно опустить.
|
|
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
return 0;
}
Для вывода действуют теже правила, за исключением того, что оператор потока следующий: <<.
int y = 5;
cout << y;
cout << y << y;
Для вывода строки необходимо заключить её в двойные кавычки " ", символа – ординарные кавычки ' '.
cout << “Hello world” << “H” << ‘H’; (нельзя писать ‘Hello world’)
Для перехода на новую строку можно использовать либо символ \n, либо команду endl (std::endl если не используется пространство имён std).
cout << “\n” << ‘\n’ << endl;
Для вывода фиксированного числа знаков после запятой дробного числа необходимо использовать команду fixed заключённую в операторы потока, а для установления точности – setprecision(x), где x - число знаков после запятой. По умолчанию fixed выводит 6 знаков.
Пример:
double d = 5;
cout << d << fixed << "\n" << d << endl << setprecision(10) << d;
Вывод приложения:
5
5.000000
5.0000000000