Урок 8. Структура программ в C++

  Юрий Ворон  | 

    | 

  Обновлено 2 Янв 2018  | 

 33866

 ǀ   8 

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

Стейтменты

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

Примечание: В дальнейшем, statement будет переводиться как инструкция, операция или просто стейтмент.

Есть много различных видов инструкций в C++. Ниже приведены самые распространенные из них:

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++ не такой уж и большой, а даже совсем наоборот. Тем не менее, он идет в комплекте со Стандартной библиотекой С++, которая предоставляет дополнительные функциональные возможности для использования. Одна из наиболее часто используемых частей стандартной библиотеки C++ — библиотека iostream, которая содержит функциональные возможности вывода данных на экран и получения данных от пользователей.

Рассмотрим простую программу

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

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

Строка 2 не имеет никакого кода и игнорируется компилятором.

Строка 3 объявляет функцию main(), которая, как вы узнали выше, является обязательной. Каждая программа должна иметь функцию main().

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



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

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

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

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

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

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

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

Результат:

c:\users\apomeranz\documents\visual studio 2013\projects\test1\test1\test1.cpp(6): error C2143: syntax error : missing ';' before 'return'

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

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

Тест

Следующий тест нужен для усвоения материала, представленного выше. Итого, дайте ответы на следующие вопросы:

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

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

  Каким символом заканчиваются инструкции в С++?

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

Ответы

Чтобы посмотреть ответ, нажмите курсором на нужный ответ.

Ответ 1

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (325 оценок, среднее: 4,94 из 5)
Загрузка...

Комментариев: 8

  1. somebox:

    > Например, каждое предложение должно оканчиваться точкой.

    Нет. Варианта четыре: точка, многоточие, вопросительный и восклицательный знак. 🙂

    1. Юрий Ворон Юрий Ворон:

      Действительно, здесь я промахнулся 🙂

  2. Константин:

    Юра, в этом уроке утверждается, мол, С++ не такой уж большой, но он укомплектован Стандартной библиотекой. Вопрос: а где она физически находится? Как туда заглянуть и взять что-нибудь "почитать"? Не в смысле поставить :: и вытащить нужный элемент, а в какой папке она лежит.

  3. Алексей:

    Программа написана не правильно! она будет вырубаться при запуске,
    нужно было так:

    1. Юрий Юрий:

      У меня в Visual Studio не вырубается. Что делать, чтобы не вырубалось — рассказывается в уроке 7.

    2. Pavel:

      Программа написана правильно. "Вырубание" программы означает всего лишь то, что после завершения программы ее окно закрывается. В любой среде программирования есть настройки, которые позволяют изменить такое поведение консольной программы. Т.е. можно сделать так, что после завершения программы окно консоли останется открытым.

  4. Семён:

    Великолепно ! Все подробно описано !
    Но завтра надо почитать ещё раз …. Для большего усвоения .

    1. painkiller:

      Как успехи?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

telegram канал
RAVESLI