Литмир - Электронная Библиотека
A
A

Цель задания — закрепить ваши навыки программирования и помочь вам приобрести опыт работы со средами программирования. Как правило, задание представляет собой последовательность модификаций какой-нибудь простой программы, которая постепенно “вырастает” из совершенно тривиального кода в нечто полезное и реальное.

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

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

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

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

Итак, вот первое задание.

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, а не языка С++. Для того чтобы упростить разработку программ, мы поместили определение функции
keep_window_open()
в файл 
std_lib_facilities.h.
Как найти файл 
std_lib_facilities.h
? Если вы этого не знаете, спросите преподавателя. Если знаете, то загрузите его с сайта
www.stroustrup.com/Programming.
А что, если у вас нет учителя и доступа к веб? В этом (и только в этом) случае замените директиву 
#include
строками

#include<iostream>

#include<string>

#include<vector>

#include<algorithm>

#include<cmath>

using namespace std;

inline void keep_window_open() { char ch; cin>>ch; }

В этих строках стандартная библиотека используется непосредственно. Подробности этого кода изложены в главе 5 и разделе 8.7.

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

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

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

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

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

1. Для чего предназначена программа “Hello, World!”?

2. Назовите четыре части функции.

3. Назовите функцию, которая должна существовать в каждой программе, написанной на языке С++.

4. Для чего предназначена строка

return 0
 в программе “Hello,World!”?

5. Для чего предназначен компилятор?

6. Для чего предназначена директива 

#include
?

7. Что означает расширение

.h
после имени файла в языке C++?

8. Что делает редактор связей?

9. В чем заключается различие между исходным и объектным файлом?

10. Что такое интегрированная среда разработки и для чего она предназначена?

11. Если вам все понятно, то зачем нужны упражнения?

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

Термины

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

Программирование. Принципы и практика использования C++ Исправленное издание - _016.png

Упражнения

Мы приводим задания отдельно от упражнений; прежде чем приступать к упражнениям, необходимо выполнить все задания. Тем самым вы сэкономите время.

30
{"b":"847443","o":1}