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