82
АЛМАТЫ ЭКОНОМИКА ЖӘНЕ СТАТИСТИКА АКАДЕМИЯСЫ
«Информатика» кафедрасы
«050703-
Ақпараттық жүйелер» мамандығына арналған
«
Программалау технологиялары» пәні бойынша
СТУДЕНТТІҢ ОҚЫТУШЫНЫҢ БАСШЫЛЫҒЫМЕН ОРЫНДАЙТЫН
ӨЗІНДІК ЖҰМЫСТАРЫ БОЙЫНША ӘДІСТЕМЕЛІК НҰСҚАУЛАР
АЛМАТЫ 2014
83
№ 1 өзіндік жұмыс. Сызықтық алгоритмдер
Тапсырмаларды орындау үшін әдістемелік нұсқаулар
Сызықтық құрылымды алгоритм немесе қарапайым сызықтық алгоритм іс-
әрекеттердің орындалу ретіне қарай тізбектеле орналасқан блоктардан тұрады. Амалдардың
бұлай бірінен соң бірі реттеліп орындалу тәртібін табиғи атқарылу дейді.
Мысалы, y = a+b формуласы бойынша есептеу тіктөртбұрыш арқылы кескінделетін
есептеу блогы (3-блок) арқылы өрнектеледі. Ал нәтижені қағазға басу үшін көпбұрышты
құжат алу блогын (4-блок) пайдаланып, оның ішіне нәтиженің атауларын жазамыз.
Жоғарыда көрсетілген y=a+b формуласымен есептеу үшін a және b-ның сандық мәндерін
ЭЕМ-ге енгізіп (2-блок), содан кейін қосу амалын орындап, ақырында y-ті экранға (қағазға)
басып шығарып, жұмысты тоқтатамыз. Осы алгоритмнің схемасы 1.1-суретте көрсетілген,
ал оның жанында Си тіліндегі программасы жазылған. Программа мәтінін құру жолдарын
келесі тарауларда қарастырамыз.
Тапсырмалар
1. Нақты а және b сандары берілген. Олардың қосындысын, айырмасын және көбейтіндісін
есептеңіз.
2. Нақты х және у сандары берілген. Есептеңіз:
3.
Кубтың бір қыры берілген. Кубтың көлемін және бір бетінің ауданын табу керек.
4. Нақты, оң екі сан берілген. Осы сандардың арифметикалық және геометриялық ортасын
табыңыз.
5. Нақты екі сан берілген. Осы сандардың арифметикалық ортасын және олардың модулінің
геометриялық ортасын табыңыз.
6. Тікбұрышты үшбұрыштың катеттері берілген. Үшбұрыштың гипотенузасы мен ауданын
есептеңіз.
7. Температурасы t
1
көлемі V
1
сумен, температурасы t
2
көлемі
V
2
су араласқан. Пайда болған
қоспаның температурасымен көлемін есептеңіз.
8. Радиусы r шеңберге іштей сызылған дұрыс n-бұрышты көпбұрыштың периметрін
есептеңіз.
9. R
2
, R
2
, R
3
кедергілері параллель қосылған. Жалпы кедергіні есептеңіз.
10. h биіктіктен еркін түскен тастың түсу уақытын есептеңіз.
11. х, y, z сандары берілген. а және b сандарын есептеңіз, егер
а)
a=
,
4
2
1
1
2
2
3
y
x
y
x
+
+
−
−
b=x(arctg z+e
-( x+3)
);
б)
а =
|
)
(
|
1
3
2
1
z
tg
y
x
e
y
−
+
+
−
,
b = 1 + | y – x | +
2
)
(
3
x
y
−
+
3
|
|
3
x
y
−
;
басы
a,b
y:=a+b
3
соңы
y
4
5
1
1.1-
сурет. Алгоритм
схемасы
2
#include
#include
main()
{
int a,b,y;
clrscr();
printf(“a, b =”);
scanf(“%i%i”,&a,&b);
y = a + b;
printf(“y = %i”, y);
getch();
}
.
1
xy
y
x
+
−
84
12. Теңқабырғалы үшбұрыштың қыры берілген. Осы үшбұрыштың ауданын есептеңіз.
13. Ұзындығы L маятниктің тербеліс периодын есептеңіз.
14. Массалары m
1
және m
2
екі дененің F тарту күшін есептеңіз. Денелер бір-бірінен r
қашықтықта.
15. Тікбұрышты үшбұрыштың катеті мен гипотенузасы берілген. Үшбұрыштың екінші
катетімен іштей сызылған шеңбердің радиусын есептеңіз.
16. Шеңбердің ұзындығы берілген. Осы шеңбермен шектелген дөңгелектің ауданын
есептеңіз.
17. Ішкі радиусы 20, ал сыртқы радиусы r (r>20) болып келген сақинаның ауданын есептеңіз.
18. Үшбұрыштың барлық бұрыштарымен сырттай сызылған шеңбердің радиусы берілген.
Үшбұрыштың қабырғаларын есептеңіз.
19. Бір-біріне қарай бірқалыпты үдемелі қозғалып келе жатқан екі дененің кездесу уақытын
есептеңіз. Олардың алғашқы жылдамдығы, үдеуі және олардың бір-бірінен арақашықтығы
берілген.
20. Берілген a, d, n шамалары бойынша арифметикалық прогрессия құрайтын сандардың
қосындысын табу керек
№ 2-3 өзіндік жұмыстар. Тармақты алгоритмдер
Тапсырмаларды орындау үшін әдістемелік нұсқаулар
Тармақталу алгоритмдері. Тұрмыста кездесетін алгоритмдер әр түрлі болып келеді.
Олардың жиі кездесетін түріне алгоритмнің белгілі бір шарттың орындалуына не
орындалмауына байланысты тармақталып бірнеше жолдарға бөлінуі жатады.
Тармақталу алгоритмінің құрылымы қарапайым болып келеді. Мұнда арифметикалық
теңсіздік (теңдік) түрінде берілген логикалық шарт тексеріледі. Егер ол орындалса, онда
алгоритм бір жолмен, ал орындалмаса екінші жолмен жүзеге асырылады, яғни есепті шығару
жолы тармақталып екіге бөлініп кетеді. Тармақталу алгоритмдеріне шартты тексеру блогы
міндетті түрде кіреді. Ол ромб түрінде кескінделіп, басқа блоктармен 1 кіру және 2 шығу
сызықтары арқылы байланысады. Көбінесе тармақталу алгоритмдері екі түрде кездеседі,
олар "таңдау" және "аттап өту" мүмкіндіктерін іске асыруға көмектеседі.
"Таңдау" жолымен тармақталуда берілген шарт тексеріледі (1.2-сурет), егер ол шарт
орындалса (шарт ақиқат болса), онда 2-амал жүзеге асырылып, содан кейін келесі 3-амалға
көшеміз. Ал, егерде шарт орындалмаса, яғни оның орындалу мүмкіндігі жалған болса, онда
1-
амал атқарылып, содан кейін 3-амал атқарылады. Сонымен, шарттың ақиқат немесе жалған
болуына байланысты 1-амал немесе 2-амал орындалады.
"Аттап өту" (1.3-сурет) алгоритмінде шарт орындалса, 1-амалды аттап өтіп, бірден 2-
амалды, содан кейін 3-амалды орындаймыз. Ал шарт жалған болса, онда 1-амал міндетті
түрде орындалып, одан кейін 2- және 3-амалдар жүзеге асырылады. Тармақталу кезеңінде
шартты тексеру блогы орындалуы барысында, алгоритмнің екі мүмкіндігінің тек біреуі ғана
таңдап алынып жүзеге асырылады да, ал екінші таңдап алынбаған тармақ біріктіру нүктесіне
дейін орындалмай қалады. Енді осыған нақты мысалдар келтірейік.
1.2 -
сурет. "Таңдау" алгоритмі 1.3-сурет."Аттап өту" алгоритмі
. . .
. . .
...
1 -
амал
жоқ
2 -
амал
3 -
амал
...
иә
шарт
1 - амал
жоқ
2 - амал
3 - амал
иә
шарт
85
Тапсырмалар
1.
Нақты x, y, z сандары және бүтін k, m сандары берілген.
2
m
k
<
,
2
m
k
=
,
2
m
k
>
болған
жағдайдағы мәндерін, сәйкесінше x, y, z мәндерінің модулімен алмастырыңдар және соңғы
екі мәнін 0.5-ке кемітіңдер.
2. n
натурал саны берілген
)
100
(
≤
n
.
а) n санында қанша цифр бар?
б) сол цифрларының қосындысы неге тең?
в) n санының соңғы цифры неге тең?
г) n санының алғашқы цифры неге тең?
д) егер
10
≥
n
болса, онда соңғы цифрының алдындағы цифрды табу керек.
3. n
натурал саны берілген
)
9999
(
≤
n
.
а) бұл сан полидром болып келеді ме? Мысалға 4 орынды сан болатын болса, 2222, 6116,
0440 және т.б.
б) осы сан құрамында бірдей 3 цифр кездеседі ме? Мысалға 6676, 4544, 0006 және т.б.
в) осы санның цифрлары барлығы әр түрлі ме?
4.
Сағат тілі, центрімен 12 сағат көрсететін нүкте арқылы өтетін түзумен
ϕ
бұрыш құрайды,
π
ϕ
2
0
≤
<
. Минут тілшесіне сәйкес бұрышты, сағаттар санын және минут шамасын
табыңыз.
5.
Бүтін m, n сандары берілген
,
12
0
(
≤
< m
)
60
0
<
≤ n
.
Осы сандар сәйкесінше сағат және
минут шамасына тең болады. Сағат және минут тілшелері
а) бір орынға келгенде;
б) бір-бірімен перпендикуляр орналасқандағы ең аз уақытты табыңыздар.
6.
Нақты а саны берілген. Егер −
f
1,5 қадаммен өзгеретін, [0, 1.5] аралығында жатқан
функция болса:
а)
x
x
25
.
2
3
−
;
б) 4 суретте көрсетілген график бойынша,
)
( a
f
функциясын есептеңіздер.
7.
Нақты а саны берілген. Егер −
f
2
қадаммен өзгеретін, [-1, 1] аралығында жатқан
функция болса:
а)
1
2
+
− x
;
б) 5 суретте көрсетілген график бойынша,
)
( a
f
функциясын есептеңіздер.
8.
Бүтін k, l сандары берілген. Егер сандар өзара тең болмаса, екеуін, осы сандардың ішіндегі
үлкен мәнді санмен алмастырыңыздар, ал егер екі сан өзара тең болса, екеуінде 0 санымен
алмастырыңыздар.
9.
3 суретте көрсетілген жазықтықтың боялған бөлігі болсын. Ал и болса x және у арқылы
төменде көрсетілгендей анықталсын ( (х, у) ∈ D дегеніміз, х, у нүктелері D-ға тиісті ):
а) и=
∈
;
жагдайда
калган
,
,
)
,
(
,
0
x
D
y
x
егер
86
б) u=
∈
жагдайда;
калган
,
y
(
егер
3,
-
2
D,
y)
x,
Таңдау операторына (switch) есептер
1.
1 мен 7 аралығындағы кез келген бүтін сан берілген. Сол санға сәйкес апта күнінің
аттарын ағылшынша және қазақша жазып шығаратын программа құру керек. (1 –
«Дүйсенбі – Monday», 2 – «Cейсенбі … » және т.с.с.). Апта күндерінің нөмірлеріне сәйкес
келмейтін сандар енгізілсе, «Қате» деп мәлімет шығару керек.
2.
1 мен 5 аралығындағы бүтін сан берілген. Осы санға сәйкес бағаның сипаттамасын
шығарыңыз (1 – «нашар», 2 – «қанағаттанарлықсыз», 3 – «қанағаттанарлық», 4 –
«жақсы», 5 – «өте жақсы»). Егер бүтін сан 1–5 аралығында жатпаса, экранға «Қате» деген
мәлімет шығарыңыз.
3.
Айлардың реттік нөмірін (1-12) енгізіп, соған сәйкес ай аттарын қазақша (орысша) жазып
шығаратын программа құру керек.
4.
Айдың реттік нөмірі 1–12 арасындағы бүтін сан арқылы берілген (1 – қаңтар, 2 – ақпан
және т.с.с.). Соларға сәйкес жыл мезгілдерінің атын шығарыңыз («қыс», «көктем», «жаз»,
«күз»).
5.
Айдың реттік нөмірі 1–12 арасындағы бүтін сан арқылы берілген (1 – қаңтар, 2 – ақпан
және т.с.с.). Сол айларға сәйкес айдағы күндер санын анықтаңыз.
6.
Уақытты (тек сағатты) енгізіп, сол уақытқа сәйкес: "Қайырлы таң", "Қайырлы күн", "Кеш
жарық", "Ұйқың тәтті болсын!" деген мәліметтер шығарыңдар.
7.
Арифметикалық амалдар келесі ретте нөмірленген: 1 – қосу, 2 – азайту, 3 – көбейту, 4 –
бөлу. Амал нөмірі – N (1–4 аралығындағы бүтін сан) және нақты A мен B (В ≠ 0) сандары
берілген. Осы сандармен нөмірге сәйкес амалды орындап, нәтижесін шығарыңыз.
8.
Ұзындық өлшем бірліктері келесі ретте нөмірленген: 1 – миллиметр, 2 – сантиметр, 3 –
дециметр, 4 – метр, 5 – километр. Ұзындық бірлігі (1–5 аралығындағы бүтін сан) мен сол
бірлікте берілген кесіндінің ұзындығын енгізіп, нәтижесін метрмен жазып шығыңыз.
9.
Салмақ өлшем бірліктері келесі ретте нөмірленген: 1 – миллиграмм, 2 – грамм, 3 – кило-
грамм, 4 – центнер, 5 – тонна. Салмақ бірлігі (1–5 аралығындағы бүтін сан) мен сол
бірлікте берілген дененің салмағын енгізіп, нәтижесін килограммен жазып шығыңыз.
10.
Отыратын орындықтарының санын программаға енгізіп, соған сәйкес көлік атын көрсе-
тіңіз, мысалы: "велосипед", "мотоцикл", "жеңіл автомобиль", "микроавтобус", "автобус"
(басқа да варианттары болуы мүмкін).
11.
Кәбисә емес (невисокосный) жылдың датасын анықтайтын екі сан: D (күн) и M (ай) бе-
рілген. Осы датаға сәйкес соның алдындағы D мен M –ді шығарыңыз.
12.
Кәбисә емес жылдың датасын анықтайтын екі сан: D (күн) и M (ай) берілген. Осы датаға
сәйкес сонан кейінгі D мен M –ді шығарыңыз.
№ 4 өзіндік жұмыс. Циклдік алгоритмдер
Тапсырмаларды орындау үшін әдістемелік нұсқаулар
Циклдік алгоритмдер. Математикада, экономикада көптеген есептерді шығару кезеңінде
бір теңдеуді пайдаланып, ондағы айнымалының өзгеруіне байланысты оны бірнеше рет
қайталап есептеуге тура келетін сәттер де жиі кездеседі. Осындай қайталап орындалатын
есептеу процесінің белгілі бір бөліктерін цикл деп атайды. Осы бірнеше рет қайталанатын
бөлігі бар алгоритмдер тобы циклдік алгоритмдерге жатады. Циклдік алгоритмдерді
пайдалану оларды кейіннен программаларда цикл операторы түрінде қысқартып жазу
мүмкіндігін береді. Циклдер қайталану санының алдын ала белгілі және белгісіз болуына
байланысты екі топқа бөлінеді. Қайталану сандары алдын ала белгілі болып келген циклдер
87
тобы арифметикалық цикл болып есептеледі, ал орындалу саны белгісіз циклдер – қадамдық
(итерация) цикл болып аталады.
Практикада белгілі бір айнымалының сандық мәніне байланысты орындалатын
арифметикалық циклдер жиі кездеседі. Мұнда арифметикалық прогрессияға ұқсас болып
келетін циклдер ең қарапайым арифметикалық цикл болып табылады. Оны басқару қайта-
лану кезеңінде прогрессияның заңына сәйкес тұрақты шамаға өзгеріп отыратын цикл пара-
метрінің сандық мәнімен байланысты болуы тиіс.
Цикл орындалуы алдында оның айнымалы аргументі – параметрі алғашқы мәнге ие
болуы керек, сонан кейін қайталану кезеңінде цикл параметрі белгілі бір шамаға (қадамға)
өзгере отырып, ол алдын ала берілген ең соңғы мәнге дейін жетуі қажет.
Алгоритмнің орындалу барысында цикл параметрі, мысалы, х өзінің ең алғашқы х0
мәнінен ең соңғы хk мәніне дейін тұрақты шамаға ( dx) өзгеріп отырады. Осының нәтижесінде
х мынадай мәндерді қабылдайды: x0 , x0 +dx, x0 +2 dx, ..., x0 +(n-1 )dx, xk, мұндағы n – циклдің
қайталану саны, ол былай анықталады:
1
0
-
=
+
dx
x
xk
n
,
мұнда [...] – өрнектің бүтін бөлігі алынатынын көрсетеді. n әрқашанда бүтін сан болуы тиіс,
егер ол аралас сан болса, онда оның бөлшегі алынып тасталады, өйткені циклдің қайталану
саны бүтін натуралдық сан болуы тиіс.
Цикл басы блогы алтыбұрыш тәрізді геометриялық фигурадан тұрады және оның
міндетті түрде екі кіру және екі шығу сызығы болуға тиіс. Осы блокты пайдалану арқылы
жоғарыда келтірілген алгоритм 1.6-суретте көрсетілген түрде кескінделеді. Параметрдің
алғашқы х мәні оның соңғы х мәнінен кем болса, онда оның қадамы dx оң сан болады.
Керісінше, параметрдің алғашқы мәні оның соңғы мәнінен артық болса, онда қадам теріс сан
болады.
Қадамдық циклдер. Циклді орындаудың алдында, оның қайталану саны белгісіз болған
жағдайда қадамдық циклдер пайдаланылады. Мұнда циклді жазу үшін тек қана "шартты
тексеру" блогын қолдану қажет, ол циклді аяқтау үшін белгілі бір шартты тексереді. Қадамдық
циклдердің схемасын сызғанда модификаторды (алтыбұрышты) қолдана алмаймыз, себебі
алдын ала циклдің неше рет қайталанатыны бізге белгісіз.
Тапсырмалар
1.
Оң нақты a, x, ε сандары берілген.
a
y
=
0
;
)
(
2
1
1
1
−
−
+
=
i
i
i
y
x
y
y
;
,
1
=
i
2, ... заңдылығына сәйкес
,...
,
2
1
y
y
тізбегіндегі ең алғаш
ε
<
−
−
2
1
2
n
n
y
y
теңдігін қанағаттандыратын
n
y
мәнін табу керек.
2.
1
0
=
x
;
5
2
3
1
−
−
=
k
k
x
x
;
,
1
=
k
2, ... теңдіктері орындалсын.
5
1
10
−
−
<
−
n
n
x
x
теңдігін
қанағаттандыратын ең алғаш
n
x -
ді табу керек.
3.
Нақты
0
>
ε
саны берілген.
0
0
=
y
;
2
1
1
1
+
+
=
−
−
k
k
k
y
y
y
;
,
1
=
k
2, ... болсын.
ε
<
−
−1
n
n
y
y
теңдігін қанағаттандыратын
n
y
мәнін табу керек.
4.
Нақты
0
>
a
саны берілген.
0
x ,
1
x , …
тізбегі, мына заңдарға бағынады:
min(2a, 0.95),
егер
,
1
≤
a
0
x =
5
a
,
егер
,
25
1
<
< a
25
a
, барлық қалған жағдайларда,
88
4
1
1
5
5
4
−
−
+
=
n
n
n
x
a
x
x
,
,...
2
,
1
=
n
6
1
10
4
5
−
+
<
−
n
n
x
x
a
сай келетін, алғаш
n
x
мәнін табыңыздар.
5.
Нақты x саны және натурал n саны берілген. Есептеңіздер:
a)
n
n
x
2
2
; б)
n
n
x
3
3
.
6.
Нақты a, b сандары
)
(
a
b
>
және натурал n саны берілген.
n
a
b
h
−
=
;
2
)
)
2
1
(
(
1
)
2
1
(
h
i
a
h
i
a
f
i
−
+
+
−
+
=
;
.
,...,
2
,
1
n
i
=
болса,
h
f
f
n
)
...
(
1
+
+
мәнін тап.
7.
Бүтін
1
>
m
саны берілген.
m
k
<
4
теңдігін қанағаттандыратын ең үлкен мәнді k-ны табу
керек.
8. n
натурал саны берілген. Ең кіші
r
2
түрінде келген n-нен жоғары мәнді табу керек.
9. n
натурал саны берілген. Есептеңіз:
.
2
*
...
*
)
1
(
*
...
4
*
3
*
2
2
*
1
n
n
n
+
+
+
+
10.
Есептеңіз:
11. n
натурал саны берілген және n!! белгісі тақ сандар үшін 1*3*5*...* n теңдігін білдірсін,
ал жұп сандар үшін 2*4*...* n теңдігін білдірсін. Табу керек:
a) n!!;\
б)
!
!
)
1
(
1
n
n
+
−
12.
Есептеңіз:
a)
∑
=
100
1
2
1
i
i
; б)
∑
=
50
1
3
1
i
i
;
в)
∑
=
10
1
!
1
i
i
;
г)
∑
=
128
1
2
)
2
(
1
i
i
;
д)
∏
=
+
+
52
1
2
2
3
2
i
i
i
i
; е)
∏
=
+
10
1
)
!
1
2
(
i
i
;
ж)
∏
=
+
+
100
2
2
1
i
i
i
; з)
∏
=
−
10
2
2
)
!
1
1
(
i
i
.
Достарыңызбен бөлісу: |