1 00:00:07,590 --> 00:00:09,920 [Powered by Google Translate] დევიდ ჯ Malan: ყველა უფლება, ეს არის CS50 და ეს არის 2 00:00:09,920 --> 00:00:15,250 დასასრულს კვირა 1, ისე სასწავლო ბარათები და საერთო რაოდენობის 3 00:00:15,250 --> 00:00:18,640 თანაკლასელები, რომ თქვენ ეს წელი არის 745. 4 00:00:18,640 --> 00:00:20,920 და ჩვენ ძალიან thrilled ჰქონდეს ბევრი თქვენ რა თქმა უნდა 5 00:00:20,920 --> 00:00:23,680 ამ სემესტრში, მაგრამ მიუხედავად იმისა, რომ ეს კურსი არის იმდენად დიდი, 6 00:00:23,680 --> 00:00:26,090 გააცნობიეროს, რომ ეს ყველაფერი მოსწონს პარასკევი lunches, როგორიცაა 7 00:00:26,090 --> 00:00:29,020 სამუშაო საათებში, 15 კაციანი სექციები, და ა.შ. რომ 8 00:00:29,020 --> 00:00:30,590 ნამდვილად ნიშნავდა, რომ შევქმნათ უფრო ინტიმური 9 00:00:30,590 --> 00:00:31,140 გარემოს. 10 00:00:31,140 --> 00:00:34,070 ასე რომ მიუხედავად იმისა, რომ ჩვენ შეიძლება შევიკრიბოთ ერთხელ ან ორჯერ კვირაში, აქ 11 00:00:34,070 --> 00:00:36,420 Sanders, ვიცი, რომ ბევრი თქვენი გამოცდილება ამ კურსში 12 00:00:36,420 --> 00:00:39,330 იქნება ძალიან ბევრი იყოს პრაქტიკული on ერთად თქვენი თანაკლასელები 13 00:00:39,330 --> 00:00:40,730 და აკადემიური პერსონალის. 14 00:00:40,730 --> 00:00:43,960 >> ასე რომ აქ ჩვენ გადასვლა, Fall 2012. 15 00:00:43,960 --> 00:00:47,530 ასე რომ გავიხსენოთ, რომ ბოლო დროს ჩვენ დასრულდა ნოტა 16 00:00:47,530 --> 00:00:50,460 ორაზროვნება, ვსაუბრობთ წარმომადგენლობა ნომრები. 17 00:00:50,460 --> 00:00:52,950 და ჩვენ შევხედე ერთ ჩავარდნებს, რაც მოხდა, წელს 18 00:00:52,950 --> 00:00:54,920 რეალურ ცხოვრებაში, როდესაც საქმე გაუგებრობა 19 00:00:54,920 --> 00:00:55,890 როგორ კომპიუტერები მუშაობენ. 20 00:00:55,890 --> 00:00:58,590 ისე, დღეს ჩვენ დავუბრუნდეთ კიდევ ერთი იმ იდეებს, როგორც 21 00:00:58,590 --> 00:01:01,410 ასევე გავაგრძელებთ განხილვას CS50 კლიენტი 22 00:01:01,410 --> 00:01:04,090 და C და რას ნიშნავს ნამდვილად პროგრამის. 23 00:01:04,090 --> 00:01:06,430 მაგრამ პირველი, მხოლოდ რამდენიმე Whirlwind განცხადებები. 24 00:01:06,430 --> 00:01:08,930 >> სექცია იწყება ამ კვირას და პირველ კვირას ყოველთვის 25 00:01:08,930 --> 00:01:11,030 ცოტა სწრაფი დაწყება, რადგან ჩვენ უბრალოდ მიიღო წელს 26 00:01:11,030 --> 00:01:12,620 თქვენი მონაკვეთზე ფორმები. 27 00:01:12,620 --> 00:01:14,450 ვაკეთებთ იგივე, ახლა, როდესაც სწავლების პრაქტიკის, ახლა 28 00:01:14,450 --> 00:01:16,410 მათ იცოდნენ, მათი გრაფიკების, ამიტომ ჩვენ, რომლის მიზანია, რომელსაც 29 00:01:16,410 --> 00:01:19,380 შაბათს დილით, თვალყური თქვენთან ერთად თქვენი სექციაში 30 00:01:19,380 --> 00:01:20,760 დავალება და TF. 31 00:01:20,760 --> 00:01:22,770 გააცნობიერონ, რომ ისინი დავიწყებთ მეორე დღეს, კვირა 32 00:01:22,770 --> 00:01:24,510 ან ორშაბათს ან სამშაბათს. 33 00:01:24,510 --> 00:01:27,730 და შემდეგ ჩვენ განთავსდება მონაკვეთზე ცვლილებების რადგან ისინი წარმოიქმნება 34 00:01:27,730 --> 00:01:28,690 წელს, ამ დღეებში. 35 00:01:28,690 --> 00:01:31,590 ოფისი საათის იმავდროულად, არიან, კიდევ ერთხელ, ამაღამ, 8 საათზე, 11 წლის 36 00:01:31,590 --> 00:01:33,740 Annenberg, ისევე როგორც ხვალ. 37 00:01:33,740 --> 00:01:36,150 მიუხედავად იმისა, რომ პრობლემა კომპლექტი ზოგადად გამო ხუთშაბათს 38 00:01:36,150 --> 00:01:39,020 შუადღისას, გააცნობიეროს გაქვთ ხუთამდე გვიან დღეების გასატარებლად, 39 00:01:39,020 --> 00:01:42,430 აქედან გამომდინარე ხელმისაწვდომობის საათებში ხუთშაბათს, თუ 40 00:01:42,430 --> 00:01:45,930 თქვენ ფულადი ერთ იმ გვიან დღე და ამით, წარუდგინოს 41 00:01:45,930 --> 00:01:47,070 რაღაც პარასკევს. 42 00:01:47,070 --> 00:01:50,850 ნება მომეცით ვარაუდობენ, რომ Scratch შორის არის სიამოვნება, შორის 43 00:01:50,850 --> 00:01:52,390 უფრო დაბალი გასაღები პრობლემა კომპლექტი. 44 00:01:52,390 --> 00:01:55,160 და მინდა გათიშეთ გადატანა იმ გვიან დღით, სტრატეგიულად, უბრალოდ 45 00:01:55,160 --> 00:01:57,380 მოგვიანებით წელს სემესტრის როდესაც ცხოვრებაში იწყებს მიიღონ გზა 46 00:01:57,380 --> 00:01:59,470 ერთად შუალედური და სხვა კლასებს. 47 00:01:59,470 --> 00:02:01,580 პრობლემა Set 1, იმავდროულად, იქნება განთავსებული კურსის 48 00:02:01,580 --> 00:02:06,080 ნახვა ამ პარასკევს, როგორც იქნება, რა თქმა უნდა სავალზე 49 00:02:06,080 --> 00:02:08,789 მეშვეობით ვიდეო, რომელიც იქნება გადაღებული საათზე 2:30 PM პარასკევს 50 00:02:08,789 --> 00:02:11,890 და შემდეგ posted ონლაინ მეორე დღეს. 51 00:02:11,890 --> 00:02:13,880 >> ამიტომ, ჩვენ დასრულდა ორშაბათს. 52 00:02:13,880 --> 00:02:15,450 მინდა - ფაქტობრივად, ერთი აღვნიშნო აქ. 53 00:02:15,450 --> 00:02:18,870 იმის გამო, რომ კლასების - რადგან Sanders არ ზუსტად lend 54 00:02:18,870 --> 00:02:22,220 თავს შემთხვევით Q & უკან და მეოთხე საშინლად კარგად, ჩვენ 55 00:02:22,220 --> 00:02:24,030 აპირებს ძიებასა ცოტა ახალი წელს, რომლის დროსაც 56 00:02:24,030 --> 00:02:26,160 თუ თქვენ არ კომფორტული ამაღლების თქვენი ხელი ან უბრალოდ 57 00:02:26,160 --> 00:02:28,800 უმჯობესია არ დააყენოს თქვენი ხელით ოთახი მოსწონს, 58 00:02:28,800 --> 00:02:30,710 ჩვენ ვაპირებთ აქვს ზოგიერთი სწავლების პრაქტიკის და CAS 59 00:02:30,710 --> 00:02:33,260 საშტატო cs50.net/discuss დროს ლექციას. 60 00:02:33,260 --> 00:02:35,440 ასე რომ, თუ თქვენ გაქვთ კითხვა, რადგან მე ვიყავი სრულიად 61 00:02:35,440 --> 00:02:37,510 გაურკვეველია შესახებ რამე ან თქვენ ცნობისმოყვარე შესახებ რამდენიმე 62 00:02:37,510 --> 00:02:39,640 თემის, ვცდილობთ განთავსებით მას იქ. 63 00:02:39,640 --> 00:02:42,670 საკვანძო იგი იარლიყი ლექცია, და ჩვენ გავაკეთებთ 64 00:02:42,670 --> 00:02:45,430 დღეს და მომავალ კვირას - we'll ცდილობენ ამ გარეთ - მდე გამოჰყავთ ეს 65 00:02:45,430 --> 00:02:47,990 ან ელექტრონულად, შემოსული, ან თუ იგი იგრძნობა უნდა 66 00:02:47,990 --> 00:02:50,430 მართლაც მიმართოს იგი მასობრივად, ერთ სწავლების პრაქტიკის ან 67 00:02:50,430 --> 00:02:52,080 CAS დააყენებს მათი ხელი და ვთხოვოთ 68 00:02:52,080 --> 00:02:53,480 ანონიმურად თქვენი სახელით. 69 00:02:53,480 --> 00:02:55,650 ამიტომ, ჩვენ მივცემ ამ ცდილობენ და ვხედავთ, თუ რამდენად კარგად ეს სამუშაოები. 70 00:02:55,650 --> 00:02:58,540 მაგრამ, ყველა საშუალებით, განვაგრძობთ ხელში როგორც გსურთ. 71 00:02:58,540 --> 00:03:11,420 >> ასე რომ ბოლო დროს ჩვენ გამოვლინდა, რომ 10% ან ერთი მეათედი არ არის, in 72 00:03:11,420 --> 00:03:13,840 ფაქტობრივად, 0.1, თქვენნაირი ასწავლიდნენ მრავალი წლის წინ. 73 00:03:13,840 --> 00:03:15,390 ეს ფაქტობრივად, ღირებულება მოსწონს ეს. 74 00:03:15,390 --> 00:03:16,970 მაგრამ ეს არ არის მთლიანად ჭეშმარიტი, არა? 75 00:03:16,970 --> 00:03:19,585 ჩვენ უბრალოდ უნდა ამ შეზღუდვით in კომპიუტერები რის, თუ 76 00:03:19,585 --> 00:03:22,450 მხოლოდ აქვს სასრული რაოდენობით მეხსიერება, RAM, ან მეტი 77 00:03:22,450 --> 00:03:25,220 კონკრეტულად ბიტი, ასევე, არსებობს მხოლოდ სასრულ ნომერი 78 00:03:25,220 --> 00:03:26,980 რამ შეგიძლიათ წარმოადგენენ. 79 00:03:26,980 --> 00:03:29,780 მაგალითად, თუ გვაქვს ხმების ნულოვანი, და გვინდა 80 00:03:29,780 --> 00:03:32,790 წარმოადგენენ ორობითი გამოყენებით რვა ბიტი, სადაც ცოტა, 81 00:03:32,790 --> 00:03:34,710 ერთხელ, არის ნულოვანი ან ერთი, ჩვენ შეიძლება 82 00:03:34,710 --> 00:03:39,240 წარმოადგენს მას როგორც 00000000. 83 00:03:39,240 --> 00:03:41,160 და ეს პატარა ზედმეტად verbose. 84 00:03:41,160 --> 00:03:43,700 ისევე, როგორც ათობითი სისტემის რეალურ ცხოვრებაში, 85 00:03:43,700 --> 00:03:47,040 ზოგადად, თუ გსურთ დაწეროთ ნომერი 123, ჩვენ 86 00:03:47,040 --> 00:03:52,240 ადამიანები ალბათ არ წერენ 00000123 მიუხედავად იმისა, 87 00:03:52,240 --> 00:03:53,940 ფუნქციურად, რომ ზუსტად იგივე ნომერი. 88 00:03:53,940 --> 00:03:56,580 ჩვენ მხოლოდ ვარდნა წამყვანი zeros, ასე ვთქვათ. 89 00:03:56,580 --> 00:03:58,270 >> In ორობითი, ჩვენ შეგვიძლია გავაკეთოთ იგივე. 90 00:03:58,270 --> 00:04:01,440 ორობითი და ნულოვანი, ნულოვანი და ბინარული მხოლოდ ნულოვანი. 91 00:04:01,440 --> 00:04:02,870 თქვენ მხოლოდ გჭირდებათ ერთი bit. 92 00:04:02,870 --> 00:04:05,020 მაგრამ ერთხელ, ყველაზე გავრცელებული ერთეული ზომის მსოფლიოში 93 00:04:05,020 --> 00:04:07,820 გამოთვლითი არის ბაიტი, რვა ბიტი. 94 00:04:07,820 --> 00:04:09,720 მხოლოდ იმიტომ, რომ ერთი bit, საკმაოდ უსარგებლო. 95 00:04:09,720 --> 00:04:12,020 რვა ბიტი, არ საშინლად სასარგებლო, მაგრამ მაინც ეს უფრო 96 00:04:12,020 --> 00:04:14,280 სასარგებლო ვიდრე ერთი ერთეული ზომის. 97 00:04:14,280 --> 00:04:17,100 ასე რვა ბიტი, ჩვენ, როგორც წესი, წარმოადგენენ ორობითი. 98 00:04:17,100 --> 00:04:20,459 ასე რომ აქ გვაქვს ნომრები ნულოვანი, ერთი, ორი, შემდეგ კი, როგორც 99 00:04:20,459 --> 00:04:24,200 Nate გააკეთა ჩვენი ვიდეო ბოლო ოთხშაბათს, ჩვენ შეგვიძლია გავაგრძელოთ 100 00:04:24,200 --> 00:04:25,940 დათვლის მდე შვიდი, რვა. 101 00:04:25,940 --> 00:04:27,860 ხოლო შემდეგ, თუ ჩვენ ვიყენებთ უფრო და უფრო ბიტი, ჩვენ 102 00:04:27,860 --> 00:04:29,880 შეგიძლიათ ითვლიან მდე Infinity. 103 00:04:29,880 --> 00:04:32,800 მაგრამ თუ თქვენ მხოლოდ სასრულ რიგი ამ ბიტი, როგორც არის 104 00:04:32,800 --> 00:04:35,030 შემთხვევაში ნებისმიერ კომპიუტერულ სისტემაში, ან თუნდაც სარაკეტო 105 00:04:35,030 --> 00:04:36,670 სისტემა, ისევე, მართლაც თქვენ მხოლოდ 106 00:04:36,670 --> 00:04:37,900 სასრულ თანხის სიზუსტით. 107 00:04:37,900 --> 00:04:41,290 ასე რომ, თუ გსურთ წარმოადგენს რაოდენობა, როგორიცაა 0.1, ისევე, 108 00:04:41,290 --> 00:04:43,410 კომპიუტერი უნდა აირჩიოთ და აირჩიეთ. 109 00:04:43,410 --> 00:04:45,970 და თუ ეს მხოლოდ სასრულ რაოდენობის ნომრები შეიძლება 110 00:04:45,970 --> 00:04:50,490 წარმოადგენს, მას შეუძლია მოვიდეს ახლოს 0.1 თქვენთვის, მაგრამ მას არ შეუძლია 111 00:04:50,490 --> 00:04:53,730 აუცილებლად მოგცემთ ზუსტად ღირებულება, რომელიც გსურთ. 112 00:04:53,730 --> 00:04:55,660 და ეს არის მხოლოდ ერთი გამოწვევები კომპიუტერები, 113 00:04:55,660 --> 00:04:57,090 ქვევმოთ hood, საბედნიეროდ. 114 00:04:57,090 --> 00:04:59,110 >> როგორც ჩვენ გადაადგილება შემდგომი წელს სემესტრის ამ ქვედა დონის 115 00:04:59,110 --> 00:05:02,310 დეტალები გაცილებით ნაკლებად საინტერესო, მაგრამ, რა თქმა უნდა 116 00:05:02,310 --> 00:05:05,700 განაცხადის ამ იდეებით შეუძლიათ რამდენიმე ძალიან რეალური სამყაროს 117 00:05:05,700 --> 00:05:06,760 ramifications. 118 00:05:06,760 --> 00:05:08,190 ერთი არის ცოტა გართობა. 119 00:05:08,190 --> 00:05:12,150 როგორ ბევრ თქვენგანს არ უნახავს საოცარი ფილმი საოფისე ფართი? 120 00:05:12,150 --> 00:05:13,620 თუ თქვენ არა გაქვთ, რომ თქვენი არაოფიციალური 121 00:05:13,620 --> 00:05:14,370 საშინაო დავალებების შესასრულებლად კვირაში. 122 00:05:14,370 --> 00:05:16,730 მაგრამ საოფისე ფართი, სტიპენდიანტები, რომ ფილმის მიიღოს 123 00:05:16,730 --> 00:05:19,900 უპირატესობა სწორედ ამ იდეას, მაგრამ ისინი ფაქტობრივად მოიპარეს 124 00:05:19,900 --> 00:05:21,270 იგი მეორე ფილმი, რომ თქვენ ალბათ 125 00:05:21,270 --> 00:05:22,760 ჩანს, თუნდაც წლით ადრე. 126 00:05:22,760 --> 00:05:24,920 ნება მომეცით, გადმოგცეთ რამდენიმე წამში ამ trailer საწყისი 127 00:05:24,920 --> 00:05:27,470 ამ საოცარი ფილმი და ეს არის ძალიან 128 00:05:27,470 --> 00:05:28,340 აკადემიური შესაბამისი. 129 00:05:28,340 --> 00:05:30,310 >> [ნათამაშები MOVIE] 130 00:05:30,310 --> 00:05:32,240 სინამდვილეში მე მიმდინარეობს დააწინაურეს. 131 00:05:32,240 --> 00:05:33,360 მე შემიძლია პროგრამა ვირუსი, რომელიც დააკოპიროთ რომ 132 00:05:33,360 --> 00:05:34,460 განათავსეთ off დიდი დრო. 133 00:05:34,460 --> 00:05:35,770 ისე, როგორ მუშაობს იგი? 134 00:05:35,770 --> 00:05:37,836 ყოველ ჯერზე იქ ბანკის გარიგება, სადაც ინტერესი არის 135 00:05:37,836 --> 00:05:40,154 კომპიუტერული, არის ათასობით დღეში, კომპიუტერულ მთავრდება 136 00:05:40,154 --> 00:05:41,040 ამ ფრაქციების შეადგინა. 137 00:05:41,040 --> 00:05:43,050 მაგრამ მე არ ვაპირებ არაფრის უკანონოა. 138 00:05:43,050 --> 00:05:46,730 უკანონო? Samir, ეს არის ამერიკა. 139 00:05:46,730 --> 00:05:48,010 თქვენ უნდა ფიცს ღმერთს. 140 00:05:48,010 --> 00:05:51,870 თუ არავინ იცის ამის შესახებ, მაგრამ ჩვენ, ყველა უფლება? არარის ოჯახის წევრები, არ 141 00:05:51,870 --> 00:05:52,490 მეგობარ, არავინ. 142 00:05:52,490 --> 00:05:53,882 [INAUDIBLE]. 143 00:05:53,882 --> 00:05:57,594 არ ინერვიულოთ, ეს კაცი, მე არ გეტყვით არავის ჰქონია. 144 00:05:57,594 --> 00:05:59,680 [ფილმის დამთავრდა] 145 00:05:59,680 --> 00:06:01,900 >> ყველა უფლება და იქნებ მე ამ ფილმის უკეთ, ვიდრე ყველაზე 146 00:06:01,900 --> 00:06:05,530 ხალხი აქ, მაგრამ ნებისმიერ შემთხვევაში, ვირუსის, რომ ისინი 147 00:06:05,530 --> 00:06:06,400 ცდილობს შექმნას - 148 00:06:06,400 --> 00:06:08,410 და ფილმები, ნებისმიერ დროს მათ მინდა მოვუწოდო რაღაც ვირუსი, 149 00:06:08,410 --> 00:06:09,770 ეს ზოგადად არ რეალურად ვირუსი. 150 00:06:09,770 --> 00:06:11,600 უბრალოდ პროგრამა, რომელიც ვინმე წერს, რომ რამე. 151 00:06:11,600 --> 00:06:13,800 და ამ შემთხვევაში, ბიჭები ცდილობდნენ წერენ პროგრამა 152 00:06:13,800 --> 00:06:16,610 რომ ისარგებლეს მათი კომპანია მოუწოდა Innotech ს 153 00:06:16,610 --> 00:06:19,740 Computing სისტემა, რომლის დროსაც კომპიუტერები, ძალიან, მაშინაც კი, როდესაც ეს 154 00:06:19,740 --> 00:06:21,350 მოდის ფული, ვერ აუცილებლად 155 00:06:21,350 --> 00:06:23,490 წარმოადგენს ფული ზუსტად. 156 00:06:23,490 --> 00:06:27,630 ასე რომ, მიუხედავად იმისა, თქვენ ალბათ $ 0.10 თქვენს საბანკო ანგარიშზე, 157 00:06:27,630 --> 00:06:31,060 0.10, ისევე, კომპიუტერი შეიძლება რეალურად ვფიქრობ, რომ თქვენ გაქვთ 158 00:06:31,060 --> 00:06:33,560 ამ ბევრი ცენტი თქვენს საბანკო ანგარიშზე. 159 00:06:33,560 --> 00:06:35,750 და მერე რა ეს ბიჭები იყვნენ მიისწრაფვიან გააკეთოს - და ისინი 160 00:06:35,750 --> 00:06:38,240 მოიპარეს იდეა, თურმე საწყისი Superman III, სადაც 161 00:06:38,240 --> 00:06:41,210 რიჩარდ PRYOR გააკეთა იგივე - ისინი არსებითად 162 00:06:41,210 --> 00:06:44,880 წერილობით პროგრამებს, ისწრაფვიან მიიღონ ყველა გადმოკიდული 163 00:06:44,880 --> 00:06:46,930 ნომრები, ყველა პატარა, პატარა, პატარა ფრაქციების 164 00:06:46,930 --> 00:06:50,160 pennies და siphoning იმ off ისე, რომ ადამიანები მხოლოდ 165 00:06:50,160 --> 00:06:52,620 აზრის, oh, ეს მხოლოდ $ 0.10 იქ, მაგრამ ყველა იმ 166 00:06:52,620 --> 00:06:54,410 გადმოკიდული ციფრები საბოლოოდ დაამატოთ მდე. 167 00:06:54,410 --> 00:06:57,490 ასე რომ მშვენიერი იდეა და იგი backfired hilariously ამ 168 00:06:57,490 --> 00:06:58,250 კერძოდ ფილმი. 169 00:06:58,250 --> 00:07:01,800 >> მაგრამ რეალურ ცხოვრებაში, ძალიან, არის ბევრად უფრო დაკავშირებით 170 00:07:01,800 --> 00:07:03,190 გამოძახილი ამ სახის ნივთები. 171 00:07:03,190 --> 00:07:05,450 და ერთი მიზეზი ჩაყვინთვის შევიდა სფეროში კომპიუტერი 172 00:07:05,450 --> 00:07:07,620 მეცნიერების, კიდევ ერთხელ, მისი გამოყენებადობა არ 173 00:07:07,620 --> 00:07:09,740 საინჟინრო მეცნიერებათა მარტო, მაგრამ მხოლოდ 174 00:07:09,740 --> 00:07:10,650 სხვა სფეროებში, ასევე. 175 00:07:10,650 --> 00:07:14,760 ასე რომ, ეს ნაკლებად lighthearted შევხედოთ რა შეიძლება არასწორი, მაგრამ 176 00:07:14,760 --> 00:07:17,630 ეს საკმაოდ თვალის გახსნის, ვფიქრობ, როდესაც საქმე 177 00:07:17,630 --> 00:07:20,760 გაგება ზუსტად როგორ omnipresent ტექნოლოგიების მოსწონს 178 00:07:20,760 --> 00:07:22,870 კომპიუტერები და პროგრამირების ან ამ დღეებში, 179 00:07:22,870 --> 00:07:23,930 სახით პროგრამული უზრუნველყოფა. 180 00:07:23,930 --> 00:07:26,500 ასე რომ, ეს მორიგი კლიპი არის მხოლოდ ექვსი წუთი, აგრძელებს 181 00:07:26,500 --> 00:07:30,320 სადაც ჩვენ შეჩერდით ბოლო დროს, მაგრამ საშუალებას გვაძლევს თვალი პატარა 182 00:07:30,320 --> 00:07:33,370 უფრო სიღრმისეული ერთ ასეთ ამ საკითხებზე. 183 00:07:33,370 --> 00:07:35,270 ნება მომეცით გამოტოვოთ მანამდე სადაც ჩვენ შეჩერდით, 184 00:07:35,270 --> 00:07:37,780 რაც სწორი იყო აქ. 185 00:07:37,780 --> 00:07:41,580 და ჩვენ გვაქვს ორი ნაწილი, ორი, დაახლოებით ექვსი წუთის აქ. 186 00:07:41,580 --> 00:07:41,980 >> [PLAY MOVIE] 187 00:07:41,980 --> 00:07:45,430 ხშირია თანამედროვე სარაკეტო ტექნიკა. 188 00:07:45,430 --> 00:07:49,280 1991 წელს ერთად დაწყების პირველი ყურის ომი, პატრიოტი 189 00:07:49,280 --> 00:07:51,350 სარაკეტო გამოცდილი მსგავსი 190 00:07:51,350 --> 00:07:52,645 პუნქტების კონვერტაციის პრობლემა. 191 00:07:52,645 --> 00:07:57,460 ამის შედეგად, 20 ადამიანი, 20 ამერიკელი ჯარისკაცი დაიღუპა 192 00:07:57,460 --> 00:08:01,130 და დაახლოებით 100 დაიჭრა, როდესაც პატრიოტთა, რომელიც სავარაუდოდ 193 00:08:01,130 --> 00:08:03,400 რომ დაიცვას წინააღმდეგ შემომავალი Scuds, 194 00:08:03,400 --> 00:08:06,020 ვერ შეძლო ცეცხლი სარაკეტო. 195 00:08:06,020 --> 00:08:09,350 >> როდესაც ერაყში შეიჭრა ქუვეითსა და ამერიკაში დაიწყო Desert 196 00:08:09,350 --> 00:08:13,530 Storm დასაწყისში 1991, პატრიოტის სარაკეტო ბატარეები იყო 197 00:08:13,530 --> 00:08:16,970 განლაგდნენ დასაცავად საუდის არაბეთი და ისრაელს ერაყის 198 00:08:16,970 --> 00:08:19,810 Scud სარაკეტო თავდასხმებს. 199 00:08:19,810 --> 00:08:23,740 პატრიოტის არის აშშ საშუალო დამიზნების ზედაპირზე-to-air სისტემა, 200 00:08:23,740 --> 00:08:26,370 მიერ წარმოებული RAYTHEON კომპანია. 201 00:08:26,370 --> 00:08:30,860 ზომა პატრიოტის interceptor თავად, ეს დაახლოებით 202 00:08:30,860 --> 00:08:35,650 დაახლოებით 20 ფუტი სიგრძის და იგი იწონის დაახლოებით 2,000 ფუნტი. 203 00:08:35,650 --> 00:08:38,809 და იგი ახორციელებს ქობინით დაახლოებით - ვფიქრობ, უხეშად 204 00:08:38,809 --> 00:08:40,169 150 ფუნტი. 205 00:08:40,169 --> 00:08:45,820 და ქობინით თავისთავად მაღალი ასაფეთქებელი, რომელსაც აქვს 206 00:08:45,820 --> 00:08:48,120 ფრაგმენტები გარშემო. 207 00:08:48,120 --> 00:08:51,870 გარსაცმები of ქობინით განკუთვნილია იმოქმედოს მოსწონს buckshot. 208 00:08:51,870 --> 00:08:54,920 რაკეტები ხორციელდება ოთხი შეადგენს კონტეინერ და არიან 209 00:08:54,920 --> 00:08:57,850 ტრანსპორტირება ნახევრად trailer. 210 00:08:57,850 --> 00:09:02,940 >> პატრიოტის რაკეტსაწინააღმდეგო სისტემის მიდის უკან მაინც 211 00:09:02,940 --> 00:09:05,530 20 წელია. 212 00:09:05,530 --> 00:09:09,150 თავდაპირველად დაპროექტებული როგორც საჰაერო თავდაცვის სარაკეტო to 213 00:09:09,150 --> 00:09:12,920 ჩამოაგდებენ მტრის თვითმფრინავები, პირველ ყურის ომი. 214 00:09:12,920 --> 00:09:17,700 როდესაც რომ ომი მოვიდა გასწვრივ, არმიის სურდა გამოვიყენოთ რომ სროლა 215 00:09:17,700 --> 00:09:19,880 ქვემოთ Scuds, არ თვითმფრინავები. 216 00:09:19,880 --> 00:09:24,860 საჰაერო ძალების ერაყის არ იყო იმდენად, რამდენადაც პრობლემაა, მაგრამ არმიის 217 00:09:24,860 --> 00:09:27,260 იყო აწუხებს Scuds. 218 00:09:27,260 --> 00:09:30,810 ამდენად, მათ შეეცადა განახლება პატრიოტია. 219 00:09:30,810 --> 00:09:33,770 Intercepting მტრის სარაკეტო მოგზაურობა საათზე MACH 5 ხდებოდა 220 00:09:33,770 --> 00:09:35,790 უნდა იწვევს საკმარისი. 221 00:09:35,790 --> 00:09:39,460 მაგრამ როდესაც პატრიოტთა იყო შევარდა სამსახურის, არმიის 222 00:09:39,460 --> 00:09:43,730 არ იყო საქმის კურსში ერაყის მოდიფიკაცია რომ გააკეთეს 223 00:09:43,730 --> 00:09:46,510 Scuds თითქმის შეუძლებელია მოხვდა. 224 00:09:46,510 --> 00:09:50,040 >> რა მოხდა არის Scuds რომ იყო 225 00:09:50,040 --> 00:09:51,360 შემოდიოდნენ იყო არასტაბილური. 226 00:09:51,360 --> 00:09:52,266 ისინი wobbling. 227 00:09:52,266 --> 00:09:56,300 მიზეზი ის იყო ერაყელებს, რათა მიიღოთ 600 228 00:09:56,300 --> 00:10:00,650 კილომეტრის გარეთ 300 კილომეტრიანი Range სარაკეტო, აიღო 229 00:10:00,650 --> 00:10:02,423 წონა გარეთ წინა ქობინით და 230 00:10:02,423 --> 00:10:03,990 გააკეთა ქობინით მსუბუქია. 231 00:10:03,990 --> 00:10:08,700 ახლა პატრიოტთა ცდილობს მოდის at Scud, ყველაზე მეტად 232 00:10:08,700 --> 00:10:11,192 ახლა, აბსოლუტური უმრავლესობის დრო, ეს იქნებოდა 233 00:10:11,192 --> 00:10:13,450 უბრალოდ ფრენა მიერ Scud. 234 00:10:13,450 --> 00:10:16,300 ერთხელ პატრიოტის სისტემის ოპერატორები მიხვდა პატრიოტის 235 00:10:16,300 --> 00:10:20,160 გაშვებული მისი სამიზნე, მათ ქვეითსაწინაააღმდეგო პატრიოტის ქობინით. 236 00:10:20,160 --> 00:10:22,760 , რათა თავიდან ავიცილოთ შესაძლო მსხვერპლი, მას ეძლეოდა 237 00:10:22,760 --> 00:10:25,100 ჩავარდნას, რათა ადგილზე. 238 00:10:25,100 --> 00:10:29,400 ეს იყო ის, რაც ხალხის უმრავლესობას დაინახა, როგორც დიდი fireballs ცაში, 239 00:10:29,400 --> 00:10:34,930 და არასწორად როგორც საუბრების of Scud ქობინი. 240 00:10:34,930 --> 00:10:37,490 >> თუმცა, ღამის ცა, პატრიოტთა აღმოჩნდა 241 00:10:37,490 --> 00:10:41,570 წარმატებით გაანადგურა Scuds საათზე Dhahran, იქ შეიძლება არ 242 00:10:41,570 --> 00:10:43,730 შეცდომის შესახებ მისი შესრულება. 243 00:10:43,730 --> 00:10:46,370 არსებობს, პატრიოტთა სარადარო სისტემის დაკარგა კვალს 244 00:10:46,370 --> 00:10:50,090 შემომავალი Scud და არასოდეს დაიწყო გამო 245 00:10:50,090 --> 00:10:51,340 to პროგრამული უზრუნველყოფის ხარვეზი. 246 00:10:54,030 --> 00:10:57,050 ეს იყო ისრაელის, რომელმაც პირველად აღმოაჩინა, რომ აღარ 247 00:10:57,050 --> 00:11:02,000 სისტემა იყო, უფრო დიდი დრო შეუსაბამობა გახდა, 248 00:11:02,000 --> 00:11:05,530 გამო საათის ჩართული სისტემის კომპიუტერში. 249 00:11:05,530 --> 00:11:09,060 დაახლოებით ორი კვირით ადრე ტრაგედიას Dhahran, 250 00:11:09,060 --> 00:11:11,730 ისრაელის განუცხადა თავდაცვის დეპარტამენტის, რომ 251 00:11:11,730 --> 00:11:13,250 სისტემის დაკარგვის დროს. 252 00:11:13,250 --> 00:11:15,610 შემდეგ დაახლოებით რვა საათის გაშვებული, მათ შენიშნეს, რომ 253 00:11:15,610 --> 00:11:18,330 სისტემაში ხდებოდა შესამჩნევად ნაკლები სიზუსტით. 254 00:11:18,330 --> 00:11:20,910 თავდაცვის დეპარტამენტის გამოეხმაურა ვეუბნებოდი ყველა 255 00:11:20,910 --> 00:11:23,710 პატრიოტის ბატარეები რომ არ დატოვებს სისტემები 256 00:11:23,710 --> 00:11:25,450 on დიდი ხნის განმავლობაში. 257 00:11:25,450 --> 00:11:28,010 ისინი არ ამბობს, რა დიდი დრო იყო - 8 საათი, 10 258 00:11:28,010 --> 00:11:29,690 საათები, 1,000 საათი. 259 00:11:29,690 --> 00:11:31,940 არავინ იცის. 260 00:11:31,940 --> 00:11:35,020 >> პატრიოტის ბატარეის განლაგებული დროს ყაზარმებში საათზე Dhahran 261 00:11:35,020 --> 00:11:39,030 და მისი ყალბი შიდა საათის იყო დაახლოებით 100 საათი 262 00:11:39,030 --> 00:11:42,240 ღამეს 25 თებერვალს. 263 00:11:42,240 --> 00:11:46,580 იგი tracked დრო და სიზუსტე დაახლოებით მეათედი მეორე. 264 00:11:46,580 --> 00:11:48,830 ახლა მეათე მეორე არის საინტერესო ხმების რადგან 265 00:11:48,830 --> 00:11:52,660 არ შეიძლება გამოთქმული ორობითი, ზუსტად, რაც იმას ნიშნავს, 266 00:11:52,660 --> 00:11:54,940 მას არ შეუძლია იყოს გამოხატული ზუსტად ნებისმიერ 267 00:11:54,940 --> 00:11:57,330 თანამედროვე ციფრული კომპიუტერი. 268 00:11:57,330 --> 00:11:59,130 ძნელი დასაჯერებელია. 269 00:11:59,130 --> 00:12:01,720 მაგრამ გამოიყენოს ეს როგორც მაგალითად. 270 00:12:01,720 --> 00:12:04,090 >> ავიღოთ ნომერ მესამე. 271 00:12:04,090 --> 00:12:07,950 ერთი მესამედი არ შეიძლება გამოიხატოს ათობითი ზუსტად. 272 00:12:07,950 --> 00:12:12,710 ერთი მესამედი არის 0,333 გრძელდება უსასრულობამდე. 273 00:12:12,710 --> 00:12:17,050 არ არსებობს გზა ამის, რომ აბსოლუტური სიზუსტით წელს ათობითი. 274 00:12:17,050 --> 00:12:19,340 სწორედ მსგავსი პრობლემა, რომ მოხდა 275 00:12:19,340 --> 00:12:20,190 პატრიოტია. 276 00:12:20,190 --> 00:12:24,680 აღარ სისტემა გაიქცა, უარესი დრო შეცდომა გახდა. 277 00:12:24,680 --> 00:12:28,640 შემდეგ 100 სამუშაო საათები, შეცდომა იყო მხოლოდ 278 00:12:28,640 --> 00:12:29,870 დაახლოებით ერთი მესამედი მეორე. 279 00:12:29,870 --> 00:12:34,790 მაგრამ თვალსაზრისით სამიზნედ სარაკეტო მოგზაურობა საათზე MACH 5, 280 00:12:34,790 --> 00:12:39,140 მას შედეგად თვალთვალის შეცდომა მეტი 600 მეტრია. 281 00:12:39,140 --> 00:12:42,510 ეს იქნება ფატალური შეცდომა ამისთვის ჯარისკაცებთან Dhahran. 282 00:12:42,510 --> 00:12:48,680 >> რა მოხდა არის Scud დაწყებას გამოვლინდა მიერ ადრეული გაფრთხილების 283 00:12:48,680 --> 00:12:52,440 თანამგზავრების და მათ იცოდნენ, რომ Scud მოდიოდა მათი 284 00:12:52,440 --> 00:12:53,350 ზოგადად მიმართულებით. 285 00:12:53,350 --> 00:12:55,470 არ იცოდნენ, სადაც იგი მოდიოდა. 286 00:12:55,470 --> 00:12:58,210 ეს იყო ახლა მდე სარადარო კომპონენტი პატრიოტის 287 00:12:58,210 --> 00:13:01,920 სისტემის დაცვითი Dhahran, განთავსების და ტრეკზე 288 00:13:01,920 --> 00:13:03,700 შემომავალი მტრის რაკეტა. 289 00:13:03,700 --> 00:13:05,390 რადარზე ძალიან ჭკვიანი. 290 00:13:05,390 --> 00:13:07,570 თქვენ რეალურად აკონტროლოთ პოზიცია Scud და შემდეგ 291 00:13:07,570 --> 00:13:10,340 პროგნოზირება, სადაც ეს ალბათ იქნება შემდეგი დრო 292 00:13:10,340 --> 00:13:12,040 სარადარო გაგზავნილი პულსი გარეთ. 293 00:13:12,040 --> 00:13:13,730 რომ ერქვა Range კარიბჭე. 294 00:13:13,730 --> 00:13:18,820 მაშინ, ერთხელ პატრიოტის გადაწყვეტს საკმარისი დრო გავიდა წასვლა 295 00:13:18,820 --> 00:13:22,600 უკან და შეამოწმოთ შემდეგი საიდან ამ გამოვლინდა 296 00:13:22,600 --> 00:13:24,190 ობიექტი, იგი მიდის უკან. 297 00:13:24,190 --> 00:13:27,940 ასე რომ, როდესაც იგი დაბრუნდა არასწორი ადგილი, მაშინ ვერ ხედავს 298 00:13:27,940 --> 00:13:31,000 ობიექტი, და ეს გადაწყვეტს, რომ არ იყო წინააღმდეგი. 299 00:13:31,000 --> 00:13:34,370 ეს იყო ყალბი აღმოჩენისა და წვეთების სიმღერა. 300 00:13:34,370 --> 00:13:37,630 >> შემომავალი Scud გაქრა სარადარო ეკრანზე. 301 00:13:37,630 --> 00:13:41,300 და წამის შემდეგ, ის გააკრიტიკა შევიდა ყაზარმები. Scud 302 00:13:41,300 --> 00:13:44,730 დაიღუპა 28 და იყო ბოლო ერთი გასროლა დროს 303 00:13:44,730 --> 00:13:46,450 პირველი ყურის ომი. 304 00:13:46,450 --> 00:13:50,570 ტრაგიკულია, რომ განახლებული პროგრამული მივიდა Dhahran 305 00:13:50,570 --> 00:13:52,060 მომდევნო დღეს. 306 00:13:52,060 --> 00:13:56,210 და პროგრამული უზრუნველყოფის ხარვეზი უკვე დაფიქსირდა, იხურება ერთი თავი 307 00:13:56,210 --> 00:13:58,370 პრობლემური ისტორიაში პატრიოტის სარაკეტო. 308 00:14:01,790 --> 00:14:04,990 PATRIOT ფაქტიურად აბრევიატურა for "ეტაპობრივი Array Tracking 309 00:14:04,990 --> 00:14:08,516 Intercept სამიზნე. " 310 00:14:08,516 --> 00:14:13,390 >> ყველა უფლება, ასე რომ ბევრად უფრო სავალალო შედეგს არ საკმაოდ 311 00:14:13,390 --> 00:14:14,430 გაგება ამ სამყაროში. 312 00:14:14,430 --> 00:14:18,180 და takeaway, მართლაც, საწყისი ფილმი არის, რომ გამოსავალი 313 00:14:18,180 --> 00:14:20,790 იქ იყო გადატვირთეთ თქვენი რაკეტსაწინააღმდეგო თავდაცვის სისტემის 314 00:14:20,790 --> 00:14:21,770 ყოველ ერთხელ ხოლო. 315 00:14:21,770 --> 00:14:24,280 და ა.შ. ერთხელ, ერთ მიზანს ამ კურსის, რა თქმა უნდა 316 00:14:24,280 --> 00:14:26,900 უფრო მოკრძალებული მასშტაბის, ვიდრე ეს განცხადებები, არის 317 00:14:26,900 --> 00:14:30,710 მართლაც ღია ყველას თვალში ზუსტად როგორ მიდიხარ შესახებ 318 00:14:30,710 --> 00:14:34,380 საცხობი დანადგარები რა გსურთ მათ ამის გაკეთება და როგორ დადიან 319 00:14:34,380 --> 00:14:37,180 შესახებ აკეთებს, რომ სწორად, ხოლო გზაზე აკეთებს ამას 320 00:14:37,180 --> 00:14:38,810 კარგად, ელეგანტურად და სხვ. 321 00:14:38,810 --> 00:14:41,680 და დღეს, მოდით ჩაყვინთვის შევიდა ცოტა მეტი, მაგრამ 322 00:14:41,680 --> 00:14:44,210 ასე, რომ ჩვენ არ წავიდეთ ძალიან სწრაფად, განსაკუთრებით იმ ნაკლებად 323 00:14:44,210 --> 00:14:46,590 კომფორტული, არამედ ისე, რომ ჩვენ შეგვიძლია შეინარჩუნებს ინტერესს 324 00:14:46,590 --> 00:14:49,390 იმ უფრო კომფორტული, მოდით უბრალოდ სწრაფად დაიწყოს bit 325 00:14:49,390 --> 00:14:50,970 საქართველოს recap ზოგიერთი ამ იდეებს. 326 00:14:50,970 --> 00:14:53,710 ისევ და ისევ, ვთხოვ მოშორებით, როგორც ადამიანი ან შემოსული, თუ თქვენ გაქვთ 327 00:14:53,710 --> 00:14:56,320 კითხვები ასე შეგვიძლია შევინარჩუნოთ ყველას იმავე გვერდზე. 328 00:14:56,320 --> 00:14:58,820 >> ამიტომ CS50 ელექტრო მოწყობილობების, სწრაფი ნაბიჯი უკან, არის 329 00:14:58,820 --> 00:15:02,360 რა, თქვენი სიტყვებით? 330 00:15:02,360 --> 00:15:06,454 ეს OK, თუ თქვენ არ ვიცი რა ეს სიტყვები შეიძლება იყოს ამჟამად. 331 00:15:06,454 --> 00:15:07,830 [INAUDIBLE] 332 00:15:07,830 --> 00:15:10,950 Okay, ასე საყოველთაო ინტერფეისით - 333 00:15:10,950 --> 00:15:11,900 რომ ჩვენ შეგვიძლია ყველა ვიზიარებთ. 334 00:15:11,900 --> 00:15:12,470 აბსოლუტურად. 335 00:15:12,470 --> 00:15:14,840 ამიტომ ვერ მაგალითად, გითხრათ, წასვლა რაღაც 336 00:15:14,840 --> 00:15:16,910 ნახვა გადმოწერეთ ეს პროგრამული უზრუნველყოფა for Mac OS. 337 00:15:16,910 --> 00:15:19,140 ჩამოტვირთეთ ეს პროგრამული უზრუნველყოფა: Windows, კონფიგურაცია წელს 338 00:15:19,140 --> 00:15:20,100 ამ გზით და რომ. 339 00:15:20,100 --> 00:15:22,370 მაგრამ რეალობა მაშინ ჩვენ გადაეყარონ უამრავი ტექნიკური 340 00:15:22,370 --> 00:15:23,200 მხარდასაჭერად საკითხები. 341 00:15:23,200 --> 00:15:26,630 და ასევე ამ დღეებში, ბევრი რამ თუ რა კეთდება სერვერის მხარეს, 342 00:15:26,630 --> 00:15:28,490 მსოფლიოში გამოთვლითი, განსაკუთრებით, როდესაც საქმე 343 00:15:28,490 --> 00:15:31,460 ვებ უზრუნველყოფა და ვებ დაფუძნებული განაცხადების, ფაქტიურად 344 00:15:31,460 --> 00:15:35,110 ხშირად კეთდება Unix ან Linux კომპიუტერები, როგორც ეწინააღმდეგებოდა 345 00:15:35,110 --> 00:15:36,800 Macs ან Windows pcs. 346 00:15:36,800 --> 00:15:39,240 >> ამიტომ შორის upsides, მაშინ, გამოყენების ამ რამ მოუწოდა 347 00:15:39,240 --> 00:15:41,500 CS50 ელექტრო მოწყობილობების არის ჩვენ ყველას გვაქვს ერთი და იმავე გარემოში. 348 00:15:41,500 --> 00:15:43,670 ასე რომ ყველას იმავე გვერდზე არ აქვს მნიშვნელობა რა აპარატურა თქვენ 349 00:15:43,670 --> 00:15:46,650 მოვიდა კამპუსში ერთად არამედ იქნება dabbling ზუსტად 350 00:15:46,650 --> 00:15:48,230 იგივე გარემო, რომელიც თქვენ გამოიყენებთ მიმართ 351 00:15:48,230 --> 00:15:51,080 სემესტრის ბოლოს, ასევე ვებ განვითარება, ისევე როგორც 352 00:15:51,080 --> 00:15:53,580 მომავალი რეალური სამყაროს განაცხადების შესახებ. 353 00:15:53,580 --> 00:15:56,350 ამიტომ უფრო კონკრეტულად, CS50 ელექტრო მოწყობილობების არის უფასო ნიმუში 354 00:15:56,350 --> 00:15:59,400 პროგრამული უზრუნველყოფის, რომელიც საშუალებას გაძლევთ აწარმოებს კიდევ ერთი ოპერაციული სისტემა, 355 00:15:59,400 --> 00:16:02,670 Linux, ამ შემთხვევაში, საკუთარ კომპიუტერში, წელს ფანჯარაში. 356 00:16:02,670 --> 00:16:04,750 ახლა თქვენ შეგიძლიათ არა მხოლოდ ჩამოტვირთოთ ელექტრო მოწყობილობების. 357 00:16:04,750 --> 00:16:08,170 თქვენ გჭირდებათ პროგრამა, რომელიც უნდა ითამაშოს ან აწარმოებს ელექტრო მოწყობილობების. 358 00:16:08,170 --> 00:16:11,220 და რომ ნაჭერი პროგრამული უზრუნველყოფა არის ზოგადად ცნობილი როგორც 359 00:16:11,220 --> 00:16:11,520 hypervisor. 360 00:16:11,520 --> 00:16:14,050 Hypervisors მოდის სახით პროდუქტები, როგორიცაა VMware, 361 00:16:14,050 --> 00:16:15,820 ვირტუალური ყუთი, პარალელები. 362 00:16:15,820 --> 00:16:18,390 ყველა სახის კომპანიების მიიღოს პროგრამული უზრუნველყოფა, როგორც თავისუფალი და 363 00:16:18,390 --> 00:16:19,310 კომერციული, alike. 364 00:16:19,310 --> 00:16:21,480 რა დაინახავთ პრობლემების Set 1 are ინსტრუქციებით თუ როგორ უნდა 365 00:16:21,480 --> 00:16:23,440 მიიღოს უფასო კომპიუტერული პროგრამა რომელიც 366 00:16:23,440 --> 00:16:25,000 აწარმოებს CS50 ელექტრო მოწყობილობების. 367 00:16:25,000 --> 00:16:28,060 და კიდევ თუ თქვენ ჩვენგან, თქვენ, ამ ფანჯარაში თქვენს Mac ან PC, 368 00:16:28,060 --> 00:16:30,710 დესკტოპის გარემოში, რომელიც გამოიყურება საკმაოდ მოსწონს, სადაც 369 00:16:30,710 --> 00:16:33,100 მას დაწყება მენიუ მსგავსი რამ 370 00:16:33,100 --> 00:16:34,510 ქვედა მარცხენა კუთხეში. 371 00:16:34,510 --> 00:16:38,030 მას აქვს მთავარი ფოლდერი, ან მთავარი დირექტორია, ზედა მარცხენა 372 00:16:38,030 --> 00:16:40,280 იქ, ნაგვის შეუძლია, და სხვ. 373 00:16:40,280 --> 00:16:43,450 ამიტომ ჩვენ აჯავრებენ გარდა საჭირო დეტალები, როგორც ჩვენ წავიდეთ. 374 00:16:43,450 --> 00:16:46,430 >> მაგრამ ახლა მოდით დავიწყოთ ჩაყვინთვის შევიდა C. 375 00:16:46,430 --> 00:16:49,200 ასე რომ C არის ამ პროგრამირების ენა, იგივე სულისკვეთებით, რათა 376 00:16:49,200 --> 00:16:52,390 Scratch, მაგრამ ნაკლებად გრაფიკული, თუმცა ირონიულად, შორს 377 00:16:52,390 --> 00:16:54,730 უფრო ძლიერი ერთხელ თქვენ საზრიანი იგი. 378 00:16:54,730 --> 00:16:58,970 ასე რომ, C, ჩვენ წერენ პროგრამებს წერილობით წყაროს კოდი, რომელიც 379 00:16:58,970 --> 00:17:01,640 ამ ინგლისურ მსგავსი სინტაქსი, მსგავსი წინდები 380 00:17:01,640 --> 00:17:05,609 დემონსტრირება, რომ ჩვენ ბოლო დროს, რომელიც საშუალებას გაძლევთ 381 00:17:05,609 --> 00:17:07,910 გამოხატოს თავის საკმაოდ ზუსტად, თუ 382 00:17:07,910 --> 00:17:09,760 arcanely, კომპიუტერს. 383 00:17:09,760 --> 00:17:11,960 >> ასე რომ, თუ რა სახის პროდუქტის პროგრამული გაქვთ რეალურად სჭირდება 384 00:17:11,960 --> 00:17:15,520 დაწერა პროგრამების ენა მოსწონს C, ეფუძნება ჩვენი 385 00:17:15,520 --> 00:17:17,492 საუბარი ორშაბათს? 386 00:17:17,492 --> 00:17:19,650 [INAUDIBLE] 387 00:17:19,650 --> 00:17:21,079 OK, თქვენ უბრალოდ უნდა ტექსტური რედაქტორი. 388 00:17:21,079 --> 00:17:22,890 თქვენ არ გჭირდებათ რაიმე სპეციალური პროგრამული 389 00:17:22,890 --> 00:17:24,460 თავისთავად დაწერა პროგრამები. 390 00:17:24,460 --> 00:17:27,220 თქვენ უბრალოდ უნდა ტექსტური რედაქტორი, როგორიცაა ჩასაწერი, on Windows, 391 00:17:27,220 --> 00:17:30,450 TextEdit on Mac, ან რაღაც მოუწოდა gedit, სამყაროში 392 00:17:30,450 --> 00:17:32,020 Linux, რომელიც ჩვენ აქ გამოიყენოს. 393 00:17:32,020 --> 00:17:33,750 და ამით ყველაფერი, დაწერა პროგრამები. 394 00:17:33,750 --> 00:17:35,480 >> მაგრამ წერილობით მხოლოდ ნახევარი განტოლება. 395 00:17:35,480 --> 00:17:36,630 თქვენ მაშინ უნდა აწარმოებს მათ. 396 00:17:36,630 --> 00:17:38,320 მაგრამ იმისათვის, რომ პროგრამების გასაშვებად - 397 00:17:38,320 --> 00:17:39,600 შეგიძლიათ არ აწარმოებს კოდის. 398 00:17:39,600 --> 00:17:41,500 თქვენს ნაცვლად უნდა გავაკეთოთ, რა უნდა ის პირველი? 399 00:17:41,500 --> 00:17:41,900 Yeah. 400 00:17:41,900 --> 00:17:43,200 დევიდ ჯ Malan: თქვენ უნდა 401 00:17:43,200 --> 00:17:44,130 კომპილირება. 402 00:17:44,130 --> 00:17:49,010 და, ვინმეს, შედგენის კოდის ნიშნავს - 403 00:17:49,010 --> 00:17:50,260 [INAUDIBLE] 404 00:17:52,300 --> 00:17:52,700 დევიდ ჯ Malan: ზუსტად. 405 00:17:52,700 --> 00:17:54,430 თარგმნა მას zeros და პირობა. 406 00:17:54,430 --> 00:17:57,150 რადგან ყველა ჩვენგანი, ამ დღეებში, კომპიუტერები აქვთ, რომ აქვს პროცესორები, 407 00:17:57,150 --> 00:18:00,350 თითქმის ყველა მათგანი დამზადებული კომპანია მოუწოდა Intel, და 408 00:18:00,350 --> 00:18:03,320 Intel Inside, ნიშნავს არსებობს ამ ტვინის შიგნით თქვენი 409 00:18:03,320 --> 00:18:04,990 კომპიუტერი, რომელიც ცნობილია როგორც CPU. 410 00:18:04,990 --> 00:18:07,570 და ერთი რამ, რომ თავის ტვინზე არის, იგი დარწმუნებულია 411 00:18:07,570 --> 00:18:10,390 როგორ ესმით ნიმუში zeros და პირობა. 412 00:18:10,390 --> 00:18:13,240 ეს იცის, რა ნიმუში ბიტი წარმოადგენს ამისა, რა 413 00:18:13,240 --> 00:18:15,500 ნიმუში წარმოადგენს subtractions, რა ნიმუში 414 00:18:15,500 --> 00:18:18,890 ბიტი წარმოადგენენ ბეჭდვა, და შექმნის Audible sound. 415 00:18:18,890 --> 00:18:22,450 >> ასე მოკლედ, CPU, coupled ოპერაციული სისტემა, 416 00:18:22,450 --> 00:18:25,230 რაც ნაჭერი პროგრამული უზრუნველყოფა, რომელიც ეშვება ზევით CPU, 417 00:18:25,230 --> 00:18:26,050 ასე ვთქვათ. 418 00:18:26,050 --> 00:18:29,850 ერთად, ეს ორი ცალი ვიცი როგორ პროგრამების გასაშვებად, რომ 419 00:18:29,850 --> 00:18:31,070 ჩვენ ადამიანები წერენ. 420 00:18:31,070 --> 00:18:34,040 >> ასე რომ, თუ მე წასვლას CS50 ელექტრო აქ, მე უნდა გახსნა 421 00:18:34,040 --> 00:18:35,660 მდე ტექსტური რედაქტორი და შემიძლია გავქთ ამ 422 00:18:35,660 --> 00:18:36,560 რამდენიმე გზა არსებობს. 423 00:18:36,560 --> 00:18:39,060 შემიძლია არც წასვლა მენიუ, პროგრამირება, 424 00:18:39,060 --> 00:18:40,230 და მაშინ შემიძლია აირჩიეთ - 425 00:18:40,230 --> 00:18:40,810 nope, არ, რომ მენიუში. 426 00:18:40,810 --> 00:18:43,860 შემიძლია წასვლა აქსესუარები / gedit აქ გახსნა 427 00:18:43,860 --> 00:18:45,090 ჩემი პატარა ტექსტური რედაქტორი. 428 00:18:45,090 --> 00:18:48,030 ან მეტი უბრალოდ, შემიძლია დააჭირეთ ამ პატარა ხატი ქვედა 429 00:18:48,030 --> 00:18:48,970 მარცხენა კუთხეში. 430 00:18:48,970 --> 00:18:50,430 და ახლა ამ გარემოში აქ. 431 00:18:50,430 --> 00:18:52,590 ეს საკმაოდ თქვენში მარტივი ტექსტური რედაქტორი, სადაც მხოლოდ 432 00:18:52,590 --> 00:18:53,820 ერთი ან ორი განსხვავებები. 433 00:18:53,820 --> 00:18:56,420 ზედა, სადაც კურსორი არის მოციმციმე არის, ეს არის, სადაც 434 00:18:56,420 --> 00:18:57,900 მე შემიძლია წერა ჩემი კოდი. 435 00:18:57,900 --> 00:19:00,415 ქვედა არის ეს საგანი მოუწოდა ტერმინალის ფანჯარაში. 436 00:19:00,415 --> 00:19:03,400 და რა სახის რამ გავაკეთო ამ 437 00:19:03,400 --> 00:19:04,960 ე.წ. ტერმინალის ფანჯარაში? 438 00:19:04,960 --> 00:19:06,680 [INAUDIBLE] 439 00:19:06,680 --> 00:19:07,890 >> Okay, ასე მე აწარმოებს ბრძანებები. 440 00:19:07,890 --> 00:19:10,300 და ზოგიერთი ბრძანებები ჩვენ გაიქცა ორშაბათს იყო პატარა 441 00:19:10,300 --> 00:19:15,070 cryptic თავდაპირველად, მაგრამ ამისთვის ls სია, CD ცვლილების დირექტორია, 442 00:19:15,070 --> 00:19:16,540 rm, ამისთვის ამოიღონ. 443 00:19:16,540 --> 00:19:19,680 ასე რომ ერთგვარი ძველი სკოლის გზა ნავიგაცია თქვენი 444 00:19:19,680 --> 00:19:22,310 კომპიუტერის გამოყენებით მხოლოდ თქვენს კლავიატურაზე და ტექსტობრივი ბრძანებები, 445 00:19:22,310 --> 00:19:24,130 და არა, ზოგადად, გამოყენებით მაუსის. 446 00:19:24,130 --> 00:19:25,960 მაგრამ ჩვენ დავინახავთ, სანამ ხანგრძლივი, ამ რეალურად გვაძლევს 447 00:19:25,960 --> 00:19:28,520 ცოტა მეტი ძალა და ცოტა უფრო მეტი სიზუსტით, რომლითაც 448 00:19:28,520 --> 00:19:29,600 გამოხატოს საკუთარ თავს. 449 00:19:29,600 --> 00:19:31,330 და მაშინ მეტი აქ მარცხენა, ჩვენ უბრალოდ აპირებს ვხედავ, 450 00:19:31,330 --> 00:19:34,360 როგორც ჩვენ ვიწყებთ წერა პროგრამული უზრუნველყოფა, პატარა რეზიუმე 451 00:19:34,360 --> 00:19:36,350 პროგრამა, რომელიც ჩვენ იწერება ზედა მარცხენა. 452 00:19:36,350 --> 00:19:38,360 მაგრამ ჩვენ ვხედავთ, რომ ერთხელ, სანამ ხანგრძლივი. 453 00:19:38,360 --> 00:19:40,050 >> მოდით რაღაც საკმაოდ მარტივია აქ. 454 00:19:40,050 --> 00:19:43,440 ნება მომეცით პირველი წავიდეთ წინ, გადადით ფაილი, შენახვა, და მე უბრალოდ 455 00:19:43,440 --> 00:19:45,970 აპირებს დააწკაპუნეთ jharvard აქ, ზე მარცხნივ, და 456 00:19:45,970 --> 00:19:48,930 jharvard არის, კიდევ ერთხელ, სახელი ჩემი მთავარი ფოლდერი, ჩემი 457 00:19:48,930 --> 00:19:52,110 პირადი საქმეები, ჩემთვის, ამჟამად მიმდინარეობს ჯონ ჰარვარდის, როგორც ყველა თქვენგანს 458 00:19:52,110 --> 00:19:54,230 მალე ჯონ ჰარვარდის ამ გარემოში. 459 00:19:54,230 --> 00:19:57,360 ის მოხდა ეს მთავარი დირექტორია, ჩემი დოკუმენტები და ა.შ., 460 00:19:57,360 --> 00:19:58,900 რომ მინდა შენახვა, ახლა, ამ ფაილის სისტემაში 461 00:19:58,900 --> 00:20:01,520 ამიტომ, მე ვაპირებ მოვუწოდო მას hello.c. მაშინ მე ვაპირებ წასვლა 462 00:20:01,520 --> 00:20:05,770 ადრე და დააჭირეთ Save და ახლა რა მაქვს აქ tab 463 00:20:05,770 --> 00:20:09,440 მოუწოდა hello.c, იმდენად მოსწონს სხვა ტიპის რედაქტორი. 464 00:20:09,440 --> 00:20:11,760 >> ახლა ნება მომეცით წავიდეთ წინ და დაიწყოს პროგრამის წერა. 465 00:20:11,760 --> 00:20:14,440 int ძირითადი (void). 466 00:20:14,440 --> 00:20:18,150 და მერე უბრალოდ გააკეთა ბოლო დროს, printf, ბეჭდური დაფორმატებას, 467 00:20:18,150 --> 00:20:22,120 ("Hello, World!" 468 00:20:22,120 --> 00:20:24,500 );. 469 00:20:24,500 --> 00:20:25,630 თითქმის. 470 00:20:25,630 --> 00:20:27,130 მაგრამ მე დაკარგული რამდენიმე დეტალი. 471 00:20:27,130 --> 00:20:30,210 რა აკლია ამ პროგრამის, რომ მე ნამდვილად საჭიროა 472 00:20:30,210 --> 00:20:31,890 მას რეალურად ადგენენ? 473 00:20:31,890 --> 00:20:32,130 Yeah. 474 00:20:32,130 --> 00:20:33,980 [INAUDIBLE]? 475 00:20:33,980 --> 00:20:35,770 >> დევიდ ჯ Malan: ჰო, მე უნდა შეიცავდეს სტანდარტული 476 00:20:35,770 --> 00:20:36,700 I / O ბიბლიოთეკაში. 477 00:20:36,700 --> 00:20:39,470 ასე რომ ეს უნდა წავიდეს ზემოთ ძირითადი, ისე მე უბრალოდ აპირებს 478 00:20:39,470 --> 00:20:40,790 გარკვეული ოთახი ამისთვის არსებობს. 479 00:20:40,790 --> 00:20:44,420 და მე ვაპირებ ამის გაკეთებას # მოიცავს . 480 00:20:44,420 --> 00:20:46,570 და შეამჩნია დახრილი ფრჩხილები არსებობს. 481 00:20:46,570 --> 00:20:49,410 და როგორც განზე, gedit არის პატარა მოსახერხებელი, თუ 482 00:20:49,410 --> 00:20:52,420 ხანდახან ცოტა დამაბნეველი, რომ ის ცდილობს დაეხმაროს თქვენი 483 00:20:52,420 --> 00:20:54,770 თვალების შეამჩნია რა ხაზები ერთად რა. 484 00:20:54,770 --> 00:20:57,760 ასე რომ ის ფაქტი, რომ ჩემი კურსორი არის სწორი შემდეგი ამ დახრილი 485 00:20:57,760 --> 00:21:00,600 bracket, შეამჩნევთ, თუ როგორ იგი ხაზს უსვამს სხვა დახრილი 486 00:21:00,600 --> 00:21:01,920 bracket პლუს ერთი. 487 00:21:01,920 --> 00:21:03,770 და ეს მხოლოდ გავამახვილო ჩემი ყურადღება იმაზე, რომ მე 488 00:21:03,770 --> 00:21:04,460 აქვს სიმეტრია. 489 00:21:04,460 --> 00:21:07,010 და სიმეტრია პროგრამირებაში ზოგადად კარგია. 490 00:21:07,010 --> 00:21:10,270 ანალოგიურად, თუ გადავა ჩემი კურსორი ბოლომდე, შეამჩნევთ, თუ როგორ 491 00:21:10,270 --> 00:21:13,630 Curly braces გამოდიან იმის ჩვენება, რომ, დიახ, მე მაქვს ღია ერთი 492 00:21:13,630 --> 00:21:15,160 და დახურული ერთი, ასე ვთქვათ. 493 00:21:15,160 --> 00:21:16,640 >> ყველა უფლება და შემიძლია ერთი რამ სხვა. 494 00:21:16,640 --> 00:21:20,090 ეს არ არის მკაცრად აუცილებელი, მაგრამ კარგი პრაქტიკა, ვთქვა 495 00:21:20,090 --> 00:21:21,250 დაბრუნებას 0. 496 00:21:21,250 --> 00:21:24,140 და დაბრუნების 0 აკეთებს იმას ჩვენთვის აქ? 497 00:21:24,140 --> 00:21:25,584 ან ნიშნავს, რა? 498 00:21:25,584 --> 00:21:27,480 [INAUDIBLE] 499 00:21:27,480 --> 00:21:28,300 დევიდ ჯ Malan: არაფერი არასწორი. 500 00:21:28,300 --> 00:21:30,280 და გულწრფელად ძნელია დიდი წასვლა შეცდომა 501 00:21:30,280 --> 00:21:31,250 პროგრამის მოკლე. 502 00:21:31,250 --> 00:21:33,930 ასე რომ მე უბრალოდ მყოფი super სიცოცხლისუნარიანობა, რომ ყველა კარგად არის. 503 00:21:33,930 --> 00:21:36,740 მე, ადამიანური, როცა აწარმოებს ამ პროგრამის ალბათ არასოდეს 504 00:21:36,740 --> 00:21:38,150 ვხედავთ, რომ 0. 505 00:21:38,150 --> 00:21:41,070 საერთოდ, ამ ნომრებზე, რომლებიც დაბრუნდნენ მთავარი 506 00:21:41,070 --> 00:21:43,540 მხოლოდ უკანა მათი მიემართება ადამიანები, როდესაც 507 00:21:43,540 --> 00:21:44,360 რაღაც მიდის არასწორი. 508 00:21:44,360 --> 00:21:46,640 და თქვენ მიიღებთ პატარა pop up ამბობდა სისტემის შეცდომა, ერთი, 509 00:21:46,640 --> 00:21:48,760 ორი, სამი, ან რასაც ნომერი რომ 510 00:21:48,760 --> 00:21:50,100 სინამდვილეში დაბრუნდა. 511 00:21:50,100 --> 00:21:52,870 ასე რომ არაფერი ცუდი ეს? 512 00:21:52,870 --> 00:21:55,300 [INAUDIBLE] 513 00:21:55,300 --> 00:21:58,100 >> დევიდ ჯ Malan: ასე რომ, ეს არ არის იმდენად ფუნქციური შეცდომა 514 00:21:58,100 --> 00:21:59,240 მაგრამ ესთეტიკური ერთი. 515 00:21:59,240 --> 00:22:02,340 მე, ალბათ დასვა სტრიქონების გადატანით ხასიათი იქ 516 00:22:02,340 --> 00:22:05,240 ბოლოს ამ სტრიქონს ისე, რომ ჩვენ რეალურად გადაიტანოთ კურსორი 517 00:22:05,240 --> 00:22:08,340 შემდეგი ხაზი, და პროგრამა უბრალოდ გამოიყურება პატარა გალამაზებაში. 518 00:22:08,340 --> 00:22:10,340 >> ახლა ნება მომეცით დაცემას ჩემს ტერმინალის ფანჯარაში 519 00:22:10,340 --> 00:22:11,490 და მასშტაბის უკან შემოსული 520 00:22:11,490 --> 00:22:13,390 და ეს საგანი აქ, ეს ე.წ. ზოლზე. 521 00:22:13,390 --> 00:22:16,760 უბრალოდ ახსენებს, ვინ ვარ, jharvard @ ელექტრო მოწყობილობების, სადაც 522 00:22:16,760 --> 00:22:18,850 ელექტრო მოწყობილობების არის სახელი კომპიუტერის ვარ მე. 523 00:22:18,850 --> 00:22:22,380 ფრჩხილებში არის ამ tilde, squiggle სიმბოლო, რომელიც 524 00:22:22,380 --> 00:22:24,160 წარმოადგენს რა? 525 00:22:24,160 --> 00:22:25,590 აუდიტორია: მთავარი დირექტორია. 526 00:22:25,590 --> 00:22:26,350 დევიდ ჯ Malan: მთავარი დირექტორია. 527 00:22:26,350 --> 00:22:29,350 ასე რომ უბრალოდ სტენოგრამის ნოტაცია ამას თქვენ ხართ 528 00:22:29,350 --> 00:22:32,780 თქვენი პირადი საქაღალდე სადაც ყველა თქვენი ფაილი წასვლა იყოს. 529 00:22:32,780 --> 00:22:36,080 ახლა, აქ, მე შემიძლია აკრიფოთ ls ამისთვის სიაში. 530 00:22:36,080 --> 00:22:40,020 და ერთადერთი, რაც მე ვერ ვხედავ აქ, ამ დროისთვის არის hello.c. 531 00:22:40,020 --> 00:22:41,770 და ეგ კარგია, რადგან მე უბრალოდ დაწერა ეს. 532 00:22:41,770 --> 00:22:44,380 >> ნება მომეცით, წავიდეთ წინ და მიიღოს hello. 533 00:22:44,380 --> 00:22:46,830 და შენიშნავს, მე არ აკრეფით მიიღოს hello.c. 534 00:22:46,830 --> 00:22:50,300 სამაგიეროდ, მე მხოლოდ აკრეფით ბაზის სახელით ფაილი, hello. 535 00:22:50,300 --> 00:22:53,690 და მიიღოს, როგორც დავინახეთ, ორშაბათს, იქნება მხოლოდ infer რომ მინდა 536 00:22:53,690 --> 00:22:54,920 . გ ფაილი. 537 00:22:54,920 --> 00:22:56,820 ახლა მე აკრეფილი მიიღოს hello. 538 00:22:56,820 --> 00:22:59,280 ახლა ვხედავ ამ საკმაოდ ხანგრძლივი ბრძანება და გაგრძელდება 539 00:22:59,280 --> 00:23:00,480 ვხედავთ ამ ისევ და ისევ. 540 00:23:00,480 --> 00:23:03,620 მაგრამ უნდა იყოს მკაფიო, clang, სიტყვა, რომელიც მხოლოდ გაჩნდა, 541 00:23:03,620 --> 00:23:05,340 რომ ფაქტობრივი შემდგენელი. 542 00:23:05,340 --> 00:23:08,200 ჩადება მხოლოდ Build სასარგებლო. 543 00:23:08,200 --> 00:23:11,900 უბრალოდ უფრო მოსახერხებელი პროგრამა, რომელიც ზოგავს მე, წელს 544 00:23:11,900 --> 00:23:15,310 გრძელვადიან პერსპექტივაში, საწყისი მქონე აკრიფოთ გარეთ წარმოუდგენლად რუტინული ხანგრძლივი 545 00:23:15,310 --> 00:23:17,020 ბრძანებები როგორიც არის. 546 00:23:17,020 --> 00:23:18,950 ასე, რომ თქვენ შეიძლება აწარმოებს Clang ხელით. 547 00:23:18,950 --> 00:23:20,530 თქვენ შეიძლება აკრიფოთ ყველა რომ ხელით. 548 00:23:20,530 --> 00:23:21,580 უბრალოდ იღებს ძალიან რუტინული. 549 00:23:21,580 --> 00:23:24,720 და ასე რომ მხოლოდ პროგრამა, რომელიც ამარტივებს ჩვენი ცხოვრება და 550 00:23:24,720 --> 00:23:27,120 გადის უფრო რთული ბრძანებები ჩვენთვის. 551 00:23:27,120 --> 00:23:29,410 >> ყველა უფლება, ასე რომ ახლა რა ფაილი უნდა მაქვს 552 00:23:29,410 --> 00:23:31,540 ჩემი მიმდინარე დირექტორიაში? 553 00:23:31,540 --> 00:23:36,310 არა მხოლოდ hello.c, არამედ hello. 554 00:23:36,310 --> 00:23:39,710 ასე რომ, თუ მინდა აწარმოებს hello, გავიხსენოთ, რომ ვამბობ dot ხაზი, 555 00:23:39,710 --> 00:23:42,220 სადაც dot საშუალებით წასვლას მიმდინარე საქაღალდეში, სადაც არ უნდა იყოთ 556 00:23:42,220 --> 00:23:46,060 არიან, და შემდეგ გაუშვით პროგრამა მოუწოდა hello, და მართლაც, ახლა, 557 00:23:46,060 --> 00:23:48,080 მაქვს Hello world. 558 00:23:48,080 --> 00:23:51,640 ყველა უფლება, ნებისმიერი შეკითხვა ან workflow სინტაქსის შესახებ 559 00:23:51,640 --> 00:23:52,890 რაც ჩვენ უბრალოდ გააკეთეს? 560 00:23:55,380 --> 00:23:57,040 >> ყველა უფლება, ასე რომ ავიღოთ რამ up მაღალი დონის ერთხელ. 561 00:23:57,040 --> 00:24:00,430 ასე რომ, ეს იყო underwhelming უბრალოდ წერენ პროგრამა, რომელიც მხოლოდ 562 00:24:00,430 --> 00:24:01,790 ოდესმე ამბობს hello, world. 563 00:24:01,790 --> 00:24:03,920 ამიტომ, ჩვენ შეიცვალა მას, ორშაბათს, ვთქვა, hello, დავით. 564 00:24:03,920 --> 00:24:06,560 ეს უფრო პიროვნული, ისევე როგორც მძიმე კოდირებული როგორც 565 00:24:06,560 --> 00:24:07,410 პირველი ვერსია. 566 00:24:07,410 --> 00:24:08,780 ასე რომ არა ყველა, რომ მყარი. 567 00:24:08,780 --> 00:24:13,120 მაგრამ არსებობს, დო, ფუნქციები, რა თქმა უნდა გარდა 568 00:24:13,120 --> 00:24:15,700 ბეჭდვითი, ფუნქციების, რომ ნება თქვენ მომხმარებლის შეყვანის. 569 00:24:15,700 --> 00:24:17,990 და გზა ეს გავაკეთეთ, მეორე დღეს, იყო შემდეგნაირი. 570 00:24:17,990 --> 00:24:21,440 სანამ რეალურად ამობეჭდოთ რაღაც, მე პირველად მიიღეს 571 00:24:21,440 --> 00:24:22,410 რამ მომხმარებლის. 572 00:24:22,410 --> 00:24:23,370 ნება მომეცით, ეს კიდევ ერთხელ გავაკეთოთ. 573 00:24:23,370 --> 00:24:26,580 >> სიმებიანი s, სადაც მხოლოდ თვითნებური სახელი, აქ, ამისთვის 574 00:24:26,580 --> 00:24:30,600 სიმებიანი, ტოლობის GetString. 575 00:24:30,600 --> 00:24:32,070 მერე რა იყო GetString? 576 00:24:32,070 --> 00:24:34,630 ეს აშკარად იღებს ტექსტი, დაფუძნებული მისი სახელი. 577 00:24:34,630 --> 00:24:37,560 მაგრამ რა არის ეს, უფრო ტექნიკურად? 578 00:24:37,560 --> 00:24:38,440 ეს ფუნქცია. 579 00:24:38,440 --> 00:24:41,790 ასე რომ ფუნქცია, რომელიც არ მოდის და C თავისთავად. 580 00:24:41,790 --> 00:24:43,660 CS50 პერსონალის დაწერა ეს. 581 00:24:43,660 --> 00:24:46,940 და ასე გამოიყენოს ეს, შეგიძლიათ არა მხოლოდ მოიცავს stdio.h, 582 00:24:46,940 --> 00:24:49,630 თქვენ ასევე უნდა შეიცავდეს რა? 583 00:24:49,630 --> 00:24:50,060 Yeah. 584 00:24:50,060 --> 00:24:54,210 ამიტომ cs50.h, რაც არის ფაილის ჩვენ წერდა რამდენიმე წლის წინ. 585 00:24:54,210 --> 00:24:57,130 ჩვენ დაყენებული ეს ელექტრო თქვენთვის ერთად 586 00:24:57,130 --> 00:24:58,490 ყველა სტანდარტის ფაილი. 587 00:24:58,490 --> 00:25:00,500 და ა.შ. ამ პირველი რამდენიმე კვირის კლასის, ჩვენ ვიყენებთ 588 00:25:00,500 --> 00:25:02,820 ამ უბრალოდ გამარტივების პროცესი აკეთებს ძალიან ძირითადი 589 00:25:02,820 --> 00:25:04,600 რამ, როგორიცაა მიღების მომხმარებლის შეყვანის. 590 00:25:04,600 --> 00:25:07,370 რადგან, როგორც ვნახავთ, რამდენიმე კვირის განმავლობაში, მიღების მომხმარებლის შეყვანის წელს 591 00:25:07,370 --> 00:25:10,180 ენა მოსწონს C ფაქტიურად საოცრად რთული, 592 00:25:10,180 --> 00:25:14,360 განსაკუთრებით იმიტომ, რომ თქვენ არ ვიცი წინასწარ, როგორც წესი, თუ როგორ 593 00:25:14,360 --> 00:25:17,030 ბევრი პერსონალი მომხმარებლის აპირებს აკრიფოთ სისტემაში 594 00:25:17,030 --> 00:25:20,340 და როდის არ ვიცი, რამდენად მონაცემები უნდა ველოდოთ, მაგრამ თქვენ არ 595 00:25:20,340 --> 00:25:22,380 ვიცი რამდენად მეხსიერების გამოყოფას. 596 00:25:22,380 --> 00:25:25,480 და თუ თქვენ ნამდვილად აქვს შეჯიბრებითობის მომხმარებლის რომელიც ცდილობს 597 00:25:25,480 --> 00:25:28,180 to hack თქვენს სისტემას, Crash თქვენი კომპიუტერი, ისევე, 598 00:25:28,180 --> 00:25:31,600 ზოგადად პირველი მეთოდით შეტევა, როგორც მე მოახერხა 599 00:25:31,600 --> 00:25:34,950 ორშაბათი, აკრიფოთ მთელი ხანგრძლივი თანმიმდევრობა შემთხვევითი გმირები, 600 00:25:34,950 --> 00:25:37,020 'Enter, და ვნახოთ, რა არღვევს. 601 00:25:37,020 --> 00:25:40,800 იმის გამო, რომ ზოგადად, თუ პროგრამა წყვეტები, რომ მინიშნებები ზე 602 00:25:40,800 --> 00:25:42,650 უსაფრთხოების ხარვეზი, პოტენციურად. 603 00:25:42,650 --> 00:25:45,250 რა თქმა უნდა, მინიშნებები თქვენ, პროგრამისტი, რომელმაც 604 00:25:45,250 --> 00:25:49,050 შეცდომა, მაგრამ უფრო სახიფათოდ, თქვენ ალბათ არ გააკეთა 605 00:25:49,050 --> 00:25:52,430 უსაფრთხოებასთან დაკავშირებულ შეცდომა, და საერთოდ ჩვენ ვხედავთ, რომ 606 00:25:52,430 --> 00:25:54,840 ასე მანქანა კომპრომეტირებული ამ დღეს, როგორც 607 00:25:54,840 --> 00:25:56,620 სამყაროში ვებ და პროგრამების 608 00:25:56,620 --> 00:25:58,070 ბრძანების სტრიქონში, მოსწონს ეს. 609 00:25:58,070 --> 00:25:58,350 >> ყველა უფლება. 610 00:25:58,350 --> 00:26:00,460 ამიტომ string s უდრის GetString. 611 00:26:00,460 --> 00:26:03,380 ამიტომ უფრო კონკრეტულად, ახლა, რა ხაზის 6 აქ? 612 00:26:03,380 --> 00:26:05,640 ასე ფუნქცია მარჯვენა იღებს ტექსტი, 613 00:26:05,640 --> 00:26:06,890 იღებს რამდენი არგუმენტები? 614 00:26:09,458 --> 00:26:09,900 Okay. 615 00:26:09,900 --> 00:26:10,400 ასე რომ არა. 616 00:26:10,400 --> 00:26:11,360 ცოტა საღი აზრის შეამოწმოს. 617 00:26:11,360 --> 00:26:15,380 არგუმენტი, კიდევ ერთხელ, მხოლოდ input to ფუნქცია შეცვალოს 618 00:26:15,380 --> 00:26:17,250 ნაგულისხმევი ქცევის რამდენიმე გზა. 619 00:26:17,250 --> 00:26:19,540 მაგრამ ამ შემთხვევაში, მე არ მინდა შეცვალოს 620 00:26:19,540 --> 00:26:20,650 ქცევის GetString. 621 00:26:20,650 --> 00:26:22,430 მე უბრალოდ სურდა მიიღოს სიმებიანი. 622 00:26:22,430 --> 00:26:25,190 ასე რომ მე ზუსტად არაფერი ფრჩხილებში, და მერე დააყენოს 623 00:26:25,190 --> 00:26:27,550 მძიმით demarking დასასრულს ხაზი კოდი. 624 00:26:27,550 --> 00:26:29,840 ახლა, ტოლობის ნიშანი არ ნიშნავს თანასწორი, თავისთავად. 625 00:26:29,840 --> 00:26:32,690 ეს იმას ნიშნავს, დავალება, რაც იმას ნიშნავს, რომ ვთქვათ რასაც იღებს 626 00:26:32,690 --> 00:26:36,060 outputted მარჯვენა შიგნით რაც მარცხენა. 627 00:26:36,060 --> 00:26:39,400 >> ამიტომ მარცხნივ, ჩვენ ვამბობთ, რომ არ გამოცხადდა 628 00:26:39,400 --> 00:26:41,630 სიმებიანი მოუწოდა s. 629 00:26:41,630 --> 00:26:44,240 და უფრო კონკრეტულად, ჩვენ გამოყოფილი მეხსიერების შიგნით 630 00:26:44,240 --> 00:26:46,340 რაც ჩვენ დააყენა ბიტი, რომელიც წარმოადგენს თანმიმდევრობა 631 00:26:46,340 --> 00:26:46,850 სიმბოლო. 632 00:26:46,850 --> 00:26:49,400 მაგრამ დღეს ჩვენ გვაქვს გამოყოფილი 633 00:26:49,400 --> 00:26:51,450 ან გამოაცხადა სიმებიანი. 634 00:26:51,450 --> 00:26:51,790 ყველა უფლება. 635 00:26:51,790 --> 00:26:54,760 ახლა კიდევ ერთხელ მე ვაკეთებ ამ, მინდა შეაერთედ ღირებულებაში 636 00:26:54,760 --> 00:26:56,535 s, არ ღირებულება დავით. 637 00:26:56,535 --> 00:27:00,200 ასე რომ, ეს არის არასწორი, რატომ? 638 00:27:03,060 --> 00:27:04,870 ასე რომ, ეს უბრალოდ სიტყვასიტყვით მყარი კოდირებული s. 639 00:27:04,870 --> 00:27:06,870 ეს ვთქვა, "Hello, S", რომელიც არ არის ის რაც მე მინდა. 640 00:27:06,870 --> 00:27:07,790 ასე, რომ შეიძლება ამის გაკეთება. 641 00:27:07,790 --> 00:27:10,330 პროცენტი ნიშანი არის placeholder, მაგრამ ახლა მე უნდა 642 00:27:10,330 --> 00:27:12,520 გაივლის შევიდა ბეჭდვა მეორე არგუმენტი. 643 00:27:12,520 --> 00:27:15,160 შეგახსენებთ, რომ არგუმენტები ფუნქციები გამოყოფილი 644 00:27:15,160 --> 00:27:20,300 მძიმეები, ამიტომ შემდეგი მძიმით აქ მე ზუსტად ამის შემდეგ წერილში s. 645 00:27:20,300 --> 00:27:23,740 და ამ კონტექსტში არის, S არის ცვლადი, და printf, 646 00:27:23,740 --> 00:27:25,550 მიღების იმ ორ საშუალებებით - 647 00:27:25,550 --> 00:27:29,440 სიმებიანი მარცხენა და ცვლადის სახელი s მარჯვენა - 648 00:27:29,440 --> 00:27:32,750 იგი შეაერთედ უკანასკნელის შევიდა ყოფილი ჩვენთვის, და 649 00:27:32,750 --> 00:27:34,600 უბრალოდ ამობეჭდოთ ლამაზი ლამაზი string შემცველი 650 00:27:34,600 --> 00:27:36,770 რაც არ არის, რომ ჩვენ აკრეფილი შემოსული 651 00:27:36,770 --> 00:27:37,560 >> მოდით ცდილობენ ამ. 652 00:27:37,560 --> 00:27:38,860 აპირებს წავიდეთ წინ და დააშორებს, უკან 653 00:27:38,860 --> 00:27:40,250 ჩემს ტერმინალის ფანჯარაში. 654 00:27:40,250 --> 00:27:41,840 მიუახლოვდით ბოლოში აქ. 655 00:27:41,840 --> 00:27:44,070 გაიმეორეთ მიიღოს hello. 656 00:27:44,070 --> 00:27:45,870 Clang ჩანს უკვე გამეორება. 657 00:27:45,870 --> 00:27:49,280 მე ვაპირებ ტიპის. / Hello, შეიყვანეთ. 658 00:27:49,280 --> 00:27:52,145 არაფერი ჩანს ხდება ჯერჯერობით, მაგრამ ამ სწრაფი 659 00:27:52,145 --> 00:27:55,700 რომ შემიძლია აკრიფოთ რაღაც Nate, შეიყვანეთ და ახლა ჩვენ გვაქვს 660 00:27:55,700 --> 00:27:56,380 Hello, Nate. 661 00:27:56,380 --> 00:27:59,600 და მე შემიძლია ამის გაკეთება კვლავ რობ და სხვ. 662 00:27:59,600 --> 00:28:03,410 ასე რომ იმედია ახლა ამ პროგრამის behaving როგორც ვაპირებ. 663 00:28:03,410 --> 00:28:05,720 >> ახლა, ყველა რომ მომხმარებლის მეგობრული. 664 00:28:05,720 --> 00:28:07,930 მე არ ვიცი, რა ელოდებიან ჩემთვის. 665 00:28:07,930 --> 00:28:09,620 ასე რომ ჩვენ შეგვიძლია ნამდვილად სუფთა ეს ყველაფერი ცოტა. 666 00:28:09,620 --> 00:28:13,270 ნება მომეცით დაბრუნდეს აქ, და ნაცვლად მხოლოდ სიმულაციისათვის და 667 00:28:13,270 --> 00:28:16,480 გეკითხებით მომხმარებლის ამისთვის სიმებიანი, ნება მომეცით მკაფიოდ ვუთხრათ 668 00:28:16,480 --> 00:28:17,750 მომხმარებლის რა მე ელოდება. 669 00:28:17,750 --> 00:28:21,610 ამიტომ printf ("შეიყვანეთ string:" 670 00:28:21,610 --> 00:28:24,080 ); 671 00:28:24,080 --> 00:28:25,510 ასე რომ არ ცვლადები აქ. 672 00:28:25,510 --> 00:28:26,750 არარის პროცენტს ნიშნები. 673 00:28:26,750 --> 00:28:28,550 უბრალოდ მარტივი English ფრაზა. 674 00:28:28,550 --> 00:28:34,030 ნება მიბოძეთ ახლა გადადით ბოლოში და გამეორება ჩემი პროგრამა. 675 00:28:34,030 --> 00:28:35,380 მაგრამ არაფერი ჩანს შეიცვალა. 676 00:28:35,380 --> 00:28:37,350 რატომ? 677 00:28:37,350 --> 00:28:38,380 მე უნდა recompile იგი. 678 00:28:38,380 --> 00:28:39,570 ისე ადვილია შეცდომის მიიღოს. 679 00:28:39,570 --> 00:28:41,700 მაგრამ თქვენ უნდა არა მხოლოდ ფაილის შენახვა, მაგრამ 680 00:28:41,700 --> 00:28:43,260 recompile პროგრამა. 681 00:28:43,260 --> 00:28:46,640 და ასე თუ ხელახლა აწარმოებს მიიღოს hello, ახლა Clang გადის. 682 00:28:46,640 --> 00:28:51,800 ახლა შემიძლია აწარმოებს. / Hello. და ახლა ვხედავ "შეიყვანეთ string:". 683 00:28:51,800 --> 00:28:52,050 Okay. 684 00:28:52,050 --> 00:28:53,440 ახლა კი ცოტა უფრო მოსახერხებელი. 685 00:28:53,440 --> 00:28:55,850 Nate, მიუთითოთ, hello, Nate. 686 00:28:55,850 --> 00:28:57,310 >> კარგად, მოდით ვცდილობთ ეს კიდევ ერთხელ და დაიწყოს ფიქრი 687 00:28:57,310 --> 00:28:58,080 დაახლოებით კუთხეში შემთხვევებში. 688 00:28:58,080 --> 00:29:00,520 ამიტომ ისევე როგორც Scratch, თქვენ წახალისება ან მიმდინარეობს 689 00:29:00,520 --> 00:29:03,180 წახალისებული წელს სპეც to სახის ვიფიქროთ რა შეიძლება გადასვლა 690 00:29:03,180 --> 00:29:06,610 არასწორი თუ არ გავუსწრო ყველაფერი მომხმარებლის შეიძლება გავაკეთოთ. 691 00:29:06,610 --> 00:29:08,050 Bugs, აქედან გამომდინარე, შესაძლოა მოჰყვეს. 692 00:29:08,050 --> 00:29:09,710 ასე რომ შევა string - 693 00:29:09,710 --> 00:29:11,130 რა კუთხეში შემთხვევაში აქ? 694 00:29:11,130 --> 00:29:13,320 რა არის სცენარი, რომ მე, პროგრამისტი, შეიძლება არ აქვს 695 00:29:13,320 --> 00:29:16,070 მოსალოდნელია? 696 00:29:16,070 --> 00:29:17,600 Yeah. 697 00:29:17,600 --> 00:29:17,920 Okay. 698 00:29:17,920 --> 00:29:22,060 მერე რა რომ აკრიფოთ ნომერი ასე? 699 00:29:22,060 --> 00:29:22,500 ყველა უფლება. 700 00:29:22,500 --> 00:29:24,490 ასე რომ ჯერ კიდევ მუშაობს. 701 00:29:24,490 --> 00:29:25,880 Gramatically აზრი არა აქვს. 702 00:29:25,880 --> 00:29:27,180 მაგრამ არანაკლებ პროგრამა მუშაობს. 703 00:29:27,180 --> 00:29:28,650 >> რა არის კიდევ ერთი კუთხეში შემთხვევაში? 704 00:29:28,650 --> 00:29:29,610 რაღაც არ მეგონა. 705 00:29:29,610 --> 00:29:31,590 ჰო? 706 00:29:31,590 --> 00:29:31,940 Okay. 707 00:29:31,940 --> 00:29:34,950 ასე რომ, ჩვენ შეიძლება არ რაღაც მართლაც, მართლაც დიდი რაოდენობის. 708 00:29:34,950 --> 00:29:37,270 ასე რომ მოდით ეს აქ. 709 00:29:37,270 --> 00:29:40,880 ნება მომეცით დააშორებს მეორე, ნება მომეცით ხაზი გავუსვა. 710 00:29:40,880 --> 00:29:42,250 ვერ დააკოპირეთ და ჩასვით ქვემოთ აქ. 711 00:29:42,250 --> 00:29:42,470 ყველა უფლება. 712 00:29:42,470 --> 00:29:44,440 ასე რომ მე ვერ დააკოპირეთ და ჩასვით ამ ტერმინალის ფანჯარაში, ასე რომ ჩვენ გამოგიგზავნით 713 00:29:44,440 --> 00:29:46,950 უბრალოდ სიმულაციის. 714 00:29:46,950 --> 00:29:51,340 ნება მომეცით დააშორებს, აპირებს გადაიტანოთ. 715 00:29:51,340 --> 00:29:52,700 მე არ ვაპირებ ამის გაკეთება დიდი ხანია, რადგან იგი არ 716 00:29:52,700 --> 00:29:54,440 რეალურად შესვენება ამ პროგრამის. 717 00:29:54,440 --> 00:29:55,260 მაგრამ. 718 00:29:55,260 --> 00:29:55,830 შეიყვანეთ. 719 00:29:55,830 --> 00:29:56,580 მაგრამ არ. 720 00:29:56,580 --> 00:29:57,050 ყველა უფლება. 721 00:29:57,050 --> 00:29:58,440 მაგრამ ეს ნამდვილი კუთხეში შემთხვევაში. 722 00:29:58,440 --> 00:30:01,610 და ერთადერთი მიზეზი, რომ მოიქცა სწორად, ასე 723 00:30:01,610 --> 00:30:05,820 საუბარი, იმიტომ CS50 ფუნქცია GetString არის რეალურად 724 00:30:05,820 --> 00:30:08,040 შექმნილია ქვეშ Hood, როგორც ვნახავთ, რამდენიმე კვირის განმავლობაში, 725 00:30:08,040 --> 00:30:11,570 ავტომატურად გამოყოფს უფრო და უფრო RAM, უფრო და უფრო 726 00:30:11,570 --> 00:30:14,330 მეხსიერების საწყისი ოპერაციული სისტემა, როდესაც ის აცნობიერებს, wow, 727 00:30:14,330 --> 00:30:16,670 თქვენ ნამდვილად აკრეფილი რაღაც საკმაოდ ხანგრძლივი. 728 00:30:16,670 --> 00:30:18,500 ახლა, ეს ცოტა თეთრი სიცრუეა. 729 00:30:18,500 --> 00:30:22,020 თუ ჩვენ რეალურად ათვისება საკმაოდ ხოლო მე და აკრეფილი 730 00:30:22,020 --> 00:30:24,640 რაღაც 5 მილიარდი პერსონაჟების კლავიატურის 731 00:30:24,640 --> 00:30:28,060 აქ, ან მართლაც მოხვდა ასლი პასტა საკმაოდ მწირი, ჩვენ საკმაოდ შესაძლოა 732 00:30:28,060 --> 00:30:29,730 გამოიწვევს პროგრამის მისაწოდებლად. 733 00:30:29,730 --> 00:30:32,130 უბრალოდ ცოტა უფრო რთული სიმულაცია, რომ სასრულ 734 00:30:32,130 --> 00:30:33,740 დროის. 735 00:30:33,740 --> 00:30:37,320 >> რა არის კიდევ ერთი კუთხეში შემთხვევაში ჩვენ შეიძლება შევეცადოთ? 736 00:30:37,320 --> 00:30:38,730 ჰო? 737 00:30:38,730 --> 00:30:39,020 Yeah. 738 00:30:39,020 --> 00:30:40,360 მაშ რატომ არ გვაქვს არაფერი უპასუხოს? 739 00:30:40,360 --> 00:30:43,130 ამიტომ, ჩვენ რეალურად უნდა მიიღოს გარკვეული ქმედება, რადგან, წინააღმდეგ შემთხვევაში 740 00:30:43,130 --> 00:30:45,060 პროგრამის აპირებს იჯდეს იქ მოციმციმე მთელი დღის. 741 00:30:45,060 --> 00:30:46,860 მაგრამ თუ უბრალოდ დააჭიროთ - 742 00:30:46,860 --> 00:30:48,780 OK, ახლა, მაინც გამოიყურება არასწორია. 743 00:30:48,780 --> 00:30:51,670 არ ავარიის, მაგრამ იქნებ იქ არის შესაძლებლობა 744 00:30:51,670 --> 00:30:54,190 დაიწყოს განხორციელების უფრო მკაცრი პროგრამა 745 00:30:54,190 --> 00:30:55,290 რომ რეალურად ამოწმებს. 746 00:30:55,290 --> 00:30:57,640 და თუ სიმებიანი, განაჩენი, სიტყვა, რომელიც მე 747 00:30:57,640 --> 00:31:00,890 აკრეფილი აქვს სიგრძე 0, კარგად, იქნებ მე უნდა დაწეროთ ზე 748 00:31:00,890 --> 00:31:03,770 მომხმარებელი, ან ვუთხრა მას შესვლის სიმებიანი ერთხელ, ასე რომ 749 00:31:03,770 --> 00:31:06,560 ჩვენ რეალურად რა ჰგავს სწორი საქციელი და არ 750 00:31:06,560 --> 00:31:08,570 უბრალოდ სრული ზედამხედველობას ჩემი ნაწილი. 751 00:31:08,570 --> 00:31:11,130 >> კითხვა თავში? 752 00:31:11,130 --> 00:31:11,970 ათობითი რიცხვი. 753 00:31:11,970 --> 00:31:13,120 ამიტომ ვერ ვცდილობთ, რომ ძალიან. 754 00:31:13,120 --> 00:31:16,840 1,10000005. 755 00:31:16,840 --> 00:31:19,470 როგორც ჩანს, რომ აპირებს მხოლოდ მუშაობა ფაქტობრივად okay. 756 00:31:19,470 --> 00:31:21,160 და რომ რეალურად მოსალოდნელია. 757 00:31:21,160 --> 00:31:24,550 მიუხედავად იმისა, რომ ჩვენ შეიძლება არ აკრეფილი, რომ ნომერი არსებობს, ან 758 00:31:24,550 --> 00:31:28,200 უფრო დიდი რაოდენობის ადრე, გააცნობიეროს, რომ როდესაც ჩვენ აკრეფით მომხმარებლის 759 00:31:28,200 --> 00:31:31,070 შეყვანის და ჩვენ გამოყენებით GetString ფუნქცია, არ 760 00:31:31,070 --> 00:31:34,380 მნიშვნელობა, თუ რა მე აკრეფის ჰგავს ნომერი. 761 00:31:34,380 --> 00:31:36,720 შეგახსენებთ, რომ მიხედვით ASCII, ყველაფერი თქვენს 762 00:31:36,720 --> 00:31:39,920 კლავიატურის აქვს რიცხვითი მნიშვნელობა, რომელიც შეიძლება mapped to 763 00:31:39,920 --> 00:31:41,480 ხასიათი, char. 764 00:31:41,480 --> 00:31:44,490 ასე რომ, ამ შემთხვევაში, მიუხედავად იმისა, რომ მე შეიძლება აკრიფოთ ნომერი, 765 00:31:44,490 --> 00:31:48,190 კომპიუტერის აპირებს ვფიქრობ ეს, ასე ვთქვათ, როგორც სიმებიანი - 766 00:31:48,190 --> 00:31:49,870 რაღაც რომ ჰგავს ნომერი, მაგრამ არის 767 00:31:49,870 --> 00:31:51,090 რეალურად არ ნომერი. 768 00:31:51,090 --> 00:31:53,450 მაგრამ ეს რეალურად სრულყოფილი segue, რადგან ახლა ჩვენ შეგვიძლია 769 00:31:53,450 --> 00:31:55,450 რეალურად გადასვლის წერილობით პროგრამები 770 00:31:55,450 --> 00:31:56,730 გამოვიყენოთ სხვა მონაცემთა ტიპები. 771 00:31:56,730 --> 00:32:01,840 >> ასე რომ გარდა გამოყენებით სიმბოლო, უფრო სწორად, გარდა გამოყენებით სიმები, 772 00:32:01,840 --> 00:32:04,510 გააცნობიეროს, რომ ჩვენ გვაქვს სხვა მონაცემები სახის დო ისევე როგორც 773 00:32:04,510 --> 00:32:05,230 სხვა ენებზე. 774 00:32:05,230 --> 00:32:08,480 Char, როგორც სახელი ვარაუდობს, არის მხოლოდ ერთი ხასიათი. 775 00:32:08,480 --> 00:32:12,150 Float არის მცურავი წერტილი ღირებულება, და ეს მხოლოდ ლამაზი 776 00:32:12,150 --> 00:32:14,470 გზა ამბობდა რეალური რაოდენობა - რაღაც რომ აქვს ათობითი 777 00:32:14,470 --> 00:32:17,410 წერტილი იგი გარკვეული ნომრის მარცხენა და / ან უფლება. 778 00:32:17,410 --> 00:32:21,370 Int არის მთელი რიცხვი, რომელიც მხოლოდ ხმების მოსწონს 123. 779 00:32:21,370 --> 00:32:24,170 და ახლა უფრო საინტერესოდ არის რამ, როგორიცაა ორმაგი. 780 00:32:24,170 --> 00:32:28,540 რა მივიღეთ ამბობენ ორმაგი იყო ბოლო დროს? 781 00:32:28,540 --> 00:32:30,050 ეს 64, უფლება. 782 00:32:30,050 --> 00:32:33,560 ასე რომ, როგორც წესი, ხოლო float არის 32-bit - 783 00:32:33,560 --> 00:32:37,340 ამიტომ ამ ხანგრძლივი მეხსიერებაში, მას იყენებს 32 zeros და ვინც 784 00:32:37,340 --> 00:32:40,530 წარმოადგენს ღირებულებების - ორმაგი არის სიტყვასიტყვით ორჯერ რომ, რომელიც 785 00:32:40,530 --> 00:32:43,810 ნიშნავს, რომ თქვენ შეგიძლიათ ან წარმოადგენს უფრო დიდი ციფრები, ან 786 00:32:43,810 --> 00:32:45,810 შეგიძლიათ წარმოადგენენ უფრო ზუსტი ციფრები. 787 00:32:45,810 --> 00:32:48,690 ასე რომ თქვენ შეგიძლიათ უფრო ნომრები შემდეგ ათობითი წერტილი, მაგრამ 788 00:32:48,690 --> 00:32:51,520 როგორც თანამემამულე განაცხადა ვიდეო, თუნდაც რაღაც მარტივი 789 00:32:51,520 --> 00:32:55,360 კონცეპტუალურად, როგორიცაა 1/3 არ შეიძლება წარმოდგენილია ზუსტად მიერ 790 00:32:55,360 --> 00:32:58,330 კომპიუტერი, რადგან საბოლოოდ ამოიწურა ბიტი, და 791 00:32:58,330 --> 00:33:02,510 ამიტომ შეგიძლიათ მხოლოდ .33333333 იმდენჯერ, ზე 792 00:33:02,510 --> 00:33:05,050 რომელიც წერტილი უბრალოდ უნდა ვთქვა მე გარეთ წარმომადგენლობა 793 00:33:05,050 --> 00:33:08,120 სივრცეში, უნდა მხოლოდ მას დღე და წარმოადგენს მას 794 00:33:08,120 --> 00:33:10,200 გარკვეულწილად imprecisely იგრძნობა. 795 00:33:10,200 --> 00:33:11,110 და ხანგრძლივი ხანგრძლივი - 796 00:33:11,110 --> 00:33:13,880 სულელური სახელი, მაგრამ რადგან არსებობს მონაცემები ტიპის ცნობილია, როგორც 797 00:33:13,880 --> 00:33:19,350 ხანგრძლივი დო რომელიც ერთსა ხშირად 32 ბიტი, ისევე, როგორც 798 00:33:19,350 --> 00:33:21,670 int არის 32 ბიტი, მაგრამ ხანგრძლივი ხანგრძლივი არის 799 00:33:21,670 --> 00:33:23,560 ზოგადად 64 ბიტი. 800 00:33:23,560 --> 00:33:25,740 ასე რომ, ეს მხოლოდ იმას ნიშნავს, თქვენ შეგიძლიათ წარმოადგენს უფრო დიდი 801 00:33:25,740 --> 00:33:26,990 ციფრები, ვიდრე ეს. 802 00:33:26,990 --> 00:33:27,410 >> ყველა უფლება. 803 00:33:27,410 --> 00:33:29,390 ასე რომ, თუ ჩვენ რეალურად გვინდა დავიწყოთ წარმოადგენს რამ, ჩვენ 804 00:33:29,390 --> 00:33:31,030 ალბათ საჭიროა უფრო დახვეწილი სახის, და 805 00:33:31,030 --> 00:33:32,340 ამიტომაც ჩვენ გვაქვს სიმებიანი. 806 00:33:32,340 --> 00:33:36,450 ასე რომ, CS50 ბიბლიოთეკა, რომ ფაილი სახელად cs50.h, ჩვენ 807 00:33:36,450 --> 00:33:41,110 რეალურად გამოაცხადა მონაცემები ტიპის, ასე ვთქვათ, მოუწოდა სიმებიანი, 808 00:33:41,110 --> 00:33:42,710 მაგრამ string ფაქტობრივად არ არსებობს. 809 00:33:42,710 --> 00:33:44,780 ეს არის, კიდევ ერთხელ, ერთი ამ ფენების ჩვენ ვაპირებთ კანი 810 00:33:44,780 --> 00:33:47,490 უკან ორი კვირის და გადაყარეთ ის დაშორებით, და რეალურად 811 00:33:47,490 --> 00:33:49,640 გამოიყურებოდეს ქვეშ Hood რა სიმებიანი ფაქტობრივად, და 812 00:33:49,640 --> 00:33:50,840 როგორ ის წარმოდგენილია. 813 00:33:50,840 --> 00:33:53,520 ჩვენ ასევე ვაპირებთ შევხედოთ ლოგიკური ღირებულებებს. 814 00:33:53,520 --> 00:33:56,040 >> მერე რა იყო bool კონტექსტში Scratch? 815 00:33:59,154 --> 00:34:00,300 მართალია ან ცრუ. 816 00:34:00,300 --> 00:34:03,900 ასე რომ ეს მხოლოდ ღირებულება, რომელიც მართალია ან ყალბი, ან გამოსართავად, 1 ან 817 00:34:03,900 --> 00:34:06,140 0, თუმცა გსურთ მსოფლიოში. 818 00:34:06,140 --> 00:34:09,739 ასე რომ C წყალობით CS50 ბიბლიოთეკა, რაც თავის მხრივ 819 00:34:09,739 --> 00:34:12,179 მოიცავს სხვა ბიბლიოთეკის ქვეშ Hood, ჩვენ გვაქვს 820 00:34:12,179 --> 00:34:14,909 ხელმისაწვდომობის მონაცემები ტიპის რომ ე.წ. bool, რომელიც 821 00:34:14,909 --> 00:34:18,730 სიტყვასიტყვით საშუალებას გვაძლევს მივუთითოთ ფასეულობების ნამდვილი ან ყალბი to 822 00:34:18,730 --> 00:34:20,219 რამ პროგრამა. 823 00:34:20,219 --> 00:34:23,880 >> მოდით წავიდეთ წინ აქ და წერენ პატარა პროგრამა, რომელიც 824 00:34:23,880 --> 00:34:26,330 აკეთებს რაღაც ჩართვის ნომრები ნაცვლად. 825 00:34:26,330 --> 00:34:29,840 ნება მომეცით, დავუბრუნდე CS50 ელექტრო მოწყობილობების, ნება მომეცით წავიდეთ წინ და 826 00:34:29,840 --> 00:34:32,770 შევქმნათ ახალი ფაილი აქ მოუწოდა - 827 00:34:32,770 --> 00:34:35,460 მოდით უბრალოდ, ვამბობთ რაღაც მარტივი, როგორიც math.c. 828 00:34:38,270 --> 00:34:38,710 ყველა უფლება. 829 00:34:38,710 --> 00:34:41,600 და ახლა ახვიდეთ ზევით ჩემი პროგრამა, მე 830 00:34:41,600 --> 00:34:42,510 აპირებს ჩვეული - 831 00:34:42,510 --> 00:34:44,780 # Include , ასე რომ შემიძლია 832 00:34:44,780 --> 00:34:46,860 printf, int ძირითადი (void) - 833 00:34:46,860 --> 00:34:49,270 ჩვენ დაბრუნებას, საბოლოოდ, რა int ნიშნავს 834 00:34:49,270 --> 00:34:52,389 აქ, რა ბათილად ნიშნავს აქ, მაგრამ ახლა, მხოლოდ ის ვიცი, რომ 835 00:34:52,389 --> 00:34:54,270 თქვენ უნდა დაიწყოს პროგრამების მოსწონს ეს. 836 00:34:54,270 --> 00:34:56,280 ახლა მე ვაპირებ წავიდეთ წინ და ვთქვათ რაღაც პატარა 837 00:34:56,280 --> 00:35:02,110 სხვადასხვა - printf ("მომეცი ნომერი:" 838 00:35:02,110 --> 00:35:03,570 );. 839 00:35:03,570 --> 00:35:09,220 მაშინ მე აპირებს int n = GetInt, რადგან იგი 840 00:35:09,220 --> 00:35:12,770 თურმე GetInt კიდევ ერთი ფუნქცია CS50 ბიბლიოთეკა 841 00:35:12,770 --> 00:35:14,060 გარდა ამისა GetString. 842 00:35:14,060 --> 00:35:17,340 და ახლა მე ვაპირებ რაღაც სულელური, როგორიცაა "წყალობით 843 00:35:17,340 --> 00:35:25,760 ამისთვის% d ", ამისთვის ათობითი რიცხვი, შემდეგ მძიმით n, და 844 00:35:25,760 --> 00:35:26,620 შემდეგ დაბრუნდნენ 0. 845 00:35:26,620 --> 00:35:28,940 ასე რომ კიდევ ერთხელ, დაბრუნდნენ 0 არაფერი აქვს მთელ რიგ ვარ 846 00:35:28,940 --> 00:35:30,080 გეკითხებით მომხმარებლის შეეხება. 847 00:35:30,080 --> 00:35:33,620 უბრალოდ ნიშნავს დასასრულს, რომ ყველა, სავარაუდოდ, კარგად. 848 00:35:33,620 --> 00:35:36,290 >> ნება მომეცით, ქვევით ჩემს ტერმინალის ფანჯარაში აქ. 849 00:35:36,290 --> 00:35:39,590 ნება მომეცით აკრიფოთ მიიღოს მათემატიკის, შეიყვანოთ. 850 00:35:39,590 --> 00:35:41,360 და რაღაც არასწორი. 851 00:35:41,360 --> 00:35:44,620 ჩადება მათემატიკის არ მუშაობდა. 852 00:35:44,620 --> 00:35:46,170 აი პირველი ჩვენი შეცდომის შეტყობინებები. 853 00:35:46,170 --> 00:35:46,570 რატომ? 854 00:35:46,570 --> 00:35:49,720 პატარა cryptic, მაგრამ - 855 00:35:49,720 --> 00:35:50,060 Yeah. 856 00:35:50,060 --> 00:35:51,240 ამიტომ cs50.h. 857 00:35:51,240 --> 00:35:53,900 ასე რომ კიდევ ერთხელ, განსაკუთრებით დილით, თქვენ დაწეროთ თქვენი პირველი 858 00:35:53,900 --> 00:35:56,590 პროგრამის pset 1 ქვეპუნქტებში, ოფისში საათის განმავლობაში, და 859 00:35:56,590 --> 00:35:59,050 გულწრფელად ვამბობ, ეს იქნება დიდი ზოგჯერ რა ეს ყველაფერი 860 00:35:59,050 --> 00:36:00,000 ფაქტობრივად დაყრდნობით. 861 00:36:00,000 --> 00:36:01,890 მაგრამ თქვენ გააცნობიეროს ძალიან სწრაფად ისინი დაიწყება ჩავარდნას 862 00:36:01,890 --> 00:36:06,120 შევიდა თაიგულების რომლითაც ამ ერთი იმას ნიშნავს, რომ თქვენ შეჩერდით ერთი 863 00:36:06,120 --> 00:36:08,290 საქართველოს # მოიცავს ზედა ფაილი. 864 00:36:08,290 --> 00:36:10,960 და Clang, შემდგენელი, რომელიც გაცნობებთ ამ მიერ 865 00:36:10,960 --> 00:36:14,090 ამბობდნენ, საკმაოდ fancifully, დაფარული დეკლარაცია 866 00:36:14,090 --> 00:36:15,990 ფუნქციის GetInt არასწორია. 867 00:36:15,990 --> 00:36:16,310 >> ყველა უფლება. 868 00:36:16,310 --> 00:36:17,520 ასე რომ რას ნიშნავს ეს? 869 00:36:17,520 --> 00:36:22,080 ეს უბრალოდ ნიშნავს, თქვენ მინიშნებით განაცხადა GetInt წელს 870 00:36:22,080 --> 00:36:24,850 გრძნობა, რომ თქვენ არ არის მკაფიოდ გამოაცხადა. 871 00:36:24,850 --> 00:36:27,300 მკაფიოდ ვაცხადებ int, თქვენ უნდა ასწავლონ 872 00:36:27,300 --> 00:36:28,740 Clang რომ ის არსებობს. 873 00:36:28,740 --> 00:36:32,020 და ძალიან მარტივი გადაწყვეტა, რომელიც ასწავლის მას 874 00:36:32,020 --> 00:36:34,780 მათ შორის, ამ სხვა ფაილი, cs50.h, ზე 875 00:36:34,780 --> 00:36:35,850 ზევით თქვენი ფაილი. 876 00:36:35,850 --> 00:36:40,380 რადგან სიტყვასიტყვით, რა # მოიცავს ამჯამად არის ეს ეუბნება Clang 877 00:36:40,380 --> 00:36:44,030 საკმაოდ ბევრი წასვლა სასურველი ფაილი მოუწოდა cs50.h, ასლი, 878 00:36:44,030 --> 00:36:48,150 ჩასვით ავტომატურად შევიდა ზევით ჩემი პროგრამა ჩემთვის, 879 00:36:48,150 --> 00:36:50,850 და შემდეგ გადაიყვანოთ კოდის to zeros და პირობა. 880 00:36:50,850 --> 00:36:52,850 მაგრამ ეს აშკარად ძალიან რუტინული თუ ჩვენ ადამიანებს ჰქონდათ 881 00:36:52,850 --> 00:36:55,370 წასვლა კოპირება და pasting ამ დიდი ფაილი ყველა დროის, 882 00:36:55,370 --> 00:36:58,540 ასე # include უბრალოდ ჯერ ყველა რომ ავტომატურად გარეშე 883 00:36:58,540 --> 00:37:01,550 muddying ჩემი კოდექსი სხვისი ბიბლიოთეკაში. 884 00:37:01,550 --> 00:37:06,370 და ბიბლიოთეკაში არის კიდევ ერთი ფაილი, რომელიც შეიცავს ფუნქციებს და 885 00:37:06,370 --> 00:37:08,340 სხვა რამ, რომ ვინმეს არ გაუკეთებია, რომ ჩვენ ვართ 886 00:37:08,340 --> 00:37:10,270 leveraging ჩვენი გულისთვის. 887 00:37:10,270 --> 00:37:10,580 >> ყველა უფლება. 888 00:37:10,580 --> 00:37:11,200 მოდით კვლავ სცადეთ. 889 00:37:11,200 --> 00:37:12,250 ჩადება მათემატიკის. 890 00:37:12,250 --> 00:37:13,120 შეიყვანეთ. 891 00:37:13,120 --> 00:37:13,530 კარგი. 892 00:37:13,530 --> 00:37:14,880 ასე რომ, როგორც ჩანს, არ მუშაობდა. 893 00:37:14,880 --> 00:37:18,330 ნება მომეცით, ახლა აწარმოებს მათემატიკის;. / მათემატიკის. 894 00:37:18,330 --> 00:37:21,100 შეიყვანეთ მაძლევს ნომერი, 123. 895 00:37:21,100 --> 00:37:22,620 მადლობა 123. 896 00:37:22,620 --> 00:37:24,490 ახლა მოდით სცადოთ სხვა კუთხეში შემთხვევაში. 897 00:37:24,490 --> 00:37:26,530 სიმებიანი საკმაოდ გულუხვი, რადგან 898 00:37:26,530 --> 00:37:27,620 სტრინგი შესაძლოა არაფერი. 899 00:37:27,620 --> 00:37:28,910 შეგიძლიათ გამოიყურებოდეს ნომრები, ჰგავს 900 00:37:28,910 --> 00:37:30,600 გმირები, როგორი სიტყვა. 901 00:37:30,600 --> 00:37:31,900 მაგრამ int არის int. 902 00:37:31,900 --> 00:37:34,370 ახლა თუ მე რთული მომხმარებელი, და ის რომ "მომეცი 903 00:37:34,370 --> 00:37:38,730 ნომერი, "მე ვფიქრობ ცდილობენ რაღაც მოსწონს 0.1? 904 00:37:38,730 --> 00:37:41,510 ისე, რომ ნომერი, და ეს შეესაბამება 905 00:37:41,510 --> 00:37:44,180 გრამატიკა მე აქ, არამედ ქვეშ Hood, მე of 906 00:37:44,180 --> 00:37:45,610 რა თქმა გამოყენებით ფუნქციის GetInt. 907 00:37:45,610 --> 00:37:46,610 >> მოდით ვნახოთ, რა მოხდება. 908 00:37:46,610 --> 00:37:48,250 შეიყვანეთ, გაიმეორეთ. 909 00:37:48,250 --> 00:37:48,560 ყველა უფლება. 910 00:37:48,560 --> 00:37:50,570 ნება მომეცით გაუჭირდება და მხოლოდ დააჭიროთ ერთხელ. 911 00:37:50,570 --> 00:37:51,700 შეიყვანეთ, შეიყვანეთ. 912 00:37:51,700 --> 00:37:53,890 ახლა, როგორც ჩანს, GetInt არის ცოტა მეტი 913 00:37:53,890 --> 00:37:55,240 ძლიერი ვიდრე GetString. 914 00:37:55,240 --> 00:37:58,540 ჩვენ, პერსონალი, რომელიც ხორციელდება იმგვარად, რომ თუ ჩვენ შეამჩნევთ 915 00:37:58,540 --> 00:38:02,100 თქვენ არ მოგვცა int - და int არის ათობითი რიცხვი 916 00:38:02,100 --> 00:38:04,785 შემცველი zeros, პირობა, twos, threes, fours, fives, sixes, 917 00:38:04,785 --> 00:38:05,540 შვიდკაცა, eights, ან nines. 918 00:38:05,540 --> 00:38:06,310 და ამით ყველაფერი. 919 00:38:06,310 --> 00:38:08,810 არარის ათობითი ქულა, არ გმირები, არ პუნქტუაციის. 920 00:38:08,810 --> 00:38:10,390 როგორც ჩანს, ჩვენ უნდა ვითანამშრომლოთ. 921 00:38:10,390 --> 00:38:13,680 ნება მომეცით, ვცდილობთ ოთხი, ხუთი, ექვსი, და რომ იღებს ჩემთვის მეშვეობით. 922 00:38:13,680 --> 00:38:16,760 ასე რომ, რეალურად, უნდა იყოს anal აქ, მე უნდა ვთქვა, ალბათ "მომეცი 923 00:38:16,760 --> 00:38:20,310 მთელი რიცხვი ", რათა მიაწოდოთ იმ მომხმარებლის 924 00:38:20,310 --> 00:38:22,620 ზუსტად რა ვაპირებ. 925 00:38:22,620 --> 00:38:24,090 >> ახლა მოდით ვიფიქროთ ქვეშ hood. 926 00:38:24,090 --> 00:38:27,930 ჩვენ არ ვაპირებთ გაიხსენოთ cs50.h ხორციელდება დღეს, 927 00:38:27,930 --> 00:38:29,080 რომ ბიბლიოთეკაში. 928 00:38:29,080 --> 00:38:33,600 მაგრამ თუ იგი ინარჩუნებს ამბობდა გაიმეორეთ, გაიმეორეთ, გაიმეორეთ, რა პროგრამირების 929 00:38:33,600 --> 00:38:36,970 მშენებლობა მე სავარაუდოდ გამოყენებით ქვეშ hood to 930 00:38:36,970 --> 00:38:39,000 განახორციელოს, რომ? 931 00:38:39,000 --> 00:38:39,980 ასე რომ მხოლოდ მარყუჟის, არა? 932 00:38:39,980 --> 00:38:41,930 ერთი მარტივი იდეები, რომ ჩვენ ვნახეთ on Scratch. 933 00:38:41,930 --> 00:38:45,050 სამუდამოდ მშენებლობა, გაიმეორეთ მშენებლობა. 934 00:38:45,050 --> 00:38:47,320 სავარაუდოდ, ამ პროგრამაში, ქვევმოთ hood, თუნდაც 935 00:38:47,320 --> 00:38:49,470 თუმცა დაწერილი C და არა ნულიდან, მას აკეთებს 936 00:38:49,470 --> 00:38:54,300 რაღაც მოუწოდა ექვივალენტი სამუდამოდ თუ მომხმარებელს ჯერ არ 937 00:38:54,300 --> 00:38:58,710 აკრეფილი მთელი რიცხვი, ამბობენ გაიმეორეთ, გაიმეორეთ, გაიმეორეთ, გაიმეორეთ, ისე 938 00:38:58,710 --> 00:39:01,220 მაშინ საბოლოოდ, როდესაც ჩვენ გავაკეთებთ კიდევ მთელი რიცხვი, მაშინ 939 00:39:01,220 --> 00:39:02,970 შესვენება გარეთ რომ მარყუჟი. 940 00:39:02,970 --> 00:39:05,610 >> მერე რა სხვა ფუნქციებს შეგვიძლია გამოვიყენოთ აქ CS50 ბიბლიოთეკაში? 941 00:39:05,610 --> 00:39:07,880 ისე, სახის აშკარა პირობა, მინიმუმ ეფუძნება 942 00:39:07,880 --> 00:39:09,570 მონაცემთა ტიპები, რომ ახლა ჩვენ ვიცით, არსებობს. 943 00:39:09,570 --> 00:39:12,900 განვახორციელეთ GetString, GetInt, არამედ მთელ 944 00:39:12,900 --> 00:39:15,680 პირველი კვირის ვადით, ასევე, შეგიძლიათ გამოიყენოთ GetFloat და 945 00:39:15,680 --> 00:39:18,870 GetDouble და GetLongLong მისაღებად ზუსტად 946 00:39:18,870 --> 00:39:20,030 მონაცემთა ტიპები, რომ გსურთ. 947 00:39:20,030 --> 00:39:24,030 რადგან გასაღები დეტალურად აქ არის ის, რომ განსხვავებით ზოგიერთი ენებზე, 948 00:39:24,030 --> 00:39:26,630 მოსწონს Python და Ruby, სადაც აუცილებელი არ არის უნდა 949 00:39:26,630 --> 00:39:29,730 განაცხადოს მონაცემები ტიპის ცვლადი - 950 00:39:29,730 --> 00:39:32,390 თქვენ არ ვუთხრა კომპიუტერი რა სახის პერსონალი 951 00:39:32,390 --> 00:39:34,000 თქვენ აპირებს ამოქმედებული ცვლადი - 952 00:39:34,000 --> 00:39:36,640 დო, თქვენ უნდა იყოს ოდესმე ასე ზუსტი. 953 00:39:36,640 --> 00:39:40,060 ასე რომ, თუ გსურთ ცვლადში N, ბლოკი შენახვის 954 00:39:40,060 --> 00:39:42,900 რომ ამ შემთხვევაში ხდება, რომ იყოს 32 ბიტი მიერ კონვენციის, თქვენ 955 00:39:42,900 --> 00:39:45,660 უნდა ვუთხრათ კომპიუტერი რომ ეს ბიტი are 956 00:39:45,660 --> 00:39:47,840 აპირებს შესანახად ნომერი - 957 00:39:47,840 --> 00:39:50,630 არ ხასიათი, არ სტრინგი, არ float. 958 00:39:50,630 --> 00:39:52,620 და ეს ეხება საკითხი ჩვენ ეფექტურად 959 00:39:52,620 --> 00:39:53,760 შეუვარდნენ გასულ კვირას. 960 00:39:53,760 --> 00:39:57,050 თუ ჩვენ გამოყენებით zeros და პირობა ნომრები წარმოადგენს არა მხოლოდ 961 00:39:57,050 --> 00:40:00,770 ნომრები, მაგრამ როგორც და BS და Cs, თუ როგორ მსოფლიოში არის 962 00:40:00,770 --> 00:40:03,460 კომპიუტერის აპირებს იცით, რომ ეს ნიმუში ბიტი რეალურად 963 00:40:03,460 --> 00:40:07,650 წარმოადგენს ნომერი 65, როგორც ეწინააღმდეგებოდა წარმოადგენს 964 00:40:07,650 --> 00:40:09,860 წერილში, რომელიც ერთსა თანახმად, 965 00:40:09,860 --> 00:40:13,440 ASCII, გავიხსენოთ, იყო ექვივალენტური 65? 966 00:40:13,440 --> 00:40:16,550 >> ასე რომ ამ მონაცემთა ტიპები უზრუნველყოფს კონტექსტში კომპიუტერს, ისე 967 00:40:16,550 --> 00:40:18,810 რომ იგი დარწმუნებულია, თუ ეს ბიტი უნდა განიმარტოს, როგორც 968 00:40:18,810 --> 00:40:23,660 int ან string. 969 00:40:23,660 --> 00:40:26,500 ნებისმიერი კითხვები, მაშინ, ამ? 970 00:40:26,500 --> 00:40:28,149 ჰო? 971 00:40:34,780 --> 00:40:35,270 დევიდ ჯ Malan: კარგი კითხვაა. 972 00:40:35,270 --> 00:40:39,140 თუ ჩვენ აიღოს stdio.h, ჩვენ ფაილის შენახვა - 973 00:40:39,140 --> 00:40:44,360 ნება მომეცით წასვლა ქვემოთ ტერმინალის ფანჯარაში და აწარმოებს მიიღოს მათემატიკის, Zoom 974 00:40:44,360 --> 00:40:45,530 და შევა - 975 00:40:45,530 --> 00:40:47,700 ახლა მივიღებ სხვადასხვა შეცდომა, რადგან მე ვარ მინიშნებით 976 00:40:47,700 --> 00:40:49,650 გამოცხადების რა ფუნქცია არის? 977 00:40:49,650 --> 00:40:50,700 Printf. 978 00:40:50,700 --> 00:40:52,970 ახლა მე შექმნილი ახალი პრობლემა, რომლის გადაწყვეტა 979 00:40:52,970 --> 00:40:53,890 არსებითად იგივე. 980 00:40:53,890 --> 00:40:55,365 მე უნდა დააყენოს, რომ უკან. 981 00:40:55,365 --> 00:40:56,615 აუდიტორია: [INAUDIBLE] 982 00:41:03,534 --> 00:41:04,030 დევიდ ჯ Malan: Oh. 983 00:41:04,030 --> 00:41:04,850 ასე რომ, თუ მე აიღოს - 984 00:41:04,850 --> 00:41:05,360 Okay, yeah. 985 00:41:05,360 --> 00:41:08,960 ასე რომ, თუ მოვხსნა სტანდარტული I / O ბიბლიოთეკა ჩართვის up 986 00:41:08,960 --> 00:41:12,020 აქ, და შემდეგ თქვენ ამბობდა თუ დავაღწიოთ printf, მიიღონ 987 00:41:12,020 --> 00:41:13,450 ჩამოშორებას printf? 988 00:41:13,450 --> 00:41:13,810 დიახ. 989 00:41:13,810 --> 00:41:18,450 ეს უნდა მუშაობდეს, რადგან მე აღარ გამოყენებით ნებისმიერი - whoops. 990 00:41:18,450 --> 00:41:20,110 არ ვამბობ, უბრალოდ მოტყუება? 991 00:41:20,110 --> 00:41:21,650 ოჰ, okay. 992 00:41:21,650 --> 00:41:25,640 ეს არ იმუშავებს, რადგან ახალი შეცდომა ჩვენ უბრალოდ გააცნო. 993 00:41:25,640 --> 00:41:28,390 და ეს ერთი არის ცოტა მეტი თვითმმართველობის განმარტებითი. 994 00:41:28,390 --> 00:41:29,440 >> რა არის პრობლემა? 995 00:41:29,440 --> 00:41:30,680 გამოუყენებელი ცვლადი n. 996 00:41:30,680 --> 00:41:34,040 ასე რომ, ეს შეცდომა არის შედეგი ჩვენი რომელმაც კონფიგურაცია 997 00:41:34,040 --> 00:41:36,640 ელექტრო უნდა იყოს განსაკუთრებით pedantic, ნამდვილად დაწეროთ ზე 998 00:41:36,640 --> 00:41:39,060 თქვენ ყველა შესაძლო შეცდომა, მაშინაც კი, თუ მისი სახის 999 00:41:39,060 --> 00:41:41,950 არასამთავრობო საბედისწერო შეცდომა მოსწონს ეს - არის ეს მართლაც ასეთი დიდი 1000 00:41:41,950 --> 00:41:44,820 გარიგება, მე გამოყოფილი int, დაუსვან ნომერი და შემდეგ 1001 00:41:44,820 --> 00:41:46,030 უბრალოდ არაფერი მას? 1002 00:41:46,030 --> 00:41:47,020 ასე რომ ფუნქციურად არ. 1003 00:41:47,020 --> 00:41:50,410 ეს არ აპირებს დაარღვიოს პროგრამის. 1004 00:41:50,410 --> 00:41:51,490 უბრალოდ სახის სულელური, არა? 1005 00:41:51,490 --> 00:41:54,220 არ არსებობს ღირებულების მქონე სთხოვა, რომ ნომერი, ინახება 1006 00:41:54,220 --> 00:41:56,370 ეს ცვლადი, თუ თქვენ არასდროს არაფერი 1007 00:41:56,370 --> 00:41:58,000 მას, თუ არა ბეჭდვა ან შეინახოთ. 1008 00:41:58,000 --> 00:42:00,270 ასე რომ, ამ შემთხვევაში, Clang არის აღიარებით იმდენი, და 1009 00:42:00,270 --> 00:42:02,010 ის ამბობდა გამოუყენებელი ცვლადი n. 1010 00:42:02,010 --> 00:42:05,380 >> ასე რომ ჩვენ შეგვიძლია დაფიქსირება ამ თუ ჩვენ მართლაც გვინდა. 1011 00:42:05,380 --> 00:42:07,250 თუმცა ისევ და ისევ, ეს არ არის კარგი პროგრამირების არის. 1012 00:42:07,250 --> 00:42:09,310 ასე რომ მე ვერ უბრალოდ ამ - 1013 00:42:09,310 --> 00:42:12,060 ქვევით აქ, ნება მომეცით გარკვევა ეკრანზე, მიიღოს მათემატიკის. 1014 00:42:12,060 --> 00:42:13,090 რომ მუშაობს. 1015 00:42:13,090 --> 00:42:18,110 ახლა კი შეგიძლიათ გაუშვათ ჩემი მათემატიკის პროგრამა, იღებს შეყვანის - 1016 00:42:18,110 --> 00:42:18,700 კარგად, რომ იყო ცუდი. 1017 00:42:18,700 --> 00:42:23,450 იღებს შეყვანის და ეს ყველა ეს ასეა, ამ შემთხვევაში. 1018 00:42:23,450 --> 00:42:25,220 >> ასე რომ, რეალურად, მოდით ვცდილობთ ერთ სხვა კუთხეში შემთხვევაში, რომ ჩვენ 1019 00:42:25,220 --> 00:42:26,300 არ ვფიქრობ, ადრე. 1020 00:42:26,300 --> 00:42:28,220 ამ შემთხვევაში - აქ, მოდით დავუბრუნდეთ ერთი რომ 1021 00:42:28,220 --> 00:42:29,500 ცოტა უფრო მოსახერხებელი. 1022 00:42:29,500 --> 00:42:32,580 ნება მომეცით დაბრუნდეს აქ და აწარმოებს მიიღოს მათემატიკის ერთხელ. 1023 00:42:32,580 --> 00:42:34,190 Whoops, რა გავაკეთო არასწორი? 1024 00:42:34,190 --> 00:42:35,400 რაღაც უნდა გააფართოვოს უკან შემდგომი. 1025 00:42:35,400 --> 00:42:36,390 Okay. 1026 00:42:36,390 --> 00:42:38,490 ახლა ჩვენ უკან ორიგინალური სახელმწიფო, სადაც ყველა 1027 00:42:38,490 --> 00:42:39,990 არის იმედია კარგად. 1028 00:42:39,990 --> 00:42:43,360 და ახლა თუ აწარმოებს მათემატიკის, 123 როგორც ჩანს მუშაობა. 1029 00:42:43,360 --> 00:42:46,010 მაგრამ ეს ნამდვილად არ ეფექტური მტკიცებულება, უბრალოდ ამბობენ 1030 00:42:46,010 --> 00:42:47,930 okay, რომ მუშაობს. 1031 00:42:47,930 --> 00:42:49,120 789, რომელიც მუშაობს. 1032 00:42:49,120 --> 00:42:50,100 ახლა წარუდგინოს. 1033 00:42:50,100 --> 00:42:51,870 იმიტომ, რომ იქ სხვა კუთხეში შემთხვევებში აქ. 1034 00:42:51,870 --> 00:42:55,040 სიმებიანი არ ნამდვილად გვაძლევს გაცილებით trouble ის აკრეფით 1035 00:42:55,040 --> 00:42:56,510 მთელი უამრავი სიმბოლო. 1036 00:42:56,510 --> 00:42:59,580 მაგრამ რა მოხდება თუ მე აკრიფოთ ამ? 1037 00:42:59,580 --> 00:43:04,850 Hitting ნომერი 1 მთელი ლოტი, მთელი ბევრი აქ - 1038 00:43:04,850 --> 00:43:06,300 ყველა უფლება, ის მიღების ცოტა მოსაწყენი, ასე რომ მე ვაპირებ 1039 00:43:06,300 --> 00:43:10,040 შეწყვიტოს აქ, და მე ვაპირებ დააჭიროთ. 1040 00:43:10,040 --> 00:43:11,290 >> რა ჯოჯოხეთი უბრალოდ მოხდა? 1041 00:43:14,110 --> 00:43:17,680 ასე რომ, ეს შეიძლება რეალურად იყოს განმარტა. 1042 00:43:17,680 --> 00:43:18,920 ასე რომ ეს გააკეთა, მას როგორც ორობითი? 1043 00:43:18,920 --> 00:43:21,130 კარგი აზრის, მაგრამ არა, ეს არ ის ფაქტი, რომ მას 1044 00:43:21,130 --> 00:43:22,815 როგორც ორობითი, რადგან მართლაც, რომ იყო მხოლოდ სახის 1045 00:43:22,815 --> 00:43:23,080 დამთხვევა. 1046 00:43:23,080 --> 00:43:23,930 ჩვენ შეგვიძლია ეს კიდევ ერთხელ გავაკეთოთ. 1047 00:43:23,930 --> 00:43:26,530 ასე რომ იქ არ არის 2 in ორობითი სისტემა, რომ 1048 00:43:26,530 --> 00:43:27,420 ალბათ საკმარისი. 1049 00:43:27,420 --> 00:43:28,780 შეიყვანეთ. 1050 00:43:28,780 --> 00:43:30,140 ასე რომ არ იყო პრობლემა. 1051 00:43:30,140 --> 00:43:31,390 რა? 1052 00:43:34,650 --> 00:43:35,400 სწორედ. 1053 00:43:35,400 --> 00:43:37,830 >> ასე მგონია თავში რა int რეალურად არის. 1054 00:43:37,830 --> 00:43:40,970 ეს 32 ბიტი რომელიც ერთობლივად განმარტებული 1055 00:43:40,970 --> 00:43:42,090 როგორც ნომერი. 1056 00:43:42,090 --> 00:43:44,730 თუ თქვენ გაქვთ 32 ბიტიანი, რაც იმას ნიშნავს, თითოეული ბიტი შეიძლება იყოს 1057 00:43:44,730 --> 00:43:46,690 0 ან 1, 0 ან 1. 1058 00:43:46,690 --> 00:43:49,090 ასე რომ, რაც იმას ნიშნავს არსებობს ორი გზა ამ bit, 1059 00:43:49,090 --> 00:43:51,140 ორი შესაძლებლობები ამ ორი შესაძლებლობები ამ 1060 00:43:51,140 --> 00:43:52,570 bit - ასე რომ 2 ჯერ 2 ჯერ - 1061 00:43:52,570 --> 00:43:55,480 ასე რომ 2 დან 32 ძალა საერთო რაოდენობა 1062 00:43:55,480 --> 00:43:58,960 permutations of zeros და პირობა თუ თქვენ გაქვთ 32 1063 00:43:58,960 --> 00:44:01,400 placeholders, zeros ან პირობა, თქვენს წინაშე. 1064 00:44:01,400 --> 00:44:04,250 ასე რომ, თუ მაქვს 2 დან 32, მათემატიკურად, რომ ის, რასაც? 1065 00:44:07,080 --> 00:44:07,840 ასე რომ ბევრი. 1066 00:44:07,840 --> 00:44:09,910 ეს 4 მილიარდი, მისცეს ან მიიღოს. 1067 00:44:09,910 --> 00:44:13,510 და 4 მილიარდი არ ჩანს, თუ რა დაიბეჭდა აქ. 1068 00:44:13,510 --> 00:44:16,290 ფაქტობრივად, ეს გამოიყურება უფრო ახლოს 2 მლრდ. 1069 00:44:16,290 --> 00:44:17,970 მაგრამ ეს არ არის დამთხვევა. 1070 00:44:17,970 --> 00:44:21,590 ის ფაქტი, რომ კომპიუტერი არ misinterpreted ჩემი დიდი რაოდენობით, 1071 00:44:21,590 --> 00:44:24,260 ჩემი უზარმაზარი თანმიმდევრობა პირობა და შემდეგ ჩემი დიდი თანმიმდევრობა twos, 1072 00:44:24,260 --> 00:44:26,880 როგორც უხეშად 2 მილიარდი, ახსნილია თუ როგორ? 1073 00:44:30,250 --> 00:44:32,180 არსებობს cap on int. 1074 00:44:32,180 --> 00:44:34,970 იქ რა თქმა უნდა, მაქსიმალური მნიშვნელობა, რომ თქვენ შეგიძლიათ წარმოადგენენ. 1075 00:44:34,970 --> 00:44:36,370 მაგრამ ეს, როგორც წესი, 4 მილიარდი, არა? 1076 00:44:36,370 --> 00:44:39,100 თუ 2 დან 32 დაახლოებით 4 მილიარდი, რომ თითქოს 1077 00:44:39,100 --> 00:44:40,350 რომ ყველაზე მეტი. 1078 00:44:42,420 --> 00:44:45,240 ასე რომ არ დარჩენილი, მაგრამ კარგი აზრის. 1079 00:44:45,240 --> 00:44:46,340 უარყოფითი რიცხვები. 1080 00:44:46,340 --> 00:44:49,570 ასე რომ, თუ თქვენ გაქვთ 4 მილიარდი შესაძლო რამ რისი გაკეთებაც შეგიძლიათ 1081 00:44:49,570 --> 00:44:52,970 წარმოადგენენ ამ სხვადასხვა permutations of 32 0S და 1082 00:44:52,970 --> 00:44:55,600 1s, ასევე, იგი დგას, რომ მიზეზი, რომ ჩვენ ადამიანები დაგვჭირდება 1083 00:44:55,600 --> 00:44:57,110 წარმოადგენს არა მხოლოდ დადებითი რიცხვებით 1084 00:44:57,110 --> 00:44:58,240 მაგრამ უარყოფითი რიცხვებით. 1085 00:44:58,240 --> 00:45:00,410 მართლაც, რომ ვარაუდი, რომ C ხდის. 1086 00:45:00,410 --> 00:45:03,550 ამრიგად, 32 ბიტი, შეგიძლიათ წარმოადგენენ უხეშად უარყოფითი 2 1087 00:45:03,550 --> 00:45:06,630 მილიარდი ყველა გზა მდე დადებითი 2 მლრდ. 1088 00:45:06,630 --> 00:45:08,750 და ა.შ. ამ შემთხვევაში, რა ჩვენ ნამდვილად ვხედავთ მხოლოდ 1089 00:45:08,750 --> 00:45:13,600 Fringe საქართველოს ტევადობის მთელი რიცხვი, და ჩვენ გვაქვს, ასე 1090 00:45:13,600 --> 00:45:15,860 საუბარი, overflowed რიცხვი. 1091 00:45:15,860 --> 00:45:19,180 ჩვენ შეეცადა cram მეტი ბიტი მივანიჭო ვიდრე შეიძლება რეალურად ჯდება. 1092 00:45:19,180 --> 00:45:22,960 ასე რომ საბოლოო ჯამში ჩვენ არსებითად ყველა 1 ბიტი. 1093 00:45:22,960 --> 00:45:25,280 ჩვენ flipped ყველა ჩვენი ბიტი შესახებ, ჩვენ შევეცადეთ, რათა წარმოადგინოს 1094 00:45:25,280 --> 00:45:27,630 ყველაზე მეტი, რაც შეიძლება, მაგრამ ეს აშკარად არ თითქმის 1095 00:45:27,630 --> 00:45:30,960 დიდი საკმარისი წარმოადგენს ორი რამ მე უბრალოდ აკრეფილი შემოსული 1096 00:45:30,960 --> 00:45:31,730 ჰო? 1097 00:45:31,730 --> 00:45:32,980 აუდიტორია: [INAUDIBLE] 1098 00:45:37,230 --> 00:45:37,830 >> დევიდ ჯ Malan: კარგი კითხვაა. 1099 00:45:37,830 --> 00:45:40,080 რატომ არ შეიძლება ჩვენ მხოლოდ იმას, რომ უარყოფითი 1100 00:45:40,080 --> 00:45:41,500 ნიშნად მხოლოდ ხასიათი? 1101 00:45:41,500 --> 00:45:44,200 ამიტომ, ჩვენ აბსოლუტურად შეეძლო, და ჩვენ შეგვიძლია შემდეგ გადარჩენა 1102 00:45:44,200 --> 00:45:45,470 დამატებითი bit. 1103 00:45:45,470 --> 00:45:49,100 მაგრამ თქვენ მაინც გეგმავს უნდა წარმოადგენდეს, რომ ტირე, და 1104 00:45:49,100 --> 00:45:50,700 რომ აპირებს დაგიჯდებათ მინიმუმ ბევრი რაღაცა, 1105 00:45:50,700 --> 00:45:52,220 სავარაუდოდ bit. 1106 00:45:52,220 --> 00:45:55,610 ასე რომ დიახ, ჩვენ შეგვეძლო 32 ბიტი გამოიყენება ჩვენი ნომერი, მაგრამ ახლა 1107 00:45:55,610 --> 00:45:57,610 ჩვენ გვჭირდება კიდევ ერთი ცოტა გამოიყენება ჩვენი dash 1108 00:45:57,610 --> 00:45:58,810 სიმბოლო, მინუსის სიმბოლოსაგან. 1109 00:45:58,810 --> 00:46:01,470 ახლა ჩვენ გვაქვს 33 bit ღირებულებები, რომელიც ჩვენ შეგვიძლია გავაკეთოთ, მაგრამ 1110 00:46:01,470 --> 00:46:02,570 უბრალოდ არ გზით კეთდება. 1111 00:46:02,570 --> 00:46:05,140 ჩვენ მივიღეთ გადაწყვეტილება ზარის წლის წინ, 32 ბიტი არის ერთგვარი 1112 00:46:05,140 --> 00:46:06,170 ერთეული ზომის აქ. 1113 00:46:06,170 --> 00:46:08,120 ამიტომ, ჩვენ ვაპირებთ, გამოვიყენოთ ერთ იმ ბიტი ეფექტურად 1114 00:46:08,120 --> 00:46:12,950 წარმოადგენენ ნეგატიურობის და 31 ბიტი წარმოადგენს ნომერი. 1115 00:46:12,950 --> 00:46:15,550 გაქვთ სხვა კითხვები? 1116 00:46:15,550 --> 00:46:15,670 ყველა უფლება. 1117 00:46:15,670 --> 00:46:16,030 სწორედ ლოტი. 1118 00:46:16,030 --> 00:46:17,930 რატომ არ ვართ წავიდეთ წინ და მიიღოს ჩვენი ხუთი წუთის შესვენების აქ? 1119 00:46:23,580 --> 00:46:24,270 >> ყველა უფლება. 1120 00:46:24,270 --> 00:46:31,250 ასე რომ, კიდევ ერთხელ, რომ არ overemphasize მათემატიკური განაცხადების 1121 00:46:31,250 --> 00:46:33,840 პროგრამირების, მოდით უბრალოდ pluck off ამ ერთი მაგალითი 1122 00:46:33,840 --> 00:46:36,590 სანამ ჩვენ გადაინაცვლოს სხვა აშენებს, მხოლოდ იმიტომ, რომ იგი 1123 00:46:36,590 --> 00:46:39,430 იქნება საილუსტრაციოდ რამდენიმე საერთო stumbling რაოდენობა ზოგიერთ 1124 00:46:39,430 --> 00:46:41,520 საფუძვლებს, როდესაც საქმე წერა პროგრამები. 1125 00:46:41,520 --> 00:46:44,360 ამ შემთხვევაში, აკეთებს არითმეტიკული გამოთქმები, რომ გარკვეული 1126 00:46:44,360 --> 00:46:48,010 საინტერესო შეესატყვისება სინტაქსი. 1127 00:46:48,010 --> 00:46:50,430 >> ასე რომ, ეს უბრალოდ ფორმულა, რომლითაც შეგიძლიათ დააკონვერტიროთ 1128 00:46:50,430 --> 00:46:52,690 ტემპერატურის საწყისი Fahrenheit to გრადუსი. 1129 00:46:52,690 --> 00:46:54,600 თუ არ გავიხსენებთ, ეს მხოლოდ ფორმულით. 1130 00:46:54,600 --> 00:46:58,870 ასე რომ, თუ ჩვენ შეაერთედ წელს Fahrenheit ღირებულება 32 გრადუსი, რაც 1131 00:46:58,870 --> 00:47:02,850 გაყინვა, რომ იქნება 32 მინუს 32 არის 0, და მართლაც, 1132 00:47:02,850 --> 00:47:05,130 0 წელს გრადუსი ასევე გაყინვა. 1133 00:47:05,130 --> 00:47:08,210 ამიტომ სწრაფი საღი აზრის შეამოწმოს იქ - ეს ნაცნობი ფორმულით. 1134 00:47:08,210 --> 00:47:10,880 ნება მომეცით წასვლა მეტი ელექტრო მოწყობილობების, თუმცა, და დაიწყოს 1135 00:47:10,880 --> 00:47:13,920 პროგრამის წერა მოუწოდა, ისევე, f2c; "ფარენგეიტი to 1136 00:47:13,920 --> 00:47:15,920 გრადუსი dot გ ". 1137 00:47:15,920 --> 00:47:18,930 და ზედა აქ, მე ვაპირებ დაიწყება off ერთად # include 1138 00:47:18,930 --> 00:47:22,190 stdio.h და მე ვაპირებთ int ძირითადი (void), და 1139 00:47:22,190 --> 00:47:24,680 ერთხელ, ჩვენ დავბრუნდებით მომავალში, თუ რა int ნიშნავს 1140 00:47:24,680 --> 00:47:26,820 იქ და რა ბათილად ნიშნავს იქ. 1141 00:47:26,820 --> 00:47:28,770 და ახლა ნება მომეცით წავიდეთ წინ და განახორციელოს პროგრამა, რომელიც 1142 00:47:28,770 --> 00:47:31,170 არსებითად აკეთებს ამას კონვერტაციის ჩვენთვის. 1143 00:47:31,170 --> 00:47:36,830 >> ამიტომ printf, ვთქვათ, ტემპერატურა Fahrenheit. 1144 00:47:36,830 --> 00:47:40,140 და მაშინ ნება მომეცით წავიდეთ წინ და მიიღოს მნიშვნელობა მომხმარებლის. 1145 00:47:40,140 --> 00:47:43,120 როგორი ღირებულების უნდა მიიღონ მომხმარებლის თუ მინდა 1146 00:47:43,120 --> 00:47:45,620 მათ მომეცი ტემპერატურა Fahrenheit? 1147 00:47:45,620 --> 00:47:48,090 ჰო? 1148 00:47:48,090 --> 00:47:50,090 რას შესთავაზოს? 1149 00:47:50,090 --> 00:47:50,410 Yeah. 1150 00:47:50,410 --> 00:47:51,960 ასე რომ float გრძნობს საკმაოდ გონივრული. 1151 00:47:51,960 --> 00:47:53,950 ჩვენ გვყავს, კიდევ ერთხელ, მხოლოდ რამდენიმე პარამეტრები რომ 1152 00:47:53,950 --> 00:47:55,310 ჩვენ ვნახეთ დღემდე. 1153 00:47:55,310 --> 00:48:00,100 ჩვენ გვყავს რამ, როგორიცაა char, ორმაგი, ათწილადი, int, ხანგრძლივი ხანგრძლივი, 1154 00:48:00,100 --> 00:48:01,150 bool, სიმებიანი. 1155 00:48:01,150 --> 00:48:03,510 ასე რომ ამ, ათწილადი გრძნობს საკმაოდ გონივრული. 1156 00:48:03,510 --> 00:48:06,340 ჩვენ შეგვეძლო გამოიყენოთ ორმაგი, უფლება, რადგან თუ ჩვენ ნამდვილად გვინდა 1157 00:48:06,340 --> 00:48:07,580 წარმოადგენენ ადამიანის ტემპერატურა - 1158 00:48:07,580 --> 00:48:10,730 98,60000 - 1159 00:48:10,730 --> 00:48:12,990 ჩვენ შეგვიძლია გამოვიყენოთ 64 ბიტი ამისათვის, მაგრამ ეს იგრძნობა 1160 00:48:12,990 --> 00:48:14,200 overkill ამისთვის ტემპერატურაზე. 1161 00:48:14,200 --> 00:48:16,380 მოდით უბრალოდ წავიდეთ ერთად მიმოქცევაში. 1162 00:48:16,380 --> 00:48:18,100 ახლა მჭირდება ცვლადი. 1163 00:48:18,100 --> 00:48:20,500 უბრალოდ შენარჩუნება რამ მარტივი, მე ვაპირებ მოვუწოდო მას F, მაგრამ მე 1164 00:48:20,500 --> 00:48:23,370 შეიძლება ისევე როგორც სწორად ეძახით ტემპერატურა, 1165 00:48:23,370 --> 00:48:24,600 მაგრამ არც კარგად არის. 1166 00:48:24,600 --> 00:48:27,610 ასე რომ ათწილადი f = GetFloat. 1167 00:48:27,610 --> 00:48:30,220 როგორც კი ახლა არ გადაწყვიტა გამოეყენებინა GetFloat, თუმცა, მე 1168 00:48:30,220 --> 00:48:33,340 მოგიწევთ ერთ კორექცია. 1169 00:48:33,340 --> 00:48:33,720 Yeah. 1170 00:48:33,720 --> 00:48:37,460 ამიტომ, ჩვენ უნდა შეიცავდეს # , წინააღმდეგ შემთხვევაში შემდგენელი არის 1171 00:48:37,460 --> 00:48:39,000 აპირებს დაწეროთ ჩვენთან. 1172 00:48:39,000 --> 00:48:41,720 ახლა რომ მაქვს float, ნება მომეცით წავიდეთ წინ და ნუ 1173 00:48:41,720 --> 00:48:42,460 კონვერტაცია. 1174 00:48:42,460 --> 00:48:44,980 >> ამიტომ პირველ ნება მიბოძეთ, ასევე მოხვდნენ ჩვევა აქ 1175 00:48:44,980 --> 00:48:46,310 კომენტირებისას ჩემი კოდი. 1176 00:48:46,310 --> 00:48:49,820 ასე რომ კიდევ ერთხელ, კომენტარი მხოლოდ ნოტაცია ადამიანის რომ 1177 00:48:49,820 --> 00:48:52,600 არ შედის პროგრამის თავისთავად, მაგრამ ეს ერთი, გეხმარებათ 1178 00:48:52,600 --> 00:48:55,010 გვესმის თუ რა გააკეთეთ თქვენ დილით, ან შემდეგი 1179 00:48:55,010 --> 00:48:57,570 თვის, ის ეხმარება თქვენი სწავლების თანამემამულე გვესმის თუ რა გააკეთეთ თქვენ 1180 00:48:57,570 --> 00:48:59,230 ან რა თქვენ აპირებდით გავაკეთოთ, ამიტომ 1181 00:48:59,230 --> 00:49:00,950 ზოგადად ძალიან კარგი პრაქტიკა. 1182 00:49:00,950 --> 00:49:02,940 ყოველ რამდენიმე ხაზი კოდი, წერენ კომენტარი 1183 00:49:02,940 --> 00:49:04,490 თავის ან თქვენი კოლეგა. 1184 00:49:04,490 --> 00:49:08,460 ასე რომ აქ, მე ვაპირებ ვთქვა, "ჰკითხეთ მომხმარებლის ტემპერატურის." 1185 00:49:08,460 --> 00:49:10,890 არ უნდა იყოს სრულ სასჯელს, უბრალოდ მოკლე ფრაზა. 1186 00:49:10,890 --> 00:49:14,270 მაგრამ იდეა უკან კომენტირებისას დო არის ის, რომ თითოეული თქვენი 1187 00:49:14,270 --> 00:49:17,980 კომენტარი უნდა მისცეს თქვენ - ან, ვთქვათ, TF ან კოლეგა - 1188 00:49:17,980 --> 00:49:21,290 to skim თქვენი პროგრამა და ვიცი ზუსტად რა ეს ასეა, არ 1189 00:49:21,290 --> 00:49:24,650 იმდენად კითხულობს კოდი, არამედ კითხულობს კომენტარი, რომელიც 1190 00:49:24,650 --> 00:49:26,220 უნდა იყოს ლაკონური და მკაფიო. 1191 00:49:26,220 --> 00:49:29,030 ყველა უფლება, ასე რომ, ახლა ნება მომეცით წავიდეთ წინ და ვთქვათ, "Convert 1192 00:49:29,030 --> 00:49:32,660 Fahrenheit to გრადუსი. "ამიტომ მე ვაპირებ წავიდეთ წინ და გავაკეთებთ, 1193 00:49:32,660 --> 00:49:34,340 ვთქვათ, ათწილადი გ. 1194 00:49:34,340 --> 00:49:36,610 ჩვენ გავაგრძელებთ გრადუსი როგორც მცურავი წერტილი ღირებულება. 1195 00:49:36,610 --> 00:49:37,630 >> და ნება მომეცით მიიღოს stab ამ. 1196 00:49:37,630 --> 00:49:40,350 ფორმულა, კიდევ ერთხელ, აქ. 1197 00:49:40,350 --> 00:49:45,510 როგორც 5/9 ჯერ F მინუს 32. 1198 00:49:45,510 --> 00:49:46,360 ასე რომ მოდით ეს. 1199 00:49:46,360 --> 00:49:50,450 ასე 5 იყოფა 9, მინუს - 1200 00:49:50,450 --> 00:49:52,330 whoops, მე messed ეს უკვე. 1201 00:49:52,330 --> 00:49:53,070 Times. 1202 00:49:53,070 --> 00:49:56,550 ასე რომ 5/9 ჯერ F მინუს 32. 1203 00:49:56,550 --> 00:49:59,650 ასე F მინუს 32, მძიმით. 1204 00:49:59,650 --> 00:50:02,000 და ახლა, აქ ქვემოთ, მე ვაპირებ წავიდეთ წინ 1205 00:50:02,000 --> 00:50:03,220 და აცხადებენ, ბეჭდვა შედეგი. 1206 00:50:03,220 --> 00:50:05,160 და ამ ნაწილში ადვილი. Printf. 1207 00:50:05,160 --> 00:50:07,980 როგორ შემიძლია წასვლა შესახებ ბეჭდვა ამ? 1208 00:50:07,980 --> 00:50:16,890 ისე, მე შეიძლება ითქვას, "ეს ნომერი გრადუსი არის% F \ n", 1209 00:50:16,890 --> 00:50:18,060 მხოლოდ ზოგიერთი ესთეტიკას. 1210 00:50:18,060 --> 00:50:20,450 და მაშინ რა ღირებულება არ მინდა შეაერთედ აქ როგორც printf ს 1211 00:50:20,450 --> 00:50:21,360 მეორე არგუმენტი? 1212 00:50:21,360 --> 00:50:21,650 Okay. 1213 00:50:21,650 --> 00:50:22,540 ასე რომ მხოლოდ გ. 1214 00:50:22,540 --> 00:50:24,760 ასე რომ დავიწყოთ ამ და შემდეგ დააბრუნებს 0. 1215 00:50:24,760 --> 00:50:25,960 ერთხელ, მას არაფერი აქვს საერთო მათემატიკის. 1216 00:50:25,960 --> 00:50:27,610 ეს უბრალოდ ნიშნავს, ყველა კარგად არის. 1217 00:50:27,610 --> 00:50:31,210 >> ახლა არის ეს სწორი, ამ პროგრამის? 1218 00:50:31,210 --> 00:50:31,520 ყველა უფლება. 1219 00:50:31,520 --> 00:50:33,630 ასე რომ მე გარკვეული შეცდომები. 1220 00:50:33,630 --> 00:50:35,980 მაშინაც კი, თუ თქვენ არ ვიცი რა არის პროგრამირების, შეგიძლიათ დაალაგოთ 1221 00:50:35,980 --> 00:50:37,120 საქართველოს infer თავში Grade სკოლაში რა 1222 00:50:37,120 --> 00:50:38,740 შეცდომები აქ შეიძლება იყოს. 1223 00:50:38,740 --> 00:50:40,050 რა არის ერთერთი პირველი? 1224 00:50:40,050 --> 00:50:41,256 აუდიტორია: [INAUDIBLE] 1225 00:50:41,256 --> 00:50:41,660 დევიდ ჯ Malan: ჰო. 1226 00:50:41,660 --> 00:50:42,940 ასე რომ ჩვენ დაკარგული ფრჩხილებში. 1227 00:50:42,940 --> 00:50:45,420 ეს იყო მიზანმიმართული, რომ მე ფრჩხილებში წელს კონფერენციის მონაწილეებს 1228 00:50:45,420 --> 00:50:48,130 ლღობას აქ, რადგან სინამდვილეში ეს ცნება მიზნით 1229 00:50:48,130 --> 00:50:51,590 ოპერაციების, ან უპირატესი, რომლის დროსაც გარკვეული ოპერაციები - 1230 00:50:51,590 --> 00:50:52,890 გამრავლება - 1231 00:50:52,890 --> 00:50:56,000 უმაღლესი ამკინძავი, ჰქონდეს უმაღლესი პრეცენდენტის, ვიდრე რამ 1232 00:50:56,000 --> 00:50:58,050 მოსწონს გარდა ან გამოკლება. 1233 00:50:58,050 --> 00:51:00,550 ამიტომ, ჩვენ გავაკეთეთ ამ წლების განმავლობაში მხოლოდ გაარკვიოს ზუსტად 1234 00:51:00,550 --> 00:51:02,840 რა მათემატიკური ოპერაცია უნდა გაკეთდეს პირველი. 1235 00:51:02,840 --> 00:51:05,010 ასე რომ, ალბათ mimic სწორედ ეს არის. 1236 00:51:05,010 --> 00:51:08,990 წინააღმდეგ შემთხვევაში, კომპიუტერი, სავარაუდოდ აპირებს ცდილობენ გააკეთონ 1237 00:51:08,990 --> 00:51:13,090 მსგავსი რამ გათიშე 5 by 9, მაშინ გავამრავლოთ F, მაშინ სხვაობა 1238 00:51:13,090 --> 00:51:14,850 32 მთელი რამ. 1239 00:51:14,850 --> 00:51:16,480 რომელი არ არის, ფაქტობრივად, რაც გვინდა გავაკეთოთ. 1240 00:51:16,480 --> 00:51:17,340 მოდით parenthesize. 1241 00:51:17,340 --> 00:51:20,860 მოდით დამატება ჩემი ფრჩხილებში აქ, ბრჭყალების აქ. 1242 00:51:20,860 --> 00:51:22,670 მოდით დააყენა ამ მეტი აქ. 1243 00:51:22,670 --> 00:51:25,130 აქ, უბრალოდ შენიშნა კიდევ ერთი შეცდომა მივიღე გასწვრივ გზა. 1244 00:51:25,130 --> 00:51:25,680 ჰო? 1245 00:51:25,680 --> 00:51:26,930 აუდიტორია: [INAUDIBLE] 1246 00:51:29,632 --> 00:51:30,130 >> დევიდ ჯ Malan: Ah. 1247 00:51:30,130 --> 00:51:30,470 კარგი. 1248 00:51:30,470 --> 00:51:32,400 ამიტომ, ჩვენ რეალურად იგივე რიცხვი 1249 00:51:32,400 --> 00:51:34,020 გაყოფის საკითხს ადრე. 1250 00:51:34,020 --> 00:51:35,800 მე გამოსწორებას, რომ, ვნახოთ, რა სიმპტომია არის. 1251 00:51:35,800 --> 00:51:36,990 მაგრამ ჩვენ ვაპირებთ აქვს გამოსწორების ერთი 1252 00:51:36,990 --> 00:51:37,680 სხვა შეცდომა აქ. 1253 00:51:37,680 --> 00:51:38,015 ჰო? 1254 00:51:38,015 --> 00:51:39,540 აუდიტორია: [INAUDIBLE] 1255 00:51:39,540 --> 00:51:40,070 დევიდ ჯ Malan: დიახ. 1256 00:51:40,070 --> 00:51:43,130 ასე რომ, სულელური შეცდომა მივიღე, მაგრამ წარმოუდგენლად მნიშვნელოვანია. 1257 00:51:43,130 --> 00:51:45,870 კომპიუტერი არ აპირებს უბრალოდ თვალის დახუჭვას და მოდით 1258 00:51:45,870 --> 00:51:48,770 ჩემთვის გამოიყენოთ Capital F, როცა რეალურად განაცხადა ცვლადი 1259 00:51:48,770 --> 00:51:51,360 როგორც ამას ვ აქ, ხაზი 8. 1260 00:51:51,360 --> 00:51:54,470 ასე რომ მე უნდა სწორი ხაზი 11 ჩემი კაპიტალიზაცია, რომელიც 1261 00:51:54,470 --> 00:51:56,820 მომენტში წინ იყო Capital F შეცდომით. 1262 00:51:56,820 --> 00:51:57,610 რაც შეეხება აქ? 1263 00:51:57,610 --> 00:51:59,980 უნდა ეს იყოს ამას ისევე? 1264 00:51:59,980 --> 00:52:02,260 ასეც უნდა იყოს, მაგრამ ეს დამთხვევა. 1265 00:52:02,260 --> 00:52:05,070 რომ% ვ არაფერი აქვს ერთად ცვლადი. 1266 00:52:05,070 --> 00:52:07,980 ასე რომ მხოლოდ უნდა იყოს სუპერ წმინდა აქ, ნება მომეცით წავიდეთ წინ და 1267 00:52:07,980 --> 00:52:10,710 გადარქმევა ამ, მოკლედ, "ტემპერატურა". ნება მომეცით გადარქმევა 1268 00:52:10,710 --> 00:52:15,050 ამ "ტემპერატურის". ნება მომეცით არ გადაარქვათ ამ. 1269 00:52:15,050 --> 00:52:18,180 რადგან, კიდევ ერთხელ,% ვ გლობალური ნიშნავს, "მცურავი წერტილი ღირებულება." 1270 00:52:18,180 --> 00:52:19,950 არაფერი აქვს, რომ ჩემს ცვლადი. 1271 00:52:19,950 --> 00:52:23,080 მაგრამ "ტემპერატურის" მთელ ადგილი არის მხოლოდ პატარა wordy, 1272 00:52:23,080 --> 00:52:25,370 ამიტომ მე ვაპირებ დავუბრუნდე ჩემს ამას "ვ" s. 1273 00:52:25,370 --> 00:52:27,890 >> ახლა ნება მიბოძეთ, წავიდეთ წინ ქვემოთ ჩემი ფანჯრის აქ. 1274 00:52:27,890 --> 00:52:29,190 ჩადება f2c - 1275 00:52:29,190 --> 00:52:31,200 რაც იყო, კიდევ ერთხელ, თვითნებური სახელი მე 1276 00:52:31,200 --> 00:52:32,590 მისცა ამ ფაილზე. 1277 00:52:32,590 --> 00:52:33,690 როგორც ჩანს, არ შედგენილი. 1278 00:52:33,690 --> 00:52:35,080 ნება მომეცით აწარმოებს f2c. 1279 00:52:35,080 --> 00:52:35,780 შეიყვანეთ. 1280 00:52:35,780 --> 00:52:37,786 ტემპერატურა Fahrenheit - მოდით ადვილი. 1281 00:52:37,786 --> 00:52:39,370 32. 1282 00:52:39,370 --> 00:52:40,910 OK, შეასწოროს. 1283 00:52:40,910 --> 00:52:45,910 მაგრამ, თუ მე ახლა 212 შეეხება დუღილის - 1284 00:52:45,910 --> 00:52:46,630 Damn. 1285 00:52:46,630 --> 00:52:47,030 ყველა უფლება. 1286 00:52:47,030 --> 00:52:50,780 ასე რომ, აშკარად არ არის სწორი, თუ თქვენი TF ცდილობს 1287 00:52:50,780 --> 00:52:51,800 მინიმუმ ორი ღირებულებებს. 1288 00:52:51,800 --> 00:52:53,340 ამიტომ რა პრობლემა აქ? 1289 00:52:53,340 --> 00:52:55,970 ისე, თქვენ უკვე დააყენა თითის რა საკითხი. 1290 00:52:55,970 --> 00:52:57,600 მაგრამ რატომ არის, რომ საქმე? 1291 00:52:57,600 --> 00:53:00,630 აქ, როცა მე ვაკეთებ მათემატიკის, 5 იყოფა 9. 1292 00:53:00,630 --> 00:53:02,190 ასე რომ კონცეპტუალურად, რომ შესანიშნავად სწორი. 1293 00:53:02,190 --> 00:53:03,690 მთლიანად შეესაბამება ფორმულა. 1294 00:53:03,690 --> 00:53:05,940 მაგრამ კომპიუტერები მხოლოდ ზუსტად ის, რაც თქვენ 1295 00:53:05,940 --> 00:53:06,760 ვუთხრა, უნდა გააკეთოს. 1296 00:53:06,760 --> 00:53:08,940 და რა ჩვენ ეფექტურად ვეუბნებოდი კომპიუტერი აქ არის 1297 00:53:08,940 --> 00:53:12,320 დაყოს მთელი რიცხვი 5 მიერ რიცხვი 9 1298 00:53:12,320 --> 00:53:13,670 და მომეცი შედეგი. 1299 00:53:13,670 --> 00:53:16,230 პრობლემა ისაა, თუმცა, როდესაც თქვენ ჩვენგან სამმართველოს გამოყენებით მონაცემები 1300 00:53:16,230 --> 00:53:20,220 სახის, გამომავალი არის იგივე ტიპის მონაცემის როგორც საშუალებებით. 1301 00:53:20,220 --> 00:53:23,670 და თუ ორ საშუალებებით ორივე ints, გამომავალი აპირებს 1302 00:53:23,670 --> 00:53:25,110 უნდა იყოს int. 1303 00:53:25,110 --> 00:53:28,770 და ა.შ. 5 იყოფა 9 არის წერტილი რაღაც. 1304 00:53:28,770 --> 00:53:32,320 მაგრამ რა არის უახლოესი რიცხვი აღვნიშნო რაღაც? 1305 00:53:32,320 --> 00:53:33,630 ასე რომ, ეს რეალურად 0. 1306 00:53:33,630 --> 00:53:36,620 ასე რომ, როგორც ჩვენ განვიხილეთ ორშაბათს, ყველაფერი შემდეგ ათობითი 1307 00:53:36,620 --> 00:53:37,940 ქულა იღებს truncated. 1308 00:53:37,940 --> 00:53:39,495 ეს უბრალოდ იღებს დააგდეს დაშორებით. 1309 00:53:39,495 --> 00:53:42,760 ასე რომ, ეს სრული შეცდომაა, რადგან მე შეიძლება ასევე მხოლოდ 1310 00:53:42,760 --> 00:53:44,700 გავამრავლოთ ყველაფერს 0 აქ. 1311 00:53:44,700 --> 00:53:46,550 >> ეხლა უკვე შემიძლია დაფიქსირება ამ რამდენიმე გზები. 1312 00:53:46,550 --> 00:53:48,080 შემეძლო ამის გაკეთება. 1313 00:53:48,080 --> 00:53:50,490 5.0 იყოფა 9.0. 1314 00:53:50,490 --> 00:53:52,110 ტექნიკურად, ისიც კი არ უნდა გავაკეთოთ, რომ. 1315 00:53:52,110 --> 00:53:55,780 ეს არ გვაძლევს, მხოლოდ ერთი მიზნით ნომრები float - 1316 00:53:55,780 --> 00:53:58,290 ან ორმაგი - გამოსული ათობითი წერტილი აქ. 1317 00:53:58,290 --> 00:54:01,740 რადგან რა ხდება ახლა, როდესაც თქვენ დაყოფის რიცხვი მიერ 1318 00:54:01,740 --> 00:54:04,670 float, ან ორმაგი, კომპიუტერის აპირებს გააცნობიეროს 1319 00:54:04,670 --> 00:54:06,830 OH, ერთი იმ უფრო ზუსტი. 1320 00:54:06,830 --> 00:54:09,420 ნება მომეცით err მხარეს გაწვდით მეტი სიზუსტით, ვიდრე 1321 00:54:09,420 --> 00:54:10,310 თქვენ აპირებდით. 1322 00:54:10,310 --> 00:54:12,700 ასე რომ, ეს იქნება კონვერტირება შედეგი - 1323 00:54:12,700 --> 00:54:16,240 იგი დაბრუნდება შედეგი როგორც მცურავი წერტილი ღირებულება ისევე. 1324 00:54:16,240 --> 00:54:17,330 ასე რომ იმუშავებს. 1325 00:54:17,330 --> 00:54:18,060 ეს იმუშავებს. 1326 00:54:18,060 --> 00:54:20,010 წინ კიდევ ერთი სხვა მექანიზმი, რომელიც ჩვენ ვხედავთ 1327 00:54:20,010 --> 00:54:21,390 უფრო მეტი დეტალი მომავალი კვირის. 1328 00:54:21,390 --> 00:54:24,690 თქვენ შეგიძლიათ რეალურად, როგორც პროგრამისტი, ვუთხრა კომპიუტერი 1329 00:54:24,690 --> 00:54:27,930 რეალურად მკურნალობა ერთი ტიპის მონაცემის როგორც 1330 00:54:27,930 --> 00:54:29,260 თუმცა ეს იყო კიდევ ერთი. 1331 00:54:29,260 --> 00:54:30,990 >> ასე რომ მე ვერ რეალურად ამის გაკეთება. 1332 00:54:30,990 --> 00:54:35,280 ფრჩხილებში, შემიძლია ვთქვა რაღაც (float), ღია 1333 00:54:35,280 --> 00:54:36,350 PAREN, მჭიდრო PAREN. 1334 00:54:36,350 --> 00:54:39,050 და ეს არის ის, რაც ე.წ. "კასტინგი". ერთხელ, უფრო 1335 00:54:39,050 --> 00:54:39,940 ამ მომავალ კვირას. 1336 00:54:39,940 --> 00:54:42,280 მაგრამ ეს მხოლოდ პროგრამული გზა ვეუბნებოდი 1337 00:54:42,280 --> 00:54:45,910 კომპიუტერი, yeah ვიცი 9 არის მთელი რიცხვი ან ხანგრძლივი. 1338 00:54:45,910 --> 00:54:47,700 მე ვიცი ეს არ მცურავი წერტილი ღირებულება. 1339 00:54:47,700 --> 00:54:49,420 მაგრამ მკურნალობა, როგორც ასეთი მაინც. 1340 00:54:49,420 --> 00:54:52,000 ასე რომ მიცემული მონაცემები ტიპის ნიშნავს გადაიყვანოთ 1341 00:54:52,000 --> 00:54:53,310 ერთი, მეორე მხარეს. 1342 00:54:53,310 --> 00:54:55,790 გულწრფელად ვამბობ, ეს მხოლოდ პატარა მახინჯი, ამიტომ მინდა შესთავაზოს ჩვენ წავიდეთ 1343 00:54:55,790 --> 00:54:58,830 თავში ორიგინალური წინადადებით მხოლოდ კონვერტაცია 1344 00:54:58,830 --> 00:55:00,770 ეს ყველაფერი უნდა მცურავი პუნქტიანი ღირებულებების ხელით. 1345 00:55:00,770 --> 00:55:02,890 რადგან ახლა ეს მხოლოდ სუპერ გარკვევა რა ხდება, და 1346 00:55:02,890 --> 00:55:04,280 ეს არ არის ყველა, რომ ყურადღების გადასატანი. 1347 00:55:04,280 --> 00:55:06,710 >> მოდით ახლა დავუბრუნდეთ ჩემს ტერმინალის ფანჯარაში. 1348 00:55:06,710 --> 00:55:07,990 ჩადება f2c. 1349 00:55:07,990 --> 00:55:09,430 ნება მომეცით წავიდეთ წინ და აწარმოებს ამ. 1350 00:55:09,430 --> 00:55:12,340 და, როგორც განზე, მოგწყინდება აკრეფით ეს ბრძანებები 1351 00:55:12,340 --> 00:55:14,910 ისევ და ისევ, გააცნობიეროს, რომ კომპიუტერები, როგორიცაა Linux აქ, 1352 00:55:14,910 --> 00:55:16,010 ტენდენცია იყოს საკმაოდ ჭკვიანი. 1353 00:55:16,010 --> 00:55:18,890 და თუ მოხვდა, შეიძლება გავლა ჩემი მთელი ისტორია 1354 00:55:18,890 --> 00:55:20,380 ბრძანებები, ზემოთ და ქვემოთ. 1355 00:55:20,380 --> 00:55:23,840 ასე რომ, ამ შემთხვევაში აქ, მე შემიძლია უბრალოდ ახვიდეთ აწარმოებს მიიღოს f2c. 1356 00:55:23,840 --> 00:55:25,830 მე მიმდინარეობს yelled ზე, რადგან მე უბრალოდ გააკეთეს, რომ მეორე წინ. 1357 00:55:25,830 --> 00:55:27,030 ეს უკვე დღემდე. 1358 00:55:27,030 --> 00:55:30,720 ახლა შემიძლია აწარმოებს f2c ერთხელ. 1359 00:55:30,720 --> 00:55:33,260 მოდით ვეცადოთ 32 ფარენგეიტი. 1360 00:55:33,260 --> 00:55:36,720 ახლა მოდით შევეცადოთ 212 ფარენგეიტი. 1361 00:55:36,720 --> 00:55:37,250 >> Phew. 1362 00:55:37,250 --> 00:55:38,250 როგორც ჩანს მუშაობა. 1363 00:55:38,250 --> 00:55:41,760 ახლა, ეს არის კარგი, მაგრამ ეს გრძნობს პატარა თვითნებური რომ 1364 00:55:41,760 --> 00:55:44,890 მე გვიჩვენებს ექვსი ნომერი შემდეგ ათობითი რაოდენობა. 1365 00:55:44,890 --> 00:55:45,070 მარჯვენა? 1366 00:55:45,070 --> 00:55:47,830 თუ თქვენ ამინდის პირი ტელევიზიით, თქვენ სახის doofus 1367 00:55:47,830 --> 00:55:49,150 თუ თქვენ კითხულობს ტემპერატურა უნდა 1368 00:55:49,150 --> 00:55:50,070 ამ ხარისხის სიზუსტით. 1369 00:55:50,070 --> 00:55:51,270 მოდით გაამარტივებს ამ. 1370 00:55:51,270 --> 00:55:53,880 მოდით რეალურად ახვიდეთ აქ, ჩემი printf. 1371 00:55:53,880 --> 00:55:55,490 და ჰო, მინდა ათწილადი. 1372 00:55:55,490 --> 00:55:57,570 მაგრამ მე მინდა ახლა დააკონკრეტა სიზუსტით. 1373 00:55:57,570 --> 00:55:59,070 და მე ვაპირებ იყოს ცოტა ლაკონური. 1374 00:55:59,070 --> 00:56:03,090 მე ვაპირებ ვთქვა, მომეცი ერთი ქულა შემდეგ ათობითი ადგილი. 1375 00:56:03,090 --> 00:56:07,590 ასე რომ, ვიდრე ამბობენ% f, მე ვაპირებ ვთქვა% .1 f. 1376 00:56:07,590 --> 00:56:09,760 და ეს მხოლოდ იმას ნიშნავს, მომეცი ერთი პოზიცია 1377 00:56:09,760 --> 00:56:11,410 შემდეგ ათობითი წერტილი. 1378 00:56:11,410 --> 00:56:11,700 ყველა უფლება. 1379 00:56:11,700 --> 00:56:12,570 მოდით ვეცადოთ ეს კიდევ ერთხელ. 1380 00:56:12,570 --> 00:56:15,590 ნება მომეცით ხელახლა გაუშვით შემდეგ შედგენა. 1381 00:56:15,590 --> 00:56:18,160 და ახლა აკრიფოთ 32, და არ დავიბრუნებ 1382 00:56:18,160 --> 00:56:19,310 უფრო ლაკონური ღირებულება. 1383 00:56:19,310 --> 00:56:22,480 და შემიძლია აკრიფოთ, ახლა, 212, და დაუბრუნდება უფრო ლაკონური 1384 00:56:22,480 --> 00:56:23,260 ღირებულება ისევე. 1385 00:56:23,260 --> 00:56:25,190 და არსებობს სხვა რამ რომ თქვენ printf. 1386 00:56:25,190 --> 00:56:27,950 თქვენ შეგიძლიათ რეალურად დააკონკრეტა, თუ როგორ ფართო ნომერი უნდა. 1387 00:56:27,950 --> 00:56:30,900 თუ გსურთ აქვს padding მასზე, ასე რომ თქვენ შეგიძლიათ მარჯვენა გასწორება ან 1388 00:56:30,900 --> 00:56:32,360 მარცხენა გასწორება ყველა თქვენი ნომრები ან 1389 00:56:32,360 --> 00:56:33,400 ცდილობენ ცენტრი რამ. 1390 00:56:33,400 --> 00:56:35,340 ასე რომ მიხვდებიან, არსებობს პატარა ხრიკების შეგიძლიათ ესაქმებათ. 1391 00:56:35,340 --> 00:56:38,420 მაგრამ ისინი უბრალოდ მოვხარშოთ ქვემოთ ფორმატის კოდები, 1392 00:56:38,420 --> 00:56:39,600 როგორც ჩვენ გვყავს იქ. 1393 00:56:39,600 --> 00:56:41,090 >> ამიტომ თვალსაზრისით ამ საკითხის უპირატესი. 1394 00:56:41,090 --> 00:56:43,820 ეს არის ძალიან მოსაწყენი მაგიდა გავლა მეთოდურად. 1395 00:56:43,820 --> 00:56:46,780 მაგრამ გვესმის, რომ ავტორები C არ ამუშავება 1396 00:56:46,780 --> 00:56:50,190 წესები რომ მიუთითოს, თუ რომელი ოპერატორების უმაღლესი 1397 00:56:50,190 --> 00:56:53,680 პრეცენდენტის, მეტი ამკინძავი ძალა, ვიდრე სხვები. 1398 00:56:53,680 --> 00:56:55,890 ასე ხოლო Grade სკოლა, ჩვენ ზოგადად იცოდა, რომ ეს იყო 1399 00:56:55,890 --> 00:56:58,930 გამრავლება და გაყოფა, მაშინ ამისა და გამოკლება, 1400 00:56:58,930 --> 00:56:59,950 მაშინ რაიმე სხვა პერსონალი. 1401 00:56:59,950 --> 00:57:01,720 მსოფლიოში პროგრამირების, არსებობს ბევრი 1402 00:57:01,720 --> 00:57:03,360 აღარ სიაში რამ. 1403 00:57:03,360 --> 00:57:05,150 და ეს არ არის რაღაც ღირს იმახსოვრებდა არის. 1404 00:57:05,150 --> 00:57:07,310 თქვენ მიიღებთ acclimated მას ადრე ხანგრძლივი. 1405 00:57:07,310 --> 00:57:10,690 მაგრამ ისევე, როგორც კლასის სკოლა, ბრჭყალების ზოგადად გადაჭრას 1406 00:57:10,690 --> 00:57:12,990 საკითხები პრეცენდენტის, მიერ მიღების სუპერ ნათელი 1407 00:57:12,990 --> 00:57:15,620 კომპიუტერი და ადამიანის მსგავსად რა განკუთვნილია. 1408 00:57:15,620 --> 00:57:17,770 ამიტომ მიგვაჩნია, რომ ეს მხოლოდ პატარა cheat ფურცელი არსებობს. 1409 00:57:17,770 --> 00:57:21,690 მაგრამ ყველაზე მეტად იმ დეტალებზე ჩვენ არ მიიღოთ გარკვეული დროის განმავლობაში. 1410 00:57:21,690 --> 00:57:21,900 >> ყველა უფლება. 1411 00:57:21,900 --> 00:57:24,120 ახლა, მოდით, დაამყარონ და გადაადგილება დაშორებით ამ სულელური პატარა 1412 00:57:24,120 --> 00:57:25,460 მათემატიკის მაგალითები. 1413 00:57:25,460 --> 00:57:27,500 კვლავ გამოიყენოთ იგივე საფუძვლები, მაგრამ დაიწყება 1414 00:57:27,500 --> 00:57:29,960 გამოხატავს საკუთარ თავს ცოტა მეტი მოსწონს Scratch. 1415 00:57:29,960 --> 00:57:31,660 ასე რომ, Scratch, ჩვენ გვქონდა ამ ლოგიკური გამონათქვამები. 1416 00:57:31,660 --> 00:57:34,890 და ინგლისურ, ლოგიკური გამოხატვის რა? 1417 00:57:34,890 --> 00:57:35,580 True ან ყალბი. 1418 00:57:35,580 --> 00:57:38,300 ეს რაღაც, რომ აფასებს ჭეშმარიტი ან ცრუ. 1419 00:57:38,300 --> 00:57:39,060 1 ან 0. 1420 00:57:39,060 --> 00:57:39,870 ან გამოსართავად. 1421 00:57:39,870 --> 00:57:41,000 რასაც თქვენ გსურთ ეძახით. 1422 00:57:41,000 --> 00:57:43,210 ახლა Scratch, თავსატეხი ცალი ჩანდა მოსწონს ეს. 1423 00:57:43,210 --> 00:57:45,850 და ეს კომბინაცია, ქვედა არსებობს, სამი 1424 00:57:45,850 --> 00:57:47,980 თავსატეხი ცალი. 1425 00:57:47,980 --> 00:57:48,980 ერთი ერთობლიობაში - 1426 00:57:48,980 --> 00:57:51,710 რაღაც რომ აქვს ცარიელი და ცარიელი. 1427 00:57:51,710 --> 00:57:53,970 და შემდეგ ორი ლოგიკური გამონათქვამები შიგნით მას. 1428 00:57:53,970 --> 00:57:56,460 ასე რომ თქვენ შეგიძლიათ ბუდე ლოგიკური გამონათქვამები უფრო 1429 00:57:56,460 --> 00:57:59,360 გართულებულია ლოგიკური გამონათქვამები. 1430 00:57:59,360 --> 00:58:03,930 მაგალითად, თუ ეს შაბათი და ეს ლამაზი 1431 00:58:03,930 --> 00:58:06,180 ამინდის, მაშინ გარეთ. 1432 00:58:06,180 --> 00:58:07,500 ან რამე თვითნებური იგრძნობა. 1433 00:58:07,500 --> 00:58:10,090 ასე, რომ თქვენ შეგიძლიათ შეუერთდება ლოგიკური გამონათქვამები ამუშავება ერთად 1434 00:58:10,090 --> 00:58:12,780 უფრო დიდი სიმართლე ღირებულება, რომლის პასუხი ეფუძნება 1435 00:58:12,780 --> 00:58:13,800 on მცირე ზომის. 1436 00:58:13,800 --> 00:58:15,770 >> ახლა კი, C, საბედნიეროდ, ამ რუკების არის 1437 00:58:15,770 --> 00:58:16,720 რეალურად საკმაოდ მარტივია. 1438 00:58:16,720 --> 00:58:18,820 ფრჩხილებში დაეხმარება მიიღოს რამ გამოიკვეთა აქ. 1439 00:58:18,820 --> 00:58:21,700 && არის ის, რაც იმას ნიშნავს, "და". ასე რომ ასე 1440 00:58:21,700 --> 00:58:24,700 ჩვენ ვაპირებთ კონვერტირება იმ ბლოკების ნულიდან უნდა C. 1441 00:58:24,700 --> 00:58:27,590 და პირობები ვნახეთ Scratch, მარცხენა 1442 00:58:27,590 --> 00:58:31,150 მხარეს, მე შემიძლია დააწყობს მათ მსგავსად in C. თუ x ნაკლებია 1443 00:58:31,150 --> 00:58:32,970 ვიდრე Y, მაშინ ამის გაკეთება. 1444 00:58:32,970 --> 00:58:35,100 Else თუ x მეტია y, მაშინ ამის გაკეთება. 1445 00:58:35,100 --> 00:58:38,030 Else ლოგიკურად უნდა იყოს თანასწორი, ისე ამბობენ 1446 00:58:38,030 --> 00:58:39,140 რომ ისინი არიან თანაბარი. 1447 00:58:39,140 --> 00:58:41,210 ასე რომ ჩვენ შეგვიძლია ახლა დავიწყოთ აშენება ეს ყველაფერი მდე. 1448 00:58:41,210 --> 00:58:42,170 >> ასე რომ მოდით მაგალითს. 1449 00:58:42,170 --> 00:58:45,550 ნება მომეცით გახსენით ფაილი რომ on რა თქმა უნდა ნახვა, რომ 1450 00:58:45,550 --> 00:58:47,270 დავწერე წინასწარ. 1451 00:58:47,270 --> 00:58:50,540 რომ ჰქვია nonswitch.c. 1452 00:58:50,540 --> 00:58:52,270 და ვნახავთ, თუ რატომ მხოლოდ მომენტში. 1453 00:58:52,270 --> 00:58:54,770 ასე რომ ამ ფაილის - nonswitch.c-- 1454 00:58:54,770 --> 00:58:56,830 პირველი გააცნობიეროს, რომ არსებობს მთელი bunch of 1455 00:58:56,830 --> 00:58:58,460 კომენტარები ზედა. 1456 00:58:58,460 --> 00:59:00,110 ეს მხოლოდ ხსნიდა სახელით ფაილი, თუ რას 1457 00:59:00,110 --> 00:59:01,260 აკეთებს და სხვ. 1458 00:59:01,260 --> 00:59:04,390 და ეს აშკარად მეტყველებს გამოყენების ლოგიკური და ING - 1459 00:59:04,390 --> 00:59:06,220 conjoining ორი გამონათქვამები. 1460 00:59:06,220 --> 00:59:07,670 >> მოდით ვნახოთ, როგორ ეს პროგრამა მუშაობს. 1461 00:59:07,670 --> 00:59:10,840 მე მოიცავს ჩემი ორი ფაილი, cs50.h და stdio.h. 1462 00:59:10,840 --> 00:59:13,180 თუ მე გადახვევა down, ახლა, რომ პროგრამა, ეს პატარა აღარ 1463 00:59:13,180 --> 00:59:15,730 ვიდრე ჩვენ წერილობითი ადრე, მაგრამ საკმაოდ იკითხება. 1464 00:59:15,730 --> 00:59:18,360 ასე რომ პირველი ბეჭდვა მომხმარებელი, on line 18, 1465 00:59:18,360 --> 00:59:20,460 "მომეცი რიცხვი შორის 1 და 10." ასე 1466 00:59:20,460 --> 00:59:21,530 რომ უფლება არსებობს. 1467 00:59:21,530 --> 00:59:23,410 ახლა მივიღებ მთელი რიცხვი. 1468 00:59:23,410 --> 00:59:25,380 მაგრამ ვაცნობიერებთ, რომ GetInt - საკმაოდ მარტივია. 1469 00:59:25,380 --> 00:59:26,510 უბრალოდ აპირებს მიიღოს int. 1470 00:59:26,510 --> 00:59:28,830 ეს ხდება იმის უზრუნველსაყოფად, რომ ეს სულაც კიდევ int და არა 1471 00:59:28,830 --> 00:59:30,060 სიმებიანი ან float. 1472 00:59:30,060 --> 00:59:32,390 მაგრამ არ ვაპირებთ რაიმე სახის საზღვრის შემოწმება. 1473 00:59:32,390 --> 00:59:34,750 ის არ აპირებს გავფილტროთ ნომრის იყოს 1474 00:59:34,750 --> 00:59:35,630 გარკვეული დიაპაზონი. 1475 00:59:35,630 --> 00:59:37,730 ამიტომ, ჩვენ უნდა განვახორციელოთ, რომ საკუთარ თავს. 1476 00:59:37,730 --> 00:59:40,680 ამიტომ ისევე როგორც Scratch, სადაც მე შეეძლო conjunction of 1477 00:59:40,680 --> 00:59:43,560 ორი გამოთქმები, შემიძლია, რომ C შემდეგნაირად. 1478 00:59:43,560 --> 00:59:48,660 თუ n მეტია ან ტოლია 1, N და ნაკლებია, ვიდრე და 1479 00:59:48,660 --> 00:59:52,220 ან ტოლია 3, ვაპირებ ძალიან თვითნებურად განკარგულებით, რომ 1480 00:59:52,220 --> 00:59:53,830 ნომერი უნდა იყოს მცირე რაოდენობის. 1481 00:59:53,830 --> 00:59:56,730 მხოლოდ გულისთვის განცხადებაში. 1482 00:59:56,730 --> 01:00:00,210 Else თუ N არის 4 და 6, ბეჭდვითი "თქვენ აიყვანეს საშუალო 1483 01:00:00,210 --> 01:00:03,440 ნომერი. "Else თუ N არის შორის 7 და 10, ბეჭდვითი" თქვენ აიყვანეს 1484 01:00:03,440 --> 01:00:06,390 დიდი რაოდენობით. "Else ბეჭდვა" თქვენ შეარჩიო არასწორი ნომერი. " 1485 01:00:06,390 --> 01:00:07,900 იმის გამო, რომ ლოგიკურად, რომ შემდეგნაირად თუ ჩვენ 1486 01:00:07,900 --> 01:00:09,230 ამოწურა ჩვენი დიაპაზონი. 1487 01:00:09,230 --> 01:00:12,400 >> ასე რომ მიხვდებიან, ეს არ არის საკმაოდ, თუ როგორ წერენ მეტია ან 1488 01:00:12,400 --> 01:00:15,000 ტოლია წელს მათემატიკის კლასის. 1489 01:00:15,000 --> 01:00:15,160 მარჯვენა? 1490 01:00:15,160 --> 01:00:17,430 ჩვეულებრივ მიაპყროს მას მოსწონს, ერთად ხაზის ქვეშ. 1491 01:00:17,430 --> 01:00:19,250 მაგრამ არ არსებობს ასეთი გასაღები ჩემს კლავიატურაზე. 1492 01:00:19,250 --> 01:00:22,390 ამიტომ სიმბოლოდ C გამოთქმის მეტია ან 1493 01:00:22,390 --> 01:00:25,770 ტოლი არის ორი პერსონაჟი, და სიმბოლო ნაკლები 1494 01:00:25,770 --> 01:00:29,100 ან ტოლია არის ორი გმირები ისევე. 1495 01:00:29,100 --> 01:00:29,330 ყველა უფლება. 1496 01:00:29,330 --> 01:00:31,910 ასე რომ, თუ მე აწარმოებს ამ პროგრამის საშუალებით თქვენ შეგიძლიათ ალბათ მიხვდები რასაც ის 1497 01:00:31,910 --> 01:00:32,650 გაკეთებას აპირებს. 1498 01:00:32,650 --> 01:00:36,180 თუ მე წავიდეთ წინ და მიიღოს nonswitch, შეიყვანეთ. 1499 01:00:36,180 --> 01:00:38,130 და შემდეგ აწარმოებს nonswitch. 1500 01:00:38,130 --> 01:00:39,530 მომეცი რიცხვი 1 და 10. 1501 01:00:39,530 --> 01:00:40,870 მე ვაპირებ მისთვის 11. 1502 01:00:40,870 --> 01:00:42,280 მე აიყვანეს არასწორი ნომერი. 1503 01:00:42,280 --> 01:00:44,090 ნება მომეცით ვცდილობთ ნომერი 3. 1504 01:00:44,090 --> 01:00:45,990 მე აიყვანეს მცირე რაოდენობით. 1505 01:00:45,990 --> 01:00:48,360 ასე რომ საკმაოდ მარტივია არსებობს. 1506 01:00:48,360 --> 01:00:52,230 >> თუ გსურთ შეცვალოთ ქცევა ამ პროგრამის შესახებ და 1507 01:00:52,230 --> 01:00:54,250 რაღაც პატარა სხვადასხვა ნაცვლად? 1508 01:00:54,250 --> 01:00:57,620 ნება მომეცით წავიდეთ წინ და ამბობენ, რომ ეს. 1509 01:00:57,620 --> 01:00:59,480 ნება მომეცით დავაღწიოთ ყველა ამ. 1510 01:00:59,480 --> 01:01:03,780 და მინდა ვთქვა, თუ (n == 42). 1511 01:01:03,780 --> 01:01:08,730 და შემდეგ მე ვაპირებ წავიდეთ წინ და ვთქვათ ბეჭდვითი "თქვენ აიყვანეს 1512 01:01:08,730 --> 01:01:16,340 სწორად უნდა უპასუხოს ". Else ჩვენ ვაპირებთ წავიდეთ წინ და აცხადებენ, 1513 01:01:16,340 --> 01:01:18,460 printf ("თქვენ აიყვანეს 1514 01:01:18,460 --> 01:01:21,170 არასწორი პასუხი. "); Okay. 1515 01:01:21,170 --> 01:01:22,040 მხოლოდ იმიტომ, რომ. 1516 01:01:22,040 --> 01:01:23,890 >> ახლა, რამდენიმე რაოდენობა შეიძლება გავაკეთოთ აქ. 1517 01:01:23,890 --> 01:01:26,570 ერთი, მე არ აკრიფოთ სიმბოლო, რომ თქვენ ვფიქრობ არის 1518 01:01:26,570 --> 01:01:27,390 ყველაზე გონივრული. 1519 01:01:27,390 --> 01:01:30,110 როდესაც მე მინდა შევამოწმო თანასწორობის, თურმე, ჩვენ არ ვიყენებთ 1520 01:01:30,110 --> 01:01:30,910 თანაბარი ნიშანი. 1521 01:01:30,910 --> 01:01:34,000 თქვენს ნაცვლად გამოიყენოთ თანაბარი თანაბარი ნიშანი. 1522 01:01:34,000 --> 01:01:36,440 და რატომ შეიძლება რომ იყოს, უბრალოდ ინტუიციურად? 1523 01:01:36,440 --> 01:01:37,030 Yeah. 1524 01:01:37,030 --> 01:01:39,330 აუდიტორია: [INAUDIBLE] 1525 01:01:39,330 --> 01:01:39,615 დევიდ ჯ Malan: სწორი. 1526 01:01:39,615 --> 01:01:41,630 თანაბარი ნიშანი უკვე გამოიყენება დავალება. 1527 01:01:41,630 --> 01:01:43,020 ვიღაცამ არ ნამდვილად ვფიქრობ, რომ ეს მეშვეობით. 1528 01:01:43,020 --> 01:01:45,820 და ახლა, როდესაც საქმე თანასწორობის ტესტირება, ჩვენ უნდა 1529 01:01:45,820 --> 01:01:48,850 უფრო ზუსტად რომ ვთქვათ, და ვთქვათ შეადგენს შეადგენს. 1530 01:01:48,850 --> 01:01:52,110 ძალიან ჩვეულებრივი შეცდომა არის ამის გაკეთება. 1531 01:01:52,110 --> 01:01:54,800 და, თუ სამუშაო საათებში ან მომავალ კვირას ან 1532 01:01:54,800 --> 01:01:58,340 მომდევნო ორი კვირის განმავლობაში, რასაც აკეთებთ რაღაც მსგავსი და შემდეგ 1533 01:01:58,340 --> 01:02:00,920 ბრძოლა მას 10, 20 წუთის ცდილობს გაერკვნენ 1534 01:02:00,920 --> 01:02:03,330 რა Damn შეცდომა, გააცნობიეროს, რომ თქვენ ერთი იმ 1535 01:02:03,330 --> 01:02:04,470 ადამიანი რომელმაც ეს შეცდომა. 1536 01:02:04,470 --> 01:02:06,030 ასე რომ, სუპერ მარტივი მიიღოს. 1537 01:02:06,030 --> 01:02:08,240 მაგრამ მიზანია Ward off ეს შეცდომა. 1538 01:02:08,240 --> 01:02:11,840 ეს შეიძლება შევაფასოთ, რადგან რა არის ეს მართლაც ამბობდა? 1539 01:02:11,840 --> 01:02:15,010 თუ n იღებს 42. 1540 01:02:15,010 --> 01:02:18,250 ასე რომ ზმნის ადამიანი სარგებლობს, სიტყვიერი, გამოთქვას 1541 01:02:18,250 --> 01:02:21,800 ცნება დავალება "იღებს." ასე რომ, თუ n იღებს 42. 1542 01:02:21,800 --> 01:02:24,060 ასე რომ, რაც იმას ნიშნავს დაავალოს 42 დან n. 1543 01:02:24,060 --> 01:02:26,250 ახლა ლოგიკური გამოხატვის ფრჩხილებში, 1544 01:02:26,250 --> 01:02:30,230 შიგნით ამ მდგომარეობის, რომლის ღირებულება არის 42. 1545 01:02:30,230 --> 01:02:30,390 მარჯვენა? 1546 01:02:30,390 --> 01:02:32,690 რადგან თუ შეაფასებთ მას შიგნიდან გარეთ, სულ 1547 01:02:32,690 --> 01:02:34,100 პასუხი, ახლა, 42 წლისაა. 1548 01:02:34,100 --> 01:02:37,360 >> ასე რომ, თუ ვკითხე თქვენ კითხვაზე, "თუ (42)," რა არის 1549 01:02:37,360 --> 01:02:38,410 რომ მართლაც ამბობდა? 1550 01:02:38,410 --> 01:02:40,990 ისე, ლოგიკური გამონათქვამები იყოს მხოლოდ ჭეშმარიტი ან ცრუ. 1551 01:02:40,990 --> 01:02:42,010 1 ან 0. 1552 01:02:42,010 --> 01:02:43,010 ან გამოსართავად. 1553 01:02:43,010 --> 01:02:45,240 ამიტომ, ჩვენ, როგორც ჩანს, აქვს კუთხეში შემთხვევაში აქ, სადაც ყველა 1554 01:02:45,240 --> 01:02:50,060 უეცარი, მე რომ "თუ (42)". ეს არ არის ლოგიკური მნიშვნელობა. 1555 01:02:50,060 --> 01:02:54,500 მერე რა კომპიუტერები გააკეთოს, თუმცა, არის ეს არსებითად წელს 1556 01:02:54,500 --> 01:02:58,620 არაფერი რომ არ არის 0 ინტერპრეტირებული უნდა იყოს ჭეშმარიტი. 1557 01:02:58,620 --> 01:02:59,340 1. 1558 01:02:59,340 --> 01:02:59,690 On. 1559 01:02:59,690 --> 01:03:01,510 ისინი ყველა ფუნქციურად ექვივალენტური. 1560 01:03:01,510 --> 01:03:05,070 მხოლოდ ღირებულების 0, ან სიტყვით ყალბი, როგორც ჩვენ გამოგიგზავნით 1561 01:03:05,070 --> 01:03:07,860 საბოლოოდ ვხედავთ, ფაქტიურად სიცრუეა. 1562 01:03:07,860 --> 01:03:15,040 ასე რომ, "თუ (42)" რომ რეალურად იყოს ჭეშმარიტი, რადგან ეს არის არასამთავრობო ნულოვანი. 1563 01:03:15,040 --> 01:03:18,620 ასე უფრო სწორედ აქ, ლოგიკური ღირებულება მართლაც არც ისე 1564 01:03:18,620 --> 01:03:20,680 ბევრად ჭეშმარიტი ან მცდარი, მაგრამ ამ 1565 01:03:20,680 --> 01:03:24,650 შემთხვევაში, თუ არის 0 ან არასამთავრობო ნულოვანი. 1566 01:03:24,650 --> 01:03:26,330 ასე რომ ყალბი ან არ ცრუ. 1567 01:03:26,330 --> 01:03:28,640 და რომ საშუალებას გვაძლევს მოიცავს ყველა მეტი 1568 01:03:28,640 --> 01:03:30,980 შესაძლებლობები ჩართული გამოხატვის. 1569 01:03:30,980 --> 01:03:33,840 ამიტომ ჩვენ გვჭირდება, ოდესმე ასე ყურადღებით, ამბობენ, რომ ეს - 1570 01:03:33,840 --> 01:03:35,620 თუ (n == 42). 1571 01:03:35,620 --> 01:03:39,100 უბრალოდ იმიტომ, რომ ჩვენ გვჭირდება დააკონკრეტა ტესტი თანასწორობის, 1572 01:03:39,100 --> 01:03:40,930 არ მინიჭებული მნიშვნელობა. 1573 01:03:40,930 --> 01:03:42,830 >> რა არის აღსანიშნავია აქ? 1574 01:03:42,830 --> 01:03:46,030 ეს Curly braces რეალურად საჭირო არ არის. 1575 01:03:46,030 --> 01:03:48,650 მე უკვე აკეთებს უბრალოდ უნდა იყოს Nit-picky აქ. 1576 01:03:48,650 --> 01:03:51,350 მაგრამ როდესაც თქვენ გაქვთ პირობით, რომ მხოლოდ ერთი ხაზი 1577 01:03:51,350 --> 01:03:55,100 კოდი, როგორც მოხერხებულობისთვის, პროგრამისტები არ უნდა გამოვიყენოთ 1578 01:03:55,100 --> 01:03:56,030 Curly braces. 1579 01:03:56,030 --> 01:03:59,370 ეს suffices მხოლოდ აბზაცის, ამისთვის ესთეტიკური მიზეზების გამო, და 1580 01:03:59,370 --> 01:04:01,050 მაშინ დაწეროთ თქვენი ხაზი კოდი. 1581 01:04:01,050 --> 01:04:04,160 მხოლოდ მაშინ, როდესაც გსურთ წერენ ორ ზოლს კოდი - ამისთვის 1582 01:04:04,160 --> 01:04:08,230 მაგალითად, სხვაგან printf ("Bye!"). თუ გსურთ 1583 01:04:08,230 --> 01:04:09,540 იმაში, რომ ეს არის გატეხილი. 1584 01:04:09,540 --> 01:04:11,700 შეგიძლიათ აბზაცის ყველა გსურთ, მაგრამ ფაქტია, რომ თქვენ გაქვთ 1585 01:04:11,700 --> 01:04:14,600 აკრეფილი ორი ხაზი კოდი გამოყენების გარეშე Curly braces 1586 01:04:14,600 --> 01:04:16,860 იმას ნიშნავს, რომ ამ პროგრამას არ აწარმოებს სწორად ან შეიძლება 1587 01:04:16,860 --> 01:04:18,530 კი არ კომპილირდება სწორად. 1588 01:04:18,530 --> 01:04:21,040 ასე რომ ახლა, რომ იყოს პატიოსანი, ვფიქრობ საუკეთესო ჩვევა მხოლოდ 1589 01:04:21,040 --> 01:04:24,460 გამოყენება Curly braces, და თქვენ ნახავთ, რომ ისინი 1590 01:04:24,460 --> 01:04:25,750 სუპერ წმინდა რა ხდება. 1591 01:04:25,750 --> 01:04:29,410 >> ასევე, როგორც განზე - განსაკუთრებით თუ თქვენ შორის, ვინც გამოიყენოს 1592 01:04:29,410 --> 01:04:31,700 რეკომენდირებული წიგნების ან რესურსების ონლაინ - 1593 01:04:31,700 --> 01:04:33,480 გააცნობიეროს, რომ არსებობს ამ ცნება სტილის 1594 01:04:33,480 --> 01:04:34,130 პროგრამირების. 1595 01:04:34,130 --> 01:04:37,280 და ზოგიერთი ადამიანი რეალურად ურჩევნია დააყენა Curly გაუწიოს 1596 01:04:37,280 --> 01:04:38,720 მეტი აქ ხაზი. 1597 01:04:38,720 --> 01:04:41,520 ზოგიერთი ადამიანი ამჯობინებს გააკეთოს სასაცილოა რამ, 1598 01:04:41,520 --> 01:04:43,830 მინდა დააყენა ისინი აქ. 1599 01:04:43,830 --> 01:04:45,140 იქ არ არის არასწორი პასუხი, როდესაც საქმე 1600 01:04:45,140 --> 01:04:46,710 სტილი, მაგრამ ეს არასწორია. 1601 01:04:46,710 --> 01:04:47,700 მაგრამ ზოგიერთი ადამიანი აკეთებს. 1602 01:04:47,700 --> 01:04:49,160 [სიცილი] 1603 01:04:49,160 --> 01:04:51,760 დევიდ ჯ Malan: ასე რომ აღარაფერი ვთქვათ ეს ახლა, უბრალოდ იმის გამო, როგორც 1604 01:04:51,760 --> 01:04:54,400 წაიკითხოთ up on რამ წიგნების ან შემოსული, თქვენ აპირებს მიიღოს 1605 01:04:54,400 --> 01:04:55,990 სხვადასხვა შეტყობინებები სხვადასხვა პედაგოგებს და 1606 01:04:55,990 --> 01:04:56,730 სხვადასხვა ავტორები. 1607 01:04:56,730 --> 01:04:58,640 და მხოლოდ გააცნობიეროს, რომ ფუნქციურად ისინი 1608 01:04:58,640 --> 01:05:00,740 ზოგადად ექვივალენტი, მაგრამ იყოს თანმიმდევრული. 1609 01:05:00,740 --> 01:05:02,850 ასე რომ, ამ შემთხვევაში, ჩვენ standardize on Curly 1610 01:05:02,850 --> 01:05:04,650 braces დოლომიტ აქ მარცხნივ. 1611 01:05:04,650 --> 01:05:04,910 >> ყველა უფლება. 1612 01:05:04,910 --> 01:05:07,040 მოდით წავიდეთ წინ არის და აწარმოებს ამ, და ვნახოთ, რა მოხდება 1613 01:05:07,040 --> 01:05:07,780 ამ პროგრამით. 1614 01:05:07,780 --> 01:05:09,970 ჩადება nonswitch. 1615 01:05:09,970 --> 01:05:11,040 მაშინ აწარმოებს nonswitch. 1616 01:05:11,040 --> 01:05:13,900 მომეცი რიცხვი შორის 0 და - ისე, რომ არ შესაბამისი 1617 01:05:13,900 --> 01:05:16,480 აღარ, მაგრამ მე უბრალოდ აპირებს თვითნებურად ამბობენ 42. 1618 01:05:16,480 --> 01:05:17,850 მე აღებული უფლება პასუხი. 1619 01:05:17,850 --> 01:05:20,430 კარგად არის, მოდით პრაქტიკულად ეს სხვადასხვა მიმართულებით. 1620 01:05:20,430 --> 01:05:22,070 თურმე არსებობს რამდენიმე სხვა სინტაქსის ჩვენ 1621 01:05:22,070 --> 01:05:23,480 შეგიძლიათ გამოიყენოთ პროგრამა. 1622 01:05:23,480 --> 01:05:27,310 აქ ახალი ნაჭერი სინტაქსი რომ არის ფუნქციურად იგივე, 1623 01:05:27,310 --> 01:05:30,680 მაგრამ გაგაცნობთ სხვა გზა გამოხატვის საკუთარ თავს. 1624 01:05:30,680 --> 01:05:32,830 ასე რომ, ეს არის ის, რაც ე.წ. "შეცვლა განცხადებაში." და 1625 01:05:32,830 --> 01:05:34,820 შეცვლა განაცხადი მოქმედებს შემდეგნაირად. 1626 01:05:34,820 --> 01:05:37,580 იგი იღებს, ფრჩხილებში, ღირებულება, რომელიც გსურთ 1627 01:05:37,580 --> 01:05:38,860 "შეცვლა" შესახებ. 1628 01:05:38,860 --> 01:05:41,490 გსურთ იქცევიან განსხვავებულად ეფუძნება მისი ღირებულება. 1629 01:05:41,490 --> 01:05:44,360 ასე რომ, ეს იმას ნიშნავს, ჩართეთ ღირებულება n. 1630 01:05:44,360 --> 01:05:45,480 და რას ნიშნავს ეს? 1631 01:05:45,480 --> 01:05:50,530 ისე, თუ N არის 1 ან 2 ან 3, წავიდეთ წინ და ამობეჭდოთ "თქვენ 1632 01:05:50,530 --> 01:05:52,680 აიღო დიდი რაოდენობით "და შემდეგ შესვენება. 1633 01:05:52,680 --> 01:05:55,720 მიზეზი შესვენების არის ის, რომ გზა C მუშაობს არის როგორც 1634 01:05:55,720 --> 01:05:59,790 მალე იგი აღმოაჩენს შემთხვევაში, რომ სიას, იგი იწყება შესრულებაში 1635 01:05:59,790 --> 01:06:01,610 ყველა ლოდი იგი. 1636 01:06:01,610 --> 01:06:04,580 ასე რომ, თუ მაქვს ერთი ხაზი კოდი, როგორც მე აქ ხაზი 27, მას 1637 01:06:04,580 --> 01:06:05,360 იღებს დასაჯეს. 1638 01:06:05,360 --> 01:06:07,520 თუ დავამატო მეორე ხაზი აქ, იგი იღებს დასაჯეს. 1639 01:06:07,520 --> 01:06:09,350 მეორე ხაზი აქ, იგი იღებს დასაჯეს. 1640 01:06:09,350 --> 01:06:12,460 პროგრამა მხოლოდ აჩერებს შესრულებაში რა ქვემოთ 1641 01:06:12,460 --> 01:06:14,680 მოქმედი შემთხვევაში განაცხადი როდესაც მე მკაფიოდ 1642 01:06:14,680 --> 01:06:17,210 ამბობენ "დაარღვიოს." ასე არასწორია. 1643 01:06:17,210 --> 01:06:19,220 მარჯვენა, ამ შემთხვევაში, როგორც შედეგი. 1644 01:06:19,220 --> 01:06:22,130 საქმე 4 ან 5 ან 6, ანალოგიურად, ხდება 1645 01:06:22,130 --> 01:06:23,160 უნდა ამობეჭდოთ გაგზავნა. 1646 01:06:23,160 --> 01:06:24,410 ამ შემთხვევაში, საშუალო რაოდენობას. 1647 01:06:24,410 --> 01:06:25,200 დაარღვიე. 1648 01:06:25,200 --> 01:06:28,160 საქმე 7, 8, 9, 10, ის აპირებს ამობეჭდოთ "თქვენ აიყვანეს დიდი 1649 01:06:28,160 --> 01:06:28,950 ნომერი. "დაარღვიე. 1650 01:06:28,950 --> 01:06:31,290 და მაშინ არსებობს სიტყვასიტყვით სიტყვით მოუწოდა "default" 1651 01:06:31,290 --> 01:06:34,090 რომ ეფექტურად მოსწონს "სხვაგან" ააშენებს. 1652 01:06:34,090 --> 01:06:36,010 ასე რომ ახალი სინტაქსი, მაგრამ ინტელექტუალურად, 1653 01:06:36,010 --> 01:06:37,060 არაფერი ახალი აქ. 1654 01:06:37,060 --> 01:06:38,280 უბრალოდ მოსწონს Scratch. 1655 01:06:38,280 --> 01:06:41,040 თუ სხვაგან, თუ სხვაგან, თუ სახის ბლოკში. 1656 01:06:41,040 --> 01:06:44,560 >> ასე რომ გადაერთო ვერსია ამ პროგრამის. 1657 01:06:44,560 --> 01:06:46,280 მაგრამ შეამჩნია, რომ ჩვენ ეს გავაკეთეთ ერთად ნომრები აქ. 1658 01:06:46,280 --> 01:06:49,040 ნება მომეცით გახსენით მეორე ვერსია, უბრალოდ რათა ნახოთ 1659 01:06:49,040 --> 01:06:50,670 რაღაც ცოტა უფრო კონკრეტული. 1660 01:06:50,670 --> 01:06:52,840 ასე რომ აქ გვაქვს კლასის ნაცვლად. 1661 01:06:52,840 --> 01:06:55,540 თურმე შეგიძლიათ გამოიყენოთ კონცენტრატორები არ მხოლოდ მთელი რიცხვები, არამედ 1662 01:06:55,540 --> 01:06:56,340 სიმბოლო. 1663 01:06:56,340 --> 01:06:58,930 არა ყველა მონაცემთა ტიპები, მაგრამ ყოველ შემთხვევაში სიმბოლო. 1664 01:06:58,930 --> 01:07:02,670 ასე რომ, ჩვენ შეიძლება რაღაც მოსწონს თუ ღირებულება C რომ 1665 01:07:02,670 --> 01:07:06,230 მომხმარებლის აკრეფილი, შეესაბამება 19, გამოყენებით GetChar ფუნქცია, 1666 01:07:06,230 --> 01:07:09,410 არის კაპიტალური ან მხედრულ, მოდით ინტერპრეტაცია, როგორც კლასის, 1667 01:07:09,410 --> 01:07:11,340 და აცხადებენ, რომ მათ იციან შესანიშნავი კლასის. 1668 01:07:11,340 --> 01:07:14,690 და ქვემოთ გასწვრივ შეცვლა განაცხადი, გვაქვს სხვა 1669 01:07:14,690 --> 01:07:17,950 შემთხვევაში "B" და "C" s, და სხვ. 1670 01:07:17,950 --> 01:07:19,780 მაგრამ მოდით ახლა გარშემო ერთი სხვა რამ. 1671 01:07:19,780 --> 01:07:21,130 ისევ და ისევ, სახის საფრენი მეშვეობით 1672 01:07:21,130 --> 01:07:22,200 ზოგიერთი მაგალითი. 1673 01:07:22,200 --> 01:07:26,990 მაგრამ ეს მართლაც ასეა, რომ ჩვენ შეგვიძლია ერთდროულად მიმართოთ მათ, ახლა - 1674 01:07:26,990 --> 01:07:28,880 ან ნამდვილად, უბრალოდ ვთარგმნით მათ ახლა - 1675 01:07:28,880 --> 01:07:32,220 to C. 1676 01:07:32,220 --> 01:07:33,310 >> ნება მომეცით, წავიდეთ წინ და ამის გაკეთება. 1677 01:07:33,310 --> 01:07:34,830 მე ვაპირებ ქმნის ახალ ფაილს. 1678 01:07:34,830 --> 01:07:39,430 და მე ვაპირებ ამის გაკეთებას მოიცავს . 1679 01:07:39,430 --> 01:07:42,770 და შემდეგ მე ვაპირებ ამის გაკეთებას int ძირითადი (void). 1680 01:07:42,770 --> 01:07:46,390 ნება მომეცით გადარჩენა ამ ფაილის როგორც loop.c. 1681 01:07:46,390 --> 01:07:48,280 მაგალითისათვის. 1682 01:07:48,280 --> 01:07:49,910 და მე ვაპირებ წავიდეთ წინ და ნუ შემდეგ. 1683 01:07:49,910 --> 01:07:54,180 მინდა დაწერა ძალიან რუტინული პროგრამა. 1684 01:07:54,180 --> 01:07:56,170 ასე 10. 1685 01:07:56,170 --> 01:07:58,862 მოდით ეს. 1686 01:07:58,862 --> 01:07:59,320 9. 1687 01:07:59,320 --> 01:08:00,360 ყველა უფლება. 1688 01:08:00,360 --> 01:08:02,120 როგორც კი დაიწყება ამით პროგრამირებაში, თქვენ 1689 01:08:02,120 --> 01:08:03,490 ალბათ აკეთებს რაღაც. 1690 01:08:03,490 --> 01:08:04,950 მაგრამ ჩვენ დავიწყებთ იქ მაინც. 1691 01:08:04,950 --> 01:08:05,430 Oops. 1692 01:08:05,430 --> 01:08:06,950 სწორედ რეალურად არასწორია. 1693 01:08:06,950 --> 01:08:08,230 7. 1694 01:08:08,230 --> 01:08:09,440 6. 1695 01:08:09,440 --> 01:08:10,750 5. 1696 01:08:10,750 --> 01:08:11,200 4. 1697 01:08:11,200 --> 01:08:12,450 არაფერი ხდება მოხდება, როდესაც ჩვენ მისაღებად 0. 1698 01:08:12,450 --> 01:08:13,290 3. 1699 01:08:13,290 --> 01:08:14,590 2. 1700 01:08:14,590 --> 01:08:15,630 1. 1701 01:08:15,630 --> 01:08:16,020 Okay. 1702 01:08:16,020 --> 01:08:17,560 0. 1703 01:08:17,560 --> 01:08:18,689 წაშალე. 1704 01:08:18,689 --> 01:08:19,029 >> ყველა უფლება. 1705 01:08:19,029 --> 01:08:20,029 ასე დაბრუნდნენ 0. 1706 01:08:20,029 --> 01:08:22,010 ასე რომ, ეს პროგრამა აშკარად აპირებს რა ძალიან 1707 01:08:22,010 --> 01:08:23,310 tediously ამტკიცებს, რომ აპირებს. 1708 01:08:23,310 --> 01:08:24,060 იგი აპირებს ბეჭდვა ყველა იმ 1709 01:08:24,060 --> 01:08:25,290 ღირებულებები, ზემოდან უნდა ბოლოში. 1710 01:08:25,290 --> 01:08:27,140 ნება მომეცით გააკეთებს გააკეთოს მარყუჟი. 1711 01:08:27,140 --> 01:08:28,640 ხოლო შემდეგ - whoops. 1712 01:08:28,640 --> 01:08:29,700 ჩადება loop. 1713 01:08:29,700 --> 01:08:31,479 მე ვიყავი არასწორი დირექტორია. 1714 01:08:31,479 --> 01:08:33,300 და ახლა ნება მომეცით აწარმოებს loop. 1715 01:08:33,300 --> 01:08:34,140 შეიყვანეთ. 1716 01:08:34,140 --> 01:08:34,620 Woohoo. 1717 01:08:34,620 --> 01:08:35,270 ძალიან ლამაზი. 1718 01:08:35,270 --> 01:08:36,279 Nice, ხანგრძლივი პროგრამა. 1719 01:08:36,279 --> 01:08:38,109 >> ყველა უფლება, მაგრამ ახლა მოდით ეს უკეთესი. 1720 01:08:38,109 --> 01:08:40,810 ისევე, Scratch, როცა გამოყენება დაიწყო looping 1721 01:08:40,810 --> 01:08:43,149 მშენებლობა, ნაცვლად მხოლოდ კოპირება და pasting ყველა 1722 01:08:43,149 --> 01:08:45,580 თავსატეხი ცალი, მინდა წარმოგიდგინოთ ამ რამ. 1723 01:08:45,580 --> 01:08:48,609 ასე რომ, C, არსებობს სხვადასხვა looping აშენებს, 1724 01:08:48,609 --> 01:08:50,540 რომელთაგან ერთი ასე გამოიყურება. 1725 01:08:50,540 --> 01:08:55,069 "ამისთვის" მარყუჟის აქვს სამი რამ, გამოყოფილი ორი semicolons. 1726 01:08:55,069 --> 01:08:57,770 და მაშინ, შიგნით ორგანო მარყუჟის, ასე ვთქვათ - 1727 01:08:57,770 --> 01:08:59,390 პერსონალის შიგნით Curly braces - 1728 01:08:59,390 --> 01:09:01,010 ჩვენ შეგვიძლია გავაკეთოთ რაღაც ისევ და ისევ. 1729 01:09:01,010 --> 01:09:02,310 მერე რა მე აქ ეკრანზე, ეს 1730 01:09:02,310 --> 01:09:03,300 სიტყვასიტყვით უბრალოდ კომენტარი. 1731 01:09:03,300 --> 01:09:05,380 / / ნიშნავს აქ მოდის კომენტარი. 1732 01:09:05,380 --> 01:09:06,180 ეს არ არის კოდი. 1733 01:09:06,180 --> 01:09:08,890 ეს არის მხოლოდ ინგლისურ აღწერა, ჩემთვის, ადამიანის. 1734 01:09:08,890 --> 01:09:11,300 >> ამიტომ initializations, პირობები, და განახლება. 1735 01:09:11,300 --> 01:09:12,770 ისე, ვნახოთ, თუ როგორ ეს სამუშაოები. 1736 01:09:12,770 --> 01:09:15,520 ეს საშუალებას ჩემთვის გადაწერას ამ პროგრამის შემდეგნაირად. 1737 01:09:15,520 --> 01:09:16,399 იყიდება - 1738 01:09:16,399 --> 01:09:18,029 ამიტომ აქ მოდის ჩემი loop - 1739 01:09:18,029 --> 01:09:19,439 int i - 1740 01:09:19,439 --> 01:09:21,330 აქ მოდის ცვლადში "მე" - 1741 01:09:21,330 --> 01:09:23,140 იღებს ინიციალიზაცია დან 10. 1742 01:09:23,140 --> 01:09:25,260 ასე რომ არსებობს ჩემი ინიციალიზაციისას. 1743 01:09:25,260 --> 01:09:29,450 მინდა ამის გაკეთება მარყუჟი იმდენად რამდენადაც "მე" მეტია ან 1744 01:09:29,450 --> 01:09:30,899 ტოლია 0. 1745 01:09:30,899 --> 01:09:32,880 და თითოეულ iteration ამ მარყუჟის, მინდა 1746 01:09:32,880 --> 01:09:34,979 უნდა შევიდე -. 1747 01:09:34,979 --> 01:09:36,310 ამიტომ, ჩვენ ვნახეთ + + ორშაბათს. 1748 01:09:36,310 --> 01:09:37,660 - არის საპირისპირო. 1749 01:09:37,660 --> 01:09:39,410 ეს decrements ღირებულება 1. 1750 01:09:39,410 --> 01:09:43,319 შიგნით ამ მარყუჟის, მინდა რეალურად რაიმეს. 1751 01:09:43,319 --> 01:09:46,390 ამიტომ მე ვაპირებ ვთქვა რაღაც printf. 1752 01:09:46,390 --> 01:09:48,939 მე არ მინდა ვთქვა, 10 არის, რადგან ეს აშკარად მხოლოდ 1753 01:09:48,939 --> 01:09:50,000 აპირებს ბეჭდვა იგივე ღირებულება. 1754 01:09:50,000 --> 01:09:52,246 რა მინდა ბეჭდვა ნაცვლად, ალბათ? 1755 01:09:52,246 --> 01:09:52,590 Yeah. 1756 01:09:52,590 --> 01:09:55,270 ასე რომ "მე". ასე% d, i. 1757 01:09:55,270 --> 01:09:57,340 >> ამიტომ მე ვაპირებ მოიპაროს ერთი იმ იდეების ადრე - 1758 01:09:57,340 --> 01:09:59,640 ამ ჩანაცვლების ამისთვის ფორმატის კოდები - 1759 01:09:59,640 --> 01:10:01,620 და შემდეგ ქვევით აქ, ბოლოში, მე დაბრუნებას 0, უბრალოდ 1760 01:10:01,620 --> 01:10:02,710 კარგი ღონისძიება. 1761 01:10:02,710 --> 01:10:04,740 მაგრამ ახლა, მე უფრო ლაკონური პროგრამა. 1762 01:10:04,740 --> 01:10:07,490 ეს მხოლოდ რამდენიმე ხაზი, და არა რომელიმე 10 ან 11 ხაზები. 1763 01:10:07,490 --> 01:10:09,440 ნება მომეცით გადასვლა ჩემს სწრაფი ქვემოთ აქ. 1764 01:10:09,440 --> 01:10:10,630 რიმეიკი loop. 1765 01:10:10,630 --> 01:10:12,140 გამეორება loop. 1766 01:10:12,140 --> 01:10:13,570 და ეს, როგორც ჩანს, იგივე. 1767 01:10:13,570 --> 01:10:15,550 ახლა, პროგრამა არ უფრო საინტერესო. 1768 01:10:15,550 --> 01:10:17,180 მაგრამ ახლა შემიძლია აკრიფოთ მსგავსი რამ. 1769 01:10:17,180 --> 01:10:18,970 მე შეგიძლიათ შეცვალოთ ეს დან 100. 1770 01:10:18,970 --> 01:10:21,400 შემიძლია მაშინ recompile ჩემი პროგრამა. 1771 01:10:21,400 --> 01:10:23,360 და მერე შეიძლება ხელახლა აწარმოებს ჩემი პროგრამა. 1772 01:10:23,360 --> 01:10:26,390 და ახლა მიდის სუპერ სწრაფი დღევანდელ კომპიუტერები. 1773 01:10:26,390 --> 01:10:27,820 მაგრამ მე - 1774 01:10:27,820 --> 01:10:29,620 და ფაქტობრივად, ჩემი scrollback ბუფერულ არ 1775 01:10:29,620 --> 01:10:30,890 კი დადიან, რომ შორს. 1776 01:10:30,890 --> 01:10:31,680 იქ ჩვენ წავიდეთ. 1777 01:10:31,680 --> 01:10:34,090 ასე რომ, ჩვენ გვაქვს ყველა 100. 1778 01:10:34,090 --> 01:10:35,880 მაგრამ ადვილი რათა შეცდომები აქ. 1779 01:10:35,880 --> 01:10:37,920 რა იქნება მოსალოდნელი ქცევა თუ 1780 01:10:37,920 --> 01:10:41,150 შემთხვევით ეს? 1781 01:10:41,150 --> 01:10:42,550 ასე რომ იგრძნობა უსასრულო. 1782 01:10:42,550 --> 01:10:44,670 მოდით ვნახოთ, თუ კომპიუტერი იქცევა. 1783 01:10:44,670 --> 01:10:47,020 >> ნება მომეცით, წავიდეთ წინ და მიიღოს loop. 1784 01:10:47,020 --> 01:10:48,355 და მოდით ჩემთან აწარმოებს loop. 1785 01:10:53,590 --> 01:10:55,210 მოდით, დაუბრუნდეს, რომ სულ რაღაც მომენტში. 1786 01:10:55,210 --> 01:10:56,720 ჩვენ ნება, რომ აწარმოებს. 1787 01:10:56,720 --> 01:10:59,520 რადგან მთავარი, რაც უნდა ქონოდა მდე, მინიმალურად? 1788 01:10:59,520 --> 01:11:02,200 ალბათ მინიმუმ 2 მილიარდი, თუ გვაქვს, რომ ბევრი ბიტი, და 1789 01:11:02,200 --> 01:11:03,660 ჩვენ გამოყენებით დადებითი მნიშვნელობები. 1790 01:11:03,660 --> 01:11:04,890 მოდით ხტომა უკან აქ. 1791 01:11:04,890 --> 01:11:07,810 გარდა ამისა, ამგვარი მარყუჟების, ჩვენ გვაქვს რა ეწოდება, ხოლო 1792 01:11:07,810 --> 01:11:09,430 მარყუჟების. ასე რომ, ისევე, როგორც Scratch, გქონდათ სამუდამოდ 1793 01:11:09,430 --> 01:11:11,240 ბლოკები და გქონდათ გაიმეორეთ ბლოკები. 1794 01:11:11,240 --> 01:11:13,270 ანალოგიურად, დო, უბრალოდ აქვს სხვა გზები 1795 01:11:13,270 --> 01:11:14,260 გამოხატვის თავს. 1796 01:11:14,260 --> 01:11:17,110 ასე, რომ თქვენ ეს ცნება, ხოლო loop, რომელიც საშუალებას გაძლევთ 1797 01:11:17,110 --> 01:11:18,860 გამოხატოს თავის პატარა განსხვავებულად. 1798 01:11:18,860 --> 01:11:21,490 და მაშინ აქვს რაღაც მოუწოდა do-ხოლო მარყუჟის, 1799 01:11:21,490 --> 01:11:24,200 რომელიც მოქმედებს ოდნავ განსხვავებულად ისევე. 1800 01:11:24,200 --> 01:11:25,320 და ჩვენ აჯავრებენ ამ გარდა, დროთა განმავლობაში. 1801 01:11:25,320 --> 01:11:28,630 >> მაგრამ მოდით შევხედოთ ამ ბოლო ერთი აქ. 1802 01:11:28,630 --> 01:11:30,160 თუ ჩვენ წასვლას - 1803 01:11:30,160 --> 01:11:31,466 ჯერ კიდევ გაშვებული. 1804 01:11:31,466 --> 01:11:32,770 ეს საკმაოდ უსასრულო. 1805 01:11:32,770 --> 01:11:36,870 ნება მომეცით წასვლას დადებითი, და აჩვენებს როგორ შეგვიძლია რეალურად 1806 01:11:36,870 --> 01:11:39,410 არეგულირებს მომხმარებლის შეყვანის პატარა უფრო ეფექტურად. 1807 01:11:39,410 --> 01:11:40,910 ეს საკმაოდ მოკლე პროგრამა. 1808 01:11:40,910 --> 01:11:43,730 აქ ჩვენ გვაქვს, მთავარ, int n დეკლარაციას. 1809 01:11:43,730 --> 01:11:46,570 ასე რომ მომეცი ცვლადში n. ახლა, მე სიტყვასიტყვით ამბობენ 1810 01:11:46,570 --> 01:11:48,340 "ნუ". და შემდეგ მაქვს ღია Curly 1811 01:11:48,340 --> 01:11:49,630 გაუწიოს, მჭიდრო Curly გაუწიოს. 1812 01:11:49,630 --> 01:11:52,000 და მაშინ შეამჩნევს, შემდეგ, რომ, ის ამბობს, ხოლო n 1813 01:11:52,000 --> 01:11:53,790 ნაკლებია, ვიდრე 1. 1814 01:11:53,790 --> 01:11:55,300 ასე რომ ამ ხაზების - 1815 01:11:55,300 --> 01:11:56,740 19 დან 24 - 1816 01:11:56,740 --> 01:11:59,450 დაკომპლექტებას ერთობლივად do-ხოლო loop. 1817 01:11:59,450 --> 01:12:01,280 ისევ და ისევ, ახალი სინტაქსი, არ ახალი იდეა. 1818 01:12:01,280 --> 01:12:03,740 უბრალოდ სხვა გზა looping, syntactically. 1819 01:12:03,740 --> 01:12:04,890 ასე რომ რას გააკეთებს? 1820 01:12:04,890 --> 01:12:08,000 Do შემდეგი ხოლო N ნაკლებია, ვიდრე 1. 1821 01:12:08,000 --> 01:12:09,080 ასე რომ რა გსურთ? 1822 01:12:09,080 --> 01:12:11,390 მე მოვითხოვ რომ თქვენ მაძლევს დადებითი მთელი რიცხვი. 1823 01:12:11,390 --> 01:12:14,110 მერე რეალურად ცდილობენ მიიღონ მთელი რიცხვი საწყისი მომხმარებელს. 1824 01:12:14,110 --> 01:12:16,740 მაგრამ თვალსაზრისით ბრძანებით ოპერაციების აქ, რადგან 1825 01:12:16,740 --> 01:12:21,850 ხოლო პირობა არის ქვემოთ აქ, მე მაშინ აპირებს შეამოწმოს, არის N 1826 01:12:21,850 --> 01:12:23,100 ნაკლებია, ვიდრე 1? 1827 01:12:23,100 --> 01:12:24,600 ამიტომ ვარაუდობენ, რომ მომხმარებლის - 1828 01:12:24,600 --> 01:12:26,450 შემდეგ მოითხოვა ამ გზით - 1829 01:12:26,450 --> 01:12:29,190 ტიპების ღირებულების 0. 1830 01:12:29,190 --> 01:12:34,510 ეს მდგომარეობა იქნება ჭეშმარიტი ან მცდარი? 1831 01:12:34,510 --> 01:12:35,820 ისე, ეს რეალურად იქნება ჭეშმარიტი. 1832 01:12:35,820 --> 01:12:38,700 რადგან N არის 0 და 0 ნაკლებია, ვიდრე 1. 1833 01:12:38,700 --> 01:12:40,140 რას გვეუბნება, რომ გულისხმობს? 1834 01:12:40,140 --> 01:12:41,160 ამის გაკეთება კიდევ ერთხელ. 1835 01:12:41,160 --> 01:12:41,990 ამის გაკეთება კიდევ ერთხელ. 1836 01:12:41,990 --> 01:12:42,640 ამის გაკეთება კიდევ ერთხელ. 1837 01:12:42,640 --> 01:12:46,080 მხოლოდ ერთხელ, რომ მდგომარეობა აფასებს მცდარია. 1838 01:12:46,080 --> 01:12:47,510 თუ მე აკრიფოთ 42. 1839 01:12:47,510 --> 01:12:49,690 კარგად არა, 42 არის არანაკლებ 1. 1840 01:12:49,690 --> 01:12:52,320 ამიტომ ამ მარყუჟი კეთდება შესრულებაში. 1841 01:12:52,320 --> 01:12:54,650 და ა.შ. ამ დროს, პროგრამის იტყვის, მადლობა 1842 01:12:54,650 --> 01:12:57,530 42, ამ შემთხვევაში. 1843 01:12:57,530 --> 01:13:00,320 არის, რომ თქვენ გაქვთ ამ გზით გამოხატვის თავის - 1844 01:13:00,320 --> 01:13:02,360 ჩვენ არ უნდა დაველოდოთ ამ დასრულება. 1845 01:13:02,360 --> 01:13:03,620 იგი აპირებს გარკვეული დრო დაჭირდეს. 1846 01:13:03,620 --> 01:13:04,990 გაგრძელება იქნება მომავალში, ალბათ. 1847 01:13:04,990 --> 01:13:08,050 >> მაგრამ ახლა, თქვენ გაქვთ უნარი იმედია იმის გაგება 1848 01:13:08,050 --> 01:13:09,060 ცოტა GEEK იუმორი. 1849 01:13:09,060 --> 01:13:11,560 Apologies. 1850 01:13:11,560 --> 01:13:13,620 ეს არ არის წარმომადგენლობითი იუმორის წელს კომპიუტერულ მეცნიერებათა 1851 01:13:13,620 --> 01:13:14,870 მსოფლიოში, მაგრამ ეს cute. 1852 01:13:21,020 --> 01:13:23,890 [იცინის] მოდით დასრულდება, რომ შენიშვნა. 1853 01:13:23,890 --> 01:13:25,750 და ვნახავთ თქვენ ორშაბათს. 1854 01:13:25,750 --> 01:13:31,629 [ტაში]