Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лекция 2.
Структура программы
Рассмотрим простой пример программы на C++ , записанный в файле FIRST.CPP . Программа выводит сообщение на экран:
Этот пример демонстрирует типичную структуру программы на C++. Рассмотрим эту структуру в деталях.
0-ая строка): Комментарий однострочный //текст
Комментарии являются важной частью любой программы. Цель его- документировать программу и облегчить её чтение как разработчику, так и любому другому человеку, читающему код. Компилятор игнорирует все, что помечено в программе как комментарий, поэтому комментарии не включаются в содержимое исполняемого файла и никак не влияют на ход исполнения программы.
Рекомендуется: начинать программу с комментария, указывающего имя файла и описывающего цель программы.
В C++ существует еще один вид комментариев: /* устаревший вид комментариев */ он позволяет набрать многострочный комментарий.
1-ая строка): Директива препроцессора #include <имя файла>
Эта строка начинается с символа # ,называется директивой препроцессора и является указанием компилятору. Препроцессором называется специальная часть компилятора, обрабатывающая подобные директивы перед началом процесса компиляции кода. Директива #include указывает препроцессору включить в компилируемый файл содержимое другого файла на место директивы #include. Файл, включаемый с помощью директивы #include, обычно называют заголовочным (или включаемым) файлом. I0STREAM является примером заголовочного файла потока ввода- вывода, должен быть включен для всех программ, которые вводят данные с клавиатуры или выводят данные на экран . Этот текстовый файл содержит описание элементов стандартной библиотеки, необходимых для выполнения операций ввода- вывода. Конкретно: описан набор классов для управления вводом выводом, стандартные объекты - потоки ( cin для ввода с клавиатуры и cout для вывода на экран), а также операции помещения в поток << (вывод на экран) и извлечения из потока >>(ввод с клавиатуры). . В стандартном C++ заголовочные файлы не имеют расширения, но те файлы, которые были унаследованы от языка С, имеют расширение .h.
2-ая строка): Директива using namespace std;
Каждую программу на языке C++ можно разбить на несколько так называемых пространств имен. Пространством имен называется область программы, в которой распознается определенная совокупность имен. Эти имена могут быть неизвестны за пределами данного пространства имен.В пространстве каждое имя уникально, но могут быть одинаковые имена в разных пространствах. Директива using namespace std; означает, что все определенные ниже имена в программе будут относиться к пространству имен с именем std. Объявления стандартных средств ввода вывода содержатся в этом пространстве имён std, например переменные cout и cin. Если не использовать директиву using, то к этим элементам программы придется каждый раз добавлять имя std: std::cout , : std::cin. Для того, чтобы не дописывать std:: каждый раз перед именем переменной, используется директива using.
Механизм пространств вместе с директивой #include при написании больших программ обеспечивает гибкость, когда сочетается возможность группированияч имен и ограничение доступа к ним.
3-ая строка): заголовок главной функции int main ()
Функции представляют собой основу, на которой строится любая программа C++. Функций у программы может быть несколько, но одна из них главная, с неё начинается выполнение программы , название у неё main(). Программа FIRST состоит из этой единственной функции . Круглые скобки, идущие вслед за именем main, являются отличительной чертой функций: если бы их не было, то компилятор не смог бы отличить имя переменной или другого элемента программы от имени функции. Когда мы будем использовать имена функций в объяснениях, мы всегда будем придерживаться соглашения, принятого в C++, и ставить круглые скобки после имени функции. Позже мы увидим, что в скобках могут указываться аргументы функций имена переменных, значения которых программа передает в функцию. Слово int, предваряющее имя функции, указывает на то, что эта функция возвращает значение типа int. В более старых версиях C++ для функции main() можно было указывать тип возвращаемого значения void, cтандартный C++ не рекомендует этого делать.
4-ая и 7-ая строки ): фигурные скобки, заключающие тело функции { }
В нашем примере тело функции состоит всего лишь из двух операторов. Фигурные скобки, обрамляющие тело функции, обязательны.
5-ая строка): оператор cout << "Hello C++!\п";
Оператор является структурной единицей программы на C++, каждый является указанием компьютеру совершить какое-либо действие. Заданный в строке оператор указывает компьютеру вывести на экран строку символов, заключённую в кавычки. Он посылает строку в стандартный поток cout , который обычно связан с экраном. Поток это некоторая абстракция, отражающая перемещение данных от источника к приемнику.
Операция << называется операцией вставки. Она копирует содержимое строки, стоящей в правой ее части, в объект, содержащийся в левой ее части, в том же виде. Операция <<известна как операция побитового сдвига влево, в данном случае эта операция перегружена для потока вывода и используется как операция перемещения данного в поток.
Символ \n - знак перехода- вызывает перемещение курсора на экране к началу следующей строки.
Символ ; заканчивает каждый оператор, его отсутствие в конце оператора является синтаксической ошибкой (периода компиляции программы).
6-ая строка): оператор return 0;
Оператор выхода из функции, является указанием функции main() возвратить значение 0 вызывающему окружению; в данном случае это может быть компилятор или операционная система.
5. Общие сведения о языке С++
Состав языка: алфавит, синтаксис и семантика.
Алфавит набор знаков,используемых для записи программ. Это =буквы: латинские прописные и строчные, знак подчёркивания (_). =цифры: арабские 0,1,2,3,4,5,6,7,8,9 =специальные знаки: + - * / % \ ( ) [ ] { } . , : ; < > = ” ? ! | & # ~
=Пробельные символы: к ним относятся пробел, символы табуляции, символ конца строки.
Отсутствуют русские буквы. Их (а также другие знаки клавиатуры, которые не являются символами С++) допустимо использовать в строках и комментариях.
Cинтаксис набор правил построения языковых конструкций. Для записи правил часто пользуются так называемыми мета языками (язык для описания другого языка). Например Паскаль описан был с использованием формул Бэкуса - Наура. Для С++ буду использовать неформальный способ описания, при этом использоваться будут такие возможности:
Cемантика смысл языковых конструкций поясняется по русски.
Простейшие конструкции языка , которые строятся из символов алфавита,- слова, называются лексическими единицами (лексемами).Это:
(! большие и малые буквы в С различаются).
К лексемам не относится комментарий, это пояснительный текст, который начинается с // и распространяется до конца строки (однострочный комментарий), либо текст комментария заключается в символы /* и */(это может быть и многострочный комментарий).В тексте комментария могут использоваться любые символы клавиатуры, в том числе и русские буквы.
Правила записи лексических единиц.
= В записи лексической единицы не допускаются пробельные символы: 1.5 или АB, но недопустимо 1. 5 или
A B;
= Две соседние лексические единицы разделяются либо знаком операции, либо разделителем, причём в качестве разделителя могут быть использованы пробельные сиволы или комментарий.