Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп
Компилятор не руководствуется здравым смыслом (он — не человек) и очень придирчив к деталям. Поскольку здравый смысл ему не ведом, он не пытается угадать, что на самом деле вы имели в виду, написав фрагмент программы, который выглядит абсолютно правильным, но не соответствует стандарту языка С++. Если бы он угадывал смысл программы и результат оказался бы неожиданным, то вы провели бы очень много времени, пытаясь понять, почему программа не делает то, что вы хотели. После того как все сказано и сделано, компилятор предохраняет нас от множества проблем. Он предотвращает намного больше проблем, чем создает сам.
Итак, помните: компилятор — ваш друг; возможно, лучший друг.
2.4. Редактирование связей
Программа обычно состоит из нескольких отдельных частей, которые часто разрабатываются разными людьми. Например, программа “Hello, World!” состоит из части, которую написали вы, и частей стандартной библиотеки языка С++. Эти отдельные части (иногда называемые единицами трансляции) должны быть скомпилированы, а файлы с результирующим объектным кодом должны быть связаны вместе, образуя выполняемый файл. Программа, связывающая эти части в одно целое, называется (вполне ожидаемо) редактором связей.
Заметьте, что объектные и выполняемые коды не переносятся из одной системы в другую. Например, когда вы компилируете программу под управлением системы Windows, то получите объектный код именно для системы Windows, а не Linux.
Библиотека — это просто некий код (обычно написанный другими), который можно использовать с помощью директивы #include. Объявление — это инструкция программы, указывающая, как можно использовать фрагмент кода; объявления будут подробно описаны позднее (см., например, раздел 4.5.2).
Ошибки, обнаруженные компилятором, называются ошибками этапа компиляции, ошибки, обнаруженные редактором связи, называются ошибками этапа редактирования связей, а ошибки, не найденные на этих этапах, называются ошибками при выполнении программы, или логическими ошибками. Как правило, ошибки этапа компиляции легче понять и исправить, чем ошибки этапа редактирования связей. В свою очередь, ошибки этапа компиляции легче обнаружить и исправить, чем логические. Ошибки и способы их обработки более детально обсуждаются в главе 5.
2.5. Среды программирования
Для программирования необходим язык программирования. Кроме того, для преобразования исходного кода в объектный нужен компилятор, а для редактирования связей нужен редактор связей. Кроме того, для ввода и редактирования исходного текста в компьютер также необходима отдельная программа. Эти инструменты, крайне необходимые для разработки программы, образуют среду разработки программ.
Если вы работаете с командной строкой, как многие профессиональные программисты, то должны самостоятельно решать проблемы, связанные с компилированием и редактированием связей. Если же вы используете среды IDE (интерактивные или интегрированные среды разработки), которые также весьма популярны среди профессиональных программистов, то достаточно щелкнуть на соответствующей кнопке. Описание компиляции и редактирования связей описано в приложении В.
Интегрированные среды разработки включают в себя редактор текстов, позволяющий, например, выделять разным цветом комментарии, ключевые слова и другие части исходного кода программы, а также помогающий отладить, скомпилировать и выполнить программу. Отладка — это поиск и исправление ошибок в программе (по ходу изложения мы еще не раз вспомним о ней).
В этой книге в качестве интегрированной среды программирования используется программа Visual C++ компании Microsoft. Если мы говорим просто “компилятор” или ссылаемся на какую-то часть интегрированной среды разработки, то это значит, что мы имеем в виду часть программы Visual C++. Однако вы можете использовать любую другую систему, обеспечивающую современную и стандартную реализацию языка С++. Все, что мы напишем, при очень небольшой модификации, остается справедливым для всех реализаций языка С++, и код будет работать на любом компьютере. В нашей работе мы обычно используем несколько разных реализаций.
Задание
До сих пор мы говорили о программировании, коде и инструментах (например, о компиляторах). Теперь нам необходимо выполнить программу. Это очень важный момент в изложении и в обучении программированию вообще. Именно с этого начинается усвоение практического опыта и овладение хорошим стилем программирования. Упражнения в этой главе предназначены для того, чтобы вы освоились с вашей интегрированной средой программирования. Запустив программу “Hello, World!” на выполнение, вы сделаете первый и главный шаг как программист.
Цель задания — закрепить ваши навыки программирования и помочь вам приобрести опыт работы со средами программирования. Как правило, задание представляет собой последовательность модификаций какой-нибудь простой программы, которая постепенно “вырастает” из совершенно тривиального кода в нечто полезное и реальное.
Для выявления вашей инициативы и изобретательности предлагаем набор традиционных упражнений. В противоположность им задания не требуют особой изобретательности. Как правило, для их выполнения важно последовательно выполнять шаг за шагом, каждый из которых должен быть простым (и даже тривиальным). Пожалуйста, не умничайте и не пропускайте этапы, поскольку это лишь тормозит работу или сбивает с толку.
Вам может показаться, что вы уже все поняли, прочитав книгу или прослушав лекцию преподавателя, но для выработки навыков необходимы повторение и практика. Этим программирование напоминает спорт, музыку, танцы и любое другое занятие, требующее упорных тренировок и репетиций. Представьте себе музыканта, который репетирует от случая к случаю. Можно себе представить, как он играет. Постоянная практика — а для профессионала это означает непрерывную работу на протяжении всей жизни — это единственный способ развития и поддержания профессиональных навыков.
Итак, никогда не пропускайте заданий, как бы вам этого ни хотелось; они играют важную роль в процессе обучения. Просто начинайте с первого шага и продолжайте, постоянно перепроверяя себя.
Не беспокойтесь, если не поймете все нюансы используемого синтаксиса, и не стесняйтесь просить помощи у преподавателей или друзей. Работайте, выполняйте все задания и большинство упражнений, и со временем все прояснится.
Итак, вот первое задание.
1. Откройте приложение В и выполните все шаги, необходимые для настройки проекта. Создайте пустой консольный проект на С++ под названием hello_world.
2. Введите в файл hello_world.cpp приведенные ниже строки, сохраните его в рабочем каталоге и включите в проект hello_world.
#include "std_lib_facilities.h"
int main() // Программы на C++ начинаются с выполнения функции main
{
cout << "Hello, World!n"; // вывод строки"Hello, World!"
keep_window_open(); // ожидание ввода символа
return 0;
}
Вызов функции keep_window_open() нужен при работе под управлением некоторых версий операционной системы Windows для того, чтобы окно не закрылось прежде, чем вы прочитаете строку вывода. Это особенность вывода системы Windows, а не языка С++. Для того чтобы упростить разработку программ, мы поместили определение функции
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


