1 /**************************************************************************** *
2 * nazev projektu: BETON *
4 * autor: Vojtìch ©im¹a xsimsa01 *
6 * popis: knihovna funkcí *
8 ******************************************************************************/
12 * @brief knihovna funkcí
13 * @author Vojtìch ©im¹a (xsimsa01)
17 const double MAX_FACTBASE
=150; /** maximalni hodnota zakladu pro vypocet faktorialu */
20 * Struktura obsahující hodnoty parametrù pøíkazové øádky.
22 typedef struct vysledek
29 * provede operaci scitani a vysledek vrati ve strukture Tvysledek.
30 * @param a prvni scitanec.
31 * @param b druhy scitanec.
32 * @return Vrací strukturu obsahujici soucet a+b.
34 Tvysledek
scitani(double a
, double b
){
43 * provede operaci odcitani a vysledek vrati ve strukture Tvysledek.
46 * @return Vrací strukturu obsahujici podil a-b.
48 Tvysledek
odcitani(double a
, double b
) {
57 * provede operaci nasobeni a vysledek vrati ve strukture Tvysledek.
58 * @param a prvni cinitel.
59 * @param b druhy cinitel.
60 * @return Vrací strukturu obsahujici soucin a*b.
62 Tvysledek
nasobeni(double a
, double b
) {
71 * provede operaci deleni a vysledek vrati ve strukture Tvysledek.
74 * @return Vrací strukturu obsahujici podil a/b.
76 Tvysledek
deleni(double a
, double b
) {
90 * provede operaci scitani a vysledek vrati ve strukture Tvysledek.
91 * pokud vysledek neni zobrazitelny v ciselnem rozsahu double je vysledna hodnota .error nastavena na 1.
92 * pokud exponent neni prirozene cislo je vysledna hodnota .error nastavena na 1.
93 * @param a zaklad mocniny.
94 * @param exponent exponent umocneni.
95 * @return Vrací strukturu obsahujici hodnotu a^exponent a pripadnou indikaci chyby.
97 Tvysledek
umocneni(double a
, double exponent
) {
102 if (ceil(exponent
)!=exponent
|| exponent
<0 || exponent
>DBL_MAX_EXP
){
106 result
.result
=pow(a
,exponent
);
111 * vypocita faktorial a vysledek vrati ve strukture Tvysledek.
112 * pokud vysledek neni zobrazitelny v ciselnem rozsahu double je vysledna hodnota .error nastavena na 1.
113 * pokud zaklad faktorialu neni prirozene cislo je vysledna hodnota .error nastavena na 1.
114 * @param a zaklad faktorialu.
115 * @return Vrací strukturu obsahujici hodnotu a! a pripadnou indikaci chyby.
117 Tvysledek
faktorial(double a
){
122 if (ceil(a
)!=a
|| a
<0 || a
>MAX_FACTBASE
){
126 result
.result
=result
.result
*a
;
133 * vypocita prirozeny logaritmus a vysledek vrati ve strukture Tvysledek.
134 * pokud je numerus logaritmu zaporny je vysledna hodnota .error nastavena na 1.
135 * @param a numerus logaritmu.
136 * @return Vrací strukturu obsahujici hodnotu ln(a) a pripadnou indikaci chyby.
138 Tvysledek
logaritmus(double a
) {
147 result
.result
=log(a
);
150 /*** konec souboru knihovna.c ***/