Вопрос задан 28.10.2023 в 03:35. Предмет Информатика. Спрашивает Кучков Гриша.

C++ (Срочно) Завдання 1: Напиши функцію max, яка приймає два аргументи типу int і повертає більше

з них Завдання 2: Напиши функцію concatenate, яка приймає два аргументи типу std::string і повертає результат їх об'єднання. Завдання 3: Напиши функцію sum, яка може бути викликана з різною кількістю аргументів типу double і повертає їх суму.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Бескоровайный Кирилл.

Ответ:

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` используются для инициализации и завершения списка аргументов.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Завдання 1:

Для розв'язання першого завдання потрібно написати функцію `max`, що приймає два аргументи типу `int` і повертає більше з них. Ось код функції:

```cpp
int max(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
```

Ця функція порівнює два числа `a` і `b` і повертає більше з них. Якщо `a` більше `b`, то повертається `a`, інакше повертається `b`.

Завдання 2:

Для розв'язання другого завдання потрібно написати функцію `concatenate`, що приймає два аргументи типу `std::string` і повертає результат їх об'єднання. Ось код функції:

```cpp
std::string concatenate(std::string str1, std::string str2) {
return str1 + str2;
}
```

Ця функція просто об'єднує дві рядки `str1` і `str2`, використовуючи оператор `+` для конкатенації рядків. Результат повертається як новий об'єкт типу `std::string`.

Завдання 3:

Для розв'язання третього завдання потрібно написати функцію `sum`, яка може бути викликана з різною кількістю аргументів типу `double` і повертає їх суму. Варіант реалізації цієї функції залежить від того, як баго аргументів може бути передано. Нижче наведено приклади різних реалізацій функції `sum`, що можуть бути використані, залежно від конкретного випадку.

Варіант 1: Використання змінної типу `va_list` і макросів `va_start`, `va_arg` та `va_end` для обробки різної кількості аргументів. Ось код функції:

```cpp
#include

double sum(int count, ...) {
double sum = 0;
va_list args;
va_start(args, count);

for (int i = 0; i < count; i++) {
sum += va_arg(args, double);
}

va_end(args);

return sum;
}
```

Ця функція приймає перший аргумент `count`, що вказує на кількість наступних аргументів. Потім вона використовує змінну типу `va_list` для отримання доступу до решти аргументів. За допомогою макросу `va_start` функція ініціалізує `args` для обробки аргументів. У циклі за допомогою макросу `va_arg` функція отримує кожен наступний аргумент і додає його до змінної `sum`. На кінці функція викликає макрос `va_end` для очищення `args`.

Варіант 2: Використання аргументу зі списком ініціалізаторів для обробки різної кількості аргументів. Ось код функції:

```cpp
double sum(std::initializer_list args) {
double sum = 0;

for (double arg : args) {
sum += arg;
}

return sum;
}
```

Ця функція приймає аргумент `args` типу `std::initializer_list`, що представляє список ініціалізаторів аргументів. Функція просто проходиться по цьому списку за допомогою циклу `for` і додає кожен аргумент до змінної `sum`.

Обидва варіанти функції `sum` представлені, щоб ви могли вибрати той, який найбільше відповідає вашим потребам.
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос