[సంగీతాన్ని] డౌ LLOYD: అన్ని కుడి. ఒక వింత విషయం యొక్క కైండ్, కుడి? మేజిక్ సంఖ్యలు. అతను ఉన్నప్పుడు అతను అర్థం ఏమి డో మేజిక్ సంఖ్యలు గురించి మాట్లాడటం? Well, కార్యక్రమాలు కొన్ని మేము CS50 లో రాసిన చేసిన ఇప్పటివరకు కొన్ని విచిత్రమైన కలిగి సంఖ్యలు రకమైన వాటిని విసిరి. బహుశా కారణాల మేము లేదు పూర్తిగా కుడి ఇప్పుడు అర్థం. ఉదాహరణకు, మారియో సమస్య, మేము 23 వద్ద పిరమిడ్ యొక్క ఎత్తు చూశాయి. మేము స్పష్టంగా మీరు చెప్పారు కంటే ఎక్కువ 23 వెళ్ళి కాదు. కానీ 23 అర్థం ఏమిటి? సరే, మీరు చదివితే , జాగ్రత్తగా మీరు స్పెక్ ఆ చూసిన ఉండవచ్చు కారణం మేము 23 వద్ద ఆపేశారు ప్రామాణిక ఎత్తు ఎందుకంటే ఒక టెర్మినల్ విండో 24. మరియు మేము ఉంటే కనుక పిరమిడ్ కంటే ఎత్తుగా, ఈ విచిత్రమైన విషయం కావచ్చు అది ఎక్కడ తెరపై నడుస్తుంది. మీకు తెలిసిన మరియు, దేనిని ఆ కుడి, సందర్భంలో అర్థం? 23 వెంటనే స్పష్టమైన యొక్క అర్థం ఎవరైనా ఎవరు మీ కార్యక్రమాన్ని చూసి మరియు బహుశా వేరే ఉంది పరిమాణం టెర్మినల్ విండో? బహుశా కాకపోవచ్చు. అది సరే, వంటి తెలుస్తోంది. Well, ఎందుకు కేవలం తక్కువ 23 కంటే ఉంది? సాధారణంగా, ఇది రకంగా ఒక చెడ్డ అలవాటు నిజానికి మీ కోడ్ స్థిరాంకాలు రాయడానికి. మీరు నిజంగా చేసినప్పుడు, అలా చేయడం మీ కోడ్ స్థిరమైన వ్రాయండి, అది ఉపయోగించి గా సూచిస్తారు కొన్నిసార్లు మ్యాజిక్ సంఖ్యలు ఏదో ఇది మేము సాధారణంగా ప్రయత్నించండి మరియు నివారించేందుకు కావలసిన. ఉదాహరణకు, యొక్క ఒక రూపం తీసుకుందాం ఇక్కడ ఈ సాధారణ ఫంక్షన్ వద్ద. సహజంగానే సమాచారం లేదు వార్తలు సి లో రకం కార్డు లేదా డెక్ అని. కాబట్టి కేవలం నాతో భరించలేదని. అది కొద్దిగా pseudocode ఇక్కడ కలిపి. ఈ అనే ఫంక్షన్ ఉంది ఆ స్పష్టంగా కార్డు ఎదుర్కోవటానికి దాని ప్రామాణికంగా ఒక డెక్ పడుతుంది, మరియు నాకు ఇష్టానికి అవుట్పుట్ ఒకే కార్డు. నేను ఇక్కడ ఎక్కడ నేను ఏదో చేయడం వెబ్ 0 నుండి 52 వరకు నడుస్తుంది ఒక లూప్ కలిగి మరియు నేను ఒక కార్డు వ్యవహరించే. Well, మేము ఒక మేజిక్ పొందారు ఇక్కడ సంఖ్య, కుడి. మీరు మేజిక్ సంఖ్య చూస్తారు? లేదా మరింత ముఖ్యంగా, మీరు ఇక్కడ ఏ సమస్య చూడండి? ముఖ్యంగా ఈ ఉంటే కేవలం ఒక ఫంక్షన్ ఉంది ఒక దాని స్వంత ఫైల్ లో కలిగి ఫోల్డర్ వివిధ కొంత ఫైళ్లు, వీటిలో ప్రతి పేకాటలో మరొక విషయం చేస్తుంది. దీనికి వాటిని shuffles, లేదా ఒక చేతితో వ్యవహరిస్తుంది ఐదు కార్డులు బదులుగా ఒకే కార్డు. మీరు ఏమి చూస్తారు సమస్య ఇక్కడ కావచ్చు? మీరు మేజిక్ సంఖ్య చూస్తారు నేను కోడ్ చొప్పించారు చేసిన? ఇది కుడి, 52 ఉంది. ఇలా, అకారణంగా మీరు బహుశా తెలిసిన, OK. ఒక ప్రామాణిక డెక్ ఇలా కార్డులు 52 కార్డులు కలిగి. కానీ మా కార్యక్రమంలో, అది కేవలం రకమైన అక్కడ చుట్టూ తేలియాడే. ఆకస్మికంగా ఒక 52 ఉంది వంటిది. ఈ పరిష్కరించడానికి ఒక మార్గం సమస్య ఈ చేయాలని ఉంది. మేము ఇప్పుడు చాలా స్పష్టంగా ఉన్నారు 52 వంటి డెక్ పరిమాణం కాలింగ్. ఇది కొంచెం చూడగానే ఇస్తుంది వచ్చినప్పడు లూప్ లో అర్థం మేము అప్పుడు, నేను చెప్పగలను తర్వాత డెక్ పరిమాణం కంటే తక్కువగా ఉంటుంది. ఇది కేవలం 52 చెప్పడం కంటే మంచి తెలుస్తోంది. ఇప్పుడు ఈ వాస్తవానికి సమస్య పరిష్కరించడానికి లేదు. ఇది కొన్ని సంకేత ఇవ్వలేదు స్థిరంగా అర్థం. కానీ రకమైన నిజానికి మరొక సమస్య పరిచయం అని వెంటనే స్పష్టమైన కాదు. కూడా ఈ వేరియబుల్ ఉంటే globally-- ప్రకటిస్తారు మీరు ఏమి గుర్తు లేదు మేము డిక్లేర్ చేసినప్పుడు అంటే ప్రపంచవ్యాప్తంగా స్థానికంగా వర్సెస్ ఒక వేరియబుల్? మేము ఒక వేరియబుల్ డిక్లేర్ పోయినా ప్రపంచవ్యాప్తంగా, ఏమి ఉంది ఉంటే మరొక ఫంక్షన్ లో విధులు యొక్క మా సూట్ కార్డు తారుమారు ఆ ఒప్పందం ఆ అనుకోకుండా, డెక్ పరిమాణం మార్పులు లేదా అది ద్వారా అది పెంచుతుంది 1 లేదా 1 ద్వారా తగ్గుతుంది. కుడివైపు, ఇబ్బంది అక్షరక్రమ కాలేదు? మేము సమితి వ్యవహరించే చేస్తున్నారు ముఖ్యంగా కార్డులు పూర్తి డెక్ shuffling పేరు అవసరం. డెక్ పరిమాణం తగ్గింది ఉంటే 1, ఉదాహరణకు, 51, మేము నిజానికి shuffling లేదు బహుశా అన్ని కార్డులు. మేము వాటిని ఒకటి బయటకు వదిలేస్తున్నారు. మరియు ఆ విలువను బహుశా కావచ్చు అంచనా లేదా ఒక చెడ్డ నటుడు క్లాజులు. సి ఒక అని ఏమిటి అందిస్తుంది ప్రాసెసర్ ఆదేశం, ఇది కూడా ఒక స్థూల పిలువబడుతుంది సింబాలిక్ స్థిరాంకాలు సృష్టించడం. నిజానికి, మీరు ఇప్పటికే చేసిన ఒక ప్రాసెసర్ ఆదేశం చూసిన, మీరు అది విని ఉండకపోతే కూడా # ఉన్నాయి ఆ అని. ఇది ఒక స్థూల మరొక ఉదాహరణ ఉంది లేదా ప్రాసెసర్ ఆదేశం. మార్గం సింబాలిక్ స్థిరాంకాలు సృష్టించడానికి, లేదా ఒక స్థిరమైన ఒక పేరు ఇచ్చి అది మరింత ఉంది కాబట్టి అనగా ఈ క్రింది విధంగా ఉంది. # define, పేరు, భర్తీ. పక్కన నిజంగా ముఖ్యమైన ఇక్కడ నిజంగా త్వరగా. ఒక సెమికోలన్ ఉంచవద్దు మీ # నిర్వచిస్తుంది ముగింపు. కనుక ఇది నిర్వచించే, పేరు, భర్తీ వార్తలు. మీ కార్యక్రమాన్ని కంపైల్ చేసినప్పుడు, ఏమి నిజానికి జరుగుతుంది ఏం ఉంటే కంపైలర్ మీ కోడ్ ద్వారా వెళ్ళడానికి మరియు ప్రతి ఉదాహరణకు భర్తీ సంసార పదం "పేరు" మీరు భర్తీ వలె ఉంచాలి. Analogously, # ఉన్నాయి ఉంటే విధమైన యొక్క కాపీ మరియు పేస్ట్ పోలి, అప్పుడు నిర్వచించే విధమైన ఉంది కనుగొని భర్తీ పోలి, మీరు ఎప్పుడైనా ఒక లో ఆ ఫీచర్ ఉపయోగించి ఉంటే వర్డ్ ప్రాసెసింగ్ కార్యక్రమం, ఉదాహరణకు. ఉదాహరణకు, నేను ఉంటే 3.14159265 వంటి pi # define, మీరు మంచి గణితశాస్త్ర అయితే ఆకర్షితులు మీరు హఠాత్తుగా 3.14159265 ఎగురుతూ చూడండి చుట్టూ మీ కోడ్ లో, మీరు బహుశా అది pi గురించి మాట్లాడుతూ ఉంటాడు తెలుసు. కాని మేము ఇది ఒక ఇవ్వగలిగిన కొంచెం సింబాలిక్ అర్థం. మరియు మేము బదులుగా # define చెప్పగలను సంఖ్యల మౌత్ఫుల్ వంటి pi నేను ఉంచడానికి వెళ్ళడం లేదు చేస్తున్నాను పైగా మరియు పైగా చదవడం. ఏ వద్ద అప్పుడు జరిగే అవకాశముంది కార్యక్రమం ఉన్నప్పుడు కంపైల్ సమయం సంకలనం, మొదటి విషయం జరగవచ్చు అది ద్వారా వెళ్ళడానికి ఉంటుంది మరియు అది ప్రతిసారీ భర్తీ చేస్తుంది అది రాజధాని P, రాజధాని నేను చూస్తాడు అది అక్షరాలా భర్తీ చేస్తాము 3.14 మరియు అందువలన న, కాబట్టి మీరు ఇది ప్రతి టైప్ లేదు సమయం ఇంకా మీ ప్రోగ్రామ్ అయితే కార్యాచరణను కలిగి మీరు మీరు పని ఉన్నందున, ఆశించే మోసగించటం తో గుణించడం, ఇది pi ద్వారా ఏమైనా విభజించడం. మీరు ఈ వీటికే పరిమితం కావు మాత్రమే సంఖ్యలు కోసం ప్రత్యామ్నాయం. ఉదాహరణకు, నేను # define కాలేదు స్ట్రింగ్ CS50 వంటి కోర్సు. ఈ సందర్భంలో, ఎప్పుడు కార్యక్రమం కంపైల్ # define ద్వారా వెళ్తుంది కోడ్ ప్రతిసారీ భర్తీ అది స్ట్రింగ్ CS50 తో "కోర్సు" చూస్తాడు. మీరు ఇక్కడ గమనించవచ్చు కూడా నేను ఆ తరచుగా # define నా సింబాలిక్ నిర్వచించిన స్థిరాంకాలు, మాట్లాడటం అన్ని CAPS లో ఎప్పుడూ ఉంటాయి. ఇది ఒక సమావేశం. అది అవసరం లేదు. కారణం సాధారణంగా ప్రజలు ఉపయోగిస్తుంది అన్ని రాజధానులు వారు #defining చేసినప్పుడు కేవలం ఇది నిజంగా స్పష్టం చేయడానికి ఉంటుంది నా కోడ్ యొక్క ఈ ప్రత్యేక మూలకం ఒక నిర్దిష్ట స్థిరాంకం. అది చిన్న ఉంటే, అది అవకాశం వార్తలు అది ఒక వేరియబుల్ తో అయోమయం. మరియు ఆ బహుశా వార్తలు ఒక మంచి విషయం కాదు. కాబట్టి ఈ ప్రత్యేక పరిష్కారం చాలా ఉత్తమం మునుపటి గాని కంటే. నేను మొదటి నిర్వచించే డెక్ పరిమాణం 52, అప్పుడు ఉంటే ఇప్పుడు ఇక్కడ 52, లేదా డెక్ పరిమాణంలో నా ఉపయోగం, చాలా సహజమైన మరియు చాలా సురక్షితం. మీరు స్థిరమైన మార్చటానికి కాదు. మీరు 52 ప్లస్ ప్లస్ చెప్పలేను. 53 దానిని మార్చేందుకు మాత్రం కాదు. మీరు ఏదో 52 మార్చలేరు. మీరు ఒక వేరియబుల్ మార్చవచ్చు దీని విలువ 52 ఉంది, ఇది మేము ముందు మొదటి పరిష్కారము. మరియు మీరు పెంచింది 53 ఆ వేరియబుల్. కానీ మీరు 52 ప్లస్ ప్లస్ చెప్పలేను హఠాత్తుగా 53 లోకి 52 తిరుగులేని కలిగి. 52 ఎల్లప్పుడూ 52 ఉంది. కాబట్టి మీరు అనుకోకుండా మార్చలేరు ఇక్కడ అది చేయటం ద్వారా డెక్ పరిమాణం, మరో మంచి వైపు ఈ అయితే ప్రభావం అని మీరు తెలుసు అని కాదు ప్రపంచవ్యాప్తంగా అన్ని దేశాల పరిమాణం 52 పేకాటలో ఉపయోగించాలి? ఉదాహరణకు, అది నిజంగా సాధారణ వార్తలు జర్మనీ, 32 ఒక డెక్ పరిమాణం ఉపయోగించడానికి వారు కొన్ని వాదనను పేరు తక్కువ విలువ కార్డులు. మరియు ఈ సందర్భంలో, నేను పోర్ట్ నా సూట్ అనుకున్నారు ఎదుర్కోవటానికి విధులు జెర్మనీ కార్డు తారుమారు. నేను మొదట అనుకొనుట మేము చూపించాడు, వెళ్ళి స్థానంలో కలిగి 32 నా కోడ్ లో 52 అన్ని చోట్ల. కానీ ఇక్కడ నేను # define ఉంటే డెక్ పరిమాణం నా కోడ్ అగ్రభాగాన 32, నేను దానిని మార్చడం అవసరం ఉంటే, నేను కేవలం వెళ్ళి ఒక విషయం మార్చడానికి. నా కోడ్ కంపైల్ చెయ్యండి, మరియు అన్ని అకస్మాత్తుగా అది ద్వారా వ్యాపిస్తుంది. నిజానికి, మేము డెక్ మార్చవచ్చు మేము కావలసిన ఏ విలువ పరిమాణం. నేను ఒక లో మీకు ఇష్టము చేయవచ్చు డెక్ పరిమాణం పికప్ గేమ్? నేను డౌ లాయిడ్ ఉన్నాను. మరియు ఈ CS50 ఉంది.