« n « endl;
II
cout « "іфифметикалық
cout « "Мак
сим
ал сан:1
1
« max « endl;
cout « "Минимал сан:11
« min « endl;
« average « endl;
75
.
g e t c h О ;
}
П роф ам м а жұмысының орындалу нәтижесі:
Тізбөктө қанша сан болады: 7
Самдарды енгізіңіз:
->34
->23
->9
->12
->9
Арифмөтикалық
Максимал сан:34
Минимал сан:9
:1б.285715
3.11 есеп. Бөлшектер дәрежелерінің косындысын табу.
1
1
I
- .
•s = 1
, мұндағы
п
оерілген натурал сан
// (1/1) Ап+(1/2) Ап+ .
// п - натурал сан
#include
#include
+ (1/п)Ап
басы
tain ()
{
п
енгізү
int i,j,n;
float a,s,p;
clrscr () ;
O
1
тең
cout « "Дәреже көрсеткішін (n)
1
1
cin » n;
// n енгізу
s=0;
// бастапқы қосынды
t
for(i=l;i<=n;i++) // сыртқы цикл басы
{ а = 1 ./ і ; р=а;
f o r (j
=2;j<=n; j
++) p * = a ;
/ қосылатын мүшені есептеу
s+=p; // қосындыны жинақтау
>
cout « "Дэрежелер қосындысы:
" « s « endl;
getch () ;
}
Программа жұмысының орындалу нәтижесі:
і
СОНЫ
3.12 есеп. Алгашқы п жай сандарды аныктау
3.12-су рет. Жай
сандарды аныктау
керек (3.12 сурет)
76
#include
void main()
(
int a=l,n,d; cout « "\nEnter n: ";
cin » n;
for(int i=0;i
{
a + + ; d = l ;
do
// intxi цикл
{
d++;
>
while(a%d!=0 ) ;// ішкі цикл аяғы
if (a— d)
{ cout « a « " " ;
i++; >
>
// сыртқы цикл аяғы
>
Программа жұмысының нәтижесі:
Enter n: 8
2 3 5 7 11 13 17 19
3.13 есеп. Бір белгісізі бар теңдеу түбірін
кесіндіні қак болу (дихотомия) тәсілімен
анықтау керек (3.13 сурет). Трансцендентті
/ (
х) — х — 5s\nx
теңдеуінің түбірі
[а,6]
интервалында, яғни [1,5; 2,5] кесіндісінде
жатканы белгілі, өйткені /
(a)-f (b)<
0. Сол
түбірді табу керек. Ол үшін түбір жаткан
интервалды екіге бөлеміз де, түбірдің қай
бөлікте
жатканын
сол
функцияның
мәндерін кесінді шеттеріндегі және онын
ортасындағы
нүктелерде
анықтаймыз.
Кесіндінің екі шетінде функцияның эртүрлі
таңбалар кабылдайтын,түбір жатқан кесінді
бөлігін тагы екіге бөліп, ары қарай функция
мәндерін салыстыра отырып, біртіндеп
түбірдің
нақты
мәніне
жақындауға
тырысамыз. Осы тәсілді кесіндіні кақ бөлу
немесе дихотомия тәсілі деп атайды.
Осы тәсілмен теңдеу түбірін табу
алгоритм і
3.13
суретте
көрсетілген.
Есептін
программасы
мәтінін төмендегідей түрде жазуга болады:
#include
3.13 сурет./ЭД=0 теңдеуі түбірін
# i n e lu d e
h>
дихотомия тәсілімен аныкгау алгоритмі
a,b,£
енгізу
х —
(a+b)/2,
y=f(x),k=k+\
жок
жок
жок
соңы
77
#i n c l u d e < m ath.h>
float £ (float x)
( return x*x-5*sin(x); >
void main()
(
float a,b,x,y,u,v,eps;
int k*0; // қддамдар саны
cout« "\nEnter a,b,eps:
cin » a » b » eps;
u=f(a); v=f(b);
do
( x= (a+b) / 2 ; y = f (x) ; k++ ;
i f ( y = 0 ) g o to m l;
i f (u*v>0)
{ a=x; u=y; >
e l s e
{ b=x; v=y; >
)
while(fabs(a-b)> eps);
ml: cout
«
nx="
«
x
« ” k=" « k ;
getch() ;
}
Программа жұмысьгнын нәтижесі:
Enter a,b,eps: 1.5 2.5 le-6
x=l.999999 k=20
в
3.14 есеп. Бір тойға келген әрбір кұдага
екі
табактан,
екі
нагашыға
бір
табактан, төрт ауыл адамына бір
табактан ет тартылыгпы. Нәтижесінде
конактағы 100 адамга 100 табак ет
тартылады.
Қонакка
канша
құда,
канша нағашы және қанша ауыл адамы
келген
(барлык
мүмкін
болатын
жағдайларды қарастырыңдар)?
Мынадай теңдеулер кұрамыз (дг —
кұдалар,
у
— нагашылар,
z
—
ауылдастар):
х + у
+
2
=
1 0 0
;
2х +у!2 +z!4
=
1 0 0
;
Енді циклдер аркылы мүмкін болатын
шешімдерді аныктайтын алгоритм
кұраиык.
Есептің алгоритм і үш циклден
түрады (3.14-сурет), сыртқы циклде (2-
ші блок) күдалар санын (х) 1-ден 50-ге
дейін қадамын 1
етіп өзгертеміз,
өйгкені 50 кұданың өзі 100 табақка ие
3.14-сурет. Адамдар санын
табу алгоритмі
бола алады. Келесі циклде нағашылар санын
(у)
2-ден 100-ге дейін кадамын 2 етіп
өзгертеміз (3-ші блок). Соңгы циклде ауылдастар санын
(z)
4-тен 100-ге дейін
қадамын 4 етіп аламыз (4-ші блок).
5-ші блокта адамдар санының
100 екендігі — 1-ші шарт:
х
+ z = 100
және (&&) табақтар саны да 100
болатындыгы — 2-ші шарт:
2х
+y!2+zl4
= 100
қатар тексеріледі де (5-ші блок),
шарт орындалатын жагдайларда
ғана кұдалар, нағашылар және
ауылдастар саны экранга шыга-
рылады (6-шы блок). Осы алго-
ритмге сэйкес программа мэтіні
мынадай болады:
/*
100 қонақ, 100 табақ
1 қүдаға 2 табақ
2 нағашыға 1 табақ
4 ауылдасқа 1 табақ */
#include
#include
main ()
{int. x,y,z; clrscr ();
for(x=l; x<50; x++)
for(y=2; y<100; y+=2)
for(z=4; z<100; z+=4)
{ if ((2*x+y/2+z/4=100) && (x+y+z=100))
printf (”құда = %d нағашы = %d ауылдас = %d\n,
f
,x,y
,
z) ;
>
getch ();
>
Программа жумысынын орындалу нэтижесі:______
қүда = 34 нағашы = 62 ауылдас = 4
қүда = 36 нагашы = 48 ауылдас = 16
қүда = 38 кағашы = 34 ауылдас = 28
құда = 40 нағашы = 20 ауылдас = 40
қүда = 42 нағашы = 6
ауылдас = 52
3.15 есеп. «Бакытты» билет нөмірлерін экранга шыгару керек. Алты орынды
билет нөмірлерінін алгашқы үш цифрының косындысы сонгы үш цифрынын
косындысына тек болса, ол «бакытгы» билет болып саналады.
// Бақытты билеттер немірлерін шыгару
#include
#include
main ()
{
K
^
4
'V'" : -
I
int a,b,c,x,y,z;
79
I
clrscr () ;
for (a=0; a<9; a++)
for (b=0; b<9; b++)
for (c=0; c<9; C++)
for (x = 0 ; x<9; x++)
for (y=0; y<9; y++)
'■ for (z=0; z<9; z++)
if (a + b + c = x + y +
z )
printf{"%i%i%i%i%i%i\nn ,a,b,c,x,y,z ) ;
}
Бақы лау сұрақтары
1. Параметрлі циклдің орындалу схемасы мен жазылуы.
2. Параметрлі цикл бір де бір рет орындалмауы мүмкін бе?
3. for операторының параметрі қандай типтерде бола алады?
4. for операторы параметрінің алғашқы мэні оның соңгы мәнінен кіші бола ма?
5. Параметрлі цикл операторынын неше рет қайталанатынын алдын ала білуге
бола ма, болса — ол қалай аныкталады?
6. for цикл операторындағы жақша ішіндегі бір немесе бірнеше өрнектерді
жазбауға бола ма?
7. for цикл операторы нүктелі үтірмен аяктала ала ма?
8. for цикл операторында қай кезде кұрама операторлар қолданылады?
9. for цикл операторы қай кезде шексіз цикл re айналады?
10.for цикл операторында бірнеше құрама өрнектерді үтір аркылы қалай жазуға
болады?
11.Шарты.алдын ала тексерілетін цикл операторынын орындалу схемасы мен
оның жазылуы.
12.while цикл операторынын ішкі тұлғасы бір де бір рет орындалмауы мүмкін бе?
13.while цикл операторынын шарты катынас таңбаларысыз жазыла ма?
M.while цикл операторы қай кезде шексіз циклге айналады?
15.while цикл операторынын тұлгасындаоның шартына эсер ететін өрнектер
жазыла ма?
16.Шарты соңынан тексерілетін do ... while циклінін орындалу схемасы мен
жазылуы.
ч V*
.
17.do ... while цикл операторынын ішкі тұлғасы бір де бір рет орындалмауы
мүмкін бе?
18.do ... while цикл операторынын шартында қатынас танбасы болмаса, оны к
ақиқат немесе жалган екенін қалай анықтауга болады?
19.do ... while цикл операторынын ішкі тұлғасында шартсыз көшу операторын
қолдануға бола ма?
80
20.dc ... while цикл операторы қай кезде шексіз орындалады?
Т
а
псы рмал а р
1. 1-ден W-re дейінгі сандардың қосындысын жэне арифметикалық ортасын
есептейтін программа кұрыңдар. TV-нің мәні пернетақтадан енгізіледі.
2. 1-ден
N
-ге дейінгі сандардың көбейтіндісін және геометриялық ортасын
есептейтін программа құрыңдар. TV-нің мэні пернетақтадан енгізіледі.
3. Пернетақтадан 7V сан енгізіледі. Енгізілген сандардың ішіндегі теріс, оң
сандардың жэне нөлдердің санын анықтайтын программа құрыңдар.
4. ¥зындықтың 1-ден 20 дюймге дейінгі мәндерін сантиметрге (1 дюйм = 2,54 см)
айналдыратын жэне оны экранга шыгаратын программа кұрыңдар.
5. Банктегі жылдық өсімі 9 пайыздық (проценттік) салымга
S
теңге салынды.
N
жылдан кейін салынған ақша неше теңгеге жетеді?
6. Пернетактадан 10 бүтін сан енгізіп, солардың квадраты мен кубын анықтаңыз.
7. 20-дан 50-ге дейінгі натурал сандар берілген. Олардың ішіндегі 3-ке бөлінетін,
бірак 5-ке бөлінбейтін сандарды анықтаңдар.
8. 35-тен 87-ге дейінгі натурал сандар берілген. Олардың ішінде 7-ге бөлгенде, 1-
ге, 2-ге немесе 5-ке тең калдык қалатын сандарды табыңдар.
9. 1 -ден 50-ге дейінгі натурал сандар берілген. Олардың ішіндегі 5-ке немесе 7-ге
бөлінетін сандардың қосындысын табыңдар.
10. Пернетақтадан 10 сан енгізіңдер. Егер олардың ішінде 15-тен асканы бар
болса, онда оларды 15-пен алмастырындар. Сандарды экранга шыгарыңдар.
11. Пернетактадан он теріс жэне оң сан енгізіңдер. Барлық теріс сандарды
олардын модульдерімен алмастырып сандарды экранга басып шыгарындар.
12. Екі орынды сандардың ішіндегі 4-ке бөлінетінін, бірак 6-га бөлінбейтінін
табындар.
13. 13-ке қалдықсыз бөлінетін екі орынды тақ сандардың көбейтіндісін табыңдар.
14. 100-ден 200-ге дейінгі сандардың ішіндегі 17-ге калдықсыз бөлінетін
сандардың қосындысын табындар.
15. Пернетактадан 10 сан енгізіндер. Егер сан 100-ден кем болса, онда осы санды
жэне онын квадратынтабындар.
16.
1-ден бастап өздерің енгізген бүтін
п
санына дейінгі сандардың
квадраттарының косындысын есептейтін программа кұрындар.
17. 200-ге дейінгі 5-ке бөлгенде 4 калдык калатын сандар нешеу екенін табу
керек.
18. 200-ге дейінгі бүтін сандардын 25-ке калдықсыз бөлінетін сандары нешеу
екенін аныктандар.
19. 20-дан үлкен жэне 100-ден кіші 3-ке қалдықсыз бөлінетін оң сандардын
косындысын табу керек.
20. Берілген
а
нақты жэне
b
бүтін сандарының мэндері бойынша
аь
өрнегінің
мэнін pow() функциясын пайдаланбай табатын программа жазыңдар.
81
. Төмендегі есептерде бір өлшем бірлігін еі
қажет (цикл санауышы мэні 1 -ден 20-ға дейін
а) футпен берілген ұзындық өлшемін метрге (
э) драхмды граммға (1 драхм = 3,7325 г);
б) унцияны граммға (1 унция = 29,86 г);
в) фунтты килограммга (1 фунт = 0,40951 кг);
түрлеңі
аршынды метрге
0,7112 м);
д) қадакты граммға (1 қадақ = 400 г);
қарысты сантиметрге
18 см);
ж) дюймді миллиметрге (1 дюйм = 25,3995 мм).
22. Төмендегі функциялар мәндерін х айнымалысы көрсетілген кесіндіде
dx
қадамымен өзгерген кезде анықтандар.
1)
у =
1п(1 + л/х),
хе[2;31,
dx=
0,1;
2)
у
=
2х
sin
2x
,
3) v = 3 l n x -
&
5 '
.xe[0;5],
dx=
0,5;
xe[2;5],
dx=
0,25;
4)
f{x)
=
5jc2 + 6,
егер x <5;
x3+7,
егер
x>5;
xg[0;10],
dx=
0,75;
5)
fix)
Іл/Здг' + 4 + cos,
егер
0 <
x
< 1;
5 —
sin2
x
9,
егер x >
1
немесе x <
0;
jc€(-5;15],
dx=Q,75;
6) / М =
Vx +3 + 6x2,
егер
x < 5;
xs
+ 35,
егер x
> 5;
x e[-2; 7], dx=0,5;
x
cos
x, егер
0 < x < 2
3x + 7,
калган жагдайларда
V5x2 +1.6
егер 2 < х
< 9;
хе[-2;151, Щ
І
8)
/(* ) = i
xtgx
- sin х,
егер х
< 1.5;
х* + sin
х, егер
1.5 < х <2.5;
Зх3
+ 5,
егер х >
2.5;
хе[-5;15],
dx=
0,75
9) /(х )
I
xtgx
- sin х,
егер
x <
1.5;
x3+sinx,
егер
1.5Зх3 + 5,
егер x
> 2.5;
82
23. 9 санының көбейту кестесін шығаратын программа құрыңдар:
9 x 1 = 9
9 х 2 = 18
9 х 3 = 27
т.с.с.
24. Енпзілген санның жай сан екенін тексеретін программа құру керек.
25. Келесідей символдар тізбегін шығаратын программа құру қажет:
2 5
.
1
.
2 5
.
2
.
* * * * * * *
2 5
.
3
.
2 5
.
4
.
*
*
* * * * *
* *
* * * * *
* * *
* * *
* * * *
*
* * *
* * * *
* * *
* * *
* *
* *
* * * * *
*
*
соңында 9999 саны тұрган бүлн сандар тізбеп берілге
- жалпы санын;
- арифметикалық ортасын;
- максимал мэнін;
- теріс және оң элементгері санын;
- минимал элементінің нөмірін;
- тізбек ішіндегі жұп сандар санын;
- жұп сандары ішіндегі ен кіші элементін аныктау керек
27.
х накты саны жэне
п
натурал саны берілген. Төмендегі өрнектерді есептеу
керек:
а) sinx
Ф.
sin
x
+ sin x + ... + sin
x
;
ә) sinx +
sinx
4- sinx + ... + s i n ;
б) sinx + sinsinx + sinsin. ..sinsinx, соңғы өрнек
n
рет кайталанады.
. , 1
1
1
І
1 .
By ІН— +
x 2x
Ш
nx
-v
x
2x 3x 4x
(n —
l)x
r) —+— + — +— +...+----- —;
2
3
4
5
n
28.
a, h
накты сандары жэне
n
натурал саны берілген. Төмендегі өрнекті
есептеңдер:
f ( a )
-f
2 f ( a
+
һ)
+
2 f ( a
+
2һ)
+ ... + 2
f ( a
+
(п
- l)/r) +
f ( a
+
nh
) ;
мұндагы /(х ) = (х2 + l)cos2 х.
29.
п
натурал саны берілген.
а)
п
санында қанша цифр бар?
э) Осы сан цифрларының косындысы неге тек?
б) Осы санның ен алгашкы тұрған цифрын аныктау керек.
в)
п
саны цифрларынын ауыспалы таңбалы косындысын табу керек
(п
санынын ондык жүйеде жазылуы
акакл..лй
болсын, сонда:
ак
-
ак_{
+ ...+ (-!)*
а0
табу керек).
83
30.
п, т
натурал сандары берілген.
п
санынын соңғы
т
цифрлары косындысын
табу керек.
31. Натурал
п
саны берілген.
а) п2 санынын жазылуында 3 санынын бар екенін аныктау керек.
э)
п
санынын цифрлар қатарын керісінше жазып шыгу керек.
б)
п
санынын алғашқы жэне соңғы цифрларының орнын ауыстыру керек.
в)
п
санынын алгашқы цифрынын алдыиа жэне соңғы цифрынан кейін 1-ді
қосып жазу кажет.
32. Теріс емес бүтін сандардың ен үлкен ортақ белгішін табу керек, ол үшін,
Евклид алгоритмінің шарттары колданылады. Ол шарт бойынша,
п
жэне
т
он
бүтін сандар жэне
т > п .
Егер
п
=О болса, онда ЕҮОБ
(п, тУ=ту
ал
гф )
болса, онда
т, п
жэне
г
сандары аркылы, мұндағы
г
— w-ді и-га бөлгендегі қалдық, ЕҮОБ (
п,
т)
табу кезінде мынадай теңдік колданылады: ЕҮОБ(/7,
т) —
EYOB(w, г). Мысалы:
ЕҮОБ(6, 15) = ЕҮОБ(6, 3) = ЕҮОБ(3,0) = 3.
33.
п
натурал саны берілген. Есептеңіздер:
a)
*>
k»\
g
*=l *
б)
в)
І
Ц
g (211 gg
i t?
(2k +
1)*
I
f S d t L
Д)
1
1
1
34.
x
накты саны жэне
n
натурал саны берілген. Есептеу керек
■HI
ы
I
»«1 11
б )
£ х +
c o s f o ) .
в )
(1 + S in (b 0 ) .
1=1
2'
£=1
к\
Ч Л
к
кх
,
ч г т (
1
“ Х)
+ 1
г) П ( -------cos Ы) ;
д) Шр-----J— -ү.
І Г * + 1
М
« < % № *02
35.
п
натурал саны берілген.
п
мүшелі тізбектің көбейтіндісін табыңыздар.
> 1 3 5
а)
Н Н
ММ
2 4 6
V
1 3 5
э)
...
1 2 3
36.
п
натурал саны берілген. Келесі өрнекті есептеңіз.
I
і--------------- =
3 4 І6+ — + ІЗОі - 1) * V3n
л
84
37. Кассада тек үш жэне бес теңгелік ақша (купюралар) гана қалған (бұл 1998
жылдары болтан). 7 теңгеден артық кез келген соманы осындай екі гана ақша
түрімен "төлейтін" программа кұру керек.
38. Бүтін
М
саны енгізілген (М<25), цифрларының қосьшдысы
М
-ге тең
болатын
барлық үш таңбалы ондық сандарды табу керек. Сонымен қатар
осындай сандардың косындысын есептеу немесе ондай сандар болмаса экранга
мәлімет шыгару кажет.
39. Программаға өзіңіздің туган айыңыз бен күніңізді еңгізіңіз. Келе
жатқан жылдардың қайсысы сіз үшін бақытты жыл болатынын аныктаңыз.
«Бақытгы жыл» деп жылдын цифрлар косындысын 10-га бөлгендегі
қалдыгы мен туган ай мен күніңіздін цифрлары қосындысының 10-га
бөлгендегі калдыгы тек болатын жылды айтады.
№ 3-4 зертханалық жұмыстар
Циклдік алгоритмдердерді программалау
Тақыры бы: Қайталау (цикл) алгоритмдерін программалау.
Тапсырма: Берілген есептерді шыгару алгоритмдерінің блок-схемасы мен
профамаларын кұрындар.
Нәтижесі: Орындалган жұмыс бойынша есеп беру алгоритм блок-схемасы,
профамма мәтіні жэне есептеу нәтижелерінен тирады (бастапкы мәндер: теріс, он
сандар, нөл, бір мэндері болуы тиіс).
Зертханалық жұмысты қорғау сұрақтары
1. Арифметикалык цикл алгоритмі, for операторы, параметрлі цикл.
2. Қадамдық цикл алгоритмі, while жэне do .. while операторлары.
3. While, do .. while жэне for операторларын салыстыру.
Тапсырмалар нұсқалары
1 нусқа
1.
п
натурап саны берілген. Дәрежелеу (pow) функциясын колданбай,
2п
есептеңіз.
2. Накты
а
саны берілген. Төмендегі қатар сандарынын ішінен <з-дан үлкен бірінші
санды табыңыз.
1,1
“Ь- “Ь
—
2
2
3
2 нүсқа
3.
п
натурал саны берілген.
п\
есептеңіз.
4. Накты
а
саны берілген. 1 -f -Ч- ••• -f - > а тенсіздігі орындалатын ең кіші w-ді
табыныз.
85
3 нусқа
5.
п
натурал саны берілген. Төмендегі өрнекті есептеңіз.
(* + 1>) (* + 2*) ■"
+
6. Натурал я, накты
х
саны берілген. Төмендегі өрнекті есептеңіз
4 нұсқа
7.
п
натурал саны берілген. Төмендегі косындыны есептеңіз:
1
1
1
—— —
— —
——— ^ ...
■
—...
sinl
sinl
Достарыңызбен бөлісу: |