Interaktivní výuka jazyka Python. Matematické funkce - Math class

Všechny matematické funkce vyžadují záhlaví . Programy C používají hlavičku

1 acos Funkce double acos(double arg arg
2 jako v Funkce double asin (double arg) vrátí arkus cosinus argumentu arg. Hodnota argumentu funkce musí být v rozsahu od -1 do 1, jinak dojde k chybě.
3 opálení Funkce double atan(double arg) vrátí arkustangens argumentu arg.
4 atan2 Funkce double atan2(double X, dvojitý y) vrátí arkustangens hodnoty y/X.
5 strop Funkce dvojitý strop (double č) vrátí nejbližší celé číslo (reprezentované jako reálné číslo s plovoucí desetinnou čárkou), které není menší než hodnota argumentu č. Například ceil(1.02) vrátí 2,0. Tento převod se nazývá zaokrouhlení.
6 cos Funkce double cos(double arg) vrátí kosinus argumentu arg
7 cosh Funkce double cosh (double arg) vrátí hyperbolický kosinus argumentu arg.
8 zk Funkce double exp(double arg) vrací základnu přirozeného logaritmu E, povýšen na moc arg.
9 fabi Funkce double fabs (double č) vrátí absolutní hodnotu (hodnotu modulo) argumentu č.
10 podlaha Funkční dvojitá podlaha (double č) vrátí největší celé číslo (reprezentované jako reálné číslo s plovoucí desetinnou čárkou), které není větší než hodnota argumentu č. Například podlaha(1.02) vrátí číslo 1.0. Tento převod se nazývá zaokrouhlení dolů.
11 fmod Funkce double fmod(double x, double y) vrací zbytek dělení x/y.
12 frexp Funkce double frexp(double č, int * zk) rozšiřuje číslo č mantisou v rozsahu od 0,1 do 1, kromě 1, a exponentem celého čísla, takže č = mantisa. Funkce vrátí mantisu a hodnota exponentu se uloží do proměnné, na kterou ukazuje ukazatel zk.
13 log Funkce double log(double č) vrátí přirozený logaritmus čísla č. Pokud argument č
14 log10 Funkce double log10(double č) vrací dekadický logaritmus čísla č. Pokud argument č je záporné nebo nulové, dojde k chybě.
15 pow Funkce double pow(double základna, dvojitý zk) vrátí číslo základna, povýšen k moci zk. Pokud je základem titul základna se rovná nule a exponent zk je menší nebo roven nule, může dojít k chybě kvůli argumentu opouštějícímu doménu definice funkce (chyba domény). K této chybě dochází také v případě, že argument základna je negativní a argument zk není celé číslo.
16 hřích Funkce dvojitý hřích (dvojitý arg) vrátí sinus argumentu arg. Hodnota argumentu musí být vyjádřena v radiánech.
17 sinh Funkce double sinh(double arg) vrátí hyperbolický sinus argumentu arg.
18 sqrt Funkce double sqrt(double č) vrátí druhou odmocninu argumentu č. Pokud je argument záporný, dojde k chybě, protože funkce překročí rozsah.
19 opálení Funkce double tan (double arg) vrátí tangens argumentu arg. Hodnota argumentu musí být vyjádřena v radiánech.
20 tanh Funkce double tanh (double arg) vrátí hyperbolický tangens argumentu arg.

Math.h je soubor záhlaví standardní knihovny C určený k provádění jednoduchých matematických operací. Protože C++ také implementuje tyto funkce pro kompatibilitu (všechny jsou obsaženy v hlavičkovém souboru cmath), budeme tyto jazyky zvažovat společně. V Linuxu a FreeBSD jsou matematické funkce uloženy odděleně v matematické knihovně libm. Pokud je tedy použita některá z těchto instrukcí, musí být při sestavování předána linkeru volba -lm. Protože výsledkem většiny matematických operací jsou zlomková čísla, všechny knihovní funkce akceptují dvojnásobek. Pro práci s typem float a long double se používají funkce s příponami f a l, resp.

Komplexní.h- hlavičkový soubor standardní knihovny programovacího jazyka C, který deklaruje funkce pro komplexní aritmetiku. Tyto funkce využívají vestavěný komplexní typ, který byl zaveden ve standardu C99. Funkce v záhlaví souboru complex.h jsou uvedeny pro tři typy - double, float a long double (hodnoty jsou uvedeny v radiánech): pro výpočet trigonometrických hodnot sinus, kosinus, tangens a kotangens pro komplexní čísla, logaritmus a exponent, kořen.

GNU (GSL) je svobodný software licencovaný pod GNU General Public License. Knihovna poskytuje širokou škálu matematických rutin, jako jsou generátory náhodných čísel, speciální funkce a nejmenší čtverce. Celkem existuje více než 1000 funkcí s rozsáhlou testovací sadou. Na rozdíl od licencí pro proprietární numerické knihovny GSL neomezuje vědeckou spolupráci. Chcete-li zahrnout knihovnu, musíte napsat: $\# include $. Chcete-li použít zpracování výjimek C++ v rámci uživatelsky definovaných funkcí předávaných jako parametry knihovně, musí být knihovna sestavena s volbou kompilace -fexceptions. Knihovnu lze použít ve vícevláknových programech. Všechny funkce jsou vláknové v tom smyslu, že nepoužívají statické proměnné. Paměť je vždy spojena s objekty, nikoli funkcemi. Pro funkce, jejichž objekty používají pracovní prostor jako dočasné úložiště, musí být pracovní prostory přiděleny na základě jednotlivých vláken. U funkcí, které používají objekty tabulky, může být paměť využívána více vlákny současně. Tabulka argumentů je v prototypech funkcí vždy deklarována jako konstantní, aby bylo zřejmé, že k nim lze bezpečně přistupovat z různých vláken.

Zde jsou ukázkové programy C++ využívající matematické knihovny:

Najděte sinus a kosinus A

#zahrnout // matematická knihovna

pomocí jmenného prostoru std;

cout<< «Input A = »; cin>>a; //vstup a

b=cos(a); //přiřazení hodnot

cout<< «Cos A = „<

Výstup programu:

Najděte exp z čísla A

#include // I/O knihovna

#zahrnout // matematická knihovna

#zahrnout

#zahrnout

pomocí jmenného prostoru std;

SetConsoleOutputCP(1251);

dvojité a, b, c; // proměnné typu double

cout<< “Input A = »; cin>>a; //vstup a

b=ceil(a); //zadání oceněno

cout<< «Большее целое число A = „<

Výstup programu:

Zvyšte číslo na mocninu dané hodnoty

#include // I/O knihovna

#zahrnout // matematická knihovna

#zahrnout

#zahrnout

pomocí jmenného prostoru std;

SetConsoleOutputCP(1251);

dvojité a,b; // proměnné typu double

cout<< “Введите число = »; cin>>a;

cout<< «Введите степень = »; cin>>b;

cout<< «Число в степени = „<

Výstup programu:

Řešení kvadratické rovnice

#zahrnout

# include # include

pomocí jmenného prostoru std;

dvojité a = 1, b = 2, c = 1;

i = gsl_poly_solve_quadratic(a, b, c, &x0, &x1);

jestliže (i == 2) cout<< “x0 =»<< x0 << " x1 ="<< x1 << endl;

jestliže (i == 1) cout<< «x0 = » << x0 << endl;

if (i == 0) cout<< «No solve » << endl;

Výstup programu:

Jak používat statistické funkce

#zahrnout

#zahrnout

dvojitá data = (17,2, 18,1, 16,5, 18,3, 12,6);

dvojitý průměr, rozptyl, největší, nejmenší;

průměr = gsl_stats_mean(data, 1, 5);

rozptyl = gsl_stats_variance(data, 1, 5);

největší = gsl_stats_max(data, 1, 5);

nejmenší = gsl_stats_min(data, 1, 5);

printf("Datový soubor je \%g, \%g, \%g,\%g, \%g\n",

data, data, data, data, data);

printf("Ukázkový průměr je \%g\ n", průměr);

printf("Odhadovaný rozptyl je \%g\ n", rozptyl);

printf("Největší hodnota je \%g\n", největší);

printf("Nejmenší hodnota je \%g\n", nejmenší);

Struktura C programu

1. #zahrnout cstdlib.h.

2. #zahrnout - zahrnout hlavičkový soubor iostream.h.

3 . pomocí jmenného prostoru std – použít standardní jmenný prostor

4. int main(int argc, char *argv)– název funkce. Jakýkoli program v jazyce C se skládá z jedné nebo více funkcí. V psané šabloně je pouze jedna funkce - hlavní(). Funkce s názvem hlavní musí být určitě in jakýkoli spustitelný program .

5. { - začátek funkčního těla

6. systém („pauza“) – volání funkce Systém s argumentem "pauza". Funkce čeká na stisknutí tlačítka.

7. operátor vrátit se s argumentem EXIT_SUCCESS– ukončení hlavní funkce kódem 0.

8. ) – konec funkce hlavní.

Jednoduché datové typy C

Pro reprezentaci celočíselných hodnot v C jsou k dispozici následující datové typy:

Zadejte char. V paměti zabírá 1 bajt. Používá se k reprezentaci znaků a celých čísel od 0 do 255 (-128 až 127).

Zadejte int. Zabírá 4 bajty v paměti. Používá se k reprezentaci celých čísel v rozsahu -2,147,483,648 až 2,147,483,647.

Typ float. Zabírá 4 bajty v paměti. Používá se k reprezentaci čísel s pohyblivou řádovou čárkou. od 3,4×10-38 do 3,4×1038. Přesnost výpočtu až na 7 desetinných míst.

Typ double. V paměti zabírá 8 bajtů. Používá se k reprezentaci čísel s pohyblivou řádovou čárkou. od 1,7×10 -308 do 1,7×10 308. Přesnost výpočtu až na 15 desetinných míst.

typ neplatné – prázdný typ. Používá se k popisu funkcí.

Zadejte bool – logický typ. Může nabývat 2 hodnot: true nebo false.

Základní C operátory

Operátor je token, který přepíná některé výpočty při aplikaci na proměnnou nebo jiný objekt ve výrazu. Jazyk C představuje velkou sadu aritmetických a logických operátorů.

Tabulka 4.1. Unární operátory jazyka C

Tabulka 4.2. Binární operátory v jazyce C

Kód operátora název Výsledek operace
Aditivní operátory
+ binární plus výpočet součtu např.: int x = 2,y = 1,z; z = x+y;
- binární mínus výpočet rozdílu např.: int x = 2,y = 1,z; z = x-y;
Multiplikativní operátory
* násobení výpočet součinu, například: int x = 2,y = 1,z; z = x*y;
/ divize výpočet podílu, například: int x = 12,y = 2,z; z = x/y;
% zbytek výpočet zbytku dělení, například: int x = 12,y = 7,z; z = x%y;
Logické operátory
&& logické AND kontrola logických podmínek AND
|| logické NEBO kontrola logických podmínek NEBO
Operátoři přiřazení
= úkol přiřadit danou hodnotu proměnné nebo hodnotu jiné proměnné
Relační operátory
< méně než X
> více než x>y, x je větší než y
<= menší nebo rovno X<=y, x меньше или равно y
>= větší nebo rovno x>=y, x větší nebo rovno y
Ekvivalenční operátory
= = rovná se x= =y, x se rovná y
!= ne rovné x!=y, x se nerovná y
, operátor výčtu provádět operace oddělené operátory zleva doprava, například y+=5,x-=4,y+=x;

Knihovna matematických funkcí math.h

C podporuje mnoho matematických funkcí, jejichž prototypy jsou popsány v souboru matematika.h. Pojďme se s některými z nich seznámit.

abs(int x) vrátí modul celého čísla X. acos (dvojité x) vrátí arkus cosinus čísla X v radiánech . asin (dvojité x) vrátí arkussinus čísla X v radiánech. atan (dvojité x) vrátí arkustangens čísla X v radiánech. atof(char *s, double x) převede řetězec s na skutečné číslo X. cos (dvojité x) vrátí kosinus čísla X(X udáváno v radiánech) strop (dvojité x) zaokrouhlí číslo X nahoru exp (dvojité x) vrátí exponent čísla X. skvělé (dvojité x) vrací modul reálného čísla X. hřích (dvojité x) vrátí sinus čísla X(X udává se v radiánech). sqrt (dvojité x) vrátí druhou mocninu čísla X. opálení (dvojité x) vrátí tangens čísla X(X udává se v radiánech). patro (dvojité x) zaokrouhlí číslo X dolů fmod(dvojité x, dvojité y) vrátí zbytek po dělení čísla X za číslo y hipot (dvojité x, dvojité y) vrátí druhou mocninu součtu čísla X a čísla y log (dvojité x) vrátí přirozený logaritmus čísla X. log10 (dvojité x) vrátí dekadický logaritmus čísla X. modf(double x,double&y) vrátí zlomkovou část čísla X, podle adresy y zapíše se celá část původního čísla X. pow (dvojité x, dvojité y) se vrací X do určité míry y

Chcete-li používat všechny výše uvedené funkce, připojte knihovnu

Pozastavte AdBlock na tomto webu.

Matematické výpočty se neomezují pouze na aritmetické operace. Kromě nich zde můžete najít také kořeny, moduly, logaritmy, goniometrické funkce atd. Pojďme se naučit takové funkce používat v našich programech.

Chcete-li používat matematické funkce, musíte zahrnout hlavičkový soubor math.h . Definuje mnoho různých funkcí, ale nyní se podíváme na následující:

Některé matematické funkce

fabs(x) modul čísla x
sqrt(x) druhá odmocnina čísla x
sin(x) sinus z x (x v radiánech)
cos(x) kosinus x (x v radiánech)
pow(x, y) výpočet x y
exp(x) výpočet e x
log(x) přirozený logaritmus x
log10(x) dekadický logaritmus x

Dva důležité body.

  • Všechny funkce vracejí dvojnásobnou hodnotu.
  • Parametry funkce jsou reálná čísla (double), ale můžete předávat i celá čísla. To se stane implicitní konverze typu. Kompilátor vytvoří reálné číslo 3.0 z celého čísla, například 3.

Příklady.
Jsou uvedeny délky ramen pravoúhlého trojúhelníku. Vypočítejte délku přepony. Jednoduchý problém, který prověří vaše znalosti Pythagorovy věty.

Výpis 1.

#zahrnout #zahrnout // připojení math.h int main (void) ( int a, b, c2; scanf("%d",&a); scanf("%d",&b); c2 = a*a + b*b; printf ("c = %.2f\n", sqrt(c2));

Vypočítejte sinus úhlu zadaného z klávesnice. Úhel se zadává ve stupních.

Výpis 2.

#zahrnout #zahrnout // připojení math.h int main (void) ( double alpha, sin_a, pi = 3,1415926; scanf("%lf",&alpha); alpha = alpha*pi/180; sin_a = sin(alpha); printf("% .2f\n", sin_a); návrat 0; )

V tomto programu je o čem mluvit. Goniometrické funkce, které jsou definovány v math.h, pracují s mírami radiánových úhlů. Lidé jsou více zvyklí pracovat s tituly. Proto jsme v tomto programu nejprve převedli hodnotu ze stupňů na radiány. Pokud tak neučiníte, výsledek bude nesprávný. Přesvědčte se o tom sami.

Konverze implicitního typu

Při provádění explicitní konverze typu jsme v závorkách před hodnotou uvedli typ, na který má být hodnota přetypována. Při implicitní konverzi to není nutné. Kompilátor automaticky vybere požadovaný typ.

Konverze implicitního typu se provádí v následujících případech:

  1. před předáním argumentů funkci (jako v našem příkladu root. Výpis 1.)
  2. provádění aritmetických operací s různými typy argumentů
  3. před provedením úkolu

Implicitní pravidla převodu typů

  • pokud jsou aritmetické operace prováděny s různými typy argumentů. Oba argumenty jsou přetypovány na větší typ.
    Typové pořadí: int< float < double
  • při přidělení. Hodnota napravo od operátoru přiřazení je přetypována na typ proměnné nalevo od operátoru přiřazení. Pokud je však větší typ přiřazen menšímu, může dojít ke ztrátě přesnosti.

int+float bude automaticky převeden na float+float
float/int bude automaticky převeden na float/float
double*float bude převeden na double*double
int = double double bude převedeno na int se ztrátou zlomkové části
float = int int bude převeden na float

Poslední aktualizace: 31. 10. 2015

Třída Math je navržena k provádění různých matematických operací v knihovně tříd .NET. Je statický, takže všechny jeho metody jsou také statické.

Podívejme se na metody třídy Math:

    Abs(double value) : Vrátí absolutní hodnotu argumentu value

    Dvojitý výsledek = Math.Abs(-12,4); // 12.4

    Acos(dvojitá hodnota) : Vrací arkus cosinus hodnoty. Parametr value musí mít hodnotu mezi -1 a 1

    Dvojitý výsledek = Math.Acos(1); // 0

    Asin(dvojitá hodnota) : Vrací úhlový sinus hodnoty. Parametr value musí mít hodnotu mezi -1 a 1

    Atan(dvojitá hodnota) : vrátí arkustangens hodnoty

    BigMul(int x, int y) : vrátí součin x * y jako dlouhý objekt

    Dvojitý výsledek = Math.BigMul(100, 9340); // 934000

    Ceiling(double value) : vrací nejmenší celé číslo s pohyblivou řádovou čárkou, které není menší než hodnota

    Dvojitý výsledek = Math.Ceiling(2,34); // 3

    Cos(double d) : vrací kosinus úhlu d

    Cosh(double d) : vrací hyperbolický kosinus úhlu d

    DivRem(int a, int b, out int výsledek) : vrátí výsledek dělení a/b a zbytek se umístí do parametru result

    Int výsledek; int div = Math.DivRem(14, 5, mimo výsledek); //výsledek = 4 // div = 2

    Exp(double d) : Vrátí základnu přirozeného logaritmu umocněnou na d

    Spodní (desetinné d) : vrátí největší celé číslo, které není větší než d

    Dvojitý výsledek = Math.Floor(2,56); // 2

    IEEERemainder(double a, double b) : vrátí zbytek a děleno b

    Dvojitý výsledek = Math.IEEERemainder(26, 4); // 2 = 26-24

    Log(double d) : vrací přirozený logaritmus d

    Log(double a, double newBase) : vrátí logaritmus čísla na základě newBase

    Log10(double d) : Vrátí dekadický logaritmus d

    Max(double a, double b) : vrátí maximální počet mezi a a b

    Min(double a, double b) : vrátí minimální číslo mezi a a b

    Pow(double a, double b) : vrátí číslo a umocněné na b

    Round(double d) : Vrátí d zaokrouhlené na nejbližší celé číslo

    Dvojitý výsledek1 = Math.Round(20,56); // 21 double vysledek2 = Math.Round(20.46); //20

    Round(double a, round b) : Vrátí číslo a zaokrouhlené na zadaný počet desetinných míst reprezentovaný b

    Dvojitý výsledek1 = Math.Round(20,567; 2); // 20,57 dvojitý výsledek2 = Math.Round(20,463; 1); //20.5

    Sign(double value) : Vrátí 1, pokud je hodnota kladná, a -1, pokud je záporná. Pokud je hodnota 0, vrátí 0

    Int vysledek1 = Math.Sign(15); // 1 int vysledek2 = Math.Sign(-5); //-1

    Sin(dvojitá hodnota) : vrací sinus hodnoty úhlu

    Sinh(dvojitá hodnota) : vrací hyperbolický sinus hodnoty úhlu

    Sqrt(dvojitá hodnota) : vrací druhou odmocninu hodnoty

    Dvojitý výsledek1 = Math.Sqrt(16); // 4

    Tan(dvojitá hodnota) : vrací tangens hodnoty úhlu

    Tanh(dvojitá hodnota) : vrací hyperbolický tangens hodnoty úhlu

    Truncate(double value) : zahodí zlomkovou část hodnoty a vrátí pouze celočíselnou hodnotu

    Dvojitý výsledek = Math.Truncate(16,89); // 16

Třída Math také definuje dvě konstanty: Math.E a Math.PI. Vypočítejme například plochu kruhu:

Console.WriteLine("Zadejte poloměr kruhu"); dvojitý poloměr = Double.Parse(Console.ReadLine()); dvojitá plocha = Math.PI * Math.Pow(poloměr, 2); Console.WriteLine("Oblast kruhu s poloměrem (0) je (1)", poloměr, plocha);

Výstup konzole:

Zadejte poloměr kruhu 20 Oblast kruhu s poloměrem 20 je 1256,63706143592




Horní