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