Использование стандартных библиотек

Дабы обеспечивать, что все отечественные читатели, трудящиеся со ветхими компиляторами, не будут иметь неприятностей с программами из данной книги, мы используем ветхий стиль включения файлов:

#include

а не заголовки новых стандартных библиотек:

#include

Таковой вариант включения обязан трудиться на всех компиляторах, однако, он имеет последовательность недочётов. Если вы предпочитаете применять новые стандартные библиотеки, в собственной программе строчок 1 строчком

#include

и добавьте строчок

using namespace std;

сразу после перечня включаемых файлов Нюансы применения пространства имен детально рассматриваются на занятии 17.

Станете вы применять стандартные заголовочные файлы либо нет, программы, приведенные в данной книге, должны трудиться без каких бы то ни было модификаций. Принципиальное отличие ветхих библиотек от новых стандартов содержится в применении библиотеки iostream (см. занятие 16). Но кроме того эти трансформации не должны повлиять на программы из данной книги ввиду их незначительности. Помимо этого, они выходят за рамки дискуссии круга тем, предусмотренных для начинающих.

Примечание: Тяжело просматривать текст программы кроме того про себя, если не знаешь, как произносить ключевые слова и специальные символы. Рекомендую просматривать первую строчок так: паунд инклуд (# — знак фунта) ай-оу-стрим-дот (либо точка) — эйч. А строчок 5 просматривайте как си-аут-‘Hello world!’.

В случае, если заметили, то примите отечественные поздравления! Вы только что ввели, скомпилировали и запустили собственную первую программу на языке C++. Само собой разумеется, она не поражает собственной грандиозностью, но практически любой опытный программист начинал конкретно с таковой программы.

Осваиваем компилятор Visual C++ 6

Все программы в данной книге проверены на компиляторе Visual C++ 6.0 и должны замечательно компилироваться, компоноваться и выполняться при применении любого компилятора Микрософт Visual C++, по крайней мере, начиная с версии 4.0 и выше, Теоретически, потому, что мы имеем дело с ANSI-совместимым текстом программ, все программы в данной книге должны компилироваться любым ANSI-совместимым компилятором любого производителя,

В совершенстве результаты исполнения программ должны совпадать с приведенными в данной книге, но на практике не всегда так происходит.

Дабы наконец приступить к делу, ознакомьтесь в этом разделе с тем, как редактировать, компилировать, компоновать и делать программу, применяя компилятор компании Микрософт. В случае, если у вас второй компилятор, на каких-то этапах вероятны кое-какие отличия. Кроме того если вы используете компилятор Микрософт Visual C++ 6.0, все равно стоит свериться с документацией и уточнить все подробности.

Построение проекта приветствия

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

1. Запустите компилятор.

2. Выберите из меню File команду New.

3. Выберите опцию Win32 Console Application (Консольное приложение для Win32), введите имя проекта, к примеру Example 1, и щелкните на кнопке ОК.

4. Выберите из меню вариант An Empty Project (Безлюдный проект) и щелкните на кнопке ОК.

5. Выберите в меню File команду New.

6. Выберите опцию C++ Source File (файл источника C++) и введите имя проекта ex1.

7. Введите текст программы, вышеприведенный.

8. Выберите в меню Build команду Build Example1.exe.

9. Убедитесь в отсутствии неточностей компиляции.

10. Надавите клавиши для исполнения программы.

11. Надавите клавишу пробела для завершения программы.

Неточности компиляции

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

В этом возможно убедиться, намерено сделав неточность в отечественной программе. Давайте удалим в программе HELLO.cpp закрывающую фигурную скобку в строчке 7. Ваша программа сейчас будет смотреться так, как продемонстрировано в листинге 1.2.

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

Hello.cpp, line 5: Compound statement missing terminating; in function main().

1: #include

2:

3: int main()

4: {

5: cout

6: return 0;

Или вы имеете возможность заметить такое сообщение об неточности:

F:\Mcp\Tycpp21d\Testing\List0101.cpp(8) : fatal error C1004: unexpected end of file found

Error executing cl.exe.

В этом сообщении содержится информация о том, где гнездится неприятность (указывается имя файла, характер проблемы и номер строки, не смотря на то, что и в пара зашифрованном виде). Обратите внимание на то, что в сообщении об неточности указывается строчок 5. Компилятор не не сомневается в вашем намерении засунуть закрывающую фигурную скобку перед либо по окончании инструкции, содержащей объект cout. Время от времени в сообщениях неприятность обрисовывается лишь в общем. Если бы компилятор имел возможность совершенно верно идентифицировать каждую неточность, то он бы тогда имел возможность сам ее и исправить.

Резюме

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

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

ответы и Вопросы

Что такое текстовый процессор?

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

В случае, если мой компилятор имеет встроенный редактор, то обязан ли я применять его?

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

Могу ли я проигнорировать дающие предупреждение сообщения, поступающие от компилятора?

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

Что свидетельствует время компиляции?

Это время работы вашего компилятора, в отличие от времени компоновки (в то время, когда трудится компоновщик) либо времени исполнения программы (в то время, когда выполняется программа). Эти термины придумали программисты, дабы коротко обозначить временные периоды, в течение которых в большинстве случаев и проявляются разные неточности.

Коллоквиум

В этом разделе предлагаются вопросы для укрепления и самоконтроля взятых знаний и приводится пара упражнений, каковые окажут помощь закрепить ваши практические навыки. Постарайтесь самостоятельно ответить на вопросы теста и выполнить задания, а позже сверьте полученные результаты с ответами в приложении Г. Не приступайте к изучению материала следующей главы, в случае, если для вас остались неясными хотя бы кое-какие из предложенных ниже вопросов.

Контрольные вопросы

1. В чем отличие между компилятором и интерпретатором?

2. Как происходит компиляция исходного кода программы?

3. В чем состоит назначение компоновщика?

4. Какова простая последовательность действий в цикле разработки?

Упражнения

1. Просмотрите следующую программу и постарайтесь осознать, что она делает, не запуская ее на исполнение.

1: #include

2: int main()

3: {

4: int x = 5;

5: int у = 7;

6: cout

7: cout

8: cout

9: return 0;

10: }

2. Введите программу из упражнения 1, а после этого скомпилируйте и запустите ее. Что она делает? Так ли вы все это предполагали?

3. Введите следующую программу и скомпилируйте ее. Какие конкретно сообщения об неточностях вы взяли?

1: include

2: int main()

3: {

4: cout

5: return 0;

6: }

4. Исправьте неточность в программе из упражнения 3, а после этого перекомпилируйте, скомпонуйте и выполните ее. Что делает эта программа?

Сутки 2-й. Составные части программы на языке C++

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

• Из каких частей состоят программы на языке C++

• Как эти части взаимодействуют между собой

• Что такое функция и каково ее назначение

Несложная программа на языке C++

Кроме того простенькая программа HELLO.CPP, приведенная на занятии 1, имеет несколько элементов, каковые воображают для нас интерес. В этом разделе упомянутая программа рассматривается более детально. В листинге 2.1 для удобства дискуссии приведена уникальная версия файла HELLO.CPP.

Листинг 2.1. Демонстрация частей программы C++ на примере программы HELLO. CPP

1: #include

2:

3: int main()

4: {

5: cout

6: return 0;

7: }

Итог: Hello World!

АНАЛИЗ: В строке 1 выполняется включение файла iostream.h в текущий файл. Первым в программе стоит знак #, что является сигналом для препроцессора. При каждом запуске компилятора запускается и препроцессор. Он просматривает исходный текст программы, находит строки, каковые начинаются с знака фунта (#), и трудится с этими строчками перед тем, как начнется компиляция программы. Подробнее работа препроцессора рассматривается на занятии 21.

Include — это команда препроцессору, которую возможно расшифровать следующим образом: За именем команды направляться имя файла. Необходимо отыскать данный файл и засунуть его содержимое прямо в это место программы. Угловые скобки, в каковые заключено имя файла, означают, что данный файл необходимо искать во всех папках, отведенных для хранения аналогичных файлов. В случае, если ваш компилятор настроен корректно, то угловые скобки укажут препроцессору на то, что файл iostream.h направляться искать в папке, содержащей все файлы с расширением .h, предназначенные для вашего компилятора. Файл iostream.h (input-output-stream — поток ввода-вывода) употребляется объектом cout, что обслуживает процесс вывода данных на экран. По окончании исполнения строчка 1 файл iostream.h будет включен в эту программу, так, как если бы вы собственноручно ввели ко мне его содержимое, Препроцессор запускается перед компилятором и делает все строки, начинающиеся с знака (#), подготавливая код программы к компиляции.

Главный код программы начинается в строчке 3 с вызова функции main(). Любая программа на языке C++ содержит функцию main(). Функция — это блок программы, что делает одно либо пара действий. В большинстве случаев функции вызываются вторыми функциями, но main() — особенная функция: она вызывается машинально при запуске программы.

Функция main(), подобно всем вторым функциям, обязана заявить тип возвращаемого значения. В программе HELLO.CPP функция main() возвращает значение типа int (от слова integer — целый), а это значит, что по окончании работы эта функция возвратит ОС целочисленное значение. В этом случае будет возвращено целое значение 0, как продемонстрировано в строчке 6. Возвращение значения в ОС не столь принципиально важно, и в неспециализированном-то это значение самой совокупностью никак не употребляется, но стандарт языка C++ требует, дабы функция main() была заявлена по всем правилам (как продемонстрировано в этом листинге).

Примечание:Кое-какие компиляторы разрешают заявить функцию main() так, дабы она возвращала значение типа void. Этого больше нельзя делать в C++, исходя из этого вам направляться избавляться от ветхих привычек. Разрешите функции main() возвращать значения типа int и для этого поместите в последней строчке данной функции выражение return 0;.

Примечание:В некоторых операционных совокупностях предусмотрена возможность проверки значения, возвращаемого программой. Комфортно возвращать значение 0 как флаг обычного завершения функции.

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

Вся функциональность отечественной несложной программы заключена в строчке 5. Объект cout употребляется для вывода сообщений на экран. Об объектах отправится обращение на занятии 6, а объект cout и близкий ему объект cin будут детально рассмотрены на занятии 16. Эти два объекта, cin и cout, употребляются в языке C++ для организации соответственно ввода данных (к примеру, с клавиатуры) и их вывода (к примеру, на экран).

Вот как употребляется объект cout: вводим слово cout, за которым ставим оператор перенаправления выходного потока

Строчок текста — это комплект печатаемых знаков.

Два последних знака текстовой строки (\n) означают, что по окончании слов Hello world! необходимо выполнить переход на новую строчок. Данный особый код детально разъясняется при рассмотрении объекта cout на занятии 17. Функция main() оканчивается в строчке 7.

Коротко об объекте cout

На занятии 16 вы определите, как применять объект cout для вывода данных на экран. А до тех пор пока, не вдаваясь в подробности применения объекта cout, скажем, что для вывода значения на экран необходимо ввести слово cout, а за ним оператор вывода (

Листинг 2.2. Применение обьекта cout

1: // Листинг 2.2. Применение объекта cout

2: #include

3: int main()

4: {

5: cout

6: cout

7: cout

8: cout

9: endl;

10: cout

11: cout

12: cout

13: cout

14: cout

15: endl;

16: cout

17: cout

18: return 0;

19: }

За знаком вывода укажите выводимые эти. Применение объекта cout продемонстрировано в листинге 2.2. Введите текст данной программы в точности так, как написано, за исключением одного: вместо имени Jesse Liberty подставьте собственные имя и фамилию, лучше латинскими буквами.

Итог:

Hello there.

Here is 5: 5

The manipulator endl writes а new line to the screen.

Here is a very big number: 70000

Here is the sum of 8 and 5: 13

Here’s a fraction: 0.625

And a very very big number: 4.9e+07

Don’t forget to replace Jesse Liberty with your name…

Jesse Liberty is a C++ programmer!

Примечание: Кое-какие компиляторы требуют, дабы математические операции при применения по окончании объекта cout заключались в круглые скобки. В этом случае строчок 11 было нужно бы поменять следующим образом:

11: cout

В строке 2 по команде #include препроцессор вставляет содержимое файла iostream.h в исходный текст программы. Включать файл iostream.h нужно, в случае, если в программе употребляется объект cout и связанные с ним функции-члены.

В строке 5 демонстрируется несложный вариант применения объекта cout: вывод строчка знаков. Знак \n — это особый знак форматирования, что показывает объекту cout на необходимость вывода на экран знака новой строки (он произносится слэш-эн либо легко разрыв строчка).

В строке 6 объекту cout передаются три значения, и каждое из них отделяется оператором вывода. Первое значение является строкой Here is 5: . Обратите внимание на наличие пробела по окончании двоеточия: пробел есть частью текстовой строчка. После этого объекту cout посредством оператора вывода передается значение 5, а за ним — знак разрыва строчка (данный знак в любой момент должен быть заключен в двойные либо в одинарные кавычки). При исполнении этого выражения на экране покажется строчок

Here is 5: 5

Потому, что по окончании первого значения нет знака разрыва строчка, следующее значение выводится сходу за прошлым. Данный процесс именуется конкатенацией двух значений.

В строке 7 на экран выводится информационное сообщение, по окончании чего употребляется оператор endl. Данный оператор кроме этого выводит на экран знак разрыва строчка. (Второе назначение оператора endl рассматриваются на занятии 16.)

Примечание: Оператор endl расшифровывается как end line (финиш строчка) и читается как направляться-эл, а не энд-один (время от времени букву l принимают за единицу).

В строке 10 употребляется еще один знак форматирования — \t, что вставляет знак табуляции, применяемый в большинстве случаев для выравнивания выводимой информации (строчка 10-13). Строчок 10 демонстрирует возможность вывода значений типа long int. В строке 11 продемонстрировано, что объект cout может выводить итог математической операции. Объекту cout передается не значение, а целое математическое выражение 8+5, но на экран выводится число 13.

В строке 12 объект cout выводит итог второй математической операции — 5/8. Идентификатор (float) показывает объекту cout, что итог обязан выводиться как дробное число. В строке 14 объекту cout передается выражение 7000 * 7000, а идентификатор (double) устанавливает вывод результата в экспоненциальном представлении. Применение идентификаторов double и float для установки типов значений рассматривается на занятии 3.

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

Комментарии

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

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

Виды комментариев

В языке C++ употребляется два вида комментариев: с двойным слешем (//) и сочетанием слеша и звездочки (/*). Комментарий с двойным слешем (его именуют комментарием в стиле C++) велит компилятору проигнорировать все, что следует за этими знаками вплоть до конца текущей строки.

Комментарий со слешем и звездочкой (его именуют комментарием в стиле С) велит компилятору проигнорировать все, что следует за знаками (/*) до того момента, пока не встретится знак завершения комментария: звездочка и слеш (*/). Каждой открывающей паре знаков /* обязана соответствовать закрывающая пара знаков */.

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

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

Применение комментариев

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

Исходя из собственного опыта, могу заявить, что такие комментарии не всегда целесообразны. Комментарии в заголовке программы весьма скоро устаревают, потому, что фактически никто их не обновляет при обновлении текста программы. Функции должны иметь такие имена, дабы у вас не оставалось ни капли сомнения в том, что они делают, в другом случае имя функции необходимо поменять. Для чего применять тщетные и труднопроизносимые имена, дабы позже раскрывать их суть посредством комментариев?

Но, одно второму не помеха. оптимальнее применять понятные имена и дополнительно вносить краткие разъяснения посредством комментариев.

Листинг 2.3 демонстрирует применение комментариев, обосновывая, что они не воздействуют на ее результаты и выполнение программы.

Листинг 2.3. Демонстрация комментариев на примере программы HELLO.CPP

1: #include

2:

3: int main() 4: {

5: /* это комментарий,

6: что длится до тех пор, пока не

7: встретится знак финиша комментария в виде слэша и звёздочки */

8: cout

9: // Данный комментарий оканчивается в конце строчка

10: cout

11:

12: // по окончании двойного слеша может не быть никакого текста,

13: /* как, но, и между этими знаками */

14: return 0;

15: }

Резултат:

Hello world!

That comment ended!

Комментарии в строчках 5—7 абсолютно игнорируются компилятором, как и комментарии в строчках 9, 12 и 13. Комментарий в строчке 9 завершается в конце данной строки, но для завершения комментариев, начавшихся в строчках 5 и 13, требуется знак окончания комментария (*/).

Напоследок предупреждение: осмотрительнее с комментариями!

В комментариях, разъясняющих очевидные места, проку мало. Но они смогут кроме того вводить в заблуждение, в случае, если при трансформации текста программы вы забудете их скорректировать. Но очевидность — понятие относительное. То, что разумеется для одного человека, возможно неясно второму. В любой момент старайтесь разумно комментировать собственные действия помните обновлять комментарии при обновлении программы.

И последнее, комментарии должны разъяснять, не что это за операторы, а для чего они тут употребляются.

Функции

Вы уже познакомились с функцией main(), действительно, это необыкновенная, уникальная функция. Дабы приносить пользу, функция должна быть позвана на протяжении сеанса работы программы. Функция main() вызывается не программой, а ОС.

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

Имеется красивая аналогия для работы программы с функцией. К примеру, в случае, если на протяжении рисования у вас ломается карандаш, вы прекращаете рисовать и затачиваете его. Затем вы возвращаетесь к тому месту рисунка, где вышел из строя карандаш. В то время, когда программа испытывает недостаток в исполнении некоей сервисной операции, вызывается функция, важная за исполнение данной операции, по окончании чего программа продолжает собственную работу с того места, где была позвана функция. Эта мысль демонстрируется в листинге 2.4.

Листинг 2.4. Пример вызова функции

1: #include

3: // Функция Demonstration Function

4: // выводит на экран информативное сообщение

5: void DemonstrationFunction()

6: {

7: cout

8: }

10: // Функция main выводит сообщение, после этого

11: // приводит к функции DemonstrationFunction и

12: // выводит на экран второе сообщение.

13: int main()

14: {

15: cout

16: DemonstrationFunction();

17: cout

18: return 0;

19: }

Итог:

In main

In DemonstrationFunction

Back in main

В строчках 5—8 определяется функция DemonstrationFunction(). Она выводит на экран сообщение и возвращает управление программе.

Функция main() начинается в строчке 13, и в строчке 15 выводится на экран сообщение, уведомляющее о том, что на данный момент управление программой находится в функции main(). По окончании вывода этого сообщения в строчке 16 вызывается функция DemonstrationFunction(). В следствии этого вызова выполняются команды, содержащиеся в функции DemonstrationFunction(). В этом случае вся функция складывается из одной команды, содержащейся в строчке 7, которая выводит второе сообщение. По завершении исполнения функции DemonstrationFunction() (строчок 8) управление программой возвращается в том направлении, откуда эта функция была позвана. В этом случае исполнение программы длится со строки 17, в которой функция main() выводит на экран последнее сообщение.

Применение функций

Функции возвращают или некое настоящее значение, или значение типа void, т.е. ничего не возвращают. Функцию, которая складывает два целых числа и возвращает значение суммы, направляться выяснить как возвращающую целочисленное значение. Функции, которая лишь выводит сообщение, возвращать нечего, исходя из этого для нее задается тип возврата void.

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

int Sum(int а, int b)

Параметр — это объявление типа данных значения, передаваемого в функцию. Настоящее значение, передаваемое при вызове функции, именуется доводом. Многие программисты применяют эти два понятия как синонимы. Другие вычисляют смешение этих терминов показателем непрофессионализма. Быть может, это и без того, но в данной книге эти термины взаимозаменяемы.

Тело функции начинается открывающей фигурной скобкой и содержит последовательность строчков (не смотря на то, что тело функции возможно кроме того нулевым), за которыми направляться закрывающая фигурная скобка. Назначение функции определяется содержащимися в ней строчками кода программы. Функция может возвращать значение в программу посредством оператора возврата (return). Данный оператор кроме этого свидетельствует выход из функции. Если не поместить в функцию оператор возврата, то по завершении функции машинально возвращается значение типа void. Значение, возвращаемое функцией, должно иметь тип, заявленный в заголовке функции.

Примечание: Более детально функции рассматриваются на занятии 5; типы значений, возвращаемых функциями, — на занятии 3. Информация, представленная на этом занятии, есть не смотря на то, что и обзорной, но в полной мере достаточной для усвоения последующего материала, потому, что функции будут употребляться фактически во всех программах, представленных в данной книге.

В листинге 2.5 демонстрируется функция, которая принимает два целочисленных параметра и возвращает целочисленное значение. Не волнуйтесь до тех пор пока по поводу синтаксиса либо изюминок работы с целыми значениями (к примеру, int x): эта тема детально раскрывается на занятии 3.

Листинг 2.5. Пример применения несложной функции (FUNC.CPP)

1: #include

2: int Add (int x, int у)

3: {

4:

5: cout

6: return (x+y);

7: }

8:

9: int main()

10: {

11: cout

12: int а, b, с;

13: cout

14: cin а;

15: cin b;

16: cout

17: c=Add(a,b);

18: cout

19: cout

20: cout

21: return 0;

22: }

Итог:

I’m in main()!

Enter two numbers: 3 5

Calling Add()

In Add(), received 3 and 5

Back in main().

c was set to 8

Exiting…

АНАЛИЗ: Функция Add() выяснена в строчке 2. Она принимает два целочисленных параметра и возвращает целочисленное значение. Сама же программа начинается в строчке 9, выводя на экран первое сообщение. После этого пользователю предлагается ввести два числа (строчка 13—15). Пользователь вводит числа, разделяя их пробелом, а после этого нажимает, клавишу . В строке 17 функция main() передает функции Add() в качестве доводов два числа, введенные пользователем.

Управление программой переходит к функции Add(), которая начинается в строчке 2. Параметры а и b выводятся на экран, а после этого складываются. Итог функции возвращается в строчке 6, и на этом функция завершает собственную работу.

Резюме

Сложность изучения для того чтобы предмета, как программирование, пребывает в следующем: большинство изучаемого вами материала сильно зависит от того, что вам еще лишь предстоит изучить. На этом занятии вы познакомились с главными составляющими частями несложной программы на языке C++. Помимо этого, вы взяли представление о цикле разработки и определили пара серьёзных терминов.

ответы и Вопросы

Какую роль делает директива #include?

Это команда для препроцессора, что машинально запускается при вызове компилятора. Эта директива помогает для введения содержимого файла, имя которого стоит по окончании директивы, в исходный текст программы.

В чем отличие между знаками комментариев // и /*?

Комментарии, выделенные двойным слешем (//), распространяются до конца строчка. Комментарии, начинающиеся слешем со звездочкой (/*), длятся до тех пор, пока не встретится знак завершения комментария (*/). Не забывайте, что кроме того финиш функции не завершит воздействие комментария, начавшегося с пары знаков (/*). Если вы забудете установить завершение комментария (*/), то получите сообщение об неточности на протяжении компиляции.

В чем отличие между хорошими и нехорошими комментариями?

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

Коллоквиум

В этом разделе предлагаются вопросы для укрепления и самоконтроля взятых знаний и приводится пара упражнений, каковые окажут помощь закрепить ваши практические навыки. Постарайтесь самостоятельно ответить на вопросы теста и выполнить задания, а позже сверьте полученные результаты с ответами в приложении Г. Не приступайте к изучению материала следующей главы, в случае, если для вас остались неясными хотя бы кое-какие из предложенных ниже вопросов.

Контрольные вопросы

1. В чем отличие между препроцессором и компилятором?

2. В чем состоит особенность функции main()?

3. Какие конкретно два типа комментариев вы понимаете и чем они отличаются друг от друга?

4. Смогут ли комментарии быть положенными?

5. Смогут ли комментарии занимать пара строчков?

Упражнения

1. Разработайте программу, которая выводит на экран сообщение I love C++.

2. Разработайте самую мелкую программу, которую возможно скомпилировать, скомпоновать и выполнить.

3. Жучки: введите эту программу и скомпилируйте ее. По какой причине она дает сбой? Как ее возможно исправить?

1: #include

2: int main()

3: {

4: cout

5: return 0;

6: }

4. Исправьте неточность в упражнении 3, по окончании чего перекомпилируйте ее, скомпонуйте и запустите на исполнение.

Рейтинг Java библиотек по частоте использования


Интересные записи:

Понравилась статья? Поделиться с друзьями: