Б. БӨрібаев c/C++ тілдерінде программалау (практикалық курс) Жогары оқу орьшдарына арналған оку құралы э в е р о алматы 2015 Эверо



Pdf көрінісі
бет9/11
Дата24.03.2017
өлшемі16,45 Mb.
#10341
1   2   3   4   5   6   7   8   9   10   11

 +  
sin2 
suil
  Н----- Н 
sin п
8.  Натурал 
п
, накты 
х
 саны берілген. Төмендегі қосындыны есептеніз
sinx
 4- 
sm x2
 4   — Һ 
sinx11
5 нұсқа
9. 
п
 натурал саны берілген. Төмендегі өрнекті  есептеніз:
1
і+--------
і
5 + -------
101
 +
103
10.  Натурал «, накты 
х
 саны берілген.  sin д: + sin sin * +... + sin sin... sin 
x
  өрнегін 
есептеңіз, сонғы көбейтінді 
п
 рет кайталанады.
6 пұсқа
11. 
п
 натурал саны берілген. Төмендегі өрнекті есептеніз.
cosl  cosl + cos2 
COS1 +  ...+COSW
тж Щ
Ш
sinl 
sin 1 + sin 2 
sinl + ... + sin/i
100  1
12. 
Мына өрнекті есептеңіз.  ]Г—

нұсқа
13. Бүтін я, 
к
 сандары берілген 
(п
 > 
k
 > 0).  Есептеніз:  — —— 
+ ^
к\
50
 
J
14. 
Төмендегі өрнекті есептеніз.  ]Г —
Ш
 
1
8 нұсқа
15. 
п
 натурал жэне 
а
 накты саны берілген. Дәрежелеу функциясын пайдаланбай
мәнін есепгеніз.
«Д 1
16. 
Төмендегі орнекп есептеңіз
із  X 1
86

9 нұсқа
17

п
 натурал және 
а
 нақты саны берілген. д ( а + 1 ) . . . ( а  + п —1)  есептеңіз.
128
  j
18. 
Мына өрнекті есептеңіз.  V ---- -
м (2/)2
10 нұсқа
19.
 
л  натурал жэне 
а
 нақты саны берілген. Төмендегі өрнекті есептеңіз.


1 
і  
+ ...+
а  а(а
 +1) 
а(а
 + 1)...(я + 
п)
20. 
Төмендегі өрнекті есегггеңіз,  п натурал сан.  2 ]—
*«і *
11
 нұсқа
21. 
л натурал және а нақты саны берілген. Төмендегі өрнекті есептеңіз
1 1 1  
1
а  а 
а 
а
22. 
Мына өрнекті есептеңіз. 
п
 
натурал сан. 

t«i 
к
12
 нусқа
23. 
п
 натурал жэне 
а
 накты саны берілген.
а ( а  — п ) ( а  — 2п
 ) ... 
( а + п2 )
 есептеңіз.
" f\
 
1
24. 
Төмендегі өрнекті есептеңіз.  п натурал сан. 
--------
-
t
=I (2
k
 +1)
13
 нұсқа
25. 
(
  1 + 
sin 
0.1  )(  1+ 
sin 
0.2 )...(  1 + 
sin 
10 ) өрнегін есептеңіз.
26. 
Төмендегі өрнекті есептеңіз.  п натурал сан.  У   ^
S  
(2k
 + 1)A:
14 нұсқа
27. 
Накты 
х
 саны берілген.  Төмендегі өрнекті есептеңіз:
х3  Xs  *7  i f   xn 
jc
13
х
-----+ ---------+--------- +
3! 
5! 
7! 
9! 
11! 
13!

я
 t / _ |Y*+I
28. 
Төмендегі  өрнекті есептеңіз.  п натурал сан.  V  — -—
ы\ k (k
 
+1)
15 мұсқа
27.  Накты 
х,  а,
  натурал 
п
 саны берілген.  Есептеу  керек:
((...((jc + 
а)1
  + а )2 +... + 
а)2
 + 
а)2
 + 
