Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОАиП.docx
Скачиваний:
127
Добавлен:
09.03.2016
Размер:
139.71 Кб
Скачать

12.Строковый и символьный ввод-вывод информации.

Ввод-вывод данных в языке C++ осуществляется либо с помощью функций ввода-вывода в стили C, либо с использованием библиотеки классов C++.Преимущество объектов C++ в том, что они легче в использовании, поэтому предлагаю рассмотреть именно их.

Описание объектов для управления вводом-выводом содержится в файле iostream.h. При подключении этого файла с помощью директивы #include <iostream.h> в программе автоматически создаются виртуальные каналы связи cin для ввода с клавиатуры и cout для вывода на экран, а также операции помещения в поток << и чтения из потока >>.

С помощью объекта cin и операции >> можно присвоить значение любой переменной. Например, если переменная x описана как целочисленная, то команда cin>>x; означает, что в переменную x будет записано некое целое число, введенное с клавиатуры. Если необходимо ввести несколько переменных, то следует написать cin>>x>>y>>z;.

Объект cout и операция << позволяет вывести на экран значение любой переменной или текст. Текст необходимо заключать в двойные кавычки. Записьcout<<x; означает вывод на экран значения переменной x.

13.Структура программы на языке С++

Программа С++ состоит из одной или нескольких функций. Обязательным является присутствие функции main(), которой передается управление при запуске программы.

Упрощенная структура программы имеет вид:

<Директивы препроцессора>

<Описание типов пользователя>

<Прототипы функций>

<Описание глобальных переменных>

<Тела функций>

Так выглядит структура простейшей программы на языке C, так же как и C++:

#include <iostream> /* заголовок */ int main(void) /* главная функция: начало программы */ {/* открывающая скобка в начале программы */ оператор программы; оператор программы; ... оператор программы; }/* закрывающая скобка в конце программы */ Строка #include <iostream>является заголовком. В заголовках содержится информация для компилятора об общих требованиях программы. В данном случае компилятору указывается, что нужно включить информацию, содержащуюся в файле iostream.. Любая программа на языке Си состоит из одной или более функций, причём ровно одна из них обязательно должна называться "main" ("главная"). Программа всегда начинает выполняться с главной функции main. Идущая следом открывающая фигурная скобка{отмечает начало последовательности операторов, образующих тело функции. Закрывающая фигурная скобка}отмечает конец последовательности операторов, образующих тело функции. На этой скобке выполнение функции завершается.

14.Пространство имен. Ключевое слово using как директива.

Предположим, у нас есть проект, который разрабатывают несколько человек. Если у двух из них имеется глобальная переменная с одним и тем же именем, будет конфликт имен при сборке проекта. Раньше, до изобретения пространств имен, эта проблема решалась следующим образом: каждому из разработчиков назначался свой префикс, и все его имена должны были начинаться с него. Теперь каждый из разработчиков может иметь свое пространство имен, в котором содержатся все его глобальные константы и переменные, классы, функции. И если у двух из них есть переменная с одним и тем же именем, конфликта не возникает, поскольку эти переменные лежат в разных пространствах имен. Определение пространства имен выглядит следующим образом:

namespace имя { объявления и определения глобальных переменных, функций и классов }

В одном и том же файле может встречаться несколько определений одного и того же пространства имен — все они объединяются вместе. После определения пространства имен, для ссылки на любое содержащееся в нем имя, нужно поставить перед ним имя пространства имен и операцию разрешения области видимости. Например, если у нас есть пространство имен myspace и в нем функция myfunc, то для вызова этой функции в качестве имени надо написать myspace::myfunc. Если мне нужно конкретное имя из определенного пространства имен, и оно часто используется в моей части про- граммы, то, чтобы не писать имя пространства имен, можно воспользоваться конструкцией using имя_пространства_имен::нужное_имя;. После этого указанным именем можно пользоваться непосредственно, без указания пространства имен. Если мне нужны многие имена из какого-либо пространства, можно аналогичным образом импортировать это пространство имен целиком, написав using namespace имя;. Так что фраза using namespace std; означает ничто иное, как импорт всего пространства имен std. Это пространство имен содержит все имена из стандартной библиотеки языка C++. Можно не только импортировать отдельные имена или пространства имен в свою часть программы, но также и в другие пространства имен. Для этого директива using должна встречаться в теле определения того пространства имен, куда осуществляется импорт. Таким образом можно создавать новые пространства имен из уже существующих, включая в новые пространства имен нужные имена из разных пространств имен.

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

Директива using namespace std; означает, что все определенные ниже имена в программе будут относиться к пространству имен с именем std. Различные элементы программы описаны с использованием пространства имен std, например переменная cout. Если не использовать директиву using, то к этим элементам программы придется каждый раз добавлять имя std:

std::cout << «У каждой эпохи свой язык»\n;

Для того что бы не дописывать std:: каждый раз перед именем переменной, используется директива using.