1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] DAVID J. مالان: کلیه حقوق این CS50 است، و این است که 2 00:00:11,630 --> 00:00:14,790 شروع از دو هفته است. 3 00:00:14,790 --> 00:00:16,300 متشکرم. 4 00:00:16,300 --> 00:00:19,000 اجازه دهید ما در اینجا با یک تماس تلفنی آغاز. 5 00:00:19,000 --> 00:00:30,005 من به شماره گیری 617-BUG-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: این CS50. 7 00:00:31,230 --> 00:00:33,930 برای پسر شاتل را فشار دهید 1. 8 00:00:33,930 --> 00:00:36,660 بیش از شروع را فشار دهید 9. 9 00:00:36,660 --> 00:00:38,180 DAVID J. مالان: بنابراین او برای پسر شاتل، مطبوعات 1 گفت. 10 00:00:38,180 --> 00:00:41,560 بنابراین ما در حال رفتن به فشار 1. 11 00:00:41,560 --> 00:00:43,230 CS50: منشاء شما چیست؟ 12 00:00:43,230 --> 00:00:45,340 برای استفاده از پردازنده، مطبوعات 1. 13 00:00:45,340 --> 00:00:47,080 مدر، مطبوعات 2. 14 00:00:47,080 --> 00:00:49,240 Boylston، مطبوعات 3. 15 00:00:49,240 --> 00:00:51,280 لامونت، مطبوعات 4. 16 00:00:51,280 --> 00:00:53,210 حافظه هال، مطبوعات 5. 17 00:00:53,210 --> 00:00:55,660 بیش از شروع، 0. 18 00:00:55,660 --> 00:00:59,590 DAVID J. مالان: ما می خواهیم 1 برای چهار را فشار دهید. 19 00:00:59,590 --> 00:01:03,610 CS50: شاتل بعدی برگ های این دقیقه در 1:10 PM، و 20 00:01:03,610 --> 00:01:09,820 سپس در 01:20، 01:30، 01:40. 21 00:01:09,820 --> 00:01:12,030 این CS50 است. 22 00:01:12,030 --> 00:01:15,570 >> DAVID J. مالان: پس این صدای CS50. 23 00:01:15,570 --> 00:01:18,030 و آن را نمونه ای از انواع پروژه های نهایی، برای 24 00:01:18,030 --> 00:01:19,500 به عنوان مثال، شما می توانید گاز خاموش به سمت 25 00:01:19,500 --> 00:01:20,600 پایان ترم است. 26 00:01:20,600 --> 00:01:23,840 به عنوان مثال، که shuttleboy.cs50.net وجود دارد - 27 00:01:23,840 --> 00:01:28,200 در واقع یک پروژه است که من برای اولین بار پس از مصرف CS51 نوشت 28 00:01:28,200 --> 00:01:29,740 زمانی که من در مقطع کارشناسی بود. 29 00:01:29,740 --> 00:01:32,250 و الهام بخش در اینجا بود در آن زمان، همه آنها به حال 30 00:01:32,250 --> 00:01:34,320 چاپ شاتل برنامه اتوبوس، و در آنجا بود 31 00:01:34,320 --> 00:01:35,970 مفهوم به دنبال چیز آنلاین است. 32 00:01:35,970 --> 00:01:38,730 و بنابراین من نوعی از کبوتر در یک تعطیلات آخر هفته، از طریق ریخت 33 00:01:38,730 --> 00:01:41,460 چاپ برنامه، و آن را به یک برنامه رایانه ای منتقل شده است. 34 00:01:41,460 --> 00:01:43,790 در آن زمان، برنامه های کامپیوتری اتفاق افتاده است باید نوشته شود 35 00:01:43,790 --> 00:01:47,110 در C. در واقع آن را توسط پسر شاتل تایپ در فرار 36 00:01:47,110 --> 00:01:48,600 پلک زدن به مانند ما انجام داده ایم تا کنون تحریک کند. 37 00:01:48,600 --> 00:01:50,450 اما در طول سال ها، آن را به یک لحظه تبدیل 38 00:01:50,450 --> 00:01:51,390 پیام های ربات. 39 00:01:51,390 --> 00:01:53,970 این بیشتر به تازگی به این وب سایت تکامل یافته است، به 40 00:01:53,970 --> 00:01:57,720 SMS مبتنی بر ابزار، و همچنین به این ابزار مبتنی بر صدا. 41 00:01:57,720 --> 00:02:00,170 و این است که در انواع چیزهایی اشاره است که شما می توانید 42 00:02:00,170 --> 00:02:02,380 کار را برای خودتان پایان ترم. 43 00:02:02,380 --> 00:02:05,490 >> به عنوان مثال، وجود دارد، نسخه SMS از پسر شاتل اتفاق می افتد 44 00:02:05,490 --> 00:02:06,510 به کار به شرح زیر است. 45 00:02:06,510 --> 00:02:10,880 اگر، بر روی تلفن همراه شما، شما ارسال یک پیام به صورت متن 41،411 46 00:02:10,880 --> 00:02:14,300 سپس sboy نماد ویژه، ارسال برای پسر شاتل، 47 00:02:14,300 --> 00:02:18,350 A و B، که در آن منشأ و B است. 48 00:02:18,350 --> 00:02:19,070 مقصد - 49 00:02:19,070 --> 00:02:21,030 به عنوان مثال، چهار Boylston فضایی - 50 00:02:21,030 --> 00:02:23,330 آنچه که شما باید در عرض چند ثانیه یک متن است 51 00:02:23,330 --> 00:02:25,820 پیام پسر شاتل به شما می گویم دقیقا زمانی که 52 00:02:25,820 --> 00:02:28,990 چند بعدی شاتل، از آن نقطه رفتن به آن 53 00:02:28,990 --> 00:02:29,640 نقطه B. 54 00:02:29,640 --> 00:02:32,510 و این یک مثال کلی تر از چیزی است که شناخته شده به عنوان 55 00:02:32,510 --> 00:02:33,920 با استفاده از API است. 56 00:02:33,920 --> 00:02:36,930 >> بنابراین برای مثال، این در اینجا این است فقط shuttleboy.cs50.net، 57 00:02:36,930 --> 00:02:39,300 تجسم واقعی مبتنی بر وب از این. 58 00:02:39,300 --> 00:02:42,480 اما داده است که تاکید و دیگر برنامه های است که CS50 59 00:02:42,480 --> 00:02:45,560 را توسعه داده است همه به هر کس در اینجا در معرض فرم 60 00:02:45,560 --> 00:02:49,340 از رابط های برنامه کاربردی، رابط های برنامه نویسی برنامه های کاربردی است. 61 00:02:49,340 --> 00:02:52,220 و این تنها راه فانتزی و گفت که مردم ما دوست داریم 62 00:02:52,220 --> 00:02:56,010 اینترنت و دیگران را صرف برخی از زمان ایجاد 63 00:02:56,010 --> 00:02:59,970 نرم افزاری است که شما می توانید با استفاده از دستور برای گرفتن داده ها از ما و 64 00:02:59,970 --> 00:03:02,510 پس از آن برنامه های خود را در بالای ساخت 65 00:03:02,510 --> 00:03:03,840 که مجموعه ای از داده ها است. 66 00:03:03,840 --> 00:03:06,610 بنابراین به عنوان مثال، این شاتل صفحه API پسر در اینجا، که 67 00:03:06,610 --> 00:03:09,390 اتفاق می افتد که در کتابچه راهنمای CS50، در اصل اسناد 68 00:03:09,390 --> 00:03:13,080 چگونه شما می توانید در مورد درخواست CS50 سرور برای داده. 69 00:03:13,080 --> 00:03:16,240 به عنوان مثال، اگر شما آشنایی با فایل های CSV، کاما از هم 70 00:03:16,240 --> 00:03:18,940 از هم جدا ارزش ها، این تنها مرتب کردن بر اساس سریع و کثیف 71 00:03:18,940 --> 00:03:20,310 فایل های اکسل مانند. 72 00:03:20,310 --> 00:03:23,110 بنابراین شما می توانید پسر شاتل برای همه داده ها در تمام بپرسید 73 00:03:23,110 --> 00:03:25,090 خانه ها و مختصات GPS خود را، و شما خواهید دریافت کنید 74 00:03:25,090 --> 00:03:27,300 پشت، در اصل، یک صفحه گسترده که می خواهم این است که 75 00:03:27,300 --> 00:03:30,820 بعد از آن شما می توانید به یک برنامه را آن گونه که مایلید تغییر دهید به عنوان خوانده شده و پس از آن 76 00:03:30,820 --> 00:03:33,250 ایجاد نتایج، شاتل مانند پسر خود 77 00:03:33,250 --> 00:03:34,160 اتفاق می افتد به انجام. 78 00:03:34,160 --> 00:03:37,030 برای کسانی که آشنا تر، مدرن تر داده بازنمودهای 79 00:03:37,030 --> 00:03:39,420 JSON، JavaScript در مرورگر نشانه گذاری شی. 80 00:03:39,420 --> 00:03:40,620 چیزی خواهد آمد به شما به سمت 81 00:03:40,620 --> 00:03:41,720 پایان ترم است. 82 00:03:41,720 --> 00:03:45,440 >> اما باز هم، این است که تنها یکی از بسیاری از رابط های برنامه کاربردی خود CS50. 83 00:03:45,440 --> 00:03:48,320 نکته هیجان انگیز در حال حاضر، این روزها، فیس بوک و 84 00:03:48,320 --> 00:03:51,110 توییتر و گوگل و تقریبا در هر وب سایت محبوب 85 00:03:51,110 --> 00:03:54,130 برخی از مرتب کردن بر اساس API، بدان معناست که اگر شما خواندن وجود دارد 86 00:03:54,130 --> 00:03:56,620 اسناد را در وب سایت خود، شما برای ثبت نام 87 00:03:56,620 --> 00:03:59,980 حساب، بعد از آن شما می توانید شروع به نوشتن نرم افزار در بالای 88 00:03:59,980 --> 00:04:03,680 هر ابزار و یا داده هایی را که شرکت وجود دارد فراهم می کند. 89 00:04:03,680 --> 00:04:06,210 و پس از همراهان تدریس ما را چند سال به عقب 90 00:04:06,210 --> 00:04:07,620 نوشت مکینتاش نسخه از این. 91 00:04:07,620 --> 00:04:10,990 بنابراین در ارتباط با عنوان مک در اینجا و در سمت چپ بالا، شما در واقع می تواند 92 00:04:10,990 --> 00:04:13,940 دانلود سیستم عامل مک ویدجت است که اجرا می شود خود را در مک خود را به انجام 93 00:04:13,940 --> 00:04:15,040 انواع چیزها می شود. 94 00:04:15,040 --> 00:04:17,970 پس از آن همه چیز در مورد ساخت و ساز بر روی مجموعه داده هایی از این دست است. 95 00:04:17,970 --> 00:04:21,839 اما بیشتر در مورد آن به سوی پایان ترم. 96 00:04:21,839 --> 00:04:25,780 >> پس بیایید در سریع واقعی به اشکال شیرجه، فقط به نوع از 97 00:04:25,780 --> 00:04:27,990 همه چیز گرم تا امروز، و فکر می کنم در برخی از 98 00:04:27,990 --> 00:04:29,660 چیزهایی که ما در هفته گذشته نگاه کرد. 99 00:04:29,660 --> 00:04:32,840 به طور خاص، به من اجازه رفتن به جلو و بالا بکشد، می گویند، 100 00:04:32,840 --> 00:04:34,080 این مثال در اینجا. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c، این است که اگر شما می خواهم در وب سایت درس 102 00:04:37,500 --> 00:04:40,250 می خواهم به آن را دانلود کنید و بهم زدن در اطراف خودت. 103 00:04:40,250 --> 00:04:43,520 اما اجازه دهید در اینجا در این برنامه نسبتا کوتاه امکان زوم و فقط 104 00:04:43,520 --> 00:04:46,550 روکش فوق العاده سریع برخی از بلوک های ساختمان های اساسی است که 105 00:04:46,550 --> 00:04:48,880 ما واقعا در حال رفتن به تنها شروع به گرفتن برای مسلم است. 106 00:04:48,880 --> 00:04:51,860 >> بنابراین چیزهای آبی رنگ، در خطوط 1 تا 9، فقط 107 00:04:51,860 --> 00:04:53,670 سوالات سافتبال. 108 00:04:53,670 --> 00:04:54,590 پس این ها فقط نظرات. 109 00:04:54,590 --> 00:04:56,230 آنها هیچ معنا عملکردی. 110 00:04:56,230 --> 00:04:58,460 اما آنها به این معنا است که آنها یادداشت که 111 00:04:58,460 --> 00:05:02,010 من، انسان، ساخته شده به خودم، به طوری که در سخنرانی و پس از 112 00:05:02,010 --> 00:05:04,340 سخنرانی، من در واقع می تواند به یاد داشته باشید این برنامه 113 00:05:04,340 --> 00:05:07,120 بدون نیاز به از طریق آن خط به خط خوانده و 114 00:05:07,120 --> 00:05:08,990 تاریخ دوباره در ذهن من است. 115 00:05:08,990 --> 00:05:11,000 علاوه بر این، در صورتی که این برنامه را به دست شخص دیگری مانند 116 00:05:11,000 --> 00:05:14,420 شما، آن را به مراتب واضح تر برای شما، به دلیل از نظر شبیه به این، 117 00:05:14,420 --> 00:05:16,680 این برنامه در واقع انجام می دهند، و یا حداقل آنچه را که 118 00:05:16,680 --> 00:05:18,210 برنامه قرار است انجام شده است. 119 00:05:18,210 --> 00:05:20,760 اینکه آیا یا نه صحیح است موضوع دیگری در دسترس نباشد. 120 00:05:20,760 --> 00:05:25,040 در حال حاضر، در C، با نظر چند خط، به یاد داشته باشید که بر روی خط 121 00:05:25,040 --> 00:05:27,880 در اینجا نماد سحر و جادو است، / *. 122 00:05:27,880 --> 00:05:30,380 این بدان معنی است در اینجا می آید شروع از یک نظر است. 123 00:05:30,380 --> 00:05:34,560 و هیچ چیز دیگری مهم نیست تا زمانی که شما رسیدن به انتهای ترمیناتور، 124 00:05:34,560 --> 00:05:36,700 * /، مخالف است. 125 00:05:36,700 --> 00:05:39,120 بنابراین واقعیت این است که من 80 برخی از ستاره های عجیب و غریب در اینجا از 126 00:05:39,120 --> 00:05:41,550 از چپ به راست است که واقعا فقط جزئیات زیبایی شناسانه است. 127 00:05:41,550 --> 00:05:43,370 این هیچ معنای کاربردی می باشد. 128 00:05:43,370 --> 00:05:44,490 >> در حال حاضر چگونه در مورد خط 11؟ 129 00:05:44,490 --> 00:05:46,940 چه می کند این کار را به عبارت دیگر انجام دهید؟ 130 00:05:51,560 --> 00:05:52,540 که چیست؟ 131 00:05:52,540 --> 00:05:54,280 مخاطبان: شامل استاندارد است. 132 00:05:54,280 --> 00:05:54,740 DAVID J. مالان: OK، خوب است. 133 00:05:54,740 --> 00:05:57,500 پس از آن شامل کتابخانه stdio.h است. 134 00:05:57,500 --> 00:05:58,230 پس چه معنا است؟ 135 00:05:58,230 --> 00:06:01,570 خب، در داخل آن فایل stdio.h هستند، یک دسته کل 136 00:06:01,570 --> 00:06:03,320 اظهارات تابع - 137 00:06:03,320 --> 00:06:05,290 است که، کدی که شخص دیگری نوشت. 138 00:06:05,290 --> 00:06:08,160 و یک مثال کامل از یک تابع که در اعلام 139 00:06:08,160 --> 00:06:10,250 stdio.h است - 140 00:06:10,250 --> 00:06:11,980 که در حال حاضر مورد علاقه؟ 141 00:06:11,980 --> 00:06:14,300 تا printf، یکی از آنهایی که شایع ترین استفاده از، قطعا 142 00:06:14,300 --> 00:06:15,840 در اوایل، از آن کتابخانه وجود دارد. 143 00:06:15,840 --> 00:06:19,290 اگر من حذف این خط از کد، صدای جرنگ جرنگ می داد 144 00:06:19,290 --> 00:06:22,550 به من چیزی در مورد استفاده از یک نماد اعلام نشده است. 145 00:06:22,550 --> 00:06:24,930 چیزی اعلام نشده است، احتمالا کلمه کلیدی، به دلیل 146 00:06:24,930 --> 00:06:27,770 کامپایلر printf به نظر می رسد ما را مطلع نمی 147 00:06:27,770 --> 00:06:29,230 دوست مگر اینکه ما که در خط است. 148 00:06:29,230 --> 00:06:31,830 و بیشتر به زمین، در واقع، آنچه که خط گفت: 149 00:06:31,830 --> 00:06:34,890 باز کردن آن فایل stdio.h، هر جا که آن را بر روی سرور است 150 00:06:34,890 --> 00:06:38,200 هارد دیسک، و یا هارد دیسک دستگاه، را کپی کنید و خمیر آن 151 00:06:38,200 --> 00:06:40,240 در سمت راست وجود دارد به پرونده من، بدون من 152 00:06:40,240 --> 00:06:41,730 نیاز به انجام این کار دستی. 153 00:06:41,730 --> 00:06:44,420 >> در حال حاضر، زمانی که ما پایین در اینجا به بخش اصلی آمار، قبل از اینکه طولانی خواهیم شروع به 154 00:06:44,420 --> 00:06:46,900 اذیت کردن جدا چه بین المللی و چه از درجه اعتبار ساقط است. 155 00:06:46,900 --> 00:06:48,430 اما در حال حاضر، اجازه دهید نگاهی به سه خط 156 00:06:48,430 --> 00:06:50,350 ظرف 15 تا 17. 157 00:06:50,350 --> 00:06:52,250 در اینجا من به عنوان حشره دار کنند. 158 00:06:52,250 --> 00:06:54,900 خط 7 در نظر من می گوید: "باید 10 نسخه قابل چاپ 159 00:06:54,900 --> 00:06:59,410 ستاره اما اینکار را در مورد شما نمی کنند. نیست "چرا این نیست چاپ، در واقع، 160 00:06:59,410 --> 00:07:01,097 10 از جمله ستاره؟ 161 00:07:01,097 --> 00:07:02,347 مخاطبان: [نامفهوم]. 162 00:07:05,210 --> 00:07:05,800 DAVID J. مالان: دقیقا. 163 00:07:05,800 --> 00:07:08,720 به طوری که ما شروع به شمارش از 0 اطلاع می دهد. 164 00:07:08,720 --> 00:07:10,780 و این است که در واقع یک کنوانسیون در برنامه نویسی و 165 00:07:10,780 --> 00:07:13,230 علم کامپیوتر به طور کلی، شروع به شمارش 166 00:07:13,230 --> 00:07:14,610 از 0 به جای 1. 167 00:07:14,610 --> 00:07:16,690 و این واقعا فقط از این واقعیت است که، برای مشتق شده 168 00:07:16,690 --> 00:07:18,940 به عنوان مثال، هنگامی که ما تا به حال هشت نفر بر روی صحنه، هنگامی که 169 00:07:18,940 --> 00:07:20,680 هیچ کس بالا بردن دست خود، آنها 170 00:07:20,680 --> 00:07:22,340 صفر به طور موثر. 171 00:07:22,340 --> 00:07:24,260 و پس از آن فقط کنوانسیون کامپیوتر مهربان بنابراین، 172 00:07:24,260 --> 00:07:26,030 بنابراین، برای شروع به شمارش از 0. 173 00:07:26,030 --> 00:07:29,130 در صورتی که پایین ترین شماره شما می توانید در باینری را نمایندگی کند. 174 00:07:29,130 --> 00:07:32,270 >> پس در این جا ما شروع به مقدار دهی اولیه من را به 0. 175 00:07:32,270 --> 00:07:34,230 ما مجموعه ای رو به 0 برابر است. 176 00:07:34,230 --> 00:07:37,780 اما پس از آن من این اشتباه را در اینجا، گفت: من کمتر از یا 177 00:07:37,780 --> 00:07:38,820 تا 10 برابر است. 178 00:07:38,820 --> 00:07:41,700 اما اگر شما فکر می کنم که از طریق، اگر من از 0 شروع شده و پس از آن من 179 00:07:41,700 --> 00:07:46,410 تا 1، 2، 3، 4، 5، 6، 7، 8، 9، 10، من در واقع به رفتن 180 00:07:46,410 --> 00:07:49,980 نسخه قابل چاپ کردن 11 ستاره روی صفحه نمایش، چرا که من بالا رفته است 181 00:07:49,980 --> 00:07:52,410 و برابر با 10 است. 182 00:07:52,410 --> 00:07:55,090 بنابراین حل آسان در اینجا پس از آن چه؟ 183 00:07:55,090 --> 00:07:56,070 مخاطبان: [نامفهوم]. 184 00:07:56,070 --> 00:07:57,350 DAVID J. مالان: تنها تغییر آن را به کمتر از. 185 00:07:57,350 --> 00:07:59,700 اگر شما واقعا می خواهید، شما می توانید این کار را انجام دهند. 186 00:07:59,700 --> 00:08:01,370 اما به طور کلی، که غضب. 187 00:08:01,370 --> 00:08:04,020 و به این ترتیب شروع به شمارش از 0 فقط چیزی است که شما باید 188 00:08:04,020 --> 00:08:05,510 به طور معمول استفاده می شود به. 189 00:08:05,510 --> 00:08:07,810 در حال حاضر، چه در مورد کل این ساختار به خودی خود؟ 190 00:08:07,810 --> 00:08:10,640 این 15 خط demarks حلقه. 191 00:08:10,640 --> 00:08:12,510 بنابراین برای یک تابع نیست. 192 00:08:12,510 --> 00:08:13,640 این فقط یک بیانیه است. 193 00:08:13,640 --> 00:08:16,180 این یک ساختار حلقه، مانند ما در ابتدا دیدم. 194 00:08:16,180 --> 00:08:17,600 و آن را دارای سه بخش می باشد. 195 00:08:17,600 --> 00:08:19,740 توجه داشته باشید که در بخش اول وجود دارد 196 00:08:19,740 --> 00:08:21,350 در سمت چپ نقطه و ویرگول بدین. 197 00:08:21,350 --> 00:08:24,200 بخش میانی در بین دو سمیکالن وجود دارد. 198 00:08:24,200 --> 00:08:26,250 و سپس دست راست را به سمت راست وجود دارد 199 00:08:26,250 --> 00:08:27,640 از نقطه و ویرگول بدین شکل دوم است. 200 00:08:27,640 --> 00:08:31,822 در حال حاضر، برای اولین بار از این چه؟ 201 00:08:31,822 --> 00:08:33,679 مخاطبان: [نامفهوم]. 202 00:08:33,679 --> 00:08:34,270 DAVID J. مالان: برگشت وجود دارد؟ 203 00:08:34,270 --> 00:08:34,816 آره؟ 204 00:08:34,816 --> 00:08:35,980 مخاطبان: دهی اولیه. 205 00:08:35,980 --> 00:08:36,850 >> DAVID J. مالان دهی اولیه. 206 00:08:36,850 --> 00:08:37,840 پس به چه معنی است؟ 207 00:08:37,840 --> 00:08:40,690 یک متغیر به نام من به ما اعلام کرده اند. 208 00:08:40,690 --> 00:08:43,840 آن را از نوع int است، چرا که من مشخص اعضای هیات من. 209 00:08:43,840 --> 00:08:46,470 و من هستم من در مقدار دهی اولیه به ارزش 0. 210 00:08:46,470 --> 00:08:47,730 بنابراین آنچه که در این گفت: واقعا؟ 211 00:08:47,730 --> 00:08:50,680 آن را به طور موثر به کامپیوتر گفت: با سلام، به من به اندازه کافی 212 00:08:50,680 --> 00:08:53,660 حافظه، RAM کافی، به تناسب تعداد، و پس از آن قرار داده است 213 00:08:53,660 --> 00:08:56,130 شماره 0 که در آن تکه از RAM. 214 00:08:56,130 --> 00:08:59,100 و به عنوان یک به کنار، چقدر بزرگ بین المللی است به طور معمول، حداقل در داخل 215 00:08:59,100 --> 00:09:00,280 لوازم خانگی 216 00:09:00,280 --> 00:09:01,000 مخاطب: 32 بیتی. 217 00:09:01,000 --> 00:09:01,670 DAVID J. مالان: 32 بیت. 218 00:09:01,670 --> 00:09:04,890 بنابراین این بدان معناست که من 32 بیت، در غیر این صورت به عنوان 4 بایت شناخته می شود، 219 00:09:04,890 --> 00:09:07,250 و قرار دادن 0 ارزش در آن است، که بسیار آسان است زیرا 220 00:09:07,250 --> 00:09:09,110 آن را فقط به معنی همه بیت را به 0. 221 00:09:09,110 --> 00:09:11,690 >> بنابراین در حال حاضر، بخش دوم در اینجا شرط است. 222 00:09:11,690 --> 00:09:14,590 و شرط، به عنوان نام نشان می دهد، همان چیزی است که بررسی می شود 223 00:09:14,590 --> 00:09:18,100 دوباره و دوباره و دوباره به عنوان که آیا این درست است یا غلط. 224 00:09:18,100 --> 00:09:21,410 بنابراین این فقط گفت: انجام خطوط زیر کد - 225 00:09:21,410 --> 00:09:23,950 یعنی خط 16، به دلیل که تنها فاصله دار است 226 00:09:23,950 --> 00:09:24,820 زیر - 227 00:09:24,820 --> 00:09:26,980 تا زمانی که من کمتر از 10 است. 228 00:09:26,980 --> 00:09:30,520 و بعد از هر تکرار از طریق این حلقه، آیا 229 00:09:30,520 --> 00:09:33,840 incrementation، که در این مورد این است + +. 230 00:09:33,840 --> 00:09:35,580 در حال حاضر، آن را ندارد به من + +. 231 00:09:35,580 --> 00:09:37,610 این می تواند من -. 232 00:09:37,610 --> 00:09:39,860 اما اگر من، چه رفتار 233 00:09:39,860 --> 00:09:41,370 از این برنامه؟ 234 00:09:41,370 --> 00:09:42,290 مخاطبان: این رفتن به یک حلقه بی نهایت است. 235 00:09:42,290 --> 00:09:44,060 DAVID J. مالان: رفتن به برخی از انواع حلقه بی نهایت، 236 00:09:44,060 --> 00:09:47,720 مگر این که ما خوش شانس بعد از 2 منفی میلیارد. 237 00:09:47,720 --> 00:09:51,320 شاید چیز در اطراف بسته بندی کردن، فقط با ماهیت محدود 238 00:09:51,320 --> 00:09:53,930 تعداد بیت های که ما برای بین المللی اختصاص داده شده است. 239 00:09:53,930 --> 00:09:56,270 اما مطمئنا رفتن به مراتب بیش از 10 تکرار و 240 00:09:56,270 --> 00:09:58,630 قطعا بیش از 11 بار در اینجا. 241 00:09:58,630 --> 00:10:02,240 >> و در حال حاضر، فقط به عنوان یک کنار، بدانند که من + + و من - 242 00:10:02,240 --> 00:10:04,420 واقعا فقط قند نحوی است. 243 00:10:04,420 --> 00:10:07,210 این فقط نماد مختصر برای چه چیزی کمی بیشتر 244 00:10:07,210 --> 00:10:08,720 به صراحت به شرح زیر نوشته شده است: 245 00:10:08,720 --> 00:10:11,200 من = + 1 است. 246 00:10:11,200 --> 00:10:13,460 که به من یکسان است + +. 247 00:10:13,460 --> 00:10:15,860 این فقط به نوعی به نظر می رسد زیباتر می گویند من + +. 248 00:10:15,860 --> 00:10:17,490 این موجز، قابل خواندن است. 249 00:10:17,490 --> 00:10:19,030 و به این ترتیب بسیاری از افراد که به جای انجام دهد. 250 00:10:19,030 --> 00:10:21,840 اما این عملکرد یکسان است به 251 00:10:21,840 --> 00:10:22,900 آنچه که ما فقط دیدم. 252 00:10:22,900 --> 00:10:27,770 بنابراین در کوتاه مدت، ثابت میانبر در اینجا فقط به گفتن تکرار من در 253 00:10:27,770 --> 00:10:30,690 از 0 تمام راه را تا به کمتر از 10 است. 254 00:10:30,690 --> 00:10:32,700 و پس از آن ما در واقع 10 ستاره را دریافت کنید. 255 00:10:32,700 --> 00:10:33,430 >> بنابراین سعی کنید این اجازه. 256 00:10:33,430 --> 00:10:35,310 اجازه بدهید باز کردن ترمینال در پایین. 257 00:10:35,310 --> 00:10:37,420 اجازه بدهید من به دایرکتوری که این شوید. 258 00:10:37,420 --> 00:10:40,030 و من قصد دارم به آن را کامپایل دستی با صدای جرنگ جرنگ در حال حاضر. 259 00:10:40,030 --> 00:10:44,880 و من قصد دارم به کامپایل این به عنوان buggy1.c، را وارد کنید. 260 00:10:44,880 --> 00:10:50,280 و در حال حاضر buggy1، چرا که بدون چنین فایل یا دایرکتوری وجود دارد 261 00:10:50,280 --> 00:10:52,026 به نام buggy1؟ 262 00:10:52,026 --> 00:10:53,850 مخاطبان: [نامفهوم]. 263 00:10:53,850 --> 00:10:54,240 DAVID J. مالان: آره. 264 00:10:54,240 --> 00:10:55,420 پس از آن در واقع به نام a.out. 265 00:10:55,420 --> 00:10:57,480 بنابراین اگر شما فقط اجرا صدای جرنگ جرنگ یاد، که در آن صدای جرنگ جرنگ است 266 00:10:57,480 --> 00:11:00,420 کامپایلر و شما به نام شما می خواهید مشخص نیست 267 00:11:00,420 --> 00:11:03,550 را به برنامه خود، آن را به طور پیش فرض به a.out. 268 00:11:03,550 --> 00:11:05,030 پس در واقع اگر من LS - 269 00:11:05,030 --> 00:11:05,510 متأسفم. 270 00:11:05,510 --> 00:11:07,680 و من didn't - شماره سیاه و سفید برخی از 271 00:11:07,680 --> 00:11:08,840 شما با آن روبرو شده است. 272 00:11:08,840 --> 00:11:10,670 اما به من اجازه انجام این کار است. 273 00:11:10,670 --> 00:11:14,570 وجود دارد ما باید a.out در سمت چپ وجود دارد. 274 00:11:14,570 --> 00:11:17,360 بنابراین ما باید برای اجرای a.out به جای buggy1. 275 00:11:17,360 --> 00:11:19,140 >> پس جلو بروید و اجازه دهید این کار را انجام. 276 00:11:19,140 --> 00:11:22,840 / a.out را وارد کنید. 277 00:11:22,840 --> 00:11:26,160 و من ظاهرا چه چیزی نیست؟ 278 00:11:26,160 --> 00:11:26,620 مخاطبان: ذخیره. 279 00:11:26,620 --> 00:11:27,390 DAVID J. مالان: صرفه جویی در فایل. 280 00:11:27,390 --> 00:11:31,520 به طوری که به راحتی با هدف قرار دادن کنترل، و یا رفتن به حل 281 00:11:31,520 --> 00:11:33,450 فایل، ذخیره، مانند در اکثر برنامه ها. 282 00:11:33,450 --> 00:11:36,360 اجازه بدهید من به پایین، پاک کردن صفحه نمایش، دوباره آن را اجرا کنید. 283 00:11:36,360 --> 00:11:37,960 و هنوز هم یک اشکال وجود دارد. 284 00:11:37,960 --> 00:11:41,618 پس چه می گذرد - 285 00:11:41,618 --> 00:11:42,980 مخاطب: شما کامپایل کند. 286 00:11:42,980 --> 00:11:44,040 DAVID J. مالان: آه، خوب است. 287 00:11:44,040 --> 00:11:45,010 من آن را کامپایل کند. 288 00:11:45,010 --> 00:11:47,250 مانند یک ادم سفیه و احمق، من به دنبال کد برای دیدن چه چیزی اشتباه است. 289 00:11:47,250 --> 00:11:51,275 بنابراین buggy1.c صدای جرنگ جرنگ، در حال حاضر a.out. 290 00:11:51,275 --> 00:11:52,640 و phew، نجات داد. 291 00:11:52,640 --> 00:11:55,090 >> پس از آن کمی زشت به نظر می رسد، زیرا هیچ خط جدیدی وجود دارد 292 00:11:55,090 --> 00:11:55,970 در هر نقطه این برنامه است. 293 00:11:55,970 --> 00:11:57,390 اما باز هم، که فقط جزئیات زیبایی شناسانه است. 294 00:11:57,390 --> 00:11:59,430 و حداقل اگر کسانی که ما شمارش، ما باید 295 00:11:59,430 --> 00:12:01,160 در حال حاضر 10 ستاره مانند را ببینید. 296 00:12:01,160 --> 00:12:03,260 خب، آنچه در مورد این دومین به عنوان مثال گرم کردن؟ 297 00:12:03,260 --> 00:12:07,750 بنابراین در buggy2، من ادعا می کنند که این نسخه، بیش از حد، چاپ 298 00:12:07,750 --> 00:12:10,110 10 ستاره، یکی در هر خط. 299 00:12:10,110 --> 00:12:12,340 بنابراین این زمان، من یک کاراکتر خط جدید، فقط به 300 00:12:12,340 --> 00:12:13,520 چیزهای کمی زیباتر است. 301 00:12:13,520 --> 00:12:15,410 اما به جای من این است. 302 00:12:15,410 --> 00:12:19,590 بنابراین من انجام buggy2.c صدای جرنگ جرنگ اجازه را وارد کنید. 303 00:12:19,590 --> 00:12:21,790 در حال حاضر آن را دوباره به نام a.out. 304 00:12:21,790 --> 00:12:23,130 را وارد کنید. 305 00:12:23,130 --> 00:12:26,900 من فقط یک خط جدید، فقط خط آخر را مشاهده کنید که 306 00:12:26,900 --> 00:12:29,370 حرکت سریع من به خط بعدی. 307 00:12:29,370 --> 00:12:32,660 و در عین حال به وضوح من چاپ شده *، سپس یک خط جدید، 308 00:12:32,660 --> 00:12:33,990 *، و سپس یک خط جدید است. 309 00:12:33,990 --> 00:12:35,490 اما آنچه این اشکال را در اینجا؟ 310 00:12:35,490 --> 00:12:35,974 آره؟ 311 00:12:35,974 --> 00:12:37,224 مخاطبان: [نامفهوم]. 312 00:12:39,850 --> 00:12:40,470 >> DAVID J. مالان: دقیقا. 313 00:12:40,470 --> 00:12:44,110 بنابراین بر خلاف برخی از زبانها، مانند پایتون، که در آن دندانه دار 314 00:12:44,110 --> 00:12:46,030 در واقع معنای کارکردی، در 315 00:12:46,030 --> 00:12:47,150 زبان C - 316 00:12:47,150 --> 00:12:49,140 همانطور که خواهیم دید، پی اچ پی، جاوا اسکریپت - 317 00:12:49,140 --> 00:12:51,940 دندانه دار است که واقعا فقط به نفع انسان است. 318 00:12:51,940 --> 00:12:55,690 بنابراین این واقعیت که من فاصله دار است خط 16 و 17 به نظر می رسد بزرگ، 319 00:12:55,690 --> 00:12:57,530 اما این هیچ معنای عملکردی در اینجا. 320 00:12:57,530 --> 00:13:00,700 اگر من می خواهم به هر دو خط به عنوان بخشی از اجرای 321 00:13:00,700 --> 00:13:05,140 حلقه، پس از آن من باید آنها را در آکولاد با انجام این کار، محصور است. 322 00:13:05,140 --> 00:13:08,540 شما فقط می توانید که از گوشه و برش و حذف آکولاد اگر 323 00:13:08,540 --> 00:13:10,036 در مورد چه چیزی؟ 324 00:13:10,036 --> 00:13:10,410 مخاطبان: فقط یک خط است. 325 00:13:10,410 --> 00:13:11,130 DAVID J. مالان: فقط یک خط است. 326 00:13:11,130 --> 00:13:15,280 به طوری که تنها مرتب سازی بر اساس مرتب سازی بر اساس خوبی از جزئیات نحو به طوری که 327 00:13:15,280 --> 00:13:17,900 شما اتلاف وقت نیست با نوشتن سه خط، که دو نفر از آنها 328 00:13:17,900 --> 00:13:20,040 آکولاد، فقط به نوشتن یک خط کد است. 329 00:13:20,040 --> 00:13:21,650 اما اگر شما دارای دو یا بیشتر از دو خط، ما 330 00:13:21,650 --> 00:13:22,860 در واقع نیاز به انجام این کار است. 331 00:13:22,860 --> 00:13:24,210 >> بنابراین در حال حاضر این نجات بده. 332 00:13:24,210 --> 00:13:27,140 اجازه بدهید من بروم جلو و دوباره اجرا صدای جرنگ جرنگ. 333 00:13:27,140 --> 00:13:31,375 سپس a.out عمل به من اجازه بده، و در حال حاضر من آنها را یکی در هر خط. 334 00:13:31,375 --> 00:13:33,670 در حال حاضر، a.out دوباره نوع از نام گنگ برای برنامه است. 335 00:13:33,670 --> 00:13:37,500 چگونه می توان صدای جرنگ جرنگ بگویم به واقع من نام فایل 336 00:13:37,500 --> 00:13:39,820 که بیشتر کاربر پسند، مانند buggy2 خود را؟ 337 00:13:43,200 --> 00:13:44,466 کمی با وضوح بیشتری است؟ 338 00:13:44,466 --> 00:13:45,220 مخاطبان: [نامفهوم]. 339 00:13:45,220 --> 00:13:47,810 DAVID J. مالان: OK، بنابراین من در واقع طول می کشد بسیار 340 00:13:47,810 --> 00:13:51,000 کاربر پسند میانبر و نوشتن را buggy2. 341 00:13:51,000 --> 00:13:53,840 من مشخص نیست. C در این مورد، و ضربه را وارد کنید. 342 00:13:53,840 --> 00:13:58,530 و آنچه را می کند این است که از آن کامپایل buggy2.c برای من 343 00:13:58,530 --> 00:14:00,260 درخواست صدای جرنگ جرنگ به آن را انجام دهد. 344 00:14:00,260 --> 00:14:05,100 به طور خاص، خواستار آن صدای جرنگ جرنگ، آن را اجرا می کند صدای جرنگ جرنگ با استفاده از روش 345 00:14:05,100 --> 00:14:08,540 خط فرمان استدلال و یا سوئیچ از من در واقع نیاز است. 346 00:14:08,540 --> 00:14:11,270 در آن زمان، ما را دوباره به آنچه را که همه از این های مختلف 347 00:14:11,270 --> 00:14:13,810 مرموز عبارات hyphenated معنی می دهد. 348 00:14:13,810 --> 00:14:16,910 اما در حال حاضر، فقط صرفه جویی در من مشکل از 349 00:14:16,910 --> 00:14:19,600 به یاد داشته باشید و نیاز به تایپ از تمام کسانی که 350 00:14:19,600 --> 00:14:21,150 عبارات مختلف hyphenated. 351 00:14:21,150 --> 00:14:23,240 و حرکت صعودی آن در نهایت 352 00:14:23,240 --> 00:14:25,900 که در حال حاضر من buggy2. 353 00:14:25,900 --> 00:14:27,480 اگر من می خواهم به انجام این کار دستی، هر چند، من 354 00:14:27,480 --> 00:14:28,775 می توانید به جای انجام این کار - 355 00:14:28,775 --> 00:14:34,110 صدای جرنگ جرنگ-O buggy2 و سپس buggy2.c. 356 00:14:34,110 --> 00:14:37,980 و به همین ترتیب است که به من دادن یک فایل به نام buggy2. 357 00:14:37,980 --> 00:14:39,710 >> بنابراین در کوتاه مدت، صدای جرنگ جرنگ کامپایلر. 358 00:14:39,710 --> 00:14:43,080 فقط یک ابزار کاربر پسند است که ما استفاده خواهیم کرد بیشتر است 359 00:14:43,080 --> 00:14:44,420 و بیشتر، به دلیل آن را فقط شروع به 360 00:14:44,420 --> 00:14:47,330 ساده سازی همه چیز برای ما است. 361 00:14:47,330 --> 00:14:49,430 و ما بازگشت 0، در نهایت. 362 00:14:49,430 --> 00:14:51,890 در حال حاضر، فقط به این دلیل است، اما ما باید شروع به اذیت کردن که بخشی 363 00:14:51,890 --> 00:14:52,930 امروز و در روز چهارشنبه است. 364 00:14:52,930 --> 00:14:55,560 هر گونه سؤال در هر یک از این؟ 365 00:14:55,560 --> 00:14:56,450 آره؟ 366 00:14:56,450 --> 00:14:58,234 مخاطبان: [نامفهوم] 367 00:14:58,234 --> 00:15:00,020 LS در نقل قول وجود دارد؟ 368 00:15:00,020 --> 00:15:01,710 DAVID J. مالان: OK. 369 00:15:01,710 --> 00:15:05,880 وقتی که من تایپ LS در نقل قول، که من انجام شد برخی از سحر و جادو 370 00:15:05,880 --> 00:15:07,160 در پشت صحنه به رفع یک اشکال است. 371 00:15:07,160 --> 00:15:09,370 من را فراموش کرده است، مانند گفتن بوده ایم بسیاری از شما در 372 00:15:09,370 --> 00:15:11,600 تخته های بحث، به انجام - 373 00:15:11,600 --> 00:15:17,220 خواهیم انجام این کار در حال حاضر - یام-Y به روز رسانی کنید: sudo appliance50. 374 00:15:17,220 --> 00:15:19,790 اوه، که املای درست است. 375 00:15:19,790 --> 00:15:23,240 بنابراین دستگاه مانند یک سیستم عامل است. 376 00:15:23,240 --> 00:15:25,650 اجرای این سیستم عامل به نام فدورا است. 377 00:15:25,650 --> 00:15:27,450 و در حال حاضر به دلیل اتصال به اینترنت من آهسته، من 378 00:15:27,450 --> 00:15:28,260 واقعا آن را hosed. 379 00:15:28,260 --> 00:15:31,620 بنابراین در حال اجرا کنید: sudo بروز رسانی یام، همانطور که ما به شما می گویند به در 380 00:15:31,620 --> 00:15:34,080 مجموعه مشکل، اساسا در حال اجرا به روز رسانی خودکار را دوست 381 00:15:34,080 --> 00:15:35,420 در سیستم عامل مکینتاش یا ویندوز. 382 00:15:35,420 --> 00:15:37,280 و به همین دلیل برای اجرای این کار را در آغاز خیلی از 383 00:15:37,280 --> 00:15:39,640 مجموعه ای مشکل است زیرا هنگامی که ما ایجاد دستگاه 384 00:15:39,640 --> 00:15:42,480 messed تا، و من به طور تصادفی تمام برنامه های خود را نگاه کنید 385 00:15:42,480 --> 00:15:45,210 سیاه و سفید بر روی صفحه نمایش سیاه و سفید، به همین دلیل است که شما در حال دیدن آنها نیست 386 00:15:45,210 --> 00:15:45,860 به طور پیش فرض. 387 00:15:45,860 --> 00:15:48,020 اما آخرین نسخه از دستگاه رفع این. 388 00:15:48,020 --> 00:15:50,500 و من که در طول استراحت رفع هنگامی که من اینترنت 389 00:15:50,500 --> 00:15:51,280 اتصال. 390 00:15:51,280 --> 00:15:54,630 >> به نقل از فقط پنهان اشتباه من، بسیار محتاطانه، 391 00:15:54,630 --> 00:15:55,730 ظاهرا. 392 00:15:55,730 --> 00:15:56,980 سوال دیگر؟ 393 00:15:59,750 --> 00:16:00,668 بله؟ 394 00:16:00,668 --> 00:16:02,012 مخاطبان: از کجا آمده را از؟ 395 00:16:02,012 --> 00:16:03,810 [نامفهوم] 396 00:16:03,810 --> 00:16:04,280 DAVID J. مالان: سوال خوب است. 397 00:16:04,280 --> 00:16:05,460 کجا را می آیند؟ 398 00:16:05,460 --> 00:16:09,390 این یک برنامه لینوکس است که برای سالهای زیادی وجود داشته است، طولانی است 399 00:16:09,390 --> 00:16:10,570 قبل از CS50. 400 00:16:10,570 --> 00:16:12,930 و آن را با یک سیستم عامل مانند فدورا می آید. 401 00:16:12,930 --> 00:16:14,830 این کار از کتابخانه CS50 آمده است. 402 00:16:14,830 --> 00:16:17,560 در واقع، تنها چیزهایی را که از کتابخانه CS50 می آیند 403 00:16:17,560 --> 00:16:20,470 تا کنون، که ما دیده ایم، GetString، GetInt، همه 404 00:16:20,470 --> 00:16:25,550 کسانی که دریافت توابع، و رشته کلمه، و تا 405 00:16:25,550 --> 00:16:26,575 حد، کلمه بولی است. 406 00:16:26,575 --> 00:16:29,180 اما اذیت که از هم جدا می کنیم هنگامی که ما را به CS50 شیرجه 407 00:16:29,180 --> 00:16:30,580 لوازم خانگی خود را. 408 00:16:30,580 --> 00:16:32,820 >> پس بله، یک سؤال در اینجا است. 409 00:16:32,820 --> 00:16:36,636 مخاطبان: هنگامی که شما در گفت و پس از آن حشره دار، چگونه 410 00:16:36,636 --> 00:16:39,980 کامپیوتر [نامفهوم]؟ 411 00:16:39,980 --> 00:16:40,520 DAVID J. مالان: سوال خوب است. 412 00:16:40,520 --> 00:16:43,830 بنابراین، هنگامی که شما فقط اجرا buggy1 و یا به آن buggy2، چگونه 413 00:16:43,830 --> 00:16:45,220 را می دانید؟ 414 00:16:45,220 --> 00:16:49,900 بنابراین به طور پیش فرض، اگر شما تایپ کنید را buggy1، به نظر می رسد برای 415 00:16:49,900 --> 00:16:52,330 فایل با نام buggy1.c است. 416 00:16:52,330 --> 00:16:55,570 و سپس آن را اجرا دستورات صدای جرنگ جرنگ مناسب، 417 00:16:55,570 --> 00:17:00,380 در نتیجه لغو پیش فرض فایل خروجی به نام a.out. 418 00:17:00,380 --> 00:17:03,670 در واقع، اگر ما در آنچه را نگاه کنید، چه - 419 00:17:03,670 --> 00:17:04,839 اجازه دهید به ترک این. 420 00:17:04,839 --> 00:17:09,530 اگر ما در آنچه در واقع انجام این کار نگاه کنید، مطمئن buggy2 421 00:17:09,530 --> 00:17:10,470 آن را در حال حاضر تا به امروز است. 422 00:17:10,470 --> 00:17:13,020 بنابراین حذف دستور rm به من اجازه بده 423 00:17:13,020 --> 00:17:14,319 برنامه قبل از نوشت. 424 00:17:14,319 --> 00:17:17,319 تایپ Y-E-S را به تایید می کنند که من می خواهم به آن را حذف. 425 00:17:17,319 --> 00:17:20,480 اگر من در حال حاضر انجام نمی دهید، توجه کنید که در این خط بسیار طولانی، 426 00:17:20,480 --> 00:17:22,980 این آخرین چیزی است که در اینجا وجود دارد،-O buggy2. 427 00:17:22,980 --> 00:17:26,959 همه در حال انجام است عبور از این بحث، پس به صحبت می کنند، به 428 00:17:26,959 --> 00:17:29,665 صدای جرنگ جرنگ، به طوری که من مجبور نیست که آن را خودم تایپ. 429 00:17:29,665 --> 00:17:32,660 >> همه حق است، بنابراین یک زن و شوهر سریع اداری 430 00:17:32,660 --> 00:17:33,470 اطلاعیه ها. 431 00:17:33,470 --> 00:17:36,940 بنابراین برای بخش، که رسما شروع به این آینده 432 00:17:36,940 --> 00:17:38,970 یکشنبه، شما همیشه به ارمغان می آورد می خواهم، اگر 433 00:17:38,970 --> 00:17:40,120 شما باید یک، یک لپ تاپ. 434 00:17:40,120 --> 00:17:42,570 اگر شما یک لپ تاپ را نداشته باشند، رسیدن به من 435 00:17:42,570 --> 00:17:43,580 حذف ایمیل به من. 436 00:17:43,580 --> 00:17:44,810 و ما را به شکل یک گردش کار است. 437 00:17:44,810 --> 00:17:47,100 آنچه به طور کلی شما در بخش پیدا کنید، این است که آنها بخشی 438 00:17:47,100 --> 00:17:48,770 مفهومی، بخشی از دست است. 439 00:17:48,770 --> 00:17:52,190 ما به طور خاص به بخش از سوالات، بخشی از استفاده کنید 440 00:17:52,190 --> 00:17:54,110 مجموعه ای مشکل در هفته، به پیاده روی را از طریق برخی از 441 00:17:54,110 --> 00:17:55,820 مواد مفهومی از سخنرانی. 442 00:17:55,820 --> 00:17:57,480 و این همه در مجموعه ای از مشکل کنونی است. 443 00:17:57,480 --> 00:18:00,010 و ما همچنین می خواهیم به برخی از فعالیت دست بر روی فرو رفتن، گاهی اوقات 444 00:18:00,010 --> 00:18:02,190 خواهد شد که لازم می شود را مشاهده کنید، گاهی اوقات از 445 00:18:02,190 --> 00:18:02,830 که نیست. 446 00:18:02,830 --> 00:18:04,630 به عنوان مثال، این هفته، آنها فقط به عنوان یک به معنای 447 00:18:04,630 --> 00:18:05,780 گرم کردن ورزش. 448 00:18:05,780 --> 00:18:07,800 و شما خواهید فهمید که این مشکلات واقعا که. 449 00:18:07,800 --> 00:18:10,220 آنها به معنای به نسبتا کوچک است، اما نه لزوما 450 00:18:10,220 --> 00:18:13,100 برنامه های پیش پا افتاده به نوشتن، که لزوما 451 00:18:13,100 --> 00:18:16,230 فرصت های هیجان انگیز و از خود هستند اما خوب به 452 00:18:16,230 --> 00:18:19,620 تمرین با استفاده از دستور، با توابع جدید، در راحتی از 453 00:18:19,620 --> 00:18:21,900 بخش که در آن شما باید یک چند از همکلاسی های شما در حال حاضر به عنوان 454 00:18:21,900 --> 00:18:22,870 همچنین TF شما. 455 00:18:22,870 --> 00:18:26,210 >> و آنچه ما را در طول زمان انجام دهید این است که با استفاده از یک ابزار به نام CS50 فضاهای، 456 00:18:26,210 --> 00:18:28,940 به موجب آن به جای اینکه فقط با استفاده از لوازم خانگی CS50، شما 457 00:18:28,940 --> 00:18:32,450 به جای آن به یک صفحه وب در مرورگر، که در آن شما قادر خواهید بود 458 00:18:32,450 --> 00:18:35,610 برای نوشتن کد در یک پنجره مرورگر در بخش. 459 00:18:35,610 --> 00:18:38,240 و پس از آن اگر شما در انتخاب همکار آموزش خود را پس از آن می تواند نشان دهد 460 00:18:38,240 --> 00:18:40,980 هر چه در آن است که شما در حال تایپ کردن بر روی صفحه نمایش شما را در مرورگر خود 461 00:18:40,980 --> 00:18:43,930 پنجره در جلوی کلاس، چه ناشناس و یا 462 00:18:43,930 --> 00:18:47,250 عمومی، به طوری که او پس از آن می توانید از طریق راه رفتن 463 00:18:47,250 --> 00:18:50,080 همکلاسی های خود را به آنچه که شما به خوبی، آنچه که شما انجام نه به خوبی. 464 00:18:50,080 --> 00:18:52,750 و دوباره، مطمئن باشید همه این را می توان به سادگی ناشناخته خواهد ماند. 465 00:18:52,750 --> 00:18:54,410 اما آن خواهید بود یک فرصت خوب برای خیلی بیشتر 466 00:18:54,410 --> 00:18:56,810 تعامل از چیزی شبیه به سخنرانی می شود. 467 00:18:56,810 --> 00:18:58,910 >> در عین حال، ما باید این چیزها را به نام فوق العاده 468 00:18:58,910 --> 00:19:01,610 بخش، که اختیاری است ولی ما به روی همه باز 469 00:19:01,610 --> 00:19:04,030 کلاس، به طوری که شما می توانید این جمعی را برای 470 00:19:04,030 --> 00:19:05,190 مشکل تنظیم است. 471 00:19:05,190 --> 00:19:06,010 در اینجا برنامه. 472 00:19:06,010 --> 00:19:08,870 این نیز بر روی صفحه اصلی در cs50.net شده است. 473 00:19:08,870 --> 00:19:10,850 توجه داشته باشید که خواهید بود یک هکر خاص وجود دارد 474 00:19:10,850 --> 00:19:12,430 فردا بعد از ظهر. 475 00:19:12,430 --> 00:19:15,460 و ما امروز و فردا و فیلم و بعد از آن 476 00:19:15,460 --> 00:19:16,720 آنلاین ظرف 24 ساعت. 477 00:19:16,720 --> 00:19:19,370 بنابراین اگر شما می توانید هر یک از این بار را ندارد، نگران نباشید. 478 00:19:19,370 --> 00:19:22,720 و دوباره، برنامه اکنون آنلاین است. در cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> در برش خود را، شما باید بدست 480 00:19:25,350 --> 00:19:28,520 ایمیل آموزش شما را به صفحه اصلی این دوره برای پیدا کردن 481 00:19:28,520 --> 00:19:29,610 خارج از بخش خودتان. 482 00:19:29,610 --> 00:19:32,890 اگر زندگی تغییر کرده است و شما نیاز به تغییر بخش خود را، 483 00:19:32,890 --> 00:19:33,560 یک مشکل نیست. 484 00:19:33,560 --> 00:19:37,900 بازگشت به که URL، cs50.net/section، منحصر به فرد، 485 00:19:37,900 --> 00:19:40,090 و شما با پر کردن فرم مشابه به طوری که شما می توانید 486 00:19:40,090 --> 00:19:41,260 پس از آن ما را به تنظیمات خود را. 487 00:19:41,260 --> 00:19:43,360 و ما را به دنبال خواهد داشت تا پایان هفته به عنوان آنچه ما می توانیم 488 00:19:43,360 --> 00:19:44,240 خود جای دهد. 489 00:19:44,240 --> 00:19:49,530 در هفته گذشته، به یاد آورید که ما پیشنهاد استفاده از CS50 گفتگو، 490 00:19:49,530 --> 00:19:51,370 ابزار بحث درس، در سخنرانی است. 491 00:19:51,370 --> 00:19:53,680 بنابراین ما تا به حال 40 سوال که پرسیده بودند 492 00:19:53,680 --> 00:19:54,720 پاسخ داده شده در هنگام سخنرانی. 493 00:19:54,720 --> 00:19:56,280 پس از آن به نظر می رسید به خوبی کار می کنند، به طوری که ادامه خواهیم داد 494 00:19:56,280 --> 00:19:57,180 تلاش برای انجام این کار است. 495 00:19:57,180 --> 00:19:59,600 اگر، در طول سخنرانی، شما نه تنها احساس راحت بالا بردن 496 00:19:59,600 --> 00:20:00,780 دست خود را، نه یک مشکل. 497 00:20:00,780 --> 00:20:04,640 برو به cs50.net/discuss، ارسال وجود دارد، و یکی از آموزش های ما 498 00:20:04,640 --> 00:20:07,270 همراهان خواهد شد یا آن پاسخ الکترونیکی و یا بالا بردن خود را 499 00:20:07,270 --> 00:20:10,620 دست از طرف شما ناشناس به درخواست، بسته 500 00:20:10,620 --> 00:20:12,470 در طبیعت از سوال. 501 00:20:12,470 --> 00:20:15,000 و در از لحاظ بازخورد، به طور کلی psets خواهد بود 502 00:20:15,000 --> 00:20:16,760 بازگشت در عرض یک هفته. 503 00:20:16,760 --> 00:20:19,080 از آنجا که آن را طول می کشد در حالی که کمی برای بخش برای رسیدن به 504 00:20:19,080 --> 00:20:22,430 تعادل، pset اول، 0 و 1 خواهد بود کمی 505 00:20:22,430 --> 00:20:24,130 به تعویق افتاد به عنوان همه چیز حل و فصل کردن. 506 00:20:24,130 --> 00:20:27,130 اما بماند که در هفته های کوک شده آمده است. 507 00:20:27,130 --> 00:20:29,750 >> همه حق است، بنابراین من جدی من قرار داده 508 00:20:29,750 --> 00:20:31,040 صدا برای یک لحظه. 509 00:20:31,040 --> 00:20:32,690 پس این است که در واقع آب و هوای جالب برای 510 00:20:32,690 --> 00:20:35,210 این بحث، با تمام چیزهای دیگر 511 00:20:35,210 --> 00:20:37,310 در رفتن در دانشگاه مربوط به آنها نمیدهد. 512 00:20:37,310 --> 00:20:40,220 اما CS50 قطعا سابقه خود را از این خاص 513 00:20:40,220 --> 00:20:43,360 موضوع، به همان اندازه که در هر سال، در این دوره، برای بسیاری از افراد 514 00:20:43,360 --> 00:20:46,910 سال، آگهی تابلوهای حدود 3٪ از کلاس است. 515 00:20:46,910 --> 00:20:51,620 این سال های اخیر، 2011، CS50 تبلیغ سوار 35 دانشجو است. 516 00:20:51,620 --> 00:20:54,120 این است، من فکر می کنم، به علت عدم شفافیت نیست. 517 00:20:54,120 --> 00:20:56,760 متوجه باشید که در برنامه درسی این دوره است، یک صفحه وجود دارد 518 00:20:56,760 --> 00:20:59,020 بیانیه ای توضیح می دهد که در آن خطوط هستند. 519 00:20:59,020 --> 00:21:01,350 بیانیه ای که بر روی هر یک از تکرار 520 00:21:01,350 --> 00:21:03,070 مشکل این مجموعه در یک صفحه است. 521 00:21:03,070 --> 00:21:05,760 >> بنابراین من امروز واقعا فقط به ذکر است این را به 522 00:21:05,760 --> 00:21:07,030 مردمی آگاه از این است. 523 00:21:07,030 --> 00:21:08,080 و ما سعی چیز متفاوت است. 524 00:21:08,080 --> 00:21:10,630 و آنچه که من فکر می کنم که ما می خواهیم انجام دهیم که امروز این است که فقط یک لحظه را به 525 00:21:10,630 --> 00:21:13,830 در واقع در برخی از موارد گذشته که آمده اند تا نگاه. 526 00:21:13,830 --> 00:21:16,160 به جای حفظ این اسرار به عنوان کثیف کمی، در واقع 527 00:21:16,160 --> 00:21:19,170 اشاره به آنچه که دانش آموزان انجام داده اند و چگونه ما را شناسایی 528 00:21:19,170 --> 00:21:21,630 و واقعا چه انگیزه فراگیر برای 529 00:21:21,630 --> 00:21:23,950 حتی داشتن این گفتگو است. 530 00:21:23,950 --> 00:21:27,060 پس با که گفت، خط اساسا این است - 531 00:21:27,060 --> 00:21:29,200 در هر برنامه درسی، شما خوش آمدید، شما در حال، تشویق به 532 00:21:29,200 --> 00:21:30,210 صحبت با همکلاسی. 533 00:21:30,210 --> 00:21:31,910 که هدف از داشتن این مشترک 534 00:21:31,910 --> 00:21:34,470 ساعات اداری در آننبرگ و تشویق افراد و برای 535 00:21:34,470 --> 00:21:35,755 پروژه نهایی هم کار کنند. 536 00:21:35,755 --> 00:21:38,590 اما خط کشیده شده است وقتی که می آید زمان برای نوشتن واقعی 537 00:21:38,590 --> 00:21:39,790 راه حل نهایی خود را. 538 00:21:39,790 --> 00:21:42,590 صحبت به زبان انگلیسی، کاملا خوب، صحبت کردن در شبه کد، 539 00:21:42,590 --> 00:21:43,400 کاملا خوب است. 540 00:21:43,400 --> 00:21:46,340 ایمیل همکلاسی pset خود، اجازه دادن به آنها نگاه بیش از 541 00:21:46,340 --> 00:21:48,610 صفحه نمایش به عنوان دست همچنان تایپ کردن، 542 00:21:48,610 --> 00:21:50,110 در طول خط نیز هست. 543 00:21:50,110 --> 00:21:52,250 آیا نگاهی به برنامه درسی برای خطوط خاص. 544 00:21:52,250 --> 00:21:55,850 >> اما فقط به رنگ یک تصویر از چگونگی این است که متاسفانه 545 00:21:55,850 --> 00:21:58,370 واقعیت، متوجه باشید که وب سایت ها هستند وجود دارد خارج وجود دارد که 546 00:21:58,370 --> 00:22:01,490 راه حل های از این کلاس و بسیاری از کلاس های دیگر است. 547 00:22:01,490 --> 00:22:04,940 واقعیت این است که شما و یا در حدود 3٪ از شما می دانیم که این وجود دارد 548 00:22:04,940 --> 00:22:07,240 این بدان معنی است که ما می دانیم که این وجود دارد. 549 00:22:07,240 --> 00:22:09,340 واقعیت این است که وب سایت ها هستند شبیه به این وجود دارد که در آن شما 550 00:22:09,340 --> 00:22:11,540 کسی که می تواند در واقع به مجموعه مشکل شما پرداخت - این بود 551 00:22:11,540 --> 00:22:13,450 یک مورد واقعی آمد که تا سال گذشته. 552 00:22:13,450 --> 00:22:15,790 این وب سایت موسوم به odesk.com است. 553 00:22:15,790 --> 00:22:20,090 و تیم به نام شخص در اینجا بود که ارسال شد 554 00:22:20,090 --> 00:22:24,580 این وب سایت و پرسید: کسی که به انجام pset خود را 7 در 555 00:22:24,580 --> 00:22:25,570 این مورد خاص. 556 00:22:25,570 --> 00:22:28,350 خب، odesk.com گوگل قادر است، و ما هم 557 00:22:28,350 --> 00:22:30,310 بسیار خوب در گوگلینگ. 558 00:22:30,310 --> 00:22:32,360 در اینجا، بیش از حد، وب سایت ها هستند وجود دارد - و این یکی و نه 559 00:22:32,360 --> 00:22:34,234 همین، رک و پوست کنده. 560 00:22:34,234 --> 00:22:38,050 [خنده] 561 00:22:38,050 --> 00:22:39,610 DAVID J. مالان: چیز خنده دار در مورد این سایت این است اگر 562 00:22:39,610 --> 00:22:41,970 شما خواندن صفحه در مورد، آنها در مورد شرکت خود را صحبت 563 00:22:41,970 --> 00:22:44,390 فرهنگ و نحوه خدمات به مشتریان خود شماره یک است 564 00:22:44,390 --> 00:22:46,190 اولویت، تا مطمئن شوید که تکالیف خود را دریافت کنید 565 00:22:46,190 --> 00:22:47,890 تبدیل در زمان. 566 00:22:47,890 --> 00:22:50,580 >> اما در تمام جدیت، دوباره، این واقعیت است که این سایت ها 567 00:22:50,580 --> 00:22:52,910 وجود داشته باشد، ما درک، بیش از حد، آگاه از 568 00:22:52,910 --> 00:22:53,730 این نوع از سایت های. 569 00:22:53,730 --> 00:22:55,890 و به شما حس از آنچه را به شکل این به طور کلی 570 00:22:55,890 --> 00:22:58,570 طول می کشد، ما به طور کلی رسوایی بزرگ ندارد که در آن مردم 571 00:22:58,570 --> 00:23:01,080 همکاری در هر نوع مقیاس گسترده، بلکه 572 00:23:01,080 --> 00:23:04,540 این است که این اواخر شب لحظات ضعف، که در آن شما باید تا 573 00:23:04,540 --> 00:23:07,550 زیادی برای انجام، این، 04:00 شما خسته شده، و شما 574 00:23:07,550 --> 00:23:09,770 فکر می کنم به خودتان، خوب، اجازه دهید من فقط یک نگاه در من 575 00:23:09,770 --> 00:23:11,770 هم اتاقی یا کد دوست من است و یا مانند. 576 00:23:11,770 --> 00:23:14,800 و تظاهرات از این متاسفانه دانشجویی شامل 577 00:23:14,800 --> 00:23:17,640 ارسال یک چیزی مثل این و دانشجوی B ارائه شده 578 00:23:17,640 --> 00:23:20,370 چیزی شبیه به این است، که قطعا، در یک کامپیوتر 579 00:23:20,370 --> 00:23:23,830 کلاس علم است، قابل ملاحظه ای آسان برای دانشمندان کامپیوتر 580 00:23:23,830 --> 00:23:25,690 برای تشخیص با نرم افزار. 581 00:23:25,690 --> 00:23:28,410 این یکی دیگر از الگوی رایج این است، که در آن شما را مرتب سازی بر اساس ام 582 00:23:28,410 --> 00:23:31,010 کار در کنار کسی، شاید صحبت کردن در 583 00:23:31,010 --> 00:23:32,360 انگلیسی، فقط خوب است، شبه. 584 00:23:32,360 --> 00:23:35,080 اما پس از آن که می آید زمان به واقع تسلیم، و psets 585 00:23:35,080 --> 00:23:37,910 فقط از طریق ایمیل یا Dropbox به مانند رد و بدل شده است. 586 00:23:37,910 --> 00:23:41,120 اما در تلاش برای آن را کمتر آشکار است که این 587 00:23:41,120 --> 00:23:44,830 آنچه اتفاق افتاده است، پس این همان چیزی است که ارائه شده است. 588 00:23:44,830 --> 00:23:47,880 این، بیش از حد، آیا این سفر به خوبی نوشته شده است قطعه از 589 00:23:47,880 --> 00:23:50,360 نرم افزار مانند ما باید در واقع به تشخیص 590 00:23:50,360 --> 00:23:51,280 این نوع از چیزها. 591 00:23:51,280 --> 00:23:53,760 و در واقع آنچه که ما انجام می دهیم، نرم افزار اجرا است که مقایسه همه 592 00:23:53,760 --> 00:23:55,540 ارسالی در این سال در برابر تمام سال گذشته 593 00:23:55,540 --> 00:23:57,380 ارسالی، در مقابل همه چیز ما در 594 00:23:57,380 --> 00:24:00,060 اینترنت، در مقابل هر وب سایت کار در خارج وجود دارد. 595 00:24:00,060 --> 00:24:01,710 این همه بسیار خودکار است. 596 00:24:01,710 --> 00:24:05,665 و بنابراین ما این کار را واقعا به انصاف بزرگ را به 97٪ که 597 00:24:05,665 --> 00:24:07,760 واقعا کار سنجش خود را در این و سایر 598 00:24:07,760 --> 00:24:11,530 کلاس ها و قرار دادن در همه این تلاش به طوری که کار 599 00:24:11,530 --> 00:24:13,030 آنها در نهایت خود را ارسال کنید. 600 00:24:13,030 --> 00:24:14,220 و من می توانم برای سنین. 601 00:24:14,220 --> 00:24:16,030 >> اینها فقط تعداد انگشت شماری از موارد در سال گذشته است. 602 00:24:16,030 --> 00:24:19,350 تعداد کمی از دانش آموزان را مشاهده کنید این فایل ها عینا برای pset 2، 603 00:24:19,350 --> 00:24:22,460 3، pset 4، pset pset 5، pset 6، pset 9. 604 00:24:22,460 --> 00:24:26,360 در این مورد، این مسابقه 0 و در سال گذشته، که در آن دو بود 605 00:24:26,360 --> 00:24:29,570 دانش آموزان را مشاهده کنید عینا این حکم در میان بسیاری از 606 00:24:29,570 --> 00:24:32,210 دیگران، "درخواست از نوع -" نقطه، نقطه، نقطه. 607 00:24:32,210 --> 00:24:34,530 بنابراین حتی در یک کلاس از 600 این که ما تشخیص 608 00:24:34,530 --> 00:24:36,310 ارسال آزمونها. 609 00:24:36,310 --> 00:24:39,080 بنابراین در کوتاه مدت، این - رک و پوست کنده، من نفرت داشتن این نوع از 610 00:24:39,080 --> 00:24:41,300 مکالمه - اما این واقعا یک تلاش عمدی 611 00:24:41,300 --> 00:24:43,540 سعی کنید به این سال به پایین که شماره. 612 00:24:43,540 --> 00:24:45,650 چرا که حتی اگر ما می گویند که این نوع از چیزهایی که هر 613 00:24:45,650 --> 00:24:48,100 سال، من فکر می کنم این واقعیت که بر روی آن ساکن برای چند 614 00:24:48,100 --> 00:24:50,800 چند ثانیه از حد معمول و در واقع فقط با اشاره به 615 00:24:50,800 --> 00:24:53,600 که آنچه را که ممکن است مانند، اه، این یک معامله بزرگ به نظر می رسد، حداقل 616 00:24:53,600 --> 00:24:56,390 فکر می کنم به این لحظه خاص، هر دو در انصاف به 617 00:24:56,390 --> 00:25:00,100 خود و همکلاسی های خود را در اینجا. 618 00:25:00,100 --> 00:25:02,480 بنابراین اگر شما همیشه باید هر گونه سؤال به عنوان خط 619 00:25:02,480 --> 00:25:04,290 است، لطفا فقط رسیدن به شخص من است. 620 00:25:04,290 --> 00:25:07,190 اما پاسخ این است که همیشه، به طور کامل تاکید در 621 00:25:07,190 --> 00:25:09,090 در آخرین لحظه، پول نقد در اواخر روز. 622 00:25:09,090 --> 00:25:11,080 یا اگر آن را موضوع نداشتن اواخر هر روز، 623 00:25:11,080 --> 00:25:12,900 راستش، من ایمیل شخصا. 624 00:25:12,900 --> 00:25:14,110 ما می خواهیم چیزی را بیرون آورید. 625 00:25:14,110 --> 00:25:17,480 لطفا وقت خود را قرار نیست در اینجا در دانشگاه هاروارد در معرض خطر است. 626 00:25:17,480 --> 00:25:18,570 >> در حال حاضر، من فکر می کنم ما باید خلق و خوی روشن، بنابراین من 627 00:25:18,570 --> 00:25:20,264 این را به عنوان اسلاید بعدی گنجانده شده است. 628 00:25:20,264 --> 00:25:22,770 [خنده] 629 00:25:22,770 --> 00:25:23,630 DAVID J. مالان: این وب سایت بزرگی بود. 630 00:25:23,630 --> 00:25:24,820 من در واقع کمی منحرف کردم. 631 00:25:24,820 --> 00:25:26,330 این یکی وجود دارد. 632 00:25:26,330 --> 00:25:29,590 و سپس این یکی از شگفت انگیز است. 633 00:25:29,590 --> 00:25:35,190 خوب، پس فکر می کنم که بچه گربه در اواخر شب هنگام ساخت 634 00:25:35,190 --> 00:25:36,040 کسانی که تصمیم گیری. 635 00:25:36,040 --> 00:25:40,110 تمامی حقوق، بنابراین برگشت به لذت بیشتر و کمتر جدی مسائل، مانند 636 00:25:40,110 --> 00:25:40,780 شرایط. 637 00:25:40,780 --> 00:25:43,900 >> همه حق است، بنابراین ما به طور خلاصه در مورد این صحبت کردیم. 638 00:25:43,900 --> 00:25:46,080 این چیزی است که احتمالا بسیار آشنا است 639 00:25:46,080 --> 00:25:47,260 در جهان، از ابتدا. 640 00:25:47,260 --> 00:25:49,860 و در جهان، از ابتدا، ما باید این نیاز گاهی به 641 00:25:49,860 --> 00:25:51,110 برو چنگال را در جاده. 642 00:25:51,110 --> 00:25:54,840 در هر دو صورت این یا آن و یا چیز دیگری در اینجا انجام دهید. 643 00:25:54,840 --> 00:25:58,990 و زمانی که ما می خواهیم برای انجام این کار، ما می توانیم استفاده کنید، در C در حال حاضر، اگر این 644 00:25:58,990 --> 00:26:00,860 دیگری ساخت. 645 00:26:00,860 --> 00:26:06,420 و سپس در اینجا ما عبارات بولی. 646 00:26:06,420 --> 00:26:09,260 به عنوان مثال، عبارات بولی در اینجا، ما می تواند و یا 647 00:26:09,260 --> 00:26:12,260 آنها را با هم، به این معنا است که ما باید این وضعیت OR 648 00:26:12,260 --> 00:26:13,200 که وضعیت. 649 00:26:13,200 --> 00:26:15,100 ما می توانیم و آنها را با هم، به این معنا است که ما می خواهیم 650 00:26:15,100 --> 00:26:17,710 این وضعیت و این شرط را بررسی کنید. 651 00:26:17,710 --> 00:26:22,440 در اینجا ما یک دستور switch در حال حاضر، که نه چندان 652 00:26:22,440 --> 00:26:26,040 به نحوی مشابه به این نوع شرایط است، اما آن را 653 00:26:26,040 --> 00:26:30,160 اجازه می دهد تا ما را به انجام معادل اگر، اگر دیگری، اگر دیگری، دیگری 654 00:26:30,160 --> 00:26:34,990 اگر، و مانند آن به سادگی با شمارش آنها را مورد به مورد 655 00:26:34,990 --> 00:26:36,670 مورد به مورد. 656 00:26:36,670 --> 00:26:38,370 بنابراین ما به کسانی که آخرین بار دیدم. 657 00:26:38,370 --> 00:26:40,430 و پس از آن ما شروع به لمس کردن بر چیزهایی مثل حلقه. 658 00:26:40,430 --> 00:26:42,070 ما شاهد یکی از این فقط یک لحظه پیش. 659 00:26:42,070 --> 00:26:44,180 اما این ساختارهای حلقه های دیگر وجود دارد. 660 00:26:44,180 --> 00:26:46,370 >> به عنوان مثال، این یکی در اینجا است. 661 00:26:46,370 --> 00:26:50,140 بنابراین در حالی که (شرط)، انجام این کار چیز دوباره و دوباره. 662 00:26:50,140 --> 00:26:53,070 بنابراین اساسا، آنچه که به نظر می رسد بین این متفاوت 663 00:26:53,070 --> 00:26:55,760 حلقه و این حلقه در حالی که در اینجا؟ 664 00:27:00,810 --> 00:27:05,045 این حلقه و این در حالی که حلقه. 665 00:27:05,045 --> 00:27:07,840 آره؟ 666 00:27:07,840 --> 00:27:08,800 که چیست؟ 667 00:27:08,800 --> 00:27:10,050 مخاطبان: [نامفهوم]. 668 00:27:14,632 --> 00:27:15,120 DAVID J. مالان: خوب. 669 00:27:15,120 --> 00:27:17,130 بنابراین در حالی که در شرط حلقه، به وضوح وجود دارد 670 00:27:17,130 --> 00:27:17,940 نحو. 671 00:27:17,940 --> 00:27:20,560 این مقدار دهی اولیه وجود دارد، این به روز رسانی وجود دارد. 672 00:27:20,560 --> 00:27:23,820 در حالی که حلقه، فقط این وضعیت وجود دارد. 673 00:27:23,820 --> 00:27:26,630 پس از آن به نظر می رسد که آن را کمی در مقابل برای مقایسه 674 00:27:26,630 --> 00:27:28,770 حلقه، بدان معناست که اگر ما می خواهیم به متغیرها و ما می خواهیم 675 00:27:28,770 --> 00:27:30,800 به incrementation، ما در واقع به 676 00:27:30,800 --> 00:27:32,500 انجام این کار چیز خودمان. 677 00:27:32,500 --> 00:27:34,420 >> پس جلو بروید و اجازه دهید باز کردن gedit. 678 00:27:34,420 --> 00:27:36,320 اجازه بدهید من سوئیچ را به دستگاه. 679 00:27:36,320 --> 00:27:38,110 و اجازه دهید فقط یک مثال کوچک است که سریع 680 00:27:38,110 --> 00:27:40,550 متمایز یکی از آنها از سوی دیگر است. 681 00:27:40,550 --> 00:27:42,490 و در پشت ذهن من در اینجا، من باید یک چیز می گویند. 682 00:27:42,490 --> 00:27:44,120 من به طور خاص اشاره به نام تیم است. 683 00:27:44,120 --> 00:27:47,740 تیم در واقع کسی که دانش آموز تلاش برای پیدا کردن به انجام 684 00:27:47,740 --> 00:27:48,680 مشق شب خود را برای آنها. 685 00:27:48,680 --> 00:27:51,280 ما هیچ تیم در آن بخش خاص بود. 686 00:27:51,280 --> 00:27:53,690 درک، مبادا فاش دانش آموز، آن را یک دانش آموز نیست. 687 00:27:53,690 --> 00:27:55,720 آن شخص به طور تصادفی بر روی اینترنت انجام کارها 688 00:27:55,720 --> 00:27:57,180 در سال گذشته در پروکسی. 689 00:27:57,180 --> 00:27:58,670 به طوری که پیدا می کنیم، بیش از حد. 690 00:27:58,670 --> 00:28:00,630 بنابراین در این مورد در اینجا، به من اجازه رفتن به جلو و 691 00:28:00,630 --> 00:28:02,810 باز کردن یک فایل جدید. 692 00:28:02,810 --> 00:28:04,800 فایل، جدید. 693 00:28:04,800 --> 00:28:06,050 این به من می دهد یک تب در اینجا. 694 00:28:06,050 --> 00:28:09,940 اجازه بدهید من به جلو بروید و صرفه جویی در آن را به عنوان loop.c. 695 00:28:09,940 --> 00:28:11,810 اجازه بدهید من بروید و ذخیره را کلیک کنید. 696 00:28:11,810 --> 00:28:15,340 و سپس در اینجا، اجازه دهید به جلو بروید و شروع به نوشتن 697 00:28:15,340 --> 00:28:16,605 # شامل . 698 00:28:19,116 --> 00:28:20,520 اجازه بدهید من زوم شوید. 699 00:28:20,520 --> 00:28:23,410 حالا اعضای هیات تحریریه اصلی (خالی) را انجام دهد. 700 00:28:23,410 --> 00:28:30,020 من، در حال حاضر من به جلو بروید و کار را برای (اعضای هیات من = 0 اجازه دهید 701 00:28:30,020 --> 00:28:33,480 اوه، 10، من + +). 702 00:28:33,480 --> 00:28:36,620 و در حال حاضر من قصد دارم برای رفتن به جلو و چاپ ستاره که من 703 00:28:36,620 --> 00:28:37,890 انجام زودتر. 704 00:28:37,890 --> 00:28:39,390 و سپس در پایان این برنامه، ما فقط به رفتن 705 00:28:39,390 --> 00:28:41,130 چاپ یک خط جدید است، به طوری که سریع من 706 00:28:41,130 --> 00:28:42,470 همه کثیف به نظر نمی آید. 707 00:28:42,470 --> 00:28:45,170 بازگشت 0. 708 00:28:45,170 --> 00:28:47,610 به نظر می رسد نحوی صحیح است؟ 709 00:28:47,610 --> 00:28:48,040 تا کنون. 710 00:28:48,040 --> 00:28:48,560 پس اجازه دهید را ببینید. 711 00:28:48,560 --> 00:28:51,290 >> پس من زوم اجازه، به پنجره ترمینال من. 712 00:28:51,290 --> 00:28:54,570 و به من اجازه رفتن به جلو و اجرا حلقه، زیرا من به نام این 713 00:28:54,570 --> 00:28:55,690 loop.c. چیز 714 00:28:55,690 --> 00:28:56,780 بنابراین حلقه را. 715 00:28:56,780 --> 00:28:57,840 به نظر می رسد به کامپایل OK. 716 00:28:57,840 --> 00:29:00,210 حلقه اجرا، و در حال حاضر وارد کنید. 717 00:29:00,210 --> 00:29:01,820 و این به نظر می رسد به 10 ستاره چاپ شده است. 718 00:29:01,820 --> 00:29:03,780 بنابراین اجازه بدهید فقط تبدیل به حلقه در حالی که یک و ببینید چه چیزی 719 00:29:03,780 --> 00:29:05,220 نوع مسائل ما سفر. 720 00:29:05,220 --> 00:29:11,290 بنابراین به جای این کار، اجازه دهید من در اینجا و می گویند در حالی که من 721 00:29:11,290 --> 00:29:12,760 کمتر از 10 - 722 00:29:12,760 --> 00:29:14,910 به من اجازه خلاص شدن از حلقه for. 723 00:29:14,910 --> 00:29:17,170 OK، بنابراین ما باید یک زن و شوهر از مشکلات در حال حاضر. 724 00:29:17,170 --> 00:29:21,110 بنابراین این وضعیت همان است، اما من به وضوح از دست رفته 725 00:29:21,110 --> 00:29:21,680 دهی اولیه. 726 00:29:21,680 --> 00:29:23,840 من گم شده incrementation. 727 00:29:23,840 --> 00:29:28,020 پس چه باید کامپایلر به احتمال زیاد من زمانی که من سعی می کنم به 728 00:29:28,020 --> 00:29:29,170 تدوین این برنامه؟ 729 00:29:29,170 --> 00:29:29,666 آره؟ 730 00:29:29,666 --> 00:29:31,154 مخاطبان: [نامفهوم]. 731 00:29:31,154 --> 00:29:31,650 >> DAVID J. مالان: خوب. 732 00:29:31,650 --> 00:29:34,180 پس از آن رفتن به می گویند چیزی شبیه اعلام نشده - در این 733 00:29:34,180 --> 00:29:35,280 مورد، من متغیر است. 734 00:29:35,280 --> 00:29:37,980 و در واقع، استفاده از شناسه اعلام نشده من به. 735 00:29:37,980 --> 00:29:40,960 و بنابراین این در مقایسه با زبان هایی مانند PHP و 736 00:29:40,960 --> 00:29:43,120 پایتون و روبی، که برخی از شما ممکن است آشنا، 737 00:29:43,120 --> 00:29:44,820 که در آن شما فقط می توانید شروع به استفاده از متغیرهای نوع 738 00:29:44,820 --> 00:29:47,420 بهر حال و لازم نیست که به نگرانی در مورد اعلام آنها 739 00:29:47,420 --> 00:29:48,560 به صراحت همیشه. 740 00:29:48,560 --> 00:29:51,770 در C و در زبان هایی مانند جاوا و C + +، شما باید 741 00:29:51,770 --> 00:29:53,020 فوق العاده صریح و روشن است. 742 00:29:53,020 --> 00:29:55,760 و اگر شما می خواهید یک متغیر به نام من به، شما باید به من بگویید 743 00:29:55,760 --> 00:29:57,360 چه نوع متغیر آن است. 744 00:29:57,360 --> 00:29:59,360 بنابراین ما در حال رفتن به برای رفع این مشکل به شرح زیر است. 745 00:29:59,360 --> 00:30:05,510 من قصد دارم که باید به بالا برود و نوع int من به، بنابراین، 746 00:30:05,510 --> 00:30:07,860 یک متغیر به نام من به من اعلام کرده اند. 747 00:30:07,860 --> 00:30:09,180 در حال حاضر، من به قلم یک گام. 748 00:30:09,180 --> 00:30:11,340 من به وضوح آن را مقداردهی اولیه نیست، اما بیایید ببینیم در صورتی که در 749 00:30:11,340 --> 00:30:13,650 حداقل می سازد صدای جرنگ جرنگ توقف شکایت. 750 00:30:13,650 --> 00:30:15,770 بنابراین من بازسازی این برنامه به شما اجازه می دهد تا. 751 00:30:15,770 --> 00:30:16,770 >> تمامی حقوق، در حال حاضر آن را فقط شکایت 752 00:30:16,770 --> 00:30:17,870 یک دلیل متفاوت است. 753 00:30:17,870 --> 00:30:21,130 "متغیر" من "است که آماده سازی استفاده می شود که در اینجا است." همه حق است، بنابراین 754 00:30:21,130 --> 00:30:22,340 که بسیار صریح و روشن است. 755 00:30:22,340 --> 00:30:25,510 مقداردهی اولیه به حالت فقط بدان معناست که تنظیم آن را به یک مقدار مساوی است. 756 00:30:25,510 --> 00:30:30,820 و ما انجام داده ایم، به طوری که اجازه دهید من سعی برابر 0 است. 757 00:30:30,820 --> 00:30:35,030 در حال حاضر سعی کنید این دوباره و دوباره اجرا صدای جرنگ جرنگ. 758 00:30:35,030 --> 00:30:36,140 تهیه و تدوین این زمان. 759 00:30:36,140 --> 00:30:37,210 و من در مورد آن را اجرا کنید هستم. 760 00:30:37,210 --> 00:30:43,120 اما در حلقه بی نهایت بزرگ قدیمی، چرا که من انجام داده ام 761 00:30:43,120 --> 00:30:45,530 مقدار دهی اولیه من این بیماری انجام داده است، اما من انجام داده ام هرگز 762 00:30:45,530 --> 00:30:47,030 هر نوع incrementation. 763 00:30:47,030 --> 00:30:48,780 پس چگونه می تواند از incrementation من کاری انجام دهید؟ 764 00:30:48,780 --> 00:30:51,170 خب، در حالی که یک حلقه، آن را احساس می کنم رفتن به 765 00:30:51,170 --> 00:30:54,180 را به انجام آن در داخل حلقه، زیرا بسیار شبیه به اول 766 00:30:54,180 --> 00:30:56,570 نمونه هفته انجام ساختارهای حلقه مانند با 767 00:30:56,570 --> 00:30:59,040 جوراب و با شمارش خود، ما تا به حال انجام 768 00:30:59,040 --> 00:31:01,550 چیزی که در پایان، بازگشت به خط بعدی بروید. 769 00:31:01,550 --> 00:31:05,040 چه می شود اگر من به جلو و انجام این من + + در اینجا؟ 770 00:31:05,040 --> 00:31:06,030 اجازه را حتی تدوین این. 771 00:31:06,030 --> 00:31:06,890 گرفتن من در حال حاضر. 772 00:31:06,890 --> 00:31:09,704 چه اشتباه است که اینجا هستید؟ 773 00:31:09,704 --> 00:31:10,690 مخاطبان: [نامفهوم]. 774 00:31:10,690 --> 00:31:11,770 >> DAVID J. مالان: پس از آن قطعا از نوع int نیست. 775 00:31:11,770 --> 00:31:13,080 من آن را. 776 00:31:13,080 --> 00:31:15,110 و پرانتز، گیومه، مثل قبل، 777 00:31:15,110 --> 00:31:16,800 دندانه دار است کافی نیست. 778 00:31:16,800 --> 00:31:18,410 بنابراین در حال حاضر من این ساخت. 779 00:31:18,410 --> 00:31:21,780 بنابراین در حالی که من کمتر از 10، چاپ یک ستاره، 780 00:31:21,780 --> 00:31:23,220 پس از آن من نمود. 781 00:31:23,220 --> 00:31:25,680 و راه در حالی که با این نسخهها کار حلقه این است که به محض اینکه شما ضربه 782 00:31:25,680 --> 00:31:29,630 انتهای حلقه، که در این مورد مانند خط 10 به نظر می رسد، 783 00:31:29,630 --> 00:31:32,880 آن را برای رفتن به خط 6، که در آن نقطه 784 00:31:32,880 --> 00:31:34,400 شرط بررسی می شود دوباره. 785 00:31:34,400 --> 00:31:37,500 و اگر من هنوز هم کمتر از 10 است، خواهیم انجام خطوط 8 و 786 00:31:37,500 --> 00:31:41,250 پس از آن 9، پس از آن خواهیم 10، ضربه و به عقب برویم تا 6، دوباره و 787 00:31:41,250 --> 00:31:45,580 دوباره و دوباره و دوباره، تا زمانی که من کمتر از 10 است. 788 00:31:45,580 --> 00:31:47,860 پس بیایید دوباره اجرا کنند. 789 00:31:47,860 --> 00:31:48,940 >> خوب، ما وارد شده درست است. 790 00:31:48,940 --> 00:31:50,300 اجازه بدهید دوباره اجرا حلقه. 791 00:31:50,300 --> 00:31:52,620 و در حال حاضر آن را در واقع به نظر می رسد به کار کند. 792 00:31:52,620 --> 00:31:55,100 پس مثبت و منفی در اینجا؟ 793 00:31:55,100 --> 00:31:58,910 خوب، تا کنون در واقع وجود دارد کل ساف - 794 00:31:58,910 --> 00:31:59,420 خیلی ناز. 795 00:31:59,420 --> 00:32:01,870 تمامی حقوق، که بود - آه، که یک تصادف بود. 796 00:32:01,870 --> 00:32:05,200 همه حق است، بنابراین بازگشت به حلقه for اجازه دهید. 797 00:32:05,200 --> 00:32:07,530 بنابراین برای حلقه ها خوب هستند چرا که آنها فوق العاده صریح و روشن است. 798 00:32:07,530 --> 00:32:09,720 و حتی اگر آنها کمی clunky برای نوشتن، آن را 799 00:32:09,720 --> 00:32:11,500 بسیار قدرتمند است و آن را اجازه می دهد تا شما را به انجام 800 00:32:11,500 --> 00:32:12,980 چیزهای متعدد در یک بار. 801 00:32:12,980 --> 00:32:16,240 در حالی که حلقه به نظر نمی رسد مقدار زیادی از ارزش به 802 00:32:16,240 --> 00:32:18,500 با این حال، به دلیل آن را احساس می کند که ما فقط باید برای انجام کار بیشتر است. 803 00:32:18,500 --> 00:32:20,670 ما برای قرار دادن مقدار دهی اولیه در اینجا، 804 00:32:20,670 --> 00:32:23,480 به روز رسانی را در اینجا، و ما باید به خاطر داشته باشید برای انجام تمام کارهایی که. 805 00:32:23,480 --> 00:32:26,260 بنابراین ما در زمان را ببینید که حلقه در حالی که در واقع به من قرض بدهید 806 00:32:26,260 --> 00:32:29,380 خود را فقط در زمینه های مختلف، داده های مختلف 807 00:32:29,380 --> 00:32:33,900 ساختار، همه چیز مانند لیست ها و جداول مخلوط می کنیم برای به دست آوردن 808 00:32:33,900 --> 00:32:34,970 اواسط ترم. 809 00:32:34,970 --> 00:32:37,900 اما در حال حاضر، می دانیم که این نوع سوم به عنوان شناخته شده وجود دارد DO- 810 00:32:37,900 --> 00:32:38,480 در حالی که حلقه. 811 00:32:38,480 --> 00:32:39,540 و دیده ایم به طور خلاصه. 812 00:32:39,540 --> 00:32:41,830 و این ممکن است برای شما مفید باشند فوق العاده با pset 1. 813 00:32:41,830 --> 00:32:45,570 هر زمان که شما می خواهید برای انجام کاری و پس از آن بررسی کنید که آیا 814 00:32:45,570 --> 00:32:48,940 کاربر همکاری، و اگر نه، دوباره آن را انجام دهد، انجام دهند 815 00:32:48,940 --> 00:32:51,460 در حالی که حلقه خود را آشنایی به این نوع از منطق است. 816 00:32:51,460 --> 00:32:55,640 از آنجا که به ترتیب از بالا به پایین نشان می دهد، 817 00:32:55,640 --> 00:32:57,750 انجام به معنای واقعی کلمه به معنی انجام این کار. 818 00:32:57,750 --> 00:32:59,830 و این کار را دوباره و دوباره، چه ممکن است باشد؟ 819 00:32:59,830 --> 00:33:03,000 شاید به این معنی GetInt تماس تلفنی یا GetString و پس از آن 820 00:33:03,000 --> 00:33:05,830 چک کردن ارزش GetInt یا GetString و سپس فریاد 821 00:33:05,830 --> 00:33:08,260 کاربر اگر آنها را با پرسیدن آنها همکاری 822 00:33:08,260 --> 00:33:10,100 دوباره و دوباره و دوباره. 823 00:33:10,100 --> 00:33:11,730 که در آن شما می خواهید برای انجام کاری یک بار، 824 00:33:11,730 --> 00:33:13,210 سپس برخی از شرایط را بررسی کنید. 825 00:33:13,210 --> 00:33:14,110 >> بنابراین سعی کنید این اجازه. 826 00:33:14,110 --> 00:33:17,130 اجازه بدهید در واقع تغییر این در حال حاضر به یک حلقه DO-در حالی که. 827 00:33:17,130 --> 00:33:18,830 و من قصد دارم به جلو بروید و زیر را انجام دهید. 828 00:33:18,830 --> 00:33:21,830 بنابراین زیر را انجام دهید. 829 00:33:21,830 --> 00:33:26,870 اجازه دهید اعضای هیات من GetInt = ()، اما اجازه دهید ابتدا به کاربر 830 00:33:26,870 --> 00:33:27,410 چه چیزی را باید انجام دهد. 831 00:33:27,410 --> 00:33:29,050 بنابراین کمی متفاوت است این زمان. 832 00:33:29,050 --> 00:33:31,270 "بین المللی را به من بده". 833 00:33:31,270 --> 00:33:32,910 بنابراین من printf خواهم برای آن استفاده کنید. 834 00:33:32,910 --> 00:33:35,740 و در حال حاضر من قصد دارم به پایین در اینجا، و من قصد دارم برای انجام این کار 835 00:33:35,740 --> 00:33:41,520 در حالی که من، بیایید می گویند، بیشتر از - 836 00:33:41,520 --> 00:33:47,540 بیایید ببینید، من، چه می گویند، به کمتر از 0 یا من 837 00:33:47,540 --> 00:33:48,730 بیشتر از 10 است. 838 00:33:48,730 --> 00:33:51,810 به عبارت دیگر، من می خواهم یک عدد از 1 تا 9، فقط 839 00:33:51,810 --> 00:33:52,720 خودسرانه. 840 00:33:52,720 --> 00:33:55,290 بنابراین من با استفاده از ترکیب یک عبارت بولی در اینجا به 841 00:33:55,290 --> 00:33:59,930 مطمئن شوید که من در کمتر از 0 یا بیشتر از 10، که در آن 842 00:33:59,930 --> 00:34:02,530 مورد من این حلقه را دوباره در اینجا انجام دهید. 843 00:34:02,530 --> 00:34:04,400 پس باز هم، این کار را - 844 00:34:04,400 --> 00:34:08,480 در حالی که من کمتر از 0 یا من بیشتر از 10 است. 845 00:34:08,480 --> 00:34:11,440 >> بنابراین در حال حاضر پیش بروید و این کار زمانی که ما انجام داده ایم که اجازه دهید. 846 00:34:11,440 --> 00:34:13,270 بیایید فقط کار بررسی سلامت عقل را سریع است. 847 00:34:13,270 --> 00:34:18,929 printf ("با تشکر، من٪ D"، I) است. 848 00:34:18,929 --> 00:34:21,350 بنابراین این برنامه ساده می پرسد کاربر برای بین المللی، 849 00:34:21,350 --> 00:34:24,000 اطمینان حاصل می کند آن را در برخی از محدوده 1 تا 9 فراگیر، 850 00:34:24,000 --> 00:34:26,280 و سپس با تشکر از کاربر با یادآوری آنها را به آنچه که آنها فقط 851 00:34:26,280 --> 00:34:27,940 تایپ، فقط به عنوان یک بررسی سلامت عقل کوچک است. 852 00:34:27,940 --> 00:34:30,659 اما اجازه دهید ببینیم که اگر این کار را به عنوان در نظر گرفته شده است. 853 00:34:30,659 --> 00:34:34,533 بگذار سر به من در اینجا و آن ها را دوباره اجرا را حلقه. 854 00:34:34,533 --> 00:34:35,350 سلام. 855 00:34:35,350 --> 00:34:38,600 "استفاده از شناسه اعلام نشده" من "است. عجیب است. 856 00:34:38,600 --> 00:34:41,509 من فکر می کنم ما حل شده است. 857 00:34:45,489 --> 00:34:47,560 علامت اما کد های مختلف است. 858 00:34:47,560 --> 00:34:47,899 آره؟ 859 00:34:47,899 --> 00:34:50,191 مخاطبان: [نامفهوم] در داخل این دو، ما را به 860 00:34:50,191 --> 00:34:52,639 [نامفهوم]. 861 00:34:52,639 --> 00:34:53,260 >> DAVID J. مالان: دقیقا. 862 00:34:53,260 --> 00:34:55,989 بنابراین این در واقع ما را به یک موضوع شناخته شده به عنوان دامنه. 863 00:34:55,989 --> 00:34:59,350 به نظر می رسد که C، دوباره، آن را واقعا شما را به معنای واقعی کلمه است. 864 00:34:59,350 --> 00:35:02,970 و اگر شما چیزی شبیه به این که در آن از نوع int به شما اعلام 865 00:35:02,970 --> 00:35:06,120 و پس از آن اختصاص برخی از ارزش، اما شما که در داخل 866 00:35:06,120 --> 00:35:09,840 جفت آکولاد، چه C می کند آن است که فرض بر این است که شما 867 00:35:09,840 --> 00:35:14,800 فقط کسانی که بیت های 32 که من در داخل وجود داشته باشد شناخته شده است می خواهم 868 00:35:14,800 --> 00:35:18,200 زمینه از کسانی که از آکولاد، در چارچوب خطوط 869 00:35:18,200 --> 00:35:22,420 6 تا 9. بنابراین من اعلام شده است، و به آن اختصاص می 870 00:35:22,420 --> 00:35:26,530 ارزش در خط 8 است، اما به محض این که شما را در خارج از 871 00:35:26,530 --> 00:35:30,270 خط 9 زیر بریس فرفری، من دیگر در 872 00:35:30,270 --> 00:35:31,910 دامنه، پس به صحبت می کنند. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. این دیگر در چهار چوب درست است. 874 00:35:35,030 --> 00:35:37,940 بنابراین در حال حاضر وجود ندارد من، آن را به عنوان هر چند که ما تا به حال حتی نمی 875 00:35:37,940 --> 00:35:38,770 اعلام آن را در همه. 876 00:35:38,770 --> 00:35:41,520 >> پس چه راه حل و سپس برای چیزی شبیه به این، اگر 877 00:35:41,520 --> 00:35:44,300 دلیل آن این است که من در داخل آکولاد اعلام شده است، که 878 00:35:44,300 --> 00:35:45,120 ظاهرا بد است؟ 879 00:35:45,120 --> 00:35:45,410 در اینجا؟ 880 00:35:45,410 --> 00:35:46,820 مخاطبان: [نامفهوم]. 881 00:35:46,820 --> 00:35:47,150 DAVID J. مالان: آره. 882 00:35:47,150 --> 00:35:48,710 بنابراین ما می توانیم آن را در خارج مقداردهی اولیه. 883 00:35:48,710 --> 00:35:53,530 پس جلو بروید و حذف قطعات اعلامیه به موجب آن اجازه 884 00:35:53,530 --> 00:35:55,820 نوع را مشخص کنید، و اجازه دهید آن را انجام دهد من در اینجا. 885 00:35:55,820 --> 00:36:00,220 بنابراین در خط 5، آن را در حال حاضر می گوید: "بین المللی را به من بده." آن من تماس بگیرید. 886 00:36:00,220 --> 00:36:03,400 توجه کنید که در خط 9، من نمی خواهم به انجام این کار، چون من 887 00:36:03,400 --> 00:36:04,830 در حال حاضر 32 بیت داشته باشد. 888 00:36:04,830 --> 00:36:06,140 من نمی خواهم کامپیوتر بخواهید 889 00:36:06,140 --> 00:36:07,630 مختلف 32 بیت. 890 00:36:07,630 --> 00:36:09,850 من می خواهم به استفاده از آن 32 همان بیت. 891 00:36:09,850 --> 00:36:13,190 و در حال حاضر چون من در خط 5 اعلام شده، باز هم حلال است 892 00:36:13,190 --> 00:36:16,550 برای استفاده از آن در خط 11 و خط 12. 893 00:36:16,550 --> 00:36:19,310 >> پس اجازه دهید من سعی کنید به کامپایل مجدد و ببینید 894 00:36:19,310 --> 00:36:20,490 اگر صدای جرنگ جرنگ را متوقف می کند فریاد. 895 00:36:20,490 --> 00:36:22,380 ایجاد حلقه. 896 00:36:22,380 --> 00:36:25,470 بنابراین در حال حاضر آن است که "اعلامیه ضمنی عملکرد 897 00:36:25,470 --> 00:36:29,880 GetInt 'نامعتبر است در C99. "چیست؟ 898 00:36:29,880 --> 00:36:30,400 آره؟ 899 00:36:30,400 --> 00:36:32,330 مخاطبان: [نامفهوم]. 900 00:36:32,330 --> 00:36:32,690 DAVID J. مالان: آره. 901 00:36:32,690 --> 00:36:35,520 بنابراین در حال حاضر که من در واقع با استفاده از GetInt، این چیزی نیست 902 00:36:35,520 --> 00:36:38,190 که فقط همراه با C. این می آید از CS50. 903 00:36:38,190 --> 00:36:39,890 بنابراین ما نیاز داریم این است. 904 00:36:39,890 --> 00:36:41,450 و به من اجازه برگشت به پایین سریع 905 00:36:41,450 --> 00:36:43,500 در اینجا و آن ها را دوباره اجرا کند. 906 00:36:43,500 --> 00:36:44,160 خوب، در نهایت. 907 00:36:44,160 --> 00:36:46,270 حالا ما به حل و فصل آن و خطا است. 908 00:36:46,270 --> 00:36:48,930 اجازه بدهید من در حال حاضر اجرا حلقه و ببینید که چه اتفاقی می افتد. 909 00:36:48,930 --> 00:36:51,740 "بین المللی را به من بده." من آن را 11 به من بدهید. 910 00:36:51,740 --> 00:36:53,100 من آن را به -1 می دهد. 911 00:36:53,100 --> 00:36:54,470 من آن را صنایع غذایی به من بدهید. 912 00:36:54,470 --> 00:36:56,080 من به 5 می دهد. 913 00:36:56,080 --> 00:36:57,450 و در حال حاضر آن را در واقع کار می کند. 914 00:36:57,450 --> 00:36:59,410 اما سریع به یک دلیل اینجا تغییر کرده است. 915 00:36:59,410 --> 00:37:02,800 چرا آن را می گویند سعی مجدد یکی از این زمان، اما به من بدهد 916 00:37:02,800 --> 00:37:03,920 INT سه بار دیگر؟ 917 00:37:03,920 --> 00:37:05,500 چرا که رفتار متفاوت است؟ 918 00:37:05,500 --> 00:37:06,980 مخاطب: به یک رشته است. 919 00:37:06,980 --> 00:37:07,830 DAVID J. مالان: ببخشید؟ 920 00:37:07,830 --> 00:37:08,570 مخاطب: شما به یک رشته است. 921 00:37:08,570 --> 00:37:08,990 DAVID J. مالان: آره. 922 00:37:08,990 --> 00:37:11,450 بنابراین ما به این رشته در این تلاش سوم، 923 00:37:11,450 --> 00:37:12,490 وقتی که من تایپ صنایع غذایی 924 00:37:12,490 --> 00:37:13,200 FOO یک رشته است. 925 00:37:13,200 --> 00:37:14,340 این بدیهی است که بین المللی نیست. 926 00:37:14,340 --> 00:37:17,500 و راه که CS50 اجرا کرده است GetInt است که ما 927 00:37:17,500 --> 00:37:20,330 چک کنید اگر چیزی کمتر از 0 یا بیشتر از 10 928 00:37:20,330 --> 00:37:22,260 برای شما، چرا که ما چگونه در پیشبرد دانم چه نوع 929 00:37:22,260 --> 00:37:23,130 INT شما می خواهید؟ 930 00:37:23,130 --> 00:37:25,880 اما ما با حداقل می تواند برای شما بررسی کنید، آیا کاربر در حداقل 931 00:37:25,880 --> 00:37:26,730 یک نوع عدد صحیح؟ 932 00:37:26,730 --> 00:37:30,500 و اگر نه، ما را در کاربر با تایپ کردن داد "سعی مجدد" در 933 00:37:30,500 --> 00:37:31,440 صفحه نمایش. 934 00:37:31,440 --> 00:37:34,210 >> بنابراین در حال حاضر ما برنامه ای است که حلقه. باشه. 935 00:37:34,210 --> 00:37:37,070 در حال حاضر، کدام یک از این نوع ساختار بهتر است؟ 936 00:37:37,070 --> 00:37:39,060 پس این است که در آن همه چیز شروع به کمی کثیف، 937 00:37:39,060 --> 00:37:42,360 واقعیت این است که شما باید به خاطر داشته باشید یک متغیر را اعلام تا در اینجا 938 00:37:42,360 --> 00:37:44,630 اگر شما می خواهید به استفاده از آن را در داخل برخی از 939 00:37:44,630 --> 00:37:46,460 آکولاد و خارج. 940 00:37:46,460 --> 00:37:48,490 اما حتی اگر این به نظر می رسد کمی مرموز در ابتدا 941 00:37:48,490 --> 00:37:50,750 نگاه، فقط دوباره، به یاد داشته باشید منطق ساده است. 942 00:37:50,750 --> 00:37:54,630 به منظور استفاده از هر چیزی در C، که آیا آن را در یک تابع و یا 943 00:37:54,630 --> 00:37:57,680 آن را در یک متغیر، شما باید به آن است، اگر آن را در یک تابع 944 00:37:57,680 --> 00:37:59,770 در برخی از کتابخانه، و یا شما نیاز به آن را اعلام کرد. 945 00:37:59,770 --> 00:38:02,405 اما در حال حاضر شما نیاز دارید که به فکر اضافی از این واقعیت است که 946 00:38:02,405 --> 00:38:04,940 شما آن را اعلام در محدوده راست است. 947 00:38:04,940 --> 00:38:08,150 شما آن را با قرار دادن بیش از حد محکم در داخل پرانتز. 948 00:38:08,150 --> 00:38:09,410 >> پس اجازه دهید من در واقع عقب. 949 00:38:09,410 --> 00:38:12,660 اگر ما به عنوان مثال به ما از پیش از آن، و من به 950 00:38:12,660 --> 00:38:19,245 برگشت به اعضای هیات، اعضای هیات من = 0؛ من <10؛ + +، و من 951 00:38:19,245 --> 00:38:26,370 انجام ستاره printf، مثل این، و بعد از آن پرانتز نزدیک، و در حال حاضر 952 00:38:26,370 --> 00:38:30,410 printf من در حال حاضر - 953 00:38:30,410 --> 00:38:33,500 با توجه به همین منطق، چه اتفاقی خواهد افتاد وقتی که من سعی می کنم به 954 00:38:33,500 --> 00:38:35,500 تدوین این برنامه؟ 955 00:38:35,500 --> 00:38:36,790 مخاطبان: شناسه نامعتبر است. 956 00:38:36,790 --> 00:38:38,560 DAVID J. مالان: پس از آن یکی دیگر از شناسه نامعتبر، 957 00:38:38,560 --> 00:38:39,470 شناسه اعلام نشده است. 958 00:38:39,470 --> 00:38:41,810 در حال حاضر، به دلیل کمی متفاوت است. 959 00:38:41,810 --> 00:38:44,370 بدیهی است که هیچ فرفری پرانتز در اینجا وجود دارد، اما همان 960 00:38:44,370 --> 00:38:46,790 ایده، داستان همان دامنه صدق می کند. 961 00:38:46,790 --> 00:38:50,340 اگر شما یک متغیر مثل من در داخل اعلام کرد 962 00:38:50,340 --> 00:38:53,960 حلقه for، حتی اگر شما به صراحت نوشته نشده فرفری 963 00:38:53,960 --> 00:38:56,980 پرانتز، از آنها فکر می کنم ذهنی که هنوز وجود دارد، که در آن 964 00:38:56,980 --> 00:39:00,310 من تنها در داخل معتبر از حلقه for. 965 00:39:00,310 --> 00:39:03,080 این معتبر نیست هنگامی که شما به خط بعدی، که در 966 00:39:03,080 --> 00:39:05,090 این پرونده در حال حاضر 10. 967 00:39:05,090 --> 00:39:09,060 پس فقط چند مسائل مربوط به دامنه و مانند. 968 00:39:09,060 --> 00:39:12,620 همه حق است، هر گونه سؤال؟ 969 00:39:12,620 --> 00:39:15,310 >> تمامی حقوق، به طوری که این نوع از برنامه های کوچک و بی اهمیت است، 970 00:39:15,310 --> 00:39:17,450 چاپ فقط ستاره کوچک. 971 00:39:17,450 --> 00:39:20,400 اما اجازه دهید را ببینید اگر شما به یاد داشته باشید این آهنگ در اینجا. 972 00:39:20,400 --> 00:39:22,530 این آهنگ فوق العاده آزار دهنده است بچه ها را در آواز خواندن است 973 00:39:22,530 --> 00:39:23,550 اتوبوس مدرسه و مانند آن است. 974 00:39:23,550 --> 00:39:25,990 اما آنچه خوب است در مورد آن این است که این cyclicity، 975 00:39:25,990 --> 00:39:27,910 به موجب آن، آن را "99 بطری آبجو روی دیوار، 976 00:39:27,910 --> 00:39:28,520 99 بطری آبجو. 977 00:39:28,520 --> 00:39:31,030 یکی کردن، آنرا به اطراف منتقل، 98 بطری آبجو در 978 00:39:31,030 --> 00:39:34,330 دیوار. "و سپس آهنگ تکرار از 97، سپس 96، پس از آن 979 00:39:34,330 --> 00:39:38,040 95، 94، تمام راه را به پایین تا 0، اگر شما در واقع 980 00:39:38,040 --> 00:39:38,920 دور در اتوبوس. 981 00:39:38,920 --> 00:39:41,960 بنابراین این یک برنامه خوب برای مرتب سازی پیاده سازی است، چرا که من 982 00:39:41,960 --> 00:39:43,650 خدا، اگر شما فقط می تواند این کار را با چند اجرای 983 00:39:43,650 --> 00:39:46,660 خط از کد شما می توانید تف تمامی متن به این 984 00:39:46,660 --> 00:39:48,240 آهنگ بسیار سریع. 985 00:39:48,240 --> 00:39:50,420 اما در طول راه، ما می توانیم شروع به در حال حاضر اذیت جدا 986 00:39:50,420 --> 00:39:52,460 از این ساختارهای حلقه اساسی و هم اکنون نیز 987 00:39:52,460 --> 00:39:55,830 معرفی توابع است که ما خودمان را می نویسم، آن را به ارزش 988 00:39:55,830 --> 00:39:57,020 که ما به اطراف منتقل می کند. 989 00:39:57,020 --> 00:39:58,910 اما در ابتدا، چرا ما نمی جلو بروید و ما پنج دقیقه را 990 00:39:58,910 --> 00:39:59,320 شکستن در اینجا؟ 991 00:39:59,320 --> 00:40:01,480 و هنگامی که ما به عقب بر گردیم، ما به آواز خواندن در این آهنگ. 992 00:40:05,680 --> 00:40:08,760 >> همه حق است، بنابراین ما در حال بازگشت است. 993 00:40:08,760 --> 00:40:11,850 و وقتی که من می گویند ما در حال حاضر به خواندن این ترانه، منظورم 994 00:40:11,850 --> 00:40:13,250 برنامه نویسی، و نه شفاهی. 995 00:40:13,250 --> 00:40:19,370 بنابراین در اینجا ما باید beer1.c است، که یکی از اجرای این 996 00:40:19,370 --> 00:40:20,580 خاص آهنگ. 997 00:40:20,580 --> 00:40:23,110 و تنها به روشن، برای کسانی که ناآشنا با آنچه 998 00:40:23,110 --> 00:40:24,460 این چیزی که به نظر می رسد مانند، بگذار بروم پیش 999 00:40:24,460 --> 00:40:27,070 و ایجاد beer1 را وارد کنید. 1000 00:40:27,070 --> 00:40:30,400 در حال حاضر beer1 اجرا به من اجازه بده و چه خواهیم دید - چگونه بسیاری از بطری 1001 00:40:30,400 --> 00:40:31,140 آبجو وجود خواهد داشت؟ 1002 00:40:31,140 --> 00:40:33,240 من در 99 نوع، مانند این ترانه می گوید. 1003 00:40:33,240 --> 00:40:34,040 را وارد کنید. 1004 00:40:34,040 --> 00:40:35,650 و حالا اگر ما را از طریق حرکت - 1005 00:40:35,650 --> 00:40:38,280 متأسفیم - اگر ما را از طریق تمام این حرکت، خواهیم دید که 1006 00:40:38,280 --> 00:40:41,350 این در واقع کل آهنگ آواز خواندن. 1007 00:40:44,050 --> 00:40:44,540 یک دقیقه صبر کنید. 1008 00:40:44,540 --> 00:40:46,240 نوار اسکرول من کمی messed تا. 1009 00:40:46,240 --> 00:40:47,940 اجازه دهید با استفاده از پنجره های بزرگتر. 1010 00:40:47,940 --> 00:40:53,500 بنابراین beer1، 99، وجود دارد بروید. 1011 00:40:53,500 --> 00:40:56,420 بنابراین در اینجا آهنگ کامل، بسیار سریعتر سونگ 1012 00:40:56,420 --> 00:40:58,450 کامپیوتر از آن می تواند توسط ما بوده است. 1013 00:40:58,450 --> 00:41:00,340 بنابراین، را متوجه هر چند، به ماهیت چرخشی در اینجا. 1014 00:41:00,340 --> 00:41:03,380 این گزارش می گوید 99، 99، و سپس "یکی پایین، آن را رد 1015 00:41:03,380 --> 00:41:04,740 در اطراف "، و سپس 98. 1016 00:41:04,740 --> 00:41:06,640 و در حال حاضر آن را تکرار دوباره و دوباره. 1017 00:41:06,640 --> 00:41:08,840 >> بنابراین این در واقع یک فرصت مناسب برای برخی از انواع 1018 00:41:08,840 --> 00:41:10,400 حلقه ساخت. 1019 00:41:10,400 --> 00:41:12,950 توجه کنید که من نوع برش گوشه ای در اینجا. 1020 00:41:12,950 --> 00:41:15,960 توجه داشته باشید که من گفت: "98 بطری آبجو را روی دیوار، 1021 00:41:15,960 --> 00:41:19,010 97 بطری آبجو روی دیوار، "و این بود که خیلی 1022 00:41:19,010 --> 00:41:21,640 که هنگامی که ما را به یک بطری آبجو، من لازم نیست 1023 00:41:21,640 --> 00:41:23,300 به نگرانی در مورد دستور زبان انگلیسی. 1024 00:41:23,300 --> 00:41:25,790 اما ما همچنین می توانیم این کار را با کمی اگر درست 1025 00:41:25,790 --> 00:41:26,910 شرایط، شاید. 1026 00:41:26,910 --> 00:41:30,110 اگر این عدد منحصر به فرد است، به جلو بروید و می گویند: "بطری"، 1027 00:41:30,110 --> 00:41:31,840 در غیر این صورت اگر آن جمع است، می گویند: "بطری" است. 1028 00:41:31,840 --> 00:41:34,150 اما در حال حاضر، من به طور کامل برش که گوشه. 1029 00:41:34,150 --> 00:41:35,520 پس اجازه دهید ببینیم که چه چیزی ما داریم اینجا. 1030 00:41:35,520 --> 00:41:37,150 بنابراین ما باید برخی از نظرات در بالای صفحه است. 1031 00:41:37,150 --> 00:41:39,450 من جمله این دو کتابخانه ها، به عنوان 1032 00:41:39,450 --> 00:41:41,140 ایم به طور معمول بوده است. 1033 00:41:41,140 --> 00:41:43,610 و در حال حاضر من در پایین حرکت به اولین اجازه 1034 00:41:43,610 --> 00:41:44,990 خطوط واقعی از کد. 1035 00:41:44,990 --> 00:41:47,020 خط 17 لگد کردن اصلی است. 1036 00:41:47,020 --> 00:41:50,610 خط 21 و 20 است که چگونه بسیاری از بطری های آبجو وجود دارد خواهد بود؟ 1037 00:41:50,610 --> 00:41:52,060 و پس از آن من تماس GetInt. 1038 00:41:52,060 --> 00:41:53,800 و در حال حاضر من بیت از ورود به سلامت عقل است. 1039 00:41:53,800 --> 00:41:57,030 >> بنابراین این کنوانسیون که ما در حال حاضر می خواهید شروع به اتخاذ شده است 1040 00:41:57,030 --> 00:41:59,620 بیشتر دقت بررسی ورودی کاربر. 1041 00:41:59,620 --> 00:42:01,710 گاهی اوقات شما فقط نمی خواهید دوباره آنها را بی درنگ 1042 00:42:01,710 --> 00:42:02,630 و دوباره و دوباره. 1043 00:42:02,630 --> 00:42:05,620 اگر کاربر پیچ می کند و همکاری نیست، خوب است. 1044 00:42:05,620 --> 00:42:07,430 ترک و فقط با آنها برخورد نمی. 1045 00:42:07,430 --> 00:42:08,990 و بنابراین، این چیزی است که من در اینجا انجام است. 1046 00:42:08,990 --> 00:42:12,520 اگر N کمتر از 1 است، من فقط رفتن به کاربر داد. 1047 00:42:12,520 --> 00:42:14,330 "ببخشید، که باعث می شود معنی ندارد." و سپس من قصد دارم به 1048 00:42:14,330 --> 00:42:16,650 خودسرانه 1 بازگشت. 1049 00:42:16,650 --> 00:42:18,550 پس باز هم، این است که فقط یک کنوانسیون عادت به. 1050 00:42:18,550 --> 00:42:19,850 در حال حاضر، آن را در ایمان است. 1051 00:42:19,850 --> 00:42:22,700 اما تا به حال، ما همیشه شده است بازگشت به 0، به دلیل 1052 00:42:22,700 --> 00:42:25,204 بازگشت 0 نشان دهنده چه گفته ام؟ 1053 00:42:25,204 --> 00:42:26,000 مخاطبین: با موفقیت انجام شد. 1054 00:42:26,000 --> 00:42:27,320 DAVID J. مالان: موفقیت، این همه. 1055 00:42:27,320 --> 00:42:29,740 بنابراین در حال حاضر که ما در نهایت شروع به فکر کردن در مورد 1056 00:42:29,740 --> 00:42:31,330 موفقیت غیر - 1057 00:42:31,330 --> 00:42:33,760 به عبارت دیگر، موارد گوشه ای، شرایط خطا - 1058 00:42:33,760 --> 00:42:37,520 در حال حاضر من یک منبع بی نهایت، و یا حداقل چهار میلیارد 1059 00:42:37,520 --> 00:42:39,790 همه چیز امکان پذیر است که می تواند به اشتباه در برنامه های من است. 1060 00:42:39,790 --> 00:42:42,300 و من می توانم شروع به اختصاص آنها را به اعداد فرد. 1061 00:42:42,300 --> 00:42:44,340 در حال حاضر، به طور کلی از آن کافی است فقط به بازگشت 1062 00:42:44,340 --> 00:42:45,730 چیزی به غیر از 0. 1063 00:42:45,730 --> 00:42:48,040 بنابراین ما در حال به سادگی بازگشت 1 در حال حاضر. 1064 00:42:48,040 --> 00:42:51,440 اما دلیلی برای بازگشت 1 این است که به محض اینکه شما بازگشت 1065 00:42:51,440 --> 00:42:55,110 1، حدس بزنید چه اتفاقی می افتد به بقیه از برنامه؟ 1066 00:42:55,110 --> 00:42:55,720 آن متوقف می شود. 1067 00:42:55,720 --> 00:42:56,560 همین. 1068 00:42:56,560 --> 00:42:59,150 بنابراین واقعیت این است که من از بازگشت 1 به طور موثر است. 1069 00:42:59,150 --> 00:43:02,950 مدار کوتاه به اجرای این برنامه به طوری که 1070 00:43:02,950 --> 00:43:06,780 هیچ چیز در زیر خط 27 ادامه خواهد داد اجرا. 1071 00:43:06,780 --> 00:43:09,210 به محض این که بازده های اصلی، که در آن است. 1072 00:43:09,210 --> 00:43:13,160 >> تمامی حقوق، بنابراین در صورتی که کاربر می کند همکاری و رسیدن به خط 30 1073 00:43:13,160 --> 00:43:15,680 زیرا آنها در شماره مشروع تایپ، در اینجا من است 1074 00:43:15,680 --> 00:43:16,990 اجرای این آهنگ. 1075 00:43:16,990 --> 00:43:19,050 بنابراین من برای اولین بار از چاپ یک کاراکتر خط جدید، فقط برای 1076 00:43:19,050 --> 00:43:19,880 زیبایی شناسی. 1077 00:43:19,880 --> 00:43:21,500 من در حال حاضر یک حلقه for. 1078 00:43:21,500 --> 00:43:22,930 و توجه کنید که من انجام می دهند همه چیز در یک بیت 1079 00:43:22,930 --> 00:43:23,880 از جهت های مختلف است. 1080 00:43:23,880 --> 00:43:26,210 من لازم نیست که برای انجام این کار کمتر از من لازم نیست که برای انجام این کار + +. 1081 00:43:26,210 --> 00:43:30,660 من به جای آن می توانید مقداردهی اولیه متغیر من می گویند، آن را برابر با 1082 00:43:30,660 --> 00:43:35,080 n، تعداد کاربر در تایپ، پس از آن به شرح زیر است، انجام این کار 1083 00:43:35,080 --> 00:43:39,590 زمانی که من بزرگتر از 0 است، پس من - 1084 00:43:39,590 --> 00:43:42,070 هنگامی که شما به پایان رسید یک تکرار از این حلقه است. 1085 00:43:42,070 --> 00:43:44,310 بنابراین ما می توانیم شمارش پایین با استفاده از حلقه for نیز هست. 1086 00:43:44,310 --> 00:43:47,520 در حال حاضر، این هفته خیلی زیاد است یک چیزهای در حال حاضر، با printf است. 1087 00:43:47,520 --> 00:43:51,770 بنابراین نسخه قابل چاپ "٪ ​​بطری D آبجو بر روی دیوار است." نسخه قابل چاپ "٪ ​​D 1088 00:43:51,770 --> 00:43:54,990 بطری های آبجو. "" یکی پایین، تصویب آن را در اطراف. "چاپ 1089 00:43:54,990 --> 00:43:58,880 "٪ D بطری های آبجو بر روی دیوار است." پس از آن هنوز هم D٪ است، اما 1090 00:43:58,880 --> 00:44:02,770 توجه کنید که بحث ها و منازعات را به printf در حال تغییر است. 1091 00:44:02,770 --> 00:44:05,840 بعد از کاما، من، زیرا من می خواهم بگویم 99. 1092 00:44:05,840 --> 00:44:08,590 پس از این با کاما، من، زیرا من می خواهم بگویم 99. 1093 00:44:08,590 --> 00:44:14,030 پس از این با کاما، من من - 1 است، چرا که من می خواهم بگویم 98 در 1094 00:44:14,030 --> 00:44:16,260 این تکرار اول، و غیره. 1095 00:44:16,260 --> 00:44:18,520 و در حال حاضر پایین در اینجا، من فقط برخی از سخن گفتن کمی احمقانه است. 1096 00:44:18,520 --> 00:44:22,270 و سپس بند 42، من بازگشت 0 توسط کنوانسیون، به این مفهوم است که 1097 00:44:22,270 --> 00:44:23,650 همه چیز خوب است. 1098 00:44:23,650 --> 00:44:24,490 >> پس چه می شود اگر من goofed؟ 1099 00:44:24,490 --> 00:44:26,350 چه چیزی ممکن است اشتباه معمول در اینجا باشد؟ 1100 00:44:26,350 --> 00:44:29,200 خب، چه می شود اگر من به طور تصادفی به خوبی، من نمی خواهم به دفعات مشاهده شده 1101 00:44:29,200 --> 00:44:31,640 را به 0، 0 بطری آبجو روی دیوار من می خواهم؟ 1102 00:44:31,640 --> 00:44:34,620 بنابراین من می گویم، من بزرگتر از یا برابر با 0 است. 1103 00:44:34,620 --> 00:44:38,920 رفتن به علامت است که من در حال حاضر اگر من کامپایل مجدد 1104 00:44:38,920 --> 00:44:41,173 beer1 و آن را اجرا کند؟ 1105 00:44:41,173 --> 00:44:42,120 مخاطبان: منفی. 1106 00:44:42,120 --> 00:44:43,590 DAVID J. مالان: آره، میخوای بری منفی است. 1107 00:44:43,590 --> 00:44:45,950 این خطا خارج شده توسط یک است، باور نکردنی 1108 00:44:45,950 --> 00:44:47,270 اشتباه معمول را انجام دهیم. 1109 00:44:47,270 --> 00:44:48,960 اجازه دهید در واقع بازگشت به پنجره ترمینال بروید و این کار را انجام 1110 00:44:48,960 --> 00:44:50,620 در اینجا، به طوری که ما می توانیم در یک زمان را ببینید. 1111 00:44:50,620 --> 00:44:53,280 را وارد کنید، 99 بطری آبجو. 1112 00:44:53,280 --> 00:44:56,580 نزدیک است، اما ما رفت و تا کنون کمی بیش از حد است. 1113 00:44:56,580 --> 00:45:00,500 خواند این آهنگ را بیش از حد پایین، به طوری که ما در حال حاضر به ضربه 1114 00:45:00,500 --> 00:45:01,510 عدد منفی است. 1115 00:45:01,510 --> 00:45:03,680 پس از آن نه کاملا کار می کنند. 1116 00:45:03,680 --> 00:45:06,450 >> همه حق است، بنابراین ما به راحتی می تواند حل کند که با رفتن به 1117 00:45:06,450 --> 00:45:07,650 آن را یک بار بود. 1118 00:45:07,650 --> 00:45:10,360 اما آنچه برخی از فرصت در حال حاضر برای 1119 00:45:10,360 --> 00:45:11,190 بهبود؟ 1120 00:45:11,190 --> 00:45:17,200 خوب، اجازه دهید من باز beer2.c و پایین حرکت کنند و یک 1121 00:45:17,200 --> 00:45:19,310 نگاهی به این نسخه. 1122 00:45:19,310 --> 00:45:21,370 اولین چیزی که بیرون می پرد شما را به عنوان های مختلف 1123 00:45:21,370 --> 00:45:23,715 در این نسخه در اینجا؟ 1124 00:45:23,715 --> 00:45:24,190 مخاطبان: [نامفهوم]. 1125 00:45:24,190 --> 00:45:26,510 DAVID J. مالان: آره، به طوری که نه بیشتر، چرا که آن را به رخ داده است 1126 00:45:26,510 --> 00:45:29,350 من شما می دانید چه، من درخواست کاربر برای N، و پس از آن من 1127 00:45:29,350 --> 00:45:33,580 راه من تا n برابر است، و پس از آن من هستم من در حال تغییر است، اما من هرگز 1128 00:45:33,580 --> 00:45:34,590 لمس کردن N دوباره. 1129 00:45:34,590 --> 00:45:37,390 پس چی بود نقطه شما اختصاص یکی دیگر از 32 1130 00:45:37,390 --> 00:45:45,210 بیت به نام من به طوری که من می تواند یک متغیر متفاوت داشته باشند؟ 1131 00:45:45,210 --> 00:45:47,960 بنابراین در این مورد، من مرتب کردن بر اساس به رسمیت شناخته شده است که غیر ضروری 1132 00:45:47,960 --> 00:45:49,190 قابلیت طراحی. 1133 00:45:49,190 --> 00:45:52,730 و من در حال حاضر رفتن به می گویند در حالی که N است بیشتر از 0 1134 00:45:52,730 --> 00:45:56,180 جلو و چاپ آهنگ، عبور N به printf به عنوان 1135 00:45:56,180 --> 00:46:00,210 آرگومان دوم و n - 1 را به عنوان آرگومان دوم به پایین در اینجا. 1136 00:46:00,210 --> 00:46:02,930 و سپس در هر تکرار از این حلقه، به جلو بروید و فقط 1137 00:46:02,930 --> 00:46:05,080 واحد کم N خود. 1138 00:46:05,080 --> 00:46:06,960 در حال حاضر، عملکرد، این برنامه 1139 00:46:06,960 --> 00:46:08,010 رفتن به یکسان است. 1140 00:46:08,010 --> 00:46:10,730 اگر من در 99 نوع، N شروع می شود در 99. 1141 00:46:10,730 --> 00:46:12,890 من کاهش، کاهش، کاهش، کاهش. 1142 00:46:12,890 --> 00:46:15,875 من قصد دارم به تمام راه را به پایین یک بطری آبجو 1143 00:46:15,875 --> 00:46:16,740 دیوار، یک بطری آبجو به من بدهید. 1144 00:46:16,740 --> 00:46:18,020 یکی پایین، تصویب آن را در اطراف. 1145 00:46:18,020 --> 00:46:21,480 0 بطری آبجو بر روی دیوار است. "در پایان، چون من 1146 00:46:21,480 --> 00:46:23,200 این وضعیت را درست دریافت کنید. 1147 00:46:23,200 --> 00:46:24,280 بزرگتر از 0 بود. 1148 00:46:24,280 --> 00:46:26,220 من این اشتباه را ندارد. 1149 00:46:26,220 --> 00:46:28,470 >> بنابراین که بهتر است نسخه یک و یا نوع دو است؟ 1150 00:46:31,380 --> 00:46:33,480 بنابراین من یک دسته از زمزمه برای دو نفر شنیده می شود. 1151 00:46:33,480 --> 00:46:34,730 2 چرا؟ 1152 00:46:37,210 --> 00:46:38,225 که چیست؟ 1153 00:46:38,225 --> 00:46:39,215 مخاطبان: [نامفهوم]. 1154 00:46:39,215 --> 00:46:40,070 DAVID J. مالان: آه، درست است. 1155 00:46:40,070 --> 00:46:42,870 پس آن را نمی خواهد به زیر 0، اما به یاد داشته باشید در نسخه اول، 1156 00:46:42,870 --> 00:46:45,870 نسخه اصلی درست زیر 0 یا نیست. 1157 00:46:45,870 --> 00:46:48,340 به طوری که این نسخه درست به یاد داشته باشید. 1158 00:46:48,340 --> 00:46:51,630 پس اجازه دهید حداقل مقایسه دو نسخه صحیح است. 1159 00:46:51,630 --> 00:46:53,300 استدلال به نفع از نسخه 1160 00:46:53,300 --> 00:46:55,146 دو تای، MMM، بهتر است؟ 1161 00:46:55,146 --> 00:46:55,642 آره؟ 1162 00:46:55,642 --> 00:46:57,630 مخاطبین: با استفاده از فضای کمتر. 1163 00:46:57,630 --> 00:46:59,530 DAVID J. مالان: خوب، پس آن را با استفاده از فضای کمتر، درست است؟ 1164 00:46:59,530 --> 00:47:02,900 در حالی که یک نسخه با استفاده از 32 بیت برای N، و پس از آن دیگر 1165 00:47:02,900 --> 00:47:07,680 32 بیت برای من. 1166 00:47:07,680 --> 00:47:10,060 نسخه تنها دو با استفاده از 32 بیت برای N، به طوری که 1167 00:47:10,060 --> 00:47:11,700 به نظر می رسد به همراه. 1168 00:47:11,700 --> 00:47:12,950 سایر اندیشههای؟ 1169 00:47:18,070 --> 00:47:21,520 آیا کسی که می خواهید را به نفع یکی از استدلال می کنند؟ 1170 00:47:21,520 --> 00:47:22,070 آره؟ 1171 00:47:22,070 --> 00:47:25,240 مخاطب: شما مجبور به استفاده از خط اضافی از کد N -. 1172 00:47:25,240 --> 00:47:26,090 >> DAVID J. مالان: خوب، مطمئن شوید. 1173 00:47:26,090 --> 00:47:26,960 به طوری که عادلانه باشد. 1174 00:47:26,960 --> 00:47:29,040 بنابراین این تنها، حداقل برای من - 1175 00:47:29,040 --> 00:47:31,940 منظورم این است، این در واقع احساس مسیه کوچک، این واقعیت است که 1176 00:47:31,940 --> 00:47:35,120 من نمی توانم مرتب سازی بر اساس محفظهای قرار دادن تمام منطق من در یک 1177 00:47:35,120 --> 00:47:38,030 خط، زیبا، حلقه for، حلقه for می تواند. 1178 00:47:38,030 --> 00:47:40,240 در اینجا، من به نوعی به رویه در این N - 1179 00:47:40,240 --> 00:47:41,120 در پایان از حلقه، به دلیل 1180 00:47:41,120 --> 00:47:42,550 منطقا لازم است. 1181 00:47:42,550 --> 00:47:45,190 اما این نوع از پاک من راه اشتباه، فقط به خاطر آن 1182 00:47:45,190 --> 00:47:48,260 جدا از منطق تا اینجا به نظر می رسد، حتی اگر، 1183 00:47:48,260 --> 00:47:49,430 باز هم، این برنامه ضروری است. 1184 00:47:49,430 --> 00:47:50,990 سایر اندیشههای؟ 1185 00:47:50,990 --> 00:47:51,490 آره؟ 1186 00:47:51,490 --> 00:47:52,740 مخاطبان: [نامفهوم]. 1187 00:47:57,990 --> 00:47:58,350 >> DAVID J. مالان: آره. 1188 00:47:58,350 --> 00:48:00,730 پس چه می شود اگر شما به جای این، در پایان این آهنگ، می خواستم به 1189 00:48:00,730 --> 00:48:02,950 نسخه قابل چاپ کردن دوباره به نام از این آهنگ؟ 1190 00:48:02,950 --> 00:48:05,660 مانند "برای بازی 99 بطری آبجو"، و یا چیزی 1191 00:48:05,660 --> 00:48:06,690 احمقانه است که می خواهم؟ 1192 00:48:06,690 --> 00:48:09,750 اما نکته این است که شما می خواستم دسترسی به مقدار اصلی است. 1193 00:48:09,750 --> 00:48:13,180 این واقعیت که شما جهش یا تغییر N در هر 1194 00:48:13,180 --> 00:48:16,330 تکرار و به همین دلیل، ارزش اصلی خود را نابود کرده است 1195 00:48:16,330 --> 00:48:18,650 معنی است که شما فقط می توانید در پایان انجام نیست. 1196 00:48:18,650 --> 00:48:20,660 در حال حاضر، مسلما، ما به وضوح نمی خواهید به انجام 1197 00:48:20,660 --> 00:48:21,450 که در این برنامه است. 1198 00:48:21,450 --> 00:48:22,350 پس چه کسی اهمیت میدهد؟ 1199 00:48:22,350 --> 00:48:23,630 اما این یک نکته بسیار معتبر است. 1200 00:48:23,630 --> 00:48:25,520 و صادقانه بگویم، واقعا وجود دارد هیچ کس 1201 00:48:25,520 --> 00:48:26,630 حق در اینجا پاسخ دهید. 1202 00:48:26,630 --> 00:48:28,740 آنها هر دو به همان اندازه درست است. 1203 00:48:28,740 --> 00:48:30,210 من می توانم در هر صورت متقاعد شده است. 1204 00:48:30,210 --> 00:48:33,310 می خواهم بگویم که به طور کلی، این یک اصل خوب اگر شما 1205 00:48:33,310 --> 00:48:36,030 کاربر را برای برخی از ارزش خواسته و شما را در یک متغیر ذخیره می شود 1206 00:48:36,030 --> 00:48:38,730 مانند ازت، فقط مرتب کردن بر اساس در اصل، آن را احتمالا خوب 1207 00:48:38,730 --> 00:48:40,160 برای نگه داشتن که در اطراف. 1208 00:48:40,160 --> 00:48:43,400 و هر گونه اطلاعات شما می خواهید به جهش دوباره و دوباره، فقط 1209 00:48:43,400 --> 00:48:46,030 خودتان یک کپی از آن متغیر را، فقط این کار است که شما 1210 00:48:46,030 --> 00:48:47,830 دسترسی به اصل. 1211 00:48:47,830 --> 00:48:51,040 شما در حال گذراندن 32 ادامه بیت است، اما واقعیت این است این 1212 00:48:51,040 --> 00:48:53,490 کامپیوتر است، می خواهم، دو گیگابایت RAM این روزها، 1213 00:48:53,490 --> 00:48:55,310 و ما در حال quibbling بیش از 32 بیت؟ 1214 00:48:55,310 --> 00:48:56,320 واقعا چنین معامله بزرگ نیست. 1215 00:48:56,320 --> 00:48:58,550 و حتی در این دستگاه با نیمی از یک فرفره یا 1216 00:48:58,550 --> 00:49:01,700 گیگابایت RAM، 32 بیت در مقابل 64 بیت، 1217 00:49:01,700 --> 00:49:02,920 چنین معامله بزرگ نیست. 1218 00:49:02,920 --> 00:49:05,890 بدیهی است امروز، آن را به رفتن به راه غرق اندازه 1219 00:49:05,890 --> 00:49:08,400 از برنامه های خود را، که به چند صد 1220 00:49:08,400 --> 00:49:10,890 کیلوبایت، اگر نه چند مگابایت، این روز است. 1221 00:49:10,890 --> 00:49:13,550 >> بنابراین نگرانی های معقول، هیچ کس جواب درست است. 1222 00:49:13,550 --> 00:49:15,490 اما حداقل کسانی هستند که افکار است که باید شروع به 1223 00:49:15,490 --> 00:49:16,790 رفتن را از طریق ذهن خود را؟ 1224 00:49:16,790 --> 00:49:19,600 از آنجا که در pset 0، حتی اگر ما واقعا تنها انتظار می رود 1225 00:49:19,600 --> 00:49:22,340 صحت، و یا حداقل به سوأل اشکالات مختلف است که 1226 00:49:22,340 --> 00:49:25,440 شما ممکن است مواجه می شوند، همانطور که ما حرکت رو به جلو، طراحی شده است 1227 00:49:25,440 --> 00:49:27,910 رفتن به یکی دیگر از جنبه های کلیدی، هر دو به نوشتن کد 1228 00:49:27,910 --> 00:49:29,770 و همچنین ما را ارزیابی کد. 1229 00:49:29,770 --> 00:49:32,310 و بنابراین، حداقل به من بدهید به چیزهایی مثل این. 1230 00:49:32,310 --> 00:49:35,590 و فقط به خاطر اینکه با این نسخهها کار چیزی به این معنا نیست که آن خوب است، 1231 00:49:35,590 --> 00:49:37,130 به این معنا نیست که آن را به خوبی طراحی شده است. 1232 00:49:37,130 --> 00:49:38,820 و این یکی از چیزهایی که همراهان آموزش و 1233 00:49:38,820 --> 00:49:41,990 مجموعه مسائل به ما کمک خواهد کرد که کسی را دست انداختن بخشی در طول زمان است. 1234 00:49:41,990 --> 00:49:45,020 >> خب، چه در مورد، اجازه دهید می گویند، این نسخه را در اینجا؟ 1235 00:49:45,020 --> 00:49:49,090 به من اجازه انجام چیزی که کمی سکسی در اینجا در یک لحظه. 1236 00:49:49,090 --> 00:49:50,740 در ابتدا من از شر این اجازه. 1237 00:49:50,740 --> 00:49:54,120 و در حال حاضر حل این مشکل دستوری کنیم. 1238 00:49:54,120 --> 00:49:58,780 بنابراین در این نسخه، من می خواهم به رفع گرامر به طوری که، 1239 00:49:58,780 --> 00:50:02,460 نه فقط از پرانتز ها، مانند "بطری" 1240 00:50:02,460 --> 00:50:03,360 یا "بطری" - 1241 00:50:03,360 --> 00:50:04,900 من نمی خواهم که گوشه ای برای کاهش - 1242 00:50:04,900 --> 00:50:08,350 من همچنین می خواهم به صورت پویا نسخه قابل چاپ از کلمه "بطری" 1243 00:50:08,350 --> 00:50:12,820 یا "بطری"، در نتیجه با استفاده از متغیرهایی این٪ s را امروز. 1244 00:50:12,820 --> 00:50:16,550 بنابراین من نیاز به مشروط بررسی کنید چه مقدار از من است. 1245 00:50:16,550 --> 00:50:19,590 و اگر آن را 1، من می خواهم برای گفتن "بطری"، و اگر هر چیزی آن 1246 00:50:19,590 --> 00:50:23,115 دیگر، من می خواهم بگویم "بطری". بنابراین سعی کنید برای انجام این کار اجازه دهید. 1247 00:50:23,115 --> 00:50:31,340 بنابراین اگر من == 1، و سپس اجازه دهید من بروم جلو و اعلام - 1248 00:50:31,340 --> 00:50:34,080 من نیاز به یک رشته، بنابراین من می توانم S1 رشته، زیرا این 1249 00:50:34,080 --> 00:50:36,070 رشته اول من در مورد مراقبت از حق. 1250 00:50:36,070 --> 00:50:40,980 من قصد دارم برای گفتن "بطری" است. و سپس، اجازه دهید را ببینید، رشته 1251 00:50:40,980 --> 00:50:43,110 S2 - و من توضیح می دهند که من قصد دارم در یک لحظه - 1252 00:50:43,110 --> 00:50:47,650 "بطری". به طوری که، در این ترانه، ما باید قادر به یاد 1253 00:50:47,650 --> 00:50:50,580 نسخه قابل چاپ همه چیز، دو واژه مختلف به طور بالقوه. 1254 00:50:50,580 --> 00:50:53,590 بنابراین اگر ما به عقب نگاه، توجه کنید که هنگامی که ما برای به دست آوردن 1255 00:50:53,590 --> 00:50:56,440 این مثال در اینجا، "دو بطری آبجو روی دیوار، 1256 00:50:56,440 --> 00:50:59,490 دو بطری آبجو، یکی پایین، عبور در اطراف "، من می خواهم 1257 00:50:59,490 --> 00:51:02,380 این خط چهارم به حال "می گویند یک بطری آبجو به در 1258 00:51:02,380 --> 00:51:04,900 دیوار "بنابراین من نیاز به تصمیم گیری، آیا من می خواهم برای گفتن" بطری "و یا 1259 00:51:04,900 --> 00:51:07,780 "بطری"؟ بنابراین من قصد دارم به خودسرانه می گویند، همه حق است، 1260 00:51:07,780 --> 00:51:10,530 من قصد دارم تا هم اکنون یک متغیر به نام S1، رشته 1261 00:51:10,530 --> 00:51:13,830 یک، که رفتن به وصل در اینجا و همچنین در اینجا، 1262 00:51:13,830 --> 00:51:16,070 چرا که این واژه ها همیشه یکسان است، فقط به دلیل 1263 00:51:16,070 --> 00:51:17,290 طبیعت از این آهنگ. 1264 00:51:17,290 --> 00:51:20,100 و من قصد دارم به تماس S2 هر کلمه ای که می خواهید به 1265 00:51:20,100 --> 00:51:21,560 در نهایت به نظر می رسد در اینجا. 1266 00:51:21,560 --> 00:51:25,530 در حال حاضر، به معنای واقعی کلمه، 99 بار از 100، آن را خواهد 1267 00:51:25,530 --> 00:51:28,820 در هر دو این موارد، چون 3 جمع، 2 1268 00:51:28,820 --> 00:51:30,200 جمع، 4 جمع است. 1269 00:51:30,200 --> 00:51:34,640 اما در این مورد گوشه ای، جایی که ما به 2 و سپس 1، یا 1270 00:51:34,640 --> 00:51:37,250 حتی 1 و پس از آن 0، من نیاز به این منطق. 1271 00:51:37,250 --> 00:51:41,020 بنابراین من مجبور به صرف برخی از زمان در کد من که حق است. 1272 00:51:41,020 --> 00:51:47,530 بنابراین اگر من این کار را، اگر من == 1، و سپس راه S1 برابر "بطری" 1273 00:51:47,530 --> 00:51:52,010 و S2 برابر با "بطری"، چرا که این کار برای 1 1274 00:51:52,010 --> 00:51:56,340 بطری، و این برای 0 بطری باشد. 1275 00:51:56,340 --> 00:51:58,250 و این در اینجا، چه چیزی را نشان می دهد؟ 1276 00:51:58,250 --> 00:51:59,780 فقط برای روشن شود. 1277 00:51:59,780 --> 00:52:00,620 این فقط یک نظر است. 1278 00:52:00,620 --> 00:52:03,730 بنابراین این واقعیت است که شما می توانید یک خط نظرات شما به معنی 1279 00:52:03,730 --> 00:52:06,110 می توانید کد خود را مانند این نظر است، اما یکی دیگر از شایع 1280 00:52:06,110 --> 00:52:09,050 پارادایم، بیش از حد، این است که اگر شما یک عبارت فوق العاده کوتاه است که 1281 00:52:09,050 --> 00:52:11,410 شما می خواهید خود را قرار داده و آن را فقط قابل خواندن برای قرار دادن 1282 00:52:11,410 --> 00:52:13,270 آن را درست در انتهای خط از کد، شما می توانید 1283 00:52:13,270 --> 00:52:15,230 مطلقا چیزی شبیه به این انجام دهد. 1284 00:52:15,230 --> 00:52:20,150 >> بنابراین در حال حاضر چه می شود اگر من این کار را؟ دیگری اگر من برابر است با 1. 1285 00:52:20,150 --> 00:52:21,620 بنابراین بنگ برابر است - 1286 00:52:21,620 --> 00:52:23,150 به علامت تعجب به عنوان "انفجار" شناخته شده است. 1287 00:52:23,150 --> 00:52:25,080 بنابراین بنگ = 1. 1288 00:52:25,080 --> 00:52:28,530 بنابراین اگر من برابر است با 1 نیست، چه می توانم به جای می خواهید کاری انجام دهید؟ 1289 00:52:28,530 --> 00:52:31,700 خب، اولین کلمه ای که من می خواهم به چه؟ 1290 00:52:34,620 --> 00:52:40,030 بنابراین رشته 1 باید "بطری" برای بطری های جمع، 1291 00:52:40,030 --> 00:52:42,440 و پس از آن این خواهد بود که جمع "بطری" و همچنین، در حال حاضر. 1292 00:52:42,440 --> 00:52:43,800 و خواهیم دید که در صورتی که این در واقع می شود ما را به 1293 00:52:43,800 --> 00:52:44,870 که در آن ما می خواهیم به آن بروید. 1294 00:52:44,870 --> 00:52:47,680 بنابراین در حال حاضر اگر من در پایین حرکت کنید در اینجا، توجه کنید که من متصل کردن در 1295 00:52:47,680 --> 00:52:50,170 نه تنها من، بلکه S1. 1296 00:52:50,170 --> 00:52:51,860 متصل کردن من در من و S1. 1297 00:52:51,860 --> 00:52:54,440 و سپس در اینجا، من منهای 1 است، که همان 1298 00:52:54,440 --> 00:52:55,920 قبل از آن، اما S2. 1299 00:52:55,920 --> 00:52:58,730 به عبارت دیگر، من می خواهم به تغییر کلمه انگلیسی بر اساس 1300 00:52:58,730 --> 00:52:59,930 در این منطق. 1301 00:52:59,930 --> 00:53:03,310 در حال حاضر، در حال حاضر برخی از مشکلات در این کد وجود دارد. 1302 00:53:03,310 --> 00:53:08,460 آنچه را که در حال حاضر در خارج از دروازه اینجا؟ 1303 00:53:08,460 --> 00:53:10,796 آره؟ 1304 00:53:10,796 --> 00:53:13,210 مخاطبان: [نامفهوم]. 1305 00:53:13,210 --> 00:53:13,800 >> DAVID J. مالان: دقیقا. 1306 00:53:13,800 --> 00:53:16,030 بنابراین من در حال حاضر به نقض درس حوزه. 1307 00:53:16,030 --> 00:53:19,610 بنابراین من اعلام S1 و S2، اما من آن را در داخل انجام می شود 1308 00:53:19,610 --> 00:53:22,980 آکولاد، که به معنی آره، این کد کار خواهد کرد 1309 00:53:22,980 --> 00:53:27,430 تا خط 42 است، اما به محض این که من ضربه خط 43، حدس بزنید چه هیچ 1310 00:53:27,430 --> 00:53:28,900 دیگر وجود دارد؟ 1311 00:53:28,900 --> 00:53:32,600 خب، حدس می زنم چه دیگر در محدوده - نه S1 و S2. 1312 00:53:32,600 --> 00:53:33,780 بنابراین ما باید برای حل این مشکل است. 1313 00:53:33,780 --> 00:53:36,180 بنابراین اعلامیه حذف به من اجازه بده. 1314 00:53:36,180 --> 00:53:39,320 و من به نام متغیر و ترک حذف این اینجا 1315 00:53:39,320 --> 00:53:40,120 و حذف اینجا کلیک کنید. 1316 00:53:40,120 --> 00:53:43,557 و در چه خطوط باید واقعا این چیزها را اعلام کنید؟ 1317 00:53:43,557 --> 00:53:44,960 مخاطبان: [نامفهوم]. 1318 00:53:44,960 --> 00:53:45,410 DAVID J. مالان: آره، پس احتمالا 1319 00:53:45,410 --> 00:53:46,850 حق در اینجا، 33-پذیری. 1320 00:53:46,850 --> 00:53:50,670 بنابراین S1 رشته و پس از آن رشته S2. 1321 00:53:50,670 --> 00:53:51,950 و معلوم است، من می توانم این کار را انجام دهند. 1322 00:53:51,950 --> 00:53:54,260 اگر شما اعلام دو متغیر از همان نوع، 1323 00:53:54,260 --> 00:53:57,420 شما در واقع می تواند فقط یک کاما و استفاده از انجام این کار در C. همه 1324 00:53:57,420 --> 00:53:58,970 راست است، بنابراین در حال حاضر من دو متغیر ها - 1325 00:53:58,970 --> 00:53:59,860 S1 و S2. 1326 00:53:59,860 --> 00:54:02,000 من اختصاص به آنها ارزش ها در این 1327 00:54:02,000 --> 00:54:04,210 شرایط در اینجا، و یا در اینجا. 1328 00:54:04,210 --> 00:54:06,690 و سپس من آنها را با استفاده از پایین است. 1329 00:54:06,690 --> 00:54:10,960 چقدر خوب است این در حال حاضر رفتن به محل کار؟ 1330 00:54:10,960 --> 00:54:12,740 >> خوب، آن را هنوز کمی حشره دار، اما اجازه دهید حداقل دیدن 1331 00:54:12,740 --> 00:54:13,730 تا چه حد ما رو بدست. 1332 00:54:13,730 --> 00:54:16,500 پس اجازه دهید من بروم جلو و beer3. 1333 00:54:16,500 --> 00:54:17,695 این beer3؟ 1334 00:54:17,695 --> 00:54:19,410 بله، این beer3 است. 1335 00:54:19,410 --> 00:54:21,510 و حالا من به جلو بروید و آن را اجرا beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 ما احتمالا می تواند بسیاری از آنها را به جست و خیز. 1338 00:54:25,840 --> 00:54:29,100 و پایین در اینجا، در آن نگاه کنید. 1339 00:54:29,100 --> 00:54:31,110 یک بطری آبجو به روی دیوار، یک بطری آبجو، 1340 00:54:31,110 --> 00:54:34,306 1 پایین، آن را منتقل می کند در اطراف، 0 بطری های آبجو بر روی دیوار است. " 1341 00:54:34,306 --> 00:54:37,570 اما من توجه خود را به تنها نیمی از راه حل است. 1342 00:54:37,570 --> 00:54:39,620 نوع پیچ در اینجا. 1343 00:54:39,620 --> 00:54:43,030 پس از آن به نظر می رسد که موارد گوشه ای بوجود می آیند که من برابر آنچه 1344 00:54:43,030 --> 00:54:44,030 دو مقدار؟ 1345 00:54:44,030 --> 00:54:45,020 مخاطب: 2، 1. 1346 00:54:45,020 --> 00:54:46,190 DAVID J. مالان: 2 و 1. 1347 00:54:46,190 --> 00:54:48,180 این 1 و 1. 1348 00:54:48,180 --> 00:54:51,890 این واقعا فقط این دو بند از این ترانه است. 1349 00:54:51,890 --> 00:54:53,890 پس چه می توانم به جای می خواهید کاری انجام دهید؟ 1350 00:54:53,890 --> 00:54:58,890 بنابراین به نظر می رسد گرفتار در مورد جایی که اگر من == تا 1، 1351 00:54:58,890 --> 00:55:02,240 پس از آن اولین کلمه "بطری" است، اما کلمه دوم 1352 00:55:02,240 --> 00:55:07,230 "بطری" است. اما در اینجا، من می خواهم برای تغییر این == 2. 1353 00:55:07,230 --> 00:55:08,570 و اگر این مورد است، چه چیزی من می خواهم 1354 00:55:08,570 --> 00:55:09,620 اولین کلمه می شود؟ 1355 00:55:09,620 --> 00:55:10,430 مخاطبان: "بطری". 1356 00:55:10,430 --> 00:55:12,890 DAVID J. مالان: "بطری"، که برای دو بطری. 1357 00:55:12,890 --> 00:55:14,690 و سپس این کلمه در اینجا باید - 1358 00:55:14,690 --> 00:55:15,340 مخاطبان: "بطری". 1359 00:55:15,340 --> 00:55:17,316 DAVID J. مالان: "بطری"، منحصر به فرد است. 1360 00:55:20,430 --> 00:55:25,160 >> تمامی حقوق، کوچک نمایی، در اینجا، دوباره اجرا را، 1361 00:55:25,160 --> 00:55:28,590 دوباره اجرا beer3، نوع 99 دوباره. 1362 00:55:28,590 --> 00:55:30,710 خوب، "تقسیم بندی گسل (هسته ریخته)." 1363 00:55:30,710 --> 00:55:32,780 چه من انجام داده اند اشتباه است؟ 1364 00:55:36,050 --> 00:55:38,722 مخاطب: شما ارزش ندارد [نامفهوم]. 1365 00:55:38,722 --> 00:55:40,480 DAVID J. مالان: آه، نقطه عالی. 1366 00:55:40,480 --> 00:55:43,310 همه حق است، پس چه چیزی اشتباه است که اینجا هستید؟ 1367 00:55:43,310 --> 00:55:45,450 بنابراین گسل تقسیم بندی، و ما در واقع رفتن به 1368 00:55:45,450 --> 00:55:49,020 این کاملا چند بار در آینده، به عمد. 1369 00:55:49,020 --> 00:55:51,030 اما در حال حاضر، چه این در واقع چیست؟ 1370 00:55:51,030 --> 00:55:53,620 گسل، تقسیم بندی تقریبا همیشه بدان معنی است که شما باید 1371 00:55:53,620 --> 00:55:56,760 به نوعی سعی به دسترسی به حافظه RAM در کامپیوتر شما، 1372 00:55:56,760 --> 00:56:00,600 که متعلق به شما نیست، که شما در واقع نمی پرسید 1373 00:56:00,600 --> 00:56:02,050 سیستم عامل. 1374 00:56:02,050 --> 00:56:04,440 بنابراین در این مورد، متوجه آنچه که من انجام داده ام، که 1375 00:56:04,440 --> 00:56:05,870 ناقص در منطق من. 1376 00:56:05,870 --> 00:56:09,500 S1 و S2 یک مقدار را به من اختصاص داده اگر من برابر با 1 است. 1377 00:56:09,500 --> 00:56:11,590 من نیز انجام می شود که اگر برابر 2 است. 1378 00:56:11,590 --> 00:56:13,710 اما من آن را در تعداد نامتناهی از دیگر انجام می شود 1379 00:56:13,710 --> 00:56:14,690 احتمالات - 1380 00:56:14,690 --> 00:56:17,940 به طور خاص، در 3 یا 4 یا نقطه، نقطه، نقطه، 99. 1381 00:56:17,940 --> 00:56:20,100 بنابراین یک ثابت برای این فقط می تواند اجازه بدهید می شود 1382 00:56:20,100 --> 00:56:22,190 شرایط دیگری داشته باشند. 1383 00:56:22,190 --> 00:56:26,780 و اجازه دهید من در اینجا بروید و می گویند S1 برابر - 1384 00:56:26,780 --> 00:56:28,180 آنچه که باید از آن می شود؟ 1385 00:56:28,180 --> 00:56:28,750 مخاطبان: [نامفهوم]. 1386 00:56:28,750 --> 00:56:30,460 >> DAVID J. مالان: "بطری"، چرا که در صورت مشترک، 1387 00:56:30,460 --> 00:56:32,020 فقط همین. 1388 00:56:32,020 --> 00:56:35,580 بنابراین برابر است با نقل قول، نقل قول را تمام کردن، "بطری". بنابراین برای جمع 1389 00:56:35,580 --> 00:56:41,010 بطری، و پس از آن تا اینجا، برای بطری های جمع است. 1390 00:56:41,010 --> 00:56:44,580 خوب، پس حالا به من اجازه برگشت به پنجره ترمینال من 1391 00:56:44,580 --> 00:56:47,200 کامپایل مجدد، دوباره اجرا شود. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 صدای سوت حاکی از حیرت یا تحسین. 1394 00:56:49,150 --> 00:56:50,610 و اجازه ورود به سلامت عقل را سریع انجام دهد. 1395 00:56:50,610 --> 00:56:52,400 با مشخصات فنی، ما می خواهم می خواهم به خواندن همه آنها را به مطمئن شوید که 1396 00:56:52,400 --> 00:56:53,370 آنها درست است، اما اجازه دهید نگاهی به 1397 00:56:53,370 --> 00:56:54,640 حداقل از مجرمان شناخته شده است. 1398 00:56:54,640 --> 00:56:57,370 3 بطری، 2 بطری، 2 بطری، 1 1399 00:56:57,370 --> 00:57:00,380 بطری، 1 بطری، 0 بطری. 1400 00:57:00,380 --> 00:57:03,080 ما به نظر می رسد حداقل در حال حاضر ثابت شده است. 1401 00:57:03,080 --> 00:57:06,010 اما نکته در اینجا این است که چه افتضاحی افتضاح خدا این است 1402 00:57:06,010 --> 00:57:07,470 فقط برای حل یک احمق 1403 00:57:07,470 --> 00:57:09,540 یک شخصیت جزئیات گرامری. 1404 00:57:09,540 --> 00:57:11,150 بنابراین این نوع از دلیل است که من قطع این گوشه وجود دارد 1405 00:57:11,150 --> 00:57:14,090 پیش از آن، به دلیل آن کاملا آزار دهنده است که باید به 1406 00:57:14,090 --> 00:57:15,020 نوشتن این کد از حد. 1407 00:57:15,020 --> 00:57:17,530 اما به نظر می رسد که کمی ظریف تر راه وجود دارد 1408 00:57:17,530 --> 00:57:20,110 ابراز دقیقا همان است. 1409 00:57:20,110 --> 00:57:22,040 و ما می توانیم این کار را به شرح زیر انجام دهید. 1410 00:57:22,040 --> 00:57:23,890 >> اجازه دهید این ترک من بر روی صفحه نمایش برای یک لحظه و 1411 00:57:23,890 --> 00:57:27,320 معرفی چیزی شناخته شده به عنوان یک عملگر سه تایی. 1412 00:57:27,320 --> 00:57:29,600 این نوع از یک بوش است که فقط به معنای ایجاد ما 1413 00:57:29,600 --> 00:57:31,880 زندگی جذاب کوچک، به عنوان وعده داده است. 1414 00:57:31,880 --> 00:57:33,130 و من قصد دارم برای انجام این کار به شرح زیر است. 1415 00:57:33,130 --> 00:57:35,810 یک رشته به نام S1 به من بدهید، و به من اجازه 1416 00:57:35,810 --> 00:57:37,200 اختصاص آن به شرح زیر است. 1417 00:57:37,200 --> 00:57:39,900 (من == 1)؟ 1418 00:57:39,900 --> 00:57:47,820 "بطری"، در غیر این صورت "بطری". رشته S2 می شود (من == 2)؟ 1419 00:57:47,820 --> 00:57:52,670 "بطری"، در غیر این صورت "بطری". 1420 00:57:52,670 --> 00:57:57,050 پس چه پس از آن است که در اینجا تفاوت؟ 1421 00:57:57,050 --> 00:57:59,370 این دو خط از کد، من استدلال می کنند، می تواند 1422 00:57:59,370 --> 00:58:02,200 به جای تمام این آشفته بازار است. 1423 00:58:02,200 --> 00:58:04,280 بنابراین من آن را به یک ظرف غذا، فقط به خاطر آن هم از نوع پاک من 1424 00:58:04,280 --> 00:58:05,940 راه اشتباه است که آن را به بسیاری از خطوط از کد است. 1425 00:58:05,940 --> 00:58:06,650 اشتباه نیست. 1426 00:58:06,650 --> 00:58:07,700 این طرح بد نیست. 1427 00:58:07,700 --> 00:58:10,140 مانند، این کاملا درست است و کاملا خوب است. 1428 00:58:10,140 --> 00:58:12,970 اما برنامه نویسی خسته کننده می شود اگر شما به خودتان را بیان 1429 00:58:12,970 --> 00:58:15,530 لعنت به طور خاص دوباره و دوباره و دوباره با ساده 1430 00:58:15,530 --> 00:58:16,620 سناریو این را میپسندند. 1431 00:58:16,620 --> 00:58:19,470 بنابراین C است برخی از کلید های میانبر، این را میپسندند. 1432 00:58:19,470 --> 00:58:24,270 بنابراین این اساسا گفت: اعلام یک رشته به نام S1 و 1433 00:58:24,270 --> 00:58:32,610 اختصاص آن چه این مقدار و یا این مقدار اگر من == - 1434 00:58:32,610 --> 00:58:35,290 با عرض پوزش، من باید این را به وضوح می گویند. 1435 00:58:35,290 --> 00:58:41,680 اعلام S1 متغیر، این مقدار اختصاص دهید در صورتی که این درست است. 1436 00:58:41,680 --> 00:58:44,280 در غیر این صورت، این مقدار اختصاص دهید. 1437 00:58:44,280 --> 00:58:47,220 بنابراین به عبارت دیگر، این نوع از راه یک خط 1438 00:58:47,220 --> 00:58:51,490 گفت: اگر به جز انجام یک انتساب در طول راه. 1439 00:58:51,490 --> 00:58:55,540 بنابراین اگر من 1، و سپس پیش بروید و این "بطری" تماس بگیرید. و 1440 00:58:55,540 --> 00:58:59,830 سپس این دیگری، آن را "بطری". در همین حال، S2، 1441 00:58:59,830 --> 00:59:04,060 دومین کلمه ای که ما نیاز به تعریف، اگر من برابر با 2، خواهیم 1442 00:59:04,060 --> 00:59:08,350 تنظیم S2 به "بطری". در غیر این صورت، آن مجموعه را به "بطری". و چه 1443 00:59:08,350 --> 00:59:11,460 این به این معنی است که من می توانم از طریق این صفحه و حذف همه 1444 00:59:11,460 --> 00:59:12,860 این خط کد. 1445 00:59:12,860 --> 00:59:17,220 و زمانی که من می گویم، تا حدودی مسخره، این است که در حال حاضر 1446 00:59:17,220 --> 00:59:20,060 جذاب، جذاب در نوع حس سبکی است. 1447 00:59:20,060 --> 00:59:22,660 این حقیقت که عملکرد، این کد است که در واقع به رفتن 1448 00:59:22,660 --> 00:59:24,610 آیا دقیقا همان. 1449 00:59:24,610 --> 00:59:26,890 و حتی اگر آن را ممکن است کمی مرموز در اولین نگاه 1450 00:59:26,890 --> 00:59:29,250 نگاه، از آنجا که ما از این ساختار دیده می شود نه قبل از آن، من می خواهم 1451 00:59:29,250 --> 00:59:31,850 استدلال می کنند که در نهایت رفتن به خیلی بیشتر 1452 00:59:31,850 --> 00:59:34,820 خواندن و بنابراین بسیار آسان تر برای ما انسان ها به گونه 1453 00:59:34,820 --> 00:59:36,830 درک کنند، زیرا در حال حاضر شما فقط می توانید بخوانید 1454 00:59:36,830 --> 00:59:38,830 کد همه در یک خط است. 1455 00:59:38,830 --> 00:59:41,550 هنوز در روح اگر چنین است، که در آن این است که 1456 00:59:41,550 --> 00:59:44,920 شرایط و پس از آن این همان چیزی است که در داخل اگر و این 1457 00:59:44,920 --> 00:59:46,480 همان چیزی است که در داخل دیگری است. 1458 00:59:46,480 --> 00:59:49,450 اما ما می توانیم این فقط خیلی بیشتر ظرافت انجام دهد. 1459 00:59:49,450 --> 00:59:52,650 >> و اگر من در حال حاضر به برگشت به ترمینال من، با حذف همه 1460 00:59:52,650 --> 00:59:55,530 از این خطوط و آنها را تنها با این دو جایگزین، 1461 00:59:55,530 --> 01:00:00,150 کامپایل مجدد، دوباره اجرا بطری آبجو با 99، توجه داشته باشید که من 1462 01:00:00,150 --> 01:00:03,350 دستور زبان است، در واقع، هنوز هم درست است. 1463 01:00:03,350 --> 01:00:06,160 تا دوباره، چیزی است که برای شروع. 1464 01:00:06,160 --> 01:00:08,840 2 بطری آبجو، 1 بطری آبجو. 1465 01:00:08,840 --> 01:00:09,370 به نظر می رسد درست است. 1466 01:00:09,370 --> 01:00:10,100 آره. 1467 01:00:10,100 --> 01:00:13,900 بنابراین ما باید یک راه حل بسیار بیشتر موجز. 1468 01:00:13,900 --> 01:00:16,020 بنابراین، بیش از حد، به عنوان شما می توانید راحت تر با C، 1469 01:00:16,020 --> 01:00:18,630 لزوما با pset اولین و یا حتی 2، اما 1470 01:00:18,630 --> 01:00:21,170 متوجه باشید که این سازه می تواند به ما اجازه می دهد برای انجام کارهای همیشه 1471 01:00:21,170 --> 01:00:22,810 ظرافت. 1472 01:00:22,810 --> 01:00:25,200 حالا یک چیز دیگر را در اینجا بگذارید. 1473 01:00:25,200 --> 01:00:31,460 اجازه بدهید من به جلو بروید و باز کردن return1.c. 1474 01:00:31,460 --> 01:00:34,340 در حال حاضر شروع به حل مشکل دیگری در راه است که اجازه 1475 01:00:34,340 --> 01:00:37,140 اجازه می دهد تا ما را به نوشتن کد های پیچیده تر است. 1476 01:00:37,140 --> 01:00:39,960 >> بنابراین در اینجا یک برنامه ساده و کوچک که هدف در زندگی 1477 01:00:39,960 --> 01:00:41,870 برای افزایش ارزش. 1478 01:00:41,870 --> 01:00:43,100 و در واقع، اجازه دهید یک قدم به عقب. 1479 01:00:43,100 --> 01:00:44,400 اجازه دهید من این کار را دستی. 1480 01:00:44,400 --> 01:00:52,200 اجازه دهید من را شامل و اعضای هیات تحریریه اصلی (خالی). 1481 01:00:52,200 --> 01:00:53,450 و اجازه دهید این increment.c با من تماس. 1482 01:00:57,150 --> 01:00:58,570 و آنچه من می خواهم کاری انجام دهید؟ 1483 01:00:58,570 --> 01:01:02,240 من قصد دارم به جلو بروید و می گویند چیزی شبیه به - 1484 01:01:02,240 --> 01:01:04,280 ما تماس بگیرید همان اعداد - 1485 01:01:04,280 --> 01:01:04,980 X int است. 1486 01:01:04,980 --> 01:01:13,670 بنابراین X از نوع int می شود 2؛ printf X٪ D، خط جدید، x. 1487 01:01:13,670 --> 01:01:16,780 بنابراین من تایپ کردن سریع است، اما نوع از مسائل آشنا در حال حاضر. 1488 01:01:16,780 --> 01:01:18,830 سپس من قصد دارم برای انجام X + +. 1489 01:01:18,830 --> 01:01:21,710 سپس من قصد دارم به چاپ دوباره که حکم همان است. 1490 01:01:21,710 --> 01:01:24,550 و سپس من قصد دارم به بازگشت 0 برنامه ای برای ترک. 1491 01:01:24,550 --> 01:01:25,960 همه حق است، پس این برنامه ای است که 1492 01:01:25,960 --> 01:01:26,960 افزایش یک عدد است. 1493 01:01:26,960 --> 01:01:29,830 این برای اولین بار رفتن به مقداردهی اولیه چیزی تا 2، و سپس آن را 1494 01:01:29,830 --> 01:01:33,470 رفتن به آن را افزایش و چاپ دوباره آن را. 1495 01:01:33,470 --> 01:01:36,930 >> بنابراین اجازه دهید اجرا افزایش، برنامه فوق العاده ساده است. 1496 01:01:36,930 --> 01:01:40,940 اما فرض کنید در حال حاضر که من می خواهم به مکعب مقدار، بنابراین انجام 1497 01:01:40,940 --> 01:01:42,490 چیزی تا حدودی خودسرانه است. 1498 01:01:42,490 --> 01:01:45,140 و من در واقع می خواهم برای انجام X مکعب از آن می شود. 1499 01:01:45,140 --> 01:01:47,570 بنابراین من می تواند استفاده از آنچه به نام تابع POW، اما من نه 1500 01:01:47,570 --> 01:01:48,650 واقعا که در آن است که در عین حال می دانم. 1501 01:01:48,650 --> 01:01:50,580 بنابراین من قصد دارم برای انجام این کار راه قدیمی از مد افتاده است. 1502 01:01:50,580 --> 01:01:54,550 X بار این برابر است با X بار X بار X است. 1503 01:01:54,550 --> 01:01:56,880 بنابراین من cubing ارزش، از ضرب آن را با خود دوباره 1504 01:01:56,880 --> 01:02:00,440 و دوباره و دوباره، به طوری که ما می توانید از قدرت 1505 01:02:00,440 --> 01:02:02,050 3 در این مورد است. 1506 01:02:02,050 --> 01:02:06,000 بنابراین در حال حاضر تعداد من باید چاپ باید باشد، همانطور که خواهیم دید 1507 01:02:06,000 --> 01:02:08,450 - افزایش، به طوری که آن را در واقع واقعا افزایش 1508 01:02:08,450 --> 01:02:10,260 دیگر، اما خواهیم این نام به تنهایی ترک - 1509 01:02:10,260 --> 01:02:11,590 2 و پس از آن 8. 1510 01:02:11,590 --> 01:02:17,670 در حال حاضر، در حال حاضر آغاز فرصتی برای پالایش 1511 01:02:17,670 --> 01:02:21,570 در اینجا، که به موجب آن این چیز cubing از ضرب یک عدد 1512 01:02:21,570 --> 01:02:24,680 خود را خود به خود به خودی خود احساس می کند مانند این فقط ممکن است 1513 01:02:24,680 --> 01:02:27,920 مفید به عنوان یک تابع، بسیار شبیه به کسی تصمیم گرفت 1514 01:02:27,920 --> 01:02:30,430 سال پیش - می دانید، نوع مفید است اگر یکی از ما می نشیند 1515 01:02:30,430 --> 01:02:33,120 و می نویسد: printf به طوری که بقیه جهان می توانند از آن استفاده کنید، 1516 01:02:33,120 --> 01:02:36,160 چرا ما نمی نشستن و نوشتن یک تابع به نام مکعب 1517 01:02:36,160 --> 01:02:39,250 که آیا این cubing برای ما بنابراین ما لازم نیست به صورت دستی 1518 01:02:39,250 --> 01:02:41,500 اجرای مفهوم cubing مقادیر اینجا؟ 1519 01:02:41,500 --> 01:02:44,040 >> بنابراین یک مثال ساده، اما اجازه دهید به جلو و استفاده از این به عنوان یک 1520 01:02:44,040 --> 01:02:46,280 فرصت به نوشتن تابع خود ما. 1521 01:02:46,280 --> 01:02:49,110 پس تا کنون، ما فقط استفاده می شود اصلی، و ما استفاده کرده ایم دیگر 1522 01:02:49,110 --> 01:02:51,780 توابع مردم است، اما در حال حاضر خود ما نوشته شده است. 1523 01:02:51,780 --> 01:02:52,650 بنابراین در اینجا ما بروید. 1524 01:02:52,650 --> 01:02:56,330 من قصد دارم به جلو بروید و نوشتن یک تابع به نام مکعب است. 1525 01:02:56,330 --> 01:02:58,490 و من قصد دارم به ورودی آن را. 1526 01:02:58,490 --> 01:03:02,070 بنابراین ورودی آن است برای رفتن به یک عدد صحیح است. 1527 01:03:02,070 --> 01:03:03,570 و آنچه در آن است انجام دهید؟ 1528 01:03:03,570 --> 01:03:08,500 رفتن به اعلام خروجی از نوع int = ورودی ورودی بار 1529 01:03:08,500 --> 01:03:09,880 ورودی برابر است. 1530 01:03:09,880 --> 01:03:12,190 و سپس آن را می خواهم به بازگشت که خروجی. 1531 01:03:12,190 --> 01:03:14,500 و پس از آن من به صورت خاص در حال حاضر. 1532 01:03:14,500 --> 01:03:16,820 این تابع برای بازگشت به یک int است. 1533 01:03:16,820 --> 01:03:19,130 بنابراین در اینجا پس از آن این است که چگونه شما می خواهم عملکرد های خود را ارسال. 1534 01:03:19,130 --> 01:03:20,850 ابتدا نام خود را از تصمیم گیری 1535 01:03:20,850 --> 01:03:21,720 تابع خواهد بود. 1536 01:03:21,720 --> 01:03:23,964 و به طور کلی، چیزی توضیحی خوب است، به طوری که من 1537 01:03:23,964 --> 01:03:25,060 آن را مکعب. 1538 01:03:25,060 --> 01:03:27,180 سپس شما باید مشخص کنید که چه آن را به بازگشت، چه 1539 01:03:27,180 --> 01:03:28,240 خروجی آن خواهد بود. 1540 01:03:28,240 --> 01:03:29,595 و ما گزینه های است که بسیاری از داشته نشده است. 1541 01:03:29,595 --> 01:03:32,260 INT، کاراکتر، شناور، بولی، رشته. 1542 01:03:32,260 --> 01:03:34,260 در حال حاضر، من قصد دارم تا با بین المللی چوب، زیرا من آن را می خواهم 1543 01:03:34,260 --> 01:03:35,880 برای بازگشت به یک عدد صحیح است. 1544 01:03:35,880 --> 01:03:38,770 سپس شما باید مشخص کنید چه ورودی آن، اگر وجود داشته باشد، است. 1545 01:03:38,770 --> 01:03:41,570 و اگر مکعب طول می کشد استدلال می کند، چیزی بین 1546 01:03:41,570 --> 01:03:44,970 پرانتز، شما باید به آن استدلال نام به طوری که 1547 01:03:44,970 --> 01:03:47,860 شما می توانید به آن چیزی است که تماس بگیرید تا شما پیاده سازی و یا نوشتن 1548 01:03:47,860 --> 01:03:50,550 این تابع، و شما باید آن را یک نوع، که در این 1549 01:03:50,550 --> 01:03:51,810 مورد رفتن به نوع int است. 1550 01:03:51,810 --> 01:03:54,690 بنابراین به طور خلاصه، مکعب یک تابع است که طول می کشد یک عدد صحیح است 1551 01:03:54,690 --> 01:03:57,560 به عنوان ورودی و بازده یک عدد صحیح را به عنوان خروجی. 1552 01:03:57,560 --> 01:03:59,240 >> بنابراین آن چه که با ورودی انجام دهد؟ 1553 01:03:59,240 --> 01:04:03,710 خب، در خط 14، خروجی متغیر به نام من اعلام و من 1554 01:04:03,710 --> 01:04:07,410 ارزش، بار ورودی ورودی ورودی بار را به آن اختصاص دهید. 1555 01:04:07,410 --> 01:04:11,490 و سپس خروجی I بازگشت. 1556 01:04:11,490 --> 01:04:14,890 پس چگونه این کار استفاده کنم؟ 1557 01:04:14,890 --> 01:04:19,210 چه این شخصیت های برجسته شده را تغییر دهم در خط 1558 01:04:19,210 --> 01:04:21,006 7 تا می شود، آیا شما فکر می کنم؟ 1559 01:04:21,006 --> 01:04:21,800 مخاطبان: [نامفهوم]. 1560 01:04:21,800 --> 01:04:25,570 DAVID J. مالان: بله، بنابراین مکعب از X است. 1561 01:04:25,570 --> 01:04:28,290 بنابراین X یک متغیر، که بدان معنی است که دارای برخی از ارزش است. 1562 01:04:28,290 --> 01:04:30,190 خوشبختانه، آن را از نوع صحیح است. 1563 01:04:30,190 --> 01:04:34,280 و از آنجا که بین المللی است، این بدان معناست که من می توانم آن را به مکعب عبور. 1564 01:04:34,280 --> 01:04:39,500 و حتی اگر من مهم مقدار x با مقدار 1565 01:04:39,500 --> 01:04:42,780 X مکعب، بوده است این مورد تا کنون، هر زمان به شما 1566 01:04:42,780 --> 01:04:46,150 علامت تساوی و یک خط از کد، چیزهایی که در سمت راست 1567 01:04:46,150 --> 01:04:49,090 اعدام می شود و پس از آن می شود به اختصاص داده 1568 01:04:49,090 --> 01:04:50,150 ارزش در سمت چپ. 1569 01:04:50,150 --> 01:04:52,950 بنابراین منظور از عملیات این است که ما امیدواریم. 1570 01:04:52,950 --> 01:04:56,620 بنابراین این کار می کند؟ 1571 01:04:56,620 --> 01:04:58,410 خوب، اجازه دهید من در اینجا به پایین. 1572 01:04:58,410 --> 01:04:59,970 اجازه دهید من باز کردن پنجره ترمینال من. 1573 01:04:59,970 --> 01:05:03,610 به من اجازه انجام را افزایش، را وارد کنید. 1574 01:05:03,610 --> 01:05:07,140 "بیانیه ضمنی از عملکرد 'مکعب' نامعتبر است 1575 01:05:07,140 --> 01:05:13,700 C99 است. "به کنار، C99 اشاره به C زبان آن را به عنوان 1576 01:05:13,700 --> 01:05:16,790 تعریف شده در سال 1999، که به روز رسانی بر روی نسخه از 1577 01:05:16,790 --> 01:05:19,360 سال 1989، است که به روز رسانی بیش از اصلی. 1578 01:05:19,360 --> 01:05:21,740 پس این است که تمام معنی است. 1579 01:05:21,740 --> 01:05:24,250 >> پس چه آیا این به معنی "بیانیه ضمنی 1580 01:05:24,250 --> 01:05:26,790 تابع 'مکعب' نامعتبر است "این حق در اینجا. 1581 01:05:26,790 --> 01:05:28,430 سمت راست وجود دارد در خط 12. 1582 01:05:28,430 --> 01:05:30,460 مخاطبان: [نامفهوم]. 1583 01:05:30,460 --> 01:05:30,730 DAVID J. مالان: چه خبر است؟ 1584 01:05:30,730 --> 01:05:32,470 مخاطبان: قبل نمی باشد. 1585 01:05:32,470 --> 01:05:33,540 DAVID J. مالان: قبل نمی باشد. 1586 01:05:33,540 --> 01:05:34,740 بنابراین این چیزی است. 1587 01:05:34,740 --> 01:05:38,190 C نوع احمق، و یا کامپایلرهای C، نوع احمقانه است. 1588 01:05:38,190 --> 01:05:41,060 آنها واقعا فقط از آنچه به شما می گویند آنها را به انجام انجام دهید. 1589 01:05:41,060 --> 01:05:44,770 و آنها، به طور خاص، تنها بالای کد خود را به پایین به عنوان خوانده شده 1590 01:05:44,770 --> 01:05:45,620 از چپ به راست است. 1591 01:05:45,620 --> 01:05:49,140 بنابراین اگر به کامپایلر، صدای جرنگ جرنگ، کد خود را در حال خواندن، خط 1، 1592 01:05:49,140 --> 01:05:50,120 ارقام چگونه به انجام این کار است. 1593 01:05:50,120 --> 01:05:50,940 اوه، در اینجا می آید بخش اصلی است. 1594 01:05:50,940 --> 01:05:53,000 خوب، اجازه دهید من بروم جلو و اعلام X متغیر است. 1595 01:05:53,000 --> 01:05:54,160 اجازه دهید چیزی چاپ من. 1596 01:05:54,160 --> 01:05:55,890 خط 7، چی مکعب است؟ 1597 01:05:55,890 --> 01:05:58,230 این در stdio.h را اعلام کرد. 1598 01:05:58,230 --> 01:06:00,950 این کار با C. نمی آمد من هیچ نظری ندارم که چه باید بکنید. 1599 01:06:00,950 --> 01:06:03,960 و به این ترتیب صدای جرنگ جرنگ فقط وثیقه واریز و با پیام خطا است که. 1600 01:06:03,960 --> 01:06:05,850 بنابراین ما می توانیم این کار را در یک زن و شوهر از راه حل. 1601 01:06:05,850 --> 01:06:10,530 ما می توانیم صدای جرنگ جرنگ مکعب است و تنها با حرکت که در آن تدریس 1602 01:06:10,530 --> 01:06:11,820 اعلامیه است. 1603 01:06:11,820 --> 01:06:14,640 پس من برش داده شده و آن را در بالای بخش اصلی جا به جا شده است. 1604 01:06:14,640 --> 01:06:17,770 حالا که فقط به دلیل اصلی این است که دیگر اول، آن را درک 1605 01:06:17,770 --> 01:06:19,150 هنوز هم به طور پیش فرض اجرا شده است. 1606 01:06:19,150 --> 01:06:20,060 صفحه اصلی اصلی است. 1607 01:06:20,060 --> 01:06:21,022 طور پیش فرض نام تابع است. 1608 01:06:21,022 --> 01:06:22,930 مهم نیست که در آن در یک فایل است. 1609 01:06:22,930 --> 01:06:26,910 اما حداقل در حال حاضر صدای جرنگ جرنگ دیده است مکعب قبل از من از آن استفاده کنید. 1610 01:06:26,910 --> 01:06:28,500 پس اجازه دهید را ببینید اگر صدای جرنگ جرنگ شادتر است در حال حاضر. 1611 01:06:28,500 --> 01:06:31,410 را افزایش، آن را کامپایل این زمان. 1612 01:06:31,410 --> 01:06:33,060 >> اجازه دهید من اجرا افزایش است. 1613 01:06:33,060 --> 01:06:34,810 و در واقع، به نظر می رسد کار. 1614 01:06:34,810 --> 01:06:36,810 در حال حاضر، شما می توانید آمد تا با سناریو در نهایت که در آن 1615 01:06:36,810 --> 01:06:38,650 این امکان پذیر نیست برای قرار دادن هر تابع 1616 01:06:38,650 --> 01:06:39,740 بالاتر از هر تابع دیگر. 1617 01:06:39,740 --> 01:06:42,140 شما در این حلقه بی نهایت در واقعیت گیر کرده است، 1618 01:06:42,140 --> 01:06:43,480 جایی که این مرد می خواهد اما این 1619 01:06:43,480 --> 01:06:44,390 مرد باید وجود داشته باشد. 1620 01:06:44,390 --> 01:06:45,830 به طوری که همیشه کار نمی کند. 1621 01:06:45,830 --> 01:06:49,020 خوشبختانه، C یک راه حل ظریف تر است. 1622 01:06:49,020 --> 01:06:50,790 من قصد دارم به بازگشت را که در آن بود، فقط به خاطر من 1623 01:06:50,790 --> 01:06:53,390 ترجیح می دهید، به عنوان یک اصل مهم، که اصلی همیشه 1624 01:06:53,390 --> 01:06:55,550 در بالا، به دلیل آن را فقط خوب است برای دیدن آنچه که این برنامه 1625 01:06:55,550 --> 01:06:56,920 می کند به طور پیش فرض. 1626 01:06:56,920 --> 01:06:58,950 و آنچه من قصد دارم برای انجام این کار در اینجا است که اعلام نام 1627 01:06:58,950 --> 01:07:00,250 یک نمونه اولیه است. 1628 01:07:00,250 --> 01:07:05,730 من قصد دارم دوباره تابع مکعب من به معنای واقعی کلمه 1629 01:07:05,730 --> 01:07:07,180 کپی و چسباندن. 1630 01:07:07,180 --> 01:07:08,290 در واقع، به معنای واقعی کلمه نیست. 1631 01:07:08,290 --> 01:07:13,060 تا به معنای واقعی کلمه کپی کردن و چسباندن خط 15 1632 01:07:13,060 --> 01:07:15,160 تا بالاتر از خط 6. 1633 01:07:15,160 --> 01:07:17,010 مهم نیست که چه خط به پایان می رسد تا در. 1634 01:07:17,010 --> 01:07:18,380 این اتفاق می افتد در خط 4. 1635 01:07:18,380 --> 01:07:19,950 اما آن را به قبل از بخش اصلی است. 1636 01:07:19,950 --> 01:07:21,150 اما متوجه این تفاوت است. 1637 01:07:21,150 --> 01:07:24,100 خط 4 به پایان می رسد با نقطه و ویرگول، که به معنی سلام، 1638 01:07:24,100 --> 01:07:27,510 صدای جرنگ جرنگ، سخن من برای آن وجود دارد که یک تابع وجود دارد 1639 01:07:27,510 --> 01:07:31,350 نام مکعب است که طول می کشد بین المللی و بین المللی را برمی گرداند. 1640 01:07:31,350 --> 01:07:33,020 اما من قصد ندارم به شما بگویم آنچه در آن است هنوز. 1641 01:07:33,020 --> 01:07:35,180 درست است که من قول می دهم که به شما بگوید در نهایت می دانم. 1642 01:07:35,180 --> 01:07:38,490 و در واقع، در حال حاضر آن را درست این است که به پایین است. 1643 01:07:38,490 --> 01:07:41,275 >> پس این است که به طور کلی بهتر است، زیرا پس از آن در بالا 1644 01:07:41,275 --> 01:07:44,240 فایل خود را، شما فقط می توانید خاموش سر و صدا، سریع آتش، یک خط 1645 01:07:44,240 --> 01:07:46,470 هر نام از توابع خود را، چه خود را 1646 01:07:46,470 --> 01:07:49,120 ورودی، خروجی آنها است. 1647 01:07:49,120 --> 01:07:52,210 و به روشن تر، ورودی به طور کلی به معنی استدلال و یا 1648 01:07:52,210 --> 01:07:54,110 پارامتر، مترادف است. 1649 01:07:54,110 --> 01:07:56,890 خروجی به معنای بازگشت به ارزش، چیزی است که آن را نشانی از 1650 01:07:56,890 --> 01:07:58,700 دست را به من برگرداند. 1651 01:07:58,700 --> 01:08:03,420 بنابراین در این مورد در اینجا، مکعب شده است در بالا اعلام شده، اما 1652 01:08:03,420 --> 01:08:06,940 تعریف شده است، در غیر این صورت به عنوان شناخته شده اجرا شده است، در پایین. 1653 01:08:06,940 --> 01:08:09,620 بنابراین در حال حاضر بازگشت و دوباره اجرای این اجازه. 1654 01:08:09,620 --> 01:08:13,430 بنابراین در حال حاضر من به جلو بروید و اجازه دهید دوباره اجرا را، دوباره اجرا افزایش است. 1655 01:08:13,430 --> 01:08:16,500 و در حال حاضر به نظر می رسد کار فقط خوب است. 1656 01:08:16,500 --> 01:08:19,450 بنابراین در حال حاضر ما می توانید پیش بروید و از چیزی مانند عامل 1657 01:08:19,450 --> 01:08:23,720 آبجو به عنوان مثال به این نسخه چهارم. 1658 01:08:23,720 --> 01:08:25,590 پس من حرکت را در اینجا بگذارید. 1659 01:08:25,590 --> 01:08:28,149 و توجه کنید که من به نوعی در زمان این درس فقط در حال حاضر به قلب. 1660 01:08:28,149 --> 01:08:31,140 واقعیت این است که من آواز بند دوباره به همان و 1661 01:08:31,140 --> 01:08:34,130 دوباره و دوباره، خط کر در آهنگ، احساس 1662 01:08:34,130 --> 01:08:36,439 مانند اینکه چرا من نمی توانم عاملی است که خارج را به یک تابع است؟ 1663 01:08:36,439 --> 01:08:38,470 و در واقع، این باید یکی از انگیزه است. 1664 01:08:38,470 --> 01:08:40,960 علاوه بر این واقعیت است که شخص دیگری در جهان ممکن است بخواهید 1665 01:08:40,960 --> 01:08:42,390 برای استفاده از یک تابع مکعب - 1666 01:08:42,390 --> 01:08:44,560 که یک دلیل خوب به عامل چیزی و نوشتن خود را 1667 01:08:44,560 --> 01:08:45,720 خود تابع سفارشی - 1668 01:08:45,720 --> 01:08:48,720 اگر یک تکه از کد در برنامه های خود را که فقط باعث می شود وجود دارد 1669 01:08:48,720 --> 01:08:51,370 معنای مفهومی، که شما نوع می خواهید به آن را 1670 01:08:51,370 --> 01:08:53,740 نام و نام خانوادگی - مثل در این مورد، کر - 1671 01:08:53,740 --> 01:08:57,380 پس از آن شما به همین ترتیب می توانید به عنوان یک تابع جداگانه بنویسید. 1672 01:08:57,380 --> 01:08:59,560 شما لازم نیست برای نوشتن همه چیز در اصلی آن را فقط به 1673 01:08:59,560 --> 01:09:02,609 احساس پاک کننده به آن را جدا و آن را به یک نام بدهید. 1674 01:09:02,609 --> 01:09:05,529 >> بنابراین در این مورد در اینجا، توجه کنید که من یک نظر در بالای 1675 01:09:05,529 --> 01:09:06,859 این تابع است که فقط در مورد آواز می خواند 1676 01:09:06,859 --> 01:09:08,630 شماره های مشخص شده از بطری. 1677 01:09:08,630 --> 01:09:10,609 توجه کنید که در اینجا من لازم نیست که به این 1678 01:09:10,609 --> 01:09:12,520 چیزهایی ورودی و خروجی است. 1679 01:09:12,520 --> 01:09:16,090 در واقع، این زمان من فقط ب ورودی من برای بطری نامیده می شود. 1680 01:09:16,090 --> 01:09:19,960 و توجه کنید که در اینجا، خالی نشان می دهد چه؟ 1681 01:09:19,960 --> 01:09:21,309 که کر - 1682 01:09:21,309 --> 01:09:22,660 مخاطبان: آیا آن را بر نمی گرداند. 1683 01:09:22,660 --> 01:09:23,870 DAVID J. مالان: یک مقدار را بر نمی گرداند. 1684 01:09:23,870 --> 01:09:26,800 و در واقع، توابع مجبور به بازگشت به ارزش ها. 1685 01:09:26,800 --> 01:09:28,060 آنها می توانند چیزی را انجام درست. 1686 01:09:28,060 --> 01:09:30,270 آنها می توانند عوارض جانبی نامیده می شوند، که در این 1687 01:09:30,270 --> 01:09:33,109 مورد است که فقط دسته کل چاپ بر روی صفحه نمایش است. 1688 01:09:33,109 --> 01:09:36,580 پس که این کد را در اینجا، من به معنای واقعی کلمه فقط از به سرقت برده متوجه 1689 01:09:36,580 --> 01:09:37,680 مثال قبلی است. 1690 01:09:37,680 --> 01:09:39,930 تنها تفاوت این است به جای استفاده از من به عنوان من 1691 01:09:39,930 --> 01:09:42,890 متغیر، من در حال حاضر با استفاده از ب به عنوان متغیر است. 1692 01:09:42,890 --> 01:09:45,880 بنابراین من باید ب را در اینجا، من ب را در اینجا، من ب 1693 01:09:45,880 --> 01:09:47,109 منهای 1 را در اینجا. 1694 01:09:47,109 --> 01:09:49,279 اما این کد دقیقا همان است. 1695 01:09:49,279 --> 01:09:52,529 اما فقط به شما نشان می دهد در حال حاضر چگونه ما می توانیم این کار استفاده کنید، اجازه دهید من بروم 1696 01:09:52,529 --> 01:09:56,780 جلو و در واقع تغییر این را به عنوان یک حلقه for. 1697 01:09:56,780 --> 01:10:03,850 برای (من بین المللی = N، من> N، من -). 1698 01:10:03,850 --> 01:10:06,230 >> پس من که از مثال قبلی ما به سرقت رفته است. 1699 01:10:06,230 --> 01:10:08,970 پیش از این، آن را در خط 37 است که من می خواهم که آغاز شده 1700 01:10:08,970 --> 01:10:10,640 آواز این آهنگ آزار دهنده است. 1701 01:10:10,640 --> 01:10:15,810 اما در عوض، من فقط رفتن به حال کر از من تماس بگیرید. 1702 01:10:15,810 --> 01:10:16,870 انجام شد. 1703 01:10:16,870 --> 01:10:20,260 بنابراین در حال حاضر در هر تکرار از این حلقه، من به این 1704 01:10:20,260 --> 01:10:22,220 تابع، کر، که من به طور اتفاقی به نوشتن. 1705 01:10:22,220 --> 01:10:24,110 آن را توسط شخص دیگری سال پیش نوشته شده بود. 1706 01:10:24,110 --> 01:10:27,930 اما کر، در عین حال، با استفاده از printf به چاپ 1707 01:10:27,930 --> 01:10:29,840 این چهار خط. 1708 01:10:29,840 --> 01:10:32,720 اما واقعیت این است که من خواستار کر دوباره و دوباره در 1709 01:10:32,720 --> 01:10:35,900 حلقه بدان معنی است که من قصد دارم برای به دست آوردن، در پایان، 1710 01:10:35,900 --> 01:10:39,310 دقیق آهنگ همان است که من تا کنون. 1711 01:10:39,310 --> 01:10:42,130 بنابراین در کوتاه مدت، در حال حاضر اگر من نگاه کد، حتی اگر 1712 01:10:42,130 --> 01:10:44,240 عملکرد این معادل است، توجه کنید که آن را 1713 01:10:44,240 --> 01:10:46,020 شروع به گرفتن و حتی بیشتر قابل خواندن است. 1714 01:10:46,020 --> 01:10:48,410 من دقیقا نمی دانند که چگونه GetInt 1715 01:10:48,410 --> 01:10:49,250 پیاده سازی شده است. 1716 01:10:49,250 --> 01:10:52,050 صادقانه بگویم، من نمی دانم چگونه کر اجرا شده است. 1717 01:10:52,050 --> 01:10:52,970 اما این برای من مهم نیست. 1718 01:10:52,970 --> 01:10:55,620 من اهمیتی نمی دهند، چرا که در حال حاضر من می توانم از مرتب کردن، به عنوان یک انسان، به عنوان خوانده شده 1719 01:10:55,620 --> 01:10:57,050 این پایین از بالا به. 1720 01:10:57,050 --> 01:10:59,950 و به این دلیل که توابع با توجه به آنچه که آنها به نام 1721 01:10:59,950 --> 01:11:02,910 ، کد من این است که به طور فزاینده ای قابل خواندن است. 1722 01:11:02,910 --> 01:11:05,190 و به عنوان برنامه های ما بسیار پیچیده تر - 1723 01:11:05,190 --> 01:11:07,220 پایان ترم، به شما امکان نوشتن صدها خط 1724 01:11:07,220 --> 01:11:10,970 کد را در زبان هایی مانند PHP و JavaScript و مانند آن - 1725 01:11:10,970 --> 01:11:13,550 شما یابند که آن را بسیار آسان تر نسبت به پیگیری 1726 01:11:13,550 --> 01:11:14,080 آنچه شما انجام داده ام. 1727 01:11:14,080 --> 01:11:15,810 و زمانی که شما شروع به همکاری با دوستان و یا 1728 01:11:15,810 --> 01:11:19,010 شرکا و یا همکاران، شما قادر خواهید بود برای نوشتن خیلی بیشتر 1729 01:11:19,010 --> 01:11:22,910 برنامه های گسترده ای شروع به ورزش این پایه 1730 01:11:22,910 --> 01:11:23,990 بلوک های ساختمانی. 1731 01:11:23,990 --> 01:11:25,550 >> پس با که گفت، چرا ما نمی آن روز؟ 1732 01:11:25,550 --> 01:11:27,190 و ما شما را در روز چهارشنبه را ببینید. 1733 01:11:27,190 --> 01:11:33,611 [تشویق حضار]