Главная страница
qrcode

Кори курси Отабоев. Кори курс аз фанни Барномасози дар С дар мавз и Рекурсия ва тадби и он дар С


Скачать 146.28 Kb.
НазваниеКори курс аз фанни Барномасози дар С дар мавз и Рекурсия ва тадби и он дар С
Дата10.03.2020
Размер146.28 Kb.
Формат файлаdocx
Имя файлаКори курси Отабоев.docx
ТипДокументы
#40030
Каталог

ВАЗОРАТИ МАОРИФ ВА ИЛМИ ҶУМҲУРИИ ТОҶИКИСТОН

ДОНИШГОҲИ ДАВЛАТИИ ҲУҚУҚ, БИЗНЕС ВА СИЁСАТИ ТОҶИКИСТОН

Факултети инноватсия ва телекоммуникатсия

Кафедраи системаҳои ахборотӣ-ҳисоббарорӣ

Кори курсӣ
аз фанни Барномасози дар С++

дар мавзӯи «Рекурсия ва тадбиқи он дар С++
Иҷрокунанда: донишҷӯи бахши III,

шӯъбаи рӯзонаи

ихтисоси 1.40.01.02-02(т) Отабоев Ғ.Ю.

Роҳбари илмӣ: сармуаллим

Баҳовудинов Ҷ.
Кори курсӣ санаи «___»____________20____ ба ҳимоя роҳ дода шуд.

Имзои роҳбар________
Кори курсӣ санаи «___»____________20____ бо баҳои «
Аъзоёни комиссия: _____________________

_____________________

_____________________

_____________________

Хуҷанд - 2017


НАҚША




Сарсухан…………………………………………………
3
Боби I
Рекурсия ва намудҳои он дар С++………………..
5
1.1.
Рекурсия ва мафҳуми он……………………………..
5
1.2.
Намудҳои рекурсия……………………………………
14
1.3.
Рекурсия ва иттератсия……………………………….
15
Боби II
Татбиқи рекурсия дар забони барномасозии С++………………………………………………………..

17
2.1.
Мисоли “17
2.2.
Мисоли факториал…………………………………….
19
2.3.
Мисоли ҷобоҷогузории массив……………………...
22


ХУЛОСА…………………………………………………
28


АДАБИЕТ……………………………………………….
29
Сарсухан

Имрўз илмҳои дақиқ, тафаккури фикри, технологияҳои муосир ва ҷаҳонбини иттилооти ба омили пешбарандаи иқтисодиёт ва ҷомеа табдил ёфтааст.

Эмомалӣ Раҳмон

Дар замони ҳозира, мо шоҳиди татбиқи васеи технологияҳои иттилоотӣ дар ҳаёти ҷомеаи муосир мебошем. Агар, дар солҳои аввали пайдоиш технологияҳои компютерӣ асосан барои иҷроиши ҳисобкуниҳои мураккаби илмӣ истифода шуда бошанд, ҳоло компютерҳо, дар корҳои зерин нигоҳдорӣ, коркард ва пешкаш намудани иттилоот ба намуди зарурӣ, вазифаи асосиро иҷро менамоянд.

Барномаҳои компютерӣ аз тарафи барномасозон офарида мешаванд. Барнома – ин пайдарпайии фармонҳои ба таври мантиқӣ батартибовардашуда мебошад, ки барои идоракунии компютер лозим аст. Бинобар ин барномасозӣ ба офаридани пайдарпайии фармонҳое оварда шавад, ки барои ҳалли ягон масъала зарур аст.

Компютерро аз рўи алгоритми муайян идора кардан лозим аст. Барои дар шакли ба компютер фаҳмо ифода намудани алгоритми ҳалли масъала забонҳои барномасозӣ хизмат менамоянд. Дар аввал ҳамеша алгоритми амалиётҳо тартиб дода шуда, сипас он дар яке аз забонҳои барномасозӣ навишта мешавад. Дар натиҷа матни барнома – ифодаи пурраи алгоритм дар забони барномасозӣ ҳосил мегардад.

