Основы функций

Задания раздела 6.1
6.1. В чем разница между параметром и аргументом.
6.2. Укажите, какие из следующих функций ошибочны и почему. Предложите способ их исправления.
(a) int f() {
string s;
//...
return s;
}
(b) f2(int i) { /* ... */}
(c) int calc (int v1, int v1) {/* ... */}
(d) double square (double x) return x*x;
6.3. Напишите  и проверьте собственную версию функции fact().
6.4. Напишите взаимодействующую с пользователем функцию, которая запрашивает число и вычисляет его факториал. Вызовите эту функцию из функции main().
6.5. Напишите функцию, возвращающую абсолютное значение ее аргумента.

6.1

Основы функций это просто. Это кусок программы, который нужно повторить много раз при её выполнении, поэтому его выносят и ссылаются на этот кусок одним словом, попутно передавая в нее аргументы и получая из функции результаты. Просто чтобы было удобнее. Функции лучше всего смотреть на примерах, потому что писать можно долго, а на самом деле основы достаточно легкие.

6.1. В чем разница между параметром и аргументом.

Аргументы - это инициализаторы для параметров функции. Первый аргумент инициализирует первый параметр и т.д. Тип каждого аргумента должен совпадать с типом соответствующего параметра.

6.2. Укажите, какие из следующих функций ошибочны и почему. Предложите способ их исправления.
(a) int f() {
string s;
//...
return s;
}

(a) string
 f() { // возвращаю же объект типа string
string s;
//...
return s;
}

(b) f2(int i) { /* ... */}

(b) int f2(int i) { /* ... */} // объект какого типа возвращаю?

(c) int calc (int v1, int v1) {/* ... */}

(c) int calc (int v1, int v2) {/* ... */} /* параметры не могут иметь одинаковые имена */

(d) double square (double x) return x*x;

(d) double square (double x) { return x*x; // Фигурные скобки нужны

6.3. Напишите  и проверьте собственную версию функции fact().

#include <iostream>
int fact (int val) {
int f=1;
for (int i=1; val>=i;++i)
f*=i;
return f;
}
int main()
{
int factorial=fact(5);
std::cout << factorial;
return(0);
}

6.4. Напишите взаимодействующую с пользователем функцию, которая запрашивает число и вычисляет его факториал. Вызовите эту функцию из функции main().

#include <iostream>
int fact (int val) {
int f=1;
for (int i=1; val>=i;++i)
f*=i;
return f;
}
int main()
{
std::cout << "Enter a number for factorial calculation: " << std::endl;
int factnumb;
std::cin >> factnumb;
int factorial=fact(factnumb);
std::cout << factorial;
return(0);
}

6.5. Напишите функцию, возвращающую абсолютное значение ее аргумента.

Пришлось погуглить конечно немного, ибо требуют сделать задание а про то как его сделать в книге ни слова. Наверное опять сэкономили чернил.

#include <iostream>
#include <cmath>
int absol (int val) {
return std::abs(val);
}
int main()
{
std::cout << "Enter a number: " << std::endl;
int absnumb;
std::cin >> absnumb;
int absolute=absol(absnumb);
std::cout << absolute;
return(0);
}

Функция возвращает значение по-модулю. Что и есть абсолютным значением аргумента.

Добавить комментарий