పునరావృతం మరియు పునరావృతం మధ్య వ్యత్యాసం
విషయము
పునరావృతం మరియు పునరావృతం రెండూ పదేపదే సూచనల సమితిని అమలు చేస్తాయి. ఒక ఫంక్షన్లోని ఒక ప్రకటన పదేపదే పిలిచినప్పుడు పునరావృతం. నియంత్రణ స్థితి తప్పు అయ్యే వరకు లూప్ పదేపదే అమలు చేసినప్పుడు పునరావృతం. పునరావృతం మరియు పునరావృతం మధ్య ప్రాథమిక వ్యత్యాసం అంటే a సూత్రం ఒక ప్రక్రియ, ఇది ఎల్లప్పుడూ ఒక ఫంక్షన్కు వర్తించబడుతుంది. ది మళ్ళా మేము పదేపదే అమలు చేయాలనుకుంటున్న సూచనల సమితికి వర్తించబడుతుంది.
- పోలిక చార్ట్
- నిర్వచనం
- కీ తేడాలు
- ముగింపు
పోలిక చార్ట్
పోలిక కోసం బేసిస్ | సూత్రం | మళ్ళా |
---|---|---|
ప్రాథమిక | ఫంక్షన్ బాడీలోని స్టేట్మెంట్ ఫంక్షన్ ను పిలుస్తుంది. | సూచనల సమితిని పదేపదే అమలు చేయడానికి అనుమతిస్తుంది. |
ఫార్మాట్ | పునరావృత ఫంక్షన్లో, ముగింపు పరిస్థితి (బేస్ కేసు) మాత్రమే పేర్కొనబడుతుంది. | పునరావృతం ప్రారంభించడం, కండిషన్, లూప్ మరియు స్టేట్మెంట్లో స్టేట్మెంట్ అమలు (నవీకరణలు మరియు తగ్గింపులు) నియంత్రణ వేరియబుల్. |
తొలగింపులు | పునరావృత కాల్ అమలు చేయకుండా ఫంక్షన్ను తిరిగి ఇవ్వమని బలవంతం చేయడానికి షరతులతో కూడిన స్టేట్మెంట్ ఫంక్షన్ యొక్క శరీరంలో చేర్చబడుతుంది. | ఒక నిర్దిష్ట షరతు వచ్చే వరకు పునరావృత ప్రకటన పదేపదే అమలు అవుతుంది. |
కండిషన్ | ఫంక్షన్ (బేస్ కేస్) అని పిలువబడే కొన్ని స్థితికి కలుసుకోకపోతే, అది అనంతమైన పునరావృతానికి దారితీస్తుంది. | పునరావృత ప్రకటనలోని నియంత్రణ పరిస్థితి ఎప్పుడూ తప్పుగా మారకపోతే, అది అనంతమైన పునరావృతానికి దారితీస్తుంది. |
అనంతమైన పునరావృతం | అనంతమైన పునరావృతం వ్యవస్థను క్రాష్ చేస్తుంది. | అనంతమైన లూప్ CPU చక్రాలను పదేపదే ఉపయోగిస్తుంది. |
అప్లైడ్ | పునరావృత ఎల్లప్పుడూ ఫంక్షన్లకు వర్తించబడుతుంది. | పునరావృత ప్రకటనలు లేదా "ఉచ్చులు" కు పునరావృతం వర్తించబడుతుంది. |
స్టాక్ | ఫంక్షన్ పిలువబడే ప్రతిసారీ కొత్త స్థానిక వేరియబుల్స్ మరియు పారామితుల సమితిని నిల్వ చేయడానికి స్టాక్ ఉపయోగించబడుతుంది. | స్టాక్ను ఉపయోగించదు. |
ఓవర్హెడ్ | పునరావృతం పునరావృత ఫంక్షన్ కాల్స్ యొక్క ఓవర్ హెడ్ కలిగి ఉంటుంది. | పునరావృత ఫంక్షన్ కాల్ యొక్క ఓవర్ హెడ్ లేదు. |
స్పీడ్ | అమలులో నెమ్మదిగా. | అమలులో వేగంగా. |
కోడ్ పరిమాణం | పునరావృతం కోడ్ పరిమాణాన్ని తగ్గిస్తుంది. | పునరావృతం కోడ్ను ఎక్కువసేపు చేస్తుంది. |
పునరావృత నిర్వచనం
C ++ ఒక ఫంక్షన్ను దాని కోడ్లోనే కాల్ చేయడానికి అనుమతిస్తుంది. అంటే ఫంక్షన్ యొక్క నిర్వచనం ఒక ఫంక్షన్ కాల్ను కలిగి ఉంటుంది. కొన్నిసార్లు దీనిని “వృత్తాకార నిర్వచనం". ఫంక్షన్ ఉపయోగించిన స్థానిక వేరియబుల్స్ మరియు పారామితుల సమితి ఫంక్షన్ ప్రతిసారీ కొత్తగా సృష్టించబడుతుంది మరియు స్టాక్ పైభాగంలో నిల్వ చేయబడుతుంది. కానీ, ప్రతిసారీ ఒక ఫంక్షన్ తనను తాను పిలిచినప్పుడు, అది ఆ ఫంక్షన్ యొక్క క్రొత్త కాపీని సృష్టించదు. పునరావృత ఫంక్షన్ కోడ్ యొక్క పరిమాణాన్ని గణనీయంగా తగ్గించదు మరియు మెమరీ వినియోగాన్ని కూడా మెరుగుపరచదు, కానీ పునరావృతంతో పోల్చినప్పుడు ఇది కొన్ని చేస్తుంది.
పునరావృతాన్ని ముగించడానికి, ఫంక్షన్ యొక్క నిర్వచనంలో మీరు ఎంచుకున్న స్టేట్మెంట్ను తప్పక చేర్చాలి. పునరావృత ఫంక్షన్ యొక్క నిర్వచనంలో ఎంచుకున్న స్టేట్మెంట్ లేకపోవడం ఒకసారి పిలిచిన అనంతమైన పునరావృతంలో ఫంక్షన్ను అనుమతిస్తుంది.
సంఖ్య యొక్క కారకాన్ని తిరిగి ఇచ్చే ఫంక్షన్తో పునరావృతాన్ని అర్థం చేసుకుందాం.
పూర్ణాంక కారకం (పూర్ణాంక సంఖ్య) {int సమాధానం; if (num == 1) {తిరిగి 1; } else {answer = కారకమైన (సంఖ్యా -1) * సంఖ్య; // పునరావృత కాలింగ్} తిరిగి (సమాధానం); }
పై కోడ్లో, స్టేట్మెంట్ అది నివసించే ఫంక్షన్ను కారకమైన () అని పిలుస్తున్నందున, పునరావృతతను చూపిస్తుంది.
పునరావృతం యొక్క నిర్వచనం
పునరావృతం అనేది స్టేట్మెంట్ స్టేట్మెంట్ లోని షరతు తప్పు అయ్యేవరకు పదేపదే సూచనల సమితిని అమలు చేసే ప్రక్రియ. పునరుక్తి ప్రకటనలో పునరుక్తి ప్రకటనలోని ప్రకటనల ప్రారంభించడం, పోలిక, అమలు మరియు చివరకు నియంత్రణ వేరియబుల్ యొక్క నవీకరణ ఉన్నాయి. కంట్రోల్ వేరియబుల్ నవీకరించబడిన తరువాత అది మళ్ళీ పోల్చబడుతుంది మరియు పునరావృత ప్రకటనలోని పరిస్థితి తప్పు అని తేలినంత వరకు ఈ ప్రక్రియ పునరావృతమవుతుంది. పునరావృత ప్రకటనలు “ఫర్” లూప్, “అయితే” లూప్, “డూ-అయితే” లూప్.
పునరావృత ప్రకటన వేరియబుల్స్ నిల్వ చేయడానికి స్టాక్ను ఉపయోగించదు. అందువల్ల, పునరావృత ఫంక్షన్తో పోలిస్తే పునరావృత ప్రకటన అమలు వేగంగా ఉంటుంది. పునరావృత ఫంక్షన్ కూడా పునరావృత ఫంక్షన్ కాలింగ్ యొక్క ఓవర్ హెడ్ను కలిగి ఉండదు, ఇది పునరావృత ఫంక్షన్ కంటే వేగంగా దాని అమలును చేస్తుంది. నియంత్రణ పరిస్థితి తప్పు అయినప్పుడు పునరావృతం ముగుస్తుంది. పునరావృత ప్రకటనలో నియంత్రణ పరిస్థితి లేకపోవడం అనంతమైన లూప్కు దారితీయవచ్చు లేదా ఇది సంకలన లోపానికి కారణం కావచ్చు.
పై ఉదాహరణకి సంబంధించి పునరుక్తిని అర్థం చేసుకుందాం.
పూర్ణాంక కారకం (పూర్ణాంక సంఖ్య) {int సమాధానం = 1; // ప్రారంభించడం అవసరం ఎందుకంటే దాని ప్రారంభానికి ముందు చెత్త విలువను కలిగి ఉండవచ్చు (int t = 1; t> num; t ++) // iteration {answer = answer * (t); తిరిగి (సమాధానం); }}
పై కోడ్లో, ఫంక్షన్ మళ్ళా స్టేట్మెంట్ ఉపయోగించి సంఖ్య యొక్క కారకాన్ని అందిస్తుంది.
- ఒక ప్రోగ్రామ్లోని ఒక పద్ధతి పదేపదే తనను తాను పిలిచినప్పుడు పునరావృతం, ఒక ప్రోగ్రామ్లోని సూచనల సమితి పదేపదే అమలు చేయబడినప్పుడు పునరావృతం.
- పునరావృత పద్ధతిలో సూచనల సమితి, స్టేట్మెంట్ కాలింగ్ మరియు ముగింపు స్థితి ఉంటుంది, అయితే పునరావృత ప్రకటనలలో ప్రారంభించడం, పెంపు, పరిస్థితి, లూప్లోని బోధనా సమితి మరియు నియంత్రణ వేరియబుల్ ఉంటాయి.
- షరతులతో కూడిన ప్రకటన పునరావృతం యొక్క ముగింపును నిర్ణయిస్తుంది మరియు నియంత్రణ వేరియబుల్ యొక్క విలువ పునరావృత ప్రకటన యొక్క ముగింపును నిర్ణయిస్తుంది.
- పద్ధతి ముగింపు స్థితికి దారితీయకపోతే అది అనంతమైన పునరావృతంలోకి ప్రవేశిస్తుంది. మరోవైపు, కంట్రోల్ వేరియబుల్ ఎప్పటికీ ముగింపు విలువకు దారితీయకపోతే, మళ్ళా ప్రకటన అనంతంగా మళ్ళిస్తుంది.
- అనంతమైన పునరావృతం సిస్టమ్ క్రాష్కు దారితీస్తుంది, అయితే అనంతమైన పునరావృతం CPU చక్రాలను వినియోగిస్తుంది.
- పునరావృతం ఎల్లప్పుడూ పద్ధతికి వర్తించబడుతుంది, అయితే, బోధన సమితికి పునరావృతం వర్తించబడుతుంది.
- పునరావృత సమయంలో సృష్టించబడిన వేరియబుల్స్ స్టాక్లో నిల్వ చేయబడతాయి, అయితే పునరావృతానికి స్టాక్ అవసరం లేదు.
- పునరావృతం పునరావృత ఫంక్షన్ కాలింగ్ యొక్క ఓవర్హెడ్కు కారణమవుతుంది, అయితే, పునరావృతానికి ఓవర్హెడ్ కాలింగ్ ఫంక్షన్ లేదు.
- ఫంక్షన్ కాలింగ్ కారణంగా పునరావృత యొక్క ఓవర్ హెడ్ ఎగ్జిక్యూషన్ నెమ్మదిగా ఉంటుంది, అయితే, మళ్ళా అమలు వేగంగా ఉంటుంది.
- పునరావృతం కోడ్ పరిమాణాన్ని తగ్గిస్తుంది, అయితే పునరావృత్తులు కోడ్ను ఎక్కువసేపు చేస్తాయి.
ముగింపు:
పునరావృత ఫంక్షన్ రాయడం సులభం, కానీ అవి పునరావృతంతో పోలిస్తే బాగా పని చేయవు, అయితే, మళ్ళా రాయడం కష్టం కాని పునరావృతంతో పోలిస్తే వాటి పనితీరు మంచిది.