[இசை] டேவிட் ஜே MALAN: சரி. இந்த CS50 மற்றும் இந்த வாரம் 2 தொடக்கத்தில் உள்ளது. நீங்கள் அந்த மீது நினைவு கொள்கிறேன் வாரங்கள் கடந்த இரண்டு, நாம் கணினி அறிமுகம் வருகிறோம் அறிவியல் மற்றும் இதையொட்டி, நிரலாக்க. நாம் மூலம் கதை தொடங்கியது கீறல், என்று வரைகலை மொழி எம்ஐடி ஊடக ஆய்வகம் இருந்து. பின்னர் மிக சமீபத்தில், கடந்த வாரம், நாம் செய்தது ஒரு higher-- ஒரு அறிமுகம் குறைந்த அளவிலான மொழி அறியப்படுகிறது சி, முற்றிலும் உரை என்று ஒன்று என. உண்மையில், கடந்த முறை நாம் அந்த சூழலில் ஆராயப்படுகிறது கருத்துக்கள் பல. இந்த, திரும்ப, மிகவும் இருந்தது முதல் திட்டம் நாம் பார்த்து. இந்த திட்டம், மிகவும் எளிமையாக, , அவுட் அச்சிடுகிறது "ஹலோ, உலக." ஆனால் இவ்வளவு இருக்கிறது தோன்றுகிற மாய நடக்கிறது. இப்படி # அடங்கும் இல்லை இந்த கோண அடைப்புகள் கொண்டு. முழு எண்ணாக இருக்கிறது. (வெற்றிடத்தை) இருக்கிறது. அடைப்புக்குறிக்குள், சுருள் ப்ரேஸ் இருக்கிறது, அரை குடியை, மற்றும் மிகவும். எனவே, அந்த நினைவு நாம் கீறல் அறிமுகப்படுத்தப்பட்டது இதை நாம், வெறுமனே, கடந்த பார்க்க முடியும் அந்த இலக்கணத்தை, உண்மையில் இல்லை என்று பொருள் அனைத்து அறிவார்ந்த சுவாரஸ்யமான ஆனால் தொடக்கத்தில் முற்றிலும், ஒரு பிட் தந்திரமான உள்ளது உங்கள் மனதில் சுற்றி. உண்மையில், மிகவும் பொதுவான ஒன்றாகும் ஆரம்பத்தில் ஒரு நிரலாக்க வர்க்கம் விஷயங்கள், குறிப்பாக அந்த குறைவான வசதியாக, தடைபட்டன பெற உள்ளது மற்றும் சில விதி விழுந்தியானா பிழைகள், தருக்க பிழைகள் குறிப்பிட தேவையில்லை. அதனால் எங்கள் இலக்குகளை மத்தியில் இன்று, உண்மையில், சாப்பிடுவேன் சில நீங்கள் சித்தப்படுத்து வேண்டும் எப்படி சிக்கல் தீர்க்கும் தொழில்நுட்பங்கள் சிறந்த பிரச்சினைகள் தங்களை தீர்க்க பிழைதிருத்தம் வடிவில். நீயும், நினைவு கொள்கிறேன், என்று நாங்கள் அறிமுகப்படுத்தப்பட்டது என்று சூழல் கடைசி நேரத்தில் CS50 உள்ள IDE என்று அழைக்கப்பட்டது. இந்த வலை அடிப்படையிலான மென்பொருள் ஆகும் என்று நீங்கள் மேகம் நிரல் அனுமதிக்கிறது, அனைத்து அதேசமயத்தில், அதனால் பேச உங்கள் நாம் இன்று மீண்டும் சாப்பிடுவேன், ஒன்றாக கோப்புகளை. என்று நாம் நினைவு இங்கே இந்த தலைப்புகள் பரிசீலிக்கப்படாது, அவர்கள் மத்தியில் செயல்பாடுகளை, மற்றும் சுழல்கள், மற்றும் மாறிகள், மற்றும் பூலியன் வெளிப்பாடுகள், மற்றும் நிபந்தனைகள். உண்மையில் ஒரு சில நாங்கள் என்று கீறல் உலக இருந்து மொழிபெயர்க்க சி உலக ஆனால், அடிப்படை கட்டிடம் தொகுதிகள், அதனால் பேச, உண்மையில் இன்னும் அதே கடந்த வாரம் இருந்தன. உண்மையில், நாம் உண்மையில் வெறும் இருந்தது ஒரு வெவ்வேறு புதிர் துண்டு, நீங்கள் கூட. அதற்கு பதிலாக அந்த ஊதா நாம் அதற்கு பதிலாக, தொகுதி காப்பாற்ற இது, printf என்று சி இந்த செயல்பாடு என்று நீங்கள் ஏதாவது அச்சிட அனுமதிக்கிறது திரையில் அதை வடிவமைக்க. நாம் CS50 அறிமுகப்படுத்தப்பட்டது நூலகம், நீங்கள் எங்கே உங்கள் வசம் get_char இப்போது வேண்டும், மற்றும் get_int, மற்றும் get_string, மற்றும் ஒரு சில பிற செயல்பாடுகளை நன்றாக, எந்த வழியாக நீங்கள் உள்ளீடு பெற முடியும் பயனர் சொந்த விசைப்பலகை இருந்து. மற்றும் நாங்கள் விஷயங்களை பார்த்துக்கொண்டோம் these- bool, மற்றும் கரி போன்ற, மற்றும் இரட்டை, மிதவை, எண்ணாக, long_long சரம். மற்றும் சி கூட மற்ற தரவு வகைகளை இருக்கிறது வேறு வார்த்தைகளில் கூறுவதானால், நீங்கள் அறிவிக்கும் போது ஒரு மாறி சில மதிப்பு சேமிக்க, அல்லது நீங்கள் ஒரு செயல்பாடு அமல்படுத்த போது என்று சில மதிப்பு கொடுக்கிறது, நீங்கள் என்ன குறிப்பிட முடியும் என்று மதிப்பு வகை. ஒரு போன்ற, அது ஒரு சரம் எழுத்துக்கள் வரிசை? ஒரு முழு எண் போன்ற, அது ஒரு எண்? அது ஒரு மிதவை புள்ளி ஆகும் மதிப்பு, அல்லது போன்ற? எனவே சி, கீறல் போல, நாம் உண்மையில் தரவு என்ன மாதிரியான குறிப்பிட தொடங்கியது நாம் திரும்பி அல்லது பயன்படுத்தி. ஆனால், நிச்சயமாக, நாங்கள் கடக்கும் கம்ப்யூட்டிங் சில அடிப்படை வரம்புகளை. குறிப்பாக, இந்த மொழி சி, திரும்ப நாங்கள் பார்த்துக்கொண்டோம் என்று முழு வழிதல், உண்மையில் நீங்கள் மட்டும் ஒரு இருந்தால் அந்த நினைவகம் வரையறுக்கப்பட்ட அளவு அல்லது, குறிப்பாக, ஒரு வரையறுக்கப்பட்ட எண் பிட்கள், நீங்கள் மட்டும் மிகவும் உயர் நம்பலாம். எனவே நாம் இங்கு இந்த உதாரணம் பார்த்து அதன்படி ஒரு விமானம் ஒரு எதிர்,, உண்மையில், என்று நீண்ட போதுமான இயங்கும் என்றால் வழிதல் மற்றும் ஒரு மென்பொருள் ஏற்படுத்தும் ஒரு உண்மையான உடல் திறன் பிழை. நாங்கள் மிதக்கும் பார்த்து புள்ளி imprecision, உண்மையில் என்று ஒரு குறிப்பிட்ட எண்ணிக்கை கொண்ட பிட்கள், அது 32 அல்லது 64 தான் என்பதை, நீங்கள் மட்டும் பல எண்கள் குறிப்பிட முடியும் ஒரு தசம புள்ளி, பிறகு, அதன் பிறகு நீங்கள் துல்லியமாக பெற தொடங்கும். எனவே உதாரணமாக, மூன்றில் ஒரு பங்கு உள்ள இங்கே உலக, எங்கள் மனித உலகில், நாம் தான் ஒரு முடிவிலா எண் தெரியும்.அவர்கள் தசம புள்ளி பின்னர் -3 என்ற. ஆனால் ஒரு கணினி அவசியம் முடியாது எண்கள் ஒரு முடிவிலா பிரதிநிதித்துவம் நீங்கள் மட்டும் அனுமதிக்க என்றால் அது சில தகவல் வரையறுக்கப்பட்ட அளவு. எனவே மட்டுமே நாங்கள் உங்களுக்கு ஆயத்தப்படுத்தினார்? அடிப்படையிலும் பெரிய சக்தி நீங்கள் உங்களை வெளிப்படுத்தக்கூடிய எப்படி நிரலாக்க வகையில் ஒரு விசைப்பலகை, நாங்கள் கட்டுப்படுத்தப்பட்ட நீங்கள் உண்மையில் என்ன செய்ய முடியும். மேலும், நிச்சயமாக, பிழைகள் மற்றும் தவறுகள் முடியும் பிரச்சினைகளை அந்த வகையான இருந்து எழுகின்றன. மேலும், நிச்சயமாக விடயங்களுடன் இன்று பிழைதிருத்தம் போன்ற தலைப்புகள் இருக்க போகிறோம் மற்றும் உண்மையில், தொப்பி கீழே தேடும் விஷயங்களை அறிமுகப்படுத்தப்பட்டன எப்படி கடந்த வாரம் உண்மையிலேயே செயற்படுத்தப்பட்டால் நீங்கள் நன்றாக என்று புரிந்து இருவரும் திறன்கள் மற்றும் சி போன்ற ஒரு மொழி வரம்புகள் உண்மையில், நாம் தலாம் அடுக்குகளை வேண்டும் தரவு கட்டமைப்பு எளிய, ஏதாவது ஒரு வரிசையை கொண்டுள்ளது, இது கீறல் ஒரு அழைக்க நடக்கும் "பட்டியலில்." அது கொஞ்சம் தான் என்று சூழலில் வெவ்வேறு. பின்னர் நாங்கள் ஒன்றை அறிமுகப்படுத்த வேண்டும் எங்கள் களத்தை குறிப்பிட்ட பிரச்சினைகள் முதல் CS50 உள்ள, உலக குறியாக்கவியல், நெரிசலில் கலை அல்லது அவ்வாறு தகவல் மறைகுறியீட்டுத் நீங்கள் இரகசிய செய்திகளை அனுப்ப முடியும் என்று மற்றும் இரகசிய செய்திகளை பிரித்தறியும் இரண்டு நபர்கள், ஏ மற்றும் பி இடையே எனவே நாம் மாற்றம் முன் என்று புதிய உலகம், சில நீங்கள் சித்தப்படுத்து முயற்சி செய்வோம் நுட்பங்கள் உங்களுக்கு குறைக்க முடியும் அல்லது குறைந்தபட்சம் சில குறைக்க ஏமாற்றத்தை ஒருவேளை நீங்கள் சந்தித்துள்ளோம் என்று கடந்த வாரத்தில் மட்டும் மீது. உண்மையில், மேலே நீங்கள் சில such-- உள்ளன சி மற்றும் முரண்பாடுகள் உங்கள் முதல் பிரச்சனைகள் நீங்கள் என்னை போன்ற என்றால், முதல் முறையாக நீங்கள் ஒரு திட்டத்தை வெளியே தட்டச்சு செய்ய முயற்சி, நீங்கள் தர்க்கரீதியாக என்று கூட திட்டம், அழகான எளிது நீங்கள் நன்றாக ஒரு சுவர் ஹிட், மற்றும் வேண்டும் ஒடுக்கி ஒத்துழைக்க போவதில்லை. செய்ய அல்லது கணகண வென்ற சப்தம் போவதில்லை உண்மையில் உங்கள் ஏல செய்ய. ஏன் என்று இருக்கும்? சரி, ஒரு மணிக்கு ஒரு முறை பார்ப்போம் ஒருவேளை, ஒரு எளிய நிரல். நான் போய் இந்த காப்பாற்ற போகிறேன் ஒரு கோப்பு வேண்டுமென்றே buggy0.c என்று, நான் அதை தெரியும், ஏனெனில் முன்கூட்டியே பிழைபட்டதாய். ஆனால் நான் அந்த என்றால் இந்த உணராமல் முதல் அல்லது இரண்டாவது அல்லது மூன்றாவது திட்டம் உள்ளது என்று நான் உண்மையில் நானே உருவாக்குகிறேன். எனவே நான் போக போகிறேன் மற்றும் , தட்டச்சு int முக்கிய (வெற்றிடத்தை). பின்னர் என் சுருள் ப்ரேஸ் உள்ளே, ஒரு மிகவும் பழக்கமான ( "ஹலோ, world-- பின்சாய்வுக்கோடானது, N ") - மற்றும் ஒரு அரை பெருங்குடல். நான் கோப்பு காப்பாற்றி விட்டேன். இப்போது நான், கீழே செல்ல போகிறேன் என் முனைய சாளரத்தில் மற்றும் வகை செய்ய buggy0, ஏனெனில், மீண்டும், இன்று கோப்பின் பெயர் buggy0.c உள்ளது. எனவே நான், buggy0 செய்ய உள்ளிடவும் தட்டச்சு. மேலும், ஓ, ஒ, கடந்த முறை நினைவு எந்த பிழை செய்திகளை என்று ஒரு நல்ல விஷயம். எனவே எந்த வெளியீடு ஒரு நல்ல விஷயம். ஆனால் இங்கே நான் தெளிவாக வேண்டும் தவறுகள் சில பல. வெளியீடு முதல் வரி எனவே buggy0 செய்ய தட்டச்சு பிறகு, திரும்ப, கணகண வென்ற சப்தம் மிகவும் விரிவான வெளியீட்டில் உள்ளது. பேட்டை அடியில், , CS50 உள்ள IDE கட்டமைக்கப்படும் ஒரு மொத்தமாக பயன்படுத்த இந்த ஒடுக்கி கொண்டு விருப்பங்கள் எனவே நீங்கள் இல்லை என்று அவர்களை பற்றி யோசிக்க. மற்றும் அனைத்து என்று முதல் வரி தான் கணகண வென்ற சப்தம் தொடங்குகிறது என்று அர்த்தம். ஆனால், அதன் பிறகு, பிரச்சினைகள் அவர்களின் தோற்றம் செய்ய தொடங்கும். வரி 3 தன்மையை Buggy0.c 5, ஒரு பெரிய, சிவப்பு பிழை இருக்கிறது. அது என்ன? உட்குறிப்பாக நூலகம் செயல்பாடு அறிவித்தார் வகை எண்ணாக (கான்ஸ்ட் எரிப்பதை * உடன் printf, ...) [-Werror]. நான் மிக விரைவில் அது அர்த்தம், மிகவும் கமுக்கமான பெறுகிறார். நிச்சயமாக, முதல் பார்வையில், நாங்கள் இல்லை என்று நீங்கள் புரிந்து கொள்ள எதிர்பார்க்க அந்த செய்தியை முழுமையாக. அதனால் பாடங்கள் ஒன்று இன்று போகிறது கவனிக்க முயற்சி இருக்க வேண்டும் வடிவங்கள், அல்லது இது போன்ற விஷயங்கள், பிழைகள் நீங்கள் வேண்டும் கடந்த காலத்தில் எதிர்கொண்டது. எனவே மட்டுமே தவிர கிண்டல் நன்கு கவனிக்க என்று அந்த வார்த்தைகள். பெரிய, சிவப்பு பிழை தெளிவாக உள்ளது ஏதாவது அடையாள தவறு என்று. உட்குறிப்பாக அறிவித்தார் printf நூலகம் செயல்பாடு. அதனால் நான் மிகவும் புரியவில்லை கூட என்ன உட்குறிப்பாக நூலகம் செயல்பாடு அறிவித்தார் வழிமுறையாக, நிச்சயமாக பிரச்சனை எப்படியோ printf தொடர்புடையது. அந்த பிரச்சினை மூல அது பிரகடனம் செய்ய வேண்டும். ஒரு செயல்பாடு ஆகும் என்று அறிவித்தால் முதல் முறையாக அதை சொல்லி. நாம் கடந்த வாரம் சொற்கள் பயன்படுத்தப்பட்டன ஒரு விழாவில் முன்மாதிரி அறிவித்தார், ஒன்று மேல் ஒரு வரி உங்கள் சொந்த கோப்பு அல்லது ஒரு என்று அழைக்கப்படும், தலைப்பு கோப்பு. என்ன கோப்பு நாங்கள் சொன்னிரிகளா கடந்த வாரம் வைட்டமின் மேற்கோள் உள்ளது என்று, சதா, அறிவித்தார்? என்ன கோப்பில் அதன் முன்மாதிரி இருக்கிறது? என்றால் நீங்கள் நினைவு, முதல் விஷயம் நான் தட்டச்சு, ஒவ்வொரு நிரல் கடைசி நேரத்தில் தற்செயலாக ஒரு கணம் முன்பு தொடங்கியது myself-- தட்டச்சு இந்த ஒரு இங்கே இருந்தது புல அடங்கும்