КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
инструкции тела функции main} Слово void является зарезервированным словом и именем никакого типа. В заголовке этой функции void используется, чтобы указать, что функция не имеет возвращаемого значения и список ее формальных параметров пустой.
Далее следует пример программы, состоящей из одной функции. А раз функция одна, то такой функцией должна быть только функция main. Обратите внимание на цвет текста. Зарезервированные слова в редакторе пишутся синим цветом, комментарии зеленным, все остальные слова (слова, начертания которых определяет программист) и символы–операторы черные.
/* файл MyFirst.cpp содержит программу, 1 состоящую из одной функции main 2 единственное действие этой программы - 3 ввести два числа, 4 вывести на экран их сумму и 5 приветствие "BYE !" 6 7 */ //================================================= 8 #include <iostream> // 9 #include <conio.h> // 10 using namespace std; // 11 // 12 void main (void) // 13 { // 14 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<<"\n\tBYE !"; // ПОКА 25 getch(); // 26 } // 27
Рассмотрим приведенный текст. Программа содержит функцию main. Она состоит из заголовка ( строка 13 ) и тела ( строки 14 – 27 ). Тело функции состоит из инструкций. Каждая инструкция заканчивается точкой с запятой. Инструкций в теле функции всего 11, из них 3 – это инструкции определения объектов nA, fltB, fltSumma. Эти инструкции создают объекты. Напоминаем, что любой объект, имя которого встречается в программе, должен быть определен и определен всего один раз. Инструкции определения объектов легко распознать, т.к. они всегда начинаются с имен типов - здесь int и float (строки 15, 16, 22). Кроме этого в функции определены константные объекты-строки, это последовательности символов, взятые в двойные кавычки. Вот они: "Input numbers:\t", "\nfirst int\t", "second float\t", "summa = ", "\n\tBYE !". Обратите внимание, что почти в каждой из этих строк присутствуют escape-символы (здесь, для того чтобы их разглядеть, они выделены жирным курсивом). Кроме объектов a, b, summaи константных строк в тексте появились имена cout и cin. Это имена объектов, но где их определения? Объекты cout и cin – стандартные абстрактные объекты, тип их называется «поток», с их помощью организуется ввод и вывод. Описание этих объектов присоединяется в строке 9. В этой строке записана директива специальной программы – препроцессор. Директива #include вставляет перед текстом функции текст файла iostream. Обратите внимание, что эта директива не является элементом языка С++, это элемент другого языка, языка программы, которая называется препроцессор. Директива, не являясь инструкцией языка С++, не имеет заканчивающей её точки с запятой. В тексте включенного файла iostream находятся описания объектов cout и cin, эти описания и присоединяются к тексту программы. А определения этих объектов cout и cin находятся в стандартной библиотеке. Написание имени файла в треугольных скобках < > указывает системе, где, в каких папках искать файл и соответствующую ему библиотеку. Это делается автоматически.
Обратите внимание на инструкцию в строке 19: using namespace std; Эта инструкция определяет область имен, где необходимо искать определения используемых в программе имен объектов. Дело в том, что сейчас существует очень много различных библиотек, в которых могут появиться одинаковые имена. Инструкция using namespace определяет, что поиск нужно осуществлять в области имен стандартной библиотеки std.
Последнее имя, которое используется в этой программе – имя getch. Это имя объекта типа функция. По какому внешнему признаку система и мы узнаем, что это имя функции, а не какого-то объекта любого другого типа? Этим признаком является то, что сразу после этого имени появляется оператор вызова функции – круглые скобки (). Это стандартная функция, ее описание находится в файле conio.h , который подключается директивой препроцессора #include в строке 10. Само определение этого объекта функции ( последовательность команд, определяющих алгоритм выполнения функции) будет найдено автоматически в стандартной библиотеке.
В функции main 7 инструкций-выражений. Что делают инструкции-выражения? То, что делают операторы, которые в них используются!!! Обратите внимание, как внешне по разному эти инструкции выглядят. Их разнообразие бесконечно.
Инструкции-выражения cout << "Input numbers:\t" << "\nfirst int\t"; cout << "second float\t"; cout << "summa = " << fltSumma; cout << "\n\tBYE !"; используя оператор << совместно с потоковым объектом cout выводят на экран строковые константы и значение объекта summa.
Инструкции-выражения cin>>nA; cin>>fltB; используя оператор >> совместно с потоковым объектом cin копируют (вводят) в область объектов а и b значения, которые вводятся с клавиатуры.
Инструкция-выражение fSumma = nA + fB; с помощью оператора + вычисляет сумму значений объектов a иb и результат этого суммирования с помощью оператора = (присвоить) копирует в объект summa.
Инструкция-выражение getch(); с помощью оператора () (оператор вызова функции) вызывает функцию getch, и ничего более. Вопрос: а вот что делает вызванная стандартная функция? Каждая функция делает то, что определяет ее алгоритм. Эта функция ожидает, пока не будет введен какой либо символ с клавиатуры в ее буферную область памяти. В этой программе функция getch вызывается в инструкции-выражении для организации задержки (пока пользователь не введет какой-либо символ, не выполняется никаких действий со стороны программы).
|