Добавить в корзинуПозвонить
Найти в Дзене
Road to the programming

Урок №8. Структура программ

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

Компьютерная программа — это последовательность инструкций, которые сообщают компьютеру, что ему нужно сделать.

Стейтменты

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

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

int x ;
x = 5 ;
std :: cout << x ;

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

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

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

Выражения

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

отдельные цифры и числа (например, 2 , 45 );

буквенные переменные (например, х , у );

операторы, в т.ч. математические (например, + , - );

функции.

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

Функции

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

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

Библиотеки

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

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

Пример простой программы

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

#include <iostream>
int main ( )
{
std :: cout << "Hello, world!" ;
return 0 ;
}

Строка №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++. Если вы нарушили правила, то компилятор будет ругаться и выдаст вам ошибку.

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

#include <iostream>
int main ( )
{
std :: cout << "Hello world!"
return 0 ;
}

Результат:

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

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

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

Тест

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

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

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

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

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

Ответы:
Ответ №1

Стейтмент — это «полное предложение», которое сообщает компилятору, что ему нужно выполнить определенное задание. Выражение всегда имеет результат (исключение — деление на ноль) и является частью стейтмента.

Ответ №2

Функция — это последовательность стейтментов для выполнения определенного задания. Библиотека — это последовательность функций, которые могут повторно использоваться в других программах.

Ответ №3

Точкой с запятой (; ).

Ответ №4

Синтаксическая ошибка — это ошибка, указывающая на нарушение правил грамматики языка С++.