Doug LLOYD: Jekk inti stajt tidher l-video fuq recursion,
il-proċess kollu jista 'jkollhom deher ftit maġika.
Kif taħdem?
Kif il-funzjonijiet jafu li bżonn li tistenna u stenna għall-valur ieħor
li jirritornaw minn funzjoni differenti sejħa sabiex tikseb ir-riżultat li rridu?
>> Ukoll, ir-raġuni dan jaħdem huwa għaliex ta 'xi ħaġa magħrufa bħala l-munzell sejħa.
Meta inti sejħa funzjoni, il- sistema twarrab ispazju fil-memorja
għal dik il-funzjoni li jagħmlu xogħol tagħha.
U aħna sejħa dawn biċċiet ta 'memorja li qed jiġu mwarrba għal kull funzjoni
sejħa qafas munzell jew qafas funzjoni.
U kif inti tista 'tistenna, dawn il-frejms munzell
jgħixu fuq il-parti munzell ta 'memorja.
>> Qafas munzell aktar minn funzjoni waħda jista 'jeżisti fil-memorja fi żmien partikolari.
Jekk ewlenija jitlob mossa funzjoni, u jimxu jitlob direzzjoni,
it-tliet funzjonijiet jkollhom frames miftuħa.
Iżda dawn mhux kollha għandhom frames attivi.
Dawn l-oqsfa huma rranġati munzell.
U l-qafas tal- aktar reċentement imsejjaħ
funzjoni huwa dejjem fuq quċċata tal-munzell.
U li huwa dejjem l-qafas attiva.
Hemm biss verament qatt wieħed funzjoni li l-attiv fi żmien.
Hu l-waħda fuq quċċata tal-munzell.
>> Meta funzjoni jitlob ieħor funzjoni, huwa tip ta 'preses nieqaf.
Huwa tip ta 'huwa fuq istiva, stennija.
U l-qafas munzell ieħor hu imbuttata fuq il-munzell fuq quċċata ta 'dan.
U li ssir l-qafas attiva.
U l-qafas immedjatament hawn taħt jeħtieġ li tistenna
sakemm għal darb'oħra huwa l-qafas attiva qabel ma tkun tista jkompli b'ħidmietu.
Meta funzjoni hija kompluta u dan isir,
frejm tagħha huwa popped off-munzell.
Dik hija l-terminoloġija.
U l-qafas immedjatament taħtu, kif I biss qal,
isir il-qafas attiva ġdida.
>> U jekk jitlob funzjoni oħra, li għaddej biex nieqaf mill-ġdid.
Qafas munzell dik il-funzjoni ġdida se jiġu mbuttati fuq il-quċċata tal-munzell.
Hija ser jagħmlu xogħol tagħha.
Jista pop lura off.
U l-funzjoni oħra taħtha tista 'tkompli mill-ġdid.
>> Mela ejja jmorru permezz ta 'dan mill-ġdid, tfittex fuq l-idea tal-funzjoni fattorjali
li aħna definit fil- recursion video biex tara
eżattament kif l-magic wara dan proċess rikursivi qed iseħħ.
Allura dan huwa fajl sħiħ tagħna, id-dritt?
Aħna definiti żewġ functions-- prinċipali u fatt.
U kif aħna tista 'tistenna, kwalunkwe programm C va
li jibda fl-ewwel linja ta 'prinċipali.
>> Allura aħna joħolqu qafas ġdid munzell għall prinċipali.
U li għaddej biex tibda taħdem.
Sejħiet ewlenin printf.
U printf se jistampa fattorjali 5.
Ukoll, hija ma kinitx taf liema fattorjali ta '5 huwa,
u għalhekk din is-sejħa huwa diġà jiddependi fuq sejħa funzjoni oħra.
Allura prinċipali se nieqaf hemm dritt.
Jien gonna leave tagħha vleġġa hemm dritt, kulur
l-istess kulur bħat- munzell qafas fuq il-lemin,
biex jindikaw li ewlieni se jiffriża hawn filwaqt fattorjali tal-5 tissejjaħ.
>> Allura fattorjali ta '5 tissejjaħ.
U li għaddej biex tibda fil-ħafna bidu tal-funzjoni fattorjali.
Hija tqajjem il-mistoqsija am I ugwali għal 1?
Huwa 5 ugwali għal 1?
Well, no.
Allura li għaddej biex jinżlu għal il-parti inkella, ritorn n ħinijiet
fattorjali ta 'n minus 1.
Well, OK.
>> Allura issa, fattorjali ta '5 huwa jiddependi fuq sejħa oħra
li fattorjali, li jgħaddi f'4 bħala l-parametru.
U għalhekk l-fattorjali ta 5 qafas, dak il-qafas aħmar,
se friża hemm dritt f'dak linja stajt indikat
u stenna għal fattorjali ta '4 biex jintemm dak li jeħtieġ li jsir dan li allura
tista 'ssir l-qafas attiva mill-ġdid.
>> Allura fattorjali ta '4 jibda fil il-bidu ta 'fattorjali.
Huwa ta '4 ugwali għal 1?
Le, hekk li għaddej biex jagħmlu l-istess ħaġa.
Li għaddej biex jinżlu l-fergħa ieħor.
Li għaddej biex tikseb sa dik il-linja tal-kodiċi.
OK, jien ser jirritorna erba 'darbiet.
Oh, fattorjali ta 3-- hekk fattorjali ta 4 tiddependi fuq fattorjali tat-3 irfinar.
>> U għalhekk għandha bżonn iddur fattorjali ta '3.
U li gonna jgħaddu l-istess proċess mill-ġdid.
Huwa jibda permezz, gets hawn.
Fattorjali ta 3 jiddependi fuq fattorjali ta '1.
Allura fattorjali ta '2 tibda, gets hawn.
Hija tiddependi fuq fattorjali ta 1.
Fattorjali ta '1 jibda.
>> KOLLOX SEW.
Allura issa, aħna qed jkollna x'imkien interessanti, right?
Allura issa, 1 huwa ugwali għal 1.
U hekk nerġgħu lura 1.
Wara dan, aħna qed jirritornaw.
Isir il-funzjoni.
Huwa imġieba is-- hemm xejn biex din tagħmel,
u għalhekk il-qafas munzell għall fattorjali ta '1 pops off.
Huwa lest.
Hija lura 1.
U issa, fattorjali ta '2, li kien il-qafas immedjatament taħt it
fil-ċmieni, isir il-qafas attiva.
>> U jista 'pick up eżattament fejn jitħalla 'off.
Huwa ilhom jistennew għal fattorjali minn 1 sa jintemm ix-xogħol tagħha.
Huwa issa lest.
U hekk aħna qegħdin hawn.
>> Fattorjali ta 1 ritornati valur ta '1.
Allura fattorjali ta 2 jista jiġifieri ritorn 2 darbiet 1.
Il-ħidma tiegħu issa qed isir.
Huwa lura 2 sa fattorjali ta '3, li kienet qed tistenna dan.
Fattorjali ta '3 issa huwa l-qafas ta' fuq, l-qafas attiva fil-ċmieni.
U għalhekk jgħid, OK, ukoll, jien ser li jirritornaw 3 darbiet 2, li huwa 6.
U jien ser jagħti dak valur lura għall fattorjali
ta '4, li baqgħet tistenna lili.
Jien jsir.
Fattorjali ta '3 pops off-munzell, u fattorjali ta '4 issa huwa l-qafas attiva.
>> 4 jgħid, OK, jien ser jirritorna 4 darbiet l fattorjali ta '3, li kien sitta.
Dan kien ta 'valur li fattorjali ta '3 lura.
U hekk 4 darbiet 6 huwa 24.
U jien ser jgħaddu li lura għall fattorjali
ta '5, li baqgħet tistenna lili.
Fattorjali ta '5 issa hija l-qafas attiva.
Huwa ser jirritorna 5 darbiet fattorjali ta 4-- 5 darbiet 24, jew 120--
u tagħti lil dak il-valur lura għall prinċipali, li għandha
ilhom jistennew patiently ħafna għal żmien twil fil-qiegħ tal-munzell.
>> Huwa fejn bdiet.
Hija magħmula din is-sejħa.
Diversi frames ħadet fil-quċċata.
Issa huwa lura fuq nett tal-munzell.
Hu l-qafas attiva.
Allura prinċipali ltqajna l-valur 120 lura mill fattorjali ta '5.
Huwa kien stennija biex jistampa dak il-valur.
U allura dan isir.
M'hemm l-ebda aktar linji ta 'kodiċi fil prinċipali.
Allura frame prinċipali ta pops off il-munzell, u aħna qed isir.
>> U li kif recursion xogħlijiet.
Thats kif frames munzell jaħdmu.
Dawk is-sejħiet funzjoni li ġara qabel
huma biss fuq pause, stennija għas-sejħiet sussegwenti
biex jintemm sabiex ikunu jistgħu jsiru l-attivi frejm u finitura dak li għandhom bżonn biex jagħmlu.
>> Jien Doug Lloyd.
Dan huwa CS50.