C++ (Срочно)
Завдання 1: Напиши функцію max, яка приймає два аргументи типу int і повертає більше з них
Завдання 2: Напиши функцію concatenate, яка приймає два аргументи типу std::string і повертає результат їх об'єднання.
Завдання 3: Напиши функцію sum, яка може бути викликана з різною кількістю аргументів типу double і повертає їх суму.
Answers & Comments
Ответ:
1. Функция `max`:
```cpp
int max(int a, int b) {
return (a > b) ? a : b;
}
```
2. Функция `concatenate`:
```cpp
std::string concatenate(std::string str1, std::string str2) {
return str1 + str2;
}
```
3. Функция `sum` с использованием `std::initializer_list`:
```cpp
double sum(std::initializer_list<double> args) {
double result = 0;
for (auto arg : args) {
result += arg;
}
return result;
}
```
Пример использования:
```cpp
double s1 = sum({1.0, 2.0, 3.0}); // s1 = 6.0
double s2 = sum({4.0, 5.0}); // s2 = 9.0
```
___________________________________
Примеры решений задач на C++:
1. Функция max:
```cpp
int max(int a, int b) {
return (a > b) ? a : b;
}
```
2. Функция concatenate:
```cpp
#include <string>
std::string concatenate(std::string str1, std::string str2) {
return str1 + str2;
}
```
3. Функция sum:
```cpp
#include <cstdarg>
double sum(int count, ...) {
double result = 0;
va_list args;
va_start(args, count);
for (int i = 0; i < count; i++) {
result += va_arg(args, double);
}
va_end(args);
return result;
}
```
Эта функция использует переменное число аргументов (variadic arguments) и библиотеку `<cstdarg>`. Она принимает первым аргументом количество аргументов, а затем с помощью макроса `va_arg` получает каждый следующий аргумент из списка. Функция `va_start` и `va_end` используются для инициализации и завершения списка аргументов.