01. Структура программы
2019-04-06, 10:10 AM

Стейтменты

Cтейтмент (англ. «statement») – это наиболее распространённый тип инструкций в программах. Это и есть та самая инструкция, наименьшая независимая единица в языке С++. Стейтмент в программировании – это то же самое, что и предложение в русском языке. Мы пишем предложения, чтобы выразить какую-то идею. В C++ мы пишем стейтменты, чтобы выполнить какое-то задание. Все стейтменты в C++ заканчиваются точкой с запятой.

Есть много разных видов стейтментов в C++. Рассмотрим самые распространённые из них:

1  int x;
2  x = 5;
3  std::cout << x;

int х – это стейтмент объявления (англ. «statement declaration»). Он сообщает компилятору, что х является переменной. В программировании каждая переменная имеет свою ячейку в памяти. Все переменные в программе должны быть объявлены, прежде чем использованы. Мы детальнее поговорим о переменных в следующих уроках.

х = 5 – это стейтмент присваивания (англ. «assignment statement»). Здесь мы присваиваем значение 5 переменной х.

std::cout << x; – это стейтмент вывода (англ. «output statement»). Мы выводим значение переменной х на экран.

Выражения

Компилятор также способен обрабатывать выражения. Выражение (англ. «expression») – это математический объект, который производит значение. Например, в математике выражение 2 + 3 производит значение 5. Выражениями могут быть:

  значения (например: 2, 4);

  переменные (например: х, у);

  операторы (например: +, -);

  функции.

Они могут быть как одним значением (например, 2 или х), так и комбинацией значений (например: 2 + 3, 2 + х, х + у или (2 + х) * (y - 3)). Например, х = 2 + 3; – это корректный стейтмент присваивания. Выражение 2 + 3 производит результат: значение 5. Затем значение 5 присваивается переменной х.

Функции

В C++ стейтменты объединяются в блоки – функции. Функция – это последовательность стейтментов. Каждая программа в C++ должна содержать главную функцию main(). Именно с первого стейтмента в main() и начинается выполнение программы. Функции, как правило, выполняют конкретное задание. Например, функция max() может содержать стейтменты, которые определяют максимальное число из заданных двух. Функция calculateGrade() может рассчитывать оценку студента. Более детально об этом мы ещё поговорим в следующих уроках.

Совет: Пишите функцию main() в файле .cpp с тем же именем, что и проект. Например, если вы пишите программу Chess, то поместите вашу функцию main() в chess.cpp.

Библиотеки

Библиотека – это набор скомпилированного кода (например, функций), который был «упакован» для повторного использования в других программах. С помощью библиотек можно расширить возможности программ. Например, если вы пишете игру, то вам придётся подключать библиотеки звука или графики (если вы самостоятельно не хотите их писать).

Язык C++ не такой уж и большой, как вы могли бы подумать. Тем не менее, он идёт в комплекте со Стандартной библиотекой С++, которая предоставляет дополнительный функционал. Одной из наиболее часто используемых частей стандартной библиотеки C++ является библиотека iostream, которая позволяет выводить данные на экран и обрабатывать пользовательский ввод.

Пример простой программы
Теперь, когда у вас есть общее представление о том, что такое стейтменты, функции и библиотеки, давайте рассмотрим ещё раз программу “Hello, world!”:

1  #include <iostream>
2  
3  int main()
4  {
5   std::cout << "Hello, world!";
6   return 0;
7  }

Строка №1: Специальный тип инструкции, который называется директивой препроцессора. Директивы препроцессора сообщают компилятору, что ему нужно выполнить определённое задание. В этом случае мы говорим компилятору, что хотели бы подключить содержимое заголовочного файла iostream к нашей программе. Заголовочный файл iostream позволяет нам получить доступ к функционалу библиотеки iostream, что позволяет выводить нам данные на экран.

Строка №2: Пустое пространство, которое игнорируется компилятором.

Строка №3: Объявление главной функции main().

Строки №4 и №7: Указываем компилятору область функции main(). Всё, что находится между открывающей фигурной скобкой в строке №4 и закрывающей фигурной скобкой в строке №7, считается частью функции main().

Строка №5: Наш первый стейтмент (заканчивается точкой с запятой) – стейтмент вывода. std::cout – это специальный объект, используя который мы можем выводить данные на экран. << – это оператор вывода. Всё, что мы отправляем в std::cout – выводится на экран. В этом случае, мы выводим текст «Hello, world!».

Строка №6: Оператор возврата return. Когда программа завершает своё выполнение, функция main() передаёт значение обратно в операционную систему, которое указывает на результат выполнения программы: успешно ли выполнение программы или нет.

Если return возвращает значение 0, значит всё хорошо! Ненулевые числа используются для указания того, что что-то пошло не так и выполнение программы было прервано. О return мы ещё поговорим детальнее в соответствующем уроке.

Синтаксис и синтаксические ошибки

Как вы, наверное, знаете, в русском языке все предложения подчиняются правилам грамматики. Например, каждое предложение должно заканчиваться точкой. Правила, которые регулируют построение предложений, называются синтаксисом. Если вы не поставили точку и записали два предложения подряд, то это является нарушением синтаксиса русского языка.

C++ также имеет свой синтаксис: правила написания кода/программ. При компиляции вашей программы, компилятор отвечает за то, чтобы ваша программа соответствовала правилам синтаксиса языка C++. Если вы нарушили правила, то компилятор будет ругаться и выдаст вам ошибку.

Например, давайте посмотрим, что произойдёт, если мы не укажем в конце стейтмента точку с запятой:

1  #include <iostream>

3  int main()
4  {
5     std::cout << "Hello world!"
6     return 0;
7  }

Результат:

E0065: требуется точка с запятой ";"
C2143: синтаксическая ошибка: отсутствие ";" перед "}"

Допущена синтаксическая ошибка в строке №6: забыли поставить точку с запятой перед return. В этом случае ошибка на самом деле в конце строки №5. В большинстве случаев компилятор правильно определяет строку с ошибкой, но есть ситуации, когда ошибка не заметна вплоть до начала следующей строки.

Синтаксические ошибки нередко совершаются при написании программ. К счастью, большинство из них можно легко найти и исправить. Но следует помнить, что программа может быть полностью скомпилирована и выполнена только при отсутствии ошибок.

Тест
Теперь давайте проверим то, как вы усвоили материал выше. Дайте ответы на следующие вопросы:

  1. В чём разница между стейтментом и выражением?

  2. В чём разница между функцией и библиотекой?

  3. Чем заканчиваются стейтменты в С++?

  4. Что такое синтаксическая ошибка?

Категория: C++ теория | Добавил: shadrinuro
Просмотров: 1511 | Загрузок: 0 | Рейтинг: 5.0/1
Всего комментариев: 0
avatar