[Powered by Google Translate] பகுதி சிக்கல் 2 அமைக்கவும்: ஹேக்கர் பதிப்பு
ராப் Bowden, ஹார்வர்ட் பல்கலைக்கழகம்
இந்த CS50 உள்ளது. CS50.TV
எனவே, நான் ராப் இருக்கிறேன். நான் கிர்க்லாண்ட் ஒரு மூத்த இருக்கிறேன். இந்த CS50 TFing என் மூன்றாம் ஆண்டு.
அதை, நாம் பாரம்பரிய-விரிவுரை பாணி பகுதியில் இருந்து மாற்ற வேண்டும் என்று முதல் முறை
அங்கு நீங்கள் கேள்விகள் கேட்க என்ன விரிவுரை நடந்த பின்னர் பரிசீலனை நாம் மட்டும் என்ன,
இப்போது நாம் இடைவெளி பயன்படுத்தும், நிறைய பிரச்சனை அடிப்படையிலான இருப்பது, மற்றும் -
ஓ கருத்தை நான் அனுப்பிய அந்த இணைப்பை போக மற்றும் பின் நீங்கள் என் விண்வெளி இருப்போம்.
யாராவது ஒரு மடிக்கணினி இல்லை? சரி.
எனவே இதை பயன்படுத்தி கொள்ள போகிறோம், நாம் பிரச்சனைகளை செய்ய போகிறோம் பகுதியில் வாழ்கின்றனர்
அவர்களை பற்றி மேலும் என்ன தவறு கண்டறிவதன்
நான் உங்கள் குறியீடு சில கவனித்து இருக்கலாம், நான் உங்கள் கருத்துக்களை விவாதிக்க வேண்டும்.
அதனால் யாருக்கும் சிரமம் ஏற்பட்டது?
நீங்கள் பக்கத்தில் அரட்டை அடிக்க முடியும்; அந்த காரணத்தை வேண்டும் என்றால் எனக்கு தெரியாது.
நீங்கள் அந்த வர்க்கம் என்றால் இப்போது, முந்தைய supersection போல், நீங்கள் அதை பற்றி என்ன தெரியும்.
பி பெட்டிகள் அனைத்தும் இந்த பிரிவுகள் இருக்கும் நடக்கிறது.
பி, தொகுதி 2, அதனால், குறிப்புகள், நான் உங்களுக்கு ஏற்கனவே பி தொகுதி 1 இதை பார்த்தேன் நினைக்கிறேன்.
ஆனால் நாம் இன்று மீது நடந்து போகிறாய் என்ன பி தொகுதி 2 பார்க்க முடியும்.
நீங்கள் கேள்விகளை ஒரு பகுதியில் பார்க்கலாம்.
இந்த பி பெட்டிகள் அனைத்திலும் இருக்கும்; கேள்விகள் ஒரு பிரிவு இருக்கும்.
இதுவரை நாம் "இந்த பயிற்சி வாய்ப்பு கருதுங்கள்.", என்றார்
நீங்கள் இந்த திட்டத்தை சமர்ப்பிக்க வேண்டும்.
யோசனை இந்த சிக்கல் தொகுப்பு தொடங்குவதற்கு உதவி வகையான வேண்டும் என்று.
நான் ஹேக்கர் பதிப்பில் நினைக்கிறேன், இன்னும் நிறைய நான் அறிய புதிய, சுவாரசியமான விஷயங்கள் இருக்க வேண்டும்.
அவர்கள் பிரச்சனை தொகுப்பை நேரடியாக பொருந்தும் இருக்கலாம்.
மற்றும் இப்போது நாம், அவர்களை 'to கொண்ட, ஆனால் கோட்பாடு
பின்னர் பிரச்சனை தடவைகளில், அவற்றை சமர்ப்பிக்க முடியும், இதனால் நீங்கள் பகுதியை வரலாம்
அல்லது பதில்களை பெற பகுதியில் பார்க்கலாம், அல்லது நீங்கள் உங்கள் சொந்த அவற்றை பெற முடியும்
நீ என் முன்னிலையில் அனுபவித்து பிடிக்கவில்லை என்றால்.
எனவே - நான் இந்த முதல் நினைக்கிறேன்.
ஓ. மேலும், கேள்விகள் இந்த பிரிவுகள் கீழ் நாங்கள் உங்களுக்கு குறும்படங்களை பற்றி கேள்விகளை கேட்க வேண்டும்.
அதனால் நான் நினைக்கிறேன், கோட்பாடு, நீங்கள், பிரிவு வருவதற்கு முன்னர் இந்த பார்க்க வேண்டும்
நீங்கள் இல்லையென்றால் ஆனால் பரவாயில்லை; நாங்கள் எப்படியும் அவர்கள் மீது போகலாம்.
எனவே நாம் இந்த தொடங்க முடியாது: "எப்படி ஒரு வட்டத்திற்கு ஒரு செய்யும் போது வளைய வேறுபடுகின்றன என்ன?
போது பிந்தைய பயனுள்ளதாக இருக்கும்? "
அதனால் யாருக்கும் எந்த வேண்டும் -?
[மாணவர்] செய்யும் போது வளைய எப்போதும் குறைந்தது முறை இயக்க வேண்டும்.
ஆம். அந்த வித்தியாசம். ஒரு நேரத்தில் வளைய - I'll நான் இங்கே அதை செய்ய - லூப் போது, நாங்கள் நிபந்தனை
இங்கே, அதேசமயம் ஒரு செய்யும் போது நாம் இங்கு கிடைக்கும் வரை, நீங்கள் ஒரு நிலையில் இல்லை.
எனவே, உங்கள் நிரலை, அது போது சுழற்சி பெறும் போது
இந்த நிலையில் உண்மையாக இருந்தால் அதை உடனடியாக சரிபார்க்கிறது.
அந்த நிலையில் உண்மை இல்லை என்றால், அது முற்றிலும் சுழற்சிக்கு தவிர்க்கும்.
என்ன-போது வளைய நிரலை இயக்கும் போது, அது "என்று." கிடைத்தால்
எதுவும் இந்த கட்டத்தில் நடக்கும், தான் இயக்கும் தொடர்கிறது.
பின்னர் நிபந்தனை உண்மையாக இருந்தால் அது "அதே நேரத்தில்," எம் போது, அது வளைய வருகிறேன் மீண்டும் செய்ய
மீண்டும் மீண்டும் நிலையில் தான் வழியாக விழும் பிறகு உண்மை அல்ல வரை.
எனவே, வேறுபாடு இந்த தொடக்கத்தில் இருந்து சரியான தவிர்க்க முடியாது என்று, என்று.
இந்த அவசியம் முறை செயல்படுத்தி, நிலைமை இன்னும் உண்மையாக இருந்தால் இன்னும் முறை செயல்படுத்தப்படும்.
அதனால் சுழற்சி முறை மட்டுமே இதை செய்ய, அல்லது - போது கண்ணி - நாங்கள் அதை செய்ய தேவை இல்லாமல் இருக்கலாம்,
இந்த நிலையில் போலி என்றால் விரைவில் நாம் அது கிடைக்கும் என்பதால், நாம் தான் அதை சரியாக தவிர்க்க வேண்டும்.
அதேசமயம் செய்ய-அதே சுழற்சி, நாம் அவசியம், ஆனால் அதை செயல்படுத்த வேண்டும்.
அது உண்மை அல்லது பொய் என்றால், நாம் நிலை பெற போது, நாம் சோதிக்க.
இது உண்மை என்றால், நாம் மீண்டும் அதை செய்கிறேன்; இது தவறு என்றால், நாம் மட்டும் என்ன செய்வோம்.
எனவே போது பிந்தைய பயனுள்ளதாக இருக்கும்?
நான், 4 ஆண்டுகள் முழுமையாக, 3 ஆண்டுகளில், என்ன என்று சொல்ல முடியாது
நான் நிகழ்ச்சிகளை வருகிறோம் என்று, நான் 10 முறை கீழ், போன்ற, இந்த பயன்படுத்தப்படுகிறது.
நாம்-போது சுழல்கள் அறிமுகம் போது மற்றும் அநேகமாக அவர்கள் 5 CS50 உள்ளன.
எனவே நீங்கள் சுழல்கள் செய்ய-போது போது?
எப்போது - அப்படியா?
[மாணவர்] போது நீங்கள் பார்க்க வேண்டும் பயனர் உள்ளீடு, அல்லது ஏதாவது பெற முயற்சிக்கும் -
Yeah. அவ்வாறு-போது பயனர் உள்ளீடு பெரிய ஒரு சுழல்கள்,.
ஏன் முதல் இரண்டு பிரச்சனை படப்பிடிப்பு என்று, நீங்கள் விரும்பினால், பயனர் கேட்க வேண்டும் போது, தான்
நீங்கள் அந்த சரம் கிடைக்கும் வரை "எனக்கு ஒரு சரம் கொடுக்க," நீங்கள் தொடர முடியாது.
அதனால் நீங்கள், அவசியம், குறைந்தபட்சம் ஒரு முறை சரம் கேட்க வேண்டும்.
ஆனால் அவர்கள் மோசமான ஏதாவது பதில் என்றால், நீங்கள் மீண்டும் வளைய வேண்டும் மற்றும் மீண்டும் கேட்க.
ஆனால் பயனர் உள்ளீடு தவிர, அதை நான் ஒரு வழக்கை எதிர்கொள்ளும் என்று மிகவும் அரிதாக உள்ளது
நான் "குறைந்தபட்சம் ஒரு முறை" வளைய வேண்டும் ஆனால் இது இன்னும் எங்கு.
கேள்விகள் அல்லது -? யாராவது ஒரு செய்யும் போது வளைய வேறு எங்கும் பயன்படுத்தப்படுகிறது?
சரி. அடுத்த ஒரு எனவே, "என்ன அடையாளம் அண்டிக்ளேர்டு
கணகண வென்ற சப்தம் மூலம் outputted என்றால் பொதுவாக குறிக்கிறது? "
அதனால் என்ன வகையான குறியீடு நான் இங்கு எழுத முடியும் 'அண்டிக்ளேர்டு அடையாளம்?'
[மாணவர்] அந்த x = 2?
நாம் தான் இங்கே அதை முயற்சி செய்யலாம், x = 2.
நாம் இந்த இயக்க வேண்டும் - ஓ, நான் அதை கிளிக் இல்லை. இங்கு நாம் - அனைத்து உரிமையும்.
"அண்டிக்ளேர்டு அடையாளங்காட்டி x பயன்பாடு."
அதனால் அண்டிக்ளேர்டு அடையாளப்படுத்தி, ஒரு மாறி விட்டது.
இது அடிக்கடி ஒரு மாறி ஒரு அடையாளம் அழைக்கும்.
எனவே அது உண்மையில் ஒரு மாறி தான் தெரியாது; அது என்ன என்று தெரியாது.
அது ஒரு அடையாளம் தான்.
ஏன் அதை அண்டிக்ளேர்டு? Yeah.
எனவே சொல், ஒரு மாறி பிரகடனம் தெளிவாக இருக்க வேண்டும்
நீங்கள் "int x," அல்லது "சரம் y," என்ன சொல்ல போது தான்.
மாறி தொடக்கத்தின், அல்லது மாறி ஒதுக்குவதென்பது,
நீங்கள் எப்போது "x = 2." என்பது
நாம் தனி படிகளில் இந்த செய்ய முடியும், int x, x = 2, மற்றும் வரை - நாம் இங்கே உள்ள பொருட்களை ஒரு கொத்து முடியும் -
இந்த வரி நடக்கும் வரை ஆனால், x இன்னும் uninitialized, ஆனால் அது அறிவித்தது.
அதனால் நாம் தெளிவாக 1 வரி அதை செய்ய முடியும், இப்போது நாம் பிரகடனம் மற்றும் ஆரம்பிக்கும் உள்ளன.
கேள்விகள்?
இறுதியாக, "ஏன் சீசர் சைபர் மிகவும் பாதுகாப்பான இல்லை?"
எனவே முதல், யாராவது சீசர் சைபர் என்ன சொல்ல வேண்டும்?
[மாணவர்] சீசர் சைபர் நீ வரைய என்று, நீங்கள், ஒவ்வொரு கடிதம் மாற்ற
கடிதங்கள் ஒரு குறிப்பிட்ட எண்ணிக்கையிலான மேல் சென்று, அங்கே திரும்பி செல்ல, அது மிகவும் பாதுகாப்பான இல்லை, ஏனெனில்
அங்கு மட்டும் 26 சாத்தியம் விருப்பங்கள் மற்றும் உங்களுக்கு கிடைக்கும் வரை நீங்கள் அந்த ஒவ்வொரு 1 முயற்சிக்க வேண்டும்.
ஓ. எனவே, நான் மீண்டும் வேண்டும்?
சீசர் சைபர், it's - அதாவது, நீங்கள் அந்த சிக்கல்கள் அதை கையாள்வதில் -
அல்லது நான் ஹேக்கர் பதிப்பில் இல்லை என்று சிக்கல் தொகுப்பு நிலையான பதிப்பு நினைக்கிறேன்.
அதனால் பிரச்சனை ஜோடி நிலையான பதிப்பில், நீங்கள் ", வணக்கம், உலக", போன்ற செய்தி கிடைக்கும்
நீங்கள் மேலும் 6 போன்ற பல வேண்டும், மற்றும் நீங்கள் அந்த செய்தியை எடுத்து, மற்றும் ஒவ்வொரு தனிப்பட்ட தன்மை,
நீங்கள் எழுத்துக்களில் 6 பதவிகள் அதை சுழற்ற.
எனவே 'ம' ஹலோ H-i-J-K-L-M-n மாறியது.
எனவே முதல் கடிதம் n வேண்டும். நாம் மின்னஞ்சல் மூலம் அதையே செய்வார்கள்.
நாம் ஒரு இருந்தால், இப்படி, z அல்லது ஏதோ, நாம் சுற்றி திரும்பி ராப் 'ஒரு.'
ஆனால் ஒவ்வொரு தன்மையை எழுத்துக்களில் 6 எழுத்துக்கள் பின்னர் உதவுகிறது பெறுகிறார், இது மிகவும் பாதுகாப்பான இல்லை
நீங்கள் ஒரு கடிதம் மடிக்க எப்படி பல வழிகளில் மட்டும் 26 சாத்தியக்கூறுகள் உள்ளன என்பதால்.
அதனால் தான், ஒரு நீண்ட போதுமான செய்தியில், மறைமுகமாக, அவர்கள் அனைவரும் 26 முயற்சி செய்யலாம்
அந்த சாத்தியம் 26 விஷயங்கள் மட்டும் 1, தெளிவாக இருக்கும்
தெளிவானதுமாகும் ஒரு உண்மையான செய்தி போகிறது.
அது எதுவுமே மறையீடாக்கம் ஒரு நல்ல வழி அல்ல.
அந்த அரைக்கால் தொடர்பில்லாமல், "ஒரு செயல்பாடு என்ன?"
எனவே ஒரு செயல்பாடு என்ன? ஆம்.
[மாணவர்] நீங்கள் வழியாக சென்று, பின்னர் அதை திரும்ப மதிப்பு பெற அழைக்க முடியும் என்று குறியீடு தனி துண்டு போன்றது.
Yeah. மேலும், அடுத்த ஒரு பதில் அல்லது மீண்டும் - நான் அடுத்த பதிலளிப்பதன் மூலம், அதற்கு பதில் கூறுகிறேன்.
நீங்கள் மீண்டும் ஒரு குறியீடு காப்பியெடுத்து பேஸ்ட் பதிலாக செயல்பாடுகள் மீது பயன்படுத்த முடியும்.
இப்போது, அந்த குறியீடு எடுத்து ஒரு fuction அதை வைத்து, பின்னர் நீங்கள் செயல்பாட்டை அழைக்க முடியும்
எங்கு நீ காப்பியெடுத்து பேஸ்ட்.
எனவே செயல்பாடுகளை பயனுள்ளதாக இருக்கும்.
எனவே இப்போது, நாம் உண்மையான பிரச்சினைகள் செய்வேன்.
முதல் ஒரு. முதல் ஒரு யோசனை எனவே, நீங்கள் பொருட்படுத்தாமல் அதை ஒரு சரம் கடந்து, மற்றும் -
அல்லது அது அனைத்து ஸ்மால் சொன்னார்? இது அனைத்து ஸ்மால் சொல்ல முடியாது.
எனவே செய்தி எதுவும் இருக்க, மற்றும் முடியும் - ஓ. அது.
"எளிமை, நீங்கள் கருதலாம் பயனர் உள்ளீடு சிற்றெழுத்துக்களை மற்றும் இடைவெளிகள் மட்டுமே முடியும் என்று."
நாம் அது மட்டுமே சிற்றெழுத்துக்களை ஒரு செய்தியை அனுப்ப மற்றும் நாம் நாள் மாற்றி
மூலதன மற்றும் ஸ்மால் இடையே - நாம் சரம் மாற்று, மூலதனம் மற்றும் ஸ்மால் இருக்கும் மாற்ற.
எனவே, நாம், நீ கூட பிரச்சனை தொடர்பாக டைவ் இரண்டாவது கொடுக்க
நாம் செய்ய வேண்டும் என்று முதல் விஷயம் என்ன?
ஓ, என்ன நான் கிளிக்? ஓ, நான் இங்கே ஒரு மின்னஞ்சல் கிளிக்.
எனவே நாம் செய்ய வேண்டியது முதல் விஷயம் - நான் தவறான ஒரு பார்க்கிறேன்?
இந்த ஒரு பகுதியாக உள்ளது?
இல்லை, அந்த என்றாலும், அங்கு இன்னமும்.
சரி, இன்னும் இங்கே.
இப்போது நாம் கருதி முடியாது -? ஆம். இங்கு நாம் மட்டும் ஸ்மால் மற்றும் இடைவெளிகள் என்று கருதி முடியாது.
எனவே இப்போது நாம் கடிதங்களை நாம் இருக்க வேண்டும் என்ன இருக்க முடியும் என்று உண்மையில் சமாளிக்க வேண்டும்.
எனவே நாம் செய்ய வேண்டும் முதல் விஷயம் தான் செய்தி கிடைக்கிறது.
நாம் மட்டும் சரி, ஒரு சரம் பெற சரம் கள் = GetString வேண்டும்.
இப்போது இந்த பிரச்சினை, அதை செய்து வழிகளில் இரண்டு உள்ளன.
ஆனால் நாம் இங்கு பிட்நிலை செயற்குறிகள் பயன்படுத்த வேண்டும் போகிறீர்கள்.
அங்கு ஒன்று supersection இல்லை இருந்த மக்கள்,
அல்லது ஏதோ, மற்றும் பிட்நிலை செயற்குறிகள் என்ன தெரியாது?
அல்லது அவர்கள் எந்த வழியில் ஆஸ்கி தொடர்பு எப்படி?
[மாணவர்] நான் supersection இல்லை, ஆனால் நான் பிட்நிலை செயற்குறிகள் என்ன தெரியும்.
சரி. அதனால் நான் அவர்களை அடிப்படைகள் மீது செல்ல இல்லை, ஆனால் நான் சொல்கிறேன்,
நாம் இங்கே பயன்படுத்த வேண்டும் போகிறாய் என்ன.
எனவே 'ஒரு': மூலதன ஒரு பைனரி பிரதிநிதித்துவம், எண் 65 ஆகும்.
நான் பார்க்க போகிறேன் - 41 01000001 போகிறது.
அதனால் தசம 65 இருக்க வேண்டும்; இந்த பாத்திரம் மூலதன ஏ பைனரி பிரதிநிதித்துவம் இல்லை
இப்போது, தன்மை பைனரி பிரதிநிதித்துவம் 'ஒரு' சிற்றெழுத்து
கிட்டத்தட்ட, அதே போகிறது. 6 ஆம், - என்று. இது சரியா.
எனவே பைனரி மூலதன ஒரு, பைனரி ஸ்மால் 'ஒரு.'
அதனால் கவனிக்க ஒரு மற்றும் 'ஒரு' இந்த ஒற்றை பிட் ஆகும். வித்தியாசம்
இந்த 32 பிட், எண் 32 குறிக்கும் பிட் இருக்கும் நடக்கிறது.
ஒரு 65 என்பதால் அந்த அர்த்தமுள்ளதாக; 'ஒரு' 97 ஆகும்.
அவர்களுக்கு இடையே உள்ள வேறுபாடு, 32.
எனவே இப்போது நாம் ஒரு எடுத்து ஒரு 'ஒரு' இருந்து மாற்ற முடியும் என்று
மற்றும் பிட்வைஸ் கொண்டு, அதை ORing - ஒரு 1 போல் தெரிகிறது.
இந்த 00100000 ஒரு பிட்வைஸ் அல்லது, இது, அது எங்களுக்கு கொடுக்க வேண்டும் 'ஒரு.'
நாம் பிட்வைஸ் ANDing ஒரு 'ஒரு' இருந்து பெற முடியும்
அந்த இடத்தில், 11111 11, 0.
, ஆனால் இந்த தனிப்பட்ட பிட் அவுட் ரத்து; இந்த பிறகு 'ஒரு' என்று சரியாக என்ன நமக்கு கொடுக்கும்
நாம் 01000001 வேண்டும்; நான் கணக்கிடப்படும் எனக்கு தெரியாது.
ஆனால் பிட்வைஸ் ORing இந்த உத்தி, சிற்றெழுத்து மூலதனத்தை இருந்து பெற
மற்றும் பிட்வைஸ் ஸ்மால் இருந்து மூலதன பெற ANDing ஏ பிரத்தியேக அல்ல
கடிதங்கள் அனைத்தும், Vs கே கே, Z எதிராக z,
அவர்கள் அனைவரும் இந்த ஒற்றை பிட் வேறுபடலாம் போகிறோம்.
அதனால் நீங்கள் எந்த மூலதன கடிதம் மற்றும் இதற்கு நேர்மாறாகவும் எந்த சிற்றெழுத்துக்கும் இருந்து மாற்ற இந்த பயன்படுத்தலாம்.
சரி. இந்த இருந்து பெறுவது மிகவும் எளிதான வழி - அதனால் பதிலாக கொள்வது
என்ன 1011111 அவுட் எழுத - இந்த எண்ணை குறிக்கும் ஒரு சுலபமான வழி, இந்த ஒரு அல்ல
என்று நான் supersection மேல் சென்று, ஆனால் டில்டே (~) மற்றொரு பிட்வைஸ் ஆபரேட்டர் உள்ளது.
என்ன செய்வது ~~~V இது பிட் பிரதிநிதித்துவம் உள்ள போல் தெரிகிறது.
அது எந்த எண் அழைத்து செல்லலாம்.
இந்த சில பைனரி எண், மற்றும் ~ இது என்ன இது பிட்கள் அனைத்து திருப்பங்கள.
இந்த இப்போது 0, இந்த, இப்போது, 010100 1 ஒரு 0, 1 இருந்தது.
அதனால் தான் அனைத்து ~ இல்லை. அந்த விடுபட - 32 எண் போகிறது -
எனவே 32 எண் 00100000 போகிறது, அதனால் இந்த ~~~V போகிறது
நான் 'ஒரு' ANDed என்று இங்கே இந்த எண்ணை.
எல்லோரும் என்று பார்க்க வேண்டும்? இந்த நீங்கள் கண்டுபிடிக்க வேண்டும் போது போல், அழகான பொதுவான
நாம் பார்க்க வேண்டும் போது நாம் பார்த்து கொண்டு இருக்க வேண்டும் என்று பின்னர் விஷயங்கள் -
அல்லது நாம் 1 தவிர அனைத்தையும், ஒவ்வொரு பிட் தொகுப்பு வேண்டும்
நாம் அமைக்க வேண்டாம் என்று பிட் என்ற ~~~V செய்ய முனைகின்றன.
எனவே 32 பிட் தொகுப்பு விரும்பவில்லை, நாங்கள் 32 ~~~V ஆகவே.
சரி. எனவே நாம் இங்கு அனைத்து பயன்படுத்தலாம்.
சரி, அதை நீங்கள் செய்யவில்லை என்றால், நாம் மெதுவாக, ஒன்றாக மேல் நடக்க வேண்டும் நல்லது
அல்லது, இந்த மேல் நடக்க - இந்த வழியாக. இந்த வழியாக நடந்து.
எனவே நாம் நமது சரம் வேண்டும், மற்றும் நாம் ஏதாவது என்று சரம் ஒவ்வொரு பாத்திரத்தின் மீது வளைய வேண்டும் மற்றும் செய்ய.
நாம் எப்படி ஒரு சரம் மேல் சுழற்சி செய்ய? நாம் என்ன பயன்படுத்த வேண்டும்?
நான் இங்கே அதை செய்ய போவதில்லை. Yeah.
அதனால் நான் என் இயக்கி இருந்தால், அவர் அதை கூறினார், ஆனால் எப்படி நான் சரம் உள்ளன எத்தனை எழுத்துக்கள் தெரியும்?
Strlen (கள்), பிறகு நான் +.
அதனால் நான் இங்கே செய்த விஷயங்களை செய்து சிறந்த வழி அல்ல.
ஏன் தெரியுமா?
நீங்கள் சரம் ஒவ்வொரு கால மொழி பரிசீலித்துக்கொண்டிருக்கிறோம் ஏனெனில்.
நாம் strlen நகர்த்த வேண்டும் போகிறீர்கள் எனவே, நான் இங்கு சொல்ல முடியும், முழு எண்ணாக நீளம் = strlen (கள்),
பின்னர் நான் <நீளம், மற்றும் வழக்கில் நீங்கள் முன் பார்த்தது இல்லை,
நான் செய்ய எண்ணாக நான் = 0, நீளம் = strlen (கள்).
எனவே இந்த இப்போது முதல் நான் நோக்கம் தடை செய்து, சற்றே விரும்பத்தக்கதாக இல்லை
மாறி நீளம் பதிலாக வளைய 'க்கு' இந்த, முன் அறிவித்தார்
மேலும், அது எப்போதும் உள்ளது, மற்றும் அந்த கெட்ட ஏன் வழக்கில் நீங்கள் பிடிக்க வில்லை என்று
அல்லது ஏன் அசல் it's, மோசமாக இருந்தது - லூப் மணிக்கு தொடங்கும்.
நான் நிலைமையை சரி. நான் கள் நீளம் <?
எனவே கள் நீளம், முழு நேரம் "ஹலோ" வேலை செய்யலாம்.
கள் மிகவும் நீளம், H-e-l-l-o. நீளம் 5.
அதனால் நான் = 0, நீளம் 5, எனவே நான் <5 அல்ல, சுழற்சி தொடர்ந்து அவ்வாறு.
நாம் மீண்டும் போய். நாம் நிலையில் சரிபார்க்கவும். நான் ஹலோ நீளம் <?
எனவே ஹலோ நீளம் பார்க்கிறேன். H-e-l-l-o. நான் <5 அல்ல, நாம் மீண்டும் தொடர; அந்த 5 தான்.
எனவே, லூப் ஒவ்வொரு மறு செய்கை நாம் ஹலோ எண்ணுகிறாய், கணக்கிடுகிறது
அது எப்போதும் 5 இருக்க போகிறது; கூட அதை மாற்ற போவதில்லை என்று நினைத்தேன்.
எனவே நாம் தான் முன் வரை 5 நினைவில், இப்போது எல்லாம் நல்லது.
எனவே முழு சரம் மீது தேடி.
நாம் சரம் ஒவ்வொரு தன்மை என்ன செய்ய வேண்டும்?
[மாணவர் பேசும், புரிந்து]
Yeah. பாத்திரம் அல்லாத அகர இருந்தால் அதனால், நாம் தான் அதை தவிர்க்க வேண்டும்.
நாம் மட்டும் அகர எழுத்துக்களை பற்றி கவலையில்லை ஏனென்றால், நாம் பல மூலதனமாய் முடியாது.
நாம் எப்படி இதை செய்ய முடியும்? நாம் ஏதாவது விரும்பினால் எங்கள் நிலை எனவே, - அதை அகரவரிசை என்று பார்த்து.
நாம் எப்படி இந்த சோதனை?
[மாணவர்] நீங்கள் செயல்பாட்டை பயன்படுத்தலாம் ஆல்பா உள்ளது.
இந்த இரண்டு, அல்லது எந்த சேர்க்கப்பட்டுள்ளது என்று போன்ற, char.h அல்லது ஏதாவது அடங்கும்?
எனவே கள் [நான்] வேண்டும், - ஆல்பா செயல்பாடு, மற்றும் வெளிப்படையான பயன்படுத்த நாம்
என்று கள் எட்டாவது கதாபாத்திரம், ஒரு சரம் எழுத்துக்கள் ஒரு வரிசை என்று நினைவில்
கள் எட்டாவது தன்மை மிகவும்.
அது ஒரு மூலதன கடிதம் இருந்தால் இப்போது, நாம் ஒரு குறிப்பிட்ட வரம்பில் இருக்க வேண்டும் என்று.
அந்த எல்லை என்ன?
Yeah. நீங்கள் கள் [நான்] ≥ 65, மற்றும் கள் ஆகும் [நான்] ≤ 90 ஆகும், நான் அதற்கு பதிலாக என்ன செய்ய வேண்டும்?
Yeah. எனவே நீங்கள் சொல்வது கூட ஏதாவது ஒரு ஆஸ்கி மதிப்புகள் அறிய வேண்டும் கூடாது.
எண்கள் 65, 90, 97 மற்றும் 102, அல்லது என்ன இது என்று இல்லை.
நீங்கள் தேவையில்லை - 112 -? நீ அந்த தெரிய வேண்டிய அவசியம் இல்லை. அதுவும் தவறு.
ஒரே ஒற்றை மேற்கோள் பாத்திரங்கள், ஒற்றை மேற்கோள் மாறிலிகள் பயன்படுத்த. எனவே 'ஒரு' மற்றும் குறைவான 90 'இசட்' ஆகும்
இந்த குறிப்பிடத்தக்க நல்லது - நான் Z 90 என்று என் தலை மேல் தூக்கி தெரியாது.
நான் 'Z' மூலதன இசட் என்று என் தலை மேல் தூக்கி தெரிகிறேன்
எனவே நீண்ட இந்த ஒரு மூலதன Z, அல்லது நாம் மூலதன வரம்பில் உள்ளது, ஸ்மால் சோதிக்க முடியும்
அல்லது அது வரம்பில் என்றால் ≥ 'ஒரு' மற்றும் ≤ z.
அதனால் எங்கள் நிபந்தனை.
இந்த விஷயங்களை வைத்து அங்கு ஒரு பாணி மாறுபடுகிறது.
நான் இதை செய்வேன்.
இப்போது, நாங்கள் என்ன செய்ய வேண்டும் என்று விரும்புகிறீர்கள்?
இந்த கடிதம், ஒரு அகரவரிசை ஒரு பாத்திரம் என்று.
எனவே நாம் இந்த ஒரு மூலதன கடிதம் அல்லது ஒரு சிற்றெழுத்துக்கும் இருக்க வேண்டும் என்பதை இடையே நாள் மாற்றி வேண்டும்.
எப்படி நாம் அது வேண்டும், இது ஒரு கண்காணிப்பதற்கான?
[மாணவர் குரல்கள், புரிந்து]
எனவே ஆம், நான் பார்க்கிறேன்.
தொகுதி 0-2 கூறப்பட்டது, வெளியே ஒரு யோசனை இருந்தது, நான் அதை ஒப்புக்கொள்கிறேன்.
அறிவிப்பு தவிர போல, என்று - இந்த வழக்கு? Yeah.
ஒவ்வொரு மற்ற தான், ஆனால் நாங்கள் நான் ஒரு தொகுதி 2 முடியாது, அல்லது பின்னர் நான் மோட் 2,
மின் மூலதனம் மற்றும் 'ஒரு' ஸ்மால் என்பதை நீங்கள் கவனிக்க? ஆனால் அவர்களை பிரிக்கும் ஒரு இடைவெளி இருக்கிறது?
எனவே அவர்கள் அதே மோட் 2 போகிறாய், ஆனால் அவர்கள் பல்வேறு சந்தர்ப்பங்களில் தான்.
[மாணவர் கேள்வி, புரிந்து]
Yeah. எனவே நாம் ஒரு எண்ணிக்கை வைக்க போகிறோம்.
நாம் விரும்பினால் நாங்கள் இங்கே அதை செய்ய முடியும்; ஒரு சிறிய கடினம் வந்துவிடும்
வளைய அறிவிப்புக்கள் உள்ள நான் இங்கே அதை போடுகிறேன்.
எனவே எண்ணாக எண்ணிக்கை = 0 தொடங்குகிறது.
எனவே இப்போது, நாம் தான் நான் எத்தனை அகரவரிசை எழுத்துகள் எண்ண போகிறேன்.
எனவே தவிர்க்க முடியாமல் நாம் மற்றொரு அகரவரிசை எழுத்து காணப்படவில்லை + இருந்து எண்ண போகிறோம்.
ஆனால், இப்போது நீங்கள் எண்ணிக்கை மோட் 2 சொல்கிறீர்கள்.
அதனால் என்ன எண்ணிக்கை மோட் 2 என்றால்? ஓ. நான் இப்போது == 0 செய்வேன்.
நாம் அந்த வழியாக செல்லலாம். அதனால் என்ன, எண்ணிக்கை மோட் 2 == 0 என்றால்?
[மாணவர்கள் பதில், புரிந்து]
நாம் அது தொடரை முடிவுக்கு வேண்டும்.
2 வழக்குகள் உள்ளன; தொடரை மற்றும் ஸ்மால் 2 வழக்குகள் உள்ளன.
நாம் கீழ் அடுக்கில் என்றால் நாம் அதை பேரெழுத்து வேண்டும்.
இது பெரிய எழுத்தில் இருந்தால் நாம் ஒன்றும் செய்ய தேவையில்லை.
ஆனால், ஒரு வழி உள்ளது - shouldn't சுண்டி வேண்டும் -
நாம் அது தொடரை அல்லது ஸ்மால் என்று பார்க்க தேவையில்லை என்று?
நாம் எப்போதும் பெரிய எழுத்தில் உள்ள முடிவுக்கு என்று உறுதி செய்ய என்ன செய்ய முடியும்?
நாம் ஸ்மால் 'ஒரு' என்ன செய்தார்களோ அறிவிப்பு; நாம் ஒரு பேரெழுத்து இந்த ஒரே சரியான விஷயம் என்ன என்றால்?
ஒரு மாற்றம் பேரெழுத்து இல்லை, அல்லது மதிப்பு மாற்றம் என்ன?
Yeah. எனவே ~ 32 ANDed எந்த மூலதன கடிதம் பிட்வைஸ் அதே மேல்வரிசை எழுத்துக்குறி போகிறது
ஏனெனில் எந்த தொடரை கதாபாத்திரத்திற்காக 32 வது பிட் அமைக்கப்படவில்லை.
நாம் கள் [நான்], நாம் அதை ஸ்மால் அல்லது தொடரை ஆக வேண்டும் தன்மையை கொண்டு வர வேண்டும் என்றால்.
இது ஸ்மால் இருந்தது என்றால், அது பெரிய எழுத்தில் இருந்தால், அது இன்னும் பெரிய எழுத்தில் தான், அவ்வளவு தான், இப்போது பெரிய எழுத்தில் உள்ளது.
நான் supersection இந்த said: நீங்கள் விரும்பினால் 32 பயன்படுத்தலாம், ஆனால் நான் 'ஒரு' செய்து விரும்பினால் போக்கை - ஏ,
அதற்கு பதிலாக வெறும் 32, ஏனெனில் அது மற்ற பிட் முடியும்.
32 பிட் பிறகு, இந்த எந்த இருக்கலாம், அல்லது நாம் போதுமான இல்லை என்று
எல்லா கதாபாத்திரங்களும் பிரதிநிதித்துவப்படுத்துவதாக எண்கள்.
நீங்கள் 32 பிட் செய்து இருந்தால், அதை 64 பிட் இருக்க முடியும், அது 128 பிட் இருக்க முடியும்.
அந்த பிட்கள் எந்த காபிடல் எழுத்துகளையும் சிறிய இடையே வேறுபடுத்தி என்று பிட் இருக்க முடியும்.
நான் 32 பிட் என்று தெரிந்து கொள்ள வேண்டும் கூடாது.
நான் இந்த 'ஒரு' பயன்படுத்த முடியும் - இரண்டு இடையே வேறுபடுகிறது என்று பிட் பெற
32 என்று மேஜிக் எண் தங்கியிருக்க தேவையில்லாமலேயே.
அதனால் இப்போது, வேறு மாதிரி இருந்தது எண்ணுவதற்கு, மற்றும் அதனால் நான் என்ன செய்ய வேண்டும் என்று விரும்புகிறீர்கள்?
[மாணவர் பதில்கள், புரிந்து]
[மாணவர்] என்று என்ன?
நான் 1 இரண்டாவது அதை செய்வேன்.
எனவே இப்போது நான் விரும்பினால் - நான், பாத்திரம் இப்போது ஸ்மால் என்பதை உறுதி செய்ய வேண்டும்
அதனால் நான் அல்லது 32 மூலம், மற்றும் 32 பொருள் 'ஒரு' - ஏ
ஆனால் முந்தைய ஒரு அதே காரண மூலம் அறிவிப்பு,, என்று இருந்தால்,
கடிதத்தில் பின் 32 மூலம் அதை சிற்றெழுத்து வைத்திருக்கும் ORing, ஏற்கனவே ஸ்மால் இருந்தது.
இது அசல் தன்மையை மாறவில்லை.
ஆனால் இப்போது நான், அதை ஸ்மால் இருந்தால், அதை பற்றி மறந்து ", என்று தவிர்க்க இல்லை
அது தொடரை என்றால், அது மாற்ற. "
இது மிகவும் வசதியான இதை செய்ய வேண்டும்.
[மாணவர்] இது 32 இல்லையென்றால் ஸ்மால் வேலை தொடரை கழிப்பதன் அந்த மூலோபாயம் கெடுத்துவிடுமா?
அது இருந்தால், 34 அல்லது ஏதாவது விரும்புகிறீர்களா?
எனவே, நீங்கள் 2 இடையே உள்ள வேறுபாடு என்று அறிய வேண்டும் -? >> 1 பிட்.
இது வரை இந்த நிலை கீழே பிட்கள் அனைத்து அதே போல், அதிகமான 1 பிட் இருக்க முடியும்.
26 எழுத்துகள் உள்ளன, அல்லது - நாம் குறைந்தது 26 எழுத்துக்கள் வேண்டும்.
எனவே நாங்கள் வேறுபாடு பிரதிநிதித்துவப்படுத்தும் குறைந்தது 26 எண்கள் தேவை -
ஒரு மற்றும் 'ஒரு' குறைந்தது 26 இருக்க வேண்டும், இடையில் வேறுபாடு
அல்லது வேறு நாம் அனைத்து மூலதன எண்கள் குறிப்பிடப்படுகின்றன முடியாது.
என்று, ஒரு, நாம் 1 மணிக்கு ஆரம்பித்தால், அது இந்த பிட்கள் பயன்படுத்த நடக்கிறது என்று அர்த்தம்
இசட் மூலம் அனைத்தையும் பிரதிநிதித்துவம் இந்த முதல் 5 துணுக்குகள், அனைத்து
என்று ஏன் அடுத்த பிட், அல்லது இந்த பிட் தான், அடுத்த பிட் மற்றும் வேறுபடுத்தி தேர்வு என்று ஒரு 'ஒரு.'
மேலும், அதனால் தான் ஆஸ்கி அட்டவணையில், சிற்றெழுத்துக்களை இருந்து மூலதன கடிதங்களை பிரிக்கும் 5 குறியீடுகள் உள்ளன.
அந்த சின்னங்கள், அவர்களுக்கு இடையே வேறுபாடு இருப்பது 32 காட்டும் என்று கூடுதல் 5 உள்ளன.
[மாணவர்] எனவே ASCII, அந்த வழியில் வடிவமைக்கப்பட்டுள்ளது ஏனென்றால் நாம், அதை செய்ய முடியும்.
ஆம். ஆனால் ஆஸ்கி - வேறுபாடு இந்த பிட்கள் இருவரும் இருக்க முடியும்.
ஒரு 10000001, மற்றும் 'ஒரு' 11100001 இருந்தால், போன்ற - நான் என்ன, மறக்க.
ஏ - இது இருந்தது ஆனால், நாம் இன்னும் 'ஒரு' பயன்படுத்த முடியும்
அது இப்போது ஒரு மற்றும் 'ஒரு' இன்னும் இந்த 2 பிட்கள் வித்தியாசம்.
நான் 48 எழுதியிருக்கிறது என்று. இது 32 + 64 ஆகும்? நான் நினைக்கிறேன்?
ஒவ்வொரு தன்மை, போன்ற, இசட் மற்றும் z, கே மற்றும் கே, அது இன்னும் 2 பிட்கள் என்று
அவர்கள் இன்னும் அந்த 2 பிட்கள் தவிர அமைக்க அதே துல்லியமான பிட்கள் வேண்டும்.
எனவே நீண்ட நாம் ஆஸ்கி அல்லது வேறு சில முறை பயன்படுத்தி நீங்கள் அந்த இருந்தாலும், எப்போதும் உண்மை என,
நீண்ட ஒவ்வொரு தன்மை வேறு என்று பிட்கள் ஒரு தொகுதி எண் மட்டுமே உள்ளது போல்,
பின்னர் அது நன்றாக வேலை செய்கிறது.
அதை நாம் சாத்தியமான பயன்படுத்த முடியும் முதல் ஒரு காரணம் 32 அமைக்கப்பட்டது போய்விடுகிறார்கள். கூல் >>.
நான், தொகுதி ஒரே ஒரு வரி இருந்தால் நீங்கள், நான் பார்த்ததில்லை வழக்கில், விரும்பினால் போக்கை
நீங்கள் சுருள் ப்ரேஸ் விடுபட முடியும்; எனவே நான் இதை விரும்புகிறார்கள் முனைகின்றன.
மேலும், நாம் கள் [நான்] + = 1 போன்ற விஷயங்களை செய்ய முடியும் என்று?
நீங்கள் என்ன செய்ய முடியும் கள் [நான்] பிட்வைஸ் மற்றும் = 32.
மற்றும் பிட்வைஸ் அல்லது = 32.
மேலும், மோட் 2 == 0 எண்ணுவதற்கு.
அந்த நினைவில் - நான் எழுத மாட்டேன் - எந்த அல்லாத பூஜ்ஜியம் மதிப்பை உண்மையாக, மற்றும் 0 தவறானது.
எனவே "எண்ணிக்கை மோட் 2 என்றால் == 0" என்று தான் "மோட் 2 எண்ண வேண்டாம் என்றால்."
நான் ஒருவேளை நான், வரிகளை மாற்றி மற்றும் என்றால் எண்ணிக்கை மோட் 2 ", என்றார்
அல்லது 1, வேறு மற்றும் 1, இல்லை "என்று நான் தேவை இல்லை". "
ஆனால் இது போன்ற நல்ல வேலை.
மற்றும் நான் இங்கே வேறு என்ன செய்ய முடியும்?
நீங்கள் விரும்பினால், மும்மை அவற்றை இணைக்க முடியும், ஆனால் பின்னர் தான் விஷயங்களை மெஸ்ஸியர் செய்வேன் என்று
மேலும் வாசிக்க ஒருவேளை இன்னும் கடினம், எனவே நாம் அதை செய்ய மாட்டேன்.
யாருக்கும் எந்த பரிந்துரைகளை வேண்டும்?
அனைத்து பிரச்சினை கேட்டேன் என்று? ஓ.
எனவே இந்த வெற்று வரிகளை விடுபட, இப்போது நாம் f,% கள் அச்சிட வேண்டும் சரங்களை ஒரு இருப்பது,
நாம், கள் f அச்சிட வேண்டும்.
இப்போது அதை இயக்க அனுமதிக்க. நான் எந்த தவறும் செய்ய வில்லை?
என்று "ஒரு \ தான்; நான் ஒரு n வேண்டும்.
சரி. இப்போது நாம் அதை இயக்க வேண்டும். இது அநேகமாக என்னிடம் கத்துவார்கள் வேண்டும்.
Strlen string.h உள்ளது.
இந்த கணகண வென்ற சப்தம் பற்றி நல்ல விஷயம் தான் அது, அது என்ன உங்களுக்கு சொல்கிறது
பதிலாக, நிதி இது GCC இன் "ஏய், நீ ஏதாவது மறந்துவிட்டேன், அது என்ன என்று எனக்கு தெரியவில்லை."
ஆனால் இந்த சொல்ல வேண்டும், "நீங்கள் string.h சேர்க்க பொருள்."
அதனால் நான் எதையும் கேட்டு கொள்ளவில்லை, அதனால் எதுவும் சொல்லவில்லை.
ஆனால் நாம் அவர்களை உதாரணமாக செய்வேன், "4 சேர்க்கவும் நன்றி".
அந்த உரிமை இருக்கிறது. ஹைய்யா.
அதனால் உங்கள் முக்கிய திரும்பி, நான் கிட்டத்தட்ட செய்ய முடியாது.
இது விருப்ப தான். மற்றும் முக்கிய இது விருப்ப இது மட்டுமே செயல்பாடு உள்ளது.
நீங்கள் முக்கிய இருந்து எதையும் தரவில்லை என்றால், அதை நீங்கள் 0 திரும்ப பொருள் என்று கருதப்படுகிறது.
கேள்விகள்?
சரி. அதனால் இப்போது இரண்டாவது பிரச்சனை.
"கடந்து 2 மாறிகள் 'மதிப்புகள் மாற்றம் என்று வாரம் 2 இரண்டாவது விரிவுரை இருந்து நினைவு
ஒரு செயல்பாடு (இடமாற்று என்று கூட) அந்த 2 மாறிகள் சரியாக குறைந்தது அல்ல இல்லாமல், வேலை இல்லை 'சுட்டிகள்.' "
நாம் அவர்களுக்கு கிடைக்கும் வரை மற்றும் குறிப்புகள் புறக்கணிக்க.
நாங்கள் 2 மாறிகள் மாற்ற வேண்டும்; நாங்கள் அதை செய்ய ஒரு செயல்பாட்டை பயன்படுத்தி இல்லை.
நாங்கள் இன்னும் அதை சொல்வது போன்ற முக்கிய அதை செய்ய போகிறோம்.
ஆனால் அந்த 2 மாறிகள் பயன்படுத்த, நாங்கள் ஒரு தற்காலிக மாறி பயன்படுத்த விரும்பவில்லை.
இதை செய்ய 2 வழிகள் உள்ளன.
நீங்கள் உங்கள் பாரம்பரிய பைனரி ஆபரேட்டர்கள் மூலம் அதை செய்ய முடியும்.
எனவே யார் என்று செய்து ஒரு விரைவான மற்றும் அழுக்கு வழி தெரியும்?
அது உண்மையில் சிந்தனை ஒரு நிமிடம் ஆகலாம். நான் இருந்தால் -
அவர்கள் கேட்பது போல் நான் பிரச்சனை அமைக்க வேண்டும். நான் 2 மாறிகள் வேண்டும் என்றால், ஒரு, இது ஒரு முழு
அவர்கள் என்னிடம், நான் கொடுத்த என்று மற்றொரு முழு எண்ணாக இது கூட்டுத்தொகையாக மாறி பி, என்று.
நான் இந்த 2 மாறிகள் இருக்கிறது என்றால், இப்போது நான் அவர்களை மாற்ற வேண்டும்.
பாரம்பரிய, உங்கள் வழக்கமான பைனரி ஆபரேட்டர்கள் பயன்படுத்தி, அதாவது, + போல், -, ÷.
பைனரி செயல்பட இது பிட்நிலை செயற்குறிகள் இல்லை.
, + ÷, மற்றும் அனைத்து - அதனால் பயன்படுத்தி.
நாங்கள் எதோ செய்து இடமாற்ற முடியும் ஒரு = a + b, மற்றும் ப = ஒரு - ப, ஒரு = ஒரு - ப.
எனவே, நல்லறிவு சரிபார்த்து, பிறகு நாம் ஏன் அந்த வேலை பார்க்கிறேன்.
நாம் சொல்ல ஒரு = 7, ப = 3, பின்னர் ப 10 போகிறாள் ஒரு +.
நாம் இப்போது ஒரு = 10 அமைப்பது, மற்றும் நாம் ப = ஒரு செய்கிறாய் - ப.
எனவே நாம் செய்கிறோம் ப = ஒரு - ப, 7 ஆக போகிறது என்பது, மற்றும் ப = ஒரு - ப மீண்டும்,
அல்லது ஒரு = ஒரு - ப. 7 3 இது - 10 போகிறேன் இது.
அதனால் இப்போது, சரியாக, 'ஒரு' ப 3 இருந்தார், 7, மற்றும் இப்போது ப 7 மற்றும் 'ஒரு' 3.
அந்த வகையான அர்த்தமுள்ளதாக; 'ஒரு' 2 எண்கள் கலவையாகும்.
இந்த கட்டத்தில், 'ஒரு' கூட்டு, மற்றும் நாம் அசல் ப அவுட் கழிப்பதன் நீங்கள்
மற்றும் நாம் அசல் என்ன அவுட் கழிப்பதன் 'ஒரு.'
ஆனால் இந்த அனைத்து எண்கள் வேலை செய்யாது.
இந்த பார்க்க, ஒரு முறை என்று நான்; நாம் வழக்கமாக 32 பிட்கள் என முழுஎண்களின் என்று.
ஒரே 4 பிட்கள் போல் தான் ஏதாவது வேலை செய்யலாம்.
வட்டம் நான் இப்போது ஒரு நல்ல உதாரணம் கொண்டு வருகின்றனர்.
எனவே, எனக்கு தெரியும், இந்த எளிதாக இருக்கும்.
நாம் நமது 2 எண்கள் 1111, மற்றும் 1111 என்கிறார்கள்; நாம் இப்போது பைனரி இருக்கிறோம், அதனால்.
உண்மையான தசமங்கள், நீங்கள் அதை அப்படி நினைக்க வேண்டும் என்றால், ஒரு = 15 மற்றும் ப = 15.
அதனால் நாம் அவர்களை இடமாற்றம் பிறகு, எதிர்பார்க்க - அவர்கள் கூட, அதே எண்ணிக்கையில் இருக்கும் இல்லை
ஆனால் நான் இந்த வழியில் செய்தார்.
நாம் அதே எண்ணிக்கையில் அவர்கள் செய்யும். 1111 மற்றும் 0001 செய்வோம்.
எனவே ஒரு = 15 மற்றும் ப = 1.
நாம் மாற்றிய பிறகு, நாம் 'ஒரு' 1 மற்றும் பி 15 என்று எதிர்பார்க்கிறோம்.
எனவே எங்கள் முதல் படி ஒரு = a + b.
0001 இது எங்கள் எண்கள் மட்டும் 4 பிட்கள் பரந்த, எனவே 'ஒரு' 1111 இது + ஆ,,
10000 என்ற முடிவுக்கு சென்று, ஆனால் நாம் மட்டும் 4 பிட்கள் உள்ளன.
எனவே இப்போது ஒரு = 0.
ப - - உண்மையில், இந்த இன்னும் செய்தபின் அவுட் வேலை மற்றும் இப்போது நாம் ப = ஒரு அமைக்க வேண்டும்.
ஒரு = ஒரு - ப - இந்த செய்தபின் வெளியே வேலை செய்தால் நாம் பார்ப்போம்.
எனவே பின்னர் ப = 0 - பின் இன்னும் 15 என 1, மற்றும் ஒரு = ஒரு - ப, இதில் 1 வேண்டும்.
ஒருவேளை இந்த வேலையை செய்கிறது.
இது வழக்கமான பயன்படுத்தி வேலை செய்யாது ஒரு காரணம் உள்ளது போல் நான் உணர்கிறேன்.
சரி, அது வழக்கமான பைனரி நடவடிக்கைகளை வேலை இல்லை என்று அனுமானம் வேலை,
மற்றும் நான் இருப்பேன் - நான் உண்மை என்று பார்க்க Google வேண்டும்.
நாம் பிட்நிலை செயற்குறிகள் பயன்படுத்தி அதை செய்ய வேண்டும், மற்றும் இங்கே துப்பு எக்ஸ்ஓஆர் உள்ளது.
எனவே, நீங்கள் இன்னும் அதை பார்க்கவில்லை என்றால் எக்ஸ்ஓஆர் (^) அறிமுகம்.
அதை மீண்டும், தான், ஒரு பிட்வைஸ் ஆபரேட்டர் அது பிட், மற்றும் it's மூலம் பிட் செயல்படும் எனவே -
நீங்கள் பிட்கள் 0 மற்றும் 1 இருந்தால், இந்த 1 இருக்கும்.
நீங்கள் பிட்கள் 1 மற்றும் 0 இருந்தால், அது 1 நான், நீ, 0 வேண்டும் பிட்கள் 0 மற்றும் 0 வேண்டும்
நீங்கள் பிட்கள் 1 மற்றும் 1 இருந்தால் அதை 0 வேண்டும்.
எனவே இது போன்ற அல்லது. பிட்கள் அல்லது உண்மையாக இருந்தால், அது 1, ஆனால் அல்லது அல்லாமல், அதை உண்மை என்று இரண்டு பிட்கள் இருக்க முடியாது.
அல்லது இந்த 1 வேண்டும், எக்ஸ்ஓஆர் இந்த 0 இருக்க வேண்டும்.
நாம் இங்கே எக்ஸ்ஓஆர் பயன்படுத்த வேண்டும் போகிறோம்.
ஒரு நிமிடம் அதை பற்றி யோசிக்க நான் கூகிள் போகிறேன்.
சரி, நீங்கள் அந்த வாசிக்க முடியாது; நான் எக்ஸ்ஓஆர் இடமாற்று நெறிமுறை பக்கத்தில் தற்போது தான்.
நான் can't ஏன் வட்டம் இந்த விளக்கும் -
இந்த துல்லியமாக நாம் தான் என்று வழிமுறையாகும்.
நான் இன்னும் ஏன் பார்க்க வேண்டாம் - நான் ஒரு மோசமான உதாரணமாக எடுத்து வேண்டும்,
ஆனால் 'ஒரு' அதனால் இப்போது 'ஒரு' 0, 5 பிட்டுகளுக்கு பிறகு, 0 ஆக நடந்தது இந்த வழக்கு,
என்று என்பது "முழு வழிதல்."
விக்கிபீடியா கருத்தின்படி, "எக்ஸ்ஓஆர் இடமாற்று போலல்லாமல், இந்த மாற்றம் சில முறைகள் பயன்படுத்தும் தேவை
X + Y ஒரு முழு எண் வழிதல் ஏற்படாது என்று உத்தரவாதம். "
இந்த முழு வழிதல், ஆனால் நான் ஏதாவது தவறு செய்யவில்லை; எனவே இந்த பிரச்சினைகள் கிடையாது.
நிச்சயமாக இல்லை. நான் வேறு ஒரு கொண்டு வர முயற்சி செய்கிறேன்.
நீங்கள் அங்கு பல வைக்க முயற்சிக்கும் போது [மாணவர்] சரி, முழு வழிதல் அல்ல
நீங்கள் ஒதுக்கீடு வேண்டும் பிட்கள் அளவு விட பெரிய?
Yeah. நாம் 4 பிட்கள் உள்ளன. That's - நாம் 4 பிட்கள் என, நாம் அதை 1 சேர்க்க முயற்சி, நாம் 5 துணுக்குகள் முடிவடையும்.
ஆனால் ஐந்தாவது பிட் தான் சரி, வெட்டி.
அது உண்மையில் வலிமை -
[மாணவர்] என்று நீங்கள் பிழை தூக்கி, அல்லது அப்படி - என்று ஒரு பிழை துரத்த வேண்டும்?
இல்லை எனவே எந்த பிழை உள்ளது. நீங்கள் சட்டமன்ற நிலை போது, ஒரு சிறப்பு பிட்
எங்கோ ஒரு வழிதல் இருந்தது என்றும், ஆனால் சி நீங்கள் என்ன தான் சமாளிக்க இல்லை அமைக்கப்படுகிறது.
நீங்கள் சி சிறப்பு சட்டசபை வழிமுறைகளை பயன்படுத்த வரை நீங்கள் உண்மையில் அதை சமாளிக்க முடியாது
அது எக்ஸ்ஓஆர் இடமாற்று பற்றி யோசிக்கிறேன்.
நான் விக்கிபீடியா கட்டுரை இது என்று போயிருக்கலாம் என்று -
எனவே இது மட்டு கணிதத்தில் கொண்டு, அதனால் நான் மட்டு கணிதத்தில் செய்து, கோட்பாடு, நான் நினைக்கிறேன்
1 மீண்டும் 15 - நான் 0 கூறினர்.
அதனால் உண்மையில் வலிமை - 1 = 15 - 0 என்று வழக்கமான செயலி.
நாம் 0 மணிக்கு முடிவுக்கு பின்னர், நாம் 1 கழித்து, எனவே அது வெறும் சுமார் 1111 மீண்டும் மறைப்புகள்.
இந்த வழிமுறை உண்மையில் வேலை, a + b, ஒரு கூடும் - ப, ப - ஒரு; நன்றாக இருக்கும் என்று.
ஆனால் அங்கு அப்படி செய்யாதே சில செயலிகள், மற்றும் அது அந்த குறிப்பிட்ட ஒன்றை நன்றாக இருக்காது.
எக்ஸ்ஓஆர் இடமாற்று எந்த செயலி வேலை செய்யும். சரி.
யோசனை என்றால், அதே இருக்க வேண்டும் என்று உள்ளது.
எங்கே நாம், எப்படியோ மாறிகளின் 1 இரண்டு தகவலை பெற எக்ஸ்ஓஆர் பயன்படுத்தி
மீண்டும் தனி மாறிகளின் தகவல் வெளியே இழுக்க.
அதனால் யாரையும் கருத்துக்கள் / பதில் இருக்கிறது?
[மாணவர் பதில், புரிந்து]
இந்த வேலை வேண்டும், மேலும், எக்ஸ்ஓஆர் பரிமாற்று உள்ளது.
எந்த வரிசையில் இந்த 2 எண்கள், இங்கு இருக்க நடக்கும்
இந்த முடிவை அதே போகிறது.
எனவே ஒரு ^ ப உள்ளது ப ^ ஒரு.
நீங்கள் இந்த என எழுதப்பட்ட பார்க்கலாம் ஒரு ^ = ப, ப ^ = ஒரு, ஒரு ^ = ப மீண்டும்.
இந்த உரிமை, இந்த பணிகளை, பிட்கள் என்று ஏன் பார்க்க.
ஒரு smallish எண்ணை பயன்படுத்தி, 11001, மற்றும் 01100 கூறலாம்.
இந்த 'ஒரு' தான்; இந்த கேட்ச் ஆகும்.
எனவே ஒரு ^ = ப.
இந்த 2 விஷயங்கள் எக்ஸ்ஓஆர் 'ஒரு' = அமைக்க வேண்டும் போகிறோம்.
1 மிகவும் ^ 0 1; 1 ^ 1 0; 0 ^ 1 1 மற்றும் 0 ^ 0 0; 1 ^ 0 1.
நீங்கள் தசம எண் பார் என்றால் 'ஒரு', அது இருக்க போகிறது -
நீங்கள் ', ஒரு' மிக அசல் 'ஒரு' மற்றும் புதிய உறவை பார்க்க போவதில்லை
ஆனால் பிட்கள் பார்த்து, 'ஒரு' தகவல் ஒரு வலை போன்ற இப்போது
அசல் 'ஒரு' மற்றும் அசல் ப இரண்டு.
நாம் ப ^ ஒரு, நாம் உண்மையான மணிக்கு முடிவுக்கு பார்க்கிறேன் 'ஒரு.' எடுத்து இருந்தால்
நாம் எடுத்து விட்டால் அசல் 'ஒரு' ^ புதிய 'ஒரு,' நாம் அசல் ப மணிக்கு முடிவுக்கு பார்க்க.
அதனால் (ஒரு ^ ஆ) ^ ப = அசல் 'ஒரு.'
மற்றும் (ஒரு ^ ஆ) ^ ஒரு = அசல் ப.
இல்லை - இந்த எதையும் எக்ஸ்ஓஆர் ஆகும் பார்த்து வேறு வழி எப்போதும் 0 ஆகும்.
1101 எனவே ^ 1101, அனைத்து துணுக்குகள் அதே போகிறீர்கள்.
எனவே 1 0 மற்றும் பிற 1 எங்கே ஒரு வழக்கு இருக்க போகிறது.
இந்த 0000 தான்.
இந்த அதே. (ஒரு ^ ஆ) ^ ப போல் ஒரு ^ (b ^ ஆ).
(B ^ ப) 0 போகிறது; அனைத்து துணுக்குகள் 0 இருப்பதால் ஒரு ^ 0 வெறும் ', ஒரு' போகிறது.
எனவே 'ஒரு' முதலில் 1 அங்கு போகிறீர்கள் என்று மட்டுமே - தான் இருந்தது.
இங்கு அதே கருத்தை நான் இது பரிமாற்று தான் அழகாக தெரியும்.
Yeah. நான் அதை பரிமாற்று என்று முன்னர் சொன்னார்.
^ 'ஒரு' மற்றும் அது தொடர்புடைய அதனால் இப்போது (b ^ ஒரு) ^ ஒரு.
நாம் என்ன செய்ய முடியும் b ^ (ஒரு ^ ஒரு).
எனவே மீண்டும், நாம் உண்மையான ப கிடைக்கும்.
எனவே 'ஒரு' இப்போது ஒன்றாக 'ஒரு' மற்றும் ப சேர்க்கை ஆகும்.
எங்கள் புதிய சேர்க்கை பயன்படுத்தி 'ஒரு' நாம் சொல்ல ப = சேர்க்கை 'ஒரு' ^ அசல் ப, நாம் உண்மையான கிடைக்கும் 'ஒரு.'
இப்போது ஒரு = சேர்க்கை 'ஒரு' ^ புதிய ப, அசல் இருந்தது - அல்லது 'ஒரு' அல்லது ப என்ன இப்போது.
இந்த வழக்கில் இங்கே என்று கீழே தான். இந்த = ப, பழைய ப உள்ளது.
அதனால் இப்போது எல்லாம் பண்டமாற்று முறையில் மீண்டும்.
நாம் உண்மையில் பிட்கள் பார்த்து இருந்தால், ப = ஒரு ^ ப,, இந்த 2 XOR போகிறது
பதில் இந்த போகிறேன், பின்னர் ஒரு = ஒரு ^ ப இந்த 2 XORing பதில் இந்த உள்ளது.
கேள்விகள்? சரி. அதனால் கடந்த ஒரு சற்றே அதிகமான கடினம்.
[மாணவர்] நான் அதை பற்றி ஒரு கேள்வி உண்டு என்று. >> ஓ, மன்னிக்கவும்.
[மாணவர்] உண்மையில் என்ன வேகமாக இருக்கிறது? இந்த எக்ஸ்ஓஆர் பயன்படுத்த நீங்கள் ஒரு புதிய மாறி அறிவிக்க வேண்டும், அல்லது அது?
எனவே ஒரு புதிய மாறி அறிவித்தார் அல்லது மாற்ற எக்ஸ்ஓஆர் பயன்படுத்தி, உண்மையில் வேகமாக என்ன?
பதில், அனைத்து வாய்ப்பை, ஒரு தற்காலிக மாறி உள்ளது.
எனவே சட்டசபை அளவில், - அதை தொகுக்கப்பட்ட முறை ஏனெனில் அது தான்
உள்ளூர் மாறிகள் அல்லது தற்காலிக மாறிகள் அல்லது இந்த பொருள் எந்த போன்ற விஷயம் இல்லை.
அவர்கள் சும்மா - நினைவகம் உள்ளது, மற்றும் பதிவேடுகளை உள்ளன.
விஷயங்களை தீவிரமாக நடந்து எங்கே பதிவேடுகளை இருக்கும்.
நீங்கள் நினைவகத்தில் 2 விஷயங்களை சேர்க்க வேண்டாம்; நீங்கள் பதிவேடுகளை 2 விஷயங்களை சேர்க்க.
நீங்கள், அவர்களை சேர்க்க பதிவேடுகளை இந்த நினைவகம் இருந்து பொருட்களை கொண்டு
பின்னர் நீங்கள் நினைவகத்தில் அவர்களை மீண்டும் கூடும், ஆனால் அனைத்து நடவடிக்கை பதிவேடுகளை நடக்கிறது.
எனவே நீங்கள் தற்காலிக மாறி அணுகுமுறையை பயன்படுத்தும் போது, வழக்கமாக என்ன நடக்கும் என்று
இந்த 2 எண்கள் பதிவேடுகளை ஏற்கனவே உள்ளது.
பின்னர் அந்த அவற்றை பரிமாற்றம் செய்து பின்னர், அன்று முதல்,
இது மற்ற பதிவு செய்ய பயன்படுத்தி தொடங்க வேண்டும்.
நீங்கள் ப பயன்படுத்தி என்று எங்கும், அது ஏற்கனவே சேமித்து என்று பதிவு செய்ய பயன்படுத்த வேண்டும் 'ஒரு.'
அது உண்மையில் மாற்று எதுவும் செய்ய தேவையில்லை. அப்படியா?
[மாணவர்] ஆனால் அது சரி, இன்னும் நினைவகம் ஆகும்?
அது தற்காலிக மாறி சேமிக்க வேண்டும் என்றால் அதை இன்னும் நினைவு மட்டுமே எடுக்கும்.
நீங்கள் பின்னர் எங்காவது மீண்டும் அந்த தற்காலிக மாறி பயன்படுத்தினால் போல்,
பின் - அல்லது நீங்கள் அந்த தற்காலிக மாறி ஏதாவது ஒதுக்க.
எனவே நேரம் திறக்க உள்ள 'ஒரு' ப எந்த இடத்தில் இருந்தாலும், முற்றிலும் மாறுபட்ட மதிப்புகள் அல்லது ஏதாவது
அது நினைவக தனித்தனி இடங்கள் வேண்டும் நடக்கிறது, ஆனால் அது உண்மை தான் என்று
ஒரே பதிவேடுகளை உள்ளன என்று பல உள்ளூர் மாறுபாடுகள் உள்ளன.
இதில், அதை நினைவகத்தில் வைத்து, அதனால் நீங்கள் நினைவு வீணாக்காமல் இல்லையே.
சரி. கடந்த கேள்விக்கு ஒரு பிட் உள்ளது.
இங்கு, இந்த CS50 சாதனம், ஒரு அகராதியில் இல்லை.
இந்த காரணம் தான் [?? B66] நீங்கள் எழுத வேண்டும் என்று ஒரு எழுத்துப்பிழை சரிபார்ப்பு இல்லை
புல அட்டவணைகள் அல்லது முயற்சிகளின் அல்லது சில தரவு கட்டமைப்பை பயன்படுத்துவதன்.
நீங்கள் ஒரு பிழைத்திருத்த எழுத போகிறாய், மற்றும் நீங்கள் அதை செய்ய இந்த அகராதியை பயன்படுத்தி கொள்ள போகிறோம்.
ஆனால் இந்த பிரச்சனைக்கு நாம் ஒரு ஒற்றை வார்த்தை அகராதியில் இருக்கிறது என்பதை பார்க்க போகிறோம்.
எனவே அதற்கு பதிலாக சில தரவு அமைப்பில் முழு அகராதி சேமிக்கும்
பின்னர், எதையும் தவறுதலாக எழுதப்பட்டது தான் என்பதை ஒரு முழு ஆவணம் மீது looking
நாம் வெறும் 1 வார்த்தை கண்டுபிடிக்க வேண்டும். எனவே தான் முழு அகராதியில் மீது ஸ்கேன் செய்யலாம்
நாம் முழு அகராதியில் வார்த்தை கண்டறிய முடியாது என்றால், அது அங்கு இல்லை.
நாம் முழு அகராதியில் மீது ஸ்கேன் மற்றும் வார்த்தை பார்க்க என்றால், நாம் நல்ல இருக்கும், அதை நாம் கண்டு.
அதை, நாம் சி கோப்பு கையாளுதல் விழாவில் தேட ஆரம்பிக்க வேண்டும் என்று இங்கே கூறுகிறார்
நாம், அகராதி படிக்க வேண்டும் என்பதால்,
ஆனால் நான் நீங்கள் நினைக்க வேண்டும் செயல்பாடுகள் என இங்கே குறிப்பை கொடுப்பேன்.
நான் இடைவெளி அவற்றை எழுத வேண்டும்.
முக்கிய ஒன்றை நீங்கள், பின்னர் திறந்த மற்றும் எஃப், தவிர்க்க முடியாமல், f மூடப்பட்ட பார்க்க வேண்டும்
இது உங்கள் திட்டம் இறுதியில் போக, மற்றும் எஃப் ஸ்கேன் எஃப்.
நீங்கள் f வாசிக்க பயன்படுத்த முடியும், ஆனால் ஒருவேளை நீங்கள் விரும்பவில்லை
அந்த காரணம் - நீங்கள் தேவைப்படும் முடிந்துவிடாது.
எஃப் ஸ்கேன் f நீங்கள் அகராதியில் மீது ஸ்கேன் பயன்படுத்தி கொள்ள போகிறோம் என்று.
எனவே நீங்கள் உங்கள் வழியில் முயற்சி மற்றும் போலி குறியீடு போல, தீர்வு வரை குறியீடு தேவையில்லை
ஒரு தீர்வு, மற்றும் நாம் அது பற்றி விவாதிக்க வேண்டும்.
நான் ஏற்கனவே இந்த கொடுத்தார் முதல் மற்றும் உண்மையில், நீங்கள், எந்த முனை அல்லது உங்கள் சாதனம் தான் ஷெல்லில் சென்றால்
நான் - நான் பொதுவாக - நீங்கள் இதுவரை பார்த்ததில்லை நீங்கள் வர்க்கத்தின் செய்தால், நான், எனக்கு தெரியாது
ஆனால் மனிதன், அதனால் மனிதன் பக்கங்கள், அழகான மிகவும் எந்த விழாவில் காண்பதற்கு மிகவும் பயனுள்ளதாக இருக்கும்.
அதனால் நான், இப்படி, ஸ்கேன் f மனிதன் f செய்ய முடியும்.
இந்த இப்போது செயல்பாடுகளை ஸ்கேன் f குடும்பம் பற்றி தகவல் இல்லை.
நான் திறந்த மனிதன் f, செய்ய, மற்றும் எனக்கு அந்த விவரங்கள் தருகிறேன்.
நீங்கள் பயன்படுத்தும், அல்லது நீங்கள் குறியீடு பாடிக்கொண்டிருக்கிறீர்கள் என்ன செயல்பாடு என்று நீங்கள்
நீங்கள் சில செயல்பாட்டை பார்த்து, இப்படி நீ "இது என்ன செய்யும்?"
ஒரு மனிதன் அந்த செயல்பாடு பெயர்.
நீ என்ன சொல்ல வேண்டும், அங்கு வித்தியாசமான உதாரணங்கள் ஒரு ஜோடி உள்ளன
இப்படி. அந்த செயல்பாடு பெயர், அல்லது மனிதன் 3 என்று செயல்பாடு பெயர், மனிதன் 2
ஆனால் நீங்கள் மட்டுமே மனிதன் செயல்பாடு பெயரை முதல் முறையாக வேலை நடக்காது என்று செய்யவேண்டும்.
[மாணவர்] நான் திறந்த man பக்கத்தை படித்து, ஆனால் நான் இன்னமும் மற்றும் நிரலை பயன்படுத்த எப்படி குழப்பி வருகிறது.
சரி. Man பக்கங்களை நிறைய பயனுள்ளதாக விட குறைவாக.
நீங்கள் ஏற்கனவே அவர்கள் என்ன தெரியுமா என்றால் அவர்கள் மிகவும் பயனுள்ளதாக இருக்கும்
பின்னர் நீங்கள் வாதங்கள் அல்லது ஏதோ வரிசை நினைவில் தான் தேவை.
அல்லது அவர்கள் நீங்கள் ஒரு பொது பார்வை கொடுக்க முடியும், ஆனால் இன்னும் சில மிக பெரும் இருக்கிறது.
F ஸ்கேன் f போன்ற, மேலும். இது, இந்த செயல்பாடுகளை அனைத்து தகவல் கொடுக்கிறது
மற்றும் 1 வரி கீழே இங்கே சொல்ல நடந்தால், "எஃப் ஸ்கேன் f சரம் புள்ளி அல்லது ஸ்ட்ரீம் இருந்து படிக்கிறார்."
ஆனால் f திறக்க. எனவே, நாங்கள் எப்படி f திறந்த பயன்படுத்த வேண்டும்?
கோப்பு செய்ய வேண்டும் என்ற திட்டத்தின் யோசனை நான் / ஓ என்று
நீங்கள் முதலில் நீங்கள் விஷயங்களை செய்ய வேண்டும் கோப்பை திறக்க வேண்டும், மற்றும் தவிர்க்க முடியாமல்,
அந்த கோப்பு விஷயங்களை படித்து அவர்களை பொருளின்.
எஃப் திறந்த நாம் கோப்பை திறக்க பயன்படுத்த வேண்டும்.
நாம் திறக்க என்ன கோப்பு விரும்புகிறீர்கள் எனவே, மீண்டும் ஒன்று, அது நமக்கு அளிக்கிறது -
இங்கே அது "/ பயனர் / பங்கு / dict / வார்த்தைகளை." என்கிறார்
இந்த நாம் திறக்க வேண்டும் என்று கோப்பு, நாம் அதை திறக்க வேண்டும் -
நாம் வெளிப்படையாக எங்களால் அதை படிக்க அல்லது நாம் திறக்க வேண்டும் என்றால் அதை எழுத திறக்க வேண்டும் என்பதை குறிப்பிட வேண்டும்.
அங்கு சேர்க்கைகள் மற்றும் பொருட்களை ஒரு ஜோடி, ஆனால் நாம் வாசிக்கும் இந்த திறக்க வேண்டும்.
நாம் கோப்பை படிக்க வேண்டும்.
இந்த பதிலுக்கு என்ன சம்பந்தம்? அது ஒரு கோப்பு நட்சத்திர (*), கொடுக்கிறது
மற்றும் நான் மாறி f எல்லாம், எனவே *, காண்பிக்கிறேன்
மீண்டும், இது ஒரு சுட்டிக்காட்டி, ஆனால் நாம் சுட்டிகள் சமாளிக்க விரும்பவில்லை.
நீங்கள், f இப்போது நீங்கள் கோப்பு பிரதிநிதித்துவப்படுத்துவதாக பயன்படுத்த போகிறோம் மாறி உள்ளது f நினைக்க முடிகிறது.
நீங்கள் கோப்பு படிக்க வேண்டும் என்றால், நீங்கள் f வாசிக்க.
நீங்கள் கோப்பு மூட வேண்டும் என்றால், நீங்கள் f மூட.
எனவே திட்டம் இறுதியில் நாம் தவிர்க்க முடியாத கோப்பு மூட வேண்டும் போது, நாம் என்ன செய்ய வேண்டும்?
நாம் f மூட வேண்டும்.
நாம் பயன்படுத்த வேண்டும் போகிறோம் என்று இப்போது கடந்த கோப்பு செயல்பாடு ஸ்கேன் f, f ஸ்கேன் f ஆகும்.
என்ன செய்வது இது பொருந்தும் ஒரு முறை பார்த்து கோப்பு மீது ஸ்கேன் ஆகும்.
இங்கே மனிதன் பக்கம் பார்த்து, நாம் எண்ணாக f ஸ்கேன் f பார்க்க, இப்போது பதிலாக மதிப்பு புறக்கணிக்க.
முதல் வாதம் கோப்பு * ஸ்ட்ரீம், நாம் கடந்து செல்ல வேண்டும் போகிறோம் முதல் வாதம் f இருக்கும்.
நாம் f மீது ஸ்கேனிங்.
இரண்டாவது வாதம் ஒரு வடிவம் சரம்.
நான் இப்போது நீங்கள் ஒரு வடிவம் சரம் கொடுப்பேன்.
நான், 127s \ n தேவையற்ற என்று நிறைய சொல்ல நடக்கும் என்று.
அந்த வடிவம் சரம் என்ன யோசனை, நீங்கள் அச்சு F எதிர் என ஸ்கேன் f என்று முடியும்.
அதனால் அச்சு f, நாங்கள் வடிவம் அளவுரு இந்த வகை பயன்படுத்த அச்சு f,
ஆனால் அச்சு f நாம் செய்கிறோம் என்ன - இன் ஒரு சமமான பார்க்க வேண்டும்.
எனவே f அச்சிட, மற்றும் முதல் வாதம் f இருக்கும் அமைந்துள்ள f அச்சு f, மேலும் உண்மையில் உள்ளது.
நீங்கள் f அச்சிட போது, நாம், நாம் சில சரம் கடந்து என்றால், ஏதோ போல் "அச்சு 127s \ n" என்று மேலும் முடியும்
இந்த சரம் பின் ஒரு புதிய வரியை அச்சிடுவதற்கு நடக்கிறது.
என்ன 127 என்றால், நான் மிகவும் உறுதியாக இருக்கிறேன், ஆனால் நான் அதை நானே தடை இல்லை
நீங்கள் கூட, அச்சு F இல் '127 'சொல்ல வேண்டிய அவசியம் இல்லை என்று
ஆனால் என்ன அர்த்தம் முதல் 127 எழுத்துக்கள் அச்சிட உள்ளது.
அதனால் நான் வழக்கு என்று அழகாக தெரியும். நீங்கள் கூகிள் முடியும்.
ஆனால் அடுத்த ஒரு நான், அதாவது கிட்டத்தட்ட நேர்மறையான இருக்கிறேன்.
இந்த புதிய வரி தொடர்ந்து முதல் 127 எழுத்துக்கள், அச்சிட உள்ளது.
எஃப் ஸ்கேன் f இப்போது, அதற்கு பதிலாக ஒரு மாறி பார்த்து பதிப்பிக்க ஒரு,
சில சரம் பார்க்க, மற்றும் மாறி வரும் போக்கு சேமிக்க நடக்கிறது.
அது உண்மையில் ஒரு எடுத்துக்காட்டாக ஸ்கேன் f பயன்படுத்த அனுமதிக்க.
எனவே நாம் சில எண்ணாக இருந்தது என்று, x = 4,
நாம் செய்த ஒரு சரம் உருவாக்க வேண்டும் - சரம் உருவாக்க வேண்டும்
இந்த பிறகு வரும், அப்படி என்று இருந்தது
வெறும் 4.jpg போன்ற என்று ஒன்று.
இந்த, நீங்கள் கூடுதல் கவுண்டர் வேண்டும் ஒரு திட்டம் இருக்கலாம்
நான் எதிர்த்து தொகையிடும், நீங்கள் படங்களை ஒரு கூட்டத்தை காப்பாற்ற வேண்டும்.
எனவே நீங்கள் உங்கள் வளைய சில மறு செய்கை எங்கே i.jpg, சேமிக்க வேண்டும்.
நாம் எப்படி என்று JPEG இந்த சரம் செய்ய?
நீங்கள் 4.jpg அச்சிட வேண்டும் என்றால், நாம் தான் அச்சு f,% d.jpg, சொல்ல முடியும்
பின்னர் அது JPEG க்கு அச்சிட வேண்டும்.
நாம் சரம் 4.jpg காப்பாற்ற வேண்டுமானால், ஆனால், நாம் ஸ்கேன் f பயன்படுத்த.
சரம் கள் எனவே - உண்மையில் நாம் can't - எழுத்து, கரி கள், 100 செல்லலாம்.
அதனால் நான், 100 எழுத்துகள் சில வரிசை அறிவித்தார்
என்று நாம் தவிர்க்க முடியாமல் அந்த JPEG உள்ளே சேமித்து போகிறாய் என்ன
எனவே ஸ்கேன் f பயன்படுத்த போகிறோம், நாம்% d.jpg கூறுவேன் எப்படி வடிவம்,
4.jpg அச்சிட பொருட்டு, இந்த வடிவம்% d.jpg போகிறது.
எனவே வடிவமைப்பில்% d.jpg, என்ன நாம்% d பதிலாக வேண்டும் x, இல்லை
இப்போது நாம் எங்கோ சரம் சேமிக்க வேண்டும்.
நாம் இந்த சரம் சேமிக்க போகிறோம் அங்கு வரிசை கள் உள்ளது.
எனவே, குறியீடு, கள் இந்த வரி பின்னர் நாம் மாறி கள் எஃப்,% கள் அச்சிட என்றால்,
இது 4.jpg அச்சிட நடக்கிறது.
எனவே f ஸ்கேன் f இப்போது இந்த கோப்பு மீது தெரிகிறான் தவிர, ஸ்கேன் f போல
கள் உள்ள சேமிக்க என்ன.
அந்த கடைசி வாதம் இருக்க போகிறது என்று.
செயல்பாடுகள் ஸ்கேன் மற்றும் "ஸ்கேன் f குடும்ப கீழே முயற்சி என இரு வடிவம் படி உள்ள - நாம் சேமிக்க வேண்டும்.
எந்த இடம் புள்ளிகள் சேமிக்கப்படும் நீங்கள் திரும்பி வரக்கூடும் - "
இல்லை, நாம் நன்றாக இருக்கும். எனக்கு ஒரு இரண்டாவது யோசிப்போம்.
அதனால் ஸ்கேன் f இல்லை - கர்மம் அப்படி எந்த செயல்பாடு என்ன?
அதனால் ஸ்கேன் f முழு எண்ணாக எடுத்து டாட் jpg செய்ய போவதில்லை.
இது [mumbles] போகிறது.
சரம் எண்ணாக சி உள்ள முழு எண்ணாக மாறி சேமிக்க
என்ன இந்த மாறி, அல்லது இந்த செயல்பாடு என்ன அழைக்கப்படுகிறது?
ஆம். That's - ஆம். அதனால் நான் என்ன செய்ய வரையறுக்கும் முன், கள் அச்சு f என்று
இது - நான் அச்சு f போன்ற மிகவும் என்றார் ஏன் இன்னும் உணர்வு, செய்கிறது.
ஸ்கேன் f அச்சு f போன்ற இன்னும் வகையான, ஆனால் கள் அச்சு f அதை ஸ்கேன் போகிறது
மற்றும் மாறிகள் பதிலாக இப்போது ஒரு சரம் அதை சேமிக்க.
அதற்கு பதிலாக அதை அச்சிட்டு, இது ஒரு சரம் அதை சேமித்து.
அதனால் முற்றிலும் புறக்கணிக்க. நீங்கள் இன்னும் அச்சு f என்று போன்ற வடிவம் வரையறுப்பி நினைக்க முடிகிறது.
நாம் 4.jpg காரியம் செய்ய வேண்டும் என்றால், இப்போது, நாம், இந்த x கள் அச்சு f என்று.
உங்கள் கேள்வி இருக்க போகிறது என்ன - அப்படி என்ன ஸ்கேன் f செய்கிறாள்?
[மாணவர்] நான் நாங்கள் இங்கேயே செய்ய முயற்சிக்கும் என்ன குழப்பம்
அந்த JPEG கொண்டு. நீங்கள் 1 முறை விளக்க முடியும்?
அதனால் தான் - அது f ஸ்கேன் f இப்போது குறைந்த relevent தான்; வட்டம், அதை வழி சில வகையான மீண்டும் கட்டி வைக்க வேண்டும்.
ஆனால் நான் ஆரம்பத்தில் காண்பிக்க நினைக்கிறான் இருந்தது - இந்த உண்மையில் இந்த [நேரடியாக தொடர்புடைய?? F5]
நீங்கள் கள் அச்சு f பயன்படுத்தி போகிறாய்,,, நாம் 100 படங்களை எங்கே என்று
நீங்கள் படத்தை 1.jpg, 2.jpg, 3.jpg படிக்க வேண்டும்.
எனவே அந்த வகையில், நீங்கள் f திறந்த வேண்டும், பிறகு நீங்கள் திறக்க வேண்டும் என்று சரம் இல் கடக்க வேண்டும்.
நாம் 1.jpg திறக்க வேண்டும்; 1.jpg என்று சரம் உருவாக்க வேண்டும்,
% நாம் கள் செய்ய அச்சு f d.jpg-நாங்கள் எண்ணாக நான் = 0 செய்யவில்லை.
நான் <40, நான் +.
எனவே கள் அச்சு f% நான் d.jpg.
எனவே இந்த வரி பிறகு, இப்போது மாறி அல்லது வரிசை கள் 1.jpg போகிறது.
அல்லது, 0.jpg, 1.jpg, 2.jpg. அதனால் நாம், அதையொட்டி, வாசிப்பு ஒவ்வொரு படத்தை திறக்க முடியும்.
அதனால் கள் f இல்லை அச்சிட வேண்டும். நீங்கள் கள் f இப்போது செய்து அச்சிட என்ன பார்க்கிறீர்கள்?
[மாணவர்] சரி, அதை எடுத்து கொண்டு - அதை ஒரு சரம் உருவாக்குகிறது, something.jpg, பின்னர் அதை சேமித்து.
ஆம். அது உருவாக்குகிறது - இந்த ஸ்கேன் f மற்றும் அச்சு f போன்ற மற்றொரு வடிவம் சரம்,
அங்கு இரண்டாவது வாதம் அதை செருகி மாறிகள் அனைத்து, கள் என நான் எதிர்ப்பு இருக்கலாம்.
ஒருவேளை - நான் வழக்கு என்று, அதாவது. ஆனால் என்ன வாதங்கள் உத்தரவு.
இது வடிவம் சரம் மாறிகளின் அனைத்து செருக நடக்கிறது
பின்னர் எங்கள் தாங்கல் இந்த சேமிக்க; நாம் சரம் சேமிக்க நீங்கள் ஒரு தாங்கல், இது என்று அழைக்க.
நாம் சரியாக-வடிவமைக்கப்பட்ட சரம்,% d 4 மாற்றப்பட்டது நிலையில் உள்ளே கள் மற்றும் சேமிக்கும்.
[மாணவர்] நாம் இதை இருந்தால், தான் மறு ஒதுக்கீடு வேண்டும் என்று மாறி f ஆகும்?
ஆம். எனவே இதை முன் அசல் f மூட வேண்டும்.
ஆனால் - ஒரு எஃப் இங்கே திறந்து இல்லையென்றால் பின் கூட, நாம் சொல்ல வேண்டும் -
Yeah. ஆனால் அது ஒரு நூறு வெவ்வேறு கோப்புகளை திறக்க முடியும்.
சரி - [மாணவர்] ஆனால் நாம் அணுக அல்லது முடியாது.
சரி. அதனால் ஸ்கேன் f, f ஸ்கேன் f, அதே கருத்து என்ன ஆகும்
ஆனால் பதிலாக, அதற்கு பதிலாக ஒரு சரம் அதை சேமிக்கும், இன்னும் நீங்கள் இப்போது போல்
என்று சரத்திற்கு எதிராக பொருத்தமான ஒரு ஸ்டிங் மற்றும் அமைப்பு மீது சென்று மாறிகள் என முடிவு சேமிக்கும்.
நீங்கள் 4.jpg போன்ற ஏதாவது மேல் இட, மற்றும் கூடுதல் int x பற்றிய முழு 4 சேமிக்க ஸ்கேன் f பயன்படுத்தலாம்.
என்று நாம் ஸ்கேன் f பயன்படுத்தலாம் என்ன.
எஃப் ஸ்கேன் f கட்டளை வரியில் அதை செய்ய போவதில்லை.
நான் உண்மையில் இந்த CS50 நூலகம் என்ன என்று அழகாக தெரியும்.
எனவே நீங்கள் சொல்லும் போது, "எண்ணாக கிடைக்கும்," அதை ஸ்கேன் F-களை முடிந்துவிட்டது - ஸ்கேன் f நீங்கள் பயனர் உள்ளீடு பெற வழி.
எஃப் ஸ்கேன் f அதையே செய்ய போகிறேன் ஆனால் மீது ஸ்கேன் ஒரு கோப்பு பயன்படுத்துகிறது.
இங்கு, இந்த கோப்பு மீது ஸ்கேனிங்.
நாம் பொருத்த முயற்சிக்கின்றன முறை 127 எழுத்துகள் என்று சில சரம்
ஒரு புதிய வரியை தொடர்ந்து
அதனால் நான் அகராதியில் இருந்து ", கள் பொருந்தவில்லை" நாங்கள் தான் சொல்ல முடியும் அழகாக தெரியும்
நாம் நடக்கும், நாம் எந்த வார்த்தை என்று நீளமாக உள்ளது உத்தரவாதம்,
மேலும் f ஸ்கேன் f, நான் நினைக்கிறேன், புதிய வரி எந்த விஷயம் என்ன நிறுத்திவிடும்.
ஆனால் நாம் போட்டியில் புதிய வரி ஆகியவை அடங்கும், மற்றும் நான் -
[மாணவர்] நாம் புதிய வரி இல்லையெனில், அது ஒரு வார்த்தை பகுதிகளில் காண முடியாது?
இது - ஒவ்வொரு - அகராதி பார்த்து -
எனவே அகராதியில், இந்த நமது வார்த்தைகள் அனைத்தும்.
ஒவ்வொரு ஒரு புதிய வரி உள்ளது.
ஸ்கேன் f இந்த வார்த்தை அழைத்து போகிறார்.
நாம் புதிய வரி ஆகியவை அடங்கும் என்றால், அது அடுத்த ஸ்கேன் f புதிய வரி வாசிக்க கொள்வாய்.
ஆனால் புதிய வரி உட்பட பிறகு புதிய வரி புறக்கணிக்கும்.
நாம் எப்போதும், ஒரு புதிய வரி எந்த விஷயம் என்ன வரை படித்து என்பதால் ஆனால் நாம், ஒரு வார்த்தை ஒரு பகுதியாக மாட்டேன்.
[மாணவர்] ஆனால் என்ன cissa போன்ற வார்த்தை "cissa," தேட வேண்டும்.
அதை கண்டு, அது ஒரு போட்டி தான் சொல்ல முடியும்?
இங்கு நாம் - அதை படிக்கும் - இந்த உண்மையில் ஒரு நல்ல இடத்தில் உள்ளது.
நாம் தற்போது பயன்படுத்தும் - நாம் தேடும் வார்த்தை முதல் கட்டளை வரி வாதம் ஆகும்.
எனவே சரம், வார்த்தை = argv 1.
நாம் தேடும் சரம் argv 1.
நாம் ஸ்கேன் f அனைத்து ஒரு வார்த்தை தேடி வருகின்றனர்.
நாம் என்ன ஸ்கேன் f உடனான செய்து, அகராதியில் ஒவ்வொரு வார்த்தை வருகிறது
பின்னர் மீண்டும் நாம் அவற்றை ஒப்பிட்டு strcmp பயன்படுத்த போகிறோம் என்று சொல் இல்லை.
நாங்கள் வார்த்தை ஒப்பிட்டு போகிறாய் என்ன நாங்கள் உள்ளே வாசிக்க
அதனால் தவிர்க்க முடியாமல், நாம் ஸ்கேன் FS ஒரு கூட்டத்தை செய்து முடிவுக்கு போகிறாய்
இது மிகவும் ஸ்கேன் f திரும்புவார் என்று நடக்கும் வரை -
இது, நீண்ட இது ஒரு புதிய வார்த்தை பொருந்தும் போல, ஒரு வரும்
அது விரைவில் அது வார்த்தை பொருந்தும் தோல்வியடைந்தது நிலையில் வேறு ஏதாவது வரும்.
நாம் மாறி கள் ஒவ்வொரு வார்த்தையும் வரி மூலம் வரி சேமிப்பது, முழு அகராதி மேல் படித்து வருகின்றனர்.
நாம், கள் கொண்ட வார்த்தை ஒப்பிட்டு, மற்றும் ஒப்பீடு == 0 என்றால்
strcmp போட்டியில் செய்யப்பட்டது என்றால், 0 கொண்டு நடக்கும்.
அது 0 இருந்தால் அதனால், நாம், பொருந்தியது, f அச்சிட முடியாது
அல்லது வார்த்தையை அகராதியில், அல்லது நீங்கள் f அச்சிட வேண்டும் என்ன.
பின்னர் - நாம் f மீண்டும் மீது மூடிவிட்டு விரும்பவில்லை.
இந்த நாம் செய்ய வேண்டும் விஷயம் என்ன இருக்கிறது, நாம் தான் அகராதியில் வார்த்தை தேடும் இல்லை.
எனவே, நீங்கள் முன்பு சொன்னது போல், நாம் அவற்றின் அமைப்பு, cissa பார்க்க வேண்டும் என்றால், அதை செய்ய முடியும்
நாங்கள் அந்த மாதிரி பார்க்க விரும்பினால், அது வழக்கில் தோல்வியடையும்
உண்மையில் ஒரு வார்த்தை இல்லை, ஆனால் அகராதியில் வார்த்தைகள் அதை அந்த வேண்டும் நடக்கும் என்று. காரணம்
எனவே இந்த வார்த்தை பொருந்தும், ஆனால் வார்த்தை இந்த துணைக்குழு ஒரு வார்த்தை கூட இல்லை.
ஆனால் நாம் அதை பயன்படுத்தி நீங்கள் எப்படி இல்லை; நாம் ஒவ்வொரு வார்த்தையின் பாடிக்கொண்டிருக்கிறீர்கள்
பின்னர் அந்த வார்த்தையில் உள்ளது வார்த்தை ஒப்பிட்டு.
நாம் எப்போதும் முழு சொற்களை ஒப்பிட்டு.
நான் பின்னர் இறுதி தீர்வு வெளியே அனுப்ப முடியும்.
இந்த கிட்டத்தட்ட சரியான பதில் என்ன என்று நான் நினைக்கிறேன்.
[மாணவர் கருத்து, புரிந்து]
முன் ஓ, நான் அந்த விடுபட? கரி கள், நாம் 127 என்று நினைக்கிறேன் - நான் மிகப்பெரிய என்ன மறந்து.
நாங்கள் வெறும் 128 செய்கிறேன்; எனவே இப்போது கள் நீண்ட போதும்.
நாம் எதையும் அச்சிட தேவையில்லை.
நாம் நம் கோப்பு மூட வேண்டும் போகிறோம், என்று சரியான பதில் பற்றி இருக்க வேண்டும்.
CS50.TV