Interaktiivne Pythoni keele õpetus. Arvutuse ja matemaatika tund

Kõigile matemaatilised funktsioonid vaja päist . C-programmid kasutavad päist

1 acos Funktsioon double acos (double arg arg
2 asin Funktsioon double asin (double arg) tagastab argumendi kaarekoosinuse arg. Funktsiooni argumendi väärtus peab olema vahemikus -1 kuni 1, vastasel juhul tekib tõrge.
3 atan Funktsioon double atan (double arg) tagastab argumendi arktangensi arg.
4 atan2 Funktsioon double atan2(double x, kahekordne y) tagastab väärtuse arktangensi y/x.
5 lae Funktsioon topeltlagi (double nr) tagastab lähima täisarvu (esitatud ujukoma reaalarvuna), mis ei ole seda väärtusest väiksem argument nr. Näiteks ceil(1.02) tagastab 2.0. Seda teisendust nimetatakse üleümardamiseks.
6 cos Funktsioon double cos (double arg) tagastab argumendi koosinuse arg
7 cosh Funktsioon double cosh (double arg) tagastab argumendi hüperboolse koosinuse arg.
8 eksp Funktsioon double exp(double arg) tagastab naturaallogaritmi aluse e, tõstetud võimule arg.
9 fabs Funktsioon double fabs (double nr) tagastab absoluutväärtus argumendi (mooduli väärtus). nr.
10 korrus Funktsioon kahekorruseline (kahekordne nr) tagastab suurima täisarvu (esitatud ujukoma reaalarvuna), mis ei ole suurem kui argumendi väärtus nr. Näiteks põranda(1.02) tagastab arvu 1.0. Seda teisendust nimetatakse alla ümardamiseks.
11 fmod Funktsioon double fmod(double x, double y) tagastab jaotuse x/y jäägi.
12 frexp Funktsioon double frexp(double nr, int * eksp) laiendab arvu nr mantissiga vahemikus 0,1 kuni 1, välja arvatud 1, ja täisarvu eksponendiga, nii nr = mantiss. Funktsioon tagastab mantissi ja eksponendi väärtus salvestatakse muutujasse, millele osuti osutab eksp.
13 logi Funktsioon double log (double nr) tagastab naturaallogaritm numbrid nr. Kui argument nr
14 log10 Funktsioon double log10(double nr) tagastab arvu kümnendlogaritmi nr. Kui argument nr negatiivne või võrdne nulliga, ilmneb tõrge.
15 pow Funktsioon double pow (double alus, kahekordne eksp) tagastab numbri alus, tõstetud võimule eksp. Kui kraadi alus alus on võrdne nulliga ja eksponendiga eksp on nullist väiksem või sellega võrdne, võib funktsiooni definitsiooni domeenist lahkuva argumendi tõttu tekkida tõrge (domeeni viga). See viga ilmneb ka siis, kui argument alus on negatiivne ja argument eksp ei ole täisarv.
16 patt Funktsioon double sin (double arg) tagastab argumendi siinuse arg. Argumendi väärtus tuleb väljendada radiaanides.
17 sinh Funktsioon double sinh(double arg) tagastab argumendi hüperboolse siinuse arg.
18 sqrt Funktsioon double sqrt(double nr) tagastab ruutjuur argument nr. Kui argument on negatiivne, ilmneb tõrge, kuna funktsioon väljub reguleerimisalast.
19 tan Funktsioon topeltpruun (topelt arg) tagastab argumendi puutuja arg. Argumendi väärtus tuleb väljendada radiaanides.
20 tanh Funktsioon double tanh(double arg) tagastab argumendi hüperboolse puutuja arg.

Järgmised aritmeetilised operaatorid on defineeritud C++ keeles.

Lisamine;

– lahutamine;

* korrutamine

/ jaotus

% mooduljaotus

– – vähendamine (vähenda 1 võrra)

Suurendage (suurendage 1 võrra).

Operaatorite +, –, * ja / tegevus langeb kokku sarnaste operaatorite tegevusega algebras. Neid saab rakendada mis tahes sisseehitatud numbrilise andmetüübi jaoks.

Pärast jagamistehteri (/) rakendamist täisarvule jäetakse ülejäänud osa kõrvale. Näiteks täisarvu jagamise 10/3 tulemus on 3. Jagamise ülejäänud osa saab mooduloperaatori (%) abil. Näiteks 10%3 on 1. See tähendab, et C++ puhul ei saa % operaatorit kasutada mittetäisarvuliste andmetüüpide puhul.

Kasvamis- (++) ja kahandamisoperaatoritel (– –) on väga huvitavad omadused. Seetõttu tuleks neile pöörata erilist tähelepanu.

Kasvamisoperaator lisab oma operandile arvu 1 ja kahandamisoperaator lahutab oma operandist 1. See tähendab, et juhised:

sarnane sellele juhisele:

Ja juhised:

sarnane sellele juhisele:

Kasvamise ja vähendamise operaatorid võivad esineda kas enne nende operandit (eesliite vorm) või pärast seda (postfiksi vorm). Näiteks juhised

saab prefiksina ümber kirjutada

X;//kasvuoperaatori eesliide vorm

või postfix vorm:

x++;//kasvuoperaatori postfix vorm

Eelmises näites ei olnud vahet, kas juurdekasvuoperaatorit kasutati ees- või järelliite kujul. Kui aga operaatorit juurdekasvu või kahanemist kasutatakse osana suuremast avaldisest, siis on väga oluline, millisel kujul seda kasutatakse. Kui sellist operaatorit kasutatakse eesliite vorm, siis C++ sooritab selle toimingu esmalt, nii et operandile saab uue väärtuse, mida seejärel kasutab ülejäänud avaldis. Kui operaatorit kasutatakse postfix-vormingus, kasutab C++ avaldises oma vana väärtust ja sooritab seejärel toimingu, mis paneb operandi omandama uue väärtuse.

Matemaatilised funktsioonid

C++ keeles on algebraliste avaldiste arvutamiseks spetsiaalsed funktsioonid. Kõik sellised funktsioonid sisalduvad eraldi päisefailis math.h. Seetõttu peate programmikoodi funktsioonide kasutamiseks ühendama see fail kasutades käskkirja

#kaasa

Siin on C++ põhilised algebralised funktsioonid.

abs(x) - täisarvu moodul;

labs(x) - "pika" täisarvu moodul;

fabs(x) - ujukomaarvu moodul;

sqrt(x) - ruutjuure ekstraheerimine;

pow(x,y) - x-i tõstmine astmeni y;

cos(x) - koosinus;

sin(x) - siinus;

tan(x) - puutuja;

acos(x) - kaarkoosinus;

asin(x) - arcsiinus;

atan(x) – arktangent;

exp(x) - astendaja x astmele;

log(x) - naturaallogaritm;

log10(x) – kümnendlogaritm

Arvu tõstmisel murdarvuni tuleb murdarvu nimetaja kirjutada reaalsel kujul. Näiteks: ruutjuur a kirjutatakse järgmiselt: pow(a,1/ 2.0 )

Demonstreerime funktsioonide kasutamist näidetega.

5. I/O operaatorid C++ keeles

Teate kuvamiseks ekraanil kasutage järgmist C++ lauset:

cout<<”текст”;

#kaasa

Jutumärkides olev teave on sõnum, mida tuleks ekraanil kuvada. Keeles C++ nimetatakse iga topeltjutumärkidesse pandud märgijada stringiks, kuna see koosneb mitmest tähemärgist, mis on omavahel ühendatud suurema ploki (elemendi) moodustamiseks.

COUT-lause rida võib sisaldada nn metamärke – märke, mida klaviatuuril ei ole või mida kasutatakse programmi teksti võtmemärkidena. Igale sellisele metamärgile eelneb märk "\".

Siin on selliste sümbolite loend:

\a – helisignaal

\n – mine uuele reale

\t – horisontaalne sakk

\v – vertikaalne sakk

\\ - kaldkriips

\’ – üksiktsitaat

\” – topelttsitaat

\? - küsimärk.

Näiteks operaator nagu:

cout>>“näide\ntekst”;

Sõna "näide" ilmub ühele reale ja sõna "tekst" teisele reale.

Vormi operaator:

cout>>“pood\””kajakas\””;

Sõna "Kajakas" kuvatakse jutumärkides.

Lisaks tekstile saab operaator kuvada ekraanil muutujate väärtusi, kombineerides neid tekstiga.

cout<<”a=”<

Vormindatud väljund

Teatud pikkuse või täpsusega väärtuste tagastamiseks on operaatoril cout mitu seadet:

    cout.width(number) – väljundväärtuse kogupikkus

    cout.precision(number) – kümnendkohtade arv

    cout.fill(‘täitesümbol’) – sümbol, mis täidab ekraanil lisapositsioone

Säte cout.width lähtestatakse pärast ühe väljundlause täitmist algväärtusele. Seetõttu tuleb see iga muutuja või rea jaoks eraldi määrata.

Nende parameetrite seadistused tuleb teha enne väljundoperaatorile helistamist.

Näiteks:

//muutujate kirjeldamine

ujuki a=125,478, b=625,365;

//komavälja märkide arvu määramine

cout.precision(2);

//seadke lisapositsioonide jaoks kohahoidja

cout.fill('0');

//muutujate väärtuste kuvamine ekraanil

cout<<”a=”;

cout<<” b=”;

//määrab numbri kogupikkuse

Välja laiuse (laiuse) ja täiteaine (täite) reguleerimine on mõistlik andmete tabelisse väljastamisel. Enamasti saate hakkama ainult täppisseadega.

Ekraani puhastamine

C++ keeles on funktsioon, mis võimaldab ekraanilt tekstiteavet tühjendada. See funktsioon näeb välja selline:

See funktsioon asub päisefailis conio.h. Seetõttu tuleb selle kasutamiseks lisada see fail, kasutades direktiivi:

#kaasa

Pausi korraldamine tulemuse vaatamiseks

Pärast programmi täitmist toimub tavaliselt automaatne tagasipöördumine lähtetekstiga aknasse. See ei võimalda teil vaadata tulemust, mida programm ekraanil kuvab. Väljapääs sellest olukorrast võib olla klahvide Alt+F5 kasutamine, vajutamisel on programmikoodiga aken peidetud. Nende klahvide uuesti vajutamisel kuvatakse koodiaken tagasi.

Kui aga loote käivitatava EXE-faili, on neid võtmeid võimatu kasutada ja tulemus jääb kasutajale nähtamatuks.

Selle probleemi lahendamiseks saate programmi lõppu lisada funktsiooni, mis peatub kuni suvalise klahvi vajutamiseni. See funktsioon näeb välja selline:

saada();

See funktsioon asub päisefailis conio.h. Seetõttu tuleb selle kasutamiseks lisada see fail, kasutades direktiivi:

#kaasa

Klaviatuuri andmesisestuse operaator

Klaviatuurilt andmete sisestamiseks C++ keeles on operaator:

cin>>muutuja;

See lause peatab programmi ja ootab, kuni kasutaja sisestab muutuja väärtuse ja vajutab ENTER.

Ühe operaatori abil saate sisestada mitme muutuja väärtused. Selleks kirjutatakse operaator järgmisel kujul:

cin>>muutuja1>>muutuja2>>. . .>>muutuja;

Programmi käivitamisel sisestage iga väärtus tühikuga eraldatuna ja vajutage lõpus ENTER.

COUT-lause asub päisefailis iostream.h. Seetõttu tuleb selle kasutamiseks lisada see fail, kasutades direktiivi:

#kaasa (algus)

6. Näidisprogramm C++ keeles

Selle demonstreerimiseks lahendame ühe probleemi. Kirjutage programm funktsiooni väärtuse leidmiseks:

Programm võib välja näha selline:

//ühendage fail I/O korraldamiseks

#kaasa

//kaasake fail algebraliste funktsioonide kasutamiseks

#kaasa

//kaasake fail ekraani tühjendamise funktsiooni kutsumiseks

#kaasa

//peaprogrammi pealkiri

//kirjeldada kolme reaaltüüpi muutujat

//tühjendage ekraan

//kuvab ekraanile tekstivihje

cout<<"Введите значения a и b:";

//taotleb kahe muutuja klaviatuurisisendit: a ja b

//arvutab funktsiooni väärtuse

c=sin(a)+pow(cos(b),2);

//määrab tulemuse väljundi täpsuseks 3 kohta pärast koma

cout.precision(3);

//tulemuse kuvamine ekraanil

cout<<"Функция равна:"<

cout<<"Для продолжения нажмите любую клавишу. . .";

//peatage tulemuse vaatamiseks

//põhiprogrammi lõpetamine

C keele matemaatilised funktsioonid


C- ja C++-keeled määratlevad mitmesuguseid matemaatilisi funktsioone. Alguses toetasid mõlemad keeled sama 22 matemaatilist funktsiooni. C++ keele arenedes aga laienes selles defineeritud funktsioonide arsenal. Seejärel suurenes versioonis C99 matemaatilise teegi suurus märkimisväärselt. Nende muudatuste tulemusena hakkasid C ja C++ keelte matemaatiliste funktsioonide raamatukogud üksteisest oluliselt erinema. Seetõttu kirjeldatakse selles peatükis C-keele matemaatilisi funktsioone (sealhulgas neid, mis on lisatud versioonis C99), ja 9. peatükis keskendutakse ainult C++ keele funktsioonidele. Kuid pidage meeles, et algset matemaatiliste funktsioonide komplekti toetavad endiselt kõik C ja C++ versioonid.

Programmis kõigi matemaatiliste funktsioonide kasutamiseks peate lisama päise . Lisaks matemaatiliste funktsioonide deklareerimisele määratleb see päis ühe või mitu makrot. Versioonis C89 päis Määratletakse ainult makro HUGE_VAL, mis on topeltväärtus, mis annab märku ületäitumisest.

Järgmised makrod on määratletud versioonis C99.

C99 versioon määratleb järgmised makrod (funktsioonilaadsed), mis väärtust klassifitseerivad.

Versioonis C99 on defineeritud järgmised võrdlusmakrod, mille argumendid (a ja b) peavad olema ujukoma väärtused.

Need makrod käsitlevad väärtusi, mis ei ole numbrid, lihtsalt ilma tegelikku tüüpi erandeid tegemata.

Makrosid EDOM ja ERANGE kasutavad ka matemaatilised funktsioonid. Need makrod on määratletud päises .

Versioonide C89 ja C99 vigu käsitletakse erinevalt. Seega, kui C89-s matemaatikafunktsiooni argument ei kuulu domeeni, mille jaoks see on määratletud, tagastatakse mõni rakendusespetsiifiline väärtus ja sisseehitatud globaalne täisarvumuutuja errno määratakse EDOM-i väärtuseks. C99-s tagastatakse domeeni rikkumise tõrge ka juurutusspetsiifilise väärtuse. Kuid math_errhandling väärtus võib näidata, kas tehakse muid toiminguid. Kui math_errhandling sisaldab väärtust MATH_ERRNO, seatakse sisseehitatud globaalse täisarvu muutuja errno väärtuseks EDOM. Kui math_errhandling sisaldab väärtust MATH_ERREXCEPT, tehakse tõeline erand.

Kui funktsioon C89-s genereerib tulemuse, mis on esituse käsitlemiseks liiga suur, tekib ületäitumine. Sel juhul tagastab funktsioon HUGE_VAL ja errno seatakse väärtusele ERANGE, mis näitab vahemiku viga. Kui tuvastatakse alavool, tagastab funktsioon nulli ja määrab errno väärtuseks ERANGE. C99-s põhjustab ületäitumise viga ka funktsiooni väärtuse tagastamise. HUGE_VAL ja kui see kaotab tähtsuse - null. Kui math_errhandling sisaldab väärtust MATH_ERRNO, määratakse globaalse muutuja errno väärtuseks ERANGE, mis näitab vahemiku viga. Kui math_errhandling sisaldab väärtust MATH_ERREXCEPT, tehakse tõeline erand.

Versioonis C89 peavad matemaatiliste funktsioonide argumendid olema topeltväärtused ja funktsioonide poolt tagastatavad väärtused peavad olema topeltväärtused. Versioonis C99 lisati nende funktsioonide float ja long double variandid, mis kasutavad vastavalt järelliidet f ja l. Näiteks versioonis C89 on sin() funktsioon defineeritud järgmiselt.

Topeltpatt(topeltarg);

Versioonis C99 toetatakse ülaltoodud funktsiooni sin() definitsiooni ja lisatud on veel kaks modifikatsiooni – sinf() ja sinl().

Float sinf(float arg); pikk double sinl (pikk topelt arg);

Kõigi kolme funktsiooni sooritatavad toimingud on samad; erinevad ainult nende toimingutega seotud andmed. Matemaatiliste funktsioonide f- ja 1-muudatuste lisamine võimaldab teil kasutada teie andmetele kõige paremini sobivat versiooni.

Kuna C99 lisas nii palju uusi funktsioone, siis tasub eraldi välja tuua C89 toetatud funktsioonid (neid kasutatakse ka C++-s).

acos asin atan atan2 lae
cos cosh eksp fabs korrus
fmod frexp ldexp logi log10
modf pow patt sinh sqrt
tan tanh

Ja veel üks asi: kõik nurgad on määratud radiaanides.


Vaata ka


acos- Tagastab kaarekoosinuse väärtuse
acosh- Tagastab hüperboolse kaare koosinuse väärtuse
asin- Tagastab arcsinuse väärtuse
asinh- Tagastab hüperboolse arsiini väärtuse
atan- Tagastab arktangensi väärtuse
atan2- Tagastab a/b arktangensi
atanh- Tagastab hüperboolse arktangensi väärtuse
cbrt- Tagastab kuubijuure väärtuse
lae- Tagastab väikseima täisarvu, mis on suurem antud argumendi väärtusest
koopiamärk- Määrab antud argumendile märgi, mis määratud argumendil on
cos- Tagastab koosinusväärtuse
cosh- Tagastab hüperboolse koosinuse väärtuse
erf- Tagastab veafunktsiooni väärtuse
erfc- Tagastab täiendava veafunktsiooni väärtuse
eksp- Tagastab eksponendi väärtuse
eksp2- Tagastab arvu 2 tõstetuna antud astmele
expm1- Tagastab naturaallogaritmi e väärtuse, mida on vähendatud ühe võrra
fabs- Tagastab absoluutväärtuse
fdim- Tagastab nulli või kahe antud argumendi erinevuse
korrus- Tagastab suurima täisarvu, mis on väiksem või võrdne antud argumendi väärtusega
fma- Tagastab a*b+c antud argumentide väärtuse
fmax- Tagastab kahest väärtusest suurema
fmin- Tagastab kahest väärtusest väiksema
fmod- Tagastab jaotuse ülejäänud osa
frexp- Jagab antud arvu mantissiks ja eksponendiks
hüpot- Tagastab hüpotenuusi pikkuse, arvestades kahe jala pikkust
ilogb- tõstab esile eksponentsiaalse väärtuse
ldexp- Tagastab avaldise num*2^exp väärtuse.

Tehted +, -, * ja ** on määratletud täisarvude jaoks. Täisarvude jagamine/operatsioon tagastab reaalarvu (ujukväärtuse). Samuti tagastab astendamise funktsioon ujuväärtuse, kui eksponendiks on negatiivne arv.

Kuid on ka spetsiaalne täisarvude jagamise operatsioon, mida tehakse murdosa kõrvalejätmisega, mida tähistatakse // (see vastab Pascali div-tehtele). Tagastab täisarvu: jagatise täisarvulise osa. Teine seotud operatsioon on jagamise ülejäänud osa võtmise tehe, mida tähistatakse %ga (see vastab Pascalis mod-tehtele). Näiteks:

Prindi(17/3) # prindib 5.66666666667 print(17 // 3) # prindib 5 print(17 % 3) # prindib 2

Mõned loetletud funktsioonid (int, round, abs) on standardsed ja ei nõua matemaatikamooduli kasutamist.

Funktsioon Kirjeldus
Ümardamine
int(x) Ümardab arvu nulli suunas. See on standardfunktsioon, selle kasutamiseks ei pea te matemaatikamoodulit kaasama.
ümmargune (x) Ümardab arvu lähima täisarvuni. Kui arvu murdosa on 0,5, ümardatakse arv lähima paarisarvuni.
ümmargune (x, n) Ümardab arvu x n kümnendkohani. See on standardfunktsioon, selle kasutamiseks ei pea te matemaatikamoodulit kaasama.
korrus (x) Ümardab arvu allapoole (“põrand”), kus põrand (1,5) == 1 , põrand (-1,5) == -2
lae(x) Ümardab arvu ülespoole (“lagi”), kus ülem(1,5) == 2 , ülem(-1,5) == -1
abs(x) Moodul (absoluutväärtus). See on standardfunktsioon.
Juured, logaritmid
sqrt(x) Ruutjuur. Kasutamine: sqrt(x)
log(x) Naturaalne logaritm. Kui seda kutsutakse kui log(x, b), tagastab logaritmi baasile b .
e Naturaallogaritmide baas on e = 2,71828...
Trigonomeetria
sin(x) Radiaanides määratud nurga siinus
cos(x) Radiaanides määratud nurga koosinus
tan(x) Nurga puutuja, määratud radiaanides
asin(x) Arcsine, tagastab väärtuse radiaanides
acos(x) Kaarkoosinus, tagastab väärtuse radiaanides
atan (x) Arktangent, tagastab väärtuse radiaanides
atan2(y, x) Koordinaatidega (x, y) punkti polaarnurk (radiaanides).
kraadid (x) Teisendab radiaanides määratud nurga kraadideks.
radiaanid (x) Teisendab kraadides määratud nurga radiaanideks.
pi Püsiv π = 3.1415...