[సంగీతాన్ని] డేవిడ్ J. మలన్: అన్ని కుడి. ఈ CS50, మరియు ఈ వారం రెండు ప్రారంభంలో ఉంది. సో మాకు ఒక బగ్ తో నేడు ప్రారంభం తెలపండి. ఒక బగ్, కోర్సు యొక్క, ఒక ఒక కార్యక్రమంలో తప్పు, మరియు మీరు చాలా పొందుతారు ఈ భావన తెలిసిన మీరు ప్రోగ్రామ్ ఎప్పుడూ ఉంటే ముందు. pset0 మరియు ఇప్పుడు pset1. కానీ ఏదో పరిశీలిద్దాం మొదటి వద్ద కొద్దిగా సాధారణ. నేను ఇక్కడ ఈ కార్యక్రమం ముందుగానే కలిసి విసిరారు మరియు నేను ఈ ప్రింట్ ఉండాలి వాదించారు Printf ఉపయోగించి తెరపై 10 నక్షత్రాలు, కానీ ఇది స్పష్టంగా కొన్ని విధంగా బగ్గీ. 

ఆ వివరణ ఇచ్చిన 10 నక్షత్రాలు ముద్రించాలా ఉండాలి కానీ అది స్పష్టంగా లేదు, ఏమి బగ్ మీరు క్లెయిమ్ చేస్తుంది? అవును? కనుక ఇది ఒక లోపం ఒక ఆఫ్ వార్తలు, మరియు మీరు ఆ ద్వారా ఏమిటి? సరే. అద్భుతమైన. కాబట్టి మేము పేర్కొన్న ఒక నేను సున్నా విలువ మొదలు, మరియు మేము, 10 ఒక n విలువ పేర్కొన్న కానీ మేము తక్కువ లేదా సమానం తక్కువ ఉపయోగించారు చేసిన. మరియు ఈ కారణం రెండు ఉంది అక్షరాలు మరియు కేవలం ఒక చిహ్నం, గణిత పుస్తకం లో వలె, మీరు లేని ఉంది వ్యక్తపరిచే ఒక మార్గం ఒక పాత్ర సమానమైన. 

కాబట్టి ఆ, కంటే తక్కువ అంటే కానీ మీరు సున్నా వద్ద లెక్కింపు మొదలు ఉంటే, కానీ మీరు అన్ని మార్గం కౌంట్ 10 వరకు అప్ మరియు సమాన, మీరు కోర్సు వెళుతున్న ఉన్నారు మొత్తంగా 11 విషయాలు కౌంట్. కాబట్టి మీరు 11 నక్షత్రాలు ప్రింట్ చూడాలని. సో వాట్ ఈ కోసం ఒక పరిష్కారాన్ని కావచ్చు? అవును? 

కాబట్టి కేవలం కంటే తక్కువ సర్దుబాటు లేదా కేవలం కంటే తక్కువ ఉండాలి సమాన, బహుశా, నేను దావా, ఉంది చాలా మరొక పరిష్కారం. Else మీరు ఏమి ఉంటుంది? అవును? 

1 కాబట్టి దానిని సమం ప్రారంభించండి, మరియు తక్కువ లేదా సమానం తక్కువ వదిలి. మరియు స్పష్టముగా నేను హరించింది ఆ, ఒక సాధారణ మానవ కోసం, ఈ బహుశా మరింత సూటిగా ఉంటుంది. 1 వద్ద లెక్కింపు ప్రారంభం మరియు 10 ద్వారా కూడుట. ముఖ్యంగా మీరు అర్థం ఏమి. 

కానీ నిజానికి ఉంది ప్రోగ్రామింగ్, మేము చూసిన వంటి, కంప్యూటర్ శాస్త్రవేత్తలు మరియు ప్రోగ్రామర్లు సాధారణంగా సున్నా వద్ద లెక్కింపు మొదలు లేదు. కాబట్టి ఒకసారి మంచిది మీరు అలవాటుపడతారు. మీ పరిస్థితి సాధారణంగా రెడీ కంటే తక్కువ లాగ. కాబట్టి కేవలం ఒక తార్కిక లోపం మేము ఇప్పుడు అనుకొనుట పరిష్కరించడానికి మరియు చివరికి చేయుట ఈ మరియు కేవలం 10 పొందండి. 

అలాగే ఇక్కడ ఈ బగ్ గురించి? ఇక్కడ, మళ్ళీ, నేను చేసిన చెప్పుకునే 10 stars-- ప్రింటింగ్ ఒక గోల్ లైన్ ఈ సమయం ఒకటి చొప్పున, కానీ అలా జరగలేదు. మేము ప్రపోజ్ ముందు ఏమి పరిష్కారము ఈ ఏమి, ఉంది నేను కంపైల్ ఒకవేళ దృష్టి ప్రింట్ మరియు ఈ ప్రోగ్రామ్ మీరు అనుకుంటున్నారు రన్? అవును? 

స్టార్. న సో అన్ని నక్షత్రాలు అదే లైన్ నేను విన్న ఏమిటి, ఆపై కొత్త లైన్ పాత్ర. కాబట్టి యొక్క ప్రయత్నించండి తెలియజేయండి. కాబట్టి బగ్గీ-1, ఎంటర్ చేయండి, మరియు నేను గణగణమని ద్వని ఆదేశం చూడండి మేము చివరిసారి గురించి చర్చిస్తామని. ./buggy-1, నిజానికి నేను అన్ని 10 నక్షత్రాలు చూడండి నేను పేర్కొంటున్నాయి అయినప్పటికీ అదే లైన్లో నా వివరణకు చేరగా కేవలం ఒక వ్యాఖ్యలో నేను ఒక శాతం ఏమి ఉద్దేశించిన ఆ కోడ్ లైన్. కానీ ఈ కుడి కనిపిస్తోంది. 

నేను ఉంటాను ఇప్పుడు లైన్ 15 కనిపిస్తోంది అప్పుడు ఒక స్టార్ ముద్రించడం, మరియు లైన్ 16 నేను ప్రింటింగ్ నేను కనిపిస్తుంది ఒక కొత్త లైన్ పాత్ర, మరియు వారు రెండు కాబట్టి ఇండెంట్ చేస్తున్నారు నేను స్పష్టంగా లూప్ యొక్క లోపల ఉన్నాను. కాబట్టి నేను స్టార్ చేయకూడదు, కొత్త లైన్, స్టార్, న్యూ లైన్ స్టార్, కొత్త లైన్? అవును? 

అవును, ఒక భాష కాకుండా వంటి పైథాన్, మీరు తెలిసి ఉంటే, ఇండెంటేషన్ని లేదు కంప్యూటర్ పట్టింపు. ఇది మాత్రమే మానవ మేటర్స్. ఇక్కడ అయితే నేను కనిపెట్టిన చేసిన పంక్తులు కాబట్టి 15 మరియు అందమైన కనిపిస్తోంది 16, కానీ కంప్యూటర్ పట్టించుకోరు. కంప్యూటర్ గురించి పట్టించుకుంటారు నిజానికి గిరజాల జంట కలుపులు కలిగి కోడ్ యొక్క ఈ పంక్తులు చుట్టూ. 

కాబట్టి ఇది కేవలం వంటి clear-- వార్తలు Scratch-- కోడ్ ఆ రెండు పంక్తులు అమలు చేయాలి. ఆ పసుపు స్క్రాచ్ పజిల్ వాడిలా ముక్కలు మళ్ళీ, మళ్ళీ, మళ్ళీ. 

నేను చేస్తే ఇప్పుడు తిరిగి అమలు ప్రోగ్రాం ./buggy-2-- అవును. నేను ఇప్పుడు ఒక లోపం ఉంది. నేను ఏమి మర్చిపోతే లేదు? అవును, నేను కంపైల్ లేదు. కాబట్టి లోపాలతో-2. అటువంటి ఫైలు నేను ఎందుకంటే నిజానికి రెండవ వెర్షన్ కంపైల్. కాబట్టి ఇప్పుడు ఆసక్తికరంగా ప్రకటించనివారు 2 కాదని వేరియబుల్. మేము 1 చేయుచున్నారు. ఇప్పుడు లోపాలతో-1-- ./buggy-1-- అండ్ మేక్ వాటిని ప్రతి అదే లైన్ లో ఉంది. 

ఇప్పుడు ఒక మినహాయింపు ఉంది గని యొక్క ఈ కోరుకుంటున్నాము దావా మీరు ఈ కర్లీ జంట కలుపులు అవసరం. ఇది నిజానికి ఉంది OK-- మీరు చేసిన ఉంటే విభాగం లేదా textbooks-- లో గమనించాము వంకర జంట కలుపులు మినహాయించడం? అవును? 

సరిగ్గా. ఒకేఒక్క ఉన్నప్పుడు కోడ్ లైన్ మీరు తో సంబంధం అనుకుంటున్నారా మా మొదటి ఉదాహరణలో వంటి లూప్. ఇది సంపూర్ణ చట్టబద్ధమైన వంకర జంట కలుపులు మినహాయించడం కేవలం సౌలభ్యం విధమైన మీరు కంపైలర్ నుండి. అవును? మంచి ప్రశ్న. అది ఒక శైలి లోపం పరిగణించిన? మేము CS50 లో వంటి promote-- ఉంటుంది శైలి గైడ్, ఇది కోసం URL ఆ ఎల్లప్పుడూ pset1-- ఉంది గిరజాల జంట కలుపులు ఉపయోగిస్తారు. ఖచ్చితంగా మీరు ప్రోగ్రామింగ్ కొత్త అయితే. రియాలిటీ మేము తెలియకుంటే మీరు నిషేధించాయి అన్నారు ఈ అనుకూల్యములు చేయడం నుండి. కానీ మీరు కేవలం పొందుతుంటే విషయాలు స్వింగ్ లోకి, ఖచ్చితంగా కేవలం ఎల్లప్పుడూ గిరజాల ఉపయోగించడానికి మీరు దాని హ్యాంగ్ వచ్చేవరకు జంట కలుపులు. మంచి ప్రశ్న. 

అన్ని కుడి. కాబట్టి అప్పుడు ఒక బగ్ ఉంది. నిరాడంబర ఏదో కనీసం. మరియు ఇంకా మీరు ఈ అనుకుంటున్నాను ఉండవచ్చు కుడి, చాలా మూలాధార? ఈ మొదటి వారం యొక్క విధమైన ఉంది యొక్క భాషను చూడటం వంటి మీ దోషాలు అందులో చూడండి. కానీ వాస్తవంలో ఈ ఉన్నాయి నిజానికి ప్రతినిధి కొన్ని అందంగా భయపెట్టే సమస్యలు వాస్తవ ప్రపంచ పెరగవచ్చు. 

కాబట్టి మీరు కొన్ని గుర్తు ఉండవచ్చు మీరు టెక్ న్యూస్ అనుసరించండి ఉంటే, లేదా మరింత క్యాచ్ ఫిబ్రవరి లో ఈ గాలి ఆపిల్ ఉందని ఈ గత సంవత్సరం , రెండు iOS తప్పు యొక్క ఒక బిట్ చేసిన ఆపరేటింగ్ సిస్టమ్ వారి ఫోన్లు, మరియు కూడా Mac OS ఆపరేటింగ్ సిస్టమ్ వారి డెస్క్టాప్లు మరియు ల్యాప్టాప్ల. మరియు మీరు ఈ వంటి హెడ్లైన్స్ చూసింది. ఆ తరువాత ఆపిల్ ఈ బగ్ పరిష్కరించడానికి హామీ, మరియు చాలా త్వరగా, iOS లో ఇది పరిష్కరించడానికి చేసింది కానీ అప్పుడు చివరికి మాక్ OS లో అది పరిష్కరించబడింది అలాగే. 

ఇప్పుడు ఈ ముఖ్యాంశాలు ఎవరూ ఒంటరిగా నిజంగా అంతర్లీన సమస్య ఏమిటో బహిర్గతం, కానీ బగ్ చివరికి తగ్గింది SSL లో ఒక బగ్ సెక్యూర్ సాకెట్స్ లేయర్. మరియు దీర్ఘ కథ చిన్న, ఈ సాఫ్ట్వేర్ మా బ్రౌజర్లు మరియు ఇతర సాఫ్ట్వేర్ ఏమి ఉపయోగిస్తారు? 

నేను SSL అని చెప్పాడు ఉంటే చేరి, చేసినప్పుడు మీరు , HTTPS తో మొదలవుతుంది ఒక URL ను సందర్శించండి అప్పుడు ఏమి SSL సంబంధించిన ఉండవచ్చు? ఎన్క్రిప్షన్. కాబట్టి మేము గురించి మాట్లాడదాము రాబోయే రోజుల్లో ఈ. ఎన్క్రిప్షన్, కళ సమాచారం స్క్రాంబ్లింగ్. 

కానీ దీర్ఘ కథ చిన్న, ఆపిల్ కొంత పొరపాటు చేసింది క్రితం , ఎస్ఎస్ఎల్ వారి అమలులో చివరికి అమలుచేసే సాఫ్ట్వేర్ HTTPS లేదా మాక్స్ వంటి URL లు చాలా కనెక్షన్లను. ఇది ఫలితంగా ఉంది మీ కనెక్షన్లు సమర్థవంతంగా అనుకొనుట అడ్డగించాలని. మరియు మీ కనెక్షన్లు ఉన్నాయి తప్పనిసరిగా ఎన్క్రిప్టెడ్ కాదు మీరు మధ్య కొన్ని చెడు వ్యక్తి కలిగి ఉంటే మీరు మరియు గమ్యం వెబ్సైట్ ఎవరు ఈ ప్రయోజనాన్ని ఎలా తెలుసు. 

