Mafunzo ya lugha ya Python inayoingiliana. Darasa la Calculus na Hisabati

Vitendaji vyote vya hesabu vinahitaji kichwa . Programu za C hutumia kichwa

1 acos Fanya kazi acos mbili (mara mbili arg arg
2 asin Fanya kazi maradufu (double arg) inarudisha arc cosine ya hoja arg. Thamani ya hoja ya chaguo za kukokotoa lazima iwe katika masafa kutoka -1 hadi 1, vinginevyo hitilafu itatokea.
3 atani Fanya kazi mara mbili atan(double arg) inarudisha mwanzilishi wa hoja arg.
4 atan2 Fanya kazi mara mbili atan2(double x, mara mbili y) hurejesha arctangent ya thamani y/x.
5 dari Fanya kazi dari mbili (mara mbili nambari) hurejesha nambari kamili iliyo karibu zaidi (inayowakilishwa kama nambari halisi ya sehemu inayoelea) ambayo si chini ya thamani ya hoja. nambari. Kwa mfano, ceil(1.02) itarudi 2.0. Uongofu huu unaitwa kuzunguka-zunguka.
6 cos Fanya kazi double cos(double arg) inarudisha kiini cha hoja arg
7 cosh Fanya kazi cosh mbili (mara mbili arg) hurejesha kosini piambano ya hoja arg.
8 exp Fanya kazi exp mara mbili (double arg) hurejesha msingi wa logariti asilia e, kuinuliwa kwa nguvu arg.
9 vitambaa Fanya kazi za vitambaa viwili (mara mbili nambari) hurejesha thamani kamili (thamani ya modulo) ya hoja nambari.
10 sakafu Kazi ya sakafu mbili (mara mbili nambari) hurejesha nambari kamili (inayowakilishwa kama nambari halisi ya sehemu inayoelea) isiyo kubwa kuliko thamani ya hoja. nambari. Kwa mfano, sakafu (1.02) itarudisha nambari 1.0. Uongofu huu unaitwa duru ya chini.
11 fmod Chaguo za kukokotoa double fmod(double x, double y) hurejesha sehemu iliyobaki ya x/y.
12 frexp Fanya kazi double frexp(double nambari, int * exp) huongeza nambari nambari na mantissa kuanzia 0.1 hadi 1, bila kujumuisha 1, na kielelezo kamili, kwa hivyo nambari = mantissa. Chaguo za kukokotoa hurejesha mantissa na thamani ya kipeo huhifadhiwa katika utofauti ulioelekezwa na kiashirio. exp.
13 logi Fanya kazi logi mara mbili (mara mbili nambari) hurejesha logariti asilia ya nambari nambari. Ikiwa hoja nambari
14 log10 Fanya kazi mara mbili log10(double nambari) hurejesha logariti ya desimali ya nambari nambari. Ikiwa hoja nambari ni hasi au sifuri, hitilafu hutokea.
15 povu Fanya kazi mara mbili (mara mbili msingi, mara mbili exp) hurejesha nambari msingi, kuinuliwa kwa mamlaka exp. Ikiwa msingi wa shahada msingi ni sawa na sifuri, na kipeo exp ni chini ya au sawa na sifuri, hitilafu inaweza kutokea kutokana na hoja kuacha kikoa cha ufafanuzi wa chaguo la kukokotoa (kosa la kikoa). Hitilafu hii pia hutokea ikiwa hoja msingi ni hasi na hoja exp sio nambari kamili.
16 dhambi Fanya dhambi mara mbili (mara mbili arg) inarudisha sine ya hoja arg. Thamani ya hoja lazima ionyeshwa kwa radiani.
17 sinh Fanya kazi mara mbili sinh(double arg) inarudisha sine hyperbolic ya hoja arg.
18 sqrt Fanya kazi sqrt mbili (mara mbili nambari) inarudisha mzizi wa mraba wa hoja nambari. Ikiwa hoja ni hasi, hitilafu hutokea kutokana na chaguo za kukokotoa kwenda nje ya upeo.
19 tan Fanya kazi tan mara mbili (mara mbili arg) inarudisha tanjiti ya hoja arg. Thamani ya hoja lazima ionyeshwa kwa radiani.
20 tanh Fanya kazi tanh mbili (double arg) hurejesha tanjenti ya hoja piambano arg.

Waendeshaji hesabu wafuatao wamefafanuliwa katika C++.

Nyongeza;

- kutoa;

* kuzidisha

/ mgawanyiko

% mgawanyiko wa modulo

- - kupungua (kupungua kwa 1)

Ongezeko (ongezeko kwa 1).

Kitendo cha waendeshaji +, -, * na / sanjari na kitendo cha waendeshaji sawa katika aljebra. Zinaweza kutumika kwa aina yoyote ya data ya nambari iliyojumuishwa.

Baada ya kutumia kiendesha mgawanyiko (/) kwa nambari kamili, salio itatupwa. Kwa mfano, matokeo ya mgawanyiko kamili 10/3 ni 3. Salio la mgawanyiko linaweza kupatikana kwa kutumia operator wa modulo (%). Kwa mfano, 10%3 ni sawa na 1. Hii ina maana kwamba katika C++ opereta % haiwezi kutumika kwenye aina zisizo kamili za data.

Waendeshaji wa ongezeko (++) na kupunguza (- -) wana sifa za kuvutia sana. Kwa hiyo, wanapaswa kupewa tahadhari maalum.

Opereta wa kuongeza huongeza nambari 1 kwa uendeshaji wake, na mwendeshaji wa kupunguza huondoa 1 kutoka kwa uendeshaji wake. Hii ina maana kwamba maelekezo:

sawa na maagizo haya:

Na maagizo:

sawa na maagizo haya:

Waendeshaji wa kuongeza na kupunguza wanaweza kuonekana ama kabla ya uendeshaji wao (fomu ya kiambishi awali) au baada yake (fomu ya postfix). Kwa mfano, maagizo

inaweza kuandikwa upya kama kiambishi awali

X;//aina ya kiambishi awali cha opereta ya nyongeza

au fomu ya kurekebisha posta:

x++;//postfix fomu ya opereta ya nyongeza

Katika mfano uliopita, haijalishi ikiwa opereta ya nyongeza ilitumiwa katika fomu ya kiambishi awali au postfix. Lakini ikiwa opereta ya kuongeza au kupunguza inatumiwa kama sehemu ya usemi mkubwa, basi fomu ambayo inatumiwa ni muhimu sana. Ikiwa opereta kama hiyo itatumika katika fomu ya kiambishi awali, basi C++ itafanya operesheni hii kwanza ili operesheni ipate thamani mpya, ambayo itatumiwa na maneno mengine. Ikiwa opereta inatumiwa katika fomu ya kurekebisha, C++ hutumia thamani yake ya zamani katika usemi na kisha kufanya operesheni ambayo husababisha operesheni kuchukua thamani mpya.

Kazi za hisabati

Lugha ya C++ ina utendaji maalum wa kukokotoa misemo ya aljebra. Kazi zote hizo zimo katika faili tofauti ya kichwa, math.h. Kwa hiyo, kutumia kazi katika msimbo wa programu, lazima ujumuishe faili hii kwa kutumia maagizo

#pamoja na

Hapa kuna kazi za msingi za aljebra za C++.

abs(x) - moduli ya nambari kamili;

maabara (x) - moduli ya nambari "ndefu";

vitambaa (x) - moduli ya nambari ya hatua inayoelea;

sqrt (x) - uchimbaji wa mizizi ya mraba;

pow(x,y) - kuinua x kwa nguvu y;

cos (x) - cosine;

dhambi(x) - sine;

tan (x) - tangent;

acos (x) - arc cosine;

asin (x) - arcsine;

atan(x) - arctangent;

exp(x) - kielelezo cha nguvu ya x;

logi (x) - logarithm ya asili;

log10 (x) - logarithm ya decimal

Wakati wa kuinua nambari kwa nguvu ya sehemu, dhehebu la nguvu ya sehemu lazima iandikwe kwa fomu halisi. Kwa mfano: mzizi wa mraba wa a umeandikwa hivi: pow(a,1/ 2.0 )

Wacha tuonyeshe utumiaji wa vitendaji na mifano.

5. Waendeshaji wa I/O katika C++

Ili kuonyesha ujumbe kwenye skrini, tumia taarifa ifuatayo ya C++:

koti<<”текст”;

#pamoja na

Taarifa iliyoambatanishwa katika nukuu mbili ni ujumbe ambao unapaswa kuonyeshwa kwenye skrini. Katika C++, mlolongo wowote wa herufi zilizoambatanishwa katika nukuu mbili huitwa kamba kwa sababu huwa na herufi kadhaa zilizounganishwa pamoja ili kuunda kizuizi kikubwa (kipengele).

Mstari katika taarifa ya COUT unaweza kuwa na kinachojulikana kama herufi za kadi-mwitu - herufi ambazo haziko kwenye kibodi au zinazotumiwa kwa herufi muhimu katika maandishi ya programu. Kila herufi kama hiyo hutanguliwa na herufi "\".

Hapa kuna orodha ya alama kama hizi:

\a - ishara ya sauti

\n - nenda kwa laini mpya

\t - kichupo cha mlalo

\v - kichupo cha wima

\\ - kurudi nyuma

\' - nukuu moja

\” – nukuu mara mbili

\? - alama ya swali.

Kwa mfano, mwendeshaji kama:

cout>>"mfano\nmaandishi";

Neno "mfano" litaonekana kwenye mstari mmoja, na neno "maandishi" kwa upande mwingine.

Mendeshaji wa fomu:

cout>>“duka\””seagull\””;

Neno "Seagull" litaonyeshwa kwa nukuu mbili.

Mbali na maandishi, opereta anaweza kuonyesha maadili ya vijiti kwenye skrini, akiyachanganya na maandishi.

koti<<”a=”<

Toleo lililoumbizwa

Ili kurudisha maadili ya urefu au usahihi uliopewa, opereta wa cout ana mipangilio kadhaa:

    cout.width(namba) - jumla ya urefu wa thamani ya pato

    cout.precision(namba) - idadi ya maeneo ya desimali

    cout.fill('alama ya kichungi') - ishara inayojaza nafasi za ziada kwenye skrini

Mpangilio wa cout.width umewekwa upya hadi thamani yake ya awali baada ya kutekeleza taarifa moja ya matokeo. Kwa hiyo, lazima ielezwe tofauti kwa kila variable au mstari.

Mipangilio ya vigezo hivi lazima ifanywe kabla ya kumwita opereta wa pato.

Kwa mfano:

//elezea vigezo

kuelea a=125.478, b=625.365;

// weka idadi ya wahusika katika uga wa koma

usahihi.cout(2);

//weka kishika nafasi kwa nafasi za ziada

cout.fill('0');

// onyesha maadili tofauti kwenye skrini

koti<<”a=”;

koti<<” b=”;

//weka jumla ya urefu wa nambari

Kurekebisha upana wa uwanja (upana) na kichungi (kujaza) kunaeleweka wakati wa kutoa data kwenye jedwali. Mara nyingi, unaweza kupata tu kwa mpangilio sahihi.

Kusafisha skrini

Lugha ya C ++ ina kazi ambayo inakuwezesha kufuta skrini ya habari ya maandishi. Utendaji huu unaonekana kama:

Chaguo hili la kukokotoa liko katika faili ya kichwa cha conio.h. Kwa hivyo, ili kuitumia, faili hii lazima ijumuishwe kwa kutumia maagizo:

#pamoja na

Kupanga pause ili kuona matokeo

Baada ya kutekeleza programu, kuna kawaida kurudi moja kwa moja kwenye dirisha na maandishi ya chanzo. Hii hukuruhusu kuona matokeo ambayo programu inaonyesha kwenye skrini. Njia ya nje ya hali hii inaweza kutumia funguo za Alt + F5, wakati wa kushinikiza, dirisha na msimbo wa programu imefichwa. Kubonyeza vitufe hivi tena kunarudisha kidirisha cha msimbo kwenye skrini.

Hata hivyo, ukitengeneza faili ya EXE inayoweza kutekelezwa, basi haitawezekana kutumia funguo hizi na matokeo yatabaki kutoonekana kwa mtumiaji.

Ili kutatua tatizo hili, unaweza kuongeza kazi mwishoni mwa programu ambayo inasimama hadi ufunguo wowote utakaposisitizwa. Utendaji huu unaonekana kama:

pata();

Chaguo hili la kukokotoa liko katika faili ya kichwa cha conio.h. Kwa hivyo, ili kuitumia, faili hii lazima ijumuishwe kwa kutumia maagizo:

#pamoja na

Opereta ya kuingiza data ya kibodi

Ili kuingiza data kutoka kwa kibodi kwenye C++ kuna mwendeshaji:

cin>>kigeu;

Taarifa hii inasitisha programu na kusubiri hadi mtumiaji aingize thamani ya kutofautiana na bonyeza ENTER.

Kutumia operator mmoja, unaweza kuingiza maadili ya vigezo kadhaa. Kwa kufanya hivyo, operator ameandikwa kwa fomu:

cin>>kigeu1>>kigeu2>>. . .>>kigeu;

Unapoanzisha programu, ingiza kila thamani iliyotenganishwa na nafasi na ubonyeze ENTER mwishoni.

Taarifa ya COUT iko kwenye faili ya kichwa cha iostream.h. Kwa hivyo, ili kuitumia, faili hii lazima ijumuishwe kwa kutumia maagizo:

#pamoja na (Anza)

6. Mpango wa mfano katika C++

Ili kuonyesha, hebu tutatue tatizo moja. Andika programu ili kupata thamani ya chaguo la kukokotoa:

Programu inaweza kuonekana kama hii:

//unganisha faili ili kupanga I/O

#pamoja na

// jumuisha faili ya kutumia vitendaji vya algebra

#pamoja na

// ni pamoja na faili kuita kazi ya kusafisha skrini

#pamoja na

// kichwa cha programu kuu

// eleza vigezo vitatu vya aina halisi

// futa skrini

// onyesha kidokezo cha maandishi kwenye skrini

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

// omba uingizaji wa kibodi wa vigezo viwili: a na b

//hesabu thamani ya chaguo za kukokotoa

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

// weka usahihi wa matokeo kwa sehemu 3 za desimali

usahihi.cout(3);

// onyesha matokeo kwenye skrini

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

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

// pause ili kuona matokeo

// kumaliza programu kuu

Kazi za hisabati za lugha ya C


Lugha za C na C++ hufafanua aina mbalimbali za kazi za hisabati. Mwanzoni, lugha zote mbili ziliunga mkono seti sawa ya kazi 22 za hisabati. Walakini, lugha ya C++ ilipokua, safu ya utendakazi iliyofafanuliwa ndani yake ilipanuliwa. Kisha, katika toleo la C99, ukubwa wa maktaba ya hisabati iliongezeka kwa kiasi kikubwa. Kama matokeo ya mabadiliko haya, maktaba za kazi za hesabu za lugha za C na C ++ zilianza kutofautiana sana kutoka kwa kila mmoja. Kwa hivyo, sura hii inaelezea kazi za hisabati za lugha C (pamoja na zile zilizoongezwa katika toleo la C99), na Sura ya 9 inazingatia kikamilifu kazi za lugha ya C++. Hata hivyo, kumbuka kwamba seti ya awali ya kazi za hisabati bado inaungwa mkono na matoleo yote ya C na C++.

Ili kutumia kazi zote za hisabati, programu lazima iwe na kichwa . Mbali na kutangaza kazi za hisabati, kichwa hiki kinafafanua macros moja au zaidi. Katika toleo la C89 kichwa Jumla ya HUGE_VAL pekee ndiyo imefafanuliwa, ambayo ni thamani mbili inayoashiria kufurika.

Macro zifuatazo zinafafanuliwa katika toleo la C99.

Toleo la C99 linafafanua macros zifuatazo (kama-kazi) zinazoainisha thamani.

Katika toleo la C99, macros ya kulinganisha yafuatayo yanafafanuliwa, hoja ambazo (a na b) lazima ziwe maadili ya hatua zinazoelea.

Macros hizi hushughulikia maadili ambayo sio nambari sawa bila kutupa tofauti za aina halisi.

Macro za EDOM na ERANGE pia hutumiwa na vitendaji vya hesabu. Macro hizi zimefafanuliwa kwenye kichwa .

Makosa katika matoleo C89 na C99 yanashughulikiwa kwa njia tofauti. Kwa hivyo, katika C89, ikiwa hoja ya utendakazi wa hesabu haianguki ndani ya kikoa ambacho imefafanuliwa, thamani fulani ya utekelezaji hurejeshwa na kigezo kamili cha jumla cha errno kimewekwa kuwa thamani ya EDOM. Katika C99, hitilafu ya ukiukaji wa kikoa pia husababisha thamani mahususi ya utekelezaji kurejeshwa. Hata hivyo, thamani ya math_errhandling inaweza kuonyesha ikiwa vitendo vingine vinafanywa. Ikiwa math_errhandling ina thamani MATH_ERRNO, kigezo kamili cha kimataifa kilichojengewa ndani kinawekwa kuwa thamani ya EDOM. Ikiwa math_errhandling ina thamani MATH_ERREXCEPT, ubaguzi halisi unatupwa.

Katika C89, ikiwa chaguo la kukokotoa litatoa tokeo ambalo ni kubwa sana kwa uwakilishi kushughulikia, kufurika hutokea. Katika hali hii, chaguo za kukokotoa hurejesha HUGE_VAL na errno imewekwa kwa thamani ERANGE ikionyesha hitilafu ya masafa. Wakati mtiririko wa chini unagunduliwa, chaguo za kukokotoa hurejesha sifuri na kuweka errno kuwa ERANGE. Katika C99, hitilafu ya ziada pia husababisha chaguo za kukokotoa kurudisha thamani. HUGE_VAL, na ikipoteza umuhimu - sifuri. Ikiwa math_errhandling ina thamani MATH_ERRNO, tofauti ya kimataifa errno imewekwa kwa thamani ERANGE inayoonyesha hitilafu ya masafa. Ikiwa math_errhandling ina thamani MATH_ERREXCEPT, ubaguzi halisi unatupwa.

Katika toleo la C89, hoja za utendakazi wa hisabati lazima ziwe thamani mbili na thamani zinazorejeshwa na chaguo za kukokotoa lazima ziwe thamani mbili. Katika toleo la C99, lahaja za kuelea na ndefu mbili za kazi hizi ziliongezwa, ambazo hutumia viambishi f na l, mtawaliwa. Kwa mfano, katika toleo la C89, kazi ya sin() inafafanuliwa kama ifuatavyo.

dhambi mbili (double arg);

Katika toleo la C99, ufafanuzi hapo juu wa sin() kazi inaungwa mkono na marekebisho mawili zaidi yanaongezwa - sinf() na sinl().

Kuelea sinf(kuelea arg); sinl ndefu mbili (mrefu mara mbili arg);

Shughuli zinazofanywa na kazi zote tatu ni sawa; data tu inayofanyiwa shughuli hizi hutofautiana. Kuongeza marekebisho ya f- na 1 kwa vipengele vya hisabati hukuwezesha kutumia toleo linalolingana vyema na data yako.

Kwa kuwa C99 imeongeza vipengele vingi vipya, inafaa kuorodhesha kando vipengele vinavyoauniwa na C89 (pia vinatumika katika C++).

acos asin atani atan2 dari
cos cosh exp vitambaa sakafu
fmod frexp ldexp logi log10
muundo povu dhambi sinh sqrt
tan tanh

Na jambo moja zaidi: pembe zote zimeainishwa kwenye radians.


Angalia pia


acos- Hurejesha thamani ya arc cosine
acosh- Hurejesha thamani ya arc kosine ya hyperbolic
asin- Hurejesha thamani ya arcsine
asinh- Hurejesha thamani ya hyperbolic arcsine
atani- Hurejesha thamani ya arctangent
atan2- Hurejesha arctangent ya a/b
atan- Hurejesha thamani ya arctangenti ya hyperbolic
cbrt- Hurejesha thamani ya mchemraba
dari- Hurejesha nambari ndogo kabisa ambayo ni kubwa kuliko thamani ya hoja iliyotolewa
nakala- Huipatia hoja iliyopewa ishara ambayo hoja iliyobainishwa inayo
cos- Hurejesha thamani ya cosine
cosh- Hurejesha thamani ya kosini piambano
erf- Hurejesha thamani ya chaguo za kukokotoa za hitilafu
erfc- Hurejesha thamani ya ziada ya chaguo la kukokotoa
exp- Hurejesha thamani ya kipeo
exp2- Hurejesha nambari 2 iliyoinuliwa kwa nguvu uliyopewa
expm1- Hurejesha thamani ya logarithm e iliyopunguzwa kwa moja
vitambaa- Hurejesha thamani kamili
fdim- Hurejesha sifuri au tofauti ya hoja mbili ulizopewa
sakafu- Hurejesha nambari kamili ambayo ni ndogo kuliko au sawa na thamani ya hoja iliyotolewa
fma- Hurejesha thamani ya a*b+c hoja zilizotolewa
fmax- Hurejesha thamani kubwa zaidi ya mbili
fmin- Hurejesha ndogo kati ya thamani mbili
fmod- Hurejesha sehemu iliyobaki
frexp- Hugawanya nambari fulani katika mantissa na kipeo chake
hypot- Hurejesha urefu wa hypotenuse kutokana na urefu wa miguu miwili
ilogb- Huangazia thamani ya kielelezo
ldexp- Hurejesha thamani ya usemi num*2^exp.

Operesheni +, -, * na ** zimefafanuliwa kwa nambari kamili. Mgawanyiko / operesheni ya nambari kamili hurejesha nambari halisi (thamani ya kuelea). Pia, chaguo za kukokotoa za upanuzi hurejesha thamani ya kuelea ikiwa kipeo ni nambari hasi.

Lakini pia kuna operesheni maalum ya mgawanyiko kamili, unaofanywa kwa kukataa sehemu ya sehemu, ambayo inaashiria // (inalingana na operesheni ya div katika Pascal). Inarudisha nambari kamili: sehemu kamili ya mgawo. Operesheni nyingine inayohusiana ni operesheni ya kuchukua salio ya mgawanyiko, iliyoonyeshwa na% (inalingana na operesheni ya mod katika Pascal). Kwa mfano:

Chapisha(17 / 3) # kitachapisha 5.66666666667 chapa(17 // 3) # kitachapisha chapa 5(17 % 3) # kitachapisha 2

Baadhi ya vitendaji vilivyoorodheshwa (int, round, abs) ni vya kawaida na havihitaji moduli ya hesabu kutumika.

Kazi Maelezo
Kuzungusha
int(x) Huzungusha nambari kuelekea sifuri. Hiki ni kitendakazi cha kawaida; hauitaji kujumuisha moduli ya hesabu ili kuitumia.
duru(x) Huzungusha nambari hadi nambari kamili iliyo karibu zaidi. Ikiwa sehemu ya sehemu ya nambari ni 0.5, basi nambari inazungushwa hadi nambari iliyo karibu zaidi.
duru(x, n) Huzungusha nambari x hadi sehemu za desimali. Hiki ni kitendakazi cha kawaida; hauitaji kujumuisha moduli ya hesabu ili kuitumia.
sakafu(x) Huzungusha nambari chini (“sakafu”), na sakafu(1.5) == 1 , sakafu(-1.5) == -2
dari(x) Huzungusha nambari juu (“dari”), kwa dari(1.5) == 2 , dari(-1.5) == -1
abs(x) Moduli (thamani kamili). Hiki ni kipengele cha kawaida.
Mizizi, logarithms
sqrt(x) Kipeo. Matumizi: sqrt(x)
logi(x) Logarithm ya asili. Inapoitwa log(x, b), hurejesha logarithm kwenye base b .
e Msingi wa logarithms asili ni e = 2.71828...
Trigonometry
dhambi(x) Sine ya pembe iliyobainishwa katika radiani
cos(x) Kosine ya pembe iliyobainishwa katika radiani
tan(x) Tanji ya pembe, iliyobainishwa katika radiani
sina(x) Arcsine, hurejesha thamani katika radiani
acos(x) Arc cosine, hurejesha thamani katika radiani
atani(x) Arctangent, hurejesha thamani katika radiani
atan2(y, x) Pembe ya polar (katika radiani) ya uhakika na viwianishi (x, y).
digrii(x) Hubadilisha pembe iliyobainishwa katika radiani hadi digrii.
radiani(x) Hubadilisha pembe iliyobainishwa katika digrii kuwa radiani.
pi Mara kwa mara π = 3.1415...