Наиболее частые ошибки в программировании
Некоторые синтаксические ошибки в C++
1) Точки с запятой
Каждое действие в программе на C++ завершается символом ';'. Стоит внимательно проверить, стоят ли точки запятой в конце строк с командами:
cin >> a;
b=a*a;
if(a>1)
{
b=b+a;
cout << b;
}
В случае отсутсвия точки с запятой компилятор сообщит, что не хватает символа ';' перед следующей за ней командой.
Следующий код ошибочен, так как точка с запятой означает конец текущей команды. В таком случае условный оператор не выполнит ничего, а действия в фигурных скобках будут выполняться вне зависимости от условия.
if(a>1);
{
b=b+a;
cout << b;
}
2) Правильность написания операторов, типов данных и т.д.
Опечатки случаются. Если команда написана неверно, компилятор сообщит, что это неизвестное ему наименование оператора, типа данных и т.д.
3) Правильность использования команд
Лучше всегда сверяться с образцом использования команд. На сайте есть справочник по C++, в котором указаны базовые операторы и примеры их использования.
4) Определены ли все используемые переменные?
Если не инициализировать (объявить) переменную до операций с ней, компилятор сообщит, что данная переменная не инициализирована.
Неправильно:
cin >> a;
int a;
Правильно:
int a;
cin >> a;
5) Правильность написания имён переменных
Если имя переменной написано неверно, компилятор сообщит, что переменная с данным именем не инициализирована.
6) Фигурные скобки и другие парные символы
Символы фигурных скобок '{' и '}' в C++ служат для объединения операций в блоки. Как и все остальные скобки и кавычки, эти скобки должны быть парные, т.е. для каждой открывающей скобки в коде должна иметься закрывающая.
Не являющаяся синтаксической, но всё же связанная с синтаксисом ошибка - отсутствие сразу пары фигурных скобок. Операторы в C++ выполняют ровно одну операцию, указанную после них. Заключая группу операций в скобки, вы объединяете их в один блок, который выполнится целиком после оператора. В следующем кода под условием оказывается только строчка с присваиванием, а вывод числа будет срабатывать вне зависимости от условия:
if(a>1)
b=b+a;
cout << b;