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