ఇప్పుడు ఆపిల్ చివరికి పోస్ట్ చివరకు ఈ కోసం పరిష్కరించడానికి, మరియు వివరణ వారి పరిష్కారం ఈ ఉంది. సురక్షిత రవాణా ధ్రువీకరించడానికి విఫలమైంది కనెక్షన్ యొక్క ప్రామాణికతను. సమస్య ప్రసంగించారు తప్పిపోయిన ధ్రువీకరణ దశలను పునరుద్ధరణ. 

కాబట్టి ఈ చాలా చేతులతో ఉంగరాల వివరణ ఉంది కేవలం మేము ఇరుక్కొనిపోయింది చెప్పి కోసం. సాహిత్యపరంగా ఒక ఉంది బగ్గీ అని కోడ్ యొక్క లైన్ వారి SSL అమలు, మరియు మీరు ఆన్లైన్ వెళ్ళడానికి మరియు ఈ కోసం శోధిస్తే మీరు నిజంగా వెదుక్కోవచ్చు అసలు సోర్స్ కోడ్. ఉదాహరణకు, ఈ స్క్రీన్ షాట్ ఉంది కేవలం ఒక మాదిరి పెద్ద ఫైల్ యొక్క భాగాన్ని, కానీ ఈ స్పష్టంగా అనే ఫంక్షన్ ఉంది SSL సైన్ సర్వర్ కీ మార్పిడి ధృవీకరించండి. మరియు అది కొంత సమయం పడుతుంది వాదనలు మరియు ఇన్పుట్లను. మరియు మేము దృష్టి వెళ్ళి లేదు అక్కడ minutia లో చాలా, కానీ మీరు లోపల కోడ్ దృష్టి ఉంటే లెట్ యొక్క ఫంక్షన్ అని చాలా ఎత్తైన యొక్క ఆ పై జూమ్. మీరు ఇప్పటికే అనుమానిస్తున్నారు ఉండవచ్చు ఏమి లోపం కలిగింది మీరు ఏ ఆలోచన ఉంది కూడా ఉంటుంది చివరికి మీరు శోధిస్తున్న ఏమి. ఒక అసాధారణ రకమైన ఉంది ఇక్కడ, ఇది ఏమిటి? 

అవును, నేను నిజంగా ఇష్టం లేదు రెండు గోటో రూపాన్ని విఫలమైతే. స్పష్టముగా, నేను నిజంగా తెలియదు ఏమి గోటో అంటే విఫలం, కానీ వాటిలో రెండు కలిగి వెనుకకు తిరిగి. ఆ రకమైన నాకు రుద్దుకున్నాడు మేధస్సును తప్పు మార్గం, మరియు మేము లో జూమ్ ఉంటే నిజానికి కేవలం ఆ లైన్లు, ఈ C. ఉంది 

కాబట్టి ఆపిల్ యొక్క కోడ్ చాలా కూడా సి లో రాసిన, మరియు ఈ స్పష్టంగా నిజంగా equivalent-- ఉంది కాదు అందంగా ఇండెంటేషన్ని కు వెర్షన్, కానీ మీరు గుర్తించి ఉంటే నిజానికి ఏ వంకర జంట కలుపులు ఉంది, ఆ ఏమి Apple నిజంగా కనిపించే కోడ్ జరిగినది రాశారు దీనిని ఇష్టపడుతున్నారు. కాబట్టి నేను బయటకు జూమ్ మరియు కేవలం నేను చేసిన భావంలో ఇండెంటేషన్ని స్థిర ఆ లేదు వంకర జంట కలుపులు, అక్కడ ఉంటే రెండవ గోటో పసుపు వార్తలు విఫలం ఏమి ఉన్నా అమలు అన్నారు. ఇది సంబంధం లేదు ఇది పైన ఉంటే పరిస్థితి. 

సో కూడా మళ్ళీ మీరు చేస్తే చాలా అర్థం ఏమి ఈ బహుశా అనుకొనుట చేస్తూ తెలుసు ఈ ప్రతి ఆ ఈ పంక్తులు ప్రతి పరిస్థితుల్లో చాలా ముఖ్యమైన దశ తనిఖీ ప్రక్రియలో మీ డేటా నిజానికి ఉంటే ఎన్క్రిప్టెడ్. కాబట్టి ఈ ఒకటి ముళ్లు దశలు, ఉత్తమ ఆలోచన. 

కానీ మేము ఈ కలిగి ఎందుకంటే రెండవ గోటో, పసుపు విఫలం మరియు ఎందుకంటే మేము ఒకసారి విధమైన అందమైన తోబుట్టువుల ఎడమ తరలించే తార్కికంగా సమయంలో, ఏమి ఈ లైన్ కోసం అర్థం ఏమిటి ఆ రెండవ గోటో క్రింద కోడ్ మీరు అనుకుంటున్నాను కోల్పోయినట్లే? ఇది ఎల్లప్పుడూ దాటవేయబడతాయి జరగబోతోంది. కాబట్టి gotos సాధారణంగా మీద frowned ఉంటాయి మేము నిజంగా లోకి తీసుకోను కారణాల కోసం, నిజానికి CS50 లో మేము ఉంటాయి ఈ ప్రకటన గోటో బోధించడానికి, కానీ మీరు గోటో ఆలోచించవచ్చు అర్థం ప్రయాణంలో జంప్ విఫలం కోడ్ యొక్క కొన్ని ఇతర భాగానికి. 

ఇతర మాటలలో జంప్ ఓవర్ మొత్తంగా ఈ చివరి పంక్తి, అందువలన ఈ స్టుపిడ్ ఫలితంగా కేవలం అని సాధారణ తప్పు బహుశా ఎవరైనా ఫలితంగా కాపీ మరియు చాలా ఒక అతికించడానికి అనేక సార్లు మొత్తం అని iOS మరియు Mac OS యొక్క భద్రతా అంతరాయాన్ని అవకాశం నాకు కొంతకాలంగా చెడు అబ్బాయిలు ద్వారా. ఆపిల్ వరకు చివరకు ఈ పరిష్కరించబడింది. 

ఇప్పుడు మీరు కొన్ని వాస్తవానికి ఉంటే iOS లేదా Mac OS యొక్క పాత సంస్కరణలు అమలు, మీరు gotofail.com వెళ్ళవచ్చు దీనిలో ఎవరైనా ఏర్పాటు చేసే వెబ్సైట్ ముఖ్యంగా గుర్తించడానికి programmatically మీ కంప్యూటర్లో ఇప్పటికీ హాని ఉంటే. మరియు స్పష్టముగా, అది ఉంటే, అది బహుశా ఒక మంచి ఆలోచన మీ ఫోన్ నవీకరించడానికి లేదా ఈ సమయంలో మీ Mac. కానీ అక్కడ, కేవలం నిబంధన కేవలం ఎలా ఈ దిగువ స్థాయి గణ్యతను వివరాలు మరియు బొత్తిగా సాధారణ ఆలోచనలు నిజంగా నిర్ణయాలు అనువదించడానికి మరియు సమస్యలు ఈ సందర్భంలో affected-- లక్షల మంది ప్రజలు. 

పరిపాలన మీద ఇప్పుడు ఒక పదం. విభాగం ఈ రాబోయే ఆదివారం ప్రారంభం అవుతుంది. మీరు ద్వారా ఒక ఇమెయిల్ అందుకుంటారు విభాగం గురించి వారాంతంలో, ఇది సమయంలో resectioning ప్రక్రియ మీరు చేసిన ఉంటే ప్రారంభమవుతుంది మీరు ఇప్పుడు నేను తెలుసుకున్నాను కొన్ని కొత్త విభేదాలు. కాబట్టి ఈ ప్రతి సంవత్సరం జరుగుతుంది మరియు మేము రాబోయే రోజుల్లో వసతి కనిపిస్తుంది. 

ఆఫీసు hours-- ఒక చేస్తూనే ఇక్కడ ఈ షెడ్యూల్లో కన్ను. ఈ వారం కొద్దిగా మార్పులు, ముఖ్యంగా ప్రారంభ సమయం మరియు నగర, కాబట్టి సంప్రదించండి చెయ్యాలి కార్యాలయం గంటల శీర్షిక ముందు రాబోయే నాలుగు రాత్రులు ఏ. ఇప్పుడు నిర్ధారణపై ఒక పదం, మీరు సమస్య ప్రవేశిస్తాడు ముఖ్యంగా ఒక మరియు దాటి అమర్చుతుంది. 

స్పెసిఫికేషన్ ప్రకారం సో, ఈ సాధారణంగా ఉంటాయి గొడ్డలి పాటు మేము మీ పని విశ్లేషించడానికి. స్కోప్ సూచిస్తుంది ఏమి మేరకు మీ కోడ్ పనిముట్లు లక్షణాలు అవసరం మా నిర్దేశించుట. ఇతర మాటలలో, ఎలా చాలా ఒక ముక్క సెట్ మీరు కొరికి చేశాడు. మీరు ఒక మూడవ చేసావ్ అది ఒక సగం, అది 100%. ఇది సరైనది కాదు అయినా, మీరు ఎంత ప్రయత్నం? ఆ స్థాయి సంగ్రహించే సో కృషి మరియు మొత్తంలో ఇది మీరు ఆఫ్ బిట్ సమస్య సెట్ యొక్క సమస్యలు. 

ఈ ఒక Correctness-- కు ఎంతవరకు, మీ కోడ్ స్థిరంగా మా లక్షణాలు మరియు బగ్ ఉచితం. కాబట్టి ఇది సరిగ్గా పని చేస్తుంది? మేము కొన్ని ఇన్పుట్ ఇవ్వాలని ఉంటే, అది మేము ఆశించే ఆ అవుట్పుట్ ఇస్తుంది? Design-- ఇప్పుడు ఈ మొదటి ఉంది ముఖ్యంగా గుణాత్మక వాటిని, లేదా మానవ తీర్పు అవసరం వ్యక్తులు. మేము ఒక సిబ్బంది కలిగి ఎందుకు నిజానికి, ఈ ఉంది చాలా బోధన సభ్యులు మరియు కోర్సు యొక్క సహాయకులు. ఏమి మేరకు మీ ఉంది కోడ్ బాగా వ్రాసిన? 

మళ్లీ ఈ ఒక చాలా ఉంది గుణాత్మక అంచనా ఆ మీరు తో పని చేస్తుంది వారాల ద్వి directionally వచ్చిన. కాబట్టి మీరు లేదు వచ్చినప్పుడు మాత్రమే సంఖ్యా స్కోర్లు, కానీ కూడా ఒక వ్రాసిన స్కోర్లు, లేదా టైప్ చూడు, లేదా ఇంగ్లీష్ పదాలు లో చూడు వ్రాసిన. మనం మీరు డ్రైవ్ ఉపయోగిస్తాము ఏమిటి నిజానికి మంచి కోడ్ రాయడం వైపు. మరియు లెక్చర్ మరియు విభాగంలో, మేము ప్రయత్నిస్తాము తరచూ మేము can-- వంటి out-- అభిప్రాయపడుతున్నారు ఏమి ఒక కార్యక్రమం చేస్తుంది మాత్రమే సరైన మరియు క్రియాశీలంగా మంచి, కానీ కూడా రూపొందించబడ్డాయి. అత్యంత సమర్థవంతమైన ఉండాలి, లేదా కాలేదు కూడా చాలా అందమైన ఉండవచ్చు. 

ఏ శైలి మాకు దారితీస్తుంది. శైలి అంతిమంగా ఒక సౌందర్య తీర్పు. మీరు మంచి ఎంచుకోవడానికి తెలుసా మీ వేరియబుల్స్ కోసం పేర్లు? మీరు సరిగా మీ కోడ్ ఇండెంట్ చేసారా? అందువల్ల అది మంచి కనిపిస్తాయి మరియు ఇవ్వగలవా అది మరొక మానవుడు కోసం సులభం మీ సంబంధిత చదవడానికి దాని ఖచ్చితత్వంపై. 

ఇప్పుడు సాధారణంగా సిలబస్ ప్రకారం, మేము స్కోర్ ఒక ఐదు పాయింట్ స్థాయిలో ఈ విషయాలు. నాకు పాయింట్ హోమ్ మీటను తెలియజేయండి మూడు నిజంగానే మంచి ఉంది. చాలా త్వరగా చేసారో చేయండి అంక చేయడం మొదలు. వారు మూడు బయటకు వచ్చినప్పుడు కొన్ని pset కోసం సవ్యత ఐదు మరియు వారు భీకర అనుకుంటున్నాను, నేను 60% అన్నారు ఇది అత్యవసరంగా ఒక D లేదా, E. ఉంది 

ఆ విధంగా కాదు మేము ఈ సంఖ్యలు భావిస్తారు. మూడు ఏమి నిజానికి మంచి, మరియు మేము సాధారణంగా ప్రారంభంలో ఆశించే పదం యొక్క మీరు పొందుతుంటే ఉంది బహుశా three's-- ఒక సమూహం జంట సంతలలో, fours-- ఒక జంట లేదా ఒక జంట తీయడం, fours-- ఒక జంట ప్రారంభించడానికి ఒక మంచి ప్రదేశం. మరియు మేము ఒక చాలా కాలం చూడుము కాలక్రమేణా పైకి పథం, మీరు ఒక మంచి స్థానంలో ఉన్నారు. 

