ROB: بسیار خوب. به بخش اول خوش آمدید. I راب هستم. JOSEPH: من یوسف هستم. ROB: بنابراین ما شیرجه رفتن شما حق وارد اولین چیزی که به بحث در مورد لوازم خانگی است. پس امیدوارم بیشتر از شما دانلود آن را در حال حاضر. اما شما می توانید دستورالعمل ببینید در cs50.net/appliance. آه خدای، در حال حاضر من خود آگاه هستم. من هنوز آن را بشنوند. JOSEPH: عجب، آن را مانند تلفن های موبایل آن گیجی. ROB: بنابراین برخی از مردم داشتن است مسائل مربوط با آن، پس تا زمانی که منتظر نیست آخرین لحظه از مشکل مجموعه را به امتحان کنید و حل لوازم خانگی و پیدا کردن که آن کار نمی کند. JOSEPH: و اگر چیزی کار نمی کند و شما نیاز به کمک، شما می توانید به cs50.net/discussion که در آن ما یک انجمن که در آن شما می توانید سوالات خود را ارسال. و ما به آنها در نهایت دریافت کنید. ROB: بسیار خوب. پس این چه لوازم خانگی است به نظر می رسد. باز هم، این فقط یک کاملا مجزا سیستم عامل در حال اجرا در هر سیستم عامل شما در حال اجرا بر روی لپ تاپ شما. و از کارهای اصلی شما که به با استفاده از نرمافزاری gedit می باشد. پس امیدوارم این در حال حاضر تبدیل شدن به یک سایت آشنا. ترمینال. و شما همچنین می توانید کروم اجرا در لوازم خانگی. یک زن و شوهر از مردم شده اند وجود دارد که اینترنت را گزارش کرده اند در لوازم خانگی کار نمی کند. و برخی از آنها فقط به عهده گرفت که وجود دارد قرار نیست به اینترنت در لوازم خانگی. اما بله، قرار است وجود دارد به اینترنت. من آن را در حال حاضر می گویند، اما آن را نمی کند واقعا هیچ معنایی. در صورتی که اینترنت کار نمی کند، این همان چیزی است که شما تمایل به نیاز برای اجرای آن را برطرف. اگر شما با مسائل مربوط به اینترنت، نمی به یاد داشته باشید آن، فقط آن را در بحث، و ما می گویم، اجرای آن. اما اینترنت باید کار شود. بنابراین تنها چیزی دیگر - آره، هیچ چیز دیگری است که واقعا مرتبط است. اما من فقط می خواستم به اشاره است که - در این گوشه پایین سمت راست را ببینید. بنابراین هر یک از لوازم برقی خود را باید یک آدرس IP. و بعد از آن در ترم، این IP آدرس تبدیل خواهد شد بیشتر مربوط به زمانی شما در حال کار بر روی این وب p-مجموعه، به دلیل شما قادر خواهید بود برای دسترسی به وب سایت شما در حال کار بر روی از شما کروم محلی با استفاده از این آدرس IP. اما آنچه من می خواهم به استفاده از آدرس IP برای - و شما لازم نیست که برای انجام این کار، I فقط می خواهم به آن اشاره می کنند - است در اینجا. پس این پنجره ترمینال در است مک من، این است که در نه لوازم خانگی در همه. و شما می توانید نگاه کردن چه این دستور انجام می دهد. اما من قصد دارم به SSH به طور مستقیم به لوازم خانگی من. من نمی دانم چه IP است. JOSEPH: 168 - 168.224.1.0. ROB: پس یک بار من انجام با این کار، وارد شوید. در حال حاضر، در واقع، این عینا همان است پنجره ترمینال در لوازم خانگی من. بنابراین من تقریبا هرگز در واقع کار از درون خود ابزار. من فقط همیشه آن را در حال اجرا در پس زمینه به حداقل برسد و SSHed را در آن. این موضوع را با این است که شما نمی خواهید قادر به استفاده از نرمافزاری gedit به راحتی به طور مستقیم از این. اما اگر شما می خواهید یک واقعی داغ هکر، پس شما باید مورد استفاده برای دریافت خط فرمان ویرایشگر متن به هر حال. بنابراین VIM و ایمکس و نانو، تمام این گزینه های مختلف می باشد. نانو گرایش به ساده ترین. و من فکر می کنم آن را ندارد نحو برجسته. اوه، نه، آن را کاملا می کند. بنابراین شما می توانید نانو استفاده، به دلیل که بسیار آسان است. شما تمام این دستورات را ببینید در پایین. این نماد هویج کم است. اگر شما آن را پیش از این دیده نیست، شما احتمالا در حال حاضر آن را به مقدار زیادی. این به آن معناست هویج کنترل، مانند چپ پایین صفحه کلید خود را شخصیت کنترل. بنابراین در اینجا آن را به من گفتن در اینجا - آه، آن را قطع نمی کردن اگر من زوم شوید بنابراین کنترل، X است که چگونه من قصد دارم به خارج شوید. و آن را می گوید من می توانم Y برای ضربه بله، برای صرفه جویی در، N برای شماره به طوری که نانو است. VIM و ایمکس تمایل دارند که کمی بیشتر پیچیده و خسته کننده باشد. اما شما می توانید استفاده از آن را دریافت کنید، و سپس شما آن را دوست دارم. به طوری که که. JOSEPH: بدون نیاز به انجام این کار. ROB: آره. شما به رایگان استفاده کنید نرمافزاری gedit برای است باقی مانده از ترم. بنابراین هر گونه سوال مربوط به دستگاه؟ و یا اینکه شما هر گونه افکار در چه چیز دیگری در مورد نیاز به صحبت شود دستگاه؟ بله. SPEAKER 1: وقتی که شما به SSHed شما چیز، زرشکی رمز عبور بود؟ ROB: آره. رمز عبور برای همه چیز بسیار زیبا در لوازم خانگی است که به زرشکی. SPEAKER 2: نصب مانند یک IDE واقعی در دستگاه، آن را به کار خواهد کرد؟ ROB: من تصور گرفتگی دارای نسخه فدورا، که در این صورت، بله، شما می توانید انجام این کار. این احتمالا واقعا ارزش آن را ندارد. SPEAKER 2: OK. پس از آن احتمالا راحت تر اگر من می خواستم استفاده از گرفتگی، فقط با استفاده از بومی و پس از آن به آپلود - ROB: اوه، که آن نیز احتمالا آسان تر است. اما شما می توانید آن کار کنید در لوازم خانگی. JOSEPH: و برای دوربین، سوال بود، می تواند شما را از نصب دیگر IDE در داخل از لوازم خانگی؟ ROB: گرفتگی بودن به عنوان مثال از IDE. هر گونه سؤال لوازم خانگی دیگر؟ بسیار خوب. بنابراین ما در حال حاضر بر روی خط فرمان حرکت همه چیز مربوط به رابط، بنابراین CLI. و دوباره، من فقط رفتن به کار در در اینجا، چرا که این یکسان است کار در یک پنجره ترمینال در لوازم خانگی. چگونه است که فونت به دنبال؟ این است که به اندازه کافی بزرگ است؟ بسیار خوب. بنابراین در بسیاری از دستورات وجود دارد که شما باید بسیار مورد استفاده قرار در طول ترم. دو بزرگ برای هدایت می LS، لیست این فایل ها در این پوشه و سی دی، پس از تغییر دایرکتوری. بنابراین من می تواند به دسکتاپ را تغییر دهید و سپس یک الگوی بسیار رایج سی دی به یک است دایرکتوری و بلافاصله LS آنچه در دایرکتوری. مردم گاهی اوقات درک نمی کنند که تکمیل برگه یک چیز است. بنابراین مانند سی دی، VH، و پس از آن من Tab را. من تقریبا هیچ وقت تایپ کردن تمام چیزی. و پس از آن اگر من نگه زدن تب، دوباره، آن را خواهید به طور خودکار شروع لیست برای من. بنابراین من می توانم سی دی vhosts، میزبان های محلی. و این فقط رفتن به - در صورتی که شما مدت شنیده ام نیست قبل از، دایرکتوری فقط کلمه ای دیگر است برای پوشه. بنابراین در حال حاضر اگر شما نگاه کنید - اجازه دهید را که به بالا. بنابراین در حال حاضر اگر شما در داخل پرانتز مراجعه کنید، شما دیدن تیلدا کمی، بریده بریده، vhost، بریده بریده، میزبان های محلی. بنابراین برای ریشه یابی لغات، که اشاره دارد به دایرکتوری خانه من است. این یک دایرکتوری شما را در زمانی که شما SSH شوید این دایرکتوری به شما در زمانی که هستیم شما باز کردن یک ترمینال. این که در آن شما شروع می شود. و من داخل پوشه اصلی من هستم، و من داخل vhost هستم دایرکتوری در داخل دایرکتوری خانه من. و بعد من داخل محلی هستم میزبان دایرکتوری در داخل آن. بنابراین برخی از چیزهای مفید دیگر با سی دی - یا خوب، به طور کلی، تا نقطه همیشه اشاره به دایرکتوری جاری. سی دی، نقطه یک دستور کاملا بی ارزش است. اما این تغییر به دایرکتوری جاری. یک مفید تر از نظر سی دی نقطه، نقطه، که است فقط به یک دایرکتوری بروید. و توجه داشته باشید که این - من می خواهم بگویم نام مستعار، اما این کاراکتر، نقطه، و نقطه، نقطه، آن کار برای تقریبا هر دستور شما رفتن به فکر در حال اجرا. بنابراین مانند سی دی است که احتمالا در آن شما خواهید بود با استفاده از ترین، اما این ها نمی چیزهایی که فقط سی دی را درک. این چیزی است که تقریبا تمام خود را خط فرمان را درک. بسیاری از برنامه های درک نقطه و نقطه، نقطه. بنابراین آنهایی که دیگر مفید - سی دی، خط تیره. به طوری که به من به ارمغان بیاورد آخرین دایرکتوری که من وارد شد بنابراین گاهی اوقات من چیزی را دوست، آه، من کار در اینجا. و من برخی از خطا با چیزی، و من به بررسی آن را با رفتن به برخی از دایرکتوری تصادفی در جایی. و من اگر آن را خواهید نمی دانم اجازه دهید من در آن وجود دارد. آن خواهد شد. پس من هر کاری را که من می خواهم در این شاخه. ، اه، اه، اه، اه، اه. و من مثل همه درست بود، من می خواهم برای رفتن به جایی که من بود. سی دی، فاصله، و آن را به من ارمغان می آورد حق بازگشت. من می خواهم به پرتاب زیادی این در شما است. من انتظار نیست که شما به خاطر سپردن همه آنها. این نوع فقط می دانم که آنها وجود دارند. و کمی بعد در زمانی که شما مانند است، HMM، من می خواهم به بازگشت به دایرکتوری که من فقط در بود، آه، صبر کنید، چیزی شبیه به آن وجود دارد. شما لازم نیست که فقط در نوع در همهی فهرست دوباره. JOSEPH: و در نهایت شما فقط خواهد شد استفاده از آنها را بارها و بارها، و آن را تبدیل حافظه عضلات. ROB: آره. پس چگونه قبل از من گفت، که برای ریشه یابی لغات دایرکتوری خانه شما است. بنابراین من می توانم سی دی، تیلدا. اما من حتی نمی به انجام این کار اگر من فقط - من به دایرکتوری بروید تا این یک مثال بی معنی نیست. اما اگر من فقط سی دی، که همچنین همان، به دایرکتوری خانه من برو. I انجام فرمان، K. JOSEPH: شما همچنین می توانید مشخص نوع، کلمه، و آن را باید به آن روشن است. ROB: و من نیز کنترل فکر می کنم، L نیز آن را ندارد. بنابراین مقدار زیادی از راه های مختلف. من فکر می کنم برخی از تفاوت های وجود دارد که در آن پاک کردن و کنترل، L تنها واقعا فشار آن را به بالا و من هنوز هم می تواند حرکت بازگشت. فرماندهی، K به معنای واقعی کلمه از بین می برد همه چیز، و شما نمی تواند حرکت به بالا. حداقل، که چگونه آن را در iTerm2 کار می کند. من نمی دانم که چگونه چیزهای دیگر - آه. با SSHing، بنابراین اگر شما در ویندوز می باشد، شما باید به نرم افزار PuTTY به منظور به SSH از ویندوز را نمی مانند یک ابزار ساخته شده در SSH داشته باشد. از مکینتاش، شما می توانید فقط SSH به طور مستقیم از پنجره ترمینال. OK. سوالات؟ با دستور ls، بنابراین چیزی برای مورد استفاده قرار بگیرند با بسیاری از این دستورات است - خوب، من فقط یک انجام دهد. L ها، خط فاصله، ل. بنابراین فاصله، ل آن چیزی است که ما قصد داریم به پرچم تماس بگیرید به LS. و بسیاری از این دستورات باید پرچم که شما می توانید به آنها منتقل می کند. بنابراین در این حالت، فاصله، ل یک پرچم است است که آن را می گوید به من کامل را فهرستی از همه اطلاعات از این فایل ها. بنابراین ما در اینجا می بینیم که دسکتاپ بود در 30 جولای در ساعت 12:54 تغییر یافتهاست. دانلود در سپتامبر 6 تغییر یافتهاست. این اندازه فعلی هستند و بایت از این دایرکتوری ها. شما لازم نیست به درک همه از این. این ماده در سمت چپ، این drwx است، که تبدیل خواهد شد خیلی بیشتر مربوطه بعد هنگامی که شما باید برای برخورد با - که است که با کسی که دارای مجوز در این فایل ها نگاه کنید. و به این ترتیب اگر شما تنها کاربر نمی این کامپیوتر، شما را قادر به مثلا، OK، من باید تنها بود اجازه به این فایل نگاه کنید و یا من رفتن به اجازه همه به این فایل نگاه کنید. بنابراین شخص دیگری بر روی کامپیوتر من می توانید در این فایل نگاه کنید. من حتی نمی دانید این - چه کاری انجام دهید؟ JOSEPH: من کاملا مطمئن نیستم، در واقع. ROB: هیچ نظری ندارم. JOSEPH: اما اگر شما نمی دانید که وجود دارد، یک دستور مفید است که شما می توانید استفاده کنید به شما بگوید چه خروجی به معنی. و اگر در انسان نوع قبل از دستور - بنابراین M-A-N. ROB: مرد. پس مرد به یکدیگر است که بسیار مفید است. و مرد، LS. بنابراین صفحات man، آنها هر دو دستورات است که شما در حال استفاده در خط فرمان، و آنها نیز توابع مربوطه خواهد بود با C. بنابراین شما می توانید انسان - و من نادیده گرفته 3. اما مرد 3 چون printf است که به ارمغان می آورد تا نسخه C از چون printf. اما اگر من فقط مرد چون printf، این است که رفتن به مطرح کردن چون printf فرمان که در خط فرمان اتفاق می افتد. پس مرد، LS. صفحههای مرد می تواند بسیار خسته کننده باشد. در اینجا، هر چند، به شما این لیست را مشاهده کنید از تمام این پرچم که دستور ls درک می کند. بنابراین اگر ما به فاصله، ل و - من فقط رفتن به پرتاب این در شما. اما به منظور جستجو، شما می خواهید به اولین سوال آمار علامت یا دکمه بریده بریده. بنابراین بریده بریده. و بعد من می توانید جستجو به هر من می خواهم. من می خواهم به بریده بریده برای فاصله، ل. و در آنجا بود. بنابراین یک قالب فهرست طولانی استفاده کنید. این کمکی نمی کند به من شکل چه که ستون خاص به معنای، اما من فرض کنیم در جایی در اینجا آن را توضیح می دهند که. بنابراین استفاده از صفحات man برای هر دستور که شما فورا نمی دانند. من کاملا مطمئنم که شما می توانید حتی مرد، مرد است. رابط به آنلاین کتابچه های راهنمای مرجع. اوه، آخرین است که شاید کمی LS مرتبط است، فاصله،. بنابراین توجه اگر من فقط LS، من این پنج فایل دریافت کنید. اگر من انجام LS، فاصله، یک، I دریافت فایل های خیلی بیشتر. بنابراین چیز مشترک بین همه این فایل های جدید نقطه از قبل است. بنابراین این کنوانسیون این است که یک فایل که شروع می شود با یک نقطه پنهان است. بنابراین شما نمی خواهید دید که فایل، شما نمی خواهم به آن را دارند ظرف غذا با فهرست دایرکتوری خود را. این تنها زمانی که شما به صراحت بپرسید، همه حق است، LS، فاصله، یک، به من نشان بده. مخفف تمام فایل ها، از جمله آنهایی که پنهان است. بنابراین برخی از دستورات دیگر. اوه، سوالات در آن نقطه؟ بله. SPEAKER 3: هنگامی که شما از ls، ، چه از نقطه، نقطه است؟ ROB: اوه. پس این چیزی است که من صحبت کردن در مورد. این همان چیزی است که در آن من می توانم سی دی، نقطه، نقطه دوست دارم. بنابراین از لحاظ فنی، نقطه و نقطه، نقطه می باشد فایل هایی که در هر یک وجود داشته باشد دایرکتوری که فایل در نقطه اشاره دارد به دایرکتوری جاری. بنابراین اگر من سی دی، نقطه، من فقط رفتن به در دایرکتوری باقی بماند. و نقطه، نقطه همیشه به اشاره قبلی دایرکتوری به یک مرحله است. بنابراین اگر من به سیاهههای مربوط و دستور ls به، فاصله، آل، I نقطه، نقطه را ببینید. سی دی به نقطه، نقطه من را به دایرکتوری قبلی به ارمغان می آورد. آره. OK. بنابراین یکی دیگر از بسیار مهم دستور rm است. بنابراین این چیزی است که ما قصد داریم برای استفاده از حذف. و اجازه دهید من در واقع یکی دیگر از انجام دستور اول است. بنابراین mkdir. Mkdir این است که چگونه شما می توانید ایجاد دایرکتوری. و من یک دایرکتوری موقت ایجاد و رفتن به آن دایرکتوری موقت است. و به عنوان انتظار می رود، آن را خالی. اما اگر I LS، فاصله،، من هنوز هم نقطه دارند و نقطه، نقطه، به دلیل نقطه به دایرکتوری جاری. و نقطه، نقطه اشاره به دایرکتوری قبلی است. و کسانی که همیشه وجود داشته باشد بدون توجه خواهد کرد دایرکتوری می شوید. و این است که کاملا غیر ضروری فرمان، اما لمس. من فقط با استفاده از آن، به دلیل آن است یک راه آسان برای ایجاد فایل های. بنابراین لمس، لمس ب، لمس C است فقط رفتن به ایجاد سه فایل به نام، B و C است که به طور کامل خالی می باشد. بنابراین هدف من ایجاد آن در مقام اول است فقط به طوری که کنترل از راه دور است چگونه ما می توانیم آنها را حذف کنید. بنابراین RM،. آن را از من بپرسید، حذف به طور منظم خالی فایل؟ و پس از آن من می گویم بله. بنابراین اگر من مطمئن هستم که من می خواهم پاک کردن آن فایل بدون نیاز به درخواست، حذف فایل خالی به طور منظم؟، سپس RM، فاصله، F است برای رفتن به پرچم که می گوید، نیروی حذف بدون حتی من باعث، آه، شما مطمئن هستید که می خواهید این فایل را حذف کنید؟ بله، من مطمئن هستم. بنابراین RM، خط تیره، اتاق با غذا فقط به آن را بدون پرسیدن. بنابراین اجازه دهید تا برخی پوشه ها است. mkdir، tmp2، سی دی، tmp2، لمس، تماس ب. OK. بنابراین در حال حاضر من می خواهم به حذف tmp2 به عنوان یک دایرکتوری. tmp2 پس RM. شما می توانید tmp2 را حذف کنید، آن را به یک پوشه است. بنابراین مسئله این است که کنترل از راه دور نمی کند بلافاصله بر روی پوشه ها کار می کنند. این فقط برای فایل ها مانند معنای فایل های غیر دایرکتوری. و بنابراین، آنچه که ما می توانید انجام دهید در اینجا RM، فاصله، R است. که مخفف بازگشتی، که ممکن است هر چیزی معنی نیست که شما نشده است. اما وقتی که شما به بازگشت کنید، آن را بیشتر خواهید بود. بنابراین کنترل از راه دور، فاصله، تحقیق، tmp2 در حال رفتن به به صورت بازگشتی به این دایرکتوری بروید. بنابراین به دایرکتوری tmp2 فرود؟ بله، اجازه دهید به آن بروید. آیا می خواهید به حذف tmp2 /؟ بله. آیا می خواهید به حذف tmp2 / ب؟ بله. حالا ما می خواهیم به حذف tmp2 دایرکتوری؟ بله. و بنابراین در حال حاضر دایرکتوری و همه چیز را در داخل از آن حذف شده است. از نظر فنی rmdir دستور وجود دارد که شما می توانید استفاده کنید برای حذف دایرکتوری، اما آن را تنها با این نسخهها کار بر روی پوشه خالی به هر حال. و برای دیدن آن، اجازه دهید فقط انجام mkdir، tmp2 دوباره. Tmp2، لمس. OK. بنابراین اگر تلاش کنم برای حذف dirtmp2، آن را خواهید می گویند، پوشه خالی نیست. بنابراین من تقریبا هرگز حذف استفاده فرمان دیر به هر حال، به دلیل کنترل از راه دور، فاصله، r در دایرکتوری خالی کار خواهد کرد و دایرکتوری غیر خالی. و نیز، اگر من نمی خواهم که به رفتن را از طریق کل فرایند نزولی به دایرکتوری و از بین بردن هر یک از فایل های شخصی، کنترل از راه دور، خط تیره، رادیویی، tmp2. و در حال حاضر آن را رفته است. چیزی باید مراقب باشید در مورد کنترل از راه دور، فاصله، RF است. و آن را می ترساند من حتی آن را تایپ کنید، چرا که اگر من به طور تصادفی آمار را وارد کنید و یا چیزی. بنابراین کنترل از راه دور، فاصله، رادیویی، تیلدا را، بدون باعث من، F می کند سریع نیست من، آن را به طور خودکار حذف خواهد شد همهی فهرست خانه ام و همه چیز در آن است. بنابراین شما ممکن است فکر می کنم که یک چیز احمقانه را انجام دهد. و نیز، در آن است. اما می توان آن را توسط رخ می دهد به راحتی تصادف اگر، مثلا، من می خواستم به حذف بریده بریده من، دایرکتوری vhost. و فقط در تایپ سریع، من به طور تصادفی انجام این کار. که به صورت بازگشتی حذف خواهد شد هر دو من پوشه اصلی و پوشه vhost در این شاخه خاص که فقط اتفاق می افتد در حال حاضر به وجود است. اما این هنوز هم حذف همهی فهرست خانه من. حداقل با داشتن یک جمعه نیست، آن را به من برای اولین بار تحریک کند. و من می خواهم، آه، لازم است نه، من نمی خواهم به انجام این کار. اما مردم، بریده بریده، از جمله من تمایل به دریافت عادت همیشه RF-نشستند. حتی فایل های منظم که من فقط می توانند کنترل از راه دور، ج، من فقط به RM، فاصله، رادیویی، ج تمایل دارند. فقط مراقب باشید زمانی که شما RF کردن است. SPEAKER 4: چه C انجام دهید؟ ROB: C است من صحبت کردن در مورد آن فایل C در این شاخه، که RM، ج. JOSEPH: و بیشتر خطرناک، در صورت استفاده یک ستاره، آن را به همه چیز اشاره دارد در دایرکتوری. پس آنچه که من معمولا تمایل به انجام آن من خواهد شد رفتن به یک دایرکتوری و من می خواهم حذف تمام فایل در آن وجود دارد. بنابراین کنترل از راه دور، فاصله، رادیویی، ستاره. ROB: آره. RM، فاصله، رادیویی، ستاره. JOSEPH: و اگر شما نمی دقیق چه دایرکتوری شما هستیم - من در درجه حرارت نیست، اما من به طور تصادفی بود در پوشه خانه من، پس از آن من همه چیز را حذف در پوشه خانه من است. و من در واقع انجام داده است که قبل از، و من فکر می کنم شما قبل از این و یا انجام داده ام جی انجام داده است که قبل از. ROB: من به طور تصادفی حذف کردیم - بنابراین نادیده گرفت که دستور برای کمی. JOSEPH: سرگرم کننده نیست. ROB: بنابراین در شاخه بن بریده بریده است دسته ای از فایل های باینری که در آن وجود دارد خواهید شود آنهایی که آشنا مانند صدای جرنگ جرنگ. خوب، صدای شیپور و اساسا تمام این چیزهایی که من در حال اجرا در خط فرمان خط در این بریده بریده شاخه بن می باشد. JOSEPH: مانند LS در اینجا است. ROB: بنابراین نقطه، بریده بریده، LS می لیست این شاخه. JOSEPH: RM نیز در این شاخه. ROB: من به طور تصادفی کنترل از راه دور، بن RF-ED، که حذف هر دستور من می توانم احتمالا تا به حال می خواهم. که پس از آن من فقط نصب مجدد لوازم خانگی جدید در آن نقطه. JOSEPH: پس بسیار مراقب باشید که شما این دستور استفاده کنید. یک مدعو: [نامفهوم]؟ ROB: بله. این هم یک عادت بد برای وارد شدن. اگر شما متوجه، من در حال حاضر - خوب، شما می توانید متوجه نیست، اما من زوم در شاید می توانید. بنابراین من در حال حاضر ریشه @ لوازم خانگی. بنابراین jharvard کاربر ما می خواهیم است شما همیشه استفاده می شود. ریشه کاربر است که اجازه است برای انجام این کار مطلقا هر چیزی. بنابراین متوجه زمانی که من jharvard هستم، اگر من سعی می کنم به سی دی - چه یک دایرکتوری که؟ اوه، ریشه یک مثال خوب است. بنابراین سی دی، ریشه. اجازه رد. چرا که اگر ما در این لیست نگاه کنید - و دوباره، شما لازم نیست که به طور کامل این را درک کنید. اما این سه خط تیره می گویند که اجازه هر گونه دیگر نمی کاربر به این شاخه. و شاخه ای اتفاق می افتد تواند توسط کاربر ریشه متعلق به. بنابراین این واقعیت است که من jharvard و هیچ کسی است که ریشه ندارد به اجازه این شاخه، که بدان معنی است که من رفتن به دریافت اجازه را تکذیب کرد زمانی که من سعی کنید به سی دی را در آن. بنابراین، هنگامی که من ریشه، من اجازه داشته باشند انجام مطلقا هر چیزی، از جمله حذف فایل های ضروری به لوازم خانگی و از بین بردن تمام چیزی. پس از آن یک عادت بد برای وارد شدن فقط سرگردان در اطراف شما سیستم عامل به عنوان ریشه. من آن را انجام دهد به هر حال. سوالات؟ و من ریشه خارج شوید، اقامت به عنوان jharvard. OK. دستورات بیشتر مرتبط است. پس از بازگشت به دما ما، ولت دستور مخفف حرکت می کند. شما می توانید حرکت می کند. حالا ما می خواهیم به آن را ب، بنابراین در حال حاضر آن را به نام ب. یا شاید ما می خواهیم به حرکت ب تا یک پوشه. بنابراین در حال حاضر خالی این شاخه من به دایرکتوری خانه من می روم، و ما می بینیم که ب است در اینجا، به این دلیل که خانه دایرکتوری یک دایرکتوری از بود دایرکتوری که ب اید بوده است همچنین CP وجود دارد. بنابراین CP است بخش فوق العاده کپی، نقطه، متن. من می توانم آن را، نقطه، متن تماس بگیرید. در حال حاضر ما در هر دو بخش فوق العاده، نقطه، متن و بازدید کنندگان، نقطه، متن. این نیز بر روی پوشه ها کار می کند. I RF-ED یک فایل واحد. بنابراین CP - خب، اول اجازه دهید CP، TMP، tmp2 را امتحان کنید. بنابراین حذف شاخه tmp. بنابراین شبیه به کنترل از راه دور، رفتار پیش فرض است که بر روی پوشه ها کار نمی کند. و باز هم، شبیه به کنترل از راه دور، به طور پیش فرض رفتار - خب، گرفتن آن را به کار با دایرکتوری ها، فاصله-R فاصله دارد. بنابراین کپی کنید به صورت بازگشتی دما دایرکتوری به tmp2. و به این ترتیب در حال حاضر ما هر دو TMP و tmp2، و آن این است که مفید نیست از TMP خالی در وهله اول بود. Tmp2. حالا اجازه دهید TMP کپی کنید به tmp2. و ما می بینیم که tmp2 همچنین دارای فایل ، چرا که دایرکتوری و همه چیز در داخل آن دایرکتوری کپی شد. و است که می تواند تا حدودی مفید اگر، می گویند شما در حال کار در مشکل تعیین یک - و یا در واقع، مجموعه مسائل بعد از آن می باشد حتی مهم تر، به دلیل وجود دارد خواهد بود یک دسته کامل فایل ها و چیزها می شود. اما شما فقط می خواهم به، برای قسمتی از دوم، شما می مانند، همه حق با شماست، من رفتن به چیزی متفاوت امتحان کنید. اجازه بدهید من فقط کپی تمام pset1 من دایرکتوری را به نسخه پشتیبان تهیه pset1 به طوری که اگر من در نهایت و درهم کوبیدن چیز، من می توانم بازگشت به پوشه نسخه پشتیبان تهیه کنم. راه های مناسب تر از وجود دارد نسخه پشتیبان گیری از کد خود را، اما این است که همیشه یک راه سریع برای فقط مطمئن مطمئن شوید که شما یک کپی از چیزی که شما در مورد به تغییر است. بنابراین اکو همچنین یک دستور یکی کردن که نوع sillily فقط به اراده چاپ خط فرمان دقیقا همان چیزی است شما می خواستم به اکو. بنابراین اکو سلام. ما فقط چاپ سلام. اکو سلام جهان است. ما جهان را چاپ سلام. که می آید به استفاده از زمانی که شما شروع با ترکیب دستورات. و باز هم، انتظار نداریم که شما را به طور کامل درک این است، اما آن را چیزی برای دیدن. و پس از آن اگر شما گوگلینگ برای مثال یا شما متوجه می خواهید انجام دهید چیزی، آن می تواند مفید باشد. بنابراین اجازه دهید، به عنوان مثال، بنابراین LS، فاصله، ل. بنابراین در اینجا من خروجی را مشاهده کنید از دستور ls، فاصله، ل. و من می گویم، خوب، من می خواهم ذخیره است که به یک فایل. همه از این خروجی در اینجا، من می خواهم برای قرار دادن به یک فایل جداگانه. بنابراین این کمی بزرگتر از نماد چیزی است که ما قصد داریم به تماس. ما در حال هدایت خروجی در یک فایل. بیایید اه فایل تماس بگیرید، زیرا که آنچه که من تمایل به همیشه آن را. بنابراین در حال حاضر ما می بینیم که یک فایل اه حق در اینجا. و اگر آن را باز کردم، من را مشاهده خواهید کرد آن را دقیقا خروجی از دستور که من فقط فرار. و به همین ترتیب، شما می توانید - در صورتی که این خروجی به یک فایل، این بود این است که ورودی را از یک فایل. یک دستور چه است که من - JOSEPH: من فکر می کنم شما می توانید استفاده کنید کمتر یا بیشتر، احتمالا. ROB: اما چگونه در مورد تنها، اه کمتر؟ نمی دانم. اگر شما را به این سناریو آمده است، مانند این psets که آن را برای مفید وجود دارد. JOSEPH: شما می توانید لوله آن را به اکو. لوله فایل را به اکو به آن را ببینید. ROB: این لوله است. JOSEPH: متاسفم. ROB: بسیار خوب. پس این خروجی به یک فایل است. این است که متن را از فایل و انتقال آن به برنامه است. و شما همچنین می خواهید این پسر را ببینید. بنابراین این نوع از انجام هر دو در یک بار. و در واقع، من دو جدید معرفی دستورات فقط به استفاده از آن. تاریخچه یک فرمان دستی است که تنها است رفتن به نسخه قابل چاپ کردن یک لیست از هر چیزی که من تا کنون اجرا از خط فرمان. بنابراین ما در اینجا مشاهده کنید همه چیز را که من آن را در حال اجرا تمام این مدت. بسیاری از دستور ls است. و دستور مفید دیگر grep استفاده است که هدف آن است که به بیش از جستجوی متن به دنبال الگوهای، خوب، به دنبال هر آنچه که شما می خواهید آن را به دنبال. و به این ترتیب استفاده مفید در اینجا این است، می گویند ما می خواهیم برای گرفتن تاریخ. و من می خواهم برای دستورات نگاه که در آن I - چه یکی مفید بود؟ JOSEPH: [نامفهوم]؟ ROB: یا اجازه دهید فقط برای تمام نگاه لمس، به هر دلیلی. پس این است آنچه در آن خواهد شد. و شما به طور کامل ندارد درک کنند که. اما این ایده است که در اینجا، تاریخ ارائه شده است همان خروجی آن را در اینجا بود جایی که چاپ از کل تاریخ همه چیز من تا کنون اجرا شود. ما پس از عبور از که - بنابراین به جای چاپ آن را به روی صفحه نمایش، ما می خواهیم به تصویب است که به دستور grep است که به دنبال همه موارد از کلمه لمس کند. و به این ترتیب با استفاده از این ترکیب از تاریخ و grep استفاده از ابزار، I مشاهده می کنید، OK، اینجا همه از دستورات است که من تا کنون ام اجرا، و در اینجا یک تا حدودی رایج است. ما در پایین است. و آن را نیز به من دستور من فقط فرار بود که تماس کلمه در آن است. اما لوله چیز بسیار مفید است برای ترکیب چندین برنامه. و در واقع، آن را به یک میانبر برای بیایید من سابقه خروجی به فایل، اه، و اجازه دهید من با استفاده از اه فایل های grep به چه من می خواهم که به دنبال بیش. بنابراین لوله فقط یک میانبر است برای کسانی که به دو دستور. بله. SPEAKER 4: [نامفهوم]؟ ROB: بله. چیست - آه. اجازه دهید به تست. پس گربه، سگ، ماهی. بنابراین من می خواهم به grep استفاده. داش، R، دوباره، در حال رفتن به به صورت بازگشتی، بنابراین من می خواهم به فرود به پایین همه دایرکتوری ها. من می خواهم به صورت بازگشتی برای همه grep استفاده - و اجازه دهید من به طور موقت کنید این را از راه. من را نادیده گرفت. OK. بنابراین من می خواهم به طور موقت برای grep استفاده همه موارد از ماهی کلمه است. و بنابراین در اینجا آنچه من انجام است grepping به صورت بازگشتی برای ماهی کلمه است. و ستاره به معنای بیش از همه از این فایل در این شاخه. و پس از آن به من اجازه ممنوع، دلیل آن است که مجاز به خواندن که فایل خاص. اما این ماهی در فایل، آزمون در بر داشت. من هم می گویند، به طور خاص، تنها I می خواهم به در، اه فایل نگاه کنید، در که در این صورت آن را به هر چیزی پیدا نیست. من فقط می خواهم به در فایل، آزمون است. این ماهی را پیدا کنید. این فرمان بسیار مفید است به طور کلی می دانیم. برخی از دیگری به grep استفاده وجود دارد که قرار است به بیش برنامه نویس دوستانه، اما من تمایل هنوز پاییز پشت در های grep. سوالات؟ OK. آیا دستورات دیگر وجود دارد؟ آه. فقط یکی یکی کردن که من همیشه پیدا می شود لذت CAL است. بنابراین متوجه زمانی که من در این دوست داشتنی هستم حالت تمام صفحه، من هیچ مانند بالا نوار ابزار و یا هر چیزی. بنابراین کال فقط یک کمی خوب به من می دهد تقویم درست است در حال حاضر قطع، من فرض کنیم. اما فرمان خوب کم است. JOSEPH: این [نامفهوم] است. دستورات دیگر که شما ممکن است دیده می شود عبارتند از صدای جرنگ جرنگ و. ما بیش از آنها را در رفتن جزئیات بیشتر بعدا. اما اگر شما کار کرده ام در PSET، شما باید آشنا با آن. ROB: بسیار خوب. سوالات مطرح شده در چیز خط فرمان؟ بسیار خوب. بنابراین اجازه دهید تا به برخی از حرکت چیزهای C مربوط به. متغیر های ریاضی. OK. بنابراین درست مثل ما ریاضی در ابتدا به حال، شما همچنین می توانید ریاضی در C. استفاده قبل از اینکه ما دریافت کنید که به طور کامل، بنابراین متغیرهای. به یاد داشته باشید که هر زمان که شما اعلام متغیر مثال، int x یا شناور Y، شما باید به نوع آن را قبل از نام متغیر. بنابراین انواع دیده ایم که تا کنون بین المللی می باشد، شناور، دو برابر طولانی مدت، که من در واقع نمی دانند که اگر ما کرده ایم دیده می شود که تا کنون. برخی از آنهایی که دیگر وجود ندارد. ما کاراکتر را مشاهده کرده ایم. کوتاه وجود دارد، این است که می خواهم آن را در مقابل طولانی مدت را که آن را کوچکتر از یک عدد صحیح. ما همچنین رشته دیده می شود. پس چه ویژه در مورد رشته است؟ چرا من می گویم آن کاملا برای مثال، int؟ SPEAKER 4: این واقعا وجود داشته باشد. ROB: آره. بنابراین تنها دلیل ما باید رشته زیرا وقتی که شما انجام مخلوط، شامل cs50.h. و ما نمونه هایی از این بعد نگاه کنید - آه، این به آن رسیدگی نمی کند که به خوبی - که در آن cs50.h کاری را انجام در امتداد خطوط از نوع دف، ستاره کاراکتر، رشته است. و به طوری که گفت که ما حتی نمی می دانم آنچه یک ستاره کاراکتر نشده است. اما این می گوید ما می خواهیم رشته است. هر مکان شما شده است با استفاده از رشته، شما می تواند با استفاده از ستاره کاراکتر، که در واقع یک نوع این است که در زبان C وجود دارد. اما ما به آن دریافت کنید. اوه، و از آن می رود حق بازگشت. شسته و رفته. پس همین کار را با بولی که در آن درست و نادرست. که در واقع یک نوع ساخته شده است در در C. نمی در عوض، آن را فقط، آیا این صفر ارزش؟ سپس ما فقط در نظر آن را به صورت نادرست است. آیا این ارزش - خوب، این هر گونه ارزش است که صفر نیست؟ سپس ما در نظر آن درست باشد. به همین دلیل یک درست است، دو درست است، هر چیزی غیر صفر درست است. بنابراین کسانی که آن می باشد. سوالات مطرح شده در متغیر های اعلام و انواع متغیر و همه که؟ آره. SPEAKER 4: برای طولانی مدت، در این کتاب، آن گفت که تا به حال به اعضای هیات طولانی مدت. اما فقط طولانی طولانی کار می کنند؟ ROB: بنابراین این اصلاح کننده نوع. بنابراین اعضای هیات ایکس. بنابراین ما نیز می توان گفت بدون علامت دانشنامه هوشمند ایکس. ما می توانیم اعضای هیات کوتاه X می گویند. ما در طولانی مدت می تواند می گویند اعضای هیات ایکس. اما تقریبا هیچ یک از کسانی که همه چیز من فقط گفت، int بدون علامت، اعضای هیات کوتاه، طولانی اعضای هیات طولانی، شما می توانید خلاص شدن از شر هوشمند و آن را فقط فرض را بر که شما به معنای بین المللی. X پس بدون علامت، که به معنی - می دانید که چگونه به طور معمول با یک int، شما می توانید می گویند X برابر است با منفی 3؟ با یک int بدون علامت، شما می توانید نیست. JOSEPH: و دوباره، برای دوربین، سوال بود، چه تفاوت بین اعضای هیات طولانی و فقط طولانی مدت؟ ROB: آره. بنابراین من تقریبا هرگز ارسال بلند اعضای هیات طولانی است. من بلند بلند ارسال خواهد شد. JOSEPH: هر گونه سؤال؟ ROB: OK. یادآور کمی پس احمقانه است از این که چگونه ما یک متغیر اعلان و مقداردهی اولیه متغیر و اعلام دیگر متغیر و مقداردهی اولیه آن همه را در یک مرحله. پس از اعلام متغیر و متغیر مقدار دهی اولیه لازم نیست به اما می تواند در همان خط باشد. بنابراین ما از این اپراتورها ریاضی استاندارد که شما استفاده می شود - به علاوه، منفی، تقسیم، بار. همچنین باقی مانده، که ما آن را ببینید وجود دارد. است، وجود ندارد حداقل در C، ساخته شده است در قدرت به توان رساندن اپراتور هشتک. خب، یک اپراتور هشتک وجود دارد، اما این قدرت نیست. JOSEPH: اما این توان نیست، بله. ROB: آیا هشتک استفاده کنید به فرض که به این معنی است مانند مربع یا هر چیز دیگری. بنابراین برخی از چیزهایی که به خاطر در ذهن در مورد بخش. من ایستاده. پس پاسخ مقداردهی اولیه اعلام کرد. بنابراین ما گفت: پاسخ شناور برابر با 1 تقسیم بر 10. چاپ پاسخ به دو رقم اعشار. و این نوع از چیزی است که من که چون printf انسان برای کشف کردن که هک می کند٪، نقطه، معنی 2F؟ و این فقط بدان معنی است، به خوبی، نادیده گرفتن 0.2. و٪، F است که ما از برای چاپ به شناور. 0.2 گفت، چاپ است که شناور با دو رقم اعشار. بنابراین این برنامه دارای یک اشکال است، و شما ممکن است قبل از در برخی دیده اند، این قبل از دوره CS. اما آنچه که اشکال است؟ SPEAKER 5: صفر. ROB: آره. بنابراین، هنگامی که ما می گویند، جواب برابر است با 1 تقسیم بر 10، ما می خواهیم پاسخ به 0.1. اما 1 تقسیم بر 10، 1 است عدد صحیح، 10 یک عدد صحیح است. و تا زمانی که ما یک عدد صحیح تقسیم بر یک عدد صحیح، ما قصد داریم به عقب بر گردیم یک عدد صحیح. بنابراین 1 تقسیم بر 10 0.1 است. از آنجا که باید برای ما یک عدد صحیح را، آن را فقط به دور انداختن که محل دهدهی و می گویند که پاسخ 0 است. و تا زمانی که ما چاپ پاسخ در اینجا، آن را به چاپ 0.00. JOSEPH: و فقط به عنوان یک توجه داشته باشید، آن را در واقع می اندازد دور چه پس از نقطه اعشار. بنابراین اگر شما به جای به حال 6 تقسیم بر 10، شما ممکن است فکر می کنم که آن را به شما بدهد 0.6 و پس از آن شما می توانید به 1 دور تا. اما در واقع، آنچه که آن نوع اتفاق می افتد وظایف آن است که آن را قطره چه است بعد از نقطه اعشار. بنابراین 0.6 تبدیل می کند 0. ROB: آره. و ما رو تو کوتاه را برای آن می گویند. بنابراین هر زمان که شما به یک int بازیگران، دهدهی کوتاه است. بنابراین حل برای آن - وجود دارد در واقع دو. و من قصد دارم برای انجام این کار دوم، این یک راه حل بسیار ساده تر است. بنابراین یک ثابت است استفاده از شناور در بخش. و واقعا، شما تنها به یکی از آنها را شناور. اما آن را تا حدودی واضح تر فقط به هر دو آنها را شناور می باشد. بنابراین 1.0 تقسیم بر 10.0 است تقسیم دو شناور. بنابراین پاسخ پایان خواهد رسید تا بودن شناور، و غیره شما درست چاپ .10 در اینجا. چیزی است که به خوبی کار نمی کند در مورد آن است، خوب، مطمئن، آسان بود به اندازه کافی برای تبدیل 1 به شناور با ساخت آن 1.0. اما اگر به جای ما دو عدد صحیح به حال برای مثال، int x را برابر با 1 و y هوشمند برابر است با 10، و پس از آن ما می خواستیم برای انجام X تقسیم بر Y؟ پس از آن آسان است فقط به انجام X.0 و یا چیزی. بنابراین ثابت به ریخته گری است. بنابراین ریخته گری راه در C برای تبدیل است از یک نوع متغیر را به دیگری. بنابراین در اینجا، 1 یک عدد صحیح است. و با قرار دادن این شناور در مقابل آن، ما در حال ریخته گری 1 به شناور. و این تبدیل خواهد شد 1 به 1.0. و این تبدیل خواهد شد 10 به 10.0. و سپس همه چیز به طور مشابه رفتار نسخه های قبلی ما فقط نشان داد که در آن، به عنوان انتظار می رود، ما .10 و آن را چاپ کرد. و ما می توانیم این کار را با انجام متغیر، بیش از حد. بنابراین می توان گفت، شناور X تقسیم شناور y است. JOSEPH: هر گونه سؤال؟ ROB: پس درست مثل در ریاضیات به طور منظم، ما باید اولویت عملگر. بنابراین در کلاس ریاضی، شما به احتمال زیاد می به آن تماس بگیرید منظور از عملیات. در اینجا، اصطلاح رسمی است اولویت عملگر. اما اولویت عملگر یا بیشتر اپراتور، شما به عنوان انتظار می رود. بنابراین درست مانند ریاضی، 2 بار 10 است رفتن به نزدیک تر از گروه بندی می شود این 10 تقسیم بر 2 و پس از آن 2. منظور از عملیات، آن را به انجام 2 بار 10، 10 تقسیم بر 2، و پس از آن آن 20 به علاوه 5 به علاوه 2 را انجام دهد. پس از آن به عنوان انتظار می رود، و شما می توانید استفاده کنید پرانتز به عبارات گروه. شما می توانید کروشه استفاده کنید به عبارت گروه. آره؟ SPEAKER 5: آیا شما در واقع کافیست برگردید به عقب یک ثانیه؟ آیا می توانم یک int شما بازیگران را به یک رشته؟ ROB: بنابراین در C، شما می توانید هر چیزی بازیگران شما را به هر چیزی که شما می خواهید می خواهید. این بدان معنی نیست آن را چیز خوبی به انجام. بنابراین، هنگامی که شما یک int بازیگران به یک رشته، که بدان معنی است - و ما را به این را دریافت کنید خیلی بیشتر به طور کامل - JOSEPH: سالها بعد. ROB: من نمی خواهم برای گفتن زیاد بعد، بنابراین من سعی کردم به تغییر حکم من. ما به آن بسیار بیشتر به طور کامل دریافت بعد که واقعا زمانی که شما یک متغیر رشته ای - بنابراین یک رشته می تواند خودسرانه طولانی، درست است؟ و ما شده است و گفت که از نوع int است چهار بایت و بلند بلند هشت است بایت و یک شناور چهار بایت است. بنابراین یک رشته، درست مثل یک int، تنها تعداد معینی از بایت به آن. و خواهد شد که چهار بایت. اما یک رشته می تواند بسیار خودسرانه طولانی، درست است؟ پس سلام جهان در حال حاضر، در صورتی که 10 شخصیت یا هر چیز دیگری، که در حال حاضر رفتن به بیش از 4 بایت است من می توانم به یک رشته مناسب است. و به این ترتیب چگونه رشته واقعا کار این است که آنها که در آن در حافظه می باشد که رشته در حال نگهداری می شود. و بنابراین، در اینجا، وقتی که من می گویند رشته X برابر سلام جهان، در داخل از x است فقط گفت، آه، سلام جهان ذخیره شده است در این محل خاص در حافظه است. بنابراین اگر ما سعی می کنیم یک عدد صحیح به بازیگران به رشته، پس از آن ما در حال تلاش برای تفسیر برخی از بخش های تصادفی از حافظه به عنوان یک رشته است. و این تقریبا همیشه چیزهایی را می شکند. JOSEPH: اما در صورتی که دچار سردرگمی شما، ما می شود پوشش آن بیشتر در عمق بعد. ROB: آره. این جایی است که شما در حال رفتن به اشاره گر است. و این که بخش عمده است از دو هفته از این دوره. SPEAKER 6: آیا آن را مانند اشیاء کار در زبان های دیگر و یا نه واقعا؟ ROB: پس در زبان های دیگر، اشیاء می توان با استفاده از اشاره گر نشان داده است. این همان چیزی نیست، هر چند. هر گونه افکار؟ JOSEPH: شماره بدون افکار. ROB: OK. JOSEPH: بعدی. ROB: فقط با آن بروید. بسیار خوب. بنابراین باقی مانده. درست مثل ما باید به علاوه، منفی، تقسیم و تکثیر. بنابراین پیمانه یکی از شما ممکن است پیش از این دیده نشده است. و آن را فقط می گوید، به من باقی مانده. بنابراین 55٪ 10. باقی مانده از انجام 55 تقسیم 10 می شود 5. بنابراین 55٪ 10 5 است. و 3٪ 5 خواهد بود 3. 8٪ 8 0 خواهد بود. 16٪ 15 خواهد بود 1. JOSEPH: یک چیز را به یاد داشته باشید با این، بیش از حد است، آن را ممکن است به عنوان انتظار می رود کار نمی کند اگر شما استفاده از یک عدد منفی است. بنابراین منفی 5٪ 4، برخی از مردم ممکن است فکر می کنم که - آنچه را که شما فکر می کنم منفی 5٪ 4 خواهد بود؟ SPEAKER 5: یک. JOSEPH: بنابراین برخی از مردم می گویند یک، بعضی از مردم می گویند یکی منفی. اما آنچه - ROB: من نمی خواهد حتی گفت: یکی از آن. JOSEPH: دو، متاسفم. بعضی از مردم می گویند - ROB: سه. JOSEPH: سه؟ ROB: منفی - منفی پنج - چه شد - JOSEPH: سه، سه، سه. متأسفم. از آنجا که باقی مانده، به طور کلی، هنگامی که شما در دیده آن در جاهای دیگر، آن را معمولا به معنی بازگشت یک عدد مثبت، درست است؟ ROB: بنابراین، هنگامی که ما در ریاضی می گویند، 10٪ است، آنها تمایل به می خواهید را به شما بدهد - اگر ما 10 وزارت دفاع، پس ما به انتظار یک عدد بین 0 و 9. در اینجا، این است که این مورد نیست که شما خواهد شد اعداد منفی بازگشت. JOSEPH: بنابراین منفی 5٪ 4 خواهد بود منفی 1. ROB: اما این نادر است که شما وزارت دفاع کردن است اعداد منفی برای شروع با. پرش این. JOSEPH: آره. ROB: مه. OK. پس یه چیزی به اشاره در مورد شناور است آن را یک رفتار خطرناک است، اما شناور است دقیق نیست نمایندگی. پس از بازگشت به بایت دوباره، به یاد داشته باشید که از نوع int است که همیشه چهار بایت و شناور همیشه چهار بایت. بنابراین به عنوان مثال لوکاس خیلی خوب است. بنابراین، از مجموع 1 تقسیم بر 3 فکر می کنم. بنابراین 0.3333333. اگر من فقط 32 بیت، چگونه می تواند داشته باشد I ذخیره 0.33333 دقیقا؟ و شاید، به هر دلیل، به شما می گویند، همه حق است، خوب، اجازه دهید فقط می گویند که این 1011001 خاص، اجازه دهید فقط می گویند که باید 0.333333 باشد. خوب، شما تنها تعداد محدودی از آن بیت، پس از آن غیر ممکن است نشان دهنده هر نقطه شناور مقدار داده شده فقط 32 بیت. خوب، آن را غیر ممکن برای نمایش هر مقدار ممیز شناور با توجه به بی نهایت - خوب، با توجه به هر تعداد متناهی از بیت. بنابراین مسئله این است، خوب، زمانی که ما استفاده می شود چاپ با دو رقم اعشار، ما به درستی پاسخ 0.10 دریافت کنید. اما در زیر کاپوت، واقعا به عنوان نزدیک که ممکن است برای ذخیره 0.10 به عنوان کسانی که بیت می باشد. آیا این در اسلاید بعدی؟ یا نه؟ JOSEPH: آره، آن را که. ROB: Blegh، blegh. JOSEPH: بله، شما می توانید تنها تا جلو و یادداشت های کمی. ROB: من فقط رفتن به زوم در در آخرین در که. اوه خدای من، که [نامفهوم]. به طوری که تعداد. این چیزی است که چاپ خواهد شد اگر ما آن برنامه را اجرا. و توجه کنید که واقعا یک معامله بزرگ نیست اگر ما فقط مراقبت در مورد مثل 2-3 رقم اعشار. مثل ما فقط در اصل چاپ 0.10، و به همین دلیل ما هیچ کار اشتباهی دیدم. اما زمانی که ما شروع به وارد شدن به دقیق، تعداد دقیق که این نمایندگی، ما می بینیم که آن را نمی توانید دقیقا نشان دهنده 0.1. و بخشی از مشکل را در اینجا مانند است، همه حق است، که خوب، اما، خوب، اول، اگر ما سعی در انجام، پاسخ برابر برابر با 0.1؟ آیا این کار برای بازگشت به درست یا نادرست؟ و به این ترتیب آن را سخت می گویند. من فکر می کنم آن را در واقع ممکن است به راست. آیا اولین بار آن را - نمی دانم. پاسخ این است که هنگامی که شما شروع به خرید و فروش با مقادیر ممیز شناور، شما زیبا خیلی نباید با استفاده از برابری به دلیل این عدم دقت. و برای همه شما می دانید، آن را به صدم است محل دهدهی که ممیز شناور بود قادر به درستی اداره کند. و به این ترتیب برابری فقط با شکست مواجه خواهد شد و حتی هر چند تعداد - اگر شما شده است با استفاده از تعداد دقیق، اعداد باید اند دقیقا همان بوده است. این در طول دوره مانند 50 است محاسبات با استفاده از این شناور ارزش نقطه، خطا را می ساخت بالا و بالا و بالا، و چیزهایی که فقط اشتباه است. JOSEPH: و در آنجا واقعا بوده است نمونه معروف این اتفاق می افتد. مانند مهندسان ناسا این بدست اشتباه، باعث راکت به منفجر شدن در هوا پس از راه اندازی شده است. و تعداد زیادی از مسائل مانند آن. بنابراین آره. SPEAKER 6: وقتی به شما می گویند 0.3 F، آن را کوتاه بقیه؟ یا آن را دور بالا یا پایین؟ ROB: آیا دور آن را چون printf؟ JOSEPH: من فکر می کنم truncates چون printf. ROB: OK. بنابراین ما به طور مشابه می تواند در مقابل بروید جهت این که در آن، در این مورد، نزدیک ترین آن می تواند نشان دهنده 0.1 با این تعداد بود. نزدیک ترین آن ممکن است قادر به نشان دهنده 0.2 است در مقابل جهت، 0.199999996356 و یا چیزی. بنابراین اگر ما در این مسیر از رفت همه چیز، پس چون printf 0.3 F را بازگشت 1.99 به جای 2.00. JOSEPH: و من به طور کامل نمی مطمئن شوید که در آن. شما ممکن است بخواهید برای نوشتن یک کوچک، کمی برنامه فقط به بررسی که. ROB: اگر چه، آنچه که ما مطمئن هستند این است که اگر شما سعی به بازیگران که به هوشمند و ریخته گری به یک int است که رفتن به علت آن را برای کوتاه کردن اعشار، اگر شما سعی می کنید به بازیگران 1.9999999 به یک int، شما 1. و به این ترتیب شما به طور کلی باید از تابع دور در کتابخانه ریاضی. سوالات؟ OK. JOSEPH: پس از حرکت به شرایط و عبارات بولی. بنابراین شما قبل را دیده اند، این. و در واقع، به من اجازه دهید مطمئن شوید من کامپیوتر اینجا در فرمت مناسب. فضایی. با عرض پوزش، ما قصد داریم که باید به مقابله کمی با برش در لبه ها. اما بله، شما بچه ها را دیده اند، قبل از این در ابتدا. بنابراین این حق در اینجا بیان است است که در مورد استفاده از دستور شرطی. بنابراین جواب بزرگتر از صفر خواهد شد شما درست یا نادرست بگویید. و این واقعا مهم است، چرا که آنها به ما اجازه معرفی منطق به کد ما. بنابراین برای مثال، این یک برنامه است نوشته شده در ابتدا است که کاربر می خواهد برای یک عدد صحیح و به آنها می گوید که آیا عدد صحیح که آنها به شما داد بود عدد مثبت یا منفی است. و تبدیل بیش از اینجا برای دیدن است شما برای اولین بار از این بیانیه چاپ، من یک عدد صحیح را. و سپس شما از آنها بخواهید برای یک عدد صحیح. و سپس شما با استفاده از منطق شرطی بیش از در اینجا به بررسی کنید که آیا این تعداد در واقع بزرگتر از صفر بود یا نه. بنابراین در اینجا ما یک عبارت بولی در داخل یک مشروط اگر بیانیه. آیا هر گونه سوال وجود دارد؟ آیا هر گونه سوال در مورد آن وجود دارد؟ OK. پس بیش از فقط وجود دارد بیشتر از، البته. شما می توانید عبارات بولی ساخت با استفاده از بسیاری از چیزها شما را از در ریاضیات فکر می کنم. بنابراین بیشتر از. است که باید کمتر از باشد. متأسفم. و فاصله. ROB: خدای ناکرده شما آن را ترک کنند. JOSEPH: بسیار خوب. بنابراین بیشتر از، کمتر از، بیشتر از، یا، کمتر برابر از، یا مساوی. ما با استفاده از دو برابر برای بررسی برابری، چرا که تنها برابر با معنی انتساب، درست است؟ بله. و سپس ما همچنین می توانید انجام برابر نمی با استفاده از علامت تعجب، برابر است. و این نماد علامت تعجب می توانید نیز تمدید شود به طوری که اگر شما می خواهید برعکس هر نوع بولی بیان، شما می توانید انجام این کار. پس این درست ارزیابی خواهند کرد. تنها در صورتی که جواب کمتر است از یا برابر با صفر است. هر گونه سؤال در آن؟ OK. بنابراین شما همچنین می توانید این ترکیب عبارات منطقی و و منطقی یا. پس این فقط نماد و است، که باید شیفت، 7 باشد. و این نماد لوله است، که نه حروف L. این یکی که درست بالای کلید Enter کنید. بنابراین شما با استفاده از دو تا از این نماد منطقی و منطقی یا. پس این فقط باز خواهد گشت اگر درست پاسخ یک، دو، سه، یا چهار است. و این تنها به راست اگر پاسخ در هر دو طرف است فراتر از آن. پس از آن یک، دو، سه، یا چهار نیست. و راه را به شما استفاده خواهد کرد که در بیان - ROB: یا صفر یا پنج. JOSEPH: صفر یا پنج. متأسفم. بله، بله، بله. OK. و بیش از حال حاضر در اینجا، به همان شیوه شما را که بیان استفاده، کوچکتر سمت بیان اگر مشروط بیانیه، شما همچنین می خواهد آن را به استفاده از همان روش و تنها با قرار دادن آن در داخل از پرانتز از این بیانیه اگر. بنابراین این چون printf تنها آتش خواهد شد اگر پاسخ یک، دو، سه، یا چهار است. هر گونه سؤال در ترکیب عبارات؟ بنابراین یکی دیگر شرطی وجود دارد سازه ما تماس بگیرید اگر / دیگر. بنابراین اساسا، این در حال حاضر به معنی، OK، اگر چیزی که من می خواستم برای بررسی نبود درست است، پس از آن به دیگری بروید و انجام عمل دیگر. بنابراین در این مورد خاص، از او خواستم کاربر را برای یک عدد صحیح. آیا عدد صحیح بزرگتر از صفر؟ بله؟ خب، پس آنها را برداشت یک عدد مثبت. اگر نه، پس باید آن را داشته باشد منفی و یا صفر بوده است. بنابراین شما برداشت یک عدد منفی یا صفر در این مورد. بله. و یا صفر است. و سپس ما نیز اگر / دیگری، اگر و. بنابراین این امکان را می دهد ما یک دنباله از اجرا همه چیز تنها در صورتی که برای اولین بار از آنهایی که شکست بخورد. بنابراین در این مورد، در حال حاضر ما در حال ساخت یکی از آخرین انتخاب شما صفر است. بنابراین اگر آنها نه برداشت مثبت و نه یک عدد منفی، پس آنها باید صفر برداشت. پس از آن تنها می رود پایین زنجیره ای شبیه به این. بنابراین نمونه ای از چگونگی اگر متفاوت است - اگر / دیگر متفاوت است فقط دنباله ای از IFS. و این سوال رایج این است که درخواست مردم است، خوب، اگر شما مانند یک دریافت 95 در CS50، این خواهد شد برنامه به شما بگویم؟ SPEAKER 5: شما یک A. کردم JOSEPH: بله. شما هر کردم یکی از آن حق است. شما کردم، شما B رو، شما یک C و D، درست است؟ پس همه این دریافت مورد بررسی قرار به منظور. بنابراین در حالی که 95 بزرگتر از 90 است، آن را همچنین بیشتر از 80، آن را نیز بیشتر از 70، و آن را همچنین بیشتر از 60. بنابراین همه کسانی که نمرات شما کردم. و من فرض کنیم شما را فقط می خواهید A. راه حل این است که به جای کسانی که با دیگر / اگر است. بنابراین در این سناریو، آن را می بیند که 95 است بیشتر از 90، و سپس آن را بقیه ارزیابی نیست از اظهارات. هر گونه سؤال در مورد آن؟ بنابراین یکی دیگر از نوعی مشروط وجود دارد ساختار است که ما را در اینجا است که ما دستور switch تماس بگیرید. پس این اجازه می دهد تا شما را به اساسا بررسی چه مقدار از تعداد شما را به دستور switch است. بنابراین در این سناریو، ما در حال تغییر در N، و ما در حال گفت، آه، اگر n است یک، پس از چاپ است که بیانیه. و پس از آن شکست، که به معنی خروج خارج از دستور switch. اگر یکی نیست، پس، خوب، فقط در نهایت بررسی تمام موارد. و پس از آن را چک می کند اگر آن را به یک یا دو یا سه، و آن را چاپ درآمده است. و چیزی که این کلمه کلیدی به طور پیش فرض در اینجا وسیله ای است در صورتی که هیچ را وارد کنید از آن، پس از آن می گویند اشتباه است. بنابراین اجازه دهید می گویند من برای n بپرسید و کاربر به من می دهد چهار. خوب، آن را منطبق هیچ کدام از این موارد، پس از آن خواهد چاپ از چه چیزی در بخش به طور پیش فرض. بله، سوال؟ SPEAKER 5: آیا می توانم به شما استفاده از بولی عبارات به جای یک، دو، یا سه؟ JOSEPH: بنابراین سوال این است که می تواند به شما استفاده از عبارات بولی به جای یکی، دو و سه؟ و در C، من شما را باور دارم نمی تواند انجام دهد. اما در زبان های دیگر، که شما ممکن است روبرو می شوند در پایان از ترم مانند جاوا اسکریپت، شما می توانید. خوب، شما را مجبور به محاسبه اول که ارزش و سپس از آن استفاده کنید در تغییر بیانیه. آره؟ ROB: بنابراین بخشی از سود از سوئیچ اظهارات از فکر می کنم اگر شما این کار را به عنوان اگر / دیگری، به طوری که مانند اگر n برابر است با یک یا هر آنچه که برابر است با. دیگری / اگر n برابر برابر با دو، هر چه. دیگری / اگر n برابر است با برابر است با سه. پس راه برنامه را اجرا آن است که به ترتیب به پایین آن فهرست و بررسی کنید، آن N یک؟ نه. آیا نفر دو؟ نه. آیا N سه؟ آره. این کار را. در حالی که با اظهارات سوئیچ، آن را در واقع قادر به کامپایل آن را به واقعا سریع است. و به محض اینکه آن را می گوید سوئیچ، آن می گوید، همه حق است، نفر دو است، من هستم فورا رفتن به پرش به که در آن من دارم فرض شروع به اجرا. من قصد ندارم به اولین بررسی، است نفر یکی است، تعداد n دو؟ این می تواند بلافاصله شروع به انجام آنچه را که قرار است انجام دهد. و چون از آن، آن را نمی تواند را شرایط بولی. و یا دیگری آن را مجبور به انجام پی در پی، مثل، همه حق است، N است بزرگتر از صفر؟ دیگری است تعداد بیشتر از 10 یا هر چیز دیگری. JOSEPH: در این مورد، اگر شما استفاده می شود اگر / دیگری، اگر، سپس سوئیچ را اجرا تقریبا سه برابر سریع تر از اگر / دیگری، اگر. ما می توانیم سوئیچ در چنین سازماندهی راه که ما را پاره کند پس از هر یک از موارد. بنابراین در این مورد، من پارتیشن بندی اعداد است که ما را به یکی را انتخاب کنید و دو بودن تعداد زیاد نیست و سه بودن تعداد بالا. بنابراین در این مورد، اگر n یک یا دو است، آن را خواهد مورد ضربه و سپس آن را سقوط از طریق، به دلیل هیچ استراحت وجود دارد. و آن را در اینجا به پایان خواهد رسید. بنابراین اگر ما انتخاب یکی، آن را چون printf انجام و سپس شکستن به طوری که هیچ یک از این اجرا شده است. و البته، در صورتی که در سه وارد کنید و یا چیز دیگری، و سپس آن را به جست و خیز خواهد کرد آن و نه وجود دارد، و آن را به جای اجرا خواهد شد خط مربوطه. آیا هر گونه سوال در مورد آن وجود دارد؟ بله؟ SPEAKER 4: آیا شما یک خطا اگر شما حال استراحت پس از مورد یک اما آن را چیزی نیست برای آن کاری انجام دهید؟ JOSEPH: بنابراین سوال این است که شما خطا اگر شما به یک استراحت بعد از مورد یکی اما هیچ چیز برای انجام وجود دارد؟ و جواب این سوال منفی است. شما نمی خواهد در واقع یک خطا دریافت کنید. آره، میلی متر HMM. بنابراین به عنوان نوعی از یک تغییر کوچک در اینجا، من قصد دارم برای قرار دادن چون printf در اینجا. اوه. بنابراین آنچه که این چاپ در صورت من یکی در به عنوان ورودی قرار داده است؟ آره. این امر به شما بگویم آن را در تعداد دو برابر، درست است؟ از آنجا که آن را که مورد اول رسید، آن را نمی خواهد شکست، و آن را می گیرند از طریق به مورد دوم. هر گونه سؤال در مورد آن؟ ROB: آیا سوال دیگری داشته باشد؟ JOSEPH: OK، خنک شود. بسیار خوب. بنابراین چیز دیگری ما با یک وجود دارد عملگر سه تایی است که اساسا نحو متناوب به انجام اگر و پس از آن دیگر. و آن را به شما اجازه می دهد آن را تمام انجام در یک خط. بنابراین در برنامه های ویژه، من درخواست کاربر برای n. و اگر n بزرگتر از 100 است، من بگویید آنها که تعداد بالایی را برداشت. چیز دیگری من به آنها می گویم آنها برداشت تعداد کم. بنابراین ما می توانیم این نحو واقعا طولانی استفاده کنید، رشته، S، و سپس بررسی کنید اگر n است بیشتر از 100 و اختصاص آن درآمده است. اما ما می توانیم این بسیار کوتاه تر را با استفاده از این نحو عملگر سه تایی که شامل یک سوال علامت و روده بزرگ است. بنابراین علامت سوال است که اساسا پرسش، درست است؟ ROB: شاید زوم بر روی آن است. JOSEPH: بله. نقطه خوب. بنابراین این اپراتور سه تایی است. من برای اولین بار این سوال را بپرسید، است N بزرگتر از 100؟ اگر این است، پس من اجرای اول بخش قبل از روده بزرگ است. اگر نیست، پس من اجرا بخش دوم پس از روده بزرگ است. بنابراین اگر n بزرگتر از 100 است، سپس آن را بر میدارد بالا و قرار می دهد که به رشته ها. اگر N کمتر از 100 است، آن را بر میدارد کم و پس از آن قرار می دهد که به رشته ها. به طوری که این تکه بزرگ متراکم را به درست است که یک خط. SPEAKER 5: که محبوب است؟ JOSEPH: بله، در آن است بسیار محبوب برای چیزهایی که در آن اساسا شما می خواهید انجام یک تکلیف بر اساس نوعی از بیماری است. و در این مورد، ما در تلاش بودند به یک مقدار را به رشته است. این نه چندان - من حدس می زنم من واقعا ترجیح می دهند آن را در موارد دیگر. اما این به خصوص مفید برای این پروژه. ROB: این یک الگوی بسیار رایج است که در آن شما باید برخی از متغیر است که شما در حال رفتن به می گویند، اگر چیزی، مجموعه این متغیر به یک ارزش، دیگری، مجموعه ای این متغیر به مقدار دیگر. و این سناریو است که در آن استفاده از یک سه تایی. JOSEPH: و شما صرفه جویی تعداد زیادی از خطوط، درست است؟ و این فقط باعث می شود کد شما مسلما کمی بیشتر قابل خواندن است. بله، سوال؟ SPEAKER 6: برای یک سه گانه، می تواند شما را به، رشته ها برابر است، علامت سوال؟ و پس از آن شما می تواند داشته باشد، می گویند، پنج گزینه متفاوت است. و بسته به تعداد N شد، که یکی از کسانی که شما انتخاب می کنید؟ JOSEPH: بنابراین سوال این است که وجود دارد، مرتب کردن بر اساس نحو که در آن شما می توانید رشته ای را انجام دهد ها برابر است با N، و پس از آن بیش از دو گزینه پس از آن علامت سوال؟ و پاسخ ساده باشد، وجود ندارد واقعا یک راه خوب برای انجام این کار مگر اینکه شما را به لانه سه تایی چند می خواهم اپراتورها در داخل هر یک از دیگر. شما می توانید مانند N بزرگتر از 100 را انجام دهد، علامت سوال، و پس از آن دیگر عملگر سه تایی، N بزرگتر از 50، علامت سوال، و به این شکل آن است که راه. اما در این سناریو، کد شما گرفتن نوع خواندن و کثیف، و بهتر است که فقط به بیانیه اگر / دیگر در آن نقطه. ROB: و همچنین، به عنوان یک نکته، PHP اشتباه پیاده سازی سه تایی اپراتور به طوری که ternaries تو در تو حتی نه به عنوان آنها باید کار کنند. JOSEPH: آره. بنابراین آن را می شود کمی گیج کننده است، به ویژه هنگامی که شما به به زبان های مختلف. ROB: آن را گیج کننده به اندازه کافی که زبان غلط در مورد آن است. JOSEPH: پس در واقع، فقط برای روشن کردن، هر کس می دانم آنچه که ٪ s را انجام می دهد بیش از اینجا؟ هر گونه سؤال در مورد آن؟ من حدس می زنم فقط برای دوربین، از٪ s اساسا اجازه می دهد تا ما را به یک حفره یا سوراخ برای یک رشته است. و سپس در پایان، ما مشخص است که متغیر ما می خواهیم برای قرار دادن به این صاحب محل است. به طوری که اساسا طول می کشد ها و آن را در اینجا. و سپس آن را چاپ کنید، شما برداشت بالا و یا شما برداشت تعداد کم. OK. بنابراین حلقه ها به شما اجازه انجام همه چیز در حرکت دایره ای، درست است؟ شما ممکن است این در مواجه ابتدا به صورت برای همیشه لطفا برای حلقه و یا تکرار تا یا تکرار خاص چند بار. پس چرا این برای ما خوب است؟ خوب، در C، اجازه دهید می گویند ما باید این آهنگ های اجرا شده در ابتدا که آواز می خواند، این آهنگ است که هرگز به پایان میرسه. این فقط به در و در می رود و برای همیشه لطفا برای و برای همیشه. خوب، شما می توانید واقعا یک برنامه را که تا به تعداد نامحدود از چون printf اظهارات در آن، درست است؟ بنابراین در این سناریو خاص، یک راه که شما می توانید این کار را و آن را به چاپ برای همیشه لطفا برای است به به جای یک حلقه در حالی که استفاده کنید. بنابراین یک حلقه در حالی که اجرا خواهد شد چه در بدن از این دو پرانتز که متعلق به آن بر اساس آنچه این بیماری است. بنابراین در این مثال خاص، قبل از، اگر ما می خواهیم به چاپ این برای همیشه، چه ممکن است ما کاری انجام دهید؟ خوب، مطمئن، درست است؟ بنابراین این نوع از ترکیب ایده برخی از عبارت بولی همراه با یک حلقه. و ما در مورد بولی آموخته عبارات قبل از آن. بنابراین هر زمان که شرایط داخل که در حالی که درست است، این حلقه اجرا خواهد شد و در و در. و در این مورد، اگر ما فقط آن را عرضه با درست باشد، این باعث می شود بی نهایت حلقه که چاپ این آهنگ در و در و همانطور که قبلا بدون نظر داشتن برنامه ای است که دارای بی نهایت برخی از اظهارات چون printf، که است ممکن نیست. بنابراین قاطعانه تر، هر چند، شما می توانید این کار را با استفاده از متغیر و شرط. بنابراین اجازه دهید می گویند ما می خواهیم به تکرار عبارت، کاملا loopy، 10 بار. پس چه شما می توانید با یک حلقه در حالی که انجام شده است شما می توانید مقداردهی اولیه یک شمارنده خارج متغیر از در حالی که حلقه تا 10. و پس از آن در واقع، هر زمانی که شما به از طریق حلقه در حالی که، شما از چاپ بیانیه و پس از آن شما را کاهش می دهد ضد متغیر تا در پایان، در برخی موارد، زمانی که ما به اندازه کافی کم بار، 1 از من به اندازه کافی - و فقط برای روشن، منهای I منفی یعنی من برابر با I منهای 1. که اساسا من را پایین آورد به نقطه ای که یک بار من به صفر رسید، این شرایط است که دیگر درست و پس از آن به خارج از حلقه خارج می شود. بنابراین کاملا loopy تنها 10 بار چاپ می کند. هر گونه سؤال در مورد یک حلقه در حالی که؟ OK. پس راه ما می تواند انجام دهد وجود دارد چیزی است که ما فقط به شیوه ای مختصر با انجام آنچه ما تماس بگیرید برای حلقه. بنابراین یک حلقه برای متشکل از مقدار دهی اولیه، شرایط، و به روز رسانی، درست مثل قبل از ما بود در این حلقه در حالی که. بنابراین اجازه دهید نگاهی به. در این حلقه در حالی که، ما به حال مقدار دهی اولیه، پس از آن ما بود شرط است که ما بررسی می شود. و پس از آن ما به روز رسانی به حال گام به گام در بالای صفحه. با یک حلقه برای، این در واقع طول می کشد این سه چیز و آن را متراکم را به یک خط. بنابراین اولین چیزی که آن را در می کند برای حلقه مقدار دهی اولیه می باشد. و پس از آن شما یک نقطه و ویرگول و سپس شما انجام شرط، که من بزرگتر از صفر می رود بیش از وجود دارد، و پس از آن مرحله به روز رسانی. پس این می شود در انجام بسیار انتهای بدن حلقه. بنابراین این دو برنامه ها اساسا معادل آن. هر گونه سؤال؟ پس چه یک تفاوت است بین این دو؟ آیا می توانم هر کسی نقطه آن را؟ این ممکن است کمی لطیف است. این فقط یک تفاوت بسیار کوچک است. بله؟ SPEAKER 5: شما نخواهد بود قادر به استفاده از متغیر I در خارج از حلقه for [نامفهوم]؟ JOSEPH: دقیقا. بنابراین این چیزی است که ما برای به دست آوردن بعد دامنه متغیر نامیده می شود. اما در اصل، این اعضای هیات من زندگی در خارج از این حلقه در حالی که. پس یک بار این حلقه در حالی که انجام شده است اجرای، من قادر به استفاده از I بعد در در برنامه است. در حالی که با این حلقه، این نوع int I در داخل این مورد نظر برای حلقه. و چون آن را در داخل این بخش است از حلقه برای، که شروع می شود در پرانتز و به پایان می رسد با آکولاد بیش از وجود دارد. هر چیزی که در داخل اعلام کرد در اینجا می تواند در خارج مورد استفاده قرار گیرد. بنابراین اگر من سعی می کنم به استفاده از من در خارج، آن را خواهید من نماد اعلام نشده بگویم،. و در اصل، من نیست قادر به استفاده از آن. ROB: و خوب، 10 سال پیش، در به معنای واقعی کلمه در همه موارد، آکولاد می باشد آنچه شما استفاده می شود برای تعیین دامنه یک متغیر. بنابراین در آن وجود دارد، اعضای هیات I برابر با 10 در داخل این اعلام کرد مجموعه ای از آکولاد. و به این ترتیب پس از آن تا زمانی که شما سعی می کنید به استفاده از I پیش از این آکولاد، آن را خوب است. شما ممکن است ببینید وقتی که شما نوع، شما فاصله، خط تیره، استاندارد، برابر، c99 را ببینید. به طوری که نسخه های بعد از C این است که شورای همکاری خلیج فارس اجرا کرده است که همچنین به این میانبر. پس از این استفاده می شود به در C. نه اجازه و شما می توانید ببینید که چرا، چرا که این دانشنامه هوشمند من در خارج از این آکولاد است، اما آن را هنوز هم در نظر گرفته می در است دامنه این آکولاد. اما این یک چیز بسیار مناسب است، و پس از آن یک فرمت خوب است. JOSEPH: هر گونه سؤال؟ OK. پس چه مفید تر است که گاهی اوقات شما می خواهید مرتب سازی بر پویایی در حلقه خود را، درست است؟ شما نمی خواهید فقط لزوما چاپ کاملا loopy تمام وقت، شما می خواهید برای تعداد پایین از 10 و یا چیزی. و به این ترتیب شما می توانید متغیر شمارنده استفاده کنید در داخل آن حلقه نیز هست. و در این مورد، این برنامه فقط شمارش از 10 تمام راه را. و چه آن را چاپ کنید؟ این کار صفر نسخه قابل چاپ نیست، درست است، چرا که وقتی - بله، آن را نیز ندارد 11 نسخه قابل چاپ نیست. پس از آن صفر نسخه قابل چاپ نیست، چرا که وقتی I صفر است، به یاد داشته باشید، آن را ارزیابی شرایط قبل از آن در می رود برای اجرای حلقه اجرا می شود. و وقتی که من صفر است، این غلط است، بنابراین آن را چاپ نمی کند از شمارش کردن صفر است، آن را فقط چاپ شمارش پایین 10 تمام راه را به 1. اگر ما در واقع می خواست آن را به چاپ صفر، سپس ما یک علامت تساوی قرار داده بعد از این بیشتر از علامت. OK. بنابراین یک راه برای انجام اعتبار سنجی ورودی، که زمانی است که شما بخواهید کاربر را به انجام چیزی، شما می خواهید مطمئن شوید که آنها دستورالعمل خود را دنبال کنید، استفاده از حلقه در حالی که، درست است؟ بنابراین در این مورد خاص، من درخواست برای یک عدد مثبت و پس از آن من انتظار برای ورودی. و پس از آن من بررسی می شود در حالی که ورودی است کمتر از صفر است، در حفظ و درخواست آنها. بنابراین تا زمانی که آنها یک شماره به من بدهد که مثبت نیست، در حفظ و درخواست، در حفظ و درخواست، در حفظ و درخواست. اما آنچه که نوعی در مورد این عجیب و غریب؟ و یا چه به نظر می رسد مطلوب مورد نمی این ساختار در اینجا؟ هر کسی؟ بله؟ SPEAKER 6: شما در حال تکرار دستورالعمل دو بار. JOSEPH: راست. بنابراین ما باید دو جمله چون printf در اینجا، درست است؟ پس راه ما می تواند این فقط وجود دارد به یکی که به ما کد ساده تر برای خواندن و کمی تمیز تر. و پس از آن ما نخواهد بود به دو بار دریافت در نیز هست. و یکی از راه های که شما می توانید انجام این کار است با استفاده از یک حلقه انجام دهند، در حالی که. و یک حلقه انجام دهند، در حالی که اساسا شکل های مختلف از یک حلقه در حالی که در آن است هر آنچه در درون آکولاد می شود حداقل یک بار اجرا می شود. پس در اینجا، من اعلام می کنم، بین المللی ورودی، خارج است. و پس از آن من فقط می گویند، انجام این کار آموزش در حالی که ورودی کمتر از صفر است. پس از آن بازدید آیا برای اولین بار. همیشه این اجرا حداقل یک بار، پس از آن همیشه به درخواست کاربر خواهد شد برای ورودی حداقل یک بار. و سپس آن را مورد ارزیابی قرار داد که ورودی، و در ادامه در یک دایره. بله، سوال؟ SPEAKER 6: آیا راهی برای انجام آن وجود دارد [نامفهوم] انواع، اگر مثل شما می گویند، GetString، و کسی [نامفهوم] یک راه برای [نامفهوم] وجود دارد JOSEPH: بنابراین سوال این است که وجود دارد، راه برای انجام اعتبار سنجی ورودی در صورتی که کاربر در سمت راست قرار داده نشده نوع متغیر؟ بنابراین اگر ما یک int را بپرسید و آنها ما یک رشته به جای می دهد. و در توابع است که پیاده سازی می کنیم برای شما، GetInt، GetString در همه آن دسته از توابع، آنها در واقع در حال حاضر انجام این نوع ورودی از نوع عمومی اعتبار سنجی در زیر هود. بنابراین اگر شما با استفاده از توابع است که ما به شما داد، شما واقعا به. اما اگر شما می خواهید به نگاه بیشتر به چگونه شما می توانید در واقع انجام این کار، شما می توانید نگاه در زیر هود در فایل I/O-- فایل نیست، از توابع استاندارد I / O مانند خواندن از ورودی استاندارد و خروجی استاندارد. و شما می توانید یک حس بهتر از اینکه چگونه ممکن است انجام این کار. ROB: یک مسئله، هر چند به طور خاص، با به عنوان مثال شما گفت: از شما انتظار یک رشته و من وارد یک int. چگونه تفاوت به شما بگویم بین عمدا مایل رشته 123 در مقابل مایل هوشمند 123؟ بنابراین رشته، آن را تقریبا هیچ وجود دارد اعتبار سنجی، آن را فقط به هر آنچه که آنها وارد شده شما را تفسیر خواهد کرد به عنوان یک رشته است. هوشمند آسان تر است، چرا که بدون توجه به ورودی از کاربر را، شما همیشه در نظر گرفتن یک رشته است. و به طوری که رشته بعد از آن شما می توانید را بررسی کنید، همه این ها رقم در واقع عددی؟ JOSEPH: OK. هر گونه سؤال در مورد یک حلقه انجام دهند، در حالی که؟ ROB: اوه، و این نیز - رفتن به حوزه، تا حدودی مشترک اشتباه در تلاش است تا استفاده از برخی از محلی متغیر از درون انجام این کار، در حالی که حلقه در داخل از این وضعیت. و در واقع، اگر ما فقط از شر این و گفت: ورودی بین المللی برابر است با GetInt، سپس کامپایلر را در داد ما، به دلیل ورودی وجود ندارد خارج از محدوده این آکولاد. JOSEPH: و به همین دلیل ما نیاز به این ترکیب در اینجا. OK. بنابراین شما همچنین می توانید از یک استراحت حلقه در اوایل اگر شما می خواهید. پس این راه های مختلف است اجرای آنچه که ما فقط اجرا شده است. و به جای استفاده از شرایط در داخل پرانتز، ما با استفاده از اگر عبارت داخل بدن از حلقه انجام دهند، در حالی که. و در واقع، زمانی که ورودی در نهایت بزرگتر از صفر، ما گریز از حلقه. و به این ترتیب همه ما خواهد رفت راه را در اینجا. و شما می توانید ببینید که این احتمالا در این ترجیح داده می شود سناریو، به دلیل آن را کمی پاک تر بیتی و کمی کمی ساده تر را بخوانید. در حالی که این، شما نوع خطوط اضافی در آن است. این فقط یک کمی زشت، من حدس می زنم، به یک معنا. بله، سوال؟ SPEAKER 4: فقط استراحت می کنید شما از یک مجموعه ای از پرانتز؟ JOSEPH: راست. بنابراین سوال این است که تنها خواهد شکست شما را از یک حلقه؟ و پاسخ مثبت است. بنابراین اگر شما برای حلقه تو در تو، برای به عنوان مثال، اگر من اینترنت من برابر با 0 تا 10 و پس از آن برای اعضای هیات J برابر 0 تا 10، اگر من از درون شکسته حلقه، من هنوز هم خواهد رفت به حلقه بیرونی. بنابراین آن را حفظ انجام عملیات در خارج از. هر گونه سؤال در مورد آن؟ بله؟ SPEAKER 5: اما شکستن توابع برای آکولاد، نه برای دیگر اظهارات؟ [نامفهوم] JOSEPH: بنابراین سوال این است خواهد شکست و تنها برای حلقه به عنوان مخالف به بیانیه های دیگر مانند اگر؟ و بله، که این مورد است، چرا که شما در حال شکستن از یک حلقه، راست، به یک معنا. ROB: در اکثر قریب به اتفاق موارد، آن را این نوع اگر چیزی است، پس از آن شکستن. بنابراین شما لازم نیست که برای شکستن به درخواست اگر این است که بسته بندی در اطراف آن. و همچنین، این است که بسیاری از یک حلقه نیست، اما به یاد داشته باشید که سوئیچ ها نیز می باشد از توسط معافیت های شکسته. ما شاهد استراحت استفاده می شود با سوئیچ قبل از. JOSEPH: و شما همچنین می توانید از آنها استفاده کنید در حلقه در حالی که و برای حلقه. هر گونه سؤال؟ OK. پس تا بعد از توابع است. بنابراین شما ممکن است مورد استفاده قرار گیرد یکی از این BYOB بلوک در پروژه ابتدا شما. و این اساسا اجازه می دهد تا شما برای تعریف مجموعه ای از دستورالعمل ها را به دنبال داشته باشد. و آنچه که من در آن است اجازه دهید فکر می کنم برگشت به ریاضی، راست، جبر. شما باید به آنچه که ما یک تابع از x تماس بگیرید، برخی از متغیر، و اجازه دهید این می گویند تابع f از X برابر است با X به علاوه 5. بنابراین شما می توانید از f از X به عنوان این سیاه و سفید فکر می کنم جعبه است که طول می کشد 15 در و پس از آن تولید 20. بنابراین به طور کلی، یک تابع است چیزی است که برخی از ورودی ها و طول می کشد پس از آن تولید برخی از خروجی ها. و به همین دلیل عملکرد خوب است؟ آنها برای تعدادی از دلایل است. پس آیا کسی که می خواهید را به زخم زدن در چه سازمان به این معنی است؟ در شرایط که توابع مفید است؟ بله؟ SPEAKER 4: این باعث می شود شما کد خوانا تر. JOSEPH: راست. بنابراین یکی از چیزهایی است که باعث می شود کد شما خوانا تر، درست است؟ به جای داشتن برای مثال، int x را برابر X زمان X زمان x، من می توانم مکعب از x داشته باشد، است که قابل خواندن بیشتر و بیشتر قابل فهم برای خواننده. سازمان همچنین از نظر تقسیم کردن کد خود را به کنترل بخش، به طوری که به جای تلاش برای اجرای این همه در یک بخش طولانی در اصلی، شما نوع می توانید آن را تقسیم کردن به مانند، خوب، اجازه دهید ارسال یک تابع مکعب چیزی، اجازه دهید ارسال نامه عمل به میدان چیزی. به این ترتیب شما می توانید آن را به کوچک تقسیم، قطعات کوچک است که شما می توانید به مقابله با به عنوان تلاش برای مقابله با مخالف یک مشکل بزرگ همه در یک بار. ROB: و یا حتی کوچک، قطعات کوچک است که شما و شریک زندگی می تواند مقابله. JOSEPH: آره. ROB: بنابراین به جای هر دو از شما در تلاش برای کاشتن یک عمل در همان زمان. JOSEPH: ساده. هر کس می خواهید را به حدس؟ بله؟ SPEAKER 5: بیشتر تکرار. JOSEPH: راست. بنابراین آن چیزی است که شما می توانید با انجام ساده سازی است که این نوع در خطوط همان مجدد قابلیت استفاده این است که یک بار من ارسال یک تابع مکعب، من می توانم فقط استفاده از آن و بیش از بیش و بیش از دوباره در برنامه من به جای تایپ کردن X برپایه X برپایه X بیش از و دوباره و دوباره. و ساده در اینجا نیز تنها به معنی آن را می سازد مرتب سازی بر اساس کد شما از ساده تر برای اشکال زدایی یک بار شما را تقسیم این تا به توابع. از آنجا که پس از آن شما می توانید که در آن ترجمه و بومی سازی مشکلات خود نوع است. هر گونه سؤال؟ بنابراین یکی دیگر از ایده انتزاعی است، درست است؟ این جعبه سیاه و سفید. مثل آیا می دانید GetInt می کند برای دریافت ورودی از کاربر؟ ما واقعا به شما گفته، درست است؟ همه ما به شما گفته ام GetInt می کند دقیقا همان چیزی را می گوید آن را ندارد. بنابراین، اگر به شما بگویم که چگونه کار می کند، شما هنوز هم می دانم. بنابراین در این مورد خاص، این است که یک تابع را چهار برابر می کند چیز های متفاوت را به عنوان ورودی برای تولید یک خروجی. و شما می توانید یک عدد چهار برابر با ضرب آن چهار. یا شما می توانید آنچه ما تماس بگیرید کمی تغییر آن توسط دو. و ما رو تو این پوشش کمی بعد. و هیچ نیازی به دانستن وجود دارد که چگونه این تابع در واقع کار می کند تا زمانی که آن با این نسخهها کار به عنوان اعلام کرد. بنابراین در زیر هود، من می تواند مانند، بازگشت به زمان ورودی هشت تقسیم بر دو. و شما نمی دانم، درست است؟ همه شما نیاز به دانستن است آن چه آن را می گوید. به طوری که چیزی مفید در مورد انتزاع. و یک چیز دیگر نوعی از این ایده است از بومی سازی کد خود را به یکی بخش خاص است. بنابراین اگر شما دارای یک مشکل، شما نمی باید همه چیز را از کد شما تلاش برای رفع که در آن مشکل بود. بنابراین در این مورد، من اجرا مکعبی اشتباه است. من فکر کردم مکعب بود ضرب بر سه. بنابراین در این مورد، این یک برنامه است که فقط با سه ضرب در همه جا. و یکی دیگر از برنامه است که وجود دارد مکعب عامل را به یک تابع. و به این ترتیب در حال حاضر اگر من می خواهم به رفع اشتباه من در اینجا، من به تعمیر هر خط کد را در این برنامه است. در حالی که از سوی دیگر، اگر من با استفاده از تابع، من فقط نیاز به تغییر چه چیزی در یک مکان اشتباه بود. بنابراین در علوم کامپیوتر، ما ورودی ها و خروجی تماس بگیرید. ورودی ها پارامتر نامیده می شود و یا استدلال، و خروجی هایی به نام ارزش ها بازگشت. و خواهیم دید که چگونه این به ما کمک می کند تا مرتب سازی بر از در دوم تعریف یک تابع. این یک تعریف تابع است برای cubing. پس از آن طول می کشد یک ورودی، و پس از آن آن را می گرداند که بار تعداد خود را سه بار. بنابراین اجازه دهید شکستن این پایین. بنابراین ما باید یک ضربه سر تابع، که اساسا متشکل از سه چیز. بنابراین ما از این پارامترها، که می باشد، که من قبلا گفتم، ورودی به این تابع. و بعد ما تابع خود یک نام بدهید. در این مورد، آن را به مکعب نامیده می شود. و بعد ما چه نوع مشخص از مقدار بازگشتی است. بنابراین در این مورد، تابع مکعب من طول می کشد در یک عدد صحیح و همچنین یک عدد صحیح را برمی گرداند. بنابراین اگر من در دو عبور، دو یک عدد صحیح است، آن را می گرداند هشت به من، که یک عدد صحیح است. بنابراین پارامتر نام نوع بازگشت. سوالات در مورد آن؟ و پس از آن مقدار بازگشتی است که در واقع در پایان با گفتن بازگشت مشخص و پس از بازگشت هر چه حاوی مقدار بازگشتی. بنابراین در این مورد، اگر ما آن همه قرار داده با هم، یک تابع در طول می کشد پارامترهای، آن را به نام چیزی، و آن چیزی است که نوع را بر می گرداند که ما می گویند آن خواهد بود. هر گونه سؤال؟ پس چگونه ما استفاده از یک تابع؟ خب، ما نوشتن یک تابع و سپس ما استفاده از آن در برنامه های ما، درست است؟ بنابراین من آن را به نام مکعب، و پس از آن من می توانم مکعب استفاده کنید. اما آنچه مهم است به یاد داشته باشید که مسائل مربوط به نظم است. اگر I مکعب زیر اصلی، آن را قصد به مکعب. و در این مرحله، هیچ چیز وجود دارد به نام مکعب در برنامه، و آن را فقط رفتن به مثل، من می شود هیچ ایده چه چیزی مکعب است. پس از آن به شما خواهد گفت، ضمنی اعلام عملکرد. این خطا است که نشان می دهد تا است. و به این ترتیب در این مورد، مکعب زیر اصلی، پس آن را نمی در مورد آن بدانند. SPEAKER 5: پس اصلی است که معمولا آخرین تابع تعریف شده؟ JOSEPH: بنابراین سوال این است، است اصلی که معمولا آخرین چیزی که شما می خواهم تعریف؟ و هیچ. علت این است که معمولا اصلی دوست به در بالای صفحه باشد، درست است؟ از آنجا که اولین چیزی که شما را می خواهید برنامه نویس باز کردن برنامه برای دیدن. و به این ترتیب چگونه می توانم به این موضوع ما را حل کند ما می خواهم اصلی در بالای صفحه است، اما توابع است که ما می خواهیم، ​​ما آنها را می خواهم به زیر اصلی است هنوز قادر به استفاده از آنها را در داخل از اصلی؟ خب، ما از آنچه ما تماس بگیرید نمونه تابع. پس چه نمونه تابع اصل است که آن را برای اولین بار طول می کشد چه امضا و یا هدر تابع از آنچه ما می خواهیم برای اجرای پایین در اینجا، و ما آن را در قرار داده بالای برنامه. بنابراین در این مورد، ما می گویند که، خوب، بعد از آن در برنامه های ما، ما قصد داریم را به یک وعده برای پیاده سازی این تابع به نام مکعب هوشمند، که طول می کشد ورودی عدد صحیح. بنابراین در حال حاضر، به دلیل آن است که در بالا اصلی، اصلی، آن را می گویند، آه، خوب، بعد از آن در برنامه، که برای رفتن به وجود دارد، بنابراین من می تواند به آن مراجعه کنید، پس من فقط اجازه دهید آن را از طریق رفتن در حال حاضر. و پس از آن در پایین، ما مکعب اجرا می کنند. و بعد اصلی فقط می گویند، خوب، آن را از لینک مرتب سازی بر اساس این دو نماد را با هم. و ما رو تو پوشش آنچه که به معنی بعد. و پس از آن می دانم که این عملکرد مکعب است که آن را باید استفاده کنید. ROB: [نامفهوم] در مورد تمایل اصلی در پایین و یا بالا، I هر دو دیده می شود. چیزهایی که فقط می خواهم وجود دارد برای قرار دادن اصلی در پایین. اما یک بار یک پروژه به خصوص می شود بزرگ، معمولا اصلی این است که در یک پرونده همه خود را دارد. و در آن نقطه، مانند هوشمند خط مکعب خواهد بود - داخل stdio.h یک دسته خطوط فقط می خواهم که هوشمند اعضای هیات مکعب خط ورودی. و به این ترتیب آن دسته از نمونه های اولیه همه چیز به شما تمایل به قرار دادن به فایل های سرآیند، در آن نقطه، مهم نیست. خب، مهم نیست. کسانی که همیشه در بالای صفحه بروید. و اگر اصلی این است که یک فایل خاص آن نیست، شما لازم نیست که در مورد قرار دادن نگران نمونه های عملکرد فردی در فایل. JOSEPH: و ما به آن کمی کنید کمی بعد وقتی راب شروع به صحبت کردن در در مورد کامپایل. و به این ترتیب نیز وجود دارد تفاوت بین پارامتر و آرگومان. و پارامتر فقط آنچه است ما این ورودی تماس بگیرید زمانی که تابع تعریف کنیم. و ما آن را یک آرگومان زمانی که ما در واقع آن را به تابع منتقل می کند. بنابراین در این مورد، این یک پارامتر است، همانطور که ما قبل گفت. و هنگامی که ما در واقع آن را استفاده بیش از وجود دارد، مکعب از x باشد، آنگاه x خود است آنچه ما استدلال تماس بگیرید به مکعب تابع. ROB: بنابراین استدلال پارامتر هستند - است این تمایز وجود دارد، بسیار به جای یکدیگر اشتباه گرفته شود. در این مرحله، به من، آن را مانند یکی از این این واژه ها که زمانی که من آن را ببینید در وحشی، من نمی تواند کمک کند اما بلافاصله سوال اینکه آیا آنها در حال استفاده از آن را در زمینه درست است، چرا که تفاوت اندازه کافی ظریف است که فقط هر کس تمایل دارد - من تقریبا همیشه استدلال می گویند صرف نظر از آنچه منظور من است. JOSEPH: و توابع نیز مفید هستند برای آنچه که ما عوارض تماس بگیرید. بنابراین یک تابع می تواند هیچ ورودی را، و همچنین می تواند هیچ خروجی تولید کند. بنابراین در این مورد خاص، من هستم تعریف یک زیرروال است که هیچ مقدار بازگشتی. و به منظور مشخص است که، استفاده می کنیم آنچه که ما از درجه اعتبار ساقط تماس بگیرید در اینجا. و به این ترتیب از عوارض جانبی این تابع این است که آن را فقط چاپ مواد را به خارج از صفحه. این کار در واقع هر گونه را ندارد ورودی، و آن را نمی کند در واقع تولید هر خروجی. اما این می تواند به معنای مفید باشد اگر شما می خواهید، برای مثال، اشکال زدایی چیزی در برنامه شما، اگر شما می خواهید برای نوشتن یک زیرروال کمی که چاپ، اجازه دهید بگویم، مطالب از حافظه و یا چیزی. و به این ترتیب این عوارض گاهی اوقات خارج از چارچوب مفید از درست مثل ورودی و خروجی. هر گونه سؤال؟ و برای پایان دادن به این بخش خاص، چه این برنامه انجام دهید؟ من به شما بچه ها یک زن و شوهر از دادن ثانیه از طریق آن را بخوانید. در سطح بسیار اساسی، آنچه که ما به خواهید می گویند این است که آن سواپ x و y، درست است؟ پس چگونه بسیاری از شما در واقع فکر می کنم این x و y مبادله؟ بالا بردن دست خود را. هیچ کس. OK. چه کسی فکر می کند که آن را x و y عوض نمی کند؟ و مجموع آن بود نه تمام اتاق. بنابراین برخی از مردم مطمئن نیستید. OK. این معقول است. بنابراین اجازه دهید از طریق چه اتفاقی می افتد زمانی که به شما در واقع توابع اولین تماس در به منظور پاسخ به این سوال. پس این چه حافظه است مرتب کردن بر اساس به نظر می رسد. این نوع مانند یک مدل ساده از آنچه در حافظه به نظر می رسد مانند وقتی که شما یک برنامه را اجرا کنید. بنابراین چیزی به نام وجود دارد پشته را در اینجا و چیزی به نام پشته. و این نسبت به رشد وسط حافظه است. بنابراین در این مورد خاص، هنگامی که شما یک فراخوانی تابع، آن می شود در پشته قرار داده است. و پس از آن هر آنچه در آن موجود تابع در آنچه ما تماس بگیرید که باقی می ماند قاب پشته تابع. و به این ترتیب برای به دست آوردن یک نمایش زیبا از این، let's - به عنوان مثال، ما تا به حال برنامه اصلی پیش از آن. و در داخل از اصلی، ما مکعب نامیده می شود. بنابراین اصلی اول در پشته به قاب، دلیل آن است که تابع اول است که به نام. و وقتی مکعب در داخل به نام اصلی، آن را می شود در بالای اصلی قرار داده در داخل حافظه. بنابراین آنچه که شما در اینجا باید توجه کنید که مکعب است دارای پارامترها و آن خود را مردم محلی خود. بنابراین، هنگامی که شما در واقع چیزی تصویب به یک تابع، پارامتر که آن می شود نسخه ای از آنچه بود در از اصلی منتقل می شود. و به نوعی از این توضیح، اجازه دهید راه رفتن را از طریق برنامه. بنابراین ما باید از پشته این است فقط بخش پشته. و چه کار می کنیم این است که ما برای اولین بار مقداردهی اولیه x و y به یک و دو. بنابراین ما باید از این جعبه ها کم است. آنها در پشته اصلی نشسته فریم در پشته. آنها حاوی یک و دو. در حال حاضر ما مبادله تماس بگیرید. چه اتفاقی می افتد این است که ما تصویب x و y به مبادله و مبادله نسخه های خاص خود را به وجود می آورد از این متغیر استفاده در داخل قاب پشته آن است. بنابراین در حال حاضر بیش از وجود دارد، ما یک، که شامل ارزش که x به حال، و ب، که حاوی مقدار که y به حال. بنابراین یک، دو. و شما متوجه خواهید شد که این جداگانه است از x و y در داخل از اصلی. بنابراین ما در حال حاضر به طور موقت ایجاد متغیر شامل. ما مجموعه ای برابر با ب، پس از آن تغییرات 1-2. و سپس ما مجموعه B برابر به درجه حرارت، که یکی است. و پس از آن در حال حاضر ما خروج از از این تابع. هنگام خروج از تابع، قاب پشته می شود ظهور را از پشته. ما به آن فشار. شما با فشار یک قاب پشته در پشته و شما اگر در خارج از پشته پاپ. و بنابراین آنچه اتفاق می افتد همه چیز را که در آن پشته مرتب سازی بر قاب تنها بود تا در شعله های آتش می رود. و به طوری که دیگر وجود ندارد. اما چیزی که متوجه ما؟ ما در واقع هرگز تغییر مقادیر x و y، درست است؟ بنابراین کسانی که باقی ماندند محلی به اصلی. و با عبور چیزها را مبادله ما در واقع هرگز این ارزش ها را تغییر داد. و چه چیزی ما این را؟ ما این عبور با مقدار تماس بگیرید. بنابراین در C، هنگامی که شما عبور همه چیز را به توابع، آن را به آنها عبور می کند با مقدار و باعث می شود یک نسخه از آنها را برای تابع استفاده کنید. و ما در مورد چیزی به نام یاد بگیرند عبور از مرجع بعد، اما این روش شما می توانید این مشکل را حل کند. اما ما نمی خواهد نگران که تا بعد. ROB: و در واقع، که مدت، عبور توسط مرجع، بنابراین C هم ندارد عبور از ارجاع. C به طور انحصاری است با مقدار عبور. مهم نیست که چه شما انجام دهید، شما همیشه عبور یک کپی از چیزی. این درست است که، مثل من نوعی از ذکر که پیش از این با اشاره گر و یک رشته است که واقعا فقط چهار کلمه در ادامه متن با اشاره به جایی در حافظه است. خوب، اگر من این رشته و آن را به من گفتن که که در آن رشته است - خب، اگر من این اشاره گر را به این محل در حافظه، پس از آن من می توانم عبور کپی از که اشاره گر به تابع، و که تابع هنوز هم می داند که در آن در حافظه آن است. بنابراین هر دو از این اشاره گر ها اشاره به همان محل در حافظه و این که چگونه ما در حال رفتن به قادر برای تغییر چیزهایی فراتر از قاب پشته فعلی. JOSEPH: آیا شما می خواهید به انجام تدوین؟ ROB: نه، 5:30. JOSEPH: OK. این 05:30 می باشد. OK. بنابراین ما کامپایل I در حدس می زنم پوشش در بخش بعدی، و یا بخش خود را رهبر خواهد شد که در آن نقطه. و - ROB: هر گونه سؤال؟ JOSEPH: هر گونه سؤال؟ بله؟ SPEAKER 5: با استفاده از رشته ها از CS50، هر توابع است که ما می خواهیم برای استفاده از کسانی که شما مانند توابع C باشد. CS50 در و رفته است هر گونه اضافی. ROB: صحیح. هر یک از C مانند [نامفهوم]، شما که کسانی که در رشته ما استفاده کنید. JOSEPH: و یه چیزی من می خواهم ذکر است که ما یک راهنمای سبک برای این کلاس. ROB: اوه، آره. JOSEPH: بنابراین اگر شما از یک آمده ام برنامه نویسی پس زمینه قبل از، شما ممکن است کنوانسیون های خاص زمانی شما در حال نوشتن کد مانند قرار دادن پرانتز روی خط و یا خاص همان راه های ایجاد تورفتگی متن، و یا برای نامگذاری متغیرها خود را. در این کلاس، ما می خواهیم به دنبال راهنمای سبک خاص فقط به خاطر اینکه، خوب، اگر شما بیرون بروید و کار در صنعت، شما به انتظار می رود به دنبال راهنمای سبک از شرکت که در آن شما برای رفتن. مانند به عنوان مثال، فیس بوک من فکر می کنم دارای نوع خاصی از نامگذاری کنوانسیون. و این تفاوت بین شتر وجود دارد متغیرهای پوشش و درست مثل جدا آنها را با خط. و همچنین، من فکر می کنم مهمتر از همه، مانند به عنوان مثال، دندانه، درست است؟ ما آکولاد شروع که در آن این بیماری است، و آنها در خط بعدی می باشد. و ما همچنین آکولاد قرار داده حتی اگر آن فقط یک خط است. و بسیاری از اوقات، راه برای انجام این کار وجود دارد آن که در آن شما می توانید از این پرانتز ترک خاموش اگر آن را فقط یک خط است در زیر بیانیه اگر. اما در این کلاس، ما می خواهیم به دنبال راهنمای سبک خاص خیلی شما استفاده می شود به این نوع از چیزی. ROB: آره، و سبک 50 در حال رفتن به اجرای این راهنمای سبک، و ما رفتن به استفاده از سبک 50 به کلاس کد شما. بنابراین آن را می سازد همه چیز را برای ما آسان تر و امیدوارم باید مسائل را ندارد که بسیار بدتر برای شما با توجه به سبک استاندارد باید که شود غیر واقعی است. JOSEPH: و در نهایت، برای پیدا کردن سبک راهنمای، به manual.cs50.net/style بروید. و آره. SPEAKER 4: آیا شما قصد برای به اجرا درآوردن هر کاراکتر در هر خط؟ ROB: بله. JOSEPH: متاسفم، بچه ها. ROB: که مانند یکی از تنها کسانی است. در این مرحله، I OK با 120 هستم. I OK با گفتن 120 هستم کاراکتر در هر خط. من درک می کنم وجود دارد که برخی از محدودیت. من فکر می کنم 80 آنقدر کوچک است، اما ما آن اعمال. JOSEPH: من شخصا فکر می کنم با C، 80 کاراکتر OK تر است. هنگامی که شما شروع به گرفتن به دیگر زبان هایی مانند جاوا اسکریپت و PHP، نه بنابراین معقول و منطقی به تنها محدود آن را به 80 حرف می باشد. OK. خوب، این بخش فوق العاده بود. آیا کسی می خواهم آب نبات؟ SPEAKER 4: بله.