1 00:00:00,000 --> 00:00:10,920 >> [მუსიკალური სათამაშო] 2 00:00:10,920 --> 00:00:14,680 >> დავით J Malan: ყველა უფლება, მივესალმებით უკან CS50. 3 00:00:14,680 --> 00:00:16,500 ეს არის დაწყების კვირაში ორი. 4 00:00:16,500 --> 00:00:18,940 სიტყვა, ერთი ჩვენი მეგობრებს campus - 5 00:00:18,940 --> 00:00:22,620 თუ თქვენ დაინტერესებული, შესაძლოა, არც ახლა, ხან მომავალში ვადა 6 00:00:22,620 --> 00:00:25,670 მაშინაც კი, კიდევ უფრო კომფორტული, სწავლების საშუალო სკოლის სტუდენტები პატარა 7 00:00:25,670 --> 00:00:27,680 რამე კომპიუტერულ მეცნიერებათა ამის გაკეთება ხელმძღვანელი რომ URL. 8 00:00:27,680 --> 00:00:32,360 ისინი განსაკუთრებით საჭიროება ახლავე of მასწავლებლები, განსაკუთრებით თუ თქვენ გაქვთ 9 00:00:32,360 --> 00:00:34,700 გარკვეული ექსპოზიციის კომპიუტერულ მეცნიერებაში. 10 00:00:34,700 --> 00:00:38,060 >> ასე რომ გავიხსენოთ, რომ ბოლო დროს, ჩვენ გააცნო რამდენიმე მონაცემთა ტიპები ამ C, და 11 00:00:38,060 --> 00:00:40,590 თქვენ შეიძლება არ დაიწყო თქვენი ხელში ბინძური, ამ დღემდე 12 00:00:40,590 --> 00:00:41,940 ამ პრობლემის მითითებული ერთი. 13 00:00:41,940 --> 00:00:43,230 და ჩვენ გვქონდა char. 14 00:00:43,230 --> 00:00:49,100 ასე რომ, გარკვეულწილად ტექნიკური თვალსაზრისით, რა არის char როგორც იცით დღეს? 15 00:00:49,100 --> 00:00:51,050 >> ასე რომ, ხასიათის, მაგრამ უფრო სწორედ ახლა. 16 00:00:51,050 --> 00:00:53,735 რას ნიშნავს ხასიათი ან ინდივიდუალური char? 17 00:00:53,735 --> 00:00:56,700 18 00:00:56,700 --> 00:00:59,500 არასამთავრობო რიცხვითი ხასიათი - 19 00:00:59,500 --> 00:01:00,670 ასე რომ არ არის აუცილებელი. 20 00:01:00,670 --> 00:01:04,580 გამოდის, რომ მაშინაც კი, ნომრები, მაშინაც კი, პუნქტუაციის და ასო 21 00:01:04,580 --> 00:01:06,980 წარმოდგენილი ამ მონაცემთა აკრიფოთ ცნობილია როგორც char. 22 00:01:06,980 --> 00:01:09,440 ასე რომ, ეს არ არის აუცილებელი ანბანურ. 23 00:01:09,440 --> 00:01:11,100 ჰო? 24 00:01:11,100 --> 00:01:12,275 >> ასე რომ, ეს ASCII ხასიათი. 25 00:01:12,275 --> 00:01:15,510 ასე რომ, თუ თქვენ ფიქრობთ, დაბრუნდა კვირის ნულოვანი, როდესაც ჩვენ გვქონდა ჩვენი byte მოხალისეთა 26 00:01:15,510 --> 00:01:19,150 ამუშავება და არც გამართავს ხელში up თუ არა, მათ წარმოდგენილია ბიტი. 27 00:01:19,150 --> 00:01:22,450 თუმცა ერთობლივად, როგორც ჯგუფის რვა, ისინი წარმოდგენილია byte. 28 00:01:22,450 --> 00:01:26,030 და ჩვენ გააცნო ცნება ASCII იმ ლექცია, რომელიც უბრალოდ არის 29 00:01:26,030 --> 00:01:28,170 რუკების შორის ნომრები და წერილები. 30 00:01:28,170 --> 00:01:32,010 და ASCII მიზნებისათვის, როგორც იმ ადამიანებს ნაგულისხმევი, რვა ბიტი 31 00:01:32,010 --> 00:01:33,660 წარმოადგენს ხასიათი. 32 00:01:33,660 --> 00:01:36,890 >> ასე რომ, შესაბამისად, თუ რვა ბიტი შეიძლება თითოეული მიიღებს ერთი ორი ფასეულობების - 33 00:01:36,890 --> 00:01:38,010 ნულოვანი ან ერთი - 34 00:01:38,010 --> 00:01:40,280 უნდა ნიშნავდეს ეს იყო ორი შესაძლებლობები ეს პირი - 35 00:01:40,280 --> 00:01:41,230 ნულოვანი ან ერთი - 36 00:01:41,230 --> 00:01:44,070 ორი ამ ადამიანს, ორი, ამ პირი, ორი ეს ერთი. 37 00:01:44,070 --> 00:01:47,450 ასე რომ, სულ ორჯერ ორჯერ ორჯერ ორჯერ ორ - 38 00:01:47,450 --> 00:01:49,700 ასე ორი მერვე შეადგენს. 39 00:01:49,700 --> 00:01:54,320 ასე რომ საერთო რაოდენობის გმირები 256 შესაძლებელია, რომ თქვენ 40 00:01:54,320 --> 00:01:55,750 წარმოადგენს რვა ბიტი. 41 00:01:55,750 --> 00:01:59,210 >> ახლა, ვინც საუბრობენ აზიური ენებზე ალბათ იცით, რომ არსებობს უფრო 42 00:01:59,210 --> 00:02:02,620 გმირები მსოფლიოში, ვიდრე უბრალოდ როგორც და Bs და Cs და Ds. 43 00:02:02,620 --> 00:02:06,130 მართლაც, ASCII არ საკმარისია ბევრი ენების მსოფლიოში. 44 00:02:06,130 --> 00:02:07,760 თუმცა ხმა ამაზე სხვა დროს. 45 00:02:07,760 --> 00:02:11,240 ახლა ვიცი, რომ C, თუ გინდათ წარმოადგინოს წერილი, ნაწილი 46 00:02:11,240 --> 00:02:15,780 პუნქტუაციის, ან უბრალოდ რაღაც ხასიათი ბუნებაში, ჩვენ ვიყენებთ char. 47 00:02:15,780 --> 00:02:18,240 და ეს ერთი byte ან რვა ბიტი. 48 00:02:18,240 --> 00:02:19,690 >> როგორ შესახებ int? 49 00:02:19,690 --> 00:02:20,780 ისე, int არის მთელი რიცხვი. 50 00:02:20,780 --> 00:02:23,175 რამდენი ბიტი, თუ გავიხსენებთ, იყო მთელი, როგორც წესი? 51 00:02:23,175 --> 00:02:25,930 52 00:02:25,930 --> 00:02:27,512 ნებისმიერ მსურველს გაწვევას? 53 00:02:27,512 --> 00:02:29,600 ასე რომ, როგორც წესი, 32. 54 00:02:29,600 --> 00:02:32,120 ეს რეალურად დამოკიდებულია კომპიუტერის რომ თქვენ იყენებთ. 55 00:02:32,120 --> 00:02:35,770 მაგრამ მოწყობილობების, და ბევრი კომპიუტერების, ეს 32 ბიტი ან ოთხი 56 00:02:35,770 --> 00:02:37,140 bytes - რვაჯერ ოთხი. 57 00:02:37,140 --> 00:02:39,790 და ints მხოლოდ გამოიყენება შენახვის ნომრები, ან უარყოფითი, 58 00:02:39,790 --> 00:02:41,610 დადებითი, ან საერთოდ ნულოვანი. 59 00:02:41,610 --> 00:02:45,250 >> და თუ თქვენ გაქვთ 32 ბიტი და მხოლოდ ზრუნავს დადებითი ციფრები, შეიძლება 60 00:02:45,250 --> 00:02:48,960 ვინმეს ballpark რამდენი შესაძლებელი რიცხვებით კომპიუტერული შეუძლიათ ეხლა 61 00:02:48,960 --> 00:02:51,820 ნულოვანი მდე? 62 00:02:51,820 --> 00:02:56,130 ასე რომ, ეს იქნება ორი 32, რომელიც დაახლოებით ოთხი მილიარდი. 63 00:02:56,130 --> 00:02:59,720 ასე რომ, ეს უფლებამოსილება ორი იქნება განმეორებითი თემებზე კომპიუტერული მეცნიერება. 64 00:02:59,720 --> 00:03:03,930 როგორც ჩვენ დავინახავთ, ისინი საკმაოდ მოსახერხებელია ვიმუშაოთ შემთხვევაშიც კი, თუ ეს არ არის საკმაოდ 65 00:03:03,930 --> 00:03:05,790 ადვილია მათემატიკის ერთ თავი. 66 00:03:05,790 --> 00:03:07,000 >> ასე რომ, ჩვენ ვთქვა უხეშად ოთხი მილიარდი. 67 00:03:07,000 --> 00:03:08,620 ახლა, ხანგრძლივი ხანგრძლივი - 68 00:03:08,620 --> 00:03:09,770 შეგიძლიათ სახის ვხვდები. 69 00:03:09,770 --> 00:03:10,480 ეს უფრო მეტია, ვიდრე int. 70 00:03:10,480 --> 00:03:12,440 რამდენი ბიტი? 71 00:03:12,440 --> 00:03:14,250 ასე რომ, 64 ბიტი ან რვა ბაიტს. 72 00:03:14,250 --> 00:03:17,480 ეს უბრალოდ ნიშნავს, თქვენ შეგიძლიათ წარმოადგენს კი უფრო დიდი ციფრები, უპირველესად, დადებითი ან 73 00:03:17,480 --> 00:03:19,160 უფრო დიდი უარყოფითი ნომრები. 74 00:03:19,160 --> 00:03:20,060 >> და რა float? 75 00:03:20,060 --> 00:03:22,260 ეს არის ის, მცურავი წერტილი ღირებულება 32 ბიტი. 76 00:03:22,260 --> 00:03:25,180 ეს არის მხოლოდ რეალური რაოდენობა, რაღაც ერთად ათობითი წერტილი. 77 00:03:25,180 --> 00:03:30,100 მაგრამ თუ თქვენ ნაცვლად მეტი ადგილები მას შემდეგ ათობითი წერტილი ან გსურთ 78 00:03:30,100 --> 00:03:33,720 წარმოადგენს უფრო დიდი რაოდენობის რამდენიმე ფრაქცია მას შემდეგ, შეგიძლიათ გამოიყენოთ 79 00:03:33,720 --> 00:03:36,260 ორმაგი, რომელიც 64 ბიტი. 80 00:03:36,260 --> 00:03:38,240 >> მაგრამ არსებობს საინტერესო takeaway აქ. 81 00:03:38,240 --> 00:03:42,890 ასე რომ, თუ ints შეზღუდულია 32 ბიტი და მაშინაც კი, ხანგრძლივი longs შემოიფარგლება მიერ 64 82 00:03:42,890 --> 00:03:46,180 bits, რომ ერთგვარი სთხოვს კითხვაზე, რა მოხდება, თუ თქვენ ნამდვილად გინდათ ითვლიან 83 00:03:46,180 --> 00:03:48,790 მაღალია, ვიდრე 4 მილიარდი int? 84 00:03:48,790 --> 00:03:50,330 ისე, უბრალოდ გამოიყენოთ ხანგრძლივი ხანგრძლივი. 85 00:03:50,330 --> 00:03:54,200 მაგრამ რა, თუ გსურთ ითვლიან უმაღლესი ვიდრე ორი 64, მისცეს ან? 86 00:03:54,200 --> 00:03:55,810 >> ახლა, რომ ის დიდი რაოდენობით. 87 00:03:55,810 --> 00:03:59,250 თუმცა, საბოლოოდ, შეიძლება რეალურად აინტერესებს ასეთი ღირებულებები, 88 00:03:59,250 --> 00:04:03,070 მით უმეტეს, თუ თქვენ იყენებთ მონაცემთა ბაზა და დაწყებული შეგროვება უამრავი და უამრავი 89 00:04:03,070 --> 00:04:06,190 და უამრავი მონაცემები და იმის უნიკალური ციფრები, ყოველი ნაჭერი რომ მონაცემები. 90 00:04:06,190 --> 00:04:07,430 ასე რომ, ჩვენ ასეთი აქვს პრობლემა. 91 00:04:07,430 --> 00:04:10,700 და ანალოგიურად, ერთად მცურავი წერტილი ღირებულებები - მოძრავი ან ორადგილიანი - 92 00:04:10,700 --> 00:04:14,290 თუ თქვენ მხოლოდ მიიღო სასრულ ნომერი ბიტი, რამდენი საერთო ციფრები შეიძლება თქვენც 93 00:04:14,290 --> 00:04:16,980 შესაძლოა წარმოადგენს? 94 00:04:16,980 --> 00:04:19,540 >> ისე, ეს უფრო ბუნდოვანია, როდესაც თქვენ ჩართვა ათობითი წერტილი. 95 00:04:19,540 --> 00:04:20,899 მაგრამ ეს აუცილებლად სასრული. 96 00:04:20,899 --> 00:04:24,390 თუ თქვენ გაქვთ სასრულ რაოდენობის ბიტი, სასრულ რაოდენობის ადამიანები, სასრულ 97 00:04:24,390 --> 00:04:27,350 რიგი ნათურები, აუცილებლად თქვენ მხოლოდ წარმოადგენენ სასრულ ნომერი 98 00:04:27,350 --> 00:04:28,510 მცურავი პუნქტიანი ღირებულებებს. 99 00:04:28,510 --> 00:04:33,170 მაგრამ რამდენი რეალური ნომრები მათი მსოფლიოში? 100 00:04:33,170 --> 00:04:33,680 აქ არის უსასრულო. 101 00:04:33,680 --> 00:04:37,280 ასე რომ, ასეთი პრობლემა, რადგან ჩვენ არ გვაქვს უსასრულო რაოდენობის 102 00:04:37,280 --> 00:04:39,970 მეხსიერების ან RAM შიგნით ჩვენი კომპიუტერი. 103 00:04:39,970 --> 00:04:41,780 ასე რომ ზოგიერთი რთული რამ შეიძლება მოხდეს. 104 00:04:41,780 --> 00:04:43,900 >> მოდით წავიდეთ წინ და ცდილობენ , გამოხატოს ამ აქ. 105 00:04:43,900 --> 00:04:46,240 ნება მომეცით წავიდეთ წინ და ქმნის gedit. 106 00:04:46,240 --> 00:04:50,360 მე ვაპირებ წავიდეთ წინ და გადარჩენა ფაილი სახელწოდებით "floats0.c" უბრალოდ უნდა იყოს 107 00:04:50,360 --> 00:04:54,630 შეესაბამება მაგალითია იმისა, რომ არის ხელმისაწვდომი, თუ გსურთ. 108 00:04:54,630 --> 00:04:58,080 და მე ვაპირებ წავიდეთ წინ და განისაზღვროს შემდეგი რედაქციით - 109 00:04:58,080 --> 00:05:01,540 მე ვაპირებ წავიდეთ წინ და აცხადებენ, int მთავარი ბათილად, როგორც ჩვენ ხშირად. 110 00:05:01,540 --> 00:05:07,190 >> და მაშინ ამ პროგრამის, მე ვაპირებ ვაცხადებ თავს float, ამიტომ 32-bit 111 00:05:07,190 --> 00:05:09,700 ცვლადში ვ, თვითნებურად. 112 00:05:09,700 --> 00:05:13,910 და მაშინ მე ვაპირებ შესანახად მასში მე არ ვიცი, ერთი მეათე, ასე 0.1. 113 00:05:13,910 --> 00:05:16,590 ამიტომ, მე ვაპირებ, რომ გამოხატოს, რომ როგორც ერთი იყოფა 10, რაც სავსებით 114 00:05:16,590 --> 00:05:17,790 ლეგიტიმური in C. 115 00:05:17,790 --> 00:05:20,460 >> და მერე მეორე ხაზი, უბრალოდ გვინდა ბეჭდვა, რომ მნიშვნელობა. 116 00:05:20,460 --> 00:05:22,950 ასე რომ გავიხსენოთ, რომ ჩვენ შეგვიძლია გამოვიყენოთ ნაცნობი printf. 117 00:05:22,950 --> 00:05:25,420 ჩვენ არ გვინდა გამოვიყენოთ% i for int. 118 00:05:25,420 --> 00:05:28,360 ჩვენ გვინდა გამოვიყენოთ% ვ for float. 119 00:05:28,360 --> 00:05:33,080 და მაშინ მე ვაპირებ გაკეთებას წარმატებული ნ ახლო გაცემა, მძიმე, F, მძიმით. 120 00:05:33,080 --> 00:05:34,400 >> ასე რომ, აქ არის ჩემი პროგრამა. 121 00:05:34,400 --> 00:05:35,820 აქ უკვე ერთი შეცდომა. 122 00:05:35,820 --> 00:05:38,640 არა ვინმე, ვისაც ეს დაწკაპავთ უკვე მინდა აღვნიშნო, სულ მცირე, 123 00:05:38,640 --> 00:05:40,220 ერთი bug მე გააკეთა? 124 00:05:40,220 --> 00:05:42,470 ჰო? 125 00:05:42,470 --> 00:05:42,800 ჰო. 126 00:05:42,800 --> 00:05:47,860 დამავიწყდა "# მოიცავს" at დასაწყისში, მათ სიმპტომია რომელიც, თუ ვცდილობ 127 00:05:47,860 --> 00:05:50,490 შეადგინოს ეს იქნება, რომ შემდგენელი აპირებს დაწეროთ at me, 128 00:05:50,490 --> 00:05:52,770 ამბობდა გაურკვეველ სიმბოლო ან რაღაც რომ ეფექტი. 129 00:05:52,770 --> 00:05:55,360 ეს არ მესმის, რაღაც მინდა printf. 130 00:05:55,360 --> 00:05:59,380 >> ამიტომ, მე ვაპირებ ამის გაკეთება "# მოიცავს "შენახვა ფაილი. 131 00:05:59,380 --> 00:06:00,400 და ახლა უკეთეს ფორმაში. 132 00:06:00,400 --> 00:06:02,690 მაგრამ მე ასევე ვაპირებ ერთი ახალი დეტალი დღეს. 133 00:06:02,690 --> 00:06:08,620 გარდა ამისა, მიუთითებს ადგილი მფლობელები, როგორიც% ვ% i% s, შეგიძლიათ 134 00:06:08,620 --> 00:06:12,320 ზოგჯერ გავლენას ახდენს ქცევის იმ placeholder. 135 00:06:12,320 --> 00:06:15,540 მაგალითად, იმ შემთხვევაში, მცურავი წერტილი ღირებულება, თუ სურს 136 00:06:15,540 --> 00:06:22,200 არიან ერთი ათობითი შემდეგ პერიოდში, შემიძლია რეალურად გააკეთებს 0.1f. 137 00:06:22,200 --> 00:06:26,830 ასე რომ, სხვა სიტყვებით, მე გამოყოფა ვ და პროცენტი ნიშანი ერთად 0.1, უბრალოდ 138 00:06:26,830 --> 00:06:30,200 ვეუბნებოდი printf, ალბათ მთელი რამოდენიმე ნომრები შემდეგ ათობითი 139 00:06:30,200 --> 00:06:30,930 აღვნიშნო ჩემთვის. 140 00:06:30,930 --> 00:06:32,870 მაგრამ მე მხოლოდ გვინდა, რომ ერთი მათგანი. 141 00:06:32,870 --> 00:06:36,280 >> ამიტომ, მე ვაპირებ წავიდეთ წინ ახლა და გადარჩენა ამ პროგრამის წასვლას ჩემს ტერმინალში 142 00:06:36,280 --> 00:06:41,870 ფანჯარა, და მე ვაპირებ წავიდეთ წინ და ტიპის მიიღოს float 0, შევა. 143 00:06:41,870 --> 00:06:44,930 მე ვხედავ, რომ გარკვეულწილად cryptic ხაზი, რომელიც დაიწყება, რათა უფრო გრძნობა, როგორც ჩვენ 144 00:06:44,930 --> 00:06:46,900 tease ის გარდა ამ კვირაში და შემდეგ. 145 00:06:46,900 --> 00:06:50,480 ახლა მე ვაპირებ წავიდეთ წინ და აწარმოებს float ნულოვანი. 146 00:06:50,480 --> 00:06:52,020 ხოლო, რა. 147 00:06:52,020 --> 00:06:54,880 >> ასე რომ, კიდევ ერთი bug აქ რაიმე მიზეზით. 148 00:06:54,880 --> 00:07:02,490 მე პირადად დარწმუნებული ვარ, რომ ერთ მეათე, ან ერთი იყოფა 10, არ არის 0.0. 149 00:07:02,490 --> 00:07:04,590 იქნებ მე მხოლოდ არ ეძებს ერთი საკმარისი ციფრები. 150 00:07:04,590 --> 00:07:08,580 რატომ არ ვამბობ, რომ ორი .2 სანახავად ორი თანრიგს ნაცვლად მხოლოდ ერთი. 151 00:07:08,580 --> 00:07:11,810 ნება მომეცით დაბრუნდეს ჩემი ტერმინალში ფანჯარა აქ და მოხვდა up რამოდენიმე ჯერ 152 00:07:11,810 --> 00:07:12,840 ვხედავ ჩემი ისტორია. 153 00:07:12,840 --> 00:07:15,910 ნუ მიიღოს float ნულოვანი ერთხელ, და შემდეგ კვლავ. 154 00:07:15,910 --> 00:07:17,730 ახლა კი შევა. 155 00:07:17,730 --> 00:07:20,000 >> ახლა კი დარწმუნებული ვარ ეს არასწორია. 156 00:07:20,000 --> 00:07:23,030 და მე ვერ გააკეთებს სამი და ოთხი და მე ალბათ აპირებს შეინარჩუნოს ხედავს zeros. 157 00:07:23,030 --> 00:07:24,880 ასე რომ, სად არის bug? 158 00:07:24,880 --> 00:07:27,910 ერთი იყოფა 10 უნდა იყოს 0.1. 159 00:07:27,910 --> 00:07:30,310 საყვარელი სურთ stab რა ფუნდამენტური საკითხი არის? 160 00:07:30,310 --> 00:07:32,400 ჰო? 161 00:07:32,400 --> 00:07:33,420 ისინი ორივე რიცხვებით. 162 00:07:33,420 --> 00:07:33,920 მერე რა? 163 00:07:33,920 --> 00:07:37,820 ასე რომ, ერთი იყოფა 10 ეს არის ის, რა გავაკეთო არითმეტიკული. 164 00:07:37,820 --> 00:07:41,185 და მე 0.1. 165 00:07:41,185 --> 00:07:41,660 >> ჰო. 166 00:07:41,660 --> 00:07:43,240 ასე რომ, ეს მართლაც რომ ამ საკითხთან დაკავშირებით. 167 00:07:43,240 --> 00:07:46,700 როდესაც შენ მთელი ამ კომპიუტერს და თქვენ ყოფს მას კიდევ ერთი რიცხვი, 168 00:07:46,700 --> 00:07:50,430 კომპიუტერული ჩვეულებრივ აპირებს ვივარაუდოთ, რომ გსურთ რიცხვი. 169 00:07:50,430 --> 00:07:54,620 პრობლემა იმისა, რა თქმა უნდა, რომ 0.1 არ არის მთელი რიცხვი. 170 00:07:54,620 --> 00:07:55,680 ეს რეალური რაოდენობა. 171 00:07:55,680 --> 00:07:59,610 ასე რომ, ის, რაც კომპიუტერში აკეთებს მიერ საწყისად უბრალოდ აგდებს მოშორებით 172 00:07:59,610 --> 00:08:01,070 ყველაფერი მას შემდეგ ათობითი წერტილი. 173 00:08:01,070 --> 00:08:03,380 ეს არ მრგვალ ქვემოთ ან თავისთავად. 174 00:08:03,380 --> 00:08:06,480 უბრალოდ აგდებს მოშორებით ყველაფერი მას შემდეგ ათობითი წერტილი. 175 00:08:06,480 --> 00:08:07,430 ახლა კი, რომ აზრი. 176 00:08:07,430 --> 00:08:09,740 იმის გამო, რომ ახლა ჩვენ ნათლად დარჩა ნულოვანი. 177 00:08:09,740 --> 00:08:10,250 >> მაგრამ დაველოდოთ წუთში. 178 00:08:10,250 --> 00:08:11,840 მე არ ხედავს int ნულოვანი. 179 00:08:11,840 --> 00:08:14,910 მე რეალურად ხედავს 0.00. 180 00:08:14,910 --> 00:08:16,340 ასე რომ, როგორ შემიძლია შერიგება ეს ახლა მოხდეს? 181 00:08:16,340 --> 00:08:22,850 თუ ერთი იყოფა 10 ნულის ტოლია, მაგრამ მე ხედავს, 0.00, სადაც ის მისაღებად 182 00:08:22,850 --> 00:08:24,250 მოაქცია უკან რეალური რაოდენობა? 183 00:08:24,250 --> 00:08:25,500 ჰო. 184 00:08:25,500 --> 00:08:29,850 185 00:08:29,850 --> 00:08:30,630 ზუსტად. 186 00:08:30,630 --> 00:08:35,600 >> ასე რომ, აქ შეესაბამება ხუთი, როდესაც მე რეალურად შესანახად, რომ 0.1, რომელიც შემდგომ 187 00:08:35,600 --> 00:08:39,549 truncated ნულის, შიგნით float, ეს არის ის ეფექტურად ექვივალენტურია 188 00:08:39,549 --> 00:08:42,100 შენახვის არა როგორც int, მაგრამ, მართლაც, როგორც float. 189 00:08:42,100 --> 00:08:46,540 უფრო მეტიც, მე მაშინ გამოყენებით printf to მკაფიოდ ბეჭდვა, რომ ნომერი ორი 190 00:08:46,540 --> 00:08:49,740 თანრიგს მიუხედავად იმისა, შესაძლოა, რეალურად არ იყოს. 191 00:08:49,740 --> 00:08:51,020 >> ასე რომ, ამ სახის sucks, არა? 192 00:08:51,020 --> 00:08:53,640 როგორც ჩანს თქვენ არ შეუძლია მათემატიკის, მინიმუმ ამ დონის 193 00:08:53,640 --> 00:08:55,600 სიზუსტით, შემდეგ კომპიუტერში. 194 00:08:55,600 --> 00:08:56,930 მაგრამ ნამდვილად არსებობს გამოსავალი. 195 00:08:56,930 --> 00:09:00,410 რა არის მარტივი გადავწყვიტოთ შეგვეძლო იქნებ ამის გაკეთება, თუნდაც მხოლოდ ინტუიციურად აქ 196 00:09:00,410 --> 00:09:01,130 მოსაგვარებლად? 197 00:09:01,130 --> 00:09:02,380 ჰო? 198 00:09:02,380 --> 00:09:04,700 199 00:09:04,700 --> 00:09:06,574 ჩართეთ რიცხვებით შევიდა - 200 00:09:06,574 --> 00:09:06,976 ჰო. 201 00:09:06,976 --> 00:09:10,420 მაშინაც კი, თუ მე არ ვარ სრულიად დარწმუნებულია რა სინამდვილეში აქ, თუ იგი 202 00:09:10,420 --> 00:09:13,440 ძირეულად უნდა გააკეთოს, ამ ორივე როგორც ints, ასევე, რატომ არ 203 00:09:13,440 --> 00:09:18,230 გააკეთოს, რომ 10.0, რაც ამ 1.0, resave ფაილი. 204 00:09:18,230 --> 00:09:20,990 ნება მომეცით დაბრუნდეს ქვემოთ ბოლოში და recompile. 205 00:09:20,990 --> 00:09:23,030 ნება მიბოძეთ ახლა გამეორება. 206 00:09:23,030 --> 00:09:23,420 და აი - 207 00:09:23,420 --> 00:09:27,690 ახლა, მე მივიღე ჩემი მეათედი წარმოდგენილია როგორც 0.10. 208 00:09:27,690 --> 00:09:28,420 >> ყველა უფლება. 209 00:09:28,420 --> 00:09:29,220 ასე რომ, ეს არ არის ცუდი. 210 00:09:29,220 --> 00:09:31,730 და ნება მომეცით აღვნიშნო, კიდევ ერთი გზა ჩვენ შეგვეძლო გადაწყდება ეს. 211 00:09:31,730 --> 00:09:35,580 ნება მომეცით, ფაქტობრივად, გააფართოვოს უკან დრო როდის გვქონდა, როგორც ერთი 212 00:09:35,580 --> 00:09:36,680 მეათე მომენტში წინ. 213 00:09:36,680 --> 00:09:40,800 და ნება მომეცით წავიდეთ წინ და resave ეს ფაილი როგორც სხვადასხვა ფაილის სახელი, მხოლოდ 214 00:09:40,800 --> 00:09:41,750 ცოტა საგუშაგოს. 215 00:09:41,750 --> 00:09:43,450 ასე რომ, ეს იყო მობილური ერთი. 216 00:09:43,450 --> 00:09:45,520 ახლა კი ნება მომეცით წავიდეთ წინ და გავაკეთოთ კიდევ ერთი ვერსია. 217 00:09:45,520 --> 00:09:48,540 ჩვენ ამას დავარქმევთ მობილური ორი ნულოვანი ინდექსირებული. 218 00:09:48,540 --> 00:09:51,280 >> და მე ვაპირებ, რომ ამის სანაცვლოდ გააკეთებს ამ - იცით რა? 219 00:09:51,280 --> 00:09:54,400 დამატება dot ნულოვანი მუშაობს ამ შემთხვევაში. 220 00:09:54,400 --> 00:09:56,060 თუმცა ვარაუდობენ, ერთი იყო განსხვავებულია. 221 00:09:56,060 --> 00:09:57,680 სავარაუდოდ 10 იყო განსხვავებულია. 222 00:09:57,680 --> 00:10:00,680 სხვა სიტყვებით, ვივარაუდოთ, რომ მე ვერ მხოლოდ მყარი კოდი .0 დასასრულს 223 00:10:00,680 --> 00:10:02,340 ამ არითმეტიკული გამოსახულება. 224 00:10:02,340 --> 00:10:05,820 ისე, მე შეიძლება რეალურად რომ რამე ფრჩხილებში მოუწოდა აძლევენ. 225 00:10:05,820 --> 00:10:11,920 შემიძლია მიცემული, რომ მთელი 10 float, და შემიძლია მიცემული, რომ მთელი ერთი 226 00:10:11,920 --> 00:10:12,800 float, ასევე. 227 00:10:12,800 --> 00:10:17,190 მაშინ მათემატიკის რომ აპირებს გასაკეთებელი ეფექტურად 1.0 იყოფა 10.0, 228 00:10:17,190 --> 00:10:19,250 შედეგია, რომელიც მიდის ფა, როგორც ადრე. 229 00:10:19,250 --> 00:10:26,130 ასე რომ, თუ მე recompile ეს გააკეთოს მოძრავი 2 და ახლა floats 2, მე იგივე 230 00:10:26,130 --> 00:10:27,020 პასუხის გაცემა, ასევე. 231 00:10:27,020 --> 00:10:29,640 >> ასე რომ, ეს საკმაოდ contrived მაგალითად, ამ პრობლემის მოგვარებას 232 00:10:29,640 --> 00:10:31,400 შემოღება გააპროტესტეს. 233 00:10:31,400 --> 00:10:34,410 მაგრამ ზოგადად, ჩამოსხმის იქნება ძლიერი რამ, განსაკუთრებით 234 00:10:34,410 --> 00:10:38,180 პრობლემა მითითებული ორი კვირის შემდეგ, როდესაც თქვენ აკონვერტირებთ ერთი მონაცემების ტიპის 235 00:10:38,180 --> 00:10:41,800 კიდევ ერთი, რომ დღის ბოლოს წარმოდგენილნი არიან ანალოგიურად. 236 00:10:41,800 --> 00:10:44,970 შეხვედრის დასასრულს დღეს, თითოეული რამ ჩვენ ვისაუბრეთ დღემდე არის 237 00:10:44,970 --> 00:10:46,710 უბრალოდ ints ქვეშ hood. 238 00:10:46,710 --> 00:10:48,950 ან თუ რა დაბალი დონე თქვენ, ისინი უბრალოდ ნომრები 239 00:10:48,950 --> 00:10:49,750 ქვეშ Hood. 240 00:10:49,750 --> 00:10:52,850 მაშინაც კი, პერსონაჟი, კიდევ ერთხელ იხსენებენ ეხლა კვირას ნულოვანი, არის ციფრები 241 00:10:52,850 --> 00:10:53,990 ქვეშ Hood. 242 00:10:53,990 --> 00:10:57,240 >> რომელი ვთქვა, ჩვენ შეგვიძლია გარდაქმნას შორის სხვადასხვა ტიპის ნომრები, თუ 243 00:10:57,240 --> 00:10:58,060 ისინი უბრალოდ ბიტი. 244 00:10:58,060 --> 00:11:01,020 ჩვენ შეგვიძლია გარდაქმნას შორის ნომრები და წერილები, თუ ისინი უბრალოდ 245 00:11:01,020 --> 00:11:02,580 bits, და პირიქით. 246 00:11:02,580 --> 00:11:07,170 და აძლევენ ამ გზით მექანიზმი პროგრამირებაში რომ გაძლევთ იძულებით 247 00:11:07,170 --> 00:11:10,970 შეიცვლება ერთი ტიპის მონაცემის სხვა. 248 00:11:10,970 --> 00:11:14,570 სამწუხაროდ, ეს არ არის, როგორც პირდაპირი, როგორც მე შეიძლება არ მომეწონა. 249 00:11:14,570 --> 00:11:19,220 >> მე ვაპირებ წასვლა ისევ მოძრავი 1, რომელიც უფრო მარტივი, უფრო 250 00:11:19,220 --> 00:11:22,830 პირდაპირი ერთი .0 დამატებები ყოველი. 251 00:11:22,830 --> 00:11:25,260 და როგორც სწრაფი refresher, ნება მომეცით წავიდეთ წინ და recompile 252 00:11:25,260 --> 00:11:27,670 ამ გააკეთოს მოძრავი 2 - 253 00:11:27,670 --> 00:11:30,300 ვწუხვარ, რომ ეს არის მიიღოს მოძრავი 1. 254 00:11:30,300 --> 00:11:32,050 ახლა კი მოდით აწარმოებს მოძრავი 1. 255 00:11:32,050 --> 00:11:34,810 ხოლო ბოლოში, შეამჩნია რომ მე ნამდვილად მისაღებად 0.1. 256 00:11:34,810 --> 00:11:36,165 ასე რომ, პრობლემა მოგვარდება. 257 00:11:36,165 --> 00:11:37,280 >> მაგრამ ჯერ არ არის. 258 00:11:37,280 --> 00:11:40,000 მე ახლა ვაპირებ ცოტა უცნაურ, და მე ვაპირებ დაბრუნდეს ჩემს 259 00:11:40,000 --> 00:11:41,620 printf განცხადება და აცხადებენ, იცით რა? 260 00:11:41,620 --> 00:11:44,090 მინდა დავადასტურო, რომ ამ მართლაც მეათედი. 261 00:11:44,090 --> 00:11:47,890 და მე ვაპირებ გვინდა, რომ ამ to, ვთქვათ, ხუთი ათობითი ადგილებში. 262 00:11:47,890 --> 00:11:48,570 ეს არ არის პრობლემა. 263 00:11:48,570 --> 00:11:52,020 შევცვალო ორიდან ხუთ, მე recompile ერთად მიიღოს. 264 00:11:52,020 --> 00:11:53,770 I გამეორება იქნება, როგორც floats 1. 265 00:11:53,770 --> 00:11:54,990 ვეძებთ საკმაოდ კარგი. 266 00:11:54,990 --> 00:11:58,570 ჩემი საღი აზრის ამოწმებს შეიძლება დასრულდეს, მაგრამ მე მისაღებად უფრო თამამი. 267 00:11:58,570 --> 00:12:00,330 მე ვაპირებ, რომ შეიცვალოს 0.5-დან 0.10. 268 00:12:00,330 --> 00:12:03,440 მსურს, რომ 10 ნიშნა შემდეგ ათობითი ადგილი. 269 00:12:03,440 --> 00:12:09,060 >> და მე ვაპირებ წავიდეთ წინ და recompile ამ და გამეორება floats 1. 270 00:12:09,060 --> 00:12:13,060 I ტიპის სინანული რომელმაც ტესტირება ამ შემდგომი იმიტომ, რომ ჩემი მათემატიკის ასე არ არის 271 00:12:13,060 --> 00:12:14,320 გამოსწორებას აღარ ჩანს. 272 00:12:14,320 --> 00:12:15,630 მაგრამ დაველოდოთ ერთი წუთით, იქნებ ეს მხოლოდ fluke. 273 00:12:15,630 --> 00:12:17,810 შესაძლოა კომპიუტერში მოქმედებს ცოტა უცნაურია. 274 00:12:17,810 --> 00:12:21,810 ნება მომეცით წავიდეთ წინ და გააკეთოს 20 ათობითი რაოდენობა და დარწმუნება თავს, რომ მე ვიცი 275 00:12:21,810 --> 00:12:22,540 როგორ უნდა გავაკეთოთ მათემატიკის. 276 00:12:22,540 --> 00:12:23,460 მე ვიცი, როგორ უნდა პროგრამა. 277 00:12:23,460 --> 00:12:26,960 სასტარტედ მოძრავი 1, recompile და რა იგი. 278 00:12:26,960 --> 00:12:31,110 სწორედ რეალურად, მართლაც მისაღებად შორს ნიშნის. 279 00:12:31,110 --> 00:12:32,490 >> ასე რომ, რა ხდება აქ? 280 00:12:32,490 --> 00:12:36,050 ინტუიციურად, ჩვენი ვარაუდები ადრე ზომის მონაცემთა ტიპები, 281 00:12:36,050 --> 00:12:38,040 რა უნდა ხდება აქ ქვეშ hood? 282 00:12:38,040 --> 00:12:39,290 ჰო? 283 00:12:39,290 --> 00:12:43,000 284 00:12:43,000 --> 00:12:43,590 ზუსტად. 285 00:12:43,590 --> 00:12:46,480 თუ გსურთ ამ დიდი სიზუსტით, და ეს არის ის, heck უამრავ სიზუსტით - 286 00:12:46,480 --> 00:12:48,770 20 ნომრები შემდეგ ათობითი წერტილი. 287 00:12:48,770 --> 00:12:51,990 თქვენ არ შეიძლება წარმოადგენს თვითნებური ნომერი თუ თქვენ გაქვთ 288 00:12:51,990 --> 00:12:52,930 თვითნებური რაოდენობის ბიტი. 289 00:12:52,930 --> 00:12:54,190 მაგრამ ჩვენ არ. 290 00:12:54,190 --> 00:12:57,200 იყიდება float, ჩვენ მხოლოდ 32 ბიტი. 291 00:12:57,200 --> 00:13:02,260 >> ასე რომ, თუ 32 ბიტი შესაძლებელია მხოლოდ permuted in გზა - ისევე, როგორც ჩვენი ადამიანები, ხოლო სცენაზე 292 00:13:02,260 --> 00:13:05,780 ხელში ან ქვემოთ - ამ სასრულ ნომერი გზა, იქ მხოლოდ სასრული რაოდენობის 293 00:13:05,780 --> 00:13:08,640 უძრავი ნომრები შეგიძლიათ წარმოადგენს იმ ბიტი. 294 00:13:08,640 --> 00:13:10,500 ასე რომ, კომპიუტერში საბოლოოდ აპირებს უნდა 295 00:13:10,500 --> 00:13:11,730 დაიწყოს ჭრის კუთხეში. 296 00:13:11,730 --> 00:13:15,500 კომპიუტერული შეუძლია დამალვა იმ დეტალებზე ეხლა ჩვენთვის ცოტა დრო. 297 00:13:15,500 --> 00:13:18,880 მაგრამ თუ ჩვენ დავიწყებთ გააღიზიანოს ნომრები და ეძებს შემდგომი და შემდგომი ზე 298 00:13:18,880 --> 00:13:23,220 არასასურველი ნომრების მთელი რიცხვი, მაშინ ჩვენ დავიწყებთ, რომ ეს 299 00:13:23,220 --> 00:13:26,480 რეალურად approximating იდეა მეათედი. 300 00:13:26,480 --> 00:13:29,860 >> ასე რომ, გამოდის, ტრაგიკულია, რომ არსებობს უსასრულო რაოდენობის ნომრები 301 00:13:29,860 --> 00:13:35,060 ჩვენ არ შეგვიძლია წარმოადგენს ზუსტად კომპიუტერი, მაინც სასრულ 302 00:13:35,060 --> 00:13:38,030 რაოდენობის ბიტი, სასრულ თანხის ოპერატიული. 303 00:13:38,030 --> 00:13:41,210 ახლა სამწუხაროდ, ეს ზოგჯერ აქვს რეალური შედეგები. 304 00:13:41,210 --> 00:13:45,980 თუ ადამიანს არ საკმაოდ ვაფასებთ ამ ან სახის თავისთავად ფაქტი 305 00:13:45,980 --> 00:13:48,310 რომ მათი კომპიუტერი უბრალოდ რა უთხრეს მას ამის გაკეთება და არ 306 00:13:48,310 --> 00:13:51,430 კარგად ესმის ეს ფუძემდებლური წარმომადგენლობის დეტალები - 307 00:13:51,430 --> 00:13:55,290 რაც, გულწრფელად, ზოგიერთ ენაზე ლაპარაკობს დაფარული მომხმარებელი, განსხვავებით C - 308 00:13:55,290 --> 00:13:56,500 რამდენიმე ცუდი რამ შეიძლება მოხდეს. 309 00:13:56,500 --> 00:13:58,650 >> და რა მეგონა, ჩვენ მინდა გაკეთება არის მიიღოს უკან გადადგმული ნაბიჯია. 310 00:13:58,650 --> 00:14:00,420 და ეს არის დაახლოებით რვა წუთიანი ვიდეო. 311 00:14:00,420 --> 00:14:04,200 იგი ეთერში რამდენიმე წლის წინ, და ეს იძლევა insights შევიდა რეალურად როგორ შეიძლება 312 00:14:04,200 --> 00:14:09,290 არასწორია, როდესაც თქვენ წლამდე ვაფასებთ ამ სახის ვრცლად ძალიან ყველა ძალიან 313 00:14:09,290 --> 00:14:10,080 რეალურ ცხოვრებაში. 314 00:14:10,080 --> 00:14:12,965 თუ შეგვეძლო dim განათება რამდენიმე წუთის განმავლობაში. 315 00:14:12,965 --> 00:14:14,360 >> დინამიკები 1: ჩვენ ახლა დაბრუნდნენ საინჟინრო 316 00:14:14,360 --> 00:14:17,160 კატასტროფების თანამედროვე Marvels. 317 00:14:17,160 --> 00:14:18,680 >> კომპიუტერები - 318 00:14:18,680 --> 00:14:21,340 ჩვენ ყველა მოდის მიიღოს ხშირად სამწუხარო პრობლემები 319 00:14:21,340 --> 00:14:23,170 რომ წავიდეთ მათთან. 320 00:14:23,170 --> 00:14:27,570 Bugs, ვირუსებს, და პროგრამული უზრუნველყოფის glitches ეს არის პატარა ფასები გადაიხადონ 321 00:14:27,570 --> 00:14:28,960 მოხერხებულობისთვის. 322 00:14:28,960 --> 00:14:32,040 მაგრამ მაღალტექნოლოგიური და მაღალი სიჩქარით სამხედრო და სივრცეში პროგრამა 323 00:14:32,040 --> 00:14:38,650 განცხადებები, პატარა პრობლემა შეიძლება magnified შევიდა უბედურება. 324 00:14:38,650 --> 00:14:44,480 >> 4 ივნისს, 1996, მეცნიერები მზად დაიწყოს უპილოტო Ariane 5 რაკეტა. 325 00:14:44,480 --> 00:14:48,700 ეს იყო დატვირთული სამეცნიერო თანამგზავრების შექმნილია ჩამოყალიბება, ზუსტად როგორ 326 00:14:48,700 --> 00:14:53,250 დედამიწის მაგნიტური ველი ურთიერთქმედებს ერთად მზის ქარი. 327 00:14:53,250 --> 00:14:57,540 სარაკეტო აშენდა ევროპის კოსმოსური სააგენტო და გააუქმა off მისი 328 00:14:57,540 --> 00:14:59,906 დაწესებულებაში სანაპიროზე ფრანგული გვიანა. 329 00:14:59,906 --> 00:15:03,660 >> JACK GANSSLE: დაახლოებით 37 წამი შევიდა ფრენის, ისინი პირველად შენიშნა 330 00:15:03,660 --> 00:15:04,910 რაღაც ხდებოდა არასწორია. 331 00:15:04,910 --> 00:15:08,130 საქშენები იყო swiveling in ასე ნამდვილად არ უნდა. 332 00:15:08,130 --> 00:15:12,380 დაახლოებით 40 წამი შევიდა ფრენის, ნათლად მანქანა არ იყო. 333 00:15:12,380 --> 00:15:14,400 და ეს მაშინ, როდესაც ისინი გააკეთა გადაწყვეტილება გაანადგუროს იგი. 334 00:15:14,400 --> 00:15:18,520 სპექტრი უსაფრთხოების ოფიცერი, რომელიც უზარმაზარი guts, დაპრესილი ღილაკს 335 00:15:18,520 --> 00:15:23,900 ააფეთქეს სარაკეტო, სანამ შესაძლებელი იქნებოდა გახდება საშიშროების საჯარო უსაფრთხოებას. 336 00:15:23,900 --> 00:15:27,810 >> დინამიკები 1: ეს იყო maiden voyage საქართველოს Ariane 5, და მისი განადგურება 337 00:15:27,810 --> 00:15:32,020 მოხდა იმიტომ, რომ ნაკლი ჩართული ამ სარაკეტო ის პროგრამული. 338 00:15:32,020 --> 00:15:33,980 >> JACK GANSSLE: პრობლემა Ariane იყო, რომ იქ ნომერი 339 00:15:33,980 --> 00:15:36,390 რომ საჭირო 64 bits, გამოხატონ. 340 00:15:36,390 --> 00:15:39,420 ხოლო მათ სურდათ გარდაქმნას to 16-bit ნომერი. 341 00:15:39,420 --> 00:15:43,130 ისინი ფიქრობდნენ, რომ ნომერი, არასდროს ყოფილა იქნება ძალიან დიდი, რომ ყველაზე 342 00:15:43,130 --> 00:15:46,810 იმ ციფრები in 64-bit ნომერი იყო zeros. 343 00:15:46,810 --> 00:15:48,270 ისინი არასწორია. 344 00:15:48,270 --> 00:15:51,380 >> დინამიკები 1: უუნარობა ერთ პროგრამული პროგრამა, მიიღოს სახის 345 00:15:51,380 --> 00:15:55,350 ნომერი მიერ კიდევ ერთი ქართველი ერთი ძირი უკმარისობა. 346 00:15:55,350 --> 00:15:59,970 პროგრამული უზრუნველყოფის დამუშავების გახდა ძალიან ძვირადღირებული ნაწილი ახალი ტექნოლოგიები. 347 00:15:59,970 --> 00:16:03,980 Ariane 4 სარაკეტო იყო ძალიან წარმატებული, იმდენად, რამდენადაც პროგრამული 348 00:16:03,980 --> 00:16:07,480 შექმნილი ეს იყო გამოიყენება Ariane 5. 349 00:16:07,480 --> 00:16:11,980 >> PHILIP COYLE: ძირითადი პრობლემა იყო ის, რომ Ariane 5 იყო სწრაფად, 350 00:16:11,980 --> 00:16:13,720 დააჩქარა სწრაფად. 351 00:16:13,720 --> 00:16:17,250 და პროგრამული უზრუნველყოფის არ ჰქონდა აღრიცხული, რომ. 352 00:16:17,250 --> 00:16:20,770 >> დინამიკები 1: განადგურების სარაკეტო იყო დიდი ფინანსური კატასტროფის 353 00:16:20,770 --> 00:16:24,200 ყველა გამო წუთი პროგრამული შეცდომა. 354 00:16:24,200 --> 00:16:27,820 მაგრამ ეს არ არის პირველი შემთხვევა მონაცემები კონვერტაციის პრობლემები ჰქონდა ხშირია თანამედროვე 355 00:16:27,820 --> 00:16:30,620 სარაკეტო ტექნოლოგია. 356 00:16:30,620 --> 00:16:34,480 >> JACK GANSSLE: 1991, ერთად დაწყებას პირველი ყურის ომი, პატრიოტი 357 00:16:34,480 --> 00:16:38,610 სარაკეტო გამოცდილი მსგავსი რიგი კონვერტაციის პრობლემა. 358 00:16:38,610 --> 00:16:44,910 შედეგად, 28 ამერიკელი ჯარისკაცი დაიღუპა და დაახლოებით 100 დაიჭრა 359 00:16:44,910 --> 00:16:48,600 როდესაც პატრიოტთა, რომელიც უნდა დაიცვას შემოსულ Scuds, 360 00:16:48,600 --> 00:16:51,630 ვერ მოხერხდა ხანძრის რაკეტა. 361 00:16:51,630 --> 00:16:55,110 >> დინამიკები 1: როცა ერაყში შეიჭრა ქუვეითი და ამერიკის დაიწყო უდაბნოს ქარიშხალი 362 00:16:55,110 --> 00:17:00,570 ადრეულ 1991 წელს პატრიოტთა სარაკეტო ბატარეები განალაგეს დასაცავად საუდის არაბეთში 363 00:17:00,570 --> 00:17:04,760 და ისრაელს ერაყის Scud სარაკეტო თავდასხმები. 364 00:17:04,760 --> 00:17:09,720 პატრიოტის არის აშშ საშუალო დიაპაზონი ზედაპირულად ჰაერის სისტემის მიერ წარმოებული 365 00:17:09,720 --> 00:17:11,569 RAYTHEON კომპანია. 366 00:17:11,569 --> 00:17:16,410 >> THEODORE postol: ზომის პატრიოტის interceptor თავისთავად უხეშად 367 00:17:16,410 --> 00:17:17,710 20-ფეხები ხანგრძლივი. 368 00:17:17,710 --> 00:17:20,800 და ეს იწონის დაახლოებით 2000 ფუნტი. 369 00:17:20,800 --> 00:17:22,940 და იგი ახორციელებს საბრძოლო ქობინი შესახებ - 370 00:17:22,940 --> 00:17:24,905 მე ვფიქრობ, დაახლოებით 150 ფუნტი. 371 00:17:24,905 --> 00:17:31,030 და ქობინით თავისთავად მაღალი ასაფეთქებელი, რომელსაც აქვს 372 00:17:31,030 --> 00:17:33,270 ფრაგმენტები გარშემო. 373 00:17:33,270 --> 00:17:37,490 გარსაცმის of ქობინით განკუთვნილია to ვმოქმედებთ buckshot. 374 00:17:37,490 --> 00:17:40,720 >> დინამიკები 1: რაკეტები ხორციელდება ოთხი თითო კონტეინერი და ტრანსპორტირება 375 00:17:40,720 --> 00:17:43,050 by ნახევრად მისაბმელიანი. 376 00:17:43,050 --> 00:17:47,490 >> PHILIP COYLE: პატრიოტის რაკეტსაწინააღმდეგო სისტემის მიდის უკან 377 00:17:47,490 --> 00:17:50,710 მინიმუმ 20 წელია. 378 00:17:50,710 --> 00:17:54,350 თავდაპირველად შექმნილია როგორც საჰაერო თავდაცვის სარაკეტო to 379 00:17:54,350 --> 00:17:56,190 ჩამოაგდებენ მტრის თვითმფრინავები. 380 00:17:56,190 --> 00:18:02,490 პირველ ყურის ომი, როდესაც ომი მოვიდა ერთად, არმიის სურდა მის გამოყენებას 381 00:18:02,490 --> 00:18:05,535 ჩამოაგდებენ Scuds, არ თვითმფრინავები. 382 00:18:05,535 --> 00:18:09,310 ერაყის საჰაერო ძალების არ იყო იმდენად, რამდენადაც პრობლემაა. 383 00:18:09,310 --> 00:18:12,450 მაგრამ არმია აწუხებს Scuds. 384 00:18:12,450 --> 00:18:15,950 ასე რომ მათ სცადეს განახლება პატრიოტთა. 385 00:18:15,950 --> 00:18:18,750 >> დინამიკები 1: Intercepting მტრის სარაკეტო მოგზაურობა at Mach ხუთ იყო 386 00:18:18,750 --> 00:18:20,890 უნდა გამოწვევას საკმარისი. 387 00:18:20,890 --> 00:18:25,590 მაგრამ როდესაც პატრიოტთა იყო შევარდა მომსახურება, არმია არ იცის 388 00:18:25,590 --> 00:18:31,710 ერაყის მოდიფიკაცია რომ გააკეთეს Scuds თითქმის შეუძლებელია მოხვდა. 389 00:18:31,710 --> 00:18:35,240 >> THEODORE postol რაც მოხდა არის Scuds, რომლებიც 390 00:18:35,240 --> 00:18:36,570 მოსვლის იყო არასტაბილურია. 391 00:18:36,570 --> 00:18:37,532 ისინი wobbling. 392 00:18:37,532 --> 00:18:43,220 მიზეზი ის იყო, ერაყელები, ამ იმისათვის, რომ 600 კილომეტრის გარეთ 393 00:18:43,220 --> 00:18:47,530 300 კილომეტრიანი რადიუსის რაკეტა, აიღო წონა გარეთ წინ ქობინით. 394 00:18:47,530 --> 00:18:49,290 ისინი საარჩევნო ქობინით მსუბუქია. 395 00:18:49,290 --> 00:18:53,110 ასე რომ, ახლა პატრიოტთა ცდილობს მოვა at Scud. 396 00:18:53,110 --> 00:18:56,470 და ყველაზე მეტად დროს, აბსოლუტური უმრავლესობა დროს, ის უბრალოდ 397 00:18:56,470 --> 00:18:58,730 ფრენა მიერ Scud. 398 00:18:58,730 --> 00:19:01,760 >> დინამიკები 1: ერთხელ პატრიოტის სისტემის ოპერატორები მიხვდა პატრიოტის ხელიდან გაუშვა 399 00:19:01,760 --> 00:19:06,690 მისი სამიზნე, მათ აფეთქდა პატრიოტთა ქობინით რათა თავიდან ავიცილოთ შესაძლო 400 00:19:06,690 --> 00:19:10,300 მსხვერპლი, თუ იგი ეძლეოდა დაეცემა, რათა ადგილზე. 401 00:19:10,300 --> 00:19:14,540 >> THEODORE postol: ეს იყო, რაც ყველაზე ადამიანი დაინახა, როგორც დიდი fireballs ცაში 402 00:19:14,540 --> 00:19:20,350 და არასწორად როგორც საუბრების საქართველოს Scud ქობინი. 403 00:19:20,350 --> 00:19:23,320 >> დინამიკები 1: მიუხედავად იმისა, რომ ღამის ცის პატრიოტთა აღმოჩნდა წარმატებით 404 00:19:23,320 --> 00:19:27,530 განადგურება Scuds საათზე Dhahran არსებობს შეიძლება იყოს შეცდომა მის 405 00:19:27,530 --> 00:19:29,140 შესრულება. 406 00:19:29,140 --> 00:19:34,180 იქ, პატრიოტთა სარადარო სისტემის დაკარგა სიმღერა შემომავალი Scud და არასდროს 407 00:19:34,180 --> 00:19:36,380 დაიწყო გამო პროგრამული ხარვეზი. 408 00:19:36,380 --> 00:19:39,890 409 00:19:39,890 --> 00:19:42,700 >> ეს იყო ისრაელის, რომლებიც პირველად აღმოაჩინეს რომ აღარ სისტემა 410 00:19:42,700 --> 00:19:48,020 იყო, დიდი დრო განსხვავება გახდა გამო საათის 411 00:19:48,020 --> 00:19:50,470 ჩართული სისტემა კომპიუტერში. 412 00:19:50,470 --> 00:19:54,640 >> JACK GANSSLE: დაახლოებით ორი კვირით ადრე ტრაგედიის Dhahran, ისრაელის 413 00:19:54,640 --> 00:19:58,440 იტყობინება თავდაცვის დეპარტამენტის რომ სისტემა დაკარგვის დროს. 414 00:19:58,440 --> 00:20:01,280 მას შემდეგ, რაც დაახლოებით რვა საათის გაშვებული, მათ შენიშნეს, რომ სისტემა 415 00:20:01,280 --> 00:20:03,530 ხდება შესამჩნევად ნაკლებად ზუსტი. 416 00:20:03,530 --> 00:20:07,710 თავდაცვის დეპარტამენტის გამოეხმაურა ვეუბნებოდი ყველა პატრიოტის ბატარეები 417 00:20:07,710 --> 00:20:10,500 to არ დატოვებს სისტემები მე დიდი ხანია. 418 00:20:10,500 --> 00:20:12,430 ისინი არ ამბობს, რა დიდი დრო იყო. 419 00:20:12,430 --> 00:20:13,330 რვა საათი? 420 00:20:13,330 --> 00:20:13,810 10 საათის განმავლობაში? 421 00:20:13,810 --> 00:20:14,990 1000 საათი? 422 00:20:14,990 --> 00:20:17,150 არავინ იცის. 423 00:20:17,150 --> 00:20:20,220 >> დინამიკები 1: პატრიოტის ბატარეის დისლოცირებული ზე ყაზარმებში at Dhahran 424 00:20:20,220 --> 00:20:24,660 და მისი ყალბი შიდა საათის ყოფილა ზე მეტი 100 საათი ღამეს 425 00:20:24,660 --> 00:20:27,470 25 თებერვალს. 426 00:20:27,470 --> 00:20:31,770 >> JACK GANSSLE: ეს დააფიქსირა, დრო, სისწორის შესახებ მეათე მეორე. 427 00:20:31,770 --> 00:20:34,480 ახლა მეათე მეორე საინტერესო ნომერი, რადგან იგი არ შეიძლება იყოს 428 00:20:34,480 --> 00:20:39,940 გამოხატული ბინარული ზუსტად, რაც იმას ნიშნავს, მას არ შეუძლია იყოს გამოხატული ზუსტად 429 00:20:39,940 --> 00:20:42,500 ნებისმიერი თანამედროვე ციფრული კომპიუტერი. 430 00:20:42,500 --> 00:20:46,920 ეს დაუჯერებელია, მაგრამ გამოიყენოს ეს როგორც მაგალითი. 431 00:20:46,920 --> 00:20:49,000 ავიღოთ ნომერ მესამე. 432 00:20:49,000 --> 00:20:53,150 ერთი მესამედი არ შეიძლება გამოთქვა in ათობითი ზუსტად. 433 00:20:53,150 --> 00:20:57,500 ერთი მესამე 0,333 აპირებს მიმდინარეობდა უსასრულობა. 434 00:20:57,500 --> 00:21:02,270 არ არსებობს გზა უნდა გააკეთოს, რომ აბსოლუტური სიზუსტით in ათობითი. 435 00:21:02,270 --> 00:21:05,370 სწორედ მსგავსი პრობლემა მომხდარ პატრიოტთა. 436 00:21:05,370 --> 00:21:09,880 აღარ სისტემა გაიქცა, ყველაზე ცუდი დრო შეცდომა გახდა. 437 00:21:09,880 --> 00:21:13,840 >> დინამიკები 1: მას შემდეგ, რაც 100 სამუშაო საათები, შეცდომა იყო მხოლოდ 438 00:21:13,840 --> 00:21:16,140 დაახლოებით ერთი მესამედი მეორე. 439 00:21:16,140 --> 00:21:20,800 მაგრამ თვალსაზრისით გათვლილი სარაკეტო მოგზაურობა at Mach ხუთი, ეს შედეგად 440 00:21:20,800 --> 00:21:24,410 თვალთვალის ცდომილება მეტი 600 მეტრია. 441 00:21:24,410 --> 00:21:27,670 ეს იქნება ფატალური შეცდომა for ჯარისკაცებთან Dhahran. 442 00:21:27,670 --> 00:21:33,450 >> THEODORE postol რაც მოხდა არის Scud დაწყებას გამოვლინდა ადრეული 443 00:21:33,450 --> 00:21:34,280 გაფრთხილების თანამგზავრების. 444 00:21:34,280 --> 00:21:38,550 და მათ იცოდნენ, რომ Scud მოდიოდა მათი საერთო მიმართულებით. 445 00:21:38,550 --> 00:21:41,000 არ იცოდნენ, სადაც იგი მოდიოდა. 446 00:21:41,000 --> 00:21:43,900 >> დინამიკები 1: ახლა მდე სარადარო კომპონენტი პატრიოტის სისტემის 447 00:21:43,900 --> 00:21:48,910 იცავდა Dhahran to იქნებიან და შეინახოს სიმღერა შემომავალი მტრის რაკეტა. 448 00:21:48,910 --> 00:21:50,580 >> JACK GANSSLE: სარადარო იყო ძალიან ჭკვიანი. 449 00:21:50,580 --> 00:21:53,770 კარგი იქნებოდა, ფაქტობრივად, თვალყური თანამდებობაზე Scud და შემდეგ პროგნოზირება, სადაც იგი 450 00:21:53,770 --> 00:21:57,160 ალბათ იქნება მომავალი დრო რადარის გაგზავნილი პულსი გარეთ. 451 00:21:57,160 --> 00:21:58,870 ამის მოუწოდა დიაპაზონი კარიბჭე. 452 00:21:58,870 --> 00:22:04,020 >> THEODORE postol: მაშინ ერთხელ პატრიოტის გადაწყვეტს საკმარისი დრო გავიდა წასვლა 453 00:22:04,020 --> 00:22:09,420 უკან და შემოწმება მომდევნო ადგილმდებარეობა ამ აღმოჩენილი ობიექტი, იგი ბრუნდება. 454 00:22:09,420 --> 00:22:14,450 ასე რომ, როდესაც იგი დაბრუნდა არასწორი ადგილი, მაშინ ვერ ხედავს ობიექტი. 455 00:22:14,450 --> 00:22:18,200 და იგი გადაწყვეტს, რომ არ არსებობს ობიექტი, ეს იყო ყალბი გამოვლენის და 456 00:22:18,200 --> 00:22:19,680 მცირდება გზაზე. 457 00:22:19,680 --> 00:22:22,970 >> დინამიკები 1: შემომავალი Scud გაქრა ეხლა რადარის ეკრანზე, და 458 00:22:22,970 --> 00:22:26,050 წამში მოგვიანებით გააკრიტიკა შევიდა ყაზარმებში. 459 00:22:26,050 --> 00:22:31,950 Scud დაიღუპა 28 და ბოლო იყო გასროლა პირველი ყურის ომი. 460 00:22:31,950 --> 00:22:37,700 ტრაგიკულია, განახლებული პროგრამული ჩავიდა at Dhahran მომდევნო დღეს. 461 00:22:37,700 --> 00:22:41,800 პროგრამული ხარვეზი იყო დაფიქსირებული, დახურვის ერთი თავი პრობლემური 462 00:22:41,800 --> 00:22:43,690 ისტორიის პატრიოტის რაკეტა. 463 00:22:43,690 --> 00:22:46,780 464 00:22:46,780 --> 00:22:50,710 >> პატრიოტის ფაქტიურად აკრონიმი ამისთვის ეტაპობრივი Array თვალთვალის 465 00:22:50,710 --> 00:22:51,960 ჩაჭრა სამიზნე. 466 00:22:51,960 --> 00:22:54,650 467 00:22:54,650 --> 00:23:00,840 >> დავით J Malan ყველა უფლება, sobering მაგალითად, დარწმუნებული უნდა იყოს. 468 00:23:00,840 --> 00:23:03,430 და საბედნიეროდ, ეს უფრო დაბალი დონის შეცდომები არ არის ის, რაც ჩვენ გამოგიგზავნით 469 00:23:03,430 --> 00:23:06,220 როგორც წესი, უნდა ვაფასებ, რა თქმა უნდა არა ზოგიერთი ჩვენი 470 00:23:06,220 --> 00:23:07,360 ადრეული პროგრამები. 471 00:23:07,360 --> 00:23:10,450 პირიქით, ყველაზე შეცდომებს თქვენ ნაცნობობა იქნება ლოგიკური ბუნება, 472 00:23:10,450 --> 00:23:12,900 სინტაქსური ხასიათის რომლის კოდი უბრალოდ არ მუშაობს უფლება. 473 00:23:12,900 --> 00:23:14,140 და იცით ეს საკმაოდ სწრაფად. 474 00:23:14,140 --> 00:23:16,850 >> მაგრამ განსაკუთრებით მაშინ, როცა ჩვენ მისაღებად სემესტრის ბოლოს, იგი აპირებს 475 00:23:16,850 --> 00:23:20,620 სულ უფრო და უფრო შესაძლებლობა ნამდვილად ვფიქრობ, მძიმე შესახებ დიზაინი 476 00:23:20,620 --> 00:23:22,960 თქვენი პროგრამებისა და ძირითადი წარმომადგენლობა 477 00:23:22,960 --> 00:23:24,520 იქ, ძალიან, საქართველოს მონაცემები. 478 00:23:24,520 --> 00:23:28,010 მაგალითად, ჩვენ გააცნობს MySQL, რაც პოპულარულია მონაცემთა ბაზის ძრავა 479 00:23:28,010 --> 00:23:30,850 რომ თქვენ შეგიძლიათ გამოიყენოთ ერთად საიტები შესანახად მონაცემების უკან ბოლომდე. 480 00:23:30,850 --> 00:23:34,630 და თქვენ უნდა დაიწყოს, გადაწყვიტონ ზე სემესტრის ბოლოს არა მარტო რა 481 00:23:34,630 --> 00:23:38,790 სახის მონაცემების გასწვრივ ამ ხაზების გამოყენება მაგრამ ზუსტად რამდენი ბიტი გამოიყენოს, 482 00:23:38,790 --> 00:23:42,740 თუ არა გსურთ შესანახად თარიღების როგორც თარიღები და ჯერ ჯერ, და ასევე 483 00:23:42,740 --> 00:23:46,890 რამ, როგორიცაა რამდენად დიდი გინდათ უნიკალური პირადობის მოწმობა იყოს, ვთქვათ, მომხმარებლებს 484 00:23:46,890 --> 00:23:47,680 თქვენს მონაცემთა ბაზაში. 485 00:23:47,680 --> 00:23:51,210 >> რეალურად, თუ ზოგიერთ თქვენგანს არ ჰქონდა Facebook ითვლის საკმაოდ გარკვეული დრო, 486 00:23:51,210 --> 00:23:53,680 და თქვენ იცით, თუ როგორ უნდა მიიღონ დაშვება თქვენი მომხმარებლის ID - 487 00:23:53,680 --> 00:23:57,930 რაც ზოგჯერ გვიჩვენებს up თქვენს ნახვა ნახვა URL თუ თქვენ მიერ არჩეული 488 00:23:57,930 --> 00:24:02,070 მეტსახელად for URL, ან თუ თქვენ გამოყენებული Facebook-ის Graph API, 489 00:24:02,070 --> 00:24:05,510 საჯაროდ ხელმისაწვდომი API მიერ, რომელიც თქვენ შეგვიძლია მოვითხოვოთ Facebook ნედლეულის მონაცემები - 490 00:24:05,510 --> 00:24:07,580 თქვენ ხედავთ, რა თქვენი რიცხვითი ID არის. 491 00:24:07,580 --> 00:24:10,880 და რამდენიმე წლის წინ, Facebook არსებითად ჰქონდა უნდა შეიცვალოს გამოყენებით 492 00:24:10,880 --> 00:24:15,980 ეკვივალენტს ints გამოყენებას ხანგრძლივი ხანგრძლივი რადგან დროთა განმავლობაში, როგორც წევრებს მოვა 493 00:24:15,980 --> 00:24:19,780 და წავიდეთ და შევქმნათ უამრავი ანგარიშები და ყალბი ანგარიშები, თუნდაც ისინი ძალიან ადვილად 494 00:24:19,780 --> 00:24:24,630 შეძლეს იწურება რაღაც 4 მილიარდი შესაძლო მნიშვნელობა, როგორიცაა int. 495 00:24:24,630 --> 00:24:28,340 >> ასე რომ, უფრო იმ სახის საკითხები ქვემოთ გზა, ასევე. 496 00:24:28,340 --> 00:24:30,750 ყველა უფლება, რომელიც აძლევენ. 497 00:24:30,750 --> 00:24:31,670 ეს იყო ორაზროვნება. 498 00:24:31,670 --> 00:24:32,730 რამდენიმე სწრაფ განცხადებები. 499 00:24:32,730 --> 00:24:35,710 ასე სექციები ოფიციალურად დაიწყოს ამ მოდის კვირა, ორშაბათს, სამშაბათს. 500 00:24:35,710 --> 00:24:39,080 თქვენ მოისმენს ფოსტით მოგვიანებით ამ კვირაში როგორც თქვენი მონაკვეთზე საბუთი. 501 00:24:39,080 --> 00:24:42,570 და თქვენ აქვე იმ ეტაპზე რამდენად შეცვლას მონაკვეთზე, თუ თქვენი 502 00:24:42,570 --> 00:24:45,660 გრაფიკი უკვე შეცვალა ან თქვენი კომფორტის დონე უკვე შეიცვალა. 503 00:24:45,660 --> 00:24:49,380 ამასობაში P-ნაკრები ერთი და ჰაკერების ერთ ვართ გამო ამ ხუთშაბათი with არჩევანი 504 00:24:49,380 --> 00:24:52,450 ვრცელდება, რომ ვადა პოსტი სპეციფიკაციები პარასკევის 505 00:24:52,450 --> 00:24:53,830 in ტიპიური გზა. 506 00:24:53,830 --> 00:24:57,500 >> გააცნობიერონ, რომ მათ შორის პრობლემა კომპლექტი სპეციფიკაციები ინსტრუქციებით 507 00:24:57,500 --> 00:25:02,770 როგორ უნდა გამოიყენონ CS50 მოწყობილობების, რათა, ასევე CS50 კონკრეტული საშუალებები 508 00:25:02,770 --> 00:25:06,540 ისევე, როგორც სტილის 50, რომელიც გთავაზობთ გამოხმაურებებით დინამიურად წლის 509 00:25:06,540 --> 00:25:10,230 ხარისხი თქვენი კოდი სტილი და ასევე შეამოწმოს 50, რომელიც გთავაზობთ 510 00:25:10,230 --> 00:25:13,160 დინამიური კავშირი, როგორც თქვენი კოდექსის სისწორე. 511 00:25:13,160 --> 00:25:16,850 აპატიებს, რომ ჩვენ ჯერ კიდევ დაუთოება რამდენიმე ქინქსის ერთად გამშვები 50. 512 00:25:16,850 --> 00:25:21,490 რამდენიმე თქვენი თანაკლასელები, რომელიც ვერ დაიწყებს დაახლოებით ოთხი საათზე პარასკევს ღამით, როდესაც 513 00:25:21,490 --> 00:25:25,130 სპეც ავიდა არ შენიშნა მას შემდეგ რამდენიმე შეცდომები, რომ ვმუშაობთ 514 00:25:25,130 --> 00:25:29,010 მეშვეობით და ბოდიშს ყველას, ვინც გამოცდილი გაუმართლებელი იმედგაცრუებები. 515 00:25:29,010 --> 00:25:30,340 ბრალი ჩემია. 516 00:25:30,340 --> 00:25:34,080 მაგრამ ჩვენ თვალყური on CS50 განვიხილოთ, როცა წყდება. 517 00:25:34,080 --> 00:25:35,700 >> ასე რომ, სიტყვა ქულით თავს. 518 00:25:35,700 --> 00:25:38,990 ასე რომ, ეს იქნება ორი კვირის, სანამ დავიწყოთ მიიღონ კომენტარები პრობლემების კომპლექტი 519 00:25:38,990 --> 00:25:40,640 იმიტომ, რომ თქვენ ჯერ კიდევ არ აქვს სწავლების თანამემამულე. 520 00:25:40,640 --> 00:25:44,510 და მაშინაც, დავიწყებთ შევაფასოთ C პრობლემა ადგენს სანამ ჩვენ 521 00:25:44,510 --> 00:25:46,970 დაბრუნდეს და შეაფასოს ნულიდან იმდენად რომ თქვენ უფრო შესაბამისი 522 00:25:46,970 --> 00:25:48,150 კავშირი უფრო სწრაფად. 523 00:25:48,150 --> 00:25:51,870 მაგრამ ზოგადად პოსტი სილაბუსი, CS50 პრობლემა კომპლექტი ფასდება გასწვრივ 524 00:25:51,870 --> 00:25:53,580 შემდეგ ოთხი ღერძი - 525 00:25:53,580 --> 00:25:55,760 ფარგლებში, სისწორეში, დიზაინი, და სტილი. 526 00:25:55,760 --> 00:25:59,210 >> სფერო იქნება ნომერი, როგორც წესი, შორის ნულოვანი და ხუთი, რომ 527 00:25:59,210 --> 00:26:01,830 იღებს, თუ რამდენად ცალი, რომ თქვენ ცოტა off. 528 00:26:01,830 --> 00:26:03,750 როგორც წესი, გნებავთ ეს იყოს ხუთი. 529 00:26:03,750 --> 00:26:05,300 თქვენ სულ მცირე შევეცადე ყველაფერი. 530 00:26:05,300 --> 00:26:09,330 და შეამჩნია ეს multiplicative ფაქტორი ასე, რომ ამით მხოლოდ ნაწილი 531 00:26:09,330 --> 00:26:12,520 პრობლემა ნაკრები არ არის საუკეთესო სტრატეგიას. 532 00:26:12,520 --> 00:26:15,610 >> ამავდროულად, უფრო თვალსაჩინოს არის მნიშვნელობა სისწორე - 533 00:26:15,610 --> 00:26:18,620 უბრალოდ თქვენი პროგრამის სწორი ერთად მიმართ დაზუსტება? 534 00:26:18,620 --> 00:26:21,510 ეს შეწონილი განზრახ მეტი მძიმედ, ვიდრე დანარჩენი ორი ღერძი მიერ 535 00:26:21,510 --> 00:26:24,450 ფაქტორი სამი იმიტომ, რომ ჩვენ ვაღიარებთ რომ, როგორც წესი, თქვენ აპირებს დახარჯოს 536 00:26:24,450 --> 00:26:28,600 გაცილებით მეტი დრო გატანა ქვემოთ გარკვეული შეცდომები, მიღების თქვენი კოდი მუშაობა, მაშინ 537 00:26:28,600 --> 00:26:31,540 მათ indenting მას და ვირჩევთ შესაბამისი ცვლადის სახელები და 538 00:26:31,540 --> 00:26:33,800 მინდა, რომელიც ჩაეგდო სპექტრის სტილის. 539 00:26:33,800 --> 00:26:36,160 >> ეს არ არის იმის თქმა, სტილი არ არის მნიშვნელოვანია და ჩვენ იქადაგა, რომ მეტი 540 00:26:36,160 --> 00:26:37,920 დრო, როგორც ლექციებს და სექციები. 541 00:26:37,920 --> 00:26:40,520 სტილი ეხება ესთეტიკის თქვენი კოდი. 542 00:26:40,520 --> 00:26:43,980 თქვენ მიერ არჩეული კარგად დაასახელა ცვლადები , რომლებიც მოკლე, მაგრამ გარკვეულწილად 543 00:26:43,980 --> 00:26:44,680 აღწერილობითი? 544 00:26:44,680 --> 00:26:47,840 თქვენი კოდი indented როგორც ვნახე წელს ლექცია და ისე თანმიმდევრული 545 00:26:47,840 --> 00:26:49,070 სტილი 50? 546 00:26:49,070 --> 00:26:51,220 >> და ბოლოს არის დიზაინის უფლება იქ ცენტრიდან. 547 00:26:51,220 --> 00:26:54,090 დიზაინი არის უფრო რთული ერთი დააყენოს თითი იმიტომ, რომ ის ბევრად უფრო 548 00:26:54,090 --> 00:26:55,000 სუბიექტური. 549 00:26:55,000 --> 00:26:58,610 მაგრამ ეს, ალბათ, ყველაზე მნიშვნელოვანი სამი ღერძი თვალსაზრისით პედაგოგიური 550 00:26:58,610 --> 00:27:02,050 ღირებულება დროთა განმავლობაში და რომ ეს იქნება სწავლების მონაწილის შესაძლებლობა 551 00:27:02,050 --> 00:27:04,110 მოგაწვდით ხარისხიანი კავშირი. 552 00:27:04,110 --> 00:27:08,100 მართლაც, CS50 მიუხედავად იმისა, რომ გვაქვს ეს ფორმულები და ქულები, ბოლოს 553 00:27:08,100 --> 00:27:11,350 დღეს ეს არის სრულიად შეგნებულად ძალიან მცირე თაიგულების - პუნქტიანი ღირებულებები 554 00:27:11,350 --> 00:27:13,460 შორის ნულოვანი და სამი და ნულოვანი და ხუთ. 555 00:27:13,460 --> 00:27:17,800 ჩვენ არ ცდილობენ მიაპყროს ძალიან უხეში ხაზები შორის პრობლემა კომპლექტი შორის ან 556 00:27:17,800 --> 00:27:21,490 სტუდენტები არამედ ფოკუსირება, როგორც ჩვენ შეგვიძლია ხარისხობრივი, longhand 557 00:27:21,490 --> 00:27:25,490 კავშირი, ან ნაბეჭდ ან ზეპირი დან თქვენი კერძოდ სწავლების თანამემამულე, 558 00:27:25,490 --> 00:27:27,050 თქვენ მიიღებთ იცნობენ. 559 00:27:27,050 --> 00:27:32,340 >> მაგრამ ზოგადად, ეს არის წონით რომ სხვადასხვა ღერძი ექნება. 560 00:27:32,340 --> 00:27:35,480 იმავდროულად, ძალიან, ღირს შენახვა ძალაუნებურად, რომ თქვენ არ უნდა ვივარაუდოთ, რომ 561 00:27:35,480 --> 00:27:38,870 სამი ხუთიდან არის 60% ამიტომ უხეშად ვერ. 562 00:27:38,870 --> 00:27:41,410 სამი განზრახ ნიშნავს, რომ სახის შუა გზაზე კარგი. 563 00:27:41,410 --> 00:27:43,480 თუ თქვენ მისაღებად threes ზე დასაწყისში სემესტრში, სწორედ 564 00:27:43,480 --> 00:27:46,340 მართლაც ნიშნავს, რომ კარგი მიიტანეთ უნდა დაიწყოს. 565 00:27:46,340 --> 00:27:50,510 თუ თქვენ მისაღებად twos, ბაზრობების, არ არსებობს აუცილებლად სადღაც სამუშაო გადაიხადოს პატარა 566 00:27:50,510 --> 00:27:53,250 მეტი ყურადღება, ისარგებლოს საქართველოს სექციები და საათებში. 567 00:27:53,250 --> 00:27:54,590 >> თუ თქვენ მისაღებად fours და fives, დიდი. 568 00:27:54,590 --> 00:27:57,430 მაგრამ ნამდვილად, ჩვენ ვიმედოვნებთ, რომ ნახოთ ტრაექტორიების დაზუსტებისთვის სტუდენტებს შორის - ძალიან 569 00:27:57,430 --> 00:28:00,575 ინდივიდუალური თითო სტუდენტი, მაგრამ დაწყებული სემესტრის აქ ერთგვარი 570 00:28:00,575 --> 00:28:04,100 ორი სამი სპექტრი, მაგრამ დამთავრებული აქ ამ ოთხი ხუთი დიაპაზონი. 571 00:28:04,100 --> 00:28:05,440 ეს არის ის, რასაც ჩვენ ნამდვილად ეძებს. 572 00:28:05,440 --> 00:28:09,590 და ჩვენ გვახსოვდეს დელტა, რომ თქვენ გამოფენებში შორის კვირაში ნულოვანი და კვირაში 573 00:28:09,590 --> 00:28:12,170 12 როდესაც მე ვაკეთებ შეფასება. 574 00:28:12,170 --> 00:28:16,380 არ აქვს მნიშვნელობა, ჩვენთვის აბსოლუტურად თუ როგორ თქვენ სამართლიანად დასაწყისში, თუ თქვენი 575 00:28:16,380 --> 00:28:19,330 ტრაექტორია მართლაც აღმავალი და ძლიერი. 576 00:28:19,330 --> 00:28:24,000 >> აკადემიური პატიოსნება - ასე რომ ნება მიბოძეთ, ჩემი უფრო სერიოზული ხმა მხოლოდ ერთი წუთით. 577 00:28:24,000 --> 00:28:28,510 ასე რომ, ეს კურსი აქვს განსხვავება გაგზავნის მეტი სტუდენტები, ვიდრე რომელიმე სხვა 578 00:28:28,510 --> 00:28:30,950 ისტორიაში დაფა, მე მჯერა. 579 00:28:30,950 --> 00:28:34,220 ჩვენ გვყავს სახის დაკარგა რაოდენობა ამ წერტილი რამდენად ხშირად ეს ხდება. 580 00:28:34,220 --> 00:28:37,090 და ეს არა იმიტომ, რომ სტუდენტების 50 რაიმე უფრო არაკეთილსინდისიერი, ვიდრე მათი 581 00:28:37,090 --> 00:28:38,690 თანაკლასელები მის ფარგლებს გარეთ. 582 00:28:38,690 --> 00:28:42,800 მაგრამ გააცნობიეროს, ძალიან, რომ ჩვენ ძალიან კარგი ზე გამოვლენის ასეთი რამ. 583 00:28:42,800 --> 00:28:45,920 >> და ეს არის უპირატესობა, რომ კომპიუტერული მეცნიერების კლასი აქვს, რომ ჩვენ 584 00:28:45,920 --> 00:28:49,110 შეუძლია და ჩვენ შევადარებთ ყველა სტუდენტი პრობლემა ადგენს წყვილი-ბრძენი წინააღმდეგ ყველა 585 00:28:49,110 --> 00:28:51,470 სხვა, არა მარტო ამ წლის მაგრამ ყველა წინასწარი წელი. 586 00:28:51,470 --> 00:28:55,080 ჩვენ შეგვიძლია ასეთი, ისევე როგორც სტუდენტების კლასი, რომ Google და იპოვონ კოდი 587 00:28:55,080 --> 00:28:57,440 საიტები, როგორიცაა github და ფორუმი. 588 00:28:57,440 --> 00:29:00,840 არსებობს აბსოლუტურად გადაწყვეტილებების CS50-ს P-აწესებს მცურავი გარშემო არსებობს. 589 00:29:00,840 --> 00:29:02,710 მაგრამ თუ ნახავთ მათ, ჩვენ შეგვიძლია მოვძებნოთ მათ. 590 00:29:02,710 --> 00:29:07,130 და ეს ყველაფერი არის ძალიან ავტომატიზებულია და ადვილად და სამწუხარო ჩვენთვის, რათა იპოვოს. 591 00:29:07,130 --> 00:29:10,990 >> თუმცა ხაზგასმით მინდა აღვნიშნო, ძალიან, რომ რა თქმა უნდა, აკადემიური პატიოსნება პოლიტიკა 592 00:29:10,990 --> 00:29:13,960 ძალიან ნიშნავს, რომ ძალიან საპირისპირო, რომ სული. 593 00:29:13,960 --> 00:29:17,506 მართლაც, ამ წელს ჩვენ rephrased რამ ამ სილაბუსში უნდა იყოს ეს, dot 594 00:29:17,506 --> 00:29:19,790 dot dot, უფრო დეტალურად ამ სილაბუსში. 595 00:29:19,790 --> 00:29:22,860 მაგრამ მთავარი თემა, რა თქმა უნდა ნამდვილად უნდა იყოს გონივრული. 596 00:29:22,860 --> 00:29:26,160 ჩვენ ვაღიარებთ, რომ არსებობს მნიშვნელოვანი თანხის პედაგოგიური 597 00:29:26,160 --> 00:29:30,550 ღირებულების კოლაბორაციული, გარკვეულწილად, ერთად თანაკლასელები, რომლის დროსაც თქვენ 598 00:29:30,550 --> 00:29:33,700 ორი ან თქვენ სამი ან მეტი არიან იდგა თეთრ დაფაზე 599 00:29:33,700 --> 00:29:35,670 whiteboarding, ასე ვთქვათ, თქვენი იდეები - 600 00:29:35,670 --> 00:29:39,480 წერა out pseudocode in სურათები, დიაგრამების შედგენა რა უნდა Mario, თუ 601 00:29:39,480 --> 00:29:41,350 თქვენ დაწერა პირველი ამ pseudocode. 602 00:29:41,350 --> 00:29:43,240 რა უნდა ხარბ ალგორითმი - 603 00:29:43,240 --> 00:29:46,100 როგორ უნდა მოიქცეს პოსტი პრობლემა ადგენს ერთი? 604 00:29:46,100 --> 00:29:50,440 >> ასე რომ მიხვდებიან, რომ ქცევის რომ ჩვენ გარწმუნებთ, ძალიან 605 00:29:50,440 --> 00:29:51,470 ბევრი ერთად იმ ხაზები. 606 00:29:51,470 --> 00:29:53,890 ხოლო სილაბუსში, დაინახავთ, მთელი bunch of ტყვიები ქვეშ 607 00:29:53,890 --> 00:29:57,740 გონივრული კატეგორია და არ მომწონს კატეგორია, რომლებიც გვეხმარება დაეხმარება 608 00:29:57,740 --> 00:30:00,740 თქვენ გადატანა თქვენი გონება გარშემო, რომელშიც ჩვენ მიაპყროს, რომ ხაზი. 609 00:30:00,740 --> 00:30:04,340 და საერთოდ, წესიერი წესი thumb არის, რომ თუ იბრძვიან მოსაგვარებლად 610 00:30:04,340 --> 00:30:07,990 ზოგიერთი ხარვეზის და თქვენი მეგობარი ან კლასელი ზის შემდეგ თქვენ, იგი 611 00:30:07,990 --> 00:30:11,530 გონივრული თქვენთვის ნახოთ მას თქვენი კოდი და აცხადებენ, hey, შეგიძლიათ დამეხმაროთ 612 00:30:11,530 --> 00:30:13,700 მე გაერკვნენ, თუ რა ხდება არასწორი აქ? 613 00:30:13,700 --> 00:30:17,110 >> ჩვენ არ, როგორც წესი, მოიცავს მოპირდაპირე მხარეს. 614 00:30:17,110 --> 00:30:20,730 ეს არ არის სწორი პასუხი თქვენს მეგობარი ან კლასელი აქ სათქმელია, რა, 615 00:30:20,730 --> 00:30:22,510 შევჩერდეთ აფეთქდა და მოღვაწის ის, რომ. 616 00:30:22,510 --> 00:30:24,400 სწორედ ერთგვარი უსაფუძვლოა. 617 00:30:24,400 --> 00:30:27,750 თუმცა შემდეგ ვინმეს, კიდევ ერთი ტვინის, კიდევ ერთი წყვილი თვალით შევხედოთ 618 00:30:27,750 --> 00:30:31,620 თქვენს ეკრანზე ან შევხედოთ თქვენი კოდი და აცხადებენ, დარწმუნებული ხართ, რომ გსურთ 619 00:30:31,620 --> 00:30:32,760 ჰქონდეს მარყუჟის აქ? 620 00:30:32,760 --> 00:30:34,800 ან არიან ნამდვილად გსურთ რომ მძიმით აქ? 621 00:30:34,800 --> 00:30:37,090 ან oh, რომ შეცდომა ნიშნავს ეს. 622 00:30:37,090 --> 00:30:39,580 ესენი ძალიან გონივრული და წახალისება ქცევას. 623 00:30:39,580 --> 00:30:44,010 >> შემთხვევაში, რომელიც მე alluding to ადრე იმატებს ქვემოთ, როდესაც სტუდენტებს 624 00:30:44,010 --> 00:30:47,350 გვიან ღამით მიღების ცუდი განაჩენი გადაწყვეტილებები და emailing მათი კოდს 625 00:30:47,350 --> 00:30:50,130 ვინმე ან უბრალოდ ამბობდა, აქ, ეს არის ამ Dropbox ან 626 00:30:50,130 --> 00:30:51,610 Googling გვიან ღამით. 627 00:30:51,610 --> 00:30:54,880 ასე რომ ხელს შეუწყობს და ბეგ თქვენგანს, თუ აქვს იმ გარდაუვალია 628 00:30:54,880 --> 00:30:58,450 მომენტები სტრესი, თქვენ bumping up წინააღმდეგ ვადა, თქვენ არ გვიან 629 00:30:58,450 --> 00:31:01,490 დღეს, რადგან ეს უკვე პარასკევს, რომ წერტილი, ელ კურსის ხელმძღვანელები ან 630 00:31:01,490 --> 00:31:02,330 თავს პირდაპირ. 631 00:31:02,330 --> 00:31:04,790 ამბობენ, მოსმენა, მე ვარ, ჩემი არღვევს წერტილი აქ. 632 00:31:04,790 --> 00:31:06,660 მოდით საუბარი და გაერკვნენ ის. 633 00:31:06,660 --> 00:31:10,400 მიმართავენ ვებგვერდი ან სხვა არა გონივრული საქციელი არასდროს 634 00:31:10,400 --> 00:31:13,070 გადაწყვეტა და ძალიან ბევრი თქვენი თანაკლასელები აღარ აქ 635 00:31:13,070 --> 00:31:15,150 campus გამო, რომ ღარიბი გადაწყვეტილება. 636 00:31:15,150 --> 00:31:17,840 მაგრამ ეს ძალიან ადვილია კაბაში რომ ხაზი. 637 00:31:17,840 --> 00:31:22,950 >> აქ არის პატარა სურათი, გულშემატკივრობენ თქვენ მდე მაღრაძე ასე რომ ახლა 638 00:31:22,950 --> 00:31:25,720 ყველაფერი კარგად იქნება. 639 00:31:25,720 --> 00:31:30,210 >> ასე სწრაფად recap, მაშინ, სადაც ჩვენ შეჩერდით. 640 00:31:30,210 --> 00:31:33,690 ასე რომ, გასულ კვირას, გავიხსენოთ, რომ ჩვენ დანერგვა პირობები, არ Scratch 641 00:31:33,690 --> 00:31:34,880 მაგრამ C ამ დროს. 642 00:31:34,880 --> 00:31:38,300 და იყო რამდენიმე ახალი სინტაქსი მაგრამ ნამდვილად არ ახალი იდეები თავისთავად. 643 00:31:38,300 --> 00:31:42,630 ჩვენ გვქონდა ლოგიკური გამონათქვამების, რომ ჩვენ შეგვიძლია ან ერთად ორი ვერტიკალური 644 00:31:42,630 --> 00:31:46,490 ბარები ან და ერთად ampersands განაცხადა, რომ ორივე მარცხენა 645 00:31:46,490 --> 00:31:49,990 და უფლება უნდა იყოს ჭეშმარიტი ამ შეასრულოს. 646 00:31:49,990 --> 00:31:53,150 მაშინ ჩვენ გვქონდა კონცენტრატორები, რომელიც ჩვენ ჩანდა ზე მოკლედ, მაგრამ მე ვთავაზობ მართლაც 647 00:31:53,150 --> 00:31:56,830 უბრალოდ სხვადასხვა syntax მისაღწევად მსგავსი მიზანი, თუ თქვენ იცით, 648 00:31:56,830 --> 00:31:59,270 წინასწარ რა თქვენი შემთხვევებში იქნება. 649 00:31:59,270 --> 00:32:00,160 >> ჩვენ შევხედე მარყუჟების. 650 00:32:00,160 --> 00:32:03,340 For loop არის იქნებ ყველაზე გავრცელებული, ან, როგორც მინიმუმ ერთი რომ ხალხი 651 00:32:03,340 --> 00:32:05,330 როგორც წესი მიღწევა ინსტინქტურად. 652 00:32:05,330 --> 00:32:08,240 მიუხედავად იმისა, რომ იგი გამოიყურება ცოტა cryptic, დაინახავთ, ბევრი, ბევრი მაგალითი 653 00:32:08,240 --> 00:32:11,590 ადრე ხანგრძლივი, როგორც თქვენ გაქვთ უკვე გვიან გასულ კვირას. 654 00:32:11,590 --> 00:32:14,280 მიუხედავად იმისა, მარყუჟების შეიძლება ასეთივე მისაღწევად იგივე. 655 00:32:14,280 --> 00:32:17,550 მაგრამ თუ თქვენ გსურთ რაიმე incrementation ან განახლება 656 00:32:17,550 --> 00:32:20,230 ცვლადი ღირებულებებს, თქვენ უნდა ამის გაკეთება უფრო ხელით, ვიდრე 657 00:32:20,230 --> 00:32:22,440 for loop ადრე საშუალებას. 658 00:32:22,440 --> 00:32:25,310 და მაშინ იქ do-ხოლო მარყუჟის რაც საშუალებას გვაძლევს, რომ რამე ზე 659 00:32:25,310 --> 00:32:28,460 ერთხელ მაინც, ხოლო რაღაც დანარჩენი არის ჭეშმარიტი. 660 00:32:28,460 --> 00:32:31,550 და ეს განსაკუთრებით კარგია პროგრამების ან თამაშების სადაც გსურთ 661 00:32:31,550 --> 00:32:33,810 უბიძგონ შესახებ რაღაც ერთხელ მაინც. 662 00:32:33,810 --> 00:32:37,110 და მაშინ, თუ იგი არ ითანამშრომლებს, დაგვჭირდება ამის გაკეთება 663 00:32:37,110 --> 00:32:38,420 ისევ და ისევ. 664 00:32:38,420 --> 00:32:41,270 >> ერთად ცვლადები, ამასობაში, ჩვენ გვქონდა ხაზები კოდის მსგავსად, რომელიც 665 00:32:41,270 --> 00:32:41,950 ორი ხაზი. 666 00:32:41,950 --> 00:32:44,830 თქვენ შეიძლება განაცხადოს, int მოუწოდა მრიცხველი, მძიმით. 667 00:32:44,830 --> 00:32:47,660 ან შეგიძლიათ უბრალოდ განაცხადოს და განსაზღვრავს ის, ასე ვთქვათ. 668 00:32:47,660 --> 00:32:49,950 მისთვის მნიშვნელობა ამავე დროს. 669 00:32:49,950 --> 00:32:51,890 >> და მაშინ ბოლოს, ჩვენ ვისაუბრეთ დაახლოებით ფუნქციები. 670 00:32:51,890 --> 00:32:54,270 ეს იყო ლამაზი მაგალითია იმ გაგებით, რომ იგი ასახავს 671 00:32:54,270 --> 00:32:55,840 ორი სახის ფუნქციებს. 672 00:32:55,840 --> 00:32:59,030 ერთი არის GetString (), რომელიც, კიდევ ერთხელ, იღებს ნახატზე შესახებ. 673 00:32:59,030 --> 00:33:02,040 მაგრამ GetString () ერთგვარი საინტერესო, იმდენად, რამდენადაც ჩვენ გამოვიყენეთ ის, 674 00:33:02,040 --> 00:33:05,620 იმიტომ, რომ ჩვენ ყოველთვის ერთად რაღაც მარცხენა მხარეს 675 00:33:05,620 --> 00:33:06,600 თანაბარი ნიშანი. 676 00:33:06,600 --> 00:33:09,830 ანუ, რომ GetString () დააბრუნებს მნიშვნელობას. 677 00:33:09,830 --> 00:33:11,970 ის დააბრუნებს, რა თქმა უნდა, მხოლოდ. 678 00:33:11,970 --> 00:33:15,130 შემდეგ კი მარცხენა მხარეს, ჩვენ უბრალოდ გადასარჩენად, რომ სიმებიანი შიგნით 679 00:33:15,130 --> 00:33:16,580 ცვლადში სახელი. 680 00:33:16,580 --> 00:33:21,100 >> ეს არის განსხვავებული, ამ თვალსაზრისით, საწყისი ფასი printf რადგან printf მაინც, ჩვენი 681 00:33:21,100 --> 00:33:23,540 გამოყენება აქ, არ დაბრუნდება არაფერი. 682 00:33:23,540 --> 00:33:24,960 როგორც განზე, ის დაბრუნების რაღაც. 683 00:33:24,960 --> 00:33:26,380 ჩვენ უბრალოდ არ მაინტერესებს რა არის. 684 00:33:26,380 --> 00:33:29,090 თუმცა, ეს იმას თუ რა არის მოუწოდა მხარე ეფექტი. 685 00:33:29,090 --> 00:33:31,840 და რა არის ის, რომ მხარე ეფექტი ყველა შემთხვევაში ჩვენ ვნახეთ დღემდე? 686 00:33:31,840 --> 00:33:34,720 რას printf გაკეთება? 687 00:33:34,720 --> 00:33:37,780 იგი ბეჭდავს რაღაც ეკრანზე, მონიტორები ტექსტის ან ნომრები ან რაღაც 688 00:33:37,780 --> 00:33:38,380 ეკრანზე. 689 00:33:38,380 --> 00:33:41,170 და ეს მხოლოდ განიხილება მხარე ეფექტი რადგანაც ეს ნამდვილად არ გადაცემის 690 00:33:41,170 --> 00:33:41,900 უკან ჩემთვის. 691 00:33:41,900 --> 00:33:44,770 ეს არ არის პასუხი შიგნით შავი ყუთი რომ მე მაშინ 692 00:33:44,770 --> 00:33:46,130 მიაღწევს შევიდა და დაიბრუნოს. 693 00:33:46,130 --> 00:33:49,160 უბრალოდ აკეთებს ამას საკუთარი, გაცილებით ისევე როგორც კოლტონი იყო plugged შევიდა ამ 694 00:33:49,160 --> 00:33:52,560 შავი ყუთი გასულ კვირას, და ის როგორღაც magically იყო ხატვის ფორუმში 695 00:33:52,560 --> 00:33:54,500 უჩემოდ რეალურად ჩართული. 696 00:33:54,500 --> 00:33:55,560 ეს იქნება მხარის ეფექტი. 697 00:33:55,560 --> 00:33:59,100 მაგრამ, თუ შეეძლოთ მიღწევა უკან აქ და აცხადებენ, oh, აქ სიმებიანი 698 00:33:59,100 --> 00:34:02,040 ეხლა შესახებ, რაც იყოს დაბრუნებული მნიშვნელობა. 699 00:34:02,040 --> 00:34:05,650 >> და დღემდე ჩვენ მხოლოდ ფუნქციები რომ სხვა ადამიანების მიერ დაწერილი. 700 00:34:05,650 --> 00:34:09,219 მაგრამ ჩვენ შეგვიძლია რეალურად გავაკეთოთ ეს სახის რამ საკუთარ თავს. 701 00:34:09,219 --> 00:34:12,730 ამიტომ, მე ვაპირებ წასვლას CS50 მოწყობილობების ერთხელ. 702 00:34:12,730 --> 00:34:16,020 ნება მომეცით ჩემი გამოსვლა tab, რომ ჩვენ ჰქონდათ ღია მომენტში წინ. 703 00:34:16,020 --> 00:34:18,530 და ნება მომეცით წავიდეთ წინ და შექმნა ახალი ფაილი. 704 00:34:18,530 --> 00:34:22,400 და მე ვაპირებ წავიდეთ წინ და დაარქვით მას positive.c. 705 00:34:22,400 --> 00:34:24,770 მინდა, რომ რამე ერთად დადებითი ციფრები აქ. 706 00:34:24,770 --> 00:34:27,219 ამიტომ, მე ვაპირებ წავიდეთ წინ და ამის გაკეთება int - 707 00:34:27,219 --> 00:34:28,000 ბოდიში - 708 00:34:28,000 --> 00:34:31,840 # მოიცავს. 709 00:34:31,840 --> 00:34:34,280 ნუ გააკეთოს, რომ იგივე შეცდომა, როგორც ადრე. 710 00:34:34,280 --> 00:34:40,020 Int მთავარი (ბათილად), ღია curly მუდმივი წინააღმდეგობა გაუწიოს, დახურული curly მუდმივი წინააღმდეგობა გაუწიოს. 711 00:34:40,020 --> 00:34:41,639 >> ახლა კი მინდა შემდეგ. 712 00:34:41,639 --> 00:34:44,600 მინდა დაწერა პროგრამა, რომელიც ამტკიცებს, რომ მომხმარებელს აძლევს 713 00:34:44,600 --> 00:34:46,770 ჩემთვის დადებითი მთელი რიცხვი. 714 00:34:46,770 --> 00:34:50,969 ასე რომ, არ არსებობს GetPositiveInt ფუნქცია ამ CS50 ბიბლიოთეკა. 715 00:34:50,969 --> 00:34:52,610 არის მხოლოდ GetInt (). 716 00:34:52,610 --> 00:34:55,790 მაგრამ ეს OK რადგან აშენებს, რომლითაც შემიძლია დააწესოს 717 00:34:55,790 --> 00:34:59,360 ცოტა მეტი შეზღუდვა, რომ მნიშვნელობა. 718 00:34:59,360 --> 00:35:00,990 მე ვერ რომ რამე მოსწონს ეს. 719 00:35:00,990 --> 00:35:02,780 >> ასე int n - 720 00:35:02,780 --> 00:35:04,920 და თუ თქვენ აკრეფით გასწვრივ, უბრალოდ გააცნობიეროს მე ვაპირებ უკან და 721 00:35:04,920 --> 00:35:06,430 შეცვალოს ზოგიერთი რამ მომენტში - 722 00:35:06,430 --> 00:35:09,960 ასე int n შეადგენს GetInt (). 723 00:35:09,960 --> 00:35:11,780 და ეს გეგმავს int შიგნით ო. 724 00:35:11,780 --> 00:35:13,830 და ნება მომეცით უფრო აღწერითი. 725 00:35:13,830 --> 00:35:23,270 ნება მომეცით აღვნიშნო, რომ მსგავსი რამ მოვითხოვ თქვენ მაძლევს დადებითი მთელი რიცხვი. 726 00:35:23,270 --> 00:35:23,550 >> ყველა უფლება. 727 00:35:23,550 --> 00:35:25,250 ასე რომ მხოლოდ ცოტა ინსტრუქციები. 728 00:35:25,250 --> 00:35:26,270 ახლა კი რა გავაკეთო? 729 00:35:26,270 --> 00:35:29,840 მე უკვე ვიცი, რომ ჩემი უბრალო პირობების ან ფილიალი, ისევე, როგორც მე 730 00:35:29,840 --> 00:35:36,100 ჰქონდა Scratch, მე ვიტყოდი, რაღაც მინდა, თუ n ნაკლებია ან ტოლი 731 00:35:36,100 --> 00:35:44,460 ნულოვანი, მაშინ მე მინდა, რომ რამე მინდა, რომ არ არის დადებითი. 732 00:35:44,460 --> 00:35:45,560 და მე ვერ გააკეთებდა - 733 00:35:45,560 --> 00:35:47,310 კარგია, მაგრამ მე ნამდვილად გვინდა, რომ int. 734 00:35:47,310 --> 00:35:52,020 ასე რომ, მე წასვლა აქ და მე ვერ ტიპის ასლის ამ და აბზაცის ამ. 735 00:35:52,020 --> 00:35:52,570 და მაშინ, OK. 736 00:35:52,570 --> 00:35:56,990 ასე რომ, თუ n ნაკლებია ან ნულის ტოლია გაკეთება. 737 00:35:56,990 --> 00:35:58,900 >> ახლა, რა შემთხვევაში შესახებ არ თანამშრომლობს? 738 00:35:58,900 --> 00:36:01,560 კარგად, მაშინ მე ვაპირებ კარიერებისა ამ აქ. 739 00:36:01,560 --> 00:36:03,130 და მერე წავიდეს აქ და აქ და აქ. 740 00:36:03,130 --> 00:36:06,420 ასე რომ, ეს ნამდვილად არ გადაწყვეტა, არა? 741 00:36:06,420 --> 00:36:07,810 იმის გამო, რომ არ არსებობს ბოლომდე ჩანდა. 742 00:36:07,810 --> 00:36:13,100 თუკი მინდა მოითხოვენ, რომ მომხმარებელს აძლევს ჩემთვის დადებითი მთელი რიცხვი, შემიძლია 743 00:36:13,100 --> 00:36:14,150 რეალურად მიიღონ int. 744 00:36:14,150 --> 00:36:15,620 შემიძლია შემდეგ შემოწმება, რომ int. 745 00:36:15,620 --> 00:36:18,570 მაგრამ მინდა გადამოწმება კიდევ ერთხელ და შეამოწმეთ იგი კვლავ და შემოწმება შეიძლება. 746 00:36:18,570 --> 00:36:21,680 ასე რომ, ცხადია, რა უკეთესი მშენებლობა უნდა გამოყენებით აქ? 747 00:36:21,680 --> 00:36:22,840 ყველა უფლება, გარკვეული ციკლი. 748 00:36:22,840 --> 00:36:25,430 >> ამიტომ, მე ვაპირებ, თავი დაეღწია თითქმის ყველა ამ. 749 00:36:25,430 --> 00:36:27,320 მინდა მიიღოს ამ int ერთხელ მაინც. 750 00:36:27,320 --> 00:36:28,890 ამიტომ, მე ვაპირებ ვთქვა გააკეთოს - 751 00:36:28,890 --> 00:36:32,110 და მე დაბრუნდება ხოლო სულ რაღაც მომენტში - 752 00:36:32,110 --> 00:36:33,050 ახლა, რა? 753 00:36:33,050 --> 00:36:35,860 მე ვაპირებ გაკეთებას int n იღებს GetInt (). 754 00:36:35,860 --> 00:36:36,080 OK. 755 00:36:36,080 --> 00:36:37,250 ასე რომ, საკმაოდ კარგი. 756 00:36:37,250 --> 00:36:39,750 ახლა კი რამდენად ხშირად მინდა ამის გაკეთება? 757 00:36:39,750 --> 00:36:45,770 >> ნება მიბოძეთ printf შიგნით მარყუჟის ასე რომ მოითხოვოს ისევ და ისევ, 758 00:36:45,770 --> 00:36:46,740 თუ საჭირო იქნება. 759 00:36:46,740 --> 00:36:49,720 და რას მინდა ხოლო პირობით უნდა გავაკეთოთ? 760 00:36:49,720 --> 00:36:53,870 მინდა აკეთეთ ამ ხოლო თუ რა არის საქმე? 761 00:36:53,870 --> 00:36:54,125 ჰო. 762 00:36:54,125 --> 00:36:55,390 N ნაკლებია ან ნულის ტოლია. 763 00:36:55,390 --> 00:36:58,180 ასე რომ, უკვე, ჩვენ მნიშვნელოვნად გაიწმინდა ეს კოდი up. 764 00:36:58,180 --> 00:37:00,700 ჩვენ ითხოვა ძალიან მარტივია მშენებლობა - do-ხოლო ციკლი. 765 00:37:00,700 --> 00:37:04,690 მე მოპარული მხოლოდ მნიშვნელოვანი ხაზები კოდექსი, დავიწყე გადაწერა და 766 00:37:04,690 --> 00:37:05,960 pasting, რაც არ იყო ბრძენი. 767 00:37:05,960 --> 00:37:09,790 ასე რომ, ახლა მე ვაპირებ, ფაქტობრივად, ჩასვით იგი აქ და მხოლოდ ამის გაკეთება კიდევ ერთხელ. 768 00:37:09,790 --> 00:37:12,990 >> ახლა კი რა მინდა გააკეთოს ბოლომდე ამ პროგრამის? 769 00:37:12,990 --> 00:37:16,810 მე მხოლოდ ამბობენ, რომ რაღაც მარტივი მინდა, მადლობა - და 770 00:37:16,810 --> 00:37:18,980 გავაკეთებ% i for int - 771 00:37:18,980 --> 00:37:23,270 წარმატებული ო, მძიმე, და შემდეგ plug in ნ მძიმით. 772 00:37:23,270 --> 00:37:23,910 >> ყველა უფლება. 773 00:37:23,910 --> 00:37:27,290 მოდით ვნახოთ, რა მოხდება ახლა როდესაც მე აწარმოებს ამ პროგრამაში. 774 00:37:27,290 --> 00:37:30,600 მე ვაპირებ წავიდეთ წინ და ნუ პოზიტიური. 775 00:37:30,600 --> 00:37:30,880 Damn. 776 00:37:30,880 --> 00:37:31,600 რამდენიმე შეცდომები. 777 00:37:31,600 --> 00:37:32,960 ნება მომეცით, გადახვევა უკან პირველი. 778 00:37:32,960 --> 00:37:34,020 არ მუშაობს მათ უკან. 779 00:37:34,020 --> 00:37:37,000 მუშაობა მათ ზემოდან ქვემოთ Lest ისინი კასკადი და მხოლოდ 780 00:37:37,000 --> 00:37:38,630 ერთი რამ იყოს არასწორი. 781 00:37:38,630 --> 00:37:42,532 იმპლიციტური დეკლარაციას ფუნქციის GetInt (). 782 00:37:42,532 --> 00:37:43,020 ჰო. 783 00:37:43,020 --> 00:37:44,420 ასე რომ, ეს არ არის საკმარისი. 784 00:37:44,420 --> 00:37:46,760 I ტიპის გააკეთა იგივე შეცდომა, მაგრამ ცოტა განსხვავებული ამ დროს. 785 00:37:46,760 --> 00:37:51,940 მე უნდა არა მხოლოდ მოიცავს stdio.h მაგრამ ასევე cs50.h, რომელიც მოიცავს 786 00:37:51,940 --> 00:37:56,770 ე.წ. განცხადებები მისაღებად int, რომელიც ასწავლიან მოწყობილობების, ან ასწავლის 787 00:37:56,770 --> 00:37:58,760 C რა GetInt () არის. 788 00:37:58,760 --> 00:37:59,550 >> ნება მომეცით resave. 789 00:37:59,550 --> 00:38:02,040 მე ვაპირებ იგნორირება სხვა შეცდომები იმიტომ, რომ მე ვაპირებ იმედი მაქვს, რომ ისინი 790 00:38:02,040 --> 00:38:05,210 როგორღაც დაკავშირებული შეცდომა მე უკვე დაფიქსირდა. 791 00:38:05,210 --> 00:38:08,710 ნება მომეცით, წავიდეთ წინ და recompile ერთად პოზიტიური, შეიტანეთ. 792 00:38:08,710 --> 00:38:09,020 Damn. 793 00:38:09,020 --> 00:38:09,985 სამი შეცდომები, მაინც. 794 00:38:09,985 --> 00:38:12,650 ნება მომეცით გადახვევა მდე პირველი. 795 00:38:12,650 --> 00:38:14,320 გამოუყენებელი ცვლადი ო. 796 00:38:14,320 --> 00:38:15,850 ჩვენ არ უნახავს ეს ადრე. 797 00:38:15,850 --> 00:38:17,200 ეს კი, ძალიან, არის პატარა cryptic. 798 00:38:17,200 --> 00:38:18,850 ეს არის გამომავალი შემდგენელი. 799 00:38:18,850 --> 00:38:23,610 და რა, რომ ხაზი გაუსვა ხაზი იქ - positive.c :9:13 - 800 00:38:23,610 --> 00:38:28,960 ამბობს, რომ ეს დაყრდნობით ხაზი ცხრა positive.c, იმ მე -13 ხასიათი, 801 00:38:28,960 --> 00:38:31,510 მე -13 სვეტი, გააკეთეთ ეს შეცდომა. 802 00:38:31,510 --> 00:38:34,230 >> განსაკუთრებით ეს ეუბნება მე გამოუყენებელი ცვლადი ო. 803 00:38:34,230 --> 00:38:35,790 ასე რომ, ვნახოთ - 804 00:38:35,790 --> 00:38:37,150 ხაზი ცხრა. 805 00:38:37,150 --> 00:38:40,430 მე გამოყენებით n იმ თვალსაზრისით, რომ მე რაც მას მნიშვნელობას. 806 00:38:40,430 --> 00:38:44,200 მაგრამ რა კომპილატორი არ მოსწონს არის რომ მე არ შეხედვით გამოყენება. 807 00:38:44,200 --> 00:38:45,560 მაგრამ დაველოდოთ ერთი წუთით, მე გამოყენება. 808 00:38:45,560 --> 00:38:48,170 შესაბამისად 11, მე გამოყენებით მას აქ. 809 00:38:48,170 --> 00:38:52,430 მაგრამ თუ გადაფურცლეთ ქვემოთ შემდგომი ზე positive.c :11 - 810 00:38:52,430 --> 00:38:56,230 ისე ხაზი 11, ხასიათი 12, შემდგენელი ის მეუბნებოდა, გამოყენების 811 00:38:56,230 --> 00:38:58,670 გამოუცხადებელ იდენტიფიკატორი ო. 812 00:38:58,670 --> 00:39:02,760 >> ასე რომ გამოუცხადებელი საშუალება მაქვს არ არის მითითებული იქნება, როგორც 813 00:39:02,760 --> 00:39:04,970 ცვლადი ერთად მონაცემთა ტიპის. 814 00:39:04,970 --> 00:39:05,500 მაგრამ დაველოდოთ წუთში. 815 00:39:05,500 --> 00:39:09,150 მე ზუსტად რომ შეესაბამება ცხრა. 816 00:39:09,150 --> 00:39:11,100 ასე რომ ვინმე მართლაც დაბნეული აქ. 817 00:39:11,100 --> 00:39:14,900 ეს არც მე ან კომპილატორი, რადგან შეესაბამება ცხრა, ისევ, მე გამოცხადების 818 00:39:14,900 --> 00:39:18,650 int n, და მე მინიჭების იგი დაბრუნების ღირებულება GetInt (). 819 00:39:18,650 --> 00:39:22,930 მაშინ მე გამოყენებით, რომელიც ცვლადი ო შეესაბამება 11 და შემოწმების თუ მისი ღირებულება ნაკლებია 820 00:39:22,930 --> 00:39:24,050 მეტი ან ტოლია ნულის ტოლია. 821 00:39:24,050 --> 00:39:27,430 მაგრამ ეს, როგორც ჩანს, არის ცუდი და გატეხილი რატომ? 822 00:39:27,430 --> 00:39:30,630 823 00:39:30,630 --> 00:39:32,490 ამბობენ, რომ ეს აღარ განმეორდეს? 824 00:39:32,490 --> 00:39:35,690 >> Ah, უნდა განაცხადოს ო ადრე შესვლის ციკლი. 825 00:39:35,690 --> 00:39:36,370 მაგრამ რატომ? 826 00:39:36,370 --> 00:39:39,830 ვგულისხმობ, ჩვენ უბრალოდ წინადადებით ცოტა წინ, რომ ეს ჯარიმა განაცხადოს ცვლადები 827 00:39:39,830 --> 00:39:43,600 ყველა ერთ ხაზს და მერე მივანიჭოთ მათ გარკვეული მნიშვნელობა. 828 00:39:43,600 --> 00:39:46,790 გლობალური ცვლადი - მოდით დავბრუნდებით იმ აზრს, რაღაც მომენტში. 829 00:39:46,790 --> 00:39:48,690 რატომ გსურთ ჩემთვის დააყენოს იგი გარეთ მარყუჟის? 830 00:39:48,690 --> 00:40:03,170 831 00:40:03,170 --> 00:40:03,830 ეს არის. 832 00:40:03,830 --> 00:40:06,780 ზუსტად. 833 00:40:06,780 --> 00:40:09,610 >> ასე რომ, თუმცა, გარკვეულწილად counterintuitive, ნება მომეცით შეაჯამებს. 834 00:40:09,610 --> 00:40:13,510 როდესაც თქვენ გამოაცხადოს ო შიგნით საქართველოს do ბლოკი იქ - 835 00:40:13,510 --> 00:40:16,320 კონკრეტულად შიგნით იმ curly აფრთხილებს - 836 00:40:16,320 --> 00:40:19,210 რომ ცვლადი n აქვს რა მოუწოდა ფარგლებს - 837 00:40:19,210 --> 00:40:23,210 არ უკავშირდება ჩვენს გაიტანა სისტემის რა თქმა უნდა - მაგრამ ფარგლებს, რომ 838 00:40:23,210 --> 00:40:25,190 შემოიფარგლება იმ curly აფრთხილებს. 839 00:40:25,190 --> 00:40:28,460 სხვა სიტყვებით, როგორც წესი, თუ თქვენ გამოაცხადოს ცვლადი შიგნით კომპლექტი 840 00:40:28,460 --> 00:40:33,370 curly აფრთხილებს, რომ ცვლადის მხოლოდ არსებობს შიგნით იმ curly აფრთხილებს. 841 00:40:33,370 --> 00:40:37,320 ასე რომ, იმ ლოგიკით მარტო, მიუხედავად იმისა, მე განაცხადა n შეესაბამება ცხრა, ეს 842 00:40:37,320 --> 00:40:41,910 არსებითად ქრება ფარგლებში, ქრება მეხსიერება, ასე ვთქვათ, 843 00:40:41,910 --> 00:40:43,370 იმ დროისთვის მე მოხვდა ხაზი 11. 844 00:40:43,370 --> 00:40:47,370 იმის გამო, რომ ხაზი 11, სამწუხაროდ, არის გარეთ იმ curly აფრთხილებს. 845 00:40:47,370 --> 00:40:51,540 >> ასე, რომ, სამწუხაროდ, ვერ დაფიქსირება ამ მიერ ბრუნდება რა გავაკეთე, რომ ადრე. 846 00:40:51,540 --> 00:40:53,370 თქვენ ალბათ პირველ რიგში ამის გაკეთება. 847 00:40:53,370 --> 00:40:56,370 მაგრამ რა ხარ ახლა არ აკეთებს ციკლურად? 848 00:40:56,370 --> 00:40:58,260 თქვენ აშკარად ვერ ვიღებთ int ციკლურად. 849 00:40:58,260 --> 00:41:01,320 ასე რომ, ჩვენ შეიძლება დატოვოს GetInt (), და ჩვენ უნდა დატოვონ GetInt () შიგნით 850 00:41:01,320 --> 00:41:04,420 მარყუჟის იმიტომ, რომ ის, რაც ჩვენ გვინდა pester შესახებ, ისევ და ისევ. 851 00:41:04,420 --> 00:41:08,660 მაგრამ ეს იმას გვაძლევს, წავიდეთ მდე ხაზი, ვთქვათ, ექვსი. 852 00:41:08,660 --> 00:41:10,150 Int N, მძიმით. 853 00:41:10,150 --> 00:41:12,990 არ მისცეს მას ღირებულება ჯერჯერობით რადგან თქვენ არ გჭირდებათ მხოლოდ ამჟამად. 854 00:41:12,990 --> 00:41:16,220 >> მაგრამ ახლა ყველაფერი აქ, გაფრთხილების - ეს იქნება ძალიან ადვილია შეცდომა. 855 00:41:16,220 --> 00:41:19,440 მე არ მინდა, რომ დაჩრდილოს ჩემი წინა დეკლარაციას ო. 856 00:41:19,440 --> 00:41:22,830 მინდა ო, რომ ნამდვილად არსებობს. 857 00:41:22,830 --> 00:41:25,780 ასე რომ, ახლა ხაზზე 10, მე დაავალოს n ღირებულება. 858 00:41:25,780 --> 00:41:28,580 მაგრამ ხაზი ექვსი, ვაცხადებ ო. 859 00:41:28,580 --> 00:41:32,940 ასე რომ, შემიძლია, ან ვერ გამოყენება ხაზი 12 ახლა? 860 00:41:32,940 --> 00:41:37,120 მე არ შემიძლია, რადგან შორის, რომელიც curly აფრთხილებს არის n განაცხადა ახლა? 861 00:41:37,120 --> 00:41:38,770 ერთი გოლი აქ ხაზი ხუთ. 862 00:41:38,770 --> 00:41:40,330 ერთი აქ ხაზი 14. 863 00:41:40,330 --> 00:41:49,770 ასე რომ, თუ მე ახლა დააშორებს, გარდა ფაილის წასვლა ისევ და აწარმოებს პოზიტიური, ეს 864 00:41:49,770 --> 00:41:50,820 შედგენილი ამ დროს. 865 00:41:50,820 --> 00:41:51,940 ასე რომ, უკვე მიმდინარეობს. 866 00:41:51,940 --> 00:41:53,640 სლეში. . / დადებითი, შეიტანეთ. 867 00:41:53,640 --> 00:41:56,060 >> მოვითხოვ, რომ თქვენ მაძლევს დადებითი მთელი რიცხვი. 868 00:41:56,060 --> 00:41:57,750 უარყოფითი 1. 869 00:41:57,750 --> 00:41:59,020 უარყოფითი 2. 870 00:41:59,020 --> 00:42:00,680 უარყოფითი 3. 871 00:42:00,680 --> 00:42:01,760 ნულოვანი. 872 00:42:01,760 --> 00:42:03,000 ერთი. 873 00:42:03,000 --> 00:42:05,130 და მადლობა ერთი რა ახლა დაბეჭდილი. 874 00:42:05,130 --> 00:42:07,400 >> ნება მომეცით ცდილობენ, რაღაც, გარეთ ცნობისმოყვარეობა. 875 00:42:07,400 --> 00:42:09,600 მე ეუბნებიან შეყვანის რიცხვი. 876 00:42:09,600 --> 00:42:12,870 მაგრამ მე ვფიქრობ ნაცვლად აკრიფოთ ცხვრის? 877 00:42:12,870 --> 00:42:14,460 ასე რომ, ახლა ვხედავთ სხვადასხვა სწრაფი - 878 00:42:14,460 --> 00:42:15,350 სცადეთ კიდევ ერთხელ. 879 00:42:15,350 --> 00:42:17,670 მაგრამ არსად ჩემს კოდი საერთოდ ვწერ სცადეთ კიდევ ერთხელ. 880 00:42:17,670 --> 00:42:22,320 ასე რომ, სადაც, სავარაუდოდ, ამ კვალვ შეგახსენებთ მოდიოდა, იტყვით? 881 00:42:22,320 --> 00:42:23,540 ჰო, ეხლა GetInt () თავად. 882 00:42:23,540 --> 00:42:26,650 ასე რომ, ერთი რამ CS50 პერსონალი აკეთებს თქვენ, როგორც მინიმუმ, ამ პირველი რამდენიმე 883 00:42:26,650 --> 00:42:30,400 კვირის განმავლობაში, რომელიც ჩვენ წერილობითი გარკვეული თანხა შეცდომის შემოწმების იმის უზრუნველყოფა, რომ იმ შემთხვევაში, თუ 884 00:42:30,400 --> 00:42:34,260 რეკავთ GetInt (), მაშინ თქვენ სულ მცირე დავუბრუნდეთ int ეხლა შესახებ. 885 00:42:34,260 --> 00:42:35,460 ვერ მიიღებთ მხოლოდ. 886 00:42:35,460 --> 00:42:36,440 ვერ მიიღებთ char. 887 00:42:36,440 --> 00:42:39,660 თქვენ არ მიიღოს რაღაც დანარჩენი საერთოდ. 888 00:42:39,660 --> 00:42:40,510 თქვენ მიიღებთ int. 889 00:42:40,510 --> 00:42:41,890 >> ახლა, ეს არ უნდა იყოს დადებითი. 890 00:42:41,890 --> 00:42:42,770 ეს არ უნდა იყოს უარყოფითი. 891 00:42:42,770 --> 00:42:44,550 ჩვენ არ გარანტიები გარშემო, რომ. 892 00:42:44,550 --> 00:42:48,960 მაგრამ ჩვენ pester შესახებ კვლავ სცადოთ, კვალვ, კვალვ, სანამ იგი რეალურად 893 00:42:48,960 --> 00:42:49,810 თანამშრომლობს. 894 00:42:49,810 --> 00:42:53,085 ანალოგიურად, თუ 1.23, ეს არ არის int. 895 00:42:53,085 --> 00:42:58,400 მაგრამ, თუ აკრიფოთ, ვთქვათ, 50, რომ მაძლევს ღირებულება, რომელიც მინდოდა. 896 00:42:58,400 --> 00:42:59,050 >> ყველა უფლება. 897 00:42:59,050 --> 00:43:01,380 ასე რომ ცუდი არ არის. 898 00:43:01,380 --> 00:43:04,780 ნებისმიერი შეკითხვა, რაც ჩვენ უბრალოდ გაკეთდეს? 899 00:43:04,780 --> 00:43:07,930 გასაღები takeaway მყოფი, უნდა იყოს ნათელი, არ იმდენად მარყუჟის, რომელიც ჩვენ ვნახეთ 900 00:43:07,930 --> 00:43:10,880 ადრე მიუხედავად იმისა, რომ ჩვენ არ გვაქვს ნამდვილად გამოიყენება, მაგრამ საკითხი ფარგლებს, სადაც 901 00:43:10,880 --> 00:43:17,045 ცვლადები შესაძლებელია მხოლოდ გამოიყენება მხოლოდ შემადგენლობა რამდენიმე მითითებულ ფარგლებში. 902 00:43:17,045 --> 00:43:19,830 >> ყველა უფლება, ნება მიბოძეთ წინადადება თქვენ გააკეთა ადრე, რომ 903 00:43:19,830 --> 00:43:20,860 გლობალური განსხვავებულია. 904 00:43:20,860 --> 00:43:24,880 როგორც განზე აღმოჩნდება, რომ კიდევ ერთი აღნიშნული პრობლემის მოსაგვარებლად, მაგრამ 905 00:43:24,880 --> 00:43:28,880 როგორც წესი, არასწორი გადაწყვეტილება ან ცუდად შექმნილია გადაწყვეტა, არის ის, რომ 906 00:43:28,880 --> 00:43:31,670 ვაცხადებთ თქვენი ცვლადი როგორც რა მოუწოდა გლობალური განსხვავებულია. 907 00:43:31,670 --> 00:43:34,610 ახლა მე სახის დარღვევის ჩემი განმარტება საქართველოს ფარგლებს, რადგან არსებობს 908 00:43:34,610 --> 00:43:37,680 არ curly აფრთხილებს ზუსტად იმ დაბრუნება და ძალიან ბოლოში ფაილი. 909 00:43:37,680 --> 00:43:40,190 მაგრამ გულისხმობს, რომ არის, რომ ახლა შეესაბამება ოთხი, 910 00:43:40,190 --> 00:43:41,710 n არის გლობალური განსხვავებულია. 911 00:43:41,710 --> 00:43:44,460 და როგორც სახელი გულისხმობს, ეს მხოლოდ ხელმისაწვდომი ყველგან. 912 00:43:44,460 --> 00:43:45,790 >> Scratch რეალურად აქვს. 913 00:43:45,790 --> 00:43:48,650 თუ თქვენ გამოიყენება ცვლადი, თქვენ ალბათ გახსოვთ თქვენ უნდა აირჩიოს, თუ ეს შეეხება 914 00:43:48,650 --> 00:43:50,780 ამ Sprite ან ყველა sprites. 915 00:43:50,780 --> 00:43:54,270 ისე, ყველა sprites მხოლოდ ნათელი გზა ამბობდა გლობალური. 916 00:43:54,270 --> 00:43:55,520 ჰო? 917 00:43:55,520 --> 00:44:09,690 918 00:44:09,690 --> 00:44:10,990 Ah, კარგი კითხვა. 919 00:44:10,990 --> 00:44:14,310 >> ასე რომ გავიხსენოთ, რომ პირველი მობილური , ჩემი კოდი, როდესაც მე არასწორად 920 00:44:14,310 --> 00:44:17,700 განაცხადა და განისაზღვრება n შეესაბამება ცხრა - 921 00:44:17,700 --> 00:44:19,980 I გამოაცხადა, როგორც ცვლადი და მე მას ღირებულების მქონე 922 00:44:19,980 --> 00:44:21,160 დავალება ოპერატორი - 923 00:44:21,160 --> 00:44:22,520 ამ მომცა ორი შეცდომები. 924 00:44:22,520 --> 00:44:26,560 ერთი, ის ფაქტი, რომ n არ იყო გამოყენებული, და ორი, რომ ხაზი 11 925 00:44:26,560 --> 00:44:27,770 უბრალოდ არ იყო გამოცხადებული. 926 00:44:27,770 --> 00:44:31,120 ასე რომ, პირველი მე არ მისამართი დროს. 927 00:44:31,120 --> 00:44:35,130 ეს არ არის მკაცრად შეცდომა გამოაცხადოს ცვლადი მაგრამ ვერ გამოიყენებს. 928 00:44:35,130 --> 00:44:38,540 მაგრამ ერთი რამ ჩვენ გავაკეთეთ in CS50 მოწყობილობების, განზრახ, 929 00:44:38,540 --> 00:44:43,340 pedagogically, რომელიც ჩვენ cranked up მოლოდინი შემდგენელი, რათა 930 00:44:43,340 --> 00:44:46,970 დარწმუნებული ვარ, რომ თქვენ აკეთებთ რამ არ არის მხოლოდ სწორად მაგრამ ნამდვილად სწორად. 931 00:44:46,970 --> 00:44:51,520 >> იმიტომ, რომ თუ თქვენ გამოცხადების ცვლადი ისევე როგორც ო და არასოდეს იყენებს, ან გამოყენება 932 00:44:51,520 --> 00:44:53,700 სწორად, მაშინ რა იგი აკეთებს იქ? 933 00:44:53,700 --> 00:44:55,650 ეს მართლაც ემსახურებიან. 934 00:44:55,650 --> 00:44:58,980 და ეს ძალიან ადვილია, დროთა განმავლობაში, თუ არ დააკონფიგურიროთ თქვენი საკუთარი კომპიუტერი 935 00:44:58,980 --> 00:45:01,960 ამ გზით, უბრალოდ აქვს კოდი, რომელიც აქვს ცოტა ნარჩენებისგან აქ, ნარჩენებისგან არსებობს. 936 00:45:01,960 --> 00:45:04,390 შემდეგ კი თვის შემდეგ გადავხედავთ და უკან თქვენ, როგორიცაა, თუ რატომ არის ამ ხაზის 937 00:45:04,390 --> 00:45:05,060 კოდი იქ? 938 00:45:05,060 --> 00:45:07,940 და თუ იქ არ არის კარგი მიზეზი, მას არ ისარგებლოს თქვენი კოლეგები 939 00:45:07,940 --> 00:45:10,650 ქვემოთ გზა უნდა stumble მას შემდეგ. 940 00:45:10,650 --> 00:45:12,540 >> როგორც განზე, სად არის რომ მოდის? 941 00:45:12,540 --> 00:45:16,410 ასევე, გავიხსენოთ, რომ ყოველ ჯერზე ჩვენ შედგენა პროგრამა, ყველა ამ პერსონალის არის 942 00:45:16,410 --> 00:45:17,380 იბეჭდება. 943 00:45:17,380 --> 00:45:18,350 ასე რომ, ჩვენ დავბრუნდებით ამ. 944 00:45:18,350 --> 00:45:22,230 თუმცა ისევ და ისევ, მიიღოს არის უტილიტა, რომელიც automates პროცესის შედგენის მიერ 945 00:45:22,230 --> 00:45:24,830 გაშვებული ფაქტობრივი შემდგენელი მოუწოდა clang. 946 00:45:24,830 --> 00:45:27,650 ეს რამ, ჩვენ საბოლოოდ ვხედავთ, აქვს გავაკეთოთ ერთად გამართვის სპეციალური 947 00:45:27,650 --> 00:45:29,060 პროგრამა debugger. 948 00:45:29,060 --> 00:45:32,150 ეს არ უკავშირდება ოპტიმიზაციის კოდი - უფრო, რომ მომავალში. 949 00:45:32,150 --> 00:45:33,620 Std = c99 - 950 00:45:33,620 --> 00:45:37,870 ამას მხოლოდ იმას ნიშნავს, გამოიყენოთ 1999 მობილური C. C უკვე გარშემო კი უმეტეს 951 00:45:37,870 --> 00:45:40,830 ეს, მაგრამ მათ გააკეთეს კარგი ცვლილებები 10 პლუს წლის წინ. 952 00:45:40,830 --> 00:45:42,690 >> აი შესაბამისი პირობა. 953 00:45:42,690 --> 00:45:45,880 ჩვენ ვამბობთ, გააკეთოს ყველაფერი, რაც ადრე იქნებოდა გაფრთხილება 954 00:45:45,880 --> 00:45:48,560 შეცდომა თავიდან აცილების სტუდენტი ეხლა შედგენას. 955 00:45:48,560 --> 00:45:51,400 და კედლის საშუალებით გააკეთებს, რომ მთელი bunch რამ არ 956 00:45:51,400 --> 00:45:53,060 უბრალოდ დაკავშირებულია ცვლადი. 957 00:45:53,060 --> 00:45:54,700 და მაშინ ნება მომეცით გადახვევის ბოლოს ხაზი. 958 00:45:54,700 --> 00:45:56,430 ეს კი, ძალიან, ჩვენ საბოლოოდ დაბრუნდება. 959 00:45:56,430 --> 00:45:59,040 ეს არის აშკარად სახელი ფაილი მე შედგენას. 960 00:45:59,040 --> 00:46:02,160 ეს იხსენებს სახელით ფაილი მე outputting როგორც სახელი 961 00:46:02,160 --> 00:46:04,070 , ჩემი runnable პროგრამა. 962 00:46:04,070 --> 00:46:08,970 ეს-lcs50 მხოლოდ იმას ნიშნავს, გამოიყენოთ CS50 ბიბლიოთეკა და ნებისმიერი zeros და პირობა, რომ 963 00:46:08,970 --> 00:46:12,390 თანამშრომელთა წერდა და შედგენილი ადრე ამ წლის ინტეგრირება 964 00:46:12,390 --> 00:46:13,490 მათ ჩემი პროგრამა. 965 00:46:13,490 --> 00:46:16,130 >> და ყველას, ვიცი, რა-lm არის? 966 00:46:16,130 --> 00:46:18,150 ეს მათემატიკის ბიბლიოთეკა, რომელიც უბრალოდ იქ კი, თუ თქვენ 967 00:46:18,150 --> 00:46:19,320 არ ვაკეთებთ ნებისმიერი მათემატიკის. 968 00:46:19,320 --> 00:46:22,620 უბრალოდ ავტომატურად გათვალისწინებული ჩვენთვის მიხედვით. 969 00:46:22,620 --> 00:46:26,540 >> ისე, მინდა გავაკეთოთ ერთი სხვა მაგალითი აქ გახსნით ახალ ფაილს. 970 00:46:26,540 --> 00:46:30,560 და ნება მომეცით გადარჩენა ამ ერთი, როგორც string.c. 971 00:46:30,560 --> 00:46:37,980 გამოდის, რომ, როგორც ჩვენ ვსაუბრობთ მონაცემები სახის დღეს, იქ კიდევ უფრო 972 00:46:37,980 --> 00:46:40,630 მიმდინარეობს ქვეშ hood ვიდრე ჩვენ ვნახეთ დღემდე. 973 00:46:40,630 --> 00:46:42,290 ნება მომეცით სწრაფად გააკეთოს სწრაფი პროგრამა. 974 00:46:42,290 --> 00:46:44,510 ჩართეთ stdio.h. 975 00:46:44,510 --> 00:46:45,730 და მე გადარჩენა რომ. 976 00:46:45,730 --> 00:46:48,110 და იცით, ნება მომეცით არ გააკეთებს იგივე შეცდომა ისევ და ისევ. 977 00:46:48,110 --> 00:46:50,540 ჩართეთ cs50.h. 978 00:46:50,540 --> 00:46:54,870 და ნება მომეცით წავიდეთ წინ ახლა და ამის გაკეთება int მთავარი (ბათილად). 979 00:46:54,870 --> 00:46:58,790 >> ახლა კი, უბრალოდ, მინდა პროგრამა რომ აკეთებს ამას - ამბობენ სიმებიანი 980 00:46:58,790 --> 00:47:03,610 მოუწოდა და მიიღოს სიმებიანი ეხლა შესახებ. 981 00:47:03,610 --> 00:47:05,820 და ნება მომეცით პატარა ინსტრუქციები აქ - 982 00:47:05,820 --> 00:47:09,960 გთხოვთ, მომეცი სიმებიანი - ასე შესახებ იცის რა უნდა გააკეთოს. 983 00:47:09,960 --> 00:47:13,190 შემდეგ კი ქვემოთ აქ ქვემოთ ამისა, მინდა ასეთია - 984 00:47:13,190 --> 00:47:16,060 for int i იღებს ნულოვანი. 985 00:47:16,060 --> 00:47:18,580 ისევ, კომპიუტერული მეცნიერები, როგორც წესი, დაიწყოს დამთვლელი ზე ნულოვანი, მაგრამ ვერ 986 00:47:18,580 --> 00:47:20,340 გააკეთოს, რომ ერთი თუ ჩვენ ნამდვილად სურდა. 987 00:47:20,340 --> 00:47:27,240 ახლა მე ვაპირებ შევიდე ნაკლებია ვიდრე სიმებიანი ხანგრძლივობა s. 988 00:47:27,240 --> 00:47:28,430 ასე რომ strlen - 989 00:47:28,430 --> 00:47:29,510 S-T-R-L-E-N - 990 00:47:29,510 --> 00:47:31,650 კიდევ ერთხელ, ეს მოკლე, რადგან უფრო ადვილია შეიტანოთ, მიუხედავად იმისა, რომ ეს 991 00:47:31,650 --> 00:47:32,590 ცოტა cryptic. 992 00:47:32,590 --> 00:47:35,290 >> სწორედ ფუნქცია ჩვენ არ გამოიყენება ადრე მაგრამ ფაქტიურად აკეთებს, რომ - 993 00:47:35,290 --> 00:47:37,810 დაბრუნებას მე ნომერი, რომელიც წარმოადგენს ხანგრძლივობა სიმებიანი 994 00:47:37,810 --> 00:47:38,690 რომ მომხმარებელს აკრეფილი. 995 00:47:38,690 --> 00:47:41,740 თუ ისინი აკრეფილი hello, ეს დაბრუნდნენ ხუთ რადგან იქ ხუთ 996 00:47:41,740 --> 00:47:42,890 წერილები hello. 997 00:47:42,890 --> 00:47:45,390 ამის შემდეგ, ყოველ iteration of ამ მარყუჟის i პლუს პლუს. 998 00:47:45,390 --> 00:47:49,170 ასე რომ, კიდევ ერთხელ, სტანდარტული მშენებლობა კი, თუ თქვენ არ საკმაოდ ძალიან კომფორტული ან 999 00:47:49,170 --> 00:47:50,420 იცნობს ამჟამად. 1000 00:47:50,420 --> 00:47:53,220 >> მაგრამ ახლა ყოველ iteration ამ მარყუჟის შეამჩნია რა მე ვაპირებ ამის გაკეთებას. 1001 00:47:53,220 --> 00:47:56,690 მინდა წავიდეთ წინ და ბეჭდვა out ერთი გმირი - 1002 00:47:56,690 --> 00:47:59,940 ასე% c წარმატებული n ახალ ხაზზე. 1003 00:47:59,940 --> 00:48:00,990 შემდეგ კი, იცით, რა მინდა? 1004 00:48:00,990 --> 00:48:05,090 როგორიც არ უნდა იყოს სიტყვა, რომ მომხმარებელს ტიპის in, ისევე როგორც hello, მინდა ბეჭდვა 1005 00:48:05,090 --> 00:48:09,530 H-E-L-L-O, ერთი ხასიათი თითო ხაზზე. 1006 00:48:09,530 --> 00:48:13,080 სხვა სიტყვებით, მინდა მიიღოთ ინდივიდუალური სიმბოლოების ტექსტი, 1007 00:48:13,080 --> 00:48:16,770 რომლის დღემდე სიმებიანი ახლახანს ყოფილა რიგითობა სიმბოლოს. 1008 00:48:16,770 --> 00:48:21,690 >> და აღმოჩნდება, შემიძლია s, bracket, i, ახლო bracket, დახუროს 1009 00:48:21,690 --> 00:48:23,580 ფრჩხილებში, მძიმით. 1010 00:48:23,580 --> 00:48:25,640 მე უნდა გავაკეთოთ კიდევ ერთი რამ. 1011 00:48:25,640 --> 00:48:30,570 ეს არის ამ ფაილი სახელად string.h რომ strlen განისაზღვრება. 1012 00:48:30,570 --> 00:48:33,190 ასე რომ, თუ მინდა, რომ ფუნქცია, მე უნდა გითხრათ შემდგენელი, 1013 00:48:33,190 --> 00:48:34,450 ველით, რომ გამოიყენოს იგი. 1014 00:48:34,450 --> 00:48:37,040 ახლა ნება მომეცით წავიდეთ წინ და მიიღოს პროგრამა სიმებიანი. 1015 00:48:37,040 --> 00:48:39,150 Dot, ხაზი, სიმებიანი. 1016 00:48:39,150 --> 00:48:40,130 >> გთხოვთ მაძლევს სიმებიანი. 1017 00:48:40,130 --> 00:48:40,900 მე წავიდეთ წინ და ტიპის იგი. 1018 00:48:40,900 --> 00:48:43,040 Hello, ყველა caps, შეიტანეთ. 1019 00:48:43,040 --> 00:48:47,390 ახლა კი შეამჩნია მე ნაბეჭდი ამ ერთი ხასიათი შემდეგ სხვა. 1020 00:48:47,390 --> 00:48:51,450 ასე რომ, ახალი დეტალი ისაა, რომ ტექსტი, ერთი დღის ბოლოს, შეიძლება იყოს 1021 00:48:51,450 --> 00:48:54,810 ხელმისაწვდომი გზით მისი ცალკეული სიმბოლოების შემოღების კვადრატულ 1022 00:48:54,810 --> 00:48:55,840 bracket notation. 1023 00:48:55,840 --> 00:48:59,090 და ეს იმიტომ, რომ სიმებიანი ქვეშ hood მართლაც რიგითობა 1024 00:48:59,090 --> 00:48:59,810 სიმბოლო. 1025 00:48:59,810 --> 00:49:02,010 მაგრამ რა არის გარღვევა მათ შესახებ არის თქვენს კომპიუტერის RAM - 1026 00:49:02,010 --> 00:49:05,300 Mac, PC, რაც არ არის - ისინი ფაქტიურად უკან დაბრუნება უკან - 1027 00:49:05,300 --> 00:49:06,225 H-E-L-L-O - 1028 00:49:06,225 --> 00:49:09,920 ერთი ინდივიდუალური, მიმდებარე bytes მეხსიერებაში. 1029 00:49:09,920 --> 00:49:13,210 >> ასე რომ, თუ გსურთ მიიღოთ მერვე ასეთი ნაწილად, რომელიც ამ მარყუჟის იქნება 1030 00:49:13,210 --> 00:49:16,900 bracket ნულოვანი, bracket ერთი, bracket ორი, bracket სამი, bracket ოთხი - 1031 00:49:16,900 --> 00:49:18,890 ეს ნულოვანი ინდექსირებული წლამდე ხუთ - 1032 00:49:18,890 --> 00:49:23,330 რომელიც ამობეჭდოთ H-E-L-L-O საკუთარი ხაზი. 1033 00:49:23,330 --> 00:49:26,320 >> ახლა, როგორც teaser, ნება მომეცით გაჩვენოთ სახის ნივთები, თქვენ საბოლოოდ 1034 00:49:26,320 --> 00:49:31,950 შეუძლია გაიგოს, სულ ცოტა ზოგიერთი ახლო ეძებს. 1035 00:49:31,950 --> 00:49:35,610 ერთი, რასაც ჩვენ შედის დღევანდელი მაგალითები, თუ გსურთ, ფაქტიურად 1036 00:49:35,610 --> 00:49:38,300 ერთი პირველი jailbreaks for iPhone. 1037 00:49:38,300 --> 00:49:40,800 Jailbreaking ნიშნავს cracking ტელეფონი ასე რომ თქვენ შეგიძლიათ რეალურად გამოვიყენოთ იგი 1038 00:49:40,800 --> 00:49:43,380 სხვადასხვა გადამზიდავი ან install თქვენი პროგრამული უზრუნველყოფა. 1039 00:49:43,380 --> 00:49:45,660 თქვენ შეამჩნევთ ამ გამოიყურება სრულიად cryptic, სავარაუდოდ. 1040 00:49:45,660 --> 00:49:46,520 მაგრამ შეხედეთ ამ. 1041 00:49:46,520 --> 00:49:50,420 IPhone სავარაუდოდ დაბზარული ერთად ამისთვის მარყუჟის თუ მდგომარეობაში, დანარჩენი 1042 00:49:50,420 --> 00:49:52,580 მდგომარეობაში, რამოდენიმე ფუნქციები ჩვენ არ უნახავს. 1043 00:49:52,580 --> 00:49:54,230 >> ისევ და ისევ, თქვენ არა ერთი შეხედვით ალბათ 1044 00:49:54,230 --> 00:49:55,620 გაუგებარია, როგორ ეს მუშაობს. 1045 00:49:55,620 --> 00:49:58,940 მაგრამ ყველაფერი, რასაც ჩვენ ერთგვარი მიიღოს თავისთავად ჩვენს თანამედროვე ცხოვრებაში 1046 00:49:58,940 --> 00:50:02,040 რეალურად ტენდენცია შეამციროს კი რამდენიმე ამ საფუძვლები ჩვენ 1047 00:50:02,040 --> 00:50:02,820 ეძებს. 1048 00:50:02,820 --> 00:50:06,680 ნება მომეცით წავიდეთ წინ და გახსნა ერთი სხვა პროგრამა, holloway.c. 1049 00:50:06,680 --> 00:50:08,970 ასე რომ, ეს, ძალიან, არის რაღაც უნდა არ ვიცი. 1050 00:50:08,970 --> 00:50:12,440 მაშინაც კი, არც ერთი პერსონალის ან მე ვერ ალბათ გაერკვნენ ამ out ეძებს 1051 00:50:12,440 --> 00:50:15,450 რადგან ეს იყო ვიღაცის კოდი რომელიც წარედგინება რა 1052 00:50:15,450 --> 00:50:19,630 ისტორიულად ცნობილია, როგორც obfuscated C კონკურსი, სადაც წერთ პროგრამა 1053 00:50:19,630 --> 00:50:24,670 რომ ადგენს და ეშვება მაგრამ იმდენად რა cryptic არ ადამიანის უკეთ გავიგოთ, რა 1054 00:50:24,670 --> 00:50:27,530 ის აპირებს მანამ, სანამ სინამდვილეში აწარმოებს. 1055 00:50:27,530 --> 00:50:29,940 >> ასე რომ, მართლაც, თუ გადავხედავთ ამ კოდი, ვხედავ შეცვლა. 1056 00:50:29,940 --> 00:50:30,870 მე ვხედავ მთავარი. 1057 00:50:30,870 --> 00:50:33,800 მე ვხედავ ამ კვადრატულ ფრჩხილებში რაც გულისხმობს გარკვეული მასივი. 1058 00:50:33,800 --> 00:50:35,970 ვინმეს გვინდა რას ამ პროგრამის რეალურად 1059 00:50:35,970 --> 00:50:37,220 აკეთებს თუ მე აწარმოებს Holloway? 1060 00:50:37,220 --> 00:50:39,940 1061 00:50:39,940 --> 00:50:40,750 დიახ. 1062 00:50:40,750 --> 00:50:43,050 OK. 1063 00:50:43,050 --> 00:50:44,690 კარგად გაკეთდეს. 1064 00:50:44,690 --> 00:50:48,090 ასე რომ მხოლოდ თანამშრომლები და მე ვერ ახერხებს რა ეს ყველაფერი გავაკეთოთ. 1065 00:50:48,090 --> 00:50:51,670 >> ახლა კი ბოლოს, ნება მომეცით წავიდეთ წინ და ქმნის ერთი პროგრამა. 1066 00:50:51,670 --> 00:50:53,440 ეს ერთ - 1067 00:50:53,440 --> 00:50:55,550 ერთხელ, მივიღებთ წყაროს კოდი ინტერნეტში - ეს ერთი უბრალოდ 1068 00:50:55,550 --> 00:50:57,480 სახის საკმაოდ შევხედოთ. 1069 00:50:57,480 --> 00:50:59,750 ყველა გააკეთეს არის მოხვდა სივრცეში ბარი საკმაოდ მწირი. 1070 00:50:59,750 --> 00:51:01,320 მაგრამ ეს ნამდვილი კოდი. 1071 00:51:01,320 --> 00:51:04,790 ასე რომ, თუ თქვენ ფიქრობთ, რომ საკმაოდ, თუ ჩვენ რეალურად აწარმოებს ამ დროს სწრაფი, 1072 00:51:04,790 --> 00:51:08,970 საბოლოოდ დაინახავთ, თუ როგორ შეიძლება გავაკეთოთ რამ მოსწონს ეს. 1073 00:51:08,970 --> 00:51:14,008 >> ასე რომ, ჩვენ დავტოვებთ თქვენ რომ ნოტა და თქვენ ოთხშაბათს. 1074 00:51:14,008 --> 00:51:18,440 >> [მუსიკალური სათამაშო] 1075 00:51:18,440 --> 00:51:23,380 >> დინამიკები 2: მომდევნო CS50, TFS დადგმა ამბოხებას. 1076 00:51:23,380 --> 00:51:24,112 >> დინამიკები 3: არსებობს ის არის. 1077 00:51:24,112 --> 00:51:25,362 მიიღეთ მას! 1078 00:51:25,362 --> 00:51:29,912 1079 00:51:29,912 --> 00:51:32,074 >> [მუსიკალური სათამაშო]