printf("\n Coefficient = %f",fact(n)/fact(m)/fact(n-m));
точки вызова
} функции fact()
int fact(int k)
{ int i,j=1;
for (i=1;i<=k;i++) j=j*i;
return j;
}
Правило 2.7. Если возвращаемое функцией значение предполагается использовать в вызывающей функции в качестве значения некоторой переменной, то следует использовать оператор присваивания, причем слева от знака «=» – имя этой переменной, а справа – вызов функции с фактическими параметрами. При этом тип переменной должен совпадать с типом возвращаемого функцией значения.
Например, можно объявить переменные rz1, rz2, rz3. После присваивания им значений факториалов можно получить результат в соответствии с приведенной формулой и вывести его на экран:
int rz1, rz2, rz3 ; float rez;
rz1 = fact(n); rz2 = fact(m); rz3= fact(n-m);
rez = rz /rz2/rz3;
printf("\n Coefficient = %f",rez);
КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ
1. Какую информацию о функции можно получить по ее заголовку?
2. Какие действия можно выполнить с функцией?
|
par_2
rezult
…
par_m
Функция с именем functionпри вызове должна получить m значений. Для этого используются идентификаторы par_1, par_2, … par_m. Результат работы функции ассоциируется с идентификатором result. Поставить в соответствие всем идентификаторам понятия: формальные и фактические параметры, аргументы, возвращаемое значение, – с точки зрения всех действий, которые можно осуществлять с функцией function().
4. Сформулируйте основные правила работы с функцией.
5. Найдите соответствия между записями из левого и правого столбцов
а) voidip(a,h) |
а) описание функции |
б) {do {k++; a*=k; if (k>f) return a;}} |
б) фактические параметры |
в) int sum (int a, int b) { return (a+b);} |
в) объявлена функция типа float, которая не имеет параметров |
г) if (a = f) return n; |
г) заголовок функции с 2-мя параметрами |
д) float tt (void) |
д) прототип функции |
е) { for (; a[i]; i++) if (a[i]<0) continue; else return(sqrt(a[i]));} |
е) заголовок функции |
ж) вызов функции |
ж) такая запись синтаксически неверна |
з) float tt (void); |
з) тело функции |
и) char ip(int, int ); |
6. Опишите функцию типа int с 2-мя аргументами – символами. Результат работы функции – сумма кодов этих символов.
ЛАБОРАТОРНАЯ РАБОТА 3
Целью лабораторной работы 3 является знакомство с указателями, освоение приемов работы с динамической памятью и использование указателей в заголовках функций.
ЗАДАНИЕ
В главной функции с клавиатуры ввести k – размер массива, объединяющего переменные ( – из лабораторной работы 2), динамически выделить память под этот массив и ввести значения всех элементов массива. Передать все элементы массива в функцию fun(), параметрами которой являются и переменные k, n, m ….
В функции fun() динамически выделяется память под массив переменных, соответствующих , вычисляются их значения с использованием функций fun1() и fun2() из лабораторной работы 2, также определяется элемент с максимальным значением. Результаты работы функции fun(), т.е. значения и номер элемента с максимальным значением, выводятся на экран в главной функции.
ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ
3.1. ПОНЯТИЕ «УКАЗАТЕЛЬ»
Рассмотрим расположение в памяти переменных следующего фрагмента программы.
inta = 10, f;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.