- •3.8. Упражнения 49
- •Введение
- •1. Базовые элементы
- •1.1. Комментарии
- •1.2. Функция «main»
- •1.3. Идентификаторы и пространства имен
- •1.4. Типы
- •1.5. Переменные
- •1.7. Константы
- •1.6. Преобразование типов
- •1.8. Потоковый ввод – вывод
- •1.9. Операции
- •1.9.1. Арифметические операции
- •1.9.2. Поразрядные операции
- •1.9.3. Условный оператор
- •1.9.4. Операции отношения
- •1.9.5. Логические операции
- •1.10. Стандартные математические функции
- •1.11. Упражнения
- •2. Базовые конструкции
- •2.1 Ветвление
- •2.1.1. Конструкция «if – else»
- •2.1.2. Конструкция «switch»
- •2.2. Циклы
- •2.2.1. Цикл «for»
- •2.2.2. Цикл «while»
- •2.2.3. Цикл «do – while»
- •2.2.4. Операторы циклов
- •2.2.5. Вложенность
- •2.3. Упражнения
- •2.3.1. Ветвления
- •2.3.2. Циклы
- •2.3.3. Вложенность
- •3. Указатели. Массивы. Структуры
- •3.1. Указатели
- •3.2. Массивы
- •3.2.1. Статические массивы
- •3.2.2. Динамические массивы
- •3.4. Ссылки
- •3.5. Структуры
- •3.6. Объединение
- •3.7. Переопределение типов
- •3.8. Упражнения
- •3.8.1. Статические и динамические массивы
- •3.8.2. Многомерные массивы
- •3.8.3. Строки
- •4. Функции
- •4.1. Простые функции
- •4.2. Рекурсия
- •4.3. Указатели и ссылки
- •4.3.1. Передаваемые параметры
- •4.3.2. Возвращаемые значения
- •4.3.3. Ссылки и структуры в функциях
- •4.3.4. Указатели и массивы в функциях
- •4.3.5. Указатели и ссылки на функцию
- •4.4. Шаблоны функций
- •4.5. Упражнения
- •4.5.1. Простые функции
- •4.5.2. Параметры – ссылки и параметры — указатели
- •5. Стандартные классы
- •5.1. Класс «pair»
- •5.2. Класс «complex»
- •5.3. Класс «string»
- •5.4. Контейнеры. Алгоритмы. Итераторы
- •5.5. Класс «vector»
- •5.6. Упражнения
- •5.6.1. Класс «string»
- •5.6.2. Класс «vector»
- •6. Файловый ввод – вывод
- •6.1. Операции
- •6.2. Методы
- •6.3. Флаги
- •6.4. Двоичный режим
- •6.5. Упражнения
- •Ллитература
4.5. Упражнения
Все функции, выполняющие нижеследующие задания должны быть выполнимы для различных встроенных числовых типов.
4.5.1. Простые функции
Разработать функцию, вычисляющую площадь прямоугольника
Разработать функцию, вычисляющую корни квадратного уравнения.
Разработать функцию, вычисляющую количество размещений без повторений.
Разработать функцию, определяющую, является ли число – степенью числа два.
Разработать функцию, вычисляющую площадь треугольника.
Разработать функцию, вычисляющую количество перестановок.
Разработать функцию, определяющую все делители числа.
Разработать функцию, вычисляющую площадь трапеции.
Разработать функцию, вычисляющую длину окружности.
Разработать функцию, вычисляющую количество сочетаний с повторениями.
Разработать функцию, определяющую наибольший общий делитель двух чисел.
Разработать функцию, определяющую является ли число простым.
Разработать функцию, вычисляющую количество сочетаний без повторений.
Разработать функцию, вычисляющую длину отрезка по координатам его точек.
Разработать функцию, выполняющую преобразование числа к числу в системе счисления с задаваемым значением базиса.
Разработать функцию, вычисляющую площадь круга.
Разработать функцию, определяющую координатные четверти, в которых лежит заданная коэффициентами гипербола.
Разработать функцию, определяющую наименьшее общее кратное двух чисел.
Разработать функцию, определяющую координатные четверти, в которых лежит заданная коэффициентами парабола.
Разработать функцию, вычисляющую количество размещений с повторениями.
4.5.2. Параметры – ссылки и параметры — указатели
Разработать функции, выполняющие задания из раздела «3.8.1. Статические и динамические массивы».
Разработать функции, выполняющие задания из раздела «3.8.2. Многомерные массивы».
5. Стандартные классы
5.1. Класс «pair»
Данный класс представляет из себя пару значений. Он определен в заголовочном файле «utility».
Доступ к значениям осуществляется через «first» и «second». Оба элемента пары могут иметь любой тип данных. При создании пары возможно сразу указать первоначальные значения. Создание пары возможно также посредством функции «make_pair()», которой в качестве параметров должны быть переданы значения элементов.
Над парами определены операции сравнения, выполняющиеся поэлементно. Результат данных операций в большей степени зависит от первых элементов сравниваемых пар, чем от вторых. Такое поведение связано с реализацией сравнения при помощи логических операций «&&» и «||». При их использовании, в случае значения выражения, стоящего до знака операции и равного «false» или «true» соответственно, возвращается соответствующее значение, а вычисление выражения после знака операции не происходит. То есть в ряде случаев вторые элементы пар не сравниваются вовсе.
Листинг 5.1. Класс pair.
#include <iostream>
#include <utility>
#include <string>
using namespace std;
int main (void)
{
//создание двух пар с заданными значениями и без задания;
pair<int, string> showPair1(1, "Ivanov"), showPair2;
//создане пары функцией make_pair();
showPair2 = make_pair(2, "Petrov");
if (showPair1 != showPair2) {
//создание пары копирующим конструктором;
pair<int, string> showPair3(showPair1);
cout << showPair3.first << ". " << showPair3.second << endl;
}
cout << (showPair1 > showPair2 ? showPair1 : showPair2).second << endl;
return 0;
}
