Использование параметров является основным способом обмена информацией между вызываемой и вызывающей функциями. Параметры, перечисленные в заголовке описания функции, называются формальными, а записанные в операторе вызова функции — фактическими.
При вызове функции в первую очередь вычисляются выражения, стоящие на месте фактических параметров; затем выделяется память под формальные параметры функции в соответствии с их типом, и каждому из них присваивается значение соответствующего фактического параметра. Существует два способа передачи параметров в функцию:
- по значению
- по адресу.
Передача по значению
Синтаксис при вызове имя_ф(имя_фактичекого_параметра);
при определении и объявлении тип имя_ф(тип имя_формального_параметра);
При передаче по значению в стек заносятся копии значений фактических параметров, и операторы функции работают с этими копиями. Доступа к исходным значениям параметров у функции нет, и поэтому при изменении формальных параметров фактические параметры не изменяются..
Передача по адресу
Используется 2 синтаксиса
1. с помощью ссылки.
при вызове имя_ф(имя факт. парам);
при определении и объявлении тип имя_ф(тип &имя форм параметра);
2. с помощью указателя
при вызове имя_ф(&имя факт. парам);
при определении и объявлении тип имя_ф(тип *имя форм параметра);
При передаче по адресу в стек заносятся копии адресов фактич. параметров, а функция осуществляет доступ к ячейкам памяти по этим адресам, т.е при изменении значений формальных параметров значения фактических параметров также изменяется.
При передаче по адресу в качестве фактических параметров нельзя использовать выражения, а только имена переменных
#include <iostream.h>
void f(int , int* . int& ):
int main(){
int i = 1. j = 2, k= 3;
cout <<"i j k\n":
cout << i <<' '<< j <<' '<< k <<'\n'; //1 2 3
f(i, &j, k);
cout << i <<' '<< j <<' '<< k <<'\n'; //1 3 4
return 0;}
void f(int i. int* j. int& k){
i++; (*j)++; k++;}
Вычислить и вывести на экран в виде таблицы значение функции, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dX с точностью e. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Для расчета суммы использовать функцию, возвращающую значения заданной формулой функции, а для передачи из функции количества просуммированных членов ряда используйте передачу параметра по ссылке.
Для вычисления последующего члена ряда использовать рекуррентную формулу(пример нахождения рекуррентной формулы смотри ниже)