Навиштани барнома дар коди мошинӣ ниҳоят мушкил аст. Бинобар ин амалан ҳамаи барномаҳоро бо ёрии забонҳои барномасозӣ офарида мешаванд.

Забонҳои барномасозӣ – забонҳои сунъӣ ба шумор мераванд. Онҳо аз забонҳои табиӣ бо шумораи маҳдуди «калимаҳо», ки мазмуни ҳар яке аз онҳо ба транслятор фаҳмо аст, ҳамчунин бо қоидаҳои аниқи навишти фармонҳо (операторҳо) фарқ мекунанд.

Бо ёрии забони барномасозӣ на барномаи тайёр, балки танҳо матни барнома, ки алгоритми пешаки тартиб додашударо ифода менамояд, офарида мешавад. Барои ҳосил кардани барномаи коркунанда матни барномаро ба таври автоматӣ бо забони мошинӣ гардонида, сипас онро алоҳида ҷудо аз матни ибтидоии барнома истифода бурдан мумкин аст ё фармонҳои забони барномасозии дар матни барнома нишондодашударо якбора иҷро кардан лозим аст. Мисолҳои маъмули забонҳои объекти ин забонҳои барномасозии Visual Basic ва Delphi мебошанд.

Аз забонҳои барномасозии универсалии дар ҷаҳони имрўза аз ҳама маъмултаринашон инҳоянд: BASIC, Pascal, C++, Java, C#, Visual Basic ва ғайраҳо.

Асосан ҳар як забони барномасозӣ таърихи пайдоиши худро дорад. Забони барномасозӣ С++ низ таърихи пайдоиши тӯлонии худро дорад, аввалин маротиба ин забони барномасозии савияи олиро олими бузурги немис Берн Страуструп (1950) соли 1980 ташкил карда буд, маҳз бо ҳамин забон имрузҳо тамоми барномномаҳои пуриқтидор сохта шуда истодааст. Тавонии ин забон беандоза буда, имрӯз аксари ширкатҳои талифкунандаи таъминоти барномави аз он ба таври бояду шояд истифода бурда истодаанд. Новобаста ба иқтидор ва имкониятҳои ин забони барномасозӣ қайд кардан зарур аст, ки ин забон мисли дигар забонҳои барномасозӣ норасоги ва камбудиҳои худро дорад. Аммо он дар пеши имкониятҳои он ҳеҷ аст, чунки ширкати MicroSoft сол то сол ба он ServisPack-бастаҳои иловагиро ҳамроҳ карда, он камбудҳоро зина ба зина ислоҳ карда итодааст.

Кори курсии мазкур аз ду боб: Рекурсия ва намудҳои он дар С++ ва тадбиқи рекурсия дар забони барномасозӣ С++ иборат мебошад. Дар боби якум асосан мафҳуми рекурсия, имкониятҳои он ва намудҳои он, алгоритҳои рекурсивӣ оварда шудааст. Дар боби дуюм якчанд мисолҳо бо воситаи сикл ва бо рекурсия сохта шуда фаркияти байни онҳо муайян карда шудааст.

БОБИ I. РЕКУРСИЯ ВА НАМУДҲОИ ОН ДАР С++

1.1 Рекурсия ва мафҳуми он

Мафҳуми рекурсия хело осон ва одди мебошад. Барои фаҳмидани мафҳуми он ба шахс лозим нест, ки ӯ баронмасозӣ ва ё компютерро донад. Агар одди карда гӯем, объкет агар худ худро даъват кунад он вақт рекурсия ба амал меояд.

Рекурсия яке аз паҳншудатарин ва пурқувваттарин методҳои илмӣ ба шумор меравад. Он дар фанҳои табии ва инчунин дар барномасозӣ истифода бурда шуда, ҳоло яке аз қисмҳои ҷудонашавандаи онҳо мебошад

