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