Основы программирования: язык C++
Покупка
Тематика:
Программирование на C и C++
Издательство:
Издательство Уральского университета
Год издания: 2021
Кол-во страниц: 170
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7996-3256-4
Артикул: 799101.01.99
Практикум включает в себя набор лабораторных и самостоятельных работ и предназначен для наработки и закрепления навыков элементарной алгоритмизации и написания программ на языке C++. Предлагаются задачи на организацию вычислений, логические операции, работу с потоками ввода-вывода, одномерными и двумерными массивами, си-строками, конечными автоматами, а также задачи на управление памятью. Для студентов бакалавриата, обучающихся по направлениям «Механика и математическое моделирование» и «Прикладная математика».
Тематика:
ББК:
УДК:
ОКСО:
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ УРАЛЬСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ ИМЕНИ ПЕРВОГО ПРЕЗИДЕНТА РОССИИ Б. Н. ЕЛЬЦИНА Рекомендовано методическим советом Уральского федерального университета в качестве практикума для студентов, обучающихся по направлениям подготовки 01.03.03 «Механика и математическое моделирование», 01.03.04 «Прикладная математика» Д. Р. Кувшинов, С. И. Осипов ОСНОВЫ ПРОГРАММИРОВАНИЯ Язык Практикум Екатеринбург Издательство Уральского университета
УДК 004.43(076.5) ББК 32.973.26-018.1я73 К88 Под общей редакцией Д. Р. Кувшинова Рецензенты: B. С. Тарасян, кандидат физико-математических наук, доцент, заведующий кафедрой «Мехатроника» (Уральский государственный университет путей сообщения); C. В. Булычева, кандидат физико-математических наук, доцент (Магнитогорский государственный технический университет) Кувшинов, Д. Р. K88 Основы программирования : язык C++ : практикум / Д. Р. Кувшинов, С. И. Осипов ; под общ. ред. Д. Р. Кувшинова ; Министерство науки и высшего образования Российской Федерации, Уральский федеральный университет. — Екатеринбург : Изд-во Урал. унта, 2021. — 170 с. : ил. — 30 экз. — ISBN 978-5-7996-3256-4. — Текст : непосредственный. ISBN 978-5-7996-3256-4 Практикум включает в себя набор лабораторных и самостоятельных работ и предназначен для наработки и закрепления навыков элементарной алгоритмизации и написания программ на языке C ++. Предлагаются задачи на организацию вычислений, логические операции, работу с потоками ввода-вывода, одномерными и двумерными массивами, си-строками, конечными автоматами, а также задачи на управление памятью. Для студентов бакалавриата, обучающихся по направлениям «Механика и математическое моделирование» и «Прикладная математика». УДК 004.43(076.5) ББК 32.973.26-018.1я73 ISBN 978-5-7996-3256-4 © Уральский федеральный университет, 2021
Оглавление Предисловие 5 1. Значения и переменные 6 2. Функции 13 2.1. П ри м еры ......................................................................... 14 2.2. Варианты заданий......................................................... 15 3. Командная строка и элементарная алгоритмизация 18 4. Аккумуляция последовательности значений 23 4.1. Примеры ......................................................................... 24 4.2. Варианты заданий ......................................................... 24 5. Табуляция заданной функции 26 5.1. П ри м еры ......................................................................... 27 5.2. Варианты заданий......................................................... 27 6. Логические вычисления 31 6.1. П ри м еры ......................................................................... 32 6.2. Варианты заданий......................................................... 34 7. Простая обработка массива 38 7.1. П ри м еры ......................................................................... 39 7.2. Варианты заданий.........................................................
8. Процедурное программирование 42 9. Элементарные вычисления 52 9.1. П ри м еры ...................................................................... 53 9.2. Варианты заданий...................................................... 60 10. Массивы и двоичные файлы 63 11. Линейные алгоритмы I 74 11.1. П ри м еры ...................................................................... 75 11.2. Варианты заданий...................................................... 85 12. Случайный лабиринт 88 13. Матрицы 93 13.1. П ри м еры ...................................................................... 94 13.2. Варианты заданий........................................................ 103 14. Линейные алгоритмы II 111 14.1. П ри м еры ........................................................................ 112 14.2. Варианты заданий........................................................ 119 15. Разные задачи I 125 16. Конечные автоматы 130 16.1. П ри м еры ........................................................................ 130 16.2. Варианты заданий........................................................ 136 17. Разные задачи II 141 18. Си-строки 146 18.1. П ри м еры ........................................................................ 147 18.2. Варианты заданий........................................................ 19. Введение в численные методы
Предисловие Материал книги рассчитан на длину семестра в 18 недель. Предполагается использование стобалльной системы. Каждая из работ помечена либо как лабораторная, либо как самостоятельная. Лабораторная работа выполняется в учебном классе и не разделена на варианты. Самостоятельная работа состоит из набора вариантов и может выполняться в классе и назначаться в качестве домашнего задания. Рекомендуется оценивать работу студента на лабораторной работе (кроме первой) в 0-3 балла (отсутствовал, присутствовал, участвовал, выполнил). Итого, лабораторные работы суммарно дают 0-24 балла. Оставшиеся 0-76 баллов распределяются между самостоятельными работами. Предлагаются следующие максимальные оценки в баллах за самостоятельные работы: Работа Оценка Работа Оценка 2 4 11 8 4 3 13 9 5 4 14 9 6 5 16 10 7 6 18 9
Значения и переменные Цели лабораторной работы • Освоить сборку консольного приложения в среде разработки на языке программирования C++. • Изучить базовые средства текстового ввода-вывода, предоставляемые стандартной библиотекой C++. • Изучить работу операторов C++, выполняющих арифметические операции над целыми числами. • Изучение цикла чтения. Оператор Операция + сложение - вычитание * умножение / деление % остаток от деления Арифметические операторы C++
Задание
1. Предполагается, что доступна некая среда разработки (IDE)
с установленным компилятором C++. Запустите ее.
2. Создайте новый (пустой) проект консольного приложения.
3. Если создан пустой проект, то он не содержит файлов исходного кода. Добавьте в него новый пустой файл исходного
кода на языке C++ (cpp-файл). Далее в данной работе все
действия производятся в этом файле.
4. Попробуйте ввести в новый файл текст
2+2
и запустить сборку проекта. Видны ли ошибки компиляции?
5. Введите следующую программу:
Пример 1.1. Простейшая программа
int main () {}
Запустить сборку и исполнение кода. Программа должна
собраться без ошибок.
6. Выполните следующую модификацию:
Пример 1.2. 2+2?
int main() { 2 + 2; }
Запустите новую программу. Выводы?
7. Выполните следующую модификацию:
Пример 1.3. Текстовый вывод
#include <iostream >
int main ( ) {
std : : cout << (2 + 2);
Здесь iostream — заголовочный файл, часть стандартной
библиотеки C++. Заголовочные файлы подключаются с помощью директивы препроцессора #include, после которой
идет имя подключаемого файла, указываемое или в «угловых скобках» (знаки «меньше» и «больше»), или в кавычках
(знак ").
Стандартные заголовочные файлы C++ не имеют расширения (iostream, но не iostream.h и не iostream.hpp).
Кавычки принято использовать, когда подключается файл
из проекта или находящийся в одной директории с подключающим его файлом исходного кода.
Угловые скобки принято использовать в том случае, когда
подключается файл из стандартной библиотеки или иной
библиотеки, путь к которой известен компилятору.
8. Выполните следующую модификацию программы.
Пример 1.4. Вывод нескольких значений
#include <iostream >
int main() {
std : : cout << "6wbyw4wgivesw" << (6*4) << "\n";
}
Что означает знак *? Что будет выведено, если заменить * на
/ (деление)? Попробуйте сначала дать ответ на этот вопрос,
а затем проверьте свой ответ экспериментом.
9. Запись \n задает символ перевода строки. Если при запуске
программы вывод осуществляется в окно консоли, которое
сразу закрывается, то можно добавить в программу (перед
закрывающей }) одну строчку:
std : : cin . ignore ();
10. Выведите значения выражений (4/6), (6/4), (4.0/6), (6.0/4).
Проанализируйте полученные результаты.
Запустите программу.
Когда оба операнда являются целыми числами, выполняется целочисленное деление. В вопросе определения
точного смысла операции в C++ основополагающее значение имеет тип операндов. При написании программ очень
важно об этом помнить.
11. Выведите
значения
выражений
(4%6),
(6%4),
( ( - 6)%4), (6% (-4)) и ( ( - 6)% (-4)). Здесь унарный минус —
оператор, выполняющий смену знака. Проанализируйте полученные результаты.
12. Теперь попробуйте ввести и запустить следующую программу.
Пример 1.5. Приветствие
#include <iostream>
int main () {
s td: : co ut << " Hello !\n";
s t d : : c i n . ignore ();
}
Программа должна вывести строку с приветствием, после
которой с новой строки ожидать ввод.
13. Часто бывает обременительно в каждом обращении к имени
из стандартной библиотеки писать префикс std :: («выбрать
имя из пространства имен std»). Чтобы этого не делать,
можно указать директиву
using namespace std ;
после которой компилятор будет искать имена, не найденные в глобальном пространстве имен, в пространстве имен
std.
Пример 1.6. Уберем префикс std::
#include <iostream>
int main () {
using namespace std ;
cout << " Hello !\n" ; cin . ignore (); 14. Для того чтобы получить какие-либо данные от пользователя (из потока ввода cin), требуется «застолбить» в памяти место для их размещения, что в C++ осуществляется путем определения переменной подходящего типа. Предположим, мы считываем два целых числа n и т . Определим две переменные: int n, m; Данная строчка требует от компилятора зарезервировать в памяти место под два значения типа int и назначить им имена n и m. Теперь при обращении по имени будет осуществляться доступ к соответствующей области памяти. Основополагающим ее свойством является возможность изменять свое состояние — переменные могут изменять свои значения. 15. Добавьте в программу определение двух целочисленных переменных n и m, как указано в предыдущем пункте. Выведите их значения на экран. Что происходит? Что должно быть выведено? 16. Переменным можно задать начальное значение (инициализировать их). Например, так: int n = 1, m = 2; Задайте начальные значения переменным в программе. Убедитесь, что они теперь выводятся на экран. 17. Наконец, благодаря тому, что у нас есть теперь зарезервированное в памяти место под два числа, мы можем запросить их у пользователя и считать из потока cin. Сделать это можно с помощью оператора >> («направление ввода обратно направлению вывода»):