Дар забонҳои барномасози ҳам чунин аст. Агар функсия ва ё протседура худаш худашро даъват кунад ҳамон функсия ва ё протседура рекурсивӣ номида мешавад.1
Мумкин аст, ки аз функсияи main() ягон функсияи f1() даъват шавад, аз функсияи f1() ягон функсияи f2() даъват шавад ва ғайраҳо . Агар функсия худро даъват кунад, он функсияи рекурсивӣ номида мешавад. Чунин тарзи рекурсия рекурсияи ошкор низ номида мешавад. Агар як функсия функсияи дигарро даъват кунад ва дар навбати худ функсияи дуввум функсияи якумро даъват кунад, ин функсияҳо низ рекурсивианд. Чунин тарзи рекурсия рекурсияи ноошкор номида мешавад. Аён аст, ки шаклҳои боз ҳам мураккабтари рекурсияи ноошкор имконпазиранд.

Фарз мекунем, ки барои ҳал намудани ягон масъала мо функсияи рекурсивӣ сохтанием. Барои ҳалли масълаи гузошта шуда яке аз стратегияҳои машҳуртаринро ошокор мекунем. Раванди ҳалли рекурсивии масъала ба давраҳо ҷудо карда мешавад. Дар қадами аввал барои ҳал намудани масъала функсияи рекурсивӣ даъват карда мешавад. Дар ин функсия масъала дар ҳолати соддатарин ҳал карда шудааст. Ҳолати соддатарини масъалаи додашуда масъалаи базисӣ номида мешавад. Агар функсия барои ҳал намудани масъалаи базиси истифода шуда бошад, функсия ҳал ё ки натиҷаро бозмегардонад. Агар функсия барои ҳал намудани масъалаи аз масъалаи базиси мураккабтар истифода шуда бошад, функсия ин масъаларо ба ду қисм ҷудо мекунад: 
- қисми 1, ки онро функсия ҳал карда метавонад; 
- қисми 2, ки онро функсия ҳал карда наметавонад.

Барои амали гардидани рекурсия қисми 2 бояд ба масъалаи ибтидоӣ монанд бошад, лекин нисбатан хурдтар ё соддатар. Азбаски масъалаи нави дар қисми 2 ҳосилшуда ба масъалаи ибтидоӣ монанд аст, функсия нусхаи нави худро даъват мекунад, бо мақсади оғоз кардани кор аз болои масъалаи нав - ин амал даъвати рекурсивӣ ё ки қадами рекурсия номида мешавад.

Азбаски дар ҳар як даъвати рекурсивӣ функсия масъаларо ба ду қисм ҷудо мекунад, миқдори қадамҳои рекурсия хело зиёд шуданаш мумкин аст. Барои ба итмом расидани рекурсия функсияи рекурсивӣ пайдарпаии масъалаҳои хурдтареро, ки ба масъалаи базисӣ наздик мешаванд, бояд ҳосил кунад. Вақте ки дар ягон қадами рекурсия функсия масъалаи базисиро дарьёфт мекунад, ҳал ё ки натиҷаи масъалаи базисиро ба даъвати пешина (қадами пешинаи рекурсия) бозмегардонад. Дар ин даъват натиҷаи қабулшуда бо қисме, ки онро функсия ҳал карда метавонад муттаҳид карда шуда, натиҷаи навбати ба даъвати боз як қадам пештара бозгардонида мешавад, ва ҳоказо. Ҳамин тавр натиҷаи охирон бунёд карда мешавад, ки он ба ҷои даъвати ибтидоӣ (мумкин аст ба main()) бозгардонида мешавад. Яъне барои имконпазир гаштани бозгашт функсияи рекурсивиро чунин сохтан лозим аст, ки ҳар як қадами рекурсия калимаи махсуси return-ро дарбар гирад.

Функсияҳои рекурсивӣ

а) Дохилкунии терминологӣ - Дар асл ҳар дуи ин як метод аст, ҳангоми тадбиқшавӣ дар ҳама ҷо номҳои гуногунро истифода мебарад – инҳо индуксия, рекурсия ва муносибатҳои тааакрор – 2
Дар зери мафҳуми индуксия усули тасдиқ кардани далел фаҳмида мешавад, ки дар асоси индуксия дар n = 0,1 сохта мешавад, баъд тасдиқкунии дуруст ҳисобида мешавад дар n = n ва исботкуни барои n + 1 гузаронида мешавад.

