Math.h- otsikkotiedosto tavallinen kirjasto C-kieli, joka on suunniteltu suorittamaan yksinkertainen matemaattisia operaatioita. Koska C++ toteuttaa myös nämä toiminnot yhteensopivuuden vuoksi (ne kaikki sisältyvät cmath-otsikkotiedostoon), tarkastelemme näitä kieliä yhdessä. Linuxin ja FreeBSD:n alla matemaattiset funktiot varastossa erikseen matemaattinen kirjasto libm. Siten, jos jotakin näistä ohjeista käytetään, -lm-optio on välitettävä linkkerille rakentamisen aikana. Koska useimpien matemaattisten operaatioiden tulos on murtolukuja, kaikki kirjaston toiminnot hyväksyvät double. Työskentelyyn kellukkeen ja pitkä tupla käytetään toimintoja, joissa on jälkiliitteet f ja l.
Monimutkainen.h- C-ohjelmointikielen vakiokirjaston otsikkotiedosto, joka ilmoittaa monimutkaisen aritmeettisen funktion. Nämä toiminnot käyttävät sisäänrakennettua monimutkaista tyyppiä, joka otettiin käyttöön C99-standardissa. Complex.h-otsikkotiedoston toiminnot ovat käytettävissä kolme tyyppiä— double, float ja long double (arvot esitetään radiaaneina): laskentaa varten trigonometriset arvot sini, kosini, tangentti ja kotangentti kompleksiluvuille, logaritmi ja eksponentti, juuri.
GNU (GSL)- se on ilmainen ohjelmisto alla GNU-lisenssi Yleinen julkinen lisenssi. Kirjasto tarjoaa laajan valikoiman matemaattisia rutiineja, kuten generaattoreita satunnaisia numeroita, erikoistoiminnot ja pienimmät neliöt. Yhteensä yli 1000 ominaisuutta on kattava testipaketti. Toisin kuin patentoitujen numeeristen kirjastojen lisenssit, GSL ei rajoita tieteellistä yhteistyötä. Jos haluat sisällyttää kirjaston, sinun on kirjoitettava: $\# include
Tässä malliohjelmat C++:ssa käyttäen matemaattisia kirjastoja:
Etsi A:n sini ja kosini
#sisältää
käyttäen nimiavaruutta std;
cout<< «Input A = »; cin>>a; //syöttö a
b = cos(a); //arvojen määrittäminen
cout<< «Cos A = „<
Ohjelman tulos:
Etsi exp numerosta A
#include // I/O-kirjasto
#sisältää
#sisältää
#sisältää
käyttäen nimiavaruutta std;
SetConsoleOutputCP(1251);
kaksinkertainen a,b,c; // kaksinkertaiset muuttujat
cout<< “Input A = »; cin>>a; //syöttö a
b = katto (a); //tehtävä arvostettu
cout<< «Большее целое число A = „<
Ohjelman tulos:
Nosta luku potenssiin annettuihin arvoihin
#include // I/O-kirjasto
#sisältää
#sisältää
#sisältää
käyttäen nimiavaruutta std;
SetConsoleOutputCP(1251);
kaksinkertainen a,b; // kaksinkertaiset muuttujat
cout<< “Введите число = »; cin>>a;
cout<< «Введите степень = »; cin>>b;
cout<< «Число в степени = „<
Ohjelman tulos:
Neliöyhtälön ratkaiseminen
#sisältää
# sisältää # sisällyttää
käyttäen nimiavaruutta std;
kaksinkertainen a = 1, b = 2, c = 1;
i = gsl_poly_selve_quadratic(a, b, c, &x0, &x1);
jos (i == 2) cout<< “x0 =»<< x0 << " x1 ="<< x1 << endl;
jos (i == 1) cout<< «x0 = » << x0 << endl;
jos (i == 0) cout<< «No solve » << endl;
Ohjelman tulos:
Kuinka käyttää tilastofunktioita
#sisältää
#sisältää
kaksoisdata = (17,2, 18,1, 16,5, 18,3, 12,6);
kaksinkertainen keskiarvo, varianssi, suurin, pienin;
keskiarvo = gsl_stats_mean(data, 1, 5);
varianssi = gsl_stats_variance(data, 1, 5);
suurin = gsl_stats_max(data, 1, 5);
pienin = gsl_stats_min(data, 1, 5);
printf("Tietojoukko on \%g, \%g, \%g,\%g, \%g\n",
data, data, data, data, data);
printf("Näytekeskiarvo on \%g\ n", keskiarvo);
printf("Arvioitu varianssi on \%g\ n", varianssi);
printf("Suurin arvo on \%g\n", suurin);
printf("Pienin arvo on \%g\n", pienin);
Kaikki matemaattiset funktiot vaativat otsikon
1 | acos | Toiminto double acos (double arg arg |
2 | asin | Toiminto double asin (double arg) palauttaa argumentin arckosinin arg. Funktiotargumentin arvon on oltava välillä -1 - 1, muuten tapahtuu virhe. |
3 | atan | Funktio double atan(double arg) palauttaa argumentin arktangentin arg. |
4 | atan2 | Funktio double atan2(double x, tupla y) palauttaa arvon arktangentin y/x. |
5 | kattoon | Toiminto kaksinkertainen katto (double nro) palauttaa lähimmän kokonaisluvun (esitetty liukulukureaalilukuna), joka ei ole pienempi kuin argumentin arvo nro. Esimerkiksi ceil(1.02) palauttaa arvon 2.0. Tätä muuntamista kutsutaan ylipyöristykseksi. |
6 | cos | Funktio double cos (double arg) palauttaa argumentin kosinin arg |
7 | cosh | Funktio double cosh(double arg) palauttaa argumentin hyperbolisen kosinin arg. |
8 | exp | Funktio double exp(double arg) palauttaa luonnollisen logaritmin kantaluvun e, nostettu valtaan arg. |
9 | fabs | Toiminto double fabs (double nro) palauttaa argumentin itseisarvon (modulo-arvon). nro. |
10 | kerros | Toiminto kaksikerroksinen (kaksi nro) palauttaa suurimman kokonaisluvun (esitetty liukulukureaalilukuna), joka ei ole suurempi kuin argumentin arvo nro. Esimerkiksi floor(1.02) palauttaa luvun 1.0. Tätä muuntamista kutsutaan alaspäin pyöristämiseksi. |
11 | fmod | Funktio double fmod(double x, double y) palauttaa jaon x/y jäännöksen. |
12 | frexp | Funktio double frexp(double nro, int * exp) laajentaa numeroa nro mantissalla, joka vaihtelee välillä 0,1-1, lukuun ottamatta 1:tä, ja kokonaislukueksponentilla, joten nro = mantissa. Funktio palauttaa mantissan ja eksponentin arvo tallennetaan muuttujaan johon osoitin osoittaa exp. |
13 | loki | Toiminto kaksoisloki (double nro) palauttaa luvun luonnollisen logaritmin nro. Jos argumentti nro |
14 | log10 | Funktio double log10(double nro) palauttaa luvun desimaalilogaritmin nro. Jos argumentti nro on negatiivinen tai nolla, tapahtuu virhe. |
15 | pow | Toiminto double pow(double pohja, tupla exp) palauttaa luvun pohja, nostettu valtaan exp. Jos tutkinnon perusteella pohja on yhtä suuri kuin nolla ja eksponentti exp on pienempi tai yhtä suuri kuin nolla, virhe voi tapahtua, koska argumentti jättää funktion määritelmän toimialueen (domain error). Tämä virhe ilmenee myös, jos argumentti pohja on negatiivinen ja argumentti exp ei ole kokonaisluku. |
16 | synti | Funktio double sin(double arg) palauttaa argumentin sinin arg. Argumentin arvo on ilmaistava radiaaneina. |
17 | sinh | Funktio double sinh(double arg) palauttaa argumentin hyperbolisen sinin arg. |
18 | sqrt | Funktio double sqrt(double nro) palauttaa argumentin neliöjuuren nro. Jos argumentti on negatiivinen, tapahtuu virhe, koska funktio menee soveltamisalan ulkopuolelle. |
19 | rusketus | Toiminto kaksoisrusketus (double arg) palauttaa argumentin tangentin arg. Argumentin arvo on ilmaistava radiaaneina. |
20 | tanh | Funktio double tanh(double arg) palauttaa argumentin hyperbolisen tangentin arg. |
Viimeksi päivitetty: 31.10.2015
Math-luokkaa käytetään erilaisten matemaattisten toimintojen suorittamiseen .NET-luokkakirjastossa. Se on staattinen, joten kaikki sen menetelmät ovat myös staattisia.
Katsotaanpa matematiikan luokan menetelmiä:
Abs(kaksoisarvo) : Palauttaa arvoargumentin absoluuttisen arvon
Kaksoistulos = Math.Abs(-12,4); // 12.4
Acos(double value) : Palauttaa arvon kaarikosinin. Arvoparametrin arvon on oltava välillä -1 ja 1
Kaksoistulos = Math.Acos(1); // 0
Asin(kaksoisarvo) : Palauttaa arvon arcsinin. Arvoparametrin arvon on oltava välillä -1 ja 1
Atan(kaksoisarvo): palauttaa arvon arktangentin
BigMul(int x, int y) : palauttaa tuotteen x * y pitkänä objektina
Kaksoistulos = Math.BigMul(100, 9340); // 934000
Katto(kaksoisarvo) : palauttaa pienimmän liukulukukokonaisluvun, joka ei ole pienempi kuin arvo
Kaksoistulos = Math.Ceiling(2.34); // 3
Cos(double d) : palauttaa kulman d kosinin
Cosh(double d) : palauttaa kulman d hyperbolisen kosinin
DivRem(int a, int b, out int tulos) : palauttaa jaon a/b tuloksen ja loppuosa sijoitetaan tulosparametriin
Int tulos; int div = Math.DivRem(14, 5, out tulos); //tulos = 4 // jako = 2
Exp(double d) : Palauttaa luonnollisen logaritmin kantaarvon korotettuna potenssiin d
Lattia(desimaali d) : palauttaa suurimman kokonaisluvun, joka ei ole suurempi kuin d
Kaksoistulos = Math.Floor(2.56); // 2
IEEERemainder(double a, double b) : palauttaa a:n jäännöksen jaettuna b:llä
Kaksoistulos = Math.IEEERemainder(26, 4); // 2 = 26-24
Log(double d) : palauttaa d:n luonnollisen logaritmin
Log(double a, double newBase) : palauttaa luvun logaritmin newBase-pohjan perusteella
Log10(double d) : Palauttaa d:n desimaalilogaritmin
Max(double a, double b) : palauttaa enimmäisluvun a:n ja b:n välillä
Min(double a, double b) : palauttaa vähimmäisluvun a:n ja b:n välillä
Pow(double a, double b) : palauttaa luvun a korotettuna b:n potenssiin
Pyöreä(double d) : Palauttaa d:n pyöristettynä lähimpään kokonaislukuun
Kaksoistulos1 = Math.Round(20.56); // 21 tuplatulos2 = Math.Round(20.46); //20
Pyöreä(kaksois a, pyöreä b) : Palauttaa luvun a pyöristettynä määritettyyn desimaalien määrään, jota edustaa b
Kaksoistulos1 = Math.Round(20.567, 2); // 20.57 tuplatulos2 = Math.Round(20.463, 1); //20.5
Merkki(kaksoisarvo) : Palauttaa arvon 1, jos arvo on positiivinen, ja -1, jos arvo on negatiivinen. Jos arvo on 0, palauttaa 0
Int tulos1 = Math.Sign(15); // 1 int tulos2 = Math.Sign(-5); //-1
Sin(kaksoisarvo): palauttaa kulman arvon sinin
Sinh(kaksoisarvo) : palauttaa kulman arvon hyperbolisen sinin
Sqrt(double value) : palauttaa arvon neliöjuuren
Kaksoistulos1 = Math.Sqrt(16); // 4
Tan(kaksoisarvo): palauttaa kulman arvon tangentin
Tanh(double value) : palauttaa kulman arvon hyperbolisen tangentin
Katkaise(kaksoisarvo): hylkää arvon murto-osan ja palauttaa vain kokonaisluvun
Kaksoistulos = Math.Truncate(16.89); // 16
Math-luokka määrittelee myös kaksi vakiota: Math.E ja Math.PI. Lasketaan esimerkiksi ympyrän pinta-ala:
Console.WriteLine("Anna ympyrän säde"); double radius = Double.Parse(Console.ReadLine()); double area = Math.PI * Math.Pow(säde, 2); Console.WriteLine("Ympyrän pinta-ala säteellä (0) on (1)", säde, alue);
Konsolin lähtö:
Syötä ympyrän säde 20 Ympyrän, jonka säde on 20, pinta-ala on 1256.63706143592
Keskeytä AdBlock tällä sivustolla.
Matemaattiset laskelmat eivät rajoitu vain aritmeettisiin operaatioihin. Niiden lisäksi löydät myös juuria, moduuleja, logaritmeja, trigonometrisiä funktioita jne. Opitaanpa käyttämään tällaisia toimintoja ohjelmissamme.
Jotta voit käyttää matemaattisia funktioita, sinun on sisällytettävä otsikkotiedosto math.h . Se määrittelee monia erilaisia toimintoja, mutta nyt tarkastelemme seuraavaa:
Jotkut matemaattiset funktiot
fabs(x) luvun x moduuli
sqrt(x) luvun x neliöjuuri
sin(x) x:n sini (x radiaaneina)
cos(x) x:n kosini (x radiaaneina)
pow(x, y) laskenta x y
exp(x) laskenta e x
log(x) x:n luonnollinen logaritmi
log10(x) x:n desimaalilogaritmi
Kaksi tärkeää kohtaa.
- Kaikki funktiot palauttavat kaksinkertaisen arvon.
- Funktioparametrit ovat reaalilukuja (double), mutta voit myös välittää kokonaislukuja. Tämä tapahtuu implisiittinen tyyppimuunnos. Kääntäjä tekee reaaliluvun 3.0 kokonaisluvusta, esimerkiksi 3.
Esimerkkejä.
Suorakulmaisen kolmion jalkojen pituudet on annettu. Laske hypotenuusan pituus. Yksinkertainen tehtävä, jolla voit testata Pythagoraan lauseen tuntemusta.
Listaus 1.
#sisältää
Laske näppäimistöltä syötetyn kulman sini. Kulma syötetään asteina.
Listaus 2.
#sisältää
Tässä ohjelmassa on paljon puhuttavaa. Math.h:ssa määritellyt trigonometriset funktiot toimivat radiaanikulmamittauksilla. Ihmiset ovat enemmän tottuneet työskentelemään tutkintojen kanssa. Siksi tässä ohjelmassa muunnosimme ensin arvon asteina radiaaneiksi. Jos tätä ei tehdä, tulos on virheellinen. Tarkista se itse.
Implisiittinen tyyppimuunnos
Kun suoritimme eksplisiittistä tyyppimuunnosa, merkitsimme suluissa ennen arvoa tyypin, johon arvo tulee lähettää. Tätä ei tarvitse tehdä implisiittisessä muunnoksessa. Kääntäjä valitsee automaattisesti tarvittavan tyypin.
Implisiittinen tyyppimuunnos suoritetaan seuraavissa tapauksissa:
- ennen argumenttien välittämistä funktiolle (kuten juuriesimerkissämme. Listaus 1.)
- suorittaa aritmeettisia operaatioita erityyppisillä argumenteilla
- ennen tehtävän suorittamista
Implisiittiset tyyppimuunnossäännöt
- jos aritmeettisia operaatioita suoritetaan erityyppisillä argumenteilla. Molemmat argumentit heitetään suuremmalle tyypille.
Tyyppijärjestys: int< float < double - kun määrätään. Osoitusoperaattorin oikealla puolella oleva arvo valetaan osoitusoperaattorin vasemmalla puolella olevan muuttujan tyyppiin. Kuitenkin, jos suurempi tyyppi määritetään pienemmälle, tarkkuus voi heikentyä.
int+float muunnetaan automaattisesti float+floatiksi
float/int muunnetaan automaattisesti float/float-muotoon
double*float muunnetaan double*doubleksi
int = double double muunnetaan int:ksi murto-osan häviämällä
float = int int muunnetaan floatiksi
C-ohjelman rakenne
1. #sisällytä
2. #sisällytä
3 . käyttämällä nimiavaruutta std – käytä tavallista nimiavaruutta
4. int main(int argc, char *argv)– toiminnon nimi. Mikä tahansa C-ohjelma koostuu yhdestä tai useammasta funktiosta. Kirjallisessa mallissa on vain yksi toiminto - main(). Toiminto nimen kanssa pää täytyy ehdottomasti olla mukana mikä tahansa suoritettava ohjelma .
5. { - kehon toiminnan alku
6. järjestelmä ("tauko") - toimintokutsu järjestelmä argumentin kanssa "tauko". Toiminto odottaa näppäimen painamista.
7. operaattori palata argumentin kanssa EXIT_SUCCESS– päätoiminnon lopetus koodilla 0.
8. ) – toiminnon loppu pää.
Yksinkertaiset C-tietotyypit
Kokonaislukuarvojen esittämiseksi C:ssä tarjotaan seuraavat tietotyypit:
Kirjoita char. Vie muistissa 1 tavun. Käytetään edustamaan merkkejä ja kokonaislukuja 0-255 (-128-127).
Kirjoita int. Vie muistissa 4 tavua. Käytetään edustamaan kokonaislukuja välillä -2 147 483 648 - 2 147 483 647.
Kirjoita float. Vie muistissa 4 tavua. Käytetään edustamaan liukulukuja. 3,4 × 10 -38 - 3,4 × 10 38. Laskentatarkkuus jopa 7 desimaalin tarkkuudella.
Kirjoita kaksinkertainen. Vie muistissa 8 tavua. Käytetään edustamaan liukulukuja. 1,7 × 10 -308 - 1,7 × 10 308. Laskentatarkkuus jopa 15 desimaalin tarkkuudella.
tyyppi tyhjä - tyhjä tyyppi. Käytetään toimintojen kuvaamiseen.
Kirjoita bool – looginen tyyppi. Voi ottaa 2 arvoa: tosi tai epätosi.
C-perusoperaattorit
Operaattori on merkki, joka vaihtaa laskutoimituksia, kun sitä käytetään lausekkeen muuttujaan tai muuhun objektiin. C-kieli esittää suuren joukon aritmeettisia ja loogisia operaattoreita.
Taulukko 4.1. C-kielen unaarioperaattorit
Taulukko 4.2. C-kielen binäärioperaattorit
Operaattorin koodi | Nimi | Leikkauksen tulos | ||
Additiiviset operaattorit | ||||
+ | binääri plus | summan laskeminen, esimerkiksi: int x = 2,y = 1,z; | ||
- | z = x+y; | binäärinen miinus | ||
laskemalla ero, esimerkiksi: int x = 2,y = 1,z; | ||||
* | z = x-y; | Multiplikatiiviset operaattorit | ||
/ | kertolasku | tulon laskeminen, esimerkiksi: int x = 2,y = 1,z; | ||
% | z = x*y; | jako | ||
osamäärän laskeminen, esimerkiksi: int x = 12,y = 2,z; | ||||
&& | z = x/y; | loput | ||
|| | laskemalla jaon jäännös, esimerkiksi: int x = 12,y = 7,z; | z = x%y; | ||
Loogiset operaattorit | ||||
= | looginen JA | loogisella JA:lla yhdistettyjen ehtojen tarkistus | ||
looginen TAI | ||||
< | loogisten TAI ehtojen tarkistaminen | Tehtäväoperaattorit | ||
> | toimeksianto | määrittää tietyn arvon muuttujalle tai toisen muuttujan arvon | ||
<= | Relaatiooperaattorit | Tehtäväoperaattorit<=y, x меньше или равно y | ||
>= | vähemmän kuin | x | ||
enemmän kuin | ||||
= = | x>y, x on suurempi kuin y | pienempi tai yhtä suuri | ||
!= | suurempi tai yhtä suuri | x>=y, x suurempi tai yhtä suuri kuin y | ||
, | Vastaavuusoperaattorit | on yhtä suuri | ||
x= =y, x on yhtä kuin y
ei tasa-arvoinen x!=y, x ei ole yhtä suuri kuin y laskentaoperaattori
suorittaa operaattorilla erotettuja toimintoja vasemmalta oikealle, esimerkiksi y+=5,x-=4,y+=x; Matemaattisten funktioiden kirjasto math.h x. C tukee monia matemaattisia funktioita, joiden prototyypit on kuvattu tiedostossa matematiikka.h x Tutustutaanpa joihinkin niistä. . abs (int x) palauttaa kokonaisluvun moduulin x acos (double x) palauttaa luvun arkkosinin radiaaneina x asin (kaksois x) palauttaa luvun arsinin radiaaneina. atan (kaksois x) palauttaa luvun arktangentin radiaaneina. atof(merkki *s, double x) muuntaa merkkijonon x(x s todelliseen numeroon x. x cos (double x) palauttaa luvun kosinin annettu radiaaneina) radiaaneina. katto (double x) pyöristää numeron radiaaneina. ylöspäin exp(double x) x(x palauttaa luvun eksponentin upeat (double x) palauttaa reaaliluvun moduulin radiaaneina. synti (kaksois x) palauttaa luvun sinin x(x radiaaneina). | sqrt (double x) x. x palauttaa luvun neliön rusketus (kaksois x) palauttaa luvun tangentin x radiaaneina). kerros (kaksi x) alaspäin fmod(double x, double y) x palauttaa jäännöksen luvun jakamisen jälkeen kerros (kaksi x) numeroa kohti y. radiaaneina. hypot (kaksois x, tupla y) palauttaa luvun summan neliön radiaaneina. ja numerot loki (kaksois x) palauttaa luvun luonnollisen logaritmin log10 (kaksois x) y alkuperäisen luvun kokonaislukuosa kirjoitetaan radiaaneina. pow(double x, double y) palaa x jossain määrin kerros (kaksi x) |
Jos haluat käyttää kaikkia yllä olevia toimintoja, yhdistä kirjasto