Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы программирования: язык C++

Покупка
Артикул: 799101.01.99
Доступ онлайн
500 ₽
В корзину
Практикум включает в себя набор лабораторных и самостоятельных работ и предназначен для наработки и закрепления навыков элементарной алгоритмизации и написания программ на языке C++. Предлагаются задачи на организацию вычислений, логические операции, работу с потоками ввода-вывода, одномерными и двумерными массивами, си-строками, конечными автоматами, а также задачи на управление памятью. Для студентов бакалавриата, обучающихся по направлениям «Механика и математическое моделирование» и «Прикладная математика».
Кувшинов, Д. Р. Основы программирования : язык C++ : практикум / Д. Р. Кувшинов, С. И. Осипов ; под общ. ред. Д. Р. Кувшинова ; Министерство науки и высшего образования Российской Федерации, Уральский федеральный университет. - Екатеринбург : Изд-во Уральского ун-та, 2021. - 170 с. - ISBN 978-5-7996-3256-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/1936356 (дата обращения: 17.08.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ 
РОССИЙСКОЙ ФЕДЕРАЦИИ
УРАЛЬСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ 
ИМЕНИ ПЕРВОГО ПРЕЗИДЕНТА РОССИИ Б. Н. ЕЛЬЦИНА
Рекомендовано методическим советом 
Уральского федерального университета в качестве практикума 
для студентов, обучающихся по направлениям подготовки 
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. Сделать это можно с помощью оператора >> («направление ввода обратно 
направлению вывода»):


Доступ онлайн
500 ₽
В корзину