1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> დავით J Malan: ყველა უფლება, ასე რომ ეს არის CS50. 3 00:00:13,060 --> 00:00:15,040 და ეს აშკარად პარასკევი. 4 00:00:15,040 --> 00:00:16,850 და ეს არის ბოლომდე კვირაში ერთი. 5 00:00:16,850 --> 00:00:21,020 ასე, რომ თქვენ შეიძლება გავიხსენოთ, რომ ჩვენ შეჩერდით, ბოლო დროს, ერთად cliffhanger ჯიშები. 6 00:00:21,020 --> 00:00:25,020 ამასთან, ჩვენ გამოვლენა ამ ტყუილი, რომელიც არ მნიშვნელობა რა თქვენ უკვე ისწავლება იზრდება 7 00:00:25,020 --> 00:00:31,610 up, 1 იყოფა 10 არ არის, ფაქტობრივად, 0.1 და 0,100 ან 0,10000. 8 00:00:31,610 --> 00:00:35,270 რეალურად, თუ ჩვენ შეადგინონ ამ პროგრამა, როგორც ჩვენ გავაკეთეთ გუშინ,, 9 00:00:35,270 --> 00:00:39,770 მიიღოს ორაზროვნება და შემდეგ ამის dot, სლეში, ორაზროვნება, 10 00:00:39,770 --> 00:00:43,600 გავიგეთ, რომ ეს არის ის, რაც 1 იყოფა 10 რეალურად არის. 11 00:00:43,600 --> 00:00:46,140 ასე რომ ნამდვილად არ არის საკმაოდ შემთხვევაში. 12 00:00:46,140 --> 00:00:49,014 მაგრამ ეს იმას მინიშნება რაღაც ფუნდამენტური შეზღუდვის კომპიუტერები. 13 00:00:49,014 --> 00:00:50,930 მართლაც, მათ შორის რამ ჩვენ ვაპირებთ, რომ 14 00:00:50,930 --> 00:00:55,130 დღეს შევხედოთ, თუ რატომ ეს მოხდა, რა შედეგებზე ეს, 15 00:00:55,130 --> 00:00:58,430 კაცობრიობის ვერ დაჯექი ამ რამდენიმე ძალიან 16 00:00:58,430 --> 00:01:00,410 სერიოზული situations-- შედეგი, რომელიც 17 00:01:00,410 --> 00:01:03,141 უკვე საკმაოდ ტრაგიკული და expensive-- და ასევე 18 00:01:03,141 --> 00:01:04,849 შევხედოთ, თუ როგორ შეიძლება რეალურად დაიცავს 19 00:01:04,849 --> 00:01:06,530 წინააღმდეგ ასეთი სახის შეზღუდვები. 20 00:01:06,530 --> 00:01:10,940 ასე რომ, ინტუიციურად, ალბათ, რატომ არის 1 იყოფა 10, 21 00:01:10,940 --> 00:01:15,480 ჩემი კომპიუტერი აქ, არა მხოლოდ 1/10, 0.10? 22 00:01:15,480 --> 00:01:15,980 ჰო. 23 00:01:15,980 --> 00:01:16,530 რას ფიქრობთ? 24 00:01:16,530 --> 00:01:17,860 >> აუდიტორიის წევრი: საქართველოს წყაროებიდან არის განსხვავებული? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J Malan: რა არის? 26 00:01:18,550 --> 00:01:19,730 ოჰ, კოდის განსხვავდება? 27 00:01:19,730 --> 00:01:20,720 ასე რომ არ საკმაოდ. 28 00:01:20,720 --> 00:01:23,200 ეს, ფაქტობრივად, მეტი ფუნდამენტური ტექნიკა. 29 00:01:23,200 --> 00:01:23,980 სხვა აზრები? 30 00:01:23,980 --> 00:01:24,584 ჰო. 31 00:01:24,584 --> 00:01:26,750 აუდიტორიის წევრი: ისინი წარმოადგენს ნომრები განსხვავებულად? 32 00:01:26,750 --> 00:01:27,880 დავით J Malan: ასე they-- უფლება. 33 00:01:27,880 --> 00:01:29,338 ისინი წარმოადგენენ ნომრები განსხვავებულად. 34 00:01:29,338 --> 00:01:30,700 არასწორად, როგორც ჩანს. 35 00:01:30,700 --> 00:01:33,190 ასე, რომ არის ისე, განსხვავებულად რა? 36 00:01:33,190 --> 00:01:34,490 ან ვისგან? 37 00:01:34,490 --> 00:01:35,050 ჩვენთან? 38 00:01:35,050 --> 00:01:35,966 აუდიტორიის წევრი: ჰო. 39 00:01:35,966 --> 00:01:38,930 ისინი არ იყენებენ ათობითი სისტემის [INAUDIBLE]. 40 00:01:38,930 --> 00:01:39,680 დავით J Malan: OK. 41 00:01:39,680 --> 00:01:41,560 ასე რომ, ამ თვალსაზრისით, ისინი არ გამოყენება ათობითი სისტემა. 42 00:01:41,560 --> 00:01:43,720 ქვეშ Hood, ყველაფერი, რა თქმა უნდა, ორობითი, 43 00:01:43,720 --> 00:01:45,510 და ეს დაკავშირებული, ფაქტობრივად. 44 00:01:45,510 --> 00:01:48,135 მაგრამ ეს კიდევ უფრო მარტივი ახსნა, ვიდრე. 45 00:01:48,135 --> 00:01:48,635 ჰო. 46 00:01:48,635 --> 00:01:49,970 >> აუდიტორიის წევრი: ისინი მხოლოდ ამდენი ბიტი. 47 00:01:49,970 --> 00:01:52,370 მათ შეუძლიათ მხოლოდ შესანახად მდე გარკვეული იმდენად, რამდენადაც, როგორც ერთად decimals. 48 00:01:52,370 --> 00:01:52,780 >> დავით J Malan: ჰო. 49 00:01:52,780 --> 00:01:54,420 ეს არის ის, რაც ნამდვილად მისაღებად მას. 50 00:01:54,420 --> 00:01:57,180 გამოდის, რომ კომპიუტერები როგორც წესი, ყოველთვის მხოლოდ 51 00:01:57,180 --> 00:01:59,690 გამოყენება სასრული რაოდენობით ინფორმაცია წარმოადგენს რაღაც. 52 00:01:59,690 --> 00:01:59,870 მარჯვენა? 53 00:01:59,870 --> 00:02:02,110 ყოველივე ამის შემდეგ, ჩვენ მხოლოდ ფიქსირებული თანხის მყარ დისკზე. 54 00:02:02,110 --> 00:02:04,210 ჩვენ მხოლოდ ფიქსირებული თანხა of RAM, ან კომპიუტერის მეხსიერებაში. 55 00:02:04,210 --> 00:02:06,251 და თუ თქვენ მხოლოდ ფიქსირებული თანხის რაღაც, 56 00:02:06,251 --> 00:02:09,611 აუცილებლად თქვენ შეგიძლიათ რეალურად არ ითვლიან უსასრულობა ან ნებისმიერი რაოდენობის გსურთ. 57 00:02:09,611 --> 00:02:11,610 თქვენ, სახის, უნდა აირჩიოთ და აირჩიეთ რა დიაპაზონი 58 00:02:11,610 --> 00:02:13,220 ღირებულებათა თქვენ აპირებს მხარი დაუჭიროს. 59 00:02:13,220 --> 00:02:18,100 >> ასე რომ, მაგალითად, ერთი კვირის ან ორი წინ, როდესაც ჩვენ ვისაუბრეთ ASCII, 60 00:02:18,100 --> 00:02:21,610 და ჩვენ ვისაუბრეთ 8 ბიტი, ან byte, ასე ვთქვათ, 61 00:02:21,610 --> 00:02:26,360 ყველაზე მეტი შეგვეძლო წარმოადგენს 8 ბიტი რა? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 და ჩვენ შეგვიძლია წარმოადგენს 256 სულ ღირებულებები მაგრამ თუ ჩვენ გაატაროთ ერთი მათგანი 64 00:02:31,850 --> 00:02:34,190 on 0- ისე, მაგრამ თუ ჩვენ გაატარონ ერთი მათგანი 0, 65 00:02:34,190 --> 00:02:36,830 მაშინ ყველაზე მეტი არის, რა თქმა უნდა, 255. 66 00:02:36,830 --> 00:02:39,410 >> ასე რომ, თურმე, რომ ეს არის იმ შემთხვევაში, ძალიან, ამ კონტექსტში. 67 00:02:39,410 --> 00:02:42,350 ჩვენ დავიწყეთ საუბარი, ბოლო დროს, მცურავი პუნქტიანი ნომრები, რომელიც 68 00:02:42,350 --> 00:02:44,640 განსხვავებული რიცხვებით, in რომ მათ აქვთ ათობითი წერტილი 69 00:02:44,640 --> 00:02:47,056 და, იმედია, ზოგიერთი ნომრები ამის შემდეგ, მაგრამ ისინი ძალიან. 70 00:02:47,056 --> 00:02:51,730 კომპიუტერული მხოლოდ, როგორც წესი, ხდება გამოიყენოთ 32 ბიტი, შესაძლოა, 64 ბიტი 71 00:02:51,730 --> 00:02:53,497 წარმოადგენს მცურავი წერტილი ღირებულება. 72 00:02:53,497 --> 00:02:56,080 ასე რომ, მიუხედავად იმისა, რომ ჩვენ გაიზარდა სწავლის მათემატიკის და იცის 73 00:02:56,080 --> 00:02:58,750 რომ თქვენ შეგიძლიათ აბსოლუტურად უსასრულო რაოდენობის ნომრები 74 00:02:58,750 --> 00:03:01,650 შემდეგ ათობითი წერტილი, არ თუ თქვენ გაქვთ სასრულ მეხსიერება. 75 00:03:01,650 --> 00:03:03,930 თქვენ, სახის, უნდა გარშემო, ან აირჩიოთ და აირჩიეთ რომელიც 76 00:03:03,930 --> 00:03:05,346 ნომრები ვაპირებთ წარმოადგენს. 77 00:03:05,346 --> 00:03:08,710 და ასე რომ თქვენ შეგიძლიათ ვფიქრობ, ამ თვალსაზრისით, ეს იყო კომპიუტერული უახლოესი 78 00:03:08,710 --> 00:03:14,050 დაახლოებას ღირებულება 1/10, რომ მას შეუძლია მიიღოს, მხოლოდ 32 ან იმდენად ბიტი. 79 00:03:14,050 --> 00:03:15,300 და ეს არ არის მხოლოდ 1/10. 80 00:03:15,300 --> 00:03:19,820 >> მაგალითად, თუ მე შეცვლის ამ 1/3, რომელიც ჩვენ მიგვაჩნია, რომ კიდევ უფრო მარტივია. 81 00:03:19,820 --> 00:03:21,300 ასე რომ 1 გაყოფილი 3. 82 00:03:21,300 --> 00:03:22,355 მიადევნე თვალი ფაილის შენახვა. 83 00:03:22,355 --> 00:03:24,680 ნება მომეცით წავიდეთ წინ და recompile იგი. 84 00:03:24,680 --> 00:03:25,820 ნება მომეცით ხელახლა გაუშვით. 85 00:03:25,820 --> 00:03:30,000 აქაც, როგორც ჩანს, 1/3 არ არის 0.3 და შემდეგ უსასრულო რაოდენობის 3-ის 86 00:03:30,000 --> 00:03:30,770 შემდგომ. 87 00:03:30,770 --> 00:03:32,540 თქვენ ამ ორაზროვნება ბოლოს. 88 00:03:32,540 --> 00:03:35,544 ასე რომ, ჩვენ ადამიანები ვართ სწორი და რა თქვენ ისწავლა არის, ფაქტობრივად, სწორი, 89 00:03:35,544 --> 00:03:37,460 მაგრამ ჩვენ bumping up წინააღმდეგ გარკვეული შეზღუდვები. 90 00:03:37,460 --> 00:03:39,420 >> და რა ვიფიქრე ჩვენ გვინდა გავაკეთოთ დღეს, დაიწყოს 91 00:03:39,420 --> 00:03:42,190 ეძებს, სიმართლე გითხრათ, ტრაგიკული შედეგები ამ 92 00:03:42,190 --> 00:03:45,490 ზოგჯერ, როდესაც კაცობრიობა არ საკმაოდ განახორციელოს 93 00:03:45,490 --> 00:03:48,460 ამ რეალობას და ეს შეზღუდვები. 94 00:03:48,460 --> 00:03:52,360 ჩვენ დავინახავთ, სერია vignettes ისტორიის არხი, რომელიც იღებს 95 00:03:52,360 --> 00:03:53,950 შევხედოთ, თუ როგორ არ წავიდა არასწორი. 96 00:03:53,950 --> 00:03:56,340 ეს არის დაახლოებით 8 წუთი ხანგრძლივი, და ჩვენ დავბრუნდებით შემდეგ ეს 97 00:03:56,340 --> 00:03:59,439 და შევხედოთ ზუსტად რა შეიძლება წავიდეთ არასწორი. 98 00:03:59,439 --> 00:04:00,605 თუ ჩვენ ვერ dim lights-- 99 00:04:00,605 --> 00:04:02,350 >> [ვიდეო აღწარმოების] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, ჩვენ ყველა მოდის მიიღოს ხშირად სამწუხარო პრობლემები რომ 101 00:04:06,310 --> 00:04:07,750 მათთან ერთად წასვლა. 102 00:04:07,750 --> 00:04:11,370 Bugs, ვირუსებს, და პროგრამული უზრუნველყოფის glitches ეს არის პატარა ფასები 103 00:04:11,370 --> 00:04:13,230 გადაიხადოს ფონდის. 104 00:04:13,230 --> 00:04:17,519 მაგრამ მაღალტექნოლოგიური და მაღალი სიჩქარით სამხედრო და სივრცეში პროგრამა განცხადებები, 105 00:04:17,519 --> 00:04:22,130 პატარა პრობლემის განდიდდება შევიდა უბედურება. 106 00:04:22,130 --> 00:04:27,750 4 ივნისს, 1996, მეცნიერები მზად დაიწყოს უპილოტო Ariane 5 რაკეტა. 107 00:04:27,750 --> 00:04:29,890 ეს იყო დატვირთული სამეცნიერო თანამგზავრების შექმნილია 108 00:04:29,890 --> 00:04:33,030 ჩამოყალიბება, ზუსტად როგორ დედამიწის მაგნიტური ველი ურთიერთქმედებს 109 00:04:33,030 --> 00:04:35,600 ერთად მზის ქარი. 110 00:04:35,600 --> 00:04:37,930 სარაკეტო აშენდა ევროპული კოსმოსური სააგენტო 111 00:04:37,930 --> 00:04:41,620 და გააუქმა off მისი დაწესებულებაში სანაპიროზე საფრანგეთის გვიანა. 112 00:04:41,620 --> 00:04:44,924 >> თუკი დაახლოებით 30 წამი ფრენის, ისინი პირველი 113 00:04:44,924 --> 00:04:46,340 შენიშნა რაღაც ხდებოდა არასწორია. 114 00:04:46,340 --> 00:04:49,280 რომ საქშენები იყო swiveling ისე, რომ მათ ნამდვილად არ უნდა. 115 00:04:49,280 --> 00:04:53,042 დაახლოებით 40 წამი შევიდა ფრენის, ნათლად მანქანა იყო უბედურება, 116 00:04:53,042 --> 00:04:55,250 და ეს მაშინ, როდესაც ისინი გააკეთა გადაწყვეტილება გაანადგუროს იგი. 117 00:04:55,250 --> 00:04:58,970 სპექტრს უსაფრთხოების ოფიცერი ერთად უზარმაზარი guts დაპრესილი ღილაკს, 118 00:04:58,970 --> 00:05:03,940 ააფეთქეს სარაკეტო, სანამ ეს შესაძლებელი იქნებოდა გახდება საშიშროების საჯარო უსაფრთხოებას. 119 00:05:03,940 --> 00:05:06,600 >> -ეს იყო maiden voyage საქართველოს Ariane 5, 120 00:05:06,600 --> 00:05:09,270 და მისი განადგურება მიიღო განათავსეთ იმიტომ, რომ ნაკლი 121 00:05:09,270 --> 00:05:10,992 ჩართული ამ სარაკეტო ის პროგრამული უზრუნველყოფა. 122 00:05:10,992 --> 00:05:12,700 -The პრობლემა Ariane იყო, რომ იქ 123 00:05:12,700 --> 00:05:15,370 ნომერი რომ საჭირო 64 bits, გამოხატონ, 124 00:05:15,370 --> 00:05:18,150 და მას სურდა დააკონვერტიროთ მას 16 bit ნომერი. 125 00:05:18,150 --> 00:05:21,160 ისინი ფიქრობდნენ, რომ ნომერი არასოდეს იქნება ძალიან დიდი, 126 00:05:21,160 --> 00:05:25,020 რომ უმრავლესობა ციფრისგან 64 bit ნომერი იყო 0 ს. 127 00:05:25,020 --> 00:05:26,310 ისინი არასწორია. 128 00:05:26,310 --> 00:05:28,680 >> -The უუნარობა ერთ პროგრამული პროგრამა, მიიღოს 129 00:05:28,680 --> 00:05:32,820 სახის ნომერი მიერ კიდევ ერთი ქართველი ერთი ძირი უკმარისობა. 130 00:05:32,820 --> 00:05:37,190 პროგრამული უზრუნველყოფის დამუშავების გახდა ძალიან ძვირადღირებული ნაწილი ახალი ტექნოლოგია. 131 00:05:37,190 --> 00:05:40,760 Ariane 4 სარაკეტო იყო ძალიან წარმატებული, იმდენად, რამდენადაც პროგრამული უზრუნველყოფა 132 00:05:40,760 --> 00:05:43,990 ის, რომ ეს იყო ასევე გამოიყენება Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -The ძირითადი პრობლემა იყო ის, რომ Ariane 5 იყო სწრაფად, დააჩქარა სწრაფად. 134 00:05:49,750 --> 00:05:53,000 და პროგრამული უზრუნველყოფის არ ჰქონდა აღრიცხული, რომ. 135 00:05:53,000 --> 00:05:56,330 >> -The განადგურების სარაკეტო იყო დიდი ფინანსური კატასტროფის 136 00:05:56,330 --> 00:05:59,670 ყველა გამო წუთი პროგრამული შეცდომა. 137 00:05:59,670 --> 00:06:01,990 მაგრამ ეს არ იყო პირველი შემთხვევა მონაცემები კონვერტაციის პრობლემები 138 00:06:01,990 --> 00:06:05,310 ჰქონდა ხშირია თანამედროვე სარაკეტო ტექნიკა. 139 00:06:05,310 --> 00:06:08,300 >> -in 1991 დაწყების პირველი ყურის ომი, 140 00:06:08,300 --> 00:06:10,650 პატრიოტის რაკეტა გამოცდილი მსგავსი 141 00:06:10,650 --> 00:06:12,650 პუნქტების კონვერტაციის პრობლემა. 142 00:06:12,650 --> 00:06:15,620 შედეგად, 28 ადამიანი, 28 ამერიკელი ჯარისკაცი 143 00:06:15,620 --> 00:06:18,440 დაიღუპა და დაახლოებით 100 დაიჭრა, 144 00:06:18,440 --> 00:06:21,900 როდესაც პატრიოტთა, რომელიც უნდა დაიცვას შემოსულ Scuds, 145 00:06:21,900 --> 00:06:24,630 ვერ ცეცხლი სარაკეტო. 146 00:06:24,630 --> 00:06:29,440 >> როცა ერაყში შეიჭრა ქუვეითსა და ამერიკაში დაიწყო Desert Storm დასაწყისში 1991, 147 00:06:29,440 --> 00:06:33,800 Patriot სარაკეტო ბატარეები განალაგეს დასაცავად საუდის არაბეთი და ისრაელს 148 00:06:33,800 --> 00:06:37,000 ერაყის Scud სარაკეტო თავდასხმები. 149 00:06:37,000 --> 00:06:40,610 პატრიოტის არის აშშ, საშუალო რადიუსის მიწა-ჰაერის სისტემა 150 00:06:40,610 --> 00:06:43,010 მიერ წარმოებული RAYTHEON კომპანია. 151 00:06:43,010 --> 00:06:49,080 >> -The ზომა პატრიოტის interceptor, თავისთავად, დაახლოებით, დაახლოებით 20 ფუტი სიგრძის. 152 00:06:49,080 --> 00:06:51,250 და ეს იწონის დაახლოებით 2000 ფუნტი. 153 00:06:51,250 --> 00:06:55,195 და იგი ახორციელებს ქობინი შესახებ მე ვფიქრობ, რომ დაახლოებით 150 ფუნტი. 154 00:06:55,195 --> 00:06:59,500 და ქობინით, თავისთავად, მაღალი ასაფეთქებელი, 155 00:06:59,500 --> 00:07:02,570 რომელსაც აქვს ფრაგმენტები გარშემო. 156 00:07:02,570 --> 00:07:06,890 გარსაცმები of ქობინით არის განკუთვნილია იმოქმედოს მოსწონს buckshot. 157 00:07:06,890 --> 00:07:09,130 >> -The რაკეტები განახორციელა, 4 პროცენტი კონტეინერი, 158 00:07:09,130 --> 00:07:12,080 და არიან ტრანსპორტირება ნახევრად trailer. 159 00:07:12,080 --> 00:07:19,100 >> -The Patriot ანტი-სარაკეტო სისტემა მიდის უკან მინიმუმ 20 წელია. 160 00:07:19,100 --> 00:07:22,320 თავდაპირველად შექმნილია როგორც საჰაერო თავდაცვის სარაკეტო 161 00:07:22,320 --> 00:07:24,180 ჩამოაგდებენ მტრის თვითმფრინავები. 162 00:07:24,180 --> 00:07:27,860 პირველ ყურის ომი, როდესაც ომი მოვიდა გასწვრივ, 163 00:07:27,860 --> 00:07:32,745 არმიის სურდა გამოვიყენოთ რომ ჩამოაგდებენ Scuds, არ თვითმფრინავები. 164 00:07:32,745 --> 00:07:36,150 ერაყის ძალები არ იყო იმდენად დიდი პრობლემა, 165 00:07:36,150 --> 00:07:39,110 მაგრამ არმიის იყო აწუხებს Scuds. 166 00:07:39,110 --> 00:07:42,340 ასე რომ, ისინი ცდილობდნენ განახლება პატრიოტია. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting მტერი სარაკეტო მოგზაურობა at Mach ხუთ 168 00:07:44,760 --> 00:07:47,250 მიდიოდა იწვევს საკმარისი. 169 00:07:47,250 --> 00:07:50,000 მაგრამ როდესაც პატრიოტთა იყო შევარდა მომსახურება, 170 00:07:50,000 --> 00:07:54,030 არმია არ იცის ერაყის მოდიფიკაცია რომ გააკეთეს 171 00:07:54,030 --> 00:07:56,840 Scuds თითქმის შეუძლებელია მოხვდა. 172 00:07:56,840 --> 00:08:01,020 >> რა მოხდა, არის Scuds, მოდიოდნენ, იყო არასტაბილური, 173 00:08:01,020 --> 00:08:02,310 ისინი wobbling. 174 00:08:02,310 --> 00:08:05,140 ამის მიზეზი, იყო ერაყელებს, რათა 175 00:08:05,140 --> 00:08:09,450 რომ 600 კილომეტრის გარეთ 300 კილომეტრიანი რადიუსის რაკეტა, 176 00:08:09,450 --> 00:08:12,930 აიღო წონა გარეთ წინა ქობინით და გააკეთა ქობინით მსუბუქია. 177 00:08:12,930 --> 00:08:17,710 ასე რომ, ახლა პატრიოტთა ცდილობს მოვა at Scud, ყველაზე მეტი დრო, 178 00:08:17,710 --> 00:08:21,700 აბსოლუტური უმრავლესობა დროს, ის უბრალოდ ფრენა მიერ Scud. 179 00:08:21,700 --> 00:08:25,700 >> -Once პატრიოტის სისტემის ოპერატორები მიხვდა პატრიოტის გაშვებული მისი სამიზნე, 180 00:08:25,700 --> 00:08:29,790 მათ აფეთქდა პატრიოტთა ქობინით, რათა თავიდან ავიცილოთ შესაძლო მსხვერპლი, თუ იგი 181 00:08:29,790 --> 00:08:32,380 ეძლეოდა დაეცემა, რათა ადგილზე. 182 00:08:32,380 --> 00:08:36,340 >> -ეს იყო, რაც ყველაზე ხალხი დაინახა, იმ დიდი fireballs ცაში, 183 00:08:36,340 --> 00:08:41,289 და არასწორად როგორც საუბრების საქართველოს Scud ქობინი. 184 00:08:41,289 --> 00:08:43,590 მიუხედავად იმისა, რომ იმ ღამეს, ცა, პატრიოტთა აღმოჩნდა 185 00:08:43,590 --> 00:08:47,020 წარმატებით განადგურება Scuds საათზე Dhahran, 186 00:08:47,020 --> 00:08:49,730 არ შეიძლება იყოს შეცდომა მის შესრულება. 187 00:08:49,730 --> 00:08:53,990 იქ, პატრიოტთა სარადარო სისტემის დაკარგა სიმღერა შემომავალი Scud, 188 00:08:53,990 --> 00:08:56,650 და არ დაიწყო, იმის გამო, რომ პროგრამული ხარვეზი. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 ეს იყო ისრაელის, რომელმაც პირველად აღმოაჩინა რომ აღარ სისტემა იყო, 191 00:09:04,100 --> 00:09:07,510 დიდი დრო განსხვავება გახდა, გამო საათის ჩართული 192 00:09:07,510 --> 00:09:09,490 სისტემაში კომპიუტერში. 193 00:09:09,490 --> 00:09:12,670 >> გამოტოვებულია 2 კვირით ადრე ტრაგედიის Dhahran, 194 00:09:12,670 --> 00:09:15,010 ისრაელის იტყობინება თავდაცვის დეპარტამენტს, 195 00:09:15,010 --> 00:09:17,940 რომ სისტემა დაკარგვის დროს, მას შემდეგ, რაც დაახლოებით 8 საათის გაშვებული, 196 00:09:17,940 --> 00:09:21,410 მათ შენიშნეს, რომ ეს სისტემა შესამჩნევად ნაკლები სიზუსტით. 197 00:09:21,410 --> 00:09:25,290 თავდაცვის დეპარტამენტის გამოეხმაურა ვეუბნებოდი ყველა პატრიოტის ბატარეები 198 00:09:25,290 --> 00:09:28,070 რომ არ დატოვებს სისტემები დიდი ხნის განმავლობაში. 199 00:09:28,070 --> 00:09:29,960 ისინი არ ამბობს, რა დიდი დრო იყო. 200 00:09:29,960 --> 00:09:30,460 8 საათი? 201 00:09:30,460 --> 00:09:30,960 10 საათის განმავლობაში? 202 00:09:30,960 --> 00:09:31,870 1000 საათი? 203 00:09:31,870 --> 00:09:33,734 არავინ იცოდა. 204 00:09:33,734 --> 00:09:35,650 -The პატრიოტის ბატარეის დისლოცირებული ზე ყაზარმებში 205 00:09:35,650 --> 00:09:40,410 at Dhahran და მისი ყალბი შიდა საათი, იყო დაახლოებით 100 საათი 206 00:09:40,410 --> 00:09:43,041 ღამეს 25 თებერვალს. 207 00:09:43,041 --> 00:09:47,416 >> -ეს დააფიქსირა, დრო სიზუსტით დაახლოებით 1/10 მეორე. 208 00:09:47,416 --> 00:09:49,290 ახლა 1/10 მეორე არის საინტერესო ნომერი 209 00:09:49,290 --> 00:09:52,700 იმიტომ, რომ ეს არ შეიძლება იყოს გამოთქმული ორობითი, ზუსტად. 210 00:09:52,700 --> 00:09:54,820 რაც იმას ნიშნავს, მას არ შეუძლია იყოს გამოხატული, ზუსტად, 211 00:09:54,820 --> 00:09:57,420 ნებისმიერ თანამედროვე ციფრული კომპიუტერი. 212 00:09:57,420 --> 00:10:01,460 ძნელი დასაჯერებელია, მაგრამ გამოიყენოს ეს როგორც მაგალითად. 213 00:10:01,460 --> 00:10:03,520 ავიღოთ ნომერი, 1/3. 214 00:10:03,520 --> 00:10:07,110 1/3 არ შეიძლება იყოს გამოხატული ათობითი ზუსტად. 215 00:10:07,110 --> 00:10:11,490 1/3 0,333 გრძელდება უსასრულობამდე. 216 00:10:11,490 --> 00:10:15,486 არ არსებობს გზა უნდა გააკეთოს, რომ, აბსოლუტური სიზუსტით, ათობითი. 217 00:10:15,486 --> 00:10:18,360 ეს არის ზუსტად იგივე სახის პრობლემა, რომელიც მოხდა პატრიოტია. 218 00:10:18,360 --> 00:10:22,510 აღარ სისტემა გაიქცა, უარესი დრო შეცდომა გახდა. 219 00:10:22,510 --> 00:10:28,420 >> მას შემდეგ რაც 100 სამუშაო საათები, შეცდომა იყო მხოლოდ 1/3 მეორე. 220 00:10:28,420 --> 00:10:31,830 მაგრამ თვალსაზრისით სამიზნედ სარაკეტო მოგზაურობა at Mach 5, 221 00:10:31,830 --> 00:10:35,890 ეს შედეგად თვალთვალის შეცდომა მეტი 600 მეტრია. 222 00:10:35,890 --> 00:10:38,970 ეს იქნება ფატალური შეცდომა ამისთვის ჯარისკაცებთან Dhahran. 223 00:10:38,970 --> 00:10:45,035 >> რა მოხდა, არის Scud დაწყებას იყო გამოვლინდა ადრეული გაფრთხილების თანამგზავრების, 224 00:10:45,035 --> 00:10:48,930 და ისინი new რომ Scud მოდის მათი საერთო მიმართულებით. 225 00:10:48,930 --> 00:10:51,170 მათ არ იციან, სადაც იგი მოდიოდა. 226 00:10:51,170 --> 00:10:53,990 >> -ეს იყო ახლა მდე სარადარო კომპონენტი პატრიოტის სისტემის, 227 00:10:53,990 --> 00:10:58,520 დაცვითი Dhahran, იქნებიან და შეინახოს სიმღერა შემომავალი მტრის რაკეტა. 228 00:10:58,520 --> 00:10:59,690 >> -The სარადარო იყო ძალიან ჭკვიანი. 229 00:10:59,690 --> 00:11:01,710 ეს რეალურად აკონტროლოთ პოზიცია Scud 230 00:11:01,710 --> 00:11:04,040 და შემდეგ პროგნოზირება, სადაც ეს ალბათ იქნება, 231 00:11:04,040 --> 00:11:06,140 შემდეგი დროს, სარადარო გაგზავნილი პულსი გარეთ. 232 00:11:06,140 --> 00:11:07,660 რომ ერქვა Range კარიბჭე. 233 00:11:07,660 --> 00:11:11,870 >> მერე, ერთხელ პატრიოტის გადაწყვეტს საკმარისი დრო აქვს 234 00:11:11,870 --> 00:11:16,280 გავიდა წასვლა უკან და შეამოწმოთ შემდეგი ადგილმდებარეობა ამ აღმოჩენილი ობიექტი, 235 00:11:16,280 --> 00:11:17,280 იგი მიდის უკან. 236 00:11:17,280 --> 00:11:21,690 ასე რომ, როდესაც იგი დაბრუნდა არასწორი ადგილი, მაშინ ვერ ხედავს ობიექტი 237 00:11:21,690 --> 00:11:25,230 და ეს გადაწყვეტს, რომ არ არსებობს ობიექტი, ეს იყო ყალბი გამოვლენის 238 00:11:25,230 --> 00:11:26,650 და წვეთების სიმღერა. 239 00:11:26,650 --> 00:11:29,690 შემომავალი Scud გაქრა სარადარო ეკრანზე, 240 00:11:29,690 --> 00:11:32,670 და წამის შემდეგ, ის გააკრიტიკა შევიდა ყაზარმები. 241 00:11:32,670 --> 00:11:38,100 Scud დაიღუპა 28 და იყო ბოლო ერთი გასროლა დროს პირველი ყურის ომი. 242 00:11:38,100 --> 00:11:43,460 ტრაგიკულია, რომ განახლებული პროგრამული უზრუნველყოფა მივიდა Dhahran მომდევნო დღეს. 243 00:11:43,460 --> 00:11:46,150 პროგრამული ხარვეზი ჰქონდა უკვე დაფიქსირდა, იხურება 244 00:11:46,150 --> 00:11:48,940 ერთი თავი პრობლემური ისტორია პატრიოტის რაკეტა. 245 00:11:48,940 --> 00:11:50,220 >> [END აღწარმოების] 246 00:11:50,220 --> 00:11:54,340 >> დავით J Malan: ასე რომ, ჩვენ შევხედოთ ზოგიერთი მსგავსი შეზღუდვები მხოლოდ ცოტა. 247 00:11:54,340 --> 00:11:58,470 მაგრამ პირველი, მოდით გადასვლის რამდენიმე FYI არის. 248 00:11:58,470 --> 00:12:01,575 ასე რომ, one-- ამ კვირას, იქნება სუპერ სექციები, 249 00:12:01,575 --> 00:12:04,200 რომლებიც განკუთვნილია შევცვალოთ რეგულარული სექციები, რომელიც 250 00:12:04,200 --> 00:12:05,460 დაიწყება კვირაში აქედან გამომდინარე. 251 00:12:05,460 --> 00:12:08,204 შეხედეთ იმ CS50 ნახვა დამატებითი ინფორმაცია იმ. 252 00:12:08,204 --> 00:12:11,120 ისინი ასევე იქნება გადაღებული და streamed ცხოვრება მათთვის ვერ დაესწრება. 253 00:12:11,120 --> 00:12:12,980 პრობლემა კომპლექტი 1 არის რა თქმა უნდა ნახვა უკვე, 254 00:12:12,980 --> 00:12:15,105 და ჩვენ შევხედოთ რომ უბრალოდ ცოტა. 255 00:12:15,105 --> 00:12:18,350 და საოფისე საათი ძალიან, მიიღებს განათავსებს ამ ორშაბათიდან ხუთშაბათი. 256 00:12:18,350 --> 00:12:20,960 >> ასე რომ, ეს იყო ყველაზე კანონიკური პროგრამა ჩვენ შევხედე ბოლო დროს. 257 00:12:20,960 --> 00:12:23,590 ეს იგივეა, რომ უმარტივესი პროგრამის საშუალებით თქვენ შეგიძლიათ დაწეროთ C, 258 00:12:23,590 --> 00:12:25,250 და მიუხედავად იმისა, რომ ცოტა თამამი პრეტენზია. 259 00:12:25,250 --> 00:12:25,750 მარჯვენა? 260 00:12:25,750 --> 00:12:28,070 იმის გამო, რომ ბევრი მოჩვენებითი სირთულე ამ. 261 00:12:28,070 --> 00:12:30,445 მოდით მიიღოს სწრაფი შევხედოთ რა ზოგიერთი ელემენტი 262 00:12:30,445 --> 00:12:33,080 იყო და შემდეგ ცდილობენ, რათა უზრუნველყოს ფსიქიკური მოდელი, თუ როგორ 263 00:12:33,080 --> 00:12:35,710 ეს მარტივი პროგრამების მუშაობა, და შემდეგ დავიწყებთ 264 00:12:35,710 --> 00:12:38,050 ეძებს რამ უფრო რთული. 265 00:12:38,050 --> 00:12:41,280 ასე რომ, ეს ხაზი აქ, ხაზგასმით არის, ყვითელი, რა არ ვამბობთ, ბოლო დროს, 266 00:12:41,280 --> 00:12:43,200 , რომ ეს არ არის ჩვენთვის? 267 00:12:43,200 --> 00:12:45,220 რა არის მიზანს ემსახურება? 268 00:12:45,220 --> 00:12:46,984 ვინმეს უფრო უკან? 269 00:12:46,984 --> 00:12:47,483 ჰო. 270 00:12:47,483 --> 00:12:48,649 >> აუდიტორიის წევრი: [INAUDIBLE] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 დავით J Malan: კარგი. 273 00:12:51,704 --> 00:12:53,537 ასე რომ, ეს გაძლევთ ხელმისაწვდომობის ბრძანებები, ან მოდით 274 00:12:53,537 --> 00:12:56,750 მოვუწოდებთ მათ ფუნქციებს, რომ ვინმე სხვამ დაწერა, რომ განაცხადა, 275 00:12:56,750 --> 00:12:58,350 ასე ვთქვათ, ზოგიერთ სხვა ფაილი. 276 00:12:58,350 --> 00:13:02,370 ამიტომ, ჩვენ დავინახავთ, ზუსტად რა თ ფაილი არის წინააღმდეგ გ ფაილი, საბოლოოდ. 277 00:13:02,370 --> 00:13:04,710 მაგრამ ახლა, უბრალოდ ვიცი რომ printf, მაგალითად, 278 00:13:04,710 --> 00:13:08,370 მათ შორის არის ფუნქცია, რომელიც არ ყოფილა დეკლარირებული სხვა ფაილი, სადღაც 279 00:13:08,370 --> 00:13:12,930 სხვა ღრუბელი მყარ დისკზე, რომ საშუალებას გვაძლევს, რათა შეამოწმონ printf და გამოიყენოს იგი 280 00:13:12,930 --> 00:13:15,240 გარეშე ხელახლა რომ წამყვანი საკუთარ თავს. 281 00:13:15,240 --> 00:13:16,930 იმავდროულად, მთავარი. 282 00:13:16,930 --> 00:13:19,690 რა იყო ანალოგი მთავარი, გასულ კვირას? 283 00:13:19,690 --> 00:13:20,190 ჰო. 284 00:13:20,190 --> 00:13:21,460 >> აუდიტორიის წევრი: მწვანე დროშა დააწკაპებთ. 285 00:13:21,460 --> 00:13:21,740 >> დავით J Malan: ჰო. 286 00:13:21,740 --> 00:13:23,490 ნულიდან, როდესაც მწვანე დროშა დააწკაპებთ. 287 00:13:23,490 --> 00:13:25,560 ეს იგივეა, თავსატეხი ცალი რომ ჩათვლით რამ off. 288 00:13:25,560 --> 00:13:28,306 ასე რომ, ასევე, გააკეთა მსოფლიოში გადაწყვიტა რამდენიმე წლის წინ, რომ C, 289 00:13:28,306 --> 00:13:30,930 და რამოდენიმე სხვა ენებზე, თუ გსურთ დაწეროთ პროგრამა, 290 00:13:30,930 --> 00:13:33,410 თქვენი პირველი ფუნქცია უნდა ეწოდოს, მთავარი. 291 00:13:33,410 --> 00:13:34,641 და მას მოსწონს ეს. 292 00:13:34,641 --> 00:13:36,640 მაგრამ ჩვენ დავბრუნდებით, სხვა დროს, რა, int, 293 00:13:36,640 --> 00:13:38,690 და ბათილად, ნიშნავს იმას, რომ ამ კონტექსტში. 294 00:13:38,690 --> 00:13:42,860 ახლა, curly აფრთხილებს სახის მოსწონს Scratch თავსატეხი ცალი ფორმა 295 00:13:42,860 --> 00:13:45,080 რომ encapsulates გარკვეული რაოდენობის ხაზები. 296 00:13:45,080 --> 00:13:47,070 მათ შორის ხაზები აქ არის ერთი აქ. 297 00:13:47,070 --> 00:13:51,610 printf ფუნქცია, რომლის მიზანია ცხოვრება ბეჭდვა ფორმატირებული სიმებიანი. 298 00:13:51,610 --> 00:13:55,010 და ფორმატირებული, ვგულისხმობ შეგიძლიათ დანამატის placeholder ღირებულებები, 299 00:13:55,010 --> 00:13:58,360 და თქვენ შეგიძლიათ მიუთითოთ რამდენი ათობითი რაოდენობა, რამდენი ნომრები ბეჭდვა 300 00:13:58,360 --> 00:14:00,040 მას შემდეგ, რაც ათობითი წერტილი და ასე შემდეგ. 301 00:14:00,040 --> 00:14:05,040 და printf, რა თქმა უნდა, ერთი იღებს ან მეტი არგუმენტები ან პარამეტრების, 302 00:14:05,040 --> 00:14:06,770 წინააღმდეგ შემთხვევაში, ცნობილია, უფრო მარტივად, როგორც საშუალებებით. 303 00:14:06,770 --> 00:14:09,230 >> ამიტომ printf, როგორც ბევრი ფუნქციები, იღებს საშუალებებით. 304 00:14:09,230 --> 00:14:12,730 და იმ საშუალებებით მოიცვა ორი ფრჩხილებში აქ. 305 00:14:12,730 --> 00:14:15,180 და შიგნით იმ ერთ-ერთი შეყვანა. 306 00:14:15,180 --> 00:14:18,600 ეს არის ტექსტი, როგორც ჩვენ მას, რაც არის თანმიმდევრობა გმირები, 307 00:14:18,600 --> 00:14:22,310 მოსწონს სიტყვა ან ფრაზა, ან მთლიანად ესსე კი, შორის ორმაგი შეთავაზებები. 308 00:14:22,310 --> 00:14:25,712 და რომ ის, რაც ხდება, რომ ზეგავლენა ქცევის printf, რადგან, რა თქმა უნდა, 309 00:14:25,712 --> 00:14:27,170 ეს მხოლოდ ზოგადი ბეჭდვის ფუნქცია. 310 00:14:27,170 --> 00:14:29,600 ის არ აპირებს ვიცი, რა ბეჭდვა, თუ თქვენ გითხრათ. 311 00:14:29,600 --> 00:14:31,000 და შემდეგ, რამდენიმე წვრილმანებში. 312 00:14:31,000 --> 00:14:34,056 რა ვამბობთ, ამ უცნაური თანმიმდევრობა სიმბოლოების? 313 00:14:34,056 --> 00:14:34,556 ჰო. 314 00:14:34,556 --> 00:14:35,410 >> აუდიტორიის წევრი: New ონლაინ. 315 00:14:35,410 --> 00:14:35,990 >> დავით J Malan: ახალი ონლაინ. 316 00:14:35,990 --> 00:14:39,340 ასე რომ, თურმე, თქვენ ვერ მოხვდა, შევა, როდესაც თქვენ წერილობით პროგრამა. 317 00:14:39,340 --> 00:14:42,590 საერთოდ, შემდგენელი აპირებს ცოტა დაბნეული, რას ნიშნავს. 318 00:14:42,590 --> 00:14:45,340 პირიქით, თქვენ უნდა სიტყვასიტყვით ვთქვა, მომეცი ახალი ხაზი აქ. 319 00:14:45,340 --> 00:14:49,506 ასე რომ, / n არის ის, რაც ჩვენ ზოგადად დარეკეთ გაქცევის ხასიათი. 320 00:14:49,506 --> 00:14:50,870 ასე რომ, ო, ახალი ხაზი. 321 00:14:50,870 --> 00:14:53,810 და შემდგენელი იცის რომ როდესაც ის ხედავს / n, 322 00:14:53,810 --> 00:14:57,420 რეალურად უნდა გამოიწვიოს კომპიუტერი, საბოლოო ჯამში, ან printf, ამ შემთხვევაში, 323 00:14:57,420 --> 00:15:00,260 ამობეჭდოთ ფაქტობრივი ახალი ხაზი, როგორც დარტყმის, მიუთითოთ, 324 00:15:00,260 --> 00:15:01,480 კლავიშს. 325 00:15:01,480 --> 00:15:05,620 და ბოლოს, რა ვამბობთ, ამ ნაჭერი სინტაქსის არის? 326 00:15:05,620 --> 00:15:06,591 რას წარმოადგენს? 327 00:15:06,591 --> 00:15:07,090 ჰო. 328 00:15:07,090 --> 00:15:07,490 >> აუდიტორიის წევრი: [INAUDIBLE] 329 00:15:07,490 --> 00:15:08,660 >> დავით J Malan: ეს არის მხოლოდ ბოლოს ხაზი. 330 00:15:08,660 --> 00:15:09,909 ეს ბოლოს განცხადებაში. 331 00:15:09,909 --> 00:15:11,890 და გააცნობიეროს, რომ ჩვენ არ ამით მათ ყველგან. 332 00:15:11,890 --> 00:15:13,900 ჩვენ, რა თქმა უნდა არ დააყენა მათ დროს შაბათ ყველა ხაზი. 333 00:15:13,900 --> 00:15:16,680 მაგალითად, არსებობს არცერთი შესახებ პირველი ხაზი, არსებობს არცერთი ხაზი 334 00:15:16,680 --> 00:15:18,680 ერთად, მთავარი, არსებობს არცერთი მას შემდეგ, რაც Curly braces, 335 00:15:18,680 --> 00:15:21,740 მაგრამ თქვენ დავიწყებთ და მიიღეთ იცნობს, სადაც ის მოუწოდა. 336 00:15:21,740 --> 00:15:26,014 და ეს თითქმის ყოველთვის შემდეგ ფუნქცია დარეკეთ ან განცხადება, ზოგიერთი ქმედება 337 00:15:26,014 --> 00:15:27,180 რომ თქვენ რეალურად იღებენ. 338 00:15:27,180 --> 00:15:29,520 >> და ვიცი, ახლა, მით უმეტეს, თუ იმ ნაკლებად კომფორტული, 339 00:15:29,520 --> 00:15:32,540 ეს არის სახის სულელური რამ რომ თქვენ დასრულდება up შემთხვევით ბრახუნი 340 00:15:32,540 --> 00:15:33,873 თქვენი უფროსის წინააღმდეგ კედლის მეტი. 341 00:15:33,873 --> 00:15:36,107 იმის გამო, რომ თქვენ უნდა იყოს ლოგიკურად დარწმუნებული ზოგიერთი პრობლემა 342 00:15:36,107 --> 00:15:38,440 თქვენ მოგვარდეს პრობლემა კომპლექტი, და რა რამ მხოლოდ 343 00:15:38,440 --> 00:15:40,187 არ კომპილირდება ან თუნდაც აწარმოებს. 344 00:15:40,187 --> 00:15:43,270 ასე რომ, ხშირად, დასაწყისში, ის აპირებს იმის გამო, რომ თქვენ გაშვებული ფრჩხილებში, 345 00:15:43,270 --> 00:15:44,455 ან თქვენ გაშვებული მძიმით. 346 00:15:44,455 --> 00:15:46,547 ასე რომ, უბრალოდ მავიწყდება ამ სახის რამ, 347 00:15:46,547 --> 00:15:49,380 და ცდილობენ რომ არ იმედგაცრუებული მიერ მათ, რადგან ძალიან სწრაფად აკეთებს ამას 348 00:15:49,380 --> 00:15:50,640 გახდეს ძველი ქუდი. 349 00:15:50,640 --> 00:15:53,910 მაგრამ ეს ძალიან მარტივია მისაღებად იმედგაცრუებული დასაწყისში, შედეგად. 350 00:15:53,910 --> 00:15:57,020 >> ასე რომ, ახლა, მოდით, შევხედოთ, თუ როგორ ამ ხაზის რეალურად მუშაობს 351 00:15:57,020 --> 00:15:59,170 და შემდეგ შეხედეთ ოდნავ უფრო რთული. 352 00:15:59,170 --> 00:16:02,017 ასე რომ, ჩვენ აქ, უნარი მიაპყროს ამ ეკრანზე. 353 00:16:02,017 --> 00:16:04,100 და მოდით ვივარაუდოთ, რომ ეს არის ჩემი კომპიუტერის ეკრანზე, 354 00:16:04,100 --> 00:16:08,589 მაგრამ ვწერ, hello პროგრამა, და მე არ განხორციელდა, printf. 355 00:16:08,589 --> 00:16:10,130 ვინმეს აქვს განხორციელებული, printf. 356 00:16:10,130 --> 00:16:12,420 ვინ მინდა აცხადებენ, რომ არ განხორციელდა, printf? 357 00:16:12,420 --> 00:16:12,920 თუ შეიძლება? 358 00:16:12,920 --> 00:16:13,830 ყველა უფლება, რა გქვია? 359 00:16:13,830 --> 00:16:14,155 >> STUDENT 1 [? Copal. ?] 360 00:16:14,155 --> 00:16:15,529 >> დავით J Malan Copal, მოდის up. 361 00:16:15,529 --> 00:16:16,430 კარგით up. 362 00:16:16,430 --> 00:16:17,070 ყველა უფლება. 363 00:16:17,070 --> 00:16:22,260 ასე რომ, ჩვენ, აქ, რამდენიმე სახელი tags, მას შემდეგ, რაც ჩვენ, რათა პატარა თამაში ამ. 364 00:16:22,260 --> 00:16:26,270 და ჩვენ მოვუწოდებთ თქვენ, printf. 365 00:16:26,270 --> 00:16:30,170 და თუ გვინდა, რომ მეტი აქ, რაც მე უბრალოდ შედგენილი ეკრანზე, 366 00:16:30,170 --> 00:16:32,340 ეს უბრალოდ, არ არსებობს ჩემთვის, ეს. 367 00:16:32,340 --> 00:16:35,550 >> ყველა უფლება, ასე, hello ჩემი სახელი არის, printf, თუ გსურთ დააყენა, რომ. 368 00:16:35,550 --> 00:16:35,740 ყველა უფლება. 369 00:16:35,740 --> 00:16:37,360 და თუ შეგიძლიათ სტენდი მიერ კომპიუტერის ეკრანზე 370 00:16:37,360 --> 00:16:39,730 თითქოს თქვენ ფუნქცია მოვიდა ამ კომპიუტერული სისტემა. 371 00:16:39,730 --> 00:16:42,063 და თქვენი მიზანი ცხოვრებაში რეალურად ბეჭდვა რაღაც. 372 00:16:42,063 --> 00:16:44,560 მაგრამ ჰგავს პროგრამაში ჩვენ უბრალოდ იძულებული ეკრანზე, აქ, 373 00:16:44,560 --> 00:16:47,060 ჩვენ ვაპირებთ, რომ უნდა ფაქტობრივად, გადმოგცეთ ზოგიერთი შეყვანა. 374 00:16:47,060 --> 00:16:51,810 >> ასე რომ, თუ ჩემი შეყვანის, აქ არის როგორც ჩანს, რა გავიდა printf, 375 00:16:51,810 --> 00:16:53,730 მოდით სახის იმიტირებულ ეს მოსწონს ეს. 376 00:16:53,730 --> 00:16:58,720 მე ვაპირებ ფაქტიურად წერენ ნაჭერი ქაღალდი, "Hello, World" 377 00:16:58,720 --> 00:17:03,020 წარმატებული N. და იყოს ნათელი, თუ რა მე უბრალოდ შედგენილი ამ ნაჭერი ქაღალდი, 378 00:17:03,020 --> 00:17:04,020 ასე გამოიყურება. 379 00:17:04,020 --> 00:17:08,730 ასე რომ, როდესაც მე აწარმოებს ამ პროგრამის, და ეს ყვითელი ხაზი კოდი იღებს დასაჯეს, 380 00:17:08,730 --> 00:17:12,970 ეს თითქოს მე, მიესალმები პროგრამა, ვარ გადაცემის გარკვეული შეყვანის off ფუნქცია 381 00:17:12,970 --> 00:17:13,970 რომ ვინმე წერდა. 382 00:17:13,970 --> 00:17:16,595 >> და თუ თქვენ, თქვენი თითი, შეიძლება რეალურად, თითის, 383 00:17:16,595 --> 00:17:21,520 მიაპყროს ეკრანზე რასაც ეს თქვენ უკვე გადასცა, 384 00:17:21,520 --> 00:17:27,465 ეფექტი, საბოლოო ჯამში, არის ის, რომ ვხედავთ ზუსტად რომ, ეკრანზე. 385 00:17:27,465 --> 00:17:29,140 და პატარა კუთხეში შემთხვევაში აქ. 386 00:17:29,140 --> 00:17:31,540 და კარგი, ჩვენ არ უნდა დაინახოს ის, ახალი ხაზი, ამ ეტაპზე. 387 00:17:31,540 --> 00:17:33,900 არასწორი იქნება თქვენთვის მკაფიოდ მიაპყროს newline. 388 00:17:33,900 --> 00:17:36,810 მაგრამ თუ ჩვენ ინახება წერა სიტყვა ეკრანზე, ისინი დასრულდება მდე ქვემოთ რომ. 389 00:17:36,810 --> 00:17:39,560 >> ასე რომ, დიდი მადლობა, მაგრამ ჯოხი გარშემო აქ მხოლოდ ერთი მომენტი. 390 00:17:39,560 --> 00:17:42,860 ჩვენ ახლა გვჭირდება ერთი სხვა მოხალისე, თუ შეგვეძლო, 391 00:17:42,860 --> 00:17:46,830 რომ აპირებს უნდა ითამაშოს როლი of-- ეს მხოლოდ ადამიანი ორკესტრი 392 00:17:46,830 --> 00:17:47,355 ახლავე. 393 00:17:47,355 --> 00:17:47,980 როგორ შესახებ OK. 394 00:17:47,980 --> 00:17:48,480 სწორედ აქ. 395 00:17:48,480 --> 00:17:49,180 კარგით up. 396 00:17:49,180 --> 00:17:49,955 რა გქვია? 397 00:17:49,955 --> 00:17:50,922 >> სტუდენტური 2 [? IVAY. ?] 398 00:17:50,922 --> 00:17:51,796 დავით J Malan უკაცრავად? 399 00:17:51,796 --> 00:17:52,990 სტუდენტური 2 [? IVAY. ?] 400 00:17:52,990 --> 00:17:55,320 დავით J Malan: Ethan, მოდის up. 401 00:17:55,320 --> 00:17:55,820 არ არის? 402 00:17:55,820 --> 00:17:58,390 მივიღებ, რომ არასწორი, თუნდაც მას შემდეგ, რაც განაცხადა, რომ ის ორჯერ? 403 00:17:58,390 --> 00:17:58,890 კარგით up. 404 00:17:58,890 --> 00:18:00,030 ძნელი მოვისმინოთ აქ. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 OK. 407 00:18:05,740 --> 00:18:07,190 და მე ვწუხვარ, რა გქვია? 408 00:18:07,190 --> 00:18:07,680 >> სტუდენტური 2 [? IVAY. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? დავით J Malan IVAY. ?] OK. 410 00:18:08,790 --> 00:18:10,430 ახლა, თუ არ გონება, თქვენ GetString. 411 00:18:10,430 --> 00:18:11,013 >> სტუდენტური 2 OK. 412 00:18:11,013 --> 00:18:11,797 ზემოთ. 413 00:18:11,797 --> 00:18:14,630 დავით J Malan: ასე რომ, თუ გსურთ, ვდგავარ მხოლოდ ერთი წუთით, 414 00:18:14,630 --> 00:18:17,100 მოდით შევხედოთ ოდნავ უფრო რთული პროგრამა, რომელიც 415 00:18:17,100 --> 00:18:18,670 უკვე სამი ხაზი კოდი. 416 00:18:18,670 --> 00:18:24,080 ასე რომ, ჩვენ, ერთი, განვაცხადო თქვენი სახელი გამოყენებით printf; ორი ზარი GetString, 417 00:18:24,080 --> 00:18:28,060 მოჰყვა დავალება, რომ ცვლადში, სიმებიანი s, და მოუწოდა; 418 00:18:28,060 --> 00:18:31,260 და შემდეგ კიდევ ერთი ზარი, printf, მაგრამ ამ დროს ორი საშუალებებით. 419 00:18:31,260 --> 00:18:33,646 >> ასე რომ, ჩვენ უკვე გავაკეთეთ სახელმწიფო თქვენი სახელი, უფრო სწორად, ჩვენ 420 00:18:33,646 --> 00:18:34,770 უკვე გაკეთდა printf ზარი. 421 00:18:34,770 --> 00:18:38,960 ამიტომ, მე ვაპირებ დაწერა, აცხადებენ თქვენი სახელი. 422 00:18:38,960 --> 00:18:42,089 ასე რომ, რა მე ვაპირებ გაივლის, printf, რაღაც მომენტში, 423 00:18:42,089 --> 00:18:43,005 საკმაოდ უბრალოდ, ამ. 424 00:18:43,005 --> 00:18:47,760 ასე რომ, თუ გსურთ წავიდეთ წინ და მიაპყროს ამ ეკრანზე, რომ თქვენი შეყვანის ახლა. 425 00:18:47,760 --> 00:18:48,260 ყველა უფლება. 426 00:18:48,260 --> 00:18:51,160 და დავივიწყოთ სიმებიანი, ჩვენ ახლა აქვს ჩვენი საკუთარი ხაზი კოდი აქ. 427 00:18:51,160 --> 00:18:54,470 ასე რომ, GetString, ჩვენ გვჭირდება სინამდვილეში, GetString. 428 00:18:54,470 --> 00:18:57,920 ასე რომ, თქვენი მიზანი ცხოვრებაში არის მხოლოდ ფეხით შევიდა ორკესტრი, თუ შეიძლება, 429 00:18:57,920 --> 00:18:58,980 და მიიღეთ ვინმეს სახელი. 430 00:18:58,980 --> 00:19:00,860 მაგრამ მოდით მოგცემთ რაღაც დააყენა იგი. 431 00:19:00,860 --> 00:19:02,908 თუ გსურთ, წავიდეთ წინ და მიიღოს სიმებიანი, 432 00:19:02,908 --> 00:19:05,241 ვინმეს სახელზე, რომ ნაჭერი ქაღალდი, თუ შეიძლება. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> ყველა უფლება. 435 00:19:13,530 --> 00:19:15,250 და ჩვენ დავინახავთ, რაღაც მომენტში, რომლის სახელი ჩვენ ვიღებთ. 436 00:19:15,250 --> 00:19:17,630 ამავდროულად, რა მე ვაპირებ მზად არის ცარიელი ცალი 437 00:19:17,630 --> 00:19:21,340 ქაღალდი, რომელიც, მე ვაპირებ შესანახად რასაც ღირებულების 438 00:19:21,340 --> 00:19:25,752 ის არის, რომ GetString ბრუნდება ჩემთვის, მე, როგორც სიმებიანი ცვლადში, ს. 439 00:19:25,752 --> 00:19:26,252 ყველა უფლება. 440 00:19:26,252 --> 00:19:27,293 ასე რომ, რა გაქვთ? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 ყველა უფლება. 443 00:19:28,450 --> 00:19:30,910 ასე რომ, ჩვენ Nik სახელი აქ. 444 00:19:30,910 --> 00:19:33,750 ასე რომ, ეს არის ის, რაც სიტყვასიტყვით უკვე დაბრუნდა 445 00:19:33,750 --> 00:19:35,810 ჩემთვის, ასე ვთქვათ, GetString. 446 00:19:35,810 --> 00:19:38,720 >> მე, ახლა, ვაპირებ შეასრულოს მარცხენა მხარეს 447 00:19:38,720 --> 00:19:43,440 რომ გამოხატვის, სადაც მე, უბრალოდ, ასლი ქვემოთ, დღევანდელი მიზნებისათვის, ნიკო. 448 00:19:43,440 --> 00:19:46,470 ასე რომ, ახლა მე მაქვს ცვლადი მოუწოდა, s, შენახვის Nik სახელი. 449 00:19:46,470 --> 00:19:49,520 მე უკვე გადასცა printf, წინა არგუმენტი. 450 00:19:49,520 --> 00:19:52,800 მაგრამ ჩვენი მესამე და საბოლოო ხაზი კოდი, მე რეალურად უნდა ხელის printf 451 00:19:52,800 --> 00:19:58,500 რაღაც პატარა სხვადასხვა "hello,% s" წარმატებული ო. 452 00:19:58,500 --> 00:20:01,510 >> ასე რომ, ბოლო ხაზი მე ვაპირებ რომ send-- ბოლო რაც მე ვარ 453 00:20:01,510 --> 00:20:03,060 ვაპირებ დავწერო ახლა, ეს არის. 454 00:20:03,060 --> 00:20:06,310 ასე რომ, ორი ხაზი კოდი, ან საკმაოდ ბოლო ხაზი კოდი, 455 00:20:06,310 --> 00:20:10,690 მოუწოდებს ორ საშუალებებით ერთი, ეს, და ორი, ამ. 456 00:20:10,690 --> 00:20:13,330 ასე რომ, თუ ჩვენი printf ფუნქცია შეუძლია მიიღოს ამ არგუმენტად, 457 00:20:13,330 --> 00:20:16,000 მიადევნე თვალი გარკვევა ეკრანზე თქვენთვის. 458 00:20:16,000 --> 00:20:17,250 რეალურად არ არის, თქვენ შეგიძლიათ წავიდეთ წინ. 459 00:20:17,250 --> 00:20:19,333 ჩვენ დავტოვებთ მას, რადგან, ეს იგივე პროგრამა. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 ჩვენ უნდა დავინახოთ, hello, Nik. 462 00:20:27,380 --> 00:20:27,880 ყველა უფლება. 463 00:20:27,880 --> 00:20:29,670 ასე რომ, ეს იყო საკმაოდ hoops რომ ხტომა მეშვეობით, უბრალოდ 464 00:20:29,670 --> 00:20:31,620 დაწერა, აცხადებენ, თქვენი სახელი, და, hello, Nik. 465 00:20:31,620 --> 00:20:37,210 მაგრამ ეს მარტივი იდეა გაგზავნა მიღება, შეყვანის მიღება და გამომავალი მიღების, 466 00:20:37,210 --> 00:20:40,430 არის ზუსტად ის მოდელი, რომელსაც ჩვენ ვაპირებთ აქვს ამისთვის კი ყველაზე რთული ფუნქციები. 467 00:20:40,430 --> 00:20:41,804 ასე რომ, დიდი მადლობა, რომ თქვენ ორივე. 468 00:20:41,804 --> 00:20:43,730 ჩვენ გვყავს ლამაზი სტრესი ბურთი აქ თქვენ. 469 00:20:43,730 --> 00:20:48,890 და მადლობას გიხდით ჩვენს GetString და printf მოხალისეები alike. 470 00:20:48,890 --> 00:20:49,551 დიდი მადლობა. 471 00:20:49,551 --> 00:20:50,050 ყველა უფლება. 472 00:20:50,050 --> 00:20:50,966 დიდი მადლობა, რომ თქვენ ორივე. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> ასე რომ, ჩვენ ვლაპარაკობდით დღემდე, ძირითადად სიმები. 475 00:21:00,430 --> 00:21:06,550 და აღმოჩნდება, რომ C შეიძლება რეალურად მესმის, რამდენიმე სხვადასხვა ტიპის მონაცემები. 476 00:21:06,550 --> 00:21:08,860 ფაქტობრივად, ავიღოთ შევხედოთ ამ აქ. 477 00:21:08,860 --> 00:21:12,490 ასე რომ, C, და ბევრი ენების, მესმის, რამ მოუწოდა სიმბოლო. 478 00:21:12,490 --> 00:21:16,852 Char არის ზოგადად ერთი ბაიტი, რვა ბიტი. 479 00:21:16,852 --> 00:21:19,810 და იგი წარმოადგენს ერთი ხასიათი, როგორც ასო A, ან დედაქალაქში 480 00:21:19,810 --> 00:21:21,990 წერილი, ან ამას წერილი A, ან ძახილის წერტილი, 481 00:21:21,990 --> 00:21:25,440 ან ხასიათი, რომ თქვენ შეგიძლიათ აკრიფოთ თქვენს კლავიატურაზე, და ზოგჯერ კიდევ უფრო. 482 00:21:25,440 --> 00:21:26,795 ჩვენ ასევე არ უნდა დაინახოს მოძრავი. 483 00:21:26,795 --> 00:21:31,160 Float არის, ზოგადად, 32-bit ღირებულება, ან ოთხი ბაიტი 484 00:21:31,160 --> 00:21:33,660 რადგან ერთხელ, ერთი ბაიტი არის რვა ბიტი. 485 00:21:33,660 --> 00:21:36,675 >> ასე რომ float არის მცურავი წერტილი ღირებულება, რაღაც ათობითი წერტილი. 486 00:21:36,675 --> 00:21:38,550 და მართლაც, რომ ის, რაც ფილმის საუბარი 487 00:21:38,550 --> 00:21:42,240 როდესაც ისინი ისაუბრა მცურავი პუნქტიანი ღირებულებებს, გარკვეული ფიქსირებული რაოდენობის ბიტი 488 00:21:42,240 --> 00:21:43,940 გამოიყენება წარმოადგენს რეალური რაოდენობა. 489 00:21:43,940 --> 00:21:45,740 მაგრამ ასევე რამ მოუწოდა ორადგილიანი. 490 00:21:45,740 --> 00:21:47,860 ეს არსებობს Java, თუ თქვენ მიღებული APCS, 491 00:21:47,860 --> 00:21:51,540 და ორმაგი, როგორც სახელი საბედნიეროდ ვარაუდობს, არის ორჯერ დიდი, როგორც float. 492 00:21:51,540 --> 00:21:54,540 ეს არის კიდევ ნამდვილი რიცხვი, ეს უბრალოდ მეტი ბიტი 493 00:21:54,540 --> 00:21:58,390 , რომელიც, როგორც არასდროს, უფრო სწორად, ან შესანახად უფრო დიდი რაოდენობით. 494 00:21:58,390 --> 00:21:58,890 int არის ადვილი. 495 00:21:58,890 --> 00:22:00,181 ჩვენ ვისაუბრეთ, რომ ბოლო დროს. 496 00:22:00,181 --> 00:22:01,160 ეს უბრალოდ რიცხვი. 497 00:22:01,160 --> 00:22:03,980 და ეს არის ზოგადად 32 ბიტი, და ოთხი ბაიტი. 498 00:22:03,980 --> 00:22:07,850 >> ასე რომ, თუ თქვენ გაქვთ, ვნახოთ ახლა, 32 ბიტი და ჩვენ ეს კვირაში 0, 499 00:22:07,850 --> 00:22:10,820 ოდესმე ასე briefly-- თუ თქვენ გაქვთ 32 ბიტი, რა არის ყველაზე დიდი 500 00:22:10,820 --> 00:22:13,580 პუნქტების შეგიძლიათ წარმოადგენს, როგორც მთელი რიცხვი? 501 00:22:13,580 --> 00:22:16,080 მისცეს ან? 502 00:22:16,080 --> 00:22:18,380 ეს იგივეა, 4 მილიარდი, და ეს მხოლოდ იმ შემთხვევაში, თუ ჩვენ 503 00:22:18,380 --> 00:22:20,690 წარმოადგენს დადებითი ციფრები მხოლოდ. 504 00:22:20,690 --> 00:22:23,930 თუ თქვენ გაქვთ 32 ბიტი, და გსურთ წარმოადგენს უარყოფითი ნომრები, ასევე, 505 00:22:23,930 --> 00:22:27,100 თქვენი სპექტრი არის, არსებითად, უარყოფითი 2 მილიარდი დადებითი 2 მლრდ. 506 00:22:27,100 --> 00:22:29,250 მაგრამ ზოგადად, ჩვენ დავიწყებთ 0 ახვიდეთ 4 მილიარდი. 507 00:22:29,250 --> 00:22:32,400 >> თქვენ არ ვიცი ზუსტად, მაგრამ ჩვენ ვხედავთ ამ, ფაქტობრივად, თუ უბრალოდ 508 00:22:32,400 --> 00:22:36,400 ქმნის პატარა კალკულატორი, აქ. 509 00:22:36,400 --> 00:22:41,070 მე შემიძლია ამის გაკეთება, 2, 32, და ეს არის ის, თუ რამდენად დიდი, 510 00:22:41,070 --> 00:22:43,190 რამდენი ღირებულებების შეგიძლიათ წარმოადგენს, 32 ბიტი. 511 00:22:43,190 --> 00:22:44,442 და ეს დაახლოებით 4 მილიარდი. 512 00:22:44,442 --> 00:22:46,900 ამიტომ ჩვენ გავაგრძელებთ ვხედავთ, რომ ნომერი რამდენიმე სხვადასხვა ადგილებში. 513 00:22:46,900 --> 00:22:48,890 მაგრამ თუ თქვენ უკვე აღარ ციფრები, ვიდრე ის, რომ 514 00:22:48,890 --> 00:22:51,670 ის თურმე არსებობს რაღაც მოუწოდა ხანგრძლივი ხანგრძლივი. 515 00:22:51,670 --> 00:22:54,005 და ხანგრძლივი ხანგრძლივი არის ზოგადად 64 ბიტი, რომელიც 516 00:22:54,005 --> 00:22:56,380 იმას ნიშნავს, რომ ბრძანებით მასშტაბები კიდევ უფრო დიდი, ვიდრე int. 517 00:22:56,380 --> 00:22:59,510 >> ასე რომ, მე კი არ შეხედულებებსა დიდი ნომერი, რომელიც თქვენ შეიძლება წარმოადგენს, 518 00:22:59,510 --> 00:23:01,340 მაგრამ ეს საგრძნობლად დიდია. 519 00:23:01,340 --> 00:23:05,190 ახლა, როგორც განზე, ისტორიულად, თუ int არის 32 ბიტი, 520 00:23:05,190 --> 00:23:12,780 და ხანგრძლივი ხანგრძლივი არის 64 ბიტი, როგორ დიდი დიდი, არ არის დიდი ხანი? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 ნეტავ ვფიქრობ, რომ ეს უფრო მეტია, ვიდრე int მაგრამ იქნებ ნაკლებად ხანგრძლივი, ვიდრე ხანგრძლივი ხანგრძლივი, 523 00:23:20,330 --> 00:23:21,400 მაგრამ ეს რეალურად დამოკიდებულია. 524 00:23:21,400 --> 00:23:23,400 >> ასე რომ, გამოდის, ერთ-ერთი იმედგაცრუებები ძალიან, 525 00:23:23,400 --> 00:23:26,830 წერა კოდი გარკვეულ სისტემები, არის, რომ ყველა ამ მონაცემთა ტიპები 526 00:23:26,830 --> 00:23:28,440 აქვს წინასწარ განსაზღვრული ფასეულობები. 527 00:23:28,440 --> 00:23:29,771 ზოგჯერ ამ ბევრი ბიტი. 528 00:23:29,771 --> 00:23:31,020 ზოგჯერ ის, რომ ბევრი ბიტი. 529 00:23:31,020 --> 00:23:32,750 ასე, რომ თქვენ რეალურად უნდა იცოდეს, ზოგჯერ, რა აპარატურა 530 00:23:32,750 --> 00:23:34,083 თქვენ გაშვებული თქვენი პროგრამული უზრუნველყოფა. 531 00:23:34,083 --> 00:23:36,960 საბედნიეროდ, სხვა ენებზე და სხვა მონაცემთა ტიპები, რომ ახლა არსებობს, 532 00:23:36,960 --> 00:23:38,400 გაძლევთ საშუალებას უფრო ზუსტად. 533 00:23:38,400 --> 00:23:41,220 ისე, ჩვენ ვნახეთ, სიმებიანი, და ჩვენ ვნახეთ, bool, ძალიან, 534 00:23:41,220 --> 00:23:43,960 მაგრამ აღმოჩნდება, რომ იმ მოდის მხოლოდ CS50 ბიბლიოთეკა. 535 00:23:43,960 --> 00:23:46,240 ასე რომ, ეს არ აშენდა შევიდა C. ისინი ნაცვლად, 536 00:23:46,240 --> 00:23:49,340 მოდის, რომ ფაილი სახელად CS50.h, რომ ჩვენ საბოლოოდ 537 00:23:49,340 --> 00:23:51,831 კანი უკან ფენების. 538 00:23:51,831 --> 00:23:53,830 მაგრამ ახლა, ისინი მხოლოდ დამატებითი მონაცემები ტიპის. 539 00:23:53,830 --> 00:23:57,060 Bool, არის ჭეშმარიტი ან მცდარი, და სიმებიანი არის თანმიმდევრობა გმირები, 540 00:23:57,060 --> 00:23:57,970 ისევე როგორც სიტყვა. 541 00:23:57,970 --> 00:24:01,690 ახლა printf, ჩვენ ვნახეთ, არ აქვს placeholders,% s არის ერთი. 542 00:24:01,690 --> 00:24:05,430 და თქვენ შესაძლოა, ახლა, დასკვნის ამ სხვა მაგალითები, თუ როგორ 543 00:24:05,430 --> 00:24:07,720 თქვენ შეიძლება ჰქონდეს placeholder სხვადასხვა მონაცემთა ტიპები. 544 00:24:07,720 --> 00:24:11,150 მაგალითად, ვხვდები, თუ მინდოდა ამობეჭდოთ ერთი char გამოყენებით 545 00:24:11,150 --> 00:24:15,270 printf, ჩანაცვლების ალბათ% გ. 546 00:24:15,270 --> 00:24:19,650 და თუ გვინდა ამობეჭდოთ რიცხვი ერთად placeholder,% i. 547 00:24:19,650 --> 00:24:25,150 % LLD არის დიდი ხნის ათობითი მნიშვნელობა, მაგრამ ხანგრძლივი ხანგრძლივი, ამიტომ, რუკები, რომ. 548 00:24:25,150 --> 00:24:28,640 და მაშინ% f მცურავი წერტილი ღირებულება ან ორმაგი, 549 00:24:28,640 --> 00:24:31,270 ასე რომ, ზოგჯერ ისინი ხელახლა გამოიყენება სხვადასხვა კონტექსტში. 550 00:24:31,270 --> 00:24:33,350 ამიტომ, ჩვენ დავინახავთ და გამოყენება ზოგიერთი იმ დროთა განმავლობაში. 551 00:24:33,350 --> 00:24:36,420 და printf და სხვა ფუნქციების ასევე მხარდაჭერა სხვისი გაქცევის sequences, 552 00:24:36,420 --> 00:24:38,080 და ზოგჯერ, ეს აუცილებელია. 553 00:24:38,080 --> 00:24:39,770 ასე რომ, წარმატებული ო არის ახალი ხაზი. 554 00:24:39,770 --> 00:24:42,886 წარმატებული t, ვინმემ მინდა მიიღოს stab? 555 00:24:42,886 --> 00:24:43,760 აუდიტორიის წევრი: Tab. 556 00:24:43,760 --> 00:24:44,551 დავით J Malan Tab. 557 00:24:44,551 --> 00:24:46,810 ასე რომ, თუ თქვენ ნამდვილად გსურთ ამობეჭდოთ tab, არ 558 00:24:46,810 --> 00:24:49,940 ფიქსირებული რაოდენობის ფართები მაგრამ ფაქტობრივი tab ხასიათი, თქვენ არ მოხვდა თქვენი, 559 00:24:49,940 --> 00:24:53,490 tab, გასაღები წლის კლავიატურის, ზოგადად, თქვენ ნამდვილად წარმატებული ტ. 560 00:24:53,490 --> 00:24:57,750 წარმატებული ორმაგი გაცემა, რატომ მე ოდესმე გვინდა, რომ? 561 00:24:57,750 --> 00:24:58,250 მარჯვენა? 562 00:24:58,250 --> 00:25:00,417 რატომ არ შემიძლია უბრალოდ აკრიფოთ ორმაგი ციტირებით ჩემს კლავიატურაზე? 563 00:25:00,417 --> 00:25:02,124 აუდიტორიის წევრი: იმის გამო, რომ წინააღმდეგ შემთხვევაში, ეს 564 00:25:02,124 --> 00:25:04,830 აპირებს ვფიქრობ, რომ ეს არის ის, ბოლოს მოსწონს ბეჭდვითი [? ტექსტი. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J Malan: ზუსტად. 566 00:25:05,420 --> 00:25:07,211 გახსოვდეთ, ჩვენი printf მაგალითები, როდესაც ჩვენ 567 00:25:07,211 --> 00:25:10,075 გადიოდნენ printf, შეყვანის, მარცხენა რომ შეყვანის სიმებიანი 568 00:25:10,075 --> 00:25:12,950 და უფლება, რომ შეყვანის გაზაფხულზე, რა თქმა უნდა, იყო ორმაგი ციტირებით. 569 00:25:12,950 --> 00:25:16,270 თუ საკუთარი input აქვს ორმაგი პასუხის შუა, რომ 570 00:25:16,270 --> 00:25:18,920 კომპიუტერული შესაძლოა დაბნეული, როგორც, 571 00:25:18,920 --> 00:25:20,760 ჯერ ეს ორმაგი ციტირებით მიეკუთვნება შუა? 572 00:25:20,760 --> 00:25:22,150 ს ეკუთვნის, მარცხენა ერთი? 573 00:25:22,150 --> 00:25:23,566 ს ეკუთვნის, უფლება ერთი? 574 00:25:23,566 --> 00:25:26,780 ასე რომ, თუ გსურთ, რომ ეს სუპერ ნათელი, თქვენ backslash ორმაგი გაცემა, 575 00:25:26,780 --> 00:25:30,480 ასე რომ ის გაიქცა, ასე ვთქვათ, და ის conflated რაღაც. 576 00:25:30,480 --> 00:25:34,400 და იქ რამდენიმე სხვა აქ, წარმატებული r, ერთჯერადი შეთავაზებები, 0, 577 00:25:34,400 --> 00:25:36,510 რომ ვნახოთ, დროთა განმავლობაში, ისევე. 578 00:25:36,510 --> 00:25:37,760 ახლა, რაც შეეხება ფუნქციებს? 579 00:25:37,760 --> 00:25:41,630 >> ასე რომ ქმედებები, რომ შეგვიძლია დღემდე ამ ენაზე, C, ასევე, ჩვენ ვნახეთ, 580 00:25:41,630 --> 00:25:44,320 printf, რა თქმა უნდა, და ყველა სხვები ეკრანზე, 581 00:25:44,320 --> 00:25:47,140 აქ, რომ ჩვენ ვიყენებთ რა თქმა უნდა, პირველი რამდენიმე კვირის განმავლობაში მხოლოდ, 582 00:25:47,140 --> 00:25:48,485 მოვა დრო, როცა CS50 ბიბლიოთეკა. 583 00:25:48,485 --> 00:25:51,850 და ისინი მას ბევრად უფრო ადვილია, და C, რეალურად მიიღოს მომხმარებლის შეყვანის. 584 00:25:51,850 --> 00:25:54,200 გამოდის, რომ C, და გულწრფელად რამდენიმე ენაზე, 585 00:25:54,200 --> 00:25:57,450 ეს არის რეალური ტკივილი კისრის უნდა გააკეთოს რაღაც მარტივი, როგორიც შეეკითხება მომხმარებელს 586 00:25:57,450 --> 00:26:01,310 კლავიატურის, მისი შეყვანა. 587 00:26:01,310 --> 00:26:03,240 ასე რომ, ამ ფუნქციების გაუადვილებს. 588 00:26:03,240 --> 00:26:05,472 >> და მას ასევე აქვს შეცდომა შემოწმების მასშტაბით, 589 00:26:05,472 --> 00:26:07,180 ასე რომ, როდესაც თქვენ გავიხსენოთ, ოთხშაბათს, ჩვენ 590 00:26:07,180 --> 00:26:09,740 დაინახა, გაიმეორეთ, გაფრთხილება, როდესაც მე არ ითანამშრომლებს, 591 00:26:09,740 --> 00:26:11,700 მე და აკრეფილი სიტყვა, ნაცვლად ნომერი? 592 00:26:11,700 --> 00:26:15,402 ჩვენ გავაკეთეთ მძიმე მოხსნას დასაწყისში რათა დავრწმუნდეთ შესახებ თანამშრომლობს. 593 00:26:15,402 --> 00:26:17,860 მაგრამ ეს მხოლოდ სასწავლო დისკები, რომ ჩვენ საბოლოოდ, 594 00:26:17,860 --> 00:26:19,640 და სწრაფად, გამეხადა. 595 00:26:19,640 --> 00:26:22,630 >> ასე რომ recap, მაშინ, მოდით მიიღოს სწრაფი შევხედოთ, 596 00:26:22,630 --> 00:26:26,620 ჰგავს ჩვენ გავაკეთეთ Scratch, at ზოგიერთი კანონიკური კონსტრუქტების C. 597 00:26:26,620 --> 00:26:28,580 ეს ნიშნავს, რომ, ერთგვარი საქართველოს, იყოს ელვისებურ ტურს, 598 00:26:28,580 --> 00:26:30,990 ასე, რომ თქვენ გაქვთ მინიშნება და რომ ვნახე რამ პირველ რიგში. 599 00:26:30,990 --> 00:26:34,100 მაგრამ მაშინ ჩვენ შევხედოთ ფაქტობრივი კოდირება გამოყენება ზოგიერთი შენობა ბლოკად. 600 00:26:34,100 --> 00:26:36,710 ასე რომ, ისევე, როგორც Scratch, როდესაც ჩვენ განცხადებები მინდა, 601 00:26:36,710 --> 00:26:41,570 ამბობენ, ან, დაველოდოთ, C, ჩვენ გვაქვს ფუნქციები, ისევე, როგორც printf. 602 00:26:41,570 --> 00:26:45,350 >> თუ გვინდა, რომ გამოხატოს მდგომარეობა C, ის მსგავსია, სულითა, 603 00:26:45,350 --> 00:26:47,840 რომ თავსატეხი ცალი რომ ჩანდა ამ ნულიდან. 604 00:26:47,840 --> 00:26:49,850 მაგრამ ამის ნაცვლად, ჩვენ ფაქტიურად მხოლოდ წერენ, თუ. 605 00:26:49,850 --> 00:26:51,830 და მაშინ, ფრჩხილებში, ჩვენ დააყენა მდგომარეობაში, 606 00:26:51,830 --> 00:26:54,807 სადაც ეს პირობა არის ის, რაც ჩვენ მოვუწოდებთ, კიდევ ერთხელ, ლოგიკური გამოხატვის. 607 00:26:54,807 --> 00:26:56,390 ისევ და ისევ, ეს არის ერთგვარი pseudocode. 608 00:26:56,390 --> 00:26:58,830 და, ფაქტობრივად, // არის კომენტარი. 609 00:26:58,830 --> 00:27:00,550 ეს მხოლოდ ინგლისური სიტყვა თავს. 610 00:27:00,550 --> 00:27:03,000 მაგრამ ეს არ არის ზოგადი სტრუქტურა, თუ მდგომარეობა. 611 00:27:03,000 --> 00:27:05,220 მაგრამ ჩვენ დავინახავთ კონკრეტულ მაგალითები რაღაც მომენტში. 612 00:27:05,220 --> 00:27:07,960 >> თუ გსურთ აქვს ორი გზა გზის გასაყარი, 613 00:27:07,960 --> 00:27:11,740 ჰგავს ჩვენ გავაკეთეთ ჩვენი მოხალისე ოთხშაბათი, თქვენ შეიძლება ჰქონდეს, სხვაგან თუ. 614 00:27:11,740 --> 00:27:16,020 და თუ გვინდა, რომ აქვს მესამე და საბოლოო მდგომარეობა, ან რა სიტუაცია, 615 00:27:16,020 --> 00:27:19,006 თქვენ შეგიძლიათ მხოლოდ სხვა ბლოკი, არ არსებობს. 616 00:27:19,006 --> 00:27:21,880 და ანალოგიურად, ერთად ლოგიკური გამოთქმები, თქვენ შეგიძლიათ, და, მათ ერთად. 617 00:27:21,880 --> 00:27:24,296 და ჩვენ ვხედავთ, ოთხშაბათს, რომ ეს არ არის ერთი ampersand, 618 00:27:24,296 --> 00:27:28,220 ეს ორი, ქვედა დონის მიზეზის გამო, რომ ჩვენ საბოლოოდ ვხედავთ და ითამაშოს. 619 00:27:28,220 --> 00:27:30,410 ან-Ing რამ ერთად 2 ვერტიკალური ბარები. 620 00:27:30,410 --> 00:27:32,240 აშშ-კლავიატურის, ამ ზოგადად გასაღები 621 00:27:32,240 --> 00:27:35,730 ერთად Shift გასაღები ზემოთ თქვენი შეიყვანეთ გასაღები ან დაბრუნების გასაღები. 622 00:27:35,730 --> 00:27:38,620 >> მაშინ არსებობს ასეთი რამ, რომ ჩვენ ვიყენებთ იქნებ ერთხელ ან ორჯერ. 623 00:27:38,620 --> 00:27:42,570 ისინი ფუნქციურად ექვივალენტური რა შეგიძლიათ გააკეთოთ, რომელზეც, თუ სხვაგან, თუ, 624 00:27:42,570 --> 00:27:44,950 სხვაგან, თუ სხვაგან, მშენებლობა, მაგრამ ისინი უწოდებენ შეცვლა. 625 00:27:44,950 --> 00:27:48,020 ისინი ძალიან განსხვავებული, მაგრამ ჩვენ იხილეთ ჩვენი ზოგიერთი განაწილების კოდი, 626 00:27:48,020 --> 00:27:51,890 მომავალში პრობლემა კომპლექტი, სავარაუდოდ, ის, რომ ზოგჯერ უბრალოდ გალამაზებაში 627 00:27:51,890 --> 00:27:54,060 გზა გამოხატავს მთელი bunch of პირობებში, 628 00:27:54,060 --> 00:27:57,590 გარეშე ბევრი Curly braces და ბევრი ფრჩხილებში და წანაცვლება. 629 00:27:57,590 --> 00:28:01,910 მაგრამ ისინი გვაძლევენ, არც მეტი ძალა, ვიდრე ჩვენ უკვე. 630 00:28:01,910 --> 00:28:02,550 ახლა მარყუჟების. 631 00:28:02,550 --> 00:28:05,020 და ეს ერთი, ჩვენ შევხედოთ ერთი პატარა უფრო ნელა. 632 00:28:05,020 --> 00:28:08,470 მაგრამ შემდეგ, ჩვენ დავიწყებთ გამოიყენოს ეს, განსაკუთრებით მათთვის უკვე იცნობს. 633 00:28:08,470 --> 00:28:13,830 ეს არის კანონიკური გზა, თუ ძალიან arcane გზა, დაწერა loop in C. 634 00:28:13,830 --> 00:28:15,896 >> ახლა loop in Scratch იყო საკმაოდ მარტივია. 635 00:28:15,896 --> 00:28:17,020 თქვენ გაქვთ, სამუდამოდ ბლოკი. 636 00:28:17,020 --> 00:28:19,760 თქვენ გაქვთ, განმეორებით, ბლოკი მხოლოდ ნომერი უნდა აკრიფოთ. 637 00:28:19,760 --> 00:28:22,220 და, ამისთვის მარყუჟის, თქვენ შეგიძლიათ განახორციელოს ორივე იმ იდეებს, 638 00:28:22,220 --> 00:28:23,595 მაგრამ ეს ცოტა უფრო ტექნიკური. 639 00:28:23,595 --> 00:28:25,994 მაგრამ გულწრფელად, ასევე, შედარებით მარტივი. 640 00:28:25,994 --> 00:28:28,160 მას შემდეგ, რაც თქვენ იცით, ბრძანებით ოპერაციების, ფაქტიურად 641 00:28:28,160 --> 00:28:30,910 უბრალოდ აპირებს დანამატის ღირებულებები და ვუთხრა კომპიუტერი რა უნდა გააკეთოს. 642 00:28:30,910 --> 00:28:32,800 ასე რომ, აქ არის მაგალითი. 643 00:28:32,800 --> 00:28:38,040 ეს არის მარყუჟის, რომ, საკმაოდ უბრალოდ, ითვლის ერთი მდე 644 00:28:38,040 --> 00:28:40,187 კიდევ ერთი. 645 00:28:40,187 --> 00:28:42,020 და მხოლოდ glancing მას, მაშინაც კი, თუ თქვენ გაქვთ 646 00:28:42,020 --> 00:28:44,660 ადრე გამოცდილება ამ ენაზე, თუ რა რაოდენობის 647 00:28:44,660 --> 00:28:46,920 ამჯამად ეს, ალბათ, დაიწყება დათვლის დროს? 648 00:28:46,920 --> 00:28:47,730 OK, 0. 649 00:28:47,730 --> 00:28:50,240 და მე გამოცნობა, რომ ეს იმიტომ, რომ თქვენ ვხედავთ, რომ იქ int და მე, 650 00:28:50,240 --> 00:28:51,073 რომელიც ცვლადი. 651 00:28:51,073 --> 00:28:52,390 ეს ინიციალიზაცია 0. 652 00:28:52,390 --> 00:28:55,670 >> და შემდეგ, როგორც ჩანს, ჩვენ ავლით printf, მნიშვნელობა. 653 00:28:55,670 --> 00:28:58,000 და, ფაქტობრივად, მე ცოტა შეცდომას აქ. 654 00:28:58,000 --> 00:28:59,850 მაგრამ რომ იოლად დაფიქსირდა. 655 00:28:59,850 --> 00:29:02,390 ნება მომეცით, მე აქ. 656 00:29:02,390 --> 00:29:06,150 ახლა ჩვენ გვაქვს printf ყოფნა გავიდა, რომ ჩანაცვლების ღირებულება. 657 00:29:06,150 --> 00:29:08,299 და რა ხდება ითვლიან up მეშვეობით? 658 00:29:08,299 --> 00:29:08,840 აუდიტორია: 50. 659 00:29:08,840 --> 00:29:09,340 50. 660 00:29:09,340 --> 00:29:10,160 49. 661 00:29:10,160 --> 00:29:10,910 დავით J Malan: 49. 662 00:29:10,910 --> 00:29:13,340 ასე რომ, 50, ერთი შეხედვით, როგორც ჩანს, უფლება. 663 00:29:13,340 --> 00:29:16,990 მაგრამ, რომ, თურმე, იქნება ჩვენი პირობით, რომ ჩვენ შევინარჩუნოთ შემოწმების. 664 00:29:16,990 --> 00:29:21,740 და ჩვენ ვაპირებთ, ერთხელ i აღარ არის 50-ზე ნაკლები. 665 00:29:21,740 --> 00:29:24,920 ასე რომ, ამ მარყუჟის, პირიქით, უნდა შეასრულოს, ასე რომ სანამ მე ნაკლებია 50. 666 00:29:24,920 --> 00:29:28,891 მაგრამ, როგორც კი ეს ხდება 50, ან 51, ან უარესი, რომ უნდა შეწყვიტოს ავტომატურად. 667 00:29:28,891 --> 00:29:29,390 ყველა უფლება. 668 00:29:29,390 --> 00:29:31,200 >> ასე რომ, რა ხდება აქ? 669 00:29:31,200 --> 00:29:33,160 ასე რომ, ეს არის ბრძანებით ოპერაციების loop. 670 00:29:33,160 --> 00:29:35,440 ერთ-ერთი, თქვენ გაქვთ ე.წ. ინიციალიზაციისას. 671 00:29:35,440 --> 00:29:38,264 ეს ყვითელი მონიშნულია ბლოკი კოდი არის შესრულებული პირველი, 672 00:29:38,264 --> 00:29:40,930 და მას აქვს ეფექტი, რომ პოსტი ოთხშაბათი, ალბათ წარმოსადგენია. 673 00:29:40,930 --> 00:29:45,500 ეს ქმნის ცვლადში მე და ის მაღაზიები რომ ცვლადი ღირებულების 0. 674 00:29:45,500 --> 00:29:47,560 ასე რომ, მე არის 0 ამ ეტაპზე ამბავი. 675 00:29:47,560 --> 00:29:49,680 >> შემდეგი რამ, რომ ხდება ამ მშენებლობა, 676 00:29:49,680 --> 00:29:51,540 ის არის, რომ მდგომარეობა იღებს შემოწმდება. 677 00:29:51,540 --> 00:29:54,325 ასე რომ, მე შემოწმება დაუყოვნებლივ, არის მე 50-ზე ნაკლები? 678 00:29:54,325 --> 00:29:57,700 და რა თქმა უნდა, პასუხი ახლა არის, რა თქმა უნდა, დიახ. 679 00:29:57,700 --> 00:30:00,710 დიახ, იმიტომ, რომ მე არის 0, რომ აუცილებლად არანაკლებ 50. 680 00:30:00,710 --> 00:30:03,866 მაშინ რა ხდება, არის ის, რომ ამ ხაზი კოდი იღებს დასაჯეს. 681 00:30:03,866 --> 00:30:06,740 და სინამდვილეში, თუ არსებობს მრავალი ხაზების კოდი იმ Curly braces, 682 00:30:06,740 --> 00:30:09,020 ისინი ყველა შესრულებული ერთმანეთის მიყოლებით. 683 00:30:09,020 --> 00:30:11,450 >> და ეფექტი აქ, როგორც ჩანს, ამობეჭდოთ 684 00:30:11,450 --> 00:30:15,365 რაოდენობის i, რომელიც აპირებს იქნება 0, და შემდეგ 1 და 2. 685 00:30:15,365 --> 00:30:15,865 მაგრამ რატომ? 686 00:30:15,865 --> 00:30:17,410 რატომ მისაღებად incremented? 687 00:30:17,410 --> 00:30:20,680 ისე, მეოთხე, რაც ხდება, რომ ეს სინტაქსი 688 00:30:20,680 --> 00:30:22,610 იღებს შესრულებული, შემდეგ მძიმით. 689 00:30:22,610 --> 00:30:27,506 i ++ არის სტენოგრამის გზა ამბობდა; მიიღოს ღირებულება მე და დაამატეთ 1; 690 00:30:27,506 --> 00:30:30,380 და მაშინ მომავალი დრო გარშემო, დაამატოთ 1 მას; და მომავალი დრო გარშემო, 691 00:30:30,380 --> 00:30:31,330 დაამატეთ 1. 692 00:30:31,330 --> 00:30:33,640 >> ასე რომ, თუ ჩვენ ვაპირებთ შენარჩუნება, რა მოხდება 693 00:30:33,640 --> 00:30:35,890 მომდევნო მე არ ვაპირებ ინიციალიზაცია მე ოდესმე ისევ. 694 00:30:35,890 --> 00:30:38,290 თუ მე ინახება ინიციალიზაციისას i 0, ეს მაგალითი 695 00:30:38,290 --> 00:30:41,110 არასოდეს არ დასრულდება, რადგან i დავრჩებოდით 0. 696 00:30:41,110 --> 00:30:43,870 მაგრამ რა მოხდება რომ მდგომარეობა მოწმდება, 697 00:30:43,870 --> 00:30:54,280 ხაზი კოდი მიიღებენ შესრულებული, ი იქნება incremented, 698 00:30:54,280 --> 00:30:56,970 მდგომარეობა მოწმდება, კოდი მიიღებენ შესრულებული. 699 00:30:56,970 --> 00:30:59,790 და იგი ინახება cycling ერთხელ, და ისევ და ისევ, 700 00:30:59,790 --> 00:31:03,340 სანამ ++ იწვევს ღირებულება 50. 701 00:31:03,340 --> 00:31:05,870 >> მდგომარეობა მაშინ ამბობს, 50 50-ზე ნაკლები? 702 00:31:05,870 --> 00:31:09,360 პასუხი, რა თქმა უნდა, არ არის და ისე მთელი კოდი აჩერებს შესრულებაში. 703 00:31:09,360 --> 00:31:13,020 და თუ თქვენ გაქვთ უფრო კოდი ეკრანზე ქვემოთ, რომ ის, რაც ხდება შემდეგი. 704 00:31:13,020 --> 00:31:17,530 ეს pops out ამ Curly braces და გრძელდება ბეჭდვა შემდეგ. 705 00:31:17,530 --> 00:31:20,470 >> ასე ხუმრობა ახლა, ფოქსტროტი, რომ თქვენ ალბათ ახლა მესმის. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 ის ყოველთვის მხიარული. 708 00:31:31,560 --> 00:31:34,110 ეს იგივეა, რომ chuckles სახის percolate, 709 00:31:34,110 --> 00:31:38,370 და მაშინ ხვდები, თქვენ არ უნდა იყოს დასცინის იუმორი მოსწონს ეს. 710 00:31:38,370 --> 00:31:41,160 თუმცა, არსებობს გარკვეული takeaway აქ, პედაგოგთა, ძალიან. 711 00:31:41,160 --> 00:31:43,577 გამოდის, რომ მე ვარ დაკარგული ნაჭერი სინტაქსი, 712 00:31:43,577 --> 00:31:45,410 ან Foxtrot ის დაკარგული ნაჭერი სინტაქსი აქ. 713 00:31:45,410 --> 00:31:48,076 რა აკლია, რომ ჩვენ გვქონდა ყველა სხვა, მაგალითად, დღემდე? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 დაბრუნება, არის, ასე რომ არის რაღაც, 716 00:31:53,390 --> 00:31:54,440 რომ ჩვენ დავბრუნდებით ადრე ხანგრძლივი. 717 00:31:54,440 --> 00:31:55,398 რა აკლია, თუმცა? 718 00:31:55,398 --> 00:31:55,908 ჰო. 719 00:31:55,908 --> 00:31:58,150 >> აუდიტორიის წევრი: საქართველოს პარაფირებას [INAUDIBLE]. 720 00:31:58,150 --> 00:31:58,470 >> დავით J Malan: OK. 721 00:31:58,470 --> 00:31:58,980 ასე რომ, yeah. 722 00:31:58,980 --> 00:32:03,210 ასე რომ, რეალურად, ეს is-- ისე, და იმედი ინიციალიზაცია 723 00:32:03,210 --> 00:32:05,470 ზემოთ, უფრო სწორად, განაცხადა ზემოთ. 724 00:32:05,470 --> 00:32:06,960 ასე რომ, ეს არის კიდევ ერთი გზა ამის გაკეთება. 725 00:32:06,960 --> 00:32:08,685 მაგრამ არა ერთი ხაზი ეს მოქმედებს, თუმცა. 726 00:32:08,685 --> 00:32:09,310 როგორ აქ? 727 00:32:09,310 --> 00:32:10,196 >> აუდიტორიის წევრი: ეს curly აფრთხილებს? 728 00:32:10,196 --> 00:32:10,640 >> დავით J Malan: ჰო. 729 00:32:10,640 --> 00:32:12,080 ასე რომ, curly აფრთხილებს აკლია. 730 00:32:12,080 --> 00:32:15,495 მაგრამ ეს კოდი, ვგულისხმობ, რომ მათი საკრედიტო, რეალურად, სინტაქსურად მოქმედებს. 731 00:32:15,495 --> 00:32:17,610 გამოდის, თქვენ არ უნდა curly აფრთხილებს 732 00:32:17,610 --> 00:32:21,691 თუ თქვენ გაქვთ მხოლოდ ერთი ხაზი კოდი, რომ თქვენ მინდა შეასრულოს შიგნით loop. 733 00:32:21,691 --> 00:32:24,190 ახლა ჩვენ ყოველთვის, კლასის და ყველა ჩვენი განაწილების კოდი, 734 00:32:24,190 --> 00:32:26,730 მოიცავს curly აფრთხილებს მაინც, უბრალოდ სიცხადე გულისთვის. 735 00:32:26,730 --> 00:32:29,010 მაგრამ გვესმის, რომ სახელმძღვანელოები და ონლაინ მაგალითები, 736 00:32:29,010 --> 00:32:31,300 თქვენ შეიძლება ძალიან კარგად ვხედავთ curly braces დაკარგული შუალედში. 737 00:32:31,300 --> 00:32:34,850 და ეს კარგია, თუ რას არ დაზუსტებისათვის და განკუთვნილია 738 00:32:34,850 --> 00:32:38,650 არის მხოლოდ ერთი ხაზი კოდი, და არა მრავალი ხაზი კოდი, პოტენციურად. 739 00:32:38,650 --> 00:32:39,150 ყველა უფლება. 740 00:32:39,150 --> 00:32:44,500 ასე რომ, დაკავშირებული საკითხი ორაზროვნება, არის საკითხი overflow, 741 00:32:44,500 --> 00:32:48,560 იმ გაგებით, რომ, ასევე, არ რიცხვებით შეზღუდვები მათ 742 00:32:48,560 --> 00:32:49,970 ისევე, როგორც მცურავი პუნქტიანი ღირებულებებს? 743 00:32:49,970 --> 00:32:53,120 მსოფლიოში მცურავი წერტილი ღირებულებები, ჩვენ შეგვიძლია მხოლოდ იმდენად ზუსტი, 744 00:32:53,120 --> 00:32:55,710 მას შემდეგ, რაც, ზოგჯერ ცუდი რამ შეიძლება მოხდეს, 745 00:32:55,710 --> 00:32:57,760 და ჩვენი პროგრამების შეიძლება buggy და შეცდომა. 746 00:32:57,760 --> 00:33:00,050 ახლა კი მთელი რიცხვები, თქვენ შეგიძლიათ გადაეყარონ პრობლემებს. 747 00:33:00,050 --> 00:33:03,820 ახლა რიცხვი არ გააჩნია ათობითი წერტილი ან ნომრები მას შემდეგ. 748 00:33:03,820 --> 00:33:07,130 ეს არის მხოლოდ ნატურალური რიცხვი, როგორც წესი. 749 00:33:07,130 --> 00:33:09,430 რა შეიძლება წავიდეთ არასწორი int? 750 00:33:09,430 --> 00:33:12,210 თუ მე გამოყენებით int to ითვლიან, თუ რა შეიძლება წავიდეთ არასწორი? 751 00:33:12,210 --> 00:33:13,230 როგორც ჩანს, ბევრი მარტივი. 752 00:33:13,230 --> 00:33:13,873 ჰო. 753 00:33:13,873 --> 00:33:16,240 >> აუდიტორიის წევრი: იმ შემთხვევაში, თუ ნომერი იღებს [INAUDIBLE] 754 00:33:16,240 --> 00:33:17,073 >> დავით J Malan: ჰო. 755 00:33:17,073 --> 00:33:20,820 რა მოხდება, თუ თქვენ იმედი იმდენად მაღალია, რომ თქვენ ვერ გამოხატავენ, რომ მართლაც დიდი რაოდენობის. 756 00:33:20,820 --> 00:33:21,320 მარჯვენა? 757 00:33:21,320 --> 00:33:23,910 რაღაც მომენტში, თქვენ აპირებს უნდა აღემატებოდეს საზღვრები 758 00:33:23,910 --> 00:33:27,077 ერთი 32-bit ღირებულება ან 64-bit მნიშვნელობა. 759 00:33:27,077 --> 00:33:29,410 ახლა, მე არ ვარ დარწმუნებული, თუ როგორ შეხედულებებსა 64-ბიტიანი მნიშვნელობა, 760 00:33:29,410 --> 00:33:32,230 მაგრამ მე ვიცი, 32-bit რიცხვი, ყველაზე დიდი მნიშვნელობა შეიძლება იყოს, 761 00:33:32,230 --> 00:33:35,490 იმ შემთხვევაში, თუ ეს მხოლოდ დადებითად ღირებულებები, დაახლოებით 4 მილიარდი. 762 00:33:35,490 --> 00:33:39,000 ასე რომ, თუ მე ვცდილობ ითვლიან 5 მილიარდი, რაღაც უნდა მოხდეს. 763 00:33:39,000 --> 00:33:41,050 მაგრამ ვნახოთ, რა, ფაქტობრივად, შეიძლება მოხდეს. 764 00:33:41,050 --> 00:33:44,570 მსოფლიოში რიცხვი overflow, სადაც თქვენ, გრძნობა, 765 00:33:44,570 --> 00:33:48,270 overflow რანგში რიცხვი, რა შეიძლება მოხდეს? 766 00:33:48,270 --> 00:33:51,190 >> ასე რომ, აქ ბინარული ნომერი, ეს თითქოს 0. 767 00:33:51,190 --> 00:33:54,630 ეს ყველაფერი 1-ის და placeholders იქ არის უფლებამოსილების 2, 768 00:33:54,630 --> 00:33:55,980 ასე რომ, ეს არის ორობითი. 769 00:33:55,980 --> 00:33:59,416 ასე რომ, ეს არის 8, 1 ბიტი ეკრანზე. 770 00:33:59,416 --> 00:34:01,290 და თუ გავიხსენებთ, ან თქვენ სწრაფად მათემატიკის, 771 00:34:01,290 --> 00:34:06,074 რა მნიშვნელობა წარმოდგენილი აქ ამ რვა 1 ბიტი? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 და მაშინაც კი, თუ თქვენ არ იყვნენ სრულიად დარწმუნებულია მათემატიკის, თქვენ შეიძლება იგი out. 774 00:34:09,260 --> 00:34:10,550 ან შეიძლება უბრალოდ სახის მიზეზი მეშვეობით, 775 00:34:10,550 --> 00:34:12,633 დაველოდოთ წუთში, თუ მე წარმოადგენს 8 ბიტიანი მნიშვნელობა, 776 00:34:12,633 --> 00:34:17,750 და მაქვს 256 შესაძლო მნიშვნელობებია, მაგრამ პირველი, რომელიც არის 0, 777 00:34:17,750 --> 00:34:19,909 მე მხოლოდ ის ვიცი, რომ დიდი იქნება 255, 778 00:34:19,909 --> 00:34:21,510 და ის, რაც ამ ერთი შეიძლება იყოს. 779 00:34:21,510 --> 00:34:26,060 >> ასე რომ, ვფიქრობ, ვცდილობ, რომ დაამატოთ 1 მნიშვნელობა. 780 00:34:26,060 --> 00:34:28,750 რას იზამდით კლასის სკოლა, როდესაც დასძინა 1, და ეს 781 00:34:28,750 --> 00:34:31,139 ნამდვილად არ ჯდება, რადგან თქვენ უნდა შეასრულოს 1? 782 00:34:31,139 --> 00:34:34,380 რა არის ეს ნომერი აპირებს გახდეს, როდესაც თქვენ დაამატოთ 1? 783 00:34:34,380 --> 00:34:37,030 ის აპირებს გახდეს 0. 784 00:34:37,030 --> 00:34:37,530 მარჯვენა? 785 00:34:37,530 --> 00:34:41,139 იმის გამო, რომ თუ უფრო ბიტი და მე ცდილობენ, სახის, აკრიფოთ ის აქ 786 00:34:41,139 --> 00:34:44,710 თუ ჩვენ გვქონდა უფრო ბიტი, რაც ჩვენ შეიძლება ამის გაკეთება აქ რჩეულებში 1, 787 00:34:44,710 --> 00:34:47,370 და მაშინ ჩვენ მინდა ეს. 788 00:34:47,370 --> 00:34:48,739 Whoops. 789 00:34:48,739 --> 00:34:52,250 გვსურს აქვს 1 bit ყველა გზა აქ. 790 00:34:52,250 --> 00:34:55,530 >> მაგრამ თუ ეს არის სასრული მნიშვნელობა, ეს მხოლოდ 8 ბიტი, 791 00:34:55,530 --> 00:34:57,480 და ეს წინასწარ განსაზღვრული კომპიუტერი, 792 00:34:57,480 --> 00:34:59,370 რომ 1 არის ეფექტურად არ არსებობს. 793 00:34:59,370 --> 00:35:00,980 უბრალოდ სახის მოდის off cliff. 794 00:35:00,980 --> 00:35:05,480 ასე რომ, თუ თქვენ დაამატოთ 1 255, რა მნიშვნელობა თქვენ, როგორც ჩანს, კიდევ? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 ასე რომ, ნომრები შემთხვევით, და შესაძლოა, უნებლიეთ, 797 00:35:09,700 --> 00:35:12,040 დასრულდება მდე შესაფუთი გარშემო მოსწონს ეს. 798 00:35:12,040 --> 00:35:14,079 ასე რომ, რა შეიძლება იყოს გულისხმობს ეს? 799 00:35:14,079 --> 00:35:15,620 ისე, არსებობს რამდენიმე სხვადასხვა რამ. 800 00:35:15,620 --> 00:35:18,751 ასე რომ, ერთი, ეს არ დასრულდება მდე ეძებს მოსწონს 0, უნებლიეთ, 801 00:35:18,751 --> 00:35:20,750 მაგრამ შეგიძლიათ სახის ვხედავ, მაშინაც კი, რეალურ სამყაროში, 802 00:35:20,750 --> 00:35:23,416 უკეთესი ან უარესი, მანიფესტაციების ეს იდეა ლიმიტი. 803 00:35:23,416 --> 00:35:26,630 მაგალითად, ნებისმიერი, ვინც ოდესმე ითამაშა Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 ვინმეს არ უნდა იცოდეს მაქსიმალური რაოდენობის მონეტები 805 00:35:28,880 --> 00:35:32,032 შეგიძლიათ შეაგროვოთ Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 მიიღეთ ვხვდები საფუძველზე დღევანდელი წამყვანი შეკითხვებს. 807 00:35:35,640 --> 00:35:39,140 ეს უფრო დიდია, ვიდრე 256 ან 255. 808 00:35:39,140 --> 00:35:40,330 ეს 4 მილიარდი. 809 00:35:40,330 --> 00:35:42,080 ასე რომ, თურმე, და არსებობს ზოგიერთი ადამიანი 810 00:35:42,080 --> 00:35:46,080 ზოგიერთი googling დაადასტურა ბოლო ღამე მიღებული 4 მილიარდი ოქროს მონეტები, 811 00:35:46,080 --> 00:35:47,730 ან whatnot, ამ Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 მიუხედავად იმისა, რომ როგორც ჩანს, არ არის გზა შეასრულა თამაში, 813 00:35:49,860 --> 00:35:53,222 არსებობს ხარვეზის ან ფუნქცია, რომელიც საშუალებას გაძლევთ უბრალოდ დაერიცხება უამრავი და უამრავი რაოდენობა. 814 00:35:53,222 --> 00:35:54,930 მაგრამ უდიდესი შესაძლო ღირებულება, შესაბამისად 815 00:35:54,930 --> 00:35:58,360 ამ ეკრანზე გადაღებული ვინმე მე ი შემოსული, მართლაც, 4 მილიარდი. 816 00:35:58,360 --> 00:35:59,240 >> ახლა რატომ არის, რომ? 817 00:35:59,240 --> 00:36:03,040 ეს არის ზუსტად 4 მილიარდი, ალბათ იმიტომ, რომ ვიღაცამ გადაწყვიტა, 818 00:36:03,040 --> 00:36:05,500 რომელიც წერდა, ამ თამაშში, ის, რომ შეიძლება 4 მილიარდი, 819 00:36:05,500 --> 00:36:07,340 რაღაც, რაღაც, რაღაც, როგორც ღირებულება მე დაფასოებული 820 00:36:07,340 --> 00:36:10,256 ერთად კალკულატორი ადრე, მაგრამ ეს უბრალოდ ცოტა სუფთა ადამიანები 821 00:36:10,256 --> 00:36:12,610 ვთქვა, მაქსიმალური რაოდენობა საქართველოს coins-- ან უხეშად, 822 00:36:12,610 --> 00:36:14,860 როგორც მათ მოვუწოდებთ მათ, რომ თქვენ შეუძლია შეაგროვოს არის 4 მილიარდი. 823 00:36:14,860 --> 00:36:16,290 ასე რომ, რატომ არის ეს? 824 00:36:16,290 --> 00:36:20,310 როგორ არის კომპიუტერული თამაში ახორციელებს counter 825 00:36:20,310 --> 00:36:23,420 რომ შენახვა ტრეკზე რაოდენობის მონეტები გაქვთ? 826 00:36:23,420 --> 00:36:24,266 ისინი გამოყენებით რა? 827 00:36:24,266 --> 00:36:26,390 აუდიტორიის წევრი: იგი აჩერებს დათვლის შემდეგ 4 მილიარდი. 828 00:36:26,390 --> 00:36:27,720 დავით J Malan იგი აჩერებს დათვლის შემდეგ 4 მილიარდი, 829 00:36:27,720 --> 00:36:29,525 რაც იმას ნიშნავს, თქვენ შეგიძლიათ დასკვნის, როგორც პროგრამისტი, 830 00:36:29,525 --> 00:36:31,960 რომ ისინი ალბათ გამოყენებით 32 bit რიცხვი. 831 00:36:31,960 --> 00:36:35,380 ისევე როგორც პროგრამისტი ფაქტიურად აკრეფილი, int, მისი კოდი, 832 00:36:35,380 --> 00:36:39,620 და რომ ის ტიპის ცვლადი, ისინი იყენებენ შესანახად ვიღაცის კოდი. 833 00:36:39,620 --> 00:36:42,230 ასე რომ, არსებობს სხვა გამოვლინებები ამ სახის ფარგლებს გარეთ. 834 00:36:42,230 --> 00:36:45,063 >> ასე რომ, მე არ ითამაშა ამ game-- და ვკითხულობდი up ისტორიაში 835 00:36:45,063 --> 00:36:48,470 იმის დასადასტურებლად, რადგან much-- მაგრამ ორიგინალური ვერსია ცივილიზაციის, სადაც 836 00:36:48,470 --> 00:36:53,240 თქვენ, როგორც ჩანს, ერთმანეთთან ურთიერთობა სხვა და ომს და მშვიდობას, 837 00:36:53,240 --> 00:36:56,590 Gandhi უნდა იყოს ერთ-ერთი ყველაზე მშვიდობიანი გმირები, როგორც მე 838 00:36:56,590 --> 00:36:59,280 მესმის, რომ ეს, პირველ მობილური ცივილიზაციის. 839 00:36:59,280 --> 00:37:03,250 და სინამდვილეში, ისეთი მასშტაბის 1 დან 10, მისი აგრესია იყო მხოლოდ 1. 840 00:37:03,250 --> 00:37:05,620 ასე რომ, ოდესმე ასე ვთქვათ აგრესიული, როგორც ჩანს. 841 00:37:05,620 --> 00:37:11,590 >> მაგრამ რაღაც მომენტში, თქვენ, როგორც ჩანს, ინსტალაცია დემოკრატიას თქვენს გეოგრაფია. 842 00:37:11,590 --> 00:37:14,900 და თუ თქვენ დააყენოთ დემოკრატია თქვენი ვერსია თამაში, 843 00:37:14,900 --> 00:37:17,320 მაშინ თქვენი აგრესია დონეზე მიდის ქვემოთ. 844 00:37:17,320 --> 00:37:18,460 ეს კარგია. 845 00:37:18,460 --> 00:37:20,890 ხალხი უფრო მშვიდი როგორც ჩანს, ამ სიტუაციაში. 846 00:37:20,890 --> 00:37:23,190 მაგრამ, როგორც ჩანს, ვიღაცამ არ აქვს, თუ მდგომარეობა 847 00:37:23,190 --> 00:37:24,780 ორიგინალური ვერსია კოდი. 848 00:37:24,780 --> 00:37:30,650 >> ასე რომ, Gandhi აგრესიის დონე წავიდა დადებითი 1, -2, -1, 849 00:37:30,650 --> 00:37:33,840 მაგრამ თამაში ჯერ არ მესმის, უარყოფითი რიცხვები. 850 00:37:33,840 --> 00:37:38,680 ასე რომ, რა მოხდა, Gandhi აგრესია დონე წავიდა 1, 0, -1, 851 00:37:38,680 --> 00:37:40,900 რომელიც ჰქონდა ეფექტი შესაფუთი გარშემო მყოფი 852 00:37:40,900 --> 00:37:44,690 ყველაზე აგრესიული ხასიათი თამაში, ერთი ღირებულება 255, 853 00:37:44,690 --> 00:37:46,630 ისეთი მასშტაბის 1 დან 10. 854 00:37:46,630 --> 00:37:49,887 და მას შემდეგ, იქ იყო უფრო ინკარნაციაში ამ თამაშში, 855 00:37:49,887 --> 00:37:51,720 და ისინი ინახება ეს როგორც ერთგვარი აღდგომის კვერცხი, 856 00:37:51,720 --> 00:37:53,870 რომ Gandhi, როგორც ჩანს, ასე საშინლად აგრესიული. 857 00:37:53,870 --> 00:37:56,740 მაგრამ ეს იყო შედეგი ძალიან მარტივი პროგრამირების შეცდომა 858 00:37:56,740 --> 00:37:58,630 რომ ძალიან ადრეული ვერსია თამაში. 859 00:37:58,630 --> 00:38:02,860 >> ახლა უფრო შემაშფოთებელია, უფრო ცოტა ხნის წინ, Boeing 787 860 00:38:02,860 --> 00:38:05,720 დოკუმენტურად მქონე bug, არ ნიშნავს, რომ მოწყობილობა 861 00:38:05,720 --> 00:38:07,340 განსაკუთრებით გვინდა, რომ აქვს ხარვეზი. 862 00:38:07,340 --> 00:38:10,130 და სიმპტომები, რომელიც მე წავიკითხე აქ, სტატია შემოსული, 863 00:38:10,130 --> 00:38:13,840 იყო ეს მოდელი 787 თვითმფრინავი რომ უკვე იკვებება მუდმივად 864 00:38:13,840 --> 00:38:18,030 248 დღის შეიძლება დაკარგოს ყველა ცვლადი დენის, კონდიცირება, 865 00:38:18,030 --> 00:38:20,850 ელექტროენერგიის, იმის გამო, რომ გენერატორი კონტროლის ერთეული, 866 00:38:20,850 --> 00:38:23,330 GCUs, ერთდროულად შესვლის Fail-Safe რეჟიმში. 867 00:38:23,330 --> 00:38:26,790 ასე რომ, ეს იყო გაფრთხილება გაცემული როდესაც ეს პრობლემა აღმოაჩინეს. 868 00:38:26,790 --> 00:38:28,750 ეს მდგომარეობა გამოწვეულია მიერ პროგრამული counter, 869 00:38:28,750 --> 00:38:32,230 შიდა to GCUs, ასე რომ მთელი რიცხვი ან ცვლადი, 870 00:38:32,230 --> 00:38:36,850 რომ ნება overflow შემდეგ 248 დღის უწყვეტი დენის. 871 00:38:36,850 --> 00:38:40,350 ბოინგი პროცესში განვითარებადი GCU პროგრამული განახლება, რომელიც 872 00:38:40,350 --> 00:38:42,350 გამოსასწორებლად სახიფათო მდგომარეობაში. 873 00:38:42,350 --> 00:38:44,226 >> იმდენად მოსწონს სარაკეტო სცენარი, სადაც 874 00:38:44,226 --> 00:38:46,850 მათ ჰქონდათ გარკვეული სახის ცვლადი რომ იმედი და იმედი, 875 00:38:46,850 --> 00:38:50,720 და იმედი, მაგრამ თანდათან სავსე საზღვრების შესაძლებლობა, 876 00:38:50,720 --> 00:38:54,890 ანალოგიურად გააკეთა რა თვითმფრინავი ცვლადი overflow 877 00:38:54,890 --> 00:38:56,410 მას შემდეგ, რაც საკმარისი დრო გაშვებული. 878 00:38:56,410 --> 00:38:59,240 ასე რომ, ენა-in-cheek გზა სამუშაო ამ საკითხის ირგვლივ 879 00:38:59,240 --> 00:39:04,400 არის ნამდვილად, გადატვირთვისას, თქვენი თვითმფრინავი ყოველ 247 დღის განმავლობაში, ისე, რომ მეხსიერების იღებს წაშლილია 880 00:39:04,400 --> 00:39:06,100 და ცვლადი მიდის უკან 0. 881 00:39:06,100 --> 00:39:09,410 მაგრამ გააცნობიეროს, რომ ეს არის ძალიან დიდი განსახიერება პროგრამული უზრუნველყოფა, 882 00:39:09,410 --> 00:39:14,070 მაგრამ განსაკუთრებით როგორც ჩვენ გვესმის Apple- ის ოპერაციული სისტემები შესვლის მანქანები, 883 00:39:14,070 --> 00:39:18,030 და თვითმმართველობის მამოძრავებელი მანქანა Google, და ნებისმიერი რაოდენობის ინკარნაციაში პროგრამული უზრუნველყოფა 884 00:39:18,030 --> 00:39:21,000 ჩვენი ყოველდღიური ცხოვრება, ტელევიზორები და საათები და სხვა, 885 00:39:21,000 --> 00:39:24,950 გააცნობიეროს, გარშემორტყმული პროგრამული უზრუნველყოფა, ყველაფერი, რაც არის დაწერილი ჩვენთვის ადამიანები. 886 00:39:24,950 --> 00:39:28,150 >> და როგორც ჩვენ ყველა მალე აღმოაჩენთ, ეს არის ძალიან მარტივი და ძალიან ტიპიური 887 00:39:28,150 --> 00:39:30,250 რათა შეცდომები, როდესაც წერა პროგრამული უზრუნველყოფა. 888 00:39:30,250 --> 00:39:32,745 და თუ თქვენ არ დაჭერა მათ, ზოგიერთი ცუდი რამ შეიძლება მოხდეს. 889 00:39:32,745 --> 00:39:35,400 ახლა ხანდახან ზოგიერთი სასაცილო რამ შეიძლება მოხდეს, 890 00:39:35,400 --> 00:39:38,280 ან ხანდახან მაინც ჩვენ ვიცი, რომ ველოდებით გარკვეული ბოროტება. 891 00:39:38,280 --> 00:39:41,550 ასე რომ, 0 იყოფა 0, კლასის სკოლა, ზოგადად ცუდი რამ. 892 00:39:41,550 --> 00:39:43,050 ეს გაურკვეველია. 893 00:39:43,050 --> 00:39:46,440 და თურმე out-- და ვნახოთ, თუ ჩემი mic შეგიძლიათ აირჩიოთ ამ up-- რომ Apple 894 00:39:46,440 --> 00:39:47,790 გარკვეული fun ამ ცოტა ხნის წინ. 895 00:39:47,790 --> 00:39:48,850 ასე რომ, მე მაქვს iPhone აქ. 896 00:39:48,850 --> 00:39:54,160 მე ვაპირებ გაიგო Siri და ვთხოვთ მას, მომეცი პასუხი 0 იყოფა 0. 897 00:39:54,160 --> 00:39:55,850 რა არის 0 იყოფა 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI: წარმოიდგინეთ, რომ თქვენ გაქვთ 0 cookies, და გაყოფილი მათ თანაბრად 900 00:40:02,230 --> 00:40:03,540 შორის 0 მეგობარი. 901 00:40:03,540 --> 00:40:05,810 რამდენი cookies ამჯამად თითოეულ ადამიანს მისაღებად? 902 00:40:05,810 --> 00:40:06,350 ვხედავ? 903 00:40:06,350 --> 00:40:07,660 ეს არ აქვს აზრი. 904 00:40:07,660 --> 00:40:10,540 And Cookie Monster არის სამწუხარო რომ არ არსებობს cookies. 905 00:40:10,540 --> 00:40:13,987 და თქვენ სამწუხაროა, რომ თქვენ არ გაქვთ მეგობარი. 906 00:40:13,987 --> 00:40:15,570 დავით J Malan: ეს არის ერთგვარი უსიამოვნო. 907 00:40:15,570 --> 00:40:17,550 ასე რომ, ეს არის ის, რაც თქვა, რომ არსებობენ. 908 00:40:17,550 --> 00:40:21,380 ეს გაურკვეველი, ეს არ არის განსაზღვრული, და მართლაც, მრავალი პროგრამირების ენებზე 909 00:40:21,380 --> 00:40:24,950 ან, მართლაც, შემდგენლები იქნება აღმოაჩინოს, როდესაც თქვენ, პროგრამა, 910 00:40:24,950 --> 00:40:27,050 ცდილობენ გაყოფა 0 0. 911 00:40:27,050 --> 00:40:29,830 სიამოვნება, ვიდრე ეს, თუმცა, არის რომელიც, როგორც ჩანს, Cookie Monster 912 00:40:29,830 --> 00:40:31,270 არის Twitter ამ დღეებში. 913 00:40:31,270 --> 00:40:37,610 და მან უპასუხა, რომ ეს, ეს, რომელიც აბსოლუტურად adorable. 914 00:40:37,610 --> 00:40:40,110 მაგრამ მოდით მიიღოს სწრაფი შევხედოთ რამდენიმე სხვა აშენებს, 915 00:40:40,110 --> 00:40:43,459 და შემდეგ დააყენოს ზოგიერთი ამ კოდი გამოყენება, კარგი გზა. 916 00:40:43,459 --> 00:40:45,250 გამოდის, რომ, გარდა ამისა, მარყუჟების, არსებობს 917 00:40:45,250 --> 00:40:49,174 რაღაც მოუწოდა ხოლო მარყუჟის, რომ გამოიყურება სხვადასხვა და ხორციელდება 918 00:40:49,174 --> 00:40:51,590 პატარა differently-- და ჩვენ საბოლოოდ ვხედავთ examples-- 919 00:40:51,590 --> 00:40:53,500 მაგრამ გარკვეული თვალსაზრისით, ეს მარტივი, რადგან ეს 920 00:40:53,500 --> 00:40:56,670 არ იძლევა საშუალებას, რომ ვრთავთ და განახლება ფარგლებში საზღვრის loop. 921 00:40:56,670 --> 00:40:57,794 თქვენ შეგიძლიათ კვლავ განახორციელოს იგი. 922 00:40:57,794 --> 00:41:01,219 ასე რომ თქვენ შეგიძლიათ ზუსტად იგივე რამ ხოლო loop, როგორც ამისთვის მარყუჟის, 923 00:41:01,219 --> 00:41:03,260 მაგრამ თქვენი სინტაქსი, ultimately-- როგორც ჩვენ საბოლოოდ 924 00:41:03,260 --> 00:41:04,551 see-- იქნება განსხვავებული. 925 00:41:04,551 --> 00:41:07,450 იქ კი do ხოლო loop, რომელიც რეალურად ცოტა განსხვავებული, 926 00:41:07,450 --> 00:41:09,640 რომ მაშინ, როცა ამისთვის მარყუჟის და ხოლო loop ყოველთვის 927 00:41:09,640 --> 00:41:13,005 შეამოწმეთ მათი მდგომარეობა, პირველ რიგში, იმ შემთხვევაში, თუ თქვენ ამ რამ ზემოდან, 928 00:41:13,005 --> 00:41:16,440 ეს ერთგვარი ჰგავს ის აპირებს შეამოწმეთ იგი მდგომარეობა ბოლო იმიტომ, რომ ეს 929 00:41:16,440 --> 00:41:17,910 მართლაც ბოლო ხაზი კოდი. 930 00:41:17,910 --> 00:41:20,580 მართლაც, რომ იქნება სასარგებლო გარკვეული პროგრამები, რომ ჩვენ წერენ, 931 00:41:20,580 --> 00:41:23,746 თუ გვინდა, რომ უბრალოდ ბრმად, რომ რამე და საბოლოოდ შეამოწმოს მდგომარეობა. 932 00:41:23,746 --> 00:41:25,205 ეს არ არის აუცილებლად ცუდი რამ. 933 00:41:25,205 --> 00:41:27,912 თუ ჩვენ გვინდა ცვლადები, ჩვენ შეგვიძლია გავაკეთოთ მას რამდენიმე სხვადასხვა გზა. 934 00:41:27,912 --> 00:41:30,290 და ჩვენ ვნახეთ Foxtrot მულტფილმი, ერთი გზა ამის გაკეთება, 935 00:41:30,290 --> 00:41:33,400 სადაც თქვენ განაცხადოს თქვენი ცვლადი, როგორც int counter მძიმით, 936 00:41:33,400 --> 00:41:36,570 და შემდეგ later-- შესაძლოა, მომდევნო ხაზი, შესაძლოა, 10 ხაზები later-- 937 00:41:36,570 --> 00:41:37,800 თქვენ ნამდვილად ინიციალიზაცია იგი. 938 00:41:37,800 --> 00:41:42,230 ასე რომ, ეს 2 ხაზი კოდი განაცხადოს ცვლადი ტიპის int 939 00:41:42,230 --> 00:41:44,930 და მას counter, ასე რომ აძლევს ჩემთვის საკმარისი ბიტი გამართავს int. 940 00:41:44,930 --> 00:41:48,230 და მაშინ საბოლოოდ, ეს აყენებს ღირებულების 0 შევიდა, რომ ცვლადი. 941 00:41:48,230 --> 00:41:51,250 ეს აწყობს 0 და 1 ს in a ნიმუში, რომ ჩვენ ვიცით, გასულ კვირას, 942 00:41:51,250 --> 00:41:53,260 წარმოადგენს პუნქტების ჩვენ ვიცით, როგორც 0. 943 00:41:53,260 --> 00:41:56,920 ან გულწრფელად, თქვენ შეგიძლიათ ამის გაკეთება ბევრად უფრო მოკლედ, ისევე, როგორც ეს. 944 00:41:56,920 --> 00:41:59,390 >> ახლა ჩვენ ასევე გვაქვს უნარი მოვუწოდებთ ფუნქციები. 945 00:41:59,390 --> 00:42:03,070 და რეალურად, აქ არის 2 ონლაინ პროგრამა, ან ამონაწერი მისი, 946 00:42:03,070 --> 00:42:06,157 რომელიც საშუალებას გვაძლევს რეალურად დაწერა რამდენიმე კოდი, რომელიც 947 00:42:06,157 --> 00:42:08,990 იღებს ნახატზე user-- ბევრი ისევე როგორც ჩვენი მოხალისე მომენტში ago-- 948 00:42:08,990 --> 00:42:11,320 შენახვის შედეგი ცვლადში სახელი, 949 00:42:11,320 --> 00:42:15,470 და შემდეგ, ისევე როგორც ჩვენი მოხალისე ერთად printf-- ბეჭდავს იმ ფასეულობების 950 00:42:15,470 --> 00:42:19,180 გავლით ორ არგუმენტები, სიმებიანი, რასაც მოჰყვა ცვლადი 951 00:42:19,180 --> 00:42:20,781 უწოდებენ, სახელი, თავად. 952 00:42:20,781 --> 00:42:23,155 მოდით შევხედოთ, სანამ ჩვენ დავბრუნდებით Mario იქ, 953 00:42:23,155 --> 00:42:26,010 დროს რამდენიმე ახლა, მაგალითია. 954 00:42:26,010 --> 00:42:30,537 >> მე ვაპირებ წავიდეთ წინ და გახსნა up, ვთქვათ, ფუნქცია 0.c. 955 00:42:30,537 --> 00:42:33,120 და როგორც ყოველთვის, ეს კოდი არის შესაძლებელია, რა თქმა უნდა ნახვა, 956 00:42:33,120 --> 00:42:35,660 ასე რომ თქვენ შეუძლია გასწვრივ სახლში და შევხედოთ მას შემდეგ. 957 00:42:35,660 --> 00:42:40,400 მაგრამ აქ არის პროგრამა ეს არსი, ხაზს 17 22. 958 00:42:40,400 --> 00:42:43,270 მთავარი პროგრამა არის სადაც პროგრამა ყოველთვის დაწყებას აპირებს. 959 00:42:43,270 --> 00:42:46,980 ეს პროგრამა, როგორც ჩანს, აპირებს ამობეჭდოთ თქვენი სახელი, ნაწლავის. 960 00:42:46,980 --> 00:42:50,320 ეს მაშინ ხდება მოვუწოდებთ GetString, ისევე, როგორც ჩვენ გავაკეთეთ ჩვენი მოხალისეები. 961 00:42:50,320 --> 00:42:53,365 და მაშინ, ეს არის საინტერესო, ის აპირებს მოვუწოდებთ PrintName. 962 00:42:53,365 --> 00:42:56,490 გამოდის, ყველა ამ დროს, როგორც ჩანს, ფუნქცია მოუწოდა PrintName. 963 00:42:56,490 --> 00:42:57,614 ბეჭდავს რომ ვინმეს სახელი. 964 00:42:57,614 --> 00:43:01,210 ჩვენ არ უნდა გამოვიყენოთ printf საწყისი წარსულის, იქ PrintName. 965 00:43:01,210 --> 00:43:03,500 >> მაგრამ ეს დეზინფორმაციულ იმიტომ, რომ PrintName არ 966 00:43:03,500 --> 00:43:06,760 მოდის C. ადამიანები არ გამოგონება დაახლოებით 40 ან 50 წლის წინ, 967 00:43:06,760 --> 00:43:07,990 მე, ნაცვლად. 968 00:43:07,990 --> 00:43:10,330 და სინამდვილეში, თუ მე გადახვევა ქვემოთ შემდგომი, ცნობა 969 00:43:10,330 --> 00:43:14,200 როგორ შემიძლია დაწერა საკუთარი ფუნქციების C. ჩვენ საბოლოოდ 970 00:43:14,200 --> 00:43:16,319 რატომ ჩვენ შევინარჩუნოთ ამბობდა, ბათილად, რამდენიმე ადგილას, 971 00:43:16,319 --> 00:43:18,110 მაგრამ დღეს, მოდით უბრალოდ შეხედეთ სახელი. 972 00:43:18,110 --> 00:43:20,905 >> On line 24, თუ გვინდა, რომ შექმნათ თქვენი საკუთარი ფუნქცია, 973 00:43:20,905 --> 00:43:22,780 თქვენ ფაქტიურად დაწერა სახელი ფუნქცია. 974 00:43:22,780 --> 00:43:24,340 მე აირჩია PrintName. 975 00:43:24,340 --> 00:43:26,159 ფრჩხილებში, თქვენ მაშინ დააკონკრეტა, თუ რა სახის 976 00:43:26,159 --> 00:43:28,450 საშუალებებით, და რამდენი გვინდა, რომ ეს ფუნქცია მიიღოს. 977 00:43:28,450 --> 00:43:31,906 ამ შემთხვევაში, მე მინდა, რომ 1 ცვლადში, სახელი, 978 00:43:31,906 --> 00:43:34,030 და ეს იქნება საქართველოს ტიპის, სიმებიანი, ასე რომ, ის აპირებს 979 00:43:34,030 --> 00:43:35,780 უნდა იყოს გარკვეული თანმიმდევრობა სიმბოლო. 980 00:43:35,780 --> 00:43:39,170 და მაშინ, ამ პროგრამის ჰგავს Scratch, 981 00:43:39,170 --> 00:43:42,590 თქვენ შეიძლება ჰქონდეს საბაჟო თავსატეხი pieces-- აპირებს აქვს ამ საბაჟო ქცევა. 982 00:43:42,590 --> 00:43:46,760 იგი აპირებს მოვუწოდებთ printf გავლის შემდეგ, hello, placeholder, 983 00:43:46,760 --> 00:43:49,110 და შემდეგ ის აპირებს plug რასაც მომხმარებელს მოუწოდა. 984 00:43:49,110 --> 00:43:51,450 >> ასე რომ, ეს არის მაგალითი იმისა, თუ რა კომპიუტერული მეცნიერი იქნებოდა 985 00:43:51,450 --> 00:43:55,090 დარეკეთ აბსტრაქცია და ფუნქციური რღვევა, რომელიც მხოლოდ 986 00:43:55,090 --> 00:43:58,110 ლამაზი გზები ამბობდა არის თუ გსურთ ამ მაღალი დონის იდეა, 987 00:43:58,110 --> 00:44:01,569 როგორიც მე მინდა ფუნქცია, რომელიც ბეჭდავს ვინმეს სახელი, აბსოლუტურად თქვენ 988 00:44:01,569 --> 00:44:04,360 შეგიძლიათ სიტყვასიტყვით დაწერა printf და შემდეგ კორიდორი არგუმენტები გსურთ, 989 00:44:04,360 --> 00:44:07,340 და პროგრამა მუშაობს, როგორც ეს მას შემდეგ განაცხადა. 990 00:44:07,340 --> 00:44:10,510 მაგრამ თქვენ შეგიძლიათ დაიწყოს აბსტრაქტული მოშორებით ცნება ბეჭდვის სახელი. 991 00:44:10,510 --> 00:44:13,270 თქვენ შეგიძლიათ მისცეს მას სახელი, ისევე როგორც PrintName, და ეს 992 00:44:13,270 --> 00:44:15,280 ამ იდეას layering კვირაში 0. 993 00:44:15,280 --> 00:44:19,910 >> ამიერიდან, მე და თქვენ არ უნდა იცოდეს ან მაინტერესებს, რამდენად PrintName ხორციელდება. 994 00:44:19,910 --> 00:44:22,470 დიახ, იყენებს printf, შესაძლოა, არ არის, ვინც იცის, რა იყენებს? 995 00:44:22,470 --> 00:44:23,410 ვინ ზრუნავს? 996 00:44:23,410 --> 00:44:26,034 ახლა მე ვსაუბრობ აქ, ნაცვლად ქვემოთ აქ. 997 00:44:26,034 --> 00:44:28,700 და მართლაც, როგორც ჩვენი პროგრამების კიდევ მოწინავე და დახვეწილი, 998 00:44:28,700 --> 00:44:32,550 ჩვენ ვაპირებთ, რომ აღების მიანიჭა რომ ქვედა დონის თავსატეხი ცალი არსებობს. 999 00:44:32,550 --> 00:44:34,780 იმიტომ, რომ ჩვენ წერდა მათ ან ვინმეს გააკეთა, ასე რომ 1000 00:44:34,780 --> 00:44:36,910 რომ ჩვენ შეგვიძლია მაშინ დაეყრდნონ თავზე მათ. 1001 00:44:36,910 --> 00:44:39,430 მოდით შევხედოთ ამ ვარიანტი, ფუნქციონირებას ერთი. 1002 00:44:39,430 --> 00:44:41,780 >> ასე რომ, ეს ერთი პატარა უფრო მოწინავე, მაგრამ აღმოჩნდება, 1003 00:44:41,780 --> 00:44:44,570 რომ CS50 ბიბლიოთეკა, იქ მხოლოდ GetInt ფუნქცია. 1004 00:44:44,570 --> 00:44:47,720 ჩვენ არ ვფიქრობ, წლის წინ, განახორციელოს GetPositiveInt ფუნქცია. 1005 00:44:47,720 --> 00:44:50,970 და ეს ცოტა შემაშფოთებელი იმიტომ, რომ თუ თქვენ ბიჭები არიან პროგრამის წერა, სადაც 1006 00:44:50,970 --> 00:44:53,325 გსურთ მიიღოთ დადებითი რიცხვი საწყისი მომხმარებელს, 1007 00:44:53,325 --> 00:44:55,010 თქვენ შეგიძლიათ სრულიად გამოყენება GetInt. 1008 00:44:55,010 --> 00:44:57,840 და თქვენ შეგიძლიათ სრულიად შეამოწმოთ მდგომარეობა და შესაძლოა loop 1009 00:44:57,840 --> 00:45:00,320 თუ ეს int არის დიდი ვიდრე 0 დაწეროთ შესახებ 1010 00:45:00,320 --> 00:45:02,699 თუ იგი არ მისცემს თქვენ დადებითი რიცხვი. 1011 00:45:02,699 --> 00:45:04,740 მაგრამ მოდით ავაშენოთ ეს შენობის ბლოკირება თავს,, 1012 00:45:04,740 --> 00:45:06,555 საბაჟო Scratch ცალი, თუ გნებავთ. 1013 00:45:06,555 --> 00:45:08,680 მე ვაპირებ აქვს პროგრამა აქ, რომ საბოლოო ჯამში, მე 1014 00:45:08,680 --> 00:45:11,780 გსურთ შეძლებს მოვუწოდებთ GetPositiveInt, და მე მინდა, რომ იყოს 1015 00:45:11,780 --> 00:45:14,200 შეძლებს ამობეჭდოთ რასაც int არის. 1016 00:45:14,200 --> 00:45:16,240 მაგრამ ეს რეფერირებადი მოშორებით არის. 1017 00:45:16,240 --> 00:45:19,050 უბრალოდ მიეცა მაღალი დონის სახელი, რომელიც ამბობს, თუ რას აკეთებს, 1018 00:45:19,050 --> 00:45:21,780 რომელიც მშვენიერი, რადგან ეს ძალიან ინტუიტიური ახლა წავიკითხე. 1019 00:45:21,780 --> 00:45:24,710 და თუ მე მაინტერესებს, რა არის ქვეშ Hood, ნება მომეცით გადახვევა ქვემოთ. 1020 00:45:24,710 --> 00:45:27,140 და ეს ცოტა დაშინებას პირველი, განსაკუთრებით 1021 00:45:27,140 --> 00:45:29,470 თუ ეს თქვენი პირველი პროგრამა, მაგრამ მოდით შევხედოთ. 1022 00:45:29,470 --> 00:45:32,860 >> მე აღარ ამბობდა, ბათილია, იმიტომ, რომ თურმე ფუნქციები, 1023 00:45:32,860 --> 00:45:34,777 ჰგავს GetString, შეუძლია დაბრუნების მნიშვნელობა ჩემთვის. 1024 00:45:34,777 --> 00:45:36,610 ისინი არ არიან ბეჭდვა ეკრანზე, 1025 00:45:36,610 --> 00:45:38,410 მათ შეუძლიათ რეალურად გადასცემს მე რაღაც უკან. 1026 00:45:38,410 --> 00:45:41,535 და თუკი ადრე PrintName, მე არ უნდა არაფერი უკან. 1027 00:45:41,535 --> 00:45:44,160 მე საჭირო გვერდითი ეფექტი რაღაც გვიჩვენებს up ეკრანზე, 1028 00:45:44,160 --> 00:45:46,570 მაგრამ მე არ უნდა ადამიანის გადასცემს ჩემთვის რაღაც უკან. 1029 00:45:46,570 --> 00:45:48,840 აქ, GetPositiveInt, ისევე GetInt, 1030 00:45:48,840 --> 00:45:50,640 მინდა გადაეცემა რაღაც უკან. 1031 00:45:50,640 --> 00:45:53,220 ასე რომ, მე ვამბობ, არ, ბათილად, on line 23, მაგრამ int, 1032 00:45:53,220 --> 00:45:55,570 რომელიც ამბობს, ამ ფუნქციის რომ გწერთ, 1033 00:45:55,570 --> 00:45:58,860 მოუწოდა GetPositiveInt აპირებს გადასცემს ჩემს უკან მთელი რიცხვი, არაფერი, 1034 00:45:58,860 --> 00:45:59,890 არ ბათილად. 1035 00:45:59,890 --> 00:46:03,280 >> იმავდროულად, იგი აპირებს არსებობს საშუალებებით, ასე რომ მე, სახის, შეცვალა იგი. 1036 00:46:03,280 --> 00:46:08,280 მე არ აძლევდა GetPositiveInt ნებისმიერი input, მე მინდა, რომ მომეცი მისი გამომუშავება. 1037 00:46:08,280 --> 00:46:09,800 და მერე რა ხდება ახლა? 1038 00:46:09,800 --> 00:46:11,640 ასე რომ, აქ არის თუ როგორ შემიძლია განვაცხადო, ცვლადი. 1039 00:46:11,640 --> 00:46:15,090 მე ვაკეთებ გარეთ მარყუჟის, მიზეზების გამო, ჩვენ საბოლოოდ ვხედავთ, 1040 00:46:15,090 --> 00:46:17,700 მაგრამ ეს მხოლოდ აძლევს მე 32 ბიტი მოუწოდა, n, 1041 00:46:17,700 --> 00:46:20,952 და მე წინასწარ განსაზღვრის მათ შესანახად რიცხვი. 1042 00:46:20,952 --> 00:46:23,660 აქ არის ის, რომ ამის გაკეთება, ხოლო მშენებლობა, და ეს არის, თუ რატომ არის სასარგებლო. 1043 00:46:23,660 --> 00:46:26,700 ფაქტიურად ამისათვის, ხოლო n ნაკლებია, ვიდრე 1. 1044 00:46:26,700 --> 00:46:28,030 ასე რომ, ვნახოთ, რა მოხდება. 1045 00:46:28,030 --> 00:46:30,760 მე ბეჭდვა, გთხოვთ მაძლევს დადებითი int. 1046 00:46:30,760 --> 00:46:34,300 მე მაშინ კიდევ int გამოყენებით CS50 ს ფუნქციონირებს და ინახება n. 1047 00:46:34,300 --> 00:46:38,990 >> და მაშინ, რა ხაზი კოდი, ალბათ, იღებს შესრულებული შემდეგი, ლოგიკურად? 1048 00:46:38,990 --> 00:46:41,890 რომელი ხაზის ნომერი? 1049 00:46:41,890 --> 00:46:42,571 ჰო, ისე 31. 1050 00:46:42,571 --> 00:46:45,320 თქვენ არ ვიცი, სანამ თქვენ უკვე განუცხადა, ან სახის დასკვნის გაკეთება, 1051 00:46:45,320 --> 00:46:45,986 მაგრამ, რომ მართალია. 1052 00:46:45,986 --> 00:46:48,280 იგი მიდის ზედა და ქვედა და შემდეგ იმეორებს. 1053 00:46:48,280 --> 00:46:55,840 ასე რომ, თუ მე აკრეფილი ვთქვათ, ნომერი უარყოფითი 1, არის N ნაკლებია, ვიდრე ნეგატიური 1? 1054 00:46:55,840 --> 00:46:56,340 ჰო. 1055 00:46:56,340 --> 00:46:58,470 იმის გამო, რომ უარყოფითი 1 ნაკლებია, ვიდრე 1. 1056 00:46:58,470 --> 00:46:59,510 ასე რომ, რა უნდა მოხდეს? 1057 00:46:59,510 --> 00:47:03,260 მე ვაპირებ ამის გაკეთება ხოლო N ნაკლებია, ვიდრე 1, 1058 00:47:03,260 --> 00:47:05,760 ასე რომ, მე ვაპირებ დავუბრუნდეთ ხაზი 28. 1059 00:47:05,760 --> 00:47:09,530 >> და თითოეული time-- და მოდით აწარმოებს ამ ფუნქციის 1 კომპილირება, 1060 00:47:09,530 --> 00:47:11,340 და ახლა dot slash ფუნქცია 1. 1061 00:47:11,340 --> 00:47:14,280 თუ მე აკრიფოთ -1, ეს ვაპირებ შენარჩუნება ყვირილი at me 1062 00:47:14,280 --> 00:47:17,530 სანამ მე თანამშრომლობაზე, ვინაიდან თითოეულ ჩემი საშუალებებით ნაკლებია, ვიდრე 1 1063 00:47:17,530 --> 00:47:20,070 და თუ ის, ხოლო 1-ზე ნაკლები, მე ვაპირებ შენარჩუნება ამით. 1064 00:47:20,070 --> 00:47:24,240 თუ მე საბოლოოდ მისცეს მას რაოდენობის, როგორიცაა 50, საბედნიეროდ, ის ამბობს, მადლობა 50. 1065 00:47:24,240 --> 00:47:24,970 რატომ? 1066 00:47:24,970 --> 00:47:30,640 იმის გამო, რომ, როგორც კი n ნაკლები არ არის 1, მე შეჩერება ვებმებით ამ loop, 1067 00:47:30,640 --> 00:47:33,840 და ამ ახალი სიტყვით, დღეს, სანაცვლოდ, ფაქტიურად აკეთებს, რომ. 1068 00:47:33,840 --> 00:47:36,800 ასე რომ, მე უბრალოდ განხორციელდა, ამ გრძნობა, ეკვივალენტს GetString, 1069 00:47:36,800 --> 00:47:40,590 სადაც მე გადაცემის უკან ვინც იყენებთ ჩემთვის, გარკვეული მნიშვნელობა. 1070 00:47:40,590 --> 00:47:42,820 ეს არ უნდა იყოს სიმებიანი, ეს int. 1071 00:47:42,820 --> 00:47:44,990 ასე მარტივი, სწრაფი მაგალითად, მაგრამ ჩვენ მალე 1072 00:47:44,990 --> 00:47:47,930 ზოგიერთი უფრო დახვეწილი ვერსიები მაინც. 1073 00:47:47,930 --> 00:47:53,882 ფაქტობრივად, ავიღოთ შევხედოთ numeric ერთი, რომელსაც return.c. 1074 00:47:53,882 --> 00:47:55,590 და ეს ერთი, ფაქტობრივად, ცოტა მარტივი. 1075 00:47:55,590 --> 00:47:59,010 ასე რომ ამ პროგრამის მიზანი life-- მოდით კომპილირდება და აწარმოებს, 1076 00:47:59,010 --> 00:48:03,090 ასე რომ დაბრუნების, dot ხაზი, დაბრუნდება ცნობა 1077 00:48:03,090 --> 00:48:05,530 პროგრამა უბრალოდ კუბურები ღირებულება 2. 1078 00:48:05,530 --> 00:48:08,410 ეს საკმაოდ სულელური, ძნელია კოდი, ეს არ მიიღოს ნებისმიერი საშუალებებით, 1079 00:48:08,410 --> 00:48:12,220 მაგრამ ეს იმას დემონსტრირება სხვა ფუნქცია, რომელიც მე დაწერილი თავს. 1080 00:48:12,220 --> 00:48:15,760 ასე რომ, აქ, მე გამოაცხადა ცვლადი, მოუწოდა x, ტიპის int, 1081 00:48:15,760 --> 00:48:17,840 ტოლი ნომერი 2, სრულიად უკანონო. 1082 00:48:17,840 --> 00:48:19,530 ეს არის რამოდენიმე fluffy ბეჭდვა. 1083 00:48:19,530 --> 00:48:23,070 იგი აცხადებს, რომ x არის, ასეთი და ასეთი, cubing dot dot dot. 1084 00:48:23,070 --> 00:48:26,390 და ჯადოსნური, როგორც ჩანს, შეესაბამება 21. 1085 00:48:26,390 --> 00:48:30,120 მე მოუწოდებდა ფუნქცია მოუწოდა, cube, მე გადაცემის ფურცელი 1086 00:48:30,120 --> 00:48:32,890 რაოდენობის 2 წერია მასზე, და რა მნიშვნელობა, მათემატიკურად, 1087 00:48:32,890 --> 00:48:34,860 მინდა გავიდნენ ეს? 1088 00:48:34,860 --> 00:48:36,570 ისევე, როგორც საღი აზრის შემოწმება? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 მარჯვენა? 1091 00:48:37,570 --> 00:48:40,160 მე მინდა 2 კუბში უკან, 2 ძალა 3, 8 უკან. 1092 00:48:40,160 --> 00:48:42,570 >> ისე სად არის cube ხორციელდება? 1093 00:48:42,570 --> 00:48:44,349 ისე, შენიშნავს, რომ ის ხორციელდება ქვემოთ აქ. 1094 00:48:44,349 --> 00:48:47,140 და ისევე, როგორც ადრე, ლოგიკურად, მიუხედავად იმისა, რომ სინტაქსი, ალბათ, 1095 00:48:47,140 --> 00:48:49,320 ძალიან ახალი ბევრი თქვენგანი, მე მინდა ამ ფუნქციის 1096 00:48:49,320 --> 00:48:51,780 გადასცემს ჩემს უკან ფურცელი ქაღალდი რომელზეც int იგი. 1097 00:48:51,780 --> 00:48:53,990 ასე რომ, მე მაქვს int, სახელი თვითნებურად, 1098 00:48:53,990 --> 00:48:55,530 მაგრამ მოხერხებულად მოუწოდა კუბი. 1099 00:48:55,530 --> 00:48:58,430 შეყვანის მას, არის ნ ჩაწერეთ რიცხვი, ასე რომ 1100 00:48:58,430 --> 00:49:00,800 როგორ შემიძლია კორიდორი ნომერი 2 ფურცელზე. 1101 00:49:00,800 --> 00:49:03,910 და მაშინ გამოდის, C მხარს უჭერს მათემატიკის, ასე რომ თქვენ არ აქვს x ს ჯერ, 1102 00:49:03,910 --> 00:49:06,680 უბრალოდ გამოიყენოთ ვარსკვლავით გამრავლება. 1103 00:49:06,680 --> 00:49:11,070 ეს ბრუნდება N ჯერ N ჯერ n, რომელიც უბრალოდ cubed ღირებულება. 1104 00:49:11,070 --> 00:49:12,840 >> ასე რომ, სად მივდივართ ყველა ამ? 1105 00:49:12,840 --> 00:49:14,570 ეს არის ნამდვილად ელვისებურ ტურს, დანარჩენი დავრწმუნდი, 1106 00:49:14,570 --> 00:49:16,410 რომ სუპერ სექციები და ამ პრობლემის მითითებული 1, 1107 00:49:16,410 --> 00:49:18,368 თქვენ უნდა დადიოდა ყველა ეს ყველა სხვა. 1108 00:49:18,368 --> 00:49:22,490 და ამ პრობლემის მითითებული 1, ჩვენ გადასვლას საწყისი გრაფიკული სამყაროში Scratch 1109 00:49:22,490 --> 00:49:25,640 რაღაც უფრო command line C. მაგრამ ჩვენ სულისკვეთება 1110 00:49:25,640 --> 00:49:27,680 ამ აქ თამაში საწყისი წარსულის, სადაც 1111 00:49:27,680 --> 00:49:31,591 გამოყენებით C და სტანდარტული გამოცემა P კომპლექტი თქვენ განხორციელების Mario პირამიდის. 1112 00:49:31,591 --> 00:49:34,340 და ჰაკერი გამოცემა P მითითებული, თუ ისე აირჩიოს აირჩევს, 1113 00:49:34,340 --> 00:49:38,280 თქვენ განახორციელოს უფრო მეტი რთული პირამიდის ორი მწვერვალები. 1114 00:49:38,280 --> 00:49:41,239 თქვენ ასევე განახორციელოს ალგორითმი, ხარბი ალგორითმი. 1115 00:49:41,239 --> 00:49:43,030 თურმე არსებობს ის რამდენიმე საინტერესო ლოგიკა 1116 00:49:43,030 --> 00:49:45,640 უკან პროცესი გაშვებული სალარო სადგური 1117 00:49:45,640 --> 00:49:47,410 და რეალურად გადაცემის ვინმე უკან ცვლილება. 1118 00:49:47,410 --> 00:49:50,410 არ არის ალგორითმი რომელიც არის საკმაოდ მარტივია, რომ თქვენ, შესაძლოა, 1119 00:49:50,410 --> 00:49:53,576 დაჯექი ინტუიციურად, როცა პირველად წავიკითხე it-- ხვდებიან, რომ ის, რაც მე ყოველთვის 1120 00:49:53,576 --> 00:49:57,110 გაკეთდეს ნებისმიერ დროს მე მოცემული ვინმე ზოგიერთი ფული back--, რომელიც საშუალებას გაძლევთ, რომ ყოველთვის 1121 00:49:57,110 --> 00:50:00,679 რაოდენობის შემცირების ქაღალდის აღნიშნავს და ლითონის მონეტები 1122 00:50:00,679 --> 00:50:02,220 რომ თქვენ გადაცემის უკან შესახებ. 1123 00:50:02,220 --> 00:50:04,610 და ეს, რა თქმა უნდა, არის მყარი იმიტომ, რომ თუ წასვლა CVS ან whatnot, 1124 00:50:04,610 --> 00:50:06,430 თქვენ არ მინდა, რომ იყოს გადასცა მთელი bunch of პირობა 1125 00:50:06,430 --> 00:50:07,596 ან მთელი bunch of pennies. 1126 00:50:07,596 --> 00:50:10,120 გსურთ ნაკლები მონეტები, ალბათ, შესაძლებელია. 1127 00:50:10,120 --> 00:50:13,070 >> და ბოლოს, თქვენ ასევე უნდა დადგა უნდა ჩაერიოს მსოფლიოში წყლის 1128 00:50:13,070 --> 00:50:17,220 და რეალურად კიდევ მადლიერება ამისთვის რუკების შორის განაკვეთების ნაკადი, 1129 00:50:17,220 --> 00:50:19,890 მოსწონს, წყლის შხაპი, უბრალოდ რამდენად წყალი გამოიყენება. 1130 00:50:19,890 --> 00:50:22,640 და ალუზია მასში, იქნება ეს კლიპი აქ, 1131 00:50:22,640 --> 00:50:24,840 რომელიც ჩვენ დასრულდება for მხოლოდ 60 წამი, რომ 1132 00:50:24,840 --> 00:50:29,070 ხატავს სურათს დაბალი ნაკადის საშხაპე ხელმძღვანელები. 1133 00:50:29,070 --> 00:50:30,886 >> [ვიდეო აღწარმოების] 1134 00:50:30,886 --> 00:50:31,385 -ყველა უფლება. 1135 00:50:31,385 --> 00:50:32,774 მე მივიღე ყველაფერი აქ. 1136 00:50:32,774 --> 00:50:35,800 მე მივიღე Cyclone F სერია, Hydra, Jetflow, სტოკჰოლმში 1137 00:50:35,800 --> 00:50:37,660 Supersteam, თქვენ დაარქვით. 1138 00:50:37,660 --> 00:50:39,265 >> ისე, თავად რას მირჩევთ? 1139 00:50:39,265 --> 00:50:40,460 >> რა ეძებ? 1140 00:50:40,460 --> 00:50:41,300 >> -Power კაცი. 1141 00:50:41,300 --> 00:50:42,285 სიმძლავრე. 1142 00:50:42,285 --> 00:50:42,910 მსგავსი Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -სწორედ რადიაციული. 1144 00:50:44,520 --> 00:50:46,335 -სწორედ უფლება. 1145 00:50:46,335 --> 00:50:48,275 -ახლა რა არის ეს? 1146 00:50:48,275 --> 00:50:49,704 -სწორედ კომანდოს 450. 1147 00:50:49,704 --> 00:50:50,620 მე არ ვყიდი, რომ ერთი. 1148 00:50:50,620 --> 00:50:51,700 >> აბა, რომ ის, რაც ჩვენ გვინდა. 1149 00:50:51,700 --> 00:50:52,680 ეს არის commando 450. 1150 00:50:52,680 --> 00:50:53,882 >> -არ მჯერა მე. 1151 00:50:53,882 --> 00:50:55,090 ის გამოიყენება მხოლოდ ცირკის. 1152 00:50:55,090 --> 00:50:56,512 ეს სპილოები. 1153 00:50:56,512 --> 00:50:59,356 >> -I'll გადაიხადოს არაფერი. 1154 00:50:59,356 --> 00:51:01,252 >> რა ჯერი? 1155 00:51:01,252 --> 00:51:02,760 >> დააკავეს ვერ უმკლავდება, რომ. 1156 00:51:02,760 --> 00:51:04,910 ის დახვეწილი. 1157 00:51:04,910 --> 00:51:05,750 Oh yeah. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [END აღწარმოების] 1160 00:51:37,320 --> 00:51:37,700 დავით J Malan ყველა უფლება. 1161 00:51:37,700 --> 00:51:38,820 ეს არის ის, თუ CS50. 1162 00:51:38,820 --> 00:51:40,050 ჩვენ დავინახავთ, თქვენ მომავალ კვირას. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> დინამიკები 1: [? Scully?] [? Ian,?] რამდენადაც ეს outro პროექტი, 1165 00:51:49,029 --> 00:51:50,362 რა თქვენ ბიჭები ამუშავება? 1166 00:51:50,362 --> 00:51:51,990 >> დინამიკები 2: ისე, ჩვენ მოცემული ის სხვადასხვა აზრის, 1167 00:51:51,990 --> 00:51:53,250 და ვფიქრობთ, რომ საუკეთესო გზა, რომელთა მიზანია: 1168 00:51:53,250 --> 00:51:53,660 >> დინამიკები 3: მაისი მე? 1169 00:51:53,660 --> 00:51:54,326 >> დინამიკები 2: ჰო. 1170 00:51:54,326 --> 00:51:56,360 ყველა საშუალებით, რეალურად. 1171 00:51:56,360 --> 00:51:59,425 >> დინამიკები 3: ვფიქრობ, ჩვენ შეგვიძლია შევაჯამოთ ჩვენი იდეა 1172 00:51:59,425 --> 00:52:05,450 იმ outros ერთი word-- არაფერი. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> დავით J Malan: არაფერი? 1175 00:52:10,409 --> 00:52:11,200 დინამიკები 3: არაფერი. 1176 00:52:11,200 --> 00:52:12,990 დავით J Malan: რას ნიშნავს? 1177 00:52:12,990 --> 00:52:16,260 დინამიკები 3: outros დაახლოებით არაფერი. 1178 00:52:16,260 --> 00:52:21,720 დინამიკები 2: ისე, მე ვგულისხმობ, ფილოსოფიის, ვგულისხმობ, არაფერი არ არის ყოველთვის რაღაც. 1179 00:52:21,720 --> 00:52:24,200 დინამიკები 1: ასე what's-- რა არის შენობა? 1180 00:52:24,200 --> 00:52:25,720 დინამიკები 3: ასე რომ, როგორც ცხოვრებაში. 1181 00:52:25,720 --> 00:52:26,680 OK. 1182 00:52:26,680 --> 00:52:28,294 რა გავაკეთოთ დღეს? 1183 00:52:28,294 --> 00:52:31,811 >> დავით J Malan ავდექი, ჰქონდა საუზმე და მოვიდა მუშაობა. 1184 00:52:31,811 --> 00:52:34,056 >> დინამიკები 3: ეს outro. 1185 00:52:34,056 --> 00:52:36,806 დინამიკები 2: მაგრამ, მე ვგულისხმობ, არ უნდა რაღაც მოხდება მას the-- 1186 00:52:36,806 --> 00:52:37,889 დინამიკები 3: არა, არა, არა, არა. 1187 00:52:37,889 --> 00:52:40,220 არაფერი ხდება. 1188 00:52:40,220 --> 00:52:42,910 >> დინამიკები 1: რატომ ვართ ჩვენ თვალს? 1189 00:52:42,910 --> 00:52:46,956 >> დინამიკები 3: იმის გამო, რომ ეს outro CS50. 1190 00:52:46,956 --> 00:52:48,652 >> დავით J Malan: ჯერ არ არის. 1191 00:52:48,652 --> 00:52:49,151