[இசை] ZAMYLA சான்: நீங்கள் பதிலாக பெறும் $ 10 மில்லியன் இப்போது பெறவோ சில்லறைகள் மாதம் ஒவ்வொரு நாளும், அங்கு ஒவ்வொரு அடுத்தடுத்த நாள், நீங்கள் பெற நீங்கள் சில்லறைகள் அளவு இரட்டை முன் நாள் பெற்றார்? சில்லறைகள், நாம் போகிறோம் நிரூபிக்க ஏன் வேண்டும் நிச்சயமாக சில்லறைகள் எடுக்க. - Pennies.c-உங்கள் வேலை எழுத உள்ளது முதல் எவ்வாறு பயனர் கேட்கும் என்று ஒரு திட்டம் அங்கு பல நாட்கள் மாதம் மற்றும் பின்னர் பயனர் எத்தனை சில்லறைகள் கேட்கிறது முதல் நாள் பெறும். நிரல் பின்னர் கணக்கிட வேண்டும் பயனர் வேண்டும் என்று அளவு முடிவில் திரட்டப்பட்ட மாத மற்றும் அதை காட்ட. நாம் இந்த திட்டத்தை முறியடிக்க முடியும் பணிகளை ஒரு ஜோடி சேர்த்து. நாங்கள் கேட்கும் வேண்டும் பல பயனர் உள்ளீடுகள் - நாட்கள் மாதங்கள், மற்றும் சில்லறைகள் முதல் நாள். நாம் கண்காணிக்க வேண்டும், எவ்வளவு பணம் பயனர் ஒவ்வொரு மற்றும் புதுப்பிக்க நாள், அளவு இரட்டிப்பாக்க அவர்கள் பெறும் என்று சில்லறைகள். இறுதியாக, நாம் அச்சிட அவர்கள் டாலர்கள் இறுதி மொத்த. முதல் தடுப்பாட்டம் பயனர் உள்ளீடு செய்யலாம். நான், apples.c திறந்து போகிறேன் கையாள்கிறது என்று குறுகிய திட்டம் உள்ளீடுகள் மற்றும் வெளியீடுகளை கொண்டு. இங்கே மேலே, நான் சில சேர்க்கப்பட்டுள்ளது - நான் வேண்டும் என்று நூலகங்கள் CS50 நூலகத்தில் ஒரு நிலையான நான் / ஓ நூலகம். நான் பயன்படுத்தி ஒரு வரியில் அச்சிட இருந்து printf செயல்பாடு ஸ்டாண்டர்ட் I / O நூலகம். ஆனால் பயனர் கேட்கும் உண்மையான இந்த அடுத்த வரியில் நடக்கிறது CS50 நூலகத்தில் GetInt செயல்பாடு. GetInt பயனர் உள்ளீடு மற்றும் பெறுகிறது உள்ளீடு ஒரு முழு என்பதை உறுதி செய்கிறது. நான் முழு எண்ணாக கொண்டு பயனரின் உள்ளீடு சேமிக்க நான் இருந்து 1 கழித்தால், பின்னர் நான் புதிய மதிப்பு அவுட் அச்சிட. பயன்படுத்தி apples.c ஒடுக்குவதற்கான பின்னர் கட்டளை "ஆப்பிள்கள் செய்ய," நான் ஒரு வேண்டும் இயங்கக்கூடிய கோப்பு ஆப்பிள்கள். நான் உள்ளீடு 1, என்று இயங்கும். நிரல் என்னை சொல்கிறது என்று நான் விட்டு 0 ஆப்பிள்கள் வேண்டும். அதனால் எதிர்பார்த்தபடி வேலை என்று. எனவே மீண்டும் இயங்க அனுமதிக்க எதிர்மறை மற்றும் உள்ளீட்டு 1. இப்போது, ஆப்பிள்கள் ஒரு எதிர்மறை அளவு கொண்ட உண்மையில் பொருள், ஆனால் இல்லை எதிர்மறை ஏனெனில் திட்டம், அதை ஏற்றுக்கொள்கிறார் 1, நன்றாக, அது ஒரு முழு எண் ஆகும். இப்போது நிரல் அல்லது அசுரனை நிரல் ஒரு எதிர்மறை சாப்பிடுகிறது உள்ளே ஆப்பிள், மற்றும் இப்போது நான் எதிர்மறை 2 ஆப்பிள்கள். HM, அதனால் ஒரு படிப்பினை இருக்கிறது - கூட GetInt செயல்பாடு மற்றும் தொடர்புடைய GetFlow போன்ற செயல்பாடுகளை, அல்லது இங்கு சரியான தரவு வகை GetString, நீங்கள் உள்ளீடு செய்கிறது என்பதை உறுதி செய்ய வேண்டும் உங்கள் திட்டத்தை உணர்வு. சில்லறைகள், அது ஒரு வரியில் செய்ய மாட்டேன் ஒரு முழு எண், நீங்கள் செய்ய வேண்டும் நிச்சயமாக பயனர் உள்ளீடுகள் முழு எண்ணாக என்று அந்த சூழலில் கொடுக்கப்பட்ட உணர்வு செய்கிறது. மாதம் மட்டும், 28 முடியும் 29, 30, அல்லது 31 நாட்கள். நாங்கள் தொடர்ந்து கோரி வேண்டும் சரியான முழு எண். அவர்கள் உள்ளீடு நம் ஒரு முழு எண் வெளியே என்றால் ஏற்றுக்கொள்ளப்பட்ட எல்லைக்கு, நாம் கேட்கும் வேண்டும் மீண்டும் மீண்டும், வரை எங்களுக்கு சரியான முழு எண் கொடுக்க. "வரை மீண்டும்" நினைவு கீறல் ல் தடை? நீங்கள் ஒரு ஒத்த கட்டமைப்பு செய்ய முடியும் சி ஒரு "போது" லூப் பயன்படுத்தி அல்லது "செய்ய, அதே நேரத்தில்" லூப். அதே நேரத்தில் வளைய அமைப்பை ஒரு நிலையில் உள்ளது சந்தித்தனர் என்று இயக்க வளைய உடல். இந்த ஒரு சிறிய ஒத்த இருக்க வேண்டும் நிலைமையை போலவே, ஏனெனில் கோணங்கள் கொண்ட கீறல் தொகுதிகள் மற்றும் அடைப்புக்குறிக்குள் செல்கிறது "அதே நேரத்தில்" ஓட்டையை. அதனால் நிலை என்பதை பார்க்கும் முழு எண் ஆகும் அதற்கான எல்லைக்கு. நீங்கள் முழு பயன்படுத்தி GetInt கேட்கும் பின்னர் உங்கள் "போது" இயக்க லூப், மீண்டும் வரியில் மற்றும் அச்சிடும் அறிவுறுத்தல்கள், அதே உள்ளீடு தவறானது. சரியான பயனர் உள்ளீடு உறுதி மற்றொரு வழி , ஒரு "செய்ய, அதே நேரத்தில்" லூப் பயன்படுத்தி உள்ளது இது ஒரு நிலையில் சுழற்சி மிகவும் ஒத்ததாக இருக்கிறது. "என்ன, அதே நேரத்தில்" லூப் குறியீடு முடிக்கிறது உடல் தான் பின்னர் காசோலைகள் உள்ளே நிபந்தனை இல்லையா. இந்த, பயனர் உள்ளீடு பெற பயனுள்ளதாக இருக்கும் நீங்கள் தேவை என்று காரணம் குறைந்தபட்சம் ஒரு முறை நிரல். நிபந்தனை என்றால், திட்டம் பின்னர் வரி இயக்கவும் உங்கள் "செய்ய, அதே நேரத்தில்" லூப். இந்த நிலையில் தான் சந்தித்த போது, கண்ணி மீண்டும் பயனர் உறுதிப்படுத்திய ஒரு "செய்ய, அதே நேரத்தில்" லூப் உள்ளீடு இது போல் ஏதாவது இருக்கும். நான் ஒரு மாறி N, GetInt அறிவிக்க, மற்றும் N செல்லுபடியாகும் வரை மீண்டும். இந்த செயல்முறை, நான் விளக்கினார் பயன்படுத்தி முழு எண், தரவு வகை, இது நீங்கள் மாதம் நாட்களுக்கு பயன்படுத்த வேண்டும். ஆனால் நாம் என்று சில்லறைகள் எண்ணிக்கை பொருட்டு எனவே, விரைவில் பைல் அப் பெரிய எண்களை சேமிக்க, தரவு வகை பயன்படுத்த LongLong, ஆனால் அதே நினைவில் சரிபார்த்தல் கொள்கை பொருந்தும். வாழ்த்துக்கள், அதனால் நாம் இரண்டு கச்சிதமாக வேண்டும் பயனர் இருந்து உள்ளீடுகள் - மாதம் நாட்கள் மற்றும் சில்லறைகள் முதல் நாள் - நாம் அடுத்த மீது நகர்த்த முடியும் திட்டத்தின் ஒரு பகுதியாக. முதல் நாள், பயனர் தொடங்குகிறது அவர்கள் குறிப்பிட்ட எனினும் பல சில்லறைகள் மற்றும் சில்லறைகள் அளவு என்று அவர்கள் அடுத்த நாள் பெறும் இரண்டு மடங்காக உள்ளது. அதை கண்காணிப்பதற்கு அர்த்தமுள்ளதாக இந்த இரண்டு அளவு - பயனர் மற்றும் எப்படி எவ்வளவு பணம் பல சில்லறைகள் அவர்கள் கொடுக்கப்பட்ட. இப்போது, 28 முதல் 31 நாட்கள் ஏதாவது செய்து மீண்டும் மீண்டும், எனவே ஒரு "க்கு" பயன்படுத்த அனுமதிக்க இந்த நாட்களில் செயல்படுத்துதல் லூப் மாதம், மொத்த மற்றும் பென்னி மேம்படுத்தும் ஒவ்வொரு முறையும் தொகை. கண்ணி தொடரியல் கொண்டிருக்கிறது "என்று" பின்வரும் - ஒரு துவக்க, ஒரு நிலையில், ஒரு மேம்படுத்தல். உங்கள் "க்கு" லூப் துவக்கும் ஒரு மாறி, அது முதல் சுழற்சியில் நுழையும். நிபந்தனை என்றால், உடல் ஓட்டையை இயக்கவும். பின்னர், மேம்படுத்தல் இயக்கவும். நிலைமை இன்னும் சந்தித்தார் என்றால், கண்ணி இயக்கும் மற்றும் மேம்படுத்த, மற்றும் நீண்ட உங்கள் நிபந்தனையை, மீண்டும் உண்மை மதிப்பீடு. இங்கே ஒரு பிரிக்கிறது என்று ஒரு "க்கு" லூப் தான் 2 10 முறை ஒரு மொத்த மூலம் முழு ப. நான் முழு ப அறிவித்தார் எப்படி குறிப்பு என் "க்கு" லூப் வெளியே, அதனால் முழு அணுக முடியும் "க்கான" லூப் வெளியே. மாதம் முடிந்ததும், அதை நேரம் பயனர் சொல்ல எவ்வளவு பணம் அவர்கள் வந்திருக்கிறேன். ஸ்பெக் ஒன்றுக்கு, நீங்கள் பயனர் சொல்ல வேண்டும் எத்தனை டாலர்கள், இல்லை எவ்வளவு சில்லறைகள், அவர்கள். ஆனால் இதுவரை, நீங்கள் டிராக் வைத்திருக்கிறேன் மொத்த மற்றும் LongLongs பயன்படுத்தி சில்லறைகள், முழு எண்கள் இவை. $ 1 ஒரு 100 சில்லறைகள் எனவே, அங்கு ஒழிய சில்லறைகள் எண்ணிக்கை ஒரு 100 பல, நீங்கள் வேண்டும் தசம இடங்களில் குறிக்கின்றன. இரட்டிப்பு தன்னியக்கவகை அனுமதிக்கிறது நீங்கள் இதை செய்ய. நாம் எப்படி குறிக்கும் இருந்து மாற்ற டாலர்கள் வரை சில்லறைகள்? ஒரு பார்க்கலாம் pi.c. இந்த திட்டத்தின் ஒரு LongLong big_pi மற்றும் எடுக்கிறது 100,000 அது பிரிக்கிறது, மற்றும் அச்சிடுகிறது ஐந்து தசம இடங்களுக்கு முடிவு. நாங்கள் நான்கு தசம காட்ட விரும்பினால் இடங்கள், நாம் இந்த மாற்ற முடியும் இங்கே பல. எனவே, சேமிக்க பை தொகுத்தல், மற்றும் நாம் பின்னர், இதன் விளைவாக பார்க்க நாம் 3,1415 என எதிர்பார்க்கலாம் - பை முதல் ஐந்து இலக்கங்கள். அது கூட இல்லை. ஏன்? நன்றாக, big_pi, ஒரு LongLong ஏனெனில் ஒரு முழு எண், இது இது இல்லை தசமங்கள் கண்காணியுங்கள். நான் வேண்டும் மாற்றம் செய்ய பிரிவு உள்ளது. நான் முன் இங்கே ஒரு இரட்டை நடித்தார் வேண்டும் இரட்டையர் வைத்திருக்க முடியாது என்பதால், பிளவு தசம இடங்களில் கண்காணிக்க. நான் ஒரு புதிய வரியை சேர்க்க போகிறேன் இங்கு சிறந்த வடிவமைப்புக்காக. இங்கு நமக்கு அது - 3.1416. நீங்கள் அதை 3.1416 அச்சிடுகிறது என்று கவனிக்க கூடும் அதற்கு பதிலாக 3,1415 வரை எதிர்பார்க்கப்படுகிறது. போது அது சுற்று என்று பிரிவு செயல்முறை, என வெறும் எதிர்ப்பு மதிப்பு துண்டிக்கப்படுகிறது. இப்போது நீங்கள் அச்சிட வேண்டும் முடித்தவுடன் இது சரியாக இறுதி மொத்த, நிரல். வாழ்த்துக்கள். என் பெயர் Zamyla உள்ளது. இந்த சில்லறைகள் இருந்தது. [இசை]