- •Лекция 11-12
- •Основные вопросы лекции:
- •ТипРезультата ИмяФункции (ТипПараметра1 [ИмяПараметра1], …);
- •Int _tmain(int argc, _tchar* argv[])
- •Vvedite n и m :
- •Int _tmain(int argc, _tchar* argv[])
- •Vvedite a, b :
- •Int _tmain(int argc, _tchar* argv[])
- •Vvedite k :
- •Int _tmain(int argc, _tchar* argv[])
- •Int _tmain(int argc, _tchar* argv[])
- •Int _tmain(int argc, _tchar* argv[])
- •Вопросы для самоконтроля
Int _tmain(int argc, _tchar* argv[])
{
double Y, a, b;
cout<<"Vvedite a, b :"<<endl;
cin>>a>>b; //Ввод чисел a и b
Y=sum(a, b); //Вызов функции, вычисляющей сумму двух чисел
cout<<endl<<"Y = "<<Y<<endl; //Вывод значения Y
getch();
return 0;
}
double sum(double c, double d) //Описание функции вычисления z=c+d
{
double z;
z=c+d; //Вычисление z=c+d
return z; //Возврат значения z в основную программу
}
Результат выполнения программы следующий:
Vvedite a, b :
5.4 4.3
Y=9.8
Пример 2. Разработать программу, использующую функцию вычисления факториала числа:
F = n! .
Для составления программы данное выражение запишем следующим образом:
F
= n! = 1*2*3*4* …*n =
Блок-схема алгоритма решения данной задачи приведена на рис. 11.4.
а) б)
Рис. 11.4. Блок-схема алгоритма вычисления факториала числа с использованием функции:
а) основная программа; б) функция faktorial(int n)
Программа для функции, вычисляющей факториал числа n, будет иметь следующий вид:
int faktorial(int n); //Объявление (прототип) функции вычисления факториала
Int _tmain(int argc, _tchar* argv[])
{
int K;
cout<<"Vvedite K :"<<endl;
cin>>K; //Ввод числа K
F=faktorial(K); //Вызов функции, вычисляющей факториал числа
cout<<endl<<"Faktorial K= "<<K<<endl; //Вывод значения факториала числа K
getch();
return 0;
}
int faktorial(int n) //Описание функции вычисления факториала числа
{
int j, y;
y=1;
for(j=1; j<=n; j++) //Цикл для вычисления факториала числа
y=y*j;
return y; //Возврат значения y в основную программу
}
Результат выполнения программы следующий:
Vvedite k :
5
Faktorial K= 120
Пример 3. Разработать программу для вычисления числа соединений R из N элементов по M по формуле
R
=
;
где расчет R производится с использованием функции.
Воспользуемся созданной в Примере 2 функцией factorial(int n) для вычисления факториала числа и будем обращаться к этой функции непосредственно в формуле для расчета R:
int faktorial(int n); //Объявление (прототип) функции вычисления факториала
Int _tmain(int argc, _tchar* argv[])
{
int N,M,R;
cout<<"Vvedite N i M (N>M) :"<<endl;
cin>>N>>M; //Ввод значений N и M
R=faktorial(N)/(faktorial(M)*faktorial(N-M)); //Формула для R (с трехкратным вызовом функции faktorial)
cout<<endl<<"R= "<<R<<endl; //Вывод значения R
getch();
return 0;
}
int faktorial(int n) //Описание функции вычисления факториала числа
{
int j, y;
y=1;
for(j=1; j<=n; j++)
y=y*j;
return y; //Возвращение в основную программу значения у
}
Результат выполнения программы следующий:
Vvedite n и m :
8 4
R= 70
5. Области действия и видимости переменных в программах в среде Visual С++ 2010
Область действия переменной – это часть или части программного кода, в которых данные переменные определены (доступны для действий с ними в данном месте программы).
С точки зрения области действия переменных различают три типа переменных:
- локальные;
- глобальные;
-формальные.
Локальные переменные – это переменные, объявленные в середине блока, в частности, внутри описания функции. Локальная переменная доступна в середине блока, в котором она объявлена. Блок открывается и закрывается фигурными скобками. Область действия локальной переменной – данный блок или функция.
Формальные переменные (параметры) – это переменные, объявленные при описании функции как ее аргументы. Формальные параметры используются в теле функции, как локальные переменные. Область действия формальных параметров – тело функции.
Глобальные переменные – это переменные, объявленные в основной программе вне какой-либо функции. Они могут быть использованы в любом месте программы. Область действия глобальной переменной – вся программа.
6. Функции и массивы в Visual С++ 2010
Если в качестве аргумента функции используется массив, то необходимо указать адрес начала массива и его размер.
Заглавие функции, обрабатывающей массив, необходимо записать следующим образом:
float function (float A[n]);
или
float function (float A[ ], int n);
В этом случае вызов функции function из основной программы запишется следующим образом:
function (B, k);
Пример 4. Задан массив А из N произвольных чисел. Сформировать новый массив В, каждый элемент которого равняется частному от деления соответствующего элемента массива А на его максимальный элемент. На экран вывести начальный массив А, его максимальный элемент и массив В. Поиск максимального элемента массива А оформить функцией.
Запрограммируем функцию нахождения максимального элемента массива и его номера и используем ее в разрабатываемой программе следующим образом:
double Max(double B[],int n); //Объявление (прототип) функции поиска макс. элемента
