207
return s + p;
}
void main() {
int number, temp;
cout << "Введите число: ";
cin >> number;
cout << '\n';
recurs( number, temp );
}
№8 лабораториялық жұмыстың тапсырмалары
1. Геометриялық прогрессияның (2) n – ші элементін есептеңіз.
2. Арифметикалық прогрессияның (1) алғашқы n элементін қосындылаңыз
(прогрессияның алғашқы n мүшесінің қосындысын есептеу формуласын
пайдаланбаңыз).
3. Алғашқы n Фибоначчи сандарының ішінен жұп сандардың санын
анықтаңыз.
4. Рекурренттік тізбек келесі түрде анықталған:
a
i
=
.
0
,
1
*
,
0
,
1
1
i
åãåð
i
i
a
i
åãåð
i
Берілген нақты n үшін a
n
мәнін есептеңіз.
5.
a
i
=
.
1
,
1
,
1
,
0
,
1
1
2
i
егер
i
a
a
i
i
егер
i
i
1-20-ші элементтердің көбейтіндісін есептеңіз.
6. Рекурренттік әдісті пайдаланып, Горнер формуласы бойынша 10 дәрежелі
көпмүшенің қосындысын есептеңіз. Мұндағы x – берілген нақты сан:
10x
10
+ 9x
9
+ 8x
8
+ … + 2x
2
+ x = (( …((10x + 9)x + 8)x + … + 2)x + 1)x.
7. Берілген нақты x пен натурал N үшін келесі тізбекті есептеңіз:
x/(1 + x/(2 + x/(3 + x/( …/(N + )) … ).
8.
,
!
1
...,
,
!
3
1
,
!
2
1
,
1
N
сандық қатарының 10
-5
мәнінен асатын барлық мүшелерін
есептеп, шығарыңыз.
9. Берілген натурал N мен нақты x (x > 0) үшін келесі өрнектің мәнін есептеңіз:
x
x
x
...
10. Факториалды есептеудің рекурсивті функциясын құрыңыз.
11. Екі бүтін санның ең үлкен ортақ бөлгішін табу (ЕҮОБ) Евклид алгоритмін
рекурсивті функцияның көмегімен программалаңыз.
12. F(x)=x
n
функциясының есептелуін рекурсияны пайдаланып шығарыңыз.
208
13. F(x)=x
теңдеуін шешу үшін рекурсивті функция құрыңыз. Оның жұмысын
cos(x) және sqrt(x+1) функциялары арқылы тексеріңіз.
14. x нүктесіндегі n ретті Лежандр полиномының мәнін есептеу үшін рекрсивті
функцияны құрыңыз. Лежандр полиномы келесі түрде анықталады:
P
0
(x) = 1,
P
1
(x) = x,
P
n
(x) = ((2n-1)P
n-1
(x)-(n-1)P
n-2
(x))/n.
15. Нүктемен аяқталған текст жолы берілген. Осы текстті кері ретпен экранға
шығарыңыз.
16. Берілген нақты x пен бүтін n бойынша x
n
мәнін келесі формулаға сәйкес
есептейтін рекусиялық функцияны құрыңыз:
x
n
=
.
0
,
*
,
0
,
1
,
0
,
1
1
n
x
x
n
x
n
n
n
17. Нақты n және m сандары берілген. ЕҮОБ (n, m) = ЕҮОБ (m, r) (мұндағы r –
n-ді m-ге бөлгендегі қалдық) қатынасына негізделген ең үлкен ортақ
бөлгішті есептеу рекурсиялық функциясын пайдаланып, ЕҮОБ (n, m)
табыңыз.
Блиц- тест:
1.
Функция
ешқандай
мән
қайтармаса
қандай
типпен
сипатталады?
A) Void;
B) Int;
C) Double;
D) Char;
E) Bool;
2. Рекурсияның түрлері:
A) Тіке, жанама.
B) Тізбекті, тізбексіз.
C) Статикалық, динамикалық.
D) Терең, тайыз.
E) Шексіз, шектеулі.
Бақылауға арналған сұрақтар
1. Функциялардың рекурсивті пайдаланылуы дегеніміз не?
2. Рекурренттік тізбек түсінігі?
3. Рекурсия тереңдігі нені білдіреді?
4. Тіке және жанама рекурсияның айырмашылығы?
5. Рекурсияны қай жағдайда қолданған жөн?
6. return операторының қызметі?
209
7. Стек дегеніміз не?
8. Қай тізбекте стектің толтырылуы және стектен элементтердің таңдалуы
орындалады?
9. Рекурсивті алгоритмде рекурсиядан шығу шарты әрдайым болу керек пе?
10. Рекурсивті алгоритм өзін-өзі «шексіз» рет шақырған жағдайда не болады?
11. Рекурсивті алгоритм арқылы орындалған есепті, рекурсивті емес
алгоритммен шығаруға болады ма?
Глоссарий:
Рекурренттік тізбек- (әдістемелік нұсқауды қараңыз)
Рекурсивті алгоритм- (әдістемелік нұсқауды қараңыз)
Әдебиеттер:
[6],[8], [10],[12],[13],[15].
210
ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС №9
Тақырыбы: С/С++ ТІЛІНДЕ ГРАФИКАНЫ ПРОГРАММАЛАУ
Мақсаты: - С/С++ тілінің графикалық мәліметтерді өңдеу мүмкіндіктерімен
танысу.
- , файлдарында сипатталған негізгі графикалық
функциялардың прототиптерін үйрену.
Қажетті материалдар мен жабдықтар: ДК, лабораториялық жұмысты
орындауға арналған әдістемелік нұсқаулар.
Лабораториялық жұмыстың мазмұны және орындалу реті:
1. С/С ++ тілінің графиктік мүмкіндіктері мен графиктік режимді орнатуға
қатысты әдістемелік нұсқау – матриалдарды алдын ала танысып меңгеру.
2. Ұсынылған мысалды орындау және талқылау.
3. Өзіндік жеке тапсырмалардың оқытушы ұсынған нұсқасын орындау.
4. Лабораториялық жұмыстың есебін (отчет) дайындап тапсыру.
Негізгі әдістемелік нұсқаулар:
С/С++ тіліндегі графиканың негігі элементтері
1. Драйверді және графикалық режимді таңдау
detectgraph (&gd, &gm)
функция арқылы орындалады.
2. Драйверді жүктеу, графикалық жүйені инициализациялауды
initgraph (&gd, &gm, "BGI-файлдың жолы")
функциясы атқарады, мұндағы gd және gm айнымалылары қажет драйвер мен
графикалық режимнің номерлері.
Егер ВGI-файлдар ағымдағы директорияда орналасса, онда initgraph()
функциясының үшінші параметрі ретінде бос жолды беруге болады
initgraph (&gd, &gm, " ");
3. Графикамен жұмыс жасағанда қате жағдайларды өңдеу үшін
graphresult ( );
функциясы
қолданылады.
Ол
соңғы
қолданылып
отырған
графикалық
функцияның аяқталу кодын қайтарады. Қате болмаса, «0» қайтарылады.
Фон түсін мына функция арқылы басқаруға болады:
setbkcolor (Color);
Ағымдағы түсті мына функциямен тағайындауға болады:
setcolor (Color);
Достарыңызбен бөлісу: |