1 00:00:00,000 --> 00:00:02,440 [Powered by Google Translate] [კვირა 7] 2 00:00:02,440 --> 00:00:04,730 [დევიდ ჯ Malan - ჰარვარდის უნივერსიტეტი] 3 00:00:04,730 --> 00:00:07,490 [ეს არის CS50. - CS50.TV] 4 00:00:07,490 --> 00:00:12,280 ყველა უფლება. კეთილი იყოს. ეს არის CS50, და ეს არის დაწყების კვირაში 7. 5 00:00:12,280 --> 00:00:14,690 რამდენიმე პატარა განცხადებები: 6 00:00:14,690 --> 00:00:18,150 Pset5 არის პროგრესირებს, ან მალე უნდა იყოს, 7 00:00:18,150 --> 00:00:21,590 და მოდით ჩემთან ამბობენ, საკმაოდ პატიოსნად, ეს იმას ტენდენცია შორის უფრო რთული 8 00:00:21,590 --> 00:00:24,460 კურსის პრობლემა კომპლექტი, ნება მომეცით აღვნიშნო, ეს ახლა 9 00:00:24,460 --> 00:00:28,190 ასე რომ ამ კვირაში მეტი, ვიდრე ოდესმე თქვენ არ დაველოდოთ, ამბობენ, ოთხშაბათს საღამოს 10 00:00:28,190 --> 00:00:29,920 ან ხუთშაბათს ღამით ჩაყვინთვის სისტემაში 11 00:00:29,920 --> 00:00:32,369 ეს არის ნამდვილად საინტერესო pset. ჩვენ ვფიქრობთ, რომ ეს fun. 12 00:00:32,369 --> 00:00:36,110 თუ თქვენ ნამდვილად ვიცი სრულად სწორი და შეიძლება მაშინ გამოწვევას ე.წ. დიდი საბჭო, 13 00:00:36,110 --> 00:00:39,830 თქვენ შესაძლებლობა ემთხვევა wits ზოგიერთ კურსი თანამშრომლებისათვის 14 00:00:39,830 --> 00:00:41,620 და ზოგიერთი თქვენი თანაკლასელები. 15 00:00:41,620 --> 00:00:44,670 რა დიდი საბჭო არის ერთხელ თქვენ გაქვთ თქვენი მართლწერის შემოწმება-სამუშაო, 16 00:00:44,670 --> 00:00:48,860 თქვენ გექნებათ წასვლა cs50.net შემდეგ გაშვებული ბრძანება, 17 00:00:48,860 --> 00:00:52,430 წმინდა აირჩიონ წელს, ხოლო შემდეგ ოდენობით დრო და თანხა RAM და მეტი 18 00:00:52,430 --> 00:00:56,130 რომ თქვენ არ გამოიყენება თქვენი განხორციელების გამოიფინება აქ საგნის საწყისი გვერდი. 19 00:00:56,130 --> 00:00:59,740 თქვენ შეამჩნევთ, რომ მთელი bunch ამ FOLKS აქ ჩამოთვლილია როგორც პერსონალი 20 00:00:59,740 --> 00:01:04,220 მას შემდეგ, რაც მთელი კვირის განმავლობაში, პერსონალის ეგონა იქნებოდა fun ცდილობს outdo ერთმანეთს. 21 00:01:04,220 --> 00:01:07,390 ასე რომ მიხვდებიან, რომ მიზანი აქ არ არის outdo პერსონალი. 22 00:01:07,390 --> 00:01:09,790 მაშინაც კი, მე ვარ მხოლოდ აქ, ხმების 13. 23 00:01:09,790 --> 00:01:13,790 წმინდა აირჩიონ, მაგრამ ეს შესაძლებლობა ნახოთ თუ რამდენად პატარა RAM 24 00:01:13,790 --> 00:01:16,790 და როგორ რამდენიმე CPU წამში შეგიძლიათ გამოიყენოთ vis-a-vis ზოგიერთი თქვენი თანაკლასელები. 25 00:01:16,790 --> 00:01:20,540 >> მე კი ვაღიარებ, რომ კევინ მაიკლ შმიდი, 26 00:01:20,540 --> 00:01:23,750 ამჟამად ნომერი 1 პოზიციით როგორც ერთ TFs, 27 00:01:23,750 --> 00:01:28,120 ეს არის განხორციელება, რომ ჩვენ მოვუწოდებთ შეუძლებელია 28 00:01:28,120 --> 00:01:32,700 იმის გათვალისწინებით, რომ ის იყენებს თითქმის 0 RAM და თითქმის 0 წამი ჩატვირთვას. 29 00:01:32,700 --> 00:01:35,670 ამიტომ ჩვენ ზრუნვა კევინ გასულია. [სიცილის] 30 00:01:35,670 --> 00:01:40,950 არსებობს გარკვეული უნარები, რომ კევინ არის გამოსული გამოცდის აქ. 31 00:01:40,950 --> 00:01:45,280 ერთი რამ გვეგონა ჩვენ გვინდა გავაკეთოთ ძალიან არის CS50x არის კვირაში პროგრესირებს, 32 00:01:45,280 --> 00:01:49,520 და თქვენ ბიჭები არიან იმდენი ნაწილი ამ ექსპერიმენტი როგორც ის სტუდენტები არიან. 33 00:01:49,520 --> 00:01:53,720 ჩვენ ვთხოვეთ, როგორც ნაწილი მათი pset0, რომელიც ანალოგიურად წარუდგინოს Scratch პროექტი 34 00:01:53,720 --> 00:01:58,280 ინტერესთა მათ - თამაშის, ინტერაქტიული ნაჭერი ხელოვნების, ანიმაცია, ან მოსწონს - 35 00:01:58,280 --> 00:02:03,700 1 - დან 2 წუთიანი ვიდეო, თუ ისინი მინდა და განაცხადა, რომ მოკითხვა მსოფლიოში და ვინც სინამდვილეში ვართ. 36 00:02:03,700 --> 00:02:06,780 ვფიქრობდი, მინდა გაგიზიაროთ მხოლოდ რამდენიმე ვიდეოები რომ არ არის წარმოდგენილი დღემდე 37 00:02:06,780 --> 00:02:10,759 რადგან ჩვენთვის, on პერსონალი მინიმუმ, ის მართლაც იყო საინტერესო 38 00:02:10,759 --> 00:02:14,220 and ინსპირირებით და ამ FOLKS მთელი მსოფლიოს - ქვეყნების მთელ მსოფლიოში - 39 00:02:14,220 --> 00:02:18,160 tuning წელს, ყველაფერი, რათა კომპიუტერულ მეცნიერებათა კურსი ინტერნეტი, 40 00:02:18,160 --> 00:02:20,410 თუ არა იმიტომ, რომ მათ სურთ გააგრძელონ თავიანთი კვლევები, 41 00:02:20,410 --> 00:02:22,300 მათ სურთ მიიღონ მათი კარიერის გააკეთა ახალი მიმართულებით, 42 00:02:22,300 --> 00:02:24,390 მათ სურთ შეავსოთ ხარვეზები საკუთარ ცოდნას, 43 00:02:24,390 --> 00:02:27,190 ამიტომ ზოგიერთი იმავე მიზეზის გამო, რომ თქვენ ბიჭები ალბათ უკვე აქ. 44 00:02:27,190 --> 00:02:31,090 >> ამიტომ მე გაძლევთ ერთი ასეთი სტუდენტი აქ. თქვენ შეიძლება ამაღლება მოცულობის მხოლოდ ცოტა. 45 00:02:31,090 --> 00:02:35,520 აქ არის ერთი ჩვენი სტუდენტური 1 წუთიანი წარდგინება. 46 00:02:35,520 --> 00:02:40,380 Hello, მსოფლიოში. ვარ სტუდენტი სამრეწველო საინჟინრო აქ ესპანეთის ქალაქ მალაგაში. 47 00:02:40,380 --> 00:02:45,840 მე მახარებს ამ ფორუმზე რა თქმა უნდა, რადგან მე მიყვარს კომპიუტერულ მეცნიერებათა, მართლაც, 48 00:02:45,840 --> 00:02:48,880 და მე ნამდვილად ვაფასებ რომ მივიღო შესწავლას. 49 00:02:48,880 --> 00:02:51,940 და ის ფაქტი, რომ მე სწავლა შეგვიძლია იგივე ყველა თქვენგანს ბიჭებს 50 00:02:51,940 --> 00:02:57,040 მაგრამ ნაცვლად ჰარვარდში ვარ ქალაქ მალაგაში, როგორ რა არის ეს? 51 00:02:57,040 --> 00:03:02,040 ისე, მე ვარ ფერნანდო, და ეს არის CS50. იხილეთ თქვენ ბიჭები. 52 00:03:02,040 --> 00:03:07,100 [სიცილის] კიდევ ერთი კლიპი ჩვენ განსაკუთრებით მინდა, თქვენ იპოვოთ რომ ეს ჯენტლმენი ს English ასე არ არის ძლიერი. 53 00:03:07,100 --> 00:03:11,520 როგორც ჩანს, იგი იყო ის მანქანა თარგმნილი, ისე თარგმანი თავად ცოტა არასრულყოფილი, 54 00:03:11,520 --> 00:03:15,790 მაგრამ ეს იყო ჩვენი ერთი სანიშნეს დღემდე ისევე. 55 00:03:25,080 --> 00:03:29,980 [♪ ♪] 56 00:03:29,980 --> 00:03:32,370 Hello, მსოფლიოში. [საუბარი იაპონიის] 57 00:03:32,370 --> 00:03:39,830 [მაქვს მოგესალმოთ იაპონიის რადგან ჩემი ინგლისელი ძალიან არასანდო.] 58 00:03:39,830 --> 00:03:45,380 [მე მიწოდება გაგზავნა თქვენ ქალაქ Gifu, იაპონია.] 59 00:03:45,380 --> 00:03:49,820 [მე შეიძლება იყოს სტუდენტი პირველად 20 წლის განმავლობაში, როგორც ჩანს.] 60 00:03:49,820 --> 00:03:54,640 [ძალიან მადლობელი ვარ, რომ ჰარვარდის უნივერსიტეტი, ვინც მომცა ეს შესაძლებლობა და EDX.] 61 00:03:54,640 --> 00:04:01,510 [Golf არის გიტარა და ჩემი საყვარელი რამ არის გაშვებული.] [სიცილის] 62 00:04:01,510 --> 00:04:05,750 [♪ ♪] 63 00:04:05,750 --> 00:04:10,790 [როგორ ფიქრობთ, რატომ მე ვცდილობდი დაესწრებიან cs50x.] 64 00:04:10,790 --> 00:04:14,990 [ჰარვარდის უნივერსიტეტი, ეს არის ჩემი ლტოლვის.] 65 00:04:14,990 --> 00:04:19,740 [მით უმეტეს, თუ მე ვარ შორეული ყოფნა ცხოვრობდა იაპონიაში.] 66 00:04:19,740 --> 00:04:26,680 [მინდოდა ვცდილობთ მაშინვე იცის ასეთის არსებობის EDX როდესაც.] 67 00:04:26,680 --> 00:04:32,500 [ხომ არ ფიქრობთ, ასე რომ თქვენ არ დაკავშირებული ასაკი სწავლის ი] 68 00:04:32,500 --> 00:04:38,350 [Cs50 არის ჩემი ლტოლვის. ჩემი სახელი არის Kazu, და ეს არის cs50.] 69 00:04:38,350 --> 00:04:43,090 [♪ ♪] [ტაში and cheering] 70 00:04:43,090 --> 00:04:49,220 სხვა საყვარელი ჩვენი იყო ამ წარდგენის აქ ვინმე. 71 00:04:51,070 --> 00:04:55,380 [♪ ♪] [Malan] Google თუ თქვენ იციან ამ meme. 72 00:04:55,380 --> 00:05:01,480 >> და მერე ბოლოს, რამდენიმე სხვები რომ ჩაერივნენ posted რომ შესაძლოა მოვიგოთ adorable ჯილდო. 73 00:05:01,480 --> 00:05:06,820 [სტუდენტი] Aww! >> [Malan] ჩვენ უნდა მოვუსმინოთ. ეს არის მოკლე, ასე რომ მოუსმინოს მჭიდროდ. 74 00:05:08,580 --> 00:05:11,150 [ქალი სპიკერი] რა არის შენი სახელი? >> გორი დიდია. 75 00:05:11,150 --> 00:05:16,120 [ქალი სპიკერი] რა არის ეს? >> [Giggles] CS50. [სიცილის] 76 00:05:16,120 --> 00:05:19,510 [Malan] მას ორი იღებს, თუმცა. 77 00:05:19,510 --> 00:05:22,240 აქ ჩვენ გადასვლა, ბოლო. 78 00:05:23,030 --> 00:05:26,980 ჩემი სახელი არის პატარა გორი დიდია, და ეს არის CS50. 79 00:05:26,980 --> 00:05:30,250 [სიცილის] ეს მაშინ არის CS50x. 80 00:05:30,250 --> 00:05:33,230 გმადლობთ ყველა იმ თქვენ ხოლო შემდეგ გასწვრივ სახლში 81 00:05:33,230 --> 00:05:35,620 რომლებიც partaking დღემდე. 82 00:05:35,620 --> 00:05:39,510 დღეს, ვთვლით, რომ ჩვენი განხილვის მონაცემები სტრუქტურების, 83 00:05:39,510 --> 00:05:41,160 მაინც ყველაზე ფუნდამენტური, 84 00:05:41,160 --> 00:05:44,760 და მაშინ ჩვენ გავაგრძელებთ საუბარი HTML და ვებ პროგრამირების. 85 00:05:44,760 --> 00:05:48,520 მართლაც, ჩვენ გაატარა გასული რამდენიმე კვირის განმავლობაში შვიდი ეძებს საფუძვლები პროგრამირების - 86 00:05:48,520 --> 00:05:50,450 ალგორითმები, მონაცემთა სტრუქტურები, და ანალოგიური - 87 00:05:50,450 --> 00:05:53,050 და C, როგორც თქვენ შეიძლება განიცადეთ ჯერჯერობით 88 00:05:53,050 --> 00:05:57,060 არ არის აუცილებლად საუკეთესო ხელმისაწვდომი ენების 89 00:05:57,060 --> 00:05:59,090 რომელთანაც განახორციელოს ზოგიერთი ასეთი იდეები. 90 00:05:59,090 --> 00:06:01,880 და ასე დაწყებული ამ კვირაში და მომავალ კვირას და შემდეგ შემდეგ, 91 00:06:01,880 --> 00:06:07,110 ჩვენ საბოლოოდ შეძლებს გადასვლას C, რომელიც საყოველთაოდ ცნობილია, როგორც საკმაოდ დაბალი დონის ენაზე 92 00:06:07,110 --> 00:06:11,190 to რამ მაღალ დონეზე, მათ შორის PHP, JavaScript, და მოსწონს, 93 00:06:11,190 --> 00:06:14,850 რომელიც ჩვენ დავინახავთ დაეყრდნოს და იგივე გაკვეთილი, რომ ჩვენ ვისწავლეთ უკანასკნელი რამდენიმე კვირის განმავლობაში, 94 00:06:14,850 --> 00:06:19,430 მაგრამ თქვენ იპოვით, რომ გამოცხადების რამ, როგორიცაა კოლექტორები და hash მაგიდები და ძებნას და დახარისხება 95 00:06:19,430 --> 00:06:23,370 გახდება თუ რამდენად ადვილი რადგან ენებზე თავად დავიწყებთ გამოყენებით 96 00:06:23,370 --> 00:06:25,290 გახდება უფრო ძლიერი. 97 00:06:25,290 --> 00:06:27,410 მაგრამ პირველი, გამოყენების ხეები. 98 00:06:27,410 --> 00:06:30,240 ძალიან გავრცელებული ამ დღეებში უნდა შეკუმშოს ინფორმაციას. 99 00:06:30,240 --> 00:06:34,770 რა კონტექსტში იქნებოდა გსურთ შეკუმშოს გარკვეული სახის ციფრული ინფორმაციის? 100 00:06:37,190 --> 00:06:39,670 >> Yeah. >> [სტუდენტი] როდესაც თქვენ უნდა გამოგვიგზავნოთ მეტი ვებ. 101 00:06:39,670 --> 00:06:41,450 ჰო, როდესაც გსურთ გააგზავნოთ რაღაც დასრულდა ვებ. 102 00:06:41,450 --> 00:06:44,950 თუ გსურთ ჩამოტვირთოთ დიდი ფაილი, ეს იდეალური თუ ვინმე მეორე ბოლომდე 103 00:06:44,950 --> 00:06:48,760 აქვს დაარქივებული ფაილების გამოყენებით zip ფორმატში, ან რაღაც მსგავსი რომ 104 00:06:48,760 --> 00:06:53,760 ასე, რომ თქვენ გაგზავნის ნაკლები ბიტი, ვიდრე შეიძლება სხვაგვარად გადაეცემა. 105 00:06:53,760 --> 00:06:55,500 ასე როგორ შეკუმშოს ინფორმაცია? 106 00:06:55,500 --> 00:07:00,540 ყველაფერი boils ქვემოთ გამოყენებით ნაკლები ბიტი, ვიდრე აუცილებელია იყოს. 107 00:07:00,540 --> 00:07:03,220 მაგრამ ეს არის სახის საინტერესო რამ, რადგან ვფიქრობ თავში კვირის 0 და 1 108 00:07:03,220 --> 00:07:07,370 როდესაც ჩვენ ვისაუბრეთ ASCII და ორობითი და ჩვენ ვისაუბრეთ ASCII კერძოდ 109 00:07:07,370 --> 00:07:10,690 როგორც გამოყენებით 8 ბიტი წარმოადგენს ასო ანბანი 110 00:07:10,690 --> 00:07:16,120 ისე, რომ წერილში წარმოდგენილია 65, მხედრულ არის ნომერი 97, 111 00:07:16,120 --> 00:07:21,210 და თუმცა თქვენ წარმოადგენს 65 ან 97, თქვენ იყენებთ 7 ან 8 ბიტი. 112 00:07:21,210 --> 00:07:24,120 მაგრამ დაჭერა არის, რომ არსებობს ასო ინგლისურ ანბანში 113 00:07:24,120 --> 00:07:26,230 რომ არ არის ისეთი პოპულარული, როგორც სხვები. 114 00:07:26,230 --> 00:07:31,600 Z არ არის ყველა, რომ პოპულარული, Q არ არის ყველა, რომ პოპულარული, მაგრამ და E არის სუპერ პოპულარული. 115 00:07:31,600 --> 00:07:37,280 და მაინც, ყველა ამ წერილებს, იყოს მსოფლიოს იყენებს იგივე რაოდენობის ბიტი, მხოლოდ 8. 116 00:07:37,280 --> 00:07:42,690 ასე რომ არა იგი უკვე მსოფლიოს სასურველი სტუმარი გახდებით, თუ ნაცვლად გამოყენებით 8 ბიტი ყველა წერილი, 117 00:07:42,690 --> 00:07:47,440 თუნდაც ყველაზე იშვიათად გამოიყენება, როგორიცაა Q და Z, 118 00:07:47,440 --> 00:07:51,910 რა თუ ჩვენ გამოიყენება ნაკლები ბიტი ამისთვის და E და S და ყველაზე პოპულარული წერილების 119 00:07:51,910 --> 00:07:55,000 და გამოიყენება მეტი ბიტი რომელიც ნაკლებად პოპულარული წერილები, 120 00:07:55,000 --> 00:07:57,770 იდეა მყოფი მოდით ოპტიმიზაცია საერთო შემთხვევაში, 121 00:07:57,770 --> 00:08:01,160 რაც თემა კომპიუტერულ მეცნიერების ცდილობს ოპტიმიზაცია რა მოხდება საუკეთესო 122 00:08:01,160 --> 00:08:05,310 და ხარჯავენ ცოტა მეტი დრო, ცოტა მეტი სივრცე რამ, yeah, შეიძლება მოხდეს 123 00:08:05,310 --> 00:08:07,680 მაგრამ არა აუცილებლად, როგორც ხშირად. 124 00:08:07,680 --> 00:08:09,330 ასე რომ ავიღოთ მაგალითად. 125 00:08:09,330 --> 00:08:12,610 >> დავუშვათ, რომ ჩვენ გვინდა, encode ინფორმაციას საკმაოდ ეფექტურად. 126 00:08:12,610 --> 00:08:15,090 ალბათ გავიზარდე იცის პატარა რაღაც შესახებ Morse კოდი, 127 00:08:15,090 --> 00:08:17,450 და შანსი თქვენ არ იცოდა ფაქტობრივი კოდი, 128 00:08:17,450 --> 00:08:21,750 მაგრამ თქვენ შეიძლება გავიხსენოთ, რომ მინიმუმ ამ სერიას წერტილი და dashes. 129 00:08:21,750 --> 00:08:26,640 ეს არის საკმაოდ ეფექტური კოდირება, და გაითვალისწინეთ, რომ ყველაზე პოპულარული წერილი - მაგალითად, ელ - 130 00:08:26,640 --> 00:08:28,980 იყენებს უმოკლეს of beeps. 131 00:08:28,980 --> 00:08:31,740 Morse კოდი რაც შეეხება beep-beep-beep-beep-beep-beep და ჩატარების ტონა 132 00:08:31,740 --> 00:08:34,799 არც მოკლე დროში ან ხანგრძლივი დროის პერიოდის განმავლობაში. 133 00:08:34,799 --> 00:08:40,330 E, როგორც აღნიშნა მიერ dot, არის სუპერ მოკლე beep, უბრალოდ beep, და რომ წარმოადგენენ ე 134 00:08:40,330 --> 00:08:43,960 პირიქით, T იქნებოდა აღარ beep, როგორიცაა beep [prolongs sound], 135 00:08:43,960 --> 00:08:45,710 და რომ წარმოადგენენ თ 136 00:08:45,710 --> 00:08:48,840 მაგრამ ეს ჯერ კიდევ საკმაოდ მოკლე, რადგან, პირიქით, თუკი Z, 137 00:08:48,840 --> 00:08:52,690 გამოთქვას Z თქვენ წავიდოდა beep, beep [აღარ sound], beep, beep [მოკლე sound]. 138 00:08:52,690 --> 00:08:55,360 ასე რომ აღარ იმიტომ რომ ნაკლები საერთო. 139 00:08:55,360 --> 00:08:58,150 მაგრამ GOTCHA აქ არის ის, რომ Morse კოდი ოდნავ გაყალბდა 140 00:08:58,150 --> 00:09:00,610 რომ ის არ დაუყოვნებლივ decodable. 141 00:09:00,610 --> 00:09:07,350 მაგალითად, ვარაუდობენ, რომ გესმით ზოგიერთ ბოლოს მავთულის beep [მოკლე], beep [ხანგრძლივი]. 142 00:09:07,350 --> 00:09:12,480 რა გაგზავნა არც მე უბრალოდ მიიღოს? Dot და dash. რას წარმოადგენს? 143 00:09:12,480 --> 00:09:15,330 [სტუდენტი] A. >> [Malan] იქნებ. 144 00:09:15,330 --> 00:09:18,270 ისიც შეიძლება E მოჰყვა თ 145 00:09:18,270 --> 00:09:23,390 სხვა სიტყვებით, Morse კოდი, თუმცა ბერკეტი ამ პრინციპის ოპტიმიზაციის კუთხეში შემთხვევაში, 146 00:09:23,390 --> 00:09:26,250 ეს არ lend თავს დაუყოვნებლივ decodability. 147 00:09:26,250 --> 00:09:29,850 ანუ, ადამიანის რომელიც მოსმენის ან მიღების ეს წერტილები და dashes 148 00:09:29,850 --> 00:09:34,540 უნდა როგორმე გაერკვნენ, სადაც შეღავათები შორის წერილებს, 149 00:09:34,540 --> 00:09:39,660 რადგან თუ თქვენ არ იცით, სადაც შეღავათები, შესაძლოა აღრეული ამისთვის ET ან პირიქით. 150 00:09:39,660 --> 00:09:43,880 >> ასე რომ, თუ რა შეიძლება, რასაც აკეთებთ? In Morse კოდი შეგიძლიათ უბრალოდ პაუზის შორის თითოეული წერილებს. 151 00:09:43,880 --> 00:09:47,660 მაგრამ დაპაუზება არის სახის counter მთელ წერტილი სისწრაფეს რამ up. 152 00:09:47,660 --> 00:09:52,880 მერე რა, რომ ნაცვლად შევქმენით კოდი, სადაც არ იყო ამ ცუდ მდგომარეობას 153 00:09:52,880 --> 00:09:56,570 სადაც E არის პრეფიქსი, მაგალითად, საქართველოში - 154 00:09:56,570 --> 00:10:00,020 სხვა სიტყვებით, თუ ჩვენ შეგვიძლია დავრწმუნდეთ, რომ ნიმუშები ჯერ კიდევ მოკლე ამისთვის პოპულარული წერილების 155 00:10:00,020 --> 00:10:04,850 ხანგრძლივი ნაკლებად პოპულარული წერილები, მაგრამ იქ არ არის შესაძლებელი დაბნეულობა? 156 00:10:04,850 --> 00:10:08,930 კაცი მიერ სახელით Huffman წლის წინ გამოიგონეს ამ სქემის მოუწოდა Huffman კოდირებას 157 00:10:08,930 --> 00:10:12,390 რომ რეალურად ბერკეტი ერთ მონაცემები სტრუქტურები ჩვენ გაატარა ცოტა დრო ვსაუბრობთ 158 00:10:12,390 --> 00:10:16,560 ამ გასულ კვირას, რომ ხეები, ბინარული ხეები კონკრეტულად - 159 00:10:16,560 --> 00:10:19,710 ორობითი ხე მნიშვნელობა, რომ მას არ უნდა აღემატებოდეს 2 შვილი. 160 00:10:19,710 --> 00:10:22,720 მას აქვს იქნებ მარცხენა ბავშვი, იქნებ უფლება ბავშვი, და ამით ყველაფერი. 161 00:10:22,720 --> 00:10:26,510 ამიტომ ვარაუდობენ, მხოლოდ გულისთვის დისკუსია რომ ვინმეს უნდა გაგზავნოს გაგზავნა 162 00:10:26,510 --> 00:10:31,270 რომ ასე გამოიყურება. ეს სრული სისულელეა, მაგრამ ის შედგება როგორც, BS, Cs, DS და Es. 163 00:10:31,270 --> 00:10:34,890 და თუ თქვენ ნამდვილად ითვლიან up ყველა როგორც, BS, Cs, DS და Es 164 00:10:34,890 --> 00:10:36,870 და შემდეგ გაყავით მიერ საერთო რაოდენობის ასოები, 165 00:10:36,870 --> 00:10:42,710 ამ პატარა სქემა აქ ნათქვამია, რომ 45% ასო Es, 20% კი, 166 00:10:42,710 --> 00:10:45,010 10% BS და სხვ. 167 00:10:45,010 --> 00:10:47,330 ასე რომ, სხვა სიტყვებით, ვივარაუდოთ, რომ ციტირებული სტრიქონი იქ 168 00:10:47,330 --> 00:10:49,080 არის რამოდენიმე გაგზავნა, რომ გსურთ გაგზავნას. 169 00:10:49,080 --> 00:10:52,180 ეს ხდება იყოს სისულელეა უბრალოდ ასე ჩვენ შეგვიძლია გამოვიყენოთ, როგორც რამდენიმე წერილებს, რაც შეიძლება, 170 00:10:52,180 --> 00:10:55,220 მაგრამ მართლაც შემთხვევაში, რომ E რჩება ყველაზე პოპულარული, 171 00:10:55,220 --> 00:11:01,450 და B და C უფრო ნაკლებად პოპულარულია, მინიმუმ ამ 5 ასო ანბანი. 172 00:11:01,450 --> 00:11:04,040 ასე რომ როგორ შეგვიძლია წავიდეთ შესახებ ახლოვდება ერთად კოდირების, 173 00:11:04,040 --> 00:11:08,430 ორობითი კოდირება, ნიმუში 0S and 1s თითოეული ამ წერილების 174 00:11:08,430 --> 00:11:14,820 იმგვარად, რომ E არის მოკლე ნიმუში და იქნებ B და C არის ოდნავ აღარ შაბლონებს, 175 00:11:14,820 --> 00:11:19,270 ერთხელ, იდეა იმისა, რომ ჩვენ გვინდა გამოვიყენოთ ნაკლები ბიტი უმეტესი დრო 176 00:11:19,270 --> 00:11:21,790 და უფრო ბიტი მხოლოდ ერთხელ, ხოლო. 177 00:11:21,790 --> 00:11:26,070 მიხედვით Huffman კოდირება, შეგიძლიათ შექმნათ ტყის ხეების. 178 00:11:26,070 --> 00:11:31,190 არსებობს ერთგვარი ამბავი ხაზი აქ რომ მოიცავს ხეები და ასევე მშენებლობის პროცესში მათ. 179 00:11:31,190 --> 00:11:32,420 დავიწყოთ. 180 00:11:32,420 --> 00:11:36,140 >> მე ვთავაზობ, რომ თქვენ იწყება ამ ტყის, ასე ვთქვათ, სულ 5 ხეები, 181 00:11:36,140 --> 00:11:38,260 რომელთაგან თითოეული არის საკმაოდ სულელური ხე. 182 00:11:38,260 --> 00:11:42,800 ხის შედგება მხოლოდ ერთი კვანძის, როგორც წარმოდგენილია აქ წრე. 183 00:11:42,800 --> 00:11:45,310 ასე რომ თითოეული ეს ყველაფერი შეიძლება იყოს C struct 184 00:11:45,310 --> 00:11:50,200 და შიგნით of C struct შეიძლება იყოს ათწილადი წარმოადგენს სიხშირის რაოდენობა 185 00:11:50,200 --> 00:11:52,510 და მერე იქნებ char წარმოადგენს წერილში. 186 00:11:52,510 --> 00:11:56,470 ამიტომ ვფიქრობ ამ კვანძების როგორც მხოლოდ ნებისმიერი ძველ C struct მაგრამ, ამ დროისთვის, მაღალ დონეზე. 187 00:11:56,470 --> 00:12:01,230 ეს არის ტყეში 5 ხეები, თითოეული, ვისაც მხოლოდ ერთი კვანძის. 188 00:12:01,230 --> 00:12:06,830 რა Huffman შემოთავაზებული ის არის, რომ ჩვენ ვიწყებთ დააკავშიროთ იმ ხეები 189 00:12:06,830 --> 00:12:11,140 რომ აქვს პატარა სიხშირე ითვლის შევიდა ოდნავ უფრო ხეები 190 00:12:11,140 --> 00:12:13,490 მიერ დამაკავშირებელი მათ ახალი root node. 191 00:12:13,490 --> 00:12:17,560 ამიტომ შორის წერილების აქ შეამჩნევთ, რომ მოხერხებულობის მე დახარისხებული მათ მარცხნიდან მარჯვნივ, 192 00:12:17,560 --> 00:12:21,420 თუმცა ეს არ არის მკაცრად აუცილებელია, და გავითვალისწინოთ რომ პატარა კვანძების 193 00:12:21,420 --> 00:12:23,930 ამჟამად 10% და 10%. 194 00:12:23,930 --> 00:12:28,940 ამიტომ Huffman შესთავაზა, რომ ჩვენ შერწყმა იმ 2 პატარა კვანძების შევიდა ახალი ხე 195 00:12:28,940 --> 00:12:34,450 შემოღების ახალი მშობელი კვანძი და შემდეგ მისცეს, რომ მშობელს მარცხენა ბავშვი და უფლება ბავშვის 196 00:12:34,450 --> 00:12:37,720 სადაც B არის თვითნებურად მარცხენა და C არის თვითნებურად უფლება. 197 00:12:37,720 --> 00:12:41,590 და შემდეგ Huffman შემდგომი შესთავაზა, რომ მოდით ახლა მხოლოდ ვფიქრობ მარცხენა ბავშვი 198 00:12:41,590 --> 00:12:44,790 ერთ ამ ხეები ყოველთვის, როგორც წარმოდგენილია 0 199 00:12:44,790 --> 00:12:47,890 და უფლება ბავშვს ყოველთვის, როგორც წარმოდგენილია ხმების 1. 200 00:12:47,890 --> 00:12:50,680 >> არ აქვს მნიშვნელობა თუ თქვენ Flip მათ ცოტა ხნის როგორც თქვენ თანმიმდევრული. 201 00:12:50,680 --> 00:12:54,650 ახლა ჩვენ გვაქვს ოთხი ხეები ამ ტყეში. 202 00:12:54,650 --> 00:12:58,050 მე ვთქვა ოთხი რადგან ახლა ხე მარცხენა - 203 00:12:58,050 --> 00:13:00,570 და ეს არა იმდენად ხე იმ გაგებით, რომ იგი იზრდება ამ გზით, 204 00:13:00,570 --> 00:13:05,170 ეს უფრო მოსწონს ოჯახის ხე სად არის 0.2 არის ერთგვარი მშობელი ორი შვილი - 205 00:13:05,170 --> 00:13:07,930 შეამჩნევს, რომ რომ მშობელს ჩვენ შედგენილი 0.2. 206 00:13:07,930 --> 00:13:13,370 ჩვენ დასძინა სიხშირე ითვლის ორი შვილი და მიეცეს ახალი კვანძის საერთო თანხა. 207 00:13:13,370 --> 00:13:15,310 ახლა ჩვენ მხოლოდ გავიმეორო ეს პროცესი. 208 00:13:15,310 --> 00:13:19,490 მოძებნა ორი პატარა კვანძების და შემდეგ შეუერთდება მათ ახალი ხე 209 00:13:19,490 --> 00:13:21,380 და შემდეგ გაიმეოროს პროცესის შემდგომი. 210 00:13:21,380 --> 00:13:26,390 ამ დროისათვის ჩვენ გვყავს რამდენიმე კანდიდატი, 20%, 15%, ხოლო მეორე 20%. 211 00:13:26,390 --> 00:13:29,780 ამ შემთხვევაში, ჩვენ უნდა დაარღვიოს ჰალსტუხი. ჩვენ შეგვიძლია ამის გაკეთება თვითნებურად. 212 00:13:29,780 --> 00:13:31,540 ჩვენ უნდა უბრალოდ ეს მუდმივად. 213 00:13:31,540 --> 00:13:33,760 ამ შემთხვევაში, მე თვითნებურად წავიდეთ ერთად ერთი მარცხენა, 214 00:13:33,760 --> 00:13:39,880 და მე ახლა შერწყმა 20% და 15% მისცეს ჩემთვის ახალი მშობელი მოუწოდა 35%, 215 00:13:39,880 --> 00:13:46,310 რომლის მარცხენა ბავშვი 0, რომლის უფლება ბავშვი 1 და ახლა ჩვენ გვაქვს მხოლოდ სამი ხეები ტყეში. 216 00:13:46,310 --> 00:13:47,960 შეგიძლიათ ალბათ ვხედავთ, სადაც ეს ხდება. 217 00:13:47,960 --> 00:13:51,150 თუ ჩვენ ვიმეორებ ამ რამდენიმე ჯერ, ჩვენ ვაპირებთ აქვს მხოლოდ ერთი უფრო დიდი ხე, 218 00:13:51,150 --> 00:13:53,900 ყველა რომელთა კიდეები იარლიყით ერთად 0S and 1s. 219 00:13:53,900 --> 00:13:55,710 მოდით კიდევ ერთხელ. 220 00:13:55,710 --> 00:14:02,600 35% არის ის, რომ ხე მისი ფესვი. 20% და 45%, ამიტომ ჩვენ ვაპირებთ შერწყმა 35% და 20%. 221 00:14:02,600 --> 00:14:05,610 ახლა ჩვენ გვაქვს ამ ხეს აქ. ჩვენ დაამატოთ იმ ერთად, ჩვენ გვაქვს 55%. 222 00:14:05,610 --> 00:14:07,910 ახლა მხოლოდ ორი ხეები ტყეში. 223 00:14:07,910 --> 00:14:11,900 ჩვენ ამას ვაკეთებთ, ერთი საბოლოო დრო და იმედია მათემატიკურად ყველა სიხშირეების დაამატოთ მდე 224 00:14:11,900 --> 00:14:15,570 რადგან მათ უნდა რადგან ჩვენ გამოთვლილია მათ მისაღებად-წასვლა დაამატოთ მდე 100%. 225 00:14:15,570 --> 00:14:17,960 და ახლა ჩვენ გვაქვს ერთი ხე. 226 00:14:17,960 --> 00:14:20,580 ასე რომ, ეს Huffman კოდირების ხე. 227 00:14:20,580 --> 00:14:24,400 იგი სახის აიღო ხოლო მისაღებად არსებობს სიტყვიერი, მაგრამ რეალობა ის არის, ერთად ამისთვის loop 228 00:14:24,400 --> 00:14:27,620 ან რეკურსიული ფუნქცია, თქვენ შეიძლება ააშენოს ამ რამ up საკმაოდ სწრაფად. 229 00:14:27,620 --> 00:14:32,440 ახლა ჩვენ გვაქვს ერთი ახალი კვანძის და ყველა ეს შიდა კვანძების უკვე malloc'd, 230 00:14:32,440 --> 00:14:34,690 სავარაუდოდ, გასწვრივ გზა. 231 00:14:34,690 --> 00:14:38,650 ახლა ზედა ამ ხეს გვაქვს 100%, მაგრამ ახლა შეამჩნია გვაქვს გეზი 232 00:14:38,650 --> 00:14:43,780 ამ ახალი დიდი დიდი დიდი grandparent ყველა დიდი დიდი დიდი შვილიშვილი 233 00:14:43,780 --> 00:14:45,930 ყველა გზა ბოლოში, ყველა ფოთლები. 234 00:14:45,930 --> 00:14:52,840 >> რა ჩვენ ვაპირებთ ახლა არის შესთავაზოს, რომ იმისათვის, რომ წარმოადგენენ წერილში E, 235 00:14:52,840 --> 00:14:55,670 ჩვენ უბრალოდ გამოიყენოთ ნომერი 1. რატომ? 236 00:14:55,670 --> 00:15:01,000 რადგან თუ ჩვენ traverse ამ ხე საწყისი საბოლოო root ქვემოთ ფოთოლი ცნობილია, როგორც E, 237 00:15:01,000 --> 00:15:06,050 მივყვებით მხოლოდ ერთი ზღვარი, მარჯვენა კიდეზე, და ეს შეაფასა, რა თქმა უნდა, ზედა მარჯვენა 1. 238 00:15:06,050 --> 00:15:11,550 ასე რომ გავლენა აქ Huffman იყო, რომ E ს კოდირება ორობითი უნდა იყოს მხოლოდ 1. 239 00:15:11,550 --> 00:15:14,490 და ეს საკმაოდ Damn ეფექტური. ნამდვილად ვერ მიიღოს ნებისმიერი ნაკლებია, რომ. 240 00:15:14,490 --> 00:15:18,350 პირიქით, იქნება წარმოდგენილია, თუ დაიცვას ლოგიკა, 241 00:15:18,350 --> 00:15:21,610 რა ნიმუში ბიტი ნაცვლად? 01. 242 00:15:21,610 --> 00:15:25,500 ასე მისაღებად, ჩვენ იწყება root და ჩვენ წავიდეთ დაუტოვებიათ, ხოლო შემდეგ ჩვენ უფლება, 243 00:15:25,500 --> 00:15:28,580 რაც იმას ნიშნავს, რომ ჩვენ მოჰყვა 0 და შემდეგ 1. 244 00:15:28,580 --> 00:15:32,810 ამიტომ, ჩვენ უნდა წარმოადგინოს წერილი ერთად ნიმუში 0 და 1. 245 00:15:32,810 --> 00:15:36,010 და ახლა შეამჩნია ჩვენ უკვე გვაქვს ქონების დაუყოვნებლივ decodability 246 00:15:36,010 --> 00:15:38,090 რომ ჩვენ არ აქვთ Morse კოდი. 247 00:15:38,090 --> 00:15:42,840 მიუხედავად იმისა, რომ ორივე ამ თარგების საკმაოდ მოკლე - E არის 1 bit, არის 2 ბიტი - 248 00:15:42,840 --> 00:15:45,080 შეამჩნია, რომ ისინი არ შეიძლება დაბნეული ერთი ან მეორე, 249 00:15:45,080 --> 00:15:54,870 რადგან თუ ხედავთ 1 ეს რაღაც უნდა იყოს E, თუ ხედავთ 0 შემდეგ 1 ის აშკარად რაღაც უნდა იყოს ა 250 00:15:54,870 --> 00:15:58,410 ანალოგიურად, რა D? 001. 251 00:15:58,410 --> 00:16:01,440 რა არის C? 0001. 252 00:16:01,440 --> 00:16:05,320 და რა არის B? 0000. 253 00:16:05,320 --> 00:16:09,550 ისევ და ისევ, რადგან ყველა წერილებს ჩვენ აღელვებს არიან ფოთლები 254 00:16:09,550 --> 00:16:13,890 და არცერთი მათგანი სახის middlemen in გზა, root to ფოთოლი, 255 00:16:13,890 --> 00:16:18,760 არ რისკი conflating 2 წერილების "განსხვავებული კოდირება 256 00:16:18,760 --> 00:16:22,300 რადგან ყველა ეს bit შაბლონებს are deterministic. 257 00:16:22,300 --> 00:16:25,280 0000 ყოველთვის იქნება ბ 258 00:16:25,280 --> 00:16:29,480 იქ არ არის კვანძის სადღაც შორის, რომ თქვენ შეიძლება აღრეული ერთი წერილი სხვა. 259 00:16:29,480 --> 00:16:31,150 ასე რომ რა მნიშვნელობა აქ? 260 00:16:31,150 --> 00:16:35,080 >> ყველაზე პოპულარული წერილში - ამ შემთხვევაში E - აქვს მიღებული უმოკლეს კოდირების, 261 00:16:35,080 --> 00:16:37,430 უკვე მიღებული შემდეგი უმოკლეს კოდირების, 262 00:16:37,430 --> 00:16:41,390 და B და C, რაც ჩვენ უკვე ვიცოდით მისაღებად-go იყო სახის მაინც პოპულარული 263 00:16:41,390 --> 00:16:45,390 10% სიხშირე თითოეული, მათ მიღებული გრძელი კოდირების. 264 00:16:45,390 --> 00:16:49,410 და მერე რა ეს იმას ნიშნავს, ახლა ის არის, რომ, თუ გსურთ გააგზავნოთ გაგზავნა რომ დაარქივებული 265 00:16:49,410 --> 00:16:51,950 ინტერნეტით ან ელექტრონული ფოსტის ან მოსწონს, 266 00:16:51,950 --> 00:16:56,730 ვიდრე გამოყენებით სტანდარტული ASCII, თქვენ შეგიძლიათ გააგზავნოთ Huffman კოდირებული გაგზავნა 267 00:16:56,730 --> 00:17:01,720 რის თუ გსურთ გააგზავნოთ წერილი ელ, თქვენ გააგზავნით მხოლოდ ერთი bit. 268 00:17:01,720 --> 00:17:05,680 თუ გსურთ გააგზავნოთ, თქვენ გააგზავნით 2 ბიტი, 01, ნაცვლად გაგზავნის 8 ბიტი 269 00:17:05,680 --> 00:17:10,190 მოჰყვა კიდევ ერთი 8 ბიტი, რომელსაც შემდეგ 8 ბიტი და სხვ. 270 00:17:10,190 --> 00:17:11,940 მაგრამ არსებობს GOTCHA აქ. 271 00:17:11,940 --> 00:17:17,079 ეს არ არის საკმარისი მხოლოდ მშენებლობა ხის და შემდეგ დაიწყოს გაგზავნის საწყისი Alice to ბობ 272 00:17:17,079 --> 00:17:20,010 მოკლე bit ნიმუში, string საწყისი ASCII, 273 00:17:20,010 --> 00:17:23,140 რადგან Alice ასევე უნდა აცნობოს ბობ, თუ რა 274 00:17:23,140 --> 00:17:26,880 თუ ბობ აპირებს შეძლებთ წაიკითხოთ მისი შეკუმშული გაგზავნა? 275 00:17:26,880 --> 00:17:30,770 [Inaudible სტუდენტი საპასუხოდ] >> რა არის რომ? 276 00:17:30,770 --> 00:17:32,310 [Inaudible სტუდენტი საპასუხოდ] >> თუ რა ხე არის. 277 00:17:32,310 --> 00:17:35,160 ან კიდევ უფრო კონკრეტულად, რა იმ კოდირება არიან, 278 00:17:35,160 --> 00:17:39,010 განსაკუთრებით მას შემდეგ, რაც ამ ამბავს ჩვენ მივიღეთ გადაწყვეტილება ზარის ერთ მომენტში. 279 00:17:39,010 --> 00:17:43,640 გახსოვდეთ, რომ ჩვენ უნდა აირჩიოთ თვითნებურად შორის 2 სხვადასხვა 20% კვანძების? 280 00:17:43,640 --> 00:17:49,800 ასე რომ არ შემთხვევაში, რომ ბობ, მიმღები, უბრალოდ აღდგენა ხე საკუთარი 281 00:17:49,800 --> 00:17:53,390 რადგან შესაძლოა, მან შევქმნით ხე ოდესმე ისე ოდნავ განსხვავებულად Alice. 282 00:17:53,390 --> 00:17:56,670 უფრო მეტიც, ბობ არც კი ვიცი, რა ორიგინალური გაგზავნა არის 283 00:17:56,670 --> 00:18:00,770 რადგან ერთადერთი, რაც Alice აგზავნის მას, რა თქმა უნდა, არის შეკუმშული გაგზავნა. 284 00:18:00,770 --> 00:18:05,900 >> ასე დაჭერა ერთად შეკუმშვის მოსწონს ეს ის არის, რომ, დიახ, Alice შეგიძლიათ შეინახოთ მთელი ბევრი ბიტი 285 00:18:05,900 --> 00:18:09,900 გაგზავნით 1 for E და 01 ამისთვის და ა.შ., 286 00:18:09,900 --> 00:18:15,180 თუმცა მან ასევე უნდა აცნობოს ბობ რა რუკების შორის წერილები და ბიტი 287 00:18:15,180 --> 00:18:19,620 იმიტომ, რომ ისინი ვერ ნათლად დაეყრდნოს მხოლოდ ASCII უქმნით თუ ჩვენ არ იყენებენ ASCII. 288 00:18:19,620 --> 00:18:22,200 ასე რომ, ის შეგიძლიათ ან მის ხე როგორღაც - 289 00:18:22,200 --> 00:18:26,600 დაწერა down, ჩაწეროთ იგი როგორც ორობითი მონაცემები ან რამე მაგდაგვარს - 290 00:18:26,600 --> 00:18:30,280 ან უბრალოდ მის პატარა cheat ფურცელი, Excel ფაილი, რომელიც აჩვენებს mappings. 291 00:18:30,280 --> 00:18:36,480 ამიტომ ეფექტიანობის შეკუმშვის ნამდვილად ვარაუდობს, რომ მესიჯები, რომ თქვენ გაგზავნის 292 00:18:36,480 --> 00:18:40,230 საკმაოდ დიდი, მინიმუმ საშუალო ზომის, 293 00:18:40,230 --> 00:18:42,180 რადგან თუ თქვენ გაგზავნის სუპერ მოკლე შეტყობინება, 294 00:18:42,180 --> 00:18:45,390 თუ გსურთ გააგზავნოთ გაგზავნა ცუდი, რაც ხდება, რომ იყოს სიტყვა შეგვიძლია მართლწერის აქ, 295 00:18:45,390 --> 00:18:49,550 B--D, თქვენ ალბათ აპირებს გამოიყენოს ნაკლები ბიტი, 296 00:18:49,550 --> 00:18:53,130 მაგრამ დაჭერა არის თუ ასევე უნდა აცნობოს ბობ რა ხე არის 297 00:18:53,130 --> 00:18:57,530 ან რა იმ კოდირება არიან, თქვენ აპირებს ალბათ გადაწონის ყველა დანაზოგების 298 00:18:57,530 --> 00:19:00,110 მქონე შეკუმშული რამ იწყება. 299 00:19:00,110 --> 00:19:02,210 ასე რომ, ეს შეიძლება რეალურად იყოს საქმე, რომ თუ თქვენ ცდილობენ compressing 300 00:19:02,210 --> 00:19:05,330 თუნდაც რაღაც zip ან ფორმატის თქვენ შეიძლება იცნობს - 301 00:19:05,330 --> 00:19:07,780 საკმაოდ პატარა ფაილი, თუნდაც ცარიელი ფაილები - 302 00:19:07,780 --> 00:19:10,930 ზოგჯერ იმ ფაილებს შესაძლოა უფრო დიდი და პატარა არ. 303 00:19:10,930 --> 00:19:14,320 მაგრამ რეალურად, ეს მოხდება მხოლოდ მცირე ზომის ფაილი, 304 00:19:14,320 --> 00:19:16,920 ამიტომ არ ვაპირებთ Gigabyte ფაილი იყოს 2 გბ; 305 00:19:16,920 --> 00:19:19,480 ჩვენ ნამდვილად საუბარი bytes ან უბრალოდ წყვილი kilobytes. 306 00:19:19,480 --> 00:19:22,330 >> ზოგიერთი პროგრამები, როგორიცაა ZIP არიან ჭკვიანი საკმარისი გააცნობიეროს, რომ, 307 00:19:22,330 --> 00:19:24,590 "თქვენ აპირებს მეტი დახარჯონ ბიტი compressing ამ." 308 00:19:24,590 --> 00:19:27,460 "ნება მომეცით არ გადაიტვირთოთ compressing იგი თქვენთვის ყველა." 309 00:19:27,460 --> 00:19:30,160 ასე რომ, ეს მხოლოდ ერთი გზა შემდეგ compressing ტექსტის ფორმატში. 310 00:19:30,160 --> 00:19:32,300 ჩვენ შეგვეძლო განახორციელოს მსგავსი რამ in C. 311 00:19:32,300 --> 00:19:35,370 მაგალითად, აქ არის თუ როგორ შეიძლება წარმოადგენდეს კვანძში ამ ხე 312 00:19:35,370 --> 00:19:39,320 რომელშიც ჩვენ char ამისთვის სიმბოლო, მცურავი მნიშვნელობა სიხშირე, 313 00:19:39,320 --> 00:19:42,250 და როგორც ჩვენ ვხედავთ ჩვენს სხვა მონაცემები სტრუქტურების, 2 პოინტერები, 314 00:19:42,250 --> 00:19:47,080 1 მარცხნივ ბავშვი, 1 მარჯვნივ, არც რომელიც შეიძლება NULL, 315 00:19:47,080 --> 00:19:50,850 მაგრამ თუ არა, ეს ეხება მარცხენა ბავშვი და მარჯვნივ შვილი. 316 00:19:50,850 --> 00:19:55,130 ასე რომ, ეს მაშინ არის Huffman კოდირება, და ეს არის ერთ ერთი გზა, რომ შეგიძლიათ შესახებ compressing ინფორმაციით, 317 00:19:55,130 --> 00:19:57,880 და ეს რა თქმა უნდა ერთ ერთი ყველაზე მარტივი განხორციელება 318 00:19:57,880 --> 00:20:00,830 კონტექსტში, ამბობენ, გასულ კვირას მონაცემები სტრუქტურების, 319 00:20:00,830 --> 00:20:03,250 თუმცა, კიდევ უფრო დახვეწილი ალგორითმები არსებობს 320 00:20:03,250 --> 00:20:08,220 რომ შეგვიძლია გავაკეთოთ კიდევ უფრო დახვეწილი მუტაციების თქვენი მონაცემები. 321 00:20:08,220 --> 00:20:11,640 ნებისმიერი კითხვები მერე ხეები, ბინარული ხეები, ან კომპრესიას ტექსტი? 322 00:20:11,640 --> 00:20:15,590 [სტუდენტი] არის რაღაც გაურკვევლობა, მოსწონს თუ [inaudible] გაიყო 01, 323 00:20:15,590 --> 00:20:19,160 მაშინ 011 იქნება ორაზროვანი, არა? 324 00:20:19,160 --> 00:20:22,730 [Inaudible] >> კარგი კითხვაა. გაურკვევლობა. 325 00:20:22,730 --> 00:20:25,940 ნება მომეცით შეაჯამოს მიერ გულისხმობდა ამ სურათს აქ. 326 00:20:25,940 --> 00:20:29,650 იმის გამო, რომ გმირები თქვენ compressing, წარმომადგენლობების, 327 00:20:29,650 --> 00:20:32,850 ზოგადად ამ ალგორითმი ყოველთვის რჩება ფოთლები, 328 00:20:32,850 --> 00:20:41,870 თქვენ არასდროს შემთხვევით გამოიყენოთ იგივე ნიმუში ბიტი ამისთვის პრეფიქსი მრავალჯერადი წერილებს. 329 00:20:41,870 --> 00:20:46,740 ასე რომ, სხვა სიტყვებით, თქვენ შეშფოთებულია, ეს ჟღერს, გაურკვევლობის წარმოქმნილი 330 00:20:46,740 --> 00:20:51,580 რის 001 შეიძლება იყოს დაწყების B ან დაწყების C ან რამე მაგდაგვარს. 331 00:20:51,580 --> 00:20:56,780 მაგრამ, რომ არ შეიძლება იყოს საქმე, რადგან გაფრთხილების, რომ ყველა ასო ანბანი ჩვენ კოდირების 332 00:20:56,780 --> 00:20:58,290 არიან ფოთლები. 333 00:20:58,290 --> 00:21:01,910 >> გაურკვევლობა შეიძლება მხოლოდ წარმოიქმნება, როგორც იმ შემთხვევაში, Morse კოდი, 334 00:21:01,910 --> 00:21:06,770 თუ, მაგალითად, C იყო სადღაც სვლა საწყისი root to ბ 335 00:21:06,770 --> 00:21:12,290 [სტუდენტი] მარჯვენა. ასე რომ ამ შემთხვევაში, ამბობენ აქვს 2 ფოთლები. >> Say აქვს - ამბობენ, რომ ერთხელ. 336 00:21:12,290 --> 00:21:18,760 [სტუდენტი] Say აქვს 2 ფოთლები, F და G და შემდეგ G - >> Okay. მაგრამ მას არ შეუძლია. 337 00:21:18,760 --> 00:21:23,230 თავად ვერ აქვს ფოთლები F და G რადგან იმ წერილებს F და G 338 00:21:23,230 --> 00:21:27,560 რომ თავად იყოს წასვლამდე სადღაც მარცხნივ B ან უფლების ე 339 00:21:27,560 --> 00:21:28,900 ასე რომ ზოგადად, მათ უნდა ფოთლები. 340 00:21:28,900 --> 00:21:32,940 წინააღმდეგ შემთხვევაში, თქვენ სწორედ ჩვენ არ მოგვარდება პრობლემა, რომ Morse კოდი წინაშე დგას. 341 00:21:32,940 --> 00:21:38,150 კარგი კითხვაა. გაქვთ სხვა კითხვები? ყველა უფლება. 342 00:21:38,150 --> 00:21:42,050 ეს ცნება ბიტი, თურმე ჩვენ გვქონდა ძალა ყველა ერთად რომ ჩვენ რეალურად არ გამოიყენება 343 00:21:42,050 --> 00:21:44,200 როდესაც საქმე მანიპულირებენ ამ 0S და 1s. 344 00:21:44,200 --> 00:21:46,600 ჩვენ ვთხოვეთ ამ ერთი ადრეული პრობლემა კომპლექტი: 345 00:21:46,600 --> 00:21:52,340 კერძოდ, თუ როგორ დადიხართ შესახებ კონვერტაცია ზედა რომ ამას ან პირიქით? 346 00:21:52,340 --> 00:21:55,460 ან, უფრო კონკრეტულად, ერთი იმ პირველ psets სთხოვა 347 00:21:55,460 --> 00:22:01,090 რამდენი ბიტი გაქვთ რეალურად უნდა Flip, რათა შეცვალოს რომ ამას ან პირიქით? 348 00:22:01,090 --> 00:22:05,580 აი სწრაფი შეხსენება, თუ რა 65 და 97 გამოიყურებოდეს წელს ორობითი. 349 00:22:05,580 --> 00:22:08,060 და მაშინაც კი, თუ ეს საკითხი სახის faded თქვენს მეხსიერებაში, 350 00:22:08,060 --> 00:22:11,290 ხედავთ კვლავ აქ რომ რამდენი ბიტი უნდა იყოს flipped 351 00:22:11,290 --> 00:22:15,810 შეცვალოს Capital to მხედრულ? მხოლოდ ერთი. 352 00:22:15,810 --> 00:22:19,650 >> ისინი მხოლოდ განსხვავდება ერთ ადგილას, მესამე ცოტა მარცხნიდან. 353 00:22:19,650 --> 00:22:24,240 ვინაიდან აქვს 010, პატარა აქვს 011. 354 00:22:24,240 --> 00:22:26,250 ასე რომ როგორღაც, ჩვენ გვჭირდება უბრალოდ შეძლებთ Flip, რომ ცოტა, 355 00:22:26,250 --> 00:22:29,410 და ჩვენ შეგვიძლია მაშინ კაპიტალიზაცია ან მხედრულ ასოებით. 356 00:22:29,410 --> 00:22:32,720 ჩვენ გავაკეთეთ ეს წარსულში მიერ რეალურად გამოყენებით, თუ პირობები 357 00:22:32,720 --> 00:22:35,930 და შემოწმების თუ წერილში არის შორის კაპიტალის და კაპიტალის Z, 358 00:22:35,930 --> 00:22:41,480 მაშინ შედეგები, როგორიცაა - + 26 ან რამე მაგდაგვარს. 359 00:22:41,480 --> 00:22:46,130 ალბათ გააკეთა არითმეტიკული ცვლილების წერილები ანბანი. 360 00:22:46,130 --> 00:22:49,270 მაგრამ რა, თუ ჩვენ შეგვიძლია მხოლოდ Flip რომ ერთჯერადი bit? 361 00:22:49,270 --> 00:22:59,080 როგორ შეიძლებოდა მიდიხარ შესახებ აღების ერთი byte-ს ღირებულების ბიტი, ასე 8 ბიტი მოსწონს 01000001 და 01100001? 362 00:22:59,080 --> 00:23:03,170 თითქოს იმ ნიმუშების ბიტი, როგორ შეგვიძლია წავიდეთ შეცვლის შესახებ მხოლოდ ერთი მათგანი? 363 00:23:03,170 --> 00:23:07,610 რა მოხდება, თუ ჩვენ შემოიტანა ყვითელი აქ ამ სხვა ნიმუში ბიტი? 364 00:23:07,610 --> 00:23:13,420 თუ მე მთელი ყვითელი სიმებიანი 0S გარდა ერთი ცოტა რომ მინდა შეიცვალოს 365 00:23:13,420 --> 00:23:17,900 და მერე შემოიღონ ახალი ოპერატორი ცნობილია როგორც bitwise ოპერატორი - 366 00:23:17,900 --> 00:23:21,210 bitwise იმ გაგებით, რომ იგი მუშაობს ინდივიდუალური ბიტი, 367 00:23:21,210 --> 00:23:25,360 არა მთელი byte ან ოთხი ბაიტი ერთდროულად. 368 00:23:25,360 --> 00:23:31,170 ეს ვერტიკალური ბარი იქ ყვითელი ვარაუდობს, რომ რა თუ ავიღებთ წარმომადგენლობა კაპიტალი 369 00:23:31,170 --> 00:23:37,060 და bitwise ან ერთად ყვითელი თანმიმდევრობა ბიტი? 370 00:23:37,060 --> 00:23:41,300 სხვა სიტყვებით, ვფიქრობ უკან ჩვენი განხილვის ლოგიკური გამონათქვამები in Scratch ხოლო შემდეგ C. 371 00:23:41,300 --> 00:23:47,520 >> Doing ლოგიკური ან იმას ნიშნავს, რომ უნდა იყოს ჭეშმარიტი, ან პირველი, რაც უნდა იყოს ნამდვილი 372 00:23:47,520 --> 00:23:50,700 ან მეორე რამ უნდა იყოს ჭეშმარიტი ან ორივე უნდა იყოს ჭეშმარიტი, 373 00:23:50,700 --> 00:23:53,270 და მაშინ შედეგად გამომავალი თავისთავად მართალია. 374 00:23:53,270 --> 00:24:00,230 ამ შემთხვევაში აქ, რას მივიღებთ თუ ავიღებთ 0 "ან" ედ 0? ყალბი ან მცდარი? 375 00:24:00,230 --> 00:24:04,280 ეს ჯერ კიდევ ყალბი, ასე რომ ამას რჩება როგორც მოსალოდნელია. 376 00:24:04,280 --> 00:24:07,540 რა მოხდება, თუ ნაცვლად ჩვენ გავაკეთებთ 1 ან 0? 377 00:24:07,540 --> 00:24:12,640 ეს კიდევ რჩება 1, მაგრამ შეამჩნია რა უნდა მოხდეს აქ. 378 00:24:12,640 --> 00:24:18,630 თუ ჩვენ დავიწყებთ დედაქალაქში და ჩვენ ვაგრძელებთ "ან" მისი ცალკეული ბიტი როგორც ვაკეთებთ აქ, 379 00:24:18,630 --> 00:24:25,180 0 ან ყვითელი ერთი გვაძლევს რა ქვევით აქ? ეს გვაძლევს 1. 380 00:24:25,180 --> 00:24:35,120 ფაქტობრივად, ვივარაუდოთ, ჩვენ არ ვიცით, რა ზედა ვერსია ცოტა რეალურად იყო. 381 00:24:35,120 --> 00:24:38,270 მოდით წავიდეთ ამის გაკეთება. ნება მომეცით გადავიდეს ამ თავში მეტი აქ. 382 00:24:38,270 --> 00:24:42,340 მოდით ეს კიდევ ერთხელ გავაკეთოთ. 0 ან 0 მაძლევს 0. 383 00:24:42,340 --> 00:24:45,020 1 ან 0 მაძლევს 1. 384 00:24:45,020 --> 00:24:48,020 0 ან 1 მაძლევს 1. 385 00:24:48,020 --> 00:24:52,880 0 ან 0 მაძლევს 0. შემდეგი ერთი 0, შემდეგი ერთი 0, შემდეგი ერთი არის 0. 386 00:24:52,880 --> 00:24:55,660 1 ან 0 მაძლევს 1. 387 00:24:55,660 --> 00:24:59,140 და ისე კი, თუ ჩვენ არ ვიცით წინასწარ რა მხედრულ იყო, 388 00:24:59,140 --> 00:25:04,770 უბრალოდ "ან" ING ამ მაგალითზე ბიტი, რომ ჩვენ აქ წარმოდგენილი ყვითელი, 389 00:25:04,770 --> 00:25:09,400 შეგიძლიათ მხედრულ კაპიტალის მიერ flipping რომ bit. 390 00:25:09,400 --> 00:25:11,580 ჩვენ გამოვიყენეთ ეს გამოთქმა კვირის წინ: flipping bit. 391 00:25:11,580 --> 00:25:13,710 როგორ რეალურად გავაკეთოთ, რომ პროგრამულად? 392 00:25:13,710 --> 00:25:16,390 თქვენ გამოიყენოს რა ზოგადად მოუწოდა ნიღაბი, თანმიმდევრობა ბიტი, 393 00:25:16,390 --> 00:25:19,980 რომ ამ შემთხვევაში ასე ხდება ასე გამოიყურება ნომერი აქ, 394 00:25:19,980 --> 00:25:22,980 და მაშინ "ან" ერთად გამოყენებისას ახალი C ოპერატორი, 395 00:25:22,980 --> 00:25:29,940 არ | |, თქვენ იყენებთ ერთი | და თქვენ ამას რეალურად მიიღოს პასუხი აქ იმიტომ რატომ? 396 00:25:29,940 --> 00:25:35,120 ეს არის 1s ადგილი, 2S ადგილი, 4S, 8S, 16s, 32s. 397 00:25:35,120 --> 00:25:42,280 გამოდის, რომ თუ თქვენ მიიღოს კაპიტალის წერილში და bitwise ან ერთად მთელი რიცხვი 32, 398 00:25:42,280 --> 00:25:47,520 რადგან მთელი რიცხვი 32, როდესაც თქვენ შეხედეთ მას, როგორც ბიტი, ასე გამოიყურება, 399 00:25:47,520 --> 00:25:50,860 რაც იმას ნიშნავს, თქვენ შეგიძლიათ Flip bit, რომ თქვენ ნამდვილად გინდათ. 400 00:25:50,860 --> 00:25:52,630 და ანალოგიურად - და ჩვენ შევხედოთ კოდი რაღაც მომენტში - 401 00:25:52,630 --> 00:25:54,210 ვარაუდობენ, გვინდა წასვლა სხვა მიმართულებით. 402 00:25:54,210 --> 00:25:58,210 >> როგორ გადადის ამას კაპიტალის? რომელიც ცოტა უნდა შეიცვალოს? 403 00:25:58,210 --> 00:25:59,820 ეს იგივე ერთი. 404 00:25:59,820 --> 00:26:03,970 ჩვენ გვინდა, რომ შეიცვალოს, რომ მესამე bit from 1 to 0. 405 00:26:03,970 --> 00:26:06,310 და როგორ შეიძლება ჩვენ შესახებ ამით? 406 00:26:06,310 --> 00:26:10,130 როგორ უნდა გამორთეთ ცოტა? რა ნიმუში ბიტი შეგვეძლო გამორთეთ ცოტა? 407 00:26:11,580 --> 00:26:14,070 რა მოხდება, თუ ჩვენ სახის ინვერტული ნიღაბი? 408 00:26:14,070 --> 00:26:17,350 ვინაიდან ადრე, ჩვენ მივიღეთ მთელი ყვითელი ნიღაბი 0S 409 00:26:17,350 --> 00:26:19,930 გარდა ერთი bit გვინდოდა ჩართოთ, 410 00:26:19,930 --> 00:26:25,580 რა, თუ ამ დროს, ჩვენ მთელ ნიღაბი 1s გარდა bit, რომ ჩვენ გვინდა გამორთეთ 411 00:26:25,580 --> 00:26:28,330 და შემდეგ გამოიყენოს რა ოპერატორს? 412 00:26:28,330 --> 00:26:30,560 რა მოხდება, თუ ჩვენ "და" რამ? ავიღოთ სახეს. 413 00:26:30,560 --> 00:26:34,880 თუ ჩვენ ახლა Flip ამ, ვივარაუდოთ, რომ ერთხელ შექმნა ნიღაბი რომ ყველა 1s 414 00:26:34,880 --> 00:26:37,650 გარდა ერთი ცოტა რომ მინდა გამორთეთ 415 00:26:37,650 --> 00:26:43,860 და მაშინ, ვიდრე "ან" თეთრი ნომრები up დაბრუნება ერთად ყვითელი ნომრები ქვემოთ აქ, 416 00:26:43,860 --> 00:26:46,940 მე ვფიქრობ ნაცვლად "და" მათ ერთად? ეს მოუწოდა bitwise და. 417 00:26:46,940 --> 00:26:49,450 ლოგიკურად, ეს იგივე როგორც ლოგიკური და. 418 00:26:49,450 --> 00:26:55,160 ეს მაძლევს 0 & 1 არის 0. ასე რომ ცრუ და ჭეშმარიტი არის ყალბი. 419 00:26:55,160 --> 00:26:58,160 ჭეშმარიტი და ნამდვილი ასეა. 420 00:26:58,160 --> 00:27:04,020 აქ არის ჯადოსნური: ჭეშმარიტი და ყალბი არის ყალბი, ასე რომ ჩვენ გამორთულია ცოტა. 421 00:27:04,020 --> 00:27:06,560 და ახლა დანარჩენი ამბავი გარკვეულწილად მარტივია. 422 00:27:06,560 --> 00:27:11,970 იმის გამო, რომ დანარჩენ ნიღაბი არის 1s, არა აქვს მნიშვნელობა, თუ რა რაოდენობით თეთრი. 423 00:27:11,970 --> 00:27:15,580 როდესაც თქვენ "და" რაღაც ერთად ასეა, თქვენ არ აპირებს შეცვალოს მისი ღირებულება. 424 00:27:15,580 --> 00:27:20,200 თუ ეს მართალია, იგი დარჩება ჭეშმარიტი. თუ ეს იყო ყალბი, დარჩება ყალბი. 425 00:27:20,200 --> 00:27:23,190 >> მაგრამ ჯადოსნური ხდება, როდესაც თქვენ მიიღოს რაღაც რომ იყო ჭეშმარიტი 426 00:27:23,190 --> 00:27:25,430 და მაშინ "და" ეს ყალბი. 427 00:27:25,430 --> 00:27:30,030 ეს ეფექტი შეწყვეტით, რომ ცოტა. 428 00:27:30,030 --> 00:27:31,980 ასე რომ ცოტა cryptic არსებობს. 429 00:27:31,980 --> 00:27:35,390 მოდით რეალურად შევხედოთ ზოგიერთი კოდი, რომელიც შესაძლოა რეალურად გამოიყურება კიდევ უფრო cryptic, 430 00:27:35,390 --> 00:27:38,220 მაგრამ მოდით შევხედოთ აქ tolower. 431 00:27:38,220 --> 00:27:45,880 თუ გავითვალისწინებთ tolower, ვაპირებთ საწყისი კაპიტალი უნდა ამას, 432 00:27:45,880 --> 00:27:47,730 ვნახოთ როგორ შეიძლება განახორციელოს ამ პროგრამის. 433 00:27:47,730 --> 00:27:51,280 აქ მთავარი და ეს არ რაიმე ბრძანების ხაზი არგუმენტები. 434 00:27:51,280 --> 00:27:55,980 მე გამოცხადების ხასიათი გ ამისთვის წერილში მომხმარებლის აპირებს აკრიფოთ სისტემაში 435 00:27:55,980 --> 00:28:00,690 მე მაშინ გამოიყენოთ ნაცნობი do ხოლო loop უბრალოდ დარწმუნდით, რომ მომხმარებლის ნამდვილად მაძლევს კაპიტალი 436 00:28:00,690 --> 00:28:05,010 ან B ან C. .. Z, ასე მომცეს რაღაც შორის და ზ 437 00:28:05,010 --> 00:28:08,580 და ახლა რა ვარ მე აქ აკეთებენ? 438 00:28:08,580 --> 00:28:14,870 მე "ან" ING ამ 0x20, მაგრამ ეს რეალურად იგივე როგორც - 439 00:28:14,870 --> 00:28:19,500 და ჩვენ დავბრუნდებით ამ წელს მომენტში - 32. 440 00:28:19,500 --> 00:28:24,830 ამიტომ ერთხელ, 32 არის ამ მაგალითზე ბიტი აქ. რატომ ვიცით ეს? 441 00:28:24,830 --> 00:28:26,320 უბრალოდ ფიქრობთ თავში კვირაში 0. 442 00:28:26,320 --> 00:28:31,010 ეს არის 1s ადგილი, 2S ადგილი, 4S, 8S, 16s, 32s ადგილი. 443 00:28:31,010 --> 00:28:33,470 ასე რომ, ეს ყვითელი ხმების ხდება იყოს 32. 444 00:28:33,470 --> 00:28:40,570 შემიძლია მერე წერილში მოსწონს char აქ, bitwise "ან" ეს სიტყვასიტყვით ნომერი 32, 445 00:28:40,570 --> 00:28:45,250 და რას არ დავიბრუნებ? ამას ვერსია რომ char. 446 00:28:45,250 --> 00:28:48,830 მომენტში წინ, თუმცა, მე გამოთქვა ამ წელს სხვადასხვა ბაზის ნოტაცია. 447 00:28:48,830 --> 00:28:51,370 რა ამ წარმოადგენენ? >> [სტუდენტი] თექვსმეტობითი. 448 00:28:51,370 --> 00:28:53,050 [Malan] ეს მოხდება, წარმოადგენენ თექვსმეტობითი. 449 00:28:53,050 --> 00:28:55,170 ჩვენ არ ისაუბრა თექვსმეტობითი ყველა რომ ბევრი რამ, 450 00:28:55,170 --> 00:28:57,330 მაგრამ სინამდვილეში მოსახერხებელი შემთხვევებში მოსწონს ეს. 451 00:28:57,330 --> 00:29:01,730 >> მიუხედავად იმისა, რომ იგი გამოიყურება უფრო რთული და მიუხედავად იმისა, რომ ჰგავს 20 და არა 32, 452 00:29:01,730 --> 00:29:06,240 აღმოჩნდება, რომ თექვსმეტობითი ფაქტიურად სუპერ მოსახერხებელი ნოტაცია 453 00:29:06,240 --> 00:29:10,810 რადგან თექვსმეტობითი ყველა ციფრი შემდეგ 0x - და ეს არაფერს ნიშნავს; 454 00:29:10,810 --> 00:29:13,960 ეს მხოლოდ ადამიანის კონვენცია, რომელიც ამბობს, აქ მოდის თექვსმეტობითი ნომერი - 455 00:29:13,960 --> 00:29:18,590 თითოეულ ამ ციფრებს, 2 და შემდეგ 0, თავად შეიძლება წარმოდგენილია 456 00:29:18,590 --> 00:29:20,800 ზუსტად 4 ბიტი. 457 00:29:20,800 --> 00:29:27,840 ასე რომ, თუ ჩვენ ამას ვაკეთებთ, ნება მომეცით გახსენით ტექსტური რედაქტორი აქ - უცნაური თვითდასრულება - 458 00:29:27,840 --> 00:29:35,940 თუ ჩვენ პატარა ტექსტური რედაქტორი აქ, ხმების 0x20 ნიშნავს აქ არის 4 ბიტი, აქ არის კიდევ ერთი 4 ბიტი. 459 00:29:35,940 --> 00:29:38,050 მოდით rightmost 4 ბიტი პირველი. 460 00:29:38,050 --> 00:29:44,690 0 როდესაც წარმოდგენილი 4 ბიტი არის რა? სუპერ მარტივია. უბრალოდ ყველა 0S. 461 00:29:44,690 --> 00:29:46,780 ასე რომ 4 ბიტი როგორც 0S. 462 00:29:46,780 --> 00:29:53,510 როგორ წარმოადგენენ 2? უკვე ხოლო რადგან ეს გავაკეთეთ, მაგრამ 0100. 463 00:29:53,510 --> 00:29:57,310 ასე რომ, ეს 1s ადგილი, ეს არის 2S ადგილი, და მაშინ არ აქვს მნიშვნელობა რა სხვა ადგილებში არიან. 464 00:29:57,310 --> 00:30:00,610 სხვა სიტყვებით, წელს თექვსმეტობითი თქვენ შეიძლება ითქვას, 0x20, 465 00:30:00,610 --> 00:30:04,340 მაგრამ თუ მაშინ ვიფიქროთ რა არის 2 და როგორ არის წარმოდგენილი ორობითი, 466 00:30:04,340 --> 00:30:07,130 რა არის 0 და როგორ არის წარმოდგენილი ორობითი, 467 00:30:07,130 --> 00:30:10,440 პასუხი იმ კითხვებს რომლებიც ამ და ამ, შესაბამისად. 468 00:30:10,440 --> 00:30:14,380 ამიტომ 0x20 ხდება წარმოადგინოს ამ ნიმუში 8 ბიტი, 469 00:30:14,380 --> 00:30:16,880 რაც ზუსტად ნიღაბი რომ გვინდოდა. 470 00:30:16,880 --> 00:30:20,140 ასე რომ, ეს ამ ეტაპზე მხოლოდ ინტელექტუალური სწავლება, 471 00:30:20,140 --> 00:30:24,520 მაგრამ რეალობა კოდის ეს ტიპიურად უფრო საერთო დაწერა მუდმივები მოსწონს 472 00:30:24,520 --> 00:30:28,360 წელს თექვსმეტობითი რადგან მაშინ პროგრამისტი შეიძლება შედარებით ადვილად, 473 00:30:28,360 --> 00:30:32,560 მაშინაც კი, თუ ის მოითხოვს გარკვეული ქაღალდი და ფანქარი, გაერკვნენ, რა, რომ ნიმუში ბიტი არის 474 00:30:32,560 --> 00:30:35,960 იმიტომ, რომ თქვენ არ შეუძლიათ უბრალოდ გამოვხატოთ 0S და 1s ჩვეულებრივ კოდის. 475 00:30:35,960 --> 00:30:38,540 თქვენ ვერ 00010 და სხვ. 476 00:30:38,540 --> 00:30:42,380 >> თქვენ უნდა აირჩიოთ ათობითი ან თექვსმეტობითი ან octal ან სხვა notations. 477 00:30:42,380 --> 00:30:47,540 ადამიანების უმეტესობა ტენდენცია აირჩიოთ თექვსმეტობითი უბრალოდ ისე, რომ თითოეული ციფრი წარმოადგენს 4 ბიტი 478 00:30:47,540 --> 00:30:49,320 და ამისათვის სწრაფი მათემატიკის. 479 00:30:49,320 --> 00:30:54,990 მე კი ტალღის ჩემი ხელი toupper, რომელიც თითქმის იგივე, ის გამოიყურება თითქმის იდენტურია. 480 00:30:54,990 --> 00:31:01,900 Toupper ხდება გამოიყენოს არ ან ოპერატორის არამედ ამ ბიჭს და DF. 481 00:31:01,900 --> 00:31:09,300 რას DF წარმოადგენს? DF? ვინმე? >> [სტუდენტი] 255. 482 00:31:09,300 --> 00:31:12,780 255? არ 255. ეს იქნება FF. 483 00:31:12,780 --> 00:31:15,210 ჩვენ დავტოვებთ ამ ერთი, როგორც პატარა exercise. 484 00:31:15,210 --> 00:31:23,460 მაგრამ თუ თქვენ გადასვლა 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 და მერე რა უძღოდა 9? 485 00:31:23,460 --> 00:31:26,510 ჩვენ სახის გარეთ ათობითი ციფრები, მაგრამ თექვსმეტობითი რა უძღოდა 9? 486 00:31:26,510 --> 00:31:29,510 [სტუდენტი]. >> ასე, B, C, D. 487 00:31:29,510 --> 00:31:33,470 შეგიძლიათ გაერკვნენ, იქიდან რა ნიმუში ბიტი დ რეალურად წარმოადგენს. 488 00:31:33,470 --> 00:31:38,850 და თუ მათემატიკის, ვნახავთ, რომ ნიღაბი თქვენ დასრულდება up მიღების უკან იდენტურია ამ. 489 00:31:38,850 --> 00:31:45,580 ეს არის F, ყველა 1s, და ეს არის დ. ამიტომ DF წარმოადგენს, რომ ნიღაბი. ყველა უფლება. 490 00:31:45,580 --> 00:31:50,980 და ბოლოს, არ მიიღოს რამ ხმის სუპერ, სუპერ ტექნიკური, 491 00:31:50,980 --> 00:31:53,840 მაგრამ ვარაუდობენ, გვინდოდა დაწერა პროგრამა, რომელიც აკეთებს ამას. 492 00:31:53,840 --> 00:31:58,960 ნება მომეცით წავიდეთ წინ და მიიღოს ორობითი, რომელიც პროგრამის ფაილი სახელად binary.c. 493 00:31:58,960 --> 00:32:02,050 და ახლა ნება მომეცით აწარმოებს ორობითი და მომეცი არასამთავრობო უარყოფითი რიცხვი. 494 00:32:02,050 --> 00:32:03,960 დავიწყოთ და ადვილი ტიპის 0. 495 00:32:03,960 --> 00:32:09,010 ეს არის არის პროგრამა, რომელიც ბეჭდავს out მთელი თავისი ბინარული წარმომადგენლობა. 496 00:32:09,010 --> 00:32:13,470 ასე რომ, თუ მე ითამაშე ერთხელ და აკრიფოთ მხოლოდ 1, მე უნდა მიიღოს 32-bit წარმომადგენლობა 1. 497 00:32:13,470 --> 00:32:15,490 თუ მე ეს კიდევ ერთხელ გავაკეთოთ, 2, მე უნდა მიიღოს, რომ. 498 00:32:15,490 --> 00:32:19,310 თუ 7, მე უნდა მიიღოს რამდენიმე 1s დასასრულს და სხვ. 499 00:32:19,310 --> 00:32:22,740 თურმე მე აღვნიშნო, რადგანაც ერთად bitwise ოპერაციების 500 00:32:22,740 --> 00:32:25,490 შეგიძლიათ მართლაც ერთი სხვა რამ ისევე. 501 00:32:25,490 --> 00:32:29,130 თქვენ შეგიძლიათ შექმნათ ეს ნიღბები დინამიურად ვითარდება. 502 00:32:29,130 --> 00:32:32,800 შეხედეთ ამ ერთი საბოლოო მაგალითად ჩართვის bitwise ოპერაციებში. 503 00:32:32,800 --> 00:32:35,490 აქ არის პირველი ნაწილი კოდი, შეეკითხება მომხმარებელს ამისთვის ნომერი, 504 00:32:35,490 --> 00:32:38,130 და ეს ამტკიცებს, რომ თქვენ მაძლევს არასამთავრობო უარყოფითი რიცხვი. 505 00:32:38,130 --> 00:32:39,780 ასე რომ ერთგვარი ძველი სკოლის პერსონალის. 506 00:32:39,780 --> 00:32:41,980 მაგრამ აქ არის რაღაც რომ სახის საინტერესო. 507 00:32:41,980 --> 00:32:44,910 >> როგორ შემიძლია წასვლა შესახებ ბეჭდვა რაოდენობის ორობითი? 508 00:32:44,910 --> 00:32:48,970 მე პირველად iterate რა, თუ რა? 509 00:32:48,970 --> 00:32:52,270 რა ზომის int როგორც წესი, მაინც ელექტრო? >> [სტუდენტი] 4. 510 00:32:52,270 --> 00:32:57,130 ეს 4. ასე რომ 4 * 8 არის 32 - 1 არის 31. 511 00:32:57,130 --> 00:33:02,590 ასე რომ, თუ მე დაწყებული დათვლა საწყისი 31, რომელიც წარმოადგენს, თურმე, 512 00:33:02,590 --> 00:33:07,630 მხოლოდ კონცეპტუალურად, 31 ბიტი ან უმაღლესი წესრიგის bit, რაც ამ ბიჭს მეტი აქ, 513 00:33:07,630 --> 00:33:09,650 ხოლო ამ იქნება bit 0. 514 00:33:09,650 --> 00:33:12,850 ასე რომ, ეს ცოტა 01 ... ცოტა 31. 515 00:33:12,850 --> 00:33:14,950 ასე რომ რა არის ეს კოდი აკეთებს? 516 00:33:14,950 --> 00:33:20,140 გაითვალისწინეთ ეს მარყუჟი, მიუხედავად იმისა, რომ გამოიყურება cryptic, მხოლოდ iterating 31 ქვემოთ 0. ეს არის ის. 517 00:33:20,140 --> 00:33:24,530 ასე რომ საინტერესო ნაწილი უნდა იყოს ამ 5 ხაზები აქ. 518 00:33:24,530 --> 00:33:28,110 გაითვალისწინეთ, რომ ამ ხაზის მე გამოცხადების ცვლადში ნიღაბი 519 00:33:28,110 --> 00:33:30,790 უნდა შეესაბამებოდეს ჩვენი ამბავი ამ ყვითელი ნომრები. 520 00:33:30,790 --> 00:33:32,200 და მერე რა არის ეს აკეთებს? 521 00:33:32,200 --> 00:33:35,720 ეს არის კიდევ ერთი bitwise ოპერატორის ჩვენ არ მინახავს ადრე, სავარაუდოდ. 522 00:33:35,720 --> 00:33:38,300 ეს მარცხენა Shift ოპერატორს. 523 00:33:38,300 --> 00:33:40,060 ეს ოპერატორი აკეთებს ამას. 524 00:33:40,060 --> 00:33:44,920 აქ არის ნომერი 1, და თუ დავტოვე ცვლა, მარცხენა Shift, 525 00:33:44,920 --> 00:33:49,260 როგორ ფიქრობთ, რომ აქვს ეფექტი აკეთებს, რომ ინდივიდუალური 1? 526 00:33:49,260 --> 00:33:51,290 სიტყვასიტყვით გადავიდა ეს დასრულდა. 527 00:33:51,290 --> 00:33:57,540 ასე რომ, თუ ნომერი 1 არის ის, რაც თქვენ გაქვთ მარცხენა და გავუშვით მიერ ინიციალიზაციისას I დან 31, 528 00:33:57,540 --> 00:34:03,490 რა არის, რომ აპირებდა? ის აპირებს ამ რაოდენობის 1 და გადაიტანოს ის 31 წერტილში, აქ. 529 00:34:03,490 --> 00:34:06,210 და რადგან იქ აშკარად სხვა ციფრები უკან, 530 00:34:06,210 --> 00:34:10,350 იმ ხელს იყოს უნდა შეიცვალოს 0S. 531 00:34:10,350 --> 00:34:15,120 ასე, რომ თქვენ დავიწყებთ ერთად ნომერი 1, რომელიც რა თქმა უნდა ასე გამოიყურება - 532 00:34:15,120 --> 00:34:18,659 და ნება მომეცით გავამახვილო ეს მეტი აქ ცენტრში. 533 00:34:18,659 --> 00:34:22,139 და მაშინ, როგორც თქვენ გადაეტანა რამ მარცხენა, ამ ბიჭს არსებითად მიდის ამ გზით. 534 00:34:22,139 --> 00:34:24,659 მაგრამ, როგორც კი თქვენ ამის გაკეთება, 0 იღებს შევსებული შემოსული 535 00:34:24,659 --> 00:34:28,360 თუ თქვენ გადაეტანა იგი მეორედ, ის მიდის ამ გზით და სხვა 0 იღებს შევსებული შემოსული 536 00:34:28,360 --> 00:34:31,000 >> თქვენ გადაეტანა იგი კვლავ და შემდეგ კიდევ ერთი 0 იღებს შევსებული შემოსული 537 00:34:31,000 --> 00:34:37,900 ასე რომ, თუ თქვენ ამის გაკეთება რამ: 1 << მე 31 ადგილები, თქვენ დასრულდება up მიღების ნიღაბი 538 00:34:37,900 --> 00:34:42,550 რომ არის 32 სიმბოლომდე leftmost რომელთაგან ერთი 1, 539 00:34:42,550 --> 00:34:45,199 ყველა დანარჩენი, რომლებიც 0. 540 00:34:45,199 --> 00:34:50,880 და თურმე, როგორც განზე დაიკავეს ნომრის მარცხენა მოსწონს 541 00:34:50,880 --> 00:34:53,530 ასევე ერთსა და ზოგჯერ მოხერხებულად, 542 00:34:53,530 --> 00:34:57,520 აქვს ეფექტი აკეთებს რა, რომ ნომერი? >> [სტუდენტი] დუბლირების იგი. 543 00:34:57,520 --> 00:35:00,980 გაორმაგება, რადგან თითოეული სვეტების - 1s ადგილი, 2S ადგილი, 4S ადგილი, 544 00:35:00,980 --> 00:35:05,030 8S ადგილი, 16s ადგილი - they're ყველა გაორმაგება, როგორც თქვენ გადადით მარცხნივ. 545 00:35:05,030 --> 00:35:09,500 უფრო სწორად, როდესაც თქვენ გადაეტანა 1s თქვენ აპირებს მოხვდნენ გააორმაგოს ღირებულება ნომერი. 546 00:35:09,500 --> 00:35:12,070 თქვენ შეგიძლიათ დასრულდება მდე აკეთებს საინტერესო ტრანსფორმაციების ციფრების 547 00:35:12,070 --> 00:35:15,640 მიერ გადასვლის ყველაფერი მეტი ამ გზით მიერ უფლებამოსილების 2. 548 00:35:15,640 --> 00:35:17,150 მაშ როგორ აკეთებს ამას მუშაობს? 549 00:35:17,150 --> 00:35:22,580 ეს მაშინ მაძლევს ნიღაბი რომ ყველა 0S გარდა 1 ზუსტად ადგილი მინდა ეს, 550 00:35:22,580 --> 00:35:27,920 და მაშინ ეს გამოთქმა, რომელიც მოპარული toupper.c, 551 00:35:27,920 --> 00:35:31,770 უბრალოდ ვამბობ, მიიღოს ნომერი N რომ მომხმარებლის აკრეფილი, 552 00:35:31,770 --> 00:35:34,730 "და" იგი რომ ნიღაბი, და რას აპირებენ კიდევ? 553 00:35:34,730 --> 00:35:39,200 თქვენ აპირებს მიიღოს 1 თუ არსებობს 1 ამ ნიღბიანი საიდან, 554 00:35:39,200 --> 00:35:41,570 ან თქვენ აპირებს მიიღოს 0 თუ არ. 555 00:35:41,570 --> 00:35:44,370 და ა.შ. ყველა ამ პროგრამის ამჯამად ეფექტურად არის მას აქვს loop, 556 00:35:44,370 --> 00:35:48,340 და ეს ქმნის ნიღაბი ერთად 1 ზე აქ, მაშინ 1 ზე აქ, მაშინ 1 ზე აქ, 557 00:35:48,340 --> 00:35:52,950 და იგი იყენებს ამ bitwise და შეასრულა ვთქვა არის 1 წვლილი მომხმარებლის შეყვანის აქ? 558 00:35:52,950 --> 00:35:59,220 >> არის 1 წვლილი მომხმარებლის შეყვანის აქ? და თუ, სიტყვასიტყვით ბეჭდვა 1, სხვაგან ბეჭდვა 0. 559 00:35:59,220 --> 00:36:03,780 ვაკეთებთ ამ ints მხოლოდ იმიტომ, ამიტომაც ვაკეთებთ 32 ბიტი ნაცვლად 8, 560 00:36:03,780 --> 00:36:06,900 მაგრამ რა ჩვენ გააცნო მაშინ ეს bitwise და ამ bitwise ან, 561 00:36:06,900 --> 00:36:10,450 და ეს მარცხენა Shift ოპერატორი, რომლებიც არ არიან ხშირად საშინლად გამოსადეგი, 562 00:36:10,450 --> 00:36:12,230 მაგრამ აღმოჩნდება, ისინი შეიძლება. 563 00:36:12,230 --> 00:36:16,560 რეალურად, თუ თქვენ წარმოადგინოს რაღაც მასივი Booleans 564 00:36:16,560 --> 00:36:21,260 უბრალოდ წარმოადგინოს ჭეშმარიტი ან ცრუ, ვივარაუდოთ, თქვენ სურდა ტრეკზე თუ არა 565 00:36:21,260 --> 00:36:24,630 ოთახი სავსე 300 სტუდენტი იმყოფება, 566 00:36:24,630 --> 00:36:29,420 თქვენ შეიძლება განაცხადოს მასივი ზომა 300 ტიპის bool ისე, რომ თქვენ კიდევ 300 bools, 567 00:36:29,420 --> 00:36:33,090 და როდესაც თქვენ დააჭერთ ყოველი ჭეშმარიტი თუ ვინმე არის აქ და ცრუ სხვაგვარად. 568 00:36:33,090 --> 00:36:37,550 რატომ არის, რომ წარმომადგენლობა რომ მონაცემები სტრუქტურა არაეფექტური? 569 00:36:39,370 --> 00:36:44,800 რა არის ცუდი დიზაინი, რომ მონაცემები სტრუქტურა, მასივი 300 bools? 570 00:36:46,190 --> 00:36:49,600 რა არის bool, ფაქტობრივად, ქვევმოთ hood? 571 00:36:49,600 --> 00:36:52,310 ეს, ძალიან, არის რაღაც, რაც შესაძლოა არ იყოს ნაცნობი. 572 00:36:52,310 --> 00:36:53,720 თურმე არ არსებობს bool. 573 00:36:53,720 --> 00:36:56,620 დამახსოვრება ჩვენ სახის შექმნა რომ cs50.h ფაილი, 574 00:36:56,620 --> 00:36:58,630 რომელიც თავისთავად მოიცავს სტანდარტული bool. 575 00:36:58,630 --> 00:37:00,930 C არის სახის მუნჯები, თუმცა, როდესაც საქმე bool. 576 00:37:00,930 --> 00:37:04,880 იგი იყენებს 8 ბიტიან წარმოადგინოს ყველა bool, რომელიც მთლიანად wasteful 577 00:37:04,880 --> 00:37:09,040 რადგან ცხადია, რამდენი ბიტი გჭირდებათ წარმოადგინოს bool? მხოლოდ 1. 578 00:37:09,040 --> 00:37:13,190 გამოდის, რომ თუ თქვენ ახლა უკვე უნარს, bitwise ოპერატორები 579 00:37:13,190 --> 00:37:17,760 მანიპულირება ინდივიდუალური ბიტი კი char, თუნდაც ერთი ბაიტი, 580 00:37:17,760 --> 00:37:21,380 აღმოჩნდება, თქვენ შეიძლება შეამციროს მეხსიერების საჭირო წარმოადგენენ იმედი 581 00:37:21,380 --> 00:37:25,490 მოსწონს, რომ დასწრება ე.წ. მონაცემები სტრუქტურის მიერ ფაქტორი 8. 582 00:37:25,490 --> 00:37:29,820 ნაცვლად გამოყენებით რვა ბიტი წარმოადგენს ჭეშმარიტი ან ცრუ, შეგიძლიათ სიტყვასიტყვით გამოიყენოთ ერთი 583 00:37:29,820 --> 00:37:34,500 გამოყენებით ერთი byte ყველა რვა სტუდენტების კლასის 584 00:37:34,500 --> 00:37:41,990 და toggling საწყისი 0 დან 1 ინდივიდუალური ბიტი გამოყენებით ამ სახის დაბალი დონის ხრიკები. 585 00:37:43,850 --> 00:37:49,460 რომ ნამდვილად ბოლო მოეღოს ენერგია. არსებობს თუ არა რაიმე კითხვა bitwise ოპერაციების? 586 00:37:49,460 --> 00:37:52,710 >> Yeah. >> [სტუდენტი] არის განსაკუთრებული ან ოპერატორს? 587 00:37:52,710 --> 00:37:56,440 დიახ. არსებობს განსაკუთრებული ან ოპერატორს, რომ ასე გამოიყურება, ^, სტაფილოს სიმბოლო, 588 00:37:56,440 --> 00:38:02,070 რაც იმას ნიშნავს, მხოლოდ პირველი ნივთი ან მეორე რამ შეიძლება 1 for output უნდა იყოს 1. 589 00:38:02,070 --> 00:38:07,750 არსებობს ასევე არ, ~, რომელიც საშუალებას მოგცემთ ინვერსიის 0 დან 1 ან პირიქით, ისევე. 590 00:38:07,750 --> 00:38:11,600 და არსებობს ასევე მარჯვენა Shift ოპერატორი, >>, რომელიც საპირისპირო ერთი ვნახეთ. 591 00:38:11,600 --> 00:38:13,850 ყველა უფლება. ავიღოთ რამ არის მაღალ დონეზე. 592 00:38:13,850 --> 00:38:16,770 ჩვენ დავიწყეთ მიერ ვსაუბრობთ ტექსტი და შემდეგ compressing ეს 593 00:38:16,770 --> 00:38:19,650 და წარმოადგენს ტექსტი ნაკლები რაოდენობით ბიტი; 594 00:38:19,650 --> 00:38:22,890 ჩვენ ვისაუბრეთ ცოტა შესახებ, თუ როგორ შეგვიძლია ახლა დავიწყოთ მანიპულირება რამ on bitwise დონეზე. 595 00:38:22,890 --> 00:38:26,640 მოდით ახლა zoom უკან მდე 10,000 ფეხები გამოსახულებამდე 596 00:38:26,640 --> 00:38:29,250 უფრო კომპლექსური რამ, როგორიცაა გრაფიკა. 597 00:38:29,250 --> 00:38:32,950 აქ ჩვენ გვაქვს გერმანიის დროშა, აქ ჩვენ გვაქვს ერთი საფრანგეთის. 598 00:38:32,950 --> 00:38:36,350 ეს შეიძლება იყოს წარმოდგენილი ფორმატის მოგეხსენებათ - GIFs, მაგალითად. 599 00:38:36,350 --> 00:38:40,030 თუ თქვენ ოდესმე მინახავს გამოსახულება ინტერნეტში რომ მთავრდება. Gif, 600 00:38:40,030 --> 00:38:43,000 ეს არის გრაფიკული ცვლა ფორმატი. 601 00:38:43,000 --> 00:38:47,530 ეს ორი დროშები აქ სახის სარგებლის თავს შეკუმშვის 602 00:38:47,530 --> 00:38:52,050 რისთვისაც ალბათ აშკარა მიზეზი? >> [Inaudible სტუდენტი საპასუხოდ] 603 00:38:52,050 --> 00:38:53,440 არსებობს უამრავი განმეორება, არა? 604 00:38:53,440 --> 00:38:57,270 იმისათვის, რომ გაგზავნას გერმანიის დროშა, ვფიქრობ ამ, როგორც გამოსახულება ეკრანზე 605 00:38:57,270 --> 00:38:59,030 უკან თქვენი Scratch დღე. 606 00:38:59,030 --> 00:39:02,380 თქვენ შეიძლება გავიხსენოთ, რომ არსებობს ინდივიდუალური პიქსელი ან წერტილი, რომ დაკომპლექტებას გამოსახულება. 607 00:39:02,380 --> 00:39:06,650 >> არსებობს მთელი რიგი შავი წერტილების და სხვა მთელი რიგი შავი წერტილები. 608 00:39:06,650 --> 00:39:10,110 აქ bunch of რიგები შავი წერტილები, რომ ჩვენ ვხედავდით, თუ ჩვენ მართლაც zoomed წელს, 609 00:39:10,110 --> 00:39:13,370 ჰგავს, როდესაც ჩვენ zoomed წელს რობ სახე in Photoshop. 610 00:39:13,370 --> 00:39:15,500 როგორც კი მივიღეთ უფრო ღრმა და უფრო ღრმა და სიღრმეში გამოსახულება, 611 00:39:15,500 --> 00:39:19,990 თქვენ დაიწყო ხედავს pixelation, ყველა მოედნებზე, რომ შექმნა თავისი თვალი ამ შემთხვევაში. 612 00:39:19,990 --> 00:39:24,130 იგივე გარიგება აქ. თუ ჩვენ zoomed საკმაოდ ცოტა, თქვენ ამას ვხედავ ინდივიდუალური წერტილები. 613 00:39:24,130 --> 00:39:27,110 ისე, ეს არის სახის ნარჩენები ბიტი. 614 00:39:27,110 --> 00:39:32,120 თუ მესამე დროშის არის შავი და მესამედი დროშა არის ყვითელი და ა.შ., 615 00:39:32,120 --> 00:39:34,860 რატომ არ შეიძლება ჩვენ როგორღაც შეკუმშოს ეს დროშა? 616 00:39:34,860 --> 00:39:39,560 და მაშინაც კი, საფრანგეთის დროშა შეიძლება დაარქივებული მიუხედავად იმისა ნიმუში არის ცოტა განსხვავებული. 617 00:39:39,560 --> 00:39:44,120 თურმე GIF ფაილის ფორმატი არის უდანაკარგო შეკუმშვის ფორმატი, 618 00:39:44,120 --> 00:39:48,420 რაც იმას ნიშნავს, თქვენ შეუძლია იმიჯი მოსწონს გერმანიის დროშა აქ, 619 00:39:48,420 --> 00:39:53,540 შეგიძლიათ გადაყარეთ ბევრი თავისი ბიტი გარეშე ხარისხის ხარჯზე. 620 00:39:53,540 --> 00:39:55,340 ეს არის განსხვავებით რაღაც JPEGs, 621 00:39:55,340 --> 00:39:57,050 რომელთანაც ყველაზე ჩვენგანი ალბათ უფრო ნაცნობი. 622 00:39:57,050 --> 00:39:59,000 Facebook ფოტო და Flickr ფოტო და მოსწონს 623 00:39:59,000 --> 00:40:02,200 თითქმის ყოველთვის გადაარჩინა როგორც JPEGs როდესაც ისინი ატვირთული, 624 00:40:02,200 --> 00:40:08,100 მაგრამ JPEGs არის lossy - LOSSY - ფორმატი, რომლის დროსაც თქვენ ჩვენგან გადაყარეთ ბიტი 625 00:40:08,100 --> 00:40:10,430 მაგრამ თქვენ ასევე გადაყარეთ ხარისხი. 626 00:40:10,430 --> 00:40:13,890 და ასე თუ შეკუმშოს ფოტოები Photoshop ან ატვირთეთ მათ Facebook 627 00:40:13,890 --> 00:40:15,580 ან მიიღონ მათ მართლაც crappy ტელეფონი, 628 00:40:15,580 --> 00:40:19,510 თქვენ იცით, რომ სურათზე იწყებს ძალიან splotchy და pixelated, 629 00:40:19,510 --> 00:40:22,290 და ეს იმიტომ, რომ ის მიმდინარეობს შეკუმშული მიერ კომპიუტერის ან ტელეფონის 630 00:40:22,290 --> 00:40:24,550 მიერ სიტყვასიტყვით სროლა ინფორმაცია დაშორებით. 631 00:40:24,550 --> 00:40:28,500 მაგრამ GIF არის საოცარი, რომ ის შეიძლება გამოიყენოს ნაკლები ბიტი, ვიდრე ეს შეიძლება იყოს 632 00:40:28,500 --> 00:40:30,750 დაკარგვის გარეშე ნებისმიერი ინფორმაციის. 633 00:40:30,750 --> 00:40:32,410 >> და ეს არსებითად ასე იქცევა შემდეგნაირად. 634 00:40:32,410 --> 00:40:38,740 იმის ნაცვლად, რომ მაღაზიის ფაილი, როგორიცაა BMP რომ RGB სამმაგი შავი, შავი, შავი, შავი, 635 00:40:38,740 --> 00:40:42,570 შავი, შავი, შავი, შავი, შავი, შავი, შავი, შავი და ა.შ., 636 00:40:42,570 --> 00:40:45,640 საკმაოდ, GIF ფორმატში აპირებს ამბობენ, "შავი", 637 00:40:45,640 --> 00:40:48,330 და მაშინ, "გამეორება ამ 100 ჯერ," ან რაღაც მსგავსი რომ. 638 00:40:48,330 --> 00:40:52,280 "შავი, ვიმეორებ ამ 100 ჯერ, შავი, ვიმეორებ ამ 100 ჯერ ..." 639 00:40:52,280 --> 00:40:54,530 "ყვითელი, ვიმეორებ ამ 100 ჯერ." 640 00:40:54,530 --> 00:40:57,200 ამიტომ ახსოვს, არსებითად, leftmost pixel 641 00:40:57,200 --> 00:41:02,160 და შემდეგ encodes როგორღაც ცნება იმეორებს, რომ pixel ისევ და ისევ. 642 00:41:02,160 --> 00:41:06,110 ამიტომ GIFs შეიძლება მაშინ შეკუმშოს თავად დაკარგვის გარეშე ნებისმიერი ინფორმაციის. 643 00:41:06,110 --> 00:41:09,510 მაგრამ თუ ჰქონდა უნდა გამოიცნოს, თუ ეს ალგორითმი რომ gifs გამოყენების, 644 00:41:09,510 --> 00:41:13,180 რომელიც ამ დროშებით, მიუხედავად იმისა, ისინი იდენტური ზომის, 645 00:41:13,180 --> 00:41:19,620 იქნება პატარა როცა გადაარჩინა დისკზე როგორც GIF? >> [სტუდენტი] გერმანიაში. 646 00:41:19,620 --> 00:41:21,660 გერმანიაში იქნება პატარა? რატომ? 647 00:41:21,660 --> 00:41:26,620 [სტუდენტი] იმიტომ გავიმეორებ ბევრი, ბევრი ჯერ ჰორიზონტალურად 648 00:41:26,620 --> 00:41:29,010 და მაშინ ვიმეორებ სხვა დროს. >> ზუსტად. 649 00:41:29,010 --> 00:41:32,020 იმის გამო, რომ ადამიანები, რომლებიც გამოგონილი GIF მხოლოდ სახის თვითნებურად გადაწყვიტა 650 00:41:32,020 --> 00:41:36,040 რომ განმეორება იქნება leveraged ჰორიზონტალურად და არ laterally. 651 00:41:36,040 --> 00:41:40,900 არსებობს ბევრი გამეორების laterally აქ გერმანიის დროშა, ვიდრე საფრანგეთის დროშა. 652 00:41:40,900 --> 00:41:44,430 ასე რომ, თუ ჩვენ რეალურად გახსენით საქაღალდე ჩემი ხისტ დისკზე, რომელსაც აქვს ამ GIFs, 653 00:41:44,430 --> 00:41:51,920 შეგიძლიათ რეალურად ვხედავთ, რომ გერმანიის დროშა აქ არის 2 kilobytes და საფრანგეთის ერთი 4 kilobytes. 654 00:41:51,920 --> 00:41:54,080 ეს ხდება იყოს შემთხვევითი, რომ ერთი ორჯერ სხვა, 655 00:41:54,080 --> 00:41:57,960 მაგრამ სინამდვილეში საქმე, რომ საფრანგეთის დროშა არის გაცილებით. 656 00:41:57,960 --> 00:42:01,250 >> მიუხედავად იმისა, რომ ჩვენ ვსაუბრობთ აქ გრაფიკა, იგივე იდეები შეიძლება მიმართოს 657 00:42:01,250 --> 00:42:05,150 არ რამ, როგორიცაა დროშები მაგრამ სურათებით, რომლებიც პატარა უფრო რთული. 658 00:42:05,150 --> 00:42:08,170 თუ თქვენ მიიღოს სურათს ვაშლის, აუცილებლად არსებობს უამრავი დუბლირებას იქ, 659 00:42:08,170 --> 00:42:11,040 ამიტომ ვერ როგორღაც გვახსოვდეს, რომ ნაგულისხმევი ფონზე არის ლურჯი 660 00:42:11,040 --> 00:42:13,230 და არა, როგორც მარჯვენა ნახატზე ვარაუდობს, 661 00:42:13,230 --> 00:42:16,830 უნდა გვახსოვდეს, ფერი თითოეული პიქსელის ამ სურათს. 662 00:42:16,830 --> 00:42:21,060 ასე რომ ჩვენ შეგვიძლია ჩააგდოს ბიტი მოშორებით არსებობს დაკარგვის გარეშე ინფორმაციას. 663 00:42:21,060 --> 00:42:23,340 ვაშლის კვლავ გამოიყურება უბრალოდ იგივე. 664 00:42:23,340 --> 00:42:27,510 ამ მაგალითში აქ, თქვენ ალბათ ხედავთ რა ხდება ფილმის. 665 00:42:27,510 --> 00:42:31,970 ეს წარმოადგენს ძველი სკოლა ფილმი მასრები რის ზედა გამოსახულება არსებობს 666 00:42:31,970 --> 00:42:36,900 თქვენ გაქვთ RV მამოძრავებელი წარსულში სახლი და ხე. 667 00:42:36,900 --> 00:42:42,130 და როგორც რომ ვან დრაივები წარსულში მარცხნიდან მარჯვნივ, რა აშკარად არ იცვლება? 668 00:42:42,130 --> 00:42:45,320 სახლი არ აპირებს არსად, და ხე არ აპირებს არსად. 669 00:42:45,320 --> 00:42:47,700 ერთადერთი, რომ მოძრავი არის ვან ამ შემთხვევაში. 670 00:42:47,700 --> 00:42:51,650 ასე რომ, როგორც ფონის უცვლელი ვარაუდობს, რას გავაკეთებთ ფილმები 671 00:42:51,650 --> 00:42:56,530 ერთნაირად მხოლოდ გადაყარეთ ინფორმაცია, რომელიც არ შეიცვლება შორის ფარგლებში. 672 00:42:56,530 --> 00:42:58,900 ეს საყოველთაოდ ცნობილია, როგორც interframe შეკუმშვის 673 00:42:58,900 --> 00:43:02,120 რის თუ არა ეს ჩარჩო გამოიყურება თითქმის იდენტურია ამ ერთი, 674 00:43:02,120 --> 00:43:05,390 მოდით არ გადაიტვირთოთ შენახვა დისკზე ნებისმიერი იდენტური ინფორმაცია 675 00:43:05,390 --> 00:43:09,250 ამ შუალედური ფარგლებში, მოდით მხოლოდ გამოიყენოთ გასაღები ფარგლებში ერთხელ ხოლო 676 00:43:09,250 --> 00:43:13,420 რომ რეალურად შესანახად, რომ საინფორმაციო redundantly ისევე როგორც პატარა საღი აზრის შეამოწმოს. 677 00:43:13,420 --> 00:43:18,620 >> პირიქით, მეორე მიდგომა compressing ვიდეო არის ამ მეორე და ქვედა მაგალითად აქ, 678 00:43:18,620 --> 00:43:23,970 აქ ვიდრე მაღაზიაში 30 კადრი, რატომ არ უბრალოდ შეინახოს 15 კადრი მეორე ნაცვლად? 679 00:43:23,970 --> 00:43:27,070 იმის ნაცვლად, რომ ფილმის სახის მიედინება ლამაზად, შესანიშნავად, 680 00:43:27,070 --> 00:43:30,060 ეს შესაძლოა გამოიყურებოდეს ის stuttering ცოტა, ცოტა ძველი სკოლა, 681 00:43:30,060 --> 00:43:37,190 მაგრამ ნეტო ეფექტი იქნება გამოიყენოს შორს ნაკლები ბიტი, ვიდრე შეიძლება სხვაგვარად იყოს საჭირო. 682 00:43:37,190 --> 00:43:39,240 ასე რომ სად ეს მაშინ დაგვტოვებთ? 683 00:43:39,240 --> 00:43:41,700 ეს იყო ცოტა განზე სად სხვაგან შეგიძლიათ წავიდეთ ერთად შეკუმშვის. 684 00:43:41,700 --> 00:43:45,140 დამატებითი რომ მიიღოს კლასის მოსწონს CS175 აქ. 685 00:43:45,140 --> 00:43:46,990 აი კიდევ ერთი მაგალითი იმისა ფარგლებში ვიდეო. 686 00:43:46,990 --> 00:43:49,190 თუ ფუტკრის არის ერთადერთი მოძრავი, 687 00:43:49,190 --> 00:43:51,790 შეგიძლიათ ნამდვილად გადააგდებს ინფორმაცია იმ ახლო ფარგლებში 688 00:43:51,790 --> 00:43:55,260 რადგან ყვავილი და ცა და ფოთლები არ იცვლება. 689 00:43:55,260 --> 00:43:57,960 მაგრამ მოდით განვიხილოთ ერთი ბოლო რამ. 690 00:43:57,960 --> 00:44:03,890 მომდევნო 5 წუთი ჩვენ დატოვება C უკან სამუდამოდ ლექცია? დიახ. არ psets, თუმცა. 691 00:44:03,890 --> 00:44:10,210 ბოლო ამბავი C და შემდეგ მივიღებთ ძალიან sexy პერსონალის 692 00:44:10,210 --> 00:44:13,870 ჩართვის HTML და ვებ და WOO-Hoo. ყველა უფლება. 693 00:44:13,870 --> 00:44:16,050 Here We Go. სწორედ მოტივაცია. 694 00:44:16,050 --> 00:44:20,020 თურმე ყველა ამ დროს, როდესაც ჩვენ წერდა პროგრამების ჩვენ აწარმოებს Clang. 695 00:44:20,020 --> 00:44:23,890 და Clang, ჩვენ განაცხადა წლიდან პირველ კვირას საკმაოდ ბევრი იღებს კოდის 696 00:44:23,890 --> 00:44:25,740 და აკონვერტებს იგი ობიექტის კოდი. 697 00:44:25,740 --> 00:44:28,540 იგი იღებს C და აკონვერტებს იგი 0S და 1s. 698 00:44:28,540 --> 00:44:32,150 მე სახის იქნა ცრუობს თქვენ რამდენიმე კვირის განმავლობაში, რადგან ეს არ არის საკმაოდ მარტივია, როგორც რომ. 699 00:44:32,150 --> 00:44:36,750 >> არსებობს გაცილებით მეტი მიმდინარეობს ქვეშ hood როდესაც თქვენ აწარმოებს პროგრამა მოსწონს Clang. 700 00:44:36,750 --> 00:44:39,560 სინამდვილეში, პროცესის შედგენის პროგრამას შეუძლია ნამდვილად უნდა შეაჯამა, 701 00:44:39,560 --> 00:44:42,210 როგორც თქვენ შესაძლოა გავიხსენოთ საწყისი Rob-ს ვიდეო compilers, 702 00:44:42,210 --> 00:44:47,580 შევიდა ამ 4 ნაბიჯები: წინასწარ დამუშავებას, შედგენას თავად იკრიბებიან, და აკავშირებს. 703 00:44:47,580 --> 00:44:51,950 მაგრამ ჩვენ კლასში და საუკეთესო ხალხი მსოფლიოში, როგორც წესი, შეაჯამოს ყველა ამ ნაბიჯებს 704 00:44:51,950 --> 00:44:54,410 როგორც მხოლოდ "შედგენა." 705 00:44:54,410 --> 00:44:58,070 მაგრამ თუ ჩვენ დავიწყებთ კოდის მსგავსად, გავიხსენოთ ეს ალბათ უმარტივესი C პროგრამის 706 00:44:58,070 --> 00:45:03,530 ჩვენ წერილობითი დღემდე იხსენებენ, რომ როდესაც შედგენილი იგი მთავრდება ეძებს მოსწონს ეს. 707 00:45:03,530 --> 00:45:07,310 მაგრამ რეალურად შუალედური ნაბიჯს და იმ ნაბიჯების ასეთია. 708 00:45:07,310 --> 00:45:10,750 პირველი არის ეს საგანი დროს ძალიან ზევით და საუკეთესო ჩვენი პროგრამების, 709 00:45:10,750 --> 00:45:13,550 # Include 710 00:45:13,550 --> 00:45:17,210 რას # მოიცავს ნუ ჩვენთვის? 711 00:45:17,210 --> 00:45:24,150 ეს საკმაოდ ბევრი ასლები და პასტები შინაარსი stdio.h ჩემს ფაილი ისე, რომ რატომ? 712 00:45:24,150 --> 00:45:27,220 რატომაა აინტერესებს შინაარსი stdio.h? რა არის იქ საინტერესო? 713 00:45:27,220 --> 00:45:32,310 Printf განცხადებას, მისი პროტოტიპი, რათა შემდგენელი მაშინ იცის რას ვგულისხმობ 714 00:45:32,310 --> 00:45:34,900 როდესაც ვახსენებ ამ ფუნქციის printf. 715 00:45:34,900 --> 00:45:39,390 ასე ნაბიჯი 1 in შედგენის არის წინასწარ დამუშავებას, რომლის დროსაც პროგრამა მოსწონს Clang 716 00:45:39,390 --> 00:45:43,450 ან დამხმარე პროგრამა, რომელიც Clang გააჩნია ნათქვამია თქვენი კოდი ყველაზე ქვედა, 717 00:45:43,450 --> 00:45:47,740 მარცხნიდან მარჯვნივ, და ნებისმიერ დროს ამას მიზანშეწონილად მიიჩნევს # სიმბოლო მოჰყვა სიტყვით მოსწონს მოიცავს, 718 00:45:47,740 --> 00:45:53,980 იგი ასრულებს, რომ ოპერაცია, კოპირება და pasting ამ შემთხვევაში stdio.h თქვენი ფაილი. 719 00:45:53,980 --> 00:45:55,510 სწორედ ნაბიჯი 1. 720 00:45:55,510 --> 00:45:59,620 მაშინ თქვენ გაქვთ გაცილებით დიდია C ფაილი გამო უზარმაზარი ასლი, პასტა სამუშაოს ეს მხოლოდ მოხდა. 721 00:45:59,620 --> 00:46:01,710 >> ნაბიჯი 2 ახლა შედგენა. 722 00:46:01,710 --> 00:46:04,880 მაგრამ აღმოჩნდება, შედგენის იღებს კოდის რომ ასე გამოიყურება 723 00:46:04,880 --> 00:46:08,160 და თურმე ის, რომ რაღაც ასე გამოიყურება, 724 00:46:08,160 --> 00:46:12,560 რაც შეეხება იმ ნაცნობი ჰქვია? >> [სტუდენტი] ასამბლეა. >> ასამბლეის ენაზე. 725 00:46:12,560 --> 00:46:16,700 ეს არის რეალურად რაღაც თუ თქვენ მიიღოს CS61 თქვენ ჩაყვინთვის შევიდა უფრო დეტალურად. 726 00:46:16,700 --> 00:46:22,380 ეს არის მხოლოდ ახლოს, როგორც თქვენ შეგიძლიათ მიიღოთ წერას 0S და 1s თავის 727 00:46:22,380 --> 00:46:25,850 მაგრამ წერილობით რამ ისე, რომ ჯერ კიდევ იღებს მინიმუმ ცოტა გრძნობა. 728 00:46:25,850 --> 00:46:30,760 ეს არის მანქანა ინსტრუქციები, და თუ ჩვენ გადახვევა ქვემოთ მთავარი ფუნქცია აქ, 729 00:46:30,760 --> 00:46:35,470 შევნიშნოთ, რომ ეს ბიძგი დავალებით, გადაადგილება დავალებით, სხვაობა დავალებით, 730 00:46:35,470 --> 00:46:38,550 მოვუწოდებთ დავალებით, და სხვ. 731 00:46:38,550 --> 00:46:42,930 როდესაც გესმით, რომ თქვენი კომპიუტერი Intel შიგნით, 732 00:46:42,930 --> 00:46:46,180 თქვენ გაქვთ Intel CPU თქვენს Mac ან PC, რას ნიშნავს ეს? 733 00:46:46,180 --> 00:46:51,200 CPU მოდის მიერ აშენებული კომპანიები, მაგალითად Intel გაგება გარკვეული ინსტრუქციები. 734 00:46:51,200 --> 00:46:55,770 არ იციან, რა ფუნქციები, როგორიცაა სვოპი არის ან მთავარ არიან თავისთავად, 735 00:46:55,770 --> 00:47:00,060 მაგრამ ვიცით, რა დაბალი დონის მითითებებს, როგორიც დაამატოთ, სხვაობა, დააყენებს, 736 00:47:00,060 --> 00:47:02,430 გადაადგილება, მოვუწოდებთ, და ა.შ. არიან. 737 00:47:02,430 --> 00:47:06,170 ასე რომ, როდესაც თქვენ შედგენის C კოდი შევიდა ასამბლეის ენაზე 738 00:47:06,170 --> 00:47:11,820 თქვენი ძალიან მოსახერხებელი ორიენტირებული კოდი გარდაქმნადია რაღაც რომ ასე გამოიყურება, 739 00:47:11,820 --> 00:47:21,670 რომ სიტყვასიტყვით მოძრაობს bytes ან 4 ბაიტი გარშემო ასეთ მცირე ერთეულების და გარეთ CPU. 740 00:47:21,670 --> 00:47:26,820 მაგრამ საბოლოოდ, როცა Clang მზად არის ამ წარმომადგენლობა თქვენი პროგრამა 741 00:47:26,820 --> 00:47:30,940 შევიდა 0S და 1s, მაშინ ნაბიჯი უწოდა იკრიბებიან მოხდება, 742 00:47:30,940 --> 00:47:33,850 და ეს კიდევ ერთხელ ყველა ხდება blink of თვალის როდესაც გაშვებული Clang. 743 00:47:33,850 --> 00:47:39,300 ჩვენ დავიწყებთ აქ, ეს შედეგები შემდეგის მსგავსად, და შემდეგ ეს აკონვერტებს იგი ამ 0S და 1s. 744 00:47:39,300 --> 00:47:42,000 და თუ გინდათ წავიდეთ უკან რაღაც მომენტში და რეალურად ვხედავ ამ მოქმედებაში, 745 00:47:42,000 --> 00:47:48,220 თუ წასვლას hello1.c--ეს არის ერთ პირველივე პროგრამების ჩვენ შევხედეთ - 746 00:47:48,220 --> 00:47:53,710 ჩვეულებრივ ჩვენ შეადგინონ ამ Clang hello1.c და ეს გვაძლევს a.out. 747 00:47:53,710 --> 00:47:59,890 თუ პირიქით თქვენს ნაცვლად მისცეს მას-S დროშა, რაც თქვენ მიიღებთ არის hello1.s 748 00:47:59,890 --> 00:48:02,750 და თქვენ რეალურად ვხედავ ასამბლეის ენაზე. 749 00:48:02,750 --> 00:48:05,750 >> მე ამით ძალიან მოკლე პროგრამა, მაგრამ თუ დაბრუნდა Scramble 750 00:48:05,750 --> 00:48:08,740 ან მაშინ ნებისმიერი პროგრამის თქვენ დაწერილი და უბრალოდ გარეთ ცნობისმოყვარეობა 751 00:48:08,740 --> 00:48:13,240 გვინდა, რომ რასაც ის რეალურად გამოიყურება, რა მართლაც ყელში შევიდა CPU, 752 00:48:13,240 --> 00:48:15,700 შეგიძლიათ გამოიყენოთ, რომ-S დროშა Clang. 753 00:48:15,700 --> 00:48:17,770 მაგრამ შემდეგ ბოლოს, არსებობს კიდევ ერთი GOTCHA. 754 00:48:17,770 --> 00:48:21,810 აქ არის 0S და 1s რომ წარმოადგენენ ჩემი განხორციელების hello, world. 755 00:48:21,810 --> 00:48:25,530 მაგრამ მე სხვისი ფუნქციის ჩემი პროგრამა. 756 00:48:25,530 --> 00:48:28,710 ასე რომ მიუხედავად იმისა, რომ პროცესი უკვე მე hello.c, 757 00:48:28,710 --> 00:48:34,280 იგი იღებს შედგენილი შევიდა ასამბლეის კოდი, ხოლო შემდეგ იგი იღებს შეიკრიბნენ შევიდა 0S და 1s, 758 00:48:34,280 --> 00:48:37,460 მხოლოდ 0S და 1s, რომლებიც outputted ამ მომენტში 759 00:48:37,460 --> 00:48:40,270 არიან, რომ შედეგი საწყისი ჩემი კოდი. 760 00:48:40,270 --> 00:48:44,400 მაგრამ ადამიანი, რომელიც წერდა printf, ისინი შედგენილი მათი კოდი 20 წლის წინ 761 00:48:44,400 --> 00:48:47,000 და ეს არის დაყენებული სადღაც ელექტრო მოწყობილობების, 762 00:48:47,000 --> 00:48:51,610 ამიტომ ჩვენ როგორღაც უნდა შერწყმა თავისი 0S და 1s ერთად ჩემი 0S და 1s, 763 00:48:51,610 --> 00:48:56,160 და რომ მივყავართ მე -4 და საბოლოო ნაბიჯი შედგენის, რომელიც ცნობილია როგორც აკავშირებს. 764 00:48:56,160 --> 00:48:58,680 ა.შ. მარცხენა მხარეს გვაქვს ზუსტი იგივე სურათი, როგორც ადრე: 765 00:48:58,680 --> 00:49:02,580 hello.c ხდება ასამბლეის კოდი ხდება 0S და 1s. 766 00:49:02,580 --> 00:49:05,960 მაგრამ გავიხსენოთ, რომ მე გამოიყენება სტანდარტული I / O ბიბლიოთეკა ჩემი კოდი, 767 00:49:05,960 --> 00:49:10,350 და ეს ნიშნავს, რომ სადმე კომპიუტერში არსებობს ფაილი სახელად stdio.c 768 00:49:10,350 --> 00:49:13,980 ან თუნდაც შედგენილი ვერსია მათი იმიტომ, რომ ვიღაცას რამდენიმე წლის წინ 769 00:49:13,980 --> 00:49:18,530 შედგენილი stdio.c შევიდა ასამბლეის კოდი და შემდეგ მთელი bunch of 0S და 1s. 770 00:49:18,530 --> 00:49:21,130 ეს არის ის, რაც ცნობილია, როგორც სტატიკური ან დინამიური ბიბლიოთეკა. 771 00:49:21,130 --> 00:49:23,350 ეს ზოგიერთი ფაილის სხდომაზე სადღაც ელექტრო მოწყობილობების. 772 00:49:23,350 --> 00:49:28,710 >> მაგრამ ბოლოს, მე უნდა ჩემი 0S და 1s და რომ პირის 0S და 1s 773 00:49:28,710 --> 00:49:32,760 და როგორღაც დაუკავშირონ მათი ერთად, სიტყვასიტყვით დააკავშიროთ იმ 0S და 1s 774 00:49:32,760 --> 00:49:37,900 ერთ ფაილი სახელად a.out ან hello1 ან რასაც დავურეკე ჩემი პროგრამა 775 00:49:37,900 --> 00:49:43,320 ისე, რომ საბოლოო ჯამში აქვს ყველა 1s და 0S რომ უნდა დაკომპლექტებას ჩემი პროგრამა. 776 00:49:43,320 --> 00:49:45,660 ასე რომ მთელი ამ ხნის ამ სემესტრში, როდესაც თქვენ უკვე გამოყენებით Clang 777 00:49:45,660 --> 00:49:48,750 და კიდევ უფრო მეტი ხნის წინ გაშვებული შეტანა აწარმოებს Clang, 778 00:49:48,750 --> 00:49:53,580 ყველა ამ ნაბიჯებმა ხდებოდა სახის მომენტალურად მაგრამ სრულიად შეგნებულად. 779 00:49:53,580 --> 00:49:57,830 და ასე თუ გაგრძელდება კომპიუტერულ მეცნიერებაში, კერძოდ CS61, 780 00:49:57,830 --> 00:50:00,850 ეს ფენა რომ თქვენ კვლავაც კანი უკან off არსებობს 781 00:50:00,850 --> 00:50:06,980 ვსაუბრობთ ეფექტურობის, უსაფრთხოების მნიშვნელობა და მოსწონს ამ ქვედა დონეზე დეტალები. 782 00:50:06,980 --> 00:50:09,220 მაგრამ, რომ ჩვენ დაახლოებით დატოვონ C მიღმა. 783 00:50:09,220 --> 00:50:11,420 მოდით წავიდეთ წინ და მიიღოს ჩვენი 5 წუთიანი შესვენება ახლა, 784 00:50:11,420 --> 00:50:14,190 და როცა ჩვენ დავბრუნდებით: ინტერნეტი. 785 00:50:17,280 --> 00:50:19,170 ყველა უფლება. ჩვენ უკან. 786 00:50:19,170 --> 00:50:23,590 ახლა ჩვენ დავიწყოთ ჩვენი ნახვა არ მხოლოდ HTML, რადგან, როგორც ნახავთ, 787 00:50:23,590 --> 00:50:26,050 HTML თავისთავად რეალურად საკმაოდ მარტივია 788 00:50:26,050 --> 00:50:29,270 მაგრამ ნამდვილად დროს ვებ პროგრამირების უფრო ზოგადად, ქსელში საერთოდ, 789 00:50:29,270 --> 00:50:31,770 და როგორ ყველა ამ ტექნოლოგიების გავერთიანდეთ 790 00:50:31,770 --> 00:50:35,400 რათა საშუალებას მოგვცემს შევქმნათ ბევრად უფრო დახვეწილი პროგრამები atop ინტერნეტ 791 00:50:35,400 --> 00:50:38,690 ვიდრე დღემდე ჩვენ შევძელით ამ შავი და თეთრი ფანჯრები. 792 00:50:38,690 --> 00:50:42,140 მართლაც, ამ დროისთვის სემესტრის მიუხედავად იმისა ჩვენ გაატაროთ შედარებით ნაკლები დრო 793 00:50:42,140 --> 00:50:46,200 on PHP, HTML, CSS, JavaScript, SQL და მეტი, 794 00:50:46,200 --> 00:50:48,480 საუკეთესო სტუდენტებს გააკეთოს დასრულდება მდე აკეთებს საბოლოო პროექტები, რომლებიც ინტერნეტის მეშვეობით 795 00:50:48,480 --> 00:50:51,230 რადგან როგორც დაინახავთ, ფონზე თქვენ ახლა უკვე დო 796 00:50:51,230 --> 00:50:54,450 არის ძალიან გამოიყენება ამ უმაღლესი დონის ენებზე. 797 00:50:54,450 --> 00:50:56,800 >> და როგორც თქვენ დაიწყოს ფიქრი თქვენი საბოლოო პროექტი, 798 00:50:56,800 --> 00:50:59,940 რომელიც, ჰგავს პრობლემა Set 0, სადაც თქვენ წახალისება 799 00:50:59,940 --> 00:51:02,160 არა უმეტეს არაფერი საინტერესო თქვენ Scratch, 800 00:51:02,160 --> 00:51:05,790 საბოლოო პროექტი თქვენი შესაძლებლობა მიიღოს თქვენი newfound ცოდნა და საზრიანი ერთად C 801 00:51:05,790 --> 00:51:09,850 ან PHP ან JavaScript ან ანალოგიური გარეთ Spin 802 00:51:09,850 --> 00:51:12,330 და შექმნათ თქვენი ძალიან საკუთარი ნაჭერი პროგრამული უზრუნველყოფა, რომ მსოფლიომ დაინახოს. 803 00:51:12,330 --> 00:51:17,770 და სათესლე თქვენ იდეები, ვიცით, რომ თქვენ შეგიძლიათ უხელმძღვანელებს აქ, projects.cs50.net. 804 00:51:17,770 --> 00:51:21,800 ყოველ წელს, ჩვენ შუამდგომლობას იდეების ფაკულტეტი და პერსონალი და სტუდენტური ჯგუფების შესახებ კამპუსში 805 00:51:21,800 --> 00:51:27,330 მხოლოდ წარმოადგინონ იდეები საინტერესო რამ, რაც შეიძლება მოგვარდეს გამოყენებით კომპიუტერები, 806 00:51:27,330 --> 00:51:29,860 გამოყენებით საიტებზე გამოყენებით პროგრამული უზრუნველყოფა. 807 00:51:29,860 --> 00:51:32,360 ასე რომ, თუ თქვენ ცდილობენ ამუშავება იდეა საკუთარი, 808 00:51:32,360 --> 00:51:35,790 ყველა საშუალებით გადახვევა მეშვეობით იდეები იქ წელს და ბოლო. 809 00:51:35,790 --> 00:51:39,990 ეს შესანიშნავად okay დაძლევის პროექტი, რომელიც უკვე მოგვარება ადრე. 810 00:51:39,990 --> 00:51:44,540 ჩვენ ვნახეთ ბევრი apps for ხედავს სტატუსის სამრეცხაო წლის კამპუსში, 811 00:51:44,540 --> 00:51:47,000 ბევრი apps for ნავიგაცია სასადილოს მენიუში 812 00:51:47,000 --> 00:51:49,540 ბევრი apps for ნავიგაცია კურსი კატალოგი და მოსწონს. 813 00:51:49,540 --> 00:51:53,680 და მართლაც, მომავალი ლექცია და მომავალში სემინარების, 814 00:51:53,680 --> 00:51:57,750 ჩვენ წარმოგიდგინოთ ზოგიერთი საჯაროდ ხელმისაწვდომი APIs, ორივე კომერციულად ხელმისაწვდომი 815 00:51:57,750 --> 00:52:02,520 ისევე როგორც აქ მიიღონ CS50 წლის კამპუსში ისე, რომ თქვენ გაქვთ მონაცემები 816 00:52:02,520 --> 00:52:04,910 და შეგიძლიათ მაშინ ნუ საინტერესო რამ არის. 817 00:52:04,910 --> 00:52:09,380 ასე უფრო საბოლოო პროექტების რამდენიმე დღის, როდესაც ჩვენ გათავისუფლების სპეციფიკაცია, 818 00:52:09,380 --> 00:52:12,990 მაგრამ ახლა, ვიცით, რომ თქვენ შეგიძლიათ იმუშაოთ სოლო ან ერთი ან ორი მეგობარი 819 00:52:12,990 --> 00:52:16,010 ყველაზე ნებისმიერი პროექტის საინტერესო იყოს თქვენთვის. 820 00:52:16,010 --> 00:52:18,080 ინტერნეტი. 821 00:52:18,080 --> 00:52:22,300 თქვენ წავიდეთ წინ და გაიყვანოს თქვენი ლეპტოპი, მიდიხარ facebook.com პირველად, 822 00:52:22,300 --> 00:52:27,020 რომ არ ხართ შესული სისტემაში ცოტა ხნის წინ, და დააჭიროთ. რა ზუსტად ხდება? 823 00:52:27,020 --> 00:52:30,150 >> როდესაც თქვენ დააჭიროთ თქვენს კომპიუტერში, მთელი bunch of ნაბიჯები 824 00:52:30,150 --> 00:52:32,600 დავიწყოთ სახის magically ხდება. 825 00:52:32,600 --> 00:52:35,960 ასე, რომ თქვენ აქ მარცხენა, სერვერზე როგორიცაა Facebook არის აქ უფლება, 826 00:52:35,960 --> 00:52:42,500 და რატომღაც თქვენ იყენებთ ამ ენის მოუწოდა HTTP, სტილისტიკა გადაცემის პროტოკოლი. 827 00:52:42,500 --> 00:52:46,770 HTTP არ არის პროგრამირების ენა. ეს უფრო ოქმს. 828 00:52:46,770 --> 00:52:52,310 ეს კომპლექტი კონვენციების, რომ ვებ ბრაუზერები და ვებ სერვერების გამოყენება როდესაც intercommunicating. 829 00:52:52,310 --> 00:52:54,360 და რას ნიშნავს ასეთია. 830 00:52:54,360 --> 00:52:56,790 ჰგავს რეალურ ცხოვრებაში, ჩვენ გვაქვს ამ კონვენციების 831 00:52:56,790 --> 00:53:00,140 აქ თუ დააკმაყოფილონ რამდენიმე ადამიანის პირველად, თუ არ იბადება humoring ჩემთვის აქ, 832 00:53:00,140 --> 00:53:03,980 მე შეიძლება ამუშავება თქვენ, ვთქვათ, "Hi, ჩემი სახელი არის დავით." >> Hi, დავით. ჩემი სახელი არის Sammy. 833 00:53:03,980 --> 00:53:05,770 "Hi, დავით. ჩემი სახელია Sammy". 834 00:53:05,770 --> 00:53:08,310 ახლა ჩვენ მხოლოდ ჩაბმულნი ამ სახის სულელური ადამიანის ოქმი 835 00:53:08,310 --> 00:53:12,200 სადაც მე არ ინიცირებული ოქმი, Sammy გამოეხმაურა, 836 00:53:12,200 --> 00:53:15,060 ჩვენ შეირყა ხელში, და გარიგება არის სრული. 837 00:53:15,060 --> 00:53:18,260 HTTP ძალიან გავს სულითა. 838 00:53:18,260 --> 00:53:23,350 როდესაც ბრაუზერში მოითხოვს www.facebook.com, 839 00:53:23,350 --> 00:53:27,020 რა თქვენი ბროუზერი ნამდვილი ჩანაფიქრია გაგრძელების მისი მხრივ, ასე ვთქვათ, 840 00:53:27,020 --> 00:53:29,960 სერვერზე და ის გაგზავნის მას გაგზავნა. 841 00:53:29,960 --> 00:53:34,220 და რომ გაგზავნა არის ტიპიურად მსგავსი რამ მისაღებად - რას გვინდა? - 842 00:53:34,220 --> 00:53:38,740 get me მთავარი გვერდი, რომელიც, როგორც წესი, აღნიშნა ერთი ირიბის დასასრულს URL. 843 00:53:38,740 --> 00:53:43,790 და მხოლოდ ასე რომ თქვენ იცით რა ენაზე მე საუბარი, მე ბრაუზერის ვაპირებ გითხრათ 844 00:53:43,790 --> 00:53:46,930 რომ მე ვსაუბრობ HTTP ვერსია 1.1, 845 00:53:46,930 --> 00:53:51,980 ასევე კარგი ღონისძიება, მე ვაპირებ გითხრათ, რომ მასპინძელი რომ მინდა მთავარი გვერდი 846 00:53:51,980 --> 00:53:54,120 არის facebook.com. 847 00:53:54,120 --> 00:53:57,730 როგორც წესი, ბრაუზერში, unbeknownst თქვენ, ადამიანური, 848 00:53:57,730 --> 00:54:03,350 აგზავნის ამ გაგზავნა მთელს ინტერნეტში, როდესაც თქვენ უბრალოდ აკრიფოთ www.facebook.com, 849 00:54:03,350 --> 00:54:05,370 >> შეიყვანეთ, თქვენს ბრაუზერში. 850 00:54:05,370 --> 00:54:07,300 და რას Facebook უპასუხოს? 851 00:54:07,300 --> 00:54:12,540 იგი პასუხობს ზოგიერთ მსგავსი ორიენტირებული cryptic დეტალები, არამედ ბევრად უფრო. 852 00:54:12,540 --> 00:54:14,310 ნება მომეცით წავიდეთ წინ, რათა Facebook-ის საწყისი გვერდი აქ. 853 00:54:14,310 --> 00:54:17,480 ეს არის ეკრანზე, რომ ყველაზე მეტად ჩვენს ალბათ არასოდეს თუ თქვენ სესიის ხანგრძლივობა ყველა დროის, 854 00:54:17,480 --> 00:54:19,830 მაგრამ ეს მართლაც მათი საწყისი გვერდი. 855 00:54:19,830 --> 00:54:24,150 თუ ჩვენ ამას ვაკეთებთ in Chrome შეამჩნევთ, რომ თქვენ შეგიძლიათ დახევის up ამ პატარა კონტექსტში მენიუები. 856 00:54:24,150 --> 00:54:26,980 გამოყენება Chrome, თუ არა on Mac OS, Windows, Linux, ან მოსწონს, 857 00:54:26,980 --> 00:54:31,840 თუ თქვენ კონტროლი ან მარცხენა დაწკაპუნებით, თქვენ შეგიძლიათ ჩვეულებრივ დახევის up მენიუ, რომ ასე გამოიყურება, 858 00:54:31,840 --> 00:54:35,870 სადაც რამდენიმე პარამეტრები დაელოდება, რომელთაგან ერთი გვერდის წყაროს ნახვა. 859 00:54:35,870 --> 00:54:39,920 თქვენ ასევე შეგიძლიათ ჩვეულებრივ მიიღოთ ამ ნივთებზე აპირებს წევრის მენიუ და გააღიზიანოს გარშემო. 860 00:54:39,920 --> 00:54:42,750 მაგალითად, აქ ქვეშ დასაწყისში, შემქმნელი არის იგივე. 861 00:54:42,750 --> 00:54:45,780 მე ვაპირებ წავიდეთ წინ და შეხედეთ გვერდის წყაროს ნახვა. 862 00:54:45,780 --> 00:54:50,800 რა დაინახავთ არის HTML, რომ ჩანაწერები არ გაუკეთებია წარმოადგინოს facebook.com. 863 00:54:50,800 --> 00:54:55,910 ეს სრული არეულობა, მაგრამ ჩვენ ვხედავთ, რომ ამ ხდის უფრო გრძნობა, სანამ ხანგრძლივი. 864 00:54:55,910 --> 00:54:59,840 თუმცა არის გარკვეული ნიმუშების აქ. ნება მომეცით გადახვევა ქვემოთ პერსონალის მოსწონს ეს. 865 00:54:59,840 --> 00:55:05,730 ეს არის რთული ადამიანის იკითხება, მაგრამ შეამჩნია, რომ არსებობს ამ მაგალითზე დახრილი ფრჩხილები 866 00:55:05,730 --> 00:55:10,360 ერთად საკვანძო სიტყვა, როგორიცაა ვარიანტი, საკვანძო სიტყვები, როგორიცაა ღირებულება, ზოგიერთი ციტირებული სტრიქონები. 867 00:55:10,360 --> 00:55:15,660 ეს არის სადაც, როდესაც თქვენ ხელი მოაწერა up for ძალიან პირველად, მითითებული რა თქვენი დაბადების წელი არის. 868 00:55:15,660 --> 00:55:19,020 რომ ჩამოსაშლელი მენიუს დაბადების წელია როგორღაც კოდირებით აქ 869 00:55:19,020 --> 00:55:23,870 ამ ენაზე მოუწოდა HTML, ჰიპერტექსტური მარკირებას ენა. 870 00:55:23,870 --> 00:55:27,730 სხვა სიტყვებით, როდესაც თქვენი ბრაუზერის ითხოვს ვებ გვერდზე, 871 00:55:27,730 --> 00:55:30,610 ეს მეტყველებს ამ კონვენციის მოუწოდა HTTP. 872 00:55:30,610 --> 00:55:35,170 მაგრამ რას facebook.com რეაგირება, რომ თხოვნა? 873 00:55:35,170 --> 00:55:38,260 >> იგი პასუხობს ზოგიერთ ამ cryptic შეტყობინებები, როგორც ჩვენ ვხედავთ მომენტში. 874 00:55:38,260 --> 00:55:43,760 მაგრამ ყველაზე მეტად მისი პასუხი არის სახით HTML, ჰიპერტექსტური მარკირებას ენა. 875 00:55:43,760 --> 00:55:47,170 სწორედ ფაქტობრივი ენაზე, რომელიც ვებ გვერდზე წერია. 876 00:55:47,170 --> 00:55:52,030 და რა ბრაუზერში ნამდვილად არ არის მაშინ, მიღებიდან, რომ რაღაც ასე გამოიყურება, 877 00:55:52,030 --> 00:55:57,120 ნათქვამია ეს ყველაზე ქვედა, მარცხნიდან მარჯვნივ, და ნებისმიერ დროს ის ხედავს ერთი ამ დახრილი ფრჩხილები 878 00:55:57,120 --> 00:56:03,370 მოჰყვა სიტყვით მოსწონს ვარიანტი, იგი აჩვენებს, რომ მარკირებას ენაზე შესაბამისი გზა. 879 00:56:03,370 --> 00:56:06,820 ამ შემთხვევაში, ეს იქნებოდა ცარიელია ჩამოსაშლელი მენიუს წლის. 880 00:56:06,820 --> 00:56:09,240 თუმცა ისევ და ისევ, ეს არის სრული არეულობა შევხედოთ. 881 00:56:09,240 --> 00:56:16,630 ეს არის არა იმიტომ, რომ Facebook დეველოპერებს მანიფესტი 0, 5 ამისთვის სტილი, მაგალითად. 882 00:56:16,630 --> 00:56:20,190 ეს იმიტომ რომ ყველაზე მეტად კოდი, რომ ისინი წერენ არის, ფაქტობრივად, დაწერილი ლამაზად, 883 00:56:20,190 --> 00:56:22,450 ასევე კომენტარი გააკეთა, ლამაზად indented, და მოსწონს, 884 00:56:22,450 --> 00:56:26,080 თუმცა, რა თქმა მანქანები, კომპიუტერები, ბრაუზერები ნამდვილად არ მისცეს Damn 885 00:56:26,080 --> 00:56:27,890 თუ არა თქვენი კოდი კარგად ე.წ.. 886 00:56:27,890 --> 00:56:33,100 და ფაქტობრივად, ეს სრულიად wasteful მოხვდა tab გასაღები ყველა იმ ჯერ 887 00:56:33,100 --> 00:56:37,650 და დააყენოს კომენტარები მთელი თქვენი კოდი და აირჩიოს ნამდვილად აღწერითი ცვლადი სახელები 888 00:56:37,650 --> 00:56:42,340 რადგან თუ ბრაუზერს არ აღელვებს, ყველა თქვენ აკეთებს დღის ბოლოს არის გაყვანაა bytes. 889 00:56:42,340 --> 00:56:46,660 >> გამოდის, რა საუკეთესო საიტებზე გააკეთოთ მიუხედავად იმისა წყაროს კოდი facebook.com, 890 00:56:46,660 --> 00:56:49,550 ამისთვის cs50.net და ყველა ამ სხვა საიტებზე ინტერნეტში 891 00:56:49,550 --> 00:56:53,730 ტიპიურად კარგად დაწერილი და ასევე კომენტარი გააკეთა and ლამაზად indented და ანალოგიური 892 00:56:53,730 --> 00:56:59,270 ჩვეულებრივ ადრე ნახვა ისიც გადატანა ინტერნეტი, კოდი minified, 893 00:56:59,270 --> 00:57:02,970 რის HTML და CSS - რაღაც ჩვენ მალე ვხედავ - 894 00:57:02,970 --> 00:57:05,960 JavaScript კოდი ჩვენ მალე დაინახავთ არის შეკუმშული, 895 00:57:05,960 --> 00:57:09,250 რის ხანგრძლივი ცვლადი სახელები გახდეს X და Y და Z, 896 00:57:09,250 --> 00:57:13,900 და ყველა რომ whitespace ხდის ყველაფერი ასე იკითხება არის ყველა დააგდეს დაშორებით, 897 00:57:13,900 --> 00:57:17,700 რადგან თუ ფიქრობთ ამის შესახებ და ამ გზით Facebook იღებს მილიარდი გვერდზე ჰიტები დღე - 898 00:57:17,700 --> 00:57:21,670 რაღაც Crazy მოსწონს, რომ - მერე რა, რომ პროგრამისტი უბრალოდ უნდა იყოს anal 899 00:57:21,670 --> 00:57:26,660 მოხვდა სივრცეში ბარი ერთი დამატებითი დრო მხოლოდ აბზაცის რამდენიმე ხაზი კოდი ოდესმე ასე უფრო მეტი? 900 00:57:26,660 --> 00:57:29,500 რა გავლენა თუ Facebook ინარჩუნებს, რომ whitespace 901 00:57:29,500 --> 00:57:32,880 ყველა bytes მათ გაგზავნას თავში ხალხს ინტერნეტში? 902 00:57:32,880 --> 00:57:36,400 Hitting სივრცეში ბარი ერთხელ გაძლევთ დამატებით byte თქვენს ფაილს. 903 00:57:36,400 --> 00:57:39,730 და თუ მილიარდი ადამიანი მაშინ გააგრძელოთ ჩამოტვირთოთ საწყისი გვერდი იმ დღეს, 904 00:57:39,730 --> 00:57:42,060 რამდენად მეტი მონაცემები არ თქვენ გადამდები ინტერნეტში? 905 00:57:42,060 --> 00:57:45,200 Gigabyte არა კარგი მიზეზი. 906 00:57:45,200 --> 00:57:48,510 და მასზე გაიცემა, ამისთვის ბევრი საიტებზე ეს არ არის ისეთი საკითხი scalable, 907 00:57:48,510 --> 00:57:51,030 მაგრამ Facebook, ამისთვის Google, ზოგიერთი ყველაზე პოპულარული საიტებზე 908 00:57:51,030 --> 00:57:54,860 არსებობს დიდი სტიმული ფინანსურად რათა თქვენი კოდი ჰგავს სასადილო 909 00:57:54,860 --> 00:57:58,980 ასე რომ თქვენ იყენებთ როგორც რამდენიმე ბაიტი რაც შეიძლება დამატებით შემდეგ compressing ეს 910 00:57:58,980 --> 00:58:01,500 გამოყენებით რაღაც zip, ალგორითმი მოუწოდა GZIP, 911 00:58:01,500 --> 00:58:04,250 რომ ბრაუზერს არ თქვენთვის ავტომატურად. მაგრამ ეს საშინელი. 912 00:58:04,250 --> 00:58:08,060 ჩვენ ამას არასდროს ვისწავლოთ შესახებ არაფერი სხვა ადამიანების საიტებზე და როგორ, რათა შეიმუშავონ ვებ გვერდები 913 00:58:08,060 --> 00:58:09,680 თუ ჩვენ უნდა შევხედოთ მას მოსწონს ეს. 914 00:58:09,680 --> 00:58:13,620 >> ასე რომ საბედნიეროდ, ბრაუზერები, როგორიცაა Chrome and IE და Firefox ამ დღეებში 915 00:58:13,620 --> 00:58:16,450 ჩვეულებრივ მოდის ერთად ჩამონტაჟებული დეველოპერი ინსტრუმენტები. 916 00:58:16,450 --> 00:58:21,730 ფაქტობრივად, თუ დაცემას აქ შეამოწმოს Element ან თუ მივდივარ სანახავად, დეველოპერი, 917 00:58:21,730 --> 00:58:25,220 და გადადით შემქმნელი ინსტრუმენტები მკაფიოდ, 918 00:58:25,220 --> 00:58:27,640 ფანჯრის ბოლოში ჩემი ეკრანზე ახლა pops up. 919 00:58:27,640 --> 00:58:31,230 ეს პატარა დაშინებას თავდაპირველად რადგან არსებობს უამრავი უცხო ჩანართების აქ, 920 00:58:31,230 --> 00:58:34,510 მაგრამ თუ დააწკაპუნეთ Elements ყველა გზა ქვედა მარცხენა, 921 00:58:34,510 --> 00:58:38,810 Chrome აშკარად საკმაოდ ჭკვიანი. იგი დარწმუნებულია, როგორ ინტერპრეტაცია ყველა ამ კოდექსის. 922 00:58:38,810 --> 00:58:42,320 და მერე რა Chrome არ არის ის ასუფთავებს up ყველა Facebook-ის HTML. 923 00:58:42,320 --> 00:58:45,680 მიუხედავად იმისა, რომ იქ არ არსებობს whitespace, იქ არ არსებობს წანაცვლება, 924 00:58:45,680 --> 00:58:51,120 ახლა შეამჩნია, რომ მე შემიძლია დაიწყოს ნავიგაცია ამ ვებ გვერდზე ყველა უფრო იერარქიულად. 925 00:58:51,120 --> 00:58:56,910 თურმე ყველა ვებ გვერდზე დაწერილი ენის მოუწოდა HTML5 უნდა დაიწყოს ამ, 926 00:58:56,910 --> 00:59:03,980 ამ DOCTYPE დეკლარაცია, ასე ვთქვათ: 927 00:59:03,980 --> 00:59:07,840 ეს ერთგვარი სინათლის და ნაცრისფერი არსებობს, მაგრამ ეს ძალიან პირველი ხაზი კოდი ამ ფაილის, 928 00:59:07,840 --> 00:59:12,080 და რომ მხოლოდ ეუბნება ბრაუზერის, "Hey, აქ მოდის ზოგიერთი HTML5. აქ მოდის ვებ გვერდზე." 929 00:59:12,080 --> 00:59:18,490 პირველი ღია bracket მიღმა რაც ხდება, რომ იყოს ეს საგანი, ღია bracket HTML tag, 930 00:59:18,490 --> 00:59:22,320 და შემდეგ თუ ჩაყვინთვის უფრო ღრმა წელს - ამ ისრებით სრულიად უაზრო; 931 00:59:22,320 --> 00:59:25,140 ისინი მხოლოდ პრეზენტაცია ის გულისთვის, ისინი არ არიან რეალურად ფაილი - 932 00:59:25,140 --> 00:59:30,300 შეამჩნევთ, რომ შიგნით Facebook-ის HTML tag, არაფერი რომ იწყება ღია bracket 933 00:59:30,300 --> 00:59:32,910 და შემდეგ სიტყვა ეწოდება ტეგით. 934 00:59:32,910 --> 00:59:38,610 ასე რომ შიგნით HTML tag აშკარად ხელმძღვანელი tag და სხეულის ტეგით. 935 00:59:38,610 --> 00:59:41,930 შიგნით ხელმძღვანელი tag ახლა არის მთელი სასადილო Facebook- 936 00:59:41,930 --> 00:59:45,620 რადგან მათ ბევრი მეტადატის და სხვა რამ მარკეტინგული და სარეკლამო. 937 00:59:45,620 --> 00:59:50,600 >> მაგრამ თუ ჩვენ გადახვევა down, down, down, down, ვნახოთ, სადაც ეს არის. აი ისიც. 938 00:59:50,600 --> 00:59:52,210 ეს ერთი არის მინიმუმ გარკვეულწილად ნაცნობი. 939 00:59:52,210 --> 00:59:55,990 ტიტული Facebook-ის საწყისი გვერდი, თუ ოდესმე გამოიყურებოდეს in tab თქვენს სათაური ბარი, 940 00:59:55,990 --> 00:59:59,060 არის კეთილი Facebook - შესვლა, რეგისტრაცია ან გაიგეთ მეტი. 941 00:59:59,060 --> 01:00:01,110 რაც თქვენ ამას ვხედავთ Chrome ტიტულის ბარი, 942 01:00:01,110 --> 01:00:03,100 და ასე ის წარმოდგენილი კოდი. 943 01:00:03,100 --> 01:00:08,090 თუ ჩვენ იგნორირება ყველაფერი თავის არეში, ყველაზე guts of ვებ გვერდზე არიან ორგანოს, 944 01:00:08,090 --> 01:00:10,940 და ეს თურმე Facebook კოდია აპირებს გამოიყურებოდეს უფრო რთული 945 01:00:10,940 --> 01:00:14,540 ვიდრე ყველაზე რამ ჩვენ წერენ თავდაპირველად მხოლოდ იმიტომ, რომ ის აშენდა up წლების განმავლობაში, 946 01:00:14,540 --> 01:00:17,260 მაგრამ არსებობს მთელი ბევრი Script tags, JavaScript კოდი, 947 01:00:17,260 --> 01:00:18,870 ხდის ნახვა ძალიან ინტერაქტიული: 948 01:00:18,870 --> 01:00:22,330 ხედავს სტატუსები მომენტალურად გამოყენებით ენებს, როგორიცაა JavaScript. 949 01:00:22,330 --> 01:00:25,270 არსებობს რაღაც მოუწოდა div, რომელიც სამმართველოს გვერდზე. 950 01:00:25,270 --> 01:00:27,940 მაგრამ სანამ არ მივიღებთ, რომ დეტალურად, მოდით ვცდილობთ დააშორებს 951 01:00:27,940 --> 01:00:31,920 და მოუთმენლად ზე მარტივი ვერსია Facebook 1.0, ასე ვთქვათ. 952 01:00:31,920 --> 01:00:34,740 აქ არის hello, სამყაროში ვებ გვერდები. 953 01:00:34,740 --> 01:00:37,370 მას რომ DOCTYPE დეკლარაციის ძალიან დაბრუნება 954 01:00:37,370 --> 01:00:40,280 რომელიც ცოტა განსხვავებული ყველაფერი დანარჩენი. 955 01:00:40,280 --> 01:00:46,130 არაფერი ჩვენ წერს ვებ გვერდზე აპირებს იწყება 01:00:48,880 და იმ შემთხვევაში რაღაც მოუწოდა კომენტარები HTML. 957 01:00:48,880 --> 01:00:53,000 მაგრამ დიდი ნაწილი, ყველაფერი ვებ გვერდზე ღიაა bracket, სიტყვით, ახლო bracket. 958 01:00:53,000 --> 01:00:56,220 >> ამ შემთხვევაში თქვენ შეგიძლიათ ნახოთ მარტივი ვებ გვერდების შესაძლებელი. 959 01:00:56,220 --> 01:01:00,260 HTML tag შეიცავს ხელმძღვანელი tag და იგი შეიცავს ორგანოს tag, 960 01:01:00,260 --> 01:01:04,580 მაგრამ შევნიშნოთ, რომ ამ ცნებას დაწყებული და შეწყვიტო tags. 961 01:01:04,580 --> 01:01:11,360 ეს არის საწყისი ტეგი HTML, ეს არის მჭიდრო tag ან სასრული ტეგით. 962 01:01:11,360 --> 01:01:15,400 გაითვალისწინეთ, რომ ისინი ერთგვარ opposites იმ გაგებით, რომ მჭიდრო tag ან სასრული ტეგით 963 01:01:15,400 --> 01:01:20,030 უკვე ამ პროცესის შეჩერება Slash შიგნით თავისთავად. 964 01:01:20,030 --> 01:01:23,540 ამავდროულად, არსებობს ღია ხელმძღვანელი tag აქ და ახლო ხელმძღვანელი tag აქ. 965 01:01:23,540 --> 01:01:26,880 >> არსებობს ღია სათაური და მჭიდრო სათაური tag აქ. 966 01:01:26,880 --> 01:01:29,850 ის ფაქტი, რომ მე დააყენა სათაური ერთ ხაზს, მხოლოდ თვითნებური. 967 01:01:29,850 --> 01:01:33,760 უბრალოდ ჰგავდა იქნებოდა ჯდება ლამაზად ერთ ხაზს, ასე რომ მე არ შეწუხება დააჭირეთ Enter წყვილი ჯერ. 968 01:01:33,760 --> 01:01:38,200 ამავდროულად, სხეულის მე აბზაცის უბრალოდ უნდა იყოს ოდესმე ასე ნათელია. 969 01:01:38,200 --> 01:01:41,050 გაითვალისწინეთ, რომ HTML არის საკმაოდ dumb ენაზე. 970 01:01:41,050 --> 01:01:43,410 ფაქტობრივად, უკან დღით ადრე იყო WYSIWYG რედაქტორები 971 01:01:43,410 --> 01:01:46,770 და Microsoft Word, სადაც თქვენ შეიძლება ითქვას, "ამ გაბედულ, რომ ეს კურსივით," 972 01:01:46,770 --> 01:01:50,850 თქვენ ამას რეალურად აკრიფოთ პატარა ბრძანებები ესეები 20 + წლის წინ 973 01:01:50,850 --> 01:01:55,740 რომლითაც თქვენ ვიტყოდი, "დაწყება მიღების ამ ტექსტის თამამი. Stop მიღების ამ ტექსტის თამამი". 974 01:01:55,740 --> 01:01:59,010 "დაწყება მიღების ამ ტექსტის კურსივით. Stop მიღების ამ ტექსტის კურსივით." 975 01:01:59,010 --> 01:02:01,850 >> რაც HTML ან ნებისმიერი მარკირებას ენა. 976 01:02:01,850 --> 01:02:05,530 ეს პირველი tag ამბობს, "Hey, ბრაუზერის. აქ მოდის ზოგიერთი HTML." 977 01:02:05,530 --> 01:02:09,880 შემდეგი tag ამბობს, "Hey, ბრაუზერის. აქ მოდის უფროსი, ჰედერი, ჩემი ვებ გვერდი." 978 01:02:09,880 --> 01:02:11,650 "Hey, ბრაუზერის. აქ მოდის სათაური." 979 01:02:11,650 --> 01:02:15,880 და შემდეგ აქ, "Hey, ბრაუზერის. სწორედ ეს სათაური." 980 01:02:15,880 --> 01:02:20,000 ასე რომ, ეს როგორ ბრაუზერის იცის, რომ აღარ არიან უფრო გმირები ვიდრე hello, world 981 01:02:20,000 --> 01:02:21,860 ტიტული ბარი. 982 01:02:21,860 --> 01:02:23,640 იმავდროულად, ეს ამბობს: "ეს არის ის, რომ უფროსი". 983 01:02:23,640 --> 01:02:28,340 ეს ამბობს: "აქ მოდის სხეულის. აქ არის ფაქტობრივი ორგანო" - სიტყვასიტყვით, სიტყვა hello, world. 984 01:02:28,340 --> 01:02:33,190 და ეს ამბობს აქ, "ეს არის ის ორგანო. სწორედ ეს HTML." 985 01:02:33,190 --> 01:02:34,640 ამიტომ ბრაუზერები საკმაოდ dumb. 986 01:02:34,640 --> 01:02:39,920 ისინი უბრალოდ წაიკითხოს ეს პერსონალის დაბრუნება ქვედა, მარცხნიდან მარჯვნივ, და ნუ ზუსტად რა მათ განუცხადა უნდა გააკეთოს. 987 01:02:39,920 --> 01:02:41,860 მოდით რეალურად პატარა მაგალითი აქ. 988 01:02:41,860 --> 01:02:46,240 ნება მომეცით გახსენით მარტივი პროგრამების ჩემს Mac აქ, კერძოდ TextEdit. 989 01:02:46,240 --> 01:02:48,220 On Windows შეგიძლიათ Notepad.exe. 990 01:02:48,220 --> 01:02:50,520 მაგრამ ეს ყველა თქვენ უნდა დაიწყოს მიღების ვებ გვერდებზე. 991 01:02:50,520 --> 01:02:53,730 მე ვაპირებ წავიდეთ წინ და გადააკოპირეთ და ჩასვით ეს კოდი ამ ფაილის. 992 01:02:53,730 --> 01:02:57,210 მე ვაპირებ წავიდეთ წინ და შეინახეთ იგი მაგიდაზე, 993 01:02:57,210 --> 01:03:01,220 და მე ვაპირებ შეინახეთ ამ როგორც hello.html, 994 01:03:01,220 --> 01:03:03,840 და ახლა ფაილი სახელად hello.html. 995 01:03:03,840 --> 01:03:05,690 აქ მაგიდაზე. 996 01:03:05,690 --> 01:03:11,130 ნება მიბოძეთ ახლა წასვლას ბრაუზერი და გადაიტანეთ ფაილის შევიდა ბრაუზერში. 997 01:03:11,130 --> 01:03:14,060 და voila, აქ არის ჩემი პირველი ვებ გვერდი. 998 01:03:14,060 --> 01:03:17,340 გაითვალისწინეთ, რომ ტიტული tab არის hello, მსოფლიოს თითო სათაური tag, 999 01:03:17,340 --> 01:03:20,040 და ცნობა hello, მსოფლიოში არის ორგანო ჩემი ვებ გვერდზე, 1000 01:03:20,040 --> 01:03:22,190 და WOO-Hoo, მე ინტერნეტში. 1001 01:03:22,190 --> 01:03:24,700 >> მე არ ვარ ნამდვილად, სწორი, რადგან ამ ფაილის არ არის ინტერნეტში. 1002 01:03:24,700 --> 01:03:28,330 ეს ხდება იქნება ჩემი ადგილობრივ ხისტ დისკზე იმ კონკრეტულ გზას. 1003 01:03:28,330 --> 01:03:32,720 მაგრამ იდეა იგივეა. ყველა ჩვენ ახლა გვჭირდება არის სერვერზე, რომლის ატვირთოთ იგი. 1004 01:03:32,720 --> 01:03:37,410 მაგრამ პირველი მოდით რეალურად გააცნოს ცოტა მეტი სირთულისა და ცოტა მეტი სტილიზაციასა. 1005 01:03:37,410 --> 01:03:39,890 ეს არის მარტივი, თუ მოსაწყენი, ვებ გვერდზე. 1006 01:03:39,890 --> 01:03:41,990 თურმე არსებობს სხვა სახის Tags ჩვენ შეგვიძლია გამოვიყენოთ. 1007 01:03:41,990 --> 01:03:45,530 მაგალითად, აქ ყვითელი მე გააცნო 2 ახალი ტეგები. 1008 01:03:45,530 --> 01:03:49,630 ჩვენ არ ითამაშებს ბევრი ამ დღეს, მაგრამ შეამჩნია, რომ ბმული tag 1009 01:03:49,630 --> 01:03:52,520 რაღაცნაირად გამოიყურება განსხვავებული ყველაფერი დანარჩენი. 1010 01:03:52,520 --> 01:03:55,370 ლინკები tag იღებს რა ეწოდება ატრიბუტები, 1011 01:03:55,370 --> 01:03:59,770 და ატრიბუტი არის ის, რასაც modifies ქცევის ტეგით. 1012 01:03:59,770 --> 01:04:03,840 ამ შემთხვევაში ეს არ არის საუკეთესო არჩევანი სახელები, ბმული, რადგან მისი სახის უაზრო, 1013 01:04:03,840 --> 01:04:11,590 მაგრამ ეს ლინკი tag ამბობს, არსებითად, მოიცავს ფაილი სახელად styles.css შიგნით ჩემი ვებ გვერდზე. 1014 01:04:11,590 --> 01:04:15,400 შეგიძლიათ წარმოიდგინოთ, რომ ამ როგორც ანალოგიური C-ს # include დირექტივა. 1015 01:04:15,400 --> 01:04:19,650 Styles.css გულისხმობდა სხვადასხვა ენის საერთოდ, რომ ჩვენ არ თამაშობენ დღეს, 1016 01:04:19,650 --> 01:04:23,790 მაგრამ ამისთვის ესთეტიკის: შრიფტის ზომის, ფერის, padding, წანაცვლება, მინდვრები, 1017 01:04:23,790 --> 01:04:26,040 და ყველა ამ ტიპის ესთეტიკის დეტალურად. 1018 01:04:26,040 --> 01:04:28,820 იმავდროულად, Script tag არის ფუნქციურად მსგავსი, 1019 01:04:28,820 --> 01:04:33,140 მაგრამ ვიდრე ეხება CSS, რომ ენა, იგი მოიცავს სხვა ენაზე, JavaScript. 1020 01:04:33,140 --> 01:04:37,810 ასე რომ, სხვა სიტყვებით, ამ 2 Tags მე საბოლოოდ შეძლებს დაწეროს საკუთარი ვებ გვერდი 1021 01:04:37,810 --> 01:04:41,490 არამედ დახევის კოდის რომ მე ან ვინმე სხვა არ გაუკეთებია 1022 01:04:41,490 --> 01:04:44,350 ასე, რომ ჩვენ შეგვიძლია დავდგეთ სხვა ადამიანების მხრებზე, ჩვენ შეგვიძლია პრაქტიკაში კარგი დიზაინი, 1023 01:04:44,350 --> 01:04:46,120 ფაქტორინგული საერთო კოდი. 1024 01:04:46,120 --> 01:04:49,090 თუ მაქვს 10 სხვადასხვა ვებ გვერდები, ეს იმას ნიშნავს, რომ ზოგიერთი ჩემი ესთეტიკის 1025 01:04:49,090 --> 01:04:52,490 შეიძლება factored out, ჰგავს # მოიცავს, შევიდა ცალკე ფაილი. 1026 01:04:52,490 --> 01:04:54,420 ამიტომ ჩვენ ვიღებთ არსებობს. 1027 01:04:54,420 --> 01:04:57,180 მაგრამ მოდით რეალურად პირველი რაღაც უფრო საინტერესო ამ ფაილის. 1028 01:04:57,180 --> 01:05:01,110 >> ისევ და ისევ, ეს მხოლოდ TextEdit. მე არ ვარ ტექნიკურად ინტერნეტში არ არის, მაგრამ ჩვენ იქ. 1029 01:05:01,110 --> 01:05:04,910 მინდა, რათა hello, მსოფლიოში ცოტა თამამი ვიდრე. 1030 01:05:04,910 --> 01:05:10,890 ამიტომ hello, მოდით თვითნებურად ამბობენ ამისთვის თამამი. 1031 01:05:10,890 --> 01:05:15,910 ერთხელ, ამბავი იგივე: Hello, მძიმით, დაიწყოთ ამ გაბედულ, 1032 01:05:15,910 --> 01:05:19,730 მაშინ მსოფლიოში იღებს დაბეჭდილი გაბედულ, და ეს იმას ნიშნავს, შეწყვიტოს ბეჭდვა ეს თამამი. 1033 01:05:19,730 --> 01:05:24,020 ნება მომეცით წავიდეთ წინ და შენახვა ჩემი ფაილი, დავუბრუნდეთ Chrome, მე zoom მხოლოდ ასე ვხედავთ მას უკეთესი, 1034 01:05:24,020 --> 01:05:27,870 და განაახლეთ, და თქვენ ნახავთ, რომ მსოფლიოში ახლა თამამი. 1035 01:05:27,870 --> 01:05:31,810 ვებ ყველაფერი არის ბმულებს, მოდით წავიდეთ წინ და ამის გაკეთება: 1036 01:05:31,810 --> 01:05:38,550 ჩემი საყვარელი საიტი, ასე ვთქვათ, youtube.com. 1037 01:05:38,550 --> 01:05:43,810 შენახვა, განაახლეთ. Okay. არსებობს რამდენიმე პრობლემების ახლა გარდა hideousness of ნახვა. 1038 01:05:43,810 --> 01:05:47,310 1, მე საკმაოდ დარწმუნებული ვარ დააჭიროთ აქ. და მე. 1039 01:05:47,310 --> 01:05:51,590 მე არა მხოლოდ 'Enter, მე ასევე indented, პრაქტიკოსი რა ჩვენ ქადაგებდა შესახებ სტილის, 1040 01:05:51,590 --> 01:05:54,930 მაგრამ ჩემი არის სწორი შემდეგ მსოფლიოში. 1041 01:05:54,930 --> 01:05:58,410 მაშ რატომ არის ეს? ბრაუზერები მხოლოდ რა თქვენ ვუთხრა უნდა გააკეთოს. 1042 01:05:58,410 --> 01:06:04,010 მე არ განუცხადა ბრაუზერის, "Break ხაზები აქ. ჩადეთ პუნქტის შესვენება აქ." 1043 01:06:04,010 --> 01:06:07,820 ამიტომ ბრაუზერის, არა აქვს მნიშვნელობა თუ მოხვდა დაბრუნება 30 ჯერ, 1044 01:06:07,820 --> 01:06:10,820 ის მაინც გეგმავს ჩემი უფლება შემდეგ მსოფლიოში. 1045 01:06:10,820 --> 01:06:15,930 რა ნამდვილად უნდა გავაკეთოთ აქ ამბობენ რაღაც
, ჩადეთ ხაზი შესვენება. 1046 01:06:15,930 --> 01:06:17,940 >> და ფაქტობრივად, ხაზი შესვენების არის სახის უცნაური რამ 1047 01:06:17,940 --> 01:06:21,650 იმიტომ, რომ თქვენ ვერ დაიწყება გადასვლის მეორე ხაზი, მაშინ რაღაც, 1048 01:06:21,650 --> 01:06:25,380 და შემდეგ შეწყვიტოს გადავდივართ ახალ ხაზზე. ეს ერთგვარი ატომური ოპერაცია. 1049 01:06:25,380 --> 01:06:28,140 თქვენ არც ამის გაკეთება, ან თქვენ არ. თქვენ დააჭიროთ ან თქვენ არ. 1050 01:06:28,140 --> 01:06:33,390 ამიტომ br არის ცოტა სხვადასხვა tag, და ა.შ. მე უნდა დასალაგებლად ორივე ღია და ვხურავთ მას 1051 01:06:33,390 --> 01:06:35,230 ერთდროულად. 1052 01:06:35,230 --> 01:06:37,500 სინტაქსი, რომ ეს. 1053 01:06:37,500 --> 01:06:41,760 ტექნიკურად, თქვენ შეეძლო მსგავსი რამ ზოგიერთ ვერსიები HTML, 1054 01:06:41,760 --> 01:06:45,600 მაგრამ ეს მხოლოდ სულელური, რადგან იქ არ არის მიზეზი, რომ დავიწყოთ და შეწყვიტოს რაღაც 1055 01:06:45,600 --> 01:06:48,420 თუ შეგიძლიათ ნაცვლად გავაკეთებთ ერთდროულად. 1056 01:06:48,420 --> 01:06:52,310 გააცნობიეროს, რომ HTML5 არ მკაცრად მოითხოვს ამ ხაზი, 1057 01:06:52,310 --> 01:06:55,410 ასე რომ თქვენ დაინახავთ სახელმძღვანელოების და ინტერნეტ რესურსების, რომ არ გააჩნიათ, 1058 01:06:55,410 --> 01:06:59,780 მაგრამ კარგი ღონისძიება მოდით პრაქტიკაში სიმეტრია, რომ ჩვენ ვნახეთ დღემდე. 1059 01:06:59,780 --> 01:07:02,870 ეს ნიშნავს, რომ აქვს არის ორივე გაიხსნა და დაიხურა. 1060 01:07:02,870 --> 01:07:05,220 ახლა ნება მომეცით გადარჩენა ჩემი ფაილი, დაბრუნდეს აქ. 1061 01:07:05,220 --> 01:07:10,240 Okay, ამიტომ დაწყებული გამოიყურებოდეს უკეთესად, გარდა ვებ ვიცი არის სახის clickable, 1062 01:07:10,240 --> 01:07:13,610 და ჯერ youtube აქ არ ჩანს გამოიწვიოს არაფერი. 1063 01:07:13,610 --> 01:07:17,560 ეს იმიტომ, რომ მიუხედავად იმისა, რომ ჰგავს ლინკები, ბრაუზერს არ ვიცით, რომ თავისთავად, 1064 01:07:17,560 --> 01:07:20,670 ასე რომ მე უნდა ვუთხრათ ბრაუზერის, რომ ეს არის ლინკი. 1065 01:07:20,670 --> 01:07:22,620 >> გზა ამის გამოყენება წამყვანმა tag: 1066 01:07:22,620 --> 01:07:26,770 01:07:35,900 = "Http://www.youtube.com"> 1068 01:07:35,900 --> 01:07:38,490 და ნება მომეცით გადავიდეს ამ ახალ ხაზზე მხოლოდ ამიტომ ცოტა მეტი იკითხება, 1069 01:07:38,490 --> 01:07:40,060 და მე shrink შრიფტის ზომა. 1070 01:07:40,060 --> 01:07:43,890 ვარ გაკეთდეს არავის გაუკეთებია? არა, იქნება ეს dichotomy. 1071 01:07:43,890 --> 01:07:46,760 ეს ტეგი, წამყვანმა tag, ამჯამად მართლაც მიიღოს ატრიბუტი, 1072 01:07:46,760 --> 01:07:52,900 რაც modifies მისი საქციელი, და ღირებულება, რომ ატრიბუტი არის აშკარად YouTube-ის მისამართი. 1073 01:07:52,900 --> 01:07:56,380 მაგრამ შეამჩნევს dichotomy ის არის, რომ მხოლოდ იმიტომ, რომ URL თქვენ აპირებს, 1074 01:07:56,380 --> 01:08:01,020 ეს არ ნიშნავს, რომ უნდა იყოს სიტყვა, რომელიც თქვენ ხაზს უსვამს და მიღების ლინკები. 1075 01:08:01,020 --> 01:08:03,960 პირიქით, რომ შეიძლება მსგავსი რამ. 1076 01:08:03,960 --> 01:08:10,870 ასე უნდა ვთქვა, შეწყვიტოს მიღების ამ სიტყვის ჰიპერბმულის გამოყენებით მჭიდრო წამყვანმა ტეგით. 1077 01:08:10,870 --> 01:08:12,650 გაითვალისწინეთ მე არ აკეთებენ. 1078 01:08:12,650 --> 01:08:15,890 1, ეს მხოლოდ ნარჩენები ყველას დრო და ეს საჭირო არ არის. 1079 01:08:15,890 --> 01:08:19,290 >> დახუროს tag, თქვენ მხოლოდ ნახსენები სახელწოდება tag ერთხელ. 1080 01:08:19,290 --> 01:08:21,800 თქვენ არ უხსენებია რომელიმე ატრიბუტს. 1081 01:08:21,800 --> 01:08:26,189 მოდით გადარჩენა, რომ დაბრუნდეს. Okay, voila, ახლა ლურჯი და hyperlinked. 1082 01:08:26,189 --> 01:08:29,430 თუ მე დაწკაპეთ იგი, მე მართლაც წავიდეს YouTube. 1083 01:08:29,430 --> 01:08:32,529 ასე რომ მიუხედავად იმისა, რომ ჩემი ვებ გვერდზე არ არის ინტერნეტში, ეს არის მინიმუმ HTML, 1084 01:08:32,529 --> 01:08:37,930 და თუ ჩვენ დავუშვებთ ინტერნეტ დაეწიოს, რომ ჩვენ ფაქტობრივად დასრულდება მდე აქ youtube.com. 1085 01:08:37,930 --> 01:08:40,670 და შემიძლია უკან და აქ არის ჩემი ვებ გვერდი. მაგრამ შეამჩნია ეს. 1086 01:08:40,670 --> 01:08:43,120 თუ თქვენ ოდესმე მიღებული spam ან ფიშინგი თავდასხმა, 1087 01:08:43,120 --> 01:08:45,850 ახლა თქვენ გაქვთ უნარი შემდეგ მხოლოდ ხუთი წუთის იგივეს. 1088 01:08:45,850 --> 01:08:50,920 ჩვენ შეგვიძლია წავიდეთ აქ და რაღაც მოსწონს www.badguy.com 1089 01:08:50,920 --> 01:08:59,319 ან რასაც sketchy ნახვა არის, და შემდეგ შეიძლება ითქვას შეამოწმოს თქვენი PayPal ანგარიშზე. 1090 01:08:59,319 --> 01:09:04,840 [სიცილის] და ახლა ამ აპირებს მისვლას badguy.com, რომელიც მე არ ვაპირებ დააჭირეთ 1091 01:09:04,840 --> 01:09:08,000 რადგან არ ვიცი სად მივყავართ. [სიცილის] 1092 01:09:08,000 --> 01:09:10,859 >> მაგრამ ჩვენ ახლა აქვს უნარი რეალურად დასრულდება up there. 1093 01:09:10,859 --> 01:09:12,640 ასე რომ ჩვენ ნამდვილად მხოლოდ დაწყებული გადასაფხეკი ზედაპირზე. 1094 01:09:12,640 --> 01:09:15,830 ჩვენ არ პროგრამირების თავისთავად; ჩვენ წერილობით მარკირებას ენაზე. 1095 01:09:15,830 --> 01:09:18,569 მაგრამ როგორც კი ჩვენ გარშემო ჩვენი ლექსიკა in HTML, 1096 01:09:18,569 --> 01:09:21,520 ჩვენ წარმოგიდგინოთ PHP, ფაქტობრივი პროგრამირების ენა 1097 01:09:21,520 --> 01:09:26,859 რომელიც საშუალებას მოგვცემს გენერირება HTML ავტომატურად, გამოიმუშავებენ CSS ავტომატურად, 1098 01:09:26,859 --> 01:09:29,430 ასე რომ, ჩვენ დავიწყებთ ოთხშაბათს განსახორციელებლად, ვთქვათ, 1099 01:09:29,430 --> 01:09:31,700 ჩვენი საკუთარი საძიებო სისტემა და უფრო მეტი. 1100 01:09:31,700 --> 01:09:34,770 მაგრამ უფრო, რომ რამდენიმე დღის განმავლობაში. ჩვენ დავინახავთ, თქვენ მაშინ. 1101 01:09:34,870 --> 01:09:39,000 >> [CS50.TV]