Типы ошибок в программировании.
1. Синтаксическая ошибка (Syntax error) - вызвана неправильным написанием команд, неправильным порядком следования команд, пропуском обязательных символов (запятая, круглые скобки, двоеточие и т.д.)
Например,
cout >> instead of cout <<
int x = 4.2 instead of float x=4.2
2. Ошибка выполнения (Execution error) - вызывается во время выполнения программы, ошибок в программном коде нет и запуск на выполнение возможен, но при определенных обстоятельствах программа не может быть выполнена.
Например,
cin >> distance; // ввод расстояния
cin >> time; // ввод времени
speed = distance / time; // вычисление скорости
cout << speed; // вывод результата вычисления
в программе нет ошибок, но !!! если мы введем 0 для переменной time, то вычисление в третьей строке приведет к делению на 0, а мы знаем, что вы не можете разделить число на ноль!
На экране появится ошибка ZeroDivisionError, информирующая пользователя о том, что невозможно разделить на 0. Необходимо задать дополнительное условие, которое будет проверять, что переменная time != 0.
Например, решение покажет не программную ошибку, а сообщение пользователю.float time, distance, speed;
cin >> distance; // ввод расстояния
cin >> time; // ввод времени
if (time!=0) {
speed = distance / time; // вычисление скорости
cout << speed; // вывод результата вычисления
}
else {
cout << "Нельзя делить на 0"; // вывод сообщения
}
3. Логическая ошибка (Logic error) возникает, если в программе нарушена логика выполнения кода, порядок действий, неправильно задано условие и т.д. Программа не показывает ошибок и отображает конечный результат; только результат неверен.
Например,
- нужно было вычислить a * b , но в программе написали a + b . В записи нет ошибки, но результат будет неверным.- для расчета 
код x = a + b / 2 неправильно вычислит x, так как сначала будет выполнено деление, а затем только сложение, что не соответствует вычислению дроби.
Следовательно, чтобы порядок действий был сохранен, вам нужно использовать круглые скобки и написать x = (a + b) / 2