మేము ఉపయోగించడానికి సూత్రం బరువు విషయాలు తప్పనిసరిగా ఉంది సిలబస్ ప్రకారం ఈ ఇది కేవలం మేము అర్థం ఖచ్చితత్వం ఎక్కువ బరువు ఇవ్వాలని. ఇది చాలా తరచుగా సరి ఎందుకంటే చాలా సమయం పడుతుంది. ఇప్పుడు నాకు నమ్మండి. మీరు కనీసం find-- ఉంటుంది ఒక pset-- లో మీరు మీ 90% ఖర్చు సమస్య 10% పని. 

మరియు ప్రతిదీ విధమైన పనిచేస్తుంది ఒకటి లేదా రెండు దోషాలు తప్ప, మరియు ఆ దోషాలు ఉన్నాయి అర్థరాత్రి మీరు ఉంచడానికి. ఆ కలవి విధమైన మీరు తప్పించుకొని. కానీ అది నిద్ర, లేదా కార్యాలయం గంటల హాజరు లేదా, ఆన్లైన్ ప్రశ్నలు అడుగుతూ మీరు ఆ 100% గోల్ ను, ఇంకా ఎందుకు మేము బరువు వార్తలు అత్యంత సరి. ఒక కొద్దిగా తక్కువ డిజైన్, మరియు కంటే కొద్దిగా తక్కువ, శైలి. కానీ mind-- శైలిలో ఉంచడానికి బహుశా సులభమయిన ఈ కొరికి శైలి గైడ్ ప్రకారం. 

ఇప్పుడు మరింత తీవ్రమైన విద్యా నిజాయితీకి గమనించండి. CS50 యొక్క దురదృష్టకర వ్యత్యాసం ఉంది ప్రకటన బోర్డు అతిపెద్ద ఉత్పత్తిదారుగా కేసులు ప్రతి ఏడాది చారిత్రాత్మకంగా. విద్యార్థులు మోసం ఎందుకంటే ఈ కాదు CS50 ఏ కాబట్టి ఏ ఇతర తరగతి కంటే, కానీ ఎందుకంటే పని స్వభావం ద్వారా, ఇది ఎలక్ట్రానిక్ వార్తలు వాస్తవం, మేము అది కోసం చూడండి, మరియు వాస్తవం నిజానికి మనం కంప్యూటర్ శాస్త్రజ్ఞులు, మనం దురదృష్టవశాత్తు ఉన్నాయి చెప్పగలను ఇది గుర్తించగలరు చాలా మంచి. 

కాబట్టి ఈ నిజ పరంగా అర్థం ఏమిటి? సో, సిలబస్ ప్రకారం, కోర్సు యొక్క వేదాంతం నిజంగా సహేతుకమైన ఉండాలి డౌన్ కాచు లేదు. ఈ లైన్ మధ్య ఉంది మీ సొంతంగా ఒక పని చేస్తూ మరియు ఒక చిన్న బిట్ చేస్తున్నారు ఒక స్నేహితుడు నుండి సహేతుకమైన సహాయం, మరియు తక్షణ ఆ పని చేయడం మీ స్నేహితుడు, లేదా అతనిని లేదా ఆమెను మీ కోడ్ పంపడం అతను లేదా ఆమె కేవలం చెయ్యవచ్చు తద్వారా పడుతుంది లేదా కుడి దాన్ని పొందగలుగుతాయి. ఆ రేఖను మేము తరగతి లో డ్రా అని. 

, సిలబస్ చూడండి చివరికి పంక్తులు మేము సహేతుకమైన గా డ్రా మరియు తగని ప్రవర్తన, కానీ అది నిజంగా వేసి చేస్తుంది సారాంశం డౌన్ మీ పని అవసరమయ్యే చివరికి మీ స్వంత ఉండాలి. ఇప్పుడు అన్నారు, ఒక పరిష్కార ఉంది. మీరు imagine-- ఉండవచ్చు ఎందుకంటే కార్యాలయం గంటల విజువల్స్ నుండి మరియు వీడియోలు మేము చేసిన చూపిన విధంగా ఇప్పటివరకు CS50 నిజానికి సహకార గా అని అర్థం మరియు సహకార మరియు సామాజిక సాధ్యమైనంత. సహకార నాటికి అది కఠినమైన ఉంది. 

కానీ ఈ చెప్పారు, పరిష్కార, మీరు సిలబస్ లో చూస్తారు వంటి, మీరు కొన్ని సమస్య ఉన్నట్లయితే ఆ తర్వాత. మీరు మీ కోడ్ లో కొన్ని బగ్ కలిగి మీరు పరిష్కరించలేదు, మీరు సహేతుకమైన ఉంది ఎవరో మీ కోడ్ చూపించడానికి. కూడా తరగతి లో ఒక స్నేహితుడు, ఒక స్నేహితుడు కార్యాలయం గంటల వద్ద మీరు పక్కన కూర్చొని, లేదా సిబ్బంది సభ్యుడు. కానీ వారు మీరు వారి కోడ్ చూపించే కాదు. 

ఇతర మాటలలో, ఒక మీ question-- సమాధానం నేను help-- OH, ఇక్కడ నా కోడ్ కాదు అవసరం. ఈ పరిశీలించి టేక్ మరియు ఏమి మీరు రెడీ ఇది రాబట్టుకుంటుంది. ఇప్పుడు, కోర్సు యొక్క, ఉంది ఒక విధంగా స్పష్టంగా ఆట నేను మీరు తెలియజేస్తాము చేయటం ఈ వ్యవస్థ ఒక ప్రశ్న కలిగి ముందు నా కోడ్. మీరు నా మీ కోడ్ చూపించు ఒక ప్రశ్న కలిగి ముందు. కానీ మళ్ళీ సిలబస్ చూడండి ఈ లైన్ ఇక్కడ ఉత్తమమైన వివరాలు. 

ఇప్పుడే చిత్రాన్ని చిత్రించడానికి మరియు వంటి పారదర్శకంగా సాధ్యమైనంత భాగస్వామ్యం మేము ఇటీవల సంవత్సరాలలో వద్ద ఉన్న, ఈ ప్రకటన బోర్డు కేసులు సంఖ్య ఆ CS50 పైగా ఉంది గత ఏడు సంవత్సరాల. 14 కేసులు ఇటీవల పతనం. చేరి విద్యార్థులు పరంగా, 20 కొన్ని బేసి విద్యార్థులు ఉంది ఈ గత పతనం. 33 ఒక శిఖరం ఉంది కొన్ని సంవత్సరాల క్రితం విద్యార్థులు. వీరిలో అనేక దురదృష్టవశాత్తు ఉంటాయి ఇకపై ఇక్కడ ప్రాంగణంలో. 

ఒక శాతం గా పాల్గొన్న విద్యార్థులు తరగతి చారిత్రాత్మకంగా 0% నుండి చేశాం చెప్పడానికి మాత్రమే ఇది 5.3% కు ఈ ఏడాదికి ఒక సవాలు. మరియు ఆ చివరిలో, ఏమి మేము ఒక చెప్పేటప్పుడు చేయాలనుకుంటున్నారా మేము కేవలం FYI-- వద్ద పోల్చి dd-- ఆ ఆ విద్యార్థులు ఒక సౌందర్యము ఎవరు తదనుగుణంగా లైన్ అనుసరిస్తున్నారు. మనం ప్రస్తుత సరిపోల్చండి చేయండి గతంలో అన్ని మిషన్లు వ్యతిరేకంగా సమర్పణలు గత అనేక సంవత్సరాల నుండి. 

మేము వ్యాప్తంగా Google ఎలా చాలా తెలుసు మరియు కోడ్ రిపోజిటరీలను కనుగొనేందుకు ఆన్లైన్, చర్చావేదికలు ఆన్లైన్, ఉద్యోగ ప్రదేశాలు. ఒక విద్యార్థి పొందవచ్చు ఉంటే, మేము ఖచ్చితంగా చెయ్యవచ్చు ఇది చాలా మేము Regretfully చేస్తాను చూడండి. సో వాట్ మీరు సిలబస్ లో చూస్తారు అయితే ఈ విచారం నిబంధన ఉంది. నేను ఖచ్చితంగా చెయ్యవచ్చు అభినందిస్తున్నాము, మరియు మేము అన్ని ఉంది సిబ్బంది కోర్సు వంటి గెలవడంతో కాలక్రమేణా ఈ, లేదా ఈ ఒక కూడా, ఖచ్చితంగా అది ఉన్నప్పుడు నాకు తెలుసు జీవితం మీరు కలిగి ఉన్నప్పుడు దారిలోకి కొన్ని చివరి రాత్రి deadline-- మాత్రమే ఈ తరగతి లో, కానీ మీరు another-- ఉన్నప్పుడు పూర్తిగా అయిపోయిన, అవ్ట్ నొక్కి మితిమీరిన సంఖ్యలో కలిగి ఇతర విషయాలు చేయడానికి. మీరు కొన్ని పాయింట్ వద్ద చేస్తుంది ఖచ్చితంగా ఒక చెడ్డ, బహుశా చివరి జీవితం రాత్రి నిర్ణయం. 

సిలబస్ ప్రకారం సో, ఈ నిబంధన ఉంది, మేకింగ్ అలాంటి ఉంటే లోపల 72 గంటల కొన్ని పేద నిర్ణయం, మీరు స్వంతం మరియు నాకు చేరుకోవడానికి మరియు కోర్సు యొక్క తలలు ఒకటి మరియు మేము ఒక సంభాషణ కలిగి ఉంటుంది. మేము విషయాలు పోరాడతాను అంతర్గతంగా ఆశలు అది ఒక మరింత కావటానికి బోధన క్షణం లేదా జీవితం పాఠం, తో ఏదో లేదు ముఖ్యంగా ఒక్కసారిగా శాఖల మీరు ఇక్కడ ఈ పట్టికలలో చూడవచ్చు వంటి. 

కాబట్టి ఒక చాలా తీవ్రమైన స్వరం ఉంది. మాకు కేవలం కొన్ని నిలిపివేయి లెట్ సెకన్లు ఉద్రిక్తత విచ్ఛిన్నం. 

[సంగీతాన్ని] 

డేవిడ్ J. మలన్: అన్ని కుడి, కాబట్టి ఎలా ఉంది ఒక segue కోసం? నేటి ప్రాధమిక విషయాలు. ఇందులో మొదటిది సంగ్రహణం. ఇది మరో అవతరిస్తుంది స్పష్టముగా డేటా, ప్రాతినిధ్యాన్ని ఎలా చెబుతున్నారో ఒక నిజంగా పొడి మార్గం మేము చేయవచ్చు సమస్యలు పరిష్కరించటం మరియు ఆలోచిస్తూ గురించి వెళ్ళి సమస్యలు పరిష్కరించడంలో గురించి? కాబట్టి మీరు స్క్రాచ్ చూసిన, మరియు మీరు సి pset1 లో బహుశా ఇప్పటికే చూసిన మీరు మాత్రమే ఉపయోగించవచ్చు విధులు printf వంటి, ఆ ఇతర ప్రజలు గత సంవత్సరాల్లో మీరు వ్రాశారు. మీరు కూడా మీ స్వంత విధులు వ్రాయవచ్చు. 

మరియు మీరు కలిగి ఉండవు అయినప్పటికీ pset1 లో స్పష్టముగా సి ఈ బాధ్యతను, మరియు మీరు నిజంగా వ్రాయడానికి అవసరం లేదు మీ సమస్యకు ఎందుకంటే సొంత ఫంక్షన్ బహుశా వీరిని అయితే మొదటి మీరు చూస్తారు glance-- చివరికి పరిష్కరించబడతాయి కోడ్ యొక్క అన్ని అనేక పంక్తులు. కానీ పరంగా, అన్నారు మీ సొంత ఫంక్షన్ అఫ్ రైటింగ్, ఇవ్వాలని సి అని తెలుసుకోవటం మీరు ఈ సామర్థ్యం. 

నేను, నేటి సోర్స్ కోడ్ లో వెళ్ళి వెళుతున్న ఇది ఇప్పటికే ఆన్లైన్లో అందుబాటులో ఉంది మరియు నేను ముందుకు మరియు ఓపెన్ వెళ్ళి వెళుతున్న ఫంక్షన్ 0.C అనే కార్యక్రమాన్ని ఏర్పాటు, మరియు ఫంక్షన్ సున్నా మేము కొన్ని విషయాలను చూస్తారు. మొదటి పంక్తులు 18 ద్వారా 23 నా ప్రధాన విధి. ఇప్పుడు మేము చదవడానికి ప్రారంభమైంది చేస్తున్న మేము ఎగిరి రచన చేస్తున్నట్లు కోడ్, కానీ బదులుగా నేను ముందుగానే వ్రాయలేదు లేదా ఒక సమస్య మీరు సెట్ కలిగి అందుకోవచ్చు ముందుగానే రాస్తున్నారు. ఒక మంచి మార్గం ప్రారంభించడానికి వేరొకరి కోడ్ చదవడం ప్రధాన విధి లాగా ఉంది. అక్కడ ఆ ఎంట్రీ దొరుకుతుందని పాయింట్ ప్రోగ్రామ్ అమలు చేయడం, అప్పుడు అక్కడ నుండి తార్కికంగా అది అనుసరించండి. 

కాబట్టి ఈ కార్యక్రమం స్పష్టంగా ప్రింట్లు ఒక కోలన్ తరువాత మీ పేరు. మేము అప్పుడు GetString ఉపయోగించడానికి CS50 లైబ్రరీ నుండి ఒక స్ట్రింగ్ లేదా ఒక పదం లేదా పదబంధం పొందడానికి కీబోర్డ్ వద్ద వినియోగదారు నుండి. ఆపై ఈ ఉంది విషయం ఇక్కడ PrintName. 

ఇప్పుడు PrintName ఒక కాదు C. తో వస్తుంది ఆ ఫంక్షన్ ఇది ప్రామాణిక io.h. కాదు ఇది cs50.h. కాదు ఇది ఒకే ఫైల్ లో కాకుండా ఉంది. నేను క్రిందికి స్క్రోల్ ఉంటే గమనించండి ఒక bit-- పంక్తులు 25 27-- కు ఇది వ్యాఖ్యానించడం కేవలం ఒక అందమైన మార్గం నక్షత్రాలు మరియు శ్లాష్లు ఉపయోగించి మీ కోడ్. ఈ బహుళ లైన్ మీరే మరియు ఈ కేవలం ఉంది యొక్క నీలం నా వివరణ ఈ ఫంక్షన్ ఏమి. 

31 ద్వారా పంక్తులు 28 ఎందుకంటే, నేను ఒక సూపర్ సాధారణ ఫంక్షన్ వ్రాయలేదు దీని పేరు PrintName ఉంది. ఇంకా ఎన్ని పడుతుంది వాదనలు మీరు చెబుతా? కాబట్టి ఒక argument-- ఒకటి ఉంది ఎందుకంటే కుండలీకరణాలు లోపలి జాబితా వాదన. ఇది రకం స్ట్రింగ్ ఉంది. ఏ PrintName చెప్పటానికి ఉంది ఈ బ్లాక్ బాక్స్ వంటి ఉంది పడుతుంది లేదా చర్య ఇన్పుట్ స్ట్రింగ్ వంటి. 

ఆ స్ట్రింగ్ యొక్క పేరు సౌకర్యవంతంగా పేరు ఉంటుంది. కాదు, కాదు N, కానీ పేరు. కాబట్టి PrintName ఏమి చేస్తుంది? ఇది nice సులభం. జస్ట్ కోడ్ ఒకటి లైన్ కోసం printf, కానీ స్పష్టంగా అది ప్రింట్లు "హలో" మరియు కనుక. ఎక్కడ విధంగా వాదన నుండి వస్తుంది. 

ఇప్పుడు ఇక్కడ ఈ భారీ ఆవిష్కరణ కాదు. రియల్లీ, నేను ఆ విధంగా ఒక కార్యక్రమం తీసుకున్నారు కోడ్ యొక్క ఒక లైన్ తో వ్రాసిన చేశారు ఇక్కడ ఈ అప్ ఇవ్వడం ద్వారా మరియు ఏదో మార్చబడింది కొన్ని ఆరు లేదా ఏడు లేదా ఉంటుంది డౌన్ ఇక్కడ కోడ్ పంక్తులు అన్ని మార్గం. 

కానీ అది ఒక అభ్యసిస్తున్న వార్తలు ఊహ గా తెలిసిన సూత్రం. ఒక విధమైన కొత్త లోపలి encapsulating ఒక పేరు ఉంది అని ఫంక్షన్, మరియు మంచి ఇంకా ఆ పేరుకి అర్ధం ఇది చేస్తుంది ఏమి చెప్పారు. నేను ఆ కాదు printf-- అర్థం ముఖ్యంగా వివరణాత్మక. నేను ఒక సృష్టించడానికి కావాలా పజిల్ భాగాన్ని, లేదా నేను ఉంటే ఒక ఫంక్షన్ను రూపొందించడానికి కావలసిన ఆ ఒకరి పేరు ముద్రిస్తుంది ఇలా అందం నిజానికి చెయ్యవచ్చు ఉంది ఆ ఫంక్షన్ ఒక పేరు ఇచ్చి అది ఏమి వివరిస్తుంది. 

ఇప్పుడు అది ఒక ఇన్పుట్ పడుతుంది నేను ఏకపక్ష పేరు అని చేసిన, కానీ ఆ చాలా అద్భుతంగా వివరణాత్మక ఉంది బదులుగా ఒక కొంచెం ఎక్కువ ఉండటం ఎస్ వంటి సాధారణ శూన్యమైన, ఇప్పుడు కోసం, కేవలం అర్థం ఈ పనిచేయదని ఏదైనా నాకు తిరిగి అప్పగించండి. ఇది GetString వంటి కాదు వాచ్యంగా ఒక స్ట్రింగ్ నాకు తిరిగి అందిస్తుంది వంటి మేము కాగితం ముక్కలు తో చేసాడు మీ సహ గత వారం తో, కానీ అది కేవలం ఒక వైపు ప్రభావం కలిగి ఉంది. ఇది స్క్రీన్ ఏదో ముద్రిస్తుంది. 

రోజు చివరిలో, కనుక నేను తయారు చెయ్యాలి ఫంక్షన్-0, ./function-0, మేము అది నా పేరు అడుగుతుంది అని చూస్తారు. నేను నా పేరును రకాల డేవిడ్ టైప్, మరియు అది. నేను రాబ్ మళ్ళీ చేస్తే, ఇది చెప్పడానికి జరగబోతోంది "హలో, రాబ్." కాబట్టి ఒక సాధారణ ఆలోచన, కానీ బహుశా ఈ మానసికంగా నుండి అంచనా మీ కార్యక్రమాలు పొందండి ఆ , కొంచెం క్లిష్టంగా మరియు మీరు ఒక భాగం రాయాలనుకుంటున్నాను కోడ్ మరియు కాల్ ఆ code-- ఇన్వోక్ కొన్ని వివరణాత్మక ద్వారా code-- PrintName వంటి పేరు, సి మాకు ఈ సామర్ధ్యం కోరుకుంటాను చేస్తుంది. 

ఇక్కడ మరొక సాధారణ ఉదాహరణకు. ఉదాహరణకు, నేను ఒక తెరిస్తే return.c అని నేటి నుండి ఫైల్ నేను ఇక్కడ చేసిన గమనిస్తారు. ఈ ప్రధాన ఫంక్షన్ చాలా printf ఉంది. నేను మొదటి ఏకపక్ష ప్రారంభించడం సంఖ్య 2 x అనే వేరియబుల్. నేను అప్పుడు x ఇప్పుడు "ముద్రించాలా % I "x యొక్క విలువ ప్రయాణిస్తున్న. కాబట్టి నేను కేవలం అది ఏమిటి మాట్లాడుతూ చేస్తున్నాను. 

ఇప్పుడు నేను కేవలం నిస్సంకోచంగా ఉన్నాను printf తో ఆరోపించారు. నేను ఆ విలువ x cubing am, మరియు నేను రెడీ ఒక చర్యను కాల్ చేస్తున్నప్పుడు అలా క్యూబ్ అనే పాసింగ్ వాదన x లో, ఆపై అవుట్పుట్ సేవ్ వేరియబుల్ లోనే, x. నేను x యొక్క విలువ clobbering చేస్తున్నాను. నేను భర్తీ నేను x విలువ సంసార కాల్ ఫలితంగా ఈ క్యూబ్ ఫంక్షన్ ఉంది. ఆపై నేను కేవలం కొన్ని ముద్రించాలా మెత్తటి విషయాలను ఇక్కడ నేను ఏమి చెప్పి. 

కాబట్టి అప్పుడు క్యూబ్ ఏమిటి? ప్రాథమికంగా ఏమి గమనిస్తారు ఇక్కడ వివిధ. నేను ఫంక్షన్ ఇచ్చాను ముందు ఒక పేరు. నేను ఒక వాదన ఒక పేరు పేర్కొన్న చేసిన. అది n బదులుగా పేరుతో అని ఈ సమయం, కానీ నేను కావలసిన ఏదైనా కాల్ కాలేదు. కానీ ఈ తేడా ఉంది. ఎడమవైపు ఈ విషయం. గతంలో ఇది ఏమి కీవర్డ్ ఉంది? బాయ్స్. ఇప్పుడు అది ఖచ్చితంగా పూర్ణాంకానికి ఉంది. 

సో వాట్ బహుశా దూరంగా పడుతుంది యొక్క? శూన్యమైన సూచిస్తుంది అయితే విధమైన ఏమీలేని, మరియు ఆ కేసు. PrintName ఏమీ రాలేదు. ఇది ఏదో చేశారు, కానీ ఇది నాకు తిరిగి అప్పగిస్తాం లేదు నేను చాలు అని ఏదో సమాన సైన్ ఎడమ వైపు వంటి నేను లైన్ 22 న ఇక్కడ చేశాను. 

కాబట్టి నేను లైన్ 30 న లోకి చెప్పుకోవాలంటే, ఏమి బహుశా ధ్వనించింది ఆ ఏమి క్యూబ్ గురించి నాకు చేస్తుంది? అవును? ఇది పూర్ణాంకం తిరిగి. కనుక ఇది, నాకు తిరిగి చేతులు కాగితం ఉదాహరణకు, ఒక ముక్క ఇది దీన్ని సమాధానం వ్రాశారు. 2 cubed, లేదా 3 cubed, లేదా 4 cubed-- నేను జారీ సంసార మరియు ఎలా నేను ఈ అమలు చేయలేదు? సరే, కేవలం n సార్లు n సార్లు n నేను ఒక క్యూబ్ విలువ ఎలా ఉంది. మరలా, సూపర్ సాధారణ ఆలోచన, కానీ తావు ఇప్పుడు మేము విధులు రాయడానికి ఎలా వాస్తవానికి మాకు తిరిగి వచ్చింది ఆసక్తి కావచ్చు విలువలు. 

యొక్క ఒక చివరి ఉదాహరణ చూద్దాం ఇక్కడ ఫంక్షన్ ఒకటిగా పేర్కొన్నారు. ఈ ఉదాహరణలో, ఇది మొదలవుతుంది మరింత ఖచ్చితంగా పొందడానికి. కాబట్టి ఫంక్షన్ ఒక లో, ఈ ప్రోగ్రాం నోటీసు చివరికి GetPositiveInt అనే ఫంక్షన్ కాల్స్. GetPositiveInt ఒక కాదు CS50 లైబ్రరీ ఫంక్షన్, కానీ మనం నిర్ణయించుకుంది అది ఉనికిలో కోరుకుంటున్నారో. 

కాబట్టి మేము తరువాత ఫైలులో స్క్రోల్ డౌన్ ఉంటే, నేను అమలు గురించి వెళ్లి ఎలా గమనించవచ్చు సానుకూల పూర్ణాంకానికి పొందుతారు, మరియు నేను ఇది మరింత ఖచ్చితంగా చెప్పాలి ఈ ఒక మంచి ఎందుకంటే కోడ్ యొక్క రేఖల సంఖ్య. ఇది కేవలం ఒక వెర్రి కాదు చిన్న బొమ్మ కార్యక్రమం. ఇది నిజానికి కొన్ని లోపాల తనిఖీ సంపాదించి మరియు మరింత ఉపయోగకరంగా ఏదో చేయడం. 

మీరు నడకను చూడలేదు చేసిన చేస్తే మేము pset1 లో పొందుపరిచిన చేసిన వీడియోలు ఈ రకం తెలుసు ఆత్మ లో ఇటువంటి సి లూప్, విషయాలు స్క్రాచ్ రకాల చేయవచ్చు. మరియు అలా దీన్ని చెప్పారు. ఈ ముద్రించాలా. అప్పుడు ముందుకు వెళ్ళి n-- పొందండి ఒక పూర్ణాంకానికి పొందుతారు మరియు n నిల్వ, మరియు ఉంచడానికి మళ్ళీ మళ్ళీ ఈ చేయడం మళ్ళీ చాలా కాలం n వంటి కంటే తక్కువ ఒకటి. 

కాబట్టి n కంటే తక్కువ ఒక అవతరిస్తుంది మాత్రమే మానవ సహకరించింది కాదు ఉంటే. అతను లేదా ఆమె టైప్ చేస్తే 0 లేదా -1 లేదా -50 లో, ఈ లూప్ ఉంచడానికి వెళుతున్న మళ్లీ మళ్లీ అమలు. చివరకు నేను, గమనించి కేవలం విలువ తిరిగి. కాబట్టి ఇప్పుడు మేము ఒక ఫంక్షన్ కలిగి ఆ nice పరిష్కరించగలుగుతున్నాము CS50 లో అమలు చేస్తేనే మీరు cs50.h మరియు cs50.c, కానీ ఇక్కడ మేము ఇప్పుడు ఈ మేమే అమలు. 

కానీ కొన్ని ముఖ్యమైన వివరాలను రెండు వ్యాఖ్యలు. One-- ఎందుకు నేను Int ప్రకటించాలని లేదు లేదా, లైన్ 29 న, మీరు అనుకుంటున్నారు బదులుగా కేవలం చేయడం ఇక్కడ ఈ, ఇది మరింత స్థిరంగా మేము గత వారం చేశాడు ఏమి? అవును? ఒక మంచి ఆలోచన. కనుక మేము అది ఉంచాలి ఇక్కడ, మేము అయితే వార్తలు మళ్ళీ మళ్ళీ ప్రకటించారు ఉంచండి. మరియు యొక్క ఆ ఉంది సమస్యాత్మక లేదు, ప్రతి SE, మేము మాత్రమే అవసరం ఎందుకంటే ఒకసారి ఆపై విలువ మేము ఏమైనప్పటికీ ఒక కొత్త పొందండి చూడాలని. కానీ ఒక మంచి ఆలోచన. అవును? 

దగ్గరగా. నేను n డిక్లేర్డ్ చేసిన ఎందుకంటే కాబట్టి లైన్ 29 లూప్ వెలుపల, అది అంతా అందుబాటులో వార్తలు ఈ మొత్తం ఫంక్షన్. ఇతర విధులు ఎందుకంటే లేదా ఈ కర్లీ లోపలి ఇప్పటికీ ఉంది ఇక్కడ జంట కలుపులు. ఖచ్చితంగా So--. 

