1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] დევიდ ჯ Malan: ყველა უფლება. 2 00:00:08,160 --> 00:00:11,170 ეს არის CS50, და ეს არის ბოლომდე კვირაში ორი. 3 00:00:11,170 --> 00:00:14,650 თუ თქვენ მოველით, რომ იყოს მშიერი გარშემო ამ დროს ხვალ, ვიცი, რომ ჩვენ ვაპირებთ 4 00:00:14,650 --> 00:00:18,920 მოიწვიოს როგორც მცირე ჯგუფი ხვალ, ხუთშაბათი, 1:15 PM. 5 00:00:18,920 --> 00:00:21,460 არსებობს ამ URL აქ თუ გსურთ Rsvp. 6 00:00:21,460 --> 00:00:25,270 ფართი არის შეზღუდული, ასე რომ გთხოვთ აპატიებს თუ ფორმა შევსებული მიერ დროის 7 00:00:25,270 --> 00:00:26,680 შეავსოთ ამ გარეთ. 8 00:00:26,680 --> 00:00:29,400 კიდევ ერთი URL თუმცა ეს შეიძლება ინტერესთა ეს. 9 00:00:29,400 --> 00:00:32,409 >> ასე რომ, მხოლოდ თვეში, რა თქმა უნდა, იქნება ხელმისაწვდომი 10 00:00:32,409 --> 00:00:36,090 ყველა უფრო ფართოდ მეშვეობით EDX გავლით რომელიც FOLKS ინტერნეტში იქნება 11 00:00:36,090 --> 00:00:39,580 შეუძლია დაიცვას გასწვრივ, ჩაერთონ თქმა საკმაოდ აქტიურად, ფაქტობრივად. 12 00:00:39,580 --> 00:00:43,070 ისინი გექნებათ გამოყენებით CS50 ელექტრო და CS50 განიხილოს და ყველაზე მეტად 13 00:00:43,070 --> 00:00:45,840 სხვადასხვა პროგრამული ინსტრუმენტების, რომ ჩვენ უკვე იყენებს ამ სემესტრში. 14 00:00:45,840 --> 00:00:49,030 და ერთ ინიციატივების მინდა იღებს როგორც ექსპერიმენტი ამ წელიწადში 15 00:00:49,030 --> 00:00:53,120 , ვნახოთ, თუ რაოდენ ბევრის კონტენტი შეგვიძლია გარდაქმნა სხვა ლაპარაკობენ და 16 00:00:53,120 --> 00:00:54,110 წერილობითი ენებზე. 17 00:00:54,110 --> 00:00:58,000 ასე რომ, თუ თქვენ შეიძლება ჰქონდეს ინტერესი ამ პროექტში მონაწილეობდა, რომლის დროსაც 18 00:00:58,000 --> 00:01:02,090 ჩვენ ვუზრუნველყოფთ English ტრანსკრიპცია და სუბტიტრები კურსის 19 00:01:02,090 --> 00:01:05,190 ლექციები და შორტები და სემინარები და სექციები და მოსწონს - 20 00:01:05,190 --> 00:01:08,700 თუ საუბარი თავისუფლად ან ჩაწერის თავისუფლად ზოგიერთი სხვა ენაზე, გვინდა 21 00:01:08,700 --> 00:01:12,240 მიყვარს აწარმოონ თქვენ ამ პროექტში, რომლის დროსაც თქვენ იღებს ერთი ან მეტი 22 00:01:12,240 --> 00:01:15,340 ვიდეოები, თარგმნა მათთვის ენა იცნობენ. 23 00:01:15,340 --> 00:01:19,050 გადმოგცეთ გრძნობა ინტერფეისი, არსებობს ამ ვებ დაფუძნებული ინტერფეისი 24 00:01:19,050 --> 00:01:22,330 რომ ჩვენ უნდა გამოყენებით რომ შევქმნით არსებითად UI მოსწონს ეს. 25 00:01:22,330 --> 00:01:24,520 ეს იყო ჩემთვის სწავლების ზოგიერთი ჰელოუინი წინ. 26 00:01:24,520 --> 00:01:27,710 და მარჯვენა მხარეს შავ შემდეგი ამ დროს შტამპები, 27 00:01:27,710 --> 00:01:31,300 თქვენ ნახავთ სხვადასხვა რამ, რომ გამოვიდა ჩემი პირით, რომ დღეს. 28 00:01:31,300 --> 00:01:34,660 და მერე ქვემოთ, მასში თქვენ გექნებათ გარდაქმნა ზოგიერთი სხვა ენაზე. 29 00:01:34,660 --> 00:01:37,840 ზუსტად რა არის რუკების შორის, ამ შემთხვევაში, ინგლისური 30 00:01:37,840 --> 00:01:38,660 და, ვთქვათ, ესპანური. 31 00:01:38,660 --> 00:01:40,480 ასე რომ, რეალურად ძალიან მოსახერხებელი ინსტრუმენტი. 32 00:01:40,480 --> 00:01:43,690 შეგიძლიათ გადახვევა და სწრაფი წინ ძალიან ადვილად ერთად კლავიშთა. 33 00:01:43,690 --> 00:01:46,710 ასე რომ, თუ გსურთ, მონაწილეობა მიიღოს ამ ექსპერიმენტი და აქვს თქვენი სიტყვა 34 00:01:46,710 --> 00:01:50,730 უნახავს და წაიკითხეს პოტენციურად ათასობით FOLKS out არსებობს, გთხოვთ გრძნობენ 35 00:01:50,730 --> 00:01:51,960 უფასო მონაწილეობის. 36 00:01:51,960 --> 00:01:56,940 >> ახლა ერთი სიტყვით kitten ორშაბათიდან, მცირეოდენ ჩვენ გაგზავნილი ზედმეტად 37 00:01:56,940 --> 00:01:58,120 საშინელი გაგზავნა. 38 00:01:58,120 --> 00:02:02,130 Do გააცნობიეროს, რომ როგორც ოფისში საათის ვარაუდობენ და როგორც სექციები ვარაუდობენ, 39 00:02:02,130 --> 00:02:05,110 დიზაინი რა თქმა უნდა, ძალიან ბევრი რამ არ სტუდენტები თანამშრომლობს და 40 00:02:05,110 --> 00:02:09,250 საუბარი მუშაობას მეშვეობით პრობლემა კომპლექტი და პრობლემები ერთად. 41 00:02:09,250 --> 00:02:13,630 და რეალურად ხაზი უბრალოდ მოდის ქვემოთ, კიდევ ერთხელ, სამუშაო თქვენ საბოლოოდ 42 00:02:13,630 --> 00:02:16,420 უნდა წარმოადგინოს უნდა იყოს თქვენი საკუთარი. 43 00:02:16,420 --> 00:02:19,080 და ამიტომ, საკმაოდ პატიოსნად - ოფისის საათი, ეს სრულიად ნორმალურია - 44 00:02:19,080 --> 00:02:21,560 ეს სრულიად უნდა მოსალოდნელია, თუნდაც - უნდა chatting ზოგიერთ 45 00:02:21,560 --> 00:02:22,370 მეგობრები შემდეგი თქვენ. 46 00:02:22,370 --> 00:02:25,240 თუ იგი ბრძოლა ზოგიერთი თემა, და თქვენ, როგორიცაა, OH, ასევე ნება 47 00:02:25,240 --> 00:02:27,750 ჩემთვის გაძლევთ glimpse ზოგიერთი ხაზი კოდი, რომ დავწერე. 48 00:02:27,750 --> 00:02:28,290 სწორედ ჯარიმა. 49 00:02:28,290 --> 00:02:28,700 ეს მოხდება. 50 00:02:28,700 --> 00:02:31,580 და ეს ძალიან ხელს, ვფიქრობ, ერთად პროცესში სწავლისა. 51 00:02:31,580 --> 00:02:35,270 სად ხაზი, ერთხელ, იღებს გადმოკვეთა არის, როცა ხელმძღვანელი არის ერთგვარი tilted მეტი 52 00:02:35,270 --> 00:02:38,800 აქ ძალიან ბევრი წამი ან წუთი რომ მართლაც ჰქონდეს მხოლოდ 53 00:02:38,800 --> 00:02:41,250 იყო ბლოკის მოხსნა შესაძლებლობა თქვენი მეგობარი. 54 00:02:41,250 --> 00:02:43,870 და რა თქმა უნდა, როდესაც რამ მისაღებად გაცვალეს ელექტრონული ფოსტის მეშვეობით და Dropbox და 55 00:02:43,870 --> 00:02:45,350 მოსწონს, იქაც არის ხაზზე. 56 00:02:45,350 --> 00:02:48,940 ასე რომ ყველა საშუალებით, კომფორტისთვის და გრძნობს წახალისება ესაუბროთ მეგობრები 57 00:02:48,940 --> 00:02:51,270 და თანაკლასელები შესახებ psets და სხვა. 58 00:02:51,270 --> 00:02:54,680 და მხოლოდ გააცნობიეროს, რომ ის, რაც თქვენ საბოლოოდ წარუდგინოს უნდა იყოს ნამდვილად 59 00:02:54,680 --> 00:02:57,780 პროდუქტი თქვენი შექმნა და არა ვინმე სხვა. 60 00:02:57,780 --> 00:03:01,010 >> ასე რომ, იგივე ვენების of Cuddly არსებები, თქვენ გელით 61 00:03:01,010 --> 00:03:02,820 იცით ამ ბიჭს აქ. 62 00:03:02,820 --> 00:03:06,180 ასე რომ, ეს horrifically გაკოცე ფილმისთვის წლის წინ. 63 00:03:06,180 --> 00:03:08,680 ვინმეს აქ ჩანს Spaceballs? 64 00:03:08,680 --> 00:03:09,120 ყველა უფლება. 65 00:03:09,120 --> 00:03:10,220 ასე რომ კარგი ნომერი აქ. 66 00:03:10,220 --> 00:03:13,840 ასე რომ, ეს არის ჩვენი შესანიშნავად აკადემიური გზა შემოღების დღეს საბოლოოდ 67 00:03:13,840 --> 00:03:15,130 ცნება კრიპტოგრაფიის. 68 00:03:15,130 --> 00:03:19,010 და ა.შ. ერთი domain კონკრეტული პრობლემებს pset 2, რომელიც მოვა 69 00:03:19,010 --> 00:03:22,770 დაგვიანებით ხვალ, არის ჩაყვინთვის შევიდა სამყაროში კრიპტოგრაფიის, რომელიც 70 00:03:22,770 --> 00:03:26,380 არის ხელოვნების encrypting ან scrambling ინფორმაციას. 71 00:03:26,380 --> 00:03:30,160 და ეს საბოლოო ჯამში ეხება სამყაროს უსაფრთხოებას. 72 00:03:30,160 --> 00:03:34,440 >> ახლა უსაფრთხოების საუკეთესო us მოდის სახით საკმაოდ mundane მექანიზმები. 73 00:03:34,440 --> 00:03:36,920 ყველა ჩვენგანს აქვს სახელისა და პაროლის. 74 00:03:36,920 --> 00:03:41,350 და ყველას უნდა გვქონდეს ძალიან ცუდი სახელისა და პაროლის, სავარაუდოდ. 75 00:03:41,350 --> 00:03:45,250 თუ თქვენი პაროლი არის იგივე სხვადასხვა საიტებზე, რომ ალბათ არ 76 00:03:45,250 --> 00:03:47,920 საუკეთესო იდეა, როგორც ჩვენ განვიხილავთ მიმართ სემესტრის ბოლოს. 77 00:03:47,920 --> 00:03:51,680 თუ თქვენი პაროლი აწერია შენიშვნათა - არ ხუმრობა - თქვენი 78 00:03:51,680 --> 00:03:55,130 მონიტორი, რომ ძალიან არ არის აუცილებლად საუკეთესო დიზაინის მაგრამ საკმაოდ გავრცელებული 79 00:03:55,130 --> 00:03:56,140 მოვლენაა. 80 00:03:56,140 --> 00:04:00,420 და თუ თქვენ არ იყენებთ კრიპტოგრაფიის დაშიფვრა თქვენი პაროლები, ისინი 81 00:04:00,420 --> 00:04:01,610 განსაკუთრებით დაუცველი. 82 00:04:01,610 --> 00:04:04,670 ასე რომ, თუ თქვენ ფიქრობთ, თქვენ მიმდინარეობს სუპერ ჭკვიანი მიერ მქონე ფარული Word 83 00:04:04,670 --> 00:04:07,740 დოკუმენტურად სადმე თქვენს ხისტ დისკზე, რომელსაც აქვს ყველა თქვენი პაროლები, მაგრამ 84 00:04:07,740 --> 00:04:10,550 ეს საქაღალდეში, რომ არავინ აპირებს გამოიყურებოდეს წელს, რომ ძალიან არ არის ძალიან 85 00:04:10,550 --> 00:04:11,540 უსაფრთხო მექანიზმი. 86 00:04:11,540 --> 00:04:15,100 და მერე რა pset 2 გააცნობს არის ამ ხელოვნებას კრიპტოგრაფიის და 87 00:04:15,100 --> 00:04:18,300 scrambling ინფორმაცია ისე, რომ რამ, როგორიცაა პაროლები 88 00:04:18,300 --> 00:04:19,500 ყველა უფრო უსაფრთხო. 89 00:04:19,500 --> 00:04:24,500 რათა მოტივაცია სწორედ ამ რეალურ სამყაროს პრობლემა ძალიან არასამთავრობო რეალურ სამყაროში 90 00:04:24,500 --> 00:04:28,740 სცენარი, ნება მომეცით წარმოგიდგინოთ ერთი ჩვენი საყვარელი კლიპები აქ ამ 91 00:04:28,740 --> 00:04:29,895 ფილმის, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [ვიდეო აღწარმოების] 93 00:04:30,565 --> 00:04:32,995 -მუზარადი, თქვენ ჯოჯოხეთის განსახიერება, რა ხდება? 94 00:04:32,995 --> 00:04:34,730 რას აკეთებთ რომ ჩემი ქალიშვილი? 95 00:04:34,730 --> 00:04:38,960 -ნებართვა ჩემთვის წარმოგიდგინოთ ბრწყინვალე ახალგაზრდა პლასტიკური ქირურგი, დოქტორი ფილიპ 96 00:04:38,960 --> 00:04:43,290 Schlotkin, უდიდესი ცხვირი სამუშაო ადამიანი მთელი 97 00:04:43,290 --> 00:04:45,526 სამყაროს და ბევერლი. 98 00:04:45,526 --> 00:04:46,450 -შენი highness. 99 00:04:46,450 --> 00:04:47,380 -Nose სამსახური? 100 00:04:47,380 --> 00:04:48,035 მე არ მესმის. 101 00:04:48,035 --> 00:04:49,480 ის უკვე ჰქონდა ცხვირი სამუშაო. 102 00:04:49,480 --> 00:04:51,490 ეს იყო Sweet 16 დღემდე. 103 00:04:51,490 --> 00:04:53,090 -არა, ეს არ არის რაც ფიქრობთ. 104 00:04:53,090 --> 00:04:55,150 ეს ბევრად, ბევრად უარესი. 105 00:04:55,150 --> 00:04:59,860 თუ არ მომეცი კომბინაცია, რათა საჰაერო ფარი, დოქტორ Schlotkin იქნება 106 00:04:59,860 --> 00:05:04,135 მისცეს თქვენი ქალიშვილი უკან თავის ძველ ცხვირი. 107 00:05:04,135 --> 00:05:05,385 -არა! 108 00:05:08,202 --> 00:05:10,186 სად კიდევ რომ? 109 00:05:10,186 --> 00:05:11,178 -ყველა უფლება. 110 00:05:11,178 --> 00:05:11,674 გეტყვით. 111 00:05:11,674 --> 00:05:12,666 გეტყვით. 112 00:05:12,666 --> 00:05:14,154 -არა, Daddy, არ. 113 00:05:14,154 --> 00:05:15,150 თქვენ უნდა არა. 114 00:05:15,150 --> 00:05:16,460 -You're უფლება, ჩემო. 115 00:05:16,460 --> 00:05:18,450 მე მენატრება შენი ახალი ცხვირი. 116 00:05:18,450 --> 00:05:21,550 მაგრამ მე არ ვუთხრა კომბინაცია არ აქვს მნიშვნელობა რა. 117 00:05:21,550 --> 00:05:23,100 -ძალიან კარგად. 118 00:05:23,100 --> 00:05:25,510 დოქტორ Schlotkin, თქვენი ყველაზე ცუდი. 119 00:05:25,510 --> 00:05:26,760 -ჩემი სიამოვნება. 120 00:05:30,560 --> 00:05:31,180 -არა! 121 00:05:31,180 --> 00:05:33,450 დაველოდოთ, დაველოდოთ. 122 00:05:33,450 --> 00:05:34,770 გეტყვით. 123 00:05:34,770 --> 00:05:36,400 გეტყვით. 124 00:05:36,400 --> 00:05:38,630 -ვიცოდი ეს იმუშავებს. 125 00:05:38,630 --> 00:05:42,040 ყველა უფლება, მისცეს მას ჩემთვის. 126 00:05:42,040 --> 00:05:46,890 -კომბინაციის ერთი. 127 00:05:46,890 --> 00:05:47,290 -One. 128 00:05:47,290 --> 00:05:48,183 -One. 129 00:05:48,183 --> 00:05:48,950 ორი. 130 00:05:48,950 --> 00:05:49,370 ორი. 131 00:05:49,370 --> 00:05:50,450 ორი. 132 00:05:50,450 --> 00:05:50,715 სამი 133 00:05:50,715 --> 00:05:51,380 სამი. 134 00:05:51,380 --> 00:05:52,390 სამი. 135 00:05:52,390 --> 00:05:53,200 ოთხი. 136 00:05:53,200 --> 00:05:53,720 ოთხი. 137 00:05:53,720 --> 00:05:55,830 ოთხი. 138 00:05:55,830 --> 00:05:56,580 -ხუთი 139 00:05:56,580 --> 00:05:57,120 -ხუთი. 140 00:05:57,120 --> 00:05:58,560 -ხუთი. 141 00:05:58,560 --> 00:06:03,770 -So კომბინაციის ერთი, ორი, სამი, ოთხი, ხუთი. 142 00:06:03,770 --> 00:06:06,745 სწორედ stupidest კომბინაცია მე ოდესმე მოისმინა ჩემს ცხოვრებაში. 143 00:06:06,745 --> 00:06:09,290 სწორედ ამგვარი რამ იდიოტი იქნებოდა მისი ბარგის. 144 00:06:09,290 --> 00:06:11,540 -გმადლობთ, თქვენი highness. 145 00:06:11,540 --> 00:06:12,940 -რა ვქნათ? 146 00:06:12,940 --> 00:06:14,230 -I გამორთულია კედელი. 147 00:06:14,230 --> 00:06:14,630 -არა, თქვენ არ. 148 00:06:14,630 --> 00:06:15,430 თქვენ გამორთულია მთელი ფილმის. 149 00:06:15,430 --> 00:06:16,722 -I უნდა დაპრესილი არასწორი ღილაკს. 150 00:06:16,722 --> 00:06:18,078 -Well, დაუსვან მას უკან. 151 00:06:18,078 --> 00:06:18,805 განათავსეთ ფილმის უკან. 152 00:06:18,805 --> 00:06:19,080 -დიახ, სერ. 153 00:06:19,080 --> 00:06:19,270 დიახ, სერ. 154 00:06:19,270 --> 00:06:19,830 -მოდი, ერნა. 155 00:06:19,830 --> 00:06:20,270 მოდი, Gretchen. 156 00:06:20,270 --> 00:06:22,850 რა თქმა უნდა, იცით, მე მაინც აქვს, რომ ანგარიშსწორება თქვენ ამ. 157 00:06:27,400 --> 00:06:28,325 -Well, საერთოდ მუშაობს იგი? 158 00:06:28,325 --> 00:06:29,550 სად არის კარიბჭე? 159 00:06:29,550 --> 00:06:29,910 -ის მუშაობდა, სერ. 160 00:06:29,910 --> 00:06:30,770 ჩვენ გვყავს მოედანზე. 161 00:06:30,770 --> 00:06:31,390 -დიდი. 162 00:06:31,390 --> 00:06:35,630 ახლა ჩვენ შეუძლია მიიღოს ყველა ბოლო სუნთქვას სუფთა ჰაერი საწყისი პლანეტის Druidia. 163 00:06:35,630 --> 00:06:36,550 რა კომბინაცია? 164 00:06:36,550 --> 00:06:38,805 -ერთი, ორი, სამი, ოთხი, ხუთი. 165 00:06:38,805 --> 00:06:40,610 -ერთი, ორი, სამი, ოთხი, ხუთი? 166 00:06:40,610 --> 00:06:41,070 -დიახ. 167 00:06:41,070 --> 00:06:41,760 -სწორედ საოცარი. 168 00:06:41,760 --> 00:06:45,200 მაქვს იგივე ერთობლიობა ჩემი ბარგი. 169 00:06:45,200 --> 00:06:47,800 მომზადება Spaceball 1 დაუყოვნებლივ გამგზავრების. 170 00:06:47,800 --> 00:06:48,536 -დიახ, სერ. 171 00:06:48,536 --> 00:06:52,350 და შეცვალოს ერთობლიობა ჩემი ბარგი. 172 00:06:52,350 --> 00:06:53,250 -Ow! 173 00:06:53,250 --> 00:06:55,020 [END ვიდეო აღწარმოების] 174 00:06:55,020 --> 00:06:57,470 >> დევიდ ჯ Malan: საოცარი ფილმი თქვენ უნდა ყველა ვხედავთ. 175 00:07:00,600 --> 00:07:06,540 ამიტომ კონტექსტში აქ არის, რომ არასაიმედო მონაცემები მოდის საშუალება 176 00:07:06,540 --> 00:07:07,790 გაშიფრავს ეს და scramble ეს. 177 00:07:07,790 --> 00:07:11,060 და ამიტომ ეს, მაგალითად, არის მაგალითი დაშიფრული გაგზავნა. 178 00:07:11,060 --> 00:07:12,980 ეს რეალურად ამბობს რაღაც ინგლისურ ენაზე. 179 00:07:12,980 --> 00:07:14,750 მაგრამ ეს აშკარად არ მთლიანად აშკარაა. 180 00:07:14,750 --> 00:07:17,360 და ჩვენ მოდის სრული წრე დღეს აჯავრებენ გარდა რა ამ საიდუმლო 181 00:07:17,360 --> 00:07:18,380 გაგზავნა აქ არის. 182 00:07:18,380 --> 00:07:22,370 მაგრამ რეალურ ცხოვრებაში კომპიუტერების, რამ არც კი ჰგავს მათ, შესაძლოა, 183 00:07:22,370 --> 00:07:23,440 ინგლისური ფრაზები. 184 00:07:23,440 --> 00:07:27,500 მაგალითად, ეს არის ის, რაც თქვენ შეიძლება on სტანდარტული Linux ან Mac ან 185 00:07:27,500 --> 00:07:32,080 Unix კომპიუტერი ფაილი, რომელიც იყო ერთხელ მოუწოდა დაგავიწყდათ ფაილი. 186 00:07:32,080 --> 00:07:34,170 დღესდღეობით, მისთვის გადავიდა სხვა ადგილებში. 187 00:07:34,170 --> 00:07:38,660 მაგრამ თუ გადავხედავთ სწორი ადგილი სისტემა, თქვენ ნახავთ არა მარტო თქვენი 188 00:07:38,660 --> 00:07:41,430 სახელი ან რომ სხვა ადამიანების სისტემა, მაგრამ თქვენ ნახავთ 189 00:07:41,430 --> 00:07:43,410 დაშიფრული ვერსია მათი პაროლი. 190 00:07:43,410 --> 00:07:47,800 მართლაც, სიტყვის საძვალე იქ ვარაუდობს, რომ შემდეგი პერსონალი არის დაშიფრული. 191 00:07:47,800 --> 00:07:52,030 და ამ სერიაში ერთი შეხედვით შემთხვევითი წერილები და პერსონაჟები და ნომრები და 192 00:07:52,030 --> 00:07:56,370 ა.შ. შეიძლება გაშიფრავთ მხოლოდ ზოგადად იცის ზოგიერთი საიდუმლო - 193 00:07:56,370 --> 00:07:58,600 საიდუმლო სიტყვა, ფარული ნომერი. 194 00:07:58,600 --> 00:08:02,760 და ა.შ. რა თქმა უნდა, ხელოვნების კრიპტოგრაფიის საბოლოოდ boils ქვემოთ ენდობა ზოგიერთი 195 00:08:02,760 --> 00:08:05,700 დალაგება და რაღაცის ცოდნა, რომ ვინმე არ. 196 00:08:05,700 --> 00:08:10,010 ჩვენ შეისწავლონ ეს ცოტა უფრო დეტალურად დღესაც და pset მოვა. 197 00:08:10,010 --> 00:08:11,860 >> და ახლა სიტყვა უღელტეხილზე / Fail. 198 00:08:11,860 --> 00:08:15,250 ასე რომ განსაკუთრებით, როგორც ზოგიერთი თქვენგანი არ dived შევიდა pset 1, ელექტრო მოწყობილობების, და 199 00:08:15,250 --> 00:08:18,390 ძალიან ახალი მსოფლიო თავს, მიხვდა, რომ იმედგაცრუებები და 200 00:08:18,390 --> 00:08:21,340 დაბნეულობა და მხოლოდ ტექნიკური სირთულეების უნდა ველოდოთ. 201 00:08:21,340 --> 00:08:24,410 განსაკუთრებით პირველი pset, სადაც უბრალოდ იმდენად ახალი, უბრალოდ მიღების 202 00:08:24,410 --> 00:08:28,830 იცნობს ls და CD და ყველა ამ arcane ბრძანებები ახალ გარემოში. 203 00:08:28,830 --> 00:08:32,679 და ეს ცალკე ფაქტობრივი მასალა და პროგრამირების თავად. 204 00:08:32,679 --> 00:08:35,960 ასე რომ გააცნობიეროს, ძალიან, რომ არსებობს ნამდვილად საათებში, რომ არსებობს, როგორც 205 00:08:35,960 --> 00:08:36,770 მხარდაჭერა სტრუქტურა. 206 00:08:36,770 --> 00:08:38,620 სექცია იწყება ამ მოდის კვირა. 207 00:08:38,620 --> 00:08:41,990 მაგრამ რაც მთავარია, თუ თქვენ შეგრძნება მხოლოდ, რომ ეს არ არის 208 00:08:41,990 --> 00:08:44,420 მსოფლიოს თქვენთვის, გააცნობიეროს, რომ ის მართლაც ამჯამად მხოლოდ დრო სჭირდება. 209 00:08:44,420 --> 00:08:47,520 და იყო არა ეს შესაძლებლობა წლის წინ ჩემთვის აღების კლასის 210 00:08:47,520 --> 00:08:50,840 მიღება / ვერ, პატიოსნად, მე არასოდეს იქნებოდა კიდევ დადგენილი ფეხით საკლასო ოთახში. 211 00:08:50,840 --> 00:08:53,520 თქვენ შეგიძლიათ შეცვალოთ ეს წლამდე, ვთქვათ, მეხუთე ორშაბათს კურსის. 212 00:08:53,520 --> 00:08:57,110 ასე რომ, თუ თქვენ ზღვარზე ახლა, გააცნობიეროს, რომ ვიდრე უფროსი შევიდა ზოგიერთი სხვა 213 00:08:57,110 --> 00:09:01,000 წყლების საერთოდ, რა თქმა უნდა განიხილოს მხოლოდ იცვლება მიღება / ჩავარდება. 214 00:09:01,000 --> 00:09:03,750 ისევ და ისევ, იქ ნამდვილად არ ამ კულტურის აქ ჰარვარდის აღების რამ 215 00:09:03,750 --> 00:09:08,080 მიღება / ვერ წლიდან ყველას ნამდვილად სურს მიაღწიოს ან overachieve. 216 00:09:08,080 --> 00:09:11,470 მაგრამ გულწრფელად ვამბობ, რომ ეს არის შესანიშნავი გზა ცდილობს რაღაც, რომ შეიძლება არ 217 00:09:11,470 --> 00:09:13,110 იყოს ნაცნობი თქვენ. 218 00:09:13,110 --> 00:09:17,090 და თქვენ დასრულდება up აკეთებს ხშირ შემთხვევაში საკმაოდ ჯარიმა, ალბათ 219 00:09:17,090 --> 00:09:18,040 ბევრი თქვენი სიურპრიზი. 220 00:09:18,040 --> 00:09:20,850 და უფრო კონკრეტული ვადები, რას ვფიქრობ გაივლის / ვერ აკეთებს საერთოდ, 221 00:09:20,850 --> 00:09:23,350 განსაკუთრებით, როგორც თქვენ ალბათ გამოცდილი ერთად pset 0, თუ თქვენ დააყენა 222 00:09:23,350 --> 00:09:27,200 წელს 10 საათი, 15 საათი, 25 საათი შევიდა ზოგიერთი pset - და თქვენ მხოლოდ ამ banging 223 00:09:27,200 --> 00:09:28,180 თქვენი უფროსი წინააღმდეგ კედელი, 224 00:09:28,180 --> 00:09:29,850 და ეს მიღების super გვიან ღამით, 225 00:09:29,850 --> 00:09:31,880 მაგრამ თქვენ გადაღებული pset მოსწონს 90% გზა, 226 00:09:31,880 --> 00:09:33,780 თქვენ იცით უბრალოდ ვერ გაერკვნენ ერთი რამ - 227 00:09:33,780 --> 00:09:36,830 მიღება / ვერ იღებს ნამდვილად პირას გამორთვა კლასის მოსწონს, სადაც თქვენ შეგიძლიათ დაალაგოთ 228 00:09:36,830 --> 00:09:39,150 საქართველოს სიხარულით ამბობენ okay, მე ვიცი, რომ ეს არ არის სრულყოფილი. 229 00:09:39,150 --> 00:09:40,470 მაგრამ მე ვმუშაობდი ჩემი ass off ამ. 230 00:09:40,470 --> 00:09:42,410 მე საკმაოდ კმაყოფილი სადაც ეს დასრულდა. 231 00:09:42,410 --> 00:09:44,780 და რომ შეხვდება მოლოდინი უღელტეხილზე / ჩავარდება. 232 00:09:44,780 --> 00:09:46,850 ასე რომ შევინარჩუნოთ, რომ გონება. 233 00:09:46,850 --> 00:09:47,140 >> ყველა უფლება. 234 00:09:47,140 --> 00:09:50,980 ასე რომ იმ, ვინც არ იბრძვის გამოიყენოთ ჰარვარდის უნივერსიტეტი Wi-Fi ვიცი 235 00:09:50,980 --> 00:09:54,780 რომ არსებობს CS50 SSID, Wi-Fi კავშირი მცურავი გარშემო, რომ თქვენ 236 00:09:54,780 --> 00:09:56,520 შეიძლება უკეთესი გისურვებთ ამისთვის. 237 00:09:56,520 --> 00:09:59,430 ეს პატარა ირონიული, რომ დაგავიწყდათ ამ - თუ სურს, რომ შეეცდებიან 238 00:09:59,430 --> 00:10:03,080 დამაკავშირებელი ამ უკეთესი სიჩქარეზე და გვაცნობოთ თუ უკეთესი არ - 239 00:10:03,080 --> 00:10:09,240 არის ერთი, ორი, სამი, ოთხი, ხუთი, ყველა გზა რვა რადგან რვა არის 240 00:10:09,240 --> 00:10:10,270 უფრო უსაფრთხო, ვიდრე ხუთი. 241 00:10:10,270 --> 00:10:15,520 ასე რომ, თუ თქვენ უნდა Wi-Fi დაგავიწყდათ, დაუკავშირდეთ CS50 wirelessly აქ. 242 00:10:15,520 --> 00:10:16,950 ერთი, ორი, სამი, ოთხი, ხუთი, ექვსი, შვიდი, რვა. 243 00:10:16,950 --> 00:10:20,440 და პოსტ on CS50 იმსჯელებს თუ გაგიჩნდებათ რაიმე წყვეტილი კავშირი საკითხები, 244 00:10:20,440 --> 00:10:24,880 და ჩვენ ნება ძალებს, უნდა იცოდეს, ამ სივრცეში. 245 00:10:24,880 --> 00:10:25,180 >> ყველა უფლება. 246 00:10:25,180 --> 00:10:30,350 ამიტომ სწრაფი teaser, განსაკუთრებით იმ თქვენ, რომლებიც გულშემატკივართა ბიჭები ან გოგონების 247 00:10:30,350 --> 00:10:31,900 ყველაფერი Apple. 248 00:10:31,900 --> 00:10:37,566 რა მე გათხრილი მდე რამდენიმე წლის იყო ამ ფაილის აქ, ilock.c, მხოლოდ 249 00:10:37,566 --> 00:10:40,930 სახის უფრო კონკრეტული და უფრო რთული ზოგიერთი უფრო საბაზისო C 250 00:10:40,930 --> 00:10:42,350 პროგრამების ჩვენ წერილობით. 251 00:10:42,350 --> 00:10:44,360 ამიტომ გავხსენი ეს ფაილი, ilock.c. 252 00:10:44,360 --> 00:10:46,830 ეს შესაძლებელი ლექციები გვერდზე დღეს. 253 00:10:46,830 --> 00:10:49,470 On მარცხენა მხარეს, თქვენ ხედავთ გრძელ სიას ფუნქციები. 254 00:10:49,470 --> 00:10:51,860 ასე რომ თანამემამულე ვინ დაწერა ეს დაწერა up ბევრი ფუნქციები, 255 00:10:51,860 --> 00:10:53,290 მეტი, ვიდრე უბრალოდ ძირითადი. 256 00:10:53,290 --> 00:10:55,490 მან გამოიყენა მთელი bunch ბიბლიოთეკების აქ. 257 00:10:55,490 --> 00:11:00,450 და თუ ჩვენ დავიწყებთ სენსორული მეშვეობით, რაც ამ ფაქტობრივად არის ძალიან 258 00:11:00,450 --> 00:11:04,670 პირველი, მე მჯერა, ბზარი ამისთვის ორიგინალური iPhone. 259 00:11:04,670 --> 00:11:08,000 როდესაც თქვენ სურდა jailbreak ორიგინალური iPhone, რაც იმას ნიშნავს, untether 260 00:11:08,000 --> 00:11:11,800 იგი AT & T და ფაქტობრივად დააყენოთ სპეციალური პროგრამული მასზე და გავაკეთოთ რამ 261 00:11:11,800 --> 00:11:13,510 რომ Apple არ სურს ხალხს უნდა გააკეთოს - 262 00:11:13,510 --> 00:11:17,020 კარგად, ვიღაცამ აიღო დრო უნდა გაერკვნენ, თუ როგორ ზუსტად მათ შეეძლოთ გამოეყენებინათ 263 00:11:17,020 --> 00:11:20,880 პროგრამული ხარვეზები, შეცდომები, შეცდომები, წელს Apple-ის პროგრამული უზრუნველყოფა. 264 00:11:20,880 --> 00:11:22,650 და ამგვარად დაიბადა ilock.c. 265 00:11:22,650 --> 00:11:26,670 რომ თუ თქვენ შედგენილი ეს კომპიუტერი და დამონტაჟებული მას გადატანა iPhone რომ 266 00:11:26,670 --> 00:11:29,810 იყო დაკავშირებული თქვენს კომპიუტერში მეშვეობით, ვთქვათ, USB კაბელი, ეს მოგცემთ 267 00:11:29,810 --> 00:11:33,360 ადმინისტრაციულ ან root პრივილეგიებით თქვენს iPhone და მოდით თქვენ აკეთებთ საკმაოდ ბევრი 268 00:11:33,360 --> 00:11:34,170 რაც გაგიხარდებათ. 269 00:11:34,170 --> 00:11:36,740 >> და ასე რომ უკვე ამ მომხიბლავი კატა და მაუსი თამაშის შორის Apple და 270 00:11:36,740 --> 00:11:39,920 დანარჩენი მსოფლიო კერძოდ, როგორც ისინი, ისევე როგორც ბევრი კომპანია, ცდილობენ ჩაკეტვა 271 00:11:39,920 --> 00:11:43,220 მათი პერსონალის ქვემოთ ასე რომ თქვენ შეგიძლიათ მხოლოდ შუაში იყო, რაც მათ განზრახული. 272 00:11:43,220 --> 00:11:46,620 მაგრამ წყალობით ადამიანს მოსწონს ეს და მათი გაგება დაბალი დონის 273 00:11:46,620 --> 00:11:50,580 დეტალები და, ამ შემთხვევაში, C პროგრამირების და ბევრი ნაცნობი აშენებს 274 00:11:50,580 --> 00:11:54,630 რომ დავიწყეთ თამაში, თქვენ შეგიძლიათ რეალურად ბერკეტები 275 00:11:54,630 --> 00:11:59,050 ტექნიკის წესით ხედავთ fit და არ ემთხვეოდეს ზოგიერთი კორპორატიული პირი. 276 00:11:59,050 --> 00:12:01,360 ასე მაგალითად, მე არ ვიცი, რა ყველა ამ აკეთებს. 277 00:12:01,360 --> 00:12:03,220 მაგრამ GetVersion ხმები საკმაოდ მარტივია. 278 00:12:03,220 --> 00:12:05,480 და როგორც ჩანს, ეს ფუნქცია, რომ ეს ადამიანი წერს. 279 00:12:05,480 --> 00:12:09,240 მიიღეთ გარკვეული რიცხვი, როგორც არგუმენტი, არ დააბრუნებს არაფერი, მაგრამ 280 00:12:09,240 --> 00:12:13,080 როგორც ჩანს, მარყუჟის რეჟიმში ამისთვის loop აქ და თუ მდგომარეობა, თუ მდგომარეობა, 281 00:12:13,080 --> 00:12:15,620 შესვენების და როგორღაც ეხება ვერსია ნომრები. 282 00:12:15,620 --> 00:12:16,700 თუ ჩვენ გადახვევა Down - 283 00:12:16,700 --> 00:12:19,570 მიუხედავად იმისა, რომ ბევრი ამ სიტყვებით ვაპირებთ იყოს ახალი და იქ 284 00:12:19,570 --> 00:12:22,590 მთელი ბევრი ფუნქციები აქ ჩვენ მინახავს და შეიძლება არ ოდესმე ვხედავ მეტი 285 00:12:22,590 --> 00:12:23,830 კურსი სემესტრის - 286 00:12:23,830 --> 00:12:27,150 დასასრულს დღეს, იგი შემდეგნაირად იგივე წესების და ლოგიკა, რომ ჩვენ 287 00:12:27,150 --> 00:12:28,760 თამაშში ჯერჯერობით. 288 00:12:28,760 --> 00:12:34,220 ასე რომ, ეს არის ზედმეტად მოხუცი ბზარი თქვენი iPhone 3S ან 4S ან მალე 5S, ამ დღეებში, 289 00:12:34,220 --> 00:12:37,320 მაგრამ ვიცით, რომ ეს ყველაფერი ძალიან გამომდინარეობს ამ მსოფლიოს, რომ ჩვენ 290 00:12:37,320 --> 00:12:38,430 dived შევიდა. 291 00:12:38,430 --> 00:12:41,900 >> მოდით შევხედოთ ცოტა უფრო მარტივი მაგალითი. 292 00:12:41,900 --> 00:12:46,100 ეს ერთი, უბრალოდ მისაღებად warmed რაიმე სინტაქსი და ასევე ზოგიერთი სხვა მონაცემები 293 00:12:46,100 --> 00:12:49,240 ტიპი რომ ჩვენ ვისაუბრეთ, მაგრამ არ ნამდვილად ჩანს C. ასე რომ, ეს 294 00:12:49,240 --> 00:12:51,680 ფაილი სახელად positive1.c. 295 00:12:51,680 --> 00:12:55,120 და თითო კომენტარები ზედა, ეს მხოლოდ მოითხოვს, რომ მომხმარებლის უზრუნველყოფენ 296 00:12:55,120 --> 00:12:55,960 დადებითი რიცხვი. 297 00:12:55,960 --> 00:12:59,530 ასე რომ მაგალითი do-ხოლო loop, რომელიც ლამაზი მომხმარებლის-ინტერაქტიული 298 00:12:59,530 --> 00:13:01,980 პროგრამების სადაც თქვენ უნდა ვუთხრა მომხმარებელს რაღაც. 299 00:13:01,980 --> 00:13:05,190 და თუ ისინი არ თანამშრომლობენ, თქვენ დაწეროთ მათ ან უარყოს მათი შეყვანის. 300 00:13:05,190 --> 00:13:11,610 მაგალითია, მე აპირებს ხაზები 19 გზით 24 ცოტა ხნის როგორც მომხმარებელს აქვს 301 00:13:11,610 --> 00:13:14,310 არ მომცა დადებითი რიცხვი. 302 00:13:14,310 --> 00:13:20,400 ახლა ეს დეტალურად აქ on line 18, რატომ ვაცხადებ N ზემოთ ეს მთელი 303 00:13:20,400 --> 00:13:24,490 looping შენება როგორც ეწინააღმდეგებოდა უფლება მომდევნო ხაზი 22, სადაც მე 304 00:13:24,490 --> 00:13:26,880 რეალურად ზრუნვა მისაღებად N? 305 00:13:26,880 --> 00:13:27,330 ჰო? 306 00:13:27,330 --> 00:13:27,780 [INAUDIBLE] 307 00:13:27,780 --> 00:13:29,040 >> დევიდ ჯ Malan: ჰო, ამიტომ ეს საკითხი ფარგლებს. 308 00:13:29,040 --> 00:13:30,850 და ერისკაცად წარმოგვიდგება უფლებამოსილების ვადა, რას ფარგლებს ეხება? 309 00:13:34,690 --> 00:13:36,610 ჰო? 310 00:13:36,610 --> 00:13:37,860 [INAUDIBLE] 311 00:13:40,040 --> 00:13:41,105 დევიდ ჯ Malan: იქნებ ცოტა louder? 312 00:13:41,105 --> 00:13:43,450 დინამიკები 1: სად შეგიძლიათ კონკრეტული ცვლადი. 313 00:13:43,450 --> 00:13:45,170 დევიდ ჯ Malan: Perfect. 314 00:13:45,170 --> 00:13:47,360 სად შეგიძლიათ კონკრეტული ცვლადი. 315 00:13:47,360 --> 00:13:50,400 და საერთოდ, უზენაესობის ცერის დღემდე არის, რომ ფარგლებს ზოგიერთი 316 00:13:50,400 --> 00:13:55,860 ცვლადი განისაზღვრება უახლესი Curly braces რომ თქვენ ვხედავთ. 317 00:13:55,860 --> 00:14:02,010 და ა.შ. ამ შემთხვევაში, თუ დაუშვა შეცდომა, გამოცხადების N on line 22, 318 00:14:02,010 --> 00:14:03,010 რომ ხაზი იმუშავებს. 319 00:14:03,010 --> 00:14:10,990 მინდა კიდევ int, და მე მისთვის შეიძლება შევიდა, რომ ცვლადი N სტრიქონში 22. 320 00:14:10,990 --> 00:14:16,900 მაგრამ ხაზი კოდი, რომ ახლა არ ვიცი რა მე ვსაუბრობ? 321 00:14:16,900 --> 00:14:22,650 ასე რომ 25 და თურმე 24, ასევე, რადგან ამ შემთხვევაში, მას ეკისრება გარეთ 322 00:14:22,650 --> 00:14:23,610 of Curly braces. 323 00:14:23,610 --> 00:14:27,280 ასე რომ მხოლოდ ცოტა უსიამოვნოა, მაგრამ ძალიან ადვილად მოგვარდება უბრალოდ გამოცხადების 324 00:14:27,280 --> 00:14:30,140 ცვლადი გარეთ ფუნქცია თავად. 325 00:14:30,140 --> 00:14:32,600 >> ახლა ვნახავთ, დღესვე შეგიძლიათ ერთი ნაბიჯი შემდგომი. 326 00:14:32,600 --> 00:14:34,860 და თქვენ შეიძლება კი ცოტა ზარმაცი - 327 00:14:34,860 --> 00:14:37,320 და ეს არ უნდა იყოს რეკომენდირებული, ზოგადად - 328 00:14:37,320 --> 00:14:42,260 მაგრამ თქვენ შეიძლება კი ეზარება და ამით ცვლადი გლობალურად, ასე ვთქვათ, არ 329 00:14:42,260 --> 00:14:46,670 შიგნით ფუნქცია, არ შიგნით მარყუჟი, მაგრამ ფაილი თავად გარეთ 330 00:14:46,670 --> 00:14:49,600 ყველა ფუნქციების თქვენ წერილობითი, როგორც მე აქ ხაზი 15. 331 00:14:49,600 --> 00:14:51,160 მაგრამ ეს ზოგადად frowned საფუძველზე. 332 00:14:51,160 --> 00:14:55,680 მაგრამ გააცნობიეროს ეს გადაწყვეტა ხან სხვა პრობლემებს, როგორც ჩვენ გამოგიგზავნით 333 00:14:55,680 --> 00:14:56,620 საბოლოოდ ვხედავთ. 334 00:14:56,620 --> 00:14:58,130 ასე რომ ახლა, ჩვენ დავტოვებთ მას მოსწონს ეს. 335 00:14:58,130 --> 00:15:01,030 მაგრამ ვნახოთ, შევძლებთ თუ გადაწერას ამ უბრალოდ უნდა დაიწყოს გამოხატავს საკუთარ თავს 336 00:15:01,030 --> 00:15:01,990 ცოტა განსხვავებულად. 337 00:15:01,990 --> 00:15:05,330 >> ასე რომ, ეს პროგრამა, უბრალოდ უნდა იყოს მკაფიო, არის positive1. 338 00:15:05,330 --> 00:15:11,810 ნება მომეცით წავიდეთ წინ აქ და ჩემი ტერმინალის ფანჯარაში მიიღოს positive1, შეიყვანეთ. 339 00:15:11,810 --> 00:15:12,740 კომპილაციისას okay. 340 00:15:12,740 --> 00:15:14,910 მე ვაპირებ აწარმოებს positive1, დააჭიროთ. 341 00:15:14,910 --> 00:15:16,820 მე მოვითხოვ რომ თქვენ მაძლევს დადებითი მთელი რიცხვი. 342 00:15:16,820 --> 00:15:18,260 მე ვთქვა -1. 343 00:15:18,260 --> 00:15:18,910 რომ არ მუშაობდა. 344 00:15:18,910 --> 00:15:22,150 0, 99, რომელიც, როგორც ჩანს მუშაობა. 345 00:15:22,150 --> 00:15:23,570 იქნებ არ საუკეთესო მკაცრი გამოცდა. 346 00:15:23,570 --> 00:15:26,480 მაგრამ მაინც კარგია, საღი აზრის გამშვები რომ ჩვენ სწორ გზაზე. 347 00:15:26,480 --> 00:15:29,240 ახლა ნება მომეცით წავიდეთ წინ და გახსნა ვერსია ორი ამ. 348 00:15:29,240 --> 00:15:32,500 და რით განსხვავდება უკვე? 349 00:15:32,500 --> 00:15:35,140 იგი ახორციელებს იგივე. 350 00:15:35,140 --> 00:15:40,660 ახლა კი რა jumping, როგორც ნათლად სხვადასხვა ამ დროს? 351 00:15:40,660 --> 00:15:42,560 ჰო, ისე ამ bool მწვანე. 352 00:15:42,560 --> 00:15:45,980 Gedit უკვე მონიშნულია მწვანე ამ სიტყვით ცნობილია როგორც bool, 353 00:15:45,980 --> 00:15:47,000 რაც მონაცემები ტიპის. 354 00:15:47,000 --> 00:15:51,080 იგი არ მოდის აგებული ყველა ვერსიები C. თქვენ უნდა შეიცავდეს 355 00:15:51,080 --> 00:15:52,010 კონკრეტული ბიბლიოთეკაში. 356 00:15:52,010 --> 00:15:54,770 ჩვენს შემთხვევაში, მე მოიცავდა CS50 ბიბლიოთეკაში ისე, რომ ჩვენ 357 00:15:54,770 --> 00:15:56,460 ხელი მიუწვდება bool. 358 00:15:56,460 --> 00:15:59,810 მაგრამ ხაზი 18, ჩვენ, როგორც ჩანს, აქვს ლოგიკური მნიშვნელობა მოუწოდა მადლობელი. 359 00:15:59,810 --> 00:16:01,040 ასე რომ შეეძლო უწოდა არაფერი. 360 00:16:01,040 --> 00:16:04,500 მაგრამ მე მას მადლობას მხოლოდ იმიტომ, რომ სახის გადმოცემა გარკვეული სემანტიკური მნიშვნელობა. 361 00:16:04,500 --> 00:16:07,930 ასე რომ თავდაპირველად on line 18, მე აშკარად არ მადლობელი რადგან 362 00:16:07,930 --> 00:16:12,150 ლოგიკური ღირებულება მადლობელი ინიციალიზდება მცდარია, შეესაბამება 18. 363 00:16:12,150 --> 00:16:16,890 და შემდეგ, როგორც ჩანს, რაც მე ვაკეთებ აქ ხაზები 21 გზით 23 არის მე უბრალოდ 364 00:16:16,890 --> 00:16:18,610 სახის გადაწერილი ჩემი ლოგიკა. 365 00:16:18,610 --> 00:16:21,020 ასე რომ არ ფუნქციურად განსხვავებული. 366 00:16:21,020 --> 00:16:26,940 მაგრამ ხაზი 22 ახლა, მე შეამოწმოს თუ int მომხმარებლის უზრუნველყო მეტია 367 00:16:26,940 --> 00:16:31,120 0, მაშინ მე უბრალოდ შეცვლის ღირებულება მადლობას უხდის ჭეშმარიტი. 368 00:16:31,120 --> 00:16:32,290 და რატომაა ასე? 369 00:16:32,290 --> 00:16:35,600 რადგან ხაზი 25, სავარაუდოდ, მე ვაპირებ შეამოწმოს მდგომარეობა. 370 00:16:35,600 --> 00:16:39,380 გააკეთეთ მარყუჟი ხოლო მადლობელი სიცრუეა. 371 00:16:39,380 --> 00:16:43,610 >> ამიტომ მე ვთავაზობ, ამ როგორც ალტერნატივა ვერსია ერთი იმიტომ რომ სულ ცოტა 372 00:16:43,610 --> 00:16:45,130 ცოტა უფრო ინტუიტიური, ალბათ. 373 00:16:45,130 --> 00:16:46,900 ეს ცოტა უფრო საფუძვლიანი ინგლისურ ენაზე. 374 00:16:46,900 --> 00:16:51,710 ასე რომ შემდეგი, ხოლო თქვენ არ მადლობელი ან ხოლო მადლობელი სიცრუეა. 375 00:16:51,710 --> 00:16:55,890 და ამ დროს, ძალიან, მე აშკარად არ მაინტერესებს უნდა გვახსოვდეს, რა მომხმარებლის აკრეფილი 376 00:16:55,890 --> 00:16:57,730 , რადგან გაფრთხილების არ ცვლადი n. 377 00:16:57,730 --> 00:16:58,650 ასე რომ, რეალურად, მე - 378 00:16:58,650 --> 00:17:00,080 პატარა თეთრი ტყუილი არსებობს. 379 00:17:00,080 --> 00:17:02,770 ფუნქციურად პროგრამის ოდნავ განსხვავებული ერთხელ მივიღებთ, რათა ბოლოში 380 00:17:02,770 --> 00:17:04,819 რადგან მე არ დამახსოვრების რა N არის. 381 00:17:04,819 --> 00:17:09,579 მაგრამ მსურდა დემონსტრირება აქაც რომ მიუხედავად იმისა, რომ ჩვენ ვნახეთ GetInt და 382 00:17:09,579 --> 00:17:13,920 GetString გამოიყენება on მარჯვენა მხარეს თანაბარი ნიშანი ჯერჯერობით, ისე, რომ 383 00:17:13,920 --> 00:17:17,160 ჩვენ გვახსოვს ღირებულება, ტექნიკურად, ეს არ არის მკაცრად აუცილებელია. 384 00:17:17,160 --> 00:17:20,950 თუ სხვადსხვა მიზეზის გამო უბრალოდ არ მაინტერესებს გადარჩენა ღირებულება, უბრალოდ მინდა 385 00:17:20,950 --> 00:17:25,710 შესამოწმებლად ღირებულება შეამჩნევთ, რომ ჩვენ შეგვიძლია უბრალოდ წერენ ეს GetInt ღია 386 00:17:25,710 --> 00:17:27,000 PAREN, მჭიდრო PAREN. 387 00:17:27,000 --> 00:17:30,460 რომ ფუნქციის დაბრუნებას აპირებს ღირებულება, როგორც ჩვენ ვამბობდით. 388 00:17:30,460 --> 00:17:32,010 იგი აპირებს მოგცემთ უკან int. 389 00:17:32,010 --> 00:17:36,450 და ასე თუ ფსიქიკურად ვფიქრობ ამ ხდება, როდესაც მე აკრიფოთ 99, GetInt 390 00:17:36,450 --> 00:17:38,160 დააბრუნებს ნომერი 99. 391 00:17:38,160 --> 00:17:41,330 და ასე კონცეპტუალურად, ეს თითქოს ჩემი კოდი იყო რეალურად ამ. 392 00:17:41,330 --> 00:17:45,880 ასე რომ, თუ 99 მართლაც მეტია 0, მაშინ მადლობელი ხდება. 393 00:17:45,880 --> 00:17:50,420 შემდეგ ხაზი 25 აცნობიერებს Ooh, ჩვენ გავაკეთეთ, რადგან მე ახლა მადლობელი. 394 00:17:50,420 --> 00:17:54,590 და სტრიქონში 26, ჩვენ უბრალოდ ამბობენ, მადლობა დადებითი მთელი რიცხვი, რაც არ 395 00:17:54,590 --> 00:17:55,710 მოხდა იყოს. 396 00:17:55,710 --> 00:17:58,900 >> ახლა მოდით უმნიშვნელო სინტაქსური შაქარი აქ, ასე ვთქვათ. 397 00:17:58,900 --> 00:18:02,990 მოდით ვნახოთ, თუ შევძლებთ გაწმენდა ამ ხაზის 25 ამ მესამე და საბოლოო ეწინააღმდეგება 398 00:18:02,990 --> 00:18:04,640 წელს positive3. 399 00:18:04,640 --> 00:18:08,250 ასე რომ შეამჩნია განსხვავება მხოლოდ ახლა რა ხაზი კოდი? 400 00:18:11,930 --> 00:18:13,260 ჰო, ასე 25. 401 00:18:13,260 --> 00:18:15,520 და ჩვენ ნამდვილად არ მინახავს ეს ხრიკი მხოლოდ ამჟამად. 402 00:18:15,520 --> 00:18:19,510 მაგრამ ჩვენ მოვაწერეთ ვხედავ ძახილის წერტილი ორშაბათს, რომელიც აღნიშნავს, თუ რა? 403 00:18:19,510 --> 00:18:20,970 ასე რომ არა, ან უარყოფა. 404 00:18:20,970 --> 00:18:23,460 ასე რომ მიიღოს ლოგიკური მნიშვნელობა და Flip მისი ღირებულება. 405 00:18:23,460 --> 00:18:24,390 True ხდება ყალბი. 406 00:18:24,390 --> 00:18:25,500 ყალბი ხდება. 407 00:18:25,500 --> 00:18:28,910 ასე რომ, ეს, მინდა შესთავაზოს, არის კიდევ უფრო ინტუიციური of გზა 408 00:18:28,910 --> 00:18:32,200 წერა კოდი, რადგან მე მაინც ინიციალიზაცია მადლობას უხდის ყალბი. 409 00:18:32,200 --> 00:18:33,530 მე მაინც გავაკეთებ შემდეგ. 410 00:18:33,530 --> 00:18:35,700 მე მითითებული მადლობას უხდის ჭეშმარიტი, როცა დრო მოდის. 411 00:18:35,700 --> 00:18:40,690 მაგრამ ახლა შეგიძლიათ ნამდვილად უბრალოდ თარგმნოს ეს კოდი სიტყვიერი მარცხნიდან მარჯვნივ, 412 00:18:40,690 --> 00:18:42,550 ხოლო არ მადლობელი. 413 00:18:42,550 --> 00:18:46,170 რადგან bang, ან ძახილის წერტილი, ნიშნავს ცნება არ, ასე ხოლო 414 00:18:46,170 --> 00:18:47,010 არ მადლობელი. 415 00:18:47,010 --> 00:18:49,740 >> ასე რომ კიდევ ერთხელ, ჩვენ არ გააცნო ნებისმიერი ახალი კონცეფციების თავისთავად. 416 00:18:49,740 --> 00:18:53,230 ჩვენ ვისაუბრეთ Booleans უკან, როდესაც ჩვენ ითამაშა, რომელზეც ნაკაწრი. 417 00:18:53,230 --> 00:18:55,690 მაგრამ რეალიზება ახლა შეგვიძლია დავიწყო წერა ჩვენი კოდი 418 00:18:55,690 --> 00:18:56,550 ბევრი სხვადასხვა გზა. 419 00:18:56,550 --> 00:19:00,010 ამიტომ განსაკუთრებით pset1, თუ თქვენ სახის ცდილობს გაერკვნენ გზა 420 00:19:00,010 --> 00:19:03,400 წერენ ზოგიერთი პროგრამა, შანსი თქვენ გისურვებთ რადგან იქნება ნებისმიერი 421 00:19:03,400 --> 00:19:05,780 პუნქტების გადაწყვეტილებები, რომ თქვენ შეიძლება მოხდეს საფუძველზე. 422 00:19:05,780 --> 00:19:09,850 მაგალითად, ეს მხოლოდ სამი კი მარტივი პროგრამების. 423 00:19:09,850 --> 00:19:10,180 ყველა უფლება. 424 00:19:10,180 --> 00:19:13,860 და ახლა გავიხსენოთ ორშაბათს, ჩვენ დაუტოვებიათ ამ აღვნიშნავთ დაბრუნების ღირებულებებს. 425 00:19:13,860 --> 00:19:18,280 ასე რომ ძალიან პირველად, ჩვენ წერდა პროგრამა, რომელიც ჯერ არ აქვს მხოლოდ ძირითადი, 426 00:19:18,280 --> 00:19:22,240 მას ასევე გააჩნია საკუთარი საბაჟო ფუნქცია რომ დავწერე აქ. 427 00:19:22,240 --> 00:19:26,640 ასე რომ ხაზის მეშვეობით 31 34, მე განხორციელებული კუბი ფუნქცია. 428 00:19:26,640 --> 00:19:27,800 ეს არ არის კომპლექსი. 429 00:19:27,800 --> 00:19:29,830 უბრალოდ ჯერ ჯერ, ამ შემთხვევაში. 430 00:19:29,830 --> 00:19:34,920 მაგრამ რა მნიშვნელოვანია ამის შესახებ არის ის, რომ მე აღების შეყვანის სახით და 431 00:19:34,920 --> 00:19:38,910 მე დაბრუნების გამომავალი სახით ჯერ ჯერ. 432 00:19:38,910 --> 00:19:43,940 >> ახლა მაქვს უნარი, ჰგავს მე ერთად printf მარტო დარეკვა 433 00:19:43,940 --> 00:19:47,120 ამ ფუნქციის დარეკვით კუბი ფუნქცია. 434 00:19:47,120 --> 00:19:49,470 და კუბი ფუნქცია იღებს გარკვეულ შეყვანის. 435 00:19:49,470 --> 00:19:52,030 და კუბი ფუნქცია დააბრუნებს ზოგიერთი გამომუშავება. 436 00:19:52,030 --> 00:19:56,660 და ა.შ. პირიქით, printf უბრალოდ გააკეთა რაღაც. 437 00:19:56,660 --> 00:19:59,490 ეს არ დაუბრუნებია არაფერი რომ ჩვენ ზრუნავდა - მიუხედავად იმისა, რომ, როგორც 438 00:19:59,490 --> 00:20:00,820 განზე, ის არ დაბრუნდნენ ღირებულება. 439 00:20:00,820 --> 00:20:02,650 თქვენ უბრალოდ ზოგადად იგნორირება მოვახდინოთ. 440 00:20:02,650 --> 00:20:04,000 Printf უბრალოდ გააკეთა რაღაც. 441 00:20:04,000 --> 00:20:06,220 მას ჰქონდა გვერდითი ეფექტი დაბეჭდვის რომ ეკრანზე. 442 00:20:06,220 --> 00:20:09,480 ამის საპირისპიროდ, ჩვენ გვყავს კუბი ფუნქცია, რომელიც 443 00:20:09,480 --> 00:20:11,400 რეალურად ბრუნდება რაღაც. 444 00:20:11,400 --> 00:20:12,960 >> ასე რომ, ეს არის ზოგადად - 445 00:20:12,960 --> 00:20:15,260 მათთვის, ვინც იცნობს ამ, ეს საკმაოდ მარტივია იდეა. 446 00:20:15,260 --> 00:20:18,460 მაგრამ მათთვის ნაკლებად იცნობს ამ იდეას გადადის საშუალებებით და მიღების 447 00:20:18,460 --> 00:20:21,700 უკან შედეგები, მოდით ვცდილობთ უბრალოდ რაღაც სუპერ მარტივი. 448 00:20:21,700 --> 00:20:25,180 არის ვინმე კომფორტული ახლოვდება სცენაზე მოკლედ? 449 00:20:25,180 --> 00:20:27,460 თქვენ უნდა იყოს კომფორტულად კამერა თქვენ, ისევე. 450 00:20:27,460 --> 00:20:27,640 Yeah. 451 00:20:27,640 --> 00:20:28,610 Okay, რა გქვია? 452 00:20:28,610 --> 00:20:29,020 KEN: კენ. 453 00:20:29,020 --> 00:20:29,420 დევიდ ჯ Malan: კენ. 454 00:20:29,420 --> 00:20:29,810 ყველა უფლება, კენ. 455 00:20:29,810 --> 00:20:31,060 Come on up. 456 00:20:31,060 --> 00:20:34,660 ამიტომ კენ იქნება ფუნქცია ჯიშები აქ. 457 00:20:34,660 --> 00:20:35,760 და მოდით წავიდეთ წინ და ამის გაკეთება. 458 00:20:35,760 --> 00:20:38,790 მოდით კიდევ პატარა ლამაზი. 459 00:20:38,790 --> 00:20:39,770 კარგია თქვენთან შეხვედრა. 460 00:20:39,770 --> 00:20:41,010 კეთილი იყოს ცენტრი ეტაპზე. 461 00:20:41,010 --> 00:20:41,980 ყველა უფლება. 462 00:20:41,980 --> 00:20:45,590 მოდით მოხვდა ამ ღილაკს აქ. 463 00:20:45,590 --> 00:20:46,420 ყველა უფლება. 464 00:20:46,420 --> 00:20:49,490 ასე რომ აქ თქვენ გაქვთ თანამედროვე chalkboard. 465 00:20:49,490 --> 00:20:53,050 და რა ვარ არის მთავარი ფუნქცია, მაგალითად. 466 00:20:53,050 --> 00:20:55,990 და მე არ მაქვს iPad ჩემი მხრივ. 467 00:20:55,990 --> 00:20:59,000 მე ნამდვილად არ ახსოვს, თუ როგორ უნდა - კარგად, ფაქტობრივად, ვერ ვიტყვი, რომ. 468 00:20:59,000 --> 00:21:02,200 მე ნამდვილად არ აქვს კარგი ხელწერა. 469 00:21:02,200 --> 00:21:05,260 და ა.შ. ამიტომ, მინდა ბეჭდვა რაღაც ეკრანზე ჩემთვის. 470 00:21:05,260 --> 00:21:07,470 >> ამიტომ მე, როგორც ძირითადი პროგრამა. 471 00:21:07,470 --> 00:21:15,060 და ვაპირებ გაქვთ ამბობენ, რომ ეს წერილობით ეს ჩემი ქათამი ნაკაწრი და 472 00:21:15,060 --> 00:21:16,600 მაშინ ავლით თქვენ შეყვანის. 473 00:21:16,600 --> 00:21:20,000 ასე რომ, როგორც სულელური თუმცა ეს exercise არის, ცნება ფუნქციები და მოუწოდებენ 474 00:21:20,000 --> 00:21:22,260 ფუნქცია და დაბრუნების ფუნქცია მართლაც boils ქვემოთ ეს. 475 00:21:22,260 --> 00:21:23,120 მე ვარ მთავარი. 476 00:21:23,120 --> 00:21:26,270 მე ახლახან წერილობითი printf ("რაღაც") ეკრანზე. 477 00:21:26,270 --> 00:21:27,470 მე გაშვებული ამ პროგრამის. 478 00:21:27,470 --> 00:21:30,900 და როგორც კი printf იღებს მოუწოდა, ის იღებს ერთ არგუმენტს - ან ერთი პარამეტრი, 479 00:21:30,900 --> 00:21:31,660 ზოგჯერ - 480 00:21:31,660 --> 00:21:32,780 შორის ორმაგი შეთავაზებები. 481 00:21:32,780 --> 00:21:33,960 აქ არის ის, რომ არგუმენტი. 482 00:21:33,960 --> 00:21:35,740 მე გავლით მას კენ. 483 00:21:35,740 --> 00:21:39,390 ახლა ის არის შავი ყუთი წერილობითი გარკვეული რაოდენობის წლის წინ, რომ აშკარად 484 00:21:39,390 --> 00:21:41,070 მხოლოდ იცის როგორ ბეჭდვა რამ ეკრანზე. 485 00:21:41,070 --> 00:21:42,320 >> ასე რომ, შეასრულოს. 486 00:21:48,842 --> 00:21:49,900 ეს არ არის ცუდი. 487 00:21:49,900 --> 00:21:50,890 ასე რომ, ძალიან კარგი. 488 00:21:50,890 --> 00:21:52,900 ახლა კენ კეთდება შესრულებაში. 489 00:21:52,900 --> 00:21:55,810 ამჯამად მან უნდა ჩააბაროს ჩემთან არაფერი უკან? 490 00:21:55,810 --> 00:21:57,240 ასე არ არის, რომ ჩვენ ვნახეთ დღემდე. 491 00:21:57,240 --> 00:21:59,230 ერთხელ, printf ამჯამად რეალურად დაბრუნებას ნომერი. 492 00:21:59,230 --> 00:22:01,640 მაგრამ ჩვენ ვაპირებთ იგნორირება, რომ ახლა, რადგან ჩვენ არასოდეს გამოუყენებია ეს. 493 00:22:01,640 --> 00:22:03,400 ასე რომ ეს კენ. 494 00:22:03,400 --> 00:22:06,650 და ა.შ. ახლა მთავარ ბრუნდება, რათა შესრულდეს - 495 00:22:06,650 --> 00:22:09,630 მთავარ იღებს კონტროლის პროგრამა ისევ იმიტომ, რომ ხაზი კოდი, 496 00:22:09,630 --> 00:22:11,010 printf, კეთდება შესრულებაში. 497 00:22:11,010 --> 00:22:13,890 და ჩვენ მივდივართ ჩვენი გზით შესრულებაში რასაც სხვა ხაზების არსებობს. 498 00:22:13,890 --> 00:22:14,130 >> ყველა უფლება. 499 00:22:14,130 --> 00:22:17,080 ახლა მოდით ვცდილობთ ოდნავ განსხვავებული მაგალითი. 500 00:22:17,080 --> 00:22:22,430 და ამ დროს აქ, მოდით პირველ გარკვევას ეკრანზე აქ. 501 00:22:22,430 --> 00:22:24,670 და ამ დროს, ჩვენ ყველაფერს გავაკეთებთ cubing ფუნქცია. 502 00:22:24,670 --> 00:22:27,350 მაგრამ ამ დროს, მე მოველი გამონატანის მნიშვნელობა. 503 00:22:27,350 --> 00:22:28,630 მოდით წავიდეთ წინ და ამის გაკეთება. 504 00:22:28,630 --> 00:22:35,680 ახლა მაქვს ხაზი კოდი, რომ ამბობს x = კუბი (x). 505 00:22:35,680 --> 00:22:36,930 ასე რომ რეალურად let's - 506 00:22:41,450 --> 00:22:43,940 ხაზი კოდი, გაწვევა, ასე გამოიყურება. 507 00:22:43,940 --> 00:22:45,960 x = კუბი (x). 508 00:22:45,960 --> 00:22:48,100 მაშ როგორ არის ამ იმუშავებს? 509 00:22:48,100 --> 00:22:50,820 მოდით წავიდეთ წინ და გაძლევთ თეთრი ეკრანზე ერთხელ. 510 00:22:50,820 --> 00:22:55,000 და ვაპირებ დაწერა არის ქვემოთ ღირებულება x, რომელიც ამ ეტაპზე წელს 511 00:22:55,000 --> 00:23:01,080 ახლა ხდება უნდა, ვთქვათ, 2, შენარჩუნება ეს მარტივი. 512 00:23:01,080 --> 00:23:04,890 ასე რომ არ წერია ქვევით ნაჭერი ქაღალდი ღირებულება 2, 513 00:23:04,890 --> 00:23:06,100 რაც ჩემი ღირებულების x. 514 00:23:06,100 --> 00:23:08,250 მე გადასცემს მას კენ. 515 00:23:08,250 --> 00:23:09,200 KEN: მე მხოლოდ წერენ პასუხი? 516 00:23:09,200 --> 00:23:12,660 დევიდ ჯ Malan: ჰო, მოდით უბრალოდ წერენ პასუხი. 517 00:23:12,660 --> 00:23:13,030 Okay. 518 00:23:13,030 --> 00:23:16,280 და ახლა მას აქვს დაბრუნებას ჩემთვის რაღაც. 519 00:23:16,280 --> 00:23:17,560 ასე - 520 00:23:17,560 --> 00:23:18,170 სრულყოფილი. 521 00:23:18,170 --> 00:23:18,840 Nice segue. 522 00:23:18,840 --> 00:23:21,970 >> ახლა იგი ხელში ჩემთვის უკან ღირებულება 8, ამ შემთხვევაში. 523 00:23:21,970 --> 00:23:23,220 და რა შუაში იყო? 524 00:23:23,220 --> 00:23:26,130 ისე, რეალურად, ვნახოთ. 525 00:23:26,130 --> 00:23:26,640 მიიღეთ ეს უფლება. 526 00:23:26,640 --> 00:23:27,880 რა ვარ მე გაკეთებას აპირებს იგი? 527 00:23:27,880 --> 00:23:31,900 ახლა მე ვაპირებ ამ ღირებულების და ფაქტობრივად ჩაწეროთ იგი იმ 528 00:23:31,900 --> 00:23:33,400 ამავე ბიტი მეხსიერებაში. 529 00:23:33,400 --> 00:23:35,030 მაგრამ ცნობა, მე სახის იბრძოდა აქ. 530 00:23:35,030 --> 00:23:38,280 მე პატარა დაბნეული რადგან სად მაქვს რეალურად წერენ ღირებულება x? 531 00:23:38,280 --> 00:23:41,840 რადგან ის, რაც მე უბრალოდ გაკეთდეს ფიზიკურად მხრივ კენ ნაჭერი ქაღალდი 532 00:23:41,840 --> 00:23:44,400 რომ ჰქონდა ღირებულება 2, რომელიც x. 533 00:23:44,400 --> 00:23:46,300 მართლაც, რომ ზუსტად რა ხდება. 534 00:23:46,300 --> 00:23:50,100 გამოდის, რომ როცა რეკავთ ფუნქცია და კორიდორი არგუმენტი 535 00:23:50,100 --> 00:23:54,130 როგორც "Hello World" ან თქვენ კორიდორი არგუმენტი მოსწონს 2, ზოგადად, თქვენ 536 00:23:54,130 --> 00:23:56,720 გადადის ასლი, რომ არგუმენტი. 537 00:23:56,720 --> 00:24:01,020 და ა.შ. როგორც მე დაწერა ქვემოთ რიცხვი 2 აქ და გადასცეს იგი კენ; რომ უნდა 538 00:24:01,020 --> 00:24:04,760 ნიშნავს იმას, რომ კიდევ მაქვს ასლი ღირებულება 2 სადღაც. 539 00:24:04,760 --> 00:24:08,140 იმის გამო, რომ მართლაც, ახლა რომ მე მიღებული თავში ღირებულება 8, მე უნდა წავიდეთ უკან 540 00:24:08,140 --> 00:24:12,010 RAM და რეალურად დაწერეთ 8, სადაც მე ერთხელ ჰქონდა ნომერი 2. 541 00:24:12,010 --> 00:24:15,720 >> ასე რომ ვიზუალურად გახსოვთ ეს ცნება გადადის სიტყვასიტყვით 542 00:24:15,720 --> 00:24:16,730 ასლი ღირებულება. 543 00:24:16,730 --> 00:24:19,570 კენ აკეთებს რამ, ხელები ჩემს უკან რაღაც - ამ შემთხვევაში, 544 00:24:19,570 --> 00:24:20,820 ღირებულება მოსწონს 8. 545 00:24:20,820 --> 00:24:22,660 და მერე რაიმე უნდა მოვიმოქმედოთ, რომ ღირს, თუ მე 546 00:24:22,660 --> 00:24:24,880 გვინდა შეინახოს იგი გარშემო. 547 00:24:24,880 --> 00:24:29,470 ამიტომ ეს იქნება ძალიან ნაცნობი ადრე ხანგრძლივი. 548 00:24:29,470 --> 00:24:33,082 დიდი მადლობა ამ დემო აქ, კენ. 549 00:24:33,082 --> 00:24:34,820 ყველა უფლება. 550 00:24:34,820 --> 00:24:36,720 ძალიან კარგად გაკეთდეს. 551 00:24:36,720 --> 00:24:40,610 მოდით ვნახოთ, როგორ, რომ საბოლოოდ ეხება ზოგიერთი ფუნქცია 552 00:24:40,610 --> 00:24:42,270 მოუწოდებდა, რომ ჩვენ აქ აკეთებენ. 553 00:24:42,270 --> 00:24:47,610 ნება მომეცით, წავიდეთ წინ და მიგვიყვანს თავში cubing მაგალითად აქ. 554 00:24:47,610 --> 00:24:53,080 და შენიშნავს, რომ თუ ჩვენ გვინდა რეალურად დაიწყოს აღების ამ შემდგომი, ჩვენ ვაპირებთ 555 00:24:53,080 --> 00:24:57,050 დან უნდა მავიწყდება იმისა, რომ ხმების x რომ მიმდინარეობს გადავიდა 556 00:24:57,050 --> 00:25:01,390 აქ განსხვავდება რა მართლაც შევიდა ფუნქცია. 557 00:25:01,390 --> 00:25:03,940 ასე რომ კიდევ ერთხელ, ამ გაიარა ასლი უნდა გახდეს საკმაოდ 558 00:25:03,940 --> 00:25:05,620 გერმანე რაღაც მომენტში. 559 00:25:05,620 --> 00:25:09,320 >> მოდით შევხედოთ რაღაც რომ არ საკმაოდ მუშაობა უფლება არავის გაუკეთებია. 560 00:25:09,320 --> 00:25:11,790 მე ვაპირებ წავიდეთ წინ და გახსნა მესამე buggy მაგალითად, რომელიც 561 00:25:11,790 --> 00:25:13,560 არის გაყალბდა ბუნებით. 562 00:25:13,560 --> 00:25:18,070 და ეს მოუწოდა buggy3 და ახორციელებს შევცვალე ფუნქცია. 563 00:25:18,070 --> 00:25:23,500 ასე რომ აქ გვაქვს ძირითადი ფუნქცია, რომელიც X და Y თვითნებურად ინიციალიზაცია to 564 00:25:23,500 --> 00:25:24,720 1 და 2, შესაბამისად. 565 00:25:24,720 --> 00:25:27,590 ჩვენ შეეძლო GetInt, მაგრამ ჩვენ უბრალოდ უნდა მარტივი განხორციელება. 566 00:25:27,590 --> 00:25:29,680 ასე ძნელია კოდირებული როგორც 1 და 2. 567 00:25:29,680 --> 00:25:35,330 სტრიქონები 21 და 22, ჩვენ აშკარად ამობეჭდოთ x და y, ერთი თითო ხაზზე. 568 00:25:35,330 --> 00:25:39,620 მაშინ, on line 23, მე ამტკიცებენ მე შევცვალე ეს ფასეულობები, dot, dot, dot. 569 00:25:39,620 --> 00:25:43,030 მე აშკარად მოვუწოდებთ ფუნქცია ხაზი 24 მოუწოდა swap 570 00:25:43,030 --> 00:25:44,000 რომ იღებს ორ არგუმენტს. 571 00:25:44,000 --> 00:25:46,430 ეს სრულიად legit ამისთვის ფუნქციები მიიღოს ორი არგუმენტი. 572 00:25:46,430 --> 00:25:48,220 ჩვენ ვხედავთ printf გავაკეთებთ უკვე. 573 00:25:48,220 --> 00:25:50,370 ასე რომ swap სავარაუდოდ იღებს x და y. 574 00:25:50,370 --> 00:25:53,010 და როგორც მისი სახელი ვარაუდობს, მინდა იმედი მაქვს, რომ ის აპირებს 575 00:25:53,010 --> 00:25:54,320 სვოპ ამ ორი ღირებულებებს. 576 00:25:54,320 --> 00:25:57,560 ასე რომ მერე აცხადებენ on line 25, swapped. 577 00:25:57,560 --> 00:26:01,570 მე reprint x და y ქვეშ ვარაუდი, რომ 578 00:26:01,570 --> 00:26:02,830 ისინი მართლაც swapped. 579 00:26:02,830 --> 00:26:04,370 მაგრამ თუ მე რეალურად აწარმოებს ამ პროგრამის - 580 00:26:04,370 --> 00:26:06,060 ნება მომეცით გახსენით ტერმინალი ფანჯარა. 581 00:26:06,060 --> 00:26:07,750 ნება მომეცით მიიღოს buggy3. 582 00:26:07,750 --> 00:26:09,970 როგორც სახელი ვარაუდობს, ამ არ აპირებს დასრულდება კარგად. 583 00:26:09,970 --> 00:26:14,690 რადგან, როდესაც მე დააჭიროთ შეამჩნევთ, რომ X არის 1. 584 00:26:14,690 --> 00:26:15,720 Y არის 2. 585 00:26:15,720 --> 00:26:19,160 და მაინც დასასრულს პროგრამა, ისინი მაინც, ფაქტობრივად, იგივე. 586 00:26:19,160 --> 00:26:22,760 >> ამიტომ ეფუძნება მიტინგი მხოლოდ ახლა კენ, რა რეალურად საქმე? 587 00:26:22,760 --> 00:26:24,660 კარგად, მოდით ჩაყვინთვის შევიდა ამ swap ფუნქცია. 588 00:26:24,660 --> 00:26:25,800 ეს სუპერ მოკლე. 589 00:26:25,800 --> 00:26:28,020 ეს მხოლოდ რამდენიმე ხაზი კოდი ხანგრძლივი. 590 00:26:28,020 --> 00:26:32,810 მაგრამ რა არის ფუნდამენტური პრობლემა ეფუძნება მარტივი ამბავი განუცხადა 591 00:26:32,810 --> 00:26:34,270 აქ ერთად კენ? 592 00:26:34,270 --> 00:26:36,115 რატომ swap გაფუჭებული? 593 00:26:36,115 --> 00:26:37,365 [INAUDIBLE] 594 00:26:39,840 --> 00:26:40,460 სწორედ. 595 00:26:40,460 --> 00:26:43,610 ამიტომ ჩვენ შენახვის, რათა ასლი, არ ცვლადი თავად. 596 00:26:43,610 --> 00:26:46,810 სხვა სიტყვებით, swap სავარაუდოდ იღებს ორი არგუმენტები, int. 597 00:26:46,810 --> 00:26:49,370 და მისი თვითნებურად მოუწოდა და ბ. 598 00:26:49,370 --> 00:26:54,430 და აქ, მე ძალაში შევიდა, X და Y, რომელთა შესაბამისად 1 და 2. 599 00:26:54,430 --> 00:26:56,580 მაგრამ მე არ სიტყვასიტყვით გადადის x. 600 00:26:56,580 --> 00:26:58,410 მე არ სიტყვასიტყვით გადადის წ. 601 00:26:58,410 --> 00:27:01,230 მე გავლით ასლი x და ასლი წ. 602 00:27:01,230 --> 00:27:05,180 ეს მოსწონს თითქმის თითქოს თქვენ გადაწერა და pasted შევიდა სვოპ ფასეულობები, 603 00:27:05,180 --> 00:27:07,440 გნებავთ რეალურად მანიპულირება. 604 00:27:07,440 --> 00:27:11,970 ასე რომ თუ ეს შემთხვევაა, როდესაც მე, პროგრამა, დაიწყოს შესრულებაში 605 00:27:11,970 --> 00:27:14,140 ხაზი 35, მაშინ 36 - 606 00:27:14,140 --> 00:27:17,740 როცა მისაღებად ხაზი 37, ამ დროისთვის ამბავი, რა არის ღირებულება? 607 00:27:20,740 --> 00:27:24,850 ამ დროისთვის ამბავი, ხაზი 37, რა არის ღირებულება ამ ეტაპზე? 608 00:27:24,850 --> 00:27:25,980 ასე რომ, ეს უნდა იყოს მხოლოდ 1. 609 00:27:25,980 --> 00:27:26,170 მარჯვენა? 610 00:27:26,170 --> 00:27:29,100 რადგან x იყო ძალაში შევიდა, როგორც პირველი არგუმენტი. 611 00:27:29,100 --> 00:27:33,150 და ამ ფუნქციის მხოლოდ თვითნებურად მოუწოდებს მისი პირველი არგუმენტი,. 612 00:27:33,150 --> 00:27:35,130 ანალოგიურად არის Y, მეორე არგუმენტი. 613 00:27:35,130 --> 00:27:37,930 და ეს მხოლოდ თვითნებურად მოუწოდებდა მეორე არგუმენტი ბ. 614 00:27:37,930 --> 00:27:40,510 >> ახლა ეს dichotomy რეალურად საკმაოდ უბრალოდ განმარტა. 615 00:27:40,510 --> 00:27:40,880 დაფიქრდით. 616 00:27:40,880 --> 00:27:42,980 არც ერთი ჩვენგანი არ შეხვდა ადამიანი, რომელიც წერდა printf. 617 00:27:42,980 --> 00:27:49,880 ასე რომ აუცილებლად, იგი არ აქვს როგორია ჩვენი ცვლადები 30 წლის შემდეგ ვაპირებთ 618 00:27:49,880 --> 00:27:50,710 ე.წ.. 619 00:27:50,710 --> 00:27:55,110 ასე უნდა იყოს განსხვავება რა რეკავთ ცვლადები წელს 620 00:27:55,110 --> 00:27:59,960 ფუნქციების თქვენ წერა და რა რეკავთ ცვლადები წელს ფუნქციების თქვენ 621 00:27:59,960 --> 00:28:01,770 მოუწოდებდა ან გამოყენებით. 622 00:28:01,770 --> 00:28:05,120 ასე რომ, სხვა სიტყვებით, მე არ წერია ჩემი ცვლადები როგორც x და y. 623 00:28:05,120 --> 00:28:08,060 მაგრამ თუ ვინმეს დაწერა swap ფუნქციის, იგი, რა თქმა უნდა 624 00:28:08,060 --> 00:28:10,480 არ ვიცი, რა ჩემი ცვლადები ვაპირებთ ეწოდება. 625 00:28:10,480 --> 00:28:13,850 ასე რომ მიხვდებიან, რომ სწორედ ამიტომ, რომ თქვენ ეს Duality ვინაობას. 626 00:28:13,850 --> 00:28:16,800 ტექნიკურად, მე ვერ გავაკეთებ ამ დაემთხვა. 627 00:28:16,800 --> 00:28:19,750 მაგრამ ისინი ჯერ კიდევ ძალაში შევიდა, როგორც ასლები. 628 00:28:19,750 --> 00:28:22,940 ეს იქნებოდა მხოლოდ სუფთა დამთხვევა ესთეტიურად თუ ეს პირი რომელმაც დაწერა 629 00:28:22,940 --> 00:28:25,590 swap ჰქონდა გამოიყენა იგივე სახელები. 630 00:28:25,590 --> 00:28:25,930 >> ყველა უფლება. 631 00:28:25,930 --> 00:28:29,010 ამრიგად, ამ ეტაპზე იმ ამბავს, ხაზი 37, არის 1. 632 00:28:29,010 --> 00:28:30,410 ბ არის 2. 633 00:28:30,410 --> 00:28:32,040 და ახლა გაგრძელება სვოპ მათ. 634 00:28:32,040 --> 00:28:34,730 კარგად პირველ რიგში, ნება მომეცით რეალურად ამის გაკეთება ბევრად უფრო მარტივად. 635 00:28:34,730 --> 00:28:36,500 მე არ ვიცი რა ის სამი ხაზი კოდი აკეთებდნენ. 636 00:28:36,500 --> 00:28:37,370 ნება მომეცით მხოლოდ ამის გაკეთება. 637 00:28:37,370 --> 00:28:38,850 ბ იღებს. 638 00:28:38,850 --> 00:28:40,170 იღებს ბ. 639 00:28:40,170 --> 00:28:41,450 შესრულებულია. 640 00:28:41,450 --> 00:28:43,540 რატომ არის ამ გატეხილი, ლოგიკურად? 641 00:28:46,980 --> 00:28:48,590 ეს სახის ინტუიციური რამ, არა? 642 00:28:48,590 --> 00:28:50,640 ასე ხდება ბ. 643 00:28:50,640 --> 00:28:52,450 და B ხდება. 644 00:28:52,450 --> 00:28:55,410 მაგრამ პრობლემა ის არის, რომ როგორც კი ხაზი 37 ახორციელებს, რა 645 00:28:55,410 --> 00:28:58,170 ღირებულება და ბ? 646 00:28:58,170 --> 00:28:59,070 იგივე, 1. 647 00:28:59,070 --> 00:29:03,460 იმიტომ, რომ თქვენ არ clobbered, ასე ვთქვათ, თქვენ შეიცვალა B ერთნაირი. 648 00:29:03,460 --> 00:29:06,000 ასე რომ კიდევ ერთხელ ხაზი 37 შესრულებულია, რომ დიდი. 649 00:29:06,000 --> 00:29:09,940 თქვენ ახლა უკვე ორი ასლი ნომერი 1 შიგნით ამ ფუნქციას. 650 00:29:09,940 --> 00:29:14,720 ასე რომ მაშინ, როდესაც თქვენ ამბობთ სტრიქონში 38, იღებს ბ, ასევე, თქვენ სახის ბრალია. 651 00:29:14,720 --> 00:29:17,370 იმის გამო, რომ თქვენ მხოლოდ მინიჭება 1 დან 1. 652 00:29:17,370 --> 00:29:20,400 თქვენ სახის დაკარგა ღირებულება თქვენ ზრუნავდა. 653 00:29:20,400 --> 00:29:22,910 >> ასე რომ, ორიგინალური ვერსია ამ შეამჩნევთ, რა გავაკეთე. 654 00:29:22,910 --> 00:29:26,620 მე ნაცვლად ჰქონდა მესამე ხაზი კოდი, რომ ჩანდა მოსწონს ეს. 655 00:29:26,620 --> 00:29:29,910 ვაცხადებ დროებით ცვლადი - tmp არის ძალიან გავრცელებული სახელი 656 00:29:29,910 --> 00:29:31,240 ამისთვის დროებითი ცვლადი. 657 00:29:31,240 --> 00:29:34,280 ეს int რადგან მას ემთხვევა რა მინდა ასლი. 658 00:29:34,280 --> 00:29:39,720 მე შესანახად ასლი შიგნით tmp. ასე რომ კიდევ ერთხელ ხაზი 37 აქვს შესრულებული, 659 00:29:39,720 --> 00:29:41,390 ღირებულება არის - 660 00:29:41,390 --> 00:29:42,970 სწრაფი საღი აზრის შეამოწმოს - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 ღირებულება B არის 2. 663 00:29:45,780 --> 00:29:48,470 და ღირებულება tmp ასევე 1. 664 00:29:48,470 --> 00:29:51,470 ახლა მე შეასრულოს ხაზის 38. 665 00:29:51,470 --> 00:29:57,180 ასე რომ კიდევ ერთხელ ხაზი 38 ახორციელებს, იღებს ღირებულების ბ. 666 00:29:57,180 --> 00:29:58,510 და ბ იყო 2. 667 00:29:58,510 --> 00:30:00,500 ამიტომ არის 2. 668 00:30:00,500 --> 00:30:03,110 ამრიგად, ამ ეტაპზე იმ ამბავს, არის 2, ბ არის 2, 669 00:30:03,110 --> 00:30:05,130 და tmp არის 1. 670 00:30:05,130 --> 00:30:09,330 ახლა ლოგიკურად, ჩვენ უბრალოდ plop tmp ღირებულების შევიდა ბ. 671 00:30:09,330 --> 00:30:10,690 და ჩვენ გავაკეთეთ. 672 00:30:10,690 --> 00:30:12,170 >> ამიტომ ჩვენ მოგვარდება, რომ პრობლემა. 673 00:30:12,170 --> 00:30:16,040 სამწუხაროდ, როდესაც მე აწარმოებს ამ პროგრამის ამ ფორმით, ის ფაქტობრივად არ სვოპ 674 00:30:16,040 --> 00:30:17,700 ნებისმიერი ღირებულებებს. 675 00:30:17,700 --> 00:30:18,950 მაგრამ უნდა იყოს ნათელი, თუ რატომ? 676 00:30:23,420 --> 00:30:26,310 მე დაფიქსირდა ლოგიკური პრობლემა მხოლოდ მომენტში წინ. 677 00:30:26,310 --> 00:30:31,150 თუმცა ისევ და ისევ, თუ აწარმოებს ამ პროგრამის x და y უცვლელი რჩება ბოლოსთვის 678 00:30:31,150 --> 00:30:33,834 პროგრამის შესრულების. 679 00:30:33,834 --> 00:30:34,760 [INAUDIBLE] 680 00:30:34,760 --> 00:30:36,030 დევიდ ჯ Malan: ამიტომ ჩვენ არ დაბრუნდა არაფერი. 681 00:30:36,030 --> 00:30:36,960 ასე რომ მართალია. 682 00:30:36,960 --> 00:30:39,880 მაგრამ თურმე არსებობს ცოტა პრობლემა აქ რადგან ჯერჯერობით 683 00:30:39,880 --> 00:30:42,460 ერთადერთი, რაც ჩვენ ვერ დაბრუნდა არის ერთი რამ. 684 00:30:42,460 --> 00:30:46,540 და ეს არის შეზღუდვა C. შეგიძლიათ მხოლოდ დაბრუნებას ნამდვილად ერთ ღირებულება, 685 00:30:46,540 --> 00:30:48,970 ამ შემთხვევაში, მე სახის დავრჩებოდით აქ 686 00:30:48,970 --> 00:30:51,805 რადგან მე ვერ დაბრუნდებიან ახალი ღირებულება x ან მე ვერ დაბრუნდებიან 687 00:30:51,805 --> 00:30:53,160 ახალი ღირებულება წ. 688 00:30:53,160 --> 00:30:54,330 მაგრამ მე მინდა ორივე უკან. 689 00:30:54,330 --> 00:30:58,010 ამიტომ დაბრუნების არ არის მარტივი გამოსავალი აქ. 690 00:30:58,010 --> 00:30:59,770 მაგრამ პრობლემა ფუნდამენტურად არის რატომ? 691 00:30:59,770 --> 00:31:03,270 რა გვაქვს რეალურად swapped? 692 00:31:03,270 --> 00:31:04,010 და ბ. 693 00:31:04,010 --> 00:31:07,670 მაგრამ და ბ are ასლები x და y, რაც იმას ნიშნავს, რომ ჩვენ უბრალოდ ყველაფერი ამ 694 00:31:07,670 --> 00:31:10,080 მუშაობა - ჩვენ უბრალოდ გაატარა მოსწონს სამი წუთის ვსაუბრობთ swap 695 00:31:10,080 --> 00:31:11,680 ფუნქცია და სამივე ამ ცვლადებს. 696 00:31:11,680 --> 00:31:15,090 და ეს დიდი, მშვენივრად სწორი იზოლაციაში. 697 00:31:15,090 --> 00:31:20,230 მაგრამ და B-ს ფარგლებს მხოლოდ არის ამ ხაზების აქ. 698 00:31:20,230 --> 00:31:24,130 ასე რომ, ისევე, როგორც for loop, თუ განაცხადოს რიცხვი მე შიგნით ამისთვის 699 00:31:24,130 --> 00:31:27,400 loop - ანალოგიურად, თუ თქვენ გამოცხადების და ბ შიგნით ფუნქცია 700 00:31:27,400 --> 00:31:30,550 თქვენ წერილობითი, ისინი ძალაშია მხოლოდ შიგნით რომ ფუნქცია. 701 00:31:30,550 --> 00:31:35,020 რაც იმას ნიშნავს, როგორც კი swap კეთდება შესრულებაში და ჩვენ აქედან ხაზი 24 დან 702 00:31:35,020 --> 00:31:38,380 ხაზი 25, X და Y არ იქნა შეცვლილა. 703 00:31:38,380 --> 00:31:42,580 თქვენ უბრალოდ გადაყრილი მთელი ბევრი დრო შევცვალე ასლები ცვლადები. 704 00:31:42,580 --> 00:31:46,490 >> გამოდის, რომ გადაწყვეტილება ამ ფაქტობრივად არასამთავრობო აშკარა. 705 00:31:46,490 --> 00:31:49,210 ეს არ არის საკმარისი დაბრუნების ღირებულებების რადგანაც ჩვენ არ შეგვიძლია 706 00:31:49,210 --> 00:31:50,320 მხოლოდ დაბრუნებას ერთი მნიშვნელობა. 707 00:31:50,320 --> 00:31:53,370 და მე ნამდვილად მინდა, რომ სვოპ ორივე x და y ამავე დროს. 708 00:31:53,370 --> 00:31:55,020 ამიტომ, ჩვენ ვაპირებთ, დაუბრუნდეს ამ. 709 00:31:55,020 --> 00:31:58,770 მაგრამ ახლა, გააცნობიეროს, რომ საკითხი ფუნდამენტურად გამომდინარეობს ფაქტი 710 00:31:58,770 --> 00:32:00,660 რომ A და B არის ასლები. 711 00:32:00,660 --> 00:32:03,450 და ისინი საკუთარ ფარგლებს. 712 00:32:03,450 --> 00:32:04,980 კარგად, მოდით ვცდილობთ გადავჭრათ ამ რამდენიმე გზა. 713 00:32:04,980 --> 00:32:09,200 ნება მომეცით რეალურად გადახვევა უკან აქ და გახსენით, ვთქვათ, მეოთხე ვარიანტი 714 00:32:09,200 --> 00:32:11,170 ამ, buggy4. 715 00:32:11,170 --> 00:32:13,230 რაც შეეხება ამ საკითხთან დაკავშირებით? 716 00:32:13,230 --> 00:32:16,690 ეს არის მსგავსი, მაგრამ უფრო მარტივი პრობლემა შევხედოთ წინაშე ავიღებთ stab at 717 00:32:16,690 --> 00:32:17,530 გადაჭრის იგი. 718 00:32:17,530 --> 00:32:19,440 ეს პროგრამა ეწოდება იყოს. 719 00:32:19,440 --> 00:32:24,320 და ეს აშკარად initializes x რიცხვი to 1 სტრიქონში 18. 720 00:32:24,320 --> 00:32:25,950 მე მაშინ აცხადებენ x არის 1. 721 00:32:25,950 --> 00:32:28,020 მე მაშინ სარჩელი დამატება, dot, dot, dot. 722 00:32:28,020 --> 00:32:29,460 მე მაშინ მოვუწოდებთ იყოს. 723 00:32:29,460 --> 00:32:33,480 მაგრამ მერე ხაზები 22 და 23, მე აცხადებენ მისთვის incremented. 724 00:32:33,480 --> 00:32:37,780 მე აცხადებენ x არის რაც არ არის, 2 სავარაუდოდ. 725 00:32:37,780 --> 00:32:39,770 >> მაგრამ ამ პროგრამის buggy. 726 00:32:39,770 --> 00:32:41,020 რა არის პრობლემა? 727 00:32:43,450 --> 00:32:44,418 ჰო? 728 00:32:44,418 --> 00:32:45,668 [INAUDIBLE] 729 00:32:49,260 --> 00:32:49,850 დევიდ ჯ Malan: ზუსტად. 730 00:32:49,850 --> 00:32:52,430 ამიტომ x გამოცხადდა აშკარად on line 18. 731 00:32:52,430 --> 00:32:54,410 სწორედ შიგნით ძირითადი ს Curly braces. 732 00:32:54,410 --> 00:32:58,470 ასე რომ მარტივი პასუხი აქ არის ის, რომ, ასევე, x არსებობს აქ. 733 00:32:58,470 --> 00:33:01,510 იგი არ არსებობს ხაზი 32. 734 00:33:01,510 --> 00:33:03,710 ასე რომ ამ პროგრამის რეალურად არც კი შეადგინოს. 735 00:33:03,710 --> 00:33:07,910 შემდგენელი, როდესაც ვცდილობ შედგენის ამ კოდექსის აპირებს დაწეროთ at me 736 00:33:07,910 --> 00:33:13,190 შესახებ რამდენიმე გამოუცხადებელ იდენტიფიკატორი ან რაღაც რომ ეფექტი. 737 00:33:13,190 --> 00:33:13,870 ფაქტობრივად, მოდით ვცდილობთ. 738 00:33:13,870 --> 00:33:15,235 ეს არის მიიღოს buggy4. 739 00:33:17,780 --> 00:33:18,190 არსებობს ეს. 740 00:33:18,190 --> 00:33:22,030 გამოყენება გამოუცხადებელ იდენტიფიკატორი x სტრიქონში 32. 741 00:33:22,030 --> 00:33:25,700 და ფაქტობრივად, მოდით უფრო ზუსტად რომ ვთქვათ, დღეს აქ, ასე რომ ეს სასარგებლოა 742 00:33:25,700 --> 00:33:27,140 ოფისში საათი და სახლში. 743 00:33:27,140 --> 00:33:29,000 გაითვალისწინეთ, რომ ეს პატარა cryptically წერილობითი. 744 00:33:29,000 --> 00:33:31,560 მაგრამ ის ფაქტი, რომ Clang აქვს yelled ჩვენზე და განაცხადა, 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5, ფაქტობრივად სასარგებლო. 746 00:33:36,970 --> 00:33:41,970 ეს ნიშნავს, რომ შეცდომა on line 32 საათზე ხასიათი თანამდებობა ხუთი. 747 00:33:41,970 --> 00:33:44,670 ასე რომ ერთი, ორი, სამი, ოთხი, ხუთი. 748 00:33:44,670 --> 00:33:46,640 სწორედ, ფაქტობრივად, სადაც პრობლემა არის. 749 00:33:46,640 --> 00:33:49,710 და ასევე გავითვალისწინოთ ოფისში საათი და სახლში, მე იღბლიანი აქ. 750 00:33:49,710 --> 00:33:50,740 მაქვს ერთი შეცდომა. 751 00:33:50,740 --> 00:33:52,660 ეს იქნება შედარებით იოლი დაფიქსირება. 752 00:33:52,660 --> 00:33:56,220 მაგრამ თუ თქვენ გაქვთ მთელი ეკრანის სავსე უამრავი შეცდომის შეტყობინებები, კიდევ ერთხელ, 753 00:33:56,220 --> 00:33:59,240 გააცნობიეროს, რომ bottommost შეიძლება მხოლოდ იყოს სიმპტომატური of 754 00:33:59,240 --> 00:34:00,320 ზედოთ მდებარე მიიჩნიეს. 755 00:34:00,320 --> 00:34:03,560 ამიტომ ყოველთვის აყვანას ქვემოთ თქვენი შეცდომები ზემოდან ქვემოთ. 756 00:34:03,560 --> 00:34:06,720 იმიტომ, რომ იქ შეიძლება რაღაც იყოს Daisy-ჯაჭვის ეფექტი, რომელიც მიგვითითებს თქვენ 757 00:34:06,720 --> 00:34:09,030 აქვს უფრო მეტი პრობლემები ვიდრე თქვენ რეალურად გავაკეთოთ. 758 00:34:09,030 --> 00:34:14,989 >> ასე როგორ უნდა დაფიქსირება ამ შემთხვევაში ჩემი მიზანია ნამატი x? 759 00:34:14,989 --> 00:34:15,370 რა არის ეს? 760 00:34:15,370 --> 00:34:15,620 Okay. 761 00:34:15,620 --> 00:34:16,679 ამიტომ, ჩვენ შეგვიძლია x გლობალური. 762 00:34:16,679 --> 00:34:18,860 ავიღოთ კომბინაცია, რომ მე გააფრთხილა შესახებ ადრე. 763 00:34:18,860 --> 00:34:20,550 მაგრამ heck, ჩვენ უბრალოდ უნდა გადავწყვიტოთ. 764 00:34:20,550 --> 00:34:23,949 მოდით უბრალოდ, ვამბობთ int x აქ. 765 00:34:23,949 --> 00:34:25,600 ხდის x გლობალური. 766 00:34:25,600 --> 00:34:28,460 ახლა მთავარ ხელი მიუწვდება მას. 767 00:34:28,460 --> 00:34:31,780 და წუთობრივი ხელი მიუწვდება მას. 768 00:34:31,780 --> 00:34:33,860 და ნება მომეცით, წავიდეთ წინ და შეადგინონ ეს ახლა. 769 00:34:33,860 --> 00:34:36,330 ჩადება buggy4, შეიყვანეთ. 770 00:34:36,330 --> 00:34:37,440 როგორც ჩანს, კომპილაციის არის. 771 00:34:37,440 --> 00:34:40,949 მოდით აწარმოებს buggy4, და როგორც ჩანს, რეალურად იმუშავებს. 772 00:34:40,949 --> 00:34:42,780 ახლა ეს არის ერთი ასეთი რამ - 773 00:34:42,780 --> 00:34:45,870 გავაკეთოთ როგორც გეუბნებით, არ როგორც მე, როგორც მე უბრალოდ გაკეთდეს აქ. 774 00:34:45,870 --> 00:34:49,239 რადგან ეს, ზოგადად, ჩვენი პროგრამების ვაპირებთ კიდევ უფრო მეტი საინტერესო და 775 00:34:49,239 --> 00:34:50,440 ბევრად აღემატება ეს. 776 00:34:50,440 --> 00:34:53,199 და თუ თქვენი გამოსავალი ცხოვრების პრობლემები მხოლოდ AH, დააყენა ყველა 777 00:34:53,199 --> 00:34:57,550 ცვლადები ზედა თქვენი ფაილი, ძალიან სწრაფად გააკეთოს პროგრამების მისაღებად 778 00:34:57,550 --> 00:34:59,700 horrifically რთული მართვა. 779 00:34:59,700 --> 00:35:02,050 იგი იღებს უფრო რთული მგონია ახალი ცვლადი სახელები. 780 00:35:02,050 --> 00:35:05,240 იგი იღებს უფრო რთული იმის გაგება, თუ რა ცვლადი აკეთებს რა. 781 00:35:05,240 --> 00:35:08,250 >> და ა.შ. ზოგადად, ეს არ არის კარგი გამოსავალი. 782 00:35:08,250 --> 00:35:09,780 ასე რომ მოდით ეს უკეთესი. 783 00:35:09,780 --> 00:35:11,920 ჩვენ არ გვინდა, რომ გამოიყენოთ გლობალური ცვლადი აქ. 784 00:35:11,920 --> 00:35:14,050 მე მინდა, რომ ნამატი x. 785 00:35:14,050 --> 00:35:16,050 ასე რომ მე ვერ აშკარად - 786 00:35:16,050 --> 00:35:18,450 დასასრულს დღეში, ეს სახის სულელური ამბავი იმიტომ, რომ ჩვენ მხოლოდ ამის გაკეთება. 787 00:35:18,450 --> 00:35:22,050 მაგრამ თუ არ ვიცოდი, რომ ოპერატორი, ან მე არ მისცეს 788 00:35:22,050 --> 00:35:27,700 შეცვლის მთავარ თავად, როგორ სხვა ასეთ რამეს მე განახორციელოს კენ მეტი აქ, ამ 789 00:35:27,700 --> 00:35:31,450 დრო არ კუბი არამედ ნამატი? 790 00:35:31,450 --> 00:35:32,700 როგორ შევცვალო ეს საგანი აქ? 791 00:35:32,700 --> 00:35:33,025 Yeah. 792 00:35:33,025 --> 00:35:34,275 [INAUDIBLE] 793 00:35:37,430 --> 00:35:38,000 დევიდ ჯ Malan: Okay, კარგი. 794 00:35:38,000 --> 00:35:40,490 მაშ რატომ არ მე კორიდორი x? 795 00:35:40,490 --> 00:35:44,390 და მაშინ, ვიდრე მისი დაბრუნება, რატომ არ მე უბრალოდ დაბრუნების x + 1? 796 00:35:44,390 --> 00:35:46,370 ახლა, რამდენიმე რამ უნდა შეცვალოს აქ. 797 00:35:46,370 --> 00:35:47,530 მე სწორ გზაზე. 798 00:35:47,530 --> 00:35:48,910 კიდევ რა უნდა tweak? 799 00:35:48,910 --> 00:35:49,470 ვინმე. 800 00:35:49,470 --> 00:35:49,882 ჰო? 801 00:35:49,882 --> 00:35:51,530 [INAUDIBLE] 802 00:35:51,530 --> 00:35:53,520 დევიდ ჯ Malan: მე უნდა შეიცვალოს დაბრუნების გაცნობის ნამატი 803 00:35:53,520 --> 00:35:54,590 რადგან ეს არ ბათილად. 804 00:35:54,590 --> 00:35:56,650 ძალადაკარგულად არაფერს ნიშნავს ის დაბრუნება. 805 00:35:56,650 --> 00:35:57,600 მაგრამ ცხადია, ახლა ეს. 806 00:35:57,600 --> 00:36:01,280 ასე რომ, ეს უნდა შეიცვალოს, რათა int იყოს შეესაბამება რასაც 807 00:36:01,280 --> 00:36:02,580 მე რეალურად დაბრუნების. 808 00:36:02,580 --> 00:36:04,580 >> არის რაღაც ჯერ კიდევ buggy აქ. 809 00:36:04,580 --> 00:36:04,982 ჰო? 810 00:36:04,982 --> 00:36:06,590 [INAUDIBLE] 811 00:36:06,590 --> 00:36:07,630 დევიდ ჯ Malan: ასე უნდა იყოს x? 812 00:36:07,630 --> 00:36:10,336 [INAUDIBLE] 813 00:36:10,336 --> 00:36:11,880 დევიდ ჯ Malan: Ah, ამიტომ მე უნდა გაიაროს x. 814 00:36:11,880 --> 00:36:13,300 ასე რომ, მე უნდა გავაკეთოთ ეს აქ. 815 00:36:17,590 --> 00:36:19,690 ამიტომ პროტოტიპი, უნდა შეიცვალოს ეს ყველაფერი აქ. 816 00:36:19,690 --> 00:36:21,290 ასე რომ, ეს უნდა გახდეს int. 817 00:36:21,290 --> 00:36:22,820 ეს უნდა გახდეს - 818 00:36:22,820 --> 00:36:23,670 hmm. 819 00:36:23,670 --> 00:36:24,710 მე რეალურად bug ქვემოთ აქ. 820 00:36:24,710 --> 00:36:25,780 მოდით დაფიქსირება ამ ერთი პირველი. 821 00:36:25,780 --> 00:36:27,990 რა უნდა ამ რეალურად იყოს? 822 00:36:27,990 --> 00:36:29,330 ამიტომ რაღაც უნდა იყოს int რაღაც. 823 00:36:29,330 --> 00:36:30,340 ეს შეიძლება იყოს x. 824 00:36:30,340 --> 00:36:33,120 მაგრამ გულწრფელად, თუ დაიწყება მოუწოდებენ ყველა თქვენი ცვლადები x, იგი აპირებს მიიღოს 825 00:36:33,120 --> 00:36:35,250 უფრო ნაკლებად ნათელია, რომელიც, რომელიც. 826 00:36:35,250 --> 00:36:38,210 მოდით უბრალოდ თვითნებურად აირჩიოს სხვადასხვა ნეიმინგი კონვენცია ჩემი 827 00:36:38,210 --> 00:36:40,220 დამხმარე ფუნქციები, ფუნქციების მე წერა. 828 00:36:40,220 --> 00:36:41,100 ჩვენ მოვუწოდებთ მას. 829 00:36:41,100 --> 00:36:44,500 ან ჩვენ შეგვიძლია ეძახით - მოდით ეძახით even_number რომ ვიყოთ კიდევ უფრო ცხადი. 830 00:36:44,500 --> 00:36:47,610 ასეა, მაშინ მე უნდა დაბრუნდეს რაოდენობის მიუხედავად არის პლუს 1. 831 00:36:47,610 --> 00:36:49,720 და ახლა უნდა შეიცვალოს ერთი სხვა რამ აქ და ერთი 832 00:36:49,720 --> 00:36:50,700 სხვა რამ აქ. 833 00:36:50,700 --> 00:36:54,150 რა უნდა შეიცვალოს on line 21 პირველი? 834 00:36:54,150 --> 00:36:55,390 მე უნდა მივანიჭოთ მას x. 835 00:36:55,390 --> 00:36:57,480 ასე, რომ შეიძლება არა მხოლოდ მოვუწოდებთ ნამატი x. 836 00:36:57,480 --> 00:37:01,000 მე უნდა გვახსოვდეს პასუხი შეცვლით ღირებულება x შესახებ 837 00:37:01,000 --> 00:37:02,020 მარცხენა მხარეს. 838 00:37:02,020 --> 00:37:04,930 და მიუხედავად იმისა, x არის მარცხენა და მარჯვენა, რომ მთლიანად ჯარიმა, რადგან 839 00:37:04,930 --> 00:37:08,370 მარჯვენა მხარეს იღებს შესრულებული პირველი მაშინ იღებს plopped შევიდა მარცხენა 840 00:37:08,370 --> 00:37:10,240 მხრივ რამ, x ამ შემთხვევაში. 841 00:37:10,240 --> 00:37:11,900 და მერე ბოლოს, ეს არის ადვილი სარემონტო არის. 842 00:37:11,900 --> 00:37:15,080 ეს უნდა უბრალოდ დაემთხვა რა ქვემოთ ქვემოთ. 843 00:37:15,080 --> 00:37:17,120 Int ნომერი. 844 00:37:17,120 --> 00:37:17,320 >> ყველა უფლება. 845 00:37:17,320 --> 00:37:20,290 ასე რომ მთელი bunch of ცვლილებები მართლაც სულელური ფუნქცია. 846 00:37:20,290 --> 00:37:24,250 მაგრამ წარმომადგენელი რამ, რომ ჩვენ სულ უფრო გსურთ. 847 00:37:24,250 --> 00:37:25,490 ასე რომ buggy4. 848 00:37:25,490 --> 00:37:26,485 მე ბრალია სადღაც. 849 00:37:26,485 --> 00:37:27,520 Oh ღმერთი ჩემი. 850 00:37:27,520 --> 00:37:29,660 ხუთი შეცდომები, როგორიცაა, ექვსი ხაზის პროგრამის. 851 00:37:29,660 --> 00:37:36,500 რა არის არასწორი on line 18, ხასიათი 5? 852 00:37:36,500 --> 00:37:36,970 ყველა უფლება. 853 00:37:36,970 --> 00:37:39,330 ასე რომ მე უნდა განაცხადოს ამ int. 854 00:37:39,330 --> 00:37:39,630 ყველა უფლება. 855 00:37:39,630 --> 00:37:41,790 ასე რომ ვნახოთ, მთელი bunch სხვა შეცდომები. 856 00:37:41,790 --> 00:37:42,230 Oh ღმერთი ჩემი. 857 00:37:42,230 --> 00:37:43,880 19, 18, 21. 858 00:37:43,880 --> 00:37:46,020 თუმცა ისევ და ისევ, მოდით უბრალოდ გარკვევას ეკრანზე - 859 00:37:46,020 --> 00:37:48,660 კონტროლის L აქ - და ხელახლა პერსპექტივაში Clang. 860 00:37:48,660 --> 00:37:51,340 ასე ხუთი პრობლემები არის რეალურად მხოლოდ, რომ ერთი. 861 00:37:51,340 --> 00:37:53,500 ახლა მოდით აწარმოებს buggy4, შეიყვანეთ. 862 00:37:53,500 --> 00:37:54,150 Whew. 863 00:37:54,150 --> 00:37:57,434 x უკვე incremented სწორად. 864 00:37:57,434 --> 00:37:58,420 >> ყველა უფლება. 865 00:37:58,420 --> 00:38:01,700 ნებისმიერი კითხვები, თუ როგორ უნდა იყოს ციფრები? 866 00:38:01,700 --> 00:38:02,896 ჰო? 867 00:38:02,896 --> 00:38:06,864 დინამიკები 2: რატომ არის, რომ თქვენ შეგიძლიათ უბრალოდ შეცვალეთ x to ნომერი ცვლადი 868 00:38:06,864 --> 00:38:08,860 ასახელებს და ეს კიდე იცით რას ნიშნავს? 869 00:38:08,860 --> 00:38:09,600 დევიდ ჯ Malan: კარგი კითხვაა. 870 00:38:09,600 --> 00:38:13,130 როგორ არის ის, რომ მე შემიძლია უბრალოდ შეცვალეთ x ნომერზე და პროგრამა ვიცი 871 00:38:13,130 --> 00:38:13,990 მაშინვე? 872 00:38:13,990 --> 00:38:16,120 ასე რომ კიდევ ერთხელ, ვფიქრობ, რომ ეს ამ აბსტრაქცია. 873 00:38:16,120 --> 00:38:20,110 ასე რომ, თუ მე ვარ ძირითადი და კენ არის დამატებითი, გულწრფელად, არ მაინტერესებს 874 00:38:20,110 --> 00:38:21,540 რა კენ მოუწოდებს მისი iPad. 875 00:38:21,540 --> 00:38:25,350 არ მაინტერესებს, რა იგი მოუწოდებს არაფერი რომ უნდა გააკეთოს მისი განხორციელების 876 00:38:25,350 --> 00:38:26,550 ამ ფუნქციები. 877 00:38:26,550 --> 00:38:32,130 ასე რომ, ეს არის განხორციელება დეტალურად რომ მე, ძირითად, არ 878 00:38:32,130 --> 00:38:33,010 უნდა ზრუნავდეს. 879 00:38:33,010 --> 00:38:37,440 და ასე, უბრალოდ იცვლება ის თანმიმდევრულად შიგნით ფუნქცია, ნომერი აქ 880 00:38:37,440 --> 00:38:41,340 და ნომერი აქ, არის ყველა სჭირდება, თუ მე recompile. 881 00:38:41,340 --> 00:38:43,820 ეს ერთგვარი მინდა თუ ფიქრობთ ამის შესახებ - ბევრი ჩვენგანი, იმ თქვენ ერთად მძღოლის 882 00:38:43,820 --> 00:38:46,590 ლიცენზიები, რომლებიც რო ამოძრავებს, ან თუ თქვენ კი ბიძგი მანქანაში - 883 00:38:46,590 --> 00:38:50,710 ყველაზე მეტად ჩვენს წარმოდგენა არ როგორ მანქანა მუშაობს ქვეშ hood. 884 00:38:50,710 --> 00:38:54,710 და სიტყვასიტყვით, თუ თქვენ გახსენით hood, ყველაზე მეტად ჩვენს - თავს შედის - 885 00:38:54,710 --> 00:38:56,580 არ ვაპირებთ ნამდვილად ვიცი, რა ჩვენ შევხედავთ. 886 00:38:56,580 --> 00:38:58,850 სახის მოსწონს იგრძნობთ ერთად პერსონალის მოსწონს ეს ახლავე. 887 00:38:58,850 --> 00:39:01,380 მაგრამ ჩვენ ნამდვილად არ უნდა იზრუნოს, როგორ მუშაობს ავტომობილი. 888 00:39:01,380 --> 00:39:05,000 ჩვენ არ უნდა იზრუნოს რა ყველა წნელები და pistons და კაბელები შიგნით 889 00:39:05,000 --> 00:39:07,700 მანქანა რეალურად აკეთებს. 890 00:39:07,700 --> 00:39:11,360 >> ასე რომ მსგავსი რამ, რაც თქვენ მოვუწოდებთ დგუში არ აქვს მნიშვნელობა 891 00:39:11,360 --> 00:39:11,920 აქ ამ შემთხვევაში. 892 00:39:11,920 --> 00:39:12,490 იმავე იდეას. 893 00:39:12,490 --> 00:39:12,670 ჰო? 894 00:39:12,670 --> 00:39:13,920 [INAUDIBLE] 895 00:39:25,250 --> 00:39:29,530 დევიდ ჯ Malan: თუ იყო მეტი გამოყენებაზე ცვლადი xa მომენტში წინ, 896 00:39:29,530 --> 00:39:32,220 თქვენ, პროგრამისტი, უნდა შეცვალოს ისინი ყველგან. 897 00:39:32,220 --> 00:39:35,230 ან შეგიძლიათ სიტყვასიტყვით გავაკეთოთ ფაილი, მენიუ, და შემდეგ Find / Replace, 898 00:39:35,230 --> 00:39:36,270 მსგავსი რამ, რომ. 899 00:39:36,270 --> 00:39:40,110 მაგრამ თქვენ აპირებთ უნდა მოხდეს ყოველთვიურად ცვლილებების თავს. 900 00:39:40,110 --> 00:39:41,200 თქვენ უნდა იყოს თანმიმდევრული. 901 00:39:41,200 --> 00:39:42,450 [INAUDIBLE] 902 00:39:47,200 --> 00:39:48,960 დევიდ ჯ Malan: კერძოდ იმისათვის, როგორიც აქ? 903 00:39:48,960 --> 00:39:52,660 თუ ეს იყო int მეორე ნომერი? 904 00:39:52,660 --> 00:39:52,940 Yeah. 905 00:39:52,940 --> 00:39:56,430 ამიტომ იმისათვის, მნიშვნელოვანია, როდესაც თქვენ მოუწოდებენ ფუნქცია. 906 00:39:56,430 --> 00:40:00,350 ასე რომ, თუ მე მირეკავდა ნამატი აქ რაღაც მძიმით რაღაც, 907 00:40:00,350 --> 00:40:01,400 არსებობს პირდაპირი რუკების. 908 00:40:01,400 --> 00:40:04,490 პირველი ცვლადი, რასაც ის მოუწოდა, კეთდება ასლი პირველი 909 00:40:04,490 --> 00:40:05,480 არგუმენტი მეტი აქ. 910 00:40:05,480 --> 00:40:07,280 უკაცრავად, ეს არ უნდა იყოს ფრჩხილებში. 911 00:40:07,280 --> 00:40:09,300 მეორე არგუმენტი ხაზები ერთად მეორე. 912 00:40:09,300 --> 00:40:11,220 >> ამიტომ იმისათვის, დიახ, თემა. 913 00:40:11,220 --> 00:40:11,490 ყველა უფლება. 914 00:40:11,490 --> 00:40:13,360 უკაცრავად ავიღე გრძელი გზა იქ. 915 00:40:13,360 --> 00:40:14,610 გაქვთ სხვა კითხვები? 916 00:40:16,460 --> 00:40:16,850 ყველა უფლება. 917 00:40:16,850 --> 00:40:20,300 ასე რომ ვნახოთ, შევძლებთ თუ არა ხატავს სურათს, რა რეალურად მიმდინარეობს 918 00:40:20,300 --> 00:40:22,160 აქ ქვეშ Hood, ასე ვთქვათ. 919 00:40:22,160 --> 00:40:26,310 ასე რომ, ეს მართკუთხედი რომ შესაძლოა წარმოადგენდეს თქვენი კომპიუტერის მეხსიერებაში. 920 00:40:26,310 --> 00:40:31,240 ისე კი, თუ თქვენ არ ვიცი როგორ მუშაობს მეხსიერების ან როგორ RAM სამუშაოები, მინიმუმ 921 00:40:31,240 --> 00:40:33,590 ვივარაუდოთ, რომ თქვენ გაქვთ bunches იგი ამ დღეებში. 922 00:40:33,590 --> 00:40:34,740 თქვენ მოხვდით მბ იგი. 923 00:40:34,740 --> 00:40:35,760 თქვენ მოხვდით გიგაბაიტი იგი. 924 00:40:35,760 --> 00:40:40,690 და ჩვენ ვიცით კვირაში ნულოვანი რომ byte არის მხოლოდ რა? 925 00:40:40,690 --> 00:40:41,280 8 ბიტი. 926 00:40:41,280 --> 00:40:42,730 მარჯვენა, ასე 8 zeroes და მიიჩნიეს. 927 00:40:42,730 --> 00:40:46,300 ასე რომ, თუ თქვენი კომპიუტერი GIG of RAM, ორი gigs of RAM ამ დღეებში, თქვენ გაქვთ 928 00:40:46,300 --> 00:40:54,450 მილიარდი ან 2 მილიარდი ბაიტი მეხსიერების, ან უხეშად 8 მილიარდ ან 16 მილიარდი 929 00:40:54,450 --> 00:40:56,560 ბიტი, შიგნით თქვენი კომპიუტერი. 930 00:40:56,560 --> 00:40:59,710 ახლა განსხვავებით ცოტა Woolly Willy მაგალითად, ეს არ მაგნიტური ნაწილაკების 931 00:40:59,710 --> 00:41:00,560 ჩვეულებრივ უქმნით. 932 00:41:00,560 --> 00:41:04,470 სულ უფრო და უფრო, წელს ლაპტოპები მინიმუმ, ის მყარი სახელმწიფო დისკები, SSDs, რომ 933 00:41:04,470 --> 00:41:05,560 უბრალოდ არ არ მოძრავი ნაწილები. 934 00:41:05,560 --> 00:41:06,710 ეს ყველაფერი ელექტრონულ. 935 00:41:06,710 --> 00:41:08,070 ეს ყველაფერი ელექტროენერგიის საფუძველზე. 936 00:41:08,070 --> 00:41:12,360 ასე მგონია, თუმცა, ამ ოთკუთხედი როგორც მხოლოდ წარმოადგენენ ერთი ან ორი 937 00:41:12,360 --> 00:41:13,930 გიგაბაიტი მეხსიერება, რომ თქვენ გაქვთ. 938 00:41:13,930 --> 00:41:15,500 >> ასე რომ ბლოკი მეხსიერება. 939 00:41:15,500 --> 00:41:20,460 ახლა მთელი მსოფლიო კომპიუტერული მეცნიერების სახის partitioned off მოცულობით 940 00:41:20,460 --> 00:41:22,570 მეხსიერების გავაკეთოთ სხვადასხვა რამ. 941 00:41:22,570 --> 00:41:25,930 ასე მაგალითად, თუ ეს თქვენი კომპიუტერის RAM - როგორც მიერ შემოთავაზებული 942 00:41:25,930 --> 00:41:30,400 ოთხკუთხედი იქ - თურმე მიერ კონვენციის, ზედა თქვენი RAM, ასე 943 00:41:30,400 --> 00:41:33,170 საუბარი, ზოგადად რასაც ტექსტი სეგმენტი. 944 00:41:33,170 --> 00:41:35,910 ეს ის zeroes და პირობა, რომ თქვენ არ შედგენილი. 945 00:41:35,910 --> 00:41:39,040 ასე რომ, როდესაც ჩვენ ჩანდა ქვეშ Hood რა a.out არის, ყველა 946 00:41:39,040 --> 00:41:40,360 zeroes და პირობა - 947 00:41:40,360 --> 00:41:44,000 როდესაც თქვენ აწარმოებს პროგრამა, იმ zeroes და პირობა ჩატვირთვის თქვენი მყარი 948 00:41:44,000 --> 00:41:46,290 წამყვანი შევიდა რაღაც მოუწოდა RAM. 949 00:41:46,290 --> 00:41:48,950 და RAM, ისინი დააყენა ზედა. 950 00:41:48,950 --> 00:41:50,330 არის ამავდროულად, თქვენ გაქვთ სხვა რამ. 951 00:41:50,330 --> 00:41:53,060 ინიციალიზაცია მონაცემები, uninitialized მონაცემები. 952 00:41:53,060 --> 00:41:56,440 ამ ორი swaths მეხსიერების ეხება გლობალური ცვლადები, რომელიც 953 00:41:56,440 --> 00:41:57,530 თქვენ არ ხშირად იყენებენ. 954 00:41:57,530 --> 00:42:00,630 მაგრამ ზოგჯერ თუ ისინი დასრულდება up up there ისევე. 955 00:42:00,630 --> 00:42:01,620 მაშინ არსებობს რამდენიმე სხვა პერსონალი. 956 00:42:01,620 --> 00:42:04,130 გარემოს ცვლადები, რომელიც ჩვენ არ დახარჯოს დიდი დრო ჩართულია. 957 00:42:04,130 --> 00:42:06,120 მაგრამ შემდეგ ორი მნიშვნელოვანი რამ, რომ დავბრუნდებით მთელი ამ 958 00:42:06,120 --> 00:42:08,130 სემესტრის დასტის და ბევრი. 959 00:42:08,130 --> 00:42:12,280 >> ასე რომ ყველაზე თქვენი კომპიუტერის მეხსიერების დაცულია როდესაც გაშვებული პროგრამა 960 00:42:12,280 --> 00:42:14,880 რაღაც მოუწოდა დასტის და რაღაც მოუწოდა ბევრი. 961 00:42:14,880 --> 00:42:16,940 და ჩვენ არ ვაპირებთ ვისაუბროთ ბევრი დღეს, მაგრამ ჩვენ 962 00:42:16,940 --> 00:42:18,180 ვისაუბროთ Stack. 963 00:42:18,180 --> 00:42:22,910 და დასტის ნიშნავს conjure up ვიზუალური მსგავსი სასადილოს 964 00:42:22,910 --> 00:42:26,120 კვება ქაღალდის წელს Mather სახლი, ან ნებისმიერ ადგილას მოხდეს იქნება, სადაც 965 00:42:26,120 --> 00:42:27,810 სასადილოს პერსონალის გაწმენდა მათ ყოველდღე. 966 00:42:27,810 --> 00:42:30,180 ისინი დააწყობს მათ მდე სართულზე up. 967 00:42:30,180 --> 00:42:33,800 და ანალოგიურად მეხსიერებაში, არსებობს ამ იდეას აყენებს რაღაც 968 00:42:33,800 --> 00:42:36,740 დააწყობს, აყენებს რაღაც დასტის, აყენებს რაღაც Stack. 969 00:42:36,740 --> 00:42:38,000 და რას ვგულისხმობთ ამ? 970 00:42:38,000 --> 00:42:41,430 კარგად, მოდით მიუახლოვდით მხოლოდ ქვედა ნახევარში ამ სურათს, თქვენი კომპიუტერის 971 00:42:41,430 --> 00:42:43,990 RAM, შესთავაზოს შემდეგ. 972 00:42:43,990 --> 00:42:48,300 თურმე, როდესაც თქვენ აწარმოებს პროგრამა მოსწონს a.out ან hello, რასაც 973 00:42:48,300 --> 00:42:49,920 პროგრამის არის ის, რომ თქვენ წერილობითი, 974 00:42:49,920 --> 00:42:53,030 ერთხელ, იმ zeroes და შედარებით, დატვირთული თქვენს ხისტ დისკზე - რომელიც 975 00:42:53,030 --> 00:42:56,190 გრძელვადიანი შენახვა, რჩება იქ მაშინაც კი, როდესაც გაიყვანოს plug - 976 00:42:56,190 --> 00:42:57,220 ჩაიტვირთება RAM. 977 00:42:57,220 --> 00:42:59,020 RAM არის სწრაფად, ვიდრე მყარი დისკები. 978 00:42:59,020 --> 00:43:00,700 ეს ნაკლებია მყარი დისკები. 979 00:43:00,700 --> 00:43:03,490 მაგრამ აქ პროგრამების ცხოვრობს, ხოლო თქვენ გაშვებული მათ. 980 00:43:03,490 --> 00:43:06,380 >> ასე, რომ თქვენ ორმაგად დაწკაპეთ პროგრამა Mac ან PC - ის დატვირთული 981 00:43:06,380 --> 00:43:07,750 დისკის შევიდა RAM. 982 00:43:07,750 --> 00:43:11,760 როგორც კი ის ჩაიტვირთება RAM, zeroes და პირობა წასვლა დროს გზა ზევით, 983 00:43:11,760 --> 00:43:13,130 ე.წ. ტექსტი სეგმენტი. 984 00:43:13,130 --> 00:43:17,040 მაგრამ შემდეგ, როგორც კი თქვენი პროგრამის რეალურად იწყება გაშვებული, მთავარ 985 00:43:17,040 --> 00:43:18,140 ფუნქცია ეწოდება. 986 00:43:18,140 --> 00:43:21,070 და მთავარი, როგორც ჩვენ ვნახეთ, ხშირად აქვს ადგილობრივი ცვლადები. 987 00:43:21,070 --> 00:43:24,560 და მას აქვს ints და სიმებიანი და chars და მოსწონს. 988 00:43:24,560 --> 00:43:28,300 ასე რომ, თუ თქვენი პროგრამა, რომელიც თქვენს მიერ დაწერილი ან პროგრამა, რომელიც თქვენ გაქვთ 989 00:43:28,300 --> 00:43:33,680 ორმაგი დააწკაპებთ გამოყენებული ზოგიერთი ცვლადის შიგნით ძირითადი, მათ დასრულდება up at 990 00:43:33,680 --> 00:43:37,020 ქვედა თქვენი დასტის მეხსიერების, ასე ვთქვათ. 991 00:43:37,020 --> 00:43:39,160 ახლა უფრო კონკრეტულად, რას ნიშნავს რეალურად? 992 00:43:39,160 --> 00:43:44,080 ეს მხოლოდ იმას ნიშნავს, რომ თუ ჩვენ ვაპირებთ ხმების რამ - 993 00:43:44,080 --> 00:43:49,380 თუ ჩვენ ვაპირებთ ხმების bytes of RAM თქვენს კომპიუტერზე, რომ 994 00:43:49,380 --> 00:43:51,650 ეს შეიძლება იყოს byte ხმების ნულოვანი. 995 00:43:51,650 --> 00:43:56,130 ეს შეიძლება იყოს byte ნომერი ერთი, ორი, სამი, ოთხი, ხუთი, ექვსი, ყველა 996 00:43:56,130 --> 00:43:57,290 გზა მდე მინდა - 997 00:43:57,290 --> 00:44:01,520 2 მილიარდი იქნება ყველა გზა იქ ზედა. 998 00:44:01,520 --> 00:44:05,960 ასე რომ, სხვა სიტყვებით, როდესაც ვსაუბრობთ RAM ან მეხსიერების თვალსაზრისით ბაიტი, ეს 999 00:44:05,960 --> 00:44:09,680 მხოლოდ იმას ნიშნავს, რომ ვიღაცამ გადაწყვიტა, რა რაოდენობის თითოეული 1000 00:44:09,680 --> 00:44:11,110 იმ მოცულობით მეხსიერება. 1001 00:44:11,110 --> 00:44:16,950 >> ასე რომ, როდესაც თქვენ გჭირდებათ 32 ბიტი for int, ან გჭირდებათ 8 ბიტი ამისთვის char, სადაც 1002 00:44:16,950 --> 00:44:18,320 ისინი დასრულდება up მეხსიერებაში? 1003 00:44:18,320 --> 00:44:20,650 კარგად კონცეპტუალურად, ისინი უბრალოდ დასრულდება მდე ბოლოში ამ 1004 00:44:20,650 --> 00:44:21,780 რამ მოუწოდა Stack. 1005 00:44:21,780 --> 00:44:25,670 მაგრამ რა საინტერესოა ახლა, როდესაც მთავარ მოუწოდებს ფუნქცია. 1006 00:44:25,670 --> 00:44:28,830 დავუშვათ ფუნქცია მოუწოდა foo, მხოლოდ თვითნებური სახელი. 1007 00:44:28,830 --> 00:44:32,480 რა ხდება არის მთავარია ბოლოში ამ დასტის მეხსიერება. 1008 00:44:32,480 --> 00:44:35,630 Foo ახლა დააყენა თავზე ძირითად მეხსიერებაში. 1009 00:44:35,630 --> 00:44:40,020 ასე რომ ნებისმიერი ლოკალური ცვლადები რომ foo არ დასრულდება მდე სახის კონცეპტუალურად ზემოთ 1010 00:44:40,020 --> 00:44:40,770 იმ მთავარ. 1011 00:44:40,770 --> 00:44:46,920 თუ foo მოუწოდებს სხვა ფუნქცია მოუწოდა ბარი, იმ ცვლადის დასრულდება მდე აქ. 1012 00:44:46,920 --> 00:44:49,790 თუ ბარი მოუწოდებს რაღაც, აქ, აქ, აქ. 1013 00:44:49,790 --> 00:44:53,900 რა საინტერესოა შესახებ გაშვებული პროგრამის არის ის, რომ, როგორც თქვენ მოვუწოდებთ ფუნქციები, 1014 00:44:53,900 --> 00:44:57,720 და როგორც ამ ფუნქციების მოვუწოდებთ ფუნქციები, და როგორც ამ ფუნქციების მოვუწოდებთ ფუნქციები, 1015 00:44:57,720 --> 00:45:00,980 თქვენ დაამყარონ ამ დასტის ფუნქციების მეხსიერებაში. 1016 00:45:00,980 --> 00:45:06,740 და მხოლოდ ერთხელ ფუნქცია დააბრუნებს გაქვთ დაიწყოს მიღების, რომ მეხსიერების უკან. 1017 00:45:06,740 --> 00:45:11,190 ასე რომ ერთი მარტივი გზა ამოიწურა მეხსიერება კომპიუტერული პროგრამა არის 1018 00:45:11,190 --> 00:45:14,170 დაწერეთ ფუნქცია, რაც არასდროს დაბრუნდება. 1019 00:45:14,170 --> 00:45:16,650 >> ასე მაგალითად, მოდით დემონსტრირება იმდენი ერთად 1020 00:45:16,650 --> 00:45:18,460 განზრახ buggy პროგრამა. 1021 00:45:18,460 --> 00:45:24,690 ნება მომეცით წავიდეთ წინ და ნუ # მოიცავს , int ძირითადი (void). 1022 00:45:24,690 --> 00:45:31,270 და მე ვაპირებ ამის გაკეთებას, ხოლო (2> 1), რაც ალბათ არ ოდესმე 1023 00:45:31,270 --> 00:45:33,370 შეცვლის ჩვენზე. 1024 00:45:33,370 --> 00:45:37,720 და ნება მომეცით წავიდეთ წინ არის და არ printf. 1025 00:45:37,720 --> 00:45:39,950 სინამდვილეში, რომ იქნება ნაკლებ ვიზუალურად საინტერესო. 1026 00:45:39,950 --> 00:45:40,460 მოდით ეს. 1027 00:45:40,460 --> 00:45:44,840 იყიდება int (i = 0; i> 0). 1028 00:45:44,840 --> 00:45:49,740 მოდით ეს შეცდომა, მე + +. 1029 00:45:49,740 --> 00:45:51,150 და მოდით არ printf აქ. 1030 00:45:51,150 --> 00:45:52,550 მოდით პრაქტიკაში რა იყო ქადაგებდა. 1031 00:45:52,550 --> 00:45:54,090 მოდით მეთოდი აქ. 1032 00:45:54,090 --> 00:46:00,860 ძალადაკარგულად გუნდისა, და ჩვენ ვიტყვით, int i. 1033 00:46:00,860 --> 00:46:02,295 და შემდეგ მე ვაპირებ ვთქვა, printf - 1034 00:46:04,871 --> 00:46:06,790 OH, მოდით ეს კიდევ უფრო საინტერესო. 1035 00:46:06,790 --> 00:46:08,350 მოდით რეალურად არ ბეჭდვა არაფერი ყოფილა. 1036 00:46:08,350 --> 00:46:10,530 მოდით უბრალოდ ეს. 1037 00:46:10,530 --> 00:46:11,780 Chorus (I). 1038 00:46:16,630 --> 00:46:17,000 >> ყველა უფლება. 1039 00:46:17,000 --> 00:46:20,040 ასე რომ, ეს buggy რადგან რატომ? 1040 00:46:20,040 --> 00:46:22,850 მე მიღების ეს ყველაფერი, როგორც მე, რადგან პროგრამა ფაქტობრივად არ არაფრის 1041 00:46:22,850 --> 00:46:23,420 ინტერესთა. 1042 00:46:23,420 --> 00:46:24,670 მაგრამ ეს არ არის მიზანი. 1043 00:46:24,670 --> 00:46:30,440 მიზანია დაწერონ პროგრამა, რომლის მთავარი ფუნქცია აკეთებს იმას, სავარაუდოდ? 1044 00:46:30,440 --> 00:46:31,370 ზარის თავად. 1045 00:46:31,370 --> 00:46:32,600 და ფაქტობრივად, ჩვენ არ გვჭირდება loop. 1046 00:46:32,600 --> 00:46:36,070 მოდით კიდევ გამარტივება ამ უბრალოდ ისე, რომ არ დაკარგოს დანახვაზე მართლაც 1047 00:46:36,070 --> 00:46:37,310 ფუნდამენტური შეცდომა. 1048 00:46:37,310 --> 00:46:39,200 მთავარი მოუწოდებს გუნდი მაინც მღერიან ზოგიერთი გუნდი. 1049 00:46:39,200 --> 00:46:41,760 მაშინ მე იმედი, და მქონდა გუნდი ზარის გუნდი იმიტომ, რომ მე თავის თავზე აიღო 1050 00:46:41,760 --> 00:46:43,550 ვინმე აპირებს განახორციელოს ეს ალბათ. 1051 00:46:43,550 --> 00:46:45,960 და ახლა ამ არ აპირებს კომპილაციის ამჟამად. 1052 00:46:45,960 --> 00:46:48,340 მე უნდა რა? 1053 00:46:48,340 --> 00:46:49,700 მჭირდება პროტოტიპი, მახსოვს. 1054 00:46:49,700 --> 00:46:55,520 ასე რომ უნდა აქ ბათილად გუნდი (int i);. 1055 00:46:55,520 --> 00:46:57,470 >> ახლა, თუ დაცემას აქ - 1056 00:46:57,470 --> 00:46:59,030 რეალურად, მოდით გამოიყენოთ უფრო დიდი ფანჯარა. 1057 00:46:59,030 --> 00:47:01,670 მოდით წავიდეთ წინ და მიიღოს გუნდისათვის. 1058 00:47:01,670 --> 00:47:06,000 მოდით წავიდეთ წინ და მიიღოს გუნდისათვის. 1059 00:47:06,000 --> 00:47:08,302 გამოყენება დაუდგენელმა declarer მე. 1060 00:47:08,302 --> 00:47:09,860 ოჰ, რომ იყო სულელური. 1061 00:47:09,860 --> 00:47:11,020 ჩვენ არ გვჭირდება არგუმენტი. 1062 00:47:11,020 --> 00:47:13,680 მოდით უბრალოდ ეს. 1063 00:47:13,680 --> 00:47:14,550 სურვილი გვქონდა დაიწყო ამ გზით. 1064 00:47:14,550 --> 00:47:16,160 ეს იქნებოდა ბევრად უფრო ადვილი პროგრამა დაწერა. 1065 00:47:16,160 --> 00:47:20,100 ასე რომ. 1066 00:47:20,100 --> 00:47:23,870 ახლა მოდით წავიდეთ მეტი ჩემს ტერმინალის ფანჯარა, ხელმეორედ გაუშვით Clang. 1067 00:47:23,870 --> 00:47:26,900 და აქ წასვლა. 1068 00:47:26,900 --> 00:47:28,020 ეს იყო მართლაც სწრაფი. 1069 00:47:28,020 --> 00:47:30,690 რაც სინამდვილეში მხოლოდ მოხდა, თუმცა? 1070 00:47:30,690 --> 00:47:33,430 ისე, ახლა მე დაამატოთ ბეჭდვის ხაზი, ასე რომ ვხედავთ. 1071 00:47:33,430 --> 00:47:41,330 ნება მომეცით ვთქვა printf, ვთქვათ, მე ვარ აქ. 1072 00:47:41,330 --> 00:47:43,470 Okay, არ ცვლადები, ჩვენ დავტოვებთ მას მოსწონს, რომ. 1073 00:47:43,470 --> 00:47:44,860 ნება მომეცით ხელახლა აწარმოებს მიიღოს. 1074 00:47:44,860 --> 00:47:47,940 ნება მომეცით ხელახლა პერსპექტივაში გუნდისათვის. 1075 00:47:47,940 --> 00:47:51,235 და მოდის. 1076 00:47:53,880 --> 00:47:55,130 შეინახეთ აპირებს. 1077 00:47:57,630 --> 00:47:59,750 როგორც განზე, რატომ მას არ შეეჯახა ჯერ არ გაქვთ? 1078 00:47:59,750 --> 00:48:02,050 სეგმენტაცია ბრალია მოხდა სუპერ სწრაფი ადრე. 1079 00:48:02,050 --> 00:48:04,250 [INAUDIBLE] 1080 00:48:04,250 --> 00:48:04,830 დევიდ ჯ Malan: ზუსტად. 1081 00:48:04,830 --> 00:48:06,350 ასე რომ დრო სჭირდება ბეჭდვა. 1082 00:48:06,350 --> 00:48:08,370 ეს უბრალოდ იღებს მეტი მუშაობა კომპიუტერის ნაწილი. 1083 00:48:08,370 --> 00:48:09,550 და იქ ეს. 1084 00:48:09,550 --> 00:48:10,620 სეგმენტაციის ბრალია. 1085 00:48:10,620 --> 00:48:12,140 >> ასე რომ შეამჩნევს, თუ რამდენად სწრაფად პროგრამების გასაშვებად. 1086 00:48:12,140 --> 00:48:14,110 თუ თქვენ არ დაბეჭდვის არაფერი, სუპერ სწრაფი. 1087 00:48:14,110 --> 00:48:18,100 მაგრამ ჩვენ მაინც მოხდა ეს სეგმენტაცია ბრალია, რადგან, თუ რა ხდებოდა? 1088 00:48:18,100 --> 00:48:21,310 ისე, თუ ფიქრობთ იმაზე, თუ როგორ თქვენი კომპიუტერის მეხსიერების ასახული, ამ 1089 00:48:21,310 --> 00:48:22,890 ხდება, რომ იყოს მთავარი. 1090 00:48:22,890 --> 00:48:23,800 მაგრამ აქ - 1091 00:48:23,800 --> 00:48:28,670 მოდით უბრალოდ დაარქვით გუნდისა, და მოდით მოვუწოდებთ ამ გუნდისათვის. 1092 00:48:28,670 --> 00:48:33,420 და ახლა, თუ ჩემი ესთეტიკის უფლება, ეს მხოლოდ თქმას გუნდი, 1093 00:48:33,420 --> 00:48:38,060 გუნდი, გუნდი, გუნდი, გუნდი, გუნდი, გუნდი, რეკლამა nauseum. 1094 00:48:38,060 --> 00:48:39,920 და საბოლოოდ, რა მოხდება? 1095 00:48:39,920 --> 00:48:46,690 თუ დიდი სურათის სიტყვასიტყვით ეს, რა რაღაც კონცეპტუალურად? 1096 00:48:46,690 --> 00:48:48,320 დასტის overruns ბევრი. 1097 00:48:48,320 --> 00:48:52,400 ან უარესი, უბრალოდ overrun ყველაფერი, მათ შორის ტექსტი სეგმენტი, რომელიც 1098 00:48:52,400 --> 00:48:54,530 zeroes და ვინც წარმოადგენენ თქვენი პროგრამა. 1099 00:48:54,530 --> 00:48:56,690 მოკლედ, ეს მხოლოდ სუპერ, სუპერ ცუდი. 1100 00:48:56,690 --> 00:48:56,860 მარჯვენა? 1101 00:48:56,860 --> 00:48:58,620 შენი პროგრამა spiraled კონტროლიდან. 1102 00:48:58,620 --> 00:49:02,840 თქვენ იყენებთ გზა მეტი მეხსიერების ვიდრე თქვენ განკუთვნილია ყველა გამო სულელური 1103 00:49:02,840 --> 00:49:03,920 შეცდომა, ამ შემთხვევაში. 1104 00:49:03,920 --> 00:49:08,160 ან ამ შემთხვევაში, სრულიად შეგნებულად კეთდება ფუნქცია მოუწოდებდა თავად. 1105 00:49:08,160 --> 00:49:09,210 ახლა ეს არის არა ყველა ცუდი. 1106 00:49:09,210 --> 00:49:12,540 ფუნქციები მოუწოდებდა თავად რეალურად აქვს დიდი ძალა 1107 00:49:12,540 --> 00:49:13,700 როდესაც თქვენ გამოიყენოს იგი სწორად. 1108 00:49:13,700 --> 00:49:15,650 მე არ გამოიყენება მას სწორად აქ. 1109 00:49:15,650 --> 00:49:16,940 >> ასე რომ, ეს არ არის ყველა ცუდი. 1110 00:49:16,940 --> 00:49:20,620 მაგრამ ის ფაქტი, რომ მე არასოდეს რეალურად შეწყვიტოს მოუწოდებენ თავს არის ფუნდამენტური 1111 00:49:20,620 --> 00:49:23,050 სისუსტე აქ ამ პროგრამას. 1112 00:49:23,050 --> 00:49:25,090 ისე სად მივდივართ ყველა ამ? 1113 00:49:25,090 --> 00:49:26,230 ისე, რა ხდება რეალურად? 1114 00:49:26,230 --> 00:49:30,010 როდესაც მოვუწოდებ ნამატი ფუნქცია, როგორიცაა ვაკეთებდით იმ მაგალითები, 1115 00:49:30,010 --> 00:49:33,290 მაქვს ღირებულება, როგორიცაა 1 რომ მე გაივლის სისტემაში 1116 00:49:33,290 --> 00:49:35,820 მე კორიდორი ასლი ნომერ. 1117 00:49:35,820 --> 00:49:37,080 ასე შემდეგ მოხდება. 1118 00:49:37,080 --> 00:49:40,390 მოდით წასვლას ნამატი მაგალითად. 1119 00:49:40,390 --> 00:49:44,230 და ამ ბიჭს უფლება მეტი აქ. 1120 00:49:44,230 --> 00:49:46,800 ასე რომ აქ არის ის, რაც სინამდვილეში ხდება. 1121 00:49:46,800 --> 00:49:50,770 მე როცა დაგირეკე წუთობრივი, და მე კორიდორი x, pictorially რა 1122 00:49:50,770 --> 00:49:53,660 მიმდინარეობს აქ არის ამ - 1123 00:49:53,660 --> 00:50:00,240 თუ მაქვს ღირებულება 1 ინახება, და მე სინამდვილეში წუთობრივი, რომელიც 1124 00:50:00,240 --> 00:50:02,680 არის მოუწოდა ქორო - 1125 00:50:02,680 --> 00:50:04,010 yeah, რომ სროლა ჩემთვის off აქ. 1126 00:50:04,010 --> 00:50:06,750 მოდით დაარქვით იყოს. 1127 00:50:06,750 --> 00:50:09,420 და ჩვენ არ ვიცით, რა ამ შემდეგი ფუნქცია იქნება. 1128 00:50:09,420 --> 00:50:14,270 ასე რომ, რა ხდება რეალურად არის აქ სადღაც მთავარ, მაქვს ბლოკი 1129 00:50:14,270 --> 00:50:16,670 მეხსიერება, რომელიც შენახვის ნომერი 1. 1130 00:50:16,670 --> 00:50:19,730 როდესაც მოვუწოდებ წუთობრივი, მე გამოყენებით მეორე ბლოკი მეხსიერება, მაგრამ ახლა მე 1131 00:50:19,730 --> 00:50:20,840 აქვს ასლი 1. 1132 00:50:20,840 --> 00:50:25,480 როდესაც მე ნამატი, რომ ღირებულება, ეს ხდება 2 - horribly დაწერილ 1133 00:50:25,480 --> 00:50:26,420 ეკრანზე აქ. 1134 00:50:26,420 --> 00:50:30,550 თუმცა, შემდეგ რა მოხდება, როგორც კი წუთობრივი ანაზღაურება? 1135 00:50:30,550 --> 00:50:34,610 ეს მეხსიერების უბრალოდ იღებს გადასცა თავში ოპერაციული სისტემა, რაც იმას ნიშნავს, ყველა 1136 00:50:34,610 --> 00:50:37,470 თქვენ გავაკეთეთ არაფერია სასარგებლო. 1137 00:50:37,470 --> 00:50:43,460 ერთი, რომ თავდაპირველად შეიცავს ძირითად კვლავ რეალურად არსებობს. 1138 00:50:43,460 --> 00:50:44,650 >> ისე სად მივდივართ ამ? 1139 00:50:44,650 --> 00:50:49,400 ისე, გამოდის, რომ მეხსიერებაში თქვენ ეს უკან უკან თანმიმდევრობა 1140 00:50:49,400 --> 00:50:50,940 bytes შეგიძლიათ განათავსოთ პერსონალის სისტემაში 1141 00:50:50,940 --> 00:50:53,760 და აღმოჩნდება, რომ ჩვენ უკვე დავინახეთ რაღაც რომელიც მოიცავს აყენებს 1142 00:50:53,760 --> 00:50:55,100 რამ თავში დაბრუნება თავში დაბრუნება. 1143 00:50:55,100 --> 00:51:00,170 რა არის ტექსტი, რომელიც დაფუძნებულია კვირაში ერთი და ახლა კვირაში ორი? 1144 00:51:00,170 --> 00:51:01,840 ასე რომ მხოლოდ კოლექცია სიმბოლო. 1145 00:51:01,840 --> 00:51:05,290 გამოდის, ისევე, როგორც თქვენ შეგიძლიათ განათავსოთ ნომრები მეხსიერება, ანალოგიურად შეგიძლიათ 1146 00:51:05,290 --> 00:51:06,900 დააყენა გმირები მეხსიერებაში. 1147 00:51:06,900 --> 00:51:09,810 და კიდევ ჩვენ ვიწყებთ აყენებს სიმბოლოების მეხსიერების თავში დაბრუნება თავში 1148 00:51:09,810 --> 00:51:12,800 უკან, აღმოჩნდება, რომ გამოყენებით მარტივი რამ, როგორიცაა ამისთვის მარყუჟი ან 1149 00:51:12,800 --> 00:51:14,510 ხოლო მარყუჟის, ჩვენ შეგვიძლია iterate - 1150 00:51:14,510 --> 00:51:17,130 მარცხნიდან მარჯვნივ მეტი სიმბოლოების string - 1151 00:51:17,130 --> 00:51:20,720 და დაიწყოს massaging მათთვის სხვადასხვა სიმბოლოების საერთოდ. 1152 00:51:20,720 --> 00:51:25,550 შესაძლოა გახდეს B. B გახდებოდა C. ასე რომ საბოლოო ჯამში, შეგვიძლია 1153 00:51:25,550 --> 00:51:28,830 English სასჯელს, რომ რეალურად აზრი და დააკონვერტიროთ თითოეული იმ 1154 00:51:28,830 --> 00:51:32,440 წერილების ერთ დროს გავლით ჩვენი კომპიუტერის მეხსიერების დარჩა 1155 00:51:32,440 --> 00:51:34,300 უფლება რეალურად დაშიფვრა. 1156 00:51:34,300 --> 00:51:36,590 >> მოდით ჩვენი ხუთი წუთის შესვენების აქ, და როდესაც ჩვენ დავბრუნდებით, ჩვენ 1157 00:51:36,590 --> 00:51:39,060 დავიწყოთ ამ პროცესში scrambling ინფორმაციას. 1158 00:51:41,640 --> 00:51:43,180 >> ყველა უფლება. 1159 00:51:43,180 --> 00:51:48,440 ასე რომ სანამ ჩვენ ჩაყვინთვის, რათა გარკვეული შიფრის და ეს ყველაფერი მოუწოდა მასივები, ნება მომეცით 1160 00:51:48,440 --> 00:51:51,610 პაუზის ნებისმიერი კითხვები, რადგან მე თავს ნამდვილად სახის muddled ზოგიერთი 1161 00:51:51,610 --> 00:51:52,230 ამ თემებზე. 1162 00:51:52,230 --> 00:51:53,940 მოდით დაფიქსირება ახლა შევძლებთ თუ არა. 1163 00:51:53,940 --> 00:51:56,480 ასე რომ, ჩვენ მხოლოდ ისაუბრა დაბრუნების ღირებულებებს. 1164 00:51:56,480 --> 00:51:58,630 ჩვენ ვისაუბრეთ არგუმენტები. 1165 00:51:58,630 --> 00:52:02,330 ჩვენ ვისაუბრეთ ამ ცნება, რომელიც ჩვენ დავბრუნდებით ამ კვირიდან 1166 00:52:02,330 --> 00:52:07,140 მოვიდა, საქართველოს ათვალიერებენ მეხსიერების როგორც მთელი bunch ამ stacked 1167 00:52:07,140 --> 00:52:08,540 ქაღალდის, ასე ვთქვათ. 1168 00:52:08,540 --> 00:52:13,460 საგებიდან on up, ასეთი, რომ ყოველი უჯრა რომ იღებს ჩაიცვი დასტის წარმოადგენს 1169 00:52:13,460 --> 00:52:15,160 ფუნქცია, რომელიც ამჟამად მიმდინარეობს მოუწოდა. 1170 00:52:17,970 --> 00:52:20,300 ნებისმიერი კითხვები? 1171 00:52:20,300 --> 00:52:22,890 მაშ როგორ შესახებ - ნება მომეცით ვცდილობთ პასუხში შეკითხვა. 1172 00:52:22,890 --> 00:52:25,520 მე შენარჩუნება spoiling რომ, მაგრამ ახლა it's - you've ყველა ჩანს ბიჭის სახე. 1173 00:52:25,520 --> 00:52:27,020 ამიტომ ჩვენ დავბრუნდებით რომ. 1174 00:52:27,020 --> 00:52:29,700 >> ნება მომეცით, შეკითხვა დაესვა აქ. 1175 00:52:29,700 --> 00:52:34,810 ნება მომეცით გაამარტივებს ამ თავში, რაც იყო ადრე ჩვენი ზოგიერთი ადრე Q & A. 1176 00:52:34,810 --> 00:52:41,730 და ის ფაქტი, რომ ნამატი აქვს ღია ფრჩხილებში, int ნომერი, დაიხურა 1177 00:52:41,730 --> 00:52:42,260 ფრჩხილებში. 1178 00:52:42,260 --> 00:52:46,370 რას int ხმების წარმოადგენს? 1179 00:52:46,370 --> 00:52:47,250 [INAUDIBLE] 1180 00:52:47,250 --> 00:52:47,870 დევიდ ჯ Malan: არგუმენტი. 1181 00:52:47,870 --> 00:52:50,732 Okay, მაგრამ რა არგუმენტი? 1182 00:52:50,732 --> 00:52:51,620 [INAUDIBLE] 1183 00:52:51,620 --> 00:52:52,500 დევიდ ჯ Malan: უკაცრავად, რა რომ? 1184 00:52:52,500 --> 00:52:53,150 დინამიკები 3: Something თქვენ გაივლით სისტემაში 1185 00:52:53,150 --> 00:52:53,570 დევიდ ჯ Malan: Okay. 1186 00:52:53,570 --> 00:52:54,780 ასე რომ რაღაც, რომ თქვენ გაივლის სისტემაში 1187 00:52:54,780 --> 00:52:56,560 და საერთოდ, უბრალოდ დასტური. 1188 00:52:56,560 --> 00:52:59,860 თუ თქვენ წერა ფუნქცია და რომ ფუნქცია მიზანი ცხოვრებაში არის გავაკეთოთ 1189 00:52:59,860 --> 00:53:03,290 რაღაც ცოტა განსხვავებული ყველა დროის გამოყენება, მაშინ ერთადერთი გზა 1190 00:53:03,290 --> 00:53:07,710 რომ მოხდეს მართლაც რომ ჩანს, უზრუნველყოს იგი შეყვანის ისე, რომ იგი 1191 00:53:07,710 --> 00:53:10,180 შეიძლება რაღაც განსხვავებული, რომ შეყვანის ყოველ ჯერზე. 1192 00:53:10,180 --> 00:53:13,590 >> ასე, რომ თქვენ უნდა მიუთითოთ ორი რამ როდესაც ფუნქცია იღებს საშუალებებით. 1193 00:53:13,590 --> 00:53:17,240 თქვენ უნდა მიუთითოთ სახელი, რომ თქვენ მინდა რომ შეყვანის, სუფთა ამისთვის 1194 00:53:17,240 --> 00:53:20,790 თქვენი საკუთარი მოხერხებულობის ასე რომ თქვენ შეგიძლიათ ეხება ის ფუნქცია, რომ თქვენ 1195 00:53:20,790 --> 00:53:23,610 თავის წერს, როგორც მე აქ ხაზი 32. 1196 00:53:23,610 --> 00:53:27,840 მაგრამ თქვენ უნდა მიუთითოთ მისი ტიპის რადგან C არის პროგრამირების ენა 1197 00:53:27,840 --> 00:53:28,840 რომ მოითხოვს 1198 00:53:28,840 --> 00:53:31,810 რომ, თუ გნებავთ ცვლადი, თქვენ უნდა ვუთხრა კომპიუტერი რა 1199 00:53:31,810 --> 00:53:32,790 მონაცემები აკრიფოთ ეს, 1200 00:53:32,790 --> 00:53:35,540 დიდი ნაწილი ისე, რომ იცის რამდენი ბიტი უნდა 1201 00:53:35,540 --> 00:53:37,230 გამოყოფს, რომ ცვლადი. 1202 00:53:37,230 --> 00:53:38,600 მას შესაძლოა იყოს ექვსი - 1203 00:53:38,600 --> 00:53:39,990 უკაცრავად, ეს არ იქნება ექვსი. 1204 00:53:39,990 --> 00:53:41,050 ეს შეიძლება იყოს 16. 1205 00:53:41,050 --> 00:53:41,630 ეს შეიძლება იყოს 8. 1206 00:53:41,630 --> 00:53:44,410 ეს შეიძლება იყოს 32, თუნდაც 64. 1207 00:53:44,410 --> 00:53:45,820 მაგრამ კომპიუტერში უნდა გაიგოს. 1208 00:53:45,820 --> 00:53:49,110 ახლა int წლის მარცხენა მხარეს წარმოადგენს რა, პირიქით? 1209 00:53:52,825 --> 00:53:53,780 [INAUDIBLE] 1210 00:53:53,780 --> 00:53:54,570 დევიდ ჯ Malan: რა არის ეს? 1211 00:53:54,570 --> 00:53:55,390 [INAUDIBLE] 1212 00:53:55,390 --> 00:53:57,920 დევიდ ჯ Malan: გაცნობის ფუნქცია და, უფრო კონკრეტულად, 1213 00:53:57,920 --> 00:53:59,755 გაცნობის მისი გამომუშავება. 1214 00:53:59,755 --> 00:54:00,220 მარჯვენა. 1215 00:54:00,220 --> 00:54:04,220 ასე რომ, მაშინ როდესაც რამ ფრჩხილებში წარმოადგენს მისი შეყვანის, ასეთის არსებობის შემთხვევაში, 1216 00:54:04,220 --> 00:54:06,640 რამ მარცხენა წარმოადგენს მისი გამომუშავება. 1217 00:54:06,640 --> 00:54:10,560 და ამ შემთხვევაში, ნამატი სავარაუდოდ ბრუნდება int. 1218 00:54:10,560 --> 00:54:14,590 და ასე int არის დაბრუნების ტიპის ამ ფუნქციის. 1219 00:54:14,590 --> 00:54:16,090 >> რას ნიშნავს დაბრუნებას? 1220 00:54:16,090 --> 00:54:19,810 სიტყვასიტყვით, თქვენ იყენებთ სიტყვით დაბრუნების. 1221 00:54:19,810 --> 00:54:24,640 და მაშინ, თუ რას დაბრუნების უფლება სიტყვით არის 1222 00:54:24,640 --> 00:54:28,340 მთელი რიცხვი, მაშინ ეს მართლაც შეესაბამება იმას, რასაც ჩვენ დავპირდით. 1223 00:54:28,340 --> 00:54:31,110 თქვენ ვერ რაღაც მსგავსი - 1224 00:54:31,110 --> 00:54:32,280 hello, world - 1225 00:54:32,280 --> 00:54:33,500 რადგან ეს სიმებიანი. 1226 00:54:33,500 --> 00:54:35,440 ცხადია, რომ ეს არ არის მთელი რიცხვი. 1227 00:54:35,440 --> 00:54:40,450 ასე მოკლედ, ტვირთი მართლაც ჩვენზე, პროგრამისტი, უნდა იყოს კონკრეტული, როგორც 1228 00:54:40,450 --> 00:54:44,730 თუ რა ჩვენ დაბრუნების და შემდეგ ფაქტიურად წასვლა დაბრუნებაზე იგი. 1229 00:54:44,730 --> 00:54:49,030 და შემდეგ მიიღოს tad უფრო მკაფიო კონტექსტში - 1230 00:54:49,030 --> 00:54:50,080 იქ არის ისევ. 1231 00:54:50,080 --> 00:54:51,060 კონტექსტში - 1232 00:54:51,060 --> 00:54:52,830 დიდი სიურპრიზი შემოდიოდნენ მხოლოდ მომენტში. 1233 00:54:52,830 --> 00:54:57,720 კონტექსტში აქ არის ის არის, რომ თქვენი კომპიუტერის მეხსიერების, კიდევ ერთხელ, 1234 00:54:57,720 --> 00:54:59,070 Gigabyte, ორი გიგაბაიტი, რასაც. 1235 00:54:59,070 --> 00:54:59,630 შეიძლება უფრო მეტი. 1236 00:54:59,630 --> 00:55:00,540 შეიძლება უფრო ნაკლები. 1237 00:55:00,540 --> 00:55:03,750 მაგრამ კომპიუტერი ამას განიხილავს არა როგორც განსხვავებული სექციები. 1238 00:55:03,750 --> 00:55:04,860 რაღაც მიდის down იქ. 1239 00:55:04,860 --> 00:55:06,020 რაღაც მიდის up there. 1240 00:55:06,020 --> 00:55:07,540 სხვადასხვა პერსონალის მიდის შუა. 1241 00:55:07,540 --> 00:55:09,300 და დღეს ჩვენ უბრალოდ დაიწყოს ვეუბნებოდი ეს ამბავი. 1242 00:55:09,300 --> 00:55:11,130 >> მაგრამ ჩვენ დავბრუნდებით ამ დროთა განმავლობაში. 1243 00:55:11,130 --> 00:55:15,000 ახლა მხოლოდ ნაჭერი მეხსიერების ჩვენ ნამდვილად აინტერესებს არის ტექსტი სეგმენტი 1244 00:55:15,000 --> 00:55:17,160 იმიტომ, რომ მხოლოდ წარმოადგენს zeroes და პირობა 1245 00:55:17,160 --> 00:55:18,460 რომ Clang აქვს outputted. 1246 00:55:18,460 --> 00:55:21,570 ასე რომ, როდესაც თქვენ აწარმოებს ბრძანებას კლავიატურის მოსწონს a.out, ან თქვენ ორმაგი 1247 00:55:21,570 --> 00:55:25,350 დააწკაპუნეთ ხატი შესახებ Mac OS ან Windows, თქვენი პროგრამის დატვირთული თქვენი მყარი 1248 00:55:25,350 --> 00:55:26,930 მანქანა შევიდა RAM. 1249 00:55:26,930 --> 00:55:30,850 და ეს plopped ზედა თქვენი კომპიუტერის RAM, ასე ვთქვათ. 1250 00:55:30,850 --> 00:55:35,470 ახლა იმავდროულად, როგორც თქვენი პროგრამა იწყება გაშვებული და ძირითადი იღებს გამოძახებული 1251 00:55:35,470 --> 00:55:39,240 პროგრამის დაწერა ან პროგრამა Microsoft ან Apple წერდა, მისი ნებისმიერი 1252 00:55:39,240 --> 00:55:42,930 ადგილობრივი ცვლადები დასრულდება მდე დაეცა იქ ბოლოში თქვენი კომპიუტერის მეხსიერებაში. 1253 00:55:42,930 --> 00:55:46,490 მაგრამ თუ ძირითადი მოუწოდებს სხვა ფუნქცია, რომელიც თვითონ აქვს ცვლადები ან 1254 00:55:46,490 --> 00:55:48,340 არგუმენტები, ისინი დასრულდება up ზემოთ. 1255 00:55:48,340 --> 00:55:50,670 და თუ ეს ფუნქცია მოუწოდებს რაღაც, ისინი დასრულდება up ზემოთ იგი, 1256 00:55:50,670 --> 00:55:51,840 ზემოთ ეს, უპირველეს იგი. 1257 00:55:51,840 --> 00:55:56,100 და მხოლოდ ერთხელ ფუნქციის კეთდება შესრულებაში არ Stack of ქაღალდის, ისე 1258 00:55:56,100 --> 00:55:58,320 საუბარი, დაიწყოს მიიღოს ქვედა და ქვედა. 1259 00:55:58,320 --> 00:56:03,370 და ეს არის ის, რაც შემდეგ, მოკლედ, განმარტავს, თუ რატომ, როცა რეკავთ Cube - 1260 00:56:03,370 --> 00:56:04,660 ან რეკავთ ნამატი - 1261 00:56:04,660 --> 00:56:06,490 თქვენ გადადის ასლი ღირებულება. 1262 00:56:06,490 --> 00:56:09,840 და რა ეს იმას ნიშნავს pictorially არის, რომ თქვენ ფაქტიურად წერა 1263 00:56:09,840 --> 00:56:14,540 ნომერი 1 სხვა ნაწილში მეხსიერება, იცვლება, რომ 1 დან 2, იმ შემთხვევაში, თუ 1264 00:56:14,540 --> 00:56:15,360 ნამატი - 1265 00:56:15,360 --> 00:56:17,450 ან 8, იმ შემთხვევაში Cube - 1266 00:56:17,450 --> 00:56:21,450 და მერე ყრიან, რომ მეხსიერების მოშორებით როგორც კი ნამატი ან კუბი 1267 00:56:21,450 --> 00:56:23,410 ფუნქცია დააბრუნებს. 1268 00:56:23,410 --> 00:56:24,267 >> შეკითხვა. 1269 00:56:24,267 --> 00:56:25,517 [INAUDIBLE] 1270 00:56:28,090 --> 00:56:29,970 დევიდ ჯ Malan: სად - გლობალური ცვლადები ინახება რა 1271 00:56:29,970 --> 00:56:32,960 გაკეთებული მოუწოდა ინიციალიზაცია მონაცემები ან uninitialized მონაცემები. 1272 00:56:32,960 --> 00:56:35,900 განსხვავებით,, თუ თქვენ გაქვთ გლობალური ცვლადი და მივანიჭოთ მას 1273 00:56:35,900 --> 00:56:39,530 დაუყოვნებლივ ღირებულების მქონე ტოლობის ნიშანი, იგი მთავრდება ზედა არსებობს. 1274 00:56:39,530 --> 00:56:43,390 და თუ თქვენ უბრალოდ, ვამბობთ int x მძიმით, და არც ღირებულება, იგი მთავრდება ოდნავ 1275 00:56:43,390 --> 00:56:46,670 დაბალია RAM უბრალოდ კონვენციას. 1276 00:56:46,670 --> 00:56:49,308 სხვა კითხვები. 1277 00:56:49,308 --> 00:56:49,750 ყველა უფლება. 1278 00:56:49,750 --> 00:56:53,040 >> ასე რომ ამ სურათს დავბრუნდებით, როგორც ჩვენ უფრო ძლიერი, რაც ჩვენ შეგვიძლია გავაკეთოთ 1279 00:56:53,040 --> 00:56:53,830 კომპიუტერული. 1280 00:56:53,830 --> 00:56:58,790 მაგრამ ახლა, მოდით აქვს მოკლე intro to კრიპტოგრაფიის, კონკრეტული ტიპის 1281 00:56:58,790 --> 00:57:01,910 კრიპტოგრაფიის რომ არ გადაჭრის ყველა მსოფლიოს პრობლემების მაგრამ ამჯამად გადაჭრას 1282 00:57:01,910 --> 00:57:02,480 ზოგიერთი მათგანი. 1283 00:57:02,480 --> 00:57:06,090 ამ შემთხვევაში აქ, ჩვენ გვაქვს რაღაც მოუწოდა საიდუმლო გასაღები კრიპტოგრაფიის. 1284 00:57:06,090 --> 00:57:10,430 და საიდუმლო გასაღები კრიპტოგრაფიის, როგორც სახელი ვარაუდობს, გამომდინარეობს მისი უსაფრთხოების 1285 00:57:10,430 --> 00:57:11,330 საწყისი საიდუმლო. 1286 00:57:11,330 --> 00:57:14,720 ასე მაგალითად, თუ თქვენ უკან Grade სკოლა და თქვენ გავლით 1287 00:57:14,720 --> 00:57:18,040 პატარა საიდუმლო სიყვარულის წერილში ბიჭი ან გოგონა თქვენ გამანადგურებელი შესახებ - თუ 1288 00:57:18,040 --> 00:57:20,820 სურდა გაიაროს, რომ აუდიტორია, თქვენ ალბათ არ წერენ 1289 00:57:20,820 --> 00:57:24,120 ასეთი შენიშვნა ინგლისურ ან რასაც თქვენს მშობლიურ ენას წარმოადგენს, არამედ, თქვენ 1290 00:57:24,120 --> 00:57:25,800 შესაძლოა გაშიფრავს მას. 1291 00:57:25,800 --> 00:57:27,820 ან შეიძლება უბრალოდ გააგზავნოთ ტექსტური შეტყობინება ამ დღეებში. 1292 00:57:27,820 --> 00:57:30,310 მაგრამ თქვენ შეიძლება რეალურად გაივლის მათ შენიშვნა მთელი კლასის. 1293 00:57:30,310 --> 00:57:33,820 და ამის გაკეთება საიმედოდ, ისე, რომ თქვენი მეგობრები და მასწავლებელი 1294 00:57:33,820 --> 00:57:36,820 არ ვიცი რა თქვენ წერის, თქვენ შეიძლება ამუშავება სამართლიანად მარტივი 1295 00:57:36,820 --> 00:57:37,800 ალგორითმი - 1296 00:57:37,800 --> 00:57:39,290 ახალგაზრდა იმისა, რომ თქვენ შეიძლება იყოს - 1297 00:57:39,290 --> 00:57:40,780 უბრალოდ scramble სიტყვა. 1298 00:57:40,780 --> 00:57:44,390 ასე რომ ნაცვლად წერა, თქვენ შეიძლება დაწეროს ბ ნაცვლად B, თქვენ შეიძლება დაწეროს 1299 00:57:44,390 --> 00:57:46,670 C. ნაცვლად C, თქვენ შეიძლება დაწეროს D და სხვ. 1300 00:57:46,670 --> 00:57:50,020 ან თქვენ ვერ ამუშავება უფრო დახვეწილი თარგმანი წერილების 1301 00:57:50,020 --> 00:57:51,300 სხვადასხვა წერილებს. 1302 00:57:51,300 --> 00:57:55,440 მაგრამ დაჭერა არის ბიჭი ან გოგო, რომელსაც თქვენ გაგზავნის ამ შენიშვნა სჭირდება 1303 00:57:55,440 --> 00:57:56,850 ვიცი რაღაც. 1304 00:57:56,850 --> 00:57:59,620 რაც, ბუნებრივია? 1305 00:57:59,620 --> 00:58:01,400 მსგავსად, თუ რა საიდუმლო არის. 1306 00:58:01,400 --> 00:58:04,620 მსგავსად, თუ რა არის ის, რომ რუკების შორის როგორც და BS და Cs და DS? 1307 00:58:04,620 --> 00:58:08,780 არის თუ არა მხოლოდ ერთ დასძინა, ასე ვთქვათ, თითოეულ წერილებს გადასვლა 1308 00:58:08,780 --> 00:58:09,730 დან B, B, რომ C? 1309 00:58:09,730 --> 00:58:11,350 იქნებ უფრო კომპლექსური, ვიდრე რომ? 1310 00:58:11,350 --> 00:58:16,450 ასე, რომ თქვენ და თქვენი Crush უნდა ამ საიდუმლო ინფორმაციას. 1311 00:58:16,450 --> 00:58:18,170 მაგრამ სახის catch-22 აქ. 1312 00:58:18,170 --> 00:58:20,760 თუ ეს ძალიან პირველად თქვენ გაგზავნის ეს სიყვარული წერილი მეშვეობით 1313 00:58:20,760 --> 00:58:25,590 კლასის, თუ როგორ არის, რომ ბიჭი ან გოგო აპირებს ვიცით რა საიდუმლო კი არის? 1314 00:58:25,590 --> 00:58:28,450 ასე რომ საიდუმლო გასაღები Crypto არ გადაჭრით ყველა მსოფლიოს პრობლემებს. 1315 00:58:28,450 --> 00:58:30,490 და არსებობს რეალურად ურთიერთობისათვის რომ ჩვენ დაბრუნდება მიმართ 1316 00:58:30,490 --> 00:58:31,370 სემესტრის ბოლოს. 1317 00:58:31,370 --> 00:58:35,970 >> ანალოგიურად, აქვს არცერთი us ალბათ ოდესმე გაუგზავნა - 1318 00:58:35,970 --> 00:58:39,453 ანალოგიურად, ნუ ყველაზე მეტად ჩვენს არ ვიცი ვინმეს რომ მუშაობს, მაგალითად, ზე 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 და მაინც, ბევრი ჩვენგანი ალბათ იყიდა პერსონალის at Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 და ჩვენ ისწავლება უნდა ვივარაუდოთ, რომ ამ ელექტრონული კომერციის 1322 00:58:45,670 --> 00:58:47,060 ოპერაციების უსაფრთხო. 1323 00:58:47,060 --> 00:58:47,210 მარჯვენა? 1324 00:58:47,210 --> 00:58:49,310 URL ალბათ ამბობს https. 1325 00:58:49,310 --> 00:58:51,590 არსებობს იქნებ სულელური პატარა ბოქლომს ხატი სადღაც. 1326 00:58:51,590 --> 00:58:54,680 არსებობს გარკვეული სახის კრიპტოგრაფიის უზრუნველყოფის თქვენი საკრედიტო ბარათის ინფორმაცია 1327 00:58:54,680 --> 00:58:56,980 თქვენს შორის და Amazon.com. 1328 00:58:56,980 --> 00:59:00,410 და მაინც, თუ კრიპტოგრაფიის მოიცავს იცოდა ზოგიერთი საიდუმლო, და ჯერ მე არ 1329 00:59:00,410 --> 00:59:03,330 იცით ვინმე at Amazon, და მე ნამდვილად არ მოწყობილი ნებისმიერი სახის 1330 00:59:03,330 --> 00:59:07,350 საიდუმლო ვინმესთან დროს Amazon, როგორ არის ჩემი კომპიუტერი ან ჩემი ბრაუზერი ამით? 1331 00:59:07,350 --> 00:59:10,100 ისე, თურმე არსებობს სხვა სახის კრიპტოგრაფიის საერთოდ რომ გადაჭრას 1332 00:59:10,100 --> 00:59:10,740 რომ პრობლემა. 1333 00:59:10,740 --> 00:59:13,610 მაგრამ დღეს, ჩვენ ფოკუსირება მარტივი, სადაც შეგიძლიათ დაიყენოთ წელს 1334 00:59:13,610 --> 00:59:18,480 წინასწარ ვიცი რაღაც საიდუმლო, ისევე როგორც პლუს 1 ან რუკების შორის როგორც და BS. 1335 00:59:18,480 --> 00:59:20,710 >> და პროცესი კრიპტოგრაფიის ზოგადად მოიცავს ამ. 1336 00:59:20,710 --> 00:59:23,550 თქვენ გაქვთ ზოგიერთი ძირითადი ტექსტი, გამოსახული აქ მარცხნივ. 1337 00:59:23,550 --> 00:59:26,260 თქვენ გაუშვით მეშვეობით გარკვეული ალგორითმის ან პროცედურა 1338 00:59:26,260 --> 00:59:27,670 ამისთვის encrypting იგი. 1339 00:59:27,670 --> 00:59:31,390 იქნებ ეს მხოლოდ ხდება B, B ხდება C. და მაშინ დასრულდება up ერთად 1340 00:59:31,390 --> 00:59:32,260 cipher ტექსტი. 1341 00:59:32,260 --> 00:59:36,450 იმავდროულად, ერთხელ თქვენი Crush იღებს საიდუმლო შენიშვნა, მას უნდა შემდეგ 1342 00:59:36,450 --> 00:59:39,950 გაშიფვრა იგი ზოგადად უკუქცევის რომ ალგორითმი რათა მიიღოთ 1343 00:59:39,950 --> 00:59:41,640 უკან ძირითადი ტექსტი. 1344 00:59:41,640 --> 00:59:43,860 ახლა ფიზიკური incarnations ამ. 1345 00:59:43,860 --> 00:59:46,720 მაგალითად, ეს პატარა საიდუმლო დეკოდერი ბეჭედი. 1346 00:59:46,720 --> 00:59:50,060 და ეს არის ბეჭედი იმ გაგებით, რომ არსებობს ორი აკრიფეთ აქ. 1347 00:59:50,060 --> 00:59:53,630 On გარეთ პერიფერია ამ რამ, არსებობს წერილების მეშვეობით Z, 1348 00:59:53,630 --> 00:59:55,110 თუმცა ისინი შემთხვევითი მიზნით. 1349 00:59:55,110 --> 00:59:58,410 და ქვეყნის შიგნით, იქ რეალურად ზოგიერთი ნომრები, ისეთი, რომ ამ 1350 00:59:58,410 --> 01:00:02,940 ბეჭედი, შეგიძლიათ სახის ჩართოთ გარეთ მაგრამ არა შიგნით, რათა გამოდიან 1351 01:00:02,940 --> 01:00:04,110 ნომრები წერილებს. 1352 01:00:04,110 --> 01:00:08,290 და კლიპი თქვენ შესახებ, რომ ნახოთ - რომელთაგან ზოგიერთი შეგიძლიათ მინახავს 24/7 1353 01:00:08,290 --> 01:00:11,120 გარშემო საშობაო სეზონი საწყისი ფილმის მოუწოდა საშობაო ამბავი. 1354 01:00:11,120 --> 01:00:16,050 თქვენ ნახავთ, რომ პატარა Ralphie იმდენად მოწადინებული გაერკვნენ, რა პატარა ობოლი 1355 01:00:16,050 --> 01:00:19,810 Annie საიდუმლო გაგზავნა იყო რომ მას, რომ უკვე communicated, მე ვფიქრობ, 1356 01:00:19,810 --> 01:00:22,810 სახით რიცხვითი შეტყობინებების სერიული ყუთში. 1357 01:00:22,810 --> 01:00:26,760 და გქონდათ დაგროვების ყველა პატარა ბარათები, რომ მოვიდა 1358 01:00:26,760 --> 01:00:27,480 წელს ხორბლის ყუთში. 1359 01:00:27,480 --> 01:00:28,320 თქვენ იძულებული გახდა გვერდის მათ შემოსული 1360 01:00:28,320 --> 01:00:31,060 თქვენ ჰქონდა დასაბრუნებლად საიდუმლო დეკოდერი ბეჭედი, ასე რომ თქვენ შეგიძლიათ საბოლოოდ გაერკვნენ 1361 01:00:31,060 --> 01:00:34,190 რა არის რუკების შორის ასოები და რიცხვები, 1362 01:00:34,190 --> 01:00:35,420 ან ასოები და წერილები. 1363 01:00:35,420 --> 01:00:39,790 ასე, რომ გადმოგცეთ ეს მოკლე კლიპი საშობაო ამბავი მოტივირება pset 2 და 1364 01:00:39,790 --> 01:00:42,340 ჩვენი დისკუსია, წელს მომენტში, მასივი. 1365 01:00:42,340 --> 01:00:43,773 ასე რომ აქ გვაქვს Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [ვიდეო აღწარმოების] 1367 01:00:44,126 --> 01:00:47,470 -იქნება ეს ცნობილია ყველასთვის და sundry, რომ რალფ პარკერი წინამდებარე დაინიშნა 1368 01:00:47,470 --> 01:00:50,690 წევრი Little Orphan Annie საიდუმლო წრე და მას უფლება აქვს ყველა 1369 01:00:50,690 --> 01:00:53,500 წარჩინებით და სარგებელი ხდება მასთან. 1370 01:00:53,500 --> 01:00:56,040 -ხელმოწერილი, Little Orphan Annie. 1371 01:00:56,040 --> 01:00:58,730 Countersigned, პიერ ანდრე! 1372 01:00:58,730 --> 01:01:00,150 In მელნის! 1373 01:01:00,150 --> 01:01:02,910 პატივით და სარგებელს, უკვე ასაკში ცხრა. 1374 01:01:09,970 --> 01:01:10,730 მოდი შესახებ, მოდით კიდევ იგი. 1375 01:01:10,730 --> 01:01:15,000 მე არ გვჭირდება ყველა რომ ჯაზის შესახებ კონტრაბანდისტები და მეკობრეები. 1376 01:01:15,000 --> 01:01:17,624 -მოუსმინეთ ხვალ ღამე დადების თავგადასავალი შავი 1377 01:01:17,624 --> 01:01:19,710 Pirate გემი. 1378 01:01:19,710 --> 01:01:23,380 ახლა დროა, Annie საიდუმლო გაგზავნა თქვენთვის წევრები 1379 01:01:23,380 --> 01:01:25,670 საიდუმლო წრე. 1380 01:01:25,670 --> 01:01:30,260 გახსოვდეთ, ბავშვები, მხოლოდ წევრების Annie საიდუმლო წრე შეიძლება decode 1381 01:01:30,260 --> 01:01:31,660 Annie საიდუმლო გაგზავნა. 1382 01:01:31,660 --> 01:01:36,230 გახსოვდეთ, Annie დამოკიდებულია თქვენ. 1383 01:01:36,230 --> 01:01:38,720 უცნობია თქვენი ქინძისთავები, რათა B2. 1384 01:01:38,720 --> 01:01:41,040 აქ არის გაგზავნა. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 -მე ჩემი პირველი საიდუმლო შეხვედრა. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 პიერ იყო დიდი ხმა ამაღამ. 1389 01:01:51,700 --> 01:01:54,890 მე ვერ გეტყვით, რომ ამაღამ გზავნილი იყო მართლაც მნიშვნელოვანია. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 სწორედ შეტყობინება Annie თავად. 1392 01:01:58,590 --> 01:01:59,840 გახსოვდეთ, არ ვუთხრა ვინმეს. 1393 01:02:04,570 --> 01:02:08,750 -90 წამის შემდეგ, მე მხოლოდ სახლში ოთახი, სადაც ბიჭი ცხრა 1394 01:02:08,750 --> 01:02:12,980 შეიძლება იჯდეს კონფიდენციალურობა და decode. 1395 01:02:12,980 --> 01:02:17,130 Aha, ბ მივედი შემდეგი. 1396 01:02:17,130 --> 01:02:20,330 ე პირველი სიტყვა არის იყოს. 1397 01:02:20,330 --> 01:02:22,670 S. ეს მოდიოდა ადვილი არის. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 -Oh, მოდის, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 მე მივიღე წასვლა. 1401 01:02:28,430 --> 01:02:30,350 -I'll be უფლება down, MA. 1402 01:02:30,350 --> 01:02:33,720 -Gee whiz. 1403 01:02:33,720 --> 01:02:38,270 -T, ო დარწმუნდით. 1404 01:02:38,270 --> 01:02:40,000 დარწმუნდით რა? 1405 01:02:40,000 --> 01:02:42,105 რა იყო პატარა ობოლი Annie ცდილობს ამბობენ? 1406 01:02:42,105 --> 01:02:43,095 დარწმუნდით რა? 1407 01:02:43,095 --> 01:02:43,590 -Ralphie! 1408 01:02:43,590 --> 01:02:44,580 რენდი აქვს გასავლელი. 1409 01:02:44,580 --> 01:02:45,570 თუ თქვენ ხართ, გთხოვთ, გამოვა? 1410 01:02:45,570 --> 01:02:46,560 -ყველა უფლება, MA. 1411 01:02:46,560 --> 01:02:48,540 მე უფლება out. 1412 01:02:48,540 --> 01:02:50,580 -I იყო უახლოვდება არის. 1413 01:02:50,580 --> 01:02:52,550 დაძაბულობა იყო საშინელი. 1414 01:02:52,550 --> 01:02:53,355 რა იყო ეს? 1415 01:02:53,355 --> 01:02:56,315 ბედი პლანეტა შეიძლება სასწორზე დევს. 1416 01:02:56,315 --> 01:02:56,790 -Ralphie! 1417 01:02:56,790 --> 01:02:59,165 რენდი ის მიიღო წასვლა. 1418 01:02:59,165 --> 01:03:02,310 -I'll be უფლება out, ამისთვის ღაღადებდეს ხმამაღლა. 1419 01:03:02,310 --> 01:03:04,000 -Gee, თითქმის იქ. 1420 01:03:04,000 --> 01:03:05,180 ჩემი თითების გაფრინდა. 1421 01:03:05,180 --> 01:03:07,150 ჩემი გონება იყო ფოლადის ხაფანგში. 1422 01:03:07,150 --> 01:03:08,790 ყველა ფორე vibrated. 1423 01:03:08,790 --> 01:03:10,040 ეს იყო თითქმის ნათელია. 1424 01:03:10,040 --> 01:03:13,400 დიახ, დიახ, დიახ, დიახ. 1425 01:03:13,400 --> 01:03:18,960 -დარწმუნდით დალევა თქვენი Ovaltine. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 Crummy კომერციული? 1428 01:03:28,200 --> 01:03:29,640 Son of a Bitch. 1429 01:03:29,640 --> 01:03:33,340 [END ვიდეო აღწარმოების] 1430 01:03:33,340 --> 01:03:36,040 >> დევიდ ჯ Malan: ასე რომ ჩვენ გვაქვს კრიპტოგრაფიის. 1431 01:03:36,040 --> 01:03:39,670 ასე რომ თუნდაც კომპიუტერულ შეგვიძლია წავიდეთ შესახებ განხორციელების ან 1432 01:03:39,670 --> 01:03:40,950 წარმოადგენს რამ ასე? 1433 01:03:40,950 --> 01:03:44,430 კარგად, ჩვენ გვჭირდება გზა გამოხატავს საკუთარ თავს ცოტა მეტი მოქნილად, ვიდრე 1434 01:03:44,430 --> 01:03:46,420 ჩვენი ცვლადები ჯერჯერობით არ დაუშვეს. 1435 01:03:46,420 --> 01:03:47,370 ჩვენ გვქონდა ints. 1436 01:03:47,370 --> 01:03:48,380 ჩვენ გვქონდა სიმბოლო. 1437 01:03:48,380 --> 01:03:50,790 ჩვენ გვქონდა მოძრავი და ორადგილიანი და რამდენიმე სხვა. 1438 01:03:50,790 --> 01:03:55,050 მაგრამ ეს არის ინდივიდუალური ცალი მეხსიერების რომ ნამდვილად არ გვაძლევს 1439 01:03:55,050 --> 01:03:58,010 გამოხატოს რამ, როგორიცაა სიტყვა და სასჯელი და ფრაზები. 1440 01:03:58,010 --> 01:04:00,200 მართლაც, ჩვენ მოუწოდა ასეთი რამ სტრიქონები. 1441 01:04:00,200 --> 01:04:03,650 მაგრამ ჩვენ დაპირდა, რომ ეს მართლაც მხოლოდ გამარტივების წელს CS50 1442 01:04:03,650 --> 01:04:07,020 ბიბლიოთეკა, რომ ჩვენ აპირებს კანი უკან. 1443 01:04:07,020 --> 01:04:08,970 >> და მოდით ახლა გადავიდეთ გავაკეთოთ, რომ აქ. 1444 01:04:08,970 --> 01:04:11,130 ნება მომეცით წავიდეთ წინ და გახსენით ფაილი - 1445 01:04:11,130 --> 01:04:13,770 ყველა ამ ფაილებზე ხელმისაწვდომია როგორც ყოველთვის ონლაინ - 1446 01:04:13,770 --> 01:04:19,120 მოუწოდა array.c გადაჭრის პრობლემას უკავშირდება სტრიქონები მაგრამ რომ ხატავს 1447 01:04:19,120 --> 01:04:23,040 სურათს აქ, როგორ შეიძლება გამოიყენოთ რაღაც მოუწოდა მასივი. 1448 01:04:23,040 --> 01:04:25,530 Array არის მონაცემები ტიპის. 1449 01:04:25,530 --> 01:04:31,320 ეს გაცნობის ცვლადი, საქართველოს ჯიშები, რომ მრავლობითი პატარა მონაცემთა ტიპები 1450 01:04:31,320 --> 01:04:34,150 შიგნით მას თავში დაბრუნება თავში დაბრუნება. 1451 01:04:34,150 --> 01:04:37,700 ასე მაგალითად, თუ გვინდა დავწეროთ პატარა პროგრამა, რომელიც გაძლევთ თქვენს 1452 01:04:37,700 --> 01:04:42,110 Quiz საშუალოდ კურსი მოსწონს 50 რომ აქვს ორი ვიქტორინებში, თქვენ შეიძლება ძალიან ადვილად 1453 01:04:42,110 --> 01:04:45,170 დაწერეთ ამ პროგრამის - საფუძველზე კი ზოგიერთ გასულ კვირას მატერიალურ - 1454 01:04:45,170 --> 01:04:47,770 გამოყენებით GetInt და რამოდენიმე ცვლადი. 1455 01:04:47,770 --> 01:04:51,920 Int quiz1, int quiz2, და ეს საკმაოდ მარტივია. 1456 01:04:51,920 --> 01:04:55,930 ეს ალბათ 10, 20 ხაზების კოდი, მაქს, განახორციელოს პროგრამა, რომელიც სთხოვს 1457 01:04:55,930 --> 01:05:01,170 მომხმარებლის ორი Quiz ქულით და შემდეგ computes მათი საშუალო დამატებით მათ 1458 01:05:01,170 --> 01:05:03,850 ერთად, გამყოფი ორი, ხოლო შემდეგ ბეჭდვის შედეგები. 1459 01:05:03,850 --> 01:05:06,380 ჩვენ შეგვეძლო ალბათ, რომ საკმაოდ ადვილად არის შემდეგ 1460 01:05:06,380 --> 01:05:07,510 ზოგიერთი ხმების წუთი. 1461 01:05:07,510 --> 01:05:11,005 >> მაგრამ პრობლემა ისაა, რომ ვივარაუდოთ, რომ 50 ჰქონდა სამი ტესტებში ან ოთხი. 1462 01:05:11,005 --> 01:05:13,510 დავუშვათ, რომ თქვენ სურდა გამოიყენოთ იგივე პროგრამის კლასი, რომელიც ჰქონდა 1463 01:05:13,510 --> 01:05:14,850 ყოველკვირეული ტესტებში. 1464 01:05:14,850 --> 01:05:16,610 იფიქრეთ კლასის, რომელიც ყოველკვირეული ტესტებში. 1465 01:05:16,610 --> 01:05:20,610 თუ მოსწონს 16 ან იმდენად კვირით სემესტრში, ახლა თქვენ გაქვთ 16 ცვლადები - 1466 01:05:20,610 --> 01:05:24,270 int quiz1, int quiz2, int quiz3, int quiz4. 1467 01:05:24,270 --> 01:05:27,560 როგორც კი დაიწყება ვხედავთ ამ redundancy, ამ გადაწერა და pasting 1468 01:05:27,560 --> 01:05:31,390 კოდის, უნდა დაიწყოს, რათა გსურთ იყო უკეთესი გზა. 1469 01:05:31,390 --> 01:05:33,930 და საბედნიეროდ, რადგან მასივები, არსებობს. 1470 01:05:33,930 --> 01:05:34,980 ასე რომ მოდით ეს. 1471 01:05:34,980 --> 01:05:38,430 პირველი, მინდა წარმოგიდგინოთ ძალიან მარტივი რამ, რომ ჩვენ არ გამოიყენება ჯერჯერობით 1472 01:05:38,430 --> 01:05:40,140 მაგრამ დაინახავთ მას ზოგჯერ კოდის. 1473 01:05:40,140 --> 01:05:42,360 ეს არის რა ზოგადად მოუწოდა მუდმივი. 1474 01:05:42,360 --> 01:05:45,790 ასე რომ მუდმივი იმ გაგებით, რომ ამ მნიშვნელობის არასოდეს ცვლის. 1475 01:05:45,790 --> 01:05:49,210 ადამიანის კონვენციის როდესაც შექმნა კონსტანტა გამოიყენონ ყველა დედაქალაქში 1476 01:05:49,210 --> 01:05:51,940 წერილებს, მხოლოდ ისე, რომ იგი ნამდვილად გამოირჩევა თქვენს კოდი. 1477 01:05:51,940 --> 01:05:55,960 და სპეციალური სიტყვით რომ სარგებლობთ C არის # განსაზღვრავს. 1478 01:05:55,960 --> 01:06:00,250 ასე რომ, თუ თქვენ ამბობთ # განსაზღვრავს, მაშინ სივრცე, მაშინ სიტყვა, რომელიც გსურთ გამოიყენოთ 1479 01:06:00,250 --> 01:06:03,260 მუდმივი სახელი და შემდეგ ღირებულების მუდმივი. 1480 01:06:03,260 --> 01:06:06,180 ასე შეტყობინება, ეს განსხვავდება მინიჭების რაიმე ცვლადი. 1481 01:06:06,180 --> 01:06:07,020 იქ არ არის ტოლობის ნიშანი. 1482 01:06:07,020 --> 01:06:08,240 იქ არ არის მძიმით. 1483 01:06:08,240 --> 01:06:11,410 ეს არის რა საყოველთაოდ ცნობილია, როგორც preprocessor დირექტივა, მაგრამ უფრო 1484 01:06:11,410 --> 01:06:12,210 რომ სხვა დროს. 1485 01:06:12,210 --> 01:06:18,540 >> ახლა ამ ქმნის unchanging ღირებულება მოუწოდა ტესტები, რომელთა ფაქტობრივი 1486 01:06:18,540 --> 01:06:19,940 რიცხვითი მნიშვნელობა არის 2. 1487 01:06:19,940 --> 01:06:24,020 ასე რომ სადმე ხედავთ ტესტები, ტესტები, ტესტები მთელ ამ ფაილის, რომ 1488 01:06:24,020 --> 01:06:25,410 უბრალოდ რიცხვი 2. 1489 01:06:25,410 --> 01:06:28,100 ახლა, თუ გავითვალისწინებთ მთავარ ახლა, ვნახოთ, თუ როგორ ეს სამუშაოები. 1490 01:06:28,100 --> 01:06:29,500 თავდაპირველად, იგი გამოიყურება ცოტა cryptic. 1491 01:06:29,500 --> 01:06:31,340 მაგრამ ყველა პერსონალის საწყისი კვირაში ერთი. 1492 01:06:31,340 --> 01:06:32,710 დასვით მომხმარებლის for კლასის. 1493 01:06:32,710 --> 01:06:33,630 როგორ გავაკეთოთ ეს? 1494 01:06:33,630 --> 01:06:35,470 კარგად, შეესაბამება 22 - 1495 01:06:35,470 --> 01:06:37,210 ეს მართლაც წვნიანი ნაწილი - 1496 01:06:37,210 --> 01:06:40,960 ვაცხადებ float, მაგრამ არა მხოლოდ ერთი float. 1497 01:06:40,960 --> 01:06:44,620 მე გამოცხადების, არამედ მასივი მცურავი პუნქტიანი ღირებულებებს. 1498 01:06:44,620 --> 01:06:49,100 რომ ცვლადი აპირებს ეწოდოს კლასის, როგორც გულისხმობდა აქ. 1499 01:06:49,100 --> 01:06:53,080 მაგრამ მხოლოდ ნაჭერი ახალი სინტაქსის მაშინ ეს კვადრატულ ფრჩხილებში, ფაქტი 1500 01:06:53,080 --> 01:06:59,350 რომ მე განაცხადა float კლასების და შემდეგ ღია bracket და შემდეგ ნომერი. 1501 01:06:59,350 --> 01:07:02,460 შეტყობინება, თუ ეს მუდმივი, ეს მხოლოდ ისე, როგორც ეს. 1502 01:07:02,460 --> 01:07:06,890 ეს ნიშნავს, hey კომპიუტერი, მომეცი ორი მოძრავი, და მოდით ერთობლივად მოვუწოდებთ 1503 01:07:06,890 --> 01:07:08,220 მათ კლასის. 1504 01:07:08,220 --> 01:07:11,920 ეს არის განსხვავებით ბევრად უფრო რუტინული პროცესი მოსწონს ეს. 1505 01:07:11,920 --> 01:07:15,850 Float grade1, ათწილადი grade2 და სხვ. 1506 01:07:15,850 --> 01:07:20,010 ამიტომ მასივი საშუალებას გვაძლევს განვახორციელოთ ეს იდეა, მაგრამ უფრო ნაკლებად messily, წელს 1507 01:07:20,010 --> 01:07:24,630 ისე, რომ ჩვენ შეგვიძლია დავწეროთ ერთი ხაზი კოდი ნაცვლად, ვთქვათ, 16 16 1508 01:07:24,630 --> 01:07:25,740 კვირაში სემესტრში. 1509 01:07:25,740 --> 01:07:29,950 ამიტომ მე არ მინდა, რომ მყარი კოდი 2 რადგან თუ ფიქრობთ ეს ახლა 1510 01:07:29,950 --> 01:07:34,160 ლოგიკურად - ვარაუდობენ, მომავალ წელს CS50 ცვლილებების 3 ტესტებში ნაცვლად. 1511 01:07:34,160 --> 01:07:35,510 და მქონდა ნომერი 2 აქ. 1512 01:07:35,510 --> 01:07:36,600 მქონდა ნომერი 2 აქ. 1513 01:07:36,600 --> 01:07:37,580 მქონდა ნომერი 2 აქ. 1514 01:07:37,580 --> 01:07:38,560 მქონდა ნომერი 2 აქ. 1515 01:07:38,560 --> 01:07:43,180 ეს ხდება ძალიან რუტინული და ძალიან ადვილი Screw up და შემთხვევით შეცვალოს 1516 01:07:43,180 --> 01:07:47,690 ერთი ღირებულების 3 და ელოდებიან რაიმე სხვა ღირებულება 2. 1517 01:07:47,690 --> 01:07:52,460 ამიტომ მე ვაპირებ ნაცვლად აბსტრაქტული ამ მოშორებით და გამოიყენოს ეს მუდმივი, რომ, როგორც მისი 1518 01:07:52,460 --> 01:07:54,120 სახელი ვარაუდობს, არასდროს ცვლილებები. 1519 01:07:54,120 --> 01:07:57,710 და ახლა, არ აქვს მნიშვნელობა, თუ რამდენად გვაქვს სხვადასხვა ტესტებში წელს ან მომდევნო, მე 1520 01:07:57,710 --> 01:08:01,210 უბრალოდ უნდა შეიცვალოს ეს ერთ ადგილას, აქ ზედა. 1521 01:08:01,210 --> 01:08:02,720 >> ასე რომ ყველა კონსტანტა. 1522 01:08:02,720 --> 01:08:08,680 ამასობაში, ახალი კონცეპტუალური ფუნქცია რომ მასივი. 1523 01:08:08,680 --> 01:08:14,660 ასე რომ კვადრატულ ფრჩხილებში მომეცი ამ ბევრი მოძრავი და საშუალებას ჩემთვის კოლექტიურად 1524 01:08:14,660 --> 01:08:16,630 მოვუწოდებთ მათ კლასის აქ. 1525 01:08:16,630 --> 01:08:17,990 ახლა ვნახოთ რა მე ვაპირებ ამის გაკეთებას. 1526 01:08:17,990 --> 01:08:20,359 აქ ხაზი 24 არის დასაწყისიდან ამისთვის loop. 1527 01:08:20,359 --> 01:08:22,260 ეს მართლაც არაფერი მიეცით. 1528 01:08:22,260 --> 01:08:25,060 უბრალოდ გამოყენებით ტესტებში ნაცვლად მყარი კოდირებული ნომერი. 1529 01:08:25,060 --> 01:08:27,790 მაგრამ არაფერი ინტელექტუალურად სხვადასხვა იქ გასულ კვირას. 1530 01:08:27,790 --> 01:08:29,040 ეს არის მხოლოდ printf. 1531 01:08:29,040 --> 01:08:35,490 ამიტომ printf ("ინტელექტუალური ნომერი% d of% d"), რადგან მინდა ამობეჭდოთ მომეცი Quiz 1532 01:08:35,490 --> 01:08:38,050 ნომერ პირველი ორი და შემდეგ ორი ორი. 1533 01:08:38,050 --> 01:08:39,850 ასე რომ, ეს არის წმინდა წყლის ესთეტიკური რამ. 1534 01:08:39,850 --> 01:08:42,500 მაგრამ საინტერესო ნაწილი ახლა არის ხაზზე 27. 1535 01:08:42,500 --> 01:08:48,310 იმისათვის, რომ შეავსონ ერთი ორი placeholders ერთად მცურავი პუნქტიანი 1536 01:08:48,310 --> 01:08:51,029 ღირებულება, თქვენ კვლავ გამოიყენოთ კვადრატულ ფრჩხილებში. 1537 01:08:51,029 --> 01:08:55,620 ამ შემთხვევაში, მე გამოყენებით რადგან მე ამ loop დაიწყო მე equaling 1538 01:08:55,620 --> 01:08:57,560 რა ღირებულება, სავარაუდოდ? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> ამიტომ პირველ iteration ამ მარყუჟის, ეს თითქოს მე 1541 01:09:01,350 --> 01:09:02,689 დაწერა ეს კოდი. 1542 01:09:02,689 --> 01:09:05,580 მაგრამ მეორე iteration ამ მარყუჟის, ეს თითქოს მე 1543 01:09:05,580 --> 01:09:07,750 დაწერა ეს ჩემი კოდი. 1544 01:09:07,750 --> 01:09:10,750 მაგრამ ის ფაქტი, რომ მე გამოყენებით ცვლადი არის სრულყოფილი, რადგან, როგორც სახელი 1545 01:09:10,750 --> 01:09:14,300 ვარაუდობს, ის განსხვავებული მისი ღირებულება ყოველ iteration. 1546 01:09:14,300 --> 01:09:17,370 ამიტომ მე შევსების ამ მასივი ერთ ადგილზე დროს. 1547 01:09:17,370 --> 01:09:18,910 რას მასივი გამოიყურებოდეს? 1548 01:09:18,910 --> 01:09:21,430 ისე, მიზეზი მე მიიპყრო ამ სუპერ მარტივი მართკუთხედი ეკრანზე აქ 1549 01:09:21,430 --> 01:09:23,350 ადრე იყო ამ მიზეზის გამო. 1550 01:09:23,350 --> 01:09:27,279 Array მხოლოდ ბლოკი მეხსიერება მოჰყვა კიდევ ერთი ბლოკი მეხსიერება, 1551 01:09:27,279 --> 01:09:30,109 მოჰყვა კიდევ ერთი ბლოკი მეხსიერება, და სხვ. 1552 01:09:30,109 --> 01:09:35,260 ასე რომ, თუ ჩემი array არის ზომა 2, ამ შემთხვევაში აქ, ყველა მე აკეთებს მიერ 1553 01:09:35,260 --> 01:09:37,590 აკრეფით ჩემი Quiz ქულით, ისევე როგორც აქ. 1554 01:09:37,590 --> 01:09:39,430 მე მივიღე 100 ამ ერთ. 1555 01:09:39,430 --> 01:09:42,020 და შემდეგ მე მივიღე 99 ამ ერთ. 1556 01:09:42,020 --> 01:09:46,040 მაშინ ეს მეხსიერების შეიძლება არც კი იყოს გამოყენებული, რადგან მე მხოლოდ სთხოვა 1557 01:09:46,040 --> 01:09:48,689 კომპიუტერში მასივი ზომა 2. 1558 01:09:48,689 --> 01:09:50,180 იმ მოედნებზე ჯერ კიდევ არსებობს. 1559 01:09:50,180 --> 01:09:50,340 მარჯვენა? 1560 01:09:50,340 --> 01:09:52,500 თქვენ კვლავ აქვს ორი გიგაბაიტი ოპერატიული მეხსიერება, მაშინაც კი, თუ თქვენ მხოლოდ 1561 01:09:52,500 --> 01:09:53,979 ითხოვენ ორი მოძრავი. 1562 01:09:53,979 --> 01:09:58,710 ასე რომ იდეა უკან კოლექტორები არის, რომ კომპიუტერი მხოლოდ იღებს ბლოკი მეხსიერება 1563 01:09:58,710 --> 01:10:03,230 და შემდეგ გამოყოფს პატარა დარტყმები თავში დაბრუნება თავში დაბრუნება. 1564 01:10:03,230 --> 01:10:04,740 და ისე, რომ ყველა წყობა. 1565 01:10:04,740 --> 01:10:09,080 ეს მომიჯნავე ბლოკი მეხსიერება, შიგნით, რომელიც შეგიძლიათ დააყენა რამ. 1566 01:10:09,080 --> 01:10:12,400 >> ახლა ეს მოხდება, მაშინ ნუ რამოდენიმე მოსაწყენი არითმეტიკული. 1567 01:10:12,400 --> 01:10:16,170 თუ მე გადახვევა ქვემოთ აქ, ეს არის სადაც მე მაშინ iterate მეტი მასივი. 1568 01:10:16,170 --> 01:10:19,410 მე ამუშავება summation ყველა ღირებულებების მასივი. 1569 01:10:19,410 --> 01:10:22,390 და მერე გამოიყენოთ მრგვალი ფუნქცია აქ მართლაც 1570 01:10:22,390 --> 01:10:23,940 მთლიანობაში დაყოფილი ვიქტორინებში. 1571 01:10:23,940 --> 01:10:27,450 მაგრამ ნება მიბოძეთ ტალღის ჩემი ხელი, რომ როგორც სახის საკმარისი არითმეტიკული ახლა. 1572 01:10:27,450 --> 01:10:30,010 მაგრამ ყველა რომ აკეთებს ჩემთვის საბოლოოდ არის Computing საშუალო. 1573 01:10:30,010 --> 01:10:33,640 ამიტომ პირველ Quiz პლუს მეორე ვიქტორინა, გაყოფილი 2, ხოლო შემდეგ ბეჭდვის 1574 01:10:33,640 --> 01:10:34,700 ის როგორც int. 1575 01:10:34,700 --> 01:10:39,030 >> მაგრამ მოდით ახლა გადასვლის სხვადასხვა მაგალითი უწოდა string1, 1576 01:10:39,030 --> 01:10:42,370 რომელიც ხატავს მსგავსი სურათს მაგრამ მისი გამოყენება სტრიქონები. 1577 01:10:42,370 --> 01:10:45,550 ნება მომეცით წავიდეთ წინ და გაამარტივებს ამ მხოლოდ მომენტში. 1578 01:10:45,550 --> 01:10:48,340 და პატიება წანაცვლება ახლა. 1579 01:10:48,340 --> 01:10:52,280 ცნობა, ხაზი 19 ამ მაგალითად, მივიღებ string საწყისი მომხმარებელს. 1580 01:10:52,280 --> 01:10:55,780 მაგრამ შეამჩნევს თუ რა მე შემდეგი აკეთებდა ხაზები 22 Onward. 1581 01:10:55,780 --> 01:11:00,260 მე რეალურად iterating საწყისი მე მდე - და ეს არის ახალი ხრიკი - 1582 01:11:00,260 --> 01:11:02,730 strlen, string სიგრძე. 1583 01:11:02,730 --> 01:11:07,010 ეს არის ფუნქცია, რომელიც გააჩნია C, რომ თუ თქვენ გაიაროს ეს ტექსტი, იგი მოგვითხრობს 1584 01:11:07,010 --> 01:11:08,950 რამდენი გმირები არიან, რომ სიმებიანი. 1585 01:11:08,950 --> 01:11:09,440 ეს იყო. 1586 01:11:09,440 --> 01:11:12,520 ის ფაქტი, რომ ეს strlen ნაცვლად სიმებიანი სიგრძე არის მხოლოდ იმიტომ, რომ ეს 1587 01:11:12,520 --> 01:11:13,040 უფრო ლაკონური. 1588 01:11:13,040 --> 01:11:17,100 30 წლის წინ, ხალხი მომეწონა დაწერა რამ როგორც succinctly შეიძლება. 1589 01:11:17,100 --> 01:11:19,080 ასე რომ ჩვენ დაცული, რომ კონვენციის აქ. 1590 01:11:19,080 --> 01:11:21,730 მე + + უბრალოდ ნიშნავს ნამატი მე თითოეულ iteration. 1591 01:11:21,730 --> 01:11:24,310 და ახლა შეამჩნია ეს, რომელიც მართლაც ძალიან საინტერესო. 1592 01:11:24,310 --> 01:11:28,730 ასე რომ ხაზი 24, მე ვიტყვი, კომპიუტერი, მომეცი ხასიათი, რვა 1593 01:11:28,730 --> 01:11:30,770 ბიტი და ეძახით გ. 1594 01:11:30,770 --> 01:11:35,370 მაგრამ რა არის ამ მარჯვენა მხარეს ამბობდა? 1595 01:11:35,370 --> 01:11:38,150 ინგლისურ, რას წარმოადგენს? 1596 01:11:38,150 --> 01:11:40,070 [INAUDIBLE] 1597 01:11:40,070 --> 01:11:40,490 დევიდ ჯ Malan: ზუსტად. 1598 01:11:40,490 --> 01:11:42,390 მომეცი პირველი პერსონაჟი მასივი. 1599 01:11:42,390 --> 01:11:45,400 ან საერთოდ, მომეცი მე-th პერსონაჟი მასივი. 1600 01:11:45,400 --> 01:11:48,230 და გააცნობიეროს, მნიშვნელოვანია, რომ როგორც კომპიუტერი მეცნიერები, ჩვენ რეალურად 1601 01:11:48,230 --> 01:11:49,330 დათვლის საწყისი 0. 1602 01:11:49,330 --> 01:11:51,290 თქვენ არ შეხედულებისამებრ ახლა უნდა დაიწყოს ამით. 1603 01:11:51,290 --> 01:11:54,580 ახლა თქვენ უნდა მოიქცეს შესაბამისად კომპიუტერის მოლოდინი და 1604 01:11:54,580 --> 01:11:58,010 ითვლიან ნულიდან რადგან [0] იქნება პირველი 1605 01:11:58,010 --> 01:11:59,670 პერსონაჟი სიმებიანი. 1606 01:11:59,670 --> 01:12:01,320 [1] იქნება მეორე. 1607 01:12:01,320 --> 01:12:03,610 [2] იქნება მესამე და სხვ. 1608 01:12:03,610 --> 01:12:08,840 ასე რომ, ეს პროგრამა, თუ კომპილირება - ეს არის, კიდევ ერთხელ, string1. 1609 01:12:08,840 --> 01:12:11,040 >> ასე რომ string1. 1610 01:12:11,040 --> 01:12:16,730 და ახლა აწარმოებს string1 ჩემი ტერმინალის ფანჯარაში. 1611 01:12:16,730 --> 01:12:19,180 ეს ელოდება შეყვანის, ისე მე ვაპირებ აკრიფოთ, ვთქვათ, დავით. 1612 01:12:19,180 --> 01:12:20,080 შეიყვანეთ. 1613 01:12:20,080 --> 01:12:23,350 და ახლა იგი ბეჭდავს DAVID ყველა სხვადასხვა ხაზების რადგან 1614 01:12:23,350 --> 01:12:24,430 შეამჩნია რა ვაკეთებ. 1615 01:12:24,430 --> 01:12:27,510 მე დაბეჭდვის ერთი ხასიათი დროს. 1616 01:12:27,510 --> 01:12:29,100 ახლა ჩვენ არ წასვლას დეტალურად დღეს ამ. 1617 01:12:29,100 --> 01:12:31,610 მაგრამ მე წაიშალოს მომენტში წინ ამ გამშვები აქ. 1618 01:12:31,610 --> 01:12:36,310 თურმე, თუ მომხმარებელს misbehaving, შეჯიბრებითობის, ან უბრალოდ 1619 01:12:36,310 --> 01:12:41,780 დაბნეული, შეგიძლიათ რეალურად ვერ მისცემს სიმებიანი ზოგიერთი სიგრძე. 1620 01:12:41,780 --> 01:12:43,640 თუ თქვენ მოხვდა არასწორი გასაღები წლის კლავიატურის, თქვენ შესაძლოა უარი 1621 01:12:43,640 --> 01:12:44,390 არ სიმებიანი ყველა. 1622 01:12:44,390 --> 01:12:47,790 ან თუ თქვენ მუქარის, თქვენ ალბათ ცდილობენ ჩასვით წელს Gigabyte-ის ღირებულების 1623 01:12:47,790 --> 01:12:49,380 ესსე შევსება ეს კონტექსტი. 1624 01:12:49,380 --> 01:12:52,060 და თუ კომპიუტერი ამოიწურება მეხსიერების, აღმოჩნდება, რომ ჩვენ ვაპირებთ 1625 01:12:52,060 --> 01:12:54,310 დავუბრუნდეთ ამ მასივები მოუწოდა null. 1626 01:12:54,310 --> 01:12:57,550 ასე რომ, ახლა, უბრალოდ ვიცი, რომ არსებობს ამ მასივები მოუწოდა null, რომ 1627 01:12:57,550 --> 01:13:01,000 საშუალებას მოგვცემს შემოწმება როცა ჩვენ მეხსიერება ღალატობს, სხვა საკითხებს შორის. 1628 01:13:01,000 --> 01:13:07,330 >> მაგრამ თუ მე გახსენით ახლა string2, შეამჩნია ერთი განსხვავება აქ. 1629 01:13:07,330 --> 01:13:09,760 გაითვალისწინეთ ერთი განსხვავება აქ string2. 1630 01:13:09,760 --> 01:13:13,260 With string2, ეს არის მარყუჟის ცოტა განსხვავებული. 1631 01:13:13,260 --> 01:13:16,350 ნება მომეცით წაშლა nulls ასე, რომ ჩვენ შეგვიძლია საუბარი იმ სხვა დროს. 1632 01:13:16,350 --> 01:13:18,460 მაგრამ რა განსხვავდება იმ მარყუჟის ამ დროს? 1633 01:13:21,580 --> 01:13:23,160 და შემიძლია დავუბრუნდეთ წინა მაგალითს. 1634 01:13:23,160 --> 01:13:24,800 ასე რომ ორი ვერსია. 1635 01:13:24,800 --> 01:13:27,020 ეს არის ვერსია ერთ. 1636 01:13:27,020 --> 01:13:31,935 ერთი, ორი, ერთი ორი. 1637 01:13:35,030 --> 01:13:38,240 ამიტომ strlen ზარის სადაც? 1638 01:13:38,240 --> 01:13:40,420 ეს პირველ ნაწილს შეეხება loop. 1639 01:13:40,420 --> 01:13:43,060 ნებისმიერი აზრები, თუ რატომ მე ამით? 1640 01:13:43,060 --> 01:13:43,690 Yeah. 1641 01:13:43,690 --> 01:13:46,010 [INAUDIBLE] 1642 01:13:46,010 --> 01:13:47,630 დევიდ ჯ Malan: ასე რომ, ჩვენ არ მოვუწოდებთ ფუნქცია თითოეული დრო. 1643 01:13:47,630 --> 01:13:48,040 სწორედ. 1644 01:13:48,040 --> 01:13:50,350 შეგახსენებთ, საწყისი ამისთვის მარყუჟების, რომ ისინი სუპერ მარტივი ერთხელ თქვენ სახის 1645 01:13:50,350 --> 01:13:52,180 ესმით, რომ ეს არის ინიციალიზაციისას, 1646 01:13:52,180 --> 01:13:53,330 მდგომარეობა, და განახლება. 1647 01:13:53,330 --> 01:13:55,430 პრობლემა ისაა, რომ მდგომარეობა ხდება ყოველ 1648 01:13:55,430 --> 01:13:56,600 iteration of loop. 1649 01:13:56,600 --> 01:13:59,930 და ა.შ. ამ მაგალითში აქ, რა არის ცუდი ფაქტი 1650 01:13:59,930 --> 01:14:03,500 რომ ეს ჩემი მდგომარეობა? 1651 01:14:03,500 --> 01:14:05,920 თქვენ მოუწოდებდა strlen ისევ და ისევ და ისევ. 1652 01:14:05,920 --> 01:14:08,990 მაგრამ ერთხელ მე აკრეფილი დავით, სიგრძით, რომ სტრიქონს ხუთი. 1653 01:14:08,990 --> 01:14:11,560 და ეს არ შეიცვლება ყოველ iteration of loop რადგან 1654 01:14:11,560 --> 01:14:15,560 სიმებიანი კვლავ D--V-I-D. ასე რომ, ეს არის მინიშნება რა აპირებს გახდეს 1655 01:14:15,560 --> 01:14:19,650 მნიშვნელოვანი იდეა ცნობილია, როგორც დიზაინის გადაწყვეტილება, სადაც - უბრალოდ არ 1656 01:14:19,650 --> 01:14:21,640 მიიღოს კომპიუტერი ზედმეტი მუშაობა. 1657 01:14:21,640 --> 01:14:25,630 >> ახლა ისევე როგორც Sneak ესკიზი pset 2, pset 2 in სტანდარტული გამოცემა არის 1658 01:14:25,630 --> 01:14:28,850 აპირებს დაუპირისპირდეს თქვენ რეალურად განახორციელოს გარკვეული რაოდენობის ciphers, ზოგიერთი 1659 01:14:28,850 --> 01:14:32,650 პუნქტების შიფრირების ალგორითმები, ასე რომ თქვენ შეგიძლიათ ორივე დაშიფვრა და გაშიფვრა 1660 01:14:32,650 --> 01:14:35,530 საიდუმლო შეტყობინებები, ჰგავს ერთი Ralphie არსებობს გაშიფრული გამოჩნდება. 1661 01:14:35,530 --> 01:14:38,720 In Hacker გამოცემა pset 2, ჩვენ ვაპირებთ წასვლა ცოტა შემდგომი. 1662 01:14:38,720 --> 01:14:42,010 ჩვენ ვაპირებთ გადასცემს თქვენ ფაილის ფაქტობრივი კომპიუტერული სისტემა, რომელიც შეიცავს 1663 01:14:42,010 --> 01:14:45,690 მთელი bunch of სახელისა და ფაქტობრივი დაშიფრული პაროლები, და გამოწვევა 1664 01:14:45,690 --> 01:14:49,110 ამისთვის Hacker გამოცემა იქნება, რათა ბზარი იმ პაროლები და ფიგურა 1665 01:14:49,110 --> 01:14:53,060 რა კრიპტოგრაფიის ან რა საიდუმლო იყო გამოყენებული, რათა რეალურად 1666 01:14:53,060 --> 01:14:55,080 გენერირება იმ პაროლები. 1667 01:14:55,080 --> 01:14:58,360 და ჩვენ ვაპირებთ ამ გამოყენებით ახალი ფუნქცია აქ C რომ მე მივცემ 1668 01:14:58,360 --> 01:15:02,200 უბრალოდ დემო, რომელიც ცნობილია როგორც ბრძანება ხაზი არგუმენტები. 1669 01:15:02,200 --> 01:15:05,930 >> გამოდის,, როგორც ზოგიერთი თქვენთაგანი შეიძლება მინახავს ნაწილში ან სახელმძღვანელოებში, 1670 01:15:05,930 --> 01:15:09,850 მთავარი ყოველთვის არ უნდა იყოს ბათილად ფრჩხილებში. 1671 01:15:09,850 --> 01:15:14,060 თურმე მთავარი ასევე შეიძლება წერილობითი მოსწონს, ორი არგუმენტები, 1672 01:15:14,060 --> 01:15:19,690 argc და argv, სადაც argc არის ხმების სიტყვა, რომ თქვენ აკრიფოთ შემდეგ 1673 01:15:19,690 --> 01:15:21,940 პროგრამის სახელი თქვენს ბრძანებათა სტრიქონიდან. 1674 01:15:21,940 --> 01:15:24,550 და argv არის ფაქტობრივი სიტყვა. 1675 01:15:24,550 --> 01:15:29,470 და როგორც კვადრატულ ფრჩხილებში არსებობს ვივარაუდოთ, argv აშკარად მასივი. 1676 01:15:29,470 --> 01:15:33,720 ეს იქნება სიმებიანი შემდეგ სიმებიანი შემდეგ სიმებიანი მეხსიერებაში. 1677 01:15:33,720 --> 01:15:36,170 ასე რომ, რასაც ჩვენ ვაპირებთ გამოუვა, დაწყებული pset 2, არის 1678 01:15:36,170 --> 01:15:37,310 მსგავსი რამ. 1679 01:15:37,310 --> 01:15:42,450 თუ მე argv1, რომელიც მაგალითად ჩვენ დაბრუნებას ორშაბათს, და აწარმოებს 1680 01:15:42,450 --> 01:15:45,180 იგი, შეამჩნია, რომ არ ჩანს არაფერი გაუკეთებია. 1681 01:15:45,180 --> 01:15:47,050 უბრალოდ ბეჭდავს out საკუთარი სახელით. 1682 01:15:47,050 --> 01:15:53,220 მაგრამ თუ ვიტყვი Goodbye კლასის შეამჩნევთ, რომ ამ პროგრამის სავარაუდოდ iterates 1683 01:15:53,220 --> 01:15:57,030 აღემატება თითოეული სიტყვა, რომლებიც აკრეფილი ბრძანებათა ზოლზე. 1684 01:15:57,030 --> 01:16:02,050 და საშუალება, რომლითაც ჩვენ შესვლის უფლების მოსაპოვებლად სიტყვა, რომ მომხმარებელს აქვს 1685 01:16:02,050 --> 01:16:06,780 აკრეფილი ბრძანებათა ზოლზე არის შეცვლით მთავარ დაწყებული ამ კვირის, საწყისი int 1686 01:16:06,780 --> 01:16:10,710 ძირითადი (void) to int ძირითადი (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 და ამგვარად იქნება დაბადებული command line არგუმენტები. 1688 01:16:13,700 --> 01:16:17,210 და კიდევ თქვენ ნამდვილად დახვეწილი ამ, თქვენ გექნებათ დაწერა 1689 01:16:17,210 --> 01:16:21,370 მართლაც trippy პროგრამებს, როგორიცაა ამ ერთი აქ, რომელიც მაღლა იწევს და მის ფარგლებს გარეთ 1690 01:16:21,370 --> 01:16:25,520 ზოგიერთი ფუნქციონალური ჩვენ გავაკეთეთ დღემდე მაგრამ ყველა საკმაოდ ძლიერი. 1691 01:16:25,520 --> 01:16:27,330 >> ამიტომ, ჩვენ დავტოვებთ ამ ამ ეკრანზე. 1692 01:16:27,330 --> 01:16:29,160 და ვნახავთ თქვენ ორშაბათს.