cout<<"Для
продолжения нажмите любую клавишу. . .";
//pause para tingnan ang resulta
//tapusin ang pangunahing programa
Ang lahat ng mga pag-andar ng matematika ay ipinatupad bilang mga pamamaraan ng klase ng Math, ang pangunahing nito ay ipinakita sa Talahanayan 4.1
Talahanayan 4.1 – Mga pangunahing larangan at pamamaraan ng klase sa Math
Pangalan ng pamamaraan
|
Paglalarawan
|
Mga paliwanag
|
|
|
|x|, isinulat bilang Abs(x)
|
|
arc cosine
|
Acos(double x), ang anggulo ay tinukoy sa radians
|
|
arcsine
|
|
|
Arctangent
|
|
|
Arctangent
|
Atan2(double x,double y) – anggulo na ang padaplis ay resulta ng paghahati ng y sa x
|
|
Trabaho
|
BigMul(int x,int y)
|
|
Bilugan
|
Celling(doble x)
|
|
|
|
|
Hyperbolic cosine
|
|
|
Dibisyon at natitira
|
|
|
|
2,71828182845905
|
|
Exhibitor
|
|
|
Bilugan pababa
|
Sahig(doble x)
|
|
Natitira sa dibisyon
|
IEEERemainder(dobleng x, double y)
|
|
Likas na logarithm
|
|
|
Decimal logarithm
|
|
|
Maximum ng 2 numero
|
|
Pagpapatuloy ng Talahanayan 4.1
Pangalan ng pamamaraan
|
Paglalarawan
|
Mga paliwanag
|
|
Minimum ng 2 numero
|
|
|
Ang halaga ng pi
|
3,14159265358979
|
|
Exponentiation
|
Pow(x,y) – x sa kapangyarihan ng y
|
|
Pag-ikot
|
Round(3.1)=3 Round(3.8)=4
|
|
Sign ng numero
|
|
|
|
|
|
Hyperbolic sine
|
|
|
Kuwadrado na ugat
|
|
|
|
|
|
Hyperbolic tangent
|
|
Isang halimbawa ng isang linear na programa sa pagkalkula gamit ang isang ibinigay na formula
namespace ConsoleApplicationl
( static void Main()
Console.WriteLine("Enter x");
buf=Console.ReadLine();
double x=Convert.ToDouble(buf);
Console.WriteLine("Enter alfa");
buf=Console.ReadLine();
double a=double.Parse(buf);
double y=Math.Sqrt(Math.PI*x)-
Math.Exp(0.2*Math.Sqrt(a))+
2*Math.Tan(2*a)+
1.6e3*Math.Log10(Math.Pow(x,2));
Console.WriteLine("Para sa x= (0) at alfa =(1)", x,a);
Console.WriteLine(“Resulta =” +y); )))
Lecture 5. C# language operators
Ang komposisyon ng mga operator ng wikang C#, ang kanilang syntax at semantika ay minana mula sa wikang C++. Ang anumang expression na nagtatapos sa isang semicolon ay isang pahayag.
Block o tambalang pahayag
Gamit ang mga kulot na brace, ang maraming mga pahayag sa wika (maaaring may interspersed na mga deklarasyon) ay maaaring pagsamahin sa isang solong syntactic construct na tinatawag na block o compound statement:
operator_1
operator_N
Sa syntactically, ang isang bloke ay itinuturing bilang isang pahayag at maaaring gamitin saanman sa mga konstruksyon kung saan ang syntax ay nangangailangan ng isang solong pahayag. Ang katawan ng loop at ang mga sanga ng if statement ay karaniwang kinakatawan bilang isang bloke.
Walang laman na operator
Ang walang laman na pahayag ay "walang laman" na winakasan ng isang semicolon. Ito ay ginagamit kapag ang syntax ay nangangailangan ng isang operator, ngunit ang kahulugan ay hindi. Minsan kapaki-pakinabang na ituring ang mga nawawalang pahayag bilang isang umiiral nang walang laman na pahayag. Syntactically katanggap-tanggap na magpasok ng mga dagdag na semicolon, kung ipagpalagay na ang mga walang laman na pahayag ay ipinapasok. Halimbawa, ang sumusunod na construction ay syntactically valid:
para sa (int j=1; j<5;
j++)
//оператор цикла
(;;;); //walang laman na operator
Maaari itong ituring bilang isang pagkaantala ng oras, idle operation.
Ang lahat ng mga function sa matematika ay nangangailangan ng isang header . Ang mga C program ay gumagamit ng isang header
1
|
acos
|
Function na double acos(double arg arg |
2
|
asin
|
Function double asin(double arg) ibinabalik ang arc cosine ng argumento arg. Ang halaga ng argument ng function ay dapat nasa hanay mula -1 hanggang 1, kung hindi, magkakaroon ng error. |
3
|
atan
|
Function double atan(double arg) ibinabalik ang arctangent ng argumento arg.
|
4
|
atan2
|
Function double atan2(double x, doble y) ibinabalik ang arctangent ng halaga y/x.
|
5
|
kisame
|
Function na double ceil(double num) ay nagbabalik ng pinakamalapit na integer (kinakatawan bilang isang floating-point real number) na hindi bababa sa halaga ng argumento num. Halimbawa, ang ceil(1.02) ay magbabalik ng 2.0. Ang conversion na ito ay tinatawag na over-rounding. |
6
|
cos
|
Function na double cos(double arg) ibinabalik ang cosine ng argumento arg |
7
|
cosh
|
Function na double cosh(double arg) ay nagbabalik ng hyperbolic cosine ng argumento arg.
|
8
|
exp
|
Function na double exp(double arg) ibinabalik ang base ng natural na logarithm e, itinaas sa isang kapangyarihan arg.
|
9
|
fabs
|
Function na double fabs(double num) ibinabalik ang absolute value (modulo value) ng argument num.
|
10
|
sahig
|
Function na double floor(doble num) ay nagbabalik ng pinakamalaking integer (kinakatawan bilang isang floating-point real number) na hindi mas malaki kaysa sa halaga ng argumento num. Halimbawa, ibabalik ng floor(1.02) ang numerong 1.0. Ang conversion na ito ay tinatawag na down rounding. |
11
|
fmod
|
Ang function na double fmod(double x, double y) ay nagbabalik ng natitira sa division x/y. |
12
|
frexp
|
Function na double frexp(double num, int * exp) nagpapalawak ng isang numero num sa pamamagitan ng isang mantissa mula 0.1 hanggang 1, hindi kasama ang 1, at isang integer exponent, kaya num = mantissa. Ibinabalik ng function ang mantissa at ang halaga ng exponent ay nakaimbak sa variable na itinuro ng pointer exp.
|
13
|
log
|
Function na double log(doble num) ibinabalik ang natural na logarithm ng isang numero num. Kung ang argumento num |
14
|
log10
|
Function na double log10(double num) ibinabalik ang decimal logarithm ng isang numero num. Kung ang argumento num ay negatibo o zero, nangyayari ang isang error. |
15
|
pow
|
Function na double pow(double base, doble exp) ay nagbabalik ng isang numero base, itinaas sa kapangyarihan exp. Kung ang batayan ng antas base ay katumbas ng zero, at ang exponent exp ay mas mababa sa o katumbas ng zero, ang isang error ay maaaring mangyari dahil sa argument na umaalis sa domain ng kahulugan ng function (domain error). Nagaganap din ang error na ito kung ang argument base ay negatibo at ang argumento exp ay hindi isang integer. |
16
|
kasalanan
|
Function double sin(doble arg) ay nagbabalik ng sine ng argumento arg. Ang halaga ng argumento ay dapat na ipahayag sa radians. |
17
|
sinh
|
Function double sinh(double arg) ibinabalik ang hyperbolic sine ng argumento arg.
|
18
|
sqrt
|
Function na double sqrt(double num) ibinabalik ang square root ng argument num. Kung ang argument ay negatibo, ang isang error ay nangyayari dahil sa pag-andar na lumalabas sa saklaw. |
19
|
kayumanggi
|
Function na double tan(double arg) ay nagbabalik ng tangent ng argumento arg. Ang halaga ng argumento ay dapat na ipahayag sa radians. |
20
|
tanh
|
Function na double tanh(double arg) ay nagbabalik ng hyperbolic tangent ng argumento arg.
|
Mangyaring suspindihin ang AdBlock sa site na ito.
Ang mga kalkulasyon sa matematika ay hindi limitado sa mga pagpapatakbong arithmetic lamang. Bilang karagdagan sa mga ito, maaari ka ring makahanap ng mga ugat, module, logarithms, trigonometric function, atbp. Alamin natin kung paano gamitin ang mga naturang function sa aming mga programa.
Upang gumamit ng mga mathematical function, kailangan mong isama ang header file math.h . Tinutukoy nito ang maraming iba't ibang mga pag-andar, ngunit sa ngayon ay titingnan natin ang mga sumusunod:
Ilang mathematical function
fabs(x) modulus ng numero x
sqrt(x) square root ng numero x
sin(x) sine ng x (x sa radians)
cos(x) cosine ng x (x sa radians)
pow(x, y) pagkalkula x y
exp(x) pagkalkula e x
log(x) natural logarithm ng x
log10(x) decimal logarithm ng x
Dalawang mahalagang punto.
- Ang lahat ng mga function ay nagbabalik ng dobleng halaga.
- Ang mga parameter ng function ay mga tunay na numero (doble), ngunit maaari ka ring magpasa ng mga integer. Mangyayari ito implicit na uri ng conversion. Ang compiler ay gagawa ng tunay na numero 3.0 mula sa isang integer, halimbawa 3.
Mga halimbawa.
Ang mga haba ng mga binti ng isang tamang tatsulok ay ibinibigay. Kalkulahin ang haba ng hypotenuse. Isang simpleng problema upang subukan ang iyong kaalaman sa Pythagorean theorem.
Listahan 1.
#isama #isama // ikonekta ang math.h int main (walang bisa) ( int a, b, c2; scanf("%d",&a); scanf("%d",&b); c2 = a*a + b*b; printf ("c = %.2f\n", sqrt(c2));
Kalkulahin ang sine ng anggulong ipinasok mula sa keyboard. Ang anggulo ay ipinasok sa mga degree.
Listahan 2.
#isama #isama // connect 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); return 0; )
Maraming dapat pag-usapan sa programang ito. Ang mga function na trigonometric na tinukoy sa math.h ay gumagana sa mga sukat ng radian na anggulo. Ang mga tao ay mas sanay na magtrabaho sa mga degree. Samakatuwid, sa program na ito una naming na-convert ang halaga mula sa mga degree sa radians. Kung hindi ito nagawa, magiging mali ang resulta. Suriin ito para sa iyong sarili.
Implicit na uri ng conversion
Kapag nagsasagawa ng isang tahasang uri ng conversion, isinaad namin sa panaklong bago ang halaga ang uri kung saan dapat i-cast ang halaga. Hindi na kailangang gawin ito sa isang implicit na conversion. Awtomatikong pipiliin ng compiler ang kinakailangang uri.
Implicit type conversion ay ginagawa sa mga sumusunod na kaso:
- bago ipasa ang mga argumento sa function (tulad ng sa aming halimbawa ng ugat. Listahan 1.)
- pagsasagawa ng mga operasyong aritmetika na may iba't ibang uri ng mga argumento
- bago isagawa ang takdang-aralin
Mga panuntunan sa conversion na implicit na uri
- kung ang mga pagpapatakbo ng aritmetika ay isinasagawa gamit ang iba't ibang uri ng mga argumento. Ang parehong mga argumento ay inihagis sa mas malaking uri.
Uri ng order: int< float
< double
- kapag naatasan. Ang value sa kanan ng assignment operator ay inihagis sa uri ng variable sa kaliwa ng assignment operator. Gayunpaman, kung ang isang mas malaking uri ay itinalaga sa isang mas maliit, ang pagkawala ng katumpakan ay maaaring mangyari.
Ang int+float ay awtomatikong mako-convert sa float+float
float/int ay awtomatikong mako-convert sa float/float
ang double*float ay gagawing double*double
int = double double ay mako-convert sa int na may pagkawala ng fractional na bahagi
float = int int ay mako-convert sa float
Mga pag-andar ng matematika ng wikang C
Tinutukoy ng mga wikang C at C++ ang isang malawak na iba't ibang mga pag-andar sa matematika. Sa una, sinusuportahan ng parehong wika ang parehong hanay ng 22 mathematical function. Gayunpaman, habang nabuo ang wikang C++, lumawak ang arsenal ng mga function na tinukoy dito. Pagkatapos, sa bersyon C99, ang laki ng mathematical library ay tumaas nang malaki. Bilang resulta ng mga pagbabagong ito, ang mga aklatan ng mga pag-andar ng matematika ng mga wikang C at C++ ay nagsimulang magkaiba nang malaki sa bawat isa. Samakatuwid, inilalarawan ng kabanatang ito ang matematikal na pag-andar ng wikang C (kabilang ang mga idinagdag sa bersyon C99), at ang Kabanata 9 ay eksklusibong nakatuon sa mga paggana ng wikang C++. Gayunpaman, tandaan na ang orihinal na hanay ng mga function ng matematika ay sinusuportahan pa rin ng lahat ng bersyon ng C at C++.
Para magamit ang lahat ng mathematical function, dapat isama ng program ang header . Bilang karagdagan sa pagdedeklara ng mga mathematical function, tinutukoy ng header na ito ang isa o higit pang mga macro. Sa bersyon C89 ang header Ang HUGE_VAL macro lamang ang tinukoy, na isang dobleng halaga na nagpapahiwatig ng pag-apaw.
Ang mga sumusunod na macro ay tinukoy sa bersyon C99.
Tinutukoy ng bersyon ng C99 ang mga sumusunod na macro (tulad ng function) na nag-uuri ng isang halaga.
Sa bersyon C99, ang mga sumusunod na macro sa paghahambing ay tinukoy, ang mga argumento kung saan (a at b) ay dapat na mga floating point value.
Ang mga macro na ito ay pinangangasiwaan ang mga halaga na hindi mga numero nang maayos nang hindi nagtatapon ng mga tunay na uri ng pagbubukod.
Ang EDOM at ERANGE macros ay ginagamit din ng mga math function. Ang mga macro na ito ay tinukoy sa header .
Ang mga error sa mga bersyon C89 at C99 ay pinangangasiwaan nang iba. Kaya, sa C89, kung ang argumento ng math function ay hindi nasa loob ng domain kung saan ito tinukoy, ibinabalik ang ilang value na partikular sa pagpapatupad at ang built-in na global integer variable na errno ay nakatakda sa halaga ng EDOM. Sa C99, ang isang error sa paglabag sa domain ay nagreresulta din sa isang value na partikular sa pagpapatupad na ibinalik. Gayunpaman, ang halaga ng math_errhandling ay maaaring magpahiwatig kung ang ibang mga aksyon ay ginagawa. Kung ang math_errhandling ay naglalaman ng value na MATH_ERRNO, ang built-in na global integer variable na errno ay itatakda sa halaga ng EDOM. Kung ang math_errhandling ay naglalaman ng value na MATH_ERREXCEPT, isang tunay na exception ang ihahagis.
Sa C89, kung ang isang function ay bumubuo ng isang resulta na masyadong malaki para sa representasyon na pangasiwaan, isang overflow ang magaganap. Sa kasong ito, ang function ay nagbabalik ng HUGE_VAL at ang errno ay nakatakda sa ERANGE na halaga na nagpapahiwatig ng isang error sa saklaw. Kapag may nakitang underflow, ang function ay nagbabalik ng zero at itinatakda ang errno sa ERANGE. Sa C99, ang isang overflow na error ay nagiging sanhi din ng pag-andar na magbalik ng isang halaga. HUGE_VAL, at kung mawawalan ito ng kabuluhan - zero. Kung ang math_errhandling ay naglalaman ng value na MATH_ERRNO, ang global variable na errno ay itatakda sa value na ERANGE na nagsasaad ng error sa range. Kung ang math_errhandling ay naglalaman ng value na MATH_ERREXCEPT, isang tunay na exception ang ihahagis.
Sa bersyon C89, ang mga argumento sa mathematical function ay dapat na doble ang uri at ang mga halaga na ibinalik ng mga function ay may uri ng doble. Sa bersyon C99, idinagdag ang float at long double variant ng mga function na ito, na gumagamit ng mga suffix na f at l, ayon sa pagkakabanggit. Halimbawa, sa bersyon C89, ang sin() function ay tinukoy bilang mga sumusunod.
Dobleng kasalanan(double arg);
Sa bersyon C99, ang kahulugan sa itaas ng sin() function ay sinusuportahan at dalawa pang pagbabago ang idinagdag - sinf() at sinl().
Float sinf(float arg); mahabang double sinl(mahabang double arg);
Ang mga operasyon na ginagawa ng lahat ng tatlong mga function ay pareho; tanging ang data na sumailalim sa mga operasyong ito ang naiiba. Ang pagdaragdag ng f- at 1-modifications sa mga mathematical function ay nagbibigay-daan sa iyong gamitin ang bersyon na pinakaangkop sa iyong data.
Dahil nagdagdag ang C99 ng napakaraming bagong feature, sulit na ilista nang hiwalay ang mga feature na sinusuportahan ng C89 (ginagamit din ang mga ito sa C++).
acos |
asin |
atan |
atan2 |
kisame |
cos |
cosh |
exp |
fabs |
sahig |
fmod |
frexp |
ldexp |
log |
log10 |
modf |
pow |
kasalanan |
sinh |
sqrt |
kayumanggi |
tanh |
|
|
|
At isa pang bagay: ang lahat ng mga anggulo ay tinukoy sa mga radian.
Tingnan din
acos - Ibinabalik ang halaga ng arc cosine
acosh - Ibinabalik ang halaga ng hyperbolic arc cosine
asin - Ibinabalik ang halaga ng arcsine
asinh - Ibinabalik ang hyperbolic arcsine value
atan - Ibinabalik ang halaga ng arctangent
atan2 - Ibinabalik ang arctangent ng a/b
atanh - Ibinabalik ang halaga ng hyperbolic arctangent
cbrt - Ibinabalik ang cube root value
ceil - Ibinabalik ang pinakamaliit na integer na mas malaki kaysa sa halaga ng ibinigay na argumento
copysign - Binibigyan ang ibinigay na argumento ng tanda na mayroon ang tinukoy na argumento
cos - Ibinabalik ang halaga ng cosine
cosh - Ibinabalik ang halaga ng hyperbolic cosine
erf - Ibinabalik ang halaga ng function ng error
erfc - Nagbabalik ng opsyonal na halaga ng function ng error
exp - Ibinabalik ang exponent value
exp2 - Ibinabalik ang numero 2 na itinaas sa ibinigay na kapangyarihan
expm1 - Ibinabalik ang halaga ng natural na logarithm e binawasan ng isa
fabs - Ibinabalik ang ganap na halaga
fdim - Nagbabalik ng zero o ang pagkakaiba ng dalawang ibinigay na argumento
floor - Ibinabalik ang pinakamalaking integer na mas mababa sa o katumbas ng halaga ng ibinigay na argumento
fma - Ibinabalik ang halaga ng a*b+c na ibinigay na mga argumento
fmax - Ibinabalik ang mas malaki sa dalawang value
fmin - Ibinabalik ang mas maliit sa dalawang value
fmod - Ibinabalik ang natitirang bahagi ng dibisyon
frexp - Hinahati ang isang ibinigay na numero sa mantissa at exponent nito
hypot - Ibinabalik ang haba ng hypotenuse na ibinigay sa haba ng dalawang binti
ilogb - Kinukuha ang exponential value
ldexp - Ibinabalik ang halaga ng expression na num*2^exp.