Wednesday, October 20, 2010

Lecture 4 c++ Lecture 4

math.h сангийн функцуудын хэрэглээ
<math.h> толгой файлд математикийн функцууд ба макронууд тодорхойлогдсон байдаг.

Макро:
HUGE_VAL
Функц:
acos();
asin();
atan();
atan2();
ceil();
cos();
cosh();
exp();
fabs();
floor();
fmod();
frexp();
ldexp();
log();
log10();
modf();
pow();
sin();
sinh();
sqrt();
tan();
tanh();

Тригонометрийн функцууд
1. acos
double acos(double x);
x-ийн arc cosine утгыг радианаар буцаана.
x-ийн утга нь [-1, +1] завсарт өгөгдөнө. Буцах утга нь [0, pi] завсарт байна.
#include <math.h>
        #include <stdio.h>
        #include <stdlib.h>
 
        void main() 
        { 
           double d; 
           double result; 
           printf("Enter a double:"); 
           scanf("%lg", &d); 
           result = acos(d); 
           printf("\nacos(%lg) = %lg\n", d, result); 
        }
Програмын үр дүн:
Enter a double:. 45
acos(0.45) = 1.10403

2. asin
double asin(double x);
x-ийн arc sine утгыг радианаар буцаана. 
x-ийн утга нь [-1, +1] завсарт өгөгдөнө. Буцах утга нь [-p/2, +p/2] завсарт байна.
3. atan
double atan(double x);
x-ийн arc tangens утгыг радианаар буцаана.
x-ийн дурын утганд [-p/2, +p/2] завсарт байх утга буцаана.
4. atan2
double atan2(doubly y, double x);
[-p/2, +p/2] завсарт tan-1(y/x) функцийн утгыг тооцоолж буцаана.
5. cos
double cos(double x);
x-ийн косинус функцийн утгыг тооцоолж буцаана.
Буцах утгын муж нь [-1, +1] байна.
6. cosh
double cosh(double x);
x-ийн гиперболлог косинус функцийн утгыг тооцоолж буцаана.
Аргумент болон буцах утгын муж байхгүй.
7. sin
double sin(double x);
x-ийн синус функцийн утгыг тооцоолж буцаана.
Буцах утгын муж нь [-1, +1] байна.
8. sinh
double sinh(double x);
x-ийн гиперболлог синус функцийн утгыг тооцоолж буцаана.
Аргумент болон буцах утгын муж байхгүй.
9. tan
double tan(double x);
x-ийн тангенс функцийн утгыг тооцоолж буцаана.
Аргумент болон буцах утгын муж байхгүй.
10. tanh
double tanh(double x);
x-ийн гиперболлог тангенс функцийн утгыг тооцоолж буцаана.
Буцах утгын муж нь [-1, +1] байна.

Exponential, Logarithmic ба зэрэг дэвшүүлэх функцууд
1. exp
double exp(double x);
ex функцийн утгыг тооцоолж буцаана.
2. frexp
double frexp(double x, int *exponent);
x тоог мантисс ба эрэмбэд задална.
3. ldexp
double ldexp(double x, int n);
x тоог 2-ийн n зэрэгтээр үржүүлсэн утгыг буцаана.  x*2^n
4. log
double log(double x);
e суурьтай натурал логарифм x-ийн утгыг буцаана.  
5. log10
double log10(double x);
10 суурьтай логарифм log10(x)-ийн утгыг буцаана.
6. modf
double modf(double x, double *i);
x тоог бүхэл ба бутархай хэсгээр задалж, бүхэл хэсгийг i-д оноож, бутархай хэсгийг үр дүн болгон буцаана.
#include <stdlib.h>
        #include <stdio.h>
        #include <math.h> 
        void main()
        { 
           double d, frac, intr; 
           printf("Enter a double: ");
           scanf("%lg", &d); 
           frac = modf (d, &intr);
           printf("\nFor %g, the fractional part is 
                 %g,\nand the integral part is " 
                 "%g.\n", d, frac, intr); 
        } 

7. pow
double pow(double x, double y);
x-ийн y зэрэгтийг тооцоолж буцаана.
Хэрэв y нь бутархай бол x нь сөрөг байж болохгүй. y нь 0 эсвэл 0-ээс бага бол x нь 0 байж болохгүй.  
#include <stdlib.h>
        #include <stdio.h>
        #include <math.h>

        void main()
        {

           double d1, d2;

           printf("Enter two doubles: ");
           scanf("%lg %lg", &d1, &d2);
           printf("\npow(%g, %g)=%g\n", d1, d2,
                   pow (d1, d2));
        }
Output
Enter two doubles: 2 16
pow(2, 16)= 65536

8. sqrt
double sqrt(double x);
x тооны квадрат язгуурыг олж буцаана.  
#include <stdlib.h>
        #include <stdio.h>
        #include <math.h>
        int main()
        { 
           double d; 
           printf("Enter a double: "); 
           scanf("%lg", &d); 
           printf("\nsqrt(%g)=%g\n", d, sqrt(d)); 
           return 0;
        } 

Output

Enter a double: 81
sqrt(81)= 9

Бусад математикийн функцууд
1. ceil
double ceil(double x);
x-ээс багагүй хамгийн бага бүхэл тоог олж буцаана. .
2. fabs
double fabs(double x);
x тооны абсолют утгыг буцаана.
3. floor
double floor(double x);
x-ээс ихгүй хамгийн их бүхэл утгыг буцаана.
4. fmod
double fmod(double x, double y);
x тоог y тоонд хуваахад гарах үлдэгдэлийг буцаана.
#include <stdio.h>
        #include <stdlib.h>
        #include <math.h>

        void main()
        {
           double d1, d2, r;
           printf("Enter two doubles: ");
           scanf("%lg %lg", &d1, &d2);

           r = fmod(d1, d2);
           printf("fmod(%g, %g)=%g\n", d1, d2, r);
        }
Output
Enter two doubles: 16 7
fmod (16, 7)=2

Бодлого:
  1. Адил талт гурвалжины талын урт өгөгдөв. Гурвалжины талбайг ол.
  2. Гурвалжины талын урт өгөгдөв. Гурвалжины медиануудын уртыг ол.
  3. Гурвалжины талын урт өгөгдөв. Гурвалжины өндрүүдийн уртыг ол.
  4. Гурвалжины талын урт өгөгдөв. Гурвалжины биссектерисүүдийн урт ба өнцгүүдийг ол.
  5. a,b,c тоонууд өгөгдөв. Квадрат тэгшитгэлийн шийдүүдийг ол.
  6. Гурван цэг координатуудаараа өгөгдөв. Энэ гурван цэгээр оройгоо хийсэн гурвалжин оршин байх уу?
  7. Бодит тоо өгөгдөв. Түүний бүхэл ба бутархай хэсгүүдийн цифрүүдийн нийлбэрүүдийг ол.
тогтмолууд
#define M_E         2.71828182845904523536
#define M_LOG2E     1.44269504088896340736
#define M_LOG10E    0.434294481903251827651
#define M_LN2       0.693147180559945309417
#define M_LN10      2.30258509299404568402
#define M_PI        3.14159265358979323846
#define M_PI_2      1.57079632679489661923
#define M_PI_4      0.785398163397448309616
#define M_1_PI      0.318309886183790671538
#define M_2_PI      0.636619772367581343076
#define M_1_SQRTPI  0.564189583547756286948
#define M_2_SQRTPI  1.12837916709551257390
#define M_SQRT2     1.41421356237309504880
#define M_SQRT_2    0.707106781186547524401

No comments:

Post a Comment