Программирование на С++ с погружением: практические задания и примеры кода
Программирование на C++ с Погружением: Практическое Руководство для Начинающих
Эта книга представляет собой практическое руководство по языкам программирования C и C++, предназначенное для студентов, изучающих прикладную математику, а также для всех, кто интересуется основами программирования. Книга охватывает широкий спектр тем, от базовых концепций до более продвинутых аспектов, предлагая читателям как теоретические знания, так и практические навыки разработки программного обеспечения.
Основы и Арифметические Операции
В начале книги рассматриваются основные арифметические операции, включая инкремент, декремент и условную операцию. Особое внимание уделяется приоритетам операций и преобразованию типов данных. Читатели знакомятся с различными типами данных, операторами и системами счисления, что является фундаментом для дальнейшего изучения. Практические задания включают написание программ, выполняющих арифметические операции над целыми и вещественными числами, а также анализ работы операций инкремента и декремента в префиксной и постфиксной формах.
Условные Операторы и Циклы
Следующий раздел посвящен условным операторам if...else
и переключателю switch
, которые используются для управления ходом выполнения программы. Рассматриваются как двухальтернативные, так и многоальтернативные условные операторы. Читатели учатся использовать эти операторы для создания программ, реагирующих на различные условия. Далее следует изучение операторов цикла, включая for
, while
и do...while
. Рассматриваются операторы continue
и break
, позволяющие управлять потоком выполнения внутри циклов.
Указатели, Массивы и Функции
Ключевым разделом является изучение указателей и адресов. Объясняется концепция указателей, их связь с адресами памяти и способы работы с ними. Рассматриваются указатели на переменные, указатели на указатели, а также арифметические операции с указателями. Следующий блок посвящен массивам, как одномерным, так и многомерным. Изучаются способы доступа к элементам массива, а также работа с массивами через указатели. Особое внимание уделяется строкам, представленным в виде массивов символов. Далее, рассматриваются функции, включая локальные и глобальные переменные, автоматические и статические переменные, а также передачу параметров в функции по значению и по ссылке.
Структуры, Динамические Массивы и Дополнительные Задания
Книга знакомит читателей со структурами, позволяющими объединять данные разных типов в один объект. Рассматриваются вложенные структуры, инициализация компонент структур, передача структур в качестве параметров функций и работа с указателями на структуры. Затем следует изучение динамических массивов, которые позволяют выделять память во время выполнения программы. Рассматриваются способы создания и использования динамических массивов, а также освобождения выделенной памяти. В заключительной части книги представлены задания для самостоятельной работы по всему курсу, включающие разработку программ для решения различных задач, таких как вычисление факториала, работа с матрицами, сортировка данных и решение задач, связанных с математикой и алгоритмами. Дополнительные вопросы и упражнения для самоконтроля помогают закрепить полученные знания.
Текст подготовлен языковой моделью и может содержать неточности.
ПРОГРАММИРОВАНИЕ НА С++ С ПОГРУЖЕНИЕМ: ПРАКТИЧЕСКИЕ ЗАДАНИЯ И ПРИМЕРЫ КОДА Практикум Москва Инфра-М 2016
УДК 004.42 ББК 32.973.26-018 П78 Рецензенты: Л.И. Прудникова, к.ф.-м.н., доцент, Дальневосточный федеральный университет; Н.В. Рябченко, старший преподаватель, Владивостокское отделение Российской таможенной академии П78 Программирование на С++ с погружением: практические задания и примеры кода / Авт.-сост. Е.А. Воронцова; ИНФРА-М, 2016.. – 80 с. ISBN online 978-5-16-105159-7 Практикум предназначен для изучения языков программирования С и С++ на практических занятиях. В пособии рассмотрены следующие средства языков программирования С и С++: основные типы данных, операторы, арифметические операции, массивы, указатели, функции, структуры, ссылки, динамические структуры данных. По каждой теме приведены примеры программ и задания для самостоятельной работы. Для подготовки бакалавров, обучающихся по направлению подготовки 231300.62 «Прикладная математика» (профиль «Математические методы в экономике»), а также может использоваться студентами других специальностей при изучении информатики или программирования. Может быть полезным для преподавателей вузов при проведении лабораторных работ по информатике и программированию. УДК 004.42 ББК 32.973.26-018 ISBN online 978-5-16-105159-7
Содержание Предисловие...........................................................................................4 1. Арифметические операции. Инкремент и декремент. Приоритеты. Условная операция......................................................5 Контрольная работа по теме «Арифметические операции. Системы счисления»...............................................................................................9 2. Условный оператор if…else и переключатель switch...............11 3. Операторы цикла............................................................................15 4. Указатели и адреса..........................................................................19 5. Массивы............................................................................................25 6. Функции............................................................................................33 7. Структуры........................................................................................39 8. Функции, указатели, ссылки........................................................47 9. Динамические массивы.................................................................54 10. Задания для самостоятельной работы по всему курсу..........60 11. Дополнительные задания для самоконтроля..........................73 Список литературы............................................................................78
Предисловие Предлагаемый практикум содержит учебные материалы и практические задания по базовым двухсеместровым курсам «Программные и аппаратные средства информатики» и «Программирование для ЭВМ». Данные курсы читаются в Дальневосточном федеральном университете для студентов специальности 231300.62 «Прикладная математика» (профиль «Математические методы в экономике»). Цель данного курса – получение студентами теоретических знаний и приобретение навыков разработки программного обеспечения для современных ЭВМ на языке программирования С++. В данном пособии содержится значительное количество практических заданий, вопросов и примеров программного кода с подробным разбором, которые помогут студентам, профессионально изучающим программирование, овладеть необходимыми знаниями, умениями и навыками.
1. Арифметические операции. Инкремент и декремент. Приоритеты. Условная операция Помимо основных арифметических операций, в языке С++ определено некоторое количество специфических операций. К ним относятся операция инкремент (++) ‒ увеличение значения на 1, операция декремент (‒‒) ‒ уменьшение значения на 1, операция sizeof ‒ операция вычисления размера в байтах. Следует обратить внимание на операцию деления (/) ‒ в зависимости от типов операндов она обозначает либо обычное деление, либо деление нацело. По количеству операндов, которые необходимы для выполнения операции, все операции можно разделить на три типа: унарные, бинарные и тернарные. К унарным операциям относятся, например, инкремент, декремент и арифметическое отрицание. К бинарным ‒ умножение, сложение, деление, вычитание, операции отношения, операции сдвига (<< и >>), остаток от деления (%), ряд логических и поразрядных операций. Единственная тернарная операция (т.е., требующая для своего выполнения трех операндов) в С++ ‒ условная операция ? :, являющаяся в каком-то смысле аналогом условного оператора if...else. 1.1. Операции присваивания, инкремента и декремента Составьте программу, которая: а) выполняет арифметические операции над двумя целыми числами и выводит их результат (применить сокращенные арифметические операции, инкремент и декремент).
б) выполняет аналогичные действия с двумя вещественными числами двойной точности. Задания 1. Опишите назначение операций типа знак =, ++ и --. 2. Введите: а) вместо целого числа ‒ вещественное число; б) вместо вещественное числа ‒ целое; Каковы будут результаты и почему? 3. Какую роль выполняет заголовочный файл iostream? Указать потоки ввода-вывода. 1.2. Свойства операций инкремента и декремента в постфиксной и префиксной формах Пример программы. #include <iostream> using namespace std; int main() { int i, k = 10; i = 5 * (k++); cout << " i = " << i << endl << '\n'; k--; i = 5 * ++k; cout << " i = " << i << "\n" << endl; return 0; }
Задания 1. Опишите отличие и сходство '\n', "\n" и endl. 2. Изменится ли результат, если убрать скобки в (k++) или, наоборот, взять ++k в скобки? 3. Попробуйте вставить пробел в k--: а) написать k-- в виде k --; б) написать k-- в виде k- -. Что при этом произойдет? 4. Укажите различие приоритетов префиксной и постфиксной форм инкремента и декремента? Продемонстрируйте их в программе. 1.3. Приоритеты арифметических операций. Преобразование типа выражения из целого в вещественный Для произвольных целых чисел i, j, x и y вычислите выражения: -10 +++ j % i-- (-10 +++i +++j) / (3 * j + 3) x / y + y / x +i * x + j * y (i +++++x) / (--j---y) Задания 1. Объясните порядок выполнения операций. Что делает операция % ? 2. Дополните программу операцией преобразования типа для вывода точного результата. 3. Вычислите вручную значения данных выражений и сравните с полученным в программе результатом.
1.4. Условная операция, операции отношения (сравнения) и логические бинарные операции #include <iostream> using namespace std; void main () { int i = 5; int j = 10; cout << ((i < j) ? "TRUE" : "FALSE") << endl; cout << ((i > 0 || j < 100) ? "TRUE" : "FALSE") << endl; cout << ((i > 0 && j <= 10) ? "TRUE" : "FALSE") << endl; (i == 5 && i == j) ? cout << "TRUE" << endl : cout << "FALSE" << endl; int k = (i == 5 || i != j) ? (i > 0 || j < 100) : ((i > 0 && j <= 10); cout << (k ? "TRUE" : "FALSE") << endl; } Задания 1. Уточните текст и объясните смысл программы. 2. Укажите, где в этой программе условные операции, операции отношения и логические бинарные операции.
Контрольная работа по теме «Арифметические операции. Системы счисления» Приведены образцы заданий для проведения контрольной работы по теме. 1. Запишите результат работы данной программы: #include <iostream> using namespace std; void main() { int i = 5, j = 10; double x; x = 1. / 5 * j++; x--; cout << " x = " << x << endl << "\n"; x = --i % 2 + 30./2; cout << " x = " << x << "\n" << endl; } 2. Запишите результат работы данной программы: #include <iostream> using namespace std; void main() { int i, j, k; k = 0; j = 1; i = j + 1;
cout << (k ? "Yes!" : "No(") << endl; (i == 2 && j == 1) ? cout << "Yes!" : cout << "No(" << endl; } 3. а) Перевести из десятичной системы в двоичную число (101,7). б) (101,01)2 = ( ? )10. в) (1111)2 = ( ? )8.