సరిగ్గా. కాబట్టి ఈ సమయంలో కూడా ఎక్కువగా ఉంది. మేము బదులుగా ప్రకటించింది లేదా ఇక్కడే లైన్ 32 న, ఇది ఊహించడం ఎందుకంటే సమస్యాత్మక వార్తలు తోబుట్టువుల కోరినయెడల నేను యాక్సెస్ అవసరం? లైన్ 34, మరియు న బండ సాధారణ నియమం మీరు మాత్రమే ఒక వేరియబుల్ ఉపయోగించడానికి చేయవచ్చు ఇటీవల వంకర జంట కలుపులు లోపల మీరు ప్రకటించింది. 

దురదృష్టవశాత్తు, లైన్ 34 ఒక పంక్తిలో, చాలా ఆలస్యం నేను ఇప్పటికే మూసుకుని చేసిన ఎందుకంటే లైన్ 33 న వంకర కలుపు ఆ అనుగుణంగా లైన్ 30 న వంకర కలుపు. కాబట్టి ఈ చెప్పడం ఒక మార్గం ఉంది ఈ వేరియబుల్ పూర్ణాంకానికి దర్శిని అని, కాబట్టి ఒక్క లోపల, మాట్లాడటం ఆ గిరజాల జంట కలుపులు. ఇది కేవలం వాటిని బయట ఉనికిలో లేదు. 

కాబట్టి నిజంగా, నేను లేకపోతే ఈ తప్పు, నాకు కోడ్ సేవ్ తెలియజేయండి గా తప్పుగా రాసిన is--. నాకు ముందుకు వెళ్లి తయారు లెట్ ఫంక్షన్-1, మరియు గమనించవచ్చు లోపం. ప్రకటించనివారు ఐడెంటిఫైయర్ n యొక్క ఉపయోగించండి ఇక్కడే ఉన్న లైన్ 35 న. మరియు మేము స్క్రోల్ ఉంటే మరింత ఇంకో. ప్రకటించనివారు యొక్క ఉపయోగించండి లైన్ 34 న నిర్ధారిణి న్. 

కాబట్టి కంపైలర్, గణగణమని ద్వని చేయు, ఆ గమనిస్తున్నారు కేవలం అయినప్పటికీ ఉనికిలో లేదు స్పష్టంగా ఇది దృష్టి ఉంది. కాబట్టి ఒక సాధారణ పరిష్కారం అక్కడ అది ప్రకటించటం. 

ఇప్పుడు నాకు స్క్రోల్ అనుమతిస్తుంది ఫైలు పైన. ఏం మీరు వద్ద అవుట్ హెచ్చుతగ్గుల కొద్దిగా భిన్నంగా ఉండటం stuff నుండి మేము గత వారం చూశారు? మాత్రమే పేరు నేను కలిగి లేదు, మాత్రమే చేయండి నేను, కొన్ని పదునైన టాప్ అప్ కలిగి ఉన్నాయి నేను ఉన్నాను ఏదైనా కలిగి ఒక నమూనా కాల్. ఇప్పుడు ఆ భయంకరంగా పోలి ఉంది ఏమి మేము కేవలం లైన్ 27 న ఒక క్షణం క్రితం చూసింది. 

కాబట్టి యొక్క వివిధ నుండి ప్రతిపాదించే తెలియజేయండి నేను ఈ చేసిన ఎందుకు లోపం సందేశం. నాకు ముందుకు వెళ్లి అక్కడ ఈ పంక్తులు తొలగించండి. కాబట్టి మేము నమూనా గురించి ఏమీ తెలియదు. ఈ ఫైలు రీమేక్. ఫంక్షన్ ఒక చేయండి. మరియు ఇప్పుడు, తిట్టు, నాలుగు లోపాలు. తొలి వరకు స్క్రోల్ లెట్. 

ఫంక్షన్ యొక్క పరిపూర్ణమైన ప్రకటన సానుకూల పూర్ణాంకానికి పొందుతారు C99 లో చెల్లనిది. C99 కేవలం 1999 అంటే భాష యొక్క వెర్షన్ మేము నిజానికి ఉపయోగించి ఏమి ఇది C,. కాబట్టి దీని అర్థం ఏమిటి? వెల్ సి మరియు మరింత ప్రత్యేకంగా సి అందంగా మూగ కార్యక్రమాలు compilers-- ఉంటాయి. అవి మీకు మాత్రమే పరిష్కరించగలుగుతున్నాము ఏమి వాటిని చెప్పారు మరియు ఆ వార్తలు గత వారం నుండి నిజంగా నేపథ్యం. 

సమస్య నేను వెళ్ళి ఉంటే ఉంటుంది ఇక్కడ పేరు అప్ అమలు గురించి, మరియు నేను అనే ఫంక్షన్ కాల్ లైన్ 20 న ఇక్కడ GetPositiveInt, ఆ ఫంక్షన్ సాంకేతికంగా లేదు కంపైలర్ లైన్ 27 చూసేంతవరకు ఉనికిలో. దురదృష్టవశాత్తు, కంపైలర్ టాప్, డౌన్, కుడి, ఎడమ పనులను, ఇది చూడలేదని ఎందుకంటే కాబట్టి GetPositiveInt అమలు కానీ మీరు ప్రయత్నిస్తున్నారు చూస్తుంది ఇక్కడ దానిని ఉపయోగించడానికి, ఇది కేవలం అరుస్తుంటారు bail-- జరగబోతోంది లోపం తో మీరు బహుశా message-- గుప్తమైన, మరియు నిజానికి ఫైలు కంపైల్. 

కాబట్టి ఒక అని పిలవబడే నమూనా అప్ ఇక్కడ ఆమోదం అనవసరమైన ఉంది. సాహిత్యపరంగా, నేను ఇక్కడ డౌన్ వెళ్లి నేను కాపీ మరియు ఈ అతికించారు, మరియు నేను ఇక్కడ దానిని చాలు. వాయిడ్ మరింత సరైన ఉంటుంది, కాబట్టి మేము చేస్తాము వాచ్యంగా కాపీ మరియు ఈ సమయం అతికించండి. నేను అక్షరాలా కాపీ మరియు అది అతికించారు. రియల్లీ కేవలం ఒక రొట్టె ముక్క వంటి. 

కంపైలర్ ఒక చిన్న క్లూ. నేను ఈ ఏమి తెలియదు ఇంకా, కానీ నేను మీరు హామీ చేస్తున్నాను అది చివరికి ఉనికిలో ఉంటుంది. ఈ లైన్ ఎందుకు మరియు ఆ వార్తలు లైన్ 16 ఒక సెమికోలన్ తో ముగుస్తుంది. ఇది డిజైన్ ద్వారా అనవసరమైన ఉంది. అవును? 

మీరు మీ లైబ్రరీ లింక్ లేదు ఉంటే ఓహ్, మంచి ప్రశ్న వాట్ కు. వెంటనే శీర్షికా ఫైలును చేరికలు ఇచ్చింది. తప్పక దాదాపు ఉండబోతుంది అవసరం ఎల్లప్పుడూ అగ్రభాగాన ఉంటుంది ఒక similar-- కోసం ఫైలు యొక్క సరిగ్గా అదే కారణం, అవును. ప్రామాణిక ఎందుకంటే io.h వాచ్యంగా ఒక లైన్ ఉంది ఈ వంటి కానీ పదం printf, మరియు దాని వాదనలు మరియు తిరిగి రకం. కాబట్టి పదునైన చేయడం ద్వారా అప్ కవర్ ఇక్కడ, మీరు వాచ్యంగా ఏమి ఉన్నారు విషయాల కాపీ మరియు పేస్ట్ ఒకరి వేరే టాప్ అప్ రాశారు. అందుచేత కు మీ కోడ్ cluing ఆ విధులు ఉన్నాయి వాస్తవం. అవును? 

నిక్షేపంగా. కాబట్టి ఒక చాలా తెలివైన మరియు సరైన పరిష్కారం ఉంటుంది, మీరు ఏమి తెలుసు? నేను తెలియదు ఏమి ఒక నమూనా ఉంది, కానీ నేను తెలుసు నేను సి కేవలం అని అర్థం ఉంటే మూగ మరియు పైనుంచి rethinks. Well యొక్క అది కోరుకుంటున్నారు ఏమి అది కల్పించడానికి అనుమతిస్తాయి. దానిని పేస్ట్, ఆ యొక్క కోడ్ కట్ లెట్ top, మరియు ఇప్పుడు డౌన్ క్రింద ప్రధాన పుష్. ఈ చాలా సమస్య పరిష్కారానికి. 

కానీ మీరు చాలా సులభంగా అప్ వస్తానని A, B కాల్ అవసరం దీనిలో ఒక దృష్టాంతంలో, చేసి B A. ఈ తిరిగి కాల్స్ సూత్రం అని ఏదో ఉంది మరియు మేము ఆ వచ్చి చేస్తాము. మరియు అది లేదా ఒక మంచి కాకపోవచ్చు విషయం, కానీ మీరు ఖచ్చితంగా చెయ్యవచ్చు ఈ పరిష్కారం విడిపోయారు. 

అంతేకాక, నేను చేస్తాను ఆకృతిని దావా, ముఖ్యంగా మీ కార్యక్రమాలు ఈ సుదీర్ఘ మరియు ఈ కాలం మారింది, ఇది కేవలం సూపర్ అనుకూలమైన వార్తలు ఎగువన ప్రధాన ఉంచాలి అది విషయం ఎందుకంటే చాలా ప్రోగ్రామర్లు పట్టించుకోనట్లు వెళ్తున్నారు. కాబట్టి అది కొద్దిగా క్లీనర్ వార్తలు, నిస్సందేహంగా, అది మార్గం చేయడానికి నేను మొదట చేసియున్నారు ఒక నమూనా తో కూడా అది కొద్దిగా కనిపిస్తోంది అయితే మొదటి చూపులో అనవసరమైన. అవును? క్షమించండి, మీరు బిగ్గరగా చెప్పగలరు? 

మీరు స్థానాలను మారడానికి ఉంటే అమలు మరియు నమూనా? కాబట్టి ఒక మంచి ప్రశ్న. మీరు ఈ డౌన్ తిరిగి డిక్లేర్ ఇక్కడ, ఏమి చూద్దాం. నేను ఈ అణిచివేసేందుకు చేస్తే ఇక్కడ, మీరు చెబుతున్న. ఓహ్, సారీ. బిగ్గరగా? కూడా బిగ్గరగా. ఓహ్, మంచి ప్రశ్న. అది ఫంక్షన్ చెల్లుబాటు అనుకుంటున్నారా? మీరు తెలుసు అన్ని ఈ సంవత్సరాల తరువాత, నేను తర్వాత ఒక నమూనా చాలు ఎప్పుడూ. కాబట్టి యొక్క ఫంక్షన్-1 తయారు మనం ఆ చేయడం తర్వాత. 

[గొణుగుతూ] డేవిడ్ J. మలన్: ఓహ్ వేచి. మేము ఇంకా టాప్ ప్రతిదీ అప్ ఉంచాలి. కాబట్టి నేను ఉన్నాను ఉంటే యొక్క, ఇక్కడ ఈ తెలియజేసేలా సరిగ్గా మీ ప్రశ్న అర్ధం. నేను సహా ప్రతిదీ ఉంచడం చేస్తున్నాను ప్రధాన పై నమూనా, కానీ నేను నమూనా చూస్తూ నేను అమలు క్రింద. 

నేను ఒకటి చేస్తే, నేను పొందుతున్నాను కాబట్టి తిరిగి ఒక error-- ఉపయోగించని వేరియబుల్ n. ఓహ్, అక్కడ. ధన్యవాదాలు. యొక్క చూసేలా, మేము ఈ వదిలించుకోవటం. మరో బగ్ ఉంది కాబట్టి యొక్క ఆ విస్మరించండి లెట్. యొక్క నిజంగా త్వరగా ఈ రీమేక్ లెట్. 

OK, కాబట్టి డేటా వాదన కాదు ఫార్మాట్ స్ట్రింగ్ ద్వారా ఉపయోగిస్తారు ఓహ్ n--, ఎందుకంటే వార్తలు నేను ఇక్కడ ఈ మార్చారు. All right, మేము తెలుసు ఏమి సమాధానం ఆలోచన అన్ని కుడి అన్నారు, ఇక్కడ మేము వెళ్ళండి. అమ్మో, సానుకూల ధన్యవాదాలు. అన్ని కుడి, నేను ఈ కోడ్ పరిష్కరిస్తారు after-- ఈ ప్రత్యేక బగ్ పట్టించుకోకుండా ఈ అది పనిచేస్తుంది was-- నుండి సమాధానం. 

కనుక ఇది తిరిగి రాస్తుంది లేదు మీరు ఏమి కేవలం చేశాను. నేను కంపైలర్ అనుమానిస్తున్నారు అటువంటి విధంగా వ్రాయబడింది మీ నమూనా విస్మరిస్తోంది ఆ శరీర ఎందుకంటే, అలా మాట్లాడటం, ఫంక్షన్ ఇప్పటికే కలిగి ఉంది అధిక అప్ అమలు చేశారు. నేను నిజానికి సంప్రదించండి వుంటుంది కంపైలర్ యొక్క మాన్యువల్ ఏ ఇతర ఉంది ఉంటే అర్థం సూత్రప్రాయంగా, కానీ మొదటి చూపులో కేవలం ప్రయత్నిస్తూ మరియు ప్రయోగాలు చేసి, ఎటువంటి ప్రభావం ఉన్నట్లు తెలుస్తోంది. మంచి ప్రశ్న. 

