1 00:00:00,000 --> 00:00:02,440 [Powered by Google Translate] [هفته 7] 2 00:00:02,440 --> 00:00:04,730 [دیوید J. مالان - دانشگاه هاروارد] 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. ما فکر می کنیم آن را سرگرم کننده است. 12 00:00:32,369 --> 00:00:36,110 اگر شما در واقع آن را به طور کامل درست است و می تواند پس از آن به چالش هیئت مدیره به اصطلاح بزرگ، 13 00:00:36,110 --> 00:00:39,830 شما یک فرصت برای مطابقت با عقل با برخی از کارکنان دوره 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 شما متوجه خواهید شد که تمام یک دسته از این مردمی که در اینجا به عنوان کارکنان ذکر شده است 20 00:00:59,740 --> 00:01:04,220 از آنجا که در طول تعطیلات آخر هفته، کارکنان فکر کردم این امر می تواند سرگرم کننده را امتحان کنید به شکست دادن یکدیگر. 21 00:01:04,220 --> 00:01:07,390 به طوری که هدف در اینجا این است که برای شکست دادن کارکنان تحقق بخشند. 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 شما می توانید در مقابل یک برابر برخی از همکلاسی های خود استفاده کنید. 25 00:01:16,790 --> 00:01:20,540 >> و من که کوین مایکل Schmid در اعتراف، 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 خود را خواسته بود که به همین ترتیب برای ارائه یک پروژه ابتدا 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 چرا که برای ما، در هیات حداقل، آن را واقعا بوده است هیجان انگیز 38 00:02:10,759 --> 00:02:14,220 و الهام بخش برای دیدن این مردمی از سراسر جهان - کشور در سراسر جهان - 39 00:02:14,220 --> 00:02:18,160 تنظیم، از همه چیز، به یک دوره علوم کامپیوتر در اینترنت، 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 خوش آمدید، جهان است. من یک دانشجوی مهندسی صنعتی در مالاگا، اسپانیا. 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 [خنده] یکی دیگر از کلیپ ما به خصوص "دوست دارم، شما که انگلیسی این آقایان آنقدر قوی نیست. 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 خوش آمدید، جهان است. [صحبت کردن در زبان ژاپنی] 57 00:03:32,370 --> 00:03:39,830 [I در ژاپن خوش آمد می گوید چون انگلیسی من بسیار غیر قابل اعتماد است.] 58 00:03:39,830 --> 00:03:45,380 [من این پیام را از شهر گیفو، ژاپن به شما تحویل داده می شود.] 59 00:03:45,380 --> 00:03:49,820 [I می تواند به دانش آموز برای اولین بار در 20 سال گذشته، به عنوان دیده می شود.] 60 00:03:49,820 --> 00:03:54,640 [من بسیار سپاسگزار به دانشگاه هاروارد که به من این فرصت و EDX.] 61 00:03:54,640 --> 00:04:01,510 [گلف گیتار است و چیزی که مورد علاقه من در حال اجرا است.] [خنده] 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 [آیا شما فکر می کنم تا شما به سن یادگیری I.] 68 00:04:32,500 --> 00:04:38,350 [cs50 اشتیاق من است. نام من Kazu است، و این cs50.] 69 00:04:38,350 --> 00:04:43,090 [♪ ♪] [کف زدن و تشویق] 70 00:04:43,090 --> 00:04:49,220 یکی دیگر از مورد علاقه ما ارسال مقاله در اینجا از کسی بود. 71 00:04:51,070 --> 00:04:55,380 [♪ ♪] [مالان] گوگل آن را اگر شما با این الگوی رفتاری نا آشنا هستیم. 72 00:04:55,380 --> 00:05:01,480 >> و پس از آن در نهایت، یک زن و شوهر از دیگران است که که شاید برنده شدن جایزه شایستگی کردم. 73 00:05:01,480 --> 00:05:06,820 [دانش آموزان] وای! >> [مالان] ما باید به گوش کند. این کوتاه است، به طوری که نزدیک گوش دهید. 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 [مالان] او دو طول می کشد، هر چند. 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 شده اند که گروهی تا کنون. 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 به همه چیز در سطح بالاتر است، در میان آنها پی اچ پی، جاوا اسکریپت، و مانند آن، 93 00:06:11,190 --> 00:06:14,850 کنیم که رسم بر درس همان است که ما در طول چند هفته گذشته، آموخته ها را ببینید. 94 00:06:14,850 --> 00:06:19,430 اما پیدا خواهید کرد که با اعلام چیزهایی مانند آرایه ها و جداول هش و جستجو و مرتب سازی 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 >> آره. >> [دانشجوی] هنگامی که شما نیاز به آن را بر روی وب ارسال. 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 آن همه جوش پایین با استفاده از بیت کمتر از به طور پیش فرض مورد نیاز است. 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 است که همه محبوب نیست، اما A و 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 و صرف زمان کمی بیشتر، کمی فضای بیشتر در چیزهایی است که، آره، ممکن است رخ دهد 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 >> فرض کنید که ما می خواهیم برای رمزگذاری اطلاعات نسبتا موثر است. 126 00:08:12,610 --> 00:08:15,090 شما ممکن است رشد کرده دانستن یک چیزی کمی در مورد کد مورس، 127 00:08:15,090 --> 00:08:17,450 و شانس شما کد واقعی نمی دانم، 128 00:08:17,450 --> 00:08:21,750 اما شما ممکن است به یاد آورید که آن را حداقل در این مجموعه ای از نقطه و خط تیره است. 129 00:08:21,750 --> 00:08:26,640 به عنوان مثال، E - برنامه نویسی نسبتا کارآمد، و توجه داشته باشید که نامه محبوب ترین است - 130 00:08:26,640 --> 00:08:28,980 با استفاده از کوتاهترین بوق. 131 00:08:28,980 --> 00:08:31,740 کد مورس است که همه چیز در مورد بوق، بوق، بوق، بوق، بوق، بوق و برگزاری زنگ 132 00:08:31,740 --> 00:08:34,799 یا برای دوره های کوتاه زمان یا دوره های طولانی از زمان. 133 00:08:34,799 --> 00:08:40,330 E، به عنوان نقطه نشان داده شده است، یک بوق کوتاه فوق العاده، فقط بوق است، و این که می E. نمایندگی 134 00:08:40,330 --> 00:08:43,960 در مقابل، T خواهد بود بوق طولانی تر، مانند بوق [طولانی صدا] 135 00:08:43,960 --> 00:08:45,710 و لازم است که T. نمایندگی 136 00:08:45,710 --> 00:08:48,840 اما این هنوز هم خیلی کوتاه است، زیرا در مقابل، اگر شما در Z 137 00:08:48,840 --> 00:08:52,690 به بیان Z شما می توانید بوق، بوق [دیگر] صدا، بوق، بوق [کوتاهتر صدا]. 138 00:08:52,690 --> 00:08:55,360 پس از آن دیگر به دلیل آن کمتر شایع است. 139 00:08:55,360 --> 00:08:58,150 اما مارپیچ این است که کد مورس کمی ناقص است 140 00:08:58,150 --> 00:09:00,610 که در آن بلافاصله decodable نیست. 141 00:09:00,610 --> 00:09:07,350 به عنوان مثال، فرض کنید که شما در برخی از انتهای سیم بوق می شنوید [کوتاه]، بوق طولانی مدت. 142 00:09:07,350 --> 00:09:12,480 چه پیام من فقط؟ یک نقطه و یک فاصله است. چه می کند که نشان دهنده؟ 143 00:09:12,480 --> 00:09:15,330 [دانشجوی] A. >> [مالان] شاید. 144 00:09:15,330 --> 00:09:18,270 همچنین می تواند E توسط T. 145 00:09:18,270 --> 00:09:23,390 به عبارت دیگر، کد مورس، هر چند آن از این اصل بهینه سازی در مورد گوشه ای، 146 00:09:23,390 --> 00:09:26,250 آن را نشانی از خود را به decodability فوری قرض دادن نیست. 147 00:09:26,250 --> 00:09:29,850 است، انسانی که در حال شنیدن یا دریافت این نقطه و خط تیره 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 >> بنابراین آنچه که ممکن است به شما انجام دهم؟ در کد مورس به شما فقط می تواند بین هر یک از حروف تامل است. 151 00:09:43,880 --> 00:09:47,660 اما توقف نوع مقابله با نقطه تمام سرعت تا چیز است. 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 مردی به نام هافمن سال پیش اختراع این طرح به نام کدگذاری هافمن 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، و بنیادی است. 163 00:10:31,270 --> 00:10:34,890 و اگر شما در واقع شمارش به عنوان کارشناس، 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 درصد کارشناسی، و غیره. 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 و 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 با توجه به کدگذاری هافمن، شما می توانید جنگل از درختان ایجاد کنید. 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 184 00:11:45,310 --> 00:11:50,200 و در داخل ساختار C ممکن است شناور به نمایندگی از تعداد فرکانس 185 00:11:50,200 --> 00:11:52,510 و پس از آن شاید یک کاراکتر به نمایندگی از نامه. 186 00:11:52,510 --> 00:11:56,470 پس از این گره فقط به عنوان ساختار قدیمی C فکر می کنم اما، در حال حاضر، سطح بالاتر است. 187 00:11:56,470 --> 00:12:01,230 این جنگل از 5 درختان، هر یک که فقط یک گره منفرد است. 188 00:12:01,230 --> 00:12:06,830 هافمن پیشنهادی این است که ما شروع به ترکیب آن درختان 189 00:12:06,830 --> 00:12:11,140 که دارای کوچکترین فراوانی به درختان کمی بزرگتر 190 00:12:11,140 --> 00:12:13,490 با اتصال آنها را با یک گره جدید است. 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 بنابراین هافمن پیشنهاد کرد که ما با یکدیگر ادغام می شوند که 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 و پس از آن هافمن بیشتر پیشنهاد کرد که بیایید فکر می کنم در حال حاضر فقط از فرزند چپ 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 >> مهم نیست که اگر شما آنها را تلنگر تا زمانی که شما سازگار است. 201 00:12:50,680 --> 00:12:54,650 بنابراین در حال حاضر ما دارای چهار درختان در این جنگل است. 202 00:12:54,650 --> 00:12:58,050 و من می گویم 4 چرا که در حال حاضر درخت در سمت چپ - 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 توجه کنید که در آن پدر و مادر ما کشیده شده ام .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 و 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 پس این درخت هافمن برنامه نویسی است. 227 00:14:20,580 --> 00:14:24,400 این نوع از زمان است در حالی که برای رسیدن به آنجا شفاهی است، اما واقعیت این است که با یک حلقه for 228 00:14:24,400 --> 00:14:27,620 و یا با یک تابع بازگشتی، شما می توانید از این چیز بسیار سریع خواهد ساخت. 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 از این بزرگ بزرگ بزرگ پدربزرگ و مادر بزرگ بزرگ بزرگ بزرگ نوه 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 زیرا اگر این درخت به ما گذشتن از ریشه نهایی را به برگ شناخته شده به عنوان E، 237 00:15:01,000 --> 00:15:06,050 ما به دنبال فقط یک لبه، لبه سمت راست، و این البته در 1 بالا سمت راست برچسب. 238 00:15:06,050 --> 00:15:11,550 بنابراین مفهوم در اینجا برای هافمن بود که رمزگذاری E در باینری فقط باید 1. 239 00:15:11,550 --> 00:15:14,490 و این که خیلی لعنتی کارآمد است. واقعا نمی تواند کوچکتر از آن است. 240 00:15:14,490 --> 00:15:18,350 در مقابل، A می شود نشان داده شده است، اگر شما به دنبال منطق، 241 00:15:18,350 --> 00:15:21,610 چه الگوی بیت به جای؟ 01. 242 00:15:21,610 --> 00:15:25,500 بنابراین به یک، ما در ریشه شروع شده و ما به سمت چپ و پس از آن ما به حق، 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 که ما در کد مورس وجود ندارد. 247 00:15:38,090 --> 00:15:42,840 حتی اگر هر دو از این الگوها خیلی کوتاه - E 1 بیت، A 2 بیت است - 248 00:15:42,840 --> 00:15:45,080 توجه کنید که می توان آنها را به اشتباه یکی یا دیگری، 249 00:15:45,080 --> 00:15:54,870 چرا که اگر شما یک 1 آن باید به E، اگر شما یک 0 و سپس 1 آن را به وضوح رو به A. 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 و هیچ یک از آنها نوع واسطه در این مسیر از ریشه به برگ، 255 00:16:13,890 --> 00:16:18,760 هیچ خطر از conflating رمزنگاریهای مختلف 2 حروف وجود دارد 256 00:16:18,760 --> 00:16:22,300 چرا که همه از این الگوهای بیتی قطعی است. 257 00:16:22,300 --> 00:16:25,280 0000 همیشه B. باشد 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، که ما در حال حاضر از گرفتن، بروید نوع از محبوب حداقل می دانستند 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 استاندارد، شما می توانید یک پیام هافمن رمزی ارسال 267 00:16:56,730 --> 00:17:01,720 به موجب آن اگر شما می خواهید برای ارسال E نامه، ارسال تنها یک بیت است. 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 اما اینجا یک مارپیچ وجود دارد. 271 00:17:11,940 --> 00:17:17,079 این کافی نیست که فقط ساخت این درخت و سپس شروع به ارسال از آلیس به باب 272 00:17:17,079 --> 00:17:20,010 الگوی کمی کوتاه تر، رشته از ASCII، 273 00:17:20,010 --> 00:17:23,140 چون آلیس نیز برای اطلاع از باب چه 274 00:17:23,140 --> 00:17:26,880 اگر باب خواهد بود قادر به خواندن پیام های فشرده خود را؟ 275 00:17:26,880 --> 00:17:30,770 [پاسخ دانش آموز نامفهوم] >> که؟ 276 00:17:30,770 --> 00:17:32,310 [پاسخ دانش آموز نامفهوم] >> از چه درخت است. 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 چرا که شاید او درخت را تا کنون کمی متفاوت از آلیس ایجاد کنید. 282 00:17:53,390 --> 00:17:56,670 علاوه بر این، باب حتی نمی دانند آنچه پیام اصلی این است 283 00:17:56,670 --> 00:18:00,770 زیرا تنها چیزی که آلیس او را ارسال، البته، این پیام را فشرده است. 284 00:18:00,770 --> 00:18:05,900 >> بنابراین گرفتن با فشرده سازی شبیه به این است که، بله، آلیس می توانید تعداد زیادی از بیت صرفه جویی 285 00:18:05,900 --> 00:18:09,900 با ارسال 1 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 نوشتن، آن را ذخیره سازی آن را به عنوان داده های باینری و یا چیزی شبیه به آن - 290 00:18:26,600 --> 00:18:30,280 و یا فقط او را کمی ورق بازی، فایل اکسل، نشان می دهد که تعیین است. 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 اگر شما فقط می خواهم به ارسال پیام BAD، که اتفاق می افتد به یک کلمه که ما در اینجا می توانید طلسم، 295 00:18:45,390 --> 00:18:49,550 B-A-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 بنابراین آن را در واقع می تواند مورد است که اگر شما سعی می کنید فشرده سازی 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 پس از آن را به یک فایل گیگابایت 2 گیگابایت؛ 305 00:19:16,920 --> 00:19:19,480 ما واقعا صحبت بایت یا کیلوبایت زن و شوهر است. 306 00:19:19,480 --> 00:19:22,330 >> برخی از برنامه ها مانند فایل های فشرده به قدر کافی هوشمند به درک که، 307 00:19:22,330 --> 00:19:24,590 "شما قصد دارید به صرف بیت فشرده سازی این است." 308 00:19:24,590 --> 00:19:27,460 "اجازه بده تا من را خسته نکنید فشرده سازی آن را برای شما در تمام." 309 00:19:27,460 --> 00:19:30,160 بنابراین این تنها یکی از راه های پس از فشرده سازی قالب متن است. 310 00:19:30,160 --> 00:19:32,300 ما می تواند چیزی شبیه به این در C. پیاده سازی 311 00:19:32,300 --> 00:19:35,370 به عنوان مثال، در اینجا این است که چگونه ممکن است یک گره در این درخت باشد 312 00:19:35,370 --> 00:19:39,320 که در آن ما باید یک کاراکتر برای نماد، ارزش شناور فرکانس، 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 بنابراین این کدگذاری هافمن است، و آن را یکی از راه های که شما می توانید در مورد فشرده سازی اطلاعات، 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 [دانشجو] برخی از ابهام وجود دارد، اگر [نامفهوم] تقسیم به 01 323 00:20:15,590 --> 00:20:19,160 سپس 011 خواهد بود مبهم، درست است؟ 324 00:20:19,160 --> 00:20:22,730 [نامفهوم] >> سوال خوب. ابهام. 325 00:20:22,730 --> 00:20:25,940 اجازه بدهید خلاصه با مراجعه به این تصویر. 326 00:20:25,940 --> 00:20:29,650 از آنجا که شخصیت شما فشرده سازی، نمایندگی، 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 >> ابهام فقط می توانید در مورد کد مورس بوجود می آیند، 334 00:21:01,910 --> 00:21:06,770 اگر، برای مثال، C در جایی در طول مسیر از ریشه به B. بود 335 00:21:06,770 --> 00:21:12,290 [دانشجو] درست است. بنابراین در این صورت، می گویند دارای 2 برگ است. >> می گویند است - می گویند که دوباره. 336 00:21:12,290 --> 00:21:18,760 [دانشجو] بگو: دارای 2 برگ، F و G و سپس G - >> خوب است. اما این نمی تواند. 337 00:21:18,760 --> 00:21:23,230 خود می تواند برگ F و G زیرا این حروف F و G 338 00:21:23,230 --> 00:21:27,560 خود را در جایی به سمت چپ B یا حق E. برگ 339 00:21:27,560 --> 00:21:28,900 بنابراین تعریف، آنها باید برگ. 340 00:21:28,900 --> 00:21:32,940 در غیر این صورت، شما دقیقا درست است، ما مشکل این است که کد مورس با حل نشده است. 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 چگونه بسیاری از بیت شما در واقع به منظور تغییر و یا بالعکس به کوچک تلنگر؟ 348 00:22:01,090 --> 00:22:05,580 در اینجا یادآوری سریع از آنچه در 65 و 97 شبیه در باینری است. 349 00:22:05,580 --> 00:22:08,060 و حتی در صورتی که سوال به نوعی در حافظه شما پژمرده، 350 00:22:08,060 --> 00:22:11,290 شما می توانید دوباره در اینجا می بینید که چگونه بسیاری از بیت باید بدبختانه 351 00:22:11,290 --> 00:22:15,810 برای تغییر پایتخت به کوچک؟ فقط یک است. 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 تا به نوعی، ما نیاز داریم که فقط قادر به تلنگر که کمی، 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 اما چه می شود اگر ما فقط می تواند که بیت تلنگر؟ 361 00:22:49,270 --> 00:22:59,080 چگونه می تواند شما را در مورد در نظر گرفتن ارزش بیت است، بنابراین 8 بیت یک بایت از مثل 01،000،001 و 01،100،001؟ 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 و پس از آن یک اپراتور جدید شناخته شده است به عنوان یک عملگر بیتی را معرفی کنم - 366 00:23:17,900 --> 00:23:21,210 بیتی به این معنا است که آن را بر تک بیت عمل، 367 00:23:21,210 --> 00:23:25,360 در کل بایت یا چهار کلمه در ادامه متن همه در یک بار. 368 00:23:25,360 --> 00:23:31,170 وجود دارد، این نوار عمودی به رنگ زرد نشان می دهد که چه می شد اگر ما را به نمایندگی از سرمایه 369 00:23:31,170 --> 00:23:37,060 و بیتی یا آن را با رشته بیت های زرد؟ 370 00:23:37,060 --> 00:23:41,300 به عبارت دیگر، فکر می کنم به بحث ما از عبارات بولی در ابتدا و پس از آن در C. 371 00:23:41,300 --> 00:23:47,520 >> انجام بولی یا به این معنی است که درست باشد، یا اولین چیزی که درست باشد 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 "یا" ED با 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 0 یا 1 به من می دهد 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 0 یا 1 به من می دهد 1. 387 00:24:55,660 --> 00:24:59,140 و بنابراین حتی اگر ما در پیشبرد دانم که چه کوچک بود، 388 00:24:59,140 --> 00:25:04,770 به سادگی با "یا" نشستند با این الگوی بیت ایم که در اینجا زرد، 389 00:25:04,770 --> 00:25:09,400 شما می توانید یک سرمایه توسط کوه در می رم که کمی کوچک است. 390 00:25:09,400 --> 00:25:11,580 ما استفاده از این هفته بیان پیش: کوه در می رم کمی است. 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 پس از آن معلوم است که اگر حرف شما را و بیتی یا آن را با 32 عدد صحیح، 398 00:25:42,280 --> 00:25:47,520 به این دلیل که 32 عدد صحیح، هنگامی که شما آن را به عنوان بیت نگاه کنید، به نظر می رسد، مثل این: 399 00:25:47,520 --> 00:25:50,860 این بدان معنی است که شما می توانید کمی است که شما در واقع می خواهید تلنگر. 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 ما می خواهیم که بیت سوم از 1 به 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 به جز یک بیت ما می خواستیم به نوبه خود بر روی، 410 00:26:19,930 --> 00:26:25,580 چه می شد اگر این زمان، ما را از تمام 1S ماسک به جز کمی که ما می خواهیم برای خاموش کردن 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 اگر ما در حال حاضر به این تلنگر، فرض کنید که دوباره یک ماسک ایجاد کنم که تمام 1S 414 00:26:34,880 --> 00:26:37,650 به جز یک بیت که من می خواهم برای خاموش کردن 415 00:26:37,650 --> 00:26:43,860 و پس از آن به جای "یا" شماره های سفید تا بالا با شماره های زردی که به پایین، 416 00:26:43,860 --> 00:26:46,940 چه می شود اگر من به جای "و" آنها را با هم؟ این بیتی نامیده می شود. 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 بنابراین کمی مرموز وجود دارد. 429 00:27:31,980 --> 00:27:35,390 اجازه دهید در واقع در برخی از کد نگاه کنید، که در واقع نگاه ممکن است حتی بیش از مرموز، 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 من پس از انجام آشنا در حالی که حلقه فقط مطمئن شوید که کاربر قطعا به من می دهد سرمایه 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 من "یا" در این مورد با 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 من پس از آن می توانید یک نامه مانند کاراکتر در اینجا را، بیتی "یا" این به معنای واقعی کلمه با شماره 32، 445 00:28:40,570 --> 00:28:45,250 و آنچه را می توانم به عقب بر گردیم؟ نسخه حروف کوچک که کاراکتر. 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 [مالان] این اتفاق می افتد به نمایندگی از مبنای شانزده است. 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 اجازه دهید از 4 سمت راست بیت اول است. 460 00:29:38,050 --> 00:29:44,690 0 زمانی که با 4 بیت نشان داده شده است؟ فوق العاده آسان است. 0s و. 461 00:29:44,690 --> 00:29:46,780 SO 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 شما می توانید 00،010 رفتن نیست و غیره. 476 00:30:38,540 --> 00:30:42,380 >> شما باید برای انتخاب نمادهای دهدهی و یا هگزادسیمال یا هشت هشتی یا دیگر. 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 ما این را به عنوان یک ورزش کمی ترک کنید. 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 [دانشجو]. >> بنابراین A، B، C، D. 487 00:31:29,510 --> 00:31:33,470 شما می توانید شکل از چه الگوی بیت D در واقع نشان دهنده. 488 00:31:33,470 --> 00:31:38,850 و اگر ما در انجام محاسبات ریاضی، خواهیم دید که ماسک شما را تا پایان گرفتن بازگشت یکسان است به این. 489 00:31:38,850 --> 00:31:45,580 این F، تمام 1S است، و این است که D است. بنابراین 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 این در حال حاضر برنامه ای است که چاپ یک عدد صحیح در نمایش دودویی آن است. 496 00:32:09,010 --> 00:32:13,470 پس اگر من این بازی را دوباره تایپ کنید و در تنها 1، من باید یک نمایش 32 بیتی از 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 این معلوم میشود که این ذکر دلیل با عملیات بیتی 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 نگاهی به در این مثال نهایی مربوط به عملیات بیتی. 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 من برای اولین بار از آنچه که به آنچه تکرار؟ 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 بیتی یا بالاترین کمی نظم، که این پسر در اینجا، 513 00:33:07,630 --> 00:33:09,650 در حالی که این امر به 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 توجه داشته باشید که این کار را برای حلقه، حتی اگر آن را مرموز به نظر می رسد، فقط از 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 این یکی دیگر از عملگر بیتی دیده ایم نه قبل از آن، به احتمال زیاد می باشد. 522 00:33:35,720 --> 00:33:38,300 این عملگر شیفت به چپ است. 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 آن چیزی است که شما را در سمت چپ است و شما با مقدار دهی اولیه من تا 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 مکان، شما را تا پایان گرفتن یک ماسک 538 00:34:37,900 --> 00:34:42,550 که 32 کاراکتر طولانی است، یکی از سمت چپ از آن است که 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 - آنها در حال تمام دو برابر به عنوان شما را به سمت چپ بروید. 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 و به این ترتیب این برنامه به طور موثر آن را به یک حلقه، 556 00:35:44,370 --> 00:35:48,340 و آن ایجاد یک ماسک با 1 در اینجا، و سپس یک 1 در اینجا، پس از آن 1 در اینجا، 557 00:35:48,340 --> 00:35:52,950 و آن را با استفاده از این بیتی و فوت و فن برای گفتن یک بیت 1 در ورودی کاربر در اینجا وجود دارد؟ 558 00:35:52,950 --> 00:35:59,220 >> آیا یک بیت 1 در ورودی کاربر در اینجا وجود دارد؟ و اگر چنین است، به معنای واقعی کلمه 1، چاپ دیگری چاپ 0. 559 00:35:59,220 --> 00:36:03,780 ما در حال انجام این کار با نوع داده int فقط به خاطر این است که به همین دلیل ما در حال انجام 32 بیت به جای 8، 560 00:36:03,780 --> 00:36:06,900 اما آنچه که ما معرفی کرده ایم و سپس این بیتی، و این بیتی OR است، 561 00:36:06,900 --> 00:36:10,450 و این عملگر شیفت به چپ، که اغلب وحشتناکی مفید نیست، 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 از نوع بولی به طوری که شما می توانید 300 bools اعلام، 567 00:36:29,420 --> 00:36:33,090 و شما می توانید هر True را اگر کسی است که در اینجا و در غیر این صورت نادرست است. 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 بولی است، در واقع، در زیر هود؟ 571 00:36:49,600 --> 00:36:52,310 این، بیش از حد، و این چیزی است که ممکن است آشنا شده است. 572 00:36:52,310 --> 00:36:53,720 به نظر می رسد این است که هیچ بولی وجود دارد. 573 00:36:53,720 --> 00:36:56,620 به یاد داشته باشید که مرتب سازی بر اساس ایجاد که با فایل cs50.h، 574 00:36:56,620 --> 00:36:58,630 که خود شامل استاندارد بولی. 575 00:36:58,630 --> 00:37:00,930 C از نوع گنگ، هر چند، هنگامی که آن را به بولی می آید. 576 00:37:00,930 --> 00:37:04,880 با استفاده از 8 بیت برای نشان دادن هر بولی است که کاملا بی فایده 577 00:37:04,880 --> 00:37:09,040 زیرا بدیهی است، که چگونه بسیاری از بیت شما نیاز به نمایندگی بولی؟ فقط 1. 578 00:37:09,040 --> 00:37:13,190 بنابراین معلوم می شود که اگر شما در حال حاضر توانایی اپراتورهای بیتی 579 00:37:13,190 --> 00:37:17,760 به دستکاری بیت های فردی حتی در کاراکتر، حتی در یک بایت، 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 با استفاده از یک بایت برای هر هشت دانش آموز در کلاس 584 00:37:34,500 --> 00:37:41,990 toggling از 0 به 1 بیت های فردی با استفاده از این نوع از کلاهبرداری های سطح پایین است. 585 00:37:43,850 --> 00:37:49,460 که واقعا پایان دادن به انرژی است. آیا هر گونه سوال در مورد عملیات بیتی وجود دارد؟ 586 00:37:49,460 --> 00:37:52,710 >> آره. >> [دانشجو] اپراتور منحصر به فرد و یا؟ 587 00:37:52,710 --> 00:37:56,440 بله. اپراتور منحصر به فرد و یا است که به نظر می رسد مثل این، ^، نماد هویج وجود دارد، 588 00:37:56,440 --> 00:38:02,070 که به معنی تنها چیزی که اولین یا دومین چیزی که می تواند یک (1) برای خروجی به 1 (یک) است. 589 00:38:02,070 --> 00:38:07,750 نیز وجود دارد که نه، ~، که به شما این امکان را می دهد که شما یک 0 به 1 یا بالعکس و همچنین به معکوس. 590 00:38:07,750 --> 00:38:11,600 و همچنین اپراتور شیفت سمت راست، >>، است که در مقابل ما شاهد وجود دارد. 591 00:38:11,600 --> 00:38:13,850 بسیار خوب. بیایید همه چیز در حال حاضر به یک سطح بالاتر است. 592 00:38:13,850 --> 00:38:16,770 ما با صحبت کردن در مورد متن آغاز شده است و سپس آن را فشرده سازی 593 00:38:16,770 --> 00:38:19,650 و به نمایندگی از متن را با تعداد کمتری از بیت؛ 594 00:38:19,650 --> 00:38:22,890 ما کمی در مورد چگونه ما در حال حاضر می توانید شروع به دستکاری چیزهایی را بر روی یک سطح بیتی صحبت کردیم. 595 00:38:22,890 --> 00:38:26,640 اکنون بیایید به عقب بزرگنمایی تا 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 این ممکن است در فرمت های فایل های شما ممکن است بدانید نمایندگی - های gif، به عنوان مثال. 599 00:38:36,350 --> 00:38:40,030 اگر شما تا کنون یک تصویر را بر روی وب سایت است که به پایان می رسد در قاب دیده می شود، 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 برای آنچه که شاید واضح دلیل؟ >> [پاسخ دانش آموز نامفهوم] 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 پشت در روز ابتدا خود را. 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 یک دسته از ردیف از نقطه های سیاه و سفید است که ما می توانیم اگر ما واقعا در زوم وجود دارد، 609 00:39:10,110 --> 00:39:13,370 خیلی هنگامی که ما در صورت راب در فتوشاپ بزرگنمایی می خواهم. 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 قرارداد اینجا کلیک کنید. اگر ما در کمی بزرگنمایی شده است، شما می توانید نقطه فردی را ببینید. 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 است که فرمت های فشرده سازی lossless، 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 این است که در مقایسه با چیزی شبیه به عکس JPEG، 621 00:39:55,340 --> 00:39:57,050 که با آن بسیاری از ما احتمالا بیشتر آشنا هستند. 622 00:39:57,050 --> 00:39:59,000 عکس و عکس فلیکر فیس بوک و مانند 623 00:39:59,000 --> 00:40:02,200 تقریبا همیشه به عنوان عکس JPEG ذخیره شده زمانی که آنها در حال آپلود 624 00:40:02,200 --> 00:40:08,100 فرمت به موجب آن شما دور انداختن بیت - اتلاف - عکس JPEG اتلاف است 625 00:40:08,100 --> 00:40:10,430 اما شما همچنین دور انداختن کیفیت. 626 00:40:10,430 --> 00:40:13,890 بنابراین اگر شما فشرده سازی عکس ها با فتوشاپ و یا ارسال آنها را به فیس بوک 627 00:40:13,890 --> 00:40:15,580 و یا آنها را بر روی یک گوشی واقعا پیش فرض، 628 00:40:15,580 --> 00:40:19,510 شما می دانید که تصویر شروع به لکه لکه و 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 و پس از آن به یاد می آورد، در اصل، پیکسل سمت چپ 641 00:40:57,200 --> 00:41:02,160 و پس از آن کد می نحوی مفهوم تکرار دوباره و دوباره که پیکسل است. 642 00:41:02,160 --> 00:41:06,110 بنابراین پس از آن فایل های gif می توانند خود را بدون از دست دادن هر گونه اطلاعات فشرده. 643 00:41:06,110 --> 00:41:09,510 اما اگر شما تا به حال به حدس زدن، در صورتی که الگوریتمی که فایل های gif استفاده، 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 که تکرار خواهد شد به صورت افقی و جانبی قوی تر شده است. 651 00:41:36,040 --> 00:41:40,900 خیلی بیشتر از تکرار جانبی در پرچم آلمان از در پرچم فرانسه وجود دارد. 652 00:41:40,900 --> 00:41:44,430 بنابراین اگر ما در واقع باز کردن یک پوشه بر روی هارد دیسک است که این فایل های gif، 653 00:41:44,430 --> 00:41:51,920 شما در واقع می تواند که پرچم آلمان در اینجا 2 کیلوبایت و فرانسه است 4 کیلوبایت را ببینید. 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 >> در مقابل، رویکرد دیگر برای فشرده سازی ویدیو در این مثال دوم و پایین، 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 آن ممکن است شبیه آن را در لکنت زبان یک کمی، یک مدرسه کوچک قدیمی، 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 و پس از آن ما را به مسائل بسیار مورد علاقه 692 00:44:10,210 --> 00:44:13,870 شامل HTML و وب سایت و وو هو. بسیار خوب. 693 00:44:13,870 --> 00:44:16,050 در اینجا ما بروید. این انگیزه است. 694 00:44:16,050 --> 00:44:20,020 به نظر می رسد تمام این مدت که ما باید به نوشتن برنامه های ما اجرا صدای جرنگ جرنگ. 695 00:44:20,020 --> 00:44:23,890 و صدای جرنگ جرنگ، ما از هفته اول بسیار گفته شده است، طول می کشد کد منبع 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 >> خیلی بیشتر از رفتن در زیر هود هنگامی که یک برنامه را اجرا می کنید مانند صدای جرنگ جرنگ وجود دارد. 700 00:44:36,750 --> 00:44:39,560 در واقع، فرایند تدوین برنامه واقعا می تواند خلاصه شود، 701 00:44:39,560 --> 00:44:42,210 به عنوان شما ممکن است از فیلم راب در کامپایلرها به یاد، 702 00:44:42,210 --> 00:44:47,580 به این 4 مرحله: قبل از پردازش، کامپایل (Compile) به خودی خود، مونتاژ، و ارتباط است. 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 # شامل 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 در تدوین مرحله پیش پردازش شده است، که در آن یک برنامه مانند صدای جرنگ جرنگ 716 00:45:39,390 --> 00:45:43,450 و یا برخی از برنامه های کمکی که صدای شیپور همراه با کد بالا خود را به پایین می خواند، 717 00:45:43,450 --> 00:45:47,740 از چپ به راست و در هر زمان آن را می بیند نماد # به دنبال یک کلمه کلیدی مانند عبارتند از: 718 00:45:47,740 --> 00:45:53,980 انجام این عمل، کپی و چسباندن در 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 وقتی شما می شنوید که کامپیوتر شما در داخل اینتل، 732 00:46:42,930 --> 00:46:46,180 شما باید CPU اینتل در مک یا PC خود را، به چه معنا است؟ 733 00:46:46,180 --> 00:46:51,200 CPU می آید توسط شرکت هایی مانند اینتل درک دستورالعمل خاصی ساخته شده است. 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 که به معنای واقعی کلمه حرکت بایت یا 4 بایت در اطراف در واحدهای کوچک در داخل و خارج از CPU است. 740 00:47:21,670 --> 00:47:26,820 اما در نهایت، هنگامی که صدای شیپور آماده است را به این برنامه خود را 741 00:47:26,820 --> 00:47:30,940 به 0s و 1S، و سپس مرحله به نام مونتاژ اتفاق می افتد، 742 00:47:30,940 --> 00:47:33,850 و این دوباره همه در یک چشم بر هم زدن اتفاق می افتد زمانی که در حال اجرا صدای جرنگ جرنگ. 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 به طور معمول ما این کار را با 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 >> من برای انجام این کار برای یک برنامه بسیار کوتاه است، اما اگر شما بازگشت تقلا 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 با صدای جرنگ جرنگ. 753 00:48:15,700 --> 00:48:17,770 اما پس از آن در نهایت، هنوز هم وجود دارد یک مارپیچ است. 754 00:48:17,770 --> 00:48:21,810 در اینجا 0s و 1S که نشان دهنده اجرای من خوش آمدید، جهان است. 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 که در این نقطه در زمان خروجی 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 را به کد اسمبلی کامپایل شده و سپس یک دسته کامل از 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 بنابراین تمام این مدت این ترم وقتی که شما با استفاده از صدای جرنگ جرنگ 777 00:49:45,660 --> 00:49:48,750 و حتی به تازگی در حال اجرا را به منظور اجرای صدای جرنگ جرنگ، 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 این لایه است که شما را به ادامه پوست پشت کردن وجود دارد 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 اجازه می دهد تا ما را به ایجاد برنامه های بسیار پیچیده تر در بالای اینترنت 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 در PHP، HTML، CSS، JavaScript در مرورگر، SQL و بیشتر، 794 00:50:46,200 --> 00:50:48,480 بسیاری از دانش آموزان تا پایان انجام پروژه های نهایی هستند که مبتنی بر وب 795 00:50:48,480 --> 00:50:51,230 چرا که همانطور که خواهید دید، پس زمینه شما در حال حاضر در C 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 که بسیار شبیه به تنظیم مشکل 0، که در آن شما را تشویق 799 00:50:59,940 --> 00:51:02,160 برای انجام هر کاری بیشتر مورد علاقه شما در ابتدا، 800 00:51:02,160 --> 00:51:05,790 پروژه نهایی فرصت خود را به دانش تازه کشف شده و تجارت خود را با C 801 00:51:05,790 --> 00:51:09,850 یا PHP یا جاوا اسکریپت یا برای چرخش 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 برای مقابله با یک پروژه است که پنجه قبل از این کاملا درست است. 810 00:51:39,990 --> 00:51:44,540 ما برنامه های زیادی را برای دیدن وضعیت لباسها در محوطه دانشگاه دیده می شود، 811 00:51:44,540 --> 00:51:47,000 بسیاری از برنامه ها برای مرور منو سالن غذاخوری، 812 00:51:47,000 --> 00:51:49,540 برنامه های زیادی را برای مرور فروشگاه دوره و مانند. 813 00:51:49,540 --> 00:51:53,680 و در واقع، در یک سخنرانی در آینده و در سمینارهای آینده، 814 00:51:53,680 --> 00:51:57,750 ما شما را به برخی از رابط های برنامه کاربردی در دسترس عموم معرفی، هر دو صورت تجاری در دسترس 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 >> وقتی که شما وارد بر روی کامپیوتر خود رسید، یک دسته کامل از مراحل 824 00:52:30,150 --> 00:52:32,600 شروع به مرتب کردن بر اساس جادویی اتفاق می افتد. 825 00:52:32,600 --> 00:52:35,960 بنابراین شما در اینجا در سمت چپ، سرور های وب مانند فیس بوک است که در اینجا در سمت راست، 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 من ممکن است به شما، می گویند، "سلام، نام من است دیوید." >> سلام، دیوید. اسم من سامی است. 833 00:53:03,980 --> 00:53:05,770 "سلام، دیوید اسم من سامی است." 834 00:53:05,770 --> 00:53:08,310 بنابراین در حال حاضر ما فقط درگیر در این نوع از پروتکل احمقانه بشر 835 00:53:08,310 --> 00:53:12,200 جایی که من از آغاز این پروتکل، سامی پاسخ داده شده است. 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 من صفحه اصلی، است که به طور معمول توسط از علامت ممیز تنها در پایان یک 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 به طور معمول، مرورگر وب، بدون اطلاع شما، انسان، 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 و چه فیس بوک با پاسخ؟ 851 00:54:07,300 --> 00:54:12,540 آن را با برخی از جزئیات، به دنبال مشابه مرموز بلکه خیلی بیشتر پاسخ می دهد. 852 00:54:12,540 --> 00:54:14,310 اجازه بدهید من به جلو بروید به صفحه اصلی فیس بوک در اینجا. 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 اگر ما این کار را در Chrome، توجه کنید که شما می توانید بکشید تا این منوهای بافت کمی. 856 00:54:24,150 --> 00:54:26,980 با استفاده از کروم، چه در سیستم عامل مک، ویندوز، لینوکس، و یا مانند، 857 00:54:26,980 --> 00:54:31,840 اگر شما کنترل کلیک کنید و یا کلیک سمت چپ، شما معمولا می توانید جلو و یک منو است که به نظر می رسد مثل این، 858 00:54:31,840 --> 00:54:35,870 که در آن چند گزینه در انتظار، که یکی از آنها صفحه نمایش مبدأ است. 859 00:54:35,870 --> 00:54:39,920 شما همچنین می توانید به طور معمول به این چیز ها را با رفتن به منوی View و مجبور باشید. 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 این جایی است که، زمانی که شما برای اولین بار مشخص سال تولد خود را به امضا رساند. 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 >> آن را با برخی از این پیام مرموز پاسخ، همانطور که ما را در یک لحظه را ببینید. 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 دلیل این است که توسعه دهندگان فیس بوک آشکار 0 برای 5 سبک، به عنوان مثال. 882 00:56:16,630 --> 00:56:20,190 دلیل این است که بسیاری از کد است که آنها می خواهند بنویسند، در واقع، نوشته شده است به زیبایی، 883 00:56:20,190 --> 00:56:22,450 به خوبی اظهار نظر، به سادگی فاصله دار، و مانند آن، 884 00:56:22,450 --> 00:56:26,080 اما از ماشین، کامپیوتر، مرورگر واقعا لعنتی نمی دهد 885 00:56:26,080 --> 00:56:27,890 اینکه کد خود را به خوبی مدل دهید. 886 00:56:27,890 --> 00:56:33,100 و در واقع، آن را کاملا بی فایده به ضربه زدن به کلید تب تمام کسانی که بار 887 00:56:33,100 --> 00:56:37,650 و برای قرار دادن نظرات در تمام طول کد شما و انتخاب نام متغیر واقعا توصیفی 888 00:56:37,650 --> 00:56:42,340 چرا که اگر به مرورگر ربطی ندارد، شما در حال انجام در پایان روز از به هدر رفتن بایت. 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 معمولا به خوبی نوشته شده و به خوبی اظهار نظر و به سادگی فاصله دار و مانند آن، 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 کد های جاوا اسکریپت ما به زودی خواهید دید فشرده 895 00:57:05,960 --> 00:57:09,250 به موجب آن نام متغیر طولانی تبدیل به X و Y و Z 896 00:57:09,250 --> 00:57:13,900 و تمام که فضای خالی است که باعث می شود همه چیز را اینقدر قابل خواندن است که همه دور انداخته، 897 00:57:13,900 --> 00:57:17,700 چرا که اگر شما در مورد آن را در این راه فکر می کنم، فیس بوک یک صفحه میلیارد بازدید در روز می شود - 898 00:57:17,700 --> 00:57:21,670 چیزی دیوانه می خواهم که - پس چه می شود اگر یک برنامه نویس فقط به مقعد می شود 899 00:57:21,670 --> 00:57:26,660 ضربه نوار فضایی وقت اضافه فقط برخی از خط از کد را به دندانه دار کردن تا به حال خیلی بیشتر؟ 900 00:57:26,660 --> 00:57:29,500 مفهوم اگر فیس بوک را حفظ که فضای خالی 901 00:57:29,500 --> 00:57:32,880 در همه کلمه در ادامه متن آنها ارسال بازگشت به مردم بر روی اینترنت؟ 902 00:57:32,880 --> 00:57:36,400 ضربه نوار فضا یک بار به شما می دهد بایت اضافی در فایل شما است. 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 گیگابایت بدون هیچ دلیل خوبی است. 906 00:57:45,200 --> 00:57:48,510 و اعطا شده، برای بسیاری از وب سایت ها این چنین یک مسئله مقیاس پذیر نمی باشد، 907 00:57:48,510 --> 00:57:51,030 اما برای فیس بوک، گوگل، برای برخی از محبوب ترین وب سایت های 908 00:57:51,030 --> 00:57:54,860 انگیزه ای بزرگ وجود دارد مالی را به کد خود را شبیه به یک ظرف غذا 909 00:57:54,860 --> 00:57:58,980 به طوری که شما با استفاده از به عنوان بایت چند که ممکن است علاوه بر سپس آن را فشرده سازی 910 00:57:58,980 --> 00:58:01,500 با استفاده از چیزی شبیه به فایل های فشرده، یک الگوریتم به نام 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 >> خوشبختانه، مرورگرها مانند کروم و IE و Firefox این روزها 915 00:58:13,620 --> 00:58:16,450 به طور معمول با ابزار پیشرفته ساخته شده است در آمده است. 916 00:58:16,450 --> 00:58:21,730 در واقع، اگر من به پایین در اینجا به بازرسی عنصر یا اگر من به، توسعه دهنده، 917 00:58:21,730 --> 00:58:25,220 و به ابزارهای توسعهدهنده صراحت، 918 00:58:25,220 --> 00:58:27,640 این پنجره در پایین صفحه نمایش من در حال حاضر بالا میآید. 919 00:58:27,640 --> 00:58:31,230 آن در ابتدا کمی تهدید آمیز است چرا که بسیاری از زبانه های ناآشنا در اینجا وجود دارد، 920 00:58:31,230 --> 00:58:34,510 اما اگر من روی عناصر کلیک کنید تمام راه را در قسمت پایین سمت چپ، 921 00:58:34,510 --> 00:58:38,810 کروم واضح است که بسیار هوشمند است. این می داند که چگونه به تفسیر همه این کد. 922 00:58:38,810 --> 00:58:42,320 و بنابراین، آنچه که کروم آن را پاک HTML در فیس بوک است. 923 00:58:42,320 --> 00:58:45,680 حتی اگر فضای خالی وجود نداشت، دندانه دار وجود نداشت، 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 و که فقط به مرورگر می گوید: "با سلام، در اینجا می آید برخی از HTML5. در اینجا می آید یک صفحه وب است." 929 00:59:12,080 --> 00:59:18,490 براکت باز برای اولین بار فراتر از آنچه که اتفاق می افتد به این چیز، براکت باز تگ HTML، 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 توجه کنید که در داخل تگ HTML در فیس بوک، هر چیزی را که شروع می شود با یک براکت باز 933 00:59:30,300 --> 00:59:32,910 و پس از آن یک کلمه به نام یک تگ است. 934 00:59:32,910 --> 00:59:38,610 بنابراین در داخل تگ HTML است که ظاهرا سر یک تگ و برچسب بدن است. 935 00:59:38,610 --> 00:59:41,930 داخل تگ head در حال حاضر یک ظرف غذا برای فیس بوک است 936 00:59:41,930 --> 00:59:45,620 چرا که آنها بسیاری از ابرداده و چیزهای دیگر را برای بازاریابی و تبلیغات است. 937 00:59:45,620 --> 00:59:50,600 >> اما اگر ما حرکت به پایین، پایین، پایین، پایین، بیایید ببینید که در آن است. در اینجا آن است. 938 00:59:50,600 --> 00:59:52,210 این یکی حداقل تا حدودی آشنا است. 939 00:59:52,210 --> 00:59:55,990 عنوان صفحه اصلی فیس بوک، اگر شما تا به حال در برگه در نوار عنوان خود را نگاه کنید، 940 00:59:55,990 --> 00:59:59,060 خوش آمدید به سایت فیس بوک - ورود، ثبت نام و یا بیشتر بدانید. 941 00:59:59,060 --> 01:00:01,110 این چیزی است که شما می توانید در نوار عنوان کروم، 942 01:00:01,110 --> 01:00:03,100 و این که چگونه آن را در کد نشان داده شده است. 943 01:00:03,100 --> 01:00:08,090 اگر ما چشم پوشی از هر چیز دیگری در سر، بیشتر از جرات از یک صفحه وب در بدن هستند، 944 01:00:08,090 --> 01:00:10,940 و معلوم است که کد در فیس بوک رفتن به نگاه پیچیده تر است 945 01:00:10,940 --> 01:00:14,540 نسبت به اغلب چیزهای ما در ابتدا خواهم نوشت فقط به خاطر آن بوده است تا در طول سال ها ساخته شده است، 946 01:00:14,540 --> 01:00:17,260 اما زیادی از تگ های اسکریپت، کد جاوا اسکریپت وجود دارد، 947 01:00:17,260 --> 01:00:18,870 باعث می شود که وب سایت های تعاملی: 948 01:00:18,870 --> 01:00:22,330 دیدن به روز رسانی وضعیت بلافاصله با استفاده از زبان هایی مانند جاوا اسکریپت. 949 01:00:22,330 --> 01:00:25,270 چیزی به نام یک دیو، که یک بخش از یک صفحه وجود دارد. 950 01:00:25,270 --> 01:00:27,940 اما قبل از ما که به جزئیات، اجازه دهید سعی کنید به زوم کردن 951 01:00:27,940 --> 01:00:31,920 و نگاه کردن به نسخه ساده از فیس بوک 1.0، پس به صحبت می کنند. 952 01:00:31,920 --> 01:00:34,740 در اینجا سلام، جهان را از صفحات وب می باشد. 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 اما در اکثر موارد، همه چیز را در یک صفحه وب باز براکت، کلید واژه ها، براکت نزدیک است. 958 01:00:53,000 --> 01:00:56,220 >> در این مورد شما می توانید از ساده ترین صفحات وب ممکن را ببینید. 959 01:00:56,220 --> 01:01:00,260 تگ های HTML شامل تگ سر و آن شامل یک تگ body 960 01:01:00,260 --> 01:01:04,580 اما توجه کنید که این مفهوم تگ های شروع و متوقف کردن وجود دارد. 961 01:01:04,580 --> 01:01:11,360 این تگ شروع HTML، تگ نزدیک و یا تگ پایان است. 962 01:01:11,360 --> 01:01:15,400 توجه داشته باشید که آنها مرتب سازی بر اضداد به این معنا که تگ نزدیک و یا تگ پایان 963 01:01:15,400 --> 01:01:20,030 تا به این رو به جلو در داخل از خود بریده بریده. 964 01:01:20,030 --> 01:01:23,540 در همین حال، سر یک تگ باز و تگ سر در اینجا وجود دارد. 965 01:01:23,540 --> 01:01:26,880 >> عنوان باز و یک تگ عنوان نزدیک در اینجا وجود دارد. 966 01:01:26,880 --> 01:01:29,850 واقعیت این است که من به عنوان یک خط کاملا خودسرانه قرار داده است. 967 01:01:29,850 --> 01:01:33,760 این فقط شبیه آن را به سادگی در یک خط جا، بنابراین من زحمت نیست با ضربه را وارد کنید یک بار زن و شوهر است. 968 01:01:33,760 --> 01:01:38,200 در همین حال، بدن من انجام تورفتگی فقط تا کنون روشن است. 969 01:01:38,200 --> 01:01:41,050 توجه کنید که HTML یک زبان بسیار گنگ است. 970 01:01:41,050 --> 01:01:43,410 در واقع، در روز قبل از ویرایشگرهای WYSIWYG وجود دارد 971 01:01:43,410 --> 01:01:46,770 و مایکروسافت ورد که در آن شما می توانید می گویند، "این را جسورانه، کج (ایتالیک)،" 972 01:01:46,770 --> 01:01:50,850 شما در واقع دستورات کمی در مقالات تایپ 20 + سال پیش 973 01:01:50,850 --> 01:01:55,740 به موجب آن شما می گویند، "شروع به ساختن این متن bold است. توقف ساخت این متن bold است." 974 01:01:55,740 --> 01:01:59,010 "شروع به ساختن این کج (ایتالیک) متن. توقف ساخت این کج (ایتالیک) متن. 975 01:01:59,010 --> 01:02:01,850 >> این چیزی است که HTML و یا هر زبان نشانه گذاری است. 976 01:02:01,850 --> 01:02:05,530 این برچسب اول می گوید، "هی، مرورگر در اینجا می آید برخی از HTML است." 977 01:02:05,530 --> 01:02:09,880 تگ بعدی می گوید، "هی، مرورگر در اینجا می آید سر، هدر صفحه وب من است." 978 01:02:09,880 --> 01:02:11,650 "هی، مرورگر. در اینجا می آید عنوان. 979 01:02:11,650 --> 01:02:15,880 و پس از آن در اینجا، "هی، مرورگر که آن را برای این عنوان است." 980 01:02:15,880 --> 01:02:20,000 بنابراین این مرورگر می داند که چگونه به دیگر نمایش کاراکتر بیش از خوش آمدید، جهان 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 این می گوید: "در اینجا می آید بدن است که بدن واقعی است." - به معنای واقعی کلمه، کلمات سلام، جهان است. 984 01:02:28,340 --> 01:02:33,190 و می گوید: در اینجا، "که آن را برای بدن است. که آن را برای HTML است." 985 01:02:33,190 --> 01:02:34,640 بنابراین مرورگرهای بسیار گنگ است. 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 اجازه دهید من باز کردن ساده ترین برنامه ها در مک من در اینجا، یعنی TextEdit. 989 01:02:46,240 --> 01:02:48,220 در ویندوز شما می توانید تا 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 توجه داشته باشید که به عنوان تب خوش آمدید، جهان به عنوان هر تگ عنوان، 999 01:03:17,340 --> 01:03:20,040 و توجه داشته باشید که سلام جهان است که بدن از صفحه وب من است، 1000 01:03:20,040 --> 01:03:22,190 و وو هو، من در اینترنت هستم. 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 به نظر می رسد از انواع دیگر از تگ ها می توانید استفاده کنید وجود ندارد. 1007 01:03:41,990 --> 01:03:45,530 به عنوان مثال، در اینجا زرد من معرفی 2 برچسب ها جدید است. 1008 01:03:45,530 --> 01:03:49,630 ما خیلی با این امروز بازی نمی کند، اما توجه کنید که برچسب لینک 1009 01:03:49,630 --> 01:03:52,520 به نوعی به نظر می رسد متفاوت از هر چیز دیگری است. 1010 01:03:52,520 --> 01:03:55,370 تگ لینک به طول می انجامد، آنچه که به نام صفات، 1011 01:03:55,370 --> 01:03:59,770 و صفت چیزی است که تغییر رفتار از یک تگ است. 1012 01:03:59,770 --> 01:04:03,840 در این مورد بهترین انتخاب نام، لینک نیست، چرا که نوع آن بی معنی، 1013 01:04:03,840 --> 01:04:11,590 اما این تگ لینک می گوید، در اصل، شامل فایل CSS درون صفحه وب من به نام. 1014 01:04:11,590 --> 01:04:15,400 شما می توانید فکر می کنم از این به عنوان شبیه به C # شامل بخشنامه. 1015 01:04:15,400 --> 01:04:19,650 CSS قرار است با اشاره به زبان های مختلف در دسترس نباشد که ما نمی خواهد بازی با امروز، 1016 01:04:19,650 --> 01:04:23,790 اما آن را برای زیبایی شناسی: اندازه فونت، رنگ، پد، دندانه دار، حاشیه، 1017 01:04:23,790 --> 01:04:26,040 و همه از این نوع زیبایی شناسی از جزئیات. 1018 01:04:26,040 --> 01:04:28,820 در همین حال، برچسب اسکریپت عملکرد مشابه، 1019 01:04:28,820 --> 01:04:33,140 اما به جای عبارتند از CSS، آن زبان، شامل زبان دیگر، جاوا اسکریپت می باشد. 1020 01:04:33,140 --> 01:04:37,810 بنابراین به عبارت دیگر، با این 2 برچسب ها من در نهایت قادر خواهد بود برای نوشتن صفحه وب خود من باشد 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 را می توان از عامل، بسیار همانند # include، به یک فایل جداگانه است. 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 من می خواهم به خوش آمدید، جهان کمی جسورانه تر از آن است. 1030 01:05:04,910 --> 01:05:10,890 پس سلام، اجازه دهید می گویند خودسرانه برای ضخیم. 1031 01:05:10,890 --> 01:05:15,910 باز هم داستان همان است: سلام، کاما، شروع به ساخت این ضخیم، 1032 01:05:15,910 --> 01:05:19,730 پس از آن جهان می شود ضخیم چاپ شده، و این به معنی توقف چاپ های پررنگ (bold) متعلق است. 1033 01:05:19,730 --> 01:05:24,020 اجازه دهید من به جلو بروید و ذخیره فایل، به بازگشت به Chrome، من فقط در بنابراین ما می توانیم آن را بهتر زوم، 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 ذخیره، بارگذاری مجدد. باشه. مشکلات زن و شوهر در حال حاضر علاوه بر زشتی از وب سایت وجود دارد. 1038 01:05:43,810 --> 01:05:47,310 1، من کاملا مطمئنم که من ضربه را وارد کنید در اینجا. و من. 1039 01:05:47,310 --> 01:05:51,590 من نه تنها ضربه را وارد کنید، من هم فاصله دار، تمرین آنچه که ما موعظه در مورد سبک، 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 من به مرورگر گفته، "خط فرار از اینجا. قرار دادن بند شکستن در اینجا." 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 بنابراین برزیلی کمی از برچسب های مختلف است، و بنابراین من نیاز به مرتب کردن بر اساس از هر دو باز و بستن آن 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 خوب، پس از آن شروع به نگاه بهتر، به جز وب من می دانم که از نوع قابل کلیک، 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 >> راه برای انجام این کار این است که به استفاده از یک برچسب Anchor: 1066 01:07:22,620 --> 01:07:26,770 <یک عکاس هنگام عکسبرداری مرجع، بیش از حد است که راه مدرسه قدیمی گفت: یک لینک، 1067 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 و من اندازه فونت کوچک. 1070 01:07:40,060 --> 01:07:43,890 من انجام نشده است؟ خیر قصد دارد به این دوگانگی است. 1071 01:07:43,890 --> 01:07:46,760 این برچسب، برچسب Anchor، در واقع یک صفت را، 1072 01:07:46,760 --> 01:07:52,900 که به تغییر رفتار خود، و ارزش آن صفت است ظاهرا URL یوتیوب. 1073 01:07:52,900 --> 01:07:56,380 اما متوجه دوگانگی این است که فقط به خاطر اینکه که 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 بنابراین باید بگویم توقف ساخت این کلمه یک لینک با استفاده از برچسب Anchor نزدیک است. 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 >> برای بستن یک تگ، شما فقط به نام از تگ دوباره اشاره کرد. 1080 01:08:19,290 --> 01:08:21,800 شما به هر یک از ویژگی ها اشاره نمی کند. 1081 01:08:21,800 --> 01:08:26,189 بنابراین صرفه جویی اجازه دهید که به عقب برگردید. خوب، voila، در حال حاضر آن را در آبی و لینک است. 1082 01:08:26,189 --> 01:08:29,430 اگر من آن را کلیک کنید، من در واقع به یوتیوب بروید. 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 اگر تا کنون بدست هرزنامه و یا یک حمله فیشینگ، 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 یا هر وب سایت ناقص است، و پس از آن شما می توانید می گویند تأیید حساب پی پال خود. 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 >> اما ما در حال حاضر توانایی در واقع تا پایان وجود دارد. 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 اما به محض اینکه ما دور از واژگان ما را در 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]