Методичка_2013_14_весна(1курс) / Лаб_ раб_1_ф
.doc
ЛАБОРАТОРНАЯ РАБОТА №1
ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ С РЕЗУЛЬТАТОМ В ВИДЕ ПРОСТОЙ ПЕРЕМЕННОЙ.
Цель работы: Изучить возможности функций, варианты их описания и использования при расчете и передаче простых переменных.
1.1 Требования к выполнению работы:
Для выполнения всех расчетов использовать одну функцию. Все промежуточные результаты выводить в функции. В основной программе необходимо организовать ввод всех численных значений переменных, которые являются исходными для выполнения расчетов, вывести на печать конечный результат.
Рассмотреть два варианта возврата искомого результата – через имя и через аргументы.
1.2 Теоретические положения
Функции.
При составлении функций, результатом работы которых является одна простая переменная, может быть использовано два варианта:
-
функция возвращает значение через свое имя.
-
функция возвращает значение через свое аргумент.
Функция возвращает одно значение через свое имя.
В данном варианте должны выполняться следующие требования:
-
при описании должен быть указан конкретный тип функции;
-
внутри функции должен присутствовать оператор return;
-
вызов функции не является самостоятельным оператором.
Пример: составить функцию, которая определяет большее значение из трех заданных чисел и возвращает максимальное значение через имя в основную программу.
float f_max (float a,float b,float c)
{
float max;
if(a>b) max=a; else max=b;
if(c>max) max=c;
return max;
}
void main()
{
float x,y,z,rez;
scanf(“%f%f%f”,x,y,z,);
rez=max(x,y,z);
printf(“max=%.2f\n”, rez);
}
Функция возвращает одно или несколько значений через свои аргументы.
При использовании данного варианта должны выполняться следующие требования:
-
при описании указывается тип void;
-
аргументы с возвращаемыми значениями должны быть описаны как указатели (<тип> *ptx,…);
-
внутри описания функции этот аргумент должен быть указан как указатель *ptx=…;
-
вызов функции осуществляется как самостоятельный оператор <имя> (…,&x,…)
Пример: составить функцию, которая определяет большее значение из трех заданных чисел и возвращает максимальное значение через аргумент в основную программу.
.
void find_max (float a,float b,float c, float *max)
{
if(a>b) * max=a; else *max=b;
if(c>*max) *max=c;
}
void main()
{
scanf(“%f%f%f”x,y,z,);
float x, y, z,rez;
find_max (x,y,z,&rez);
printf(“max=%.2f\n”, rez);
}
1.3 Варианты индивидуальных заданий
-
Заданы действительное число a и целое n. Вычислить сумму
-
Заданы действительное число a и целое n. Вычислить сумму
-
Заданы действительное число x и целое n. Вычислить сумму
-
Заданы действительные числа а и x и целое n. Вычислить сумму
x +(а* x2 )+(а2 *x3 )+…+(а n-1*xn)
-
Заданы действительное число x и целое n. Вычислить
-
Заданы действительное число x и целое n. Вычислить
-
Заданы действительные числа a, b и целое n. Вычислить сумму
-
Заданы действительные числа a, b и целое n. Вычислить сумму
-
Заданы действительные числа v, u и целое n. Найти сумму
-
Дано целое n. Найти
-
Дано целое n. Найти
-
Дано значение точности 0.01. Найти
-
Дано значение точности 0.001. Найти
-
Даны х>1 и значение точности 0.01. Найти
-
Даны a, b и значение точности 0.01. Найти
-
Даны a и значение точности 0.001. Найти
-
Даны y и значение точности 0.01. Найти
-
Даны a, b и значение точности 0.01. Найти
-
Даны x, y и значение точности 0.01. Найти
-
Дано значение точности 0.01. Найти
-
Даны a и значение точности 0.00001. Найти
-
Даны y и значение точности 0.00001. Найти
-
Даны a, b и значение точности 0.00001. Найти
-
Даны x, y и значение точности 0.00001. Найти
-
Дано значение точности 0.0001. Найти
-
Дано значение точности 0.0001. Найти
-
Даны действительное число a и целое n. Вычислить
(a(a+a2)(a+a2+a3)…(a+a2+a3+…+an))
1.4 Контрольные вопросы и практические задания:
-
Каково назначение функций?
-
Какие два этапа подразумевает использование функции ?
-
Как осуществляется описание функции?
-
Как выглядит заголовок функции?
-
Какие существуют варианты вызова функции?
-
Чем определяется тип функции?
-
Как организуется работа оператора return?
-
Какие требования предъявляются аргументам функции?
-
Как выглядит заголовок функции, если результат возвращается через имя функции?
-
Как осуществляется вызов функции, если результат возвращается через имя функции?
-
Как выглядит заголовок функции, если результат возвращается через аргументы функции?
-
Как осуществляется вызов функции, если результат возвращается через аргументы функции?