а

п
 жакшалы;
28. 
Накты 
х
 саны берілген. Төмендегі  өрнекті есептеңіз.
(х -  2)(х
 -  4)(дг -  8)...(дг -  64) 
(jr -  I)(jc -  3)(дг -  7)...(jc -  63)
87

Шексіз косы нд ыл а рд ы есептеу
3.14 есеп. Біртіндеп кішірейетін сандар қосындысын

I   1 
і=і і
=  
1
 +

1
I
1
1
+... +
- • •

3
4
5
п
берілген дэлдікпен 8=10"  анықтау  керек.  Бұл дэлдікке қол жеткізу үшін берілген
есептеп қосындылау 
дәлдіктен 
(Е) 
кем
қатардың  бірсыпыра  мүшелерін 
керек. 
Келесі 
мүше  берілген 
болмағанда, қосындылау токтатылады.
Мүшелер  саны  көбейген  сайын  қосындыны  есептеу 
дәлдігі  артып  отырады.  Сондықтан  қатардын  келесі 
мүшесі  берілген  s  мэнінен  кіші  болтан  сәтте  есептеу 
токтатылады.  Осындай  тәртіпті  сақтай  отырып,  жоға- 
рыдағы  қосындыны  аныктау  алгоритмі  3.15  суретте 
келтірілген. 
Алгоритмге 
сәйкес 
профамма 
мәтіні 
төмендегідей түрде болады.
#include 
#include 
#define epsilon  le-5 
main  ()
{ int I ;
a,s; 
clrscr () ; 
s=0;  i=l; 
do
{a=l.0/i/i; 
s+=a; 
i++;
>
while  (a>epsilon); 
printf ("•*% 
7.4f 
", s ) ; 
getch () ;
>
Көрсетілген дәлдік үшін программа жұмысынын
нэтижесі:
S—  1.6418
3.15 есеп.  Берілген косындыны
п
1
s =   У ~ = і



+ —+ — + —4
2!  3!  4!
1
гг
енгізілетін 
п
  натурал  саны  үшін  табу  керек.  Мұнда  f o r
циклін  пайдапана отырып, факториалды жэне косындыны
цикл ішінде табамыз (3.16 сурет).
//  s  =  1+1/2!*1/3!+.. .+1/п!
#include 
#include  
void main(void)

int p=l,i,n;
88
s=0; i=l
a= 1.0/i
•2
s=s+a; i=i+l
ИЭ
ЖОК
С
СОНЫ
3.14 сурет. Шексіз 
косынды есептеу
басы
пенпзү
3.15 сурст. Қосынды 
табу алгоритмі

float s=0; 
clrscr () ; 
printf("n =  "); 
scanf("%d",6n);
( i = l ;  i< = n ;  i++)

p   *=  i ;
s   +=  1 . 0 / p ;
}
p r i n t f ( " \ n s = % f " , s ) ;
g e t c h (  ) ;

\
Мүшелер саны n=10 болған кездегі программа
нэтижесі:
S=1.718222
Егерде  n  18-ден  артық  болса,  1 /п !  мәні  машиналық 
нөл  мэніне (бөлімі өте үлкен сан)  айналып, санның нөлге 
бөлінгені жайлы мәлімет шығады.
Осы  қатарда 
п 
шексіздікке  ұмтылганда,  қосындыны
берілген  е  =  10"6 дәлдігімен  аныктау  керек  болсын делік.
Қатардың  алғашқы  бірнеше  мүшесі  есептеліп,  оның
келесі  мүшесінің  модулі  8  санынан  аз  болғанда,  қажетті 
дэлдікке қол жеткізілді деп есептеледі (3.16 сурет). 
3.18 сурет. Шексіз

„  >  I 
• 
л 
а
 
косынды табу алгоритмі
/ /   s = l + l / 2 ! + l / 3 ! + . . . + l / n ! + . . .   д ә л д і г і   l e - 6
# in c lu d e   < s t d i o .h >
#in c lu d e   < c o n io .h >
v o id   m a in (v o id )
{  i n t   p = l
,
i = l
,
n ; 
*
f l o a t   a
, s = 0
;
c l r s c r (  )  ;
do
{  p   *=  i+ + ; 
a = 1 .0 /p ; 
s  +=  a ;
i
w h ile ( a   >  l e - 6 ) ;
p r i n t f  (,,\ns=% f ” / s)  ; 
g e t c h (  ) ;
>
Әртүрлі  есептерді  шыгару  кезінде 
sinx,  cosx,  logx, 
e
x,
TX.c. 
элементар  функцияларды  есептеу  кажет  болып 
жатады.  Бұларды  шыгаруды  жеңілдету  үшін  алдын  ала 
олардың  катарга  жіктелуі  программапанып,  жүйелік 
кітапханаларда 
сакгалады 
да, 
керек 
кезінде 
сол 
профаммалар 
пайдаланылады. 
Төменде 
бірнеше 
функцияларды  катарга  жіктеу  аркылы  есептеу  прог- 
раммасы  келтірілген.
89
басы
х
  енгізу
жок
соны
3.17 сурет. 
^  функциясын 
есептеу алгоритмі

3 .1 6  есеп .  Келесі  косындыны
х2  х3 
У
+  X  + ----- + ------+  . . .  4 - ----- +  ...
2! 
3! 
i?
8 = 1 0   дэлдігімен табу  керек  болсын.  Мұндағы х берілген  кез  келген  накты  сан. 
Қосынды  табуды  жеңілдету  үшін  төмендегі  қатынас  аркылы  қатардың  еселігін 
аныктап,  реккуренттік  формуланы  пайдаланып,  оның  келесі  мүшесін  алдыңгы 
мүшесі арқылы өрнектеп алу қажет (3.17 сурет).
а
я+1
• 
п
I
а
(п
 + 1).1х
п 
+ 1
И + 1
а
//s =  1+х+хА2/2!+хлЗ/3!+хА4/4!...+x*n/n!+
//  дөлдігі
#include
=  1е-6,  ехр(х) 
.һ>
функциясы
#include <сопіо.һ> 
#include   
main ()
I
s=l,a=l,x;
I  ) ;
("х = и)  ; 
scanf ("%f1
1
 , fix) ; 
do

a*=x/++i;  s+=a;  } 
while(a >  le-6); 
printf(”s=%f\nM ,s); 
printf ("s=%f11, exp (x)) 
get ch(  );
int  i=0;
>
Программа нәтижесі:
x = 2 .7 5  
8=15.642632 
8=15.642632
3.17 ecen. sinx функциясын жуыктап есептейтін шексіз
косындыны
s = sinx- =  У  (-I)'
/=0
8 — 10  дәлдігімен табу керек. Мұнда да катар еселігін аныкгаймыз:
басы
s = 0; і = 0;
жок
s
 = 
s
 + 
а;
х г ■
 а
А* —
(2/ + 2X2/ + 3)
і = # +  I;
3.18 сурет. sin(x) 
функциясын есептеу 
алгоритм!
а
#1+1
( - о
w+l м2(*+1)+1
( 2 л +  1)!
х 2" ^  (2/7 + 1)'!
(2п + 3)\-хгя*'
а
(
2
(л + 
1
) + 
1
)!-(-
1
)\г
2я+1
2
(2л + 2)(2л + 3)
(2
п
 + 
2М2п
 4 3)
а
я /
Алгоритмнің мәтіндік түрде жазылуы: 
1-кадам 
s ~
 0; / = 0;  деп кабылдау.
90

2
-қадам. Берілген 
х
 мэнін енгізу.
3-кадам. 
а - х ;
  депқабылдау.
4-қааам. Егер 
\а\ <
 10
' 6
 болса, 
8
-қадамға кешу.
5
-кадам. s = s + а;  депқабылдау.
6
-қадам. і = і + 
1
;  деп қабылдау.
х2  a
7-қадам. 
a
 = “
7
— — —— ; деп қабылдап, 4-қадамга көшу.
(
2
і + 
2
Х
2
і + 3)
8
-кадам.  s және sinx мәндерін  шығару.
9-қадам. Соңы.
Алгоритмнің  блоктар тізбегі  түрінде жазылуы  3.18-суретте  келтірілген.  Ал 
С тіліндегі программасы:
/ / s = x - x A3 / 3 !+хА5 / 5 ! - х А7 / 7 ! + . . .
/ /   д ө л д іг і 
e p s   =  l e -
6
,  s i n (х)  функциясы 
# in c lu d e   < s td io .h >
# in c lu d e   < c o n io .h >
#in c lu d e   
m ain ()
4 r

float  s=0,a,x;  int i=0; 
clrscr(  ); 
printf("x="); 
scanf ("%f11, &x) ; 
a=x 
;
w h i l e ( f a b s ( a )   >  l e -
6
)

s+ = a ;
a * = -x * x /< 2 * i+ 2 )/ < 2 * i+ 3 ); 
i+ + ;
>
p r i n t f ( " s = % f \ n " , s ) ;
p r i n t f ( " s i n  (%4.
2
f ) = % f " ,x ,s i n ( x ) ) ;
g e t c h (  ) ;
>
Программа жүмысынын нәтижесі:
x = 0 .85
s=0.751280
s i n (0.85)=0.75280
Талсы рмалар
Берілген есептердің  блок-схемасы мен есептеу профаммасын жазыңдар.
Келесі есептеулерді катардың кезекті мәні абсолюттік шамасы бойынша 
1 0  
санынан кем болғанда тоқтату керек.
91

ОО 
» 
I
1.  Қосындыны  s =  У -------------= — + — +...+------ ------- + ...  табу керек.
(I + 1)(/+2)  2*3  3*4 
(i 4- IX* + 2)
оо
~  т/*лл. 
..... ...... V4 coscc 
cos 2jc  cos3x 
cos 
ix
 
_
2.  Қосындыны s =  > ——  =  cos X + -------+ ------- +... + —r— + ...  кез келген
t t   il
 


i2
нақты 
jc 
үшін аныктау керек.
«  
X U  
r 2 


2i
3.  Қосындыны  S =   COSJC =  V  (-1V------
= X
----- 4---------- + ... + (-1)'----- + ...
t s
 
(2i)S 
2! 
4! 
6! 
(2i)!
jc- т і ң  
мәні 7і/10-нан я-ге дейін қадамы я/10 болып өзгергенде анықтау қажет 
(cos(x) функциясының жіктелуі).
2І+1
 


7
4.  Қосындыны  s = sinx =  У  ( - іУ---------
= х
----- + --------- + ...
ЙГ 
<21+1)1 
3! 
5! 
7!
х-тің мәні -я/2-ден 2я-ге дейін қадамы я/15 болып өзгергенде аныктау қажет
(sin(x) функциясынын жіктелуі).
« 
х * 
х 2 
X* 
X*
5.  Қосындыны s =  е  =  У  — = 
1
+ дг + — +— +... + — +...  х-тің мәні -2-ден 2-ге
t S
  Я 
2! 
3! 
Л
дейін қадамы 0,25  болып өзгергенде анықтау қажет (ехр(х) функциясынын 
жіктелуі).
6.  Қосындыны
оо
2
f+l
У —
(2і + 1)(л + 1)2"1 
х + l
  З(х + 1)3  5(* + 1)5 
(2і + 1)(дг + 1)2'*1
*-тің мәні  1-ден 2-ге дейін қадамы 0,1  болып өзгергенде анықтау қажет.
7.  Төмендегі  қосындыларды  8 =  10"° дәлдігімен табу керек.
*  /   i  \
a) 
S = Y
к
°)s- m
1
/
(
2
к
 +
1) 2
8. Төмендегі  шексіз  қосындыларды да берілген дәлдікпен е (е =10'7) есептендер

^
1
,
1
 
1
 
1
 
1
 

а)  о   -   /  ^ 
— 1 н— — н— — + —~  н— — •+■... ч—— + ...
і=і 
*
2
3
4
5
2
• 
2
ОС*
1
1
1
1
---1
— +-----
1
----- •+•... н-----------Ь...
“ Г
і
*(
і
 + 1) 
1*2 
2 - 3  
3 - 4
і •(« + !)
( -
1) 1
 
,  і 
і 
.  И  )'
I

—= і — + —+...+-—— #
. . .
М,  й 
2!  3! 
/
ас
H i
/■1
V.
^
  4 
8
 
(-
2
)' 
- 2 + ------ + ... + -—-  +
2!  3! 
I
оо
г ) 5  
=  
Х
(-
1
)
/+1
1
(-
1
)
/* 
1
1*2-3  2-3*4  3*4*5
/•(/+!)•(/ +
2
)
+
92

9.  Төмендегі  шексіз  қосындыларды 
х
  айнымалысын  енгізу 
дәлдікпен 
8
 (е =
1 0
“6) есептеңдер.
a) 
S - Y  
{Х~ 1)2М 
- х ~ 1 ^ х- ^
+
  +—
’ 
һ
 (2/ +1) • (* + 1)2*' 
х + 1
  3(* + 1
) 5
 
(2і + ІХх + 1)214'
ч  ^ 

X X  
X
ә) 
S
 = ехр
х
 = 
7
  — 
= \ + х
 +— +— + ...+— + ...
tS іі 
21
 
3! 
/!

t s
 (2і +1) • (JC + 1)2І+’ 
*+1  3(jc+ I
) 3
  "   (2/ + 1)(jc + 1
) 2'* 1
ч  „  
,  „  

X 1 
х 3 
X s  
І Ш
Ш
. )   S - l n < l « )  = § — _ . д , - т + т - т + _ — р я |
I  I  
Ц 
х5 
X 1
 
( -
1
)'дс
2'* 1
г) 
S = arctgx = Ү^— — —= х
- — + 
+
Т ^ 2 і  + 1 



2і +1
Тапсырмалар нұсқалары
1 нұсқа
1)  200-ге  дейінгі  13-ке  қалдықсыз  бөлінетін  бүтін  сандардың  косындысын  табу 
керек. 
v; • -
2)  Жалпы  мүшесі  төменгі  өрнекке  сэйкес  катар  косындысын  8=10“*  дәлдігімен 
анығсгау керек.
-4
°п
 =
Щ
 'яшп
п
2 нұсқа
1

1 0 0
-ге дейінгі жұп он сандардың косындысын табу керек.
2)  Жалпы  мүшесі  төменгі  өрнекке  сэйкес  катар  косындысын 
8 = 1
0
"4
  дэлдігімен 
анықтау керек.

1
а п
  =
2  
Я 
Зп
3 щ сца
1) 
2 0 0
-ге дейінгі так он сандардың косындысын табу керек.
2) Жалпы  мүшесі төменгі өрнекке сэйкес катар 
косындысын 
8 = 1 0 -4
 дэлдігімен аныктау керек.
/   - 

 

%  * ((Зп -  2)(3« 11))


 
93

нусқа
1

2 0 0
-ге дейінгі  17-ге бөлінетін сандар қосындысын
2) Жалпы мүшесі төменгі өрнекке сәйкес қатар 
қосындысын 
6 = 1 0
  дэлдігімен анықтау керек.
(2п
 -
1

2п

нұсқа 
бөлінетін сандао неше^
косындысын  £=
1 0 ~ 4
  дәлдігімен
анықтау кер< 
ол 
10"
9) 
а п
 
= — ~
пі
6 нұсқа
1

2 0 0
-ге дейінгі 
2 1
-ге бөлінетін сандар косындысын табу керек.
2)  Жалпы  мүшесі  төменгі  өрнекке  сәйкес  қатар  косындысын  6=1 O
'4
  дәлдігімен
аныктау керек.
п\
a
П
 
(
2
/
2
)!

щ[сқа
1

2 0 0
-ге дейінгі 
2 1
-ге бөлінетін сандар нешеу екенін табу керек.
2)  Жалпы  мүшесі  төменгі  өрнекке  сәйкес  катар  косындысын  е=10^  дэлдігімен 
аныктау керек.
п\ 
а
п 
пп
8 нусқа
1) 200-ге дейінгі 5-ке бөлгенде 2 капдық қапатын сандар нешеу екенін табу керек.
2)  Жаппы  мүшесі  төменгі  өрнекке  сәйкес  катар  косындысын  6=10  дәлдігімен 
аныктау керек.

пп\
=
п
п
9 нұсқа
сандар
2)  Жалпы  мүшесі  төменгі  өрнекке  сәйкес  қатар  косындысын  6=10  дәлдігімен
аныктау керек.
Зп п\
а п  Ш
----
(Зи)!
94

10 нұсқа
1)  200-ге  дейінгі  бүтін  сандардың  25-ке  қаддықсыз  бөлінетін  сандары  нешеу 
екенін табу керек.
2)  Жалпы  мүшесі  төменгі  ернекке  сәйкес  қатар  косындысын  8=1 O
' 4
  дәлдігімен 
аныктау керек. 
ап
  = — ~
11 нүсқа
1

2 0 0
-ге дейінгі  ІОнга бөлінетін сандар нешеу екенін табу керек.
2)  Жалпы  мүшесі  төменгі  өрнекке  сәйкес  қатар  косындысын 
6=1 
O
' 4
  дәлдігімен
аныктау керек
( « о
2
п
2 п
12 
нұсқа 
бөлінетін сандар нешеү
2)  Жалпы  мүшесі  төменгі  өрнекке  сәйкес  катар  косындысын 
6=1 
O
’4
  дәлдігімен
аныктау керек.
a„ = lg(n\)e  n
13 нұсқа
1) 200-ге дейінгі 25-ке бөлінетін сандар нешеу екенін табу керек.
2)  Жалпы  мүшесі  төменгі  өрнекке  сэйкес  катар  косындысын 
6 = 1
0
-4
  дәлдігімен 
аныктау керек.
ап
 = 
1 0
~я ( /? -
1
)!
95
/
*


C/C++ 
ТІЛДЕРІНДЕГІ ҚОЛДАНУШЫ ФУНКЦИЯЛАРЫ
КүрделІ  әрі  көлемді  программалар жазу кезінде, программаны 
функцияларга
 -  
шагын  бөліктерге  белу  арқылы  жұмысты  жеңілдетуге  және  бастапқы  код 
көрнекілігін  арттыруга  болады.  Мысапы,  агымдагы  бухгалтерлік  шотгармен 
жұмыс  істейтін  профамма жазу  қажет болсын делік.  Мұнда кітап операцияларын 
орындайтын  басты  бір  функция  жазып,  шоттарды  төлеу  ісін  аткаратын  тагы  бір 
функция,  сонан  соң  қабылдап  алынатын  шоттарды  ретгейтін  функция  және 
балансгық  есеп  беру  жұмысын  орындайтын  функциялар  карастырылса
программаны  оку,  түсіну  жеңіл  болар  еді.  Егер  осы  әрекетгерді  орындайтын 
барлық операторлар m a in   ішінде орналаскан  болса,  онда  программа  өте  көлемді 
болып  кетеді  және оны түсіну де  қиын  болар еді. Оның үстіне,  программа көлемі 
мен күрделілігі артқан сайын, онда қате жіберу мүмкіндігі де ұлгаяды.
Берілген  бір  тапсырманы  атқаратын  атаулы  (өзіндік  аты  бар)  операторлар 
жиыны 
қолданушы  функциясы
  болып  табылады.  Мысалы,  h e llo _ _ w o r ld   деп 
аталатын  келесі  функция  p r i n t f  ()  операторы  аркылы  экранга  мәлімет  жазып 
шыгарады:

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   11




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет