Параметры в формате чисел с плавающей точкой.

Числа с плавающей точкой так же легко передавать в качестве параметров функции, как и целые значения.

Параметры в формате чисел двойной длины.

Тип чисел двойной длины double обеспечивает очень большую точность чисел с плавающей точкой. Все функции, описанные в заголовочном файле math.h, получают и возвращают значения типа double. В своих программах вы можете использовать и другие математические функции, перечисленные в табл. 8.1. Для получения более подробной информации вы можете также просмотреть содержимое файла math.h.

 

Таблица. Математические функции, описанные в заголовочном файле Microsoft math.h

 

acos, acosl Арккосинус
asin, asinl Арксинус
atan, atanl Арктангенс
atan2,atan2l Арктангенс
bessel Функции Бесселя
_cabs, _cabsl Абсолютное значение комплексного числа
ceil, ceill Целочисленное максимальное значение
_chgsign Инвертирование знака
_clear87, clearfp Чтение и сброс слова состояния числа с плавающей точкой
_control87, _controlfp Чтение старого управляющего слова числа с плавающей точкой и установка нового
_copysign Возвращает число x со знаком числа y
cos,cosl Косинус
cosh, coshl Гиперболический косинус
_dieeetomsbin Преобразование IEEE-числа двойной точности в двоичный формат Microsoft
Div Деление одного целого на другое, возвращается частное и остаток
_dmsbintoieee Преобразование Microsoft-числа двойной точности в формат IEEE
exp, expl Степенная функция
fabs, fabsl Абсолютное значение
_fieeetomsbin Преобразование IEEE-числа одинарной точности в двоичный формат Microsoft
_finite Проверка числа с плавающей точкой на бесконечность
floor, floorl Нахождение наибольшего целого, меньшего или равного аргументу
fmod, fmodl Нахождение остатка
_fmsbintoieee Преобразование Microsoft-числа одинарной точности в формат IEEE
_fpclass Возвращает слово состояния с информацией о классе чисел с плавающей точкой
_fpieee_flt Вызов описанного пользователем обработчика исключительных ситуаций для чисел с плавающей точкой IEEE-стандарта
_fpreset Повторная инициализация пакета математических функций
frexp, frexpl Вычисление экспоненциального значения
_hypot, _hypotl Вычисление гипотенузы правильного треугольника
_isnan Проверка числа с плавающей точкой на значение “не число” (NAN)
ldexp, ldexpl Произведение от аргумента
Ldiv Деление одного целого long на другое, возвращается частное и остаток
log, logl Натуральный логарифм
log10, log10l Десятичный логарифм
_logb Выделение показателя числа с плавающей точкой
_irotl, _irotr Сдвиг числа unsigned long int влево или вправо
_matherr, _matherrl Обработка математических ошибок
_max, _min Определение большего или меньшего из двух значение
modf, modfl Деление аргумента на целую и дробную части
_nextafter Определение следующего значения
pow, powl Вычисление значения, возведенного в степень
Rand Получение псевдослучайного числа
_rotl, _rotr Сдвиг числа unsigned int влево или вправо
_scalb Степень числа 2, определяемая аргументом
sin, sinl Синус
sinh, sinhl Гиперболический синус
sqrt, sqrtl Квадратный корень
Srand Инициализация датчика псевдослучайных чисел
_status87, _statusfp Получение слов состояния числа с плавающей точкой
tan, tanl Тангенс
tanh, tanhl Гиперболический тангенс

Массивы в качестве параметров.

В следующем примере содержимое некоторого массива передается в функцию в качестве параметра, вызываемого по ссылке. В этом случае адрес первого элемента массива передается через указатель.

//08FPNTR.C

/*Программа на С передает функции массив в качестве параметра.

Для передачи информации о массиве используется указатель*/

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <stdio.h>

#include <process.h>

#include <ctype.h>

#include <stdlib.h>

#include <math.h>

using namespace std;

 

void voutput(int *pinums);

 

main()

{

int iyourarray[7]={2,7,15,32,45,3,1};

/* Передать информацию о массиве в функцию */

printf("Send array information to function. \n");

voutput(iyourarray);

 

printf ("\n\nPress any key to finish\n");

_getch();

return(0);

}

 

void voutput(int *pinums)

{

int t;

/* Результат равен */

printf("The result is:\n");

for(t=0;t<7;t++)

printf(" #%d %d\n",t,pinums[t]);

}

 

Обратите внимание на то, что при вызове функции указывается только имя iyourarray.

Также допустимо передать информацию по адресу и для безразмерного массива. В следующем примере показано, как это можно сделать на C++. (Такой же подход возможен и в С.) Информация, содержащаяся в массиве iyourarray, передается путем указания адреса его первого элемента.

 

81. Использование функций. Аргумент типа void. Символьные параметры. Целочисленные параметры.

 

Функция — это самостоятельная единица программы, которая спроектирована для реализации конкретной подзадачи.
Функция является подпрограммой, которая может содержаться в основной программе, а может быть создана отдельно (в библиотеке). Каждая функция выполняет в программе определенные действия.

Сигнатура функции определяет правила использования функции. Обычно сигнатура представляет собой описание функции, включающее имя функции, перечень формальных параметров с их типами и тип возвращаемого значения.

Семантика функции определяет способ реализации функции. Обычно представляет собой тело функции.

 

Определение функции

Каждая функция в языке Си должна быть определена, то есть должны быть указаны:

· тип возвращаемого значения;

· имя функции;

· информация о формальных аргументах;

· тело функции.


Определение функции имеет следующий синтаксис:

 

ТипВозвращаемогоЗначения ИмяФункции(СписокФормальныхАргументов)
{
ТелоФункции;
...
return(ВозвращаемоеЗначение);
}

 


 

Пример: Функция сложения двух вещественных чисел

float function(float x, float z)
{
float y;
y=x+z;
return(y);
}