1 00:00:00,000 --> 00:00:10,550 2 00:00:10,550 --> 00:00:14,050 >> დევიდ ჯ Malan: ეს არის CS50 და ეს არის დაწყების კვირაში ოთხი. 3 00:00:14,050 --> 00:00:18,630 და, ბიჭი, არის Volkswagen in პრობლემები ყველა გამო პროგრამული უზრუნველყოფა. 4 00:00:18,630 --> 00:00:20,264 მოდით შევხედოთ. 5 00:00:20,264 --> 00:00:20,930 [ვიდეო აღწარმოების] 6 00:00:20,930 --> 00:00:25,560 -Cars, Smartest გმირები არის სწრაფი და Furious ფილმები. 7 00:00:25,560 --> 00:00:29,100 ამ კვირაში გერმანული ავტომწარმოებელი Volkswagen აღმოჩნდა 8 00:00:29,100 --> 00:00:32,490 შუა სკანდალი პოტენციურად სისხლის სამართლის პროპორციები. 9 00:00:32,490 --> 00:00:36,060 >> -Volkswagen არის მზადება მილიარდობით ჯარიმები, შესაძლო სისხლის სამართლის პასუხისგებაში 10 00:00:36,060 --> 00:00:38,560 მისი აღმასრულებლები, როგორც კომპანია ბოდიშს 11 00:00:38,560 --> 00:00:41,840 გაყალბების 11 მილიონი მანქანები დაეხმაროს მას სცემეს ემისიების ტესტები. 12 00:00:41,840 --> 00:00:44,950 >> -Certain დიზელის მოდელები შექმნილია დახვეწილი პროგრამა 13 00:00:44,950 --> 00:00:48,440 რომ გამოყენებული ინფორმაცია, მათ შორის პოზიცია საჭე და მანქანა 14 00:00:48,440 --> 00:00:51,870 დააჩქაროს, რათა დადგინდეს, მანქანა იყო გადის გამოსხივება ტესტირება. 15 00:00:51,870 --> 00:00:55,650 Under გარემოებას, ძრავის შეამცირებს ტოქსიკური გამოყოფა. 16 00:00:55,650 --> 00:00:59,070 მაგრამ მანქანა გაყალბდა შემოვლითი რომ როდესაც ის იყო ორიენტირებული. 17 00:00:59,070 --> 00:01:03,320 ემისია გაიზარდა 10-დან 40 ჯერ ზემოთ მისაღები EPA დონეზე. 18 00:01:03,320 --> 00:01:04,280 >> [END აღწარმოების] 19 00:01:04,280 --> 00:01:05,220 >> დევიდ ჯ Malan: მოდით შევხედოთ ამ 20 00:01:05,220 --> 00:01:07,250 და ვნახოთ, თუ რამდენად ეს შესაძლოა განხორციელდეს 21 00:01:07,250 --> 00:01:09,680 და როგორ შეიძლება გავლენა იქონიოს ამდენი მანქანა მოსწონს ეს. 22 00:01:09,680 --> 00:01:12,840 ასე რომ, ჩემი მხრივ, აქ არის პრესის ნათქვამია მიერ გაცემული EPA-- 23 00:01:12,840 --> 00:01:14,620 გარემოს დაცვის სააგენტოს, რომელიც 24 00:01:14,620 --> 00:01:18,032 აშშ-ს მარეგულირებელი საგენტოდან, რომ ამუშავებს გარემოს შეშფოთება, 25 00:01:18,032 --> 00:01:19,740 და მერე რეალურ იურიდიული ცნობა, რომ იყო 26 00:01:19,740 --> 00:01:22,420 გაუგზავნე Volkswagen რამდენიმე დღის წინ. 27 00:01:22,420 --> 00:01:26,530 >> ასე რომ, EPA წერს და ამხილა ახლა საჯაროდ, დახვეწილი პროგრამული უზრუნველყოფა 28 00:01:26,530 --> 00:01:29,390 ალგორითმი გარკვეული Volkswagen მანქანების ცნობს 29 00:01:29,390 --> 00:01:32,630 როდესაც მანქანა გადის ოფიციალური გამოსხივება ტესტირება 30 00:01:32,630 --> 00:01:36,505 და თურმე სრული ემისიების აკონტროლებს მხოლოდ დროს ტესტი. 31 00:01:36,505 --> 00:01:38,380 ეფექტურობა ამ მანქანების დაბინძურების 32 00:01:38,380 --> 00:01:43,260 ემისიების კონტროლის მოწყობილობები დიდად შემცირდეს ყველა ნორმალური მამოძრავებელი 33 00:01:43,260 --> 00:01:44,320 სიტუაციებში. 34 00:01:44,320 --> 00:01:48,190 ეს შედეგები მანქანა, რომელიც აკმაყოფილებს სტანდარტების ლაბორატორია და ტესტირების 35 00:01:48,190 --> 00:01:52,790 სადგური, მაგრამ დროს ნორმალურ მუშაობას ასხივებენ აზოტის oxides-- ან NOx-- 36 00:01:52,790 --> 00:01:54,950 მდე 40 ჯერ სტანდარტი. 37 00:01:54,950 --> 00:01:58,220 პროგრამული უზრუნველყოფა მიერ წარმოებული Volkswagen ციტირებით unquote, დამარცხების მოწყობილობა, 38 00:01:58,220 --> 00:02:00,650 მიერ განსაზღვრული სუფთა ჰაერი აქტის აშშ. 39 00:02:00,650 --> 00:02:03,410 >> ისინი წასულიყვნენ ვთქვა, რომ EPA- ს და კიდევ სააგენტო 40 00:02:03,410 --> 00:02:07,020 აღმოჩენილი დამარცხების მოწყობილობა პროგრამული უზრუნველყოფის შემდეგ დამოუკიდებელი ანალიზი 41 00:02:07,020 --> 00:02:09,660 მკვლევარები West ვირჯინიის უნივერსიტეტის. 42 00:02:09,660 --> 00:02:14,160 NOx დაბინძურების ხელს უწყობს აზოტის დიოქსიდი, მიწისპირა ოზონის, 43 00:02:14,160 --> 00:02:15,700 და ჯარიმის ნაწილაკების. 44 00:02:15,700 --> 00:02:18,090 ექსპოზიციის ამ დამაბინძურებლების უკვე უკავშირდება 45 00:02:18,090 --> 00:02:20,870 ერთად ფართო სპექტრი ჯანმრთელობის სერიოზული ეფექტი, 46 00:02:20,870 --> 00:02:23,637 მათ შორის ასთმის თავდასხმები და სხვა რესპირატორული 47 00:02:23,637 --> 00:02:26,470 დაავადებების, რომ შეიძლება იყოს სერიოზული საკმარისი გააგზავნოთ ადამიანი საავადმყოფოში. 48 00:02:26,470 --> 00:02:28,660 ექსპოზიციის ოზონის და ნაწილაკების ასევე 49 00:02:28,660 --> 00:02:31,960 უკვე ასოცირდება ნაადრევი გარდაცვალების გამო სუნთქვის დაკავშირებული 50 00:02:31,960 --> 00:02:35,690 ან სისხლძარღვთა დაკავშირებული მოვლენები. 51 00:02:35,690 --> 00:02:38,940 ბავშვები, მოხუცები, ადამიანებს ადრეული რესპირატორული დაავადება 52 00:02:38,940 --> 00:02:42,840 განსაკუთრებით რისკის ქვეშ ჯანმრთელობის ეფექტი ამ ნივთიერებებით. 53 00:02:42,840 --> 00:02:45,056 >> საკმარისია იმის თქმა, რომ ეს საკმაოდ სერიოზული. 54 00:02:45,056 --> 00:02:46,930 და მოდით წავიდეთ წაკითხვის კიდევ ერთი ნაწყვეტი 55 00:02:46,930 --> 00:02:49,370 და მაშინ ჩვენ შევხედოთ ძირითადი შედეგები მოჰყვეს 56 00:02:49,370 --> 00:02:50,920 ამ კონტექსტში მანქანა. 57 00:02:50,920 --> 00:02:53,730 კერძოდ, Volkswagen წარმოებული და დაყენებული 58 00:02:53,730 --> 00:02:56,210 პროგრამული უზრუნველყოფა ე.წ. ელექტრონული კონტროლი 59 00:02:56,210 --> 00:02:59,320 module-- ან ECM-- of ამ მანქანების, რომ იგრძნო, 60 00:02:59,320 --> 00:03:03,580 როდესაც მანქანა მიმდინარეობს ტესტირება შესაბამისად EPA გაფრქვევა სტანდარტებს. 61 00:03:03,580 --> 00:03:07,510 დაყრდნობით სხვადასხვა საშუალებებით, მათ შორის, პოზიცია საჭე, ავტომობილის 62 00:03:07,510 --> 00:03:11,280 სიჩქარე, ხანგრძლივობა ძრავის ოპერაცია, და barometric ზეწოლა, 63 00:03:11,280 --> 00:03:13,720 ამ საშუალებებით ზუსტად მუხლუხიანი პარამეტრების 64 00:03:13,720 --> 00:03:17,600 ფედერალური ტესტი პროცედურა გამოიყენება ემისიის ტესტირება EPA სერტიფიცირების 65 00:03:17,600 --> 00:03:18,400 მიზნით. 66 00:03:18,400 --> 00:03:21,850 >> დროს EPA- ს ემისიის ტესტირება, სატრანსპორტო საშუალებების ECM პროგრამული უზრუნველყოფა 67 00:03:21,850 --> 00:03:25,060 გაიქცა პროგრამული უზრუნველყოფა, რომელიც წარმოებული შესაბამისი ემისიის შედეგები. 68 00:03:25,060 --> 00:03:28,340 ყველა სხვა ჯერ, მანქანა ECM პროგრამული უზრუნველყოფა 69 00:03:28,340 --> 00:03:31,090 გაიქცა ცალკე გზის calibration, რომელიც შემცირდა 70 00:03:31,090 --> 00:03:34,360 ეფექტურობის საერთო ემისიის კონტროლის სისტემა, 71 00:03:34,360 --> 00:03:37,864 სპეციალურად შერჩევითი კატალიზური შემცირება Lean NOx trap-- 72 00:03:37,864 --> 00:03:39,280 რომელიც ჩვენ დავინახავთ, ამ მომენტში. 73 00:03:39,280 --> 00:03:43,040 შედეგად, გამონაბოლქვის NOx ზრდის ფაქტორი 10 40 ჯერ 74 00:03:43,040 --> 00:03:47,450 ზემოთ EPA შესაბამისი დონის დამოკიდებულია ტიპის დისკის ციკლი. 75 00:03:47,450 --> 00:03:50,800 >> ასე რომ, რა ეს ნამდვილად იმას ნიშნავს, და კოდის პროგრამული გაშვებული 76 00:03:50,800 --> 00:03:53,190 საქართველოს Volkswagen ის არ აქვს ჯერ საჯაროდ გამჟღავნება, 77 00:03:53,190 --> 00:03:56,460 ის არის, რომ, ფაქტობრივად, ამ ექვივალენტი სადღაც შიგნით 78 00:03:56,460 --> 00:03:57,830 Volkswagen- ის კოდი. 79 00:03:57,830 --> 00:04:02,200 თუ თქვენ მიმდინარეობს ტესტირება, და თუ მანქანა პოულობს გარკვეული გარემოს ფაქტორების 80 00:04:02,200 --> 00:04:04,330 როგორიცაა საჭე თანამდებობა ან მოძრაობა 81 00:04:04,330 --> 00:04:06,710 ან არ გააჩნიათ მათი მანქანა ან ნებისმიერი რიგი სხვა ფაქტორები 82 00:04:06,710 --> 00:04:09,940 რომელიც ამჟამად ვარაუდობდნენ ნაწილი იყოს ამ ფორმულის, 83 00:04:09,940 --> 00:04:12,370 ისინი უბრალოდ ჩართოთ სრული ემისიის კონტროლი. 84 00:04:12,370 --> 00:04:15,670 სხვა სიტყვებით, ისინი დაიწყოს ასხივებენ ნაკლები დამაბინძურებლების. 85 00:04:15,670 --> 00:04:18,769 >> სხვაგან, ყველა სხვა სიტუაცია მაშინ, როდესაც ის არ არის აღმოჩენილი, როგორც 86 00:04:18,769 --> 00:04:20,790 ლაბორატორიაში, ისინი უბრალოდ არ. 87 00:04:20,790 --> 00:04:24,320 ასე რომ, შეგიძლიათ გაამარტივებს ამ შევიდა უფრო კონკრეტული pseudocode რაღაც 88 00:04:24,320 --> 00:04:24,820 მოსწონს ეს. 89 00:04:24,820 --> 00:04:27,810 იმ შემთხვევაში, თუ დისკები გარდამტეხ მაგრამ საჭე არ არის, დამაფიქრებელი 90 00:04:27,810 --> 00:04:30,060 რომ მანქანა არის რამდენიმე სახის მოძრავი ცილინდრიანი 91 00:04:30,060 --> 00:04:32,550 მაგრამ გარკვეული სახის საწყობი მიმდინარეობს ტესტირება, 92 00:04:32,550 --> 00:04:36,070 მაშინ მოიქცეს, როგორც EPA მინდა. 93 00:04:36,070 --> 00:04:37,960 წინააღმდეგ შემთხვევაში, არ. 94 00:04:37,960 --> 00:04:40,420 მოდით შევხედოთ ერთი მოკლე ვიდეო, რომელიც 95 00:04:40,420 --> 00:04:45,391 იღებს შევხედოთ, თუ რა შედეგები მოჰყვეს არის ეს რეალურად მექანიკურად. 96 00:04:45,391 --> 00:04:48,620 >> [ვიდეო აღწარმოების] 97 00:04:48,620 --> 00:04:52,800 >> გასულ სასწავლო პარასკევი სააგენტომ გამოაცხადა, რომ ზოგიერთი Volkswagen Audi მანქანები გააკეთა შორის 2009 98 00:04:52,800 --> 00:04:55,840 და ამ წელს გამოყენებით ე.წ. დამარცხება მოწყობილობა 99 00:04:55,840 --> 00:04:59,060 მისაღებად გარშემო ემისიების კანონები განკუთვნილია შენარჩუნება საჰაერო სუფთა. 100 00:04:59,060 --> 00:05:01,700 მაგრამ რას ნიშნავს ზუსტად? 101 00:05:01,700 --> 00:05:04,666 >> ისე, თანამედროვე მანქანა რამდენიმე ათეული კომპიუტერების შიგნით მათ. 102 00:05:04,666 --> 00:05:07,040 და ზოგიერთი იმ კომპიუტერები დაეხმაროს კოორდინაციას ფუნქციები 103 00:05:07,040 --> 00:05:09,590 ძრავის ოპტიმალური შესრულება, ხოლო მიღების დარწმუნებული ვარ, 104 00:05:09,590 --> 00:05:12,340 რომ არ არის ძალიან ბევრი ნაგავი გამოდის გამოსაბოლქვი მილი. 105 00:05:12,340 --> 00:05:15,170 ისინი რეალურად მუშაობდა ამ გზით რამდენიმე ათეული წელია. 106 00:05:15,170 --> 00:05:17,380 ძირითადად, ყველა ნაწილი თანამედროვე მანქანის ძრავში 107 00:05:17,380 --> 00:05:20,080 აქვს სენსორი და კონტროლერი იგი, და ამ კომპიუტერები 108 00:05:20,080 --> 00:05:23,460 კითხულობს მონაცემთა ათასობით ჯერ წამში მიღების კორექტირებას 109 00:05:23,460 --> 00:05:26,220 როგორც თანაფარდობა საწვავის საჰაერო რომ აპირებს შევიდა ბალონები. 110 00:05:26,220 --> 00:05:28,730 >> ეს ღალატი Volkswagen და Audi მოდელები diesels, 111 00:05:28,730 --> 00:05:30,890 და diesels კიდევ ერთი მართლაც მნიშვნელოვანია კომპიუტერული 112 00:05:30,890 --> 00:05:34,030 აკონტროლებს პარამეტრების, რომელიც არის თანხის დაუმწვარი საწვავის აპირებს 113 00:05:34,030 --> 00:05:35,200 შევიდა გამონაბოლქვი. 114 00:05:35,200 --> 00:05:36,310 ახლა რომ ჟღერს ცუდი. 115 00:05:36,310 --> 00:05:39,642 არ გავს, თქვენ სურს დაუმწვარი საწვავის შესვლის გამონაბოლქვი. 116 00:05:39,642 --> 00:05:41,600 მაგრამ იმ შემთხვევაში, დიზელზე, თქვენ გაქვთ რაიმე 117 00:05:41,600 --> 00:05:46,110 ე.წ. NOx ხაფანგში არის მოწყობილობა, რომელიც შთანთქავს და ხაფანგები აზოტის ოქსიდების 118 00:05:46,110 --> 00:05:48,880 რომ დამაბინძურებლების, რომ გვინდა სხვაგვარად წავიდეთ ატმოსფეროში. 119 00:05:48,880 --> 00:05:53,040 და ეფექტი რომ NOx ხაფანგში გაუმჯობესებულია დაუმწვარი საწვავი. 120 00:05:53,040 --> 00:05:56,650 ასე რომ, მარცხი მოწყობილობა სპეციალური პროგრამა შიგნით ამ კომპიუტერებით, რომ შეუძლია ეს 121 00:05:56,650 --> 00:05:59,527 ჰგავს მანქანა აკმაყოფილებს გაფრქვევა სტანდარტების მაშინაც კი, როდესაც იგი არ არის. 122 00:05:59,527 --> 00:06:01,110 Volkswagen პრობლემა ჰქონდა თავის ხელში. 123 00:06:01,110 --> 00:06:04,050 მისი დიზელის ძრავები იყო ცნობილი მიღების დიდი საწვავის ეკონომიკა, 124 00:06:04,050 --> 00:06:07,510 მაგრამ NOx ხაფანგში მხოლოდ კარგად მუშაობს როდესაც მეტი საწვავი გამოიყენება. 125 00:06:07,510 --> 00:06:10,460 ასე რომ, მანქანა რომ აღმოაჩინოს, გამოყენებით ამ დამარცხების მოწყობილობა, 126 00:06:10,460 --> 00:06:13,870 როდესაც მისაღებად გამოყოფა ტესტი, რომ ის გამოიყენებს მეტი საწვავის, 127 00:06:13,870 --> 00:06:16,830 რათა NOx ხაფანგში კარგად მუშაობს, ემისია იქნება ჯარიმა. 128 00:06:16,830 --> 00:06:21,130 მაგრამ მაშინ თქვენ გზაზე, მოწყობილობა თიშავს, თქვენ იწვის ნაკლები საწვავი 129 00:06:21,130 --> 00:06:24,256 მაგრამ თქვენ აყენებს, როგორც 40-ჯერ უფრო დამაბინძურებლების ატმოსფეროში. 130 00:06:24,256 --> 00:06:26,130 მაგრამ როგორ heck მანქანა ვიცი, რომ ეს იყო 131 00:06:26,130 --> 00:06:27,720 მიმდინარეობს ტესტირება ემისიების შესაბამისად? 132 00:06:27,720 --> 00:06:30,590 EPA- ს განცხადებით, ეს იყო დახვეწილი სისტემა, რომელიც შემოწმდება რამ 133 00:06:30,590 --> 00:06:34,090 როგორიცაა საჭე პოზიცია, სიჩქარე, როდემდე ძრავა იყო, 134 00:06:34,090 --> 00:06:35,507 და კიდევ ატმოსფერული წნევა. 135 00:06:35,507 --> 00:06:37,673 სხვა სიტყვებით რომ ვთქვათ, არ იყო არ არსებობს გზა, რომ ეს იყო შემთხვევითი 136 00:06:37,673 --> 00:06:40,260 იმის გამო, რომ პროგრამული უზრუნველყოფის იყო შექმნილია ძალიან ფრთხილად, რათა აღმოაჩინოს 137 00:06:40,260 --> 00:06:41,630 ოფიციალური გამოყოფა ტესტი. 138 00:06:41,630 --> 00:06:43,588 ეს არის საკმაოდ სერიოზული მოტყუებით და ეს 139 00:06:43,588 --> 00:06:45,420 რატომ Volkswagen არის ასეთი სერიოზული პრობლემები. 140 00:06:45,420 --> 00:06:48,600 ფაქტობრივად, მათი აღმასრულებელი დირექტორი, Martin ვინტერკორნი, უბრალოდ გადადგა. 141 00:06:48,600 --> 00:06:49,820 >> ასე რომ, რა მოხდება შემდეგ? 142 00:06:49,820 --> 00:06:53,900 ისე, თუ თქვენ ერთი ნახევარი მილიონი დიზელის Jettas, Beatles, Golfs, Passats, 143 00:06:53,900 --> 00:06:56,220 ან Audi A3s განხორციელდა სასიხარულო არის 144 00:06:56,220 --> 00:06:57,886 რომ თქვენი მანქანა მაინც უსაფრთხო მანქანა. 145 00:06:57,886 --> 00:07:00,510 თქვენ არ გაქვთ, რომ გოლი სანამ Volkswagen გასცემს გაწვევას. 146 00:07:00,510 --> 00:07:02,509 მაგრამ რაღაც მომენტში ისინი ალბათ აპირებს 147 00:07:02,509 --> 00:07:04,230 განახლება პროგრამული უზრუნველყოფა თქვენს მანქანაში. 148 00:07:04,230 --> 00:07:06,927 როცა ეს მოხდება, თქვენ შეიძლება მიიღოს ნაკლები მილი ტანკი. 149 00:07:06,927 --> 00:07:09,260 ადვოკატები უკვე ემზადება მდე კლასის სამოქმედო სარჩელი 150 00:07:09,260 --> 00:07:12,500 ასე რომ მფლობელები შესაძლოა კომპენსაცია რაღაც მომენტში მომავალში. 151 00:07:12,500 --> 00:07:15,832 მაგრამ, რომ არ აპირებს მოხდეს ნებისმიერ დროს მალე. 152 00:07:15,832 --> 00:07:16,711 >> [END აღწარმოების] 153 00:07:16,711 --> 00:07:19,960 დევიდ ჯ Malan: ასე რომ, ეს რეალურად ბადებს საინტერესო უფრო დიდი სურათი კითხვა 154 00:07:19,960 --> 00:07:20,660 როგორც ენდობა. 155 00:07:20,660 --> 00:07:21,160 მარჯვენა? 156 00:07:21,160 --> 00:07:24,300 ყველა ჩვენგანს აქვს iPhones და Androids ან რაღაც ჩვენს ჯიბეში სავარაუდოდ 157 00:07:24,300 --> 00:07:26,500 ამ დღეებში, ან ლაპტოპები ჩვენს წრე, რომლებიც 158 00:07:26,500 --> 00:07:28,510 გაშვებული პროგრამული გააკეთა Apple და Microsoft 159 00:07:28,510 --> 00:07:30,710 და მტევნების სხვა კომპანიები. 160 00:07:30,710 --> 00:07:34,240 მაგრამ ვიცით, რომ ის, რაც ეს პროგრამული პროდუქტების ვაკეთებთ 161 00:07:34,240 --> 00:07:37,680 რეალურად, რაც ამ კომპანიები აცხადებენ, ისინი აკეთებენ? 162 00:07:37,680 --> 00:07:39,610 >> მაგალითად, თუ რომელი ამბობენ, რომ ყველა დროის 163 00:07:39,610 --> 00:07:42,200 მიიღოს სატელეფონო ზარი თქვენს iPhone ან Android ტელეფონის ან მოსწონს, 164 00:07:42,200 --> 00:07:45,650 , რომ ტელეფონის ნომერი ასევე არ არის იტვირთებოდა ზოგიერთი კომპანიის სერვერზე 165 00:07:45,650 --> 00:07:48,399 იმის გამო, რომ რამდენიმე პროგრამა თქვენ წერილობითი, თუ არა ის ოპერაციული 166 00:07:48,399 --> 00:07:51,070 სისტემა თავად, როგორც iOS და Android, ან იმიტომ, რომ თქვენ გადმოწერილი 167 00:07:51,070 --> 00:07:53,880 მესამე მხარის app რომ როგორმე უსმენს 168 00:07:53,880 --> 00:07:57,120 რომ ყველაფერი თქვენ აკრეფით ან ყველაფერი თქვენ რეალურად ამბობდა. 169 00:07:57,120 --> 00:07:59,500 როგორ იცით, რომ, როდესაც თქვენ ბიჭები არიან გაშვებული Clang 170 00:07:59,500 --> 00:08:02,590 ან ჩადება კომპილაციის თქვენი საკუთარი პროგრამული CS50, თუ როგორ 171 00:08:02,590 --> 00:08:06,080 თქვენ რომ CS50 საკუთარი თანამშრომლები, გზით CS50 ბიბლიოთეკა, 172 00:08:06,080 --> 00:08:08,690 არ ყოფილა ხე ყოველ სიმებიანი თქვენ ოდესმე მიღებული 173 00:08:08,690 --> 00:08:10,276 ან ყოველ inch თქვენ ოდესმე მიღებული? 174 00:08:10,276 --> 00:08:12,900 ისე, თქვენ შეიძლება რა თქმა უნდა გამოიყურებოდეს კოდის რაღაც 175 00:08:12,900 --> 00:08:15,233 როგორც CS50 ბიბლიოთეკა, შეიძლება შევხედოთ კოდის 176 00:08:15,233 --> 00:08:18,170 for Linux ოპერაციული სისტემა გაშვებული CS50 IDE. 177 00:08:18,170 --> 00:08:23,090 მაგრამ საოცარი პრეზენტაცია მიეცა უკან 1984 178 00:08:23,090 --> 00:08:26,730 მიღებიდან Turing ჯილდო მიერ ძალიან ცნობილი კომპიუტერის მეცნიერი ცნობილია 179 00:08:26,730 --> 00:08:29,750 as-- დაასახელა კენ ტომპსონი, რომელიც მიიღო Turing ჯილდო, 180 00:08:29,750 --> 00:08:33,500 არის ერთგვარი კომპიუტერული მეცნიერების ნობელის პრემია, თუ გნებავთ, 181 00:08:33,500 --> 00:08:35,309 მისი მუშაობის შესახებ ოპერაციული სისტემა სახელწოდებით 182 00:08:35,309 --> 00:08:39,039 Unix, რომელიც ძალიან ჰგავს სული, რაც ჩვენ ვიყენებთ რომელიც Linux. 183 00:08:39,039 --> 00:08:41,960 ხოლო კითხვაზე მან სთხოვა თავის მიღების სიტყვის, არსებითად 184 00:08:41,960 --> 00:08:44,910 ჩამოყალიბებულია ქვემოთ ჩარჩო წლების განმავლობაში დისკუსია 185 00:08:44,910 --> 00:08:46,970 შესახებ ნდობისა და უსაფრთხოების, იყო ეს. 186 00:08:46,970 --> 00:08:50,410 რა მოცულობით უნდა ერთი ენდობა განცხადება, რომ პროგრამაში ნაჭერი 187 00:08:50,410 --> 00:08:53,010 საქართველოს software-- არის უფასო ტროას ცხენები? 188 00:08:53,010 --> 00:08:56,500 ალბათ ეს უფრო მნიშვნელოვანია, რომ ენდობა ხალხი, ვინც წერდა პროგრამული უზრუნველყოფა. 189 00:08:56,500 --> 00:08:58,650 >> და სინამდვილეში, ჩვენ უკავშირდება თოქ-, რომ 190 00:08:58,650 --> 00:09:02,400 მისცა, როდესაც მიღების ეს ჯილდო '80s on CS50 ნახვა 191 00:09:02,400 --> 00:09:04,030 ქვეშ ლექციები გვერდზე დღეს. 192 00:09:04,030 --> 00:09:06,071 იმის გამო, რომ ის, რაც თქვენ დაინახავთ ის არის, რომ რეალურად იძლევა 193 00:09:06,071 --> 00:09:09,430 საკმაოდ მარტივი მაგალითია, თუ როგორ კი შემდგენელი მოსწონს Clang ან რასაც 194 00:09:09,430 --> 00:09:13,950 შემდგენლები სხვები არ გამოიყენება წარსულში, რა მოხდება, თუ ჩართული შემდგენელი ჩვენ 195 00:09:13,950 --> 00:09:18,190 თავს გამოყენებით არის პატარა, თუ პირობით, რომ არსებითად ამბობს, 196 00:09:18,190 --> 00:09:22,360 თუ შეამჩნევთ, რომ ეს კოდი გამოყენებით GetString ფუნქცია ან GetInt 197 00:09:22,360 --> 00:09:26,600 ფუნქცია, წავიდეთ წინ და ჩადეთ უკან კარი ან ტროას ცხენი 198 00:09:26,600 --> 00:09:29,340 ასეთი, რომ პროგრამა ახლა ზოგიერთი zeros 199 00:09:29,340 --> 00:09:30,930 და პირობა, რომ რაღაც მუქარის. 200 00:09:30,930 --> 00:09:33,080 ხე ყველა თქვენი keystrokes, ატვირთვა, რომ მონაცემები 201 00:09:33,080 --> 00:09:35,100 ზოგიერთ სერვერზე, ან მართლაც არაფერი. 202 00:09:35,100 --> 00:09:37,290 >> და რა კენ ტომპსონი გრძელდება გავაკეთოთ მისი განხილვა 203 00:09:37,290 --> 00:09:40,580 იმის დემონსტრირება, რომ მაშინაც კი, თუ თქვენ გაქვთ წყარო 204 00:09:40,580 --> 00:09:43,794 კოდი შემდგენელი რომ განზრახ შეიძლება ამით, 205 00:09:43,794 --> 00:09:46,210 არ აქვს მნიშვნელობა, იმიტომ, რომ არსებობს ამ ქათამი და კვერცხი 206 00:09:46,210 --> 00:09:49,500 რეალობა წარსულში ბევრი წლის რომლის დროსაც შემდგენლები 207 00:09:49,500 --> 00:09:51,960 გამოიყენება შედგენა თავს. 208 00:09:51,960 --> 00:09:55,440 სხვა სიტყვებით, უკანა გზაზე, როდესაც ვინმე მან დაწერა პირველი შემდგენელი. 209 00:09:55,440 --> 00:09:59,060 და ამის შემდეგ, ნებისმიერ დროს ისინი მხრიდან შემდგენელი იცვლება მისი კოდის, 210 00:09:59,060 --> 00:10:02,020 დასძინა, თვისებები და recompiling ეს ხალხის ჩვენნაირი გამოყენება, ასევე, 211 00:10:02,020 --> 00:10:04,270 ისინი იყენებენ ძველი ვერსია შემდგენელი 212 00:10:04,270 --> 00:10:06,370 შეადგინონ ახალი ვერსია შემდგენელი. 213 00:10:06,370 --> 00:10:08,370 და თუ თქვენ შეხედეთ განთავსებულია განხილვა, რომ მისცა, 214 00:10:08,370 --> 00:10:10,970 თქვენ ნახავთ, რომ იმის გამო, რომ რომ circularity, 215 00:10:10,970 --> 00:10:14,330 თქვენ შეგიძლიათ რეალურად აქვს შეცდომები ან ტროას ცხენები ჩართული პროგრამული უზრუნველყოფა 216 00:10:14,330 --> 00:10:14,990 ჩვენ გამოყენებით. 217 00:10:14,990 --> 00:10:18,010 და მაშინაც კი, თუ გადავხედავთ კოდის იმ პროგრამების, 218 00:10:18,010 --> 00:10:21,550 ეს შეიძლება არც კი იყოს აშკარა იმის გამო, რომ მოსატყუებლად არის რეალურად 219 00:10:21,550 --> 00:10:24,710 ზოგიერთ ძველი ვერსია შემდგენელი რომ მას შემდეგ, რაც უკვე 220 00:10:24,710 --> 00:10:27,340 ინექციური საფრთხე ჩვენი პროგრამული უზრუნველყოფა. 221 00:10:27,340 --> 00:10:29,740 >> რომელიც მხოლოდ აღვნიშნავ, რომ ჩვენ ნამდვილად ვერ და არ უნდა 222 00:10:29,740 --> 00:10:32,939 ნდობის პროგრამული გაშვებული ჩვენი ლაპტოპები ან ტელეფონის ან ნებისმიერი რაოდენობის ადგილები. 223 00:10:32,939 --> 00:10:36,230 და სინამდვილეში, მოგვიანებით ამ სემესტრში, როდესაც ჩვენ ვიწყებთ საუბარს ვებ პროგრამირების 224 00:10:36,230 --> 00:10:38,521 და რეალურად შეიქმენით ვებ განაცხადების თავს, 225 00:10:38,521 --> 00:10:40,285 ჩვენ ვსაუბრობთ ამ საფრთხეები და სხვები. 226 00:10:40,285 --> 00:10:43,410 ახლა, ალბათ, არ აინტერესებს და შენიშნა, რომ იქ იყო პატარა Darth 227 00:10:43,410 --> 00:10:45,842 Vader ამ კლიპების, რომ ზღვარზე იყო გვიჩვენებს არსებობს 228 00:10:45,842 --> 00:10:47,550 შესახებ Volkswagen. თუ თქვენ არასოდეს მინახავს, ​​მე 229 00:10:47,550 --> 00:10:49,190 ეგონა, რომ ჩვენ უნდა lighten განწყობა, რადგან ეს არის ყველა 230 00:10:49,190 --> 00:10:50,780 ძალიან სამწუხარო და საშიში. 231 00:10:50,780 --> 00:10:52,910 მე ვაპირებ, რომ ვიხსენებთ განთავსებულია Super Bowl 2011 232 00:10:52,910 --> 00:10:55,300 როდესაც კომერციული მიერ Volkswagen-- და ეს 233 00:10:55,300 --> 00:10:59,620 თითქმის ხდის მათ სასიამოვნო ერთხელ ეთერში პირველად ტელევიზიით. 234 00:10:59,620 --> 00:11:04,039 ეს არის 60 მეორე კლიპი რომ მე ვფიქრობ, თქვენ ისიამოვნებთ. 235 00:11:04,039 --> 00:11:04,705 [ვიდეო აღწარმოების] 236 00:11:04,705 --> 00:11:08,198 [მუსიკა - თემა "ვარსკვლავური ომები"] 237 00:11:08,198 --> 00:11:35,643 238 00:11:35,643 --> 00:11:38,138 [ძაღლი ყეფს] 239 00:11:38,138 --> 00:11:50,114 240 00:11:50,114 --> 00:11:53,607 [მანქანა იწყებს] 241 00:11:53,607 --> 00:12:04,086 242 00:12:04,086 --> 00:12:05,955 [END აღწარმოების] 243 00:12:05,955 --> 00:12:06,830 დევიდ ჯ Malan: ჰო. 244 00:12:06,830 --> 00:12:07,663 მე უბრალოდ შემოწმებას. 245 00:12:07,663 --> 00:12:11,360 ეს მანქანა არის სიაში დარღვევები. 246 00:12:11,360 --> 00:12:12,000 ყველა უფლება. 247 00:12:12,000 --> 00:12:14,040 ასე რომ, ჩვენ შევხედოთ ზოგიერთი Pseudocode მომენტში წინ. 248 00:12:14,040 --> 00:12:15,380 აქ არის დიდი snippet of pseudocode კოდი 249 00:12:15,380 --> 00:12:16,921 რომ ჩვენ ვნახეთ რამდენჯერმე დღემდე. 250 00:12:16,921 --> 00:12:19,970 და მოდით გამოვიყენოთ ეს არის შესაძლებლობა, ახლა, რომ წარმოგიდგინოთ ახალი პროგრამირების 251 00:12:19,970 --> 00:12:23,776 ტექნიკა, რომელიც ჩვენ გავაკეთეთ იხილეთ ალგორითმულად 252 00:12:23,776 --> 00:12:25,400 გასულ კვირას, როდესაც ჩვენ შევხედე შერწყმა დალაგების. 253 00:12:25,400 --> 00:12:28,270 მაგრამ მოდით ფორმალიზება და ვნახოთ, როგორ ჩვენ შეიძლება გამოვიყენოთ ეს ფაქტობრივი კოდი, 254 00:12:28,270 --> 00:12:30,350 და მაშინ ჩვენ ვაპირებთ, რათა გამოიყენონ ეს ტექნიკა ქვემოთ გზა ყველაზე 255 00:12:30,350 --> 00:12:32,000 სავარაუდოა, რომ გადაწყვიტოს გარკვეული სხვა პრობლემები. 256 00:12:32,000 --> 00:12:35,790 >> ასე რომ, ეს იყო ერთ-ერთი პირველი პროგრამები, ოდესმე დაწერა, თუმცა pseudocode კოდი. 257 00:12:35,790 --> 00:12:37,790 და რა ამ პროგრამის დასაშვებია ჩვენთვის გავაკეთოთ რა თქმა უნდა, 258 00:12:37,790 --> 00:12:41,510 იყო, მაიკ სმიტი სატელეფონო წიგნი. 259 00:12:41,510 --> 00:12:46,216 და შენიშნავს, კერძოდ ხაზები რვა და 11 რომელიც ჰქონდა ამ Go To განცხადებაში. 260 00:12:46,216 --> 00:12:48,090 და სინამდვილეში, გარკვეული ენებზე, C, მათ შორის, 261 00:12:48,090 --> 00:12:50,006 რეალურად არ აქვს განცხადებაში ნათქვამია, რომ ფაქტიურად 262 00:12:50,006 --> 00:12:52,710 წასვლა, რომელიც საშუალებას გაძლევთ გადასვლა კონკრეტული ხაზი. 263 00:12:52,710 --> 00:12:55,470 ეს ზოგადად frowned საფუძველზე, რადგან ეს შეიძლება ძალიან ადვილად გაუსწორდა 264 00:12:55,470 --> 00:12:58,490 და შეგიძლიათ დაიწყოს jumping თქვენი პროგრამა მთელი ადგილი როგორც ეწინააღმდეგებოდა 265 00:12:58,490 --> 00:13:00,690 გამოყენებით სახის ლოგიკა და კონტროლის ნაკადის 266 00:13:00,690 --> 00:13:04,000 რომ ჩვენ გამოიყენება დღემდე მხოლოდ მარყუჟების და პირობები და მოსწონს. 267 00:13:04,000 --> 00:13:08,660 >> მაგრამ ჩვენ შეგვიძლია გავამარტივოთ ეს ალგორითმი ამ pseudocode კოდი ასეთია. 268 00:13:08,660 --> 00:13:11,250 იმის ნაცვლად, რომ ამ იტერაციული ან looping მიდგომა 269 00:13:11,250 --> 00:13:14,160 სადაც ჩვენ შევინარჩუნოთ ბრუნდება და უკან და უკან გამოდიან სამი, 270 00:13:14,160 --> 00:13:18,300 რატომ არ ჩვენ უბრალოდ სახის punt და მეტი ზოგადად ამბობენ ხაზი შვიდი და 10, 271 00:13:18,300 --> 00:13:20,570 მხოლოდ შეცვლის იმ ორი წყვილი ხაზები, 272 00:13:20,570 --> 00:13:22,810 სხვაგან თუ სმიტი ადრე წიგნში ჩვენ გამოგიგზავნით 273 00:13:22,810 --> 00:13:25,110 ძიება Mike წელს მარცხენა ნახევარში წიგნი. 274 00:13:25,110 --> 00:13:28,560 Else თუ სმიტი მოგვიანებით წიგნი, ძიება Mike სწორი 275 00:13:28,560 --> 00:13:29,540 ნახევარი წიგნი. 276 00:13:29,540 --> 00:13:31,180 და შენიშნავს, უკვე circularity. 277 00:13:31,180 --> 00:13:31,680 მარჯვენა? 278 00:13:31,680 --> 00:13:34,250 მე ეძებს მაიკ სატელეფონო წიგნი და შემდეგ 279 00:13:34,250 --> 00:13:37,090 მე საბოლოოდ მოხვდა, შესაძლოა, ონლაინ შვიდი ან იქნებ line 10 280 00:13:37,090 --> 00:13:41,089 და ჩემი დავალებით თავს საძიებო მაიკ ნახევარი სატელეფონო წიგნი. 281 00:13:41,089 --> 00:13:42,380 ისე, როგორ შემიძლია მოძებნოთ Mike? 282 00:13:42,380 --> 00:13:44,213 მე შუა ეძებს Mike, რატომ 283 00:13:44,213 --> 00:13:45,860 თქვენ ერთგვარი გაგზავნის ჩემთვის წრეში? 284 00:13:45,860 --> 00:13:49,590 მაგრამ ეს კარგია, რადგან რა არის ხდება ზომა პრობლემა, 285 00:13:49,590 --> 00:13:52,630 როგორც წერია ხაზის 7 და 10? 286 00:13:52,630 --> 00:13:54,989 ჩვენ არ ვამბობ, ძიება მაიკ, ძიება მაიკ. 287 00:13:54,989 --> 00:13:56,280 ჩვენ კონკრეტულად იმით, თუ რა? 288 00:13:56,280 --> 00:13:58,694 289 00:13:58,694 --> 00:14:01,610 ძიება მას მარცხენა ნახევარში მარჯვენა ნახევარში რომელიც ეფექტურად 290 00:14:01,610 --> 00:14:03,440 ნახევარი ზომა პრობლემა. 291 00:14:03,440 --> 00:14:07,170 ასე რომ, არის ის, რომ ჩვენ სახის ჩართვით ამ circularity, 292 00:14:07,170 --> 00:14:09,180 ეს წრიული არგუმენტი, რადგან მაინც ჩვენ 293 00:14:09,180 --> 00:14:11,090 მიღების პრობლემა პატარა და პატარა. 294 00:14:11,090 --> 00:14:14,220 და საბოლოოდ ჩვენ ვაპირებთ, რათა მივაღწიოთ რომ ე.წ. ბაზის შემთხვევაში, თუ 295 00:14:14,220 --> 00:14:16,780 ჩვენ გვაქვს მხოლოდ ერთი გვერდი left-- როგორც ჩვენი მოხალისე გასულ კვირას 296 00:14:16,780 --> 00:14:18,684 did-- ჩვენ გვქონდა ერთი გვერდი მარცხენა და მერე ჩვენ არ 297 00:14:18,684 --> 00:14:21,600 უნდა შევინარჩუნოთ ეძებს მაიკ სმიტი იმიტომ, რომ ის არც იმ გვერდი 298 00:14:21,600 --> 00:14:23,080 ან ის არ არის. 299 00:14:23,080 --> 00:14:27,480 >> მაშ, როგორ შეგვიძლია განვახორციელოთ ეს იდეა, ეს ერთგვარი circularity ფაქტობრივი კოდი? 300 00:14:27,480 --> 00:14:31,030 ისე, ჩვენ შეგვიძლია ბერკეტები ტექნიკა რომ საყოველთაოდ ცნობილია, როგორც უკან. 301 00:14:31,030 --> 00:14:33,960 და ჩვენ ვნახეთ ამ წელს pseudocode შერწყმა დალაგების გასულ კვირას. 302 00:14:33,960 --> 00:14:37,190 შეგახსენებთ, რომ ეს იყო pseudocode შერწყმა დალაგების. 303 00:14:37,190 --> 00:14:40,560 ეს, სავარაუდოდ, კიდევ უფრო მარტივია, ვიდრე ბუშტი და შერჩევა ან Insertion დალაგების 304 00:14:40,560 --> 00:14:43,310 უბრალოდ თვალსაზრისით სიმარტივის , რომელიც შეგიძლიათ გამოხატოს იგი. 305 00:14:43,310 --> 00:14:46,750 >> მაგრამ ეს იმიტომ, ჩვენ ერთგვარი circularly 306 00:14:46,750 --> 00:14:51,350 ამბობდა, ძიება რაღაც ეძებს ის ერთხელ. 307 00:14:51,350 --> 00:14:53,960 მაგრამ ჩვენ ძებნას ან მარცხენა ნახევარში და მარჯვენა ნახევარში 308 00:14:53,960 --> 00:14:56,070 და მაშინ საბოლოოდ ჩვენ შერწყმის ამ შემთხვევაში. 309 00:14:56,070 --> 00:14:58,520 მაგრამ აქ, ძალიან, ამ ორი სახის ხაზები, 310 00:14:58,520 --> 00:15:01,320 საერთოდ, ჩვენ კვლავ უნდა ეს იდეა უკან. 311 00:15:01,320 --> 00:15:05,350 და კონკრეტულად რას ნიშნავს ეს, კონტექსტში ალგორითმი, 312 00:15:05,350 --> 00:15:10,880 ის არის, რომ ალგორითმი არის რეკურსიული იმ შემთხვევაში, თუ იგი იყენებს და მოუწოდებს თავად. 313 00:15:10,880 --> 00:15:14,330 >> ან თვალსაზრისით C, ფუნქცია რეკურსიული ფუნქცია მოუწოდა 314 00:15:14,330 --> 00:15:18,510 foo არის რეკურსიული თუ foo, სადღაც მისი კოდის, 315 00:15:18,510 --> 00:15:21,250 მოუწოდებს ფუნქცია foo თავად. 316 00:15:21,250 --> 00:15:25,790 და ეს ცუდია თუ ყველა foo ოდესმე აკეთებს არის მოვუწოდებთ თავად ისევ და ისევ. 317 00:15:25,790 --> 00:15:30,600 ეს OK, თუ foo საბოლოოდ შეწყვეტს, რადგან არ შერწყმა დალაგების, განაცხადა, დაველოდოთ წუთში, 318 00:15:30,600 --> 00:15:32,980 თუ ეს პრობლემა არის სუპერ პატარა, მაგალითად, 319 00:15:32,980 --> 00:15:35,840 ან მივხვდი, მას რომელთანაც მე ეძებს, დააბრუნებს. 320 00:15:35,840 --> 00:15:41,000 არ რეკურსიული, არ ციკლურად მოვუწოდებთ თავს კიდევ ერთხელ. 321 00:15:41,000 --> 00:15:44,200 >> ასე რომ, მოდით შევხედოთ როგორ შეიძლება რეალურად მუშაობს. 322 00:15:44,200 --> 00:15:48,430 ამიტომ, მე ვაპირებ წავიდეთ წინ და ღია ორი კოდის მაგალითები აქ. 323 00:15:48,430 --> 00:15:50,321 ერთ-ერთი, რომელსაც ეწოდება sigma 0. 324 00:15:50,321 --> 00:15:52,320 და ეს არ არის ყველა რეკურსიული, მაგრამ ავიღოთ 325 00:15:52,320 --> 00:15:53,694 შეხედეთ რა ამ პროგრამის აკეთებს. 326 00:15:53,694 --> 00:15:55,737 მე ჩამოართვა ყველა კომენტარები, მაგრამ ყველა 327 00:15:55,737 --> 00:15:58,070 კოდის on CS50 ს საიტი აქვს კომენტარები თუ 328 00:15:58,070 --> 00:15:59,570 მინდა წაიკითხონ მეშვეობით იგი მოგვიანებით. 329 00:15:59,570 --> 00:16:02,010 და მოდით რამდენიმე საღი აზრის ამოწმებს აქ. 330 00:16:02,010 --> 00:16:06,640 >> ასე რომ, ზედა კოდი, ჩვენ მოიცავს cs50.h. 331 00:16:06,640 --> 00:16:07,650 რას გააკეთებს? 332 00:16:07,650 --> 00:16:08,990 რატომ არის აქ? 333 00:16:08,990 --> 00:16:11,740 გონივრული ერისკაცად წარმოგვიდგება მისი თვალსაზრისით. 334 00:16:11,740 --> 00:16:12,424 რას აკეთებთ? 335 00:16:12,424 --> 00:16:12,858 ჰო. 336 00:16:12,858 --> 00:16:14,160 >> აუდიტორია: ასე რომ GetInt ფუნქცია. 337 00:16:14,160 --> 00:16:16,243 >> დევიდ ჯ Malan: ასე რომ, GetInt ფუნქცია მუშაობს. 338 00:16:16,243 --> 00:16:18,115 იმის გამო, რომ შიგნით ამ ფაილი, CS50.h, რომელიც 339 00:16:18,115 --> 00:16:20,950 ჩვენ დავინახავთ, სანამ ხანგრძლივი თვალსაზრისით კოდის, 340 00:16:20,950 --> 00:16:23,270 აქვს რამოდენიმე ფუნქცია declared-- GetInt, GetString, 341 00:16:23,270 --> 00:16:26,950 და რამოდენიმე others-- და თუ ჩვენ რეალურად უნდა, რომ მოიცავს ხაზი, 342 00:16:26,950 --> 00:16:29,320 შემდგენელი Clang არ არის უნდა იცოდეს, რომ ის არსებობს. 343 00:16:29,320 --> 00:16:32,400 და იგივე ეხება ონლაინ ორი სადაც int განისაზღვრება 344 00:16:32,400 --> 00:16:35,101 printf, რომელიც არის ფუნქცია ჩვენ შევინარჩუნოთ გამოყენებით საკმაოდ მწირი. 345 00:16:35,101 --> 00:16:37,850 ახლა, ხაზი ოთხი, როგორც ჩანს ცოტა ხმაურიანი იმიტომ, რომ ეს არის მხოლოდ ერთი ლაინერი. 346 00:16:37,850 --> 00:16:41,570 ეს მივიღე მძიმით, არ curly აფრთხილებს, არ კოდი შიგნით მას. 347 00:16:41,570 --> 00:16:44,640 მაგრამ, რა გააკეთა, ჩვენ მოვუწოდებთ ეს რამ კვირის წარსულში? 348 00:16:44,640 --> 00:16:45,140 ჰო. 349 00:16:45,140 --> 00:16:46,060 ასე რომ, პროტოტიპი. 350 00:16:46,060 --> 00:16:48,390 და რატომ გვაქვს პროტოტიპი, რომელიც, როგორც ჩანს, 351 00:16:48,390 --> 00:16:51,050 იყოს ცოტა გადაჭარბებული როგორც წესი, იმიტომ, რომ ჩვენ, როგორც წესი, 352 00:16:51,050 --> 00:16:53,474 ვხედავ ფუნქციის ერთხელ მოგვიანებით, ფაილი, არა? 353 00:16:53,474 --> 00:16:56,390 ასე რომ, რატომ ჰქონდეს თქვენ მხოლოდ scratching თქვენი უფროსი, მაგრამ მე მას. 354 00:16:56,390 --> 00:16:57,302 ჰო. 355 00:16:57,302 --> 00:17:00,000 >> აუდიტორია: [INAUDIBLE] ფუნქცია მას შემდეგ, რაც მთავარი. 356 00:17:00,000 --> 00:17:01,000 დევიდ ჯ Malan: ზუსტად. 357 00:17:01,000 --> 00:17:04,089 ასე რომ, შემდგენელი იცის თუ არა საბოლოოდ განსაზღვროს და განახორციელოს 358 00:17:04,089 --> 00:17:06,579 რომ ფუნქცია მას შემდეგ, რაც მთავარი, სავარაუდოდ. 359 00:17:06,579 --> 00:17:08,462 ასე რომ Clang და ყველაზე შემდგენლები სახის dumb 360 00:17:08,462 --> 00:17:10,510 და ისინი მხოლოდ ის ვიცი რა ვუთხრა. 361 00:17:10,510 --> 00:17:12,569 თუ გსურთ გამოიყენოთ ფუნქციის მოუწოდა სიგმა, 362 00:17:12,569 --> 00:17:15,710 თქვენ უკეთ ასწავლოს შემდგენელი რომ არსებობს წინასწარ. 363 00:17:15,710 --> 00:17:17,970 >> ახლა მთავარ თავად, მაშინაც კი, მიუხედავად იმისა, რომ ეს არის bunch of ხაზები, 364 00:17:17,970 --> 00:17:19,839 არის საკმაოდ ნაცნობი იმედია ახლა. 365 00:17:19,839 --> 00:17:21,942 ეს მივიღე do ხოლო loop რომლის მიზანი ცხოვრებაში 366 00:17:21,942 --> 00:17:24,400 აქ, როგორც ჩანს, არის ის, რომ დადებითი რიცხვი შესახებ. 367 00:17:24,400 --> 00:17:27,349 და უბრალოდ შეინახოს pestering მას ან მისი სანამ ისინი თანამშრომლობენ. 368 00:17:27,349 --> 00:17:30,670 შემდეგ ხაზი 16 მაქვს საინტერესო ზარი. 369 00:17:30,670 --> 00:17:31,570 IntAnswer. 370 00:17:31,570 --> 00:17:33,710 რომელი მარცხენა მხარე მაძლევს Int 371 00:17:33,710 --> 00:17:36,650 რომელიც შეიძლება store-- მოუწოდა Answer-- რომელიც აპირებს შესანახად, როგორც ჩანს, 372 00:17:36,650 --> 00:17:39,090 დაბრუნების ღირებულება sigma. 373 00:17:39,090 --> 00:17:41,840 ასე რომ, sigma მხოლოდ თვითნებური მაგრამ აზრიანი სახელი 374 00:17:41,840 --> 00:17:44,500 რომ მე მოცემული ფუნქცია რომლის მიზანი ცხოვრებაში 375 00:17:44,500 --> 00:17:47,680 არის მიიღოს ერთი არგუმენტი ჩვენ მოვუწოდებთ მას N ამ შემთხვევაში 376 00:17:47,680 --> 00:17:52,280 და მხოლოდ მიიღოს თანხა, რომ ნომერი პლუს ყველა დადებითი რიცხვი, რომ 377 00:17:52,280 --> 00:17:53,200 პატარა, ვიდრე ეს. 378 00:17:53,200 --> 00:17:58,140 >> ასე რომ, თუ მე კორიდორი ნომერი 2 sigma, მინდა დავამატო, 2 პლუს 1 379 00:17:58,140 --> 00:18:00,240 პლუს 0- არ 0- ისე, რომ მაძლევს 3. 380 00:18:00,240 --> 00:18:05,320 თუ მე კორიდორი 3 to sigma, მინდა აქვს 3 + 2 + 1, რაც მაძლევს 6. 381 00:18:05,320 --> 00:18:05,900 და სხვ. 382 00:18:05,900 --> 00:18:09,750 ასე რომ, ეს მხოლოდ დასძენს მდე ყველა ნომრები ნაკლები ან ტოლია იგი. 383 00:18:09,750 --> 00:18:12,040 >> ახლა ქვევით აქ მე უბრალოდ აპირებს ამობეჭდოთ პასუხი. 384 00:18:12,040 --> 00:18:17,330 ასე რომ, როგორც სწრაფი საღი აზრის ქვითარი, მოდით მიიღოს სიგმა 0- dot slash sigma 0- 385 00:18:17,330 --> 00:18:18,690 და ნება მომეცით ტიპის 2. 386 00:18:18,690 --> 00:18:19,960 და მე ნამდვილად მისაღებად 3. 387 00:18:19,960 --> 00:18:21,240 ნება მომეცით აკრიფოთ 3. 388 00:18:21,240 --> 00:18:22,860 მე ნამდვილად მისაღებად 6. 389 00:18:22,860 --> 00:18:27,636 და თუ ვინმეს შეგიძლიათ გააკეთოთ მათემატიკის სწრაფად, თუ ამის გაკეთება 50 რა ვარ მე აპირებს მიიღოს? 390 00:18:27,636 --> 00:18:29,839 >> აუდიტორია: [INAUDIBLE]. 391 00:18:29,839 --> 00:18:30,880 დევიდ ჯ Malan: ისე, არ. 392 00:18:30,880 --> 00:18:33,340 მაგრამ 1,275 რომელიც საკმაოდ ახლოს. 393 00:18:33,340 --> 00:18:38,850 ასე რომ, ეს არის შედეგი აკეთებს 50 პლუს 49 პლუს 48 პლუს 47 პლუს 46 394 00:18:38,850 --> 00:18:40,349 ყველა გზა ქვემოთ 1. 395 00:18:40,349 --> 00:18:41,390 ასე რომ, ყველა sigma აკეთებს. 396 00:18:41,390 --> 00:18:43,350 მაგრამ ვნახოთ, თუ როგორ ჩვენ განხორციელებული ეს არის. 397 00:18:43,350 --> 00:18:45,790 ასე ქვევით აქ არის ფუნქცია თავად. 398 00:18:45,790 --> 00:18:49,000 და ეს არ ჩანს, რომ გვქონდეს არაფერი უკან ამჟამად. 399 00:18:49,000 --> 00:18:51,070 ფაქტობრივად, ჩვენ გამოყენებით ძველი სკოლა ტექნიკით. 400 00:18:51,070 --> 00:18:56,680 მე ინიციალიზაციისას ცვლადში თანხა ნულოვანი, მაშინ მე მაქვს foreloop აქ, 401 00:18:56,680 --> 00:19:00,790 და მე გამოცხადების Int ე.წ. მე, განსაზღვრავს ის ტოლია 1-- 402 00:19:00,790 --> 00:19:04,080 მიუხედავად იმისა, რომ მე ვერ ვაყენებთ მას ტოლი ნულოვანი, მაგრამ მას შემდეგ, რაც მე ვაკეთებ გარდა ამისა, 403 00:19:04,080 --> 00:19:05,340 ვინ ზრუნავს თუ ის ნულოვანი ან ერთი. 404 00:19:05,340 --> 00:19:06,660 ის აპირებს არ მოახდენს. 405 00:19:06,660 --> 00:19:10,110 >> ასე რომ, მე iterating ასე რომ სანამ მე ნაკლები ან ტოლია მ, რომელიც 406 00:19:10,110 --> 00:19:11,671 არის არგუმენტი, რომ მიღებულ იქნა. 407 00:19:11,671 --> 00:19:13,670 და მერე უბრალოდ შეინახოს დამატება I. და რისთვისაც 408 00:19:13,670 --> 00:19:20,010 მარყუჟის ყველა მე ვაკეთებ აკეთებს თანხა პლუს შეადგენს I. და ეს მიზანმიმართული. 409 00:19:20,010 --> 00:19:22,326 მე არ მინდა, ამ საქმე, ისევე როგორც თანხის plus plus. 410 00:19:22,326 --> 00:19:24,790 მინდა რეალურად რჩეულებში მიმდინარე ღირებულება მე 411 00:19:24,790 --> 00:19:28,190 რომელიც ინარჩუნებს მიღების უფრო და უფრო და დიდი გაშვებული tally. 412 00:19:28,190 --> 00:19:30,210 >> და მერე დაბრუნდნენ თანხა. 413 00:19:30,210 --> 00:19:33,850 ასე რომ, პასუხი იღებს ღირებულება თანხა. 414 00:19:33,850 --> 00:19:35,282 და მერე ამობეჭდოთ. 415 00:19:35,282 --> 00:19:37,740 ასე რომ, არსებობს შესაძლებლობა აქ, თუმცა, სახის გაამარტივებს 416 00:19:37,740 --> 00:19:41,260 ეს კოდი კონცეპტუალურად და სახის დარტყმა ერთი, 417 00:19:41,260 --> 00:19:43,250 იბადება თვალსაზრისით სიმარტივის მიუხედავად იმისა, რომ 418 00:19:43,250 --> 00:19:45,700 იღებს, ხოლო დასალაგებლად ვაფასებთ, ამიტომ ეს 419 00:19:45,700 --> 00:19:47,330 არის ძლიერი ამ პატარა მაგალითები. 420 00:19:47,330 --> 00:19:50,380 აქ არის sigma one-- ასე მეორე ვერსია ეს კოდი. 421 00:19:50,380 --> 00:19:55,290 ყველაფერი ზევით იდენტურია ასე რომ იგივე ამბავი ეხება, როგორც ადრე. 422 00:19:55,290 --> 00:19:59,220 მაგრამ ახლა მოდით შევხედოთ განხორციელების sigma რომელიც 423 00:19:59,220 --> 00:20:05,040 მე whittled ქვემოთ მხოლოდ ამ ხაზები ოთხი ხაზი კოდი, მართლაც, 424 00:20:05,040 --> 00:20:06,980 პლუს რამდენიმე Curly braces და თეთრი სივრცე. 425 00:20:06,980 --> 00:20:07,930 >> მაგრამ რა ვარ მე? 426 00:20:07,930 --> 00:20:11,050 თუ მ ნაკლებია ან ტოლი ნულოვანი, მე უნდა სახის გაუმკლავდეს 427 00:20:11,050 --> 00:20:12,490 რომ სუპერ მარტივი საქმე. 428 00:20:12,490 --> 00:20:15,450 და თუ ხელით ნულოვანი ან არაფერი უარყოფითი რომელიც მხოლოდ უცნაური, 429 00:20:15,450 --> 00:20:17,909 მე უბრალოდ აპირებს თვითნებურად მაგრამ თანმიმდევრულად დაბრუნების ნულოვანი. 430 00:20:17,909 --> 00:20:20,200 მე არ მინდა, ასეთი რამ მოხვდება რაღაც უცნაური უსასრულო 431 00:20:20,200 --> 00:20:21,810 loop გამო უარყოფითი მნიშვნელობა. 432 00:20:21,810 --> 00:20:25,070 ასე რომ, მე უბრალოდ ვამბობ, თუ მაძლევს ნულოვანი ან ნაკლები, მე დაბრუნების ნულოვანი. 433 00:20:25,070 --> 00:20:28,220 >> მაგრამ ეს კარგია, იმიტომ, რომ ის რომ ერთი გვერდი სატელეფონო წიგნი 434 00:20:28,220 --> 00:20:28,790 რომ დარჩა. 435 00:20:28,790 --> 00:20:32,660 მე დაკბენის off ძალიან კონკრეტული პრობლემა და არა რაღაცის რეკურსიული. 436 00:20:32,660 --> 00:20:36,580 მაგრამ ხაზი 31, რა მე, როგორც ჩანს, აკეთებს? 437 00:20:36,580 --> 00:20:39,780 ფრჩხილებში უბრალოდ შენახვა რამ, იმედია, პატარა ნათელი. 438 00:20:39,780 --> 00:20:42,110 მაგრამ ყველა ვაკეთებ მე დაბრუნების m-- რასაც 439 00:20:42,110 --> 00:20:45,790 თქვენ გადასცემს ჩემთვის პლუს ღირებულება m-- ბოდიში, 440 00:20:45,790 --> 00:20:49,052 პლუს ღირებულება sigma of მ მინუს 1. 441 00:20:49,052 --> 00:20:50,010 ასე რომ, რას ნიშნავს ეს? 442 00:20:50,010 --> 00:20:53,965 თუ მაძლევს ნომერი 3 არგუმენტად, პასუხი მინდა კიდევ საბოლოოდ 443 00:20:53,965 --> 00:20:57,307 6 რადგან 3 + 2 + 1 მაძლევს 6. 444 00:20:57,307 --> 00:20:59,390 მაგრამ როგორ უნდა ვიფიქროთ როგორ ეს კოდი არის გაშვებული? 445 00:20:59,390 --> 00:21:03,070 პირველად მოვუწოდებ sigma და მე კორიდორი ღირებულება 3, 446 00:21:03,070 --> 00:21:07,960 ასეთი ამბობდა ცალი ქაღალდი, აქ არის, ღირებულება 3 447 00:21:07,960 --> 00:21:09,920 და მე უკვე გავიდა, როგორც sigma. 448 00:21:09,920 --> 00:21:13,090 3 აშკარად არ არის ნაკლები ვიდრე 0 ასე თუ მდგომარეობა არ ვრცელდება. 449 00:21:13,090 --> 00:21:14,020 სხვაგან აკეთებს. 450 00:21:14,020 --> 00:21:14,990 ასე რომ, რა გავაკეთო? 451 00:21:14,990 --> 00:21:19,902 მინდა დაბრუნდეს მ, რომელიც 3, პლუს sigma of მ მინუს 1. 452 00:21:19,902 --> 00:21:21,110 ნება მომეცით შენარჩუნება სიმღერა ეს. 453 00:21:21,110 --> 00:21:22,710 მე ვაპირებ, რომ ამ ნაჭერი ქაღალდი ქვემოთ. 454 00:21:22,710 --> 00:21:24,668 და რა ღირებულება, უნდა იყოს ნათელი, ვარ მე გაივლის 455 00:21:24,668 --> 00:21:26,540 შევიდა sigma ამ ეტაპზე ამბავი? 456 00:21:26,540 --> 00:21:28,080 რა ნომერი? 457 00:21:28,080 --> 00:21:28,610 2, არა? 458 00:21:28,610 --> 00:21:29,670 3 მინუს 1 2. 459 00:21:29,670 --> 00:21:32,000 ასე რომ, მე უბრალოდ უნდა პატარა ჯართი ქაღალდი აქ. 460 00:21:32,000 --> 00:21:33,931 ასე რომ, ახლა sigma დღითიდღე ერთხელ მოუწოდა. 461 00:21:33,931 --> 00:21:35,930 და მე შეგნებულად დააყენა ქვემოთ, რადგან ეს 462 00:21:35,930 --> 00:21:38,070 სახის მოსწონს დაპაუზება რომ ვერსიით 463 00:21:38,070 --> 00:21:40,720 იმიტომ, რომ ახლა მე ფოკუსირებული სიგნალი მ მინუს 1. 464 00:21:40,720 --> 00:21:42,660 ასე რომ, მ იყო 3, მ მინუს 1 2. 465 00:21:42,660 --> 00:21:45,110 ასე რომ, აქ არის 2, რომ მე უკვე გავიდა. 466 00:21:45,110 --> 00:21:48,510 2 აშკარად არანაკლებ 0 ისე, რომ საქმე არ ვრცელდება. 467 00:21:48,510 --> 00:21:53,445 Else I დაბრუნებას მ, რომელიც ამ რამ, პლუს sigma რა მნიშვნელობა? 468 00:21:53,445 --> 00:21:56,160 469 00:21:56,160 --> 00:21:59,650 ასე რომ, თუ sigma of 1-- რადგან მ ახლა 2 ასე რომ 2 მინუს 1 1. 470 00:21:59,650 --> 00:22:01,950 ასე რომ, ახლა მე მხოლოდ ღირებულება 1. 471 00:22:01,950 --> 00:22:04,810 მე გავლით მხოლოდ ნომერი 1 ფუნქცია sigma-- 472 00:22:04,810 --> 00:22:09,120 ან თავს აქ, ასე რომ 1, ცხადია, ნაკლებია, ვიდრე ნულოვანი, ჯერ არ ვრცელდება. 473 00:22:09,120 --> 00:22:12,970 >> Else დაბრუნების 1 + სიგმა რა? 474 00:22:12,970 --> 00:22:13,470 0. 475 00:22:13,470 --> 00:22:14,678 ნება მომეცით, უბრალოდ გვახსოვდეს, რომ. 476 00:22:14,678 --> 00:22:15,920 მე დაუბრუნდეთ, რომ მოგვიანებით. 477 00:22:15,920 --> 00:22:18,060 ახლა მე ვაპირებ წავიდეთ წინ და jot ქვემოთ რიცხვი 0 იმიტომ, რომ ის 478 00:22:18,060 --> 00:22:19,470 ჩემი არგუმენტი ან პარამეტრი. 479 00:22:19,470 --> 00:22:22,400 მე გაიარა ნომერი 0 და ბოლოს, ეს პროცესი 480 00:22:22,400 --> 00:22:25,760 მხოლოდ იმეორებს თავს რეკლამა nauseum არ შეწყვეტს, რადგან რა 481 00:22:25,760 --> 00:22:28,820 შემიძლია დაუყოვნებლივ ერთხელ მე ვხედავ ამ 0? 482 00:22:28,820 --> 00:22:29,790 მე დაბრუნების ნულოვანი. 483 00:22:29,790 --> 00:22:31,790 ასე რომ, ახლა თქვენ უნდა გადახვევა ამბავი. 484 00:22:31,790 --> 00:22:34,430 >> თუ მე ახლა უკან დროში, რა იყო ყველაზე ბოლო რამ 485 00:22:34,430 --> 00:22:36,670 მე თუ იყო ფაქტიურად გადახვევა ვიდეო? 486 00:22:36,670 --> 00:22:41,630 მე ვაპირებ შეარჩიო ყველაზე ბოლო 1 და რომ მაძლევს 1 + 0 = 1. 487 00:22:41,630 --> 00:22:44,100 თუ მე შენარჩუნება გადახვევა ამბავი, რომელიც აპირებს მომეცი 488 00:22:44,100 --> 00:22:46,880 2 plus ამ გაშვებული ღირებულება, რომელიც არის 1. 489 00:22:46,880 --> 00:22:47,789 ასე რომ, 3. 490 00:22:47,789 --> 00:22:49,330 და მაშინ მე ვაპირებ შენარჩუნება გადახვევა. 491 00:22:49,330 --> 00:22:54,220 როდესაც მე პირველად დააყენა ქვემოთ ნომერი 3-- ასე 3 + 3 მაძლევს 6. 492 00:22:54,220 --> 00:22:57,272 >> ახლა კი, თუ თქვენ ახვევს ვიდეო წლამდე ამ ეტაპზე, 493 00:22:57,272 --> 00:22:58,980 ეს იყო ძალიან პირველი კითხვა მე ვთხოვე. 494 00:22:58,980 --> 00:23:01,450 როდესაც გავიდა 3, რა არის sigma 3? 495 00:23:01,450 --> 00:23:04,204 ეს მართლაც 6, თანხა ყველა ამ ცალი ქაღალდის. 496 00:23:04,204 --> 00:23:07,120 ასე რომ, თუ იღებს ცოტა ხნით გადაიტანოთ თქვენი აზრით გარშემო, რომ ჯარიმა. 497 00:23:07,120 --> 00:23:10,700 მაგრამ მიგვაჩნია, რომ ეს იყო little-- ეს იყო ძალიან მიზანმიმართული, რომ მე stacked 498 00:23:10,700 --> 00:23:12,990 ეს ნომრები თავზე ერთმანეთს. 499 00:23:12,990 --> 00:23:17,440 ეს არის სახის მსგავსად, რომელსაც აქვს memory-- რეკორდი დროს, 500 00:23:17,440 --> 00:23:19,940 როგორიცაა იატაკის ვიდეო, რომ მე შეიძლება მართლაც გადახვევა. 501 00:23:19,940 --> 00:23:24,350 და ჩვენ ვაპირებთ დაბრუნებას რომ მეტაფორა მხოლოდ ცოტა. 502 00:23:24,350 --> 00:23:28,240 >> მაგრამ პირველი, გამოდის, რომ იქ ბევრი geeks და სასაცილო ადამიანი, 503 00:23:28,240 --> 00:23:29,614 ვფიქრობ, Google. 504 00:23:29,614 --> 00:23:31,530 მინდა ვინმე ვინც ძალიან კარგი Googling გონება 505 00:23:31,530 --> 00:23:34,270 ახლოვდება რაღაც მომენტში და დამეხმარება მოძებნოთ რამე? 506 00:23:34,270 --> 00:23:35,650 ძალიან, ძალიან დაბალი გასაღები. 507 00:23:35,650 --> 00:23:37,870 ადამიანი, რომელიც არასდროს ამუშავება ადრე, ალბათ. 508 00:23:37,870 --> 00:23:38,370 OK. 509 00:23:38,370 --> 00:23:39,030 ჰო? 510 00:23:39,030 --> 00:23:39,530 კარგით. 511 00:23:39,530 --> 00:23:41,410 კარგით ქვემოთ. 512 00:23:41,410 --> 00:23:42,183 რა გქვია? 513 00:23:42,183 --> 00:23:42,870 >> SAM: Sam. 514 00:23:42,870 --> 00:23:44,290 >> დევიდ ჯ Malan: Sam, მოდის ქვემოთ. 515 00:23:44,290 --> 00:23:45,320 ეს არის იგივე. 516 00:23:45,320 --> 00:23:46,280 კარგია თქვენთან შეხვედრა. 517 00:23:46,280 --> 00:23:46,780 Hey. 518 00:23:46,780 --> 00:23:47,580 კარგით დასრულდა. 519 00:23:47,580 --> 00:23:51,290 ასე რომ, ყველა მე უნდა გავაკეთოთ, თუ თქვენ შეიძლება, სემ, აქ არის Google. 520 00:23:51,290 --> 00:23:53,240 შეგიძლიათ მოძიება ტერმინი უკან? 521 00:23:53,240 --> 00:23:55,770 522 00:23:55,770 --> 00:23:56,270 არ გააფუჭებს. 523 00:23:56,270 --> 00:23:59,940 524 00:23:59,940 --> 00:24:00,970 >> ახლა let's-- yeah. 525 00:24:00,970 --> 00:24:03,380 OK დააჭირეთ რომ. 526 00:24:03,380 --> 00:24:04,315 უკეთესი დააჭირეთ რომ. 527 00:24:04,315 --> 00:24:07,020 528 00:24:07,020 --> 00:24:08,020 ოხ, მიიღოს იგი. 529 00:24:08,020 --> 00:24:08,520 არ არის? 530 00:24:08,520 --> 00:24:09,050 OK. 531 00:24:09,050 --> 00:24:10,430 ასე რომ, მოდით რამდენიმე სხვები. 532 00:24:10,430 --> 00:24:12,830 არა იმდენად დაკავშირებული აკადემიური აქ, მაგრამ თქვენ 533 00:24:12,830 --> 00:24:14,520 ოდესმე ჩხრეკა Google for anagram? 534 00:24:14,520 --> 00:24:15,280 >> SAM: No. 535 00:24:15,280 --> 00:24:15,520 >> დევიდ ჯ Malan: OK. 536 00:24:15,520 --> 00:24:17,186 ძიება anagram ნაცვლად უკან. 537 00:24:17,186 --> 00:24:22,540 538 00:24:22,540 --> 00:24:23,790 როგორ შესახებ askew. 539 00:24:23,790 --> 00:24:25,515 ოდესმე ჩხრეკა askew? 540 00:24:25,515 --> 00:24:29,260 541 00:24:29,260 --> 00:24:32,692 ახლა, ამ ერთი ცოტა რთულია ვხედავ, მაგრამ იმედია everything's-- OK. 542 00:24:32,692 --> 00:24:34,150 ეს მხოლოდ თქვენ და მე სარგებლობენ ეს. 543 00:24:34,150 --> 00:24:34,690 OK. 544 00:24:34,690 --> 00:24:38,950 >> ასე რომ, საბოლოოდ, ეს one's-- ეს არის პატარა askew. 545 00:24:38,950 --> 00:24:40,810 ახლა ამის გაკეთება ბარელზე როლი. 546 00:24:40,810 --> 00:24:44,460 547 00:24:44,460 --> 00:24:45,310 მშვენიერია. 548 00:24:45,310 --> 00:24:45,910 ყველა უფლება. 549 00:24:45,910 --> 00:24:47,110 დიდი მადლობა, რომ სემ. 550 00:24:47,110 --> 00:24:49,416 აქ თქვენ წასვლა. 551 00:24:49,416 --> 00:24:50,400 მადლობა. 552 00:24:50,400 --> 00:24:52,807 >> ასე რომ, რა ხდება ყველა ამ სულელური მაგალითები? 553 00:24:52,807 --> 00:24:55,640 ასე რომ, რეალურად, ქვეშ hood Google- ის მილიონობით ხაზების კოდი 554 00:24:55,640 --> 00:24:58,860 როგორც ჩანს, რამდენიმე სულელური IF პირობები, რომლებიც არსებითად 555 00:24:58,860 --> 00:25:01,160 შემოწმების თუ მომხმარებელს აქვს აკრეფილი ეს ფრაზა, 556 00:25:01,160 --> 00:25:03,760 რაღაც, რომ ალბათ აიღო nontrivial დროის 557 00:25:03,760 --> 00:25:06,080 განახორციელოს მხოლოდ იმიტომ, რომ იყოს სახალისო ამ გზით. 558 00:25:06,080 --> 00:25:08,430 მაგრამ ეს ყველაფერი boils ქვემოთ ქვეშ hood. 559 00:25:08,430 --> 00:25:11,570 მაგრამ, რა თქმა უნდა, უკან არის მეტი geekier 560 00:25:11,570 --> 00:25:13,880 მაგალითად, მათ შორის, სპეციალური ხრიკები. 561 00:25:13,880 --> 00:25:16,880 და აუცილებლად იქ სხვები იქ ასევე, რომ ჩვენ, ალბათ, ჯერ კიდევ არ 562 00:25:16,880 --> 00:25:18,230 აღმოაჩინეს უბრალოდ არ არის. 563 00:25:18,230 --> 00:25:22,830 >> ასე რომ შევხედოთ, ან განიხილოს ახლა შემდეგ პროგრამა, 564 00:25:22,830 --> 00:25:24,830 და რა თქმა უნდა დაიბრუნოს ნებისმიერი ამ თქვენი გამოსავალი. 565 00:25:24,830 --> 00:25:28,820 მე ვაპირებ წავიდეთ წინ და გახსენით პროგრამა, რომელიც 566 00:25:28,820 --> 00:25:30,920 აპირებს ვცდილობთ, რომ სვოპ ორი ღირებულებებს. 567 00:25:30,920 --> 00:25:33,210 მაგრამ სანამ ჩვენ იქ, მოდით გავაკეთოთ ეს. 568 00:25:33,210 --> 00:25:38,500 შეგვეძლო კიდევ ერთი მოხალისე, ვფიქრობ? 569 00:25:38,500 --> 00:25:40,480 გსურთ მოხალისე? 570 00:25:40,480 --> 00:25:40,980 არ არის? 571 00:25:40,980 --> 00:25:41,890 კარგით up. 572 00:25:41,890 --> 00:25:42,390 კარგით up. 573 00:25:42,390 --> 00:25:42,890 ყველა უფლება. 574 00:25:42,890 --> 00:25:44,136 ასე რომ, თქვენი სახელი, თუ რა? 575 00:25:44,136 --> 00:25:44,810 >> LAUREN: Lauren. 576 00:25:44,810 --> 00:25:45,768 >> დევიდ ჯ Malan: Lauren. 577 00:25:45,768 --> 00:25:46,890 ამოდი, ლორენ. 578 00:25:46,890 --> 00:25:50,140 ასე რომ, ლორენ მიმდინარეობს გასაჩივრებული აქ ასეთია. 579 00:25:50,140 --> 00:25:52,310 კარგია თქვენთან შეხვედრა. 580 00:25:52,310 --> 00:25:55,730 ასე რომ, ლორენ აქ წინ მისი ორი ცარიელი ჭიქა. 581 00:25:55,730 --> 00:25:57,570 და ჩვენ გვაქვს ფორთოხალი წვენი და რამდენიმე რძე 582 00:25:57,570 --> 00:26:00,301 და ჩვენ ვაპირებთ წავიდეთ წინ და ამის შემდეგ. 583 00:26:00,301 --> 00:26:01,550 ჩვენ უბრალოდ უნდა შეავსოთ ეს. 584 00:26:01,550 --> 00:26:07,840 რამდენიმე უნცია რძის აქ და მოდით შეავსოთ პატარა ფორთოხლის წვენი მეტი აქ. 585 00:26:07,840 --> 00:26:11,475 >> და თქვენს წინაშე ყველა ამ აუდიტორიის წევრები, 586 00:26:11,475 --> 00:26:13,550 სვოპ ორი ფასეულობების ამ თასები. 587 00:26:13,550 --> 00:26:16,970 განათავსეთ ფორთოხლის წვენი რძის თასი და რძის ფორთოხლის წვენი თასი. 588 00:26:16,970 --> 00:26:22,380 589 00:26:22,380 --> 00:26:26,150 როგორ უნდა გააკეთოთ ეს თუ იყო სახლში და ჰქონდა ხელმისაწვდომობის სხვა წყაროები? 590 00:26:26,150 --> 00:26:27,400 LAUREN: ამას კიდევ ერთი თასი. 591 00:26:27,400 --> 00:26:28,191 დევიდ ჯ Malan: OK. 592 00:26:28,191 --> 00:26:31,940 მოდით აქვს დროებითი ცვლადი, თუ ჩვენ. 593 00:26:31,940 --> 00:26:35,871 და წავიდეთ წინ არის და განხორციელება იგივე შევცვალე პროცედურა. 594 00:26:35,871 --> 00:26:36,370 ასე რომ, კარგი. 595 00:26:36,370 --> 00:26:41,490 ჩვენ დააყენა OJ შევიდა დროებით ცვლადი, რძე შევიდა OJ ცვლადი, 596 00:26:41,490 --> 00:26:44,481 და ახლა დროებითი ცვლადი რძე ცვლადი. 597 00:26:44,481 --> 00:26:44,980 OK. 598 00:26:44,980 --> 00:26:48,740 ასე რომ, ძალიან კარგად გაკეთდეს ჯერჯერობით. 599 00:26:48,740 --> 00:26:50,990 გამოდის out-- გამართავს, რომ ეგონა, მხოლოდ ერთი წუთით. 600 00:26:50,990 --> 00:26:54,479 აქ, უბრალოდ, geek ეს ცოტა, ამ იქნება შესაბამისი C კოდი 601 00:26:54,479 --> 00:26:55,520 რომ ჩვენ უბრალოდ განხორციელდა. 602 00:26:55,520 --> 00:26:58,650 ჩვენ გვქონდა ორი საშუალებებით, და ბ, ორივე რომელიც ჩვენ, უბრალოდ, ვამბობთ სიმარტივის არიან 603 00:26:58,650 --> 00:26:59,260 int ს. 604 00:26:59,260 --> 00:27:02,780 და შენიშნავს, აქ, თუ მე მინდა, რომ სვოპ ღირებულებები ორი ცვლადის, და ბ, 605 00:27:02,780 --> 00:27:06,890 ჩვენ მართლაც გვჭირდება შუამავალი, რომელიც დროებითი ცვლადი, დროებითი თასი, 606 00:27:06,890 --> 00:27:10,830 რომელშიც დაასხით ერთი ღირებულებების ასე, რომ ჩვენ გვაქვს placeholder იგი. 607 00:27:10,830 --> 00:27:13,480 მაგრამ მაშინ კოდი არის ზუსტად ლორენ აქ განხორციელდა. 608 00:27:13,480 --> 00:27:15,500 >> ახლა, მხოლოდ მიიღოს ცოტა სიგიჟე, თურმე 609 00:27:15,500 --> 00:27:20,930 რომ თქვენ შეგიძლიათ ამის გაკეთება გარეშე დროებითი ცვლადი. 610 00:27:20,930 --> 00:27:24,870 ამისათვის სათანადოდ, თუმცა, ჩვენ ვაპირებთ უნდა მოატყუო რამდენიმე ქიმია. 611 00:27:24,870 --> 00:27:26,380 ჩვენ გვაქვს გარკვეული დამატებითი ჭიქა აქ. 612 00:27:26,380 --> 00:27:29,600 ასე რომ, უახლოესი რაც გამოიყურება როგორიცაა რძე და წყალი perhaps-- 613 00:27:29,600 --> 00:27:34,090 ან რძე და OJ-- არის, რომ ჩვენ გვაქვს წყალი, ასე რომ, ჩვენ შეავსოთ ამ ერთი გოლი 614 00:27:34,090 --> 00:27:36,486 რამდენიმე უნცია წმინდა წყლის. 615 00:27:36,486 --> 00:27:38,332 ეს, ალბათ, ძალიან ბევრი. 616 00:27:38,332 --> 00:27:38,832 ჰო. 617 00:27:38,832 --> 00:27:39,934 ეს ნამდვილად ძალიან ბევრი. 618 00:27:39,934 --> 00:27:40,600 გამართავს ერთი წ. 619 00:27:40,600 --> 00:27:43,520 620 00:27:43,520 --> 00:27:48,420 >> და ახლა ჩვენ გვაქვს ზეთი, რომელიც, როგორც მახსოვს საშუალო სკოლის ქიმიის კლასი, 621 00:27:48,420 --> 00:27:49,990 იმედია ეს არ ავურიოთ წყალი. 622 00:27:49,990 --> 00:27:53,650 მაგრამ ეს ერთგვარი სახის ჰგავს რძე და OJ. 623 00:27:53,650 --> 00:27:55,760 ასე რომ, ახლა, გამოყენების გარეშე დროებითი ცვლადი, 624 00:27:55,760 --> 00:27:59,260 შეგიძლიათ სვოპ ამ ორი ღირებულებები? 625 00:27:59,260 --> 00:28:03,884 ასე რომ, ზეთები მიდის წყალში თასი, წყლის გადადის ნავთობის თასი. 626 00:28:03,884 --> 00:28:04,800 LAUREN: სხვა ჭიქა? 627 00:28:04,800 --> 00:28:05,940 დევიდ ჯ Malan: სხვა თასები. 628 00:28:05,940 --> 00:28:07,860 და მე რეალურად არ ტესტირება, ეს ადრე ამ წლის 629 00:28:07,860 --> 00:28:10,110 ასე რომ, მე არ ვიცი, თუ ეს იქნება რეალურად მუშაობს ქიმიურად. 630 00:28:10,110 --> 00:28:16,130 631 00:28:16,130 --> 00:28:18,650 ეს არ უნდა მოხდეს. 632 00:28:18,650 --> 00:28:19,761 არის თუ არა სამუშაო? 633 00:28:19,761 --> 00:28:20,260 ყველა უფლება. 634 00:28:20,260 --> 00:28:20,990 ასე ჰყოფს? 635 00:28:20,990 --> 00:28:21,490 კარგი. 636 00:28:21,490 --> 00:28:24,714 ახლა მივიღეთ მისაღებად წყლის სხვა თასი. 637 00:28:24,714 --> 00:28:27,630 ჭკვიანია ქიმიის კონცენტრატორები იქნებოდა ალბათ ეს უკეთესია, ვიდრე მე. 638 00:28:27,630 --> 00:28:28,510 >> LAUREN: წყლის ბოლოში. 639 00:28:28,510 --> 00:28:31,910 >> დევიდ ჯ Malan: water-- რომ იყო რა არის მთავარი, რომ ბოლო დროს, როგორც ეს. 640 00:28:31,910 --> 00:28:33,950 თქვენ უნდა გავაკეთოთ სწორი მიზნით. 641 00:28:33,950 --> 00:28:34,450 ჰო. 642 00:28:34,450 --> 00:28:35,270 That's-- OK. 643 00:28:35,270 --> 00:28:37,290 ახლა ჩვენ გვაქვს ორი ჭიქა ზეთი. 644 00:28:37,290 --> 00:28:37,790 OK. 645 00:28:37,790 --> 00:28:38,510 ეს არის ის, OK. 646 00:28:38,510 --> 00:28:40,110 მაგრამ ქიმიურად თუ ეს მუშაობდა, ვიდრე არ მე 647 00:28:40,110 --> 00:28:41,200 >> LAUREN: ეს არის წყალი. 648 00:28:41,200 --> 00:28:41,930 >> დევიდ ჯ Malan: ეს არის, ძირითადად, წყალი. 649 00:28:41,930 --> 00:28:42,430 ყველა უფლება. 650 00:28:42,430 --> 00:28:44,210 მაგრამ ეს ჯერ კიდევ იგივე თასი, როგორც ადრე. 651 00:28:44,210 --> 00:28:47,570 ასე რომ, დაასხით it-- ცდილობენ, რომ იქ. 652 00:28:47,570 --> 00:28:49,300 OK. 653 00:28:49,300 --> 00:28:51,010 ეს არის კარგი გამოყენება კლასის დღეს. 654 00:28:51,010 --> 00:28:51,510 OK. 655 00:28:51,510 --> 00:28:53,890 ასე რომ, ახლა we-- ლამაზი. 656 00:28:53,890 --> 00:28:55,460 დალაგება. 657 00:28:55,460 --> 00:28:55,960 ყველა უფლება. 658 00:28:55,960 --> 00:28:56,690 ასე რომ, ძალიან კარგი. 659 00:28:56,690 --> 00:29:00,006 დიდი მადლობა, რომ Lauren. 660 00:29:00,006 --> 00:29:01,950 ძალიან კარგად გაკეთდეს. 661 00:29:01,950 --> 00:29:04,570 >> ასე რომ მხოლოდ აფეთქება თქვენი გონება, და ეს არის ალბათ რაღაც 662 00:29:04,570 --> 00:29:08,660 თამაში თუ გსურთ CS50 ID, თქვენ შეგიძლიათ, ფაქტობრივად, მოკლე ორ ცვლადს 663 00:29:08,660 --> 00:29:11,470 გამოყენების გარეშე დროებითი რიცხვი. 664 00:29:11,470 --> 00:29:13,060 და ეს არის შესაბამისი C კოდი. 665 00:29:13,060 --> 00:29:16,110 და თუ გახსოვთ, გასულ ოთხშაბათი, ჩვენ გააცნო, თუ მოკლედ, 666 00:29:16,110 --> 00:29:19,720 რამდენიმე ახალი ოპერატორების C. და აკეთებს ვინმეს გავიხსენოთ, თუ რა პატარა სტაფილოს 667 00:29:19,720 --> 00:29:23,660 სიმბოლო არის, რომ პატარა სამკუთხა სიმბოლო კლავიატურის წარმოადგენს? 668 00:29:23,660 --> 00:29:26,003 რა bitwise ოპერატორს? 669 00:29:26,003 --> 00:29:26,770 >> აუდიტორია: EXOR. 670 00:29:26,770 --> 00:29:27,645 >> დევიდ ჯ Malan: EXOR. 671 00:29:27,645 --> 00:29:28,560 ექსკლუზიური ან. 672 00:29:28,560 --> 00:29:32,920 ასე რომ, თუ გსურთ, უბრალოდ for fun at სახლში, რათა ბ ორი თვითნებური 673 00:29:32,920 --> 00:29:36,072 ღირებულებებს, როგორიცაა ნებისმიერი eight-- და მე რომ აირჩიოს რვა ბიტიანი მნიშვნელობა. 674 00:29:36,072 --> 00:29:38,530 თუ ამის გაკეთება, 32 ბიტი, თქვენ ძალიან სწრაფად მოგწყინდება. 675 00:29:38,530 --> 00:29:42,150 მაგრამ უბრალოდ მისცეს რვა ცოტა ღირებულება, რომელიც არ უნდა იყოს, ერთი ან ორი, 676 00:29:42,150 --> 00:29:43,790 და მისცეს ბ მსგავსი მნიშვნელობა. 677 00:29:43,790 --> 00:29:46,810 და მაშინ გამოყენებით განმარტება საქართველოს XOR გასულ ოთხშაბათს, 678 00:29:46,810 --> 00:29:52,560 ვრცელდება, რომ ნელ-ნელა, თითოეული იმ რვა ბიტი თითოეული და ბ, 679 00:29:52,560 --> 00:29:54,980 და შემდეგ ამის გაკეთება ზუსტად პოსტი კოდი. 680 00:29:54,980 --> 00:29:58,170 და ეს არ არის არასწორი, რა თქვენ აქ ეკრანზე. 681 00:29:58,170 --> 00:30:02,100 ეს მართლაც boils ქვემოთ სამ XOR ოპერაციების 682 00:30:02,100 --> 00:30:05,910 და რატომღაც magically ა და ბ იქნება პოზიციებს გაცვლიან 683 00:30:05,910 --> 00:30:08,010 დაკარგვის გარეშე ნებისმიერი ინფორმაცია. 684 00:30:08,010 --> 00:30:11,580 >> ასე რომ, ზეთი და წყალი შეასრულა არის უახლოესი რეალური სამყაროს განსახიერება 685 00:30:11,580 --> 00:30:12,980 მე ვფიქრობ, რომ mimic რომ. 686 00:30:12,980 --> 00:30:15,950 მაგრამ ეს აუცილებლად უფრო ადვილია გამოვიყენოთ დროებითი ცვლადი, 687 00:30:15,950 --> 00:30:16,920 რადგან ამ შემთხვევაში აქ. 688 00:30:16,920 --> 00:30:21,190 ესეც არის შესაძლებლობა ვთქვა, ძალიან, ამ სახის მიკრო ოპტიმიზაცია, 689 00:30:21,190 --> 00:30:23,590 როგორც კომპიუტერის მეცნიერი ვიტყოდი, ხოლო სახის გართობა 690 00:30:23,590 --> 00:30:27,060 brag შესახებ, თუ როგორ გააკეთა ამ გარეშე ისევე როგორც შევცვალე დამატებითი ცვლადი, 691 00:30:27,060 --> 00:30:28,640 ეს არ არის ყველა, რომ მყარი. 692 00:30:28,640 --> 00:30:31,619 იმის გამო, რომ გადარჩენა 32 ბიტი, რადგან იმ შემთხვევაში, თუ ფაქტობრივი int, 693 00:30:31,619 --> 00:30:33,410 არ არის ყველა, რომ მყარი სისტემა, სადაც 694 00:30:33,410 --> 00:30:36,722 თქვენ შეიძლება გამოყენებით ათობით მბ ან კიდევ უფრო ასეთი მეხსიერება ამ დღეებში. 695 00:30:36,722 --> 00:30:38,680 და სინამდვილეში, როდესაც ჩვენ ვიღებთ მოგვიანებით პრობლემა კომპლექტი 696 00:30:38,680 --> 00:30:41,010 და თქვენ განახორციელოს მართლწერის ქვა და თქვენ 697 00:30:41,010 --> 00:30:43,550 უნდა დადგა ამის გაკეთება ეს, როგორც პატარა, RAM და როგორც პატარა, 698 00:30:43,550 --> 00:30:46,820 დრო მალე კომპიუტერში თქვენ ჯერ კიდევ 699 00:30:46,820 --> 00:30:50,160 ერთი კვირის განახორციელოს it-- თქვენ ჰქონდეს თქვენ უნდა 700 00:30:50,160 --> 00:30:51,799 გასაჩივრებული მინიმუმამდე იმ რესურსებს. 701 00:30:51,799 --> 00:30:53,840 და ეს მართლაც მხოლოდ შემთხვევა ამ სემესტრში 702 00:30:53,840 --> 00:30:57,940 სადაც თქვენ უნდა წახალისება shave off კი საუკეთესო შესრულება 703 00:30:57,940 --> 00:30:59,340 ღირს სხვაგვარად. 704 00:30:59,340 --> 00:31:02,200 >> ასე რომ, what-- როგორ შეგვიძლია ვხედავ ამ ფაქტობრივი კოდი? 705 00:31:02,200 --> 00:31:04,530 ნება მომეცით წავიდეთ წინ ახლა და გახსენით მაგალითად 706 00:31:04,530 --> 00:31:07,700 რომ განზრახ ეწოდება არარის Swap რადგან ეს არ არის 707 00:31:07,700 --> 00:31:10,670 ფაქტობრივად სვოპ ცვლადები როგორც თქვენ რეალურად შეიძლება ველოდოთ. 708 00:31:10,670 --> 00:31:12,260 მოდით შევხედოთ. 709 00:31:12,260 --> 00:31:17,050 აი პროგრამა, რომელიც არ CS50 ბიბლიოთეკა მიმდინარეობს, მხოლოდ სტანდარტული I / O. 710 00:31:17,050 --> 00:31:19,560 ახლა ჩვენ გვაქვს პროტოტიპი for swap up დაბრუნება, რომელიც მხოლოდ 711 00:31:19,560 --> 00:31:21,540 იმას ნიშნავს, რომ რაღაც უნდა იყოს განსაზღვრული მოგვიანებით. 712 00:31:21,540 --> 00:31:22,550 აქ არის მთავარი. 713 00:31:22,550 --> 00:31:26,000 >> მე თვითნებურად ენიჭება x და y, შესაბამისად, ფასეულობები ერთი და ორი 714 00:31:26,000 --> 00:31:28,590 მხოლოდ იმიტომ, რომ ისინი მცირე და ადვილი ვიფიქროთ. 715 00:31:28,590 --> 00:31:32,280 და მერე უბრალოდ აქვს რამოდენიმე printfs სადაც მე მაქვს საღი აზრის ქვითარი. x 1 716 00:31:32,280 --> 00:31:35,110 და Y არის 2, სავარაუდოდ, რა იმ printfs იტყვის. 717 00:31:35,110 --> 00:31:36,530 ასე რომ, არ არსებობს ჯადოსნური დღემდე. 718 00:31:36,530 --> 00:31:40,100 >> ამის შემდეგ მე ვაპირებ მოითხოვოს ერთად ბეჭდვა def, შევცვალე dot dot dot. 719 00:31:40,100 --> 00:31:43,730 მე ვაპირებ მოვუწოდო swap ფუნქცია, გადადის x და y. 720 00:31:43,730 --> 00:31:47,350 და მოდით ვივარაუდოთ, ახლა, რომ swap ხორციელდება ზუსტად 721 00:31:47,350 --> 00:31:49,930 როგორც ეს იყო მომენტი წინ დროებითი ცვლადი. 722 00:31:49,930 --> 00:31:52,670 ასე რომ, მე კი აცხადებენ, თამამად, გაცვალეს. 723 00:31:52,670 --> 00:31:55,429 x არის ეს და y არის, რომ. 724 00:31:55,429 --> 00:31:57,220 მაგრამ ფაილი, რა თქმა უნდა, ეწოდება არარის გაცვლა. 725 00:31:57,220 --> 00:31:58,678 მოდით რეალურად ვნახოთ, რა მოხდება. 726 00:31:58,678 --> 00:32:04,450 თუ მე კომპილაციის არ swap და შემდეგ ამის ./noswap, x 1, y 2. 727 00:32:04,450 --> 00:32:05,770 შევცვალე გაცვალეს. 728 00:32:05,770 --> 00:32:07,200 x 1, y 2. 729 00:32:07,200 --> 00:32:11,980 ასე რომ, ეს, ფაქტობრივად, როგორც ჩანს, ყალბი კი მიუხედავად იმისა, რომ swap-- მოდით გადახვევა ქვემოთ, ახლა 730 00:32:11,980 --> 00:32:16,542 ხორციელდება ზუსტად პოსტი კოდი შევთავაზე მომენტში წინ. 731 00:32:16,542 --> 00:32:19,000 ასე რომ, ჩვენ არ ვაპირებთ, რომ მიიღოთ ლამაზი ერთად XOR პერსონალის ახლა. 732 00:32:19,000 --> 00:32:21,890 ეს, ძალიან, უნდა იმუშაოს მხოლოდ როგორიცაა რძე და OJ, 733 00:32:21,890 --> 00:32:25,820 მაგრამ ეს არ ჩანს, სამუშაო. 734 00:32:25,820 --> 00:32:27,180 >> ასე რომ, მოდით ეს კიდევ ერთხელ გავაკეთოთ. 735 00:32:27,180 --> 00:32:29,310 იქნებ მე უბრალოდ არ იყო გაშვებული უფლება. 736 00:32:29,310 --> 00:32:32,010 მოდით აწარმოებს არარის Swap ერთხელ. 737 00:32:32,010 --> 00:32:32,900 იქნებ არ მე არ. 738 00:32:32,900 --> 00:32:34,400 ასე რომ, ეს უბრალოდ არ მუშაობს. 739 00:32:34,400 --> 00:32:36,060 ასე რომ მოდით ცოტა საღი აზრის ქვითარი. 740 00:32:36,060 --> 00:32:39,690 ნება მომეცით წავიდეთ წინ აქ Swap და უბრალოდ დაამატოთ, დაველოდოთ წუთში, 741 00:32:39,690 --> 00:32:43,856 ის არის% i / n და მოდით plug-in ღირებულება. 742 00:32:43,856 --> 00:32:45,730 იმის გამო, რომ მე ნამდვილად მინდა ვნახოთ, რა ხდება. 743 00:32:45,730 --> 00:32:47,570 და მართლაც, ეს არის გამართვის ტექნიკა 744 00:32:47,570 --> 00:32:50,028 რომ თქვენ შეიძლება გამოყენებით სამუშაო საათებში ან სახლში, უკვე, 745 00:32:50,028 --> 00:32:53,560 akin რომ პირველ ნახევარში Dan Armendariz ს ვიდეო pset3 746 00:32:53,560 --> 00:32:56,870 სადაც ჩვენ გააცნო ბეჭდვითი def, როგორც რეკომენდირებული ტექნიკით, მინიმუმ 747 00:32:56,870 --> 00:32:58,080 მარტივი შემთხვევაში. 748 00:32:58,080 --> 00:33:01,720 ნება მომეცით წავიდეთ წინ და აწარმოებს არ swap ერთხელ, ./noswap. 749 00:33:01,720 --> 00:33:04,370 750 00:33:04,370 --> 00:33:05,840 >> საინტერესოა. 751 00:33:05,840 --> 00:33:11,670 ასე რომ შეამჩნია, რაც, როგორც ჩანს, უნდა იყოს ნამდვილი. x 1, y არის 2, მაგრამ არის 2, როდესაც ბ 1. 752 00:33:11,670 --> 00:33:16,790 ასე რომ, ეს ორი რატომღაც გაცვალეს მაგრამ x და y არ მიღების გაცვალეს. 753 00:33:16,790 --> 00:33:21,090 ასე რომ იყოს ნათელი, თუ რა ხდება არის, აქ მაქვს x და y 754 00:33:21,090 --> 00:33:25,380 და იმ ცვლადები ადგილობრივი წელს ფარგლებს მთავარი, მე გავლით x და y 755 00:33:25,380 --> 00:33:26,170 სვოპ. 756 00:33:26,170 --> 00:33:29,080 ახლა, მოკლე, როგორც ცალკეული ფუნქცია, არის მოვუწოდებთ მისი არგუმენტები 757 00:33:29,080 --> 00:33:30,590 ან მისი პარამეტრები, რაც სურს. 758 00:33:30,590 --> 00:33:33,280 Foo ან ბარი ან x ან y ან ან ბ. 759 00:33:33,280 --> 00:33:36,870 უბრალოდ ნათელი, რომ ისინი არ არის იდენტური x და y per se, 760 00:33:36,870 --> 00:33:38,020 მე უკვე აღვნიშნე, და ბ. 761 00:33:38,020 --> 00:33:40,040 მაგრამ ჩვენ შეგვიძლია მოვუწოდებთ მათ არაფერი გვინდა. 762 00:33:40,040 --> 00:33:43,960 >> ასე რომ, ეს ჰგავს swap მიმდინარეობს გავიდა 763 00:33:43,960 --> 00:33:48,980 რომ X AKA a-- და ეს მიმდინარეობს გავიდა y-- AKA ბ. 764 00:33:48,980 --> 00:33:51,900 რატომღაც ამ სამი ხაზები შევცვალე იმ ღირებულებებს ზუსტად 765 00:33:51,900 --> 00:33:53,510 ლორენ გააკეთა რძე და OJ. 766 00:33:53,510 --> 00:33:56,010 მაგრამ, როდესაც ჩვენ დაბეჭდვა ღირებულებები, და ბ 767 00:33:56,010 --> 00:34:01,340 მართლაც სვოპ მაგრამ x და y არ გვაქვს ცვლილება მათ. 768 00:34:01,340 --> 00:34:03,150 შეგახსენებთ, რომ x და y არის აქ. 769 00:34:03,150 --> 00:34:05,320 >> ასე რომ, ჩვენ ვხედავთ ამ გავლით სხვა ტექნიკა, ისევე. 770 00:34:05,320 --> 00:34:08,110 ესეც ტექნიკა ჩართული პრობლემა კომპლექტი სამი. 771 00:34:08,110 --> 00:34:10,780 მოდით წავიდეთ წინ და ამის გაკეთება CS50 ID, თუ თქვენ არ უკვე. 772 00:34:10,780 --> 00:34:13,730 მარჯვენა მხარეს აქვს ამ Debugger tab. 773 00:34:13,730 --> 00:34:16,159 და თუ გახსნა up, არსებობს რამდენიმე arcane ინფორმაცია 774 00:34:16,159 --> 00:34:17,530 რომ ესროლეს თქვენ თავდაპირველად. 775 00:34:17,530 --> 00:34:19,310 მაგრამ მოდით აჯავრებენ ამ გარდა რეალური სწრაფად. 776 00:34:19,310 --> 00:34:21,620 >> ასე რომ, ერთი ხედავთ ადგილობრივი ცვლადები. 777 00:34:21,620 --> 00:34:26,230 გამოდის, რომ ავაშენოთ შევიდა CS50 IDE, და ბევრი პროგრამირების გარემოში მეტი 778 00:34:26,230 --> 00:34:28,060 ზოგადად, არის debugger. 779 00:34:28,060 --> 00:34:31,340 ინსტრუმენტი, რომელიც გაძლევთ საშუალებას ვიზუალურად ვხედავ რა ხდება შიგნით თქვენი პროგრამა 780 00:34:31,340 --> 00:34:34,380 გარეშე მიმართო და დასძინა, printfs და შედგენა და გაშვებული 781 00:34:34,380 --> 00:34:37,588 და დასძინა, printf და შედგენა და გაშვებული, რომელიც უკვე საათებში 782 00:34:37,588 --> 00:34:40,070 ან სახლში, ალბათ, მიღების საკმაოდ tedious. 783 00:34:40,070 --> 00:34:43,090 >> ასე რომ, აქ, რაღაც მომენტში, ჩვენ აპირებს ვხედავ რეალურ დროში 784 00:34:43,090 --> 00:34:44,760 ღირებულებები ჩვენი ადგილობრივი ცვლადები. 785 00:34:44,760 --> 00:34:47,880 ჩვენ ასევე ვაპირებთ შეძლებს შექმნას რა ეწოდება breakpoints, რომელიც 786 00:34:47,880 --> 00:34:52,570 შესაძლებლობები, ჩემი პროგრამა პაუზის აღსრულების კონკრეტული ხაზი კოდი 787 00:34:52,570 --> 00:34:53,710 რომ მე ვარ ცნობისმოყვარე. 788 00:34:53,710 --> 00:34:54,210 მარჯვენა? 789 00:34:54,210 --> 00:34:55,969 ეს პროგრამები აწარმოებს გაყოფილი მეორე. 790 00:34:55,969 --> 00:35:00,450 ეს არის სახის ლამაზი ჩვენთვის ნელა ადამიანები შეძლებს პაუზის მიიღოს მომენტში, ვხედავ 791 00:35:00,450 --> 00:35:02,380 რა ხდება გარშემო გარკვეული ხაზი კოდი 792 00:35:02,380 --> 00:35:05,050 გარეშე პროგრამის ხვნა მეშვეობით და დამთავრებული მთლიანად. 793 00:35:05,050 --> 00:35:08,510 ასე რომ, breakpoints აპირებს საშუალებას მოგვცემს შესვენება და პაუზის გარკვეული თვალსაზრისით. 794 00:35:08,510 --> 00:35:12,990 >> Call დასტის არის ლამაზი გზა იმით, თუ რა ფუნქციები გაკეთებული 795 00:35:12,990 --> 00:35:14,140 მიმდინარეობს მოუწოდა მომენტში. 796 00:35:14,140 --> 00:35:15,370 მთავარი ყოველთვის ე.წ. პირველი. 797 00:35:15,370 --> 00:35:17,230 მაგრამ თუ მთავარი უწოდებს ფუნქცია მოუწოდა Swap, 798 00:35:17,230 --> 00:35:20,470 ჩვენ რეალურად აპირებს, რომ ეს კოშკი ფუნქციები, რომელიც არ ყოფილა 799 00:35:20,470 --> 00:35:22,400 მოუწოდა ქრონოლოგიურად. 800 00:35:22,400 --> 00:35:23,310 ასე რომ, ვნახოთ, რომ. 801 00:35:23,310 --> 00:35:24,327 >> მე ვაპირებ დააშორებს. 802 00:35:24,327 --> 00:35:25,660 მე ვაპირებ დავუბრუნდე ჩემს კოდი. 803 00:35:25,660 --> 00:35:27,540 და მხოლოდ იმიტომ, რომ მე მინდა უნდა იყოს pedantic აქ, 804 00:35:27,540 --> 00:35:31,100 მე ვაპირებ წავიდეთ წინ და დააჭირეთ მხოლოდ იმიტომ, რომ მარცხნივ ხაზი ხუთ. 805 00:35:31,100 --> 00:35:32,830 და რომელიც ქმნის წითელი dot. 806 00:35:32,830 --> 00:35:36,200 და შენიშნავს, მარჯვენა მხარეს რომ debugger იცის, hey, 807 00:35:36,200 --> 00:35:41,020 მე უბრალოდ ვთქვი, breakpoint დროს noswap.c ხაზი ხუთ, კონკრეტულად 808 00:35:41,020 --> 00:35:42,480 ამ ხაზი კოდი. 809 00:35:42,480 --> 00:35:45,090 ასე რომ, debugger იცის, რომ მე მოითხოვა, რომ მომავალი დრო 810 00:35:45,090 --> 00:35:48,530 მე მაქვს პროგრამა პაუზის აღსრულების არსებობს, ვიდრე უბრალოდ 811 00:35:48,530 --> 00:35:50,390 გაშვებული მთელი რამ სუპერ სწრაფი. 812 00:35:50,390 --> 00:35:53,889 >> ასე რომ, ახლა მე ვაპირებ დააჭირეთ Debug ღილაკს ძალიან ზევით IDE 813 00:35:53,889 --> 00:35:55,430 და რომ აპირებს ამის შემდეგ. 814 00:35:55,430 --> 00:36:00,680 ის აპირებს გახსნას თავდაპირველად გარკვეულწილად საშინელი ეძებს მეორე ტერმინალის ფანჯარა 815 00:36:00,680 --> 00:36:02,679 დისტანციური გამართვის საწყისი ჩაატაროს ასეთი და such-- 816 00:36:02,679 --> 00:36:04,970 და ჩვენ დავბრუნდებით, თუ რა ეს ნიშნავს, რომ ხანგრძლივი. 817 00:36:04,970 --> 00:36:09,020 მაგრამ, რაც მთავარია, ახლა ის არის, რომ წითელი dot მოხვდა, 818 00:36:09,020 --> 00:36:11,735 debugger აქვს შეგნებულად ათვისება execution-- 819 00:36:11,735 --> 00:36:15,560 არა, რომ ხაზი თავისთავად მაგრამ პირველი ხაზის ფაქტობრივი კოდი რომ ფუნქცია. 820 00:36:15,560 --> 00:36:18,040 ამიტომაც არის, რომ ხაზი შვიდი ახლა მონიშნულია ყვითელი. 821 00:36:18,040 --> 00:36:20,550 >> და ახლა მოდით შევხედოთ ზე მარჯვენა მხარეს. 822 00:36:20,550 --> 00:36:27,300 როგორც ჩანს, რომ, ჩვეულებრივ, ლამაზად საკმარისი, x აქვს, თუ რა მნიშვნელობა? 823 00:36:27,300 --> 00:36:27,860 0. 824 00:36:27,860 --> 00:36:29,750 და y აქვს, თუ რა მნიშვნელობა? 825 00:36:29,750 --> 00:36:30,410 Zero. 826 00:36:30,410 --> 00:36:35,540 და ეს უნდა იყოს სავარაუდოდ იმ გაგებით, რომ x და y-- რომ ყვითელი ხაზი აქვს 827 00:36:35,540 --> 00:36:36,770 არ შესრულებულა. 828 00:36:36,770 --> 00:36:38,510 ასე რომ, x არ უნდა ჰქონდეს მნიშვნელობა 1. 829 00:36:38,510 --> 00:36:41,470 ეს შეიძლება რაიმე სხვა მნიშვნელობა, ე.წ. ნაგვის ღირებულება. 830 00:36:41,470 --> 00:36:44,320 და მივიღეთ გაუმართლა, რომ ის ნულოვანი, ამ ეტაპზე, არსებითად. 831 00:36:44,320 --> 00:36:46,400 >> ასე რომ, ახლა იქ მხოლოდ რამდენიმე ღილაკები, ჩვენ უნდა ვიზრუნოთ 832 00:36:46,400 --> 00:36:48,100 შესახებ, როდესაც გამართვის ამ გზით. 833 00:36:48,100 --> 00:36:49,970 გაითვალისწინეთ, აქ, ჩვენ გვაქვს Play ღილაკს. 834 00:36:49,970 --> 00:36:51,877 და თუ ჩვენ ითამაშოს ან მოხვდა განაახლონ, რომ მხოლოდ 835 00:36:51,877 --> 00:36:53,710 აპირებს მეშვეობით დანარჩენი პროგრამა 836 00:36:53,710 --> 00:36:55,300 ან სანამ გაიტანა კიდევ ერთი breakpoint. 837 00:36:55,300 --> 00:36:56,910 მაგრამ მე არ რაიმე სხვა breakpoints ისე უბრალოდ 838 00:36:56,910 --> 00:36:58,118 აპირებს მეშვეობით ბოლომდე. 839 00:36:58,118 --> 00:37:00,280 ასეთი სახის დაამარცხა მიზნით გააღიზიანოს გარშემო. 840 00:37:00,280 --> 00:37:03,290 >> ასე რომ, ნაცვლად, მე აინტერესებს ეს ხატები უფლება. 841 00:37:03,290 --> 00:37:05,360 და თუ hover მათ, როგორც თქვენ უნდა ძალიან, 842 00:37:05,360 --> 00:37:07,450 დაინახავთ პატარა tips-- ინსტრუმენტი რჩევები. 843 00:37:07,450 --> 00:37:09,020 ეს არის გადადგას მეტი. 844 00:37:09,020 --> 00:37:11,290 ახლა, არ ნიშნავს იმას, skip შემდეგი ხაზი კოდი. 845 00:37:11,290 --> 00:37:14,840 ეს უბრალოდ ნიშნავს, შეასრულოს ეს და გადასვლის შემდეგ, გადაადგილება, რათა მომდევნო, 846 00:37:14,840 --> 00:37:15,580 გადასვლის შემდეგ. 847 00:37:15,580 --> 00:37:17,610 სხვა სიტყვებით, მეშვეობით ღილაკს, რომ შემიძლია ფეხით 848 00:37:17,610 --> 00:37:20,390 ჩემი კოდი ერთი ნაბიჯი დროს. 849 00:37:20,390 --> 00:37:21,914 ხაზს, ფაქტიურად. 850 00:37:21,914 --> 00:37:23,830 ახლა, მარჯვნივ რომ, არსებობს კიდევ ერთი 851 00:37:23,830 --> 00:37:25,163 რომ ჩვენ დავინახავთ, რაღაც მომენტში. 852 00:37:25,163 --> 00:37:27,820 ეს არის ე.წ. ნაბიჯი Into ხატი, რომელიც არის 853 00:37:27,820 --> 00:37:30,300 აპირებს, ნება მიბოძეთ dive სხვა ფუნქცია. 854 00:37:30,300 --> 00:37:31,800 მაგრამ ვნახოთ, ეს მხოლოდ ერთი წუთით. 855 00:37:31,800 --> 00:37:33,280 ასე რომ, მე ვაპირებ დააჭირეთ გადადგას მეტი. 856 00:37:33,280 --> 00:37:35,820 და ახლა შეამჩნია, რადგან მე დააწკაპუნეთ ამ ღილაკს ზედა მარჯვენა, 857 00:37:35,820 --> 00:37:41,260 რომ თქვენი თვალები დაახლოებით ქვეშ ადგილობრივი ცვლადები და ვნახოთ, რა მოხდება x. 858 00:37:41,260 --> 00:37:44,115 x არის 1, რადგან ყვითელი ხაზი უკვე შესრულებული 859 00:37:44,115 --> 00:37:45,840 და ჩვენ გადავიდა line 8. 860 00:37:45,840 --> 00:37:49,840 და რაღაც მომენტში y უნდა იმედია გახდა 2. 861 00:37:49,840 --> 00:37:52,330 >> ახლა, არაფერი რომ საინტერესო ხდება ცოტა. 862 00:37:52,330 --> 00:37:53,390 ეს ყველაფერი არის printf. 863 00:37:53,390 --> 00:37:58,010 და შენიშნავს, ჩემი საშუალო ტერმინალის ფანჯარა, მე ვხედავ გამომავალი ბეჭდვითი დაცვა. 864 00:37:58,010 --> 00:38:01,080 და ახლა მე უნდა მიიღოს გადაწყვეტილება, როგორც პროგრამისტი. 865 00:38:01,080 --> 00:38:04,360 შემიძლია გადადგას მეტი ამ ხაზის კოდი, შესრულებაში, მაგრამ არა 866 00:38:04,360 --> 00:38:06,220 მიღების აინტერესებს, რა არის შიგნით. 867 00:38:06,220 --> 00:38:11,130 ან შემიძლია რეალურად დახევას შევიდა და წასვლა შიგნით Swap თავად. 868 00:38:11,130 --> 00:38:12,340 ასე რომ, მოდით ეს უკანასკნელი. 869 00:38:12,340 --> 00:38:15,550 >> ნება მომეცით წავიდეთ წინ და დააჭირეთ არ გადახვიდე, მაგრამ ნაბიჯი Into. 870 00:38:15,550 --> 00:38:17,300 განაცხადის, უეცრად ფანჯრის ცვლილებები 871 00:38:17,300 --> 00:38:19,330 ხაზი გავუსვა პირველი ხაზი კოდი გაცვლა. 872 00:38:19,330 --> 00:38:20,710 სწორედ line 21. 873 00:38:20,710 --> 00:38:25,220 და ახლა, რა სახის ხმაურიანი არის, რომ, თუ გადავხედავთ აქ, როგორც მოსალოდნელი იყო, 874 00:38:25,220 --> 00:38:29,720 მძიმით b არის 1 და 2, შესაბამისად. 875 00:38:29,720 --> 00:38:33,840 რატომ არის temp 32.767? 876 00:38:33,840 --> 00:38:36,560 ითვალისწინებენ რა, რომ temp, ჰგავს ცარიელი ჭიქა მომენტში წინ, 877 00:38:36,560 --> 00:38:38,980 ცხადდება აქ on line 21. 878 00:38:38,980 --> 00:38:43,390 რატომ 32,000- ვგულისხმობ, რატომ არის ეს უბრალოდ რაღაც უცნაური მნიშვნელობა? 879 00:38:43,390 --> 00:38:43,890 ჰო? 880 00:38:43,890 --> 00:38:45,190 >> აუდიტორია: ეს არ არის ინიციალიზაცია. 881 00:38:45,190 --> 00:38:46,940 >> დევიდ ჯ Malan: ეს არის არ არის ინიციალიზაცია. 882 00:38:46,940 --> 00:38:49,370 ასე რომ, ჩვენი კომპიუტერი ყოველთვის აქვს ფიზიკური მეხსიერება. 883 00:38:49,370 --> 00:38:50,544 იგი ყოველთვის ფიზიკური RAM. 884 00:38:50,544 --> 00:38:52,710 და იქ ყოველთვის ნულის ს და ერთი იქ, არა? 885 00:38:52,710 --> 00:38:54,626 იმის გამო, რომ ჩვენ ვიყენებთ ჩვენი კომპიუტერული მთელი დღის განმავლობაში, 886 00:38:54,626 --> 00:38:57,210 თქვენ იყენებთ CS50 IDE ან სერვერების მთელი დღის განმავლობაში. 887 00:38:57,210 --> 00:39:01,159 ასე რომ, RAM ან აქვს გარკვეული zeros და ზოგიერთი ერთი ან რამდენიმე zeros და პირობა. 888 00:39:01,159 --> 00:39:02,950 არ აქვს მნიშვნელობა, თუ არა თქვენ იყენებთ მათ. 889 00:39:02,950 --> 00:39:05,270 თქვენ არ შეგიძლიათ უბრალოდ ცარიელი ფართები, სადაც გსურთ ბიტი. 890 00:39:05,270 --> 00:39:06,850 ისინი ან zeros და პირობა. 891 00:39:06,850 --> 00:39:09,610 >> გამოდის, რომ დროებითი, რადგან ჩვენ არ ინიციალიზაცია ამაზე, 892 00:39:09,610 --> 00:39:14,580 ჩვენ იმ 32 ბიტი, მაგრამ ისინი არ ინიციალიზაცია ნებისმიერი ცნობილი ღირებულებებს. 893 00:39:14,580 --> 00:39:18,110 ასე რომ, რასაც ისინი ყველაზე ბოლო დროს გამოყენებული for-- იმ 32 ბიტი 894 00:39:18,110 --> 00:39:23,000 ჩვენ უბრალოდ ხედავს ნიმუშებს ზოგიერთი წინა გამოყენება იმ კონკრეტულ 32 895 00:39:23,000 --> 00:39:23,500 ბიტი. 896 00:39:23,500 --> 00:39:27,780 როგორც კი დააჭირეთ გადახვიდე, თუმცა, phew, temp აპირებს მიიღოს ღირებულება 1. 897 00:39:27,780 --> 00:39:31,600 და თუ მე ამის გაკეთება კიდევ ერთხელ, არის უნდა მიეცეს ღირებულება 2 898 00:39:31,600 --> 00:39:33,830 და შემდეგ ბ აპირებს მიეცეს ღირებულება 1. 899 00:39:33,830 --> 00:39:36,390 >> ასე რომ, რა ლამაზი ახლა ამ ეტაპზე ამბავი 900 00:39:36,390 --> 00:39:39,750 ის არის, რომ debugger არის მაჩვენებდა, სუპერ ნელა 901 00:39:39,750 --> 00:39:42,640 ჩემი საკუთარი ტემპით, რა სახელმწიფო Swap არის. 902 00:39:42,640 --> 00:39:47,490 მაგრამ შეამჩნია ზედა აქ, ცნობა რომ სტეკი რეალურად 903 00:39:47,490 --> 00:39:49,180 აქვს ორი ფენების მას. 904 00:39:49,180 --> 00:39:53,240 ახლა ერთი, რომ განიხილება, როგორც გაცვლა, თუ მე დააწკაპუნეთ მთავარი ნაცვლად, 905 00:39:53,240 --> 00:39:57,100 შეამჩნევთ, თუ როგორ ადგილობრივი ცვლადები შეცვლა რადგან დეველოპერი შეგიძლიათ უბრალოდ hop 906 00:39:57,100 --> 00:39:59,740 გარშემო და წასვლას რაიმე განსხვავებული ფარგლებს. 907 00:39:59,740 --> 00:40:04,070 ასე რომ, მიუხედავად იმისა, რომ ჩვენ ვაკეთებთ ყველა ამ მუშაობა და სწორად შევცვალე და ბ, 908 00:40:04,070 --> 00:40:09,080 თუ მე დაბრუნდეს და მეოთხე შორის Swap სადაც არის 2 და b არის 1 და მთავარი, 909 00:40:09,080 --> 00:40:11,851 აქვს მთავარი იქნა დაზარალებულ ყველა? 910 00:40:11,851 --> 00:40:12,350 No. 911 00:40:12,350 --> 00:40:13,930 ასე რომ, რა takeaway აქ? 912 00:40:13,930 --> 00:40:18,200 ისე, გამოდის, რომ ნებისმიერ დროს თქვენ მოვუწოდებთ ფუნქცია, როგორიცაა Swap, 913 00:40:18,200 --> 00:40:21,600 და თქვენ გაივლის ის არგუმენტები, თუ რა თქვენ გავლის Swap ფუნქცია 914 00:40:21,600 --> 00:40:24,730 ამ შემთხვევაში ასლი იმ არგუმენტებს. 915 00:40:24,730 --> 00:40:28,620 ასე რომ, თუ x და y თითოეულ შესაბამისად 32 ბიტი, რა Swap დღითიდღე 916 00:40:28,620 --> 00:40:30,760 ორი ადგილობრივი ცვლადები, ან არგუმენტები, 917 00:40:30,760 --> 00:40:34,380 მოუწოდა და ბ, მაგრამ ეს არის თვითნებური names-- მაგრამ ნიმუში zeros 918 00:40:34,380 --> 00:40:39,520 და პირობა შიგნით და ბ არის გაფორმებულია იდენტური იყოს x და y 919 00:40:39,520 --> 00:40:42,610 მაგრამ ისინი არ არიან იგივე მნიშვნელობა, როგორც x და y. 920 00:40:42,610 --> 00:40:46,880 >> ეს თითქოს მთავარი აქვს თავისი ნაჭერი ქაღალდის ნომერი 1 და 2 x და y, 921 00:40:46,880 --> 00:40:49,260 და მაშინ, როდესაც მას ხელში რომ ნაჭერი ქაღალდი სვოპ, 922 00:40:49,260 --> 00:40:51,970 Swap ძალიან სწრაფად იღებს საკუთარი კალამი, წერს ქვემოთ 923 00:40:51,970 --> 00:40:56,240 1 და 2 საკუთარი ფურცელზე, ხელები უკან ორიგინალური xy მთავარი 924 00:40:56,240 --> 00:40:58,790 და შემდეგ აკეთებს საკუთარი რამ და ბ. 925 00:40:58,790 --> 00:41:01,940 და ეს არის სუპერ მნიშვნელოვანია, რადგან ეს nontrivial შედეგებზე 926 00:41:01,940 --> 00:41:06,260 რეალურად წერა სწორი კოდი იმიტომ, რომ, როგორც ჩანს, ჩვენ ვერ სვოპ 927 00:41:06,260 --> 00:41:07,500 ორი ცვლადი. 928 00:41:07,500 --> 00:41:09,150 >> მე არ გაუკეთებია სწორი Swap ფუნქცია. 929 00:41:09,150 --> 00:41:12,770 ჩვენ განხორციელებული ეს Lauren, როგორც სწორი swap ფუნქცია რეალურად, 930 00:41:12,770 --> 00:41:16,700 მაგრამ როგორც ჩანს, არც ერთი, რომ საკითხებზე, თუ თქვენ არ შეუძლია რეალურად 931 00:41:16,700 --> 00:41:19,530 მოკლე ორ ღირებულებების მუდმივად. 932 00:41:19,530 --> 00:41:21,970 ასე რომ, ჩვენ გვჭირდება კიდევ ერთი გზა რეალურად მიიღოთ ამ, 933 00:41:21,970 --> 00:41:24,472 და ჩვენ უნდა შეძლებს რეალურად ამ პრობლემის მოგვარებას. 934 00:41:24,472 --> 00:41:27,180 და თურმე out-- და ჩვენ მოვალთ უკან ამ კონკრეტულ სურათი 935 00:41:27,180 --> 00:41:30,500 ადრე long-- ეს არის ერთი გზა, რომ თქვენ შეიძლება შევაჩერო თქვენი კომპიუტერის მეხსიერებაში. 936 00:41:30,500 --> 00:41:31,460 ეს არის უბრალოდ მართკუთხედი. 937 00:41:31,460 --> 00:41:32,960 თქვენ შეიძლება შევაჩერო ეს ნებისმიერი რიგი გზები, მაგრამ ეს 938 00:41:32,960 --> 00:41:35,740 მოსახერხებელი მიაპყროს, როგორც ოთხკუთხედი შემდეგი მიზეზის გამო. 939 00:41:35,740 --> 00:41:40,040 >> ჩვენ ვაპირებთ, რომ დაიწყოს დღეს და მის ფარგლებს გარეთ ვსაუბრობთ ე.წ. დასტის. 940 00:41:40,040 --> 00:41:43,870 და დასტის მხოლოდ ბლოკი საქართველოს RAM-- რომ ბლოკი მეხსიერება 941 00:41:43,870 --> 00:41:47,100 რომ ფუნქციები აქვს დაშვება მაშინ, როდესაც ისინი მოუწოდა. 942 00:41:47,100 --> 00:41:49,800 ასე რომ, გამოდის, რომ ძალიან ბოლოში ამ დასტის 943 00:41:49,800 --> 00:41:53,590 სადაც ყველა ძირითადი ლოკალური ცვლადების და ორგ C და org V და ყველა რომ პერსონალი 944 00:41:53,590 --> 00:41:56,950 ვაპირებთ წასვლა იყოს. და თუ მთავარი მოუწოდებს სხვა ფუნქცია, როგორიცაა Swap, 945 00:41:56,950 --> 00:42:00,330 ასევე, Swap აპირებს კიდევ ერთი ფენის მეხსიერება up ზემოთ. 946 00:42:00,330 --> 00:42:04,490 >> ასე რომ, მხოლოდ იმიტომ, რომ გადმოგცეთ სწრაფი ზედაპირული სურათი, თუ მე აქ 947 00:42:04,490 --> 00:42:09,450 და ნება მომეცით სარკისებური ამ წლის ოვერჰედის well-- რა მაქვს, 948 00:42:09,450 --> 00:42:12,100 თუ ჩვენ ვზრუნავთ მხოლოდ შესახებ ბოლოში ამ სურათზე ახლა, 949 00:42:12,100 --> 00:42:15,070 ის არის, რომ როდესაც მე აწარმოებს პროგრამა და მთავარი იღებს მოუწოდა, 950 00:42:15,070 --> 00:42:18,330 მთავარი ეძლევა ბლოკი RAM ჩემი კომპიუტერი, 951 00:42:18,330 --> 00:42:20,060 ბოლოში ამ ე.წ. დასტის. 952 00:42:20,060 --> 00:42:22,143 და მე ვაპირებ შევაჩერო ეს შეგნებულად, როგორც მოედანზე. 953 00:42:22,143 --> 00:42:24,540 ასე რომ, 32 ბიტი ან ოთხი ბაიტი. 954 00:42:24,540 --> 00:42:28,790 და თუ ეს მთავარი ფუნქცია აქვს ცვლადში x ღირებულება 1 955 00:42:28,790 --> 00:42:32,626 და მას აქვს ცვლადში y ღირებულება 2, 956 00:42:32,626 --> 00:42:35,750 როგორც აღების ამ კუთხეში მეხსიერება, მთავარი მიეცა მიერ ოპერაციული 957 00:42:35,750 --> 00:42:38,850 სისტემა და გამყოფი ეს ისე, რომ პირველი ადგილობრივი ცვლადი მიდის აქ, 958 00:42:38,850 --> 00:42:40,930 მეორე მიდის აქ, და ეს არის. 959 00:42:40,930 --> 00:42:45,590 >> როდესაც მთავარი მოუწოდებს swap, Swap იღებს საკუთარი ნაჭერი მეხსიერება 960 00:42:45,590 --> 00:42:48,280 ის, რომ ჩვენ მიაპყროს მოსწონს ეს ოპერაციული სისტემა, 961 00:42:48,280 --> 00:42:50,820 და ის აპირებს თავისი საკუთარი ადგილობრივი ცვლადები დაფუძნებული 962 00:42:50,820 --> 00:42:53,825 ჩვენს განხორციელების ადრე ადგილობრივი ცვლადის 963 00:42:53,825 --> 00:42:58,010 და ბ, რომ თავდაპირველად მიიღეთ ღირებულებების 1 და 2. 964 00:42:58,010 --> 00:43:00,450 მაგრამ შემდეგ, როგორც კი სვოპ კოდი ახორციელებს, 965 00:43:00,450 --> 00:43:03,760 და ლორენ რეალურად სვოპების OJ და რძე, რა ხდება? 966 00:43:03,760 --> 00:43:09,030 ისე, ეს 2 ხდება 1, ამ 1 ხდება 2, და, სხვათა შორის, 967 00:43:09,030 --> 00:43:13,360 არ არის დროებითი ცვლადი, რომელიც მიმდინარეობს გამოიყენება, რომ მთელი დრო, რომ საბოლოოდ 968 00:43:13,360 --> 00:43:14,470 მიდის. 969 00:43:14,470 --> 00:43:16,720 მაგრამ ამას მნიშვნელობა არ აქვს რამდენად მუშაობას თქვენ 970 00:43:16,720 --> 00:43:22,160 ამ ხაზის of-- ამ მეხსიერების სივრცე, x და y სრულიად ხელშეუხებელი. 971 00:43:22,160 --> 00:43:26,320 >> ასე რომ, ჩვენ გვჭირდება გარკვეული გზა მინიჭების Swap და ფუნქციები, როგორც ეს 972 00:43:26,320 --> 00:43:32,640 საიდუმლო ხელმისაწვდომობა, თუ გნებავთ, ფუნქციები მოსწონს, რომ მეხსიერებაში, როგორიც x და y. 973 00:43:32,640 --> 00:43:35,110 მოდით შევხედოთ მაგალითად, რომელიც ეხმარება 974 00:43:35,110 --> 00:43:38,220 ვნახოთ, თუ ზუსტად რა იყო ხდება ამ მთელი დრო. 975 00:43:38,220 --> 00:43:40,284 მე ვაპირებ წავიდეთ წინ და გახსენით შეადარეთ Zero. 976 00:43:40,284 --> 00:43:42,200 და მე ვაპირებ დახურვა ჩვენი debugger, მე ვაპირებ 977 00:43:42,200 --> 00:43:44,360 დახურვა საშინელი ეძებს გაგზავნა უბრალოდ ამბობს, დაველოდოთ წუთში, 978 00:43:44,360 --> 00:43:45,800 თქვენ შუა debugging. 979 00:43:45,800 --> 00:43:48,383 მე ვაპირებ დამალვას tab აქ უბრალოდ დაბრუნდეს სიმარტივე. 980 00:43:48,383 --> 00:43:50,160 ასე რომ არ ინერვიულოთ თუ GDB მოკლეს. 981 00:43:50,160 --> 00:43:53,910 ეს მხოლოდ იმას ნიშნავს, რომ პროგრამა აქვს უკვე დატოვა, შეგნებულად ამ შემთხვევაში, 982 00:43:53,910 --> 00:43:54,820 ჩემს მიერ. 983 00:43:54,820 --> 00:43:57,700 >> ახლა შეადარეთ Zero ამას. 984 00:43:57,700 --> 00:44:00,110 მე გამოყენებით CS50 ბიბლიოთეკა სტანდარტული I / O. 985 00:44:00,110 --> 00:44:04,319 მაქვს ძირითადი ფუნქცია, რომელიც პირველი ამბობს, ამბობენ, რომ რაღაც, და იღებს სიმებიანი. 986 00:44:04,319 --> 00:44:06,110 მაშინ ამბობს, რომ ერთხელ და იღებს სხვა სიმებიანი. 987 00:44:06,110 --> 00:44:09,910 და შენიშნავს, რომ ამ ორი სიმები უწოდებენ და ტ, შესაბამისად. 988 00:44:09,910 --> 00:44:12,910 და ახლა ამ პროგრამის შეადარეთ Zero, მისი მიზანი ცხოვრებაში, 989 00:44:12,910 --> 00:44:15,470 ის უნდა მითხრათ, არც მე აკრიფოთ იგივე? 990 00:44:15,470 --> 00:44:16,910 ასე რომ, მე ვაპირებ უკან კვირაში ერთი. 991 00:44:16,910 --> 00:44:19,950 მე გამოყენებით ჩემი თანაბარი თანაბარი ოპერატორი რომელიც ხარისხის ოპერატორს. 992 00:44:19,950 --> 00:44:22,220 არ დავალება ოპერატორი, თანასწორობის ოპერატორს. 993 00:44:22,220 --> 00:44:23,890 მე უბრალოდ შედარება და ტ. 994 00:44:23,890 --> 00:44:27,470 >> მოდით რეალურად წავიდეთ წინ და ამის გაკეთება. 995 00:44:27,470 --> 00:44:32,680 და მე ვაპირებ წავიდეთ წინ და შეადარეთ Zero. 996 00:44:32,680 --> 00:44:35,110 მე ვაპირებ ამის ./comparezero. 997 00:44:35,110 --> 00:44:37,150 და მე ვაპირებ წასვლა წინ და ვთქვათ რაღაც 998 00:44:37,150 --> 00:44:43,450 მოსწონს, მოდით დედა ამას და რა დედა ზედა. 999 00:44:43,450 --> 00:44:45,034 და რა თქმა უნდა მე აკრიფოთ სხვადასხვა რამ. 1000 00:44:45,034 --> 00:44:45,533 ყველა უფლება. 1001 00:44:45,533 --> 00:44:46,570 ეს არის ის, რომ უნდა ველოდოთ. 1002 00:44:46,570 --> 00:44:47,640 >> მოდით გაუშვით ერთხელ. 1003 00:44:47,640 --> 00:44:49,740 ორივე შემთხვევაში გააკეთებს ამას, ამას. 1004 00:44:49,740 --> 00:44:51,490 ეს გამოიყურება სუპერ იდენტური ჩემთვის. 1005 00:44:51,490 --> 00:44:52,930 შეიტანეთ. 1006 00:44:52,930 --> 00:44:53,430 OK. 1007 00:44:53,430 --> 00:44:55,804 იქნებ ეს უბრალოდ უცნაურია, რადგან ეს არ მოსწონს ჩემი გრამატიკა. 1008 00:44:55,804 --> 00:44:59,930 ასე რომ მოდით კაპიტალის დედა, კაპიტალის დედა, იდენტურია. 1009 00:44:59,930 --> 00:45:01,490 სხვა რამ. 1010 00:45:01,490 --> 00:45:03,907 >> რატომ არის, რომ? 1011 00:45:03,907 --> 00:45:06,240 ისე, რა რეალურად მიმდინარეობს ქვეშ hood აქ? 1012 00:45:06,240 --> 00:45:08,180 მოდით დავუბრუნდეთ მეტი აქ მხოლოდ ერთი წუთით 1013 00:45:08,180 --> 00:45:10,910 და რა GetString არის რეალურად აკეთებს. 1014 00:45:10,910 --> 00:45:13,385 როცა რეკავთ GetString, ეს ფუნქცია ჩვენ 1015 00:45:13,385 --> 00:45:16,510 თვითონ დაწერა და ეს რატომღაც იღებს თანმიმდევრობა გმირები შესახებ. 1016 00:45:16,510 --> 00:45:20,280 და მოდით ვივარაუდოთ, რომ პირველი დროს მე მოვუწოდებ GetString, რომელიც მაძლევს 1017 00:45:20,280 --> 00:45:21,930 ბლოკი მეხსიერება, რომელიც ასე გამოიყურება. 1018 00:45:21,930 --> 00:45:26,990 და თუ არა მე აკრეფილი ყველა ამას m-o-m-- და რა მიდის მას შემდეგ? 1019 00:45:26,990 --> 00:45:28,840 უბრალოდ სწრაფი საღი აზრის ქვითარი. 1020 00:45:28,840 --> 00:45:29,780 >> წარმატებული ნულოვანი. 1021 00:45:29,780 --> 00:45:30,510 ჩვენ ვიცით, რომ. 1022 00:45:30,510 --> 00:45:32,784 და გავიხსენოთ, რომ ჩვენ ითამაშა გარშემო Zamila სახელი 1023 00:45:32,784 --> 00:45:34,950 და რამოდენიმე სხვა სახელები როდესაც Rob იყო აქ ეძებს 1024 00:45:34,950 --> 00:45:36,280 რა ხდება შიგნით მეხსიერება. 1025 00:45:36,280 --> 00:45:37,780 ასე, რომ ამბავი ზუსტად იგივე. 1026 00:45:37,780 --> 00:45:40,160 ეს არის ის, რაც GetString უბრუნდება ჩემთვის. 1027 00:45:40,160 --> 00:45:44,780 ახლა, ჩემი კოდი მომენტში წინ ინახება დაბრუნების ღირებულება GetString 1028 00:45:44,780 --> 00:45:47,510 ცვლადში s. 1029 00:45:47,510 --> 00:45:51,390 და მაშინ მეორედ მე მას, ის ინახება ეს ცვლადში ტ. 1030 00:45:51,390 --> 00:45:55,070 >> ასე რომ, თუ მე აქ, მე უნდა მიაპყროს ამ ადგილობრივი ცვლადი 1031 00:45:55,070 --> 00:45:59,610 და მე ზოგადად აპირებს დავხატოთ სიმებიანი just-- ჩვენ გამოგიგზავნით 1032 00:45:59,610 --> 00:46:02,360 ეძახით s-- როგორც პატარა კვადრატული აქ. 1033 00:46:02,360 --> 00:46:09,760 და ახლა, რატომღაც როგორ აკეთებს დედა წასვლა შიგნით ამ ცვლადი s? 1034 00:46:09,760 --> 00:46:12,010 ასევე, ჩვენ უნდა დაბრუნდეს პირველი პრინციპი აქ. 1035 00:46:12,010 --> 00:46:15,660 რა არის GetString რეალურად დაბრუნების? 1036 00:46:15,660 --> 00:46:19,030 >> გამოდის, რომ M-O-M წარმატებული ნულოვანი, და ნებისმიერი რაოდენობის 1037 00:46:19,030 --> 00:46:22,364 სხვა სიმებისათვის მეხსიერება მოსწონს Zamila და რობ და ენდი ან რაიმე სხვა, 1038 00:46:22,364 --> 00:46:24,280 რა თქმა უნდა, ჩვენი კომპიუტერული RAM ან მეხსიერების. 1039 00:46:24,280 --> 00:46:27,760 და თქვენი RAM აქვს მოსწონს თქვენ კონცერტი of RAM, ორი gigs of RAM, 1040 00:46:27,760 --> 00:46:30,860 ან მილიარდი ან ორ მილიარდ ბაიტი, ან იქნებ კიდევ უფრო ამ დღეებში. 1041 00:46:30,860 --> 00:46:34,070 მოდით ვივარაუდოთ, დღევანდელი მიზნებისათვის, ის, რომ არ აქვს მნიშვნელობა, თუ რამდენად ჩვენ ნომერზე 1042 00:46:34,070 --> 00:46:36,640 მათ, მაგრამ ჩვენ შეგვიძლია რაოდენობის თითოეული იმ მილიარდი ან ორი მილიარდი 1043 00:46:36,640 --> 00:46:37,880 ან ოთხი მილიარდი ბაიტი. 1044 00:46:37,880 --> 00:46:42,240 >> და მოდით უბრალოდ თვითნებურად ამბობენ, რომ ეს არის პირველი bite, მეორე bite, 1045 00:46:42,240 --> 00:46:43,380 მესამე, მეოთხე. 1046 00:46:43,380 --> 00:46:46,570 მე შეგნებულად არ იყენებს ნულოვანი დღეს, მაგრამ ჩვენ დავბრუნდებით რომ. 1047 00:46:46,570 --> 00:46:49,570 ასე რომ, სხვა სიტყვებით, თუ ეს არის პირველად მე გამოყენებით პროგრამა, 1048 00:46:49,570 --> 00:46:52,715 მე უბრალოდ მიღების გაუმართლა და პირველი bite არის ადგილმდებარეობა ერთ შემდეგ ორი 1049 00:46:52,715 --> 00:46:53,590 შემდეგ სამი, ვიდრე ოთხი. 1050 00:46:53,590 --> 00:46:57,430 და თუ მე ინახება ხატვის, ყუთის ნომერი ორი მილიარდი იქნება გზა აქ. 1051 00:46:57,430 --> 00:47:02,200 >> ასე რომ, რას ფიქრობთ, მაშინ, GetString რეალურად ბრუნდება? 1052 00:47:02,200 --> 00:47:06,010 ეს არ დაბრუნების M-O-M წარმატებული ნულოვანი თავისთავად იმიტომ, რომ აშკარად 1053 00:47:06,010 --> 00:47:08,180 არ ჯდება ყუთში, რომელიც მე შედგენილი. 1054 00:47:08,180 --> 00:47:11,210 ასე რომ, რა შეიძლება GetString რეალურად დაბრუნების ყველა ამ კვირის? 1055 00:47:11,210 --> 00:47:14,410 1056 00:47:14,410 --> 00:47:16,820 პასუხი არის ფორუმში აქ სადღაც. 1057 00:47:16,820 --> 00:47:20,390 თქვენ არ ჯდება M-O-M წარმატებული ნულოვანი, ასე რომ, რა შეიძლება აზრი ნაცვლად? 1058 00:47:20,390 --> 00:47:23,424 თუ თქვენ უნდა იყოს სუპერ ჭკვიანი, აყენებს on ე.წ. საინჟინრო ქუდი, 1059 00:47:23,424 --> 00:47:24,340 რა შეიძლება დაბრუნდნენ? 1060 00:47:24,340 --> 00:47:27,340 რა არის მაინც ოდენობით ინფორმაცია თქვენ შეიძლება დაბრუნდეს, რომ მაინც 1061 00:47:27,340 --> 00:47:30,610 ნება თქვენთვის M-O-M მეხსიერებაში? 1062 00:47:30,610 --> 00:47:31,270 ჰო? 1063 00:47:31,270 --> 00:47:31,950 >> აუდიტორია: ერთი. 1064 00:47:31,950 --> 00:47:32,200 >> დევიდ ჯ Malan: ერთი. 1065 00:47:32,200 --> 00:47:33,021 და რატომ? 1066 00:47:33,021 --> 00:47:35,520 აუდიტორია: იმიტომ, რომ ის გითხრათ, სად უნდა წავიდეს [INAUDIBLE]. 1067 00:47:35,520 --> 00:47:38,391 1068 00:47:38,391 --> 00:47:39,390 დევიდ ჯ Malan: ზუსტად. 1069 00:47:39,390 --> 00:47:44,300 მე უბრალოდ დაბრუნებას აპირებს მისამართი სიმებიანი რომ მე მიღებული. 1070 00:47:44,300 --> 00:47:46,570 მისამართი ამ საქმე ის არის, ადგილმდებარეობა ერთი. 1071 00:47:46,570 --> 00:47:51,280 ასე რომ, რა მიმდინარეობს ინახება s-- და ყოველი სტრიქონი ცვლადი ამით far-- 1072 00:47:51,280 --> 00:47:53,430 ახლახანს იყო მისამართი რომ სიმებიანი. 1073 00:47:53,430 --> 00:47:57,840 >> ამასობაში, თუ მოვუწოდებ GetString მეორედ და მე 1074 00:47:57,840 --> 00:48:03,300 ჩაწერეთ ფაქტიურად იმავეს M-O-M lowercase-- M-O-M 1075 00:48:03,300 --> 00:48:06,200 და კიდევ ერთი წარმატებული ნულოვანი, და ახლა იქნებ ჩემი პროგრამა 1076 00:48:06,200 --> 00:48:09,820 უკვე მიმდინარეობს გარკვეული დროის იქნებ ეს არის 10, ეს არის ადგილმდებარეობა 11, ეს არის 12 1077 00:48:09,820 --> 00:48:10,700 ეს არის 13. 1078 00:48:10,700 --> 00:48:13,590 კომპიუტერები გამოყენებით ზოგიერთი სხვა მეხსიერების სხვადსხვა მიზეზის გამო. 1079 00:48:13,590 --> 00:48:18,172 რა ახლა მიდის ჩემი მეორე ცვლადი ჩემი პროგრამა უ? 1080 00:48:18,172 --> 00:48:19,390 10. 1081 00:48:19,390 --> 00:48:20,050 ზუსტად. 1082 00:48:20,050 --> 00:48:23,910 >> ამიტომ, როდესაც ჩვენ შევხედავთ კოდის ამ პროგრამის 1083 00:48:23,910 --> 00:48:26,550 სადაც მე უბრალოდ ცდილობს შედარების ორი ღირებულებები, 1084 00:48:26,550 --> 00:48:32,180 არის ეს თანაბარი ტოლია t, რა არის აშკარა ადამიანის პასუხი? 1085 00:48:32,180 --> 00:48:34,890 უბრალოდ არ იმიტომ, რომ 1 არ უდრის 10-ს. 1086 00:48:34,890 --> 00:48:36,861 ასე რომ, შესაბამისად, დევს შესაძლებლობა ჩვენთვის ნამდვილად 1087 00:48:36,861 --> 00:48:39,610 უბრალოდ დაბრუნდეს, კიდევ ერთხელ, პირველი პრინციპები და ვიფიქროთ, ასევე, 1088 00:48:39,610 --> 00:48:41,110 რა ხდება ქვეშ hood? 1089 00:48:41,110 --> 00:48:43,240 ჩვენ ვლაპარაკობდით ბიტი და ბაიტი და მეხსიერება, 1090 00:48:43,240 --> 00:48:46,820 მაგრამ სინამდვილეში სასარგებლო უნდა გვესმოდეს, რადგან როცა რეკავთ GetString, 1091 00:48:46,820 --> 00:48:50,280 მიუხედავად იმისა, რომ ჩვენ ვფიქრობთ, რომ ეს არის დაბრუნების M-O-M ან სიმებიანი დედა 1092 00:48:50,280 --> 00:48:53,120 ან ენდი და Zamila ან მოსწონს, ტექნიკურად 1093 00:48:53,120 --> 00:48:55,510 ეს მხოლოდ დაბრუნების მისამართი რომ ბლოკი მეხსიერება. 1094 00:48:55,510 --> 00:48:56,910 >> მაგრამ ეს OK. 1095 00:48:56,910 --> 00:49:00,570 იმის გამო, როგორ მე ვიცი, სადაც სიმებიანი მთავრდება? 1096 00:49:00,570 --> 00:49:03,840 თუ მე მხოლოდ მოცემული დასაწყისში? 1097 00:49:03,840 --> 00:49:05,380 ისე, წარმატებული ნულოვანი, არა? 1098 00:49:05,380 --> 00:49:08,800 უბრალოდ ხაზოვანი დროს შემიძლია ბეჭდვა ბეჭდვითი def M-O-M. 1099 00:49:08,800 --> 00:49:11,820 და როგორც კი ვხედავ წარმატებული ნულოვანი, მე არ მაინტერესებს, სადაც მე დაიწყო, 1100 00:49:11,820 --> 00:49:14,950 მე უკვე ვიცი, ირიბად სადაც მე უნდა დასრულდეს. 1101 00:49:14,950 --> 00:49:18,700 >> ასე რომ, დღეს აღნიშნავს beginning-- და ნება მომეცით ამის მკვეთრად იმიტომ, რომ ჩვენ 1102 00:49:18,700 --> 00:49:21,800 გაიარა ბევრი უბედურება მიიღეთ ეს აქ ტრეინინგებს wheels-- 1103 00:49:21,800 --> 00:49:29,840 ასე რომ, დღეს სასწავლო დისკები დაიწყოს მოვა off და ჩვენ გამოავლინოს არანაკლებ 1104 00:49:29,840 --> 00:49:31,373 >> [ტაში] 1105 00:49:31,373 --> 00:49:33,220 1106 00:49:33,220 --> 00:49:36,160 >> ეს იყო კარგად ღირს მოგზაურობა სამიზნე ამ დილით, არა? 1107 00:49:36,160 --> 00:49:39,600 ასე რომ, ახლა არ არის, თურმე გარეთ, არსებობს ასეთი რამ, როგორც სიმებიანი. 1108 00:49:39,600 --> 00:49:41,140 სიმებიანი არ არსებობს. 1109 00:49:41,140 --> 00:49:43,760 ეს არის სინონიმი, რომ ჩვენ გვქონდა შიგნით CS50 ბიბლიოთეკა. 1110 00:49:43,760 --> 00:49:48,660 ამიერიდან, ჩვენ ვაპირებთ, რომ დაიწყოს მოუწოდებდა და ტ არ სტრიქონები მაგრამ char ვარსკვლავი. 1111 00:49:48,660 --> 00:49:51,180 და char ვარსკვლავი ჩვენ გამოგიგზავნით აჯავრებენ გარდა ადრე ხანგრძლივი. 1112 00:49:51,180 --> 00:49:53,510 მაგრამ ეს ნიშნავს იმას, რომ რომ მაშინაც კი, თუ ჩვენ გავაგრძელებთ 1113 00:49:53,510 --> 00:49:56,180 გამოყენებით GetString ახლა, ტექნიკურად მე უნდა 1114 00:49:56,180 --> 00:49:59,010 იყოს ამბობდა char ვარსკვლავი და char ვარსკვლავი. 1115 00:49:59,010 --> 00:50:01,720 >> და თურმე რა, რომ ვარსკვლავი აპირებს აღინიშნოს არის ის, 1116 00:50:01,720 --> 00:50:04,340 მოუწოდა მაჩვენებელი ან მისამართზე. 1117 00:50:04,340 --> 00:50:06,110 და ფაქტობრივად, teaser რა ელის 1118 00:50:06,110 --> 00:50:09,760 ეს არის 20 მეორე კლიპი ჩვენი მეგობარი ნიკ Parlante სტენფორდის 1119 00:50:09,760 --> 00:50:12,927 რომელიც, კარგა ხანია, ატარებენ სასაცილოა დროის, 1120 00:50:12,927 --> 00:50:15,010 როგორც საუკეთესო შემიძლია გითხრათ მისი სამზარეულო და თავის სარდაფში, 1121 00:50:15,010 --> 00:50:17,140 მიღების claymation შემოღების to მსოფლიოში 1122 00:50:17,140 --> 00:50:20,010 ხასიათი დაასახელა Binky რომელთანაც ჩვენ 1123 00:50:20,010 --> 00:50:22,010 დაინერგება მომავალი დრო მითითებას. 1124 00:50:22,010 --> 00:50:24,588 ასე რომ, აქ არის ესკიზი რა მოვა. 1125 00:50:24,588 --> 00:50:26,370 >> [ვიდეო აღწარმოების] 1126 00:50:26,370 --> 00:50:27,510 >> -ეი, Binky. 1127 00:50:27,510 --> 00:50:28,260 გაიღვიძეთ. 1128 00:50:28,260 --> 00:50:30,672 დროა მაჩვენებელი fun. 1129 00:50:30,672 --> 00:50:31,616 >> რა არის ეს? 1130 00:50:31,616 --> 00:50:33,032 ბუნებაში პოინტერები? 1131 00:50:33,032 --> 00:50:34,450 ოჰ, გადასარევი. 1132 00:50:34,450 --> 00:50:35,431 >> [END აღწარმოების] 1133 00:50:35,431 --> 00:50:38,055 დევიდ ჯ Malan: და რომ შენიშვნა, ვნახავთ თქვენ ოთხშაბათს. 1134 00:50:38,055 --> 00:50:47,590 1135 00:50:47,590 --> 00:50:48,090 ყველა უფლება. 1136 00:50:48,090 --> 00:50:48,740 ვინ არის ცეკვა? 1137 00:50:48,740 --> 00:50:49,240 კარგით. 1138 00:50:49,240 --> 00:50:50,330 ვინ არის ცეკვა? 1139 00:50:50,330 --> 00:50:51,820 გსურთ ჩემთვის მისაღებად დაიწყო? 1140 00:50:51,820 --> 00:50:53,770 მე მისაღებად დაიწყო. 1141 00:50:53,770 --> 00:50:54,270 Woooo! 1142 00:50:54,270 --> 00:51:04,070 1143 00:51:04,070 --> 00:51:07,580 >> LAUREN: Sweet ლამაზი მოსეს.