КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Что делают инструкции-выражения?} // 27 { // 14 Void main (void) // 13 // 12 Вывести на экран эту сумму и 5 Ввести два числа, вычислить их сумму, 4 Единственное действие этой программы - 3 Состоящую из одной функции main 2 Файл first.cpp содержит программу, 1 приветствие "BYE!" 6 7 */ // ============================================= 8 #include <iostream> // 9 #include <conio.h> // 10 using namespace std; // 11 int nA; // 15 float fltB; // 16 cout <<"Input numbers:\t" // 17 <<"\nfirst int\t"; // 18 cin>>nA; // 19 cout<<"second float\t"; // 20 cin>>fltB; // 21 float fltSumma; // 22 fltSumma = nA + fltB; // 23 cout<<"summa = " << fltSumma; // 24 cout<<endl<<"\tBYE!"; // ПОКА 25 getch(); // 26 Рассмотрим приведенный текст. Программа содержит функцию main. Она состоит:
Тело функции состоит из инструкций. Каждая инструкция заканчивается точкой с запятой. Инструкций в теле функции всего 11, из них 3 – это инструкции определения объектов nA (строка 15), fltB (строка 16), fltS umma (строка 22). Вот эти пять объектов: "Input numbers: \t " " \n first int \t " "second float \t " "summa = " " \t BYE!" Обратите внимание, что почти в каждой из этих строк присутствуют escape-символы (здесь, для того чтобы их разглядеть, они выделены жирным курсивом).
Стандартные потоковые объекты С++ (cin, cout) и потоковые операторы >>, <<.
Кроме объектов na, flt b, fltSumma и константных строк в тексте появились имена cout и cin. Объекты cout и cin – это имена стандартных абстрактных объектов, тип их называется «поток», с их помощью организуется ввод и вывод в С++. Объект cout совместно с оператором >> организует вывод информации из памяти на экран. Объект cin совместно с оператором << организует ввод информации с клавиатуры в память. сout и cin -это имена объектов, но если мы пытаемся воспользоваться этими объектами, где их определения, где и когда они создаются? Описание объектов в хэдерных файлах.h. Область видимости имен – оператор using namespace std; Определение стандартных объектов cout и cin присоединяется в строке 9. В этой строке записана директива #include специальной программы – препроцессора.
Директива препроцессора содержит указания препроцессору о том, какие действия необходимо этой программе выполнить. Директивы препроцессора всегда начинаются с символа # Директива #include вставляет перед текстом функции main текст файла iostream. Обратите внимание, что эта директива не является элементом языка С++, это элемент другого языка, языка программы препроцессор. Директива, не является инструкцией языка С++, а потому не имеет заканчивающей её точки с запятой. В тексте файла iostream находятся определения объектов cout и cin, эти определения и присоединяются к тексту программы. Имя файла iostream записано в треугольных скобках < >, что является указанием системе, где, в каких папках искать файл и соответствующую ему библиотеку. Этот поиск делается автоматически на этапе компоновки. Объект endl определен также в файле iostream, он работает так, как и escape-символ ‘\n‘ - переводит курсор при выводе на новую строку экрана. Обратите внимание на инструкцию using namespace языка С++ в строке 19: using namespace std; Эта инструкция определяет область имен, где необходимо искать определения используемых в программе имен объектов. Дело в том, что сейчас существует очень много различных библиотек, в которых могут появиться одинаковые имена. Инструкция using namespace определяет, что поиск нужно осуществлять в области имен стандартной библиотеки std. Последнее имя, которое используется в этой программе – имя getch. Это имя объекта типа функция. Как система и мы узнаем, что это имя функции, а не какого-то объекта любого другого типа? Этим признаком является то, что сразу после этого имени появляется оператор вызова функции – круглые скобки () (смотрите таблицу сводки операторов С++, приоритет 2). Этот объект, как и любой объект должен быть определен в функции, если им нужно воспользоваться. Описания стандартных функций находятся в.h файлах. Описание этой функции getch находится в файле conio.h, который подключается директивой препроцессора #include в строке 10. А определения этого стандартного объекта-функции (его код) находится в стандартной библиотеке (LIB). Само определение этого объекта- функции будет найдено автоматически в стандартной библиотеке и подключено к нашему коду на этапе компоновки. Файлы, в которых находятся описания или определения стандартных объектов называются хэдерные файлы (заголовочные файлы), и могут иметь или не иметь расширение.h В функции main 7 инструкций-выражений. Инструкции-выражения делают то, что делают операторы, которые в них используются.
Инструкции-выражения cout << "Input numbers:\t" << "\nfirst int\t"; cout << "second float\t"; cout << "summa = " << fltSumma; cout << "\n\tBYE!"; используя оператор <<, совместно с потоковым объектом cout выводят на экран информацию из области памяти строковых констант и объекта fltSumma. Обратите внимание, что оператор << может использоваться каскадом (то есть оператор << используется несколько раз с одним объектом cout).
Инструкции-выражения cin>>nA; cin>>fltB; используя оператор >> совместно с потоковым объектом cin копируют информацию, введенную пользователем с клавиатуры, в область объектов nA и fltB. Заметим, что оператор >> тоже может использоваться каскадом (оператор >> используется несколько раз с одним объектом cin). Например две инструкции могли быть записаны как одна: Cin >> nA >>fltB;
Инструкция-выражение fltSumma = nA + fltB; с помощью оператора + вычисляет сумму значений объектов nA иfltB и результат этого суммирования с помощью оператора = (присвоить) копирует в объект fltSumma.
Инструкция-выражение getch(); с помощью оператора () (оператор вызова функции) вызывает функцию с именем getch, и ничего больше эта инструкция – выражение не делает!!!!!!
Еще раз напоминаем, что инструкция-выражение делает только то, что делают над объектами операторы, записанные в выражении. Другой вопрос: а что делает вызванная стандартная функция, зачем она вызвана в этом месте? Каждая функция делает то, что задает ее алгоритм. Эта функция – функция getch ожидает, пока не будет введен какой либо символ. В этой программе вызов функции getch в инструкции-выражение сделан для того, чтобы с ее помощью организовать задержку. Программа не будет выполнять следующие действия, пока не будет введен пользователем любой символ. Программа не будет заканчивать свою работу по закрывающей тело функции main скобке }, пока пользователь не рассмотрит результат работы программы на экране и а после этого не введет символ, в нашей программе не важно какой.
Дата добавления: 2015-06-29; Просмотров: 340; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |