1 00:00:00,000 --> 00:00:03,944 >> [მუსიკის დაკვრა] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 DAVID Malan ყველა უფლება. 4 00:00:11,690 --> 00:00:14,674 ეს არის CS50, და ეს არის ბოლომდე კვირაში 2. 5 00:00:14,674 --> 00:00:16,840 მე ასე წუხს, მე არ შეიძლება იქ თქვენ ყველა დღეს, 6 00:00:16,840 --> 00:00:18,300 მაგრამ თქვენ ძალიან კარგ ხელშია. 7 00:00:18,300 --> 00:00:21,710 ნება მიბოძეთ წარმოგიდგინოთ CS50 საკუთარი Rob Bowden. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 რობ Bowden: და რა თქმა უნდა, მაშინ ჩვენ მასხრად იმისა, 10 00:00:31,730 --> 00:00:36,820 რომ მან გამოგვიგზავნა ვერტიკალური ვიდეო და აჩვენებს, ამ. 11 00:00:36,820 --> 00:00:38,320 >> [ვიდეო აღწარმოების] 12 00:00:38,320 --> 00:00:39,820 >> [მუსიკის დაკვრა] 13 00:00:39,820 --> 00:00:42,350 >> [კვალდაკვალ] 14 00:00:42,350 --> 00:00:44,730 >> -ეს ვიდეო არ უნდა ვეძებოთ ამ გზით. 15 00:00:44,730 --> 00:00:46,570 ეს შეიძლება ხელი შეუშალა. 16 00:00:46,570 --> 00:00:49,070 უთხარი არა ვერტიკალური videos. 17 00:00:49,070 --> 00:00:53,310 >> -Vertical ვიდეო მოხდეს, როდესაც თქვენ გამართავს თქვენი კამერა არასწორი გზა. 18 00:00:53,310 --> 00:00:55,880 შენი ვიდეო დასრულდება მდე ეძებს მოსწონს crap. 19 00:00:55,880 --> 00:00:57,650 >> - [GRUNT] 20 00:00:57,650 --> 00:01:02,240 >> -არის უფრო და უფრო მეტი ადამიანი ნარკომანი მიღების ვერტიკალური ვიდეო ყოველდღე. 21 00:01:02,240 --> 00:01:06,240 ეს არ გაიბზარება ან არაფერი, მაგრამ მაინც ძალიან ცუდია. 22 00:01:06,240 --> 00:01:10,410 არსებობს ორი სხვადასხვა სახის ადამიანები, რომლებიც დაზარალებულ ერთად VVS. 23 00:01:10,410 --> 00:01:14,160 პირველი ჯგუფი ეპყრობა ვიდეო ისინი დახვრიტეს, როგორიცაა სურათები. 24 00:01:14,160 --> 00:01:15,850 მათ არ ნიშნავს რაიმე ზიანი. 25 00:01:15,850 --> 00:01:19,180 ისინი უბრალოდ არ ესმით, რომ ხოლო თქვენ შეიძლება იქცეს სურათი, 26 00:01:19,180 --> 00:01:20,880 თქვენ ნამდვილად არ გახდეს ვიდეო. 27 00:01:20,880 --> 00:01:21,880 >> [CRASH] 28 00:01:21,880 --> 00:01:23,460 >> - [MONKEY ხმები] 29 00:01:23,460 --> 00:01:27,540 >> -The სხვა ჯგუფის ადამიანი ვინც არ მისცეს [Bleep]. 30 00:01:27,540 --> 00:01:31,090 >> -Vertical ვიდეო სინდრომი სახიფათოა. 31 00:01:31,090 --> 00:01:34,120 Motion სურათები აქვს ყოველთვის ჰორიზონტალური. 32 00:01:34,120 --> 00:01:35,990 ტელევიზორები არის ჰორიზონტალური. 33 00:01:35,990 --> 00:01:38,380 კომპიუტერის ეკრანები ჰორიზონტალური. 34 00:01:38,380 --> 00:01:41,580 სახალხო თვალები ჰორიზონტალური. 35 00:01:41,580 --> 00:01:45,170 ჩვენ არ აგებული უყუროთ ვერტიკალური videos. 36 00:01:45,170 --> 00:01:47,600 >> მე მიყვარს ვერტიკალური videos. 37 00:01:47,600 --> 00:01:50,410 >> -Nobody ზრუნავს თქვენზე. 38 00:01:50,410 --> 00:01:53,340 >> იმ შემთხვევაში თუ ეს პრობლემა ის არ დადგენილიყო, თქვენც 39 00:01:53,340 --> 00:01:57,650 დაიწყება გვიჩვენებს ოთხი ვიდეო ერთდროულად მხოლოდ გადარჩენა სიჩქარეს. 40 00:01:57,650 --> 00:02:02,400 >> -Letterboxed ვერტიკალური ვიდეოები გვინდა იყოს ზომა საფოსტო მარკების. 41 00:02:02,400 --> 00:02:04,920 >> და თუკი ეს იქნება ყველგან. 42 00:02:04,920 --> 00:02:07,670 ფილმის ეკრანებზე აქვს ყოველთვის ჰორიზონტალური. 43 00:02:07,670 --> 00:02:11,200 თუ ვერტიკალური ვიდეოები გახდეს მისაღები, კინოთეატრებში 44 00:02:11,200 --> 00:02:13,930 უნდა იყოს მაღალი და გამხდარი. 45 00:02:13,930 --> 00:02:17,710 >> თუკი ყველა კინოთეატრებში გვინდა უნდა მიიღოს დანგრევა და აღადგინეს. 46 00:02:17,710 --> 00:02:22,090 და ახლა ისინი აღადგინეს, Mila Kunis იქნება ძველი და მახინჯი. 47 00:02:22,090 --> 00:02:24,342 >> -Birds ავარიული შევიდა მათ და იღუპება. 48 00:02:24,342 --> 00:02:26,530 >> -We'll ყველა მისაღებად ძლიერი კისრის ეძებს up. 49 00:02:26,530 --> 00:02:29,800 >> თუკი არავინ იჯდეს წინა რიგის ოდესმე ისევ. 50 00:02:29,800 --> 00:02:37,170 >> გიორგი Lucas ხელახლა გათავისუფლებას Star Wars ერთხელ საცურაო გამოცემა. 51 00:02:37,170 --> 00:02:41,860 >> მე არასოდეს ნამდვილად შეუძლია გითხრათ, ამბავი, რომელიც მე მინდა გითხრათ. 52 00:02:41,860 --> 00:02:46,030 ეს იყო დიდი შანსი ჩემთვის ექსპერიმენტი ახალი ტექნოლოგია. 53 00:02:46,030 --> 00:02:48,150 >> -You're Jerk. 54 00:02:48,150 --> 00:02:54,430 >> -Every დროს მობილური მოწყობილობა გამოიყენება ვიდეო ჩანაწერი, ცდუნება არის. 55 00:02:54,430 --> 00:02:56,370 უბრალოდ ვთქვათ. 56 00:02:56,370 --> 00:03:00,116 უთხარი არა ჯორჯ ლუკასი. 57 00:03:00,116 --> 00:03:04,062 უთხარი არა ძველი Mila Kunis. 58 00:03:04,062 --> 00:03:06,600 უთხარი არა ვერტიკალური videos. 59 00:03:06,600 --> 00:03:12,511 >> ისე, თავად თუ ხედავთ ვინმე აკეთებს, ვთქვათ, "თქვენ არ დაარტყა, რომ უფლება რაღაც!" 60 00:03:12,511 --> 00:03:15,433 >> [მუსიკის დაკვრა] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [END აღწარმოების] 63 00:03:19,830 --> 00:03:23,702 >> [ტაში] 64 00:03:23,702 --> 00:03:27,598 >> [აუდიო] 65 00:03:27,598 --> 00:03:44,041 66 00:03:44,041 --> 00:03:45,790 რობ Bowden: --simple ფორმა კრიპტოგრაფიის, 67 00:03:45,790 --> 00:03:49,500 რომელიც ძირითადად დაშიფვრის და დეშიფრაციის საიდუმლო შეტყობინებები. 68 00:03:49,500 --> 00:03:52,590 ასე რომ, აქ ჩვენ გვაქვს ძალიან მარტივი სათამაშო. 69 00:03:52,590 --> 00:03:56,900 და იდეა არის გარე ბეჭედი ბრუნავს გარშემო შიდა ბეჭედი. 70 00:03:56,900 --> 00:04:01,610 და თქვენ შეგიძლიათ ნახოთ, იქნებ თუ ზომით წელს, that-- ძნელია ვხედავ. 71 00:04:01,610 --> 00:04:05,090 მაგრამ, როგორც, რაოდენობის 1-- ისე, რომ გადავიდა. 72 00:04:05,090 --> 00:04:09,120 >> ნომერი 1 რუკები წერილი X, ნომერი 2 რუკების წერილი 73 00:04:09,120 --> 00:04:11,630 J. წარმოუდგენლად რთული არ გამოტოვოთ წინ. 74 00:04:11,630 --> 00:04:16,100 Letter 2 რუკები J. ხმების 3 რუკები დ ასე 75 00:04:16,100 --> 00:04:20,140 ამ ბეჭედი შეგიძლიათ მისცეს ვინმე გაგზავნა 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 რატომღაც თქვენ მინდა ვუთხრა მათ, XJD. 77 00:04:22,624 --> 00:04:24,540 მაგრამ თქვენ შეგიძლიათ მივცეთ ზოგიერთი გაგზავნა ნომრები, 78 00:04:24,540 --> 00:04:28,460 და რადგან მათ აქვთ ეს ბეჭედი, ისინი შეიძლება გაშიფვრა თუ რას ცდილობს ვთქვა. 79 00:04:28,460 --> 00:04:32,510 >> ასე, რომ თქვენ შეიძლება არ ჩანს ეს კონკრეტული მაგალითი კრიპტოგრაფიის 80 00:04:32,510 --> 00:04:36,640 ადრე თუ გარშემო საშობაო სეზონი თქვენ უყურებს საშობაო ამბავი. 81 00:04:36,640 --> 00:04:38,520 თუ თქვენ არასოდეს მინახავს ეს ადრე, მაშინ მხოლოდ 82 00:04:38,520 --> 00:04:41,060 ჩართოთ TBS სიტყვასიტყვით ნებისმიერ დროს შობის ღამეს, 83 00:04:41,060 --> 00:04:44,510 იმიტომ, რომ ისინი მხოლოდ აჩვენებს მას თავში დაბრუნება თავში დაბრუნება უკან მთელი დღის განმავლობაში. 84 00:04:44,510 --> 00:04:46,744 და შესაბამისი ვიდეო არის ამ. 85 00:04:46,744 --> 00:04:47,410 [ვიდეო აღწარმოების] 86 00:04:47,410 --> 00:04:50,020 -იქნება ეს ცნობილია ყველასთვის და განსხვავებული რომ რალფ პარკერი არის აქვე 87 00:04:50,020 --> 00:04:52,850 დაინიშნა წევრი Little Orphan Annie საიდუმლო წრე 88 00:04:52,850 --> 00:04:56,490 და მას უფლება აქვს ყველა პატივით და სარგებელი ხდება მასთან. 89 00:04:56,490 --> 00:04:59,010 ხელმოწერილია პატარა ობოლი Annie. 90 00:04:59,010 --> 00:05:03,120 კონტრასიგნაციას Pierre Andre მელნის! 91 00:05:03,120 --> 00:05:07,460 პატივით და სარგებელს უკვე ასაკში ცხრა! 92 00:05:07,460 --> 00:05:12,530 >> [ყვირილი რადიო] 93 00:05:12,530 --> 00:05:13,030 -მოდი შესახებ. 94 00:05:13,030 --> 00:05:14,000 მოდით კიდევ იგი. 95 00:05:14,000 --> 00:05:18,274 მე არ გვჭირდება ყველა რომ ჯაზის შესახებ კონტრაბანდისტები და მეკობრეები. 96 00:05:18,274 --> 00:05:20,440 -მოუსმინეთ ხვალ ღამე შემაჯამებელ სათავგადასავლო 97 00:05:20,440 --> 00:05:22,540 შავი Pirate Ship. 98 00:05:22,540 --> 00:05:25,460 ახლა, დროა Annie საიდუმლო გაგზავნა 99 00:05:25,460 --> 00:05:28,620 თქვენთვის წევრები საიდუმლო წრე. 100 00:05:28,620 --> 00:05:32,370 დამახსოვრება ბავშვები, მხოლოდ წევრების Annie საიდუმლო წრე 101 00:05:32,370 --> 00:05:34,880 შეიძლება decode Annie საიდუმლო გაგზავნა. 102 00:05:34,880 --> 00:05:39,100 გახსოვდეთ, Annie დამოკიდებულია თქვენ. 103 00:05:39,100 --> 00:05:41,660 უცნობია თქვენი ქინძისთავები B2. 104 00:05:41,660 --> 00:05:43,960 აქ არის გზავნილი. 105 00:05:43,960 --> 00:05:44,680 12. 106 00:05:44,680 --> 00:05:45,180 11. 107 00:05:45,180 --> 00:05:45,679 2. 108 00:05:45,679 --> 00:05:48,110 მე ვარ ჩემი პირველი საიდუმლო შეხვედრა. 109 00:05:48,110 --> 00:05:49,030 >> -25. 110 00:05:49,030 --> 00:05:49,834 14. 111 00:05:49,834 --> 00:05:51,040 11. 112 00:05:51,040 --> 00:05:51,854 18. 113 00:05:51,854 --> 00:05:52,670 16. 114 00:05:52,670 --> 00:05:54,570 >> -Oh, პიერ დიდი ხმა შეძლებენ. 115 00:05:54,570 --> 00:05:57,490 მე ვერ გეტყვით, რომ ამაღამ გზავნილი იყო მართლაც მნიშვნელოვანია. 116 00:05:57,490 --> 00:05:57,990 -3. 117 00:05:57,990 --> 00:06:00,080 25. 118 00:06:00,080 --> 00:06:01,580 სწორედ შეტყობინება Annie თავად. 119 00:06:01,580 --> 00:06:02,880 გახსოვდეთ, არ ვუთხრა ვინმეს. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> -Five წამში, მე მხოლოდ სახლში ოთახი, სადაც ბიჭი ცხრა 122 00:06:11,130 --> 00:06:15,830 შეიძლება იჯდეს კონფიდენციალურობა და decode. 123 00:06:15,830 --> 00:06:16,620 Aha! 124 00:06:16,620 --> 00:06:17,340 B! 125 00:06:17,340 --> 00:06:20,210 მივედი შემდეგ. 126 00:06:20,210 --> 00:06:23,300 ე პირველი სიტყვა არის "იყოს." 127 00:06:23,300 --> 00:06:25,880 S. ეს მოდიოდა ადვილი არის. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 ეს არის ის, რ 130 00:06:30,528 --> 00:06:31,278 -მოდი შესახებ, Ralphie! 131 00:06:31,278 --> 00:06:31,861 მე gotta წავიდეთ! 132 00:06:31,861 --> 00:06:33,182 -I'll უფლება ქვემოთ, Ma! 133 00:06:33,182 --> 00:06:36,038 Gee პროგრამირებაში. 134 00:06:36,038 --> 00:06:42,840 თ ო "რა თქმა უნდა", - რა თქმა უნდა, თუ რა? 135 00:06:42,840 --> 00:06:44,770 რა იყო პატარა ობოლი Annie ცდილობს ამბობენ? 136 00:06:44,770 --> 00:06:46,381 რა თქმა უნდა, თუ რა? 137 00:06:46,381 --> 00:06:47,825 >> -Randy აქვს წავიდეთ! 138 00:06:47,825 --> 00:06:48,866 გთხოვთ, გამოვა? 139 00:06:48,866 --> 00:06:49,783 >> -ყველა უფლება, დედა! 140 00:06:49,783 --> 00:06:51,786 მე ვიქნები უფლება out! 141 00:06:51,786 --> 00:06:53,606 მე უახლოვდება არის. 142 00:06:53,606 --> 00:06:55,550 დაძაბულობა იყო საშინელი. 143 00:06:55,550 --> 00:06:57,050 რა იყო ეს? 144 00:06:57,050 --> 00:06:59,905 ბედი პლანეტა შეიძლება სასწორზე დევს! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie, რენდი ის მიიღო წავიდეთ! 146 00:07:01,736 --> 00:07:05,680 >> -I'll უფლება, ამისთვის ღაღადებდეს ხმამაღლა! 147 00:07:05,680 --> 00:07:07,170 თითქმის არ არსებობს! 148 00:07:07,170 --> 00:07:08,150 ჩემი თითების გაფრინდა. 149 00:07:08,150 --> 00:07:09,980 ჩემი გონება იყო ფოლადის ხაფანგში. 150 00:07:09,980 --> 00:07:11,496 ყველა ფორე vibrated. 151 00:07:11,496 --> 00:07:13,268 ეს იყო თითქმის ნათელია! 152 00:07:13,268 --> 00:07:13,767 დიახ. 153 00:07:13,767 --> 00:07:14,609 დიახ. 154 00:07:14,609 --> 00:07:15,108 დიახ. 155 00:07:15,108 --> 00:07:16,449 დიახ. 156 00:07:16,449 --> 00:07:20,240 რა თქმა უნდა დალევა თქვენი Ovaltine. 157 00:07:20,240 --> 00:07:20,740 Ovaltine? 158 00:07:20,740 --> 00:07:26,687 159 00:07:26,687 --> 00:07:27,520 Crummy კომერციული? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 ძაღლიშვილია. 162 00:07:34,920 --> 00:07:35,890 >> [END აღწარმოების] 163 00:07:35,890 --> 00:07:39,650 >> რობ Bowden: ასე რომ, თუ როგორ Ovaltine ეხება კრიპტოგრაფიის. 164 00:07:39,650 --> 00:07:42,290 ძირითადად CS50 მხოლოდ რეკლამირება Ovaltine, ასე რომ ჩვენ შეგვიძლია 165 00:07:42,290 --> 00:07:44,400 იყოს crummy კომერციული Ovaltine. 166 00:07:44,400 --> 00:07:44,900 ყველა უფლება. 167 00:07:44,900 --> 00:07:47,120 ასე რომ, ახლა ფაქტობრივი კომპიუტერულ მეცნიერებაში. 168 00:07:47,120 --> 00:07:50,670 დამახსოვრება ორშაბათს ჩვენ შეჩერდით diving სიღრმეში სიმები. 169 00:07:50,670 --> 00:07:52,820 ასე რომ, ჩვენ საქმე სტრიქონი "Zamyla." 170 00:07:52,820 --> 00:07:55,130 ჩვენ აღიარებდა ის ფაქტი, რომ ჩვენ შეიძლება მკურნალობა 171 00:07:55,130 --> 00:07:57,510 "Zamyla" როგორც თანმიმდევრობა სიმბოლო. 172 00:07:57,510 --> 00:07:59,740 და მახსოვს, რომ ჩვენ ვისწავლეთ კონსოლი ნოტაცია. 173 00:07:59,740 --> 00:08:01,995 ასე რომ, თუ ეს იყო შენახული სიმებიანი "s", მაშინ 174 00:08:01,995 --> 00:08:05,860 თუ ჩვენ ვთქვით, s bracket 0, რომ მიუთითოს წერილი კაპიტალის ზ 175 00:08:05,860 --> 00:08:09,790 და თუ ჩვენ განაცხადა s bracket 1, რომელიც მიუთითებს იმაზე, პირველი ამას, 176 00:08:09,790 --> 00:08:14,220 და ა.შ. მდე s bracket 5, რაც მიუთითებს იმაზე, რომ ბოლო ა. 177 00:08:14,220 --> 00:08:17,090 >> ახლა გვახსოვდეს, რომ სიგრძით ეს კონტექსტი 6, 178 00:08:17,090 --> 00:08:23,220 მაგრამ მაჩვენებლების შევიდა სიმებიანი 0 მეშვეობით 5, Z მეშვეობით, რომელიც გაგრძელდება. 179 00:08:23,220 --> 00:08:28,650 ასე რომ, ეს ახლა ჯდება უფრო დიდი სურათი თქვენი კომპიუტერის მეხსიერებაში, თქვენი RAM. 180 00:08:28,650 --> 00:08:32,020 ასე რომ სადღაც პროგრამა, რომელიც თქვენ გაშვებული თქვენს კომპიუტერში 181 00:08:32,020 --> 00:08:34,780 უნდა გვახსოვდეს, Zamyla სადღაც მეხსიერებაში. 182 00:08:34,780 --> 00:08:36,029 ასე რომ, შეიძლება მე მაქვს მოხალისე? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 დიახ, გთხოვთ. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 და რა არის თქვენი სახელი? 187 00:08:51,500 --> 00:08:52,410 >> DEAN: დეკანი. 188 00:08:52,410 --> 00:08:53,550 >> რობ Bowden: Dean? 189 00:08:53,550 --> 00:08:54,910 კარგია თქვენთან შეხვედრა, დეკანი. 190 00:08:54,910 --> 00:08:58,240 ასე რომ მოვა აქ და ჩვენ ვაპირებთ, რომ თქვენ მიაპყროს 191 00:08:58,240 --> 00:09:00,740 ჩვენს ლამაზი nifty განლაგება მეხსიერება. 192 00:09:00,740 --> 00:09:05,950 ახლა მე მიყვარს ფიქრი მეხსიერება როგორც ერთ-ერთი გრძელი ზოლები ბაიტი, 193 00:09:05,950 --> 00:09:11,090 მაგრამ მხოლოდ ჩვენებისთვის ჩვენ გამოგიგზავნით უბრალოდ, მარცხნიდან მარჯვნივ, ზემოდან. 194 00:09:11,090 --> 00:09:11,590 OK? 195 00:09:11,590 --> 00:09:22,030 >> ამიტომ, მე ვაპირებ, რომ ნახოთ პროგრამაში Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 ასე რომ, ყველა ამ პროგრამის აკეთებს ითხოვს ოთხი სიმები 197 00:09:25,760 --> 00:09:28,830 საწყისი მომხმარებელი GetString და შემდეგ ბეჭდვა 198 00:09:28,830 --> 00:09:30,950 რასაც პირველი სიმებიანი შევიდა იყო. 199 00:09:30,950 --> 00:09:32,840 ჩვენ იგნორირება ორი ოთხი. 200 00:09:32,840 --> 00:09:33,610 OK. 201 00:09:33,610 --> 00:09:38,210 ასე რომ, აქ, ახლა, როდესაც მე პირველი მოთხოვნა s1. 202 00:09:38,210 --> 00:09:39,740 ასე რომ, თქვენ კომპიუტერი. 203 00:09:39,740 --> 00:09:41,680 თქვენ ვახორციელებთ GetString. 204 00:09:41,680 --> 00:09:46,710 ასე, რომ თქვენ მოითხოვოს სტრინგი მე, და იტყვით, დეკანი. 205 00:09:46,710 --> 00:09:47,900 მიეცით string "დეკანი". 206 00:09:47,900 --> 00:09:50,300 >> ასე რომ, სადღაც მეხსიერებაში თქვენ უნდა გვახსოვდეს, "დეკანი". 207 00:09:50,300 --> 00:09:52,160 ასე წერენ ის მეხსიერება სადღაც. 208 00:09:52,160 --> 00:09:58,270 209 00:09:58,270 --> 00:09:59,210 სრულყოფილი. 210 00:09:59,210 --> 00:09:59,880 OK. 211 00:09:59,880 --> 00:10:01,740 ასე რომ, ახლა ჩვენ S2. 212 00:10:01,740 --> 00:10:03,869 და s2 იქნება თხოვნით, GetString. 213 00:10:03,869 --> 00:10:05,160 ამიტომ, მე ვაპირებ შესვლის სიმებიანი. 214 00:10:05,160 --> 00:10:08,720 მე ვაპირებ შესვლას "Hannah". 215 00:10:08,720 --> 00:10:10,586 ასე რომ შევა "Hannah" სადღაც მეხსიერებაში. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 ჰო. 218 00:10:19,360 --> 00:10:23,000 A-H. 219 00:10:23,000 --> 00:10:25,550 >> OK, ასე რომ, ახლა s3. 220 00:10:25,550 --> 00:10:28,380 და ეს იქნება კიდევ ერთი მოითხოვოს GetString. 221 00:10:28,380 --> 00:10:37,020 ასე რომ, ახლა შევა "მარია". 222 00:10:37,020 --> 00:10:37,520 ყველა უფლება. 223 00:10:37,520 --> 00:10:40,980 და მერე იქ ერთი ბოლო თხოვნით GetString, s4. 224 00:10:40,980 --> 00:10:42,580 ასე რომ, მე არ ვიცი. 225 00:10:42,580 --> 00:10:45,640 როგორ შესახებ ჩვენ წავიდეთ ერთად antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 ასე რომ შევა, რომ მეხსიერებაში. 227 00:10:49,460 --> 00:10:50,400 ჰო. 228 00:10:50,400 --> 00:10:53,970 ასე რომ, მხოლოდ ამის "Rob". 229 00:10:53,970 --> 00:10:54,560 >> OK. 230 00:10:54,560 --> 00:10:58,410 ასე რომ, ახლა ახსნას რატომ არ თქვენ დატოვონ ეს ფართები? 231 00:10:58,410 --> 00:11:01,340 რატომ გაქვთ ეს ცარიელი სივრცე აქ, აქ და აქ? 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 დიახ. 234 00:11:05,670 --> 00:11:09,450 ასე რომ შეამჩნია, როდესაც მე წასვლა ბეჭდვა s1-- ასე რომ, თუ ჩვენ 235 00:11:09,450 --> 00:11:11,890 ჰქონდა "Hannah" გაშვებული უფლება შემდეგ "დეკანი" 236 00:11:11,890 --> 00:11:14,360 როგორ ვიცით, როდის სიმებიანი "დეკანი" დამთავრდა? 237 00:11:14,360 --> 00:11:19,470 ასე რომ დაბეჭდვის სიმებიანი s1 შეიძლება ჰქონდეს მხოლოდ დაბეჭდილი "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 იმ შემთხვევაში, თუ მას არ აქვს რაიმე ნახავ როდესაც "დეკანი" ფაქტიურად მთავრდება. 239 00:11:22,720 --> 00:11:23,240 >> ყველა უფლება. 240 00:11:23,240 --> 00:11:27,650 ასე რომ მეხსიერება გზას, ჩვენ რეალურად წარმოადგენს ამ ბოლოს სიმებიანი 241 00:11:27,650 --> 00:11:29,940 არის წარმატებული ნულოვანი. 242 00:11:29,940 --> 00:11:32,620 ასე რომ, ამ სივრცეში არის ზუსტად ის, რაც გვინდოდა. 243 00:11:32,620 --> 00:11:34,040 ეს უნდა იყოს წარმატებული ნულოვანი. 244 00:11:34,040 --> 00:11:37,690 ეს იქნება წარმატებული ნულოვანი, და ეს იქნება წარმატებული ნულოვანი. 245 00:11:37,690 --> 00:11:41,585 და თქვენ შეგიძლიათ აქვს ზღაპრული პრიზი იმისთვის, რომ სრულყოფილი მოხალისე. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 მიიღეთ სტრესი ბურთი! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> OK. 250 00:11:49,700 --> 00:11:54,420 ასე რომ, ეს ხასიათი წარმატებული ნულოვანი არის როგორ ჩვენ მიუთითოს ბოლოს სიმებიანი. 251 00:11:54,420 --> 00:11:57,120 ეს როგორ, როდესაც ნებისმიერ პროგრამა სურს ბეჭდვა სიმებიანი, 252 00:11:57,120 --> 00:11:59,760 ეს how-- მახსოვს გავიგეთ, გამოყენება strlen ფუნქცია გასულ კვირას? 253 00:11:59,760 --> 00:12:00,940 სიმებიანი ხანგრძლივობა? 254 00:12:00,940 --> 00:12:03,770 ეს როგორ სიმებიანი სიგრძე შეუძლია განსაზღვრავს, თუ როგორ ხანგრძლივი string არის. 255 00:12:03,770 --> 00:12:05,810 უბრალოდ ინახავს iterating მეტი პერსონაჟი 256 00:12:05,810 --> 00:12:08,217 სანამ ის პოულობს წარმატებული ნულოვანი ხასიათი. 257 00:12:08,217 --> 00:12:11,050 ასე რომ, მთავარია, რომ გააცნობიეროს, შესახებ წარმატებული ნულოვანი ხასიათი 258 00:12:11,050 --> 00:12:14,950 არის ის წარმოდგენილია ყველა zeros ბიტი. 259 00:12:14,950 --> 00:12:18,980 ასე რომ ეს არის მკაფიო ნულოვანი ხასიათი. 260 00:12:18,980 --> 00:12:23,010 ასე რომ, ნულოვანი ხასიათი, თუ გახსოვთ მაგალითად, რომ მან ბოლოს 261 00:12:23,010 --> 00:12:27,360 ლექცია, სადაც გმირები რუკაზე რომელთა მიზანია, როგორც დედაქალაქში რუკები 65. 262 00:12:27,360 --> 00:12:29,130 მხედრულ რუკები 97. 263 00:12:29,130 --> 00:12:30,890 ამას ბ იქნება 98. 264 00:12:30,890 --> 00:12:35,220 ასე რომ ნომერი 0 რუკები, რომელთა მიზანია: მე არ ვიცი, off ზევით ჩემი უფროსი. 265 00:12:35,220 --> 00:12:36,400 44 და 45. 266 00:12:36,400 --> 00:12:37,890 სადღაც, რომ რეგიონში. 267 00:12:37,890 --> 00:12:40,850 >> ასე რომ, ხასიათი 0 ფაქტობრივი ნომერი. 268 00:12:40,850 --> 00:12:44,350 მაგრამ წარმატებული ნულოვანი რუკები ყველა ნულოვანი ბიტი. 269 00:12:44,350 --> 00:12:46,380 ასე რომ, აქ არის განსხვავება შორის წარმატებული ნულოვანი, 270 00:12:46,380 --> 00:12:48,450 რომელიც ჩვენ მოვუწოდებთ null terminator. 271 00:12:48,450 --> 00:12:53,210 აქ არის განსხვავება წარმატებული ნულოვანი და ხასიათი ნულოვანი. 272 00:12:53,210 --> 00:12:54,350 >> ყველა უფლება. 273 00:12:54,350 --> 00:12:57,520 ასე რომ, საუბარი ცოტა მეტი სიმები. 274 00:12:57,520 --> 00:13:01,470 ასე რომ, ჩვენ ვხედავთ, რომ აქ ეს არის, თუ როგორ ეს იქნება ასახული მეხსიერება. 275 00:13:01,470 --> 00:13:07,940 ასე რომ, ეს იდეა strings როგორც თანმიმდევრობა პერსონაჟი ასე ოფიციალურ კომპიუტერული 276 00:13:07,940 --> 00:13:10,750 sciency ვადა თანმიმდევრობით მასივი. 277 00:13:10,750 --> 00:13:13,790 ასე რომ, ჩვენ მოვუწოდებთ სიმებიანი მასივი სიმბოლო. 278 00:13:13,790 --> 00:13:17,770 და არსებობს სხვა მონაცემები სახის, რომ ჩვენ შეგვიძლია კოლექტორები გარეთ. 279 00:13:17,770 --> 00:13:19,975 >> ასე რომ, მოტივაცია ამ, შევხედოთ მაგალითს. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 ჩვენ მოვუწოდებთ მას ages0.c მე დააკოპირეთ და ჩასვით ჩვენი template. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 OK. 284 00:13:33,410 --> 00:13:39,378 ასე რომ ამ პროგრამის ის, რაც ჩვენ გსურთ არის დაიბრუნოს ასაკი 285 00:13:39,378 --> 00:13:45,160 სამი სტუდენტის, რა თქმა უნდა. 286 00:13:45,160 --> 00:13:49,240 ასე რომ, ჩვენ ვიცით, Int ასაკი და ახლა მე ვაპირებ ვთქვა 0. 287 00:13:49,240 --> 00:13:53,140 ასე, რომ თქვენ ალბათ მინდა ვთქვა, age1, მაგრამ მიზნებისათვის, ჩვენ დავინახავთ, ძალიან მოკლედ, 288 00:13:53,140 --> 00:13:57,187 მე ვთქვა int age0 შეადგენს GetInt. 289 00:13:57,187 --> 00:13:59,270 ასე რომ, იგივე მოწოდება GetInt რომ ჩვენ უკვე გამოყენებით მე 290 00:13:59,270 --> 00:14:01,561 არ მოხდეს რითაც ამბობდა, "მომეცი ასაკში." 291 00:14:01,561 --> 00:14:03,120 მაგრამ მხოლოდ ითხოვს. 292 00:14:03,120 --> 00:14:06,510 >> და age1 შეადგენს GetInt. 293 00:14:06,510 --> 00:14:09,600 და int age2 შეადგენს GetInt. 294 00:14:09,600 --> 00:14:14,070 ასე რომ, კიდევ ერთხელ, სამი სტუდენტი, მაგრამ საბოლოოდ ცვლადი მაჩვენებლების 295 00:14:14,070 --> 00:14:16,890 არიან age0 მეშვეობით age2. 296 00:14:16,890 --> 00:14:17,550 OK. 297 00:14:17,550 --> 00:14:23,960 ასე რომ ამ პროგრამის გააკეთებს, რასაც ჩვენ გვინდა age0, age1 და age2, 298 00:14:23,960 --> 00:14:27,670 მაგრამ ამ პროგრამის საბოლოოდ მუშაობს სამი სტუდენტებს. 299 00:14:27,670 --> 00:14:28,380 >> OK. 300 00:14:28,380 --> 00:14:32,110 ასე რომ, ახლა რა, თუ მინდა, ოთხი სტუდენტი? 301 00:14:32,110 --> 00:14:36,000 ისე, მე ვაპირებ უნდა დაბრუნდეს ჩემს კოდი, შეცვალოს კომენტარი, 302 00:14:36,000 --> 00:14:39,840 და ახლა ჩვენ გვაქვს int age3 შეადგენს GetInt. 303 00:14:39,840 --> 00:14:40,610 OK. 304 00:14:40,610 --> 00:14:43,660 ასე რომ, ვინც ხედავს პრობლემა აქ? 305 00:14:43,660 --> 00:14:47,310 რა არის პრობლემა ამ სახის კონფიგურაცია? 306 00:14:47,310 --> 00:14:47,810 ჰო. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 ჰო. 309 00:14:53,610 --> 00:14:56,360 ასე რომ, ჩვენ შექმნა ცვლადი თითოეული სტუდენტი. 310 00:14:56,360 --> 00:15:00,140 ახლა, რომ მუშაობს, მაგრამ საბოლოოდ რა თუ მე ახლა 311 00:15:00,140 --> 00:15:06,500 ამბობენ, "მინდა დაიბრუნოს ასაკის რვა სტუდენტი და 16 მოსწავლე 312 00:15:06,500 --> 00:15:11,340 ან თუმცა ბევრი სტუდენტი ასობით სტუდენტების CS50 313 00:15:11,340 --> 00:15:16,750 ან ათასობით სტუდენტებს კამპუსში ან მილიარდობით ადამიანი მსოფლიოში? 314 00:15:16,750 --> 00:15:19,130 ასე რომ, საბოლოო ჯამში, ეს არ არის მდგრადი. 315 00:15:19,130 --> 00:15:21,990 ნებისმიერ დროს ხედავთ საკუთარ თავს გადაწერა და pasting კოდის მსგავსად, 316 00:15:21,990 --> 00:15:25,050 თქვენ უნდა ზოგადად გრძნობენ რომ არ არსებობს უკეთესი გზა. 317 00:15:25,050 --> 00:15:31,290 >> ასე რომ, ეს არის, სადაც ჩვენ გააცნობს მასივი დეკლარაცია. 318 00:15:31,290 --> 00:15:34,564 ასე რომ, როდესაც თქვენ გამოაცხადოს მასივი, ეს არის ის, რაც ზოგადად ფორმატში 319 00:15:34,564 --> 00:15:35,480 აპირებს გამოიყურებოდეს. 320 00:15:35,480 --> 00:15:36,664 ჩვენ ვაპირებთ, რომ ვთქვათ ტიპის. 321 00:15:36,664 --> 00:15:38,830 და მაშინ ჩვენ ვაპირებთ მისცეს სახელი რომ მასივი, 322 00:15:38,830 --> 00:15:41,150 ისევე, როგორც ჩვენ განსაზღვრავს მოცემული ცვლადი. 323 00:15:41,150 --> 00:15:43,980 და ბოლოს ჩვენ გამოყენებით ამ bracket notation ერთხელ 324 00:15:43,980 --> 00:15:47,480 მაგრამ სხვადასხვა კონტექსტში როგორ ჩვენ გამოყენებით ადრე. 325 00:15:47,480 --> 00:15:51,860 >> ასე რომ აქ ეს ჰგავს ჩვეულებრივი ცვლადის დეკლარაცია, რომელიც ჩვენ ვნახეთ. 326 00:15:51,860 --> 00:15:54,890 ასე რომ, ჩვენ ვნახეთ int x ნახევრად მსხვილი ნაწლავის ადრე. 327 00:15:54,890 --> 00:16:00,020 ისე, ახლა ჩვენ შეიძლება ნახოთ რაღაც როგორც int x ფრჩხილებში 5. 328 00:16:00,020 --> 00:16:04,020 და აყენებს ეს იდეა შევიდა GetInt პროგრამა, რომელიც ჩვენ ჰქონდეს 329 00:16:04,020 --> 00:16:08,850 ასე რომ, ჩვენ შეიძლება განახორციელოს ეს იგივე გზით. 330 00:16:08,850 --> 00:16:13,630 >> ვთქვათ CS ჩვენ, როგორც წესი იყენებენ n როგორც რაოდენობის რაღაც. 331 00:16:13,630 --> 00:16:16,150 ასე რომ, აქ ჩვენ ვაპირებთ შესანახად ოთხი სტუდენტებს. 332 00:16:16,150 --> 00:16:25,960 და ახლა ჩვენ შეგვიძლია ვთქვათ, int ასაკი bracket N-- არ საკმაოდ მივიღებ ყოლა 333 00:16:25,960 --> 00:16:32,210 განაცხადოს მასივი ოთხი სტუდენტებს. 334 00:16:32,210 --> 00:16:38,050 ასე რომ, თუ ეს გამოიყურება მეხსიერების მსგავსი იქნება ეს. 335 00:16:38,050 --> 00:16:39,570 წმინდა ეს. 336 00:16:39,570 --> 00:16:46,606 ჩვენ ვაპირებთ, რომ სადღაც ამ memory-- მე დააყენა ეს იქ. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> ასე რომ, სადღაც მეხსიერებაში. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 ერთი, ორი, სამი, ოთხი. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 ჩვენ გვყავს ოთხი რიცხვებით in a row ამ მასივი ოთხი რიცხვებით. 343 00:17:09,849 --> 00:17:13,820 ასე რომ, ამჟამად, რა არის ზომა ერთი ასეთი ყუთები? 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 ჰო. 346 00:17:17,690 --> 00:17:18,390 ეს ოთხი ბაიტი. 347 00:17:18,390 --> 00:17:19,690 ეს არის 32 ბიტი. 348 00:17:19,690 --> 00:17:22,310 ასე რომ, ახლა ეს არის სხვადასხვა საწყისი მასივი, რომ ჩვენ 349 00:17:22,310 --> 00:17:24,020 ვნახეთ ადრე, მასივი სიმბოლო. 350 00:17:24,020 --> 00:17:28,540 სიმებიანი თითოეულ ყუთში იყო მხოლოდ ერთი ბაიტი, რადგან ხასიათი მხოლოდ ერთი ბაიტი. 351 00:17:28,540 --> 00:17:32,170 მაგრამ მასივი რიცხვებით, თითოეული ყუთი უნდა იყოს ოთხი ბაიტი, რათა 352 00:17:32,170 --> 00:17:34,060 შეესაბამება მთელი რიცხვი. 353 00:17:34,060 --> 00:17:37,197 ასე რომ, ეს არის ის, რაც მასივი ოთხი ints რომ გამოიყურებოდეს. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> და შემდეგ უკან კოდი. 356 00:17:43,870 --> 00:17:47,460 ახლა ჩვენ გვინდა რეალურად მაღაზია რიცხვებით რომ მასივი. 357 00:17:47,460 --> 00:17:53,470 ასე რომ, ახლა ეს არის ძალიან, ძალიან, ძალიან საერთო ნიმუში, რომელიც რაღაც მომენტში 358 00:17:53,470 --> 00:17:54,680 გახდეს კუნთების მეხსიერება. 359 00:17:54,680 --> 00:17:56,710 ასე int i = 0. 360 00:17:56,710 --> 00:17:57,940 მე ნაკლები n. 361 00:17:57,940 --> 00:18:01,850 i plus plus. 362 00:18:01,850 --> 00:18:05,790 ასაკი bracket i შეადგენს GetInt. 363 00:18:05,790 --> 00:18:15,100 >> ასე რომ, ეს ციკლი, ამ ფორმატში, თქვენ უნდა მიიღოს ძალიან გამოიყენება. 364 00:18:15,100 --> 00:18:20,010 ასე რომ, ეს არის ზოგადად, როგორ ჩვენ გადაურბინოთ თითქმის ნებისმიერი მასივი. 365 00:18:20,010 --> 00:18:23,690 ახლა შეამჩნია ამ სახის განმარტავს, თუ რატომ თავიდანვე 366 00:18:23,690 --> 00:18:29,870 ჩვენ არ გვაქვს ამისთვის მარყუჟების აპირებს int i უდრის 1, მე ნაკლები ან ტოლია 10. 367 00:18:29,870 --> 00:18:34,200 მიზეზი იმისა, რომ დაწყებული ნულოვანი ხდის ამ სამუშაოს კარგად მასივები. 368 00:18:34,200 --> 00:18:36,270 ასე რომ, კოლექტორები არის ნულოვანი ინდექსირებული. 369 00:18:36,270 --> 00:18:40,360 თუ ამ მასივი სიგრძე 4, ინდექსების 0 მეშვეობით 3. 370 00:18:40,360 --> 00:18:42,880 >> ასე რომ, პირველი iteration ამ loop 371 00:18:42,880 --> 00:18:49,930 ჩვენ ვაპირებთ, რომ შექმნის ასაკი bracket 0 ტოლი ზარი GetInt. 372 00:18:49,930 --> 00:18:52,440 ასე რომ, რასაც მე მოხდა შესვლის დროს კლავიატურაზე. 373 00:18:52,440 --> 00:18:56,970 მეორე უღელტეხილზე, ჩვენ შექმნის age1 ტოლია GetInt. 374 00:18:56,970 --> 00:18:58,230 მესამე უღელტეხილზე, age2. 375 00:18:58,230 --> 00:18:59,880 საბოლოო უღელტეხილზე age3. 376 00:18:59,880 --> 00:19:05,750 ასე რომ, თუ პირველ უღელტეხილზე მარყუჟის მე შევა რაოდენობა 4 კლავიატურის, 377 00:19:05,750 --> 00:19:07,740 მაშინ ჩვენ ჩადეთ 4 აქ. 378 00:19:07,740 --> 00:19:11,470 იმ შემთხვევაში, თუ მეორე უღელტეხილზე მე შევა 50, ჩვენ დააყენა 50 აქ. 379 00:19:11,470 --> 00:19:15,180 მესამე უღელტეხილზე მე შეიძლება შესვლის -1, 1, 380 00:19:15,180 --> 00:19:21,810 და ბოლოს თუ მე შემოსვლა 0- და მახსოვს, რომ ეს იყო ინდექსი სამი. 381 00:19:21,810 --> 00:19:25,350 >> მას შემდეგ, რაც ჩვენ loop უკან, მე იქნება incremented 4. 382 00:19:25,350 --> 00:19:27,770 i აღარ ნაკლებია, ვიდრე n, რომელიც 4. 383 00:19:27,770 --> 00:19:29,840 ჩვენ შესვენება გარეთ loop. 384 00:19:29,840 --> 00:19:32,578 ასე რომ, რა იქნება ცუდი ეს? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [INAUDIBLE]? 387 00:19:38,729 --> 00:19:39,604 აუდიტორია: [INAUDIBLE] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> დიახ. 390 00:19:46,400 --> 00:19:51,550 ასე რომ მასივი მხოლოდ ოთხი ადგილებში, რაც იმას ნიშნავს, როგორც ინდექსები 0 მეშვეობით 3. 391 00:19:51,550 --> 00:19:55,630 ასე რომ, თუ ეს მართლაც ასეა, მე მიიღოს ღირებულება 4 რაღაც მომენტში. 392 00:19:55,630 --> 00:20:00,910 ასაკის 4 იქნება შექმნის რაც არ უნდა მოხდეს, რომ იყოს მეტი აქ 393 00:20:00,910 --> 00:20:02,920 რა უნდა ვთქვა, შეიყვანოთ 6. 394 00:20:02,920 --> 00:20:05,010 სწორედ ამას უნდა დააყენოთ ეს 6. 395 00:20:05,010 --> 00:20:06,560 >> მაგრამ ჩვენ არ ვიცით, რა არის მეტი აქ. 396 00:20:06,560 --> 00:20:08,836 ეს არ არის მეხსიერება რომ ჩვენ გვქონდა ხელმისაწვდომობის. 397 00:20:08,836 --> 00:20:10,710 ასე რომ, თუ გახსოვთ წინა ლექცია, 398 00:20:10,710 --> 00:20:14,350 იგი ბეჭდვის ღირებულებები Zamyla და რაღაც მომენტში იგი მოხვდა ამ სეგმენტაცია 399 00:20:14,350 --> 00:20:17,990 ბრალია. ასე, რომ თქვენ ალბათ ხედავს ბევრი სეგმენტაცია ხარვეზებით, თქვენ 400 00:20:17,990 --> 00:20:20,530 განახორციელოს ზოგიერთი პრობლემა კომპლექტი. 401 00:20:20,530 --> 00:20:24,950 მაგრამ ეს არის ერთ-ერთი გზა, რომელიც შეგიძლიათ ექმნებათ სეგმენტაცია 402 00:20:24,950 --> 00:20:28,540 ბრალია, როდესაც თქვენ დაიწყოს წვდომის მეხსიერების გზები, რომ თქვენ არ უნდა იყოს. 403 00:20:28,540 --> 00:20:34,117 ასე რომ, ჩვენ არ გვაქვს წვდომა ამ ადგილას და ეს არის შეცდომა. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> ასე რომ, ეს არის უკეთესი. 406 00:20:40,190 --> 00:20:45,820 ახლა არის კიდევ პატარა საკითხი ამ კოდი. 407 00:20:45,820 --> 00:20:50,720 და ეს, ძირითადად, რომ ჩვენ ჯერ კიდევ ჩარჩენილი ოთხ სტუდენტებს. 408 00:20:50,720 --> 00:20:52,940 ახლა, თუ გსურთ გამოიყენოთ რვა სტუდენტები, OK. 409 00:20:52,940 --> 00:20:54,350 ეს არ არის, რომ დიდი გარიგება. 410 00:20:54,350 --> 00:20:58,120 შემიძლია წავიდეს, შეცვალოს კომენტარი, და შეცვალოს n. 411 00:20:58,120 --> 00:20:59,760 ახლა ეს იმუშავებს რვა სტუდენტებს. 412 00:20:59,760 --> 00:21:02,190 თუ მე შეადგინონ ამ და აწარმოებს ეს, ის გამოჩნდება ჩემთვის 413 00:21:02,190 --> 00:21:07,870 ის მოითხოვს რიცხვებით რვა სტუდენტები და ის მხოლოდ მუშაობა. 414 00:21:07,870 --> 00:21:11,850 მაგრამ ეს ნაკლები იდეალური უნდა recompile პროგრამა თითოეული დრო 415 00:21:11,850 --> 00:21:15,960 მინდა, რომ შეიცვალოს სტუდენტთა რაოდენობის რომ მე მინდა შესვლის ასაკის. 416 00:21:15,960 --> 00:21:22,990 >> ასე რომ, საბოლოო გაუმჯობესება ეს, როგორც ვნახავთ, აქ ჩვენ 417 00:21:22,990 --> 00:21:26,177 აპირებს მოითხოვოს რაოდენობის ხალხი. 418 00:21:26,177 --> 00:21:28,010 აქ ჩვენ გვაქვს მთელი რიგი ხალხი ოთახი 419 00:21:28,010 --> 00:21:29,880 ან ნებისმიერი ასაკის ადამიანი ოთახში. 420 00:21:29,880 --> 00:21:33,300 მაგრამ ჩვენ ვაპირებთ, რომ მოითხოვოს ნომერი ადამიანი ოთახში შესახებ. 421 00:21:33,300 --> 00:21:36,171 ასე რომ, ეს არის ზუსტად იგივე do- ხოლო მარყუჟი, რომ ჩვენ ვნახეთ ადრე. 422 00:21:36,171 --> 00:21:37,920 ეს არის ზუსტად იგივე do- ხოლო მარყუჟის, რომ თქვენ 423 00:21:37,920 --> 00:21:40,050 შეიძლება ახორციელებს პრობლემა კომპლექტი. 424 00:21:40,050 --> 00:21:43,102 ასე რომ, სანამ ისინი შესვლის n 1-ზე ნაკლები, 425 00:21:43,102 --> 00:21:45,310 ასე რომ ის მივიღე, რომ იყოს მინიმუმ ერთი პირი ოთახი. 426 00:21:45,310 --> 00:21:47,407 რადგან ისინი შესვლის n 1-ზე ნაკლები, 427 00:21:47,407 --> 00:21:48,990 მაშინ ჩვენ ვაპირებთ, რომ შევინარჩუნოთ ითხოვს ერთხელ. 428 00:21:48,990 --> 00:21:50,906 გთხოვთ შეიყვანოთ ნომერი ადამიანი ოთახში. 429 00:21:50,906 --> 00:21:53,550 ახლა, როდესაც ჩვენ გვაქვს ნომერი ხალხი room-- 430 00:21:53,550 --> 00:21:58,020 ასე რომ მე შეიძლება შევიდეს, რომ არ 200 ადამიანი ამ ოთახში. 431 00:21:58,020 --> 00:22:05,480 მაშინ ქვემოთ აქ ჩვენ ვაპირებთ, რომ მოდის და განაცხადოს მასივი ზომა 200. 432 00:22:05,480 --> 00:22:10,220 ჩვენ ვაცხადებთ მასივი, რომ დიდი საკმარისი გამართავს 200 ასაკის. 433 00:22:10,220 --> 00:22:15,370 მოდის ქვემოთ, ის ამისთვის loop რომ თქვენ გაქვთ ძალიან გამოიყენება. 434 00:22:15,370 --> 00:22:19,490 ასე რომ iterating ამ მასივი, იმის თითოეული ადგილმდებარეობა 435 00:22:19,490 --> 00:22:23,020 რომ მასივი რიცხვი, და მაშინ საბოლოოდ აქ ჩვენ 436 00:22:23,020 --> 00:22:28,340 უბრალოდ ვიღებთ მაგალითს iterating გამო, რომ მასივი, არ მივანიჭოთ, 437 00:22:28,340 --> 00:22:30,150 მაგრამ წვდომის ღირებულებებს. 438 00:22:30,150 --> 00:22:33,810 >> ასე რომ აქ ჩვენ ვხედავთ, რომ ამბობენ, ერთი წლის შემდეგ, 439 00:22:33,810 --> 00:22:40,470 პირი% მე ვიქნები% i წლის, სადაც პირველი% i არის i + 1. 440 00:22:40,470 --> 00:22:43,010 ამიტომ არის ეს მაჩვენებელი განსხვავებულია. 441 00:22:43,010 --> 00:22:49,420 და მეორე% i აპირებს იყოს მნიშვნელობა ინახება ასაკის array პლუს 1. 442 00:22:49,420 --> 00:22:54,217 ასე რომ, ეს პლიუს 1 არის მხოლოდ იმიტომ, რომ ჩვენ ამბობდა ეს პლუს 1, ასაკის i + 1. 443 00:22:54,217 --> 00:22:57,050 ეს პლიუს 1 არის მხოლოდ იმიტომ, რომ ჩვენ ამბობდა, ერთი წლის შემდეგ პირი 444 00:22:57,050 --> 00:22:58,280 იქნება ამ წლის. 445 00:22:58,280 --> 00:23:01,080 >> რატომ არის ეს i + 1? 446 00:23:01,080 --> 00:23:04,064 რატომ ჩვენ პლუს 1 იქ? 447 00:23:04,064 --> 00:23:04,564 ჰო. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 დიახ. 450 00:23:07,930 --> 00:23:10,510 ასე მახსოვს, კოლექტორები ნულოვანი ინდექსირებული. 451 00:23:10,510 --> 00:23:14,840 ასე რომ, თუ ჩვენ დაბეჭდვის ამ გარეთ ვინმე უბრალოდ წავიკითხე გამომავალი, 452 00:23:14,840 --> 00:23:19,380 მერე, ალბათ, გვინდა, რომ რაღაც როგორიცაა პირის ერთი პირი ნომერ, 453 00:23:19,380 --> 00:23:21,160 იქნება 20 წლის. 454 00:23:21,160 --> 00:23:23,570 პირი ნომერი ორი იქნება 15 წლის. 455 00:23:23,570 --> 00:23:27,420 ისინი მირჩევნია ვერ ვხედავ პირი ხმების ნულოვანი არის 15 წლის. 456 00:23:27,420 --> 00:23:36,460 >> ამიტომ შედგენას და უბრალოდ ხედავს, თუ რა ეს გამოიყურება მოსწონს შექმნა გარკვეული სივრცე. 457 00:23:36,460 --> 00:23:43,560 ჩადება ასაკის ადგენს. 458 00:23:43,560 --> 00:23:45,080 მიმდინარე ასაკის. 459 00:23:45,080 --> 00:23:46,580 ჩვენ ვხედავთ რაოდენობის ხალხი ოთახში. 460 00:23:46,580 --> 00:23:48,850 ასე რომ, მე ვიტყოდი, რომ არსებობს სამი ადამიანი ოთახში. 461 00:23:48,850 --> 00:23:54,000 ასაკი პირი ნომერი ერთი, მოდით ვთქვათ, 15, 20, 25. 462 00:23:54,000 --> 00:23:59,680 და ახლა მე ვიტყვი, ერთი წლის ახლა ისინი 16, 21, 26. 463 00:23:59,680 --> 00:24:02,900 ვნახოთ, რომ ეს მუშაობს ო, რომ არ არის ტოლი 3. 464 00:24:02,900 --> 00:24:07,940 ასე რომ, თუ მე ვიტყვი, ადამიანების რიცხვი 5, ერთი, ორი, სამი, ორი, ერთი, ერთი წლის შემდეგ 465 00:24:07,940 --> 00:24:11,170 ისინი უნდა იყოს ორი, სამი, ოთხი, სამი, ორი წლის იყო. 466 00:24:11,170 --> 00:24:16,500 ასე რომ, მე მხოლოდ ადვილად N იყოს 10,000. 467 00:24:16,500 --> 00:24:21,270 ახლა მე უნდა ისხდნენ აქ საკმაოდ ხოლო შესვლის ასაკის, მაგრამ ეს სამუშაოები. 468 00:24:21,270 --> 00:24:26,000 >> ასე რომ, ახლა მეხსიერება სადღაც აქვს მასივი ზომა 10,000, 469 00:24:26,000 --> 00:24:28,830 ასე რომ, საბოლოო ჯამში 40,000 bytes, რადგან არსებობს 470 00:24:28,830 --> 00:24:31,222 ოთხი ბაიტი თითოეული იმ რიცხვებით. 471 00:24:31,222 --> 00:24:33,180 ასე რომ, არსებობს მასივი ზომა 10,000, სადაც შეგვიძლია 472 00:24:33,180 --> 00:24:36,201 შესანახად ასაკის იმ 10,000 ადამიანი. 473 00:24:36,201 --> 00:24:36,700 ყველა უფლება. 474 00:24:36,700 --> 00:24:40,070 კითხვები ნებისმიერ ამ? 475 00:24:40,070 --> 00:24:41,892 ჰო. 476 00:24:41,892 --> 00:24:43,350 რა მოხდება, თუ თქვენ მისცა უარყოფითი რიცხვი? 477 00:24:43,350 --> 00:24:44,870 ვნახოთ, რა მოხდება. 478 00:24:44,870 --> 00:24:49,320 ასე რომ, ამ კონკრეტულ case-- ნომერი ხალხი ოთახი, ნეგატიური. 479 00:24:49,320 --> 00:24:52,580 ეს უარყვეს, იმიტომ, რომ აქ ჩვენ არ 480 00:24:52,580 --> 00:24:57,180 გატარება იმ ფაქტს, რომ, თუ n ნაკლებია, ვიდრე ერთი, ჩვენ ვაპირებთ, ვთხოვოთ ერთხელ. 481 00:24:57,180 --> 00:25:01,780 თუ თქვენ ცდილობენ განაცხადოს მასივი უარყოფითი ზომა, 482 00:25:01,780 --> 00:25:03,950 ის საერთოდ არ მუშაობს. 483 00:25:03,950 --> 00:25:05,570 >> მოდით ცდილობენ. 484 00:25:05,570 --> 00:25:08,000 მოდით იგნორირება, რასაც მნიშვნელობა ისინი შეყვანის n 485 00:25:08,000 --> 00:25:10,571 და უბრალოდ, ვამბობთ int ასაკის ნეგატიური. 486 00:25:10,571 --> 00:25:12,410 მოდით ვნახოთ, თუ ეს კი ადგენს. 487 00:25:12,410 --> 00:25:14,100 მე არ ვარ დარწმუნებული. 488 00:25:14,100 --> 00:25:14,920 No. 489 00:25:14,920 --> 00:25:18,280 ასე რომ, ასაკის გამოცხადდა მასივი უარყოფითი ზომა. 490 00:25:18,280 --> 00:25:22,540 ასე რომ, upfront იგი აღიარებს მასივი ვერ იყოს უარყოფითი ზომა და უარყოფს მას. 491 00:25:22,540 --> 00:25:26,840 ახლა, თუ ჩვენ არ ერევა ამ do- ხოლო loop სწორად, 492 00:25:26,840 --> 00:25:28,810 თუ ჩვენ არ შემოწმების თუ n ნაკლებია, ვიდრე 1 493 00:25:28,810 --> 00:25:32,690 ვთქვათ, ჩვენ მხოლოდ არ აქვს ამ ყველა 494 00:25:32,690 --> 00:25:35,940 და ნაცვლად ჩვენ უბრალოდ აითვისებდა რიცხვი. 495 00:25:35,940 --> 00:25:40,710 არ აქვს მნიშვნელობა რა რომ მთელი რიცხვი, ვაცხადებთ მასივი, რომ ზომა. 496 00:25:40,710 --> 00:25:44,250 >> ასე რომ, შემდგენელი არ შეუძლია შესაძლოა უჩივიან ახლა. 497 00:25:44,250 --> 00:25:48,780 თუ მე კომპილაციის ამას ასე რომ არ უჩივიან, 498 00:25:48,780 --> 00:25:51,480 იმიტომ, რომ მას არ შეუძლია იცოდეს, რომ მე ვარ შესვლას აპირებს უარყოფითი ნომერი, 499 00:25:51,480 --> 00:25:52,550 რომელიც შეიძლება იყოს არასწორი. 500 00:25:52,550 --> 00:25:54,633 ყველა ის იცის, მე შეიძლება შესვლის დადებითი რიცხვი, 501 00:25:54,633 --> 00:25:56,000 რომელიც შესანიშნავად მოქმედებს. 502 00:25:56,000 --> 00:26:01,090 ასე რომ, მე წარმომიდგენია, თუ მე შემოსვლა უარყოფითი 1 ხალხი ოთახი, სეგმენტირება ბრალია. 503 00:26:01,090 --> 00:26:06,040 >> ასე რომ, OK. 504 00:26:06,040 --> 00:26:13,160 მოდით დავამატოთ ეს უკან მხოლოდ შევინარჩუნოთ ის, რაც თავდაპირველად იყო. 505 00:26:13,160 --> 00:26:15,640 ასე რომ, ასაკის. 506 00:26:15,640 --> 00:26:18,120 ახლა თუ მე შევეცდები უარყოფითი age-- ასე რომ, მოდით 507 00:26:18,120 --> 00:26:19,710 ამბობენ, არსებობს ხუთი ადამიანი ოთახში. 508 00:26:19,710 --> 00:26:23,180 ასაკი პირი ნომერ არის -4, პირი სამ 509 00:26:23,180 --> 00:26:26,500 ნულოვანი, პირი three-- OK. 510 00:26:26,500 --> 00:26:29,850 ასე რომ, აქ, ერთი წლის შემდეგ, პირი ნომერი ერთი უარყოფითი იქნება 3 წლის. 511 00:26:29,850 --> 00:26:32,830 ასე რომ, ალბათ, არ აქვს აზრი. 512 00:26:32,830 --> 00:26:37,220 მაგრამ ეს მხოლოდ იმიტომ, რომ ეძებს კოდს ყველა ვაკეთებთ 513 00:26:37,220 --> 00:26:40,260 ითხოვს GetInt. 514 00:26:40,260 --> 00:26:44,110 >> ახლა, თუ ჩვენ ჰქონდა GetPositiveInt ფუნქცია 515 00:26:44,110 --> 00:26:49,690 ან ჩვენ რომ უბრალოდ გააკეთა ეს ერთგვარი იგივე ხოლო loop ქვემოთ იქ, 516 00:26:49,690 --> 00:26:52,340 მაშინ ეს იმუშავებს შესანიშნავად ჯარიმა. 517 00:26:52,340 --> 00:26:54,200 მაგრამ ამ კონკრეტულ შემთხვევაში, ჩვენ უბრალოდ არ 518 00:26:54,200 --> 00:26:57,772 არ უნდა იყოს გატარება უარყოფითი. 519 00:26:57,772 --> 00:26:59,147 ნებისმიერი სხვა კითხვები შესახებ კოლექტორები? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 OK. 522 00:27:03,250 --> 00:27:09,380 >> ასე რომ, ჩვენ ახლა ჩანს მასივები. 523 00:27:09,380 --> 00:27:12,500 და ჩვენ ვაპირებთ, უნდა გამოვიყენოთ ამ ბრძანების ხაზი არგუმენტები. 524 00:27:12,500 --> 00:27:14,680 ასე რომ პრობლემა კომპლექტი two-- მე ვიცი, რომ ბევრი თქვენგანი 525 00:27:14,680 --> 00:27:18,040 შესაძლოა კვლავ მუშაობს პრობლემა კომპლექტი ერთი, მაგრამ პრობლემა მითითებული ორი ახლოვდება. 526 00:27:18,040 --> 00:27:22,260 პრობლემა მითითებული ორი, თქვენ აპირებს უნდა იყოს საქმე სიმები, მასივები, 527 00:27:22,260 --> 00:27:23,950 და ბრძანება ხაზი არგუმენტები. 528 00:27:23,950 --> 00:27:26,270 >> ასე რომ, რა ბრძანება ხაზი არგუმენტები? 529 00:27:26,270 --> 00:27:29,570 ახლა, თქვენ ხედავთ, ქვემოთ აქ პატარა teaser ზუსტად რა 530 00:27:29,570 --> 00:27:30,950 იქნება ხდება. 531 00:27:30,950 --> 00:27:32,950 ჩვენ ვხედავთ, int ძირითადი, inc argc, სიმებიანი argv ფრჩხილებში. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 ასე რომ, პირველი მოდით ცდილობენ ინტერპრეტაცია რა, რომ ცდილობს ამბობენ. 534 00:27:38,130 --> 00:27:40,800 ახლა, OK. 535 00:27:40,800 --> 00:27:44,637 >> ასე რომ, ბრძანების თქვენ უნდა იყოს შეგუება ზოგიერთი ეს ბრძანებები 536 00:27:44,637 --> 00:27:48,580 ახლა, და თქვენ ალბათ აწარმოებს cd ტერმინალში ადრე. 537 00:27:48,580 --> 00:27:52,100 ასე რომ, თუ ჩვენ ვამბობთ, cd pset1, თქვენ იცით, რომ უნდა 538 00:27:52,100 --> 00:27:55,050 იცვლება შევიდა pset1 დირექტორია. 539 00:27:55,050 --> 00:27:59,120 >> ახლა შეამჩნია, რომ თქვენ არასდროს წერილობითი პროგრამა მოსწონს ეს ადრე. 540 00:27:59,120 --> 00:28:03,120 თითოეული პროგრამა, რომელიც თქვენ წერილობითი, თქვენ აწარმოებს, ვთქვათ, dot ხაზი Mario, 541 00:28:03,120 --> 00:28:06,779 dot slash ხარბ, და მაშინ იგი შეიძლება გამოიწვიოს თქვენ შეყვანა. 542 00:28:06,779 --> 00:28:08,570 ახლა, რომ ის არ არის, რაც ცვლილება დირექტორია აკეთებს. 543 00:28:08,570 --> 00:28:12,770 როდესაც თქვენ აწარმოებს CD, ეს არ ვთქვა, მაშინ, რომელიც დირექტორია გინდათ CD შევიდა? 544 00:28:12,770 --> 00:28:17,200 ამის ნაცვლად, თქვენ უბრალოდ ამბობენ, CD pset1, და ეს მხოლოდ მიდის შევიდა pset1 დირექტორია. 545 00:28:17,200 --> 00:28:20,430 >> ასე რომ, ანალოგიურად გვაქვს სხვა მაგალითები. 546 00:28:20,430 --> 00:28:21,540 მიიღოს hello. 547 00:28:21,540 --> 00:28:25,760 როდესაც თქვენ აწარმოებს მიიღოს, ეს არ ვთქვა, მაშინ, რომელიც პროგრამის გსურთ, რათა? 548 00:28:25,760 --> 00:28:29,620 თქვენ უბრალოდ ამბობენ, იმ ბრძანების ხაზი მიიღოს hello. 549 00:28:29,620 --> 00:28:31,060 >> Move არის კიდევ ერთი მაგალითი. 550 00:28:31,060 --> 00:28:34,840 ეს ერთი ჩვენ გადავდივართ mario.c წარადგინოს ერთი დირექტორია. 551 00:28:34,840 --> 00:28:38,060 ახლა ჩვენ ვიცით, ეს მაგალითი ჩვენ ნამდვილად ავლით ორი არგუმენტები. 552 00:28:38,060 --> 00:28:42,090 არსებობს mario.c როგორც პირველი არგუმენტი, და dot dot არის მეორე არგუმენტი. 553 00:28:42,090 --> 00:28:46,140 და მაშინ, როდესაც თქვენ აწარმოებს, რათა, თქვენ ვხედავთ, რომ მართლაც ხანგრძლივი ბრძანება ხაზი 554 00:28:46,140 --> 00:28:50,580 რომ მართლაც ხანგრძლივი ბრძანება დაბეჭდილი ბრძანებათა სტრიქონიდან. 555 00:28:50,580 --> 00:28:53,590 ასე რომ, ხანგრძლივი ბრძანება ამ მხოლოდ მოკლე ნაწილი, 556 00:28:53,590 --> 00:28:56,090 მაგრამ ახლა ჩვენ გვაქვს სამი ბრძანების ხაზი არგუმენტები. 557 00:28:56,090 --> 00:28:59,750 Dot dash ნულოვანი, hello, და hello.c. 558 00:28:59,750 --> 00:29:03,497 >> ასე რომ, ეს არის ბრძანება ხაზი არგუმენტები, არგუმენტები 559 00:29:03,497 --> 00:29:05,580 რომ თქვენ გადადის ზე ბრძანების ხაზი ისე, რომ იგი 560 00:29:05,580 --> 00:29:08,680 არ უნდა აიძულა როდესაც თქვენ აწარმოებს პროგრამა. 561 00:29:08,680 --> 00:29:13,090 ეს იქნება სამწუხარო, თუ, როდესაც თქვენ გაიქცა Clang მისი თქმით, "OK, 562 00:29:13,090 --> 00:29:15,630 რომელიც პროგრამაში, რომელიც ფაილი ხარ შედგენის? 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 რა დროშები რომ თქვენ მინდა შევა? dash o. 565 00:29:19,440 --> 00:29:21,190 რა გსურთ ფაილი ეწოდოს? 566 00:29:21,190 --> 00:29:21,690 hello. 567 00:29:21,690 --> 00:29:25,290 არა, უბრალოდ აწარმოებს clang dash o მიესალმები hello.c. 568 00:29:25,290 --> 00:29:28,820 >> ასე ეძებს უკან ეს. 569 00:29:28,820 --> 00:29:32,920 ახლა argc-- argc არის არგუმენტი ითვლის. 570 00:29:32,920 --> 00:29:36,620 ეს რიცხვი ბრძანება ხაზი არგუმენტები შევიდა ბრძანებათა ონლაინ. 571 00:29:36,620 --> 00:29:39,720 ისე, argv-- ტექნიკურად V დგას ვექტორი, 572 00:29:39,720 --> 00:29:41,460 რომელიც ძირითადად იმას ნიშნავს მასივი. 573 00:29:41,460 --> 00:29:42,680 მაგრამ თქვენ შეგიძლიათ იგნორირება, რომ. 574 00:29:42,680 --> 00:29:47,540 Argv-- სიმებიანი argv, ასე რომ, სიმებიანი argv ფრჩხილებში. 575 00:29:47,540 --> 00:29:50,150 ასე რომ, ეს არის კიდევ ერთი ფორმა ფრჩხილებში თქვენ არ მინახავს ადრე. 576 00:29:50,150 --> 00:29:52,300 ასე რომ, ჩვენ ვნახეთ bracket ნოტაცია, როდესაც ჩვენ განაცხადა, 577 00:29:52,300 --> 00:29:53,970 როგორიცაა, string s უდრის Zamyla. 578 00:29:53,970 --> 00:29:56,910 s bracket 0 ხელმისაწვდომი ხასიათი ზ 579 00:29:56,910 --> 00:30:00,720 >> ჩვენ ასევე ჩანს ფრჩხილებში, როდესაც ჩვენ ვთქვით, int ასაკის bracket 5. 580 00:30:00,720 --> 00:30:03,160 რომ განაცხადა მასივი ზომა 5. 581 00:30:03,160 --> 00:30:06,280 ასე რომ, აქ არის მობილური ფრჩხილებში ჩვენ არ მინახავს ადრე. 582 00:30:06,280 --> 00:30:09,630 ასე რომ, ეს ერთგვარი სიმებიანი argv, რომ იქნება სრულიად ნაცნობი 583 00:30:09,630 --> 00:30:12,050 რომ ეს იქნებოდა მხოლოდ სიმებიანი. 584 00:30:12,050 --> 00:30:14,520 ახლა ფრჩხილები რომ ეს არის მასივი. 585 00:30:14,520 --> 00:30:19,920 ასე რომ, სიმებიანი argv ფრჩხილებში საშუალებით რომ argv მასივი სტრიქონები. 586 00:30:19,920 --> 00:30:22,540 ახლა ტექნიკურად სიმებიანი არის მასივი სიმბოლო. 587 00:30:22,540 --> 00:30:26,400 ასე რომ, ეს არის მასივი მასივი სიმბოლო. 588 00:30:26,400 --> 00:30:31,490 მაგრამ ეს ბევრად უფრო ადვილია ფიქრი ეს უბრალოდ მასივი სტრიქონები. 589 00:30:31,490 --> 00:30:34,900 >> რატომ შეიძლება ფრჩხილებში უნდა იყოს ცარიელი? 590 00:30:34,900 --> 00:30:38,170 მსგავსად, რატომ არ შეიძლება ითქვას, bracket 5, bracket n? 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 ჰო. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 ჰო. 595 00:30:44,230 --> 00:30:46,396 ჩვენ არ ვიცით, რამდენი პორტები არ ვაპირებთ, რომ იყოს. 596 00:30:46,396 --> 00:30:53,560 ასე რომ, თუ გადავხედავთ clang მაგალითად, ჩვენ ითქვას clang dash o მიესალმები hello.c. 597 00:30:53,560 --> 00:30:56,710 ამ კონკრეტულ შემთხვევაში, არ მოხდება სამი ბრძანება ხაზი არგუმენტები. 598 00:30:56,710 --> 00:31:00,522 ასე რომ, brackets-- ჩვენ დავინახავთ, მეორე, ეს არ იქნება სამი. 599 00:31:00,522 --> 00:31:01,730 ეს ტექნიკურად იქნება ოთხი. 600 00:31:01,730 --> 00:31:04,030 მაგრამ ფრჩხილებში, ჩვენ გვინდა ვთქვათ, არსებობს სამი. 601 00:31:04,030 --> 00:31:08,220 მაგრამ ახლა, თუ ჩვენ შევხედე ნაბიჯი mario.c dot dot, ფრჩხილები 602 00:31:08,220 --> 00:31:09,760 ჩვენ გვინდა, რომ ბოლო ორი მათგანი. 603 00:31:09,760 --> 00:31:12,884 >> და არსებობს ბევრი ბრძანებები, ცვლადი ნომერი ბრძანების 604 00:31:12,884 --> 00:31:13,620 არგუმენტები. 605 00:31:13,620 --> 00:31:17,430 ასე რომ, რა ეს ვერსია ფრჩხილი ნოტაცია მიუთითებს 606 00:31:17,430 --> 00:31:20,820 ის არის, რომ argv არის მასივი სტრიქონები. 607 00:31:20,820 --> 00:31:24,360 მაგრამ ჩვენ არ ვიცით, რამდენი სიმები არიან, რომ მასივი. 608 00:31:24,360 --> 00:31:27,090 და როგორ უნდა მაშინ იცით, თუ როგორ ბევრი სიმები მასივი? 609 00:31:27,090 --> 00:31:28,870 ეს არის მთელი წერტილი argc. 610 00:31:28,870 --> 00:31:32,300 argc გვეუბნება, თუ როგორ ხანგრძლივი argv არის. 611 00:31:32,300 --> 00:31:36,500 >> ასე რომ, ბოლო რამ უნდა გონება არის ის, რომ, ტექნიკურად, 612 00:31:36,500 --> 00:31:40,820 ბრძანება თავად ითვლის, როგორც ერთი ბრძანების ხაზი არგუმენტები. 613 00:31:40,820 --> 00:31:45,330 ასე CD pset1, არსებობს ორი ბრძანების ხაზი არგუმენტები. 614 00:31:45,330 --> 00:31:50,260 პროგრამა თავისთავად, CD, და შემდეგ ფაქტობრივი არგუმენტი ნაწილი, pset1. 615 00:31:50,260 --> 00:31:54,490 ნებისმიერი პროგრამა, რომელიც თქვენ წერილობითი დღემდე უკვე ჰქონდა ერთი ბრძანება ხაზი არგუმენტი dot 616 00:31:54,490 --> 00:31:55,320 სლეში Mario. 617 00:31:55,320 --> 00:31:57,350 ეს არის ერთადერთი ბრძანება ხაზი არგუმენტი. 618 00:31:57,350 --> 00:32:00,900 >> ასე რომ, ახლა ეძებს clang dash o მიესალმები hello.c. 619 00:32:00,900 --> 00:32:01,905 რა არის argc? 620 00:32:01,905 --> 00:32:05,260 621 00:32:05,260 --> 00:32:06,080 4. 622 00:32:06,080 --> 00:32:08,140 ამიტომ argc არის 4. 623 00:32:08,140 --> 00:32:12,140 Clang, argv bracket 0 clang. 624 00:32:12,140 --> 00:32:15,630 argv bracket 1 dash 0. 625 00:32:15,630 --> 00:32:21,870 argv bracket 2 hello, და argv bracket 3 hello.c. 626 00:32:21,870 --> 00:32:26,813 OK, ასე რომ ამ, და მაშინ ჩვენ გამოგიგზავნით შევხედოთ ზოგიერთი პროგრამული მაგალითები. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> OK. 629 00:32:30,480 --> 00:32:36,260 ასე რომ, ჩვენ შევხედოთ hello3.c. 630 00:32:36,260 --> 00:32:41,890 ასე რომ, ეს უნდა იყოს ნაცნობი ერთ-ერთი პირველი გ მაგალითები 631 00:32:41,890 --> 00:32:45,800 ჩვენ გვქონდა, სადაც ჩვენ უბრალოდ, ვამბობთ, hello მსოფლიოში, მაგრამ ახლა ეს უფრო ზოგადი. 632 00:32:45,800 --> 00:32:52,300 ასე რომ, აქ ჩვენ ვამბობთ მიესალმები % s წარმატებული ო argv bracket 1. 633 00:32:52,300 --> 00:32:57,440 გაფრთხილების ასე წლამდე ამ ეტაპზე, ეს არის რა ჩემი template ფაილის ჰგავდა. 634 00:32:57,440 --> 00:33:01,800 მე მქონდა int ძირითადი (void), და მაშინ მე რამე ძირითად ფუნქციას. 635 00:33:01,800 --> 00:33:05,100 ახლა ნაცვლად, ერთხელ ჩვენ დავიწყოთ საქმე ბრძანების ხაზი არგუმენტები, 636 00:33:05,100 --> 00:33:07,890 ჩვენ უნდა განვაცხადო, სხვადასხვა ფორმით მთავარი. 637 00:33:07,890 --> 00:33:11,930 >> ასე რომ, ეძებს hello3 ერთხელ, მთავარი აპირებს 638 00:33:11,930 --> 00:33:15,990 მიიღოს ორი არგუმენტი, ახლა int argc, რაოდენობის ბრძანება ხაზი არგუმენტები, 639 00:33:15,990 --> 00:33:20,970 და სიმებიანი argv ფრჩხილებში, ფაქტობრივი strings შევიდა ბრძანებათა ონლაინ. 640 00:33:20,970 --> 00:33:26,560 ამიტომ, მე ვაპირებ, რომ შეიცვალოს თარგი ასახავს ამ ფაქტს. 641 00:33:26,560 --> 00:33:29,060 ახლა როდესაც წერთ პროგრამა, თუ არ 642 00:33:29,060 --> 00:33:33,720 უნდა მიიღოს ნებისმიერი ბრძანების ხაზი არგუმენტები, მაშინ უბრალოდ გამოიყენოთ int ძირითადი (void). 643 00:33:33,720 --> 00:33:37,070 მაგრამ ახლა, როდესაც თქვენ წერა ბრძანება ხაზი არგუმენტი პროგრამები, რომლებიც 644 00:33:37,070 --> 00:33:40,350 თქვენ უნდა აკეთებს პრობლემის მითითებული two-- ასე რომ, ახლა, რომ თქვენ გაშვებული 645 00:33:40,350 --> 00:33:42,630 პროგრამა, რომელიც უნდა მიიღოს ბრძანების ხაზი არგუმენტები, 646 00:33:42,630 --> 00:33:45,250 თქვენ უნდა მთავარი ამ ფორმით. 647 00:33:45,250 --> 00:33:51,290 >> ასე რომ, აქ ეს არის დიდი გამოყენება ბრძანების ხაზი არგუმენტი. 648 00:33:51,290 --> 00:33:54,100 ასე რომ, ბეჭდვის argv 1. 649 00:33:54,100 --> 00:33:59,180 OK მოდით კომპილირება და აწარმოებს ამ პროგრამის. 650 00:33:59,180 --> 00:34:02,440 ჩადება hello3. 651 00:34:02,440 --> 00:34:03,570 ადგენს. 652 00:34:03,570 --> 00:34:06,870 Dot slash hello3. 653 00:34:06,870 --> 00:34:08,920 და ვთქვათ, "Rob". 654 00:34:08,920 --> 00:34:10,760 გამარჯობა Rob. 655 00:34:10,760 --> 00:34:14,940 თუ მე ვიტყვი, "Hello მარია," hello მარია. 656 00:34:14,940 --> 00:34:15,719 გამარჯობა მარია. 657 00:34:15,719 --> 00:34:18,639 Hannah კვლავ აცხადებს, "hello მარია ", იმიტომ, რომ მე არ ვარ 658 00:34:18,639 --> 00:34:21,340 აკეთებს არაფერი ჩვენი argv 2. 659 00:34:21,340 --> 00:34:22,590 Argv 2 ახლა იქნებოდა "Hannah". 660 00:34:22,590 --> 00:34:25,030 Argc იქნება 3. 661 00:34:25,030 --> 00:34:27,735 რა მოხდება, თუ მე ეს? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 ასე მიესალმები null. 664 00:34:34,679 --> 00:34:38,760 >> მან მოკლედ შეეხო იმ ფაქტს, რომ, ტექნიკურად, GetString 665 00:34:38,760 --> 00:34:42,429 შესაძლოა დაბრუნდეს null, მაგრამ ჩვენ კიდევ გაცილებით მეტი შევიდა, რასაც null რეალურად არის. 666 00:34:42,429 --> 00:34:47,449 მაგრამ მას, როგორც საკითხია ის ფაქტი, რომ ზოგადად ცუდია. 667 00:34:47,449 --> 00:34:50,179 ჩვენ გააკეთა რაღაც თუ ის დაბეჭდვის "hello null." 668 00:34:50,179 --> 00:34:52,179 და მიზეზი ჩვენ გავაკეთეთ რაღაც არასწორი is-- კარგად, 669 00:34:52,179 --> 00:34:56,179 როდესაც მე გაიქცა dot slash hello3, argc 1. 670 00:34:56,179 --> 00:34:59,680 ასე რომ, ეს ნიშნავს, რომ სიგრძეზე argv 1. 671 00:34:59,680 --> 00:35:05,110 თუ მასივი სიგრძე 1, ერთადერთი სწორი მაჩვენებელი ნულის ტოლია. 672 00:35:05,110 --> 00:35:08,550 ასე რომ, აქ argv 1 გარეთ სპექტრი ამ მასივი. 673 00:35:08,550 --> 00:35:13,410 ეს იყო მსგავსი ადრე, როდესაც მე შევეცადე შესანახად 6 გარეთ ბოლოს მასივი. 674 00:35:13,410 --> 00:35:18,100 ასე რომ, ვცდილობ წვდომის რაღაც გარეთ argv ითვლის, 675 00:35:18,100 --> 00:35:21,340 და ჩვენ ვიღებთ null. 676 00:35:21,340 --> 00:35:24,360 >> ასე რომ, უკეთესი ვერსია ამ, გაუმჯობესება, 677 00:35:24,360 --> 00:35:27,010 მკაფიოდ შემოწმების argc. 678 00:35:27,010 --> 00:35:33,580 ასე რომ, თუ argc უდრის 2, რაც ნიშნავს, რომ გაიქცა რაღაც dot slash hello3 Rob. 679 00:35:33,580 --> 00:35:36,840 და ეს იქნება ბეჭდვა "Hello Rob". 680 00:35:36,840 --> 00:35:39,850 თუ argc არ უდრის 2, მაშინ ის უბრალოდ აპირებს 681 00:35:39,850 --> 00:35:42,560 იგნორირება რასაც თქვენ დააყენა ბრძანება ხაზი არგუმენტი 682 00:35:42,560 --> 00:35:43,960 როგორც ბრძანება ხაზი არგუმენტები. 683 00:35:43,960 --> 00:35:47,168 ან თუ თქვენ არ დააყენოს ნებისმიერი ყველა, ეს უბრალოდ აპირებს იგნორირება, რომ და უბრალოდ ამბობენ, 684 00:35:47,168 --> 00:35:47,960 "გამარჯობა." 685 00:35:47,960 --> 00:35:51,490 >> ამიტომ შედგენას ეს. 686 00:35:51,490 --> 00:35:54,500 ჩადება Hello4. 687 00:35:54,500 --> 00:35:56,790 და გაშვებული Hello4. 688 00:35:56,790 --> 00:36:00,010 Running ეს გზა, რა უნდა დაიბეჭდოს? 689 00:36:00,010 --> 00:36:01,330 "გამარჯობა." 690 00:36:01,330 --> 00:36:02,810 გამარჯობა. 691 00:36:02,810 --> 00:36:05,870 რაც შეეხება Hello4 Rob? 692 00:36:05,870 --> 00:36:06,950 "Hello Rob". 693 00:36:06,950 --> 00:36:10,580 და ბოლოს, hello Rob მარია მხოლოდ "hello თქვენ" კიდევ ერთხელ, 694 00:36:10,580 --> 00:36:13,677 იმიტომ, რომ თქვენ ნამდვილად არ შევა რაღაც, რომ ეს მოსალოდნელი იყო. 695 00:36:13,677 --> 00:36:15,510 თქვენ შევიდა სახელები ვიდრე ეს შეიძლება გაუმკლავდეს, 696 00:36:15,510 --> 00:36:19,500 ასე რომ მხოლოდ დეფოლტი, რომ მიესალმები თუ არა ქცევა. 697 00:36:19,500 --> 00:36:23,040 ასე რომ, ამ? 698 00:36:23,040 --> 00:36:26,290 ან ბრძანების ხაზი არგუმენტები? 699 00:36:26,290 --> 00:36:28,690 >> OK, ასე აღების შევხედოთ რამდენიმე მაგალითები გამოყენების 700 00:36:28,690 --> 00:36:34,230 ბრძანების ხაზი არგუმენტი პირველი ჩვენ argv dash 1 dot გ. 701 00:36:34,230 --> 00:36:38,510 ასე რომ, კომენტარი მისცემს მოშორებით რა ეს პროგრამა უნდა აკეთებს. 702 00:36:38,510 --> 00:36:42,460 მაგრამ შეამჩნია, ახლა ეს ციკლი, ამ მატჩების ზუსტი ნიმუში 703 00:36:42,460 --> 00:36:43,390 მე ამბობდა ადრე. 704 00:36:43,390 --> 00:36:46,240 ჩვენ უბრალოდ არ უნდა იყოს გამოყენებით argc ნაცვლად n. 705 00:36:46,240 --> 00:36:48,880 ახლა argc მართლაც n. 706 00:36:48,880 --> 00:36:51,260 ეს არის სიგრძეზე argv მასივი. 707 00:36:51,260 --> 00:36:59,600 ასე რომ iterating მეტი argv მასივი printf-Ing თითოეულ argv ღირებულება. 708 00:36:59,600 --> 00:37:04,730 >> ასე რომ, თუ მე ამ. 709 00:37:04,730 --> 00:37:08,232 ჩადება argv 1. 710 00:37:08,232 --> 00:37:09,940 იგი ადგენს. 711 00:37:09,940 --> 00:37:11,620 Dot ხაზი argv 1. 712 00:37:11,620 --> 00:37:15,530 უბრალოდ გაშვებული, ეს ნამუშევარი dot slash argv 1 713 00:37:15,530 --> 00:37:18,500 მას შემდეგ, რაც ეს იყო ერთადერთი ბრძანება ხაზი არგუმენტი პროგრამის სახელი. 714 00:37:18,500 --> 00:37:22,080 ყოველთვის იქნება არანაკლებ argc არ შეიძლება იყოს არანაკლებ ერთი, 715 00:37:22,080 --> 00:37:25,910 მას შემდეგ, რაც იქ ყოველთვის მინიმუმ იყოს პროგრამის სახელი აწარმოებს. 716 00:37:25,910 --> 00:37:32,040 ასე რომ, argv 1 Rob ბეჭდვა argv 1 და შემდეგ ახალი ხაზი "Rob". 717 00:37:32,040 --> 00:37:36,350 >> ამიტომ პირველ iteration ამ მარყუჟის, არის 0. 718 00:37:36,350 --> 00:37:39,090 Argv 0 პროგრამის სახელი. 719 00:37:39,090 --> 00:37:40,010 Dot ხაზი argv 1. 720 00:37:40,010 --> 00:37:43,770 და შემდეგ argv 1 არის ჩემი პირველი ბრძანება ხაზი არგუმენტი, რომელიც Rob. 721 00:37:43,770 --> 00:37:45,920 ამ ეტაპზე, ჩვენ ტოლია argc. 722 00:37:45,920 --> 00:37:48,210 ჩვენ შესვენება გარეთ loop და ჩვენ გავაკეთეთ. 723 00:37:48,210 --> 00:37:53,940 ასე რომ, ეს იმუშავებს თვითნებური ხმების ბრძანება ხაზი არგუმენტები. 724 00:37:53,940 --> 00:37:58,550 ყურადღება მიაქციეთ, რომ ბეჭდავს argv 0, argv 1, argv 2, argv 3, argv 4. 725 00:37:58,550 --> 00:38:00,150 და არ არსებობს argv 5. 726 00:38:00,150 --> 00:38:01,460 argc უდრის 5. 727 00:38:01,460 --> 00:38:06,960 ასე რომ, argc-- at i შეადგენს 5, ჩვენ შესვენება გარეთ loop. 728 00:38:06,960 --> 00:38:07,950 OK. 729 00:38:07,950 --> 00:38:11,315 ასე რომ, კითხვები, რომ სანამ ჩვენ შევხედოთ უფრო რთული მაგალითი? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> ასე რომ, argv 2. 732 00:38:16,860 --> 00:38:17,830 ყველა უფლება. 733 00:38:17,830 --> 00:38:20,610 ასე რომ, ჩვენ ჯერ კიდევ ბეჭდვის ბრძანების ხაზი არგუმენტები. 734 00:38:20,610 --> 00:38:23,170 მაგრამ ახლა შეამჩნია ჩვენ წყობილი for loop. 735 00:38:23,170 --> 00:38:24,670 ასე რომ, რა არის ეს აკეთებს? 736 00:38:24,670 --> 00:38:28,430 ასე რომ, პირველი მარყუჟის აკეთებს ზუსტად ის, რაც ადრე. 737 00:38:28,430 --> 00:38:30,950 ჩვენ ჯერ კიდევ looping ზე თითოეული ბრძანება ხაზი არგუმენტი, 738 00:38:30,950 --> 00:38:34,260 მაგრამ ახლა ეს მეორე მარყუჟის ჩვენ ასევე ჩანს რაღაც მსგავსი ადრე. 739 00:38:34,260 --> 00:38:38,600 როდესაც მას iterating მეტი Zamyla დაბეჭდვისას Z-A-M-Y-L-A. 740 00:38:38,600 --> 00:38:44,816 ასე რომ, ეს მეორე მარყუჟის int j ტოლია 0, n უდრის strlen of argv bracket i. 741 00:38:44,816 --> 00:38:49,170 >> მოდით პირველ ვფიქრობ, the-- მოდით გავლა. 742 00:38:49,170 --> 00:38:53,560 მოდით ვიფიქროთ, რა კომპიუტერი გააკეთოს, თუ მე გაიქცა ეს პროგრამა, როგორც მხოლოდ dot 743 00:38:53,560 --> 00:38:56,030 slash argv dash 2. 744 00:38:56,030 --> 00:39:03,590 ასე რომ, თუ მე გაიქცა ეს კოდი, მაშინ argc იქნება 1-ის ტოლი. 745 00:39:03,590 --> 00:39:07,050 და სიმებიანი argv-- იქ მხოლოდ იქნება ერთი მაჩვენებელი argv, 746 00:39:07,050 --> 00:39:12,370 და რომ იქნება ტოლი dot slash argv 2- პროგრამის სახელი. 747 00:39:12,370 --> 00:39:19,170 >> OK, ასე რომ, ახლა i უდრის 0, მე ნაკლები 1, i პლუს პლუს int j უდრის 0, 748 00:39:19,170 --> 00:39:23,880 n უდრის strlen of argv bracket 0, ასე პირველი iteration ამ loop. argv 749 00:39:23,880 --> 00:39:27,250 bracket 0 dot ხაზი argv 2. 750 00:39:27,250 --> 00:39:29,320 რა არის სიგრძეზე რომ სტრიქონს? 751 00:39:29,320 --> 00:39:32,480 ისე, dot ხაზი A-R-G-V dash 2. 752 00:39:32,480 --> 00:39:35,020 ასე strlen რომ იქნება 8. 753 00:39:35,020 --> 00:39:37,500 ასე კ უდრის 0, n უდრის 8. 754 00:39:37,500 --> 00:39:39,530 რადგან კ ნაკლებია, ვიდრე 8, j ++. 755 00:39:39,530 --> 00:39:44,080 და რომ ჩვენ ვაპირებთ, რომ იყოს ბეჭდვის ერთჯერადი ხასიათი, რომელიც 756 00:39:44,080 --> 00:39:47,350 არის argv bracket i bracket კ. 757 00:39:47,350 --> 00:39:49,826 >> ასე რომ, მხოლოდ i არის ნულოვანი. 758 00:39:49,826 --> 00:39:51,700 ჩვენ ჯერ კიდევ მხოლოდ ერთი ბრძანების ხაზი არგუმენტი. 759 00:39:51,700 --> 00:39:53,890 იმ პირველი მცდელობაა ამისთვის მარყუჟის, ჩვენ 760 00:39:53,890 --> 00:39:56,950 იქნება ბეჭდვა argv bracket 0 bracket 0. 761 00:39:56,950 --> 00:39:58,325 და შემდეგ კ აპირებს ნამატი. 762 00:39:58,325 --> 00:40:01,650 და ჩვენ ვაპირებთ, რომ ბეჭდვა argv bracket 0 bracket 1. 763 00:40:01,650 --> 00:40:04,150 და მაშინ argv bracket 0 bracket 2. 764 00:40:04,150 --> 00:40:09,030 >> ასე რომ, ეს არის ჩვენი პირველი შეხვედრა მრავალ განზომილებიანი მასივები. 765 00:40:09,030 --> 00:40:12,770 დამახსოვრება ადრე რომ ვთქვი რომ argv ტექნიკურად 766 00:40:12,770 --> 00:40:15,950 მასივი კოლექტორები პერსონაჟების. 767 00:40:15,950 --> 00:40:24,360 ასე რომ, აქ თუ ვთქვი რაღაც string s უდრის argv bracket i, 768 00:40:24,360 --> 00:40:29,590 და მე ვთქვი მაშინ, s bracket j, ამ იქნება განხორციელების იგივე. 769 00:40:29,590 --> 00:40:31,960 ახლა, ვნახე s bracket j ადრე. 770 00:40:31,960 --> 00:40:36,680 ეს მხოლოდ წვდომის j-th გმირი ამ სიმებიანი. 771 00:40:36,680 --> 00:40:48,010 ასე რომ, ეს, ჩვენ ვიღებთ j-ე ხასიათი i-th argv. 772 00:40:48,010 --> 00:40:51,450 >> ასე რომ, რა უნდა ეს საბოლოო ჯამში გამომავალი? 773 00:40:51,450 --> 00:40:53,210 ჩადება argv 2. 774 00:40:53,210 --> 00:40:54,730 იგი ადგენს. 775 00:40:54,730 --> 00:40:56,340 Dot slash argv 2. 776 00:40:56,340 --> 00:41:03,790 "Rob მარია Hannah" და მოგვცეს გარკვეული ოთახი. 777 00:41:03,790 --> 00:41:07,050 ასე რომ, ჩვენ ვხედავთ, რომ ეს outputting dot საკუთარი ხაზი და ხაზი 778 00:41:07,050 --> 00:41:08,920 საკუთარი ხაზი და საკუთარი ხაზი. 779 00:41:08,920 --> 00:41:11,260 ეს დაბეჭდვისას თითოეული ინდივიდუალური ხასიათი 780 00:41:11,260 --> 00:41:12,950 თითოეული ბრძანება ხაზი არგუმენტი. 781 00:41:12,950 --> 00:41:15,960 ხოლო შემდეგ, მათ შორის, იმიტომ, რომ ამ ახალი ხაზი 782 00:41:15,960 --> 00:41:19,380 ჩვენ დაბეჭდვის ქვემოთ აქ, მათ შორის ეს კიდე ბეჭდვა ახალი ხაზი. 783 00:41:19,380 --> 00:41:24,540 >> ასე რომ, ეს არის მსგავსი წინასწარი argv dash 1, 784 00:41:24,540 --> 00:41:26,459 რომელიც ბეჭდური ყოველ ბრძანება ხაზი არგუმენტი, 785 00:41:26,459 --> 00:41:28,500 მაგრამ ახლა ჩვენ დაბეჭდვის ბრძანების ხაზი არგუმენტები 786 00:41:28,500 --> 00:41:31,950 და შემდეგ iterating მეშვეობით თითოეულ ხასიათი ყოველი ბრძანება ხაზი არგუმენტი 787 00:41:31,950 --> 00:41:35,400 უნდა მიიღოს ამ გამომავალი. 788 00:41:35,400 --> 00:41:36,870 OK? 789 00:41:36,870 --> 00:41:40,570 ასე რომ, ამ? 790 00:41:40,570 --> 00:41:45,130 >> ერთი რამ უნდა აღინიშნოს, რომ ბრძანების ხაზი არგუმენტი 791 00:41:45,130 --> 00:41:49,990 ასე რომ, ისინი ერთმანეთისგან ფართები თქვენ, რასაკვირველია, ველით, რომ ისინი. 792 00:41:49,990 --> 00:41:53,050 ასე რომ, სიმებიანი შეიძლება ჰქონდეს ფართები იგი. 793 00:41:53,050 --> 00:41:57,380 ეს არ არის სუპერ მნიშვნელოვანია, მაგრამ თუ მე მინდოდა მესამე ბრძანება ხაზი არგუმენტი 794 00:41:57,380 --> 00:42:01,226 აქვს სივრცეში, მაშინ მე შეიძლება ითქვას, რომ რაღაც მსგავსი. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 OK? 797 00:42:05,550 --> 00:42:12,190 ასე რომ, ეს ახლა მაინც მხოლოდ სამი ბრძანების ხაზი არგუმენტი კარგად 4. 798 00:42:12,190 --> 00:42:17,620 Dot slash argv dash 2, რობ, მარია და Hannah Bloomberg. 799 00:42:17,620 --> 00:42:18,320 OK. 800 00:42:18,320 --> 00:42:19,310 კითხვები ამ? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> იქ არაფერი განსაკუთრებული შესახებ სივრცეში ხასიათი. 803 00:42:24,894 --> 00:42:27,810 ეს რაღაც უნდა იყოს, რომ ბრძანების ხაზი ეპყრობა სივრცის ხასიათი 804 00:42:27,810 --> 00:42:29,226 როგორ გამოყოფა თითოეული არგუმენტი. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 ყველა უფლება. 807 00:42:33,000 --> 00:42:39,950 ასე რომ, პრობლემა კომპლექტი two-- თქვენ იქნება 808 00:42:39,950 --> 00:42:43,240 ეძებს საიდუმლო გასაღები კრიპტოგრაფიის. 809 00:42:43,240 --> 00:42:47,700 ასე რომ, მსგავსი მაგალითი ჩვენ ვნახეთ, საშობაო ამბავი, 810 00:42:47,700 --> 00:42:52,840 თქვენ უნდა განხორციელების ზოგიერთი ალგორითმები, რომ მოცემულ გაგზავნა, 811 00:42:52,840 --> 00:42:55,560 თქვენ აპირებს შეძლებს უნდა დაშიფვრა, რომ გაგზავნა 812 00:42:55,560 --> 00:42:58,730 რომ მხოლოდ ვინმე, რომ საიდუმლო გასაღები, რომელიც დეკოდერი ბეჭედი, 813 00:42:58,730 --> 00:43:01,090 უნდა შეეძლოს გაშიფვრა. 814 00:43:01,090 --> 00:43:04,839 >> ასე რომ, ეს სტანდარტული გამოცემა. 815 00:43:04,839 --> 00:43:07,130 თქვენ უნდა განხორციელების ორი სხვადასხვა ვერსია. 816 00:43:07,130 --> 00:43:09,620 თუ მოხდება უნდა შევხედოთ იმ ჰაკერების edition-- ახლა, 817 00:43:09,620 --> 00:43:12,600 ჩვენ ვაპირებთ, რათა თქვენ სიმებიანი მოსწონს ეს, 818 00:43:12,600 --> 00:43:15,240 რომელიც წარმოადგენს დაშიფრული პაროლი. 819 00:43:15,240 --> 00:43:19,990 ასე რომ თქვენი მიზანია, რათა გაერკვნენ ის, რაც გაშიფრული პაროლი. 820 00:43:19,990 --> 00:43:26,950 ახლა ეს არის რეალურად როგორ პაროლები ინახება ბევრი კომპიუტერები, 821 00:43:26,950 --> 00:43:31,290 და ეს მხოლოდ ინახავს ამ შემთხვევითი სიმებიანი სიმბოლოს. 822 00:43:31,290 --> 00:43:34,440 თქვენ უნდა გაერკვნენ, თუ როგორ უნდა ამ შემთხვევითი სიმებიანი გმირები 823 00:43:34,440 --> 00:43:36,140 რა ორიგინალური დაგავიწყდათ იყო. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> და ბოლოს, მას შემდეგ, რაც ამ პრობლემა კომპლექტი, თქვენ უნდა 826 00:43:43,290 --> 00:43:46,100 უნდა შეეძლოს გაიგოს, რას ნიშნავს ეს. 827 00:43:46,100 --> 00:43:51,650 ასე რომ, თქვენ შეისწავლით თუ როგორ გაშიფვრა ეს ერთგვარი შემთხვევითი სტრიქონი. 828 00:43:51,650 --> 00:43:56,390 ანალოგიურად, თუ გახსოვთ კვირაში 0, თქვენ შეიძლება არ მინახავს ამ URL. 829 00:43:56,390 --> 00:44:00,210 და თქვენ უნდა შეეძლოს გაშიფვრა საბოლოოდ. 830 00:44:00,210 --> 00:44:04,810 თქვენ შეიძლება არ იყოს ბედნიერი, როდესაც თქვენ გაშიფვრა და დააჭირეთ ბმულს. 831 00:44:04,810 --> 00:44:05,700 ყველა უფლება. 832 00:44:05,700 --> 00:44:06,591 ეს არის ის დღეს. 833 00:44:06,591 --> 00:44:12,095 ასე რომ, თქვენ მომავალ კვირას! 834 00:44:12,095 --> 00:44:18,315 >> [ელექტრონული მუსიკის დაკვრა] 835 00:44:18,315 --> 00:47:15,619