1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,500 ZAMYLA சான்: இது ஒரு, எனக்கு,, Zamyla. 3 00:00:02,500 --> 00:00:06,910 மரியோ இன்று, நாம் இருக்க போகிறோம் மரியோ அரை பிரமிடு வரைதல் 4 00:00:06,910 --> 00:00:08,290 மேலே ஏற. 5 00:00:08,290 --> 00:00:11,570 >> எனவே பற்றி பேச அனுமதிக்க எங்கள் இந்த பிரச்சனை-செய்ய தான். 6 00:00:11,570 --> 00:00:13,610 நாம் வேண்டும் போகிறோம் கேட்கும் மற்றும் பரிசோதிக்கவும் 7 00:00:13,610 --> 00:00:18,290 எப்படி ஒரு செல்லுபடியாகும் உள்ளீடு பயனர் உயர் அவர்கள் மரியோ பிரமிடு வேண்டும். 8 00:00:18,290 --> 00:00:20,090 பின்னர், நாம் அதை பெற போகிறோம். 9 00:00:20,090 --> 00:00:24,870 எனவே கேட்கும் தொடங்கியது முடியட்டும் தங்கள் உள்ளீடு பயனர் உறுதிப்படுத்திய. 10 00:00:24,870 --> 00:00:27,640 >> நாம் பயன்படுத்த முடியும் CS50 நூலகம் செயல்பாடு 11 00:00:27,640 --> 00:00:31,160 உறுதி செய்யும் என எண்ணாக கிடைக்கும் பயனர் ஒரு முழு உள்ளீடுகள். 12 00:00:31,160 --> 00:00:35,730 எந்த நேர்மறை முழு, எதிர்மறை முழு எண்கள், எண் 0 அனைத்து நியாயமான விளையாட்டு உள்ளன. 13 00:00:35,730 --> 00:00:41,670 இல்லையெனில், பயனர் அறிவுறுத்தப்படும் அவர்கள் உள்ளீடு சரியான முழு வரை முயற்சிக்க. 14 00:00:41,670 --> 00:00:44,210 இப்போது முழு எண்ணாக செய்கிறது என்றாலும் நமக்கு நிறைய வேலை 15 00:00:44,210 --> 00:00:46,730 உறுதி என்று பயனர் நமக்கு ஒரு முழு எண் கொடுக்கிறது, 16 00:00:46,730 --> 00:00:50,760 நாம் இன்னும் சில விண்ணப்பிக்க வேண்டும் அந்த கூடுதல் கட்டுப்பாடுகளை. 17 00:00:50,760 --> 00:00:56,420 அனைத்து பிறகு, நாம் மரியோ ஏறும் முடியாது எதிர்மறை 12 உயரம் ஒரு அரை பிரமிடு. 18 00:00:56,420 --> 00:00:59,040 >> அந்த கூடுதலாக, பிரச்சனை விவரக்குறிப்பு 19 00:00:59,040 --> 00:01:02,490 என்கிறார் என்று நாங்கள் மட்டும் தான் செய்ய முடியும் மரியோ ஏற அனுமதிக்க 20 00:01:02,490 --> 00:01:06,940 0 மற்றும் 23 வரையான உயரத்துக்கு ஒரு பிரமிடு. 21 00:01:06,940 --> 00:01:11,120 சரி, தவறு என்று நாங்கள் வேண்டும் என்று அர்த்தம் தொடர்ந்து பயனர் நிரல் 22 00:01:11,120 --> 00:01:14,320 எங்களுக்கு சரியான கொடுக்க எண்ணில் தொடர்ந்து 23 00:01:14,320 --> 00:01:17,120 அவர்கள் எங்களுக்கு சரியான உயரம் கொடுக்கப்பட்ட ஒருமுறை. 24 00:01:17,120 --> 00:01:18,720 எப்படி என்று நாம் செய்வது? 25 00:01:18,720 --> 00:01:23,760 >> சரி, தொடர் செயலுக்கு எங்களுக்கு கொடுக்க சுழற்சிகளும் ஏதாவது செய்து யோசனை 26 00:01:23,760 --> 00:01:24,720 மீண்டும் மீண்டும். 27 00:01:24,720 --> 00:01:28,220 ஒரு போது சி ஒரு லூப் லூப் என்று தொடர்ந்து சாப்பிடுவேன் 28 00:01:28,220 --> 00:01:33,480 நீண்ட வளைய உடல் இயக்க கொடுக்கப்பட்ட நிலையில் உண்மை மதிப்பீடு. 29 00:01:33,480 --> 00:01:36,200 விரைவில் என்று நிபந்தனையாக பொய்யா என்று மதிப்பீடு, 30 00:01:36,200 --> 00:01:39,770 திட்டம் தொடர வேண்டும் என்ன என்று பின்னர் வரும். 31 00:01:39,770 --> 00:01:43,180 சுழல்கள் ஒன்று வழி இருக்கும் போது எனவே தொடர்ந்து நாங்கள் என்று உறுதி 32 00:01:43,180 --> 00:01:45,320 சரியான உள்ளீடு பயனர் கேட்கும். 33 00:01:45,320 --> 00:01:50,070 அவர்கள் எங்களுக்கு சரியான உள்ளீடு கொடுக்க முறை, அடுத்து வருவதற்கு நாம் என்ன தொடர வேண்டும். 34 00:01:50,070 --> 00:01:54,380 நாம் கேட்க போகிறோம் என்று குறைந்தபட்சம் ஒரு முறை உள்ளீடு பயனர். 35 00:01:54,380 --> 00:01:59,200 எனவே இப்போது நாம் ஒரு சகோதரி வந்து லூப், இது வளைய போது போது. 36 00:01:59,200 --> 00:02:02,650 >> சுழல்கள் இயக்க வேண்டும் போது செய்ய குறைந்தபட்சம் ஒரு முறை வளைய உடல். 37 00:02:02,650 --> 00:02:06,150 எனவே நிலைமையை சோதனை இல்லாமல், அது வளைய உடல் இயக்க வேண்டும். 38 00:02:06,150 --> 00:02:09,750 பின்னர் பார்க்க நிலையை பாருங்கள் என்பதை அது தன்னை மீண்டும் வேண்டும். 39 00:02:09,750 --> 00:02:13,080 இந்த போது எளிது வரும் நாங்கள் பயனர் உள்ளீடு உறுதிப்படுத்திய வருகிறோம். 40 00:02:13,080 --> 00:02:15,830 நாம் போகிறோம் என்று குறைந்தபட்சம் ஒரு முறை அவர்களை கேட்க வேண்டும். 41 00:02:15,830 --> 00:02:18,780 எனவே ஒரு சில நேரத்தில் வளைய வலிமை இந்த மாதிரி ஏதாவது இருக்கும். 42 00:02:18,780 --> 00:02:20,090 நாம் ஒரு முழு N வேண்டும். 43 00:02:20,090 --> 00:02:22,760 மற்றும் போது உள்ளே லூப் போது, நாங்கள் உடனடியாக 44 00:02:22,760 --> 00:02:24,750 ஒரு முழு எண் பயனர் கேட்கும். 45 00:02:24,750 --> 00:02:29,740 N தவறானது என்றால், நாம் அவர்கள் கேட்கும் வேண்டும் மீண்டும், மீண்டும், மீண்டும் அவர்கள் வரை 46 00:02:29,740 --> 00:02:31,820 எங்களுக்கு அந்த செல்லுபடியாகும் முழு கொடுக்கலாம். 47 00:02:31,820 --> 00:02:37,440 இறுதியாக, n, ஒரு சரியான உள்ளீடு முறை, நாம் தருகிறேன் எங்கள் திட்டத்தின் எஞ்சிய செல்லுங்கள். 48 00:02:37,440 --> 00:02:41,830 >> எனவே ஸ்பெக் மற்றும் காசோலை திரும்பி செல்லலாம் என்ன ஒரு சரியான உள்ளீடு நிலைமைகளை 49 00:02:41,830 --> 00:02:43,670 அது இப்படி போகும் போல. 50 00:02:43,670 --> 00:02:48,090 செல்லுபடியாகும் உயரத்துக்கு போகிறோம் 0 மற்றும் 23 க்கு இடையில் இருக்க வேண்டும். 51 00:02:48,090 --> 00:02:53,350 எனவே தவறான உயரத்துக்கு போகிறோம் 0 விட குறைவாக அல்லது 23 காட்டிலும் அதிகமாக இருக்கும். 52 00:02:53,350 --> 00:02:56,420 எனவே வடிவமைக்க நினைவில் உங்கள் நிலை கவனமாக, 53 00:02:56,420 --> 00:02:58,660 நிலை என்று தெரிந்தும் செய்யும் போது லூப் 54 00:02:58,660 --> 00:03:01,470 N தவறானது போது இருக்க வேண்டும். 55 00:03:01,470 --> 00:03:05,080 இப்போது இந்த ஒரு இருக்க போவதில்லை எளிய ஒரே பூலியன் வெளிப்பாடு. 56 00:03:05,080 --> 00:03:07,630 நாம் இணைக்க வேண்டும் போகிறோம் இரண்டு வெவ்வேறு வெளிப்பாடுகள் 57 00:03:07,630 --> 00:03:09,900 எங்கள் முழு நிலையை செய்ய. 58 00:03:09,900 --> 00:03:13,290 >> எனவே தான் நான் ஒரு உண்மை அட்டவணையின் பார்போம் ஏற்கனவே நீங்கள் நாங்கள் இருக்கிறோம் என்று குறிப்பை கொடுத்து 59 00:03:13,290 --> 00:03:15,200 இரண்டு Booleans கையாள்வதில் போகிறது. 60 00:03:15,200 --> 00:03:19,620 எனவே இங்கே ஒரு உண்மை அட்டவணையின் எங்கே நான் இரண்டு Booleans-- பூலியன் 1 மற்றும் 2 வேண்டும். 61 00:03:19,620 --> 00:03:27,050 எனவே நாம் மதிப்பீடு செய்ய விருப்பம் இல்லை bool1 மற்றும் bool2 அல்லது bool1 அல்லது bool2. 62 00:03:27,050 --> 00:03:31,980 மற்றும் மட்டும் கிரேடு உண்மையாக இருக்க வேண்டும் Booleans அனைத்து அதேசமயம், உண்மையான மதிப்பீடு 63 00:03:31,980 --> 00:03:37,280 அல்லது ஒரு நீண்ட உண்மை இருக்கும் இரண்டு Booleans உண்மை மதிப்பீடு. 64 00:03:37,280 --> 00:03:41,450 சரி, அதனால் ஒரு கணம் எடுத்து, இந்த இடைநிறுத்தம் வீடியோ மற்றும் இந்த உண்மையை அட்டவணை ஜீரணிக்க. 65 00:03:41,450 --> 00:03:42,930 நான் இங்கே காத்திருப்பேன். 66 00:03:42,930 --> 00:03:45,760 நீங்கள் திரும்பி வரும் போது, பார்க்க நீங்கள் ஒன்றாக துண்டு முடியும் என்றால் 67 00:03:45,760 --> 00:03:51,910 ஒரு பூலியன் வெளிப்பாடு உங்கள் N நிலை தவறான உள்ளீட்டு இருப்பது. 68 00:03:51,910 --> 00:03:54,420 >> எனவே இப்போது நாம் என்று பயனர் உள்ளீடு தவறானது, நாம் 69 00:03:54,420 --> 00:03:58,710 மேலே சென்று நாம் எப்படி பற்றி பேச அரை பிரமிடு வரைய வேண்டும். 70 00:03:58,710 --> 00:04:03,410 இங்கே இந்த எளிய உரை ஆசிரியர், நான் ஒரு இடது சீரமைக்கப்பட்டது பிரமிடு வரையப்பட்ட. 71 00:04:03,410 --> 00:04:07,050 ஆனால் நாம் நம் வேண்டும் என்று எனக்கு தெரியும் பிரமிடு வலது சீரமைக்கப்பட்டது வேண்டும். 72 00:04:07,050 --> 00:04:08,650 அதனால் நான் எப்படி இதை செய்ய முடியும்? 73 00:04:08,650 --> 00:04:11,440 சரி, நான் தள்ள முயற்சி செய்யலாம் பக்க எல்லாம் 74 00:04:11,440 --> 00:04:14,880 ஒரு சிறிய செலுத்துவதன் மூலம் இடையே உள்ள பாத்திரம். 75 00:04:14,880 --> 00:04:16,779 பின்னர், அடுத்த வரி, நான் போட போகிறேன் 76 00:04:16,779 --> 00:04:20,970 இன்னும் சில எழுத்துக்களை, அதை சேர்த்து தள்ள மற்றும் further-- அதனால் மற்றும் முன்னும் பின்னுமாக 77 00:04:20,970 --> 00:04:23,360 நான் வலது சீரமைக்கப்பட்டது பிரமிடு வேண்டும் வரை. 78 00:04:23,360 --> 00:04:27,780 எனவே நாம் ஒரு வலது சீரமை பிரமிடு வேண்டும், ஆனால் அதை புள்ளிகள் மிகவும் அழகாக இல்லை. 79 00:04:27,780 --> 00:04:30,680 ஆனால் நாம் இன்னும் வேண்டும் என்று நல்ல இடைவெளி பராமரிக்க. 80 00:04:30,680 --> 00:04:35,260 எனவே நான் உண்மையில் போகிறேன் சில இடைவெளிகள் நுழைக்க. 81 00:04:35,260 --> 00:04:39,420 >> மாறாக மூன்று புள்ளிகள், நான் போகிறேன், ஒன்று, இரண்டு, மூன்று இடங்களில் வைத்து. 82 00:04:39,420 --> 00:04:40,370 இரண்டாவது வரியில். 83 00:04:40,370 --> 00:04:42,640 நான் ஒன்று, இரண்டு இடைவெளிகள் வைக்கிறேன். 84 00:04:42,640 --> 00:04:45,370 மற்றும் கடைசிக்கு முந்தைய மீது வரி, ஒரு இடத்தில். 85 00:04:45,370 --> 00:04:48,290 இங்கு நான் ஒரு சரியான சீரமைக்கப்பட்டது பிரமிடு வேண்டும். 86 00:04:48,290 --> 00:04:52,170 உரை எடுத்துக்காட்டாக செய்து இருந்து ஆசிரியர், நாங்கள் முறை ஒரு யோசனை 87 00:04:52,170 --> 00:04:54,590 நாங்கள் அரை பிரமிடு வரைய பயன்படுத்த வேண்டும் என்று. 88 00:04:54,590 --> 00:04:58,080 ஒவ்வொரு வரியிலும், நாங்கள் என்ன செய்தார் நாம் சில இடைவெளிகள் வகை உள்ளது, 89 00:04:58,080 --> 00:05:00,170 பின்னர் தட்டச்சு சில hashes, பின்னர் தட்டச்சு 90 00:05:00,170 --> 00:05:03,020 Enter விசையை, இது ஒரு புதிய வரி உருவாக்கி உள்ளது. 91 00:05:03,020 --> 00:05:07,770 எனவே இப்போது நாம் அந்த வேண்டும் என்று, நாம் போகலாம் ஒரு படி மேலே மற்றும் ஒரு முறை பார்க்கலாம். 92 00:05:07,770 --> 00:05:10,170 >> எனவே நான், சொல்ல போகிறேன் இந்த உதாரணம் வட்டி, 93 00:05:10,170 --> 00:05:12,480 நாங்கள் 8 உயரத்தில் கையாள்வதில். 94 00:05:12,480 --> 00:05:17,100 முதல் வரிசையில் இரண்டு வேண்டும் போகிறது ஏழு இடங்கள் பின்வருமாறு என்று ஹாஷ்கள். 95 00:05:17,100 --> 00:05:20,020 இரண்டாவது மூன்று ஹாஷ்கள், ஆறு இடங்கள். 96 00:05:20,020 --> 00:05:24,260 மூன்றாம் row-- நான்கு ஹாஷ்கள், ஐந்து spaces-- அதனால் மற்றும் முன்னும் பின்னுமாக 97 00:05:24,260 --> 00:05:26,350 நாங்கள் N வது ஒன்றின் வரிசையில் கிடைக்கும் வரை. 98 00:05:26,350 --> 00:05:31,540 எனவே, நான் N வது ஒன்றின் வரிசையில் கேட்டால் எத்தனை hashes நாங்கள் வேண்டும் போகிறீர்கள் 99 00:05:31,540 --> 00:05:33,120 மற்றும் எத்தனை இடங்கள்? 100 00:05:33,120 --> 00:05:37,000 எனவே இது ஒரு கண்டுபிடிக்க வரை நீங்கள் தான் சூத்திரம் எத்தனை hashes பிரதிநிதித்துவம் 101 00:05:37,000 --> 00:05:42,020 மற்றும் எத்தனை இடங்கள் தேவை N வது ஒன்றின் வரிசையில் நீங்கள் ஓரளவு உயரமான போது. 102 00:05:42,020 --> 00:05:46,060 >> இப்போது நீங்கள் இந்த கண்டறிவதன் போது, நீங்கள் அதுவொரு நீங்கள் எப்படி கவனமாக இருக்க வேண்டும். 103 00:05:46,060 --> 00:05:49,170 என்ன நான் இந்த அர்த்தம் என்று அன்றாட வாழ்க்கையில் எங்களுக்கு எல்லா 104 00:05:49,170 --> 00:05:51,540 வழக்கமாக, எண்ணும் 1 தொடங்கும். 105 00:05:51,540 --> 00:05:55,950 CS50 உள்ள மற்றும் கணினி அறிவியல் ஆனால் பொதுவாக, நாம் 0 சட்டிகளை. 106 00:05:55,950 --> 00:06:00,620 எனவே முதல் வரிசையில் இருக்கும் 1 எதிராக 0 N. 107 00:06:00,620 --> 00:06:04,550 நீங்கள் இருக்கும் போது, இந்த கவனமாக இருங்கள் உங்கள் முறை கண்டுபிடிக்க முயற்சி. 108 00:06:04,550 --> 00:06:07,570 எனவே இப்போது எப்படி திரும்பி செல்லலாம் நாம் பிரமிடு பெற போகிறோம். 109 00:06:07,570 --> 00:06:12,300 ஒவ்வொரு வரியிலும், நாங்கள் விரும்பவில்லை போகிறோம் , இடைவெளிகள் அச்சிட ஹாஷ்கள் அச்சிட, 110 00:06:12,300 --> 00:06:14,050 பின்னர் ஒரு புதிய வரியை அச்சிடுவதற்கு. 111 00:06:14,050 --> 00:06:19,160 இங்கே குறிப்பை உள்ளது ஒவ்வொரு வரிசையில் "க்கு" சொல். 112 00:06:19,160 --> 00:06:21,470 சி, நாம் ஒரு கட்டமைப்பாக இருக்கிறது சுழற்சி ஒரு என்று, 113 00:06:21,470 --> 00:06:25,250 ஒரு உடைய தொடக்க, ஒரு நிலையில், ஒரு மேம்படுத்தல், 114 00:06:25,250 --> 00:06:26,790 மற்றும் லூப் உடல். 115 00:06:26,790 --> 00:06:31,360 >> நான், சொல்ல விரும்பினேன் ஹலோ சொல்ல உலக, 50 முறை, என் வட்டத்திற்கு 116 00:06:31,360 --> 00:06:32,880 இந்த மாதிரி ஏதாவது இருக்கும் என்று. 117 00:06:32,880 --> 00:06:35,480 நான் 0 என் முழு துவக்க. 118 00:06:35,480 --> 00:06:38,230 நிலையில் நான் 50 குறைவாக உள்ளது என்று. 119 00:06:38,230 --> 00:06:42,350 பின்னர் என் மேம்படுத்தல் தான் ஒவ்வொரு முறையும் நான் உயர்த்துவதன். 120 00:06:42,350 --> 00:06:45,140 நாங்கள் சுழல்கள் பயன்படுத்த முடியும் விஷயங்களை மீது மீண்டும் கூறு. 121 00:06:45,140 --> 00:06:47,820 நாங்கள் இல்லை என்று எப்படி இங்கே கவனிக்க கடின, பல குறியீட்டு 122 00:06:47,820 --> 00:06:51,820 மாறாக மாறி வைக்கப்படும் அதற்கு பதிலாக நிலையில் ஒரு உயரம். 123 00:06:51,820 --> 00:06:56,420 அதனால் நான் என்ன இங்கே என்ன, நான் தேடி நான் உள்ளது பிரமிடு ஒவ்வொரு வரிசையில் மீது. 124 00:06:56,420 --> 00:07:00,160 நான் ஒவ்வொரு ஏதாவது செய்ய முடியும் என் வளைய உடல் உள்ளே வரிசை. 125 00:07:00,160 --> 00:07:02,350 >> நாங்கள் உள்ளே என்ன செய்கிறாய் வளைய உடல்? 126 00:07:02,350 --> 00:07:07,120 சரி, நாம் ஏற்கனவே கூறியது போல், நாங்கள் அச்சிடும் நீங்கள் இடைவெளிகள் மற்றும் நாங்கள் அச்சிடும் நீங்கள் ஹாஷ்கள் 127 00:07:07,120 --> 00:07:09,480 மற்றும் நாம் ஒரு புதிய வரி அச்சிடும். 128 00:07:09,480 --> 00:07:11,950 லூப் என் வெளி இந்த மாதிரி இருக்கும். 129 00:07:11,950 --> 00:07:15,070 நான் ஒவ்வொரு வரிசையில் கூறு பிரமிடு, பயன்படுத்தி, 130 00:07:15,070 --> 00:07:18,890 இந்த வழக்கில், மாறி உயரம் என்று பிரமிடு உயரம் சேமித்து. 131 00:07:18,890 --> 00:07:22,870 என்று வளைய உடல் உள்ளே, நான் இருக்கிறேன் மீண்டும் மீண்டும் இடைவெளிகள் அச்சிட போகிறது, அச்சு 132 00:07:22,870 --> 00:07:26,730 மீண்டும் மீண்டும் ஹாஷ்கள், பின்னர் ஒரு புதிய வரியை அச்சிடுவதற்கு. 133 00:07:26,730 --> 00:07:31,010 >> எனவே இப்போது, அனைத்துக் கருத்துகளும் பயன்படுத்தி என்று நான், இந்த தேர்வு மூலம் பற்றி பேசினார் 134 00:07:31,010 --> 00:07:35,210 நீங்கள் கேட்கும் முடியும் இருக்க வேண்டும் பயனர் உள்ளீடு,, என்று உள்ளீடு பரிசோதிக்கவும் 135 00:07:35,210 --> 00:07:37,370 பின்னர் அரை பிரமிடு வரைய. 136 00:07:37,370 --> 00:07:41,510 >> என் பெயர் Zamyla உள்ளது, மற்றும் இந்த CS50 உள்ளது. 137 00:07:41,510 --> 00:07:43,167