Дар зери мафҳуми рекурсия усули муайянкунии функсия бо воситаи L, ё қиммати муайяншудаи гузашта ва оянда фаҳмида мешавад ва боз воситаи муайянкунии ташкилот, ки дар он функсия худро бо аргументи дигар даъват менамояд.бо

Истилоҳи муносибатҳои такрор бо услуби илми амрикоӣ вобаста буда, масъалаҳои функсияи математикиро бо ёрии рекурсия муайян мекунад.

Мақсади асосии масъалаҳои рекурсивӣ, ки дода шудаанд, ин гирифтани функсияи f(n) дар формаҳои маълум дар намуди функсия аналитикӣ мебошад. Вобаста ба ин якчанд мисолҳо дида мебароем.

б) мисоли ҳалли функсияҳои рекурсивӣ
11.
f(0)=0
f(n)= f(n-1)+1

f


22.
f(0)=1
f(n)= n*f(n-1)

f
Натиҷаи охарин инро медиҳад – f(n)=1*2*3*…*n = n!

Барои пуррагии маълумот, формулаи Стерлингро истифода мебарем, барои
 
33.
f(0)=1
f(1)=1
f(n)= f(n-1)+ f(n-2), n>=2

Ин функсияи рекурсивӣ адади Фибоначиро муайян мекунад: 1,1,2,3,5,8,13, ки бисёри вақт дар таҳлили масъалаҳои гуногун ба миён меояд, ки аз он ҷумла дар таҳлилкунии алгоритмҳо.