కాబట్టి యొక్క ఇప్పుడు ముందుకు నకలు కదిలే వీలు దూరంగా సైడ్ ఎఫెక్ట్స్ నుండి ఇది వంటి ఏదో ఒకటి క్రియలు దృశ్యపరంగా printf తో తెరపై, కానీ ఒక విలువ తిరిగి లేదు. మరియు ఆ విధులు తిరిగి మేము వంటి విలువలు కొన్ని చూసింది. మేము ఇప్పటికే స్కోప్ యొక్క ఈ భావన చూసింది మరియు మేము మళ్లీ మళ్లీ ఈ చూస్తారు. కానీ ఇప్పుడు కోసం, మళ్ళీ, ముఖ్యనియమంగా ఉపయోగించడానికి ఒక వేరియబుల్ మాత్రమే ఉపయోగిస్తారు చేయవచ్చు ఇటీవల తెరిచిన లోపలి మరియు మేము మూసి గిరజాల జంట కలుపులు నిర్దిష్ట ఉదాహరణ లో చూసింది. 

మరియు మీరు, ఎత్తి చూపారు ఒక ability-- ఉంది మీరు ఈ కొన్ని సమస్యలను పరిష్కరించడానికి కాలేదు ప్రపంచవ్యాప్తంగా ఒక వేరియబుల్ పెట్టటం ద్వారా ఒక ఫైల్ యొక్క అగ్రభాగాన. కానీ దాదాపు అన్ని సందర్భాల్లో మేము ఆ మీద అయిష్టాన్ని కనపరిచే చేస్తుంది, మరియు నిజానికి కూడా వెళ్లరు ఇప్పుడు ఆ పరిష్కారం లోకి. ఇప్పటివరకు, తాత్కాలిక ఉంది వేరియబుల్స్ స్కోప్ ఈ భావన కలిగి. 

కానీ ఇప్పుడు యొక్క మరొక చూద్దాం వాస్తవానికి చూస్తున్న పొడి మార్గం కొన్ని అందంగా ఆసక్తికరమైన వద్ద అమలు వివరాలు. ఎలా మేము సమాచారాన్ని ప్రతిఫలించే. మరియు మేము ఇప్పటికే ఈ చూశారు తరగతి మొదటి వారంలో. బైనరీలు వద్ద గురించి, మరియు దశాంశ మేమే గుర్తు ఉంది. 

కానీ సి కలిగి గత వారం నుండి రీకాల్ వివిధ డేటా రకాలు మరియు పుష్పగుచ్ఛాలు మరింత, కానీ చాలా ఉపయోగకరమైన వాటిని ప్రస్తుతానికి ఈ కావచ్చు. ఇది ఒక చార్, లేదా పాత్ర, ఒక బైట్, లేదా ఎనిమిది బిట్స్ మొత్తం ఉండాలి. మరియు ఆ పరిమాణము అని ఇంకొకరి ఒక చార్ యొక్క కేవలం ఒక బైట్ ఉంది. ఒక బైట్ ఎనిమిది బిట్స్ ఉంది, కాబట్టి ఈ అర్థం మేము ఎన్ని అక్షరాలు సూచిస్తుంది. ఎన్ని అక్షరాలు లేదా కీబోర్డ్ పై చిహ్నాలు మేము ఒక బైట్ లేదా ఎనిమిది బిట్స్ ఉంటే. తిరిగి వారం సున్నా ఆలోచించండి. మీరు ఎనిమిది బిట్స్ ఉంటే, ఎన్ని మొత్తం విలువలు మీరు సూచిస్తాయి చేయవచ్చు సున్నాలు మరియు వాటిని క్రమాలు? కంటే ఎక్కువ One--. కాబట్టి 256 మొత్తం మీరు ఉంటే సున్నా నుండి లెక్కింపు ప్రారంభించండి. కాబట్టి మీరు ఎనిమిది bits-- కాబట్టి మేము ఉంటే ఉంటే మళ్ళీ ఇక్కడ మా బైనరీ గడ్డలు కలిగి మేము ఆ కాంతి గడ్డలు మలుపు కాలేదు మరియు 256 ఏకైక నమూనాలు ఏ ఆఫ్. 

ఇప్పుడు ఈ ఒక బిట్ సమస్యాత్మక ఉంది. ఇంగ్లీష్ మరియు అంత ఎక్కువ ఉండదు రొమాన్స్ లాంగ్వేజెస్, కానీ ఖచ్చితంగా మీరు పరిచయం చేసినప్పుడు, ఉదాహరణకు, ఆసియన్ భాషల్లో, ఇది వంటి కంటే ఎక్కువ చిహ్నాలు కలిగి వర్ణమాల యొక్క 26 అక్షరాలు. మేము నిజంగా అవసరం ఉండవచ్చు ఒక బైట్ కంటే ఎక్కువ. మరియు కృతజ్ఞతగా లో ఇటీవలి సంవత్సరాలలో సమాజం ఉంది ఉపయోగించడానికి ఆ దత్తతు ఇతర ప్రమాణాలు ఛార్జింగ్తో ఒకటి కంటే ఎక్కువ బైట్. 

కానీ ఇప్పుడు సి లో, డిఫాల్ట్ కోసం కేవలం ఒక బైట్ లేదా ఎనిమిది బిట్స్ ఉంది. పూర్ణాంకం, మరోవైపు, నాలుగు ఉంది బైట్లు, లేకపోతే 32 బిట్స్ అని పిలుస్తారు. ఏ అతిపెద్ద సాధ్యం ఏమి అర్థం సంఖ్య మేము ఒక పూర్ణాంకానికి తో సూచిస్తాయి చేయవచ్చు స్పష్టంగా? ఒక బిలియన్. అది నాలుగు బిలియన్ ఇవ్వాలని లేదా పడుతుంది అనిపిస్తుంది. 2 32th శక్తి, మేము ఉంటే ఎటువంటి ప్రతికూల సంఖ్యలు ఊహించుకోవటం మరియు అన్ని సానుకూల ఉపయోగించడానికి సంఖ్యలు నాలుగు బిలియన్ వార్తలు ఇవ్వాలని లేదా అవకాశాలను పడుతుంది. ఒక ఫ్లోట్, మరోవైపు, వేరే రకం ఇది ఇప్పటికీ ఒక సంఖ్య C. లో డేటా రకం, కానీ ఇది నిజమైన నెంబర్. ఒక దశాంశ బిందువు ఏదో. మరియు ఆ అవుతుంది సి కూడా నాలుగు బైట్లు ఉపయోగించే ఫ్లోటింగ్ పాయింట్ విలువలు సూచించడానికి. 

దురదృష్టవశాత్తు ఎన్ని ఫ్లోటింగ్ పాయింట్ విలువలు ప్రపంచంలో ఉన్నాయి? ఎన్ని సహజ సంఖ్యలు ఉన్నాయి? అనంత ఉంది సంఖ్య, మరియు ఆ విషయం పూర్ణాంకాల అనంత సంఖ్యలో ఉంది. కాబట్టి మేము రకమైన ఉన్నారు ఇక్కడ మేమే ఒక రంధ్రం త్రవ్వించి. అనగా స్పష్టంగా computers-- వద్ద them-- సి లో రాసిన కనీసం కార్యక్రమాలు మాత్రమే అధిక వంటి పరిగణించవచ్చు నాలుగు బిలియన్ ఇవ్వాలని లేదా పడుతుంది మరియు ఫ్లోటింగ్ పాయింట్ విలువలు మాత్రమే స్పష్టంగా ఖచ్చితత్వము యొక్క కొన్ని పరిమిత మొత్తం కలిగి. కేవలం చాలా అంకెలు తర్వాత వారి దశాంశ పాయింట్. 

ఎందుకంటే, కోర్సు యొక్క, ఉంటే మీరు మాత్రమే 32 బిట్స్ కలిగి, మనం గురించి వెళ్ళడానికి వెళుతున్న ఎలా తెలియదు బహుశా నిజ numbers-- ప్రాతినిధ్యం నమూనాలు వివిధ రకాల. కానీ ఖచ్చితంగా ఒక పరిమిత ఉంది ఇటువంటి విధానాల సంఖ్య, కాబట్టి ఇక్కడ కూడా ఈ సమస్యాత్మకంగా ఉంది. 

ఇప్పుడు మేము కొద్దిగా సమస్య నివారించేందుకు. మీరు ఒక ఫ్లోట్ ఉపయోగించడానికి లేకపోతే, మీరు ఒక డబుల్ వాడవచ్చు సి, ఇది మీరు ఎనిమిది బైట్లు ఇస్తుంది సున్నాలు యొక్క మార్గం మరింత సాధ్యం నమూనాలు ఉంది మరియు వాటిని. కానీ ఇది అన్నారు, ఇప్పటికీ పరిమిత మీరు సాఫ్ట్వేర్ వ్రాయడానికి ఉంటే సమస్యాత్మక గ్రాఫిక్స్ లేదా ఫాన్సీ కోసం గణిత సూత్రాలు. కాబట్టి మీరు నిజంగా కావలసిన ఉండవచ్చు ఆ కంటే పెద్ద కూడుట. ఒక లాంగ్ లాంగ్ stupidly named-- ఎనిమిది బైట్లు లేదా 64 బిట్స్ ఉంది, మరియు ఈ ఒక పూర్ణాంకానికి గా రెండుసార్లు కాలం ఉంది మరియు అది ఒక దీర్ఘ పూర్ణాంక విలువ ఉంది. 

ఫన్ fact-- ఒక Int, నాలుగు బైట్లు ఉంటే సాధారణంగా సి లో ఒక దీర్ఘ ఎలా పొడవుగా ఉంది? అలాగే నాలుగు బైట్లు, కానీ ఒక లాంగ్ లాంగ్ ఎనిమిది బైట్లు, మరియు ఈ చారిత్రక కారణాల కోసం. 

కానీ ఇప్పుడు takeaway కేవలం ఆ డేటాని ఉంది వార్తలు ఒక కంప్యూటర్ లో ప్రాతినిధ్యం వహించే విద్యుత్ భౌతిక పరికరం ఇది సాధారణంగా డ్రైవింగ్ ఆ సున్నాలు మరియు ones-- ఖచ్చితత్వము యొక్క పరిమిత మొత్తంలో తో. కాబట్టి సమస్య తర్వాత ఏమిటి? 

Well ఒక సమస్య ఉంది పూర్ణాంక ఓవర్ఫ్లో యొక్క. కేవలం సి, కానీ లో సాధారణంగా కంప్యూటర్లు. ఉదాహరణకు, ఈ ఉంటే ఒక బైట్ విలువ bit ఉంది కాబట్టి ఈ అన్ని ఎనిమిది bit ఉంది ఉంటే ఇది సంఖ్య ఒకటి. ఏమి సంఖ్య ఈ ఉంది మేము ఊహించుకోవటం ఉంటే ప్రాతినిధ్యం అది బైనరీ లో అన్ని సానుకూల విలువలు? 

255, మరియు అది 256 ఎందుకంటే, కాదు సున్నా అత్యల్ప సంఖ్య. కాబట్టి 255 అత్యధిక ఉంది ఒకటి, కానీ సమస్య నేను కోరుకున్నాడు అనుకుందాం ఈ వేరియబుల్ పెంచడం ఆ ఎనిమిది బిట్స్ మొత్తం ఉపయోగిస్తోంది నేను పెంచడం అనుకుంటే. 

సరే నేను జోడించండి వెంటనే ఒక ఈ వాటిని అన్ని ఒక, మీరు బహుశా కేవలం visually-- ఊహించే decimals-- ఉపయోగించి ఒక మోసుకెళ్ళే వంటి ఏదో ఎడమ ప్రవహిస్తుంది జరగబోతోంది. నిజానికి, నేను సంఖ్య జోడిస్తే ఈ ఒకటి, ఏమి బైనరీ లో జరుగుతుంది అది తిరిగి సున్నాకు ఓవర్ఫ్లో ఉంది. 

కాబట్టి మీరు ఒక పూర్ణాంకానికి కాదు use-- ఉంటే, కానీ ఒకే బైట్ పూర్ణ లెక్కించడానికి ఒక కార్యక్రమంలో, వెంటనే default-- ద్వారా మీరు 250 ను 251, 252, 253, 254, 255-- 0, 255 తర్వాత వస్తుంది ఇది బహుశా ఏమిటి ఒక వినియోగదారు ఆశించడం అన్నారు. 

ఇప్పుడు అదే సమయంలో పాయింట్ ప్రపంచంలో తేలియాడే, మీరు కూడా ఇదే సమస్య. అతిపెద్ద సంఖ్య తో ఎక్కువ అయితే ఇప్పటికీ ఒక సమస్య. కానీ PRECISION మొత్తం మీరు సూచిస్తుంది. కాబట్టి ఈ ఉదాహరణ పరిశీలించి తెలియజేయండి ఇక్కడ కూడా నేటి సోర్స్ code-- నుండి ఫ్లోట్-0.c. 

మరియు అది ఒక సూపర్ నోటీసు సాధారణ ప్రోగ్రామ్ స్పష్టంగా ఏ విలువ ముద్రించాలా ఉండాలి? మీరు ఈ ప్రింట్ అన్నారు పందెం విషయమేమిటంటే కొత్త వాక్యనిర్మాణం యొక్క బిట్ ఉంది అయినప్పటికీ ఇక్కడ? కాబట్టి ఆశాజనక 0.1. కాబట్టి పదో సమానం నేను 10 ద్వారా విభజించబడింది 1 చేయడం చేస్తున్నాను ఎందుకంటే. నేను సమాధానం నిల్వ చేస్తున్నాను ఒక వేరియబుల్ F అని. ఆ వేరియబుల్ రకం ఫ్లోట్, యొక్క ఇది నేను ప్రతిపాదించిన కీవర్డ్ ఉనికిలో ఉంది. 

మేము ముందు ఈ చూసిన, కానీ చెయ్యలేదు ఈ printf ఒక చక్కని మార్గం యొక్క రకాన్ని ఎన్ని అంకెలు తెలుపుటకు మీరు ఒక దశాంశ బిందువు తర్వాత చూడాలనుకుంటే. కాబట్టి ఈ సంజ్ఞామానం అర్థం ఇక్కడ ఒక ప్లేస్హోల్డర్ ఉంది. ఇది ఒక ఫ్లోటింగ్ పాయింట్ కోసం వార్తలు విలువ, మరియు OH, ద్వారా, దశాంశ బిందువు చూపించడం దశాంశ బిందువు తర్వాత ఒక సంఖ్య. కాబట్టి ఆ సంఖ్యను వార్తలు ముఖ్యమైన అంకెలు, కాబట్టి మీరు అనుకోవచ్చు, మాట్లాడటానికి. 

నాలో ముందుకు వెళ్లి తెలియజేసేలా ./float-0, ఫ్లోట్-0 చేయడానికి, మరియు స్పష్టంగా 1 10 ద్వారా విభజించబడింది 0.0 ఉంది. ఇప్పుడు ఎందుకు ఈ ఉంది? 

బాగా మళ్ళీ, కంప్యూటర్ తీసుకుంటోంది నాకు సాహిత్యపరంగా, నేను 1 వ్రాశారు నేను 10 వ్రాసిన, మరియు ఒక అంచనా పడుతుంది ఏమి ఆ రెండు కోసం ఊహించిన డేటా రకం విలువలు? ఒక Int, ఇది సాంకేతికంగా వార్తలు ఒక చిన్న వేరొక. ఇది సాధారణంగా ఒక దీర్ఘ, కానీ అది వార్తలు చివరికి ఒక సమగ్ర విలువ. ఒక ఫ్లోటింగ్ పాయింట్ విలువ. 

ఏ ఒకవేళ ఈ చెప్పటానికి ఉంది ఒక పూర్ణాంకానికి ఉంది మరియు ఈ ఒక పూర్ణాంకానికి ఉంది సమస్య కంప్యూటర్ ఉంది సామర్థ్యం లేదు కూడా ఆ దశాంశ బిందువును నిల్వ. మీరు 1 అలా చేసినప్పుడు విభజించబడింది 10 ఉపయోగించి పూర్ణ ద్వారా లవము మరియు రెండు కోసం హారం, సమాధానం 0.1 ఉండాలి. కానీ కంప్యూటర్ ఎందుకంటే ఆ పూర్ణ ఉంటాయి 0.1 తో ఏమి తెలియదు. 

సో వాట్ అది స్పష్టంగా చేస్తోంది? ఇది కేవలం, అది దూరంగా విసిరే యొక్క మరియు నేను చివరికి ఏమి చూసిన వెబ్ నేను పట్టుబట్టారు మాత్రమే ఎందుకంటే 0.0 ఉంది printf నాకు ఒక దశాంశ బిందువు చూపించు. కానీ సమస్య మీరు ఉంటే పూర్ణాంకం ద్వారా పూర్ణాంకం విభజించి, మీరు నిర్వచనం ద్వారా get-- ఉంటుంది ఒక పూర్ణాంకం సి. మరియు అది చేయబోవడం లేదు nice మరియు సౌకర్యవంతంగా ఏదో అప్ దానిని రౌండ్ ఒక అప్ లేదా డౌన్ సమీప. ఇది ఖండించు జరగబోతోంది దశాంశ తర్వాత ప్రతిదీ. 

కాబట్టి కేవలం intuitively, బహుశా ఒక పరిష్కారాన్ని ఏమిటి? ఇక్కడ సరళమైన పరిష్కారం ఏమిటి? అవును? సరిగ్గా. ఎందుకు మేము ఈ చికిత్స లేదు సమర్థవంతంగా ఫ్లోటింగ్ పాయింట్ విలువలు తేలియాడుతున్న లేదా డబుల్స్ వాటిని చెయ్యడానికి. ఇప్పుడు నేను తయారు చేస్తే తేలియాడుతున్న-0, లేదా నేను తేలియాడుతున్న-1 కంపైల్ ఉంటే, ఇది సమానంగా ఉంది కేవలం ప్రతిపాదించారు. ఇప్పుడు నేను తేలియాడుతున్న-0, ఇప్పుడు నేను నా 0.1 పెట్టాలి. 

ఇప్పుడు ఈ అద్భుతమైన ఉంది. కానీ ఇప్పుడు నేను చేయ బోతున్నాను ఒక చిన్న వేరొక. నేను నిజంగా ఏమి చూడటానికి ఆసక్తికరమైన ఉన్నాను హుడ్ కింద జరగబోతోంది, మరియు నేను ఈ ప్రింట్ వెళుతున్న అవుట్ 28 దశాంశ స్థానాల. నేను నిజంగా చూడాలనుకుంటే 0.1000-- ఒక infinite-- ఆ 0.1 తర్వాత [వినబడని] 27 సున్నాలు. 

Well ఆ ఉంటే యొక్క చూసేలా నేను నిజానికి ఏ పొందండి. తేలియాడుతున్న-0 ఒకే ఫైల్ చేయండి. ./floats-0. నాటకీయ సమాధానం లో జూమ్ లెట్. అన్ని ఈ సమయంలో, మీరు అనుకున్నది ఉన్నాను 10 ద్వారా విభజించబడింది 1 10%, లేదా 0.1 ఉంది. ఇది కాదు. కనీసం ఇప్పటికి కంప్యూటర్ యొక్క ఆందోళన చెందుతున్నాయి. 

సరే why-- ఇప్పుడు, ఆ పూర్తి 10 ద్వారా విభజించబడింది అబద్ధం 1 0.1 ఉంది. కానీ కాదు why-- తాత్కాలిక నేడు. సో ఎందుకు కంప్యూటర్, అనుకుంటున్నాను లేదు గదిలో మాకు అన్ని కాకుండా, 1 10 ద్వారా విభజించబడింది అని నిజానికి ఆ క్రేజీ విలువ? స్పష్టంగా చేయడం కంప్యూటర్ అంటే ఏమిటి? ఆ ఏమిటి? 

ఇది పర్ సే ఓవర్ఫ్లో కాదు. ఫ్లో సాధారణంగా ఉన్నప్పుడు ఉంది మీరు ఒక విలువను చుట్టూ. ఇది ఖచ్చితంగా చెప్పలేని ఈ సమస్య ఒక ఫ్లోటింగ్ పాయింట్ విలువ మీరు మాత్రమే 32 కలిగి ఉన్న లేదా ఉండవచ్చు కూడా 64 బిట్. కానీ అనంత ఉంది ఉంటే నిజ numbers-- సంఖ్య దశాంశ పాయింట్లతో సంఖ్యలు మరియు సంఖ్యలను తప్పనిసరిగా thereafter-- మీరు వాటిని అన్ని సూచిస్తాయి. కాబట్టి కంప్యూటర్ ఇచ్చారు మాకు దగ్గరగా మ్యాచ్ విలువ దానిని ఉపయోగించి సూచిస్తుంది నేను నిజంగా కావలసిన విలువ అనేక బిట్స్ ఇది 0.1 ఉంది. 

దురదృష్టవశాత్తు, మీరు ఉంటే గణిత చేయడం మొదలు, లేదా మీరు ఫ్లోటింగ్ యొక్క ఈ రకాల పాల్గొన్న ప్రారంభం ముఖ్యమైన ప్రోగ్రామ్లను పాయింట్ విలువలు ఫైనాన్షియల్ సాఫ్ట్వేర్, సైనిక సాఫ్ట్వేర్ ఏదైనా తోబుట్టువుల అవగాహన బహుశా చాలా ముఖ్యమైన. మరియు మీరు జోడించడం ప్రారంభించండి ఈ వంటి సంఖ్యలు, మరియు ప్రారంభ ఆ సాఫ్ట్ వేర్ నిజంగా పెద్ద ఇన్పుట్లను తో లేదా గంటలు లేదా మా యొక్క మా కోసం సంవత్సరాల రోజులు లేదా మా యొక్క, ఈ చిన్న చిన్న తప్పులు ఖచ్చితంగా కాలక్రమేణా జోడించవచ్చు. 

ఇప్పుడు జనాంతికంగా, మీరు చేసిన ఎప్పుడూ ఉంటే సూపర్మ్యాన్ 3 లేదా ఆఫీస్ స్పేస్ చూసిన మరియు మీరు గుర్తు ఉండవచ్చు ఎలా వాళ్ళని దొంగిలించారు వారి కంప్యూటర్ నుండి డబ్బు ఫ్లోటింగ్ పాయింట్ విలువలు ఉపయోగించి మరియు కొద్దిగా అప్ జోడించడం శేష, ఆశాజనక ఆ చిత్రం ఇప్పుడు మరింత అర్థవంతంగా ఉంటుంది. ఈ వారు భావించాను ఏమిటి ఆ చిత్రం లో alluding. నిజానికి చాలా ఆ కంపెనీలు చూడండి కాదు ఒక నిర్దిష్ట సంఖ్యలో దశాంశ స్థానాల యొక్క, కానీ ఆ సెంట్లు భిన్నాలు ఉన్నాయి. కాబట్టి మీరు వాటిని అప్ జోడించడం ప్రారంభించండి మీరు డబ్బు చేయడానికి ప్రారంభం మీ బ్యాంకు ఖాతాలో. కాబట్టి ఆ ఆఫీస్ స్పేస్ వివరించారు కాదు. 

ఇప్పుడు దురదృష్టవశాత్తు దాటి ఆఫీస్ స్పేస్ అక్కడ కొన్ని న్యాయముగా ఇబ్బంది మరియు ముఖ్యమైన ప్రభావాలు ఈ రకాల అంతర్లీన డిజైన్ నిర్ణయాలు, కారణాలు మరియు నిజానికి ఒక మేము కోర్సులో C ఉపయోగించండి మీరు నిజంగా ఈ భూమి కలిగి తద్వారా కంప్యూటర్లు పని ఎలా అవగాహన అప్, ఎలా సాఫ్ట్వేర్ పనిచేస్తుంది, మరియు లేదు మంజూరు కోసం ఏదైనా తీసుకోవాలని. 

నిజానికి దురదృష్టవశాత్తు, కూడా ఆ ప్రాథమిక అవగాహన, మనం మానవులు తప్పులు. మరియు నేను భాగస్వామ్యం కావలసిన ఆలోచన ఈ ఎనిమిది నిమిషాల వీడియో ఇక్కడ తీసుకున్న ఇది ఒక ఆధునిక అద్భుత అంకం నుండి ఉపకరణములు పని ఎలా ఒక విద్యా ప్రదర్శన ఆ రెండు చిత్రాలు నింపేశారు ఉన్నప్పుడు ఒక అసమాన వినియోగం మరియు అవగాహన ఫ్లోటింగ్ పాయింట్ విలువలు కొన్ని ముఖ్యమైన దారితీసింది దురదృష్టకరమైన ఫలితాలు. యొక్క పరిశీలించి లెట్. [వీడియో ప్లేబ్యాక్] -మేము ఇప్పుడు ఇంజినీరింగ్ తిరిగి " ఆధునిక అద్భుత పైన విపత్తు ". కంప్యూటర్లు. మేము అన్ని ఆమోదించడానికి వచ్చి తరచుగా నిరాశపరిచింది సమస్యలు them-- దోషాలు, వైరస్లు వచ్చింది, మరియు చిన్న ధరలు కోసం సాఫ్ట్వేర్ glitches-- సౌలభ్యం కోసం చెల్లించాల్సిన. కానీ అధిక టెక్ మరియు అధిక వేగం సైనిక మరియు ప్రదేశంలో కార్యక్రమం అప్లికేషన్లు, చిన్న సమస్య చెయ్యవచ్చు సంక్షోభం వృద్ధి చేయబడుతుంది. 

జూన్ 4, 1996 న, శాస్త్రవేత్తలు తయారు ఒక మానవరహిత అరైన్ 5 రాకెట్. ఇది శాస్త్రీయ మోస్తున్నాడు ఉపగ్రహాలు రూపొందించిన ఖచ్చితంగా ఎలా స్థాపించడానికి భూమి యొక్క అయస్కాంత క్షేత్రం సంకర్షణ సౌర గాలులు తో. రాకెట్ కోసం నిర్మించారు యూరోపియన్ స్పేస్ ఏజెన్సీ, మరియు దాని సౌకర్యం నుండి ప్రయోగించారు ఫ్రెంచ్ గయానా తీరంలో. 

లోకి 37 సెకన్లు -At విమాన, వారు మొదటి గమనించి ఏదో తప్పు వెళుతున్నాను. నాజిల్ ద్వారా సంతోషపడ్డారు అని ఒక విధంగా వారు నిజంగా కాదు. విమాన లోకి 40 సెకన్లు, స్పష్టంగా వాహనం కష్టాల్లో ఉన్నానని వారు చేసిన ఉన్నప్పుడు మరియు ఆ వార్తలు నిర్ణయం అది నాశనం. పరిధి భద్రత అధికారి, తో విపరీతమైన దమ్మున్న బటన్ నొక్కినప్పుడు ఇది ముందు అనుకొనుట మరియు రాకెట్ పేల్చి ప్రజా భద్రత ప్రమాదం మారింది. 

-ఈ తొలి ఉంది Ariane 5 యొక్క సముద్రయానంలో మరియు దాని విధ్వంసం పట్టింది ఎందుకంటే దోషం ఉంచండి రాకెట్ యొక్క సాఫ్ట్వేర్ పొందుపరిచారు. న -ఫిల్టర్లు సమస్య అరైన్ అని అక్కడ అవసరమైన ఒక సంఖ్య 64 బిట్స్, వ్యక్తీకరించడానికి మరియు వారు మార్పు కోరుకున్నారు ఒక 16-bit సంఖ్య. వారు సంఖ్య భావించబడుతుంది చాలా పెద్ద చేస్తాడు ఎప్పుడూ. ఆ ఆ అంకెలు చాలా 64-bit సంఖ్య సున్నాలు ఉన్నాయి. వారు తప్పు ఉన్నారు. 

ఒక అసమర్థత సాఫ్ట్వేర్ ప్రోగ్రామ్ అంగీకరించడానికి ద్వారా సృష్టించబడిన సంఖ్య రకం మరో వైఫల్యం యొక్క మూల వద్ద ఉంది. సాఫ్ట్వేర్ అభివృద్ధి మారింది ఒక కొత్త టెక్నాలజీ చాలా ఖరీదైన భాగం. Ariane 4 రాకెట్ వచ్చింది చాలా విజయవంతం అయ్యాయి. కోసం రూపొందించబడిన సాఫ్ట్వేర్ చాలా అది కూడా Ariane 5 లో ఉపయోగించారు. 

-ప్రాథమిక సమస్య అని అరైన్ 5. Faster--, వేగంగా వేగవంతం అయ్యింది మరియు సాఫ్ట్వేర్ ఆ లెక్కలోకి చేసింది. 

రాకెట్ -యొక్క విధ్వంసం భారీ ఆర్థిక విపత్తు. అన్ని వలన ఒక నిమిషం సాఫ్ట్వేర్ లోపం. కానీ ఈ మొదటి కాదు సమయం డేటాను మార్పిడి సమస్యలు ఆధునిక రాకెట్ సాంకేతిక చుట్టుముట్టాయి. 

ప్రారంభ 1991 కావాలి మొదటి గల్ఫ్ యుద్ధం, పాట్రియాట్ క్షిపణి ఇదే రకమైన అనుభవం ఒక నంబర్ మార్పిడి సమస్య. ఫలితంగా 28 people-- 28 అమెరికన్ soldiers-- మరణించారు, మరియు గురించి వంద ఇతరులు గాయపడ్డారు. ఎప్పుడు చేయాలో పాట్రియాట్, ఇన్కమింగ్ Scuds రక్షణగా, ఒక క్షిపణి దాడి విఫలమైంది. 

-When ఇరాక్ కువైట్, మరియు అమెరికా ఆక్రమించారు ప్రారంభ 1991 లో డిసర్ట్ స్టార్మ్ ప్రారంభించింది, పాట్రియాట్ క్షిపణి బ్యాటరీలు తరలించేవారు సౌదీ అరేబియా మరియు ఇజ్రాయెల్ రక్షించడానికి ఇరాకీ వేగంగా ఎగిరిపోవు క్షిపణి దాడులు నుండి. పాట్రియాట్, ఒక సంయుక్త మధ్య శ్రేణి ఉపరితలం నుంచి గాలి వ్యవస్థ రేథియాన్ కంపెనీ తయారు చేసింది. 

పాట్రియాట్ -యొక్క పరిమాణం ఇంటర్సెప్టర్ స్వయంగా అది సుమారు 20 అడుగుల పొడవు వార్తలు మరియు దాని గురించి 2,000 పౌండ్ల బరువు ఉంటుంది. మరియు అది గురించి ఒక వార్హెడ్ తీసుకువెళుతుంది నేను సుమారు 150 పౌండ్లు. మరియు వార్హెడ్ కూడా ఉంది అధిక పేలుడు, ఇది అతని చుట్టూ శకలాలు ఉంది. కాబట్టి వార్హెడ్ యొక్క కేసింగ్ ఉంది ఒక buckshot ప్రవర్తిస్తాయి రూపొందించబడింది. 

-ఫిల్టర్లు క్షిపణులను నిర్వహిస్తున్నారు CONTAINER నాలుగు, మరియు ఒక సెమీ ట్రైలర్ ద్వారా రవాణా. 

-ఫిల్టర్లు పాట్రియాట్ వ్యతిరేక క్షిపణి వ్యవస్థ ఇప్పుడు కనీసం 20 సంవత్సరాల తిరిగి వెళ్తాడు. ఇది మొదట్లో రూపకల్పన చేశారు ఒక వాయు రక్షణ క్షిపణి వంటి శత్రువు విమానాలు డౌన్ షూట్. మొదటి గల్ఫ్ యుద్ధం లో ఆ యుద్ధం వచ్చినప్పుడు, ఆర్మీ దానిని ఉపయోగించడానికి కోరుకున్నారు Scuds, కాదు విమానాలు డౌన్ షూట్. ఇరాకీ ఎయిర్ ఫోర్స్ సమస్య చాలా లేదు, కానీ సైన్యం Scuds ఆందోళన చెందాడు. అందువలన వారు ప్రయత్నించారు పాట్రియాట్ అప్గ్రేడ్. 

ఒక శత్రువు -Intercepting మాక్ 5 వద్ద ప్రయాణిస్తున్న క్షిపణి తగినంత సవాలే కానుంది. కానీ పాట్రియాట్ సేవకు తరలించారు, ఆర్మీ aware కాదు ఒక ఇరాకీ మార్పు అని వారి Scuds చేసిన దాదాపు అది అసాధ్యం. 

-What జరిగిన Scuds ఉంది అని లో రావడం జరిగింది అస్థిర ఉన్నారు. వారు wobbly ఉన్నాయి. ఈ కారణం Iraqis-- ఉంది 600 కిలోమీటర్ల పొందడానికి 300 కిలోమీటర్ల పరిధిలో missile-- యొక్క ముందు వార్హెడ్ యొక్క బరువు అవుట్ పట్టింది మరియు వార్హెడ్ తేలికైన చేసింది. కాబట్టి ఇప్పుడు పాట్రియాట్ రావటానికి ప్రయత్నిస్తున్న వేగంగా ఎగిరిపోవు వద్ద, time-- మరియు అత్యంత అత్యధికులు time-- అది కేవలం వేగంగా ఎగిరిపోవు ద్వారా ఫ్లై. 

పాట్రియాట్ సిస్టమ్ ఆపరేటర్లు -ఒకసారి , పాట్రియాట్ దాని లక్ష్యం తప్పిన గ్రహించారు వారు పాట్రియాట్ వార్హెడ్ విస్ఫోటనం అది సాధ్యం మరణాలు నివారించేందుకు భూమి తగ్గుతుందని అనుమతి ఇచ్చారు. 

-ఆ చాలా మంది చూసి ఉంది ఆకాశంలో పెద్ద ఫైర్బాల్స్, మరియు తప్పుగా అర్ధం వేగంగా ఎగిరిపోవు వార్హెడ్లతో యొక్క అడ్డుకోవటాన్ని. 

రాత్రి ఆకాశం, పేట్రియాట్స్ లో -Although విజయవంతంగా నాశనం అనిపించింది Scuds, దాహ్రాన్ ఉండవచ్చు దాని పనితీరు గురించి తప్పు. అక్కడ పాట్రియాట్ యొక్క రాడార్ వ్యవస్థ ఇన్కమింగ్ వేగంగా ఎగిరిపోవు కోల్పోయిన ట్రాక్ మరియు వలన ప్రారంభం కాలేదు ఒక సాఫ్ట్వేర్ దోషం. 

ఇది మొదటి కనుగొన్న ఇజ్రాయిలీ ఇక సిస్టమ్ అని, ఎక్కువ సమయం వ్యత్యాసం మారింది. కారణంగా ఇమిడి గడియారం వ్యవస్థ యొక్క కంప్యూటర్. 

యునివర్సిటి గురించి రెండు వారాల ముందు లో Dhahran విషాదం, ఇజ్రాయెల్కు నివేదించారు రక్షణ శాఖ ఆ సిస్టమ్ సమయం కోల్పోయింది. గురించి ఎనిమిది గంటల తర్వాత పరుగు, వారు గమనించి వ్యవస్థ యొక్క మారుతోంది ఆ గమనించదగిన తక్కువ ఖచ్చితమైన. రక్షణ శాఖ స్పందించింది పాట్రియాట్ బ్యాటరీలు అన్ని చెప్పడం వ్యవస్థలు వదిలి లేదు ఒక కాలం లో. వారు చాలా కాలం ఏమి చెప్పారో ఎప్పుడూ. 8 గంటలు, 10 గంటలు, వెయ్యి గంటల. ఎవరూ తెలుసు. 

-ఫిల్టర్లు పాట్రియాట్ బ్యాటరీ బ్యారక్స్ Dhahran లో మరియు దాని దోషపూరిత అంతర్గత వద్ద గడియారం 100 గంటలకుపైగా ఉండేది ఫిబ్రవరి 25 న రాత్రి. 

-ఇది ఒక ఖచ్చితమైన సమయం ట్రాక్ రెండవ పదవ సుమారు. రెండవ ఇప్పుడు పదవ ఒక ఆసక్తికరమైన సంఖ్య ఇది వ్యక్తం సాధ్యం కాదు ఎందుకంటే సరిగ్గా బైనరీ లో ఇది అది ఖచ్చితంగా వ్యక్తమవుతుంది ఇవ్వలేదు ఏ ఆధునిక డిజిటల్ కంప్యూటర్. ఇది నమ్మకం కష్టం కానీ ఒక ఉదాహరణగా ఈ ఉపయోగించవచ్చు. 

యొక్క ప్రథమ మూడవ తీసుకుందాం. మూడవ వన్ ఉండకూడదు సరిగ్గా దశాంశ వ్యక్తం. మూడవ వన్ 0,333 ఉంది అనంతం కోసం జరుగుతోంది. తో అలా మార్గం ఉంది ఒక దశాంశ సంపూర్ణ ఖచ్చితత్వం. ఆ సమస్య సరిగ్గా రకం వార్తలు ఆ పాట్రియాట్ లో జరిగింది. ఇక సిస్టమ్ నడిచింది, దారుణంగా సమయంలో లోపం మారింది. 

ఆపరేషన్ 100 గంటల -After, సమయంలో లోపం మాత్రమే గురించి ఒక మూడవ రెండవ. కానీ ఒక లక్ష్యంగా పరంగా మాక్ 5 వద్ద ప్రయాణిస్తున్న క్షిపణి, అది ఒక ట్రాకింగ్ ఫలితంగా 600 మీటర్ల లోపం. ఇది ఒక తీవ్రమైన లోపం ఉంటుంది Dhahran లో వద్ద సైనికులు. 

ఒక వేగంగా ఎగిరిపోవు ప్రయోగ ఉంది -What జరిగిన ముందస్తు హెచ్చరిక ద్వారా కనుగొనబడింది ఉపగ్రహాలు, మరియు వారు ఒక వేగంగా ఎగిరిపోవు రాబోయే తెలుసు వారి సాధారణ దిశలో. అది రాబోయే అక్కడ వారు తెలియదు. ఇది రాడార్ ఇప్పుడు ఉంది పాట్రియాట్ వ్యవస్థ భాగం Dhahran లో డిఫెండింగ్ గుర్తించడం మరియు ఉంచడానికి ఇన్కమింగ్ శత్రువు క్షిపణి ట్రాక్. 

-ఫిల్టర్లు రాడార్ చాలా స్మార్ట్ ఉంది. ఇది నిజంగా ట్రాక్ చేస్తుంది వేగంగా ఎగిరిపోవు స్థానం ఆపై ఎక్కడ అంచనా అది బహుశా ఉంటుంది తదుపరి సమయం రాడార్ ఒక పల్స్ పంపింది. ఆ శ్రేణి గేట్ అని పిలిచేవారు. 

పాట్రియాట్ ఒకసారి -Then తగినంత సమయం ఉంది నిర్ణయించుకుంటుంది తిరిగి వెళ్ళి తదుపరి తనిఖీ జారీ ఈ కనుగొనబడింది వస్తువు కోసం నగర అది తిరిగి వెళతాడు. కాబట్టి అది తప్పు తిరిగి వెళ్ళినప్పుడు ఈ ప్రదేశం, అప్పుడు ఏ వస్తువు చూస్తాడు. మరియు అది ఏ వస్తువు ఉంది నిర్ణయిస్తాడు. ఒక తప్పుడు గుర్తింపును ఉందని మరియు ఇది ట్రాక్ పడిపోతుంది. 

-ఫిల్టర్లు ఇన్కమింగ్ వేగంగా ఎగిరిపోవు అదృశ్యమైన రాడార్ తెర నుంచి, మరియు సెకన్ల తరువాత, అది బ్యారక్స్ లోకి స్లామ్డ్. వేగంగా ఎగిరిపోవు 28 హత్య. చివరి గణనను తొలగించారు మొదటి గల్ఫ్ యుద్ధం సమయంలో. దురదృష్టవశాత్తు, నవీకరించబడింది సాఫ్ట్వేర్ తరువాతి రోజు తెల్లవారు ఝామున వచ్చారు. సాఫ్ట్వేర్ దోషం వచ్చింది ఉన్నాయి స్థిర, ముగింపు సమస్యాత్మక ఒక అధ్యాయం పాట్రియాట్ క్షిపణి యొక్క చరిత్ర. 

[END వీడియో ప్లేబ్యాక్] 

డేవిడ్ J. మలన్: ఆ CS50 కోసం అంతే. మేము బుధవారం మీరు చూస్తారు. 

[సంగీతాన్ని]