జాసన్ HIRSCHHORN: స్వాగతం వారం మూడు, ప్రతి ఒక్కరూ. మేము ఒక బిజీగా కానీ ఉత్తేజకరమైన కలిగి ముందుకు మాకు యొక్క విభాగం. కాబట్టి మొదటి, మేము కొన్ని తయారు ఎందుకంటే కోర్సు తో ముందుకి కానీ మేము ఇంకా శిక్షణ చాలా నేను, చేయడానికి వదిలి మీరు అబ్బాయిలు కొన్ని వనరులను చూపించబోతున్నాను నమ్మలేనంత ఉన్నట్లు రుజువు మీరు అవలంబించే మాత్రమే ఉపయోగపడిందా మీ సమస్య సెట్లు, కానీ కూడా అన్ని జీర్ణం మీరు కుర్రాళ్ళ రావాలంటే పదార్థం ఉపన్యాసాలు మరియు లఘు చిత్రాలు మరియు విభాగం. అప్పుడు మేము మొదటి 20 ఖర్చు చేయబోతున్నామని విభాగం మీద వెళ్ళడం 25 నిమిషాల మీరు లేదా ఉండవచ్చు ఇది GDB, ఈ సమయంలో ఉపయోగిస్తారు, కాని ఇది ఒక ఉంది పెసో సాధనం రెడీ మీరు మీ కార్యక్రమాలు డీబగ్ సహాయం. మీరు చాలా లో printf ఉపయోగించి ఉండవచ్చు గుర్తించడానికి మీ ప్రోగ్రామ్ మధ్యలో ఒక వేరియబుల్ సమం ఏమిటో. GDB కూడా printf కంటే బాగా ఉంది మీ కోడ్ మేకు లేదు మీరు ఎందుకంటే ఒక ఎక్జిక్యూటబుల్ ఫైల్ దీన్ని అమలు. కాబట్టి మేము 10 అత్యంత ఉపయోగపడిందా వెళ్తారో మీరు GDB కోసం అవసరం ఆజ్ఞాపింపగా మేము కలిసి కాబట్టి ఒక వ్యాయామ న వెళ్ళి సమస్య మీరు, మూడు మరియు దాటి సెట్ డీబగ్ సహాయం GDB ఉపయోగించవచ్చు మీ కార్యక్రమాలు. చివరకు, మేము కొన్ని వెళ్ళి చూడాలని అల్గోరిథంలు సార్టింగ్ మరియు శోధించడం మీరు ఉపన్యాసంలో చూసింది మేము అని నిజానికి కోడ్, కేవలం అన్నారు pseudocode, కానీ కోడ్ బైనరీ శోధన, బబుల్ సార్ట్ మరియు ఎంపిక విధమైన. కాబట్టి మొదటి, నేను వెళ్లాలని మీరు వనరులపై. ఈ విస్తృత జాబితా, మరియు అది నేను చాలా ఎందుకంటే చిన్న ఫాంట్ ఇక్కడ సరిపోయే. కానీ ఈ, మీరు సహాయం చేస్తుంది మాత్రమే మళ్ళీ, సమస్య సెట్లు మరియు మీరు నేర్చుకున్న జీర్ణమైనట్లు సమాచారం, కానీ ఖచ్చితంగా, క్విజ్ సమయం, ఈ ఉంటుంది వచ్చిన చాలా సహాయకారిగా. కాబట్టి మొదటి, లెక్చర్ నోట్స్. మీరు cs50.net/lectures వెళ్ళండి మరియు ఉంటే నిర్దిష్ట వారం మరియు రోజు స్క్రోల్, మీరు ప్రతి స్వరాలు ఉంటాయి చూస్తారు కేవలం కాదు, ఉపన్యాసం ఒక ట్రాన్స్క్రిప్ట్, కానీ ఒక సవరించిన సంస్కరణ కోడ్ తో ఉపన్యాసంలో కవర్ ఏమి స్నిప్పెట్లను మరియు ఇతర ఉపయోగపడిందా చిట్కాల. నేను అత్యంత ఆ పైగా వెళ్లి సిఫార్సు. మరియు తర్వాత అదే, సోర్స్ కోడ్ ఉంది ప్రతి ప్రసంగం నుండి అందుబాటులో. మరియు తిరిగి, ఈ స్లయిడ్ కూడా ఉంటుంది cs50.net/sections వద్ద అందుబాటులో ఈ సాయంత్రం. కాబట్టి రెండవ లఘు చిత్రాలు ప్రతి వారం అని కవర్ విషయాలు, సాధారణంగా 5 నుండి 15 పొడవు నిమిషాల. మరియు ఆ ఆశాజనక మీరు ఒక ఇస్తుంది వివిధ అంశాలపై గొప్ప ప్రైమర్. మూడవ - మరియు ఈ కొత్త ఈ ఉంది సంవత్సరం - study.cs50.net ఉంది. మీరు దాన్ని తనిఖీ ఉండకపోతే, నేను అత్యంత మీరు అలా మేము సిఫార్సు. మీరు ఒక అంశం ఎంచుకోండి ను. మేము అక్కడ విషయాలు డజన్ల కొద్దీ కలిగి. ఉదాహరణకు, మీరు విధులు ఎంచుకోండి. మీరు కొన్ని స్లయిడ్ ఇస్తుంది మరియు విధులు గమనికలు. ఆ నిజానికి స్లయిడ్లను అని TFS సమయంలో ఉపయోగించడానికి ప్రోత్సహించే మా విభాగంలో ప్రదర్శనలు. వ్యవహరించడానికి చిట్కాలు మరియు ట్రిక్స్ కూడా ఉంది విధులు, మరియు ఉంది తో సహాయం ఆచరణలో సమస్యలు మీరు విధులు పని. మేము కూడా చిన్న మీద మీరు లింకులు ఇవ్వాలని విధులు మరియు సార్లు విధులు ఉపన్యాసంలో ఇచ్చారు. దీన్ని study.cs50.net, కొత్త సంవత్సరం, ఒక అద్భుతమైన వనరు. తదుపరి, నేను మాన్యువల్ ఇది వ్యక్తి, కలిగి మీరు అమలు చేసే ఆదేశం కమాండ్ లైన్. కాబట్టి మీరు ఒక గురించి ఏవైనా ప్రశ్నలు ఉంటే కమాండ్, ఉదాహరణకు, రాండ్, ఇది మేము విభాగం సమయంలో గత వారం ఎదుర్కొంది మరియు మీరు అవకాశం లో ఎదుర్కొన్నాము ద్వారా వెళ్లి ఉన్నప్పుడు మీ సమస్య సెట్ కోడ్ ఉత్పత్తి, కానీ మీరు మనిషి టైప్ ర్యాండ్, మీరు పేజీ పొందుతారు ర్యాండ్ గురించి మీరు అన్ని చెబుతుంది. ఇది, అది పడుతుంది ఏమి మీరు ఇస్తుంది అది పడుతుంది పారామితులు, అలాగే తిరిగి రకం మరియు క్లుప్త వివరణ ఆ ఫంక్షన్ యొక్క. కాబట్టి రాండ్ తనిఖీ. ఇది, కొంచెం wordy మరియు గందరగోళంగా కాబట్టి కొన్నిసార్లు నేను తెలుసుకుంటారు కేవలం నేను తెలుసు ఏమి ఉంది ను సమాధానం కనుగొనేందుకు ఉత్తమ మార్గం. కాబట్టి Google తో సాధన. Google వద్ద మంచి పొందండి. ఇది మీ స్నేహితుడికి అవుతుంది. అలాగే Google, మీరు కనిపించకపోతే Google లో, cs50.net/discuss, అది చర్చా వేదిక. మీరు ఒక ప్రశ్న ఉంటే అవకాశాలు, ఒకటి మీ 700 + సహచరుల కూడా కలిగి ప్రశ్న మరియు అడిగారు ఉండవచ్చు ఇది ఇప్పటికే చర్చించడానికి లో ఫోరమ్లు మరియు ఇది సమాధానం. కాబట్టి మీరు ఒక సాధారణ ప్రశ్న లేదా కలిగి ఉంటే మీరు అనుకుంటున్నాను ప్రశ్నకి బహుశా ఇతర లోకి అమలు ఉండవచ్చు, cs50.net/discuss తనిఖీ. చివరగా, గత రెండు, మీరు అనుకుంటే నిజమైన మానవుడు, కార్యాలయం మాట్లాడటానికి శుక్రవారం ద్వారా గంటలు సోమవారం. ఆన్లైన్ కార్యాలయం గంటల కూడా ఉంది పొడిగింపు విద్యార్థులకు. , మరియు చివరి కాని ఖచ్చితంగా కనీసం కాదు నాకు, ఆశ్చర్యార్థకం పాయింట్. మీరు అన్ని నా సంప్రదింపు సమాచారం. మీరు ఏదైనా అవసరం ఉంటే, దయచేసి ఎప్పుడూ నన్ను సంప్రదించడానికి వెనుకాడరు. ఎల్లప్పుడూ అలా సంకోచించకండి. మీరు చాలా కొన్ని Gchat నన్ను జోడించారు, కాబట్టి, నిరాశ ఉంది కానీ ఆశాజనక మధ్య నమ్ముతున్నా ఈ మరియు తర్వాతి భాగం. ఇప్పటివరకు వనరులు ఏ ప్రశ్నలు? గ్రేట్. చివరగా, మరో ప్లగ్ కోసం చూడు, sayat.me/cs50. మీరు నాకు తెలియని చూడు ఇస్తుంది నేను ఏమి చేస్తున్నానో ఎలా. గతవారం నిజంగా ఉపయోగపడిందా. నేను మీరు అబ్బాయిలు నుండి వ్యాఖ్యలు ఒక జంట వచ్చింది కుడి విభాగం, ప్లస్ నుండి తర్వాత చూసిన ఇతర విద్యార్థులు వారంలో, మరియు అది పెసో. నేను ప్రయత్నించండి మరియు నా ఉపయోగం పరిమితం వెళ్ళిపోతున్నాను పదం ", తీపి" కానీ నేను చూపుతుంది నా ఉత్సాహంతో మరియు ఉత్సాహం ఇతర విధాలుగా. కానీ ఇతర అదనపు ఉన్నాయి యదార్థమైన పునఃపుష్టిని pluses మరియు డెల్టా రెండు. కాబట్టి, నేను మీరు అబ్బాయిలు దయచేసి అభిప్రాయం తెలియజేయండి మీ సమస్య న. నాకు చూడు ఇవ్వాలని సంకోచించకండి నా బోధించేందుకు. నేను మీరు అబ్బాయిలు కోసం ఇక్కడ ఉన్నాను. గ్రేట్. నేను కోసం అన్ని ఉంది మొదటి విభాగం. ఎవరైనా ఏ ఉంటాయా ప్రశ్నలు ఇప్పటివరకు? నేను కోసం ఒక శబ్దం ఉంటుంది నియంత్రణ కేంద్రం. పొడిగింపు విద్యార్థులు తానెలా మెయిల్స్ చేశారు వారు ఏ ఆడియో పొందడానికి లేదు చెప్పి, కానీ పరిష్కరించడానికి నా శక్తి ముగిసింది. కాబట్టి ఆశాజనక, గెట్స్ త్వరలోనే పరిష్కారం. మీరు ఆన్లైన్ చూస్తున్న ఉంటే, hi, కానీ మీరు నాకు వినడానికి కాదు. కాబట్టి మొదటి, మేము వెళ్తున్నారు GDB ద్వారా వెళ్ళడానికి. GDB, నేను ముందు తెలుస్తుంది వంటి, డీబగ్గింగ్ సాధనం printf కంటే మెరుగైన. అయితే, GDB, మీరు అబ్బాయిలు ప్రారంభించడానికి మీరు మీ ఉపకరణం ప్రారంభించిన కావలసిన మరియు నేను మీకు ఇమెయిల్ ఫైల్ పడుతుంది ముందు - ఈ ఫైలు కూడా ఉంటుంది ఒక బిట్ అందుబాటులో ఆన్లైన్ - మరియు GDB అమలు. / ఫైల్ యొక్క పేరు. మొదటి, కోర్సు యొక్క, మీరు కంపైల్ GDB మాత్రమే పనిచేస్తుంది ఎందుకంటే దాఖలు ఎగ్జిక్యూటబుల్ ఫైళ్లు. కానీ మీరు ప్రారంభం కావాలి GDB, మీరు మొదటి విషయం, మీరు GDB. / సీజర్ అమలు. కాబట్టి ఆ మేము ప్రోగ్రామ్ యొక్క పేరు ఉంది ప్రస్తుతం అది వెళ్ళి. నేను సీజర్, తయారు రాయాలో ఇది నాకు ఒక ఎక్జిక్యూటబుల్ ఫైల్ ఇస్తుంది ఇక్కడ గ్రీన్ హైలైట్. ఆపై నేను GDB. / సీజర్ అమలు వెళుతున్న. మరియు అక్కడ మీరు వెళ్ళండి. మీరు మేము కొన్ని టెక్స్ట్ నాకు చెప్పడం కలిగి చూడండి నాకు ఇచ్చి GDB యొక్క, గురించి అప్పుడు కొన్ని వారంటీ సమాచారం, మరియు మేము విధమైన పెడుతుంది GDP ప్రాంప్ట్, కలిగి మా కమాండ్ లైన్ ప్రాంప్ట్ వంటి, కానీ మీరు ఓపెన్ చూడండి బ్రాకెట్, GDB, దగ్గరగా బ్రాకెట్. మేము ఈ ఫైలు కొనసాగుతుంది మరియు డీబగ్ ముందు నేను మీరు అన్ని పంపిన, యొక్క చూద్దాం కొన్ని ఉపయోగకరమైన ఆదేశాలను కాబట్టి మేము జ్ఞానం కలిగి ఏమి మేము కవర్ వెళ్తున్నారు. ఈ ఆదేశాలను ఇక్కడ జాబితా నేను సాధారణంగా వాటిని ఉపయోగించే ఏ క్రమంలో. నేను అమలు చేసి నా కార్యక్రమం ప్రారంభం కార్యక్రమం GBD. / పేరు, ఈ సందర్భంలో, సీజర్. ఆపై మొదటి విషయం నేను 99.9% చేయండి సమయం రకం బ్రేక్ అర్థం ఉంది. ఆ ప్రధాన వద్ద ఒక బ్రేక్ పాయింట్ సెట్. ముఖ్యంగా, మీరు అక్కడ చేస్తున్న కార్యక్రమం ఆపలేదు అన్నారు ఉంది ప్రధాన కాబట్టి మీరు లైన్ పరిశీలించిన ప్రారంభించవచ్చు లైన్ ద్వారా, కాకుండా అన్ని అమలు కంటే మార్గం ద్వారా. మీరు విభిన్న విరిగిపోతాయి మీ కోడ్, కానీ ప్రధాన సాధారణంగా ఒక ప్రారంభించడానికి మంచి ప్రదేశం. నేను అమలు తదుపరి ఆదేశాన్ని ఉంది. ఆ కార్యక్రమం నడుస్తున్న మొదలవుతుంది, మరియు మీరు కమాండ్ లైన్ నమోదు చేయాలి ఉంటే వాదనలు, మీరు ఆ ఆదేశాన్ని. వాదనలు తో అమలు. మేము ఒక వెర్షన్ కంటే వెళ్తున్నారు కాబట్టి నుండి కార్యక్రమం మీరు అబ్బాయిలు ఇది C, యొక్క pset రెండు కోసం రాశారు - ఈ ఒక, కోర్సు యొక్క, కొంతమంది బగ్స్ ఉన్నాయి ఆశాజనక మేము పొందుతారు అని అది - మేము కొన్ని కమాండ్ తో రన్ రన్ వెళ్ళి పంక్తి వాదనలు ఎందుకంటే సీజర్, మీరు అబ్బాయిలు సమస్య శాతం తెలిసిన సెట్ స్పెక్, కొంత ఆదేశ పంక్తి వాదనలు. ఆదేశాల తదుపరి రెండు, తదుపరి ఒక నిజానికి తదుపరి అంటారు. ఒక లైన్ ద్వారా మీరు లైన్ పడుతుంది ఈ ద్వారా. కాబట్టి ను ఎంటర్ అప్పుడు n కొట్టిన వెళ్తుంది తర్వాత లైన్ కు, అమలు మునుపటి లైన్. దశ తీసుకుని వెళ్తుంది మాత్రమే తదుపరి లైన్, కానీ మీరు లోపల విధులు పడుతుంది. కాబట్టి మీరు ఒక ఫంక్షన్ లో వ్రాశారు ఉంటే మీ కోడ్ లేదా మీరు అన్వేషించేందుకు అనుకుంటే ఒక నేను, ఉదాహరణకు, మీరు లు హిట్, మరియు కాకుండా తదుపరి లైన్ కాకుండా మీరు కుడి ద్వారా వెళుతున్న ఫైలు ఇప్పుడు, మీరు నిజంగా అతిక్రమించి చేస్తాము ఈ ఫంక్షన్ మరియు దాని కోడ్ చూడండి. జాబితా స్నేహపూర్వక చాలా యూజర్ లో, చూపుతుంది ఫార్మాట్, 10 లేదా పంక్తులు మీరు ప్రస్తుతం మీ కోడ్ లో ఎక్కడ కాబట్టి మీరు నిజంగా ఫైలు చూడగలరు తిరిగి కాకుండా మార్పిడి అవసరం కంటే ముందుకు వివిధ అభిప్రాయాలు మధ్య. ప్రింట్, printf వంటి దాని పేరు సూచిస్తుంది. ఒక వేరియబుల్ సమానం మీరు చూపుతుంది. సమాచారం స్థానికులు నిజంగా ఉపయోగకరంగా ఉంటుంది. ఈ ముద్రణ ఒక ప్రత్యేక వెర్షన్. సమాచారం స్థానికులు మీరు స్థానిక అన్ని చూపిస్తుంది వేరియబుల్స్, మీరు వాటిని అన్ని ముద్రిస్తుంది ప్రస్తుతం అందుబాటులో. కాబట్టి బదులుగా అవసరం కంటే సాధారణంగా నేను, నేను నాలుగు వేరియబుల్స్ ప్రింట్ నేను ఒక లూప్, కోసం లో ఉన్నాను ఉంటే ఆసక్తితో ఉదాహరణకు, నేను సమాచారం స్థానికులు వ్రాయండి, మరియు అది నాకు ఏమి నా కౌంటర్ నేను చూపిస్తాను నేను ఆ శ్రేణి అలాగే, సమానం సమానం పని. చివరగా, కొనసాగుతుంది. బ్రేక్ టైప్ అశాస్త్రీయం బ్రేక్ సమయంలో. మీరు ద్వారా లైన్ ద్వారా నడిచే తదుపరి మరియు అడుగుకు లైన్. మీ తదుపరి పరుగులు కార్యక్రమం కొనసాగించు పాయింట్ బ్రేక్ లేదా పూర్తి ఉంటే వరకు ఎక్కువ బ్రేక్ పాయింట్లు ఉన్నాయి. ఆపివేయి బ్రేక్ పాయింట్లు తొలగిస్తుంది మీరు ఉంటే ప్రధాన వద్ద గండి నిర్ణయించుకుంది తగని, మీరు మరెక్కడి సెట్. చివరకు q, విడిచి, GDB బయటకు. కాబట్టి ఈ ప్రోగ్రామ్,. / సీజర్, మేము వెళ్తున్నారు ప్రస్తుతం ద్వారా చూసి మేము కనుగొనేందుకు GDB ఉపయోగించడానికి వెళ్తున్నారు ఈ కార్యక్రమంలో దోషాలు. నేను తో ఈ కార్యక్రమాన్ని 50 తనిఖీ, మరియు నేను ఒక కోపముఖముచూపు వచ్చింది. అంతా సంకలనం, ఉనికిలో, ఇది పరీక్షలు చాలా ఆమోదించింది, కానీ కోసం కొన్ని కారణాల, ఇది ఐదవ పాస్ లేదు లోకి BARFOO, అన్ని టోపీలు, చెయ్యడానికి పరీక్ష, E-D-U-I-R-R, అన్ని టోపీలు, ఒక కీ మూడు ఉపయోగించి. నేను అందంగా దగ్గరగా వచ్చింది. నేను ఒక లేఖ ద్వారా దిగి. ఇక్కడ కొన్ని చిన్న తప్పు ఉంది. నా కోడ్ ద్వారా చూసారు చేసిన. నేను గుర్తించడానికి కాదు. ఆశాజనక, మీరు అబ్బాయిలు నాకు సహాయం చేయవచ్చు ఈ బగ్ ఏమిటి గుర్తించడానికి. కాబట్టి ఆ మేము లోపం శోధించడం. యొక్క GDB తరలి లెట్. మళ్ళీ, నేను, GDB. / సీజర్ అమలు చేసిన కాబట్టి ఇప్పుడు మేము GDB ఉన్నారు. మరియు మొదటి ఏమిటి నేను చెయ్యాలి విషయం? నేను GDB ఎంటర్ చేసిన. ఎవరైనా నాకు మంచి ఇవ్వాలని ఎంటర్ ఆదేశం. STUDENT: ప్రధాన బ్రేక్. జాసన్ HIRSCHHORN: ప్రధాన బ్రేక్. ఫన్టాస్టిక్. యొక్క సైన్ టైప్ మీరు అబ్బాయిలు ఇక్కడ చూడటానికి లేదా అనుసరించండి మీ కంప్యూటర్లలో పాటు. బ్రేక్ ప్రధాన, మరియు మీరు ఒక చూస్తారు బ్రేక్ పాయింట్ సెట్ జరిగినది - ఇది నాకు కొన్ని విచిత్రమైన మెమరీ చిరునామా ఇస్తుంది, మరియు అది కూడా నాకు లైన్ బెట్టేసేసి. నేను ఈ ఫైలు తిరిగి చూడండి ఉంటే, నేను ఆ ప్రధాన తేడా లైన్ 21 న జరిగింది. తర్వాత నేను అమలు చేయాలి? నా ప్రోగ్రామ్ రన్? నం నేను తదుపరి ఏమి అమలు చేయాలి? STUDENT: రన్. జాసన్ HIRSCHHORN: రన్. నేను పరుగుల, లేదా ఉండాలి నేను కొన్ని ఇతర విషయాలు లో చేర్చండి? STUDENT: వాదన అమలు. జాసన్ HIRSCHHORN: 'రన్ కమాండ్ వాదనలు. నేను ఒక నిర్దిష్ట డీబగ్గింగ్ వెబ్ కేసు, నేను నమోదు చేయాలి కమాండ్ లైన్ వాదన. నేను, మళ్ళీ, ఇది మూడు అమలు చేస్తాను నేను చెక్ 50 నుండి వచ్చింది అవుట్పుట్. కార్యక్రమాన్ని ప్రారంభించి. మేము రేఖల జంట ద్వారా వెళ్లి. మీరు ఇప్పుడు మేము లైన్ 21 న అని చూస్తారు. నేను మేము లైన్ 21 లో ఉన్నారు తెలుసు? ఎందుకంటే మీరు ఎడమ చూస్తే నా టెర్మినల్ విండో, ఉన్నాయి ఇది లైన్ 21 చెప్పింది. మరియు, వాస్తవానికి, నాకు ఇస్తుంది లైన్ 21 వద్ద అని కోడ్. కాబట్టి నేను ముందు misspoke. ప్రధాన లైన్ 21 వద్ద నిజానికి కాదు. ప్రధాన 21 పైన రేఖల జంట ఉంది. కానీ లైన్ 21 వద్ద, ఆ మేము మార్కులు. కోడ్ యొక్క ఈ లైన్ ఉంది ఇంకా అమలు లేదు. ఆ ముఖ్యం. మీరు చూడండి లైన్ లేదు ఇంకా అమలు. ఆ కోడ్ తదుపరి లైన్ మీరు అమలు చేయబోతున్నారు. మీరు అబ్బాయిలు ఉంటాయి కాబట్టి అలా తదుపరి లైన్, తెలిసిన, ఈ ఉంది పరిస్థితి నేను ఉంటే చూడటానికి తనిఖీ ఒక కమాండ్ లైన్ వాదన ఎంటర్. మరియు నేను ఒక, రెండవ ఏమిటి ఆ చేయడం భాగంగా? ఒక నేను ఏమిటి? STUDENT: ఒక పూర్ణాంకం మీరు మార్చడం. జాసన్ HIRSCHHORN: క్షమించాలి? STUDENT: ఇది మారుతున్న యొక్క పూర్ణాంకం కు వాదన. జాసన్ HIRSCHHORN: కాబట్టి ఒక నేను మార్చారు నూతన పూర్ణాంకం ఒక స్ట్రింగ్ నుండి v1. అది ఏమి తనిఖీ? STUDENT: రెండవ ఉంటే కమాండ్ లైన్ వాదన, పక్కన ప్రోగ్రామ్ను అమలు నుండి. జాసన్ HIRSCHHORN: మరియు ఏమిటి ఈ రెండవ సగం బూలియన్ వ్యక్తీకరణ తనిఖీ? ఇక్కడ ఈ భాగం, ఒక నేను? STUDENT: ప్రతికూల ఉంది ఉంటే. జాసన్ HIRSCHHORN: ఖచ్చితంగా ఏమి మేకింగ్? STUDENT: అది మేకింగ్ నిజానికి, అనుకూల, ఉంది. జాసన్ HIRSCHHORN: ఖచ్చితంగా. ఇది ఉంటే చూడటానికి తనిఖీ ఇది ప్రతికూలంగా ఉంటుంది ప్రతికూల, మరియు ఉంటే, నేను ఒక ఫీలింగ్ తర్వాత లైన్ దినపత్రికలలో నాకు పదాన్ని యూజర్ వద్ద ఉంటుంది. కాబట్టి యొక్క ఈ లైన్ అమలు ముగింపు హిట్ తెలియజేయండి. మేము ఆ లైన్ చూడండి లేని మీరు అబ్బాయిలు బహుశా వద్ద పదాన్ని చూడండి అంచనా యూజర్ ఆపై తిరిగి, ఎందుకంటే ఈ లైన్ అమలు చేయలేదు. నేను 3 ప్రవేశించింది. నేను, నిజానికి, రెండు ఆదేశ చనిపోయారు పంక్తి వాదనలు, మరియు 3 సున్నా కంటే. కాబట్టి మేము ఆ లైన్ చూసిన, మేము అమలు, కానీ మేము అడుగు లేదు ఉంటే పరిస్థితి లోపల. కాబట్టి ఇప్పుడు, తదుపరి, నేను సెట్ చేస్తున్నాను చూడండి పూర్ణాంకానికి కీ ఒక నేను v1 ARG సమానం. కాబట్టి నాకు ఒక వేరియబుల్ కీ సృష్టిస్తుంది. నేను ప్రస్తుతం కీ ప్రింట్ ఉంటే, మీరు చూడటానికి అనుమతిస్తుంది విలువ వేరియబుల్ లోపల, కీ 47 సమానం. ఆ, కోర్సు అసహజ, కానీ నేను కాదు ఎందుకంటే ఆ ఇంకా ఆ లైన్ అమలు. నేను n కొట్టినప్పుడు కాబట్టి ఇప్పుడు,, ఆ లైన్ అమలు మరియు ముద్రణ కీ చేయండి, కీ, 3 సమానంగా ఉంటుంది మేము అది సమానంగా ఆశించే ఏమిటి ఇది. మరలా, GDB, లైన్ మీరు మీరు ఇంకా అమలు చేయలేదు చూడండి. మీరు n లేదా లు లేదా అనేక కొట్టాల్సి ఉంటుంది నిజానికి ఇతర ఆదేశాల లైనును అమలు. ప్రింట్ కీ. 3 కీ యొక్క. సో ఫార్, సో మంచి. స్ట్రింగ్ సాదా టెక్స్ట్. యొక్క లైనును అమలు లెట్. నేను వినియోగదారు నుండి ఒక స్ట్రింగ్ పొందుతున్నాను. యొక్క నా పరిశీలించడం 50 తెలుసుకొందాం, నేను BARFOO అన్ని టోపీలు ఎంటర్, కాబట్టి నేను ఎంటర్ ఏమిటి. నేను ఇప్పుడు సాదా టెక్స్ట్ ప్రింట్ ఉంటే. మీరు ఒక స్ట్రింగ్ సమానం చూస్తారు. ఇది నాకు కొన్ని ఇతర విచిత్రమైన హెక్సాడెసిమల్ ఇస్తుంది సంఖ్య, కానీ లో చేస్తుంది నిజానికి నా స్ట్రింగ్ BARFOO చెపుతారు. నేను కీ వద్ద సమం చూడటానికి కోరుకుంటే ఈ పాయింట్, నేను ఎలా కీ లక్ష్యసాధనలో? STUDENT: ముద్రించు కీ. జాసన్ HIRSCHHORN: ముద్రించు కీ, ఖచ్చితంగా. మరియు వాస్తవానికి, ఒక షార్ట్కట్ ఉంది. మీరు ప్రింట్ టైప్ అలసిపోతుంది వస్తే, మీరు p టైప్ చెయ్యవచ్చు. కాబట్టి p కీ అదే ఖచ్చితమైన విషయం చేస్తుంది. మరియు తిరిగి, నేను 3 సమానం చూడండి. నేను ఏమి కీ రెండు కనుగొనేందుకు కోరుకుంటే మరియు BARFOO అదే సమయంలో సమం కానీ నేను ప్రతి టైప్ నవ్వురాదు ఒకటి వ్యక్తిగతంగా, నేను సమాచారం స్థానికులు పంపుకోవచ్చు. ఆ నాకు కీ సమానం 3 ఇస్తుంది. సాదా వచనం BARFOO సమానం. ఇది కూడా నన్ను ఈ రెండు విచిత్రమైన విషయాలు ఇస్తుంది ఎగువన, ఈ వేరియబుల్ నేను మరియు ఈ వేరియబుల్ n. ఆ నిజానికి ఉన్న ఉంటాయి నా ప్రధాన కార్యక్రమంలో. మేము, ఇంకా ఎదుర్కొంది లేదు కానీ ఒక పరిదృశ్యంగా, ఆ నా లో లూప్ ఉన్నాయి. కాబట్టి ప్రస్తుతం, వారు కొన్ని విచిత్రమైన సమానంగా సంఖ్యలు భూములను, గనులను ఇంకా initialized, కానీ వారు ఇప్పటికీ ఉన్నాయి మెమరీలో, కాబట్టి వారు కేవలం పాలనావ్యవస్థ కొన్ని చెత్త విలువ. కానీ మేము సాదా లో కీ చూస్తారు అక్కడే టెక్స్ట్. నేను ఈ లైన్ అమలు వెళుతున్న, లైన్ 34, కోసం లూప్. మేము దూకి చూడాలని n కొట్టడమే లూప్. మరియు మేము లూప్ లోపల ఉన్నారు. మేము మా మొదటి తనిఖీలో ఉన్నారు. మరియు తిరిగి, ఈ విధమైన కనిపించాలి ఈ ఒక ఎందుకంటే మీకు తెలిసిన సీజర్ రాశారు కార్యక్రమం, కానీ మళ్ళీ, బగ్ విధమైన ఉంది. రెడీ ఎందుకంటే ఇప్పుడు నేను, సమాచారం స్థానికులు లేకపోతే ఆ లూప్ లోపల, మీరు చూస్తారు కాదనీ వంటి నేను, సున్నా సమానం. మేము సెట్ మరియు initialized ఏమిటి ఇది లూప్ లో. n 6 సమానం. మేము చేసిన కారణంగా కూడా అర్ధమే సాదా టెక్స్ట్ యొక్క strlen దానిని. నేను సమాచారం స్థానికులు లేదా ముద్రణ చేయాలని వేరియబుల్ తరచుగా నిర్ధారించుకోండి ప్రతిదీ ఉంటుంది ఏమి నేను సమానంగా ఆశించే. ఈ సందర్భంలో, ప్రతిదీ ఉంది నేను సమం ఆశించిన ఏమిటి. కాబట్టి యొక్క కదులుతున్న ప్రారంభిద్దాం ఈ లూప్. నేను రెడీ లైన్ లైన్ 36 ఉంది, ఉంటే సాదా టెక్స్ట్ నేను ఒక మరియు సాదా కంటే ఎక్కువ టెక్స్ట్ లేదా నేను కంటే తక్కువ z సమానం. నేను నా సమస్య నా మొదటి తో కాదు తెలుసు లేఖ, ఇది రెండవ లేఖ తో ఉంది. మేము తనిఖీ వద్ద తిరిగి చూస్తే 50, B E జరిమానా వెళుతుంది. నేను ఒక తీసుకుని ఇది బయలుదేరే వెబ్ ఒక A, డి కాబట్టి దానిని మార్చడం కాదు ఏదో తప్పు రెండవ లేఖ. నేను తరలించడానికి వెళుతున్న అక్కడ రెండవ లో. కానీ నేను ఏమి సాదా చెక్ అనుకుంటున్నారా పొతే టెక్స్ట్ నేను ఈ నిర్దిష్ట సమం కేసు, నేను ఏమి ఉండాలి అనుకుంటున్నాను? సాదా టెక్స్ట్ నేను ఈ లో సమానంగా ఏమిటి లూప్ ద్వారా మొదటి రౌండ్లో? STUDENT: జీరో? జాసన్ HIRSCHHORN: నేను యొక్క సాదా వచనం? కనుక ఇది, నేను, కోర్సు రాజధాని B. ఉండాలి సున్నా సమానం, కానీ సాదా టెక్స్ట్ బ్రాకెట్ సున్నా మూసి బ్రాకెట్ B సమానం ఎందుకంటే తీగలను, మేము గత వారం చూసిన, వ్యూహం ఉంటాయి, కాబట్టి మేము చేస్తున్నారు నుండి మొదటి పాత్ర. మరలా, నేను యొక్క సాదా టెక్స్ట్ ముద్రించిన ఉంటే నేను, నేను, నిజానికి, పాత్ర వస్తుందా B. ఆ హక్కు, చక్కగా ఉంది? నిజానికి సాదా టెక్స్ట్ I. లేదు నేను సెట్ గీటురాయిగా కాదు లేదా initialized, కానీ మీరు ముద్రించవచ్చు విషయాలను మొత్తం హోస్ట్ బయటకు మీరు చెయ్యాలనుకుంటే. కానీ యొక్క ద్వారా వెళ్దాం. సాదా టెక్స్ట్ నేను ఒక కంటే ఎక్కువ మరియు ఉంటే సాదా టెక్స్ట్ నేను కంటే తక్కువ లేదా సమానం మేము ఎందుకంటే Z, స్పష్టంగా నిజం నేను అమలు వెళుతున్న ఒక రాజధాని B. ఇది కొన్ని కమాండ్. మేము గత వారం ఆ మఠం చూసింది, కాబట్టి మేము చేస్తాము ఆ పని మంజూరు కోసం కుడి 50 తనిఖీ ప్రకారం. ఈ కర్లీ జంట కలుపులు, మొదటి ఒక నేను ఉంటే నిష్క్రమించే చూపింది పరిస్థితి, రెండవ చూపించింది నేను లూప్ బయటకు రావటానికి నేను ఆ. నేను తదుపరి కొట్టాడు కాబట్టి ఇప్పుడు, మేము చూస్తారు మేము మళ్ళీ లూప్ వెనుక ఉన్నాము. మేము ద్వారా వెళుతున్న మళ్ళీ లూప్. యొక్క నిజానికి రెండవ లోకి దశను లెట్ లూప్ మరియు రకం కోసం మళ్ళా సమాచారం స్థానికులు. కాబట్టి మేము రెండవ మళ్ళా లో ఉన్నారు మా కోసం లూప్. నేను, మేము ఆశించిన, 1 సమానం. N మేము ఆశించిన, 6 సమానం. కీ, మేము ఆశించిన, 3 సమానం. మరియు సాదా టెక్స్ట్, మీరు చూస్తారు, సమానం EARFOO ఇప్పుడు, ఇకపై BARFOO ఎందుకంటే మా మునుపటి మళ్ళా లో, B ఉంది ఒక రాజధాని E. మార్చారు కాబట్టి మేము చేయబోతున్నారు సమస్య ఎదుర్కొనే, ఈ కాబట్టి మేము వెళుతున్న ఉంది డీబగ్గింగ్ ప్రవేశిస్తాడు. కానీ ఎవరైనా ఏవైనా ప్రశ్నలు ఉందా మేము ఇప్పటివరకు చేసిన ఏమి గురించి? ఫన్టాస్టిక్. కాబట్టి మేము ఈ అమలు చేయబోతున్నారు పరిస్థితి, నేను మూసివేయబడింది సాదా టెక్స్ట్ బ్రాకెట్ బ్రాకెట్ ఒక కంటే ఎక్కువ మరియు సాదా టెక్స్ట్ నేను కంటే తక్కువ లేదా Z. సమానంగా కానీ ముందు ఈ ఎందుకంటే నేను, ఆ లోకి పేరు నేను మార్చాలి, నా లోపం తెలుసు I. యొక్క సాదా టెక్స్ట్ కాబట్టి యొక్క ప్రింట్ పెట్టడం. ఇది పాత్ర ఒక సమానంగా లేదు, కాబట్టి ఇప్పటివరకు, అన్ని బాగా మరియు మంచి అనిపిస్తోంది. నేను, నా తర్కం ప్రకారం ఈ లైన్ ఆశించే ఈ లైన్ నిజమైన ఉండాలి. ఇది ఒక పెద్ద అక్షరం ఉంది. నేను n హిట్ ఉంటే, మేము రియలైజ్ ఈ లైన్, నిజానికి, అమలు చేయలేదు. నేను వేరే ఉంటే దూకి ఆత్మహత్య. ఎందుకు సంభవించింది? STUDENT: మీరు ఎందుకంటే మీ పరిస్థితి సాదా టెక్స్ట్ ఎక్కువ ఒక సమాన లేదా కంటే ఎక్కువ. జాసన్ HIRSCHHORN: నేను నా సాదా టెక్స్ట్ కలిగి నేను ఒక, ఎక్కువ కాదు కంటే ఎక్కువ కంటే లేదా సమానం. నుంచే, రాజధాని కాదు పరిస్థితి ఈ ట్రిగ్గర్, మరియు మేము దీన్ని అతిక్రమించి, మరియు మేము కాదు అవసరం షిఫ్ట్ లేదు. కాబట్టి ఆ నిజానికి, ఇది. నా బగ్ కనుగొన్నారు. నా మూల ఫైల్ లో తిరిగి వెళ్ళటానికి, దానిని మార్చడం, అది అప్డేట్ మరియు మళ్ళీ 50 తనిఖీ అమలు. కానీ మేము కేవలం బోధన యొక్క కోసం, చూస్తారు కొరకు, నేను కొనసాగించడాన్ని. వేరే ఉంటే గాని అమలు, కానీ లేదు బదులుగా సమానం ఆఙ్ఞ కాబట్టి మారదు. కనుక ఇది అన్ని వద్ద మార్చబడింది, మరియు ఉంటే నేను ఇక్కడ సాదా టెక్స్ట్ ప్రింట్, మేము వెళ్లి చూస్తారు ఆ ద్వారా లూప్, నిజానికి, కాదు అన్ని వద్ద ఆ రెండవ పాత్ర మార్చండి. ఇది ఇప్పటికీ ఒక రాజధాని A. ఉంది మరలా, మేము మా లోపం డీబగ్. మేము ఉందని గ్రహించారు లేదు కొన్ని తర్కం. మరియు మేము ముందు సమయానికి ముందుగా డీబగ్ నిజానికి ఆ లైన్ అమలు, కానీ మీరు గమనించి ఉండవచ్చు కలిగి మేము తదుపరి హిట్ మరియు వేరే చేరుకునే, అని ఉంటే పరిస్థితి నిజం కాదు. మేము, నిజానికి, రాలేదు ఫలితంగా మేము అంచనా. కాబట్టి అప్పుడు మేము ప్రాంప్ట్ కావచ్చు, కలిగి మేము చూడండి, కాబట్టి సూక్ష్మబుద్ధిగల లేదు ఆ, పరిస్థితి మరియు నిజానికి, ఉంటే గమనించినట్లయితే మా పరిస్థితి మదింపు చేయాలి ప్రస్తుత సందర్భంలో నిజమైన. ఈ ప్రోగ్రామ్ డీబగ్గింగ్ కోసం అంతే. ఎవరైనా ఏవైనా ప్రశ్నలు ఉందా? నేను GDB నిష్క్రమించాలి ఏ కమాండ్ హిట్ కాలేదు? ప్ర ఆపై నేను ప్రాంప్ట్ వస్తుంది, ఏమైనప్పటికీ విడిచి? అవును లేదా సంఖ్య. నేను అవును హిట్ చేస్తాము, మరియు నేను GDB నిష్క్రమించాలి ఉంటుంది. కాబట్టి ఆ GDB ఒక శీఘ్ర ప్రైమర్ ఉంది. అసలైన, నిజమైన సందర్భంలో, నేను కార్యాలయం గంటల వద్ద చేసింది. నేను ఈ ఖచ్చితమైన కార్యక్రమం GDBed ఒక విద్యార్థి తో కార్యాలయం గంటల. మరియు మేము చూసిన ఆదేశాలను తిరిగి వెళ్ళడానికి ఉంటే ముందు, మేము మొదటి, విరామం ప్రధాన ఉపయోగించి విషయం మేము. మేము ఆదేశ పంక్తి వాదనలు తో రన్ ఉపయోగిస్తారు, రెండవ విషయం మేము. మేము తరలించడానికి తదుపరి చాలా ఉపయోగిస్తారు పంక్తులు ద్వారా మాకు. మరియు తిరిగి, చిన్న వెర్షన్ తదుపరి n. ఆ కుండలీకరణాల్లో ఉంది స్లయిడ్ బూడిద. మేము స్టెప్ లేదు, కానీ మేము కాదు తప్పనిసరిగా ఈ సందర్భంలో కోసం అవసరం. కానీ మేము ఒక బిట్ తర్వాత లో అది ఉపయోగించుకునే నేటి మేము డీబగ్ చేస్తున్నారు ఉంటే, కోసం ఉదాహరణకు, బైనరీ శోధన ఉన్నప్పుడు బైనరీ శోధన ఒక ప్రత్యేక లో అంటారు ఫంక్షన్ అయితే అక్కడ ఇది కొన్ని లోపం. మేము చేయడానికి చూడాలని బైనరీ శోధన కాల్ మరియు దీన్ని డీబగ్. మేము ఎందుకంటే గాని ఉపయోగించకపోయినా జాబితా మా కోడ్ మంచి భావం, కానీ నేను ఏమి కోడ్ నేను వేసేందుకై నచ్చిందా చుట్టూ, నేను జాబితా ఉపయోగించవచ్చు. మేము, మేము ఉపయోగించే సమాచారం స్థానికులు ఉపయోగిస్తారు ప్రింట్. మేము ఈ లో ఉపయోగించాలి లేదు కొనసాగించు కేసు రాష్ట్రంలో ప్రాజెక్టుల ఉపయోగించాలి చేయలేదు డిసేబుల్, కానీ మేము ఉపయోగం విడిచి. మళ్ళీ, ఈ 10 ఆదేశాలు, వాటిని సాధన. మీరు ఈ 10 ఆదేశాలను అర్థం, మీరు ఏ డీబగ్గింగ్ కోసం సెట్ చేయాలి GDB తో జారీ. కాబట్టి మేము, మళ్ళీ, సాగుతుంది చేయబోతున్నారు విభాగం యొక్క ఆయువుపట్టు నేడు, మీద వెళ్ళడం ఈ సార్టింగ్ మరియు శోధించడం అల్గోరిథంలు. మేము అలా ముందు, మళ్ళీ, ఏ ప్రశ్నలు, GDB కోసం వ్యాఖ్యలు, ఆందోళనలు? కాబట్టి అందరూ ఉపయోగించడానికి అన్నారు GDB కాకుండా printf? నిరంతరం కోసమని అందరూ,, అందరూ వారి తల వణుకు ఉంది ఇప్పుడు, నేను కార్యాలయం గంటల వద్ద మీరు చూస్తారు మరియు అన్ని TFS మీరు మరియు చూస్తారు వారు ఎలా ఉపయోగించడానికి నాకు చెప్పడానికి చేస్తాము GDB, మరియు మీరు చేయగలరు కుడి, వాటిని చూపించడానికి? కైండ్? బహుశా ఆశాజనక. కూల్. కాబట్టి మేము తరలి వెళుతున్న సార్టింగ్ మరియు శోధించడం. మీరు నేను ఇప్పటికే క్రమబద్ధీకరించబడతాయి జాబితా చూస్తారు మాకు, కానీ ఆ ఉండదని కోసం ఎల్లప్పుడూ కేసు ఉండాలి. కాబట్టి సమస్య లో కోసం సెట్ వివరణలో సమస్య మూడు సెట్, మీరు లఘు చిత్రాలు కలిగి మీరు నిజంగా చూడటానికి, మరియు ఆ ఆ లఘు చిత్రాలు చూడటానికి అడుగుతుంది. అలాగే ఉపన్యాసంలో గత వారం, మేము వెళ్లి ఈ క్రమసూత్ర చాలా, నేను ఉన్నాను అన్నారు తరగతి సమయం వెళుతున్న కాదు మళ్ళీ ఈ అల్గోరిథంలు లేదా డ్రాయింగ్ పైగా ఎలా ఈ కోసం చిత్రాలు అల్గోరిథంలు పని. మరలా, మీరు తిరిగి చూడవచ్చు సమాచారం ఉపన్యాసం, లేదా సమాచారం కధల చాలాభాగం సేకరించారు ఈ శోధనలు, అన్ని ఆఫ్ కోసం cs50.net లభించే. బదులుగా, మేము చూడాలని అలా ఈ కార్యక్రమాలు రాయడం ఉంది. మేము, ఎలా ఒక మానసిక మోడల్, జ్ఞానం కలిగి వారు పని, అందువలన మేము చూడాలని చేయడానికి రియల్ కోసం వాటిని కోడ్ ఉంది. మేము మానసిక మోడల్ చెయ్యి చూడాలని, ఆ చిత్రం, మీరు రెడీ ఉంటే, లోకి అసలు కోడ్. మరియు మీరు ఒక చిన్న గందరగోళం లేదా అయితే మానసిక నమూనా మబ్బుగా, నేను పూర్తిగా అర్థం. మేము నిజంగా వెళ్ళి లేదు కోడ్ పెవిలియన్ దూకుతారు. ఈ స్లయిడ్ లో ఈ ప్రాంప్ట్ అడుగుతుంది అందువలన మీరు బైనరీ శోధన కోడ్, మరియు నిజానికి, ఒక పద్దతి వెర్షన్ యొక్క బైనరీ శోధన, మొదటి మాట నిజంగా మీరు కోరుకుంటే కొన్ని pseudocode వ్రాయండి. కాబట్టి మీరు ఈ మానసిక మోడల్కు యొక్క బైనరీ శోధన రచనలు. మీరు కలిగి ఉంటే కాగితం ఒక షీట్ టేక్ ఒక తక్షణమే అందుబాటులో, లేదా ప్రారంభించిన ఒక టెక్స్ట్ ఎడిటర్, మరియు నేను ఇష్టపడే రాయడానికి అందరూ. రాయడానికి నాలుగు నిమిషాల టేక్ బైనరీ శోధన కోసం pseudocode. మళ్ళీ, ఆ మానసిక మోడల్ గురించి ఆలోచించటం. మీకు ప్రశ్నలు ఉంటే నేను చుట్టూ వచ్చి చేస్తాము మరియు మేము చిత్రాన్ని డ్రా చేయవచ్చు. కానీ మొదటి, మేము ప్రోగ్రామింగ్ ముందు, నేను రాయడానికి కావలసిన బైనరీ శోధన కోసం pseudocode కాబట్టి మేము లో డైవ్, మేము కొన్ని దిశలో మేము తల ఎక్కడ. STUDENT: మేము శ్రేణి ఊహించుకుని మేము పొందుటకు విలువలు ఇప్పటికే క్రమబద్ధీకరించబడింది? జాసన్ HIRSCHHORN: కాబట్టి బైనరీ శోధన కోసం పని - అద్భుతమైన ప్రశ్న - మీరు ఒక క్రమబద్ధీకరించబడతాయి లో తీసుకోవాలని విలువలు శ్రేణి. కనుక ఇది పని భావించేందుకు. మేము ఈ స్లయిడ్ వెళ్తాను. మీరు పర్పుల్ ఫంక్షన్ లో చూస్తారు ప్రకటన bool binary_search పూర్ణాంకానికి విలువ, Int విలువలు, Int n. మీరు ఉంటే ఈ తెలిసిన కనిపించాలి ఇప్పటికే వద్దకు లేదా సంపాదించిన మీ సమస్య సమితి మురికి చేతులు. కానీ మీ ఫంక్షన్ ప్రకటన. మళ్ళీ, గురించి ఆందోళన అవసరం లేదు ఈ సమయంలో ఎక్కువ. నేను నిజంగా మీరు చేయాలనుకుంటున్నారా ఎన్నుకోవాలి pseudocode బైనరీ నాలుగు నిమిషాల అన్వేషణ, మరియు అప్పుడు మేము వెళ్తారో ఒక సమూహంగా ఓవర్. నేను చుట్టూ వస్తారు. మీరు ప్రశ్నలు ఉంటే, అనుభూతి మీ చేతి పెంచడానికి ఉచిత. ఎందుకు మీరు రెండు నిమిషాలు తీసుకోకపోతే pseudocode ముగించడానికి? నేను ఈ ఎందుకా కనిపిస్తుంది ఉండవచ్చు తెలుసు మేము ఎక్కువ సమయాన్ని ఖర్చు చేస్తున్నారు లో కూడా నిజంగా కాదు విషయం సి, కానీ ముఖ్యంగా ఈ మరింత కోసం సవాలు అల్గోరిథంలు మరియు సమస్య మేము గుర్తించడానికి కలిగి సెట్లు, pseudocode చింతిస్తూ కాదు లో వాక్యనిర్మాణం గురించి, కేవలం గురించి చింతిస్తూ తర్కం, చాలా సహాయకారిగా ఉంటుంది. ఆ విధంగా, మీరు రెండు పరిష్కార లేదు ఒకేసారి చాలా క్లిష్టమైన సమస్యల. మీరు తర్కం మీద దృష్టి, మరియు చేస్తున్నారు అప్పుడు మీరు వాక్యనిర్మాణం తరలి. OK. యొక్క ద్వారా వెళ్లి ప్రారంభించండి లెట్ pseudocode. నేను బైనరీ, ఇక్కడ వ్రాశారు శోధన pseudocode. మేము ఈ వ్రాయండి చేస్తాము కలిసి బోర్డు. లేదా నేను వ్రాయుటకు చేస్తాము మరియు మీరు ఇస్తాము నాకు అవసరం అడుగును. కాబట్టి ఎవరైనా నాకు మొదటి ఇస్తుంది pseudocode లైన్ మీరు బైనరీ శోధన కోసం రాశారు? అవును, అన్నీ? STUDENT: ఉండగా పొడవు జాబితా సున్నా కంటే ఎక్కువ. జాసన్ HIRSCHHORN: ఉండగా పొడవు యొక్క సున్నా కంటే జాబితా. మరియు తిరిగి, మేము కొన్ని C కనిపించే చూడండి ఇక్కడ వాక్యనిర్మాణ విషయాలు. కానీ ఈ అత్యంత ఆంగ్లంలో ఉంది. ఎవరైనా వారు చాలు ఏ లైన్ ఉందా వారి నకిలీ కోడ్ లో ఈ ముందు? STUDENT: వ్యూహం పొందండి యొక్క సంఖ్యలు క్రమబద్ధీకరించబడతాయి. జాసన్ HIRSCHHORN: మీరు రాసిన "ఒక పొందండి క్రమబద్ధీకరించబడతాయి సంఖ్యల శ్రేణి. "పెర్ ఫంక్షన్ ప్రకటన, మేము ప్రయాణిస్తున్న వస్తారు క్రమబద్ధీకరించబడతాయి సంఖ్యల వ్యూహం. STUDENT: [వినబడని]. జాసన్ HIRSCHHORN: కాబట్టి మేము ఆ ఉంటుంది. అయితే, మేము, ఆ లేదు ఉంటే మేము మా అర్రే క్రమం అవసరం సంఖ్యలు, ఎందుకంటే బైనరీ శోధన మాత్రమే క్రమబద్ధీకరించబడతాయి శ్రేణులపై పనిచేస్తుంది. జాబితా పొడవు సున్నా సమానం కాబట్టి, నేను ఉన్నాను కొన్ని వంకర జంట కలుపులు ఉంచారు అన్నారు ఇది కొద్దిగా ఎక్కువ వంటి కనిపించేలా C. కానీ అయితే, ఒక పై మ్యాప్ ఉంది లూప్ అయితే, ఈ సమయంలో లోపల లూప్ మేము చేయాలి బైనరీ శోధన కోసం ఏమి? నాకు ఒక ఇవ్వలేదు ఎవరు ఎవరో సమాధానం కానీ ఈ రాశాడు? STUDENT: జాబితా మధ్యలో వెళ్ళండి. జాసన్ HIRSCHHORN: టామ్. జాబితా మధ్యలో వెళ్ళండి. మరియు తదుపరి ప్రశ్నకు, ఏమి మేము వద్ద అయ్యాక మేము చెయ్యాలి జాబితా మధ్యలో? అంతే అని ఒక చెక్ చేయండి మీరు చూస్తున్న సంఖ్య. జాసన్ HIRSCHHORN: అద్భుతమైన. జాబితా మధ్యలో వెళ్లి తనిఖీ మా విలువ ఉంటే - అద్భుతమైన. ఎవరైనా ఏదైనా ఉందా ఈ నచ్చింది? ఖచ్చితంగా కుడి ఉంది. మేము బైనరీ శోధన చేయండి మొదటి విషయం జాబితా మధ్యలో వెళ్లి ఉంది మా విలువ ఉంది ఉంటే చూడటానికి తనిఖీ. మా విలువ ఉంటే నేను ఊహించుకోవటం , మేము ఏమి ఉన్నాయి చెయ్యాలి? STUDENT: మేము [వినబడని] సున్నా తిరిగి. జాసన్ HIRSCHHORN: అవును, మా విలువ ఉంది, మేము అది. కాబట్టి మేము అయితే, కొన్ని విధంగా ఈ తెలియజేయవచ్చు ఫంక్షన్ నిర్వచిస్తారు, మేము వినియోగదారు చెప్పండి మేము అది. ఇది అక్కడ కాదు, అయితే, ఆ ఈ గమ్మత్తైన గెట్స్ పేరు. కాబట్టి అది కాదు, ఎవరైనా ఎవరితో బైనరీ శోధన లేదా పని ఇప్పుడు, మేము ఏమి ఒక ఆలోచన చేస్తారు ఉంది? STUDENT: ప్రశ్న. జాసన్ HIRSCHHORN: అవును? STUDENT: శ్రేణి ఇప్పటికే క్రమబద్ధీకరించబడింది? జాసన్ HIRSCHHORN: అవును, మేము అస్సలు నచ్చలేదు శ్రేణి ఇప్పటికే క్రమబద్ధీకరించబడింది. STUDENT: కాబట్టి మీరు తనిఖీ ఉంటే మీరు చూసే విలువ కంటే ఎక్కువ మీకు కావలసిన విలువ, మీరు తరలించవచ్చు ఇతర సగం మధ్య. జాసన్ HIRSCHHORN: అయితే మధ్యలో జాబితా మేము ఏమి కంటే ఎక్కువ ఏమి, కోసం అప్పుడు మేము చూస్తున్నాయి? మేము తరలించవచ్చు? STUDENT: మీరు తరలించాలనుకుంటున్న జాబితాలో సగం కంటే తక్కువ సంఖ్యలో. జాసన్ HIRSCHHORN: కాబట్టి మేము చేస్తాము ఎడమ ఆ కాల్. మధ్య ఎక్కువ ఉంటే కాబట్టి, మేము శోధించవచ్చు జాబితా ఎడమ అర్ధ. ఆపై శోధన ద్వారా, ఏమి నేను శోధన ద్వారా ఏమిటి? STUDENT: [వినబడని]. జాసన్ HIRSCHHORN: మేము మధ్య వెళ్ళండి. మేము నిజంగా ఈ విషయం పునరావృతం. మేము మా అయితే లూప్ వెళ్లి. నేను మీరు చివరి ఇస్తాము - అయితే వేరే, మధ్య కంటే తక్కువ మేము, మేము ఇక్కడ ఏమి చేయాలి? STUDENT: కుడి వెళ్ళండి. జాసన్ HIRSCHHORN: శోధించండి. ఈ బాగుంది, కానీ ఎవరైనా కలిగి మేము లేదు లేదా ఉండవచ్చు ఏదైనా మీరు పెట్టే ఏదైనా మీ నకిలీ కోడ్ లో? ఈ మేము ఇప్పటివరకు ఏం ఉంది. జాబితా పొడవు ఎక్కువ ఉంది సున్నా కంటే, మేము వెళుతున్నాం జాబితా మధ్యలో మరియు మా విలువ ఉంటే తనిఖీ. మధ్య ఎక్కువ ఉంటే, మేము వెళుతున్న మధ్య ఉంటే అన్వేషణ వేరే, వదిలి తక్కువ, మేము అన్వేషణ చూడాలని. కాబట్టి మేము అన్ని కొన్ని పరిచయాన్ని కలిగి చేసిన మేము కంప్యూటర్ సైన్స్ లో ఉపయోగించే పదాలు మరియు టూల్స్ మనం. కానీ మీరు ఇప్పటికే మేము గమనించవచ్చు ఇంగ్లీష్ లో మాట్లాడే, కానీ జపానీస్ ఒక కు లో మ్యాప్ అనిపించింది విషయాలను చాలా మేము మా కోడింగ్ ఉపకరణాలలో లో టూల్స్. కాబట్టి కుడి బ్యాట్ ఆఫ్, మేము లేదు నిజానికి ఇంకా కోడ్ అన్నారు. మేము ఇంగ్లీష్ లో ఇక్కడ ఏమి చూస్తారు మ్యాప్లను విషయాల మేము సి లో వ్రాయవచ్చు? STUDENT: ఉండగా. జాసన్ HIRSCHHORN: ఉండగా. కాబట్టి ఈ సమయంలో ఇక్కడే దానిపై లు? STUDENT: ఒక సమయంలో లూప్. జాసన్ HIRSCHHORN: ఒక సమయంలో లూప్? లేదా బహుశా, సాధారణంగా, ఒక లూప్. కేవలం వికెట్ చేయాలని. కాబట్టి మేము ఒక లూప్ కోడ్ చూడాలని. మేము చేసిన ఎందుకంటే మరియు మేము ఇప్పటికే తెలుసు ఈ ఒక సార్లు జంట మరియు మేము , అక్కడ ఉదాహరణలు పుష్కలంగా ఉన్నాయి ఎలా నిజంగా వ్రాయడానికి ఒక లూప్ ఈ ఇండెక్స్. కాబట్టి ఆ అందంగా సులభంగా ఉండాలి. మేము ఆ పొందడానికి ఉండాలి అందంగా త్వరగా మొదలు. ఏమి మేము ఇక్కడ చూస్తారు? ఇతర నిర్మాణాలు వాక్య, విషయాలు మేము సి లో తెలిసిన, మేము ఇప్పటికే బేస్డ్ స్ఫూర్తిని కలిగి మేము ఉపయోగించే పదాల ఆఫ్? అవును, అన్నా? [వినబడని] ఎందుకూ. అన్నా, ముందుకు. STUDENT: ఉంటే మిగిలిన. జాసన్ HIRSCHHORN: ఉంటే మరియు వేరే - ఇక్కడే. కాబట్టి ఆ మీ అభిప్రాయమేమిటి? STUDENT: ఒక ఇంకా ప్రకటన ఉంటే. జాసన్ HIRSCHHORN: అవును, పరిస్థితులు, కుడి? కాబట్టి మేము బహుశా చేయాలి కొన్ని పరిస్థితులు వ్రాయండి. మరియు తిరిగి, అయితే ఉండవచ్చు వద్ద కంగారు మొదటి, మేము సాధారణంగా ఇప్పుడు జ్ఞానం కలిగి పరిస్థితులు మరియు వ్రాయడం ఎలా పరిస్థితులు కోసం వాక్యనిర్మాణం. మేము లేకపోతే, మేము కేవలం వెతకండి పరిస్థితులు, కట్ మరియు పేస్ట్ కోసం వాక్యనిర్మాణం ఆ, మేము తెలుసు ఎందుకంటే ఇక్కడ ఒక పరిస్థితి అవసరం. మేము పై ఆ పటం చూడండి ఏ ఇతర విషయాలు మేము సి లో చెయ్యాల్సిన ఉండవచ్చు విషయాలు? అవును, Aleha? STUDENT: ఈ, స్పష్టమైన కావచ్చు కేవలం తనిఖీ ద్వారా ఒక విలువ ఏదో సమానం. జాసన్ HIRSCHHORN: కాబట్టి మేము ఎలా తనిఖీ చెయ్యాలి మరియు - జాబితా మధ్యలో వెళ్ళండి మా విలువ లేదు ఉంటే మరియు తనిఖీ? మేము ఆ C లో ఎలా చేయాలి? ఆ కోసం వాక్యనిర్మాణం ఏమిటి? STUDENT: సమానం, సమానం. జాసన్ HIRSCHHORN: సమానం, సమానం. కాబట్టి ఈ చెక్ బహుశా అన్నారు ఒక సమానం అని, సమానం. కనుక మేము ఎక్కడో అవసరం తెలుసు ఉంటాం. మరియు వాస్తవానికి, ఇది రాయడం లో, మేము ఆ ఇతర విషయాలు చూడండి. మేము కొన్ని చేయడానికి చూడాలని పోలిక ఆపరేటర్లు అక్కడ - అద్భుతమైన. కాబట్టి ఇది నిజానికి వంటి, మరియు కనిపిస్తోంది పెద్ద, మేము వ్రాయలేదు ఒక ఇంకా సి కోడ్ మాట. కానీ మేము డౌన్ మానసిక మోడల్ వచ్చింది ఉపన్యాసాలు మరియు ఆ లఘు చిత్రాలు ద్వారా. మేము ఒక సమూహం వంటి నకిలీ కోడ్ రాశారు. మరియు ఇప్పటికే, మేము 80% ఉంటే లేదు మేము ఏమి చేయాలి 90%. ఇప్పుడు, మేము కోడ్ అవసరం ఇది, మళ్ళీ, ఒక ఇది పరిష్కరించడానికి కాని అల్పమైన సమస్య. కానీ కనీసం మనం తర్కం మీద కష్టం చేస్తున్నారు. , మేము కార్యాలయం గంటల వెళ్లి ఇప్పుడు కనీసం నేను అవసరం ఏమి చెప్పగలను చేయడానికి, కానీ గుర్తు చేసుకోవచ్చు సింటెక్స్ నాకు? లేదా కార్యాలయం గంటల మీరు రద్దీగా ఉంటాయి కూడా కాకుండా, సింటాక్స్ కోసం Google చేయవచ్చు తర్కం మీద కష్టం తప్ప. మరియు తిరిగి, కాకుండా పరిష్కరించడానికి ప్రయత్నిస్తున్న తర్కం మరియు సింటెక్స్ సమస్యలు అన్ని ఒకేసారి, ఇది తరచుగా చాలా ఉత్తమం లోకి ఆ రెండు హార్డ్ సమస్యలు రద్దు రెండు నిర్వహించటానికి వాటిని మరియు సి లో నకిలీ కోడ్ మొదటి ఆపై కోడ్ కాబట్టి యొక్క కోసం నేను ఏమి చూద్దాం నకిలీ కోడ్ ముందుకు సమయం. జాబితా పొడవు ఎక్కువ ఉంది సున్నా కంటే, మధ్య చూడండి జాబితా. సంఖ్య వేరే, నిజమైన తిరిగి కనబడితే సంఖ్య అధికంగా, శోధన ఎడమ ఉంటే. ఎల్స్ ఉంటే సంఖ్య తక్కువ, శోధన కుడి, తప్పుడు తిరిగి. కాబట్టి దాదాపు ఒకే కనిపిస్తుంటే కాదు మేము రాశారు ఏమి దాదాపు సమానంగా. అసలైన, టామ్, మీరు మొదటి మాట్లాడుతూ, జాబితా మరియు ఉంటే మధ్య బద్దలు రెండు ప్రకటనలు దొరకలేదు సంఖ్య నేను ఏమి నిజానికి ఉంది. నేను అక్కడ వాటిని కలిపి. నేను విని వుండాలి మీరు మొదటి సారి. కాబట్టి మేము కలిగి నకిలీ కోడ్ ఉంది. మీరు ఇప్పుడు కోరుకుంటే, క్షమించండి, వెళ్ళి మా ప్రారంభ సమస్య తిరిగి. యొక్క కోడ్ binary.c లెట్. కాబట్టి, ఒక పద్దతి వెర్షన్ యొక్క అమలు క్రింది ఉపయోగించి బైనరీ శోధన ఫంక్షన్ ప్రకటన. మరియు మీరు కాపీ అవసరం లేదు ఇది డౌన్ ఇంకా. నిజానికి తెరిచి వెళుతున్న అప్ ఇక్కడే binary.c. కాబట్టి ఫంక్షన్ ప్రకటన ఉంది స్క్రీన్ మధ్యలో. మరియు మీరు నేను నకిలీ కోడ్ పట్టింది చూస్తారు నా వైపులా నుండి, కానీ దాదాపు ఒకే ఏమి మేము రాశారు, మరియు మీరు ఆ లో ఉంచాలి. కాబట్టి ఇప్పుడు, యొక్క ఐదు నిమిషాలు తీసుకుందాం ఈ ఫంక్షన్ కోడ్ని. మరియు తిరిగి, మీరు ఏవైనా ప్రశ్నలు ఉంటే, మీ చేతి పెంచడానికి, నేను చేస్తాము, నాకు తెలియజేయండి చేరుట. STUDENT: [వినబడని]. జాసన్ HIRSCHHORN: నేను బైనరీ పట్టింది శోధన నిర్వచనం లైన్ 12 న, టాప్. ఆ నా స్లయిడ్ కోసం వచ్చింది ఉంది. ఆపై అన్ని ఈ నకిలీ కోడ్ నేను కాపీ మరియు స్లయిడ్ నుండి అతికించారు, నకిలీ కోడ్ స్లయిడ్. నేను ఇప్పటికీ [వినబడని] విన్న కాదు. మీరు పూర్తి అలా అయితే మీ అమలు, నేను చెక్ అనుకుంటున్నారా. నేను మీరు helpers.h ఫైలు ఇమెయిల్ ఈ తరగతి లో. మరియు దీనిని ఆన్లైన్ అందుబాటులో ఉంటుంది చూస్తున్న ప్రజలు డౌన్లోడ్ కోసం ఈ విభాగం సమయం ఆలస్యం. నేను కేవలం సాధారణ పంపిణీ ఉపయోగించబడుతుంది pset3 నుండి కోడ్. నేను find.C, నా helpers.h ఫైలు ఉపయోగించడానికి పట్టింది కాకుండా helpers.h ఫైలు కంటే పంపిణీ కోడ్ లో అందించిందని. నేను మరో మార్పు వచ్చింది కేవలం కేవలం పిలుపు find.C శోధన, binary_search కాల్. కాబట్టి మీరు మీ కోడ్ పరీక్షించడానికి కావాలా, దీన్ని ఎలా తెలుసు. నిజానికి, మేము ఈ కోడ్ అమలు చేసినప్పుడు ప్రస్తుతం, నేను కాపీని చేసింది నా pset3 డైరెక్టరీ, మళ్ళీ, మార్చుకున్నారు అప్పుడు సహాయకులు ఫైళ్లు మరియు చేసిన binary_search కాల్ find.C మార్పు కాకుండా కేవలం శోధన. జాసన్ HIRSCHHORN: అవును. మీరు ప్రశ్న? STUDENT: ఫరవాలేదు. జాసన్ HIRSCHHORN: కంగారుపడవద్దు. బాగా, యొక్క ప్రారంభించడానికి వీలు. ఒక సమూహం ఈ కోడ్ చేశారు. ఒక ఇతర గమనిక. మళ్ళీ, ఈ, సులభంగా మార్చుకోబడతాయి ఉంది సమస్య మూడు లో. నా helpers.h ఫైలు కలిగి, కాకుండా helpers.h కంటే ఇచ్చిన, బైనరీ శోధన, బబుల్ ప్రకటించాడు విధమైన, మరియు ఎంపిక విధమైన. మరియు find.c లో మీరు లైన్లో గమనించవచ్చు, ఏ లైన్ 68, మేము బైనరీ కాల్, ఉంది అన్వేషణ కాకుండా శోధన. మరలా, అందుబాటులో అని కోడ్ ఆన్లైన్ లేదా మీరు ఆ కోడ్ ప్రస్తుతం సృష్టించడం సులభంగా మార్చుకోబడతాయి కోసం లో p చెక్ 3 సెట్. కానీ మొదటి, యొక్క బైనరీ శోధన కోడ్ తెలియజేయండి. మా ఫంక్షన్ ప్రకటన, మేము ఒక bool తిరిగి. మేము విలువ అనే ఒక పూర్ణాంకం పడుతుంది. మేము అని పూర్ణాంకాల వ్యూహం పడుతుంది విలువలు, మరియు మేము n తీసుకోవాలని శ్రేణి యొక్క పరిమాణం. ఇక్కడే లైన్ 10, న, నేను కలిగి పదునైన stdbool.h ఉన్నాయి. ఆ ఉంది ఎందుకు ఎవరైనా తెలుసా? కాబట్టి కోడ్ లైనును ఏమి చేస్తుంది? STUDENT: మీరు అనుమతిస్తుంది ఒక bool తిరిగి రకం ఉపయోగించడానికి. జాసన్ HIRSCHHORN: ఖచ్చితంగా. STUDENT: కూడా అనుమతిస్తుంది ఒక లైబ్రరీ ఒక bool తిరిగి రకం ఉపయోగించడానికి. జాసన్ HIRSCHHORN: కాబట్టి పదునైన ఉన్నాయి stdbool.h లైన్ నాకు కొన్ని ఇస్తుంది విషయాలు కోసం నిర్వచనాలు మరియు ప్రకటనలు నేను ఉపయోగించడానికి అనుమతి ఆ ఈ లైబ్రరీ. కాబట్టి వారిలో ఉందని చెప్పడం ఈ రకం bool అని మరియు అది ఉంటుంది నిజమైన లేదా తప్పుడు. తెల్లవార్లూ లైన్ చేస్తుంది ఏమిటి. నేను లైన్ లేదు ఉంటే, నేను చేస్తాను ఈ రచన కోసం ఇబ్బందుల్లో పొందుటకు ఇక్కడే, bool, అక్కడే పదం. సరిగ్గా కుడి. నేను ఈ కోడ్ లో ఆ అవసరం. OK. కాబట్టి ఈ, మళ్ళీ, ఒక పద్దతి ఉంది వెర్షన్, ఒక పునరావృత ఒక. కాబట్టి మాకు ప్రారంభించడానికి వీలు. యొక్క ఈ మొదటి ప్రారంభం లెట్ నకిలీ కోడ్ యొక్క లైన్. మరియు ఆశాజనక, మేము - లేదా ఆశాజనక. మేము గది చుట్టూ చూడాలని. మేము లైన్ ద్వారా లైన్ వెళ్తారో, మరియు నేను సహాయం చేస్తుంది మీరు మేము అవసరమైన లైన్ గుర్తించడానికి మొదటి రాయడానికి. కాబట్టి అయితే జాబితా పొడవు సున్నా కంటే ఎక్కువ. యొక్క ముందు ప్రారంభిద్దాం. లైన్ నేను వ్రాయాలి ఇక్కడ, కోడ్ లో? STUDENT: ఉండగా కుండలీకరణములలో n 0 కన్నా ఎక్కువ. జాసన్ HIRSCHHORN: ఉండగా n 0 కంటే గొప్ప. కాబట్టి n, జాబితా పరిమాణం మరియు మేము ఉంటే తనిఖీ చేస్తున్నాము - [INTERPOSING వాయిసెస్] జాసన్ HIRSCHHORN: - క్షమించాలి? STUDENT: ఎలా మేము తెలుసు n జాబితా యొక్క పరిమాణం? జాసన్ HIRSCHHORN: క్షమించండి. Pset వివరణ ప్రకారం, శోధన మరియు విధమైన, మీరు రాయడం అవసరం పని n జాబితా యొక్క పరిమాణం. నేను ఇక్కడ వివరించాను మర్చిపోయాను. అయితే. n యొక్క పరిమాణం ఈ సందర్భంలో జాబితా,. కాబట్టి అయితే n 0 కన్నా ఎక్కువ. OK. ఒక బిట్ సమస్యాత్మక చూపవచ్చు అయితే, విషయాలు పయనించే ఉంటే. మేము తెలిసిన కొనసాగుతుంది ఈ అంతటా జాబితా పరిమాణం ఫంక్షన్, కానీ మేము ఆఫ్ ప్రారంభించడానికి సే 5 పూర్ణాంకాల వ్యూహం తో. మరియు మేము ద్వారా వెళ్ళి ఉన్నాను ఇప్పుడు కు కుదించారు 2 పూర్ణాంకాల వ్యూహం. ఆ ఏ 2 పూర్ణ ఉంది? పరిమాణం మేము కావలసిన ఇప్పుడు 2 చూడండి, కానీ ఇది 2 ఉంది? ఆ ప్రశ్న తెలుస్తుంది లేదు? OK. నేను మళ్ళీ అడుగుతాము. కాబట్టి మేము 5 ఈ శ్రేణి తో మొదలు పూర్ణ, మరియు n కుడి, 5 సమానం? మేము ఇక్కడ ద్వారా అమలు చేస్తాము. మేము బహుశా పరిమాణం నమ్ముతున్నా, కుడి, విషయాలు పయనించే. ఏ మేము చేయాలనుకుంటున్నారా ఏమి ఉంది. మేము శోధించడానికి మీరు లేదు పూర్తి విషయం మళ్ళీ. కాబట్టి మేము 2 దానిని మార్చడం. మేము బేసి అని సగం జాబితా పడుతుంది. కాబట్టి కేవలం 2 ఎంచుకోండి. కాబట్టి ఇప్పుడు n 2 సమానం. నేను పేద చింతిస్తున్నాము పొడి చెరిపివేయి గుర్తులను. కుడి? మరియు మేము జాబితా ద్వారా శోధించడం చేస్తున్నారు మళ్ళీ పరిమాణం 2 జాబితాను. బాగా మా శ్రేణి ఇప్పటికీ పరిమాణం 5 యొక్క ఉంది. మేము మాత్రమే అనుకుందాం అది 2 మచ్చలు శోధన. కాబట్టి ఆ 2 మచ్చలు ఉన్నాయి? అర్ధవంతం లేదు? వారు వదిలి 2 మచ్చలు ఉన్నాయి? వారికి సరైన 2 మచ్చలు ఉన్నాయి? వారు మధ్య 2 మచ్చలు ఉన్నాయి? మేము సమస్య విచ్ఛిన్నం, కానీ మేము నిజానికి ఎరుగని భాగం మేము ఇంకా శోధిస్తున్న సమస్య, ఈ 2 వేరియబుల్స్ ద్వారా. కాబట్టి మేము, మరింత అప్పుడు కొద్దిగా అవసరం n 0 కన్నా ఎక్కువ అయితే. మేము తెలుసుకోవాలి ఆ n మా అసలు శ్రేణి లో ఉంది. కాబట్టి ఎవరైనా ఒక కలిగి ఈ లైన్ కు మార్పు? ఈ లైన్ చాలా ఉంది ఖచ్చితంగా సరైన. మరొక అదనంగా ఉంది? మేము n కోసం ఏదో స్వాప్ చేయవచ్చు ఒక బిట్ మంచి ఈ లైన్? Mm తేలిగ్గానే? STUDENT: మీరు ఒక వేరియబుల్ ప్రారంభించడం చెయ్యవచ్చు అప్పుడు ఉపయోగించే వస్తుంది n పొడవు వంటి తరువాత ఆ ఫంక్షన్ లో? జాసన్ HIRSCHHORN: కాబట్టి ప్రారంభించడం n ఒక వేరియబుల్ పొడవు, మరియు మేము ఆ తరువాత ఉపయోగించడానికి? కానీ మేము కేవలం పొడవు మరియు మేము అప్డేట్ ఇప్పటికీ ఈ సమస్య పరిగెత్తే మేము మా సమస్య యొక్క పొడవు డౌన్ కట్, కానీ మేము, నిజానికి, అక్కడ ఎప్పుడూ ఆ పొడవు లో పటములు. STUDENT: జరిగే లేదు మీరు చెబుతున్న తరువాత ఉన్నప్పుడు, ఎడమ, అన్వేషణ శోధించండి? మీరు వేరే వెళ్ళండి చూడాలని మీ ప్రాంతంలో - జాసన్ HIRSCHHORN: మేము వెళుతున్నాం ఒక ప్రాంతానికి, కానీ ఎలా మేము తెలుసు వెళ్ళండి ఇది ఉన్నాయి? మేము శ్రేణి మరియు ఈ ఉంటే n, మేము ఎలా తెలుసు పేరు శ్రేణి లో వెళ్ళండి. తిరిగి లో, అవును? STUDENT: మీరు ఉందా, వంటి, ఒక తక్కువ కట్టుబడి మరియు ఒక ఉన్నత వేరియబుల్ లేదా అలాంటిదే? జాసన్ HIRSCHHORN: OK. కాబట్టి ఈ మరొక ఆలోచన. కేవలం పర్యవేక్షించడం కంటే పరిమాణం, మేము తక్కువ ట్రాక్ మరియు ఉన్నత వేరియబుల్. కాబట్టి మేము ఎలా నుండి పరిమాణం లెక్కిస్తాము తక్కువ కట్టుబడి మరియు పరిమితిని ఎగువ? [INTERPOSING వాయిసెస్] జాసన్ HIRSCHHORN: తీసివేత. మరియు కూడా తక్కువ పర్యవేక్షించడం బంధించి ఎగువ మాకు తెలియజేయండి కట్టుబడి, మేము ఈ రెండు శోధిస్తున్నారు? మేము ఇక్కడ పైగా ఈ రెండు శోధిస్తున్నారు? మేము మధ్య రెండు శోధిస్తున్నారు? బహుశా మధ్య రెండు, ఎందుకంటే ఈ నిజానికి, బైనరీ శోధన. అయితే ఇప్పుడు మేము పరిమాణం పొందండి చేయగలరు, కానీ శ్రేణి యొక్క పరిమితులు. సారాంశం, మేము మా దిగ్గజం ఉంటే ఫోన్ బుక్, మేము సగం లో అది చీల్చివేయు. చిన్న పేరు మేము ఇప్పుడు ఫోన్ బుక్ ఉంది. కానీ మేము నిజంగా భరించలేని లేదు సగం లో ఫోన్ బుక్. మేము ఇంకా తెలుసుకోవాలి పేరు మా సమస్య యొక్క కొత్త హద్దులు ఉంది. ఎవరైనా ఏవైనా ప్రశ్నలు ఉందా గురించి? అవును? STUDENT: ఇది ఒక సృష్టించడం ద్వారా పని అనుకుంటున్నారా వేరియబుల్, నేను, మీరు కేవలం బదిలీ దాని నేను బంధువు స్థానం ప్రస్తుత స్థితి, మరియు పొడవు, n? జాసన్ HIRSCHHORN: మరియు నేను ఏమిటి? STUDENT: నేను విధమైన వంటి లాంటిది - మీరు నేను ఉండాలి ప్రారంభించడం చేస్తుంది శ్రేణి మధ్యలో స్థానం. ఆపై, ఉంటే స్థానంలో విలువ నేను లో పాకిస్థాన్ శ్రేణి మధ్యలో మీరు అవసరం విలువ కంటే తక్కువ, నేను ఇప్పుడు శ్రేణి పొడవు అవుతుంది, ప్లస్ నేను యొక్క విలువ 2 ద్వారా విభజించబడింది. వంటి, చూడండి, మీరు నేను షిఫ్ట్ - జాసన్ HIRSCHHORN: కుడి. STUDENT: - వరకు - జాసన్ HIRSCHHORN: అసలు సినిమా am పని చేసే సానుకూల. కానీ ఉండటం, మీరు రెండు అవసరం ఇక్కడ సమాచారం ముక్కలు. మీరు మొదలు, చివర దీన్ని చెయ్యవచ్చు లేదా మీరు పరిమాణం దీన్ని, మరియు కొన్ని మార్కర్. కానీ మీరు రెండు ముక్కలు చేయాలి ఇక్కడ సమాచారాన్ని. మీరు కేవలం ఒక ద్వారా పొందలేము. అర్ధమే లేదు? కాబట్టి మేము ద్వారా వెళ్ళడానికి, మరియు చేస్తున్నారు మేము చేయబోతున్నామని [వినబడని] మరియు కొన్ని గుర్తులను సృష్టించడానికి. కాబట్టి మీరు మీ కోడ్ లో what'd వ్రాయండి? STUDENT: నేను Int చెప్పారు కట్టుబడి ఒక 0 సమానం. జాసన్ HIRSCHHORN: యొక్క కాల్ లెట్ ఆ, Int, ప్రారంభించి. STUDENT: OK. జాసన్ HIRSCHHORN: ఆ చేస్తుంది నాకు మరింత అర్థవంతంగా. మరియు? STUDENT: చివరలో ఆ Int, నేను ఊహిస్తున్నాను, అన్నారు. జాసన్ HIRSCHHORN: ముగిసే Int. STUDENT: నేను, అంచనా, n మైనస్ 1 లేదా అలాంటిదే. వంటి, గత మూలకం. జాసన్ HIRSCHHORN: కాబట్టి మీరు రాసిన, Int సమానం 0, సెమికోలన్, మరియు Int ప్రారంభించి ముగింపు n మైనస్ 1, సెమికోలన్ సమానం. కాబట్టి ముఖ్యంగా, మేము చేస్తున్న ఇక్కడ, మొదటి స్థానం 0. మేము శ్రేణుల లో తెలిసిన మరియు, వారు లేదు n వరకు, వారు 1 n మైనస్ పెరగడంతో. కాబట్టి మేము మా శ్రేణి కొన్ని హద్దులు కలిగి. మరియు ఈ ప్రారంభ హద్దులు ఉండాలి జరిగే మా సమస్య యొక్క ప్రారంభ హద్దులు. OK. కాబట్టి ఆ మంచిది. అప్పుడు మేము, ఈ లైన్ వెళ్ళండి ఉంటే అయితే జాబితా పొడవు, 0 కన్నా ఎక్కువ ఏమి, బదులుగా n యొక్క, ఉండాలి మేము ఇక్కడ ఉంచారు? STUDENT: మైనస్ ప్రారంభంలో ముగిసిన వ్రాయండి. జాసన్ HIRSCHHORN: మైనస్ ముగుస్తోంది ఉండగా ప్రారంభించి 0 కన్నా ఎక్కువ? OK. మరియు మేము కోరుకుంటే, అనుకొనుట చేసే NICER ఒక బిట్, ఏ వాళ్లనుంచి చేయగల? మేము శుభ్రం కోరుకుంటే అప్ కాస్త కోడ్? ఎలా మేము 0 వదిలించుకోవటం? ఈ కేవలం శైలి ప్రశ్న. ఇది ప్రస్తుతం సరైన ఉంది. STUDENT: ఎండింగ్ లేదు సమాన ప్రారంభంలో? జాసన్ HIRSCHHORN: మేము ఏమి చెయ్యగలరు? [INTERPOSING వాయిసెస్] STUDENT: ఎండింగ్ ఎక్కువ? జాసన్ HIRSCHHORN: అవును. ముగిసిన అయితే మేము చేయవచ్చు ప్రారంభంలో కంటే ఎక్కువ. కుడి. మేము ఇతర వైపు ప్రారంభమైంది జోడించారు ఆ, మరియు మేము 0 తొలగిపోయారు. ఈ కేవలం ఒక కనిపిస్తోంది కొద్దిగా క్లీనర్. OK. జాబితా పొడవు 0 అందువలన,, మేము రాశారు ఆ, ముగిసిన అయితే ఎక్కువ ప్రారంభించి కంటే. మేము మా అవసరం ఉంచారు చూడాలని వంకర జంట కలుపులు, ఆపై మొదటి విషయం మేము మీరు చూడండి ఉంది కొద్దిగా జాబితాలో వాటిని. మీరు? మీరు నాకు ఇస్తుంది - STUDENT: ఉంటే కుండలీకరణములలో విలువ చదరపు బ్రాకెట్ - జాసన్ HIRSCHHORN: కుండలీకరణాలు ఉంటే విలువ చదరపు బ్రాకెట్. STUDENT: 2 ద్వారా విభజించబడింది ఎండింగ్. జాసన్ HIRSCHHORN: ఎండింగ్? STUDENT: నేను మీ ఒక సమస్య - జాసన్ HIRSCHHORN: OK. బాగా, మధ్య చూడండి. ఎలా మేము మధ్య ఏమి తెలుసు? అవును. కాబట్టి నాకు ఆ కోడ్ తొలగించండి తెలియజేయండి. ఎలా మేము మధ్య ఏమి తెలుసు? ఏదైనా, మీరు మొదలు ఉన్నప్పుడు మరియు ముగింపు, ఎలా మీరు కనుక్కుంటారు మధ్య? STUDENT: మీరు సగటు. STUDENT: మీరు వాటిని జోడించండి కలిసి మరియు - జాసన్ HIRSCHHORN: వాటిని జోడించండి కలిసి ఆపై? STUDENT: మీరు సగటు. 2 ద్వారా విభజించి. జాసన్ HIRSCHHORN: వాటిని జోడించండి కలిసి మరియు 2 ద్వారా విభజించి. కాబట్టి Int మధ్య సమానం? టామ్, మీరు నాకు ఇచ్చి చేయవచ్చు? STUDENT: ప్రారంభమై ప్లస్ ముగిసిన - జాసన్ HIRSCHHORN ప్రారంభంలో ప్లస్ ముగిసిన. STUDENT: అన్ని, బ్రాకెట్, 2 ద్వారా విభజించబడింది. జాసన్ HIRSCHHORN: అన్ని కుండలీకరణాల్లో, 2 ద్వారా విభజించబడింది. కాబట్టి నాకు మధ్య ఇస్తుంది ఏదైనా, సరి? STUDENT: మీరు దానిని చుట్టూ అవసరం. జాసన్ HIRSCHHORN: మీరు ఏమి అర్థం, నేను దానిని చుట్టూ అవసరం? [INTERPOSING వాయిసెస్] STUDENT: ఎందుకంటే ఇది బేసి ఉంటే సంఖ్య, అది వంటిది - జాసన్ HIRSCHHORN: Well, OK. కాబట్టి నేను చుట్టుముట్టటమే కాలేదు. ఇది బేసి సంఖ్య, ఒక 5 అయితే, నేను దూరంగా మధ్య నుండి 1 తీసుకొని. లేదా ఇది మరింత సంఖ్య, బదులుగా, ఒక మంచి కేస్. ఇది 4 అయితే, మేము మాత్రమే 4 ఉంటాయి, నేను పడుతుంది మొదటి "మధ్య", కోట్, unquote లేదా రెండవ "మధ్య" ఒక. ఒక బైనరీ శోధన కోసం పని చేస్తుంది, కాబట్టి నేను నిజంగా దీన్ని చుట్టూ అవసరం లేదు. కాని ఒక ఇతర విషయం నేను ఉంది ఈ లైన్ చూడండి అవసరం. మేము, ఇంకా గుర్తించలేరు ఉండవచ్చు కానీ మేము తిరిగి వచ్చి చేస్తాము. ఈ లైన్ నిజానికి ఇప్పటికీ ఎందుకంటే ఒక విషయం ఇతర అవసరం. కానీ ఇప్పటివరకు, మేము వ్రాయలేదు కోడ్ యొక్క నాలుగు పంక్తులు. మేము మా ప్రారంభంలో పొందారు మరియు గుర్తులను ముగిసిన. మేము ఇది మాన మా అయితే లూప్, కలిగి నేరుగా మా pseudocode కు. మేము పటాలు ఆ మధ్య వద్ద చూస్తున్న నేరుగా మా pseudocode లో. నేను ఈ మధ్య వెళుతుంది చెబుతా జాబితా, లైన్. ఆపై, ఒకసారి మేము మధ్య వెళ్ళండి జాబితా, మేము ఏమి చేయాలి తదుపరి విషయం మా విలువ కోసం ఉందనుకోండి తనిఖీ ఉంది pseudocode మనం ముందుగా వ్రాసాడు. కాబట్టి మేము ఎలా తనిఖీ లేకపోతే మా విలువ జాబితా మధ్య ఉంది? మీరు. మీరు దీన్ని ఎందుకు లేదు? STUDENT: మా విలువ యొక్క ఉంటే మధ్య వద్ద సమానం మేము ఏర్పాటు పనులను - నేను సమానంగా సమాన అర్థం - జాసన్ HIRSCHHORN: ఇది - OK. STUDENT: నేను ఖచ్చితంగా తెలియదు ఏమి వేరియబుల్ మేము చూస్తున్నారా కోసం అయితే, ఎందుకంటే - [INTERPOSING వాయిసెస్] STUDENT: [వినబడని]. జాసన్ HIRSCHHORN: ఖచ్చితంగా. ఫంక్షన్ ప్రకటన ప్రకారం, మేము ఒక విలువ కోసం చూస్తున్న. కాబట్టి మేము ఒక విలువ శోధిస్తున్న విలువలు వ్యూహంలో. కాబట్టి మీరు ఖచ్చితంగా ఉన్నాము. మీరు చేస్తుంది, ఉంటే ఓపెన్ బ్రాకెట్ విలువ బ్రాకెట్ మధ్య బ్రాకెట్ సమానం ముగిసింది లోపల అక్కడ విలువ సమానం, మరియు మేము ఏమి చేయాలి? ఉంటే మా విలువ యొక్క అక్కడ, ఏ మేము ఏమి చేయాలి? [INTERPOSING వాయిసెస్] STUDENT: సున్నా తిరిగి. జాసన్ HIRSCHHORN: నిజమైన చూపించు. STUDENT: నిజమైన చూపించు. జాసన్ HIRSCHHORN: మైఖేల్, ఈ లైన్ ఏమి చేస్తుంది? STUDENT: [వినబడని] కార్యక్రమం నడుపుతుంది దాని కోర్సు, మరియు ఆ పై, మరియు మీరు ఏమి చేయాలి మీరు? జాసన్ HIRSCHHORN: కార్యక్రమం లేదా ఏమి? ఈ సందర్భంలో? STUDENT: ఫంక్షన్. జాసన్ HIRSCHHORN: ఫంక్షన్. కాబట్టి, అని సంసార తిరిగి ఇది మరియు నిజమైన, ఇది విలువ ఇవ్వాలని. సరిగ్గా కుడి. ప్రధాన. తిరిగి ఏ రకం ఉంది ప్రధాన, మైఖేల్? STUDENT: Int, పూర్ణాంక? జాసన్ HIRSCHHORN: Int, ఖచ్చితంగా. పూర్ణాంకం. నిర్ధారించుకోండి ఒక ప్రశ్న మీరు అబ్బాయిలు ఇది పైన ఉన్నాయి. ఇది సాధారణంగా అయితే, ఏ తిరిగి లేదు అన్ని విషయాలు బాగా పనిచేస్తున్నారు? STUDENT: జీరో. జాసన్ HIRSCHHORN: జీరో. సరిగ్గా కుడి. STUDENT: ఈ కేవలం నిజమైన తిరిగి, ఇచ్చిన సమాచారం ఉంది గురించి ఏమి - ఓహ్, ఈ కేవలం చెప్పడం అని ఆ విలువ శ్రేణి లోపల. జాసన్ HIRSCHHORN: ఖచ్చితంగా. ఈ కార్యక్రమం సమాచారం ఇవ్వడం లేదు విలువ పేరు సరిగ్గా యొక్క. ఇది మాత్రమే అవును, జపానీస్, మాట్లాడుతూ ఇది, లేదా, మేము దానిని కనుగొనేందుకు లేదు. కాబట్టి వచ్చాయన్నారు ఉంటే, నిజమైన తిరిగి. Well, వాస్తవానికి మేము అని నిజంగా త్వరగా కోడ్ యొక్క ఒక లైన్ తో. నేను pseudocode లైనును తరలించడానికి చేస్తాము. STUDENT: మేము అవసరం లేదు శ్రేణి మార్చడానికి? ఇది కుడి, విలువలు, విలువ ఉండాలి? జాసన్ HIRSCHHORN: క్షమించండి. ధన్యవాదాలు. STUDENT: అవును. జాసన్ HIRSCHHORN: ఈ లైన్ విలువలు ఉండాలి. సరిగ్గా కుడి. OK. కాబట్టి మేము మధ్య జాబితా చూస్తూ చేసిన. వచ్చాయన్నారు తిరిగి నిజమైతే. ఉంటే మా pseudocode తో కొనసాగిస్తూ మధ్య ఎక్కువ, శోధన వదిలి. , ఇప్పుడు, ఇక్కడ లో సంఖ్య అధిక, శోధన వదిలి. కాన్స్టాంటైన్ మీరు ఇవ్వగలిగిన నాకు లైన్? STUDENT: మధ్య ఉంటే విలువ - జాసన్ HIRSCHHORN: కాబట్టి విలువ ఉంటే - ఓపెన్ బ్రాకెట్ బ్రాకెట్ సమానమే మధ్య సన్నిహిత బ్రాకెట్ - STUDENT: విలువ కంటే తక్కువగా ఉంది? జాసన్ HIRSCHHORN: కంటే తక్కువ. STUDENT: విలువ కంటే తక్కువ. జాసన్ HIRSCHHORN: విలువ. Well, వాస్తవానికి, మీకు కావలసిన సంఖ్య తనిఖీ - క్షమించాలి. ఈ కొద్దిగా గందరగోళంగా ఉంది. కానీ వేరే ఉంటే లో సంఖ్య జాబితా మధ్యలో ఎక్కువ. STUDENT: OK, ఓహ్. జాసన్ HIRSCHHORN: నేను నమ్ముతున్నా. మధ్య ఎక్కువ ఎల్స్, మేము OK, ఎడమ శోధించడానికి మీరు? మరియు మేము లోపల ఏమి చేస్తారు ఈ పరిస్థితి ఉంటే? STUDENT: నేను ఒక చిన్న మార్పు చేయవచ్చు ఉంటే పరిస్థితి, వేరే మార్చుకోండి? జాసన్ HIRSCHHORN: ఎల్స్? OK. కాబట్టి ఈ కోడ్ అమలు చేస్తుంది అదే గురించి. కానీ మిగతా, ఉంటే ఉపయోగించడం గురించి nice విషయం , లేదా అయితే వేరే వేరే ఎల్స్, ఉంటే ఆ ఒకే ఒక అన్నారు అర్థం తనిఖీ, కాదు వాటిలో మూడు, సమర్థవంతంగా. మరియు ఆ కొద్దిగా చేస్తుంది అని కంప్యూటర్లో కలుపుకొని మీ ప్రోగ్రామ్ను అమలు. కాబట్టి [? కాన్స్టాంటైన్?] మేము, విలువలు ఉంటే, ఈ లైన్ లోపల ఉన్నారు బ్రాకెట్ మధ్య సన్నిహిత బ్రాకెట్ విలువ కంటే ఎక్కువ. మనం ఏమి చేయాలి? మేము ఎడమ అన్వేషణ అవసరం. మేము ఎలా చేయాలి? నేను మీరు ఒక ప్రారంభ ఇవ్వాలని వెళుతున్న. మేము అని ఈ రెండు విషయాల్లో మొదలయి ముగిసిన. కాబట్టి ఏమి జరుగుతుంది అవసరం ప్రారంభానికి? మీరు ఎడమ అన్వేషణ అనుకుంటే జాబితా, మేము మా ప్రస్తుత ప్రారంభంలో పొందండి. మనం దీన్ని చేయాలి? STUDENT: మేము ప్రారంభంలో సెట్ మధ్య ప్లస్ 1. జాసన్ HIRSCHHORN: కాబట్టి మేము అయితే ఎడమ శోధించడం? STUDENT: క్షమించండి, మధ్య మైనస్ - కాబట్టి ముగింపు మధ్య ఉంటుంది మైనస్ 1 మరియు ప్రారంభంలో - జాసన్ HIRSCHHORN: మరియు ప్రారంభానికి జరుగుతుంది? STUDENT: ఇది అదే ఉంటాయి. జాసన్ HIRSCHHORN: కాబట్టి అర్థం అదే ఉంటాయి. మేము ఎడమ శోధించడం ఉంటే, మేము అదే ప్రారంభంలో ఉపయోగించి - ఖచ్చితంగా కుడి. మరియు ముగించాడు? క్షమించాలి, దేనిని మళ్ళీ సమానం ముగించాడు? STUDENT: మధ్య మైనస్ 1. జాసన్ HIRSCHHORN: మధ్య మైనస్ 1. ఇప్పుడు, ఎందుకు మైనస్ 1, మధ్య కేవలం? STUDENT: మధ్య ముగిసింది మేము ఎందుకంటే, ఇప్పటికే చిత్రం ఇది కోల్పోయాడు తనిఖీ? జాసన్ HIRSCHHORN: పేర్కొంది ఖచ్చితంగా కుడి. మధ్య చిత్రాన్ని ముగిసింది. మేము ఇప్పటికే మధ్య తనిఖీ. కాబట్టి మేము ", మధ్య" కోట్ వద్దు unquote, లో కొనసాగుతుంది మేము వెతికే శ్రేణి. కాబట్టి ఈ అద్భుతమైన ఉంది. ఎల్స్ విలువలు బ్రాకెట్ మధ్య ఎక్కువ ఉంటే విలువ సమానం ముగిసిన కంటే మధ్య మైనస్ 1. జెఫ్, ఈ చివరి పంక్తి గురించి? STUDENT: ఎల్స్. విలువలు మధ్య విలువ కంటే తక్కువ? జాసన్ HIRSCHHORN: మేము చేస్తాము మీరు వేరే నాకు ఇచ్చి చేస్తున్నారు. మీరు నాకు ఇవ్వాలని లేకపోతే కాబట్టి - STUDENT: కాబట్టి ప్రారంభించి మధ్య ప్లస్ 1 ఉంటుంది. జాసన్ HIRSCHHORN: ప్రారంభమై సమానం మధ్య ప్లస్ 1, మళ్ళీ, ఒకే కారణం ఆ కాన్స్టాంటైన్ ముందు ఇచ్చిన. మరియు చివరిలో, ఎవరు ఇవ్వలేదు ఇంకా నాకు కోడ్ ఒక లైన్? తప్పుడు, Aleha, తిరిగి ఏమి మేము ఇక్కడ వ్రాస్తారా? STUDENT: తప్పుడు తిరిగి. జాసన్ HIRSCHHORN: తప్పుడు తిరిగి. మరియు మేము, అలా అవసరం ఎందుకంటే మేము దానిని కనుగొనేందుకు లేదు, మేము చెప్పే అవసరం దానిని కనుగొనేందుకు లేదు. మరియు మేము తిరిగి చూడాలని అన్నారు ఒక bool, కాబట్టి మేము ఖచ్చితంగా తిరిగి ఒక bool ఎక్కడో. కాబట్టి యొక్క ఈ కోడ్ అమలు అనుమతిస్తాయి. నిజానికి వెళుతున్న - కాబట్టి మేము టెర్మినల్ ఉన్నారు. మేము మా విండో క్లియర్ చేస్తాము. యొక్క అన్ని లెట్. మేము ఒక లోపం ఉంది కనుగొన్నారు. అంచనా లైన్ 15 లోపం, ఉంది చివరిలో సెమికోలన్ ప్రకటన. నేను ఏమి మర్చిపోయారా? STUDENT: Semicolon. జాసన్ HIRSCHHORN: Semicolon అప్ ఇక్కడే. నేను టామ్ యొక్క కోడ్ భావించాను. కాబట్టి టామ్, [వినబడని]. సరదాగా. యొక్క అన్ని మళ్ళీ ఉందని తెలియజేయండి. STUDENT: ఏ డ్రాప్బాక్స్ డైరెక్టరీ మేము ఈ కోసం ఉండాలి? జాసన్ HIRSCHHORN: కాబట్టి మీరు ఈ బిట్ కోసం చూడటానికి. కానీ మళ్ళీ, మీరు ఈ తరలింపు కోరుకుంటే ప్రయత్నించండి మీ pset3 డైరెక్టరీలో కోడ్ దాన్ని, నేను ఏమి ఉంది. మీరు ఇక్కడ గమనించవచ్చు ఉంటే - క్షమించాలి, మంచి ప్రశ్న. [? LS,?] నేను ఇక్కడ కలిగి find.c కోడ్ ఈ వారం యొక్క distro కోడ్ నుండి. నేను helpers.h కలిగి. నేను నిజానికి ఒక మేక్ ఫైలు కలిగి ఈ కొత్త చేర్చడానికి ఒక బిట్ ఎడిట్ మేము రాస్తున్నాం ఫైళ్లు. కోడ్ యొక్క అన్ని, అందుబాటులో లేదు ఉంటుంది పంపిణీ కోడ్, కానీ కొత్త ఫైలు, కొత్త helpers.h తప్పుకుంటున్నారు డౌన్లోడ్ కోసం అందుబాటులో ఉంటుంది. మళ్ళీ, కాబట్టి ఉంటాయి అదనపు సంకేతాలను కలిగి. కాబట్టి అన్ని తయారు, ఈ పంక్తికి,, కనుగొనేందుకు చేస్తుంది బైనరీ, బబుల్ ఎంపిక - చేస్తుంది అన్ని వాటిలో మూడు మరియు లోకి కూర్చింది ఈ ల్యాన్ కనుగొనడానికి. కనుక సాధారణంగా, మేము వద్దు నేరుగా check50 కు. మేము మా స్వంత కొన్ని పరీక్షలు అమలు చేయండి. కానీ కేవలం మేము, ఈ ఒక బిట్ వేగవంతం చేయవచ్చు check50 2013 pset3.find పాస్ నా చెడు - helpers.c ఇన్. నేను ప్రస్తుతం ఆ లేదు. మేము నిజంగా చూడాలని నిజమైన కోసం కోడ్ అమలు. Usage.find /, మీరు అర్థం ఏమి? STUDENT: మీరు రెండవ అవసరం దానిపై కమాండ్ లైన్. జాసన్ HIRSCHHORN: నేను అవసరం రెండవ కమాండ్ లైన్. మరియు వివరణ ప్రకారం, నేను అవసరం మేము చూస్తున్న ఏమి ఎంటర్. కాబట్టి యొక్క 42 కోసం చూద్దాం. మేము క్రమబద్ధీకరించబడింది లో ఉంటాం ఎందుకంటే మేము ఇంకా ఒక విధమైన ఫంక్షన్ వ్రాయలేదు - 42, 43, 44. మరియు కంట్రోల్ D కనుగొనలేదు గడ్డివాము సూది. ఆ దురదృష్టకరం. అది ఖచ్చితంగా ఉంది. యొక్క ఏదో ప్రయత్నించండి లెట్. నేను చాలు ఎందుకంటే దీనికి వార్తలు ప్రారంభంలో ఇది. యొక్క 41, 42, 43 తెలియజేసేలా. అక్కడ మేము వెళ్ళి. ఇది దొరకలేదు. యొక్క కేవలం, ఇప్పుడు చివరిలో ఉంచండి లెట్ కాబట్టి మేము క్షుణ్ణంగా ఉంటుంది - 40, 41, 42. సూది కనుగొనలేదు. నేను ఈ ముందు పేర్కొన్న. దురదృష్టవశాత్తు, నేను ఈ తెలుసు పెట్టేవరట. కానీ బోధనకు ప్రయోజనాల కోసం, అది అన్వేషించడానికి బావుంటుంది. ఇది పని లేదు. కొన్ని కారణంగా, అది దొరకదు. మేము అక్కడ ఏమి తెలుసు, కానీ మేము అది కనుగొనడంలో లేదు. కాబట్టి మేము చేయగలిగే దాని ద్వారా గో GDB, దానిని కనుగొనేందుకు, కానీ ఎవరైనా చేస్తుంది కు GDB ద్వారా వెళుతున్న లేకుండా, కలిగి ఒక మేము ఇరుక్కొనిపోయింది పేరు భావన? [? Madu? ?] STUDENT: నేను ముగిస్తామని ఉండవచ్చు అనుకుంటున్నాను ప్రారంభంలో సమానం, మరియు అది ఉంది కేవలం ఒక మూలకం జాబితా. తరువాత కేవలం బదులుగా అది నిర్లక్ష్యం నిజానికి ఇది తనిఖీ. జాసన్ HIRSCHHORN: పేర్కొంది ఖచ్చితంగా కుడి. ముగింపు ప్రారంభం సమానం, మేము ఇప్పటికీ మా జాబితాలో ఒక మూలకం ఉందా? STUDENT: అవును. జాసన్ HIRSCHHORN: అవును, నిజానికి, మేము ఒకే ఒక మూలకం కలిగి. మరియు ఆ ఎక్కువగా ఉన్నప్పుడు జరగవచ్చు, మేము పరీక్షలు కోడ్ ప్రకారం, ఉన్నాయి గడ్డివాము లేదా ముందు గడ్డివాము ముగింపు. పేరు ప్రారంభం మరియు పేర్కొంది ముగింపు సమానంగా అన్నారు బైనరీ శోధన ఒక,. కాబట్టి ఆ రెండు సందర్భాలలో అది పని చేయలేదు, ముగిసిన ఎందుకంటే ప్రారంభం సమానము. కానీ ముగిసిన ఉంటే, ప్రారంభంలో సమానం ఈ సమయంలో లూప్ అమలు చేస్తుంది? ఇది కాదు. మరియు మేము తనిఖీ కాలేదు మళ్ళీ GDB ద్వారా. కాబట్టి మేము ఎలా, ఈ కోడ్ పరిష్కరించడానికి ఎందుకంటే ముగిసిన అయితే సమానం ప్రారంభించి, మేము కూడా ఈ మీరు లూప్ అమలు అయితే. కాబట్టి మేము 18 లైన్ ఏమి పరిష్కారం చేయవచ్చు? STUDENT: [వినబడని] ఎక్కువ కంటే లేదా సమానం. జాసన్ HIRSCHHORN: సరిగ్గా కుడి. ముగింపు కంటే ఎక్కువ ఉంది లేదా ప్రారంభంలో సమానంగా. కాబట్టి ఇప్పుడు, మేము ఆ పొందవచ్చు చివరిలో మూలలో కేసు. మరియు యొక్క చూసేలా. యొక్క ఈ ఒక ఎక్కువ సమయం అమలు లెట్. యొక్క అన్ని తయారు చేద్దాము. మరలా, మీరు ఉంటుంది కేవలం ఇక్కడ అనుసరించండి. 41 ఈ సమయంలో కనుగొను. కేవలం అది స్థిరమైన ఉంచడానికి. 42 కనుగొను. యొక్క ప్రారంభంలో ఉంచండి లెట్ - 42, 43, 44. మేము అది. కాబట్టి ఆ నిజానికి మార్పు మేము అవసరమైన. మేము కోడింగ్ చాలా ఉంది కేవలం, బైనరీ శోధన చేశాడు. ఎవరైనా ముందు ఏ ప్రశ్నలు ఉందా మనం లో రాశాడు పంక్తులు లోకి కొనసాగండి బైనరీ శోధన లేదా ఎలా మేము మ్యాచ్ మేము గుర్తించడానికి ఏమి బయటకు? మేము కొనసాగండి ముందు, నేను కూడా మార్చాలి ఆ ద్వారా మరియు పెద్ద, మేము మ్యాప్ మా నకిలీ కోడ్ ఒక మా కోడ్ లో ఒక. మేము ఆ గమ్మత్తైన విషయం ఉందా తో గుర్తించడానికి మొదలయి ముగిసిన. కానీ మీరు, ఆ కనుగొన్నారు లేదు చాలా చక్కని రాసిన ఒకేలా కోడ్, కోసం సేవ్ ఆ టాప్ రెండు పంక్తులు. ఆపై మీరు గ్రహించి ఉన్నప్పుడు మీరు తనిఖీలను మరియు సందర్భాల్లో ఇది చేసిన మీరు ఏదో అవసరం. మీరు అనుసరిస్తున్న కాబట్టి కూడా మా రేఖకు నకిలీ కోడ్ లైన్, మీరు చేసిన చేస్తుంది రెండు పంక్తులు కానీ అన్ని సంపాదించిన మీరు రాయడానికి అవసరమైన కోడ్. నేను పందెం ఒప్పుకుంటారు భావిస్తున్నట్టు మీరు అబ్బాయిలు అన్ని ఆ కనుగొన్నారు ఉండేది అందంగా త్వరగా, మీరు ఉంచేందుకు అవసరమైన అని మార్కర్ విధమైన లో దొరుకుతుందని మీరు ఉన్న బయటకు. ఆ మళ్ళీ, చేయడం శక్తే నకిలీ కోడ్ ముందుకు సమయం. కాబట్టి మేము అప్పుడు మొదటి తర్కం, మరియు చేయవచ్చు మేము వాక్యనిర్మాణం గురించి ఆందోళన చేయవచ్చు. మేము తర్కం గురించి గందరగోళం జరిగింది అయితే సి లో ఈ కోడ్ రాయడానికి ప్రయత్నిస్తూ, మేము అన్ని గందరగోళంలో సంపాదించిన ఉండేది. మరియు తర్వాత మేము గురించి ప్రశ్నలు అడగడం ఇష్టం తర్కం మరియు వాక్యనిర్మాణం మరియు meshing వాటిని అన్ని కలిసి. మరియు కోల్పోయిన సంపాదించిన ఉండేది త్వరగా ఒక కావచ్చు ఏమి లో చాలా కష్టం సమస్య. కాబట్టి ఇప్పుడు వెళ్దాం ఎంపిక విధమైన. మేము వదిలి 20 నిమిషాలు. కాబట్టి మనం చేయలేరు ఒక అనుభూతి ఎంపిక విధమైన అన్ని ను మరియు బబుల్ సార్ట్. కానీ మాకు కనీసం ప్రయత్నం తెలియజేయండి ఎంపిక విధమైన పూర్తి. కాబట్టి విధమైన ఉపయోగించి ఎంపిక అమలు ఫంక్షన్ ప్రకటన క్రింది. మళ్ళీ, ఈ నుండి తీసుకోబడింది సమస్య సెట్ వివరణలో. Int విలువలు బ్రాకెట్లలో, ఉంది పూర్ణాంకాల వ్యూహం. మరియు int.n శ్రేణి యొక్క పరిమాణం. ఎన్నిక విధమైన అన్నారు ఈ శ్రేణి క్రమం. ఎంపిక మా మానసిక మోడల్ అనుకున్న ప్రకారం విధమైన, మేము పుల్ - మొదటి, మేము జాబితా ద్వారా మొదటి వెళ్ళి సమయం, చిన్న సంఖ్య కనుగొంటారు, ప్రారంభంలో ఉంచండి, రెండవ కనుగొనేందుకు చిన్న సంఖ్య, లో ఉంచండి మేము అనుకుంటే రెండవ స్థానం క్రమంలో విధమైన. నేను మీరు వ్రాయడానికి బలవంతంగా లేదు నకిలీ కోడ్ ప్రస్తుతం. కానీ మేము ఒక తరగతి కోడ్ ముందు ఐదు నిమిషాలు, మేము రాయాలో నకిలీ కోడ్ మేము కొన్ని జ్ఞానం కలిగి పేరు మేము చేయబోతున్నామని. కాబట్టి నకిలీ కోడ్ రాయడానికి ప్రయత్నం మీ స్వంత. మరియు ఆ తిరుగులేని ప్రయత్నిస్తుంది కోడ్ లోకి నకిలీ కోడ్. ఒక సమూహం ఆ చేస్తుంది ఐదు నిమిషాల్లో. మరియు కోర్సు యొక్క, నాకు తెలియజేయండి మీరు ఏ ప్రశ్నలు. STUDENT: ఇది ఆ? జాసన్ HIRSCHHORN: ఎంతవరకు మీరు చూడండి రెండు నిమిషాల్లో పొందవచ్చు. నేను మీరు లేదు అర్థం పూర్తి చేయగలరు. కానీ ఒక సమూహం ఈ వెళ్ళి ఉంటుంది. మీరు అన్ని [వినబడని] కాబట్టి కోడింగ్, నేను ఉన్నాను మీరు చేస్తున్న ఏమి విరామం క్షమించండి. కానీ యొక్క ఒక సమూహం ఈ వీలు. మరియు తిరిగి, బైనరీ శోధన, మీరు అన్ని ఇవ్వాలని నాకు ఒక కోడ్ యొక్క పంక్తులను లేకపోతే. ఆ ధన్యవాదాలు. మేము ఇదే చూడాలని ఇక్కడ, ఒక సమూహంగా కలిసి కోడ్. కాబట్టి ఎంపిక విధమైన - యొక్క వ్రాద్దాము కొన్ని శీఘ్ర నకిలీ కోడ్. మానసిక మోడల్ ప్రకారం, ఎవరైనా నాకు ఇస్తుంది నకిలీ కోడ్ మొదటి లైన్, దయచేసి? నేను ఏమి అనుకుంటున్నారు? STUDENT: ఉండగా జాబితా ముగిసింది. జాసన్ HIRSCHHORN: OK, అయితే జాబితా ముగిసింది. మరియు మీరు "ఆర్డర్ బయటకు?" ఏమిటి STUDENT: ఉండగా [వినబడని] క్రమబద్ధీకరించబడతాయి లేదు. జాసన్ HIRSCHHORN: ఉండగా జాబితా ముగిసింది, మేము ఏమి లేదు? నాకు రెండవ లైన్ ఇవ్వండి, దయచేసి, మార్కస్. STUDENT: తరువాత కనుగొనేందుకు చిన్న సంఖ్య. ఈ ఇండెంట్ ఉంటుంది. జాసన్ HIRSCHHORN: కాబట్టి కనుగొనేందుకు తదుపరి చిన్న సంఖ్య. ఆపై మరొకరిని? మేము తదుపరి చిన్న కనుగొనండి సంఖ్య, మేము ఏమి లేదు? నేను కనుగొనేందుకు సే వెళుతున్న చిన్న సంఖ్య. అంటే ఏమిటి. కాబట్టి చిన్న సంఖ్య కనుగొంటారు. అప్పుడు మనమేం చెయ్యాలి? STUDENT: [వినబడని] ప్రారంభానికి. జాసన్ HIRSCHHORN: క్షమించాలి? STUDENT: ఉంచండి జాబితా ప్రారంభం. జాసన్ HIRSCHHORN: కాబట్టి అది ఉంచండి జాబితా ప్రారంభంలో. మరియు మేము విషయం ఏమి చేస్తారు ఆ ఉండెను జాబితా, కుడి? మేము ఏదో కొట్టివేతలు చేస్తున్నారు. కాబట్టి అక్కడ ఆ ఉంచగలను? అవును, అన్నా? STUDENT: ఎక్కడ చిన్న సంఖ్య? జాసన్ HIRSHHORN: కాబట్టి ప్రారంభంలో చాలు జాబితా పేరు చిన్న సంఖ్య. జాబితా ముగిసింది కాబట్టి అయితే, కనుగొనేందుకు చిన్న సంఖ్య, లో ఉంచుతాయి జాబితా ప్రారంభం చాలు జాబితా ప్రారంభం పేరు చిన్న సంఖ్య. మార్కస్, మీరు ఈ లైన్ rephrase చేయవచ్చు జాబితా ముగిసింది అయితే? STUDENT: కాగా సంఖ్యలు క్రమబద్ధీకరించబడతాయి కాలేదు? జాసన్ HIRSHHORN: OK, క్రమంలో సంఖ్యలు లేకపోతున్నాను తెలుసు క్రమబద్ధీకరించబడతాయి, మేము ఏమి చేయాలి? మేము ఎంత అవసరం ఈ జాబితా ద్వారా వెళ్ళడానికి? STUDENT: నేను లూప్ ఒక అంచనా, లేదా అయితే, సంఖ్యలు తనిఖీ అయితే తక్కువ ఉంది జాబితా పొడవు కంటే? జాసన్ HIRSHHORN: OK, ఆ మంచి. నేను misphrased అనుకుంటున్నాను నా ప్రశ్న పేలవంగా. నేను వద్ద పొందడానికి ప్రయత్నిస్తున్నప్పుడు మేము వెళ్ళి చూడాలని మొత్తం జాబితా ద్వారా. జాబితా ముగిసింది కాబట్టి అయితే, నాకు, లో మ్యాప్ కష్టం. కానీ సాధారణంగా, ఆ ఎలా నేను ఈ ఆలోచించడానికి. కనుగొనేందుకు, మొత్తం జాబితా ద్వారా వెళ్ళి చిన్న సంఖ్య, లో ఉంచుతాయి ప్రారంభించి - నిజానికి, మీరు కుడి ఉన్నాము. యొక్క వాటిని రెండు చాలు లెట్. జాబితా ముగిసింది కాబట్టి, మేము మొత్తం జాబితా ద్వారా వెళ్లాలి ఒకసారి, చిన్న సంఖ్య, స్థలాన్ని ఇది జాబితా ప్రారంభంలో లో, చాలు జాబితా ప్రారంభంలో పేరు చిన్న సంఖ్య, ఆపై ఉంటే జాబితా మేము చేసిన, ఆర్డర్ బయటకు ఉంది ఈ ద్వారా వెళ్ళడానికి వచ్చింది తిరిగి, కుడి? ఆ ఎందుకు ఎంపిక విధమైన, బిగ్-O runtime ఉంది ఎంపిక విధమైన, ఎవరైనా? STUDENT: స్క్వేర్డ్ n. జాసన్ HIRSHHORN: స్క్వేర్డ్ n. మార్కస్ మరియు నేను గ్రహించారు వంటి ఎందుకంటే ఇక్కడ, మేము చూడాలని జాబితాలో జాబితా ద్వారా వెళ్ళి ఎన్నిసార్లు. కాబట్టి ఏదో ద్వారా వెళుతున్న పొడవు n n ఎన్నిసార్లు నిజానికి n స్క్వేర్డ్. ఇతనేనా pseudocode ఉంది. ఈ చాలా బాగుంది. ఎవరైనా ఏవైనా ప్రశ్నలు ఉందా pseudocode గురించి? నిజానికి ఎంపిక విధమైన ఉండాలి ఎందుకంటే బహుశా నుండి ఒక, కోడ్ ఒక వచ్చి pseudocode. గురించి కాబట్టి ఏ ప్రశ్నలు pseudocode తర్కం? ఇప్పుడు అది అడగండి. ఎన్నిక విధమైన - జాబితా ఉంది ఆర్డర్ ఆఫ్, మేము అది ద్వారా వెళ్ళి చూడాలని మరియు చిన్న ప్రతి సమయం కనుగొనేందుకు మరియు ముందు ఉంచారు. జాబితా, చెయ్యవచ్చు ముగిసింది కాబట్టి అలా ఎవరైనా నన్ను కోడ్ లైనును ఇవ్వాలని నాకు లైన్ ఇవ్వలేదు దయచేసి, ఇంకా కోడ్ యొక్క? ఇది ఒక ఏ లాగా? అంతే లూప్ ఒక ఉంది. జాసన్ HIRSHHORN: ఇది ధ్వనులు లూప్ ఒక. OK, మీరు నాకు లూప్ ఇస్తుంది? కోసం - STUDENT: నేను 0 సమానం. జాసన్ HIRSHHORN: నేను లేదా - మనం కనిపించట్లేదు? ఏ ఇక్కడే వెళుతుంది? STUDENT: Int. జాసన్ HIRSHHORN: ఖచ్చితంగా. -; (I = 0, Int STUDENT: నేను n> సరే + +). జాసన్ HIRSHHORN: జెఫ్, వ్రేలాడుదీస్తారు. మేము, జాబితా ద్వారా వెళుతున్న? మేము ముందు ఆ కోడ్ చూసిన. పర్ఫెక్ట్. కాబట్టి యొక్క ఇక్కడ మా వంకర జంట కలుపులు ఉంచారు తెలియజేయండి. నేను కొన్ని చాలు వెళుతున్న ఇక్కడ వంకర జంట కలుపులు. అది 0 అందువలన, మెక్నైట్ మొత్తం జాబితా ద్వారా. కాబట్టి ప్రతి సమయం మేము, జాబితా ద్వారా వెళ్ళి మేము ట్రాక్ అనుకుంటున్నారు? STUDENT: ఏ మార్పిడులు చేసిన ఉంటే. జాసన్ HIRSHHORN: కనుగొను చిన్న సంఖ్య. కాబట్టి మేము బహుశా ట్రాక్ ఉండాలి చిన్న సంఖ్య ప్రతి సమయం. కాబట్టి లైన్ నేను ట్రాక్ చేయవచ్చు చిన్న సంఖ్య? Aleha, ఎలా నేను ఉంచుకోవచ్చు ఏదో ట్రాక్? STUDENT: ఒక కొత్త వేరియబుల్ ప్రారంభం. జాసన్ HIRSHHORN: కొత్త వేరియబుల్ ప్రారంభం. కాబట్టి యొక్క ఒక వేరియబుల్ సృష్టించడానికి వీలు. ఏ రకం? STUDENT: Int. జాసన్ HIRSHHORN: Int. అతి చిన్న కాల్ తెలియజేయండి. మరియు ఇది సమాన నియంత్రించి మేము మొదలు పెడుతున్నారు? మేము ఇంకా జాబితా ద్వారా లేకపోవచ్చు. మేము మొదటి భాగం వద్ద ఉన్నారు ద్వారా మా మొదటిసారి జాబితా. ఇది సమాన ఏమి, చిన్న సంఖ్య? STUDENT: విలువలు i. జాసన్ HIRSHHORN: విలువలు i. కుడివైపు, సరిగ్గా సరైన ధ్వనులు? ప్రారంభంలో చిన్న సంఖ్య మేము ఎక్కడ ఉంది. కాబట్టి ఇప్పుడు మేము మా చిన్న, మరియు మేము అవసరం మొత్తం జాబితా ద్వారా వెళ్ళి చిన్న ఈ పోల్చి ప్రతిదాని. కాబట్టి మేము మళ్ళీ జాబితా ద్వారా గో? మైఖేల్? STUDENT: మీరు చేయవలసి లూప్ మరొక. జాసన్ HIRSHHORN: లూప్ మరొక. లెట్ యొక్క ఇది. నాకు కొన్ని కోడ్ ఇవ్వండి. STUDENT: లూప్ - చిన్న కోసం - కేవలం j Int, మీరు చెప్పగల్గినవి? = 0; ఆ - జాసన్ HIRSHHORN: Well, మేము కావాలా మొత్తం జాబితా ద్వారా వెళ్ళడానికి - STUDENT: j