డౌ LLOYD: మీరు చూసిన ఉంటే సూత్రం లో వీడియో,
మొత్తం ప్రక్రియ ఉండవచ్చు కొద్దిగా మాయా అనిపించింది.
ఇది ఎలా పని చేస్తుంది?
విధులు ఎలా తెలుసు వారు వేచి మరియు మరొక విలువ కోసం వేచి అవసరం
వేరే ఫంక్షన్ నుండి తిరిగి మేము కావలసిన ఫలితంగా పొందడానికి కాల్?
>> Well, ఈ పని కారణం ఎందుకంటే కాల్ స్టాక్ అని పిలుస్తారు ఏదో.
మీరు ఒక ఫంక్షన్ కాల్ చేసినప్పుడు, వ్యవస్థ మెమరీలో స్పేస్ పక్కన అమర్చుతుంది
ఆ ఫంక్షన్ కోసం పని చేయడానికి.
మరియు మేము మెమరీ ఈ రాళ్లను కాల్ ప్రతి ఫంక్షన్ ప్రక్కన సెట్ చేస్తున్నారు
ఒక స్టాక్ ఫ్రేమ్ లేదా ఒక చర్యను ఫ్రేమ్ కాల్.
మరియు మీరు ఆశించిన విధంగా, ఈ స్టాక్ ఫ్రేమ్లలో
మెమరీ స్టాక్ భాగంగా నివసిస్తున్నారు.
>> ఒక పని కంటే ఎక్కువ స్టాక్ ఫ్రేమ్ ఇచ్చిన సమయంలో మెమరీలో ఉండవచ్చు.
ప్రధాన ఒక ఫంక్షన్ తరలింపు కాల్స్ ఉంటే, మరియు తరలింపు దిశలో కాల్స్,
అన్ని మూడు విధులు ఓపెన్ ఫ్రేమ్లను కలిగి.
కానీ వారు చురుకుగా ఫ్రేములు అన్ని ఉన్నాయి.
ఈ ఫ్రేములు ఒక స్టాక్ ఏర్పాటు చేస్తారు.
నుండి ఫ్రేమ్ ఇటీవల అనే
ఫంక్షన్ స్టాక్ ఎగువ ఎల్లప్పుడూ ఉంటుంది.
మరియు ఎల్లప్పుడూ చురుకుగా ఫ్రేమ్.
మాత్రమే నిజంగా ఎప్పుడూ ఒక ఉంది ఒక సమయంలో చురుకుగా ఉండే ఫంక్షన్.
ఇది స్టాక్ పైన ఒకటి.
>> ఒక ఫంక్షన్ మరొక కాల్స్ ఫంక్షన్, అది విధమైన విరామం యంత్రాలపై.
ఇది విధమైన వేచి, పట్టు ఉంది.
మరియు మరొక స్టాక్ ఫ్రేమ్ నెట్టడమే దాని పైభాగంలో స్టాక్ లో.
మరియు ఆ చురుకుగా ఫ్రేమ్ అవుతుంది.
మరియు ఫ్రేమ్ వెంటనే అది వేచి అవసరం క్రింద
అది మళ్ళీ చురుకుగా ఫ్రేమ్ వరకు దాని పనిని తిరిగి ముందు.
ఒక ఫంక్షన్ ఉంది పూర్తి మరియు అది పూర్తి,
దాని ఫ్రేమ్ స్టాక్ ఆఫ్ popped ఉంది.
పరిభాష ఉంది.
మరియు ఫ్రేమ్ వెంటనే ఇది దిగువ, నేను కేవలం అన్నాడు,
కొత్త చురుకుగా ఫ్రేమ్ అవుతుంది.
>> మరియు అది మరొక ఫంక్షన్ ఉంటే, అది మళ్ళీ విరామం జరగబోతోంది.
ఆ కొత్త ఫంక్షన్ యొక్క స్టాక్ ఫ్రేమ్ రెడీ స్టాక్ ఎగువ పై ఒత్తిడి.
ఇది దాని పని చేస్తాను.
ఇది ఆఫ్ పాప్ ఉండవచ్చు.
మరియు ఇతర ఫంక్షన్ దిగువ దాన్ని మళ్ళీ చేసుకోగలుగుతారు.
>> కాబట్టి యొక్క చూస్తూ, మళ్ళీ ఈ ద్వారా వెళ్ళడానికి వీలు కారకమైన చర్య ఆలోచన వద్ద
మేము లో నిర్వచించిన సూత్రం వీడియో చూడండి
ఎలా ఈ వెనుక మేజిక్ పునరావృత ప్రక్రియ జరుగుతున్న ఉంది.
కాబట్టి ఈ మా మొత్తం ఫైల్ కుడి ఉంది?
మేము రెండు నిర్వచించిన ప్రధాన మరియు నిజానికి విధులను.
మరియు మేము భావిస్తున్నాము ఉండవచ్చు, ఏ సి కార్యక్రమం అన్నారు
ప్రధాన మొదటి లైన్ వద్ద మొదలు.
>> కాబట్టి మేము ప్రధాన కోసం ఒక కొత్త స్టాక్ ఫ్రేమ్ సృష్టించడానికి.
మరియు అది నడుస్తున్న ప్రారంభించడానికి జరగబోతోంది.
ప్రధాన కాల్స్ printf.
మరియు printf అన్నారు 5 కారకమైన ప్రింట్.
Well, అది తెలీదు 5 ఏ కారకమైన ఉంది
అందువలన ఈ కాల్ ఇప్పటికే ఉంది మరొక ఫంక్షన్ కాల్ బట్టి.
కాబట్టి ప్రధాన అక్కడే విరామం అన్నారు.
నేను వదిలి గొన్న రెడీ దాని అక్కడే రంగు బాణం
ఇది అదే రంగు కుడివైపు ఫ్రేమ్ స్టేక్
ప్రధాన స్తంభింప అన్నారు సూచించుటకు 5 కారకమైన అంటారు ఇక్కడ ఉండగా.
>> కాబట్టి 5 యొక్క కారకమైన అంటారు.
మరియు అది చాలా వద్ద ఆరంభమవుతుంది కారకమైన విధి ప్రారంభంలో.
ఇది ప్రశ్న నేను 1 సమానం చేస్తున్నాను అడుగుతుంది?
1 సమానంగా 5?
ఏ, బాగా.
కనుక ఇది డౌన్ వెళ్ళడానికి జరగబోతోంది వేరే భాగాన్ని n సార్లు
n మైనస్ 1 యొక్క కారకమైన.
OK, అలాగే.
>> కాబట్టి ఇప్పుడు, 5 యొక్క కారకమైన ఉంది మరొక కాల్ ఆధారపడి
దాటారు కారకమైన ప్రామాణికంగా 4.
కాబట్టి కారకమైన 5 ఫ్రేమ్, ఎరుపు ఫ్రేమ్ ఆ
అక్కడే స్తంభింప అన్నారు ఆ లైన్ వద్ద నేను సూచించిన చేసిన
మరియు పూర్తి 4 యొక్క కారకమైన కోసం వేచి అది తద్వారా చేయవలసిన ఏమి
క్రియాశీల ఫ్రేములో మరల తయారవుతుంది.
>> సో 4 ప్రారంభాల్లో కారకమైన కారకమైన ప్రారంభం.
1 సమానంగా 4 ఏమిటి?
లేదు, కాబట్టి అది ఇదే జరగబోతోంది.
అది వేరే శాఖ డౌన్ వెళ్ళడానికి జరగబోతోంది.
ఇది కోడ్ యొక్క లైనును ను జరగబోతోంది.
సరే, నేను నాలుగు సార్లు తిరిగి వెళుతున్న.
ఓహ్, 3-- యొక్క కారకమైన కాబట్టి కారకమైన 4 3 పూర్తి కారకమైన ఆధారపడి ఉంటుంది.
>> మరియు కనుక ఇది 3 యొక్క కారకమైన కాల్ అవసరం.
మరియు ఆ గొన్న ద్వారా వెళ్ళి మళ్ళీ అదే ప్రక్రియ.
ఇది ద్వారా మొదలవుతుంది ఇక్కడ పొందుతాడు.
3 యొక్క కారకమైన ఆధారపడి 1 యొక్క కారకమైన మీద.
2 ప్రారంభాల్లో కాబట్టి కారకమైన, ఇక్కడ పొందుతాడు.
ఇది 1 యొక్క కారకమైన ఆధారపడి ఉంటుంది.
1 ప్రారంభమవడం కారకమైన.
>> అలాగే.
కాబట్టి ఇప్పుడు, మేము పొందుతుంటే ఎక్కడో ఆసక్తికరమైన, కుడి?
కాబట్టి ఇప్పుడు, 1 1 సమానము.
అందువలన మేము 1 తిరిగి.
ఈ సమయంలో, మేము తిరిగి ఉంటాయి.
ఫంక్షన్ ప్రదర్శనతో.
ఇది ప్రవర్తన ఉంది is-- దీన్ని వేరే ఏమీ,
అందువలన స్టాక్ ఫ్రేమ్ 1 యొక్క కారకమైన ఆఫ్ బయటకు.
ఇది పూర్తయ్యే.
ఇది 1 తిరిగి.
మరియు ఇప్పుడు, 2 కారకమైన ఇది ఫ్రేమ్ క్రింద వెంటనే
స్టాక్ లో, చురుకుగా ఫ్రేమ్ అవుతుంది.
>> మరియు అది అప్ ఎంచుకోవచ్చు సరిగ్గా అది వదిలి పేరు.
ఇది ఒక కారకమైన కోసం వేచి అయిన 1 దాని పని పూర్తి చేయడానికి.
ఇది ఇప్పుడు పూర్తయింది.
మరియు ఇక్కడ మేము ఉన్నాయి.
>> 1 యొక్క కారకమైన 1 విలువ తిరిగి.
2 చెయ్యవచ్చు కాబట్టి కారకమైన సే 2 సార్లు 1 తిరిగి.
దాని పని ఇప్పుడు జరుగుతుంది.
ఇది కారకమైన 2 తిరిగి యొక్క 3, అది వేచి జరిగినది.
3 యొక్క కారకమైన ఇప్పుడు టాప్ ఫ్రేమ్ స్టాక్ లో చురుకుగా ఫ్రేమ్.
కాబట్టి అది సరే, బాగా, నేను వెళుతున్న చెప్పారు 6 ఇది 3 సార్లు 2, తిరిగి.
నేను ఆ ఇవ్వాలని వెళుతున్న కారకమైన తిరిగి నాణ్యం
4, నాకు వేచి ఉంది.
నేను పూర్తిచేసాను.
3 యొక్క కారకమైన స్టాక్ ఆఫ్ బయటకు, మరియు 4 యొక్క కారకమైన ఇప్పుడు చురుకుగా ఫ్రేమ్.
>> 4 OK, నేను 4 సార్లు తిరిగి వెళుతున్న చెప్పారు ఆరు 3 యొక్క కారకమైన.
ఆ విలువ అని 3 యొక్క కారకమైన తిరిగి.
అందువలన 4 సార్లు 6 24.
మరియు నేను పాస్ వెళుతున్న ఆ వెనుక కారకమైన
5, నాకు వేచి ఉంది.
5 కారకమైన ఇప్పుడు చురుకుగా ఫ్రేమ్.
ఇది 5 సార్లు తిరిగి వెళుతున్న 4-- 5 సార్లు 24, లేదా 120-- యొక్క కారకమైన
మరియు ఆ విలువ ఇవ్వాలని తిరిగి కలిగి, ప్రధాన
ఒక చాలా ఓపికగా వేచి స్టాక్ దిగువన కాలం.
>> ఎక్కడ ప్రారంభమైందో అంతే.
ఇది ఈ కాల్ చేసింది.
అనేక ఫ్రేమ్లను ఎగువన చేపట్టాడు.
ఇది ఇప్పుడు తిరిగి స్టాక్ పైన ఉంది.
ఇది చురుకుగా ఫ్రేమ్ ఉంది.
కాబట్టి ప్రధాన విలువ వచ్చింది 120 తిరిగి 5 యొక్క కారకమైన నుండి.
ఇది వేచి చెయ్యబడిన ఆ విలువ అవ్ట్ ప్రింట్.
ఆపై అది పూర్తి అయిన.
ప్రధాన కోడ్ మరిన్ని పంక్తులు ఏ ఉంది.
కాబట్టి యొక్క ప్రధాన ఫ్రేమ్ ఆఫ్ ది పాప్స్ స్టాక్, మరియు మేము పూర్తి చేసిన.
>> సూత్రం పనిచేస్తుంది ఎలా ఆ.
స్టాక్ ఫ్రేములు పని ఎలా.
ఆ ఫంక్షన్ కాల్స్ ఇంతకు ముందు జరిగిన
కేవలం విరామం ఉన్నాయి వేచి తదుపరి కాల్స్ కోసం
కాబట్టి వారు చురుకుగా తయారవుతుంది పూర్తి ఫ్రేమ్ మరియు వారు ఏమి చెయ్యాలో పూర్తి.
>> నేను డౌ లాయిడ్ ఉన్నాను.
ఈ CS50 ఉంది.