
- •Оглавление
- •Области видимости и классы памяти переменных
- •Синтаксис описания функций
- •Прототипы функций
- •Способы передачи данных
- •Передача аргументов в функцию по значению
- •Передача аргументов в функцию по ссылке
- •Передача указателей
- •Передача массивов
- •Передача указателей на функции
- •Инициализация параметров
- •Возвращаемые значения
- •Возврат ссылок: функция в левой части оператора присваивания
- •Перегрузка функций
- •Шаблон функций
- •Рекурсия
- •Void f1()
- •Void f2(int a)
- •Void f1()
- •Void f2(int b)
- •Void f1()
- •Void f2(int a)
- •Void change (double X, double y)
- •Void changeRef (double &X, double &y)
- •Void changePtr (double* X, double* y)
- •Intfrac(number, intpart, fracpart);
- •Void intfrac(float n, float& intp, float& fracp)
- •Int adder (int iarray[n]);
- •Int adder (int iarray[n])
- •Int adder (int [], int);
- •Int adder (int [], int);
- •Int adder (int *piarray, int k)
- •Void convertToUppercase (char *Ptr)
- •Void print (char *m[ ])
- •Int adder (int iarray[n][m])
- •Int adder (int [][m]);
- •Int adder (int iarray[][3])
- •Void adder (int [ ][m], int *);
- •Void adder (int (*piarray)[m], int *pipartial)
- •Void adder (int (*)[m], int *, int);
- •Void adder (int (*piarray)[m], int *pipartial, int k)
- •Int adder (int **, int, int);
- •Int adder (int **mas, int n, int m)
- •Int adder (int **, int, int);
- •Int adder (int **mas, int n, int m)
- •Int adder (int* [ ], int, int);
- •Int adder (int *mas[ ], int n, int m)
- •Int adder (int* [ ], int, int);
- •Int adder (int *mas[ ], int n, int m)
- •Invert();
- •Invert(a);
- •Int& setx()
- •Int& rmax(int n, int d[])
- •Void fun()
- •Int func (int a, int b);
- •Int func(int a, int b)
- •Void example (int,...);
- •Void example(int arg1, ...)
- •Void example (int,...);
- •Void example(int arg1, ...)
- •Void printd (int n)
- •Void Vych_Int(double a,double b,double eps,
- •Void Sum(double a,double b,double h,
- •Vych_Int(a, b, eps, &f1, Int, k_iter);
- •Vych_Int(a, b, eps, &f2, Int, k_iter);
- •Void Vych_Int (double a,double b,double eps,
- •Void Sum(double a, double b, double h,
- •Решение нелинейных уравнений
- •Вычисление интегралов
- •Метод двойного пересчета для вычисления интегралов методом левых прямоугольников
- •Словарь понятий, используемых в заданиях
Void fun()
{
int a1= 11; // создание новой локальной переменной
register int ra = 1;
// создание новой статической переменной
// (сохраняется значение)
static int a2 = 22;
a2 += 2;
a1 += 2;
cout<<" a1= "<<a1<<" "<<::a1<<endl;
cout<<" a2= "<<a2<<endl;
cout<<" ra= "<<ra<<endl<<endl;
}
ПРИМЕР 36. Перегрузка функций (равное количество аргументов)
Пример программы, в которой перегружаются две функции с равным числом аргументов и имеющие одинаковые имена. Первая функция int func (int a, int b) определяет сумму двух целых чисел a и b, вторая - float func (float a, float b) – разность двух чисел с плавающей точкой.
#include <iostream> // for cin cout
using namespace std;
//прототип функции вычисления суммы целых чисел
Int func (int a, int b);
//прототип функции вычисления разности вещ. чисел
float func (float a, float b);
void main ()
{
int a = 25, b = 40;
float c = 2.45f, d = 6.15f;
//вызов функции с аргументами целого типа
cout << "\n summa=" << func (a,b)<<endl;
//вызов функции с аргументами типа float
cout << "\n raznost=" << func (c,d)<<endl;
}
//определение функции вычисления суммы целых чисел
Int func(int a, int b)
{
return (a + b);
}
//определение функции вычисления разности вещ. чисел
float func(float a, float b)
{
return (a - b);
}
ПРИМЕР 37. Перегрузка функций (разное количество аргументов)
Пример перегрузки функций, имеющих разное количество параметров. Функции выполняют вывод на экран символа (заданного в виде аргумента или определенного в функции) некоторое количество раз (заданное в качестве аргумента или определенное в функции).
#include <iostream> // for cin cout
using namespace std;
//прототип функции для вывода символа ‘*’ 45 раз
void repchar();
//прототип функции для вывода символа-аргумента 45 раз
void repchar(char);
//прототип функции для вывода символа-аргумента заданное
//через второй аргумент количество раз
void repchar(char, int);
void main()
{ //вызов функции для вывода символа ‘*’ 45 раз
repchar();
//вызов функции для вывода символа ‘=’45раз
repchar('=');
//вызов функции для вывода символа ‘+’ 30 раз
repchar('+', 30);
}
//определение функции вывода символа ‘*’ 45 раз
void repchar()
{ for (int j = 0; j < 45; j++)
cout << '*';
cout << endl;
}
//определение функции вывода символа-аргумента 45 раз
void repchar(char ch)
{ for (int j = 0; j < 45; j++)
cout << ch;
cout << endl;
}
//определение функции вывода символа-аргумента заданное
//через второй аргумент количество раз
void repchar(char ch, int n)
{
for(int j = 0; j < n; j++)
cout << ch;
cout << endl;
}
ПРИМЕР 38. Перегрузка функций (переменное количество аргументов)
Рассмотрим функцию, которая принимает переменное число аргументов и выводит на экран их количество и принятые значения. Число действительно переданных значений задает первый аргумент:
#include <iostream> // cin cout
#include <iomanip> // cin cout
using namespace std;