Практикум ргппу 2017 3 Аннотация
Скачать 3.14 Mb.
|
Ширева С. Н. Основы программирования на языке C/C++ Практикум РГППУ 2017 3 Аннотация Практикум предназначен для студентов, изучающих язык C или C++ на практических занятиях или самостоятельно. Переменные, операторы присваивания, развилки и циклов, структурные типы данных (массивы и строки), реализация подпрограмм рассматриваются на примерах, сопровождаемых необходимыми теоретическими сведениями. Обсуждается использование функций в C и в C++. По каждой теме приведено по 12 вариантов заданий. 1 Содержание Введение Знакомство со средой .............................................................................. 3 Лабораторная 1 Создание проекта ...................................................................... 3 Тема № 1 Линейный вычислительный процесс ................................................... 31 Лабораторная № 2 Линейный вычислительный процесс ........................... 32 Контрольные вопросы .................................................................................... 34 Индивидуальные задания ............................................................................... 35 Тема 2 Разветвляющийся вычислительный процесс ........................................... 38 Лабораторная работа № 3 ................................................................................... 38 Условный оператор ............................................................................................. 38 Теория ............................................................................................................... 38 Примеры ........................................................................................................... 42 Контрольные вопросы .................................................................................... 46 Индивидуальные задания ............................................................................... 47 Оператор выбора ................................................................................................. 49 Теория ............................................................................................................... 49 Примеры ........................................................................................................... 51 Контрольные вопросы .................................................................................... 55 Индивидуальные задания ............................................................................... 55 Тема № 3. Циклический вычислительный процесс ............................................. 57 Лабораторная работа № 4 ................................................................................... 57 Циклы с параметром ........................................................................................... 57 Теория ............................................................................................................... 57 Примеры ........................................................................................................... 59 Контрольные вопросы .................................................................................... 68 Индивидуальные задания ............................................................................... 69 Цикл с условием .................................................................................................. 70 Теория ............................................................................................................... 70 Примеры ........................................................................................................... 71 Контрольные вопросы. ................................................................................... 75 Индивидуальные задания ............................................................................... 76 Вычисления с точностью* .................................................................................. 78 Теория ............................................................................................................... 78 Примеры ........................................................................................................... 79 Контрольные вопросы .................................................................................... 81 Индивидуальные задания ............................................................................... 82 Тема 4 Вспомогательные алгоритмы .................................................................... 83 Лабораторная 5 .................................................................................................... 85 Функции ............................................................................................................... 85 Теория ............................................................................................................... 85 Примеры ........................................................................................................... 87 Контрольные вопросы .................................................................................... 92 Индивидуальные задания ............................................................................... 93 Процедуры (void-функции) ................................................................................ 94 2 Теория ............................................................................................................... 94 Примеры ........................................................................................................... 96 Контрольные вопросы .................................................................................. 100 Индивидуальные задания ............................................................................. 100 Рекурсия* ........................................................................................................... 101 Теория ............................................................................................................. 101 Примеры ......................................................................................................... 105 Контрольные вопросы .................................................................................. 107 Индивидуальные задания ............................................................................. 108 Тема 6. Алгоритмы работы со структурированными типами данных ............ 110 Лабораторная работа 6 ...................................................................................... 110 Стандартные алгоритмы работы с одномерными массивами ...................... 110 Теория ............................................................................................................. 110 Примеры ......................................................................................................... 115 Контрольные вопросы .................................................................................. 121 Индивидуальные задания ............................................................................. 122 Формирование массива ..................................................................................... 124 Теория ............................................................................................................. 124 Примеры ......................................................................................................... 124 Контрольные вопросы .................................................................................. 125 Индивидуальные задания ............................................................................. 125 Двумерный массив ............................................................................................ 126 Теория ............................................................................................................. 126 Примеры ......................................................................................................... 129 Контрольные вопросы .................................................................................. 132 Индивидуальные задания ............................................................................. 132 Лабораторная работа № 7 Строки в C++ ........................................................ 133 Теория ............................................................................................................. 133 Примеры ......................................................................................................... 141 Контрольные вопросы .................................................................................. 145 Индивидуальные задания ............................................................................. 145 Литература ............................................................................................................. 147 3 Введение Знакомство со средой Независимо от того, какого вида программа разрабатывается, в Visual Studio необходимо создать Решение (Solution) и в нем Проект (Project). Создание пустого (без проектов) решения не имеет смысла, поэтому решение будет автоматически создано при создании нового проекта. Прежде чем описать последовательность действий, необходимых для создания и выполнения простой программы, остановимся на соотношении понятий «проект» и «решение». В одном решении могут одновременно входить проекты программ разных видов. Текст (код) программы может быть обработан средой Visual Studio, когда он помещен в проект, а проект включен в решение. Часто в одно решение помещают взаимосвязанные проекты, например, использующие одно ми те же библиотеки. В процессе изучения основ языка C++ мы будем создавать консольные приложения. Консольное приложение — это программа, отображающая текстовую информацию и позволяющая вводить символы с клавиатуры. Консольное приложение позволит не отвлекаться на изучение среды разработки, а полностью сосредоточить свое внимание на изучении синтаксиса языка. Лабораторная 1 Создание проекта Для создания проекта на начальной странице надо выбрать пункт Создать проект. Создать консольное приложение можно двумя способами. Первый способ заключается в создании пустого проекта и написании кода с нуля. 4 Второй способ позволяет создать консольное приложение с помощью мастера. В этом случае мастер создаст все необходимое файлы и заполнит их шаблонами кода. Создание пустого проекта В открывшемся окне выделяем пункт Консольное приложение Win32. Вводим название проекта (например, "Лабораторная 1") в поле Имя. Введенное название автоматически копируется в поле Имя решения. В поле Расположение указываем путь к каталогу, в котором будет сохранен проект, и устанавливаем флажок Создать каталог для решения. 5 Нажимаем кнопку ОК. В результате откроется окно Мастер приложении Win32. Нажимаем кнопку Далее. 6 В группе переключателей Тип приложения выбираем Консольное приложение. Снимаем флажок Предварительно скомпилированный заголовок и устанавливаем флажок Пустой проект. Нажимаем кнопку Готово. В результате проект будет создан и открыт в главном окне. 7 Создать пустой проект можно гораздо быстрее. Для этого в окне Создать проект вместо пункта Консольное приложение Win32 следует выделить пункт 1. Пустой проект. В этом случае проект будет создан сразу после нажатия кнопки ОК. После создания пустого проекта необходимо добавить основной файл. Для этого в окне Обозреватель решений щелкаем правой кнопкой мыши на пункте Файлы исходного кода и из контекстного меню выбираем пункт Добавить|Создать элемент. В результате откроется окно Добавление нового элемента. Выделяем пункт Файл C++ (.срр), вводим название файла (например, "Задание 1") и нажимаем кнопку Добавить. В результате файл будет добавлен в папку проекта и его название 8 отобразится в окне Обозреватель решений, а сам файл будет открыт на отдельной вкладке. При изучении языков программирования принято начинать с программы, выводящей надпись "Hello, world!" в окно консоли. Не будем нарушать традицию и продемонстрируем, как это выглядит на C++ В первой строке программы с помощью директивы include подключается файл iostream, в котором объявлен объект cout, предназначенный для вывода данных в окно консоли. Далее создается функция main(), внутри которой расположены все остальные инструкции, ограниченные фигурными скобками. Именно функция с названием main() будет автоматически вызываться при запуске программы. Перед названием функции указывается тип возвращаемого значения. Ключевое слово int означает, что функция возвращает целое число. Возвращаемое значение указывается после ключевого слова return в самом конце функции main() . Число 0 в данном случае означает нормальное завершение программы. Если указано другое число, то это свидетельствует о некорректном завершении программы. Согласно стандарту, внутри функции main () ключевое слово return можно не указывать. В этом случае компилятор должен самостоятельно вставить инструкцию, возвращающую значение 0. Вывод строки "Hello, world!" осуществляется с помощью объекта cout. Чтобы исключить конфликт имен все стандартные идентификаторы в языке C++ 9 определены в пространстве имен std. Поэтому перед именем объекта cout необходимо указать, название пространства имен. Между названием пространства имен и названием объекта указываются два двоеточия (std::cout). И, наконец, константа endl (сокращение от "end line") вставляет символ перевода строки. Теперь попробуем скомпилировать и запустить программу. Для этого добавляем содержимое листинга в созданный файл, а затем из меню Отладка_выбираем_пункт_Построить_решение'>Отладка выбираем пункт Построить решение или нажимаем клавишу Данный результат свидетельствует об успешном создании файла helloworld.exe в конфигурации Debug (отладка) в папке D:\МоиДокументы\Visual Studio 2010 \Проекты C++\Лабораторная 1\Debug\. Если при наборе были допущены ошибки, то их описание будет отображено в окне Вывод. В качестве примера уберем точку с запятой после константы endl и попробуем произвести компиляцию. Результат будет выглядеть так: Фраза "успешно: 0, с ошибками: 1" говорит о наличии ошибки в программе. Описание самой ошибки приводится строкой ранее. Указывается название файла, номер ошибки ("С2143"), а также подробное описание ошибки, в данном случае на русском языке. После исправления ошибки необходимо заново скомпилировать проект. Чтобы посмотреть результат выполнения программы нажимаем комбинацию клавиш 10 информация. Как сделать, чтобы окно консоли сразу не закрывалось, мы рассмотрим далее. Задание 1 Создать постой проект как это указано выше. Набрать приведенный код. Обратите внимание, что при наборе кода редактор выводит списки команд для облегчения набора. Рассмотрите отличие запуска программы через комбинацию клавиш Следует заметить, что при нажатии клавиши Примечание Если в меню Отладка нет пункта Запуск без отладки, то предварительно в меню Сервис необходимо выбрать пункт Параметры | Расширенные параметры Создание консольного приложения Чтобы сразу создать консольное приложение после запуска C++ на Начальной странице выбираем пункт Создать проект. В открывшемся окне выделяем пункт Консольное приложение Win32. Вводим название проекта (например, "welcome") в поле Имя Введенное название автоматически копируется в поле Имя решения. В поле Расположение указываем путь к каталогу, в котором будет сохранен проект, и устанавливаем флажок Создать каталог для решения. Нажимаем кнопку ОК. В результате откроется окно Мастер приложений Win32. Нажимаем кнопку Далее. В группе переключателей Тип приложения выбираем Консольное приложение. Устанавливаем флажок Предварительно скомпилированный заголовок Флажок Пустой проект должен быть снят. Нажимаем кнопку Готово. Добавление нового проекта Создадим консольное приложение в нашем решении «Лабораторная 1». Для этого Щелкаем правой кнопкой мыши по решению Лабораторная 1 в Обозревателе решений и выбираем команды Добавить|Создать проект. 11 В открывшемся окне выделяем пункт Консольное приложение Win32. Вводим название проекта (например, "Задание 2") в поле Имя и щелкаем по кнопке OK. В результате откроется окно Мастер приложений Win32. Нажимаем кнопку Далее. В группе переключателей Тип приложения выбираем Консольное приложение. Устанавливаем флажок Предварительно скомпилированный |