[Powered by Google Translate] [விமர்சனம்] [வினாடி வினா 0]
>> [Lexi ரோஸ், டாமி MacWilliam, லூகாஸ் Freitas, ஜோசப் ஆங்] [ஹார்வர்ட் பல்கலைக்கழகம்]
>> [இந்த CS50 உள்ளது.] [CS50.TV]
>> ஏய், எல்லோரும்.
இந்த புதன் நடைபெற்று வரும் வினாடி வினா 0, மதிப்புரை அமர்வு வரவேற்கிறது.
நாம் இன்று செய்ய போகிறோம் என்ன, நான், 3 மற்ற டிஎஃப்எஸ் இருக்கிறேன்
மற்றும் ஒன்றாக நாம் இதுவரை போக்கில் செய்துவிட்டேன் என்ன ஒரு ஆய்வு மூலம் செல்ல போகிறோம்.
இது 100% விரிவான இருக்க போவதில்லை, ஆனால் அதை நீங்கள் ஒரு நல்ல யோசனை கொடுக்க வேண்டும்
நீங்கள் ஏற்கனவே கீழே உள்ளது என்ன என்ன நீங்கள் இன்னும் புதன் முன் படிக்க வேண்டும்.
நாம் சேர்ந்து போகிறோம் மற்றும், கேள்விகளை உங்கள் கையை உயர்த்தி கொள்ளலாம்
ஆனால் நாங்கள் அந்த நேரத்தில் ஒரு சிறிது வேண்டும் என்று மனதில் வைத்து முடிவு
நாம் பொது கேள்விகள் செய்ய ஓய்வு-ஒரு சில நிமிடங்களுக்கு மூலம் கிடைக்கும் என்றால்,
அதனால் மனதில் என்று வைத்து, மற்றும் நாம் வீக் 0 ஆரம்பத்தில் தொடங்க போகிறோம்.
>> நாம் முன்னர் [0 விமர்சனம் க்விஸ்!] [பாகம் 0] [Lexi ரோஸ்] ஆனால் நாம் பற்றி பேச என்று
வினாடி வினா மற்றும் தளவாடங்கள்.
>> [லாஜிஸ்டிக்ஸ்] [வினாடி வினா விரிவுரை பதிலாக புதன் 10/10 அன்று நடைபெறும்]
>> [(விவரங்களுக்கு http://cdn.cs50.net/2012/fall/quizzes/0/about0.pdf காண்க)] இது புதன், அக்டோபர் 10 ஆம் தேதி ஆகும்.
>> இந்த புதன், மற்றும் நீங்கள் இங்கே இந்த URL க்கு சென்றால்,
இது கூட ஒரு இணைப்பை CS50.net-அங்கு 'கள் பெறப்படவில்லை என்பது,
நீங்கள் அடிப்படையில் எங்கே போவது பற்றி தகவல் பார்க்க முடியும்
உங்கள் கடைசி பெயர் அல்லது பள்ளி தொடர்பு அதேபோல
அதை பற்றி சரியாக புதிர் நீ போகிறோம் என்று கவர் மற்றும் கேள்விகள் வகைகள் என்ன சொல்கிறது.
நீங்கள் பகுதியில் வினாடி வினா ஒரு ஆய்வு செய்ய ஒரு வாய்ப்பு வேண்டும் என்பதை நினைவில் கொள்ளுங்கள்,
எனவே உங்கள் டிஎஃப்எஸ், சில நடைமுறை சிக்கல்கள் பற்றி நான்
என்று நீங்கள் இன்னும் வினாடி வினா எழுந்து படிக்க வேண்டும், அங்கு பார்க்க மற்றொரு நல்ல வாய்ப்பு.
பிட்ஸ் 'n' பைட்டுகள் கொண்ட ஆரம்பத்தில் ஆரம்பிக்கலாம்.
ஒரு பிட் ஒரு 0 அல்லது 1, ஞாபகம்
மற்றும் ஒரு பைட் அந்த பிட்கள் 8 தொகுப்பு ஆகும்.
சரி இங்கே பிட்கள் இந்த தொகுப்பு பார்க்க போகலாம்.
நாம் அங்கு எவ்வளவு பிட்கள் கண்டுபிடிக்க முடியும்.
நாம் எண்ணி அங்கு அவர்கள் 8, எட்டு 0 அல்லது 1 அலகுகள் தான் இருக்கிறது.
மற்றும் முதல் 8 பிட்கள், 1 பைட் என்று, அங்கே
மற்றும் ஒரு அறுபதின்ம மாற்ற வேண்டும்.
அறுபதின்ம அடிப்படை 16, மற்றும் அதை மாற்ற அழகாக எளிதாக
பைனரி ஒரு எண், இது அறுபதின்ம ஒரு எண், என்று உள்ளது.
நாம் அனைவரும் நாம், 4 குழுக்கள் பார் உள்ளது
நாம் சரியான அறுபதின்ம இலக்க ஐக்கிய அவற்றை மாற்ற.
நாம் 0011, 4 உரிமையை மிக குழு தொடங்க.
அதனால் சேர்ந்து 3 செய்கிறது என்று, ஒரு 1 மற்றும் ஒரு 2 இருக்க போகிறது.
பின்னர் 4 மற்ற தொகுதி பார்க்க வேண்டும்.
1101. என்று ஒரு 1, 4 ஒன்று 8 இருக்க போகிறது.
ஒன்றாக என்று டி வகையில், 13 ஆக போகிறது
நாம் அறுபதின்ம நாம் வெறும் 9 வழியாக 0 போக கூடாது என்று ஞாபகம்.
நாம், மிக 9 பின்னர், எஃப் மூலம் ஒரு 10 ஒத்துள்ளது 0 போக,
எஃப் 15 எங்கே 11 பி, பயன்படுத்தப்படுகிறது.
இங்கு 13, ஒரு D ஆகும்
அதை நாம் செய்ய அனைத்து நாம் உண்மையில் தசம மாற்ற
2 ஒரு சக்தியாக ஒவ்வொரு நிலையில் சிகிச்சை.
என்று ஒரு 1, 2, ஒரு பூஜ்யம் 4s, பூஜ்யம் 8s, ஒரு 16, பயன்படுத்தப்படுகிறது, அது
அது உங்கள் தலையில் கணக்கிட கொஞ்சம் கடினமாக உள்ளது, ஆனால் நாம் அடுத்த ஸ்லைடு போனால்
நாம் பதில் காண முடியும்.
>> அடிப்படையில் நாம், இடது வலது இருந்து முழுவதும் போகிறோம்
நாங்கள் 2 தொடர்புடைய சக்தி ஒவ்வொரு இலக்க ஐக்கிய பெருக்குவதன்.
மேலும், நினைவில் அறுபதின்ம நாம் ஆரம்பத்தில் 0x இந்த எண்களை குறிக்க
எனவே நாம் ஒரு தசம எண்ணை அதை குழப்ப வேண்டாம்.
ஆனால் தொடர்ந்து, இந்த, ஒரு ஆஸ்கி அட்டவணை உள்ளது
நாம் ஆஸ்கி பயன்படுத்த என்ன எழுத்துகள் இருந்து எண் மதிப்புகள் மேப்பிங் ஆகும்.
குறியாக்கவியல் pset நினைவிருக்கிறதா நாம் ஆஸ்கி அட்டவணை விரிவான பயன்படுத்தி
குறியாக்கவியல் பல்வேறு முறைகள் பயன்படுத்த,
பல்வேறு கடிதங்கள் மாற்ற சீசர் மற்றும் வைஜெனேர் மறைக்குறியீடு,
பயனர் கொடுக்கப்பட்ட முக்கிய படி ஒரு சரம் இல்.
அது ASCII, கணித சிறிது பார்க்கிறேன்.
கே என்று எழுத்து வடிவம், 'பி' இல் + 1 விரும்புவது,
மற்றும் '5 '≠ 5 நினைவில்.
எப்படி சரியாக நாம் அந்த 2 வடிவங்கள் இடையே மாற்ற வேண்டும்?
அது உண்மையில் மிகவும் கடினமானது அல்ல.
5 பெறுவதற்காக நாம் '0 கழித்து '
ஏனெனில் '0 இடையே 5 இடங்களில் உள்ளன 'மற்றும் '5.'
நாம் வெறும் 0 சேர்க்க வேறு வழி செல்ல வேண்டும்,
எனவே இது வழக்கமான கூட்டல் போன்ற வகையான தான்.
நான் ஏதோ அதை சுற்றி மேற்கோள் போது அது ஒரு பாத்திரம் என்று நினைவில்
இதனால் ஆஸ்கி அட்டவணையில் ஒரு மதிப்பு ஒத்துள்ளது.
மேலும் பொது கணினி அறிவியல் தலைப்புகள் நகரும்.
நாம் நிகழ்ச்சிகளை பயன்படுத்த என்ன ஒரு வழிமுறையாகும் மற்றும் எப்படி கற்று
வழிமுறைகளை செயல்படுத்த.
வழிமுறைகள் சில உதாரணங்கள் போன்ற மிகவும் எளிமையான ஒன்று தான்
ஒரு எண்ணை கூட அல்லது வித்தியாசமாக இருக்கிறது சரிபார்ப்பதன்.
என்று நாம் 2 எண் mod மற்றும் விளைவாக 0 உள்ளதா என்பதை அறியவும் நினைவில்.
எனவே, அது கூட இல்லை. இல்லை என்றால், அது மாதிரி தான்.
மற்றும் ஒரு உண்மையிலேயே அடிப்படை வழிமுறையின் ஒரு எடுத்துக்காட்டு.
>> மேலும் இதில் ஒரு கொஞ்சம் இரும தேடல் இருக்கிறது,
இதில் நாம் மீளாய்வு கூட்டத்தில் பிறகு போகலாம்.
மற்றும் நிரலாக்க நாம் ஒரு வழிமுறையை எடுத்து பயன்படுத்த சொல்
இது கணினி குறியீடு மாற்றப்படுகிறது படிக்க முடியும்.
நிரலாக்க 2 எடுத்துக்காட்டுகள், கீறல் இல்லை
இதில் நாம் வீக் 0 செய்தது என்ன.
நாம் உண்மையில் குறியீடு அவுட் தட்டச்சு செய்ய கூட அதை செயல்படுத்த ஒரு வழி
எண்கள் 1-10 அச்சிடுதல் இந்த வழிமுறை,,
இங்கு நாம் C நிரலாக்க மொழியில் அதே.
இவை வெவ்வேறு மொழிகளை அல்லது தொடரியல் எழுதப்பட்ட, செயல்படவில்லை சமமானதாக இருக்கும்.
நாம், பூலியன் வெளிப்பாடுகள் பற்றி கற்று
மற்றும் ஒரு பூலியன், உண்மை அல்லது தவறான ஒன்று என்று ஒரு மதிப்பு இருக்கிறது
இங்கு oftentimes பூலியன் வெளிப்பாடுகள்
நீங்கள் (x ≤ 5), நிலைமைகளை உள்ளே போக,
நன்றாக, நாம் ஏற்கனவே அந்த நிலையில் உண்மையான மதிப்பீடு செய்ய போகிறது x = 5, அதனால் அமைக்க.
இது உண்மை என்றால், அதை குறியீடு நிலையில் கீழே இருக்கிறது
கணினி மூலம் மதிப்பீடு போகிறது, அதனால் சரம் அச்சிடப்பட்ட போகிறது
நிலையான வெளியீடு, மற்றும் கால நிலை
என்று அறிக்கை அடைப்புக்குறிக்குள் உள்ளே என்ன குறிக்கிறது.
எல்லா ஆபரேட்டர்களும் நினைவில்.
| நாம் முயற்சிக்கும் போது இணைக்க 2 அல்லது அதற்கு மேற்பட்ட நிலைமைகள், | அது && மற்றும் நினைவில்
== இல்லை = 2 விஷயங்களை சமமாக சோதிக்க.
== ஒரு பூலியன் ஆபரேட்டர் அதேசமயம் = வேலையாக என்று ஞாபகம்.
≤, ≥ பின்னர் இறுதி 2 சுய விளக்க உள்ளனர்.
இங்கே பூலியன் தருக்கம் ஒரு பொது ஆய்வு.
மற்றும் பூலியன் வெளிப்பாடுகள், சுழல்கள் கூட முக்கியம்
இதில் நாம் இப்போது போகலாம்.
நாங்கள் போது, ஐந்து, CS50 இதுவரை சுழல்கள் பற்றி 3 வகையான கற்று, மற்றும் அதே நேரத்தில் செய்ய.
அது எனக்கு முக்கியம் என்று பெரும்பாலான நோக்கங்களுக்காக போது
நாம் உண்மையில் பொதுவாக வளைய எந்த வகை பயன்படுத்தலாம்
நோக்கங்களுக்காக அல்லது பொதுவான முறைகள் சில வகைகள் உள்ளன
குறிப்பாக இந்த சுழல்கள் ஒரு அழைப்பு என்று நிகழ்ச்சிகளில்
அது மிக திறமையான அல்லது அந்த வழியில் அதை குறியீட்டை நேர்த்தியான.
அது இந்த சுழல்கள் ஒவ்வொரு பெரும்பாலும் பயன்படுத்தப்படும் போக்கை என்ன செல்லலாம்.
>> ஒரு வட்டத்திற்கு நாம் பொதுவாக ஏற்கனவே நாம் மீண்டும் கூறு வேண்டும் எத்தனை முறை தெரியும்.
என்று நாம் நிலையில் வைத்து என்ன.
இன்னும், நான் = 0, நான் <10, எடுத்துக்காட்டாக.
நாம் ஏற்கனவே நாம் ஒன்று 10 முறை செய்ய வேண்டும் என்பது எனக்கு தெரியும்.
இப்போது, ஒரு லூப், பொதுவாக நாம் அவசியமில்லை
நாம் வளைய இயக்க வேண்டும் எத்தனை முறை தெரியும்.
ஆனால் நாங்கள் அதை விரும்பவில்லை என்று நிபந்தனை ஒருவித தெரியும்
எப்போதும் உண்மையாக இருக்கும் அல்லது எப்போதும் தவறான இருக்கும்.
எடுத்துக்காட்டாக, அதே அமைக்கப்படுகிறது.
நாம் ஒரு பூலியன் மாறி சொல்ல.
அது உண்மைதான் என்றாலும் நாம் குறியீடு மதிப்பீடு செய்ய வேண்டும்,
எனவே சற்று நீடிக்கவும், லூப் ஒரு விட பொது சிறிது,
ஆனால் சுழற்சி எந்த ஒரு நேரத்தில் வளைய வேண்டும்.
இறுதியாக, அதை போது இப்போதே புரிந்து கொள்ள trickiest இருக்கலாம் சுழல்கள்,,
நாம் முதல் குறியீடு மதிப்பீடு செய்ய வேண்டும் என்று அடிக்கடி பயன்படுத்தப்படுகின்றன
முதல் முறையாக முன் நாம் நிலையில் சரிபார்க்கவும்.
ஒரு ஒரு பொதுவான பயன் வழக்கு செய்ய போது சுழற்சி
நீங்கள் பயனர் உள்ளீடு பெற வேண்டும் போது, மற்றும் நீங்கள் பயனர் கேட்க வேண்டும் என்று
உள்ளீடு குறைந்த பட்சம் ஒரு முறை, ஆனால் அவர்கள் நல்ல உள்ளீடு தரவில்லை என்றால் இப்போதே
அவர்கள் உங்களுக்கு நல்ல உள்ளீடு கொடுக்க வரை அவர்களை கேட்டு கொள்ள வேண்டும்.
அதே நேரத்தில் வளைய ஒரு மிக பொதுவான பயன்பாடு, என்று தான்
மற்றும் அது இந்த சுழல்கள் உண்மையான கட்டமைப்பை பார்த்து விட்டு.
அவர்கள் பொதுவாக எப்போதும் இந்த முறை பின்பற்ற முனைகின்றன.
>> உள்ளே ஒரு வட்டத்திற்கு நீங்கள் 3 பாகங்கள் உண்டு:
தொடக்க, பொதுவாக ஏதாவது போன்ற முழு எண்ணாக நான் எண்ணி எங்கே = 0,
இந்த நிலையில் நாம் இன்னும் வைத்திருக்கும் வரை லூப் இந்த இயக்க சொல்ல விரும்பும் நிலையில்,
நாம் அதிகப்படுத்த எப்படி இது நான் இறுதியாக பின்னர் <10, மற்றும், மேம்படுத்தல் போன்ற
வட்டத்திற்கு ஒவ்வொரு கட்டத்திலும் எதிர்ப்பு மாறி.
அங்கு பார்க்க ஒரு பொதுவான விஷயம், தான் நான் + உள்ளது
இதில் 1 ஒவ்வொரு முறை நான் அதிகப்படுத்த வேண்டும்.
நீங்கள், நான் + = 2 போன்ற ஏதாவது செய்ய முடியும்
இது நான் உங்களை வளையத்தின் வழியாக செல்லும் ஒவ்வொரு முறையும் 2 சேர்க்க வேண்டும்.
பின்னர் இதை தான் உண்மையில் வளைய பகுதியாக இயங்கும் எந்த குறியீடு குறிக்கிறது.
மற்றும் ஒரு லூப், இந்த நேரத்தில் நாம் உண்மையில், சுழற்சி வெளியே துவக்கும் வேண்டும்
எனவே உதாரணமாக, நாம் நான் குறிப்பிட்டது சுழற்சி அதே வகை செய்ய முயற்சிக்கும் சொல்கிறேன்.
நாம் எண்ணாக நான் = 0 வளைய தொடங்கும் முன்பு கூறுவேன்.
நான் <10 இந்த நிலையில் நாம் என்ன செய்ய முடியும்
முன் குறியீடு எனவே அதே தொகுதி,
இந்த நேரத்தில் உதாரணமாக குறியீடு மேம்படுத்தல் பகுதியாக, நான் + +
உண்மையில் வளைய உள்ளே செல்லும்.
இறுதியாக, ஒரு, அது போது சுழற்சி ஒத்த வரை செய்ய,
ஆனால் நாம் குறியீடு ஒருமுறை மதிப்பீடு என்று நினைவில் இல்லை
நிலைமையை சரி முன், அது மிக அதிக அர்த்தமுள்ளதாக
நீங்கள் கீழே மேல் வரிசையில் பாருங்கள். என்றால்
ஒரு நீங்கள் கூட அதே நிலையை பார் முன் வளைய குறியீடு மதிப்பீடு போது செய்ய,
ஒரு வட்டத்திற்கு அதேசமயம், இது முதல் சரிபார்க்கிறது.
அறிக்கைகள் மற்றும் மாறிகள்.
நாம் ஒரு புதிய மாறி உருவாக்க வேண்டும் போது நாம் முதலில் துவக்க வேண்டும்.
>> எடுத்துக்காட்டாக, int பட்டியில், மாறி பட்டியில் துவக்கும்
ஆனால் அது இப்போது பார் மதிப்பு என்ன அதனால், அது ஒரு மதிப்பு கொடுக்க கூடாது?
நாம் தெரியாது.
இது, முன்னர் அங்கு நினைவகத்தில் சேமிக்கப்படும் என்று சில குப்பை மதிப்பு இருக்க முடியும்
நாம் அது மாறி பயன்படுத்த வேண்டாம்
நாம் உண்மையில் அது ஒரு மதிப்பு கொடுக்க, வரை
நாம் இங்கே அதை அறிவிக்க.
நாம் அது கீழே 42 இருக்கும் துவக்க.
இப்போது, நிச்சயமாக, நாம் இந்த ஒரு வரியில் மீது, முழு எண்ணாக பட்டியில் = 42 செய்திருக்க வேண்டும் முடியாது என்று எனக்கு தெரியும்.
ஆனால் வெறும், மீது போகிறாய் என்று என்று பல படிநிலைகளை துடைக்க வேண்டும்
பிரகடனத்தை மற்றும் துவக்குதலை இங்கே தனித்தனியாக என்ன நடக்கிறது உள்ளன.
, அது அடுத்த ஒரு, முழு எண்ணாக பஜ் = பட்டியில் + 1, ஒரு படி மீது நடக்கும், மற்றும்
இந்த குறியீடு தொகுதி இறுதியில் கீழே இந்த அறிக்கை, அந்த அதிகரிக்கும் பஜ்,
நாம் பஜ் மதிப்பை அச்சிட இருந்தன இருந்தால்,, அது 44 இருக்கும் என
நாம், அறிவிக்கலாம், மற்றும் 1> பட்டியில் இருக்க வேண்டும், அது துவக்க, ஏனெனில்
மற்றும், பின்னர் நாம் உடன் இன்னும் ஒருமுறை, அது அதிகப்படுத்த + +.
நாம் இந்த அழகாக சுருக்கமாக க்கும் மேற்பட்ட சென்றார், ஆனால், அது ஒரு பொது வேண்டும் நல்லதாயிற்று
த்ரெட்களும் மற்றும் நிகழ்வுகளை இருக்கும் என்ன பற்றிய புரிந்து.
நாம் முக்கியமாக, ஸ்க்ராட்ச் உள்ள இந்த did
எனவே நீங்கள் குறியீடு பல வரிசைகள் நூல்கள் யோசிக்க முடியும்
அதே நேரத்தில் இயங்கும்.
உண்மையில் உள்ள,, அது அநேகமாக, அதே இயங்கும் நேரத்தில் இல்லை உள்ளது
ஆனால் அப்படி abstractly நாம் அந்த வழியில் அதை நினைக்க முடிகிறது.
>> ஸ்க்ராட்ச் உள்ள, எடுத்துக்காட்டாக, நாம் பல மாய சிறுதெய்வ வடிவங்கள் இருந்தது.
அதே நேரத்தில் வேறு குறியீடு இயக்கும்.
மற்ற ஏதாவது சொல்கிறாய் என்று, அதே நேரத்தில் ஒரு நடைபயிற்சி முடியும்
திரையில் வேறு பகுதியில்.
நிகழ்வுகளை தர்க்கம் அவுட் பிரிப்பதில் உள்ள மற்றொரு வழியாக உள்ளன
உங்கள் குறியீடு பற்றிய வெவ்வேறு தனிமங்களின் இடையே உள்ள,
மற்றும் ஸ்க்ராட்ச் உள்ள நாம், பிராட்காஸ்ட் ஐ பயன்படுத்தி நிகழ்வுகளை உருவகப்படுத்த போலியான முடிந்தது
நான் Receive போது மற்றும் என்று, நான் ஹியர் இல்லை போது,, உண்மையில் தான்
ஆனால் அடிப்படையில், அது தகவல் டிரான்ஸ்மிட் செய்ய ஒரு வழி தான்
ஒரு சிறு தெய்வம் இருந்து மற்றொரு செய்ய.
உதாரணமாக, நீங்கள், விளையாட்டு மீது அனுப்ப வேண்டும்
மற்றும் மற்றொரு சிறு தெய்வம் க்கும் மேற்பட்ட விளையாட்டு பெறுகிறது போது,
இது ஒரு குறிப்பிட்ட வழியில் பதிலளிக்கும்.
, அது நிரலாக்க க்கான புரிந்து கொள்ள ஒரு முக்கியமான மாதிரியை தான்.
வெறும் அடிப்படை வீக் 0 க்கும் மேற்பட்ட செல்ல, என்ன, நாம் அவ்வளவு தூரம் க்கும் மேற்பட்ட போயிருக்கனும்,
'ஸ் இந்த எளிய சி நிரல் பார் let.
உரை இங்கே இருந்து சிறிய ஒரு சிறிய பிட் இருக்கலாம், ஆனால் நான், அது க்கும் மேற்பட்ட உண்மையில் விரைவான செல்கிறோம், நில்லுங்கள்,.
நாம் மேலே, cs50.h மற்றும் stdio.h 2 தலைப்பு கோப்புகள் உட்பட.
நாம், பின்னர் 100 இருக்க வேண்டும் ஒரு மாறிலி என்று அழைக்கப்படுகிறது வரம்பை வரையறுக்கும்போது நீங்கள்.
நாம், பின்னர் எங்கள் முக்கிய செயல்பாடு அமல்படுத்தி நீங்கள்.
நாம் இங்கே கட்டளை வரி வாதங்கள் பயன்படுத்த வேண்டாம் ல் இருந்து நாம் வெற்றிடத்தை நீங்கள் இடம்பெற செய்ய வேண்டும்
முக்கிய க்கான வாதங்கள் போன்ற.
நாம் முக்கிய மேலே உள்ள முழு எண்ணாக பார்க்க. பிரதியுபகாரமாக வகை தான் என்று, எனவே கீழே உள்ள 0 திரும்பி.
மற்றும் நாம் முழு எண்ணாக கிடைக்கும் CS50 நூலகம் செயல்பாடு ஐ பயன்படுத்தி நீங்கள்
உள்ளீடு க்கான பயனர் ask, மற்றும் நாம் இந்த மாறி x இல், அது சேமிக்க,
, அதனால் நாம் மேலே உள்ள x அறிவிக்கலாம்,, மற்றும் நாம் x = GetInt உடன், அது துவக்க.
>> நாம், பின்னர் பயனர் நம்மை நல்ல உள்ளீடு கொடுத்தது, இருந்தால், பார்க்க சரிபார்த்து.
, அது ≥ அதிகபட்சம் LIMIT தான் இருந்தால், நாம் 1 பற்றிய ஒரு பிழை குறியீடு திரும்பி மற்றும் ஒரு பிழை செய்தியை அச்சிட வேண்டும்.
மற்றும் இறுதியாக, பயனர் எங்களுக்கு கொடுத்தவற்றிற்கு இருந்தால், நல்ல உள்ளீடு
நாம் எண் ஐ தற்பெருக்காக்கினால் விடை மற்றும் என்று இதன் விளைவாக, அவுட் அச்சிட போகிறோம்,.
வெறும் உறுதிப்படுத்தி கொள்ள, என்று அந்த ஹிட் வீட்டில் அனைத்து
நீங்கள் இங்கே குறியீடு வெவ்வேறு கணினி பாகங்கள் லேபிள்களுக்கு பார்க்க முடியும்.
நான் மாறிலி, தலைப்பு கோப்புகள் குறிப்பிட்டுள்ளார்.
ஓ, முழு எண்ணாக x. ஒரு உள்ளூர் மாறி தான் என்று நினைவில் கொள்ள உறுதிப்படுத்தி கொள்ளவும்,.
என்று நாம் பேசுவோம் இது, உலக மாறி இருந்து முரண்படுகின்றது
ஒரு சிறிய பிட் பின்னர் மறுஆய்வு அமர்வு உள்ள,
மற்றும் நாம், printf நூலகம் செயல்பாடு என்று அழைக்கிறாய்
நாம் stdio.h தலைப்பு கோப்பு சேர்க்கப்பட்டுள்ளது, இல்லை இருந்தது, அதனால் இருந்தால்,
நாம் printf அழைக்க முடியாது என்று.
மற்றும் நான், இங்கே ஆஃப் துண்டிக்கபட்டது என்று அம்புக்குறி% d க்கு சுட்டி காட்டியது உள்ளது நம்ப
printf உள்ள ஒரு வடிவமைத்தலை சரம், இதில் ஆகும்.
, அது ஒரு எண்,% d, போன்ற இந்த மாறி அவுட் அச்சிட மியூச்சுவல் நிதி.
மற்றும் என்று வீக் 0 க்கான, அது ஆகும்.
இப்போது லூகாஸ் தொடர்ந்து செய்ய போகிறாள்.
ஏய்,, பசங்களா!. என் பெயர் லூகாஸ் ஆகும்.
நான், வளாகம், மேத்தரால் மீது சிறந்த வீட்டை உள்ள ஒரு கல்லூரியின் இரண்டாம் ஆண்டு மாணவ இருக்கிறேன்
மற்றும் நான் வீக் 1 மற்றும் 2.1 பற்றி ஒரு சிறிய பிட் பேச போகிறேன்,,,.
[வீக் 1 மற்றும் 2.1!!] [லூகாஸ் Freitas]
நாம் ஸ்க்ராட்ச் இருந்து சி செய்ய உங்கள் குறியீடு மொழிபெயர்ப்பது தொடங்கியது, போது Lexi, என்று கூறி செய்யப்பட்டது போன்ற
நாம் அறிகிறோம் விஷயங்களை ஒன்று நீங்கள் தான் முடியும் என்று
உங்கள் குறியீடு எழுத மற்றும் இனி ஒரு பச்சை கொடி ஐ பயன்படுத்தி, அது ரன் அவுட்.
, உண்மையில், நீங்கள் உங்கள் சி நிரல் செய்ய சில படிநிலைகளை பயன்படுத்த வேண்டும்
செயல்படும் கோப்பை மாறியது.
அடிப்படையில் என்ன ஒரு நிரல் எழுதும் போது என்ன ஆகும் என்று
நீங்கள், ஒரு மொழி புரிந்து கொள்ள முடியும் என்று ஒரு மொழி உங்கள் கருத்தை மொழிபெயர்க்க
நீங்கள் சி உள்ள ஒரு நிரல் எழுதுவதில் நீங்கள், அதனால் போது
என்ன நீங்கள் செய்துவருகிறோம், உண்மையில் உங்கள் தொகுப்பி புரிந்துகொள்ள போகிறார்கள் என்று ஏதாவது எழுதுவதில் உள்ளது,
மற்றும், பின்னர் தொகுப்பி என்று குறியீடு மொழிபெயர்க்க போகிறாள் என்று
, உங்கள் கணினியை புரிந்து கொள்ள என்று ஏதாவது பிரிக்கப்படுகின்றன.
>> மற்றும் விஷயம்,,, உங்கள் கணினியை, உண்மையில் மிகவும் ஊமை உள்ளது.
உங்கள் கணினியில் மட்டுமே, 0 க்கள் மற்றும் 1 வி புரிந்து கொள்ள முடியும்
எனவே உண்மையில் முதல் கணினிகள் மக்கள் பொதுவாக நிரல்படுத்தலாம்
இனி 0 க்கள் மற்றும் 1 வி, ஆனால் பயன்படுத்தி, கடவுளுக்கு நன்றி.
நாம் 0 வி மற்றும் 1 வி க்கான தொடர்ச்சிகள் மட்டும் பாக்கியிருந்தன, நினைவில்கொள்ள இல்லை
லுப்பில் க்கான அல்லது ஒரு, அதே நேரத்தில் லுப்பில் மற்றும், அதனால் மீது க்கான ஒரு க்கான.
நாம் ஒரு மொழி உண்டு, அதனால் தான்.
என்ன ஒரு தொகுப்பி செய்கிறது,, அது அடிப்படையில் சி குறியீடு மொழிகளிலிருந்து மொழியாக்கம் செய்ய ஆகும்
எங்கள் வழக்கு உள்ள,, உங்கள் கணினியை புரிந்து கொள்ள என்று ஒரு மொழி செய்ய,
, இதில் பொருள் குறியீடு, மற்றும் நாம் ஐ பயன்படுத்தி உள்ளோம் என்று நான் தொகுப்பி ஆகும்
கணகண வென்ற சப்தம் என்று அழைக்கப்படுகிறது,,, அதனால் இந்த, உண்மையில் கணகண வென்ற சப்தம் க்கான சின்னமாக உள்ளது.
நீங்கள் உங்கள் நிரல் வேண்டும் போது, நீங்கள் 2 விஷயங்களை செய்தாக வேண்டும்.
முதல், நீங்கள் உங்கள் நிரல் தொகுக்க வேண்டும், பின்னர் உங்கள் நிரலை இயக்க போகிறீர்கள்.
நீங்கள் அவ்வாறு செய்ய விருப்பங்களை நிறைய உங்கள் திட்டம் தொகுக்க.
முதல் ஒரு கணகண வென்ற சப்தம் program.c செய்ய உள்ளது
இதில் நிரல் உங்கள் திட்டத்தின் பெயர்.
இந்த வழக்கில் அவர்கள் தான் சொல்கிறார்கள் பார்க்க முடியும் "ஏய், என் திட்டத்தை தொகுக்கலாம்."
நீங்கள் அல்லது ஏதாவது "நான் என் திட்டத்தை இந்த பெயர் வேண்டும்" என்று நாங்கள் சொல்லவில்லை.
>> இரண்டாவது விருப்பத்தை உங்கள் திட்டத்தை ஒரு பெயர் கொடுத்து.
நீங்கள் கணகண வென்ற சப்தம்-o நீங்கள் விரும்பும் பெயரை சொல்ல முடியாது
இயக்கக்கூடிய கோப்பை மற்றும் பிறகு program.c என்ற வேண்டும்.
மற்றும் நீங்கள் உருவாக்க வேண்டும், எப்படி முதல் 2 இடங்களில் பார்க்க முடியும்
நான். கேட்ச் வைத்து, மற்றும் மூன்றாவது ஒரு நான் மட்டுமே திட்டங்கள் இல்லை?
சரி, நீங்கள் உண்மையில் போட கூடாது. கேட்ச் நீங்கள் பயன்படுத்த போது.
இல்லையெனில் தொகுப்பி உண்மையில் நீங்கள் கத்துகிறாய் போகிறது.
உங்களுக்கு நினைவிருக்கிறதா மேலும், நான், எனக்கு தெரியாது
ஆனால் நாம் பயன்படுத்த-lcs50 அல்லது LM முறை நிறைய.
அந்த இணைப்பு அழைக்கப்படுகிறது.
அது, நீங்கள் அங்கே அந்த நூலகங்கள் பயன்படுத்த என்று தொகுப்பி சொல்கிறது
நீங்கள் cs50.h பயன்படுத்த வேண்டும் என்று நீங்கள் உண்மையிலேயே தட்டச்சு செய்ய வேண்டும்
கணகண வென்ற சப்தம் program.c-lcs50.
நீங்கள் செய்யவில்லை என்றால், ஒடுக்கி தெரிய போவதில்லை
நீங்கள் cs50.h. அந்த செயல்பாடுகளை பயன்படுத்தி என்று
நீங்கள் 2 விருப்பங்கள் உங்கள் நிரலை இயக்க வேண்டும் போது.
நீங்கள் கணகண வென்ற சப்தம் program.c செய்தால் நீங்கள் உங்கள் நிரல் பெயர் சொல்லவில்லை.
நீங்கள். / A.out பயன்படுத்தி அதை இயக்க வேண்டும்.
A.out நீங்கள் ஒரு பெயரை என்றால் கணகண வென்ற சப்தம் உங்கள் திட்டத்தை வழங்கும் ஒரு நிலையான பெயர்.
உங்கள் திட்டத்தை ஒரு பெயர் கொடுத்து, இல்லையெனில் நீங்கள். / நிரல் செய்ய போகிறோம்,
நீங்கள் நிரல் பெயர் வைக்க செய்தால் மேலும் ஒரு நிரலை போகிறது என்று
ஏற்கனவே கேட்ச் கோப்பு அதே பெயர் திட்டமிடப்பட்டது போகிறது.
நாம் தரவு வகைகள் மற்றும் தரவு பேசினார்.
>> அடிப்படையில் தரவு வகைகள் அவர்கள் பயன்படுத்தும் சிறிய பெட்டிகள் அதே விஷயம் இல்லை
மதிப்புகள் சேமிக்க, அதனால் தரவு வகைகள் மட்டும் Pokémons போன்ற உண்மையில்.
அவர்கள் அனைத்து அளவுகள் மற்றும் வகைகள் வந்து.
அந்த ஒப்புமை அர்த்தமுள்ளதாக என்றால் எனக்கு தெரியாது.
தரவு அளவு உண்மையில் இயந்திரம் கட்டமைப்பு பொறுத்தது.
நான் இங்கே காட்ட போகிறேன் என்று அனைத்து தரவு அளவுகள்
நமது பயன்பாட்டிற்கான விஷயத்தில் இது ஒரு 32 பிட் கணினியில், உண்மையாக இருக்கும்
ஆனால் நீங்கள் உண்மையில் உங்கள் மேக் அல்லது விண்டோஸ் மேலும் குறியீட்டு இருந்தால்
ஒருவேளை நீங்கள், ஒரு 64 பிட் கணினியில் போகிறது
நான் செல்கிறேன் என்று தரவு அளவுகள் இங்கே காட்ட நினைவில்
32 பிட் கணினியில் இருக்கும்.
நாங்கள் பார்த்த முதல் ஒரு, ஒரு முழு எண்ணாக இருந்தது
இது மிகவும் நேர்மையானவன்.
நீங்கள் ஒரு முழு எண் சேமிக்க எண்ணாக பயன்படுத்த.
நாங்கள் தன்மை, கரி பார்த்தேன்.
நீங்கள் ஒரு கடிதம் அல்லது ஒரு சிறிய சின்னம் பயன்படுத்த விரும்பினால் நீங்கள் ஒரு எரிப்பதை பயன்படுத்த போகிறோம்.
ஒரு எரிப்பதை Lexi கூறினார் போன்ற 8 பிட்கள், அதாவது 1 பைட், உள்ளது.
அடிப்படையில் நாம் 256 என்று ஒரு ஆஸ்கி அட்டவணை வேண்டும்
0 க்கள் மற்றும் 1 வி சாத்தியமான சேர்க்கைகள்,
பின்னர் நீங்கள் ஒரு எரிப்பதை தட்டச்சு போது அதை மொழிபெயர்க்க நடக்கிறது
பாத்திரம் உள்ளீடுகள் நீங்கள் Lexi போல், ஆஸ்கி அட்டவணையில் வேண்டும் என்று பல என்று.
நாம் தசம எண்கள் சேமிக்க பயன்படுத்தும் மிதவை, இல்லை.
நீங்கள் 3,14 தேர்வு செய்ய விரும்பினால், எடுத்துக்காட்டாக, நீங்கள் ஒரு மிதவை பயன்படுத்த போகிறோம்
அல்லது இன்னும் துல்லியமாக என்று ஒரு இரட்டை.
ஒரு மிதவை 4 பைட்டுகள் உள்ளது.
ஒரு இரட்டை 8 பைட்டுகள், அதனால் மட்டுமே வேறுபாடு துல்லியமாக உள்ளது.
நாங்கள் முழு எண்கள் பயன்படுத்தப்படும் என்று ஒரு நீண்ட வேண்டும்
நீங்கள், ஒரு முழு எண்ணாக மற்றும் நீண்ட அதே அளவு இருக்கும் ஒரு 32 பிட் கணினியில் பார்க்கலாம்
அது உண்மையில் ஒரு 32 பிட் கணினியில் நீண்ட பயன்படுத்த பயன் இல்லை.
>> நீங்கள் ஒரு மேக் மற்றும் 64 பிட் கணினியில் பயன்படுத்தி நீங்கள் ஆனால், உண்மையில் ஒரு நீண்ட, அளவு 8 உள்ளது
அது உண்மையில் கட்டமைப்பு சார்ந்துள்ளது.
32 பிட் கணினியில் அது உண்மையில் ஒரு நீண்ட பயன்படுத்த பயன் இல்லை.
பின்னர் ஒரு நீண்ட நீண்ட, மறுபுறம், 8 பைட்டுகள் உள்ளது
நீங்கள் நீண்ட முழு வேண்டும் என்றால் அது மிகவும் நல்லது.
இறுதியாக, நாம், உண்மையில் ஒரு எரிப்பதை * இது, சரம் இல்லை
இது ஒரு எரிப்பதை ஒரு சுட்டிக்காட்டி இருக்கிறது.
இது சரம் அளவு இருக்கும் என்று நினைக்கிறேன் மிக எளிது
நீ அங்கு இல்லை என்று கதாபாத்திரங்கள் எண்ணிக்கை,
ஆனால் உண்மையில் எரிப்பதை * தன்னை
4 பைட்டுகள் இது ஒரு கரி, ஒரு சுட்டிக்காட்டி அளவு உள்ளது.
ஒரு எரிப்பதை * அளவு 4 பைட்டுகள் ஆகும்.
நீங்கள் ஒரு சிறிய வார்த்தை அல்லது ஒரு கடிதம் அல்லது ஏதாவது இருந்தால் பரவாயில்லை.
இது 4 பைட்டுகள் இருக்க போகிறது.
நாங்கள், நடிப்பு பற்றி கொஞ்சம் தெரிந்து
நீங்கள் இருந்தால் நீங்கள் பார்க்க முடியும் என, எடுத்துக்காட்டாக, ஒரு திட்டம் கூறுகிறது
int x = 3 மற்றும் பிறகு printf ("% d", x / 2)
நீங்கள் அதை திரையில் அச்சிட என்ன நடக்கிறது என்று தெரியுமா?
>> யாரோ? >> [மாணவர்கள்] 2.
1. >> 1, yeah.
நீங்கள் 3/2 செய்யும் போது அது, 1.5 பெற நடக்கிறது
நாம் ஒரு முழு பயன்படுத்தும் இருந்து ஆனால் அது, தசம பாகம் புறக்கணிக்க நடக்கிறது
நீங்கள் 1 போகிறது.
நீங்கள், உதாரணமாக, நீங்கள் என்ன செய்ய முடியும் நடக்க வேண்டும் என்றால்
ஒரு மிதவை அறிவிக்க உள்ளது y = x.
பின்னர் 3 பயன்படுத்தப்படும் என்று x இப்போது y உள்ள 3,000 ஆக போகிறது.
பின்னர் நீங்கள் y / 2 அச்சிட முடியாது.
உண்மையில், நான் ஒரு 2 வேண்டும். அங்கு.
இது, 3.00/2.00 செய்ய நடக்கிறது
நீங்கள் 1.5 போகிறோம்.
நாம் தான் தசம பகுதி 2 தசம அலகுகள் கேட்க இந்த .2 f வேண்டும்.
நீங்கள் .3 f இருந்தால் அது உண்மையில் 1,500 வேண்டும் நடக்கிறது.
அது இருந்தால் 2 இது 1.50 ஆக போகிறது.
நாங்கள் இங்கே இந்த வழக்கு உள்ளது.
நீங்கள் பங்குகளாக செய்தால் x = 3,14 மற்றும் நீங்கள் printf x
நீங்கள் 3,14 போகிறோம்.
நீங்கள் செய்தால் x x இன் = int,
ஒரு முழு எண்ணாக போன்ற x சிகிச்சை பொருள் மற்றும் நீங்கள் இப்போது x அச்சிட இது
நீங்கள் 3.00 போகிறது.
அந்த உணர்வு ஏற்படுத்தும்?
நீங்கள் முதல் முழு எண்ணாக x சிகிச்சை தான் காரணம், அதனால், தசம பாகம் அசட்டை
பின்னர் நீங்கள் x அச்சிடுகிறது.
இறுதியாக, நீங்கள், இதை செய்ய முடியும்
int x = 65, மற்றும் நீங்கள் ஒரு கரி கேட்ச் = x அறிவிக்க,
நீங்கள் கேட்ச் அச்சிட என்றால், பிறகு நீங்கள் உண்மையில் போகிறோம்
ஒரு, நீங்கள் இங்கே இவ்வளவு அடிப்படையில் என்ன செய்கிறாய்
, கதாபாத்திரமாக முழு மொழிபெயர்ப்பது
போல் ஆஸ்கி அட்டவணை இல்லை.
நாங்கள் கணித ஆபரேட்டர்கள் பற்றி பேசினார்.
அவர்கள் மிகவும் அழகாக நேரடியான, அதனால் + -, *, /,
மேலும் நாங்கள் 2 எண்கள் ஒரு பிரிவு எஞ்சிய இது மோட், பேசினார்.
நீங்கள் உதாரணமாக 10% 3, இருந்தால்
இது 3 10 பிரித்து பொருள், மற்றும் எஞ்சிய என்ன?
இது 1 ஆக போகிறது, அது திட்டங்கள் நிறைய உண்மையாக மிகவும் பயனுள்ளதாக இருக்கும்.
வைஜெனேர் மற்றும் சீசர் நான் உங்களுக்கு அனைத்து மோட் பயன்படுத்தப்படும் என்று அழகாக தெரியும்.
* மற்றும் / இணைந்த போது கணித ஆபரேட்டர்கள் பற்றி, மிகவும் கவனமாக இருக்க வேண்டும்.
>> நீங்கள் செய்தால் உதாரணமாக, (3/2) * 2 என்ன செய்ய போகிறீர்கள்?
[மாணவர்கள்] 2.
சரி, 2, 3/2 ஏனெனில் 1.5 ஆக போகிறது,
ஆனால் நீங்கள் 2 முழு இடையே நடவடிக்கைகளை செய்கிறீர்கள் இருந்து
நீங்கள் உண்மையில் நான், 1 கருத்தில் கொள்ள போகிறோம்
பின்னர் 1 * 2 2 போகிறது, அதனால் மிக, மிக கவனமாக இருக்க வேண்டும்
முழு எண்களின் கூட்டல் செய்யும்போது, ஏனெனில்
நீங்கள் அந்த வழக்கில், அந்த 2 = 3 வந்துவிடும்.
மேலும் முன்னுரிமை பற்றி மிகவும் கவனமாக இருக்க வேண்டும்.
நீங்கள் வழக்கமாக நீங்கள் செய்கிறீர்கள் என்று உறுதியாக இருக்க வேண்டும் அடைப்புக்குறிக்குள் பயன்படுத்த வேண்டும்.
சில பயனுள்ள குறுக்குவழிகளை, நிச்சயமாக, ஒரு நான் + அல்லது நான் + = 1
அல்லது பயன்படுத்தி + =.
என்று நான் = நான் + 1 செய்து அதே விஷயம்.
நீங்கள் நான் என்ன செய்ய முடியும் - அல்லது நான் - = 1,
இது, நான் = நான் -1 அதே விஷயம்
ஒன்று நீங்கள் குறைந்தது, சுழல்கள் உள்ள நிறைய பயன்படுத்த.
மேலும், * நீ * = நீங்கள் செய்தால், உதாரணமாக பயன்படுத்தினால்,
நான் * = 2 நான் = நான் * 2 கூறி அதே விஷயம்,
மற்றும் பிரிவு ஒரே விஷயம்.
நீங்கள் நான் / = 2 செய்தால் அதை நான் = நான் / 2 அதே விஷயம்.
>> இப்போது செயல்பாடுகளை பற்றி.
நீங்கள் செயல்பாடுகளை குறியீடு காப்பாற்ற ஒரு நல்ல உத்தி என்பதை கற்று
நீங்கள் நிகழ்ச்சிகளை நீங்கள் போது, நீ அதே பணியை செய்ய விரும்பினால்
குறியீடு மீண்டும் மீண்டும், ஒருவேளை நீங்கள் ஒரு செயல்பாட்டை பயன்படுத்த வேண்டும்
இப்போது நீங்கள் மீண்டும் மேல் குறியீடு நகலெடுத்து ஒட்டவும் இல்லை.
உண்மையில், முக்கிய செயல்பாடாக இருக்கிறது, நான் உங்களுக்கு ஒரு சார்பு வடிவம் காட்ட போது
நீங்கள் அழகாக தெளிவாக இருக்கிறது என்று பார்க்க போகிறோம்.
நாங்கள், சில நூலகங்களில் இருந்து செயல்பாடுகளை பயன்படுத்துவது
எடுத்துக்காட்டாக, printf, CS50 நூலகம் இருந்து இது GetIn,,
மற்றும் toupper போன்ற மற்ற செயல்பாடுகள்.
அந்த பணிகள் அனைத்தும் உண்மையில், மற்ற நூலகங்கள் நடைமுறைப்படுத்தப்படுகின்றன
நீங்கள் உங்கள் திட்டத்தில் ஆரம்பத்தில் அந்த தாம்பு கோப்புகளை வைத்து போது
நீங்கள் என்னை அந்த செயல்பாடுகளுக்கு குறியீடு கொடுங்கள் முடியும் சொல்கிறாய்
அதனால் நான் அவற்றை செயல்படுத்த இல்லை?
மற்றும் நீங்கள் நிரலாக்க தொடங்கும் போது, உங்கள் சொந்த செயல்பாடுகளை எழுதலாம்
நீங்கள் நூலகங்கள் உங்களுக்கு தேவையான அனைத்து செயல்பாடுகளும் இல்லை என்று.
கடந்த pset, உதாரணமாக, நாம், போராட்டம் வரைந்து, மற்றும் தேடல் எழுதியது
அது செயல்பாடுகளை எழுத முடியும் மிக, மிக முக்கியம்
அவர்கள் பயனுள்ளதாக இருக்கும், மற்றும் நாம் நிரலாக்க அனைத்து நேரம் பயன்படுத்தினால், ஏனெனில்,
அது குறியீடு நிறைய சேமிக்கிறது.
ஒரு சார்பு வடிவம் இந்த ஒன்றாகும்.
நாம் தொடக்கத்தில் மீண்டும் வகை உண்டு. மீண்டும் வகை என்ன?
இது உங்கள் செயல்பாடு திரும்ப போகும் போது மட்டும் தான்.
நீங்கள் காரணியாலான உதாரணமாக ஒரு செயல்பாடு,,, இருந்தால்
என்று, ஒரு முழு ஒரு காரணியாலான கணக்கிட நடக்கிறது
ஒருவேளை இது ஒரு முழு எண் திரும்ப நடக்கிறது.
பின்னர் மீண்டும் வகை எண்ணாக இருக்க போகிறது.
Printf உண்மையில் மீண்டும் வகை வெற்றிடத்தை உள்ளது
நீங்கள் எதையும் திரும்பி இருப்பதால்.
நீங்கள் திரையில் விஷயங்களை அச்சிடுதல்
பின்னர் விழாவில் விட்டுவிடுதல்.
பிறகு நீங்கள் தேர்வு செய்யலாம் என்று செயல்பாடு பெயர் உண்டு.
Xyz போன்ற ஒரு பெயரை தேர்வு இல்லை போல, ஒரு சிறிய நியாயமாக இருக்க வேண்டும்
அல்லது x2f போல்.
அர்த்தமுள்ளதாக என்று ஒரு பெயர் புனைய முயற்சி.
>> உதாரணமாக, அதை காரணியாலான என்றால், காரணியாலான என்று.
இது ஏதோ வரைய என்று ஒரு செயல்பாடு இருந்தால், அதை வரைந்து பெயரை.
பின்னர் நாங்கள் வாதங்களை அழைக்கப்படுகின்றன அளவுருக்கள்,, இல்லை
உங்கள் செயல்பாடு தேவை என்று வளங்களை போன்ற இவை
உங்கள் குறியீடு இருந்து அதன் பணியை செய்ய.
நீங்கள் பல காரணியாலான கணக்கிட விரும்பினால்
ஒருவேளை நீங்கள் ஒரு காரணியாலான கணக்கிட பல வேண்டும்.
நீங்கள் போகிறது என்று வாதங்கள் ஒரு எண் ஆகும்.
பின்னர் அது ஏதாவது மற்றும் இறுதியில் மதிப்பு திரும்ப நடக்கிறது
அது ஒரு வெற்றிடத்தை விழா வரை.
இது ஒரு உதாரணம் பார்க்கலாம்.
நான், முழுஎண்களின் ஒரு வரிசையில் எண்கள் மொத்த அளவை வைத்து ஒரு செயல்பாடு எழுத விரும்பினால்
அனைத்து முதல், திரும்பி வகை எண்ணாக இருக்கும்
நான் முழு ஒரு வரிசைக்கு காரணம்.
பின்னர் நான், sumArray போன்ற செயல்பாடு பெயரை போகிறேன்
பின்னர், முழு எண்ணாக nums வேண்டும், வரிசை தன்னை அழைத்து நடக்கிறது
பின்னர் நான் தொகையிடும் வேண்டும் எத்தனை எண்கள் தெரியும் அதனால் வரிசை நீளம்.
நான் 0 உதாரணத்திற்கு ஒரு மாறி என்று தொகை,,, துவக்க வேண்டும்
நான் வரிசையில் ஒரு உறுப்பு பார்க்க ஒவ்வொரு முறையும் நான் கூட்டுத்தொகையாக சேர்க்க வேண்டும், அதனால் நான் வளைய ஒரு செய்தார்.
Lexi சொன்னது போல, நீங்கள் எண்ணாக நான் = 0, நான் <நீளம் மற்றும் +.
மற்றும் வரிசை ஒவ்வொரு உறுப்பு நான் கூட்டுத்தொகையாக + = nums [நான்] செய்தது,
பின்னர் நான் தொகை திருப்பி, அது மிகவும் எளிது, மற்றும் அது குறியீடு நிறைய சேமிக்கிறது
இந்த விழாவில் நிறைய தடவை பயன்படுத்தி நீங்கள்.
நாம் நிலைமைகளை பார்த்துக்கொண்டோம்.
நாம் வேறு, அது வேண்டும், மற்றும் வேறு என்றால்.
அந்த வித்தியாசம் என்ன என்று பார்ப்போம்.
இந்த 2 குறியீடுகள் பாருங்கள். அவர்களுக்கு இடையே என்ன வேறுபாடு உள்ளது?
முதல் ஒரு அடிப்படையில் குறியீடுகள் நான் உங்களுக்கு சொல்ல விரும்புகிறேன்
, அல்லது 0 - பல + என்றால்.
முதல் ஒரு அதை> 0 என்று அது சாதகமான விஷயம் என்கிறார்.
அது 0 = இருந்தால் அது 0, அது <0 இருந்தால் அது எதிர்மறையான தான்.
>> வேறு, வேறு, நீங்கள் வேறு ஒரு செய்கிறார்.
இரண்டு இடையே உள்ள வேறுபாடு இந்த ஒரு உண்மையில் என்ன என்று
சரி என்றால்> 0, <0 அல்லது = 0 மூன்று முறை,
நீங்கள் பல 2 இருக்கிறது என்றால், எடுத்துக்காட்டாக, அதை இங்கே வந்து சொல்ல நடக்கிறது
அது சரி என்று நடக்கிறது (x> 0) என்றால், மற்றும், அதனால் நான் நேர்மறை அச்சிட.
ஆனால் நான் அதை> 0 என்று அது 0 அல்லது <0 இருக்க போவதில்லை என்று கூட
நான் இன்னமும் 0 செய்ய போகிறேன், அது, <0
எனவே நான் உண்மையில் நான் இல்லை என்று என்பதெல்லாம் உள்ளே செல்கிறேன்
நான் ஏற்கனவே இந்த நிலையில் எந்த பூர்த்தி செய்ய போவதில்லை என்று எனக்கு தெரியும்.
நான் அறிக்கை வேறு, வேறு, நீங்கள் பயன்படுத்தலாம்.
X = 0 நான் நேர்மறை அச்சிட அது அடிப்படையில் கூறுகிறார்.
அது இல்லை என்றால், நான் இந்த சோதனை போகிறேன்.
இது 2 இருந்தால் நான் இதை செய்ய போகிறேன்.
நான் x = 2 செய்தால் அடிப்படையில் நீங்கள் சொல்ல முடியும்
(x> 0) என்றால், ஆமாம், இந்த அச்சிட.
இப்போது நான் அதை> 0 என்று அந்த என்று முதலில் நீங்கள் திருப்தி
நான் கூட இந்த குறியீடு இயக்க போவதில்லை.
இந்த பயன்படுத்தினால் குறியீடு 3 மடங்கு வேகமாக, உண்மையில், வேகமாக இயங்கும்.
நாங்கள் சுமார் மற்றும் அல்லது கற்று.
நான் Lexi ஏற்கனவே அவர்களை பற்றி இந்த வழியாக செல்ல போவதில்லை.
| ஆபரேட்டர் | அது && மற்றும் தான்.
>> நான் சொல்கிறேன் மட்டும் நீங்கள் 3 நிபந்தனைகளை போது கவனமாக இருக்க வேண்டும்.
இது மிகவும் குழப்பமான ஏனெனில் நீங்கள் ஒரு நிபந்தனை போது அடைப்புக்குறிக்குள் பயன்படுத்த
மற்றொரு ஒன்று அல்லது மற்றொரு.
உங்கள் நிலைமைகள் போடுவது என்று இருக்கும் அடைப்புக்குறிக்குள் பயன்படுத்த
அந்த வழக்கில், உதாரணமாக, நீங்கள் கற்பனை ஏனெனில் அந்த
இது முதல் நிலை மற்றும் ஒன்று அல்லது வேறு இருக்க முடியாது
அல்லது 2 ஒரு இணைந்து நிலைமைகள் மற்றும்
அல்லது மூன்றாவது ஒரு, அதனால் தான் கவனமாக இருக்க வேண்டும்.
இறுதியாக, நாம் சுவிட்சுகள் பற்றி பேசினார்.
நீங்கள் ஒரு மாறி போது ஒரு சுவிட்சை மிகவும் பயனுள்ளதாக இருக்கும்.
நாம் உங்களுக்கு n போன்ற ஒரு மாறி இருக்கிறது என்று
அந்த 0, 1, அல்லது 2 முடியும், மற்றும் அந்த வழக்குகளின் ஒவ்வொரு
நீங்கள் ஒரு பணி செய்ய போகிறோம்.
நீங்கள் மாறி மாறி சொல்ல முடியாது, அது சுட்டிக்காட்டுகிறது
மதிப்பு பின்னர், value1 போல் நான் செய்ய போகிறேன் என்று
பின்னர் நான் உடைத்து, அதில் நான் மற்ற நேரங்களில் எந்த பார்க்க போவதில்லை என்பது
நாம் ஏற்கனவே அந்த வழக்கு திருப்தி ஏனெனில்
பின்னர் value2 தான், நான் ஒரு முன்னிருப்பு மாற்றம் செய்யலாம்.
அதை நான் அந்த சமயங்களில் எந்த திருப்தி இல்லை என்றால், அந்த பொருள்
நான் வேறு ஏதாவது செய்ய போகிறேன், ஆனால் அந்த விருப்ப என்று.
எனக்கு எல்லா என்று. இப்போது டாமி சாப்பிடலாம்.
எல்லாம் சரி, இந்த வாரம் 3-ish போகிறது.
இந்த நாங்கள் பயன்படுத்தப்படுகிறது crypto, நோக்கம், வரிசைகள், மூடி இருக்க வேண்டும் தலைப்புகள் உள்ளன.
Crypto மீது ஒரு விரைவு வார்த்தை. நாம் இந்த வீட்டில் சுத்தியலால் அடித்து போவதில்லை.
>> நாம் pset 2 இந்த செய்தார், ஆனால் வினாடி வினா உங்களுக்கு வித்தியாசம் தெரியும் உறுதி
சீசர் மறைக்குறியீடு மற்றும் வைஜெனேர் மறைக்குறியீடு இடையே,
அந்த மறைக்குறியீடுகள் வேலை மற்றும் அது குறியாக்க போல் எப்படி
அந்த 2 மறைக்குறியீடுகள் பயன்படுத்தி மற்றும் டிக்ரிப்ட் உரை.
நினைவில் வைத்து கொள்ளுங்கள், சீசர் மறைக்குறியீடு எளிமையாக, அதே அளவு ஒவ்வொரு தன்மையை சுழல்கிறது
எழுத்துக்களில் கடிதங்கள் எண்ணிக்கை உங்களுக்கு மோட் உறுதி செய்யும்.
மற்றும் வைஜெனேர் மறைக்குறியீடு, மறுபுறம், ஒவ்வொரு தன்மையை சுழல்கிறது
வேறு அளவு, இதனால் கூறி விட
3 வைஜெனேர் ஒவ்வொரு தன்மையை சுழற்சி முறையில் ஒவ்வொரு தன்மையை சுழற்ற
சில முக்கிய பொறுத்து வெவ்வேறு அளவு
முக்கிய ஒவ்வொரு கடிதம் சில வெவ்வேறு அளவு குறிக்கப்படுகிறது
மூலம் தெளிவான உரை சுழற்ற.
மாறி நோக்கம் பற்றி முதலில் பேச்சு நாம்.
மாறிகளின் 2 வெவ்வேறு வகைகள் உள்ளன.
நாங்கள் உள்ளூர் மாறிகள் வேண்டும், மற்றும் இந்த வரையறை செய்யப்பட போகிறோம்
வெளியே முக்கிய அல்லது எந்த செயல்பாடு அல்லது தொகுதி வெளியே,
இந்த உங்கள் திட்டத்தில் எங்கேயும் அணுக முடியும்.
நீங்கள் ஒரு செயல்பாடு மற்றும் அந்த விழாவில் ஒரு சுழற்சி இருந்தால்
பெரிய உலகளாவிய மாறி எங்கும் அணுகலாம்.
ஒரு உள்ளூர் மாறி, மறுபுறம், அது வரையறுக்கப்பட்ட அமைந்துள்ள இடத்திற்கு ஆகியவற்றை நோக்காகக்கொண்ட உள்ளது.
>> நீங்கள் இங்கே ஒரு செயல்பாடு இருந்தால், உதாரணமாக, நாம், இந்த செயல்பாடு கிராம் வேண்டும்
மற்றும் கிராம் உள்ளே y என்று இங்கே ஒரு மாறி, இல்லை
மற்றும் இந்த ஒரு உள்ளூர் மாறி இருக்கிறது என்று அர்த்தம்.
இந்த மாறி y என்று கூட
இந்த மாறி இந்த 2 செயல்பாடுகளை Y அழைக்கப்படுகிறது
ஒருவருக்கொருவர் உள்ளூர் மாறிகள் என்ன தெரியாது.
மறுபுறம், இங்கு நாம், int x = 5 என்று
இந்த எந்த செயல்பாடு நோக்கம் வெளியே.
இது முக்கிய நோக்கம் வெளியில், இந்த உலக மாறி உள்ளது.
அல்லது x + - நான் x சொல்லும் போது இந்த 2 செயல்பாடுகளை என்று உள்ளே பொருள்
நான் இந்த y இந்த y பல்வேறு மாறிகளை மேற்கொள்கின்ற அதே x அணுகும்.
உலக மாறி மற்றும் உள்ளூர் மாறி இடையே வேறுபாடு என்று.
இதுவரை வடிவமைப்பு விஷயத்தில், சில நேரங்களில் அது அநேகமாக ஒரு நல்ல யோசனை
உன்னால் முடிந்த போதெல்லாம் மாறிகள் உள்ளூர் வைக்க
கொண்ட முதல் உலக மாறிகள் ஒரு கூட்டத்தை உண்மையில் குழப்பமான பெற முடியும்.
நீங்கள் செயல்பாடுகளை ஒரு கொத்து இருந்தால் அனைத்து அதையே மாற்றுதல்
இந்த விழாவில் தற்செயலாக இந்த உலக திருத்தங்கள் என்ன நீங்கள், மறப்பது
இந்த மற்ற செயல்பாடு, அது பற்றி தெரியாது
நீங்கள் இன்னும் குறியீடு பெறுவது மற்றும் அதை அழகாக குழப்பமான கிடைக்கும்.
உன்னால் முடிந்த போதெல்லாம் மாறிகள் உள்ளூர் வைத்து
ஒரு நல்ல வடிவமைப்பு ஆகும்.
வரிசைகள், ஞாபகமிருக்கட்டும், வெறுமனே அதே வகை உறுப்புகள் பட்டியல்கள் உள்ளன.
சிஐ உள்ளே ஹலோ, 1, 2.0 போன்ற ஒரு பட்டியலை முடியாது.
நாம் தான் அதை செய்ய முடியாது.
>> நாம் சி ஒரு அணி அறிவிக்க போது உறுப்புகள் அனைத்தும் ஒரே வகையாக இருக்க வேண்டும்.
இங்கே நான் 3 முழுஎண்களின் வரிசை உள்ளது.
இங்கே நான் வரிசை நீளம் உள்ளது, ஆனால் நான் இந்த இலக்கணத்தை அது பிரகடனம் என்றால்
நான் கூறுகள் அனைத்தையும் நான் தொழில்நுட்பரீதியாக இந்த 3 தேவையில்லை என்பதை குறிப்பிட வேண்டும்.
தொகுப்பி வரிசை இருக்க வேண்டும் என்பதை பெரிய கண்டுபிடிக்க போதுமான புத்திசாலி.
இப்போது நான் ஒரு வரிசைக்கு மதிப்பு அல்லது அமைக்க வேண்டும் போது
இந்த செய்ய தொடரியல் ஆகும்.
, நினைவில் ஏனெனில் இந்த உண்மையில் அணியின் இரண்டாவது உறுப்பு மாற்ற வேண்டும்,
எண் 1 இல்லை, 0 தொடங்குகிறது.
நான் அந்த மதிப்பை படிக்க விரும்பினால் நான் அப்படி சொல்லலாம் int x = வரிசை [1].
நான் அந்த மதிப்பை அமைக்க விரும்பினால் அல்லது, போன்ற நான், இங்கே என்ன செய்து கொண்டிருக்கிறேன்
நான் வரிசை [1] கூற முடியும் = 4.
அவர்கள் குறியீட்டு மூலம் கூறுகள் அணுகும் முறை
அல்லது தங்கள் நிலையை அல்லது அவர்கள் வரிசையில் இருக்கும்,
அந்த பட்டியலை 0 தொடங்குகிறது.
நாங்கள், வரிசைகளின் வரிசைகள் முடியும்
இந்த பல பரிமாண அணிகளில் அழைக்கப்படுகிறது.
நாம் பல பரிமாண அணிகளில் போது
நாம், வரிசை மற்றும் பத்தி போன்ற ஏதாவது செய்யலாம் என்று
மற்றும் இந்த காண்பதற்கு அல்லது அது குறித்து யோசித்து ஒரு வழி.
நான் பல பரிமாண அணிகளில் வேண்டும் என்று நான் தேவைப்படும் தொடங்க போகிறேன் என்றால்
அதிகமான 1 குறியீட்டெண் ஏனெனில் நான் ஒரு கட்டம் இருந்தால்
இப்போது நீங்கள் தான் என்ன வரிசை என்று எங்களுக்கு ஒரு எண் கொடுக்க முடியாது.
என்று உண்மையிலேயே நமக்கு எண்கள் பட்டியல் கொடுக்க நடக்கிறது.
நாம் இங்கே இந்த வரிசை வேண்டும் என்று.
நான் கட்டம் என்று ஒரு அணி வேண்டும், மற்றும் நான், இது 2 வரிசைகள் மற்றும் 3 நெடுவரிசைகள் சொல்கிறேன்
எனவே இது காண்பதற்கு ஒரு வழி.
நான் [1] உள்ள உறுப்பு பெற வேண்டும் என்று சொல்லும் போது [2]
இந்த வரிசையில் முதல் மற்றும் பிறகு நெடுவரிசைகள் ஏனெனில் என்று அர்த்தம்
நான் 1 என்று முதல் 1 வரிசையை செல்ல போகிறேன்.
>> நான் பத்தியில் 2 இங்கே வந்து போகிறேன், நான் மதிப்பு 6 கொண்டு வர போகிறேன்.
இதில்?
பல பரிமாண வரிசைகள், ஞாபகமிருக்கட்டும், தொழில்நுட்ப வரிசைகளின் ஒரு வரிசை இருக்கும்.
நாம் வரிசைகளின் வரிசைகளின் வரிசைகள் முடியும்.
நாம் என்ன வைத்திருக்க முடியும், ஆனால் பற்றி சிந்திக்க உண்மையில் ஒரு வழி
இந்த அமைக்கப்பட்டன வருகிறது என்ன நடக்கிறது என்பதை பார்க்க வேண்டும்
இந்த மாதிரி ஒரு கட்டத்தில்.
நாம் செயல்படும் வரிசைகள் போகும்போது, அவர்கள் நடந்து செல்கிறோம்
நாம் செயல்பாடுகளை வழக்கமான மாறிகள் போகும்போது விட வித்தியாசமாக சிறிது
ஒரு முழு எண்ணாக அல்லது ஒரு மிதவை கடந்து போல.
நாம் ஒரு முழு எண்ணாக அல்லது கரி அல்லது மற்ற தரவு எந்த வகையான போகும்போது
நாம் மட்டும் செயல்பாட்டை மேம்படுத்த வேண்டும் பார்த்துக்கொண்டோம்
மாற்றம் வரை பிரச்சாரம் போவதில்லை என்று மாறி மதிப்பு
அழைப்பு செயல்பாடு.
ஒரு வரிசைக்கு கொண்டு, மறுபுறம், என்று நடக்கும்.
நான் சில செயல்பாடு ஒரு வரிசையில் கடந்து, அந்த செயல்பாடு, உறுப்புகள் சில மாற்றங்கள் செய்தால்
நான் என்ற அந்த செயல்பாடு வரை திரும்பியவுடன்
என் வரிசை இப்போது வேறு இருக்க போகிறது, மற்றும் அந்த சொல்லகராதி
நாம் பிறகு பார்க்கலாம் என்பது வரிசைகள், குறிப்பு நிறைவேற்றப்பட்டது.
இந்த எப்படி சுட்டிகள் வேலை, அங்கு இந்த அடிப்படை தரவு வகைகள், தொடர்புடைய
மறுபுறம், மதிப்பு நிறைவேற்றப்பட்டது.
>> நாம் சில மாறி நகலை உருவாக்கும் பின்னர் நகல் கடந்து செல்லும் என்று நினைக்க முடியாது.
அதை நாம் என்று மாறி என்ன செய்ய தேவையில்லை.
அழைப்பு செயல்பாடு அது மாற்றப்பட்டது என்பதை மாட்டேன்.
வரிசைகள் என்று தொடர்பாக வேறுபட்ட ஒரு சிறிய பிட்.
நாம் தான் பார்த்தேன் உதாரணம், முக்கிய வெறுமனே ஒரு செயல்பாடு ஆகும்
அந்த 2 வாக்குவாதம் எடுத்து கொள்ளலாம்.
முக்கிய செயல்பாடு முதல் வாதம், argc, அல்லது வாதங்கள் எண்ணிக்கை
இரண்டாவது வாதம், argv அழைக்கப்படுகிறது
மற்றும் அந்த வாதங்கள் உண்மையான மதிப்புகள்.
நாம், நான் this.c என்று ஒரு திட்டம் வேண்டும் என்று
நான் இந்த செய்ய சொல்ல, நான் கட்டளை வரியில் இந்த இயக்க போகிறேன்.
இப்போது என் திட்டத்தின் சில வாக்குவாதம் அனுப்ப, இந்த என்று
நான் எதோ சொல்ல முடியும். / இந்த cs 50 ஆகும்.
இந்த நாங்கள் முனையத்தில் ஒவ்வொரு நாளும் டேவிட் செய்ய நினைத்து தான்.
அந்த திட்டத்தின் ஆனால் இப்போது முக்கிய செயல்பாடு உள்ளே
இந்த மதிப்புகள், அதனால் argc 4.
உண்மையில் நாங்கள் மட்டுமே cs 50 ஆகும் கடந்து செல்லும் நீங்கள், ஏனெனில் அது ஒரு சிறிய குழப்பம் இருக்கலாம்.
என்று மட்டும் 3 தான்.
ஆனால் நினைவில் அந்த argv முதல் உறுப்பு அல்லது முதல் வாதம்
விழாவில் தன்னை பெயர்.
அதனால், நாம் இங்கே 4 விஷயங்கள் என்று அர்த்தம்
மற்றும் முதல் உறுப்பு. / இந்த போகிறது.
இந்த ஒரு சரம் குறிப்பிடப்படுகின்றன.
பின்னர் மீதமுள்ள தனிமங்கள் நாம் திட்டத்தின் பெயர் பின்னர் தட்டச்சு என்ன.
எனவே ஒதுக்கி போல் ஒரு, நாம் ஒருவேளை pset 2 பார்த்த போது,
சரம் 50 முழு 50 ≠ என்று ஞாபகம்.
எனவே, இப்படி ஏதாவது சொல்ல முடியாது 'int x = argv 3.'
>> இந்த ஒரு சரம், ஏனெனில் அது தான், உணர்வு செய்ய போவதில்லை, இந்த ஒரு முழு எண் ஆகும்.
நீங்கள் 2 இடையே மாற்ற வேண்டும் என்றால், ஞாபகமிருக்கட்டும், நாங்கள் செல்கிறோம்
atoi என்று இந்த மாய செயல்பாடு உள்ளது.
ஒரு சரம் எடுத்து அந்த சரம் உள்ளே குறிப்பிடப்படுகின்றன முழு கொடுக்கிறது.
அதனால், வினாடி வினா மீது செய்ய எளிதான தவறு
இந்த தானாகவே சரியான வகை என்று நினைத்து.
ஆனால் இந்த எப்போதும் சரங்களை இருப்பார் என்று எனக்கு தெரியும்
சரம் மட்டுமே ஒரு முழு எண் அல்லது ஒரு பாத்திரம் அல்லது ஒரு மிதவை கொண்டுள்ளது கூட.
எனவே இப்போது நேரம் இயங்கும் பற்றி பேசுகிறேன்.
நாம் இந்த வேடிக்கையான விஷயம் என்று இந்த வழிமுறைகளை போது,
இது, கேள்வி கேட்க மிகவும் பயனுள்ளதாக இருக்கும் "அவர்கள் எவ்வளவு காலம் எடுக்கும்?"
நாம் எந்த அறிகுறியும் குறியீடு எனப்படும் ஒன்றை என்று குறிக்கின்றன.
நன்றாக, நாம் நமது வழிமுறையை கொடுக்க சொல்கிறேன் - இந்த அர்த்தம்
சில உண்மையில், உண்மையில் பெரிய உள்ளீடு.
நாம் கேள்வி கேட்க விரும்புகிறேன், "எவ்வளவு நேரம் எடுத்து செல்வது?
எப்படி பல படிகளை அதை இயக்க நமது வழிமுறையை எடுக்கும்
உள்ளீடு அளவு செயல்பாடாக? "
நாம் இயக்க நேரம் விவரிக்க முடியாது முதல் வழி பெரிய பெ உள்ளது
இந்த நமது மோசமான இயங்கும் நேரம்.
நாம் ஒரு வரிசை வரிசைப்படுத்த வேண்டும் என்றால், நாம் நமது வழிமுறையை வரிசை கொடுக்க
இது ஏறு வரிசையில் இருக்க வேண்டும் என்று, இறங்கு வரிசையில் தான்
அந்த மோசமான இருக்க போகிறது.
இந்த எங்கள் வழிமுறை எடுக்கும் நேரம் அதிகபட்ச நீளம் கட்டப்படுகிறது எங்கள் மேல் ஆகும்.
மறுபுறம், இந்த Ω சிறந்த வழக்கு இயங்கும் நேரம் விவரிக்க போகிறார்.
நாம் ஒரு வரிசையாக்க படிமுறையின் ஒரு ஏற்கனவே வரிசையாக்கம் வரிசை கொடுக்க நீங்கள்,
இது வரிசைப்படுத்த, அது எவ்வளவு நேரம் ஆகும்?
இந்த, பின்னர், நேரம் இயங்கும் ஒரு குறைந்த பிணைப்பு விவரிக்கிறது.
இங்கு சில பொதுவான இயங்கும் முறை விவரிக்கும் சில வார்த்தைகள் உள்ளன.
இந்த ஏறுவரிசையில் உள்ளன.
நாம் வேகமாக இயங்கும் நேரம் இடைவிடாமல் அழைக்கப்படுகிறது.
>> நாம் நமது வழிமுறையை கொடுக்க எத்தனை சக்திகள் இல்லை, அதாவது
எங்கள் அணி தான் வரிசைப்படுத்துவதன், எப்படி பெரிய விஷயம் இல்லை
அல்லது நாம் வரிசைக்கு செய்கிறோம் என்ன செய்து எப்போதும் நேரம் அதே அளவு எடுக்கும்.
நாம் ஒரு நிலையான ஒரு 1, என்று குறிக்கலாம்.
நாங்கள் மடக்கை ரன் நேரம் பார்த்து.
எனவே இரும தேடல் போல, மடக்கையாக
நாம் பாதி ஒவ்வொரு முறையும் பிரச்சனை வெட்டி அங்கு
பின்னர் விஷயங்கள் அங்கு இருந்து அதிக கிடைக்கும்.
நீங்கள் எந்த காரணியாலான வழிமுறையின் ஒரு ஓ எழுதி என்றால்,
ஒருவேளை நீங்கள் உங்கள் நாள் வேலை இந்த கருத கூடாது.
நாம் இயங்கும் முறை ஒப்பிடும் போது இது மனதில் இந்த விஷயங்களை வைத்து முக்கியம்.
நான் ஒரு ஓ (n) என்று வழிமுறை, வேறு யாரோ என்றால்
ஓ ஒரு வழிமுறை (2n) இந்த உண்மையில் தொலைத்தொடுகோட்டு சமமானதாக இருக்கும்.
நாம் eleventy பில்லியன் போன்ற ஒரு பெரிய எண் இருக்கும் n நீங்கள்:
நாம் eleventy பில்லியன் போன்ற ஏதாவது + 3 eleventy பில்லியன் ஒப்பிட்டு போது,
திடீரென்று அந்த +3 உண்மையில் இனி ஒரு பெரிய வித்தியாசம் இல்லை.
நாம் இந்த பொருட்களை சமமான கருத தொடங்க போகிறோம் அதனால் தான்.
இங்கே இந்த மாறிலிகள் போன்ற விஷயங்களை மிக, அங்கு 2 x இந்த நேரம், அல்லது ஒரு 3 சேர்க்கும்
இந்த வெறும் மாறிலிகள் உள்ளன, இந்த வரை விட்டு செல்கிறோம்.
இந்த ரன் முறை அனைத்து 3 அவர்கள் ஓ (n) என்று கூறி தான் அதனால் தான்.
நாங்கள் 2 மற்ற இயக்க முறை இருந்தால் இதேபோல்,, ஓ (n ³ + 2n ²), நாம் சேர்க்க முடியும் என்று நாம்
பின்னர் + n + 7, மற்றும் நாம் தான் ஓ என்று மற்றொரு ரன் நேரம் (n ³) உள்ளது.
இதே இல்லை - இந்த ஏனெனில் மீண்டும், இந்த ஒரே விஷயம் தான்.
இதே விஷயங்கள், மன்னிக்கவும். எனவே இந்த ஒரே காரணம்
இந்த n ³ இந்த 2n ² ஆதிக்கம் செலுத்த போகிறது.
>> நாம் ஓ (n ³) மற்றும் ஓ போன்ற முறை இயக்க வேண்டும் என்றால் என்ன ஒரே விஷயம் (n ²)
இந்த n ³ இந்த n ² விட மிக பெரிய காரணம்.
நாம் இசைநிபுணர்களின் இருந்தால் அதனால், திடீரென்று இந்த, பிரச்சினையில்லை தொடங்கும்
நாம் இங்கு இருக்கும் ஆனால் நாம் மட்டும், காரணிகளை கையாளும் போது
அது அவர்கள் வெளியே விட்டு போகிறீர்கள் ஏனெனில் பிரச்சினையில்லை போவதில்லை.
நாம் இதுவரை பார்த்த வழிமுறைகளை சில பார்க்கலாம்
அவர்கள் நடத்தும் முறை பற்றி பேச.
ஒரு பட்டியலில் பல தேடும் முதல் வழி, நாம் பார்த்த, நேரியல் தேடல் இருந்தது.
மேலும் ஒருபடி தேடல் செயல்படுத்த சூப்பர் நேர்மையானவன்.
நாம் ஒரு பட்டியல் உள்ளது, மற்றும் நாம் பட்டியலில் ஒவ்வொரு உறுப்பு பார்க்க போகிறோம்
நாம் எண் வரும் வரை நாம் தேடும்.
அதனால் அதாவது மிக மோசமான நிலையில், இந்த ஓ (n).
உறுப்பு என்றால் இங்கு மோசமான இருக்க முடியும்
கடந்த உறுப்பு, பின்னர் நேரியல் தேடல் பயன்படுத்தி நாம் ஒவ்வொரு உறுப்பு பார்க்க வேண்டும்
நாம் அது பட்டியலில் உண்மையில் என்று தெரியும் பொருட்டு கடந்த ஒரு பெற வரை.
நாங்கள் பாதியிலேயே கைவிட்டு சொல்ல முடியாது, "இது அங்கு அநேகமாக இல்லை."
நேரியல் தேடல் நாம் முழு விஷயத்தை கவனிக்க வேண்டும்.
சிறந்த வழக்கு இயங்கும் நேரம், மறுபுறம், மாறிலி
சிறந்த வழக்கில் நாம் தேடும் உறுப்பு வெறும் பட்டியலில் முதல் ஒரு காரணம்.
அது நமக்கு சரியாக 1 படி, பட்டியலில் எப்படி பெரிய விஷயம் இல்லை எடுக்க நடக்கிறது
நாம் முதல் உறுப்பு ஒவ்வொரு முறை விரும்பினால்.
>> எனவே நீங்கள் தேடும்போது, ஞாபகமிருக்கட்டும், இது எங்கள் பட்டியலில் வரிசைப்படுத்தப்பட்ட வேண்டும் என்று அவசியம் இல்லை.
நாம் சாதாரணமாக ஒவ்வொரு உறுப்பு மேல் பார்க்க போகிறோம், அது உண்மையில் இல்லை, ஏனெனில்
என்ன பொருட்டு அந்த உறுப்புகள் இருக்கும்
மேலும் அறிவார்ந்த தேடல் வழிமுறை இரும தேடல் போன்ற ஒன்று.
நீ போகிறாய் நினைவில், பைனரி தேடல் அமல்படுத்துவது
பட்டியல் நடுத்தர பார்த்துக்கொண்டே.
நாங்கள் நடுத்தர வயதில் தேடும் காரணம் மற்றும், நாம் பட்டியலை வரிசையாக்கம் என்று தேவைப்படும்
அல்லது வேறு நடுத்தர எங்கே என்று எங்களுக்கு தெரியாது, நாங்கள் பார்த்து வேண்டும்
அதை கண்டுபிடிக்க முழு பட்டியல், பின்னர் அந்த இடத்தில் நாம் நேரத்தை வீணடிக்காதீர்கள்.
நாம் ஒரு வரிசைப்படுத்தப்பட்ட பட்டியலை நாம் நடுத்தர கண்டறிய என்றால், நாம் நடுத்தர ஒப்பிட்டு போகிறோம்
உறுப்பு நாம் தேடும்.
அது மிக அதிகமாக இருந்தால், நாம் சரி பாதி மறக்க முடியாது
எங்களுக்கு தெரியும், ஏனெனில் அது நமது உறுப்பு ஏற்கனவே அதிகமாக இருந்தால்
இந்த உறுப்பு வலது எல்லாம் கூட அதிகம்,
நாம் இனி அங்கு பார்க்க தேவையில்லை.
எங்கே மறுபுறம், நமது உறுப்பு மிகவும் குறைவாக இருந்தால்,
நாம், அந்த உறுப்பு இடது எல்லாம் கூட மிக குறைந்த என்று
அது உண்மையில் ஒன்று, அங்கு பார்க்க பயன் இல்லை.
இந்த வழியில், பட்டியல் இடையில் உள்ள ஒவ்வொரு அடியிலும் நாம் இருக்கும் ஒவ்வொரு நேரத்தில்,
திடீரென்று எங்களுக்கு தெரியும், ஏனெனில் நாங்கள் அரை எமது பிரச்சினையை குறைக்க போகிறோம்
நாம் தேடும் ஒரு இருக்க முடியாது என்று எண்கள் ஒரு மொத்தமாக.
>> சூடோகுறியீடு இந்த, இந்த மாதிரி ஏதாவது இருக்கும் என்று
ஏனெனில் நாங்கள், அரை ஒவ்வொரு முறை பட்டியல் குறைத்து
மடக்கை என்று நேர்கோட்டு நம் மோசமான ரன் நேரம் தாவல்கள்.
திடீரென்று நாம் உள்நுழைவு பட்டியலில் ஒரு உறுப்பு கண்டறிய நடவடிக்கை.
சிறந்த வழக்கு இயங்கும் நேரம், எனினும், இன்னும் மாறிலி
இப்போது ஏனெனில், நாங்கள் தேடும் உறுப்பு என்று நாம்
அசல் பட்டியலை எப்போதும் சரியான நடுத்தர.
எனவே, நாம் வேண்டும் என பெரிய நம் பட்டியலில் வளர முடியும், ஆனால் நாம் தேடும் உறுப்பு நடுத்தர உள்ளது என்றால்
அது தான் எங்களுக்கு 1 நடவடிக்கை எடுக்க நடக்கிறது.
நாம் O (log n) மற்றும் Ω (1) அல்லது நிலையான தான் அதனால் தான்.
அது உண்மையில் இந்த பட்டியலில் இரும தேடல் ஓடிப்போகட்டும்.
எனவே நாம் உறுப்பு 164 தேடும் சொல்கிறேன்.
நாம் என்ன செய்ய போகிறாய் முதல் விஷயம் இந்த பட்டியலில் இடையில் கண்டறிய வேண்டும்.
அது மிக, இடையில் இந்த 2 எண்கள் இடையில் விழும் என்று நடக்கும்
எனவே, இடையில் 2 எண்கள் இடையே விழும் ஒவ்வொரு முறையும், நான் தன்னிச்சையாக என்று நாம்
அது தான் சுற்றி பார்க்க.
நாங்கள் இந்த ஒவ்வொரு அடியிலும் செய்ய உறுதி செய்ய வேண்டும்.
எனவே நாம் சுற்றிலும் போகிறோம், நாம் 161 எங்கள் பட்டியலில் நடுத்தர என்று போகிறோம்.
அதனால் 161 <164, மற்றும் 161 இடது ஒவ்வொரு உறுப்பு
மேலும் <164, எனவே நாம் அது எங்களுக்கு உதவ போவதில்லை என்று எனக்கு தெரியும்
நாங்கள் அங்கு இருக்க முடியாது தேடும் உறுப்பு ஏனெனில் இங்கு தேட ஆரம்பிக்க.
எனவே நாம் என்ன செய்யலாம், நாம் தான் பட்டியல் ஒட்டுமொத்த இடது அரை மறக்க முடியாது
இப்போது மட்டும் 161 முதல் உரிமை இருந்து கருதுகின்றனர்.
>> எனவே மீண்டும், இந்த இடையில் உள்ளது; அது தான் சுற்றி பார்க்க.
இப்போது 175 மிகவும் பெரியதாக உள்ளது.
நாம் அது, எங்களுக்கு இங்கே அல்லது இங்கே பார்க்க உதவ போவதில்லை என்று தெரியும்
எனவே நாம் அந்த எறியுங்கள் முடியாது, இறுதியில் நாம் 164 அடித்து விடுவேன்.
இரும தேடல் எந்த கேள்விகள்?
நாம் ஏற்கெனவே வரிசையில் பட்டியல் மூலம் தேடி இருந்து நகர்த்த
உண்மையில் எந்த வரிசையில் எண்கள் பட்டியல் எடுத்து
மற்றும் ஏறுவரிசையில் அந்த பட்டியலில் உள்ளது.
நாம் பார்த்து முதல் வழிமுறை குமிழி வரிசையாக்கம் அழைக்கப்பட்டது.
இந்த நாங்கள் பார்த்தோம் வழிமுறைகளும் எளிய இருக்கும்.
குமிழி வரிசையாக்கம், பட்டியல் உள்ளே எந்த 2 உறுப்புகள் இடத்தில் வெளியே இருக்கும் போது கூறுகிறார்
அதிக எண்ணிக்கையில் குறைந்த எண்ணிக்கையிலான இடது உள்ளது அதாவது,
அந்த பட்டியலில் இருக்கும் என்று பொருள், ஏனெனில் நாம், அவர்களை மாற்ற போகிறோம்
அதற்கு முன் விட "இன்னும் வரிசைப்படுத்தப்பட்ட".
மற்றும் நாம் மீண்டும் மீண்டும் மீண்டும் இந்த செயற்பாட்டை தொடர போகிறேன்
இறுதியில் கூறுகள் அவற்றின் சரியான இடத்தில் குமிழி வகை மற்றும் நாம் ஒரு வரிசைப்படுத்தப்பட்ட பட்டியலை வரை.
>> இந்த ரன் நேரம் ஓ போகிறது (n ²). ஏன்?
நன்றாக, மிக மோசமான நிலையில் இருப்பதால், நாம் ஒவ்வொரு உறுப்பு எடுத்து சென்று, மற்றும்
நாம் பட்டியலில் ஒவ்வொரு மற்ற உறுப்பு அதை ஒப்பிட்டு முடிவுக்கு போகிறோம்.
ஆனால் சிறந்த வழக்கில், நாம் ஏற்கனவே வரிசையாக்கம் பட்டியலில் உள்ளது, குமிழி வரிசையாக்கம் தான்
ஒருமுறை செல்ல, சொல்ல போகிறேன் "இல்லை. நான் எந்த பரிமாற்றங்கள் செய்யவில்லை, எனவே நான் செய்து வருகிறேன்."
நாம் Ω (n) ஒரு சிறந்த வழக்கு இயங்கும் நேரம்.
ஒரு பட்டியலில் குமிழி வரிசையாக்கம் ஓடிப்போகட்டும்.
அல்லது முதல், அது தான் மிகவும் விரைவாக சில சூடோகுறியீடு பார்க்க வேண்டும்.
நாம், நாம் வளைய ஒவ்வொரு மீள்செய்கையில், கண்காணிப்பதற்கான வேண்டும் என்று விரும்புகிறேன்
நாம் எந்த உறுப்புகளை மாற்றம் அல்லது பின்தொடருங்கள்.
என்று காரணம் எனவே, நாம் எந்த உறுப்புகளை பரிமாற்றம் இல்லை போது நிறுத்த போகிறோம்.
எனவே எங்கள் வளைய ஆரம்பத்தில் நாம் எதையும் பரிமாற்றம் இல்லை, நாம் தவறு என்று நான் கூறுவேன்.
இப்போது, நாம் பட்டியல் மூலம் சென்று நான் உறுப்பு நான் + 1 உறுப்பு ஒப்பிட்டு போகிறோம்
அது ஒரு பெரிய எண்ணிக்கையிலான ஒரு சிறிய எண்ணிக்கையிலான இடது உள்ளது என்று வழக்கு என்றால்,
நாம் தான் அவர்களை மாற்ற போகிறோம்.
>> பின்னர் நாம் ஒரு உறுப்பு மாற்றப்பட்டது என்பதை நினைவில் போகிறோம்.
என்று நாம் பட்டியல் மூலம் குறைந்தபட்சம் 1 முறை செல்ல வேண்டும் என்று அர்த்தம்
முழு பட்டியல் ஏற்கனவே வரிசையாக்கம் போது நாம் நிறுத்தி இதில் நிலையில் இருப்பதால்,
நாம் எந்த பரிமாற்றங்கள் செய்யவில்லை என்று அர்த்தம்.
எங்கள் நிலை இங்கு உள்ளது அதனால் தான் 'சில கூறுகளை பரிமாற்றம் செய்யப்பட்டுள்ளது போது.'
எனவே இப்போது இந்த பட்டியலில் இயங்கும் பார்க்க வேண்டும்.
நான் பட்டியல் 5,0,1,6,4 வேண்டும்.
குமிழி வரிசையாக்கம் இடது அனைத்து வழி தொடங்க போகிறது, மற்றும் அதை ஒப்பிட்டு நடக்கிறது
நான் உறுப்புகள், மிகவும் உறுப்பு 1 இது 0 என நான் + 1.
, இது, நன்றாக 5> 0 என்று நடக்கிறது, ஆனால் இப்போது 5 இடது உள்ளது
நான் 5 மற்றும் 0 இடமாற்றம் செய்ய வேண்டும்.
நான் அவர்களை இடமாற்றம் போது, திடீரென்று நான் இந்த வேறுபட்ட பட்டியலை பெற.
இப்போது 5> 1, நாம் அவர்களை மாற்ற போகிறோம்.
5> 6 அல்ல, நாங்கள் இங்கே ஒன்றும் செய்ய தேவையில்லை.
ஆனால் 6> 4, நாம் மாற்ற வேண்டும்.
மீண்டும், நாம் இறுதியில் கண்டறிய முழு பட்டியல் மூலம் இயக்க வேண்டும்
இந்த வரிசையில் வெளியே என்று; நாம் அவர்களை இடமாற்றம்,
இந்த இடத்தில் நாம் பட்டியல் மூலம் 1 முறை இயக்க வேண்டும்
எல்லாம் அதன் பொருட்டு தான், இந்த புள்ளி குமிழி வரிசையாக்கம் மணிக்கு முடிந்தது என்று உறுதிப்படுத்தி கொள்ள.
சில கூறுகளை எடுத்து, அவற்றை வரிசைப்படுத்த ஒரு வேறுபட்ட வழிமுறை தேர்வு மாதிரியான.
தேர்வு வகையான பின்னால் கருத்தை நாம் பட்டியலில் ஒரு வரிசைப்படுத்தப்பட்ட பகுதியை உருவாக்க போகிறோம் என்று
ஒரு நேரத்தில் 1 உறுப்பு.
>> மற்றும் நாம் அதை செய்ய போகிறோம் வழி பட்டியல் இடது பிரிவில் கட்டமைப்பில் உள்ளது.
மற்றும் அடிப்படையில், ஒவ்வொரு - ஒவ்வொரு அடியிலும், நாம் விட்டு சிறிய உறுப்பு போகிறாய்
இன்னும் வரிசையில், நாம் அந்த வரிசையில் பிரிவில் நகர்த்த போகிறீர்கள்.
அதாவது நாம் தொடர்ந்து குறைந்த வரிசையாக்கம் செய்யப்படாத உறுப்பு கண்டுபிடிக்க வேண்டும்
பின்னர் அந்த குறைந்தபட்ச உறுப்பு எடுத்து அதை அதை இடமாற்றம்
விட்டு மிக உறுப்பு சரியாகவில்லை என்று.
இந்த இயக்க நேரம் ஓ போகிறது (n ²) ஏனெனில் மோசமான நிலையில்
நாம் ஒவ்வொரு மற்ற உறுப்பு ஒவ்வொரு உறுப்பு ஒப்பிட்டு பார்க்க வேண்டும்.
நாம் பட்டியல் இடது அரை மணிக்கு ஆரம்பித்தால், நாம் வேண்டும் என்று காரணம்
சிறிய உறுப்பு கண்டுபிடிக்க முழு உரிமை பிரிவு வழியாக செல்ல.
பின்னர், மீண்டும், நாம் முழு உரிமை பிரிவில் மீது போய் வேண்டும்
மீண்டும் மேல் மேல் மேல் மேல் போகும்.
என்று n ² இருக்க போகிறது. நாம் வளைய மற்றொரு நெளிவு உள்ளே ஒரு தேவை போகிறாய்
இதில் n ² தெரிவிக்கிறது.
சிறந்த வழக்கு சிந்தனையில், நாம் அதை ஏற்கனவே வரிசைப்படுத்தப்பட்ட பட்டியலை கொடுக்க சொல்கிறேன்;
நாம் உண்மையில் n ² விட நல்ல செய்ய வேண்டாம்.
தேர்வு வகையான என்று தெரிந்தும் இல்லை, ஏனெனில்
குறைந்தபட்ச உறுப்பு தான் நான் பார்க்க வேண்டும் நடக்க உள்ளது.
அது இன்னும் இந்த உண்மையில் குறைந்தபட்ச என்று உறுதிப்படுத்தி கொள்ள வேண்டும்.
>> இந்த வழிமுறையை பயன்படுத்தி, அதை குறைந்தபட்ச என்று உறுதிப்படுத்தி கொள்ள ஒரே வழி,
மீண்டும் ஒவ்வொரு உறுப்பு பார்க்க வேண்டும்.
எனவே உண்மையில், நீங்கள் அதை கொடுத்தால் - நீங்கள் தேர்வு வகையான ஏற்கனவே வரிசையாக்கம் பட்டியல் கொடுத்தால்,
அது இன்னும் சரியாகவில்லை என்று ஒரு பட்டியலை கொடுத்து விட நல்ல செய்ய போவதில்லை.
இது வழக்கில் இருக்கும் நடந்தால் மூலம், ஏதாவது ஓ (ஒன்று) என்று
ஏதோ ஒமேகா, நாம் மட்டும் இன்னும் கினார் அது ஏதாவது θ என்று சொல்ல முடியாது.
நீங்கள் தான் என்று தான் அர்த்தம் என்ன என்று, எங்கு வந்து பார்க்க நீங்கள்.
>> ஏதாவது n, தீட்டா இருந்தால் ², அது இரு பெரிய ஓ (n ²) மற்றும் Ω (n ²) ஆகும்.
சிறந்த நிலை மற்றும் மோசமான நிலை எனவே, இது, ஒரு வித்தியாசமும் இல்லை
படிமுறை தான் ஒவ்வொரு முறையும் செய்ய போகிறாள்.
இந்த தேர்வை நடத்த வேண்டும் சூடோகுறியீடு இருக்க முடியும் என்று.
நாம் அடிப்படையில் நான் பட்டியல் மீது மீண்டும் கூறு வேண்டும் என்று போகிறீர்கள்
வலது, மற்றும் சுழற்சி ஒவ்வொரு மறு செய்கை இடது இருந்து, நான் நகர்த்த போகிறேன்
பட்டியலில் இந்த வரிசையில் பகுதியை நோக்கி குறைந்தபட்ச உறுப்பு.
ஒருமுறை நான் அங்கு ஏதாவது நகர, நான் மீண்டும் அந்த உறுப்பு பார்க்க வேண்டும்.
விரைவில் நான் பட்டியல் இடது பிரிவில் உள்ள ஒரு உறுப்பு இடமாற்றம், அது வரிசைப்படுத்தப்பட்ட ஏனென்றால்
நாம் குறைவாக பயன்படுத்தி ஏறுவரிசையில் எல்லாம் செய்கிறாய் ஏனெனில்.
எனவே, சரியா, நாம் நிலையை நான் இருக்கும்போது, நாம் உள்ள உறுப்புகள் அனைத்தும் இருக்க வேண்டும், என்றார்
குறைந்தபட்ச கண்டுபிடிக்க பொருட்டு நான் வலது.
அதனால் நாம் பட்டியலை இறுதி வரை நான் + 1 இருந்து பார்க்க வேண்டும் என்பதாகும்.
இப்போது, நாம் தற்போது தேடும் உறுப்பு, இதுவரை நம் குறைந்தபட்ச விட குறைவாக இருந்தால்
நினைவி, நாம் தான் இருக்கும் குறைந்தபட்ச துவங்கும் இது,
என்ன உறுப்பு நாம் தற்போது இருக்கிறோம்; நான் குறைந்தபட்ச என்று கொள்வோம்.
நான் விட சிறிய என்று ஒரு உறுப்பு இருந்தால், நான், சரி, நான் போகிறேன்
நன்றாக, நான் ஒரு புதிய குறைந்தபட்ச கிடைத்தது.
நான் அந்த குறைந்தபட்ச அங்கு நினைவில் போகிறேன்.
>> அதனால் இப்போது, ஒரு முறை நான், அந்த உரிமை வரிசையாக்கம் செய்யப்படாத பிரிவில் வழியாக சென்று
நான் நிலையில் நான் இல்லை என்று உறுப்பு கொண்ட குறைந்தபட்ச உறுப்பு இடமாற்றம் போகிறேன் கூற முடியும்.
என்று என் பட்டியலை கட்டமைக்க நடக்கிறது, இடது இருந்து வலது பட்டியலில் என் வரிசைப்படுத்தப்பட்ட பகுதி,
நாம் எப்போதும் அந்த பகுதியில் தான் மீண்டும் ஒரு உறுப்பு பார்க்க தேவையில்லை.
நாம் அது மாற்றப்பட்டது.
எனவே இந்த பட்டியலில் தேர்வு வகையான இயக்க அனுமதிக்க.
இங்கே நீல உறுப்பு நான் போகிறது, மற்றும் சிவப்பு உறுப்பு குறைந்தபட்ச உறுப்பு போகிறது.
அதனால் நான் 5 மணிக்கு எனவே, பட்டியல் இடது அனைத்து வழி தொடங்குகிறது.
இப்போது நாம் குறைந்தபட்ச வரிசையாக்கம் செய்யப்படாத உறுப்பு கண்டுபிடிக்க வேண்டும்.
எனவே 0 <5, அதனால் 0 என் புதிய குறைந்தபட்ச என்று.
>> நாம், 0 மிகச்சிறிய என்று அடையாளம் காண முடியும் என்றாலும், ஏனெனில் ஆனால் நான், அங்கு நிறுத்த முடியாது
நாம் உறுதி செய்ய பட்டியலை ஒவ்வொரு மற்ற உறுப்பு வழியாக இயக்க வேண்டும்.
, 6 பெரியது பெரியது 1 எனவே, 4 பெரியது.
இந்த உறுப்புகள் அனைத்தும் பார்த்து, நான் 0 சிறியது தீர்மானித்துள்ளோம் என்று பொருள்.
நான் 5 மற்றும் 0 இடமாற்றம் போகிறேன்.
ஒருமுறை நான் அந்த இடமாற்ற, நான் ஒரு புதிய பட்டியலை பெற போகிறேன், நான் மீண்டும் அந்த 0 பார்க்க வேண்டும் என்று எனக்கு தெரியும்
ஒருமுறை நான் மாற்றப்பட்டது ஏனென்றால், நான் அதை வகைப்படுத்த மற்றும் நாம் முடித்துவிட்டீர்கள்.
இப்போது அது மிகவும், நீல உறுப்பு மீண்டும் 5 என்று நடக்கும்
நாம் அது 1 தீர்மானிக்க, 1 பார்க்க 6 மற்றும் 4 வேண்டும்
சிறிய குறைந்தபட்ச உறுப்பு உள்ளது, எனவே 1 மற்றும் 5 இடமாற்றம் கிடைக்கும்.
மீண்டும், நாம் பார்க்க வேண்டும் - 6 மற்றும் 4 முதல் 5 ஒப்பிட்டு,
நாம் 4 மற்றும் 5 இடமாற்றம் செய்ய, மற்றும் இறுதியாக, ஒப்பிட்டு
அந்த 2 எண்கள் மற்றும் நாம் வரிசைப்படுத்தப்பட்ட பட்டியலை பெறும் வரை அவர்களுக்கு பரிமாறிக்கொள்ளலாம்.
தேர்வு வகையான எந்த கேள்விகள்?
சரி. அது இங்கே கடந்த இங்கு எழுதப்படும் கருத்துகள் செல்லலாம், அந்த மறுநிகழ்வு உள்ளது.
>> மறுநிகழ்வு, ஞாபகமிருக்கட்டும், இது உண்மையில் மெட்டா விஷயம் ஒரு செயல்பாடு
மீண்டும் மீண்டும் தன்னை அழைப்பு விடுத்துள்ளது.
அதனால் சில புள்ளியில், நம் fuction மீண்டும் மீண்டும் தன்னை அழைத்து போது,
நாம் அழைப்பு தடுக்க இது சில புள்ளி இருக்க வேண்டும்.
நாங்கள் அதை செய்ய வில்லை என்றால், நாம் மட்டும் எப்போதும் இதை தொடர்ந்து எனென்றால்,
எங்கள் திட்டம் தான் முறித்து கொள்ள போவதில்லை.
இந்த நிலையில் நாம் அடிப்படை வழக்கு அழைப்பு.
மற்றும் அடிப்படை வழக்கில், மாறாக மீண்டும் ஒரு விழா அழைப்பு விட, என்கிறார்
நான் சில மதிப்பு திரும்பி போகிறேன்.
நாம் ஒரு மதிப்பு வந்துள்ளேன் முறை, அதனால் நாம், நம்மை அழைத்து நிறுத்தி
நாங்கள் இதுவரை செய்த அழைப்புகள் மீதி திரும்ப முடியும்.
அடிப்படை வழக்கை எதிர் குவிப்பு வழக்கு.
இந்த நாங்கள் உள்ளே தற்போது என்று செயல்பாடு மற்றொரு அழைப்பை வேண்டும் போது தான்
நாம் ஒருவேளை, எப்போதும் எனினும், பல்வேறு விவாதங்களை பயன்படுத்த வேண்டும்.
>> நாம் f என்று ஒரு செயல்பாடு, மற்றும் எஃப் மட்டும், 1 வாதத்தை எடுத்து என்று நீங்கள்
நாம் வெறும் f (1), f (1), f (1) அழைப்பு வைக்க, அது தான் நடக்கிறது
வாதம் 1 குவிப்பு வழக்கு விழுகிறது, நாம் இன்னும் நிறுத்த போவதில்லை.
நாம் ஒரு தளத்தை வழக்கு வேண்டும் என்றால், நாம் இறுதியில் நாம் அடிப்படை வழக்கு அடிக்க போகிறோம் என்பதை உறுதி செய்ய வேண்டும்.
நாம் இந்த சுழல்நிலை வழக்கு தங்கி வைக்க கூடாது.
பொதுவாக, நாம் நம்மை அழைக்க போது, நாம் ஒருவேளை வேறு வாதம் ஒவ்வொரு நேரம் போகிறது.
இங்கே ஒரு மிக எளிய சுழல்நிலை செயல்பாடு ஆகும்.
இந்த பல காரணியாலான கணக்கிட வேண்டும்.
மேலே நாம் நம் அடிப்படை வழக்கில் இல்லை இங்கே top.
N ≤ 1, நாம் மீண்டும் காரணியாலான அழைக்க போவதில்லை என்று வழக்கு.
நாம் நிறுத்த போகிறோம்; நாம் சில மதிப்பு திரும்ப போகிறோம்.
இந்த உண்மை இல்லை என்றால், நாம் நம் குவிப்பு வழக்கு அடிக்க போகிறாய்.
என்று மிகவும் பயனுள்ளதாக இருக்கும், ஏனெனில் நாங்கள், காரணியாலான (n) அழைப்பு இல்லை என்று இங்கே கவனிக்க.
நாம் வேறு ஏதாவது காரணியாலான அழைக்க போகிறோம்.
>> மற்றும் நீ, நாம் ஒரு காரணியாலான (5) அல்லது ஏதாவது கடந்து இறுதியில் என்றால், பார்க்க முடியும்
நாம் காரணியாலான (4) மற்றும் பல அழைக்க போகிறோம், இறுதியில் நாம் இந்த தளத்தை வழக்கு அடிக்க போகிறாய்.
எனவே இந்த நல்ல தெரிகிறது. நாம் உண்மையில் இந்த ரன் போது என்ன நடக்கிறது என்று பார்ப்போம்.
இந்த அடுக்கு, மற்றும் நாம் பிரதான வாதம் (4) இந்த செயல்பாடு அழைக்க போகிறார் என்று.
எனவே ஒரு முறை காரணியாலான காண்கிறது மற்றும் = 4, காரணியாலான தன்னை அழைக்க வேண்டும்.
இப்போது, திடீரென்று, நாம் (3) காரணியாலான வேண்டும்.
எனவே இந்த செயல்பாடுகளை இறுதியில் நாம் நம் அடிப்படை வழக்கில் வெற்றி வரை வளர்ந்து கொண்டே போகிறது.
இந்த கட்டத்தில், இந்த திரும்ப மதிப்பு திரும்ப (nx இந்த திரும்ப மதிப்பு), என்பது
இந்த திரும்ப மதிப்பு இந்த nx திரும்ப மதிப்பு.
இறுதியில் நாம் சில பல ஹிட் வேண்டும்.
இங்கே மேலே, நாம் மீண்டும் 1 என்று.
ஒரு முறை நாங்கள் அந்த எண்ணை திரும்ப அதாவது, நாம் ஸ்டேக் ஆஃப் இந்த பாப் முடியும்.
இந்த காரணியாலான (1) செய்யப்படுகிறது.
போது 1 வருமானம், இந்த காரணியாலான (1) வருமானம், 1 இந்த பதிலுக்கு.
இந்த திரும்ப மதிப்பு, ஞாபகமிருக்கட்டும், இது திரும்ப மதிப்பு nx இருந்தது.
திடீரென்று, இந்த பையன் நான் 2 திரும்ப வேண்டும் என்று தெரிகிறது.
>> எனவே, நினைவில் இந்த மதிப்பை இங்கே திரும்பி மதிப்பு வெறும் nx உள்ளது திருப்பி.
எனவே இப்போது நாம் 3 x 2 சொல்ல முடியாது, மற்றும் இறுதியாக, இங்கே நாம் கூற முடியும்
இந்த 4 x 3 x 2 போகிறது.
இந்த வருமானத்தை முறை, நாங்கள் பிரதான ஒரு முழு உள்ளே இறங்கி.
மறுநிகழ்வு எந்த கேள்விகள்?
எல்லாம் சரி. எனவே கேள்விகள் அதிக நேரம், இறுதியில் அங்கு
ஆனால் இப்போது ஜோசப் மீதமுள்ள தலைப்புகள் மறைக்கும்.
>> [ஜோசப் ஆங்] சரி. எனவே இப்போது நாம் recursions பற்றி பேசிவிட்டேன் என்று,
அது மாதிரியான ஒன்றாக்க பற்றி கொஞ்சம் பேச வேண்டும்.
ஒன்றாக்க வகையான அடிப்படையில் எண்கள் பட்டியல் வரிசையாக்க மற்றொரு வழி.
அது ஒன்றிணைப்பு வகையான உடன், அது எவ்வாறு நீங்கள் ஒரு பட்டியல் உள்ளது, மற்றும் நாம் என்ன ஆகும்
நாம் 2 பகுதிகளாக இந்த பிரித்து சொல்கிறார்கள்.
நாம் முதலில், இடது பாதி மீண்டும் சேர்ப்பு வரிசையாக்கம் இயக்க வேண்டும்
நாம், வலது பாதி மீது ஒருவித ஒன்றாக்க இயக்க வேண்டும்
என்று இப்போது நாம் வரிசைப்படுத்தப்பட்ட என்று 2 பாதிகளுக்கு கொடுக்கிறது, மற்றும் இப்போது நாம் அந்த பாதிகளுக்கு இணைக்க போகிறோம்.
இது ஒரு உதாரணம் இல்லாமல் பார்க்க ஒரு பிட் கடினமாக உள்ளது, எனவே இயக்கங்கள் மூலம் சென்று என்ன நடக்கிறது என்று பார்க்கலாம்.
எனவே இந்த பட்டியல், நாங்கள் 2 பகுதிகளாக அதை பிரித்து தொடங்கும்.
நாம் முதல் இடது பாதி மீது ஒருவித ஒன்றாக்க ரன்.
அதனால் இடது பாதி தான், இப்போது நாம் மீண்டும் இந்த பட்டியல் மூலம் அவற்றை இயக்க
இதில் நாம், மீண்டும், ஆனால் பின்னர் ஒன்றிணைப்பு வகையான கடந்து, மற்றும்
இந்த பட்டியல் இடது புறம் நாம் அது மாதிரியான ஒன்றாக்க ரன்.
இப்போது, நாம், 2 எண்கள் பட்டியல் கீழே கிடைக்கும்
இப்போது இடது பாதி மட்டுமே 1 உறுப்பு நீளமாக உள்ளது, மற்றும் நாம் செய்ய முடியாது
பாதியில் மட்டும் 1 உறுப்பு என்று ஒரு பட்டியலை பிரித்து, நாம் ஒரு முறை நாங்கள் 50 வேண்டும், என்று,
இது வெறும் 1 உறுப்பு உள்ளது, இது ஏற்கனவே வரிசையாக்கம்.
>> நாம் என்று முடித்துவிட்டீர்கள் முறை, நாம் என்று நாம் பார்க்க முடியும்
இந்த பட்டியல் சரி பாதி செல்ல,
மற்றும் 3 மேலும் அதனால் இப்போது இந்த பட்டியலில் இரண்டு பகுதிகளாக பிரிக்கப்பட்டு என்று வரிசைப்படுத்தப்பட்ட, மற்றும்
நாம் மீண்டும் ஒன்றாக இந்த எண்கள் சேர முடியும்.
எனவே 50 மற்றும் 3 பார்; 3 50 விட, அது முதல் சென்று பின்னர் 50 உள்ளே வருகிறது
இப்போது, அந்த முடிந்தது; அதை சரி பாதி என்று பட்டியல் மற்றும் வகையான வரை சென்று.
42 அது சொந்த எண், எனவே அது ஏற்கனவே வரிசையாக்கம் தான்.
எனவே இப்போது நாம், முதல் போட்டு விடும் என்று, 2 மற்றும் 3 42 விட இந்த ஒப்பிட்டு
இப்போது 42 போட்டு, மற்றும் 50 உள்ளே போட விடும்
இப்போது, வரிசைப்படுத்தப்பட்ட என்று, நாம், மேலே மீண்டும் 1337 மற்றும் 15 அனைத்து வழியிலும் செல்கின்றன.
சரி, நாம் இப்போது இந்த பட்டியலில் இடது பாதி பார்; 1337 தன்னை மூலம் அது 15 உடன் வரிசையாக்கம் மற்றும் அதே தான்.
எனவே இப்போது நாம் அந்த அசல் பட்டியலில், 15 <1337, வரிசைப்படுத்த இந்த 2 எண்கள் இணைக்க
அது முதல் சென்று, பின்னர் 1337 உள்ளே சென்று
இப்போது நாம் மேலே அசல் பட்டியலில் இரண்டு பகுதிகளாக பிரிக்கப்பட்டுள்ளது.
நாம் செய்ய வேண்டியதெல்லாம் இந்த இணைக்க வேண்டும்.
இந்த பட்டியலில் முதல் 2 எண்கள், 3 <15 பாருங்கள், அது முதல் வரிசை வரிசையாக செல்கிறது.
15 <42, எனவே, இப்போது உள்ளே சென்று 42 <1337, என்று உள்ளே சென்று
50 <1337, அதனால் உள்ளே சென்று நாங்கள் இந்த பட்டியலில் 2 எண்கள் கழற்றி அறிகிறோம்.
எனவே வெறும் 2 பட்டியல்கள் இடையே மாற்று.
நாங்கள் தான் தொடக்கத்தில் தேடும், மற்றும் நாம் உறுப்பு பேசிக்கொண்டு
அந்த சிறிய மற்றும் பிறகு எங்கள் அணி அதை வைத்து தான்.
இப்போது நாம் அனைத்து பாதிகளுக்கு இணைக்கப்பட்டது நாங்கள் செய்து வருகிறோம்.
>> பற்றி எந்த கேள்விகள் வகையான ஒன்றாக்க? ஆமாம்?
[மாணவர்] அது வெவ்வேறு குழுக்களாக பிரித்து இருந்தால், ஏன் அவர்கள் ஒருமுறை அதை பிரித்து இல்லை
நீங்கள் ஒரு குழுவில் 3 மற்றும் 2 வேண்டும்? [கேள்வி புரிந்து மற்ற]
காரணம் - அந்த கேள்வி, நாம் அவர்களை பின் ஏன் நாம் தான் முதல் படி அவர்களை ஒன்றிணைக்க முடியாது?
நாம் இதை செய்ய முடியும் காரணம், இருபுறமும் இடது பெரும்பாலான கூறுகள் துவங்க
பின்னர், சிறிய ஒரு எடுத்து அதை வைத்து நாம் இந்த தெரியும் என்று
தனிப்பட்ட பட்டியலை வரிசையாக்கம் கட்டளைகள் உள்ளன.
நான் இரண்டு பகுதிகளாக இடது பெரும்பாலான கூறுகள் பார்த்துக்கொண்டிருக்கிறேன் இருந்தால்,
நான் அவர்கள் அந்த பட்டியலை மிகச்சிறிய கூறுகள் இருக்க போகிறோம் என்று.
அதனால் நான் இந்த பெரிய பட்டியலில் சிறிய உறுப்பு புள்ளிகள் அவற்றை முடியும்.
மறுபுறம், நான் அங்கு இரண்டாம் நிலை அந்த 2 பட்டியலை பாருங்கள் என்றால்,
50, 3, 42, 1337, 15, அந்த சரியாகவில்லை.
நான் 50 மற்றும் 1337 பாருங்கள் நீங்கள், நான் முதல் என் பட்டியலில் 50 வைக்க போகிறேன்.
ஆனால் உண்மையில் 3 அந்த எல்லா வெளியே சிறிய உறுப்பு ஏனெனில், பயன் இல்லை.
எனவே நாம் இந்த இணைந்த படி செய்ய மட்டுமே காரணம் எங்கள் பட்டியலில் ஏற்கனவே வரிசையாக்கம் ஏனெனில் இது.
நாம் கீழே அனைத்து வழி இறங்க வேண்டும் ஏன் இது
நாம் ஒரு ஒற்றை எண் போது, நீங்கள் ஒரு ஒற்றை எண் தெரியும் என்பதால்
மற்றும் தன்னை ஏற்கனவே ஒரு வரிசைப்படுத்தப்பட்ட பட்டியல்.
>> எந்த கேள்விகள்? இல்லை?
Complexity? சரி, நீங்கள், ஒவ்வொரு படியிலும் இறுதியில் எண்கள் உள்ளது என்று பார்க்க முடியும்
நாம், அரை பதிவு n முறை ஒரு பட்டியலை பிரித்து கொள்ளலாம்
நாம் இந்த n x log N சிக்கலான இங்கு உள்ளது.
நீங்கள் ஒன்றிணைப்பு வகையான சிறந்த வழக்கு n log n தான் பார்க்க வேண்டும், அது தான் நடக்கும்
மோசமான, அல்லது அங்கு Ω, மேலும் n n log என்று.
மனதில் கொள்ள வேண்டிய ஒன்று.
செல்லும், அது சில சூப்பர் அடிப்படை கோப்பு நான் த / பெ மீது செல்லலாம்
நீங்கள் ஏற பார்த்து இருந்தால், நாம் கணினி ஒருவித என்று கவனிக்க வேண்டும்
நீங்கள் குறியீடு மூலம் படிக்க நீங்கள் ஒரு பதிவு கோப்பில் எழுத முடியும்.
நீங்கள் அதை எப்படி என்று பார்ப்போம்.
சரி, நாம் fprintf வேண்டும், நீங்கள், போலவே printf என்று முடியும்
ஆனால் ஆரம்பம் இல் f எனவே அதற்கு பதிலாக ஒரு கோப்பு அச்சிடுகிறது, மற்றும்.
இங்கு குறியீடு இந்த வகையான, நீங்கள் ஏற பார்க்க கூடும் என என்ன அது, இது,
அது எண்கள் என்ன வரிசை மூலம் வரிசையில் உங்கள் 2 பரிமாண அணிகளில் அச்சிடுதல் மூலம் செல்கிறது.
இந்த வழக்கில், printf உங்கள் முனையத்தில் அவுட் அச்சிடுகிறது அல்லது நாம் பிரிவின் நிலையான வெளியீடு அழைப்பு என்ன.
>> இப்போது, இந்த வழக்கில், நாம் செய்ய வேண்டிய அனைத்து, fprintf உடன் printf பதிலாக உள்ளது
நீங்கள் அச்சிட வேண்டும் என்ன கோப்பு அதை சொல்ல, இந்த வழக்கில் அது அந்த கோப்பு அது அவுட் அச்சிடுகிறது
பதிலாக உங்கள் முனையத்தில் அதை அச்சிடுகிறது.
நன்றாக, பின்னர் அந்த கேள்வியை கேட்கிறார்: எங்கே நாம் சரியான, கோப்பு இந்த வகையான கிடைக்கும்?
நாம் இந்த fprintf fuction உள்நுழைய கடந்து ஆனால் நாம் அது எங்கிருந்து வந்தது தெரியாது.
நன்றாக, ஆரம்ப குறியீடு உள்ள, நாம், இங்கு குறியீடு இந்த துண்டின் இருந்தது
அடிப்படையில் திறந்த கோப்பு log.txt அழைப்பு என்று இது.
என்று பின் நாம் என்ன செய்ய வேண்டும் நாம் கோப்பு உண்மையில் வெற்றிகரமாக திறக்கப்பட்டது என்று உறுதி செய்ய வேண்டும்.
அது பல காரணங்களுக்காக போகலாம்; நீங்கள் எடுத்துக்காட்டாக, உங்கள் கணினியில் போதுமான இடம் இல்லை.
நீங்கள் கோப்பு எந்த செயல்பாடுகளை செய்ய முன் அது எப்போதும் முக்கியம்
நாம் அந்த கோப்பு வெற்றிகரமாக திறக்கப்பட்டது என சோதிக்க வேண்டும்.
அதனால் என்ன ஒரு, என்று fopen ஒரு வாதம் என்று, நல்ல, நாம் பல வழிகளில் ஒரு கோப்பை திறக்க முடியாது.
நாம் தான் என்ன செய்ய முடியும், நாம், அது வெளியேறும் போது ஏற்கனவே கோப்பு புறக்கணிக்க அதாவது, அது W கடத்தலாம்
நாங்கள், அவர்கள் அதற்கு பதில் overriding கோப்பு முடிவிற்கு append எந்த ஒரு ஒரு கடத்தலாம்
அல்லது நாம் அதாவது, r குறிப்பிட முடியும், கோப்பு படிக்க மட்டுமே திறக்க அனுமதிக்க.
நிரல், கோப்பு எந்த மாற்றங்கள் செய்ய முயற்சித்தால் நீங்கள்
அவர்கள் கத்துகிறாய் அவர்கள் அதை செய்ய விடுவதில்லை.
இறுதியாக, நாம், அதை நடவடிக்கைகளை செய்து முடித்ததும், கோப்பு முடித்துவிட்டீர்கள்
நாம் கோப்பு மூட உறுதி செய்ய வேண்டும்.
எனவே உங்கள் திட்டம் இறுதியில், மீண்டும் அவர்களை கடந்து செல்கிறோம்
நீங்கள் திறந்து, மற்றும் அதை மூடிவிட்டு இந்த கோப்பு என்று.
இந்த உனக்கு உறுதி செய்ய வேண்டும் என்று முக்கியமான ஒன்று.
எனவே நீங்கள் ஒரு கோப்பை திறக்க முடியும் நினைவில் நீ, கோப்பு எழுத முடியும்
கோப்பு செயல்பாடுகளை செய்ய, ஆனால் நீங்கள் இறுதியில் கோப்பு மூட வேண்டும்.
>> அடிப்படை கோப்பு எந்த கேள்விகளுக்கும் நான் / O? ஆமாம்?
[மாணவர் கேள்வி, புரிந்து]
சரி இங்கே. கேள்வி, இந்த log.txt கோப்பு எங்கே தோன்றும்?
நீங்கள் அதை log.txt கொடுத்தால் நன்றாக,, அது இயங்கக்கூடிய அதே அடைவில் அது உருவாக்குகிறது.
எனவே you're என்றால் - >> [மாணவர் கேள்வி, புரிந்து]
ஆம். அதே கோப்புறையில், அல்லது அதே அடைவில், நீங்கள் அழைக்க வேண்டும்.
இப்போது நினைவகம், ஸ்டாக், மற்றும் குவியல்.
எனவே கணினி அமைக்கப்பட்டன நினைவக எப்படி இருக்கிறது?
சரி, நீங்கள் இங்கே இந்த தொகுதி வகையான நினைவக கற்பனை செய்யலாம்.
மற்றும் நினைவகத்தில் நாம் அங்கு சிக்கி குவியல், மற்றும் அங்கு கீழே என்று ஸ்டேக் என்று என்ன இருக்கிறது.
மற்றும் குவியல் கீழ்நோக்கி வளரும் மற்றும் ஸ்டாக் மேல்நோக்கி வளரும்.
டாமி குறிப்பிட்டுள்ளார் அதனால் - ஓ, நல்ல, நாம் நான் ஒரு இரண்டாவது கிடைக்கும் இந்த மற்ற 4 பிரிவுகளாக வேண்டும் -
டாமி முந்தைய என, நீங்கள் அவரது செயல்பாடுகளை தங்களை அழைத்து ஒருவருக்கொருவர் அழைப்பு எப்படி தெரியும்?
அவர்கள் ஸ்டாக் சட்டகமானது இந்த வகையான கட்டமைக்க.
நன்றாக, முக்கிய அழைப்புகள் foo, foo ஸ்டாக் வைக்க வந்தால்.
Foo அழைப்பு பார், பார் ஸ்டாக் வைக்க, மற்றும் பிறகு ஸ்டாக் வைக்க போகிறான் என்று.
அவர்கள் திரும்பி மற்றும், அவர்கள் ஒவ்வொரு ஸ்டேக் எடுத்து வருகிறது.
இந்த இடங்களில் ஒவ்வொரு மற்றும் நினைவக என்ன நடத்த?
நன்றாக, உரை பகுதி இது மேல், நிரலில் உள்ளது.
இயந்திர குறியீடு அதனால், அங்கு தான், ஒரு முறை உங்கள் நிரலை கம்பைல்.
அடுத்து, எந்த உலக மாறிகள் துவக்கப்படும்.
>> எனவே, நீங்கள் உங்கள் திட்டத்தில் உலக மாறிகள் வேண்டும், மற்றும் நீங்கள் ஒரு = 5, அப்படி சொல்ல
அந்த பிரிவில் வைத்து, வலது என்று கீழ் விடும் என்று,
நீங்கள், ஒரு INT இது எந்த uninitialized உலக தரவு, வேண்டும்
ஆனால் நீங்கள் அதை ஏதாவது சமமாக தான் சொல்ல வேண்டாம்.
இந்த உலக மாறிகள், எனவே அவர்கள் முக்கிய வெளியே தான் உணர.
இந்த பிரகடனம் ஆனால் துவக்கப்படும் என்று எந்த உலக மாறிகள் பொருள்.
எனவே குவியல் என்ன? நினைவக நாம் சிறிதுநேரத்தில் கிடைக்கும் எந்த malloc, பயன்படுத்தி ஒதுக்கீடு.
இறுதியாக, ஸ்டாக் நீங்கள் எந்த உள்ளூர் மாறிகள் வேண்டும்
எந்த செயல்பாடுகளை அவர்களின் அளவுருக்கள் எந்த கூப்பிடுகிறேன்.
கடந்த விஷயம், நீங்கள் உண்மையில், சூழல் மாறிகளை என்ன தெரியும் இல்லை
ஆனால் நீங்கள் நிரலை போதெல்லாம், தொடர்புடைய ஒன்று போல இருக்கிறது,
இந்த திட்டம் நடத்தினார் நபரின் பெயர் உள்ளது.
என்று கீழே உள்ள மாதிரி இருக்க போகிறது.
அறுபதின்ம மதிப்புகள் இது நினைவக முகவரிகள், அடிப்படையில்,
0 உயர்மட்ட தொடக்கத்தில் மதிப்புகள், அவர்கள் கீழே அனைத்து வழி கீழே செல்லுங்கள்.
இந்த வழக்கில், நீங்கள் 32 பிட் கணினியில் என்றால்,
கீழே உள்ள முகவரியை என்று 32 பிட்கள் ஏனெனில், AF தொடர்ந்து, 0x போகிறது
இதில் 8 பைட்டுகள் ஆகும், இந்த வழக்கில் 8 பைட்டுகள் 8 அறுபதின்ம இலக்கங்கள் ஒத்துள்ளது.
எனவே இங்கு நீங்கள் விரும்பும், 0xffffff போகிறது, மற்றும் அங்கு நீங்கள் 0 போகிறது.
அதனால் என்ன குறிப்புகள் உள்ளன? நீங்கள் சில முன் பகுதியில் இந்த விவாதிக்கப்படுகின்றன இல்லை.
ஆனால் நாம் விரிவுரையில் அதை போனீர்கள், ஒரு சுட்டிக்காட்டி ஒரு தரவு வகை உள்ளது
அதற்கு பதிலாக 50 போன்ற மதிப்பு சில வகையான, இது நினைவக சில இடம் முகவரியை சேமித்து இதில் கடைகள்,.
என்று நினைவகம் போன்ற [புரிந்து].
இந்த வழக்கில், நாம் தான் என்ன, நாம், ஒரு முழு எண் அல்லது ஒரு முழு எண்ணாக * ஒரு சுட்டிக்காட்டி உள்ளது
அது 0xDEADBEEF இந்த அறுபதின்ம முகவரியை கொண்டுள்ளது.
>> அதனால் என்ன நாம் நினைவு சில இடத்தில் இந்த சுட்டிக்காட்டி புள்ளிகள், இப்போது, தான்,
அந்த ஒரு விஷயம், மதிப்பு 50 இந்த நினைவு இடத்தில் உள்ளது.
சில 32 பிட் கணினிகளில், அனைத்து 32 பிட் கணினிகளில், சுட்டிகள் 32 பிட்கள் அல்லது 4 பைட்டுகள் எடுத்து.
ஆனால், உதாரணத்திற்கு, ஒரு 64 பிட் கணினியில், சுட்டிகள் 64 துண்டுகள்.
அதனால் நீங்கள் மனதில் கொள்ள வேண்டும் என்று நினைக்கும் விஷயம்.
அதனால் ஒரு முடிவுக்கு பிட் கணினியில், ஒரு சுட்டிக்காட்டி இறுதியில் பிட்கள் நீளமாக உள்ளது.
சுட்டிகள், கூடுதல் விஷயங்களை இல்லாமல் வகையான ஜீரணிக்க கடினம்
எனவே மாறும் நினைவக ஒதுக்கீடு ஒரு உதாரணம் மூலம் செல்லலாம்.
, என்ன மாறும் நினைவக ஒதுக்கீடு நீங்கள் இல்லை, அல்லது நாம் malloc அழைக்க என்ன
அதை நீங்கள் செட் வெளியே தரவு ஒருவித ஒதுக்க முடியும்.
இந்த தரவு மாதிரி திட்டத்தின் கால அளவு மேலும் நிரந்தரமானது.
உனக்கு தெரியும் என்பதால், நீங்கள் ஒரு செயல்பாடு உள்ளே x, அந்த செயல்பாடு மீண்டும் அறிவிக்க வேண்டும்,
இனி x சேமிக்கப்படும் என்று தரவு அணுகல்.
என்ன சுட்டிகள் எங்களுக்கு செய்யட்டும் அவர்கள் எங்களுக்கு நினைவகம் அல்லது கடை மதிப்புகள் சேமிக்க விடப்படும்
அதாவது நினைவகம் வேறு பிரிவில், குவியல் உள்ள.
இப்போது நாங்கள் நீண்ட நாம் ஒரு சுட்டிக்காட்டி வேண்டும் என, செயல்பாடு வெளியே வர
நினைவகத்தில் அந்த இடத்தில், நாம் என்ன செய்ய முடியும் நாங்கள் அங்கே மதிப்புகள் பார்க்க முடியும்.
இது ஒரு உதாரணம் பார்க்கிறேன்: இந்த மீண்டும் எங்கள் நினைவக அமைப்பு ஆகும்.
நாங்கள் முக்கிய, இந்த செயல்பாடு உள்ளது.
என்ன அது தான் - பரவாயில்லை, மிகவும் எளிமையான, வலது -? Int x = 5, என்று தான் முக்கிய உள்ள ஸ்டாக் ஒரு மாறி விட்டது.
>> மறுபுறம், இப்போது நாம் செயல்பாடு giveMeThreeInts அழைக்கும் ஒரு சுட்டிக்காட்டி அறிவிக்க.
எனவே இப்போது நாம் இந்த செயல்பாடு போக, அதை நாம் ஒரு புதிய ஸ்டாக் சட்டகமானது உருவாக்க.
எனினும், இந்த ஸ்டேக் சட்டத்தில், நாம், int * திறக்க பிரகடனம்
இது எங்களுக்கு mallocs 3 முழு இல்.
எனவே எண்ணாக அளவு, இந்த int எப்படி பல பைட்டுகள் நமக்கு கொடுக்கும்
மற்றும் malloc நமக்கு கொடுக்கிறது என்று குவியல் இடத்தை பல பைட்டுகள்.
இந்த வழக்கில், நாம், 3 முழு போதுமான இடத்தை உருவாக்கி
மற்றும் குவியல் நான் அதிக வரை அதை இழுத்து நான் ஏன் இது, அங்கு வழி.
நாம் செய்து முடித்ததும், நாம் இங்கே திரும்பி வந்து, நீங்கள் மட்டும் 3 ints திரும்ப வேண்டும்,
மற்றும் அந்த நினைவக எங்கே இந்த வழக்கில், முகவரி கொடுக்கிறது.
நாம் சுட்டிக்காட்டி = சுவிட்ச் அமைக்க, மற்றும் அங்கு நாம் மற்றொரு சுட்டிக்காட்டி இருக்கிறது.
ஆனால் என்ன செயல்பாட்டை மீண்டும் இங்கே அடுக்கப்பட்ட மற்றும் மறைந்துவிடும் என்று.
எனவே திறக்க போகிறது, ஆனால் நாம் இன்னும் அங்கு முகவரி பராமரிக்க
அந்த 3 முழு மெயின்களின் உள்ளே இருக்கும்.
இந்த தொகுப்பில், சுட்டிகள், அடுக்கப்பட்ட சட்டத்திற்கு உள்ளமைவாக ஆகியவற்றை நோக்காகக்கொண்ட இருக்கும்
ஆனால் அவை பார்க்கவும் நினைவக குவியல் இருக்கிறது.
>> அந்த உணர்வு ஏற்படுத்தும்?
[மாணவர்] நீங்கள் மறுபடியும் முடியவில்லை? >> [ஜோசப்] ஆமாம்.
நான் மீண்டும் ஒரு சிறிது சென்றால் எனவே, நீங்கள் திறக்க ஒதுக்கீடு என்று பார்க்க
அங்கு குவியல் சில நினைவகம்.
இந்த விழாவில், giveMeThreeInts வருமானம், இங்கே இந்த ஸ்டேக் காணாமல் போகும்.
மற்றும் இந்த வழக்கில் மாறிகள் எந்த, அடுக்கப்பட்ட சட்டத்தில் ஒதுக்கீடு என்று இந்த சுட்டியை வைத்து.
நாம் திறக்க வந்தார் பின்னர் அந்த மறைந்து போய், ஆனால்
நாம் = திறக்க, சுட்டிக்காட்டி இப்போது திறக்க இருந்தது இடம் அதே நினைவக சுட்டிக்காட்ட நடக்கிறது சுட்டிக்காட்டி அமைக்க.
எனவே இப்போது, நாம் திறக்க, உள்ளூர் சுட்டிக்காட்டி, இழக்க கூட
நாம் இன்னும் அந்த மாறி சுட்டிக்காட்டி உள்ளே குறிக்கின்ற என்ன நினைவக முகவரி தக்கவைத்து.
கேள்விகள்? நீங்கள் பிரிவில் அதை போகவில்லை என்றால் ஒரு குழப்பமான தலைப்பு என்ன இருக்க முடியும்.
நாங்கள், உங்கள் TF நிச்சயமாக அதை போய் மற்றும் நிச்சயமாக நாம் கேள்விகளுக்கு பதிலளிக்க முடியாது
இந்த ஆய்வு அமர்வின் முடிவில்.
ஆனால் இந்த ஒரு சிக்கலான தலைப்பு வகை, மற்றும் நான் காட்ட போகிறோம் என்று இன்னும் உதாரணங்கள் உண்டு
அந்த சுட்டிகள் உண்மையில் என்ன தெளிவுபடுத்த உதவும்.
>> இந்த வழக்கில், சுட்டிகள், வரிசைகள் சமமானதாக இருக்கும்
அதனால் நான் ஒரு முழு எண்ணாக வரிசை அதே காரியத்தை இந்த சுட்டியை பயன்படுத்தலாம்.
அதனால் நான், 0 என்ற அட்டவணையிடுவது, மற்றும் 1 முதல் முழு மாற்றம்
2 இரண்டாவது முழு மாற்றம், மற்றும் 3 வது முழு 3.
சுட்டிகள் மிகவும் அதிக. நன்றாக, Binky நினைவு.
இந்த வழக்கில், நாம் ஒரு சுட்டிக்காட்டி ஒதுக்கீடு, அல்லது நாம் ஒரு சுட்டிக்காட்டி அறிவித்தார்
ஆனால் ஆரம்பத்தில், நான் ஒரு சுட்டிக்காட்டி அறிவித்தார் போது, அது எங்கு நினைவகத்தில் சுட்டி காட்டியது இல்லை.
அது உள்ளே வெறும் குப்பை மதிப்புகள் தான்.
அதனால் நான் இந்த சுட்டியை சுட்டி காட்டியது அமைந்துள்ள தெரியாது.
அது 0 மற்றும் 1 அது முதலில் அறிவிக்கப்பட்டது அங்கு நிறைந்த ஒரு முகவரி.
நான் அதை malloc அழைப்பு வரை நான் இந்த ஒன்றும் செய்ய முடியாது
பின்னர் என்னை நான் உள்ளே மதிப்புகள் முடியும் அங்கு குவியல் ஒரு சிறிய இடைவெளி கொடுக்கிறது.
மீண்டும், நான் இந்த நினைவகம் உள்ளே என்ன என்று எனக்கு தெரியாது.
அதனால் நான் என்ன செய்ய வேண்டும் முதல் விஷயம் அமைப்பு போதுமான நினைவகம் இல்லை என்பதை தான்
நான் இந்த சோதனை செய்கிறேன் அதனால் தான் முதல் இடம், 1 முழு திரும்ப கொடுக்க.
சுட்டிக்காட்டி பூஜ்ய இருந்தால், அந்த, அது போதுமான இடைவெளி அல்லது வேறு சில பிழை ஏற்பட்டது இல்லை என்று அர்த்தம்
அதனால் நான் என் திட்டத்தை வெளியே வெளியேற வேண்டும்.
அது வெற்றி செய்தால் ஆனால், இப்போது நான் அந்த சுட்டியை பயன்படுத்தலாம்
என்ன * சுட்டிக்காட்டி இல்லை முகவரியை எங்கே அது பின்வருமாறு உள்ளது
அந்த மதிப்பு, மற்றும் 1 க்கு சமமாக அமைக்க வேண்டும்.
அந்த நினைவு இருந்த என்றால் இங்கு, நாம் பரிசீலித்துக்கொண்டிருக்கிறோம்.
>> நீங்கள் அதை உள்ளது என்று ஒரு முறை, நீங்கள் அதை முடியும்
என்ன மதிப்பு நீங்கள் அதை கொடுக்க வேண்டும்; இந்த வழக்கு 1.
நாம் அது முடித்துவிட்டீர்கள், நீங்கள் என்று சுட்டிக்காட்டி விடுவிக்க வேண்டும்
நாம் கணினியில் நீங்கள் முதலில் கேட்ட அந்த நினைவு திரும்ப பெற வேண்டும், ஏனெனில்.
ஏனெனில் கணினி நாம் முடித்துவிட்டீர்கள் போது தெரியாது.
இந்த வழக்கில் நாம் வெளிப்படையாக அதை சொல்கிறாய், சரி, நாம் அந்த நினைவு முடித்துவிட்டீர்கள்.
வேறு சில வழிமுறைகளை அது தேவை என்றால், வேறு சில நிரல் தேவைப்படுகிறது, முன்னால் சென்று எடுத்து கொள்ளலாம்.
என்ன நாங்கள் என்ன செய்ய முடியும் நாங்கள் தொகுப்பில் உள்ளூர் மாறிகளின் முகவரியை பெற முடியும்.
எனவே int x முக்கிய அடுக்கப்பட்ட சட்டத்தில் உள்ளே இருக்கும்.
நாம் இந்த ampersand பயன்படுத்த போது, இந்த மற்றும் ஆபரேட்டர், என்ன அது தான்
அது x எடுத்து, மற்றும் x நினைவகத்தில் சில தரவு, ஆனால் அது ஒரு முகவரி.
அது எங்கோ அமைந்துள்ள. இந்த என்ன அழைப்பு & x, உள்ளது அது நம்மை x முகவரி கொடுக்கிறது.
இப்படி செய்வதால், நாம் x நினைவகத்தில் எங்கே என்று சுட்டிக்காட்டி புள்ளி செய்கிறாய்.
இப்போது நாம் மட்டும் * போன்ற ஏதாவது x, நாங்கள் 5 திரும்ப பெற போகிறோம்.
நட்சத்திர அதை dereferencing அழைக்கப்படுகிறது.
நீங்கள் முகவரியை பின்பற்ற நீங்கள் அங்கு சேமித்து அதை மதிப்பு கிடைக்கும்.
>> எந்த கேள்விகள்? ஆமாம்?
நீங்கள் 3-கூரான பொருளை செய்யாவிட்டால் [மாணவர், அது இன்னமும் தொகுக்க?
ஆம். நீங்கள் 3-சுட்டிக்காட்டி செய் என்றால், அது இன்னும், தொகுக்க நடக்கிறது
ஆனால் நான், இரண்டாவது என்ன நீங்கள் காட்ட, அந்த செய்யாமல் நான்
என்று நாம் ஒரு நினைவக கசிவு அழைக்க என்ன. கணினி கொடுக்கும்
அதன் நினைவக காப்பு, அதனால் ஒரு பின்னர் திட்டத்தை குவிக்க போகும் போது
அதை பயன்படுத்தி, வேறு எதுவும் அதை பயன்படுத்த முடியும் நினைவகம் என்று.
நீங்கள் எப்போதும் உங்கள் கணினியில் 1.5 மில்லியன் கிலோபைட்டுகளை ஃபயர்ஃபாக்ஸ் பார்த்த போது,
பணி மேலாளர், அந்த நடக்கிறது என்ன.
நீங்கள் அவர்கள் கையாள முடியாது என்று திட்டம் ஒரு நினைவக கசிவு இல்லை.
எனவே எப்படி சுட்டிக்காட்டி கணித வேலை செய்கிறது?
நன்றாக, சுட்டிக்காட்டி கணித ஒரு வரிசைக்கு சென்று போன்ற திருப்பு வகை.
இந்த வழக்கில், நான் ஒரு சுட்டிக்காட்டி வேண்டும், மற்றும் நான் என்ன செய்ய நான் முதல் உறுப்பு செய்ய சுட்டிக்காட்டி புள்ளி வைக்க உள்ளது
நான் ஒதுக்கீடு செய்த 3 முழுஎண்களின் இந்த வரிசைக்கு.
அதனால் இப்போது நான் என்ன செய்ய வேண்டும், நட்சத்திர சுட்டிக்காட்டி தான் பட்டியலில் முதல் உறுப்பு மாற்றுகிறது.
இங்கு நட்சத்திர சுட்டிக்காட்டி +1 புள்ளிகள்.
எனவே சுட்டிக்காட்டி இங்கு, சுட்டிக்காட்டி +1 இங்கு, சுட்டிக்காட்டி +2 இங்கு உள்ளது.
>> அதனால் தான் 1 சேர்த்து இந்த வரிசை சேர்ந்து நகரும் அதே விஷயம்.
நாம் என்ன தான், நாம் சுட்டிக்காட்டி +1 செய்யும் போது நீங்கள், இங்கு முகவரியை பெற
இங்கு உள்ள மதிப்பு பெறுவதற்காக, நீங்கள் முழு வெளிப்பாடு இருந்து ஒரு நட்சத்திரம் வைத்து
இது dereference வேண்டும்.
எனவே, இந்த விஷயத்தில், நான், 1 இந்த வரிசையில் முதல் இடம் அமைப்பதில்
2 இரண்டாவது இடம், மற்றும் 3 மூன்றாம் இடம்.
என்ன நான் இங்கு செய்கிறேன், நான் எங்கள் சுட்டிக்காட்டி +1 அச்சிடும் நான் இல்லை
இது தான் எனக்கு 2 கொடுக்கிறது.
இப்போது, நான் சுட்டிக்காட்டி உயர்த்துவதன், அதனால் சுட்டிக்காட்டி சுட்டிக்காட்டி +1 க்கு சமமாக
இது முன்னோக்கி அது நகர்கிறது.
அதனால் இப்போது நான் சுட்டிக்காட்டி +1 அவுட் அச்சிட என்றால், சுட்டிக்காட்டி +1, இப்போது 3
இந்த வழக்கில் 3 அவுட் அச்சிடுகிறது.
மற்றும் இலவச ஏதோ, நான் அதை கொடுக்க வேண்டும் என்று சுட்டிக்காட்டி பொருட்டு
நான் malloc இருந்து திரும்ப பெற்ற அணி தொடக்கத்தில் சுட்டி.
நான் இங்கே 3 அழைக்க இருந்தால் அதனால், இந்த வழக்கில், இந்த, வலது முடியாது
அது அணியின் மத்தியில் தான்.
நான் அசல் இடம் பெற கழித்து வேண்டும்
நான் அதை விடுவிக்க முடியாது முன் ஆரம்ப முதல் இடத்தில்.
எனவே, இங்கு அதிக ஈடுபட்டுள்ள எடுத்துக்காட்டு.
இந்த வழக்கில், நாம் ஒரு பாத்திரம் வரிசையில் 7 எழுத்துக்கள் ஒதுக்கீடு.
>> இந்த வழக்கில் நாம் செய்கிறோம் என்ன, நாம் அவர்களுக்கு முதல் 6 மீது தேடுகிறது நீங்கள் தான்
நாம் இசட் அவற்றை அமைப்பதற்கு
எனவே, முழு எண்ணாக நான் = 0, i> 6, நான் + +
எனவே, சுட்டிக்காட்டி + நான், இந்த விஷயத்தில், நமக்கு கொடுப்பேன்
சுட்டிக்காட்டி, சுட்டிக்காட்டி +1, சுட்டிக்காட்டி +2, சுட்டிக்காட்டி +3, மற்றும் பல மற்றும் முன்னும் பின்னுமாக வட்டத்திற்கு.
என்ன செய்ய போகிறது, அது மதிப்பு பெற, dereferences அந்த முகவரியை பெறும் என்று
ஒரு இசட் மற்றும் மாற்றங்கள் மதிப்பு
பின்னர் இறுதியில் சரி, இந்த ஒரு சரம் நினைவிருக்கிறதா?
அனைத்து சரங்களின் பூஜ்ய முடக்கப்படும் கதாபாத்திரம் முடிவடைய வேண்டும்.
எனவே, நான் என்ன செய்ய சுட்டிக்காட்டி 6 நான் உள்ளே பூஜ்ய அழிப்பு தன்மையை வைத்து தான்
இப்போது நான் அடிப்படையில் இங்கு என்ன செய்து கொண்டிருக்கிறேன், ஒரு சரம் ஐந்து printf சரியான செயல்படுத்தி வருகிறது?
>> எனவே, போது printf இப்போது அது ஒரு சரம் இறுதியில் அடைந்தது போது?
அது வெற்று முடக்கப்படும் தன்மையை எம் போது.
எனவே, இந்த விஷயத்தில், இந்த அணி தொடக்கத்தில் எனது அசல் சுட்டிக்காட்டி புள்ளிகள்.
நான் முதல் எழுத்து அவுட் அச்சிட. நான் ஒரு வழியாக அதை நகர்த்த.
நான் அந்த பாத்திரத்தை வெளியே அச்சிட. நான் அதை நகர்த்த.
மற்றும் நான் அடையும் வரை இதை வைத்து.
இப்போது இறுதியில் * சுட்டிக்காட்டி நான் dereference இந்த வெற்று முடக்கப்படும் தன்மையை மீண்டும்.
அதனால் என் போது வளையம் என்று மதிப்பு பூஜ்ஜிய முடக்கப்படும் பாத்திரம் அல்ல மட்டுமே இயங்கும்.
எனவே, இப்போது நான் இந்த வட்டத்திற்கு வெளியே வெளியேறவும்.
அதனால் நான், இந்த சுட்டியை இருந்து 6 கழித்து என்றால்
நான் ஆரம்பத்தில் அனைத்து வழியில் செல்ல.
நான் அதை விடுவிக்க வேண்டும் தொடக்கத்தில் செல்ல வேண்டும், ஏனெனில் நினைவில் வைத்து கொள்ளுங்கள், நான் செய்கிறேன்.
>> எனவே, நான் அந்த நிறைய என்று எனக்கு தெரியும். எந்த கேள்விகள் உள்ளன?
தயவு செய்து, சரி?
[மாணவர் கேள்வி புரிந்து]
நீங்கள் சத்தமாக என்று சொல்ல முடியும்? மன்னிக்கவும்.
[மாணவர்] நீங்கள் சுட்டிக்காட்டி விடுதலை வலது முன் கடந்த ஸ்லைட் இல்,
நீங்கள் உண்மையில் சுட்டிக்காட்டி மதிப்பு மாறும்?
[ஜோசப்] எனவே, சரியான இங்கே. >> [மாணவர்] ஓ, சரி.
[ஜோசப்] எனவே, நான், ஒரு சுட்டிக்காட்டி கழித்தல் கழித்தல் வேண்டும்,
இது, நான் அதை விடுவித்து பிறகு மீண்டும் ஒன்று நகரும், மற்றும்
இந்த சுட்டியை அணி தொடக்கத்தில் சுட்டிக்காட்டினார் வேண்டும் என்பதால்.
நீங்கள் அந்த வரியை பின்னர் முடிந்திருந்தது [மாணவர்] ஆனால் தேவைப்படும் என்று.
நான் இந்த பிறகு நின்றிருந்தால் [ஜோசப்] எனவே, இந்த, ஒரு நினைவக கசிவு கருதப்படுகிறது
நான் இலவச இயக்க முடியவில்லை, ஏனெனில்.
[மாணவர்] நான் [புரிந்து] நீங்கள் சுட்டிக்காட்டி +1 [புரிந்து] வைத்திருந்தார் முதல் மூன்று கோடுகள் பிறகு.
[ஜோசப்] பத்திதான் ம்ம். எனவே, அங்கு கேள்விக்கு என்ன?
மன்னிக்கவும். இல்லை, இல்லை. தயவு செய்து, போ, போ.
[மாணவர்] எனவே, நீங்கள் சுட்டிகள் மதிப்பு மாறும்.
நீங்கள் சுட்டிக்காட்டி கழித்தல் கழித்தல் செய்ய இருந்திருக்காது.
[ஜோசப்] ஆமாம், சரியாக.
எனவே, நான் சுட்டிக்காட்டி +1 மற்றும் சுட்டிக்காட்டி +2 செய்யும் போது,
நான் சுட்டிக்காட்டி செய்யவில்லை சுட்டிக்காட்டி +1 க்கு சமமாக.
எனவே, சுட்டிக்காட்டி தான் அணி தொடக்கத்தில் சுட்டி.
, நான் பிளஸ் செய்யும் போது அதை மட்டுமே பிளஸ் சுட்டிக்காட்டி உள்ளே திரும்பி மதிப்பு அமைக்கிறது
அது உண்மையில் சேர்ந்து இந்த நகரும் என்று.
எல்லாம் சரி.
மேலும் கேள்விகள்?
>> இந்த பெரும் வகையான என்றால் மீண்டும், இந்த அமர்வு விவாதிக்கப்படுகின்றன.
அதை பற்றி உங்கள் போதனை சக கேளுங்கள், நாம் முடிவில் கேள்விகளுக்கு பதிலளிக்க முடியாது.
பொதுவாக நாம் இந்த கழித்து தான் செய்ய விரும்பவில்லை.
இந்த என்னை நான் வரிசையில் ஈடு நான் எவ்வளவு கண்காணிப்பதற்கான தேவைப்படுகிறது வேண்டும்.
எனவே, பொதுவாக, இந்த சுட்டியை கணித படைப்புகளை எப்படி விளக்குவது தான்.
ஆனால் நாம் வழக்கமாக செய்ய விரும்புகிறீர்கள், நாம் சுட்டிக்காட்டி நகலை உருவாக்க வேண்டும் என்று
நாம் சரம் சுற்றி நகரும் போது நாம் அந்த நகலை பயன்படுத்த வேண்டும்.
எனவே, இந்த விஷயத்தில் நீங்கள் நகல், முழு சரம் அச்சிட பயன்படுத்த
ஆனால் நாம், சுட்டிக்காட்டி கழித்து 6 போன்று செய்ய வேண்டும் அல்லது இந்த சென்றார் எவ்வளவு கண்காணிப்பதற்கான
நாம் உண்மையான புள்ளி இன்னமும் பட்டியலில் ஆரம்பத்தில் சுட்டிக்காட்டினார் என்று தான்
நாம் மாற்றங்கள் அனைத்து இந்த நகல் இருந்தது.
எனவே, பொதுவாக, உங்கள் அசல் சுட்டிக்காட்டி பிரதிகளை மாற்ற.
போன்ற வரிசைப்படுத்த வேண்டாம் - அசல் பிரதிகளை மாற்ற don't.
உங்கள் அசல் மட்டுமே பிரதிகள் மாற்ற முயற்சி.
நாம் printf கொண்டு சரம் போகும்போது, எனவே நீங்கள் கவனிக்கவில்லையா
நீ, நாம் வேறு dereferences செய்ததை போல, அது முன்னால் உள்ள ஒரு நட்சத்திர வைத்து உரிமை இல்லை?
நீங்கள் முழு சரம்% கள் எதிர்பார்க்கிறது அவுட் அச்சிட என்றால், ஒரு முகவரி
இந்த வழக்கு ஒரு சுட்டிக்காட்டி அல்லது எழுத்துக்கள் ஒரு வரிசை போல் இந்த விஷயத்தில்.
>> பாத்திரங்கள், கரி * கள், மற்றும் அணிகளை ஒன்று உள்ளது.
சுட்டிக்காட்டி எழுத்துக்கள் உள்ளது, மற்றும் எழுத்து வரிசைகள் தான் இருக்கும்.
எனவே, நாம் செய்ய வேண்டிய அனைத்து சுட்டிக்காட்டி உள்ள கடக்க வேண்டும்.
நாம் * சுட்டிக்காட்டி அல்லது அப்படி எதுவும் போன்ற செல்வதை இல்லை.
எனவே, கோவை மற்றும் குறிப்புகள் தான் இருக்கும்.
நீங்கள் x போல் செய்கிறீர்கள் போது இங்கு ஒரு அணியை [y],
என்ன இது முக்காடிட்டு செய்து அதை சொல்கிறாள், சரியா, அது, ஒரு பாத்திரம் வரிசை தான்
அது ஒரு சுட்டிக்காட்டி இருக்கிறது.
அதனால் x, அதையே தான்
மற்றும் அது என்ன, அது x க்கு y சேர்க்கிறது உள்ளது
அந்த நினைவகத்தில் முன்னேற்றம் அதே விஷயம் ஆகும்.
இப்போது X + Y, எங்களுக்கு முகவரி ஒருவித கொடுக்கிறது
நாம் முகவரியை dereference அல்லது செய்திகள் பின்பற்ற
நினைவகத்தில் உள்ள இடம் மற்றும் நாம் நினைவில் அந்த இடம் மதிப்பு வெளியே.
எனவே, இந்த இரண்டு சரியாக தான் இருக்கும்.
இது ஒரு விதி சர்க்கரை தான்.
அவர்கள் அதையே செய்வார்கள். அவர்கள் ஒருவரை ஒருவர் மட்டும் வெவ்வேறு syntactics இருக்கும்.
>> எனவே, சுட்டிகள் தவறு என்ன போக முடியும்? நிறைய, போன்ற. சரி. எனவே, கெட்ட விஷயங்கள்.
உங்கள் malloc அழைப்பு பூஜ்ய, சரியான கொடுக்கிறது என்றால் நீங்கள் செய்ய சில கெட்ட விஷயங்களை சரி இல்லை?
இந்த வழக்கில், நான் என்னிடம் கணினி கேட்கிறேன் - அந்த எண் என்ன?
ஒரு முழு அளவு 4 பைட்டுகள் ஏனெனில், 2 பில்லியன் மடங்கு 4 போல்.
நான் 8 பில்லியன் பைட்டுகள் போல் அதை கேட்கிறேன்.
நிச்சயமாக என் கணினி என்னை மிகவும் நினைவு திரும்ப கொடுக்க முடியும் போவதில்லை.
இந்த பூஜ்ய என்றால், நாங்கள் அங்கு dereference அதை முயற்சி போது, சோதனை இல்லை -
அது நடக்கிறது அங்கு அம்பு பின்பற்ற - நாங்கள் அந்த நினைவு இல்லை.
இந்த ஒரு வெற்று சுட்டிக்காட்டி dereferencing என்போம்.
இந்த அடிப்படையில் நீங்கள் segfault காரணமாகிறது.
இந்த segfault வழிகளில் ஒன்றாகும்.
நீங்கள் என்ன செய்ய முடியும் மற்ற கெட்ட - நல்ல ஓ.
என்று ஒரு வெற்று சுட்டிக்காட்டி dereferencing. சரி.
மற்ற கெட்ட விஷயங்கள் - நன்றாக, நீங்கள் அங்கு ஒரு காசோலை வைத்து அதை சரிசெய்ய வேண்டும்
என்று சுட்டிக்காட்டி பூஜ்ய என்பதை சரிபார்த்து
அது malloc ஒரு பூஜ்ய சுட்டிக்காட்டி கொடுக்கிறது நடந்தால் மற்றும் நிரல் வெளியே வெளியேறவும்.
க்ஸ்க்ச்து நகைச்சுவை என்று. மக்கள் இப்போது புரிந்து. இந்த வரிசைப்படுத்த.
>> எனவே, நினைவக. நான் இந்த வழியாக சென்றார்.
நாம் ஒரு வட்டத்திற்கு malloc அழைப்பு, ஆனால் நாம் malloc என்று ஒவ்வொரு முறையும்
நாம், இந்த சுட்டியை சுட்டி காட்டியது அமைந்துள்ள கண்காணிக்கும் வீணாக்கறோம்
நாம் அது clobbering ஏனெனில்.
எனவே, malloc ஆரம்ப அழைப்பு என்னை இங்கே நினைவு மேல் கொடுக்கிறது.
இந்த என் சுட்டிக்காட்டி சுட்டிகள்.
இப்போது, நான் அதை விடுவிக்க இல்லை, அதனால் இப்போது நான் மீண்டும் malloc அழைப்பு.
இப்போது இங்கு சுட்டிக்காட்டியுள்ளது. இப்போது என் நினைவு இங்கு சுட்டி.
இங்கு சுட்டி. இங்கு சுட்டி.
ஆனால் நான் இங்கே நான் ஒதுக்கப்பட்ட என்று அனைத்து நினைவக முகவரிகளை போனதே.
அதனால் இப்போது நான் இனி அவர்களுக்கு எந்த குறிப்பும் இல்லை.
அதனால், நான் இந்த வட்டத்திற்கு வெளியே அவர்களை விடுவிக்க முடியாது.
எனவே, இந்த மாதிரி ஏதாவது செய்ய வேண்டும்
நீங்கள் இலவச நினைவக மறந்து நீங்கள் இந்த நினைவக கசிவு கிடைக்கும் என்றால்,
நீங்கள் முடித்துவிட்டீர்கள் முறை இந்த வட்டத்திற்கு உள்ளே நினைவக விடுவிக்க வேண்டும்.
சரி, இந்த நடக்கும். நான் உங்களுக்கு நிறைய இந்த வெறுக்கிறேன் என்று.
ஆனால் இப்போது - ஆஹா! நீங்கள் 44.000 கிலோபைட்டுகளை போல் கிடைக்கும்.
அதனால், நீங்கள், லூப் இறுதியில் அதை விடுவித்து
என்று மட்டும் நினைவக ஒவ்வொரு முறையும் விடுவிக்க நடக்கிறது.
முக்கியமாக, உங்கள் திட்டம் இனி ஒரு நினைவக கசிவு இல்லை.
>> இப்போது நீங்கள் என்ன செய்ய முடியும் வேறு ஏதாவது நீங்கள் இருமுறை கேட்டு சில நினைவக விடுவித்து உள்ளது.
இந்த வழக்கில், நீங்கள் malloc ஒன்று, நீங்கள் அதன் மதிப்பை மாற்ற.
நீங்கள் அதை செய்ய தெரிவித்தார் முறை ஏனெனில் நீங்கள் அதை விடுவிக்க.
ஆனால் நாம் மீண்டும் விடுதலை.
இந்த மோசமாக என்று ஒன்று இருக்கிறது.
இது, ஆரம்பத்தில் segfault போவதில்லை
ஆனால் ஒரு பின்னர் இந்த இரட்டை இந்த பிழைபடுத்திவிடும் உங்கள் குவியல் அமைப்பு பெறலாம் என்பது என்ன போது,
நீங்கள் CS61 போன்ற ஒரு வர்க்கம் எடுத்து தேர்வு செய்தால், நீங்கள் இதை பற்றி சிறிது மேலும் அறியலாம்.
ஆனால் அடிப்படையில் ஒரு பின்னர் உங்கள் கணினியில் குழப்பி போகிறது போது
- எங்கே, எங்கே சேமிக்கப்பட்டுள்ளது என்ன நினைவக இடங்கள் இருக்கின்றன பற்றி
அங்கு தரவு நினைவக சேமிக்கப்படுகிறது.
அதனால் ஒரு சுட்டிக்காட்டி பெறலாம் இரண்டு முறை நீங்கள் செய்ய வேண்டாம் என்று ஒரு கெட்ட விஷயம்.
>> தவறான செல்ல முடியும் என்று மற்ற விஷயங்களை sizeof பயன்படுத்தி வருகிறது.
எனவே, இந்த விஷயத்தில் நீங்கள், 8 பைட்டுகள் malloc
அந்த உரிமை, இரண்டு முழு அதே விஷயம்?
எனவே, அது செய்தபின் பாதுகாப்பான, ஆனால் என்ன?
நன்றாக, லூகாஸ், பல்வேறு கட்டமைப்புகளில் பற்றி பேசினார்
முழு பல்வேறு நீளம் இருக்கும்.
எனவே, நீங்கள் பயன்படுத்தும் அந்த கருவி மீது, முழு பற்றி 4 பைட்டுகள் ஆகும்
ஆனால் வேறு சில கணினியில் அவர்கள் 8 பைட்டுகள் இருக்கலாம் அல்லது அவர்கள் 16 பைட்டுகள் இருக்கலாம்.
அதனால், நான் இங்கு இந்த எண்ணை பயன்படுத்தி,
இந்த திட்டம், பயன்பாட்டிற்கான வேலை செய்யலாம்
ஆனால் அது வேறு கணினியில் போதுமான நினைவகம் ஒதுக்க போகவில்லை.
இந்த வழக்கில், இந்த sizeof ஆபரேட்டர் பயன்படுத்தப்படுகிறது உள்ளது.
என்ன செய்கிறது என்று நாம் அழைப்பு sizeof (int),
அது நம்மை இயங்குவதாக கணினியில் ஒரு முழு அளவு கொடுக்கிறது.
எனவே, இந்த விஷயத்தில், sizeof (int), பயன்பாடு போன்ற ஏதாவது 4 வரும்
இப்போது 8 இது இந்த உயில் 4 * 2,,
இதில் இரண்டு முழு தேவையான இடத்தை அளவு.
வேறு கணினியில், ஒரு முழு எண்ணாக 16 பைட்டுகள் அல்லது 8 பைட்டுகள் போல் இருந்தால்,
அது அந்த அளவு சேமிக்க போதுமான பைட்டுகள் திரும்ப நடக்கிறது.
>> இறுதியாக, structs.
எனவே, நீங்கள் நினைவகத்தை ஒரு சுடோகுவை குழு சேமிக்க வேண்டும் என்றால், நாங்கள் எப்படி இதை செய்ய முடியும்?
நீங்கள், முதல் விஷயம் ஒரு மாறி போன்ற நினைக்கலாம்
இரண்டாவது விஷயம் ஒரு மாறி, மூன்றாவது விஷயம், ஒரு மாறி,
கெட்ட, வலது - நான்காவது ஒன்று ஒரு மாறி?
எனவே, இந்த மேல் செய்ய முடியும் ஒரு முன்னேற்றம் 9 x 9 வரிசை செய்ய உள்ளது.
அது சரி, ஆனால் நீங்கள் சுடோகுவை குழு மற்ற விஷயங்களை சேர்க்க வேண்டும் என்றால்,
, குழு கஷ்டம் என்ன பிடிக்கும்
அல்லது, எடுத்துக்காட்டாக, என்ன உங்கள் ஸ்கோர் ஆகும், அல்லது எவ்வளவு நேரம் இந்த பலகையை எடுத்து உள்ளது?
சரி, நீங்கள் என்ன செய்ய முடியும் நீங்கள் ஒரு struct உருவாக்க முடியும்.
என்ன நான் அடிப்படையில் சொல்கிறேன், நான் இங்கு இந்த அமைப்பு வரையறை தான் இருக்கிறது
நான் x 9 9 என்று ஒரு குழு அமைக்கப்பட்டுள்ளது ஒரு சுடோகுவை குழு வரையறுக்கும்.
>> அதை நிலை பெயர் சுட்டிகளையும் கொண்டுள்ளது என்ன.
இது நான் இப்போது நான் அங்கு கூறுகள் உள்ளன x மற்றும் y உள்ளது.
இது நேரம் [புரிந்து] கழித்தார், அது நான் இதுவரை உள்ளிட்ட நான் நகர்வுகள் எண்ணிக்கை உள்ளது.
எனவே இந்த விஷயத்தில், நான் ஒரு கட்டமைப்பாக தரவு மொத்தமாக குழு முடியாது
அதற்கு பதிலாக வேறு மாறிகள் போல் சுற்றி பறக்கும் போன்ற தொடங்குவதன்
நான் டிராக் வைத்திருக்க முடியாது என்று.
இந்த இந்த struct உள்ளே வேறு விஷயங்களை குறிக்கும் வகை தான் நல்ல தொடரியல் வேண்டும் உதவுகிறது.
நான் board.board செய்ய மட்டுமே முடியும், மற்றும் நான் திரும்பி சுடோகுவை குழு கிடைக்கும்.
Board.level, நான் அதை எப்படி கடுமையான கிடைக்கும்.
Board.x மற்றும் board.y என்னை நான் பலகை இருக்கலாம் எங்கு ஆய கொடுக்க.
அதனால் நான் struct உள்ள துறைகளில் அழைக்க என்ன அணுகும்.
இந்த நான் ஒரு வகை இது sudokuBoard, வரையறுக்கிறது.
இப்போது நாம் இங்கு இருக்கிறோம். நான் வகை sudokuBoard ஒரு "குழு" எனப்படும் ஒரு மாறுபடும் வேண்டும்.
அதனால் இப்போது நான் இங்கு இந்த கட்டமைப்பை உருவாக்க அனைத்து துறைகளிலும் அணுக முடியும்.
>> Structs பற்றி எந்த கேள்விகள்? ஆமாம்?
Int x, y முடிவு [மாணவர்], நீங்கள் ஒரு வரியில் இரண்டு அறிவித்தார்? >> [ஜோசப்] பத்திதான் ம்ம்.
[மாணவர்] எனவே, நீங்கள் அவர்களை அனைத்து அதை செய்ய முடியும்?
X போலவே, y மேற்கோள் முறை என்று மொத்த?
[ஜோசப்] ஆமாம், நீங்கள் நிச்சயமாக நான் ஒரே வரியில் x மற்றும் y வைத்து காரணம் என்று, ஆனால் முடியவில்லை -
நாங்கள் ஒரே வரிசையில் இதை ஏன் கேள்வி?
நாம் ஏன் தான் ஒரே வரியில் இந்த அனைத்து போடாதே
x மற்றும் y ஒன்றுக்கொன்று தொடர்புடையவை,
இந்த, ஒரு பொருளில், ஒரு stylistically இன்னும் சரியாக
அதே வரிசையில் இரண்டு விஷயங்கள் குழுக்கள், ஏனெனில்
என்று போன்ற வகையான அதையே தொடர்பானவை.
மற்றும் நான் தவிர இந்த பிரிந்தது. இது ஒரு பாணி தான்.
அது செயல்படவில்லை எந்த வித்தியாசமும் தெரியவில்லை.
Structs வேறு எந்த கேள்விகள்?
நீங்கள் ஒரு struct ஒரு Pokédex வரையறுக்க முடியாது.
ஒரு போகிமொன் ஒரு எண் மற்றும் ஒரு கடிதத்தில், ஒரு உரிமையாளர், ஒரு வகை உண்டு.
நீங்கள் போகிமொன் ஒரு வரிசை இருந்தால், பின்னர், நீங்கள் சொல்வது சரி, ஒரு Pokédex வரை செய்ய முடியும்?
சரி, குளிர்ந்த. எனவே, structs கேள்விகள். அந்த structs தொடர்பான இருக்கும்.
>> இறுதியாக, GDB. GDB நீங்கள் என்ன செய்யலாம்? அதை நீங்கள் உங்கள் நிரல் debug உதவுகிறது.
நீங்கள் GDB பயன்படுத்தவில்லை எனில், மற்றும், நான் குறுகிய பார்த்து பரிந்துரை
மற்றும் GDB என்பது என்ன நடக்கிறது, எப்படி, நீங்கள் அதை பயன்படுத்த வேண்டும் என்பதை, அதை வேலை
மற்றும் ஒரு திட்டத்தை அது சோதிக்க.
அதனால் GDB நீங்கள் செய்ய முடியும் என்ன இது இடைநிறுத்தம் [புரிந்து] உங்கள் திட்டம் உதவும் என்று
மற்றும் ஒரு நடைமுறை வரி.
உதாரணமாக, நான், என் திட்டத்தின் வரி 3 போல் உள்ள இடைநிறுத்தம் மரணதண்டனை வேண்டும்
நான் வரி 3 இருக்கிறேன் போது நான் உள்ளன என்று அனைத்து மதிப்புகள் அவுட் அச்சிட முடியாது.
ஒரு வரியில் pausing போன்ற மற்றும் நாம் என்போம்
நாம் இந்த வரியை ஒரு இடைவேளைநேரத்தை வைத்து அழைப்பு
பின்னர் நாம் அந்த நேரத்தில் திட்டத்தை மாநில அளவில் மாறிகள் அவுட் அச்சிட முடியாது.
>> நாம் இருந்து நிரல் வரி மூலம் வரி மூலம் கிடைக்கும் படி.
மற்றும் நாம் நேரத்தில் ஸ்டாக் மாநில பார்க்க முடியும்.
அதனால் GDB, நாம் என்ன நாம் சி கோப்பில் கணகண வென்ற சப்தம் அழைப்பு இல்லை, பயன்படுத்த
ஆனால் நாம் அதை ggdb கொடி அனுப்ப வேண்டும்.
ஒருமுறை நாங்கள் வெறும் வெளியீடு கோப்பில் gdb ஐ இயக்க என்று முடித்துவிட்டீர்கள்.
அதனால் நீங்கள், இந்த உரை சில போன்ற வெகுஜன கிடைக்கும்
ஆனால் நீங்கள் செய்ய வேண்டியது உண்மையில் அனைத்து ஆரம்பத்தில் கட்டளைகளை தட்டச்சு.
உடைத்து முக்கிய பிரதான ஒரு இடைவேளைநேரத்தை வைக்கிறது.
பட்டியலில் 400 வரி 400 சுற்றி குறியீடு வரிகளை பட்டியலிடுகிறது.
எனவே இந்த விஷயத்தில் நீங்கள் தான், ஓ, சுற்றி பார்த்து சொல்ல முடியும்
நான் இந்த வரி என்பது வரி 397 ஒரு இடைவேளைநேரத்தை, அமைக்க வேண்டும்
பின்னர் உங்கள் திட்டம் என்று நடவடிக்கை மூலம் இயங்கும் மற்றும் அதை உடைக்க நடக்கிறது.
அங்கு இடைநிறுத்தப்பட்டு நடக்கிறது, நீங்கள், எடுத்துக்காட்டாக, குறைந்த அல்லது உயர்ந்த மதிப்பு அவுட் அச்சிட முடியாது.
அதனால் நீங்கள் தெரிந்து கொள்ள வேண்டும் கட்டளைகளை ஒரு கொத்து உள்ளன
இந்த காட்சியை, வலைத்தளத்தில் வரை போயும்
நீங்கள் இந்த குறிக்க வேண்டும் அல்லது உங்கள் ஏமாற்று தாள்கள் மீது வைக்கவும் போல் நீங்கள், எனக்கு.
>> Cool. என்று வினா விமர்சனம் 0 இருந்தது, நீங்கள் ஏதாவது கேள்விகள் இருந்தால், நாங்கள் சுற்றி உறுதியாக சொல்கிறேன்.
எல்லாம் சரி.
>> [கரவொலி]
>> [CS50.TV]