Қайд менамоем, ки асимптомӣ
44.
f(0)=1
f(n)= f(n-1)+ f(n-2)+…+1 =
f
f(
Барои гирифтани функсияи ошкоро арзишҳои пайдарпайи онро дида мебароем: f(0)=1, f(1)=2, f(2)=4, f(3)=8, ки ба шумо имкон медиҳад, ки пешниҳод, ки F(n)=
5.
f(0)=1
f(n)= 2*f(n-1)

Мо бо мисоли зерин сару корд орем, ки ҳамзасон як функсия метавонад мафҳумҳои гуногуни рекурсивӣ дошта бошад – f(n)=
6.
f(0)=1
f(1)=2
f(n)= f(n-1)*f(n-2)

Дар ин ҳолат мо метавонем ҳалли масъаларо дар шакли пӯшида гирем, аозишҳои функсияро, ки ба дараҷаи 2 муносиб мебошад, муқоиса мекунем.


Бо воситаи f(n)-n – и адад мо адаи Фибоначиро қайд намуда, : f(n)=
Тадбиқи алгоримҳои рекурсия

Аксарияти забонҳои сатҳи баланди имрӯза дошта механизми амали рекурсивиро дастгирӣ менамояд, вақте, ки функсия ҳамчун элементи структураи забони барномасозӣ, ки арзиши ҳисобро аз номи худ бармегардонад. Метавонад худро бо аргументи гуногун даъват намояд. Ин хусусият ба мо имкон медиҳад, ки бевосита муайянкунандаҳои функсияҳои рекурсивиро муайян кунем. Кайд менамоем, ки ба рисолаи Черч – Тьюринг, асбоби функсияи рекурсивии Черч баробар аст ба мошинаи Тьюринг ва пас. Ҳар як алгоритми рекурсиви метавонад такроран амалӣ шавад:

F(n);
If n=0 or n=1 (санҷидани мустақили имконияти ҳисоб)
Then
F <-- 1
Else
F <-- n*F(n-1); ( даъвати функсияхои рекурсивӣ)
Return (F);
End;

Таҳлили мураккаби ҳаҷмнокии амали алгоритмҳои рекурсивии, аён аст, ки бо шумораи амалиётҳо, ки бо як барои тамос яъне даъват амалӣ мегардад ва ҳамчунин бо шумораи даъватҳо вобастагӣ дорад. Нишондиҳандаҳои графикии аз маълумотҳои алгоритм пайдо шуда, занҷири даъватҳои рекурсивиро дарахти даъватҳои рекурсиви меноманд. Муҳокимаи бештари муфассал ба зарурати ташкили баҳисобгирии арзиш чун даъвати функсия ва параметрҳои интиқол ва бозгашт ба арзишҳои ҳисоб ва интиқоли онро ба идоракунии даъватҳо оварда мерасонад.

Қайд намудан лозим аст, ки баъзе шохаи мустақили дарахти даъвати рекурсивӣ карда мешавад, ҳангоми равонидан ба чунин арзишҳои бузургие, ки ба воситаи он функсия метавонад бевосита ёфта шавад.

Ҳамин тавр лоиҳаи эквиваленти рекурсиви даврӣ мебошад, зеро он дар ҳар як порча иҷрои вазифаҳои функсияи рекурсивиро бо бузургӣ дорад.

Мисоли функсияро барои муайянкунии факториал дида мебароем.(расмӣ 1):
Занҷири рекурсивии бозгашт
Занҷири рекурсивии зангҳо
Расми 1.1. Дарахти рекурсиви ҳангоми муайянкунии факториал – F(5)

Дарахти рекурсивии даъват метавонад, аз ин ҳам сохти мушкил дошта боша, агар дар ҳар даъват якчанд то муроҷиат пайдо шавад – фрагменти яъне порчаи дарахти рекурсиви барои ададҳои Фибоначи дар расмӣ 2 нишон дода шудаанд.


Расми.1.2 (Порчаи дарахти рекурсиви ҳангоми муайянкунии адади Фибоначи – F(5)

3.Таҳлили механизми ҳаҷмнокии тартиби даъват

Механизми даъвати функсия ё тартиб дар сатҳи баланди забон асосан аз архитектураи компютер ва системаи оператсионӣ вобаста аст. Дар чаҳорчӯбаи IBM PC мувофиқи компютерҳо ин механизм ба воситаи барномаи қатора амалӣ карда мешавад. Мисли зарурии параметрҳо ҳақиқи ба тартиб ва функсия дода мешаваднд. Ҳамин тавр аҳамияти бозгашти онҳо дар дохили барномаи қатора бо фармони махсуси протсессор дохил карда мешавад. Илова бар ин маънои регистерҳо ва суроғаи бозгашти даъвати тартиботӣ нигоҳ дошта мешавад. Нақшави ин механизм дар расми 8.3 нишон дода шудаанд.


Расмӣ 1.3. Механизми тартиби даъват бо истифодаи қатораи барномавӣ

Барои ҳисобкунии ҳаҷми даъватҳо , амалиётҳо ҷойгиршавии калимаро дар қатора ва аз қатора берункардашуда бо воситаи амалиётҳои элементари дар системаи расмӣ дида мебароем. Ҳамон вақт ҳангоми даъвати тартибот ё функсия, дар қатора , суроғаи бозгашт, ҳолати зурурии регистерҳои протсессор, суроғаи бозгашти маълумотҳои додашудаи параметрҳо ҷойгир карда мешавад. Баъд аз ин гузориш ба воситаи суроға ба тартиботи даъватшуда амал мекунад, ки параметрҳои расми мебарорад, ҳисобкуниро иҷро мекунад, онҳоро дар суроғаи нишондодашудаи қатора ҷобаҷо мегузорад ва дар анҷоми кор регистерҳоро азнавбарқарор мекунад ва аз қатора суроғаи бозгаштро берун карда коригузоштанро бо ин суроға иҷро мекунад.

Боқайдкунӣ:
m – шумораи параметрҳои ҳақиқии додашуда,
k – шумораи тартиби маълумотҳои бозгашта,
r –шумораи регистерҳои дар қатора нигоҳ дошта, мо дорем:

F даъват = m+k+r+1+m+k+r+1 = 2*(m+k+r+1) амалиётҳои элементарӣ ҳангоми якбори даъват ва бозгашт.

Таҳлили ҳаҷмнокии алгоритмҳои рекурсивӣ дар кисми худи ҳаҷми даъвати рекурсиви метавон амал кард , бо роҳи гуногун новобаста аз он чи тавр суммаи ҷамъбасти амалиётҳо сурат мегирад – аз алохякида дида баромадани занҷир даъвати рекурсивӣ ва бозгашшт ё якҷоя дар қуллаи дарахти рекурсивии дарахт.

Таҳлили ҳаҷмнокии алгоритмҳои муайянкунии факториал

Барои дида баромадани сари алгоритми рекурсиви муайянкунии алгоритм нӯги дарахти рекурсиви баробар аст ба ошкори n, дар навбати худ бо як қиммат меравад ва бозмегардад (m=1, k=1),тахминан дар нигоҳ доштани 4 регистерҳо - r=4, аммо дар даъвати охарини рекурсиви маҷмуи функсия новобаста дар охир муайян мешавад.3
fa(n)=n*2*(1+1+4+1)+(n-1)*(1+3)+1*2=18*n - 2

Қайд менамоем, ки n – пареметри алгоритм, шумораи калима дар вақти даромад нест.

1.2.Намудҳои рекурсия

Агар функсия ва ё протседура худашро ба восита ё бевосита дават кунад, он гоҳ ин гуна раванд, ва ё протсес рекурсияи одии номида мешавад.

Рекурсия ҳамон вақт мураккаб номида мешавад, агар ягон функсияи А функсияи В-ро дават кунад ва дар навбати худ функсияи В функсияи А-ро дават кунад, ҳамин рекурсияи мураккаб номида мешавад. Дар ин вақт протседураи якумин нависташуда протседураи ҳоло нависта нашударо дават карда метавонад. Барои иҷро шудани ҳамин амалиёт мо бояд аз ҳамин «Опережающее описание»-и истифода барем.

Мисол:
1

2

3

4

5

6

7

8

9

10

11

12

13

14
procedure A(n: integer); {Опережающее описание (заголовок) первой процедуры}

procedure B(n: integer); {Опережающее описание второй процедуры}

 

procedure A(n: integer); {Полное описание процедуры A}

begin

  writeln(n);

  B(n-1);

end;

procedure B(n: integer); {Полн

ое описание процедуры B}

begin

  writeln(n);

  if n<10 then

    A(n+2);

end;
Протседураи «Опережающее описание»-и В метавонад инро аз протседураи А-ро дават карда метавонад. Проседури «Опережающее описание»-и А дар ин мисол талаб намекунад ва аз фикронии эститики ҳамроҳ карад шудааст.

1.3.Рекурсия ва иттератсия

Мегӯянд, ки натиҷаи ветроҳои

Мисоли одди барои ҳисобкуни бо воситаи муносибатҳои рекурентиви ин фоктриал мебошад.

Факториали навбатии n!-ро мисли пештара ҳисоб карада мешвад, ҳамчун:


Ҳангоми

Вектори
Аз ҷумла барои факториал
1

2

3

4
x := 1;

for i := 2 to n do

  x := x * i;

writeln(x);
Ҳар як навсозии (x := x * i) итератсия номида мешавад ва раванди такроршавии итератсия, итератсиякунини номида мешавад.

Диққат медиҳем, ки натиҷаи муносибати (1) ба таври рекурсивӣ ҳал карда шудааст ва ҳисобкуни n-элемент дар ҳақиқат якчанд маротиба гирифтани функсияи F аз худи он мебошад.


Дар бисёр ҳолатҳо ба факториал навиштан мумкин аст:
1

2

3

4

5

6

7
function Factorial(n: integer): integer;

begin

  if n > 1 then

    Factorial := n * Factorial(n-1)

  else

    Factorial := 1;

end;
Бояд донем, ки давати функсия бо худ якчанд хароҷотҳои иловагиро мебарад, барои ҳамин варианти якуми ҳисобкуни фоктриал якчанд маротиба тезтар иҷро мешавад. Умуман ҳалии итератсиони нисбат ба рекурсивӣ тезтар мебошад.
Ҳамаи намуди протседураҳо ва функсияҳои реукурсивӣ танҳои як давати рекурсивӣ дорад, бо осони бо сиклҳои иттератсинои иваз мешавад. Барои ба даст гирифтани аналогӣ одди ғайрирекурсивӣ надошта , бояд ба протседура ва функсияҳо муроҷиат кунем, ки як ё якчанд маротиба худро дават карда тавонад. Дар ин ҳолат бисёр продседураҳои даватшуда ба таври занҷирӣ не балки ба таври дарахти бутун аст. Масъалаҳои васеъи синфи мавҷуд аст, агар раванди ҳислбкуни бо ҳамин тарз сохта шудааст. Айнан барои ҳалли ҳамин гуна масъалаҳо рекурсия ин бисёртар роҳи осон ва қулай мебошад4
Боби II. Татбиқи рекурсия жар забони барномасозии С++

2.1 Мисоли “




/* printf */
/* clock_t, clock, CLOCKS_PER_SEC */







>n;











1)










2.2. Мисоли факториал

Ҳалли факториал бе истифодаи рекурсия





/* printf */
/* clock_t, clock, CLOCKS_PER_SEC */






>n;



















Расмӣ 2.2

Ҳалли факториал бо истифодаи рекурсия





/* printf */
/* clock_t, clock, CLOCKS_PER_SEC */












>n;












2.3. Мисоли ҷобоҷогузории массив

Ҷобоҷогузори бо методи Шелле





/* printf */
/* clock_t, clock, CLOCKS_PER_SEC */
/* sqrt */
















min) break;
=j;p-=m)














> size;






























Расмӣ 2.4

Ҷобоҷогузори бо истифодаи рекурсия




/* clock_t, clock, CLOCKS_PER_SEC */



k; --i)

































Расмӣ 2.5

Хулоса

Бо навиштани кори курси ман бисёр имкониятҳои забони барномасозии С++ -ро аз худ кардам. Малакаи кор бо рекурсияро пайдо кардам.

Дар кори курси дар қисми назариявӣ мафҳуми рекурсия, намудҳои он кушод ва равшан баён карда шудааст. Дар қисми амалӣ бошад якчанд мисолҳо бо воситаи сикл ва рекурсия сохта шуда фарқияти байни онҳо муайян карда шуд.

Ман баъд аз ҳалли мисолҳо ба чунин хулоса омадам, ки ҳалли мисолҳо бо воситаи рекурсия нисбат ба сиклӣ беҳтар аст. Рекурсия бо суръати тез кор мекунад.

Вақте ки функсия худро дават мекунад, дар “стек”-ҳо ҷой барои тағирёбандаи локалии нав ва параметҳои он ҷудо карда мешавад. Кодҳои функсия бо додашудаҳои тағирёбанда кор мекунад. Давати рекурсивӣ нусхаи нави функсияро намесозад. Фақат қиматҳои худро дигар мекунад. Давати рекурсивии функсия кори худро ба итмом расонад, тағирёбандаҳои пешина ва қимати онҳо аз “стек”-ҳо тоза карда мешавад.

АДАБИЁТ
Andrei Alexandrescu - Modern C++ Design-2001 year
  • Antony Polukhin - Boost C++ Application Development Cookbook-2016 year
  • C++ Programing
  • Scott Meyers - Effective C++ 3rd Edition
  • Alexandrescu, Andrei. 2000a. Traits: The else-if-then of types. C++ Report, April.
  • Koenig, Andrew, and Barbara Moo. 1996. Ruminations on C++. Reading, MA: Addison-Wesley.


     Федер Е. Фракталы. – М.: Мир, 1991.

     www.wikipedia.ru

     http://function-x.ru

     http://www.cyberforum.ru

  • перейти в каталог файлов


    связь с админом