[موسیقی] JASON HIRSCHHORN: OK، همه. بخش خوش آمدید. این CS50 است، بسیار ما بخش اول فوق العاده است. همانطور که همه شما می دانید، هفته آینده به طور منظم بخش آغاز خواهد شد، اما این هفته ما همه با هم هستیم. خودم وجود دارد. نام من ... جیسون است. من یک مدرس دانشگاه، در رشته علوم کامپیوتر هستم. ما اندی، که سر TA از CS50 است. و Scaz، پروفسور برایان Scassellati، او استاد علوم کامپیوتر است. ما سر CS50 در دانشگاه ییل. شما همیشه می توانید ایمیل ما heads@cs50.yale.edu. ما را در سخنرانی باشد. ما در ساعات اداری باشد. اگر تا کنون هر چیزی وجود دارد که ما می توانیم برای شما انجام دهید، هر چیزی که شما نیاز دارید، در صورت تمایل به رسیدن به ما. بنابراین چه می خواهیم به انجام امروز؟ و یا قبل از آن، چه تا در این هفته؟ بنابراین ساعات اداری دوشنبه، سه شنبه، چهارشنبه و پنجشنبه، 8:00-11:00. یک برنامه را بر روی وب سایت وجود دارد. بخش ها، مثل من ذکر شد، شروع هفته آینده. و شما در پیدا کردن آنچه این هفته زمان بخش خود است، چه روزی است، و کسی که TA شما است. مجموعه مسئله 1 است که به علت در روز پنج شنبه در ظهر، جمعه در ظهر با یک روز دیر است. بله، شما باید نه روز دیر است. و نه مجموعه مشکل وجود دارد. و تنها می تواند یک استفاده کنید اواخر روز به ازای هر مجموعه ای مشکل. بله، در واقع، همه مشکل مجموعه در ظهر به علت جمعه. است که همه. که جزئیات بیشتر در مورد برنامه درسی هستند. هر جمعه، ما ناهار. ما دوست داریم به این بزرگ البته احساس می کنم کمی کوچکتر است. بنابراین شما خوش آمدید به RSVP است. ناهار رایگان با همکار همکلاسی ها و کارکنان. cs50.yale.edu/rsvp. همه این چیزها که من بر روی صفحه نمایش، و بیشتر، شما می توانید پیدا کنید و یا cs50.yale.edu cs50.harvard.edu، اگر شما به دانشگاه هاروارد رفت و در حال تماشای این آنلاین. همچنین در آن وب سایت، وجود دارد یک تن از منابع را برای شما. هر سخنرانی نه تنها این ویدئو از سخنرانی، بلکه اشاره می کند. کسی خواهد تماشای سخنرانی و یادداشت برداری برای شما. بنابراین شما فقط می توانید پرداخت توجه در طول سخنرانی ها، یا شما می توانید یادداشت های خود را با استفاده از / ما اشاره به مکمل یادداشت خود را. می اسلاید آنلاین وجود دارد. منبع همه چیز code-- دیوید بیش از رود در سخنرانی، و یا Scaz می رود بیش از سخنرانی، که کد منبع در دسترس آنلاین است همچنین، به عنوان مثل، فیلم ذکر شده است. بخش ها، به همین ترتیب، تمام خواهد شد فیلم برداری می شود. همه کسانی که اسلاید در دسترس خواهد بود. همه از آن کد برای شما در دسترس خواهد بود. شلوارک در وب سایت وجود دارد که در آن اعضای هیات CS50 صرف پنج تا 10 دقیقه رفتن را از طریق موضوعات برای شما. برخی از کسانی که شما در حال حاضر مواجه می شوند در مجموعه مشکل. ساعات اداری، همانطور که اشاره کردم، دوشنبه از طریق پنج شنبه ها، 8:00-11:00. مطالعه CS50 یک منبع فوق العاده است. مشکلات عمل وجود دارد، اسلاید نمونه، اشکالات شناخته شده که دانش آموزان به اجرا، اساسا هر موضوع ما در این دوره را پوشش خواهد داد. و در نهایت، در این اسلاید حداقل، Reference50 که به شما می دهد اطلاعات در تمام توابع C شما همیشه می تواند احتمالا امیدوارم برای استفاده و بسیاری از بسیاری دیگر. باز هم، که نقطه نقطه نقطه در پایین صفحه نمایش نیست که نشان دهد که حتی وجود دارد منابع بیشتر در این دو سایت اینترنتی: cs50.yale.edu، cs50.harvard.edu. بنابراین، آنچه که ما امروز انجام می دهند؟ خب، اول من قصد دارم به شما در منابع است. از قبل انجام داد که یکی از. به ما نگاه کن. در حال حاضر، ما قصد داریم به بیش از انواع داده ها و اپراتورها در C. سپس اندی خواهد آمد تا در اینجا و به بیش از کتابخانه ها در C، تابع () printf ()، یک تابع که شما با آن در حال حاضر آشنا خواهد شد و یا به سرعت بسیار تبدیل آشنا. و شما همچنین می خواهید بیش از شرطی و حلقه ها. و سپس در نهایت، Scaz بیش از ID CS50 بروید. اگر شما در کبوتر در حال حاضر در مجموعه مسئله 1، و همچنین نحوه استفاده از ترمینال و مفید دستورات و سپس شما می دهد و برخی از دموی تمرین برنامه نویسی در ID CS50 است. قبل از اینکه من به این پرش در محتوای در این سمت، آیا کسی هر گونه سوال تا کنون؟ عالی. باشه. تغییر چرخ دنده. [تغییر چرخ دنده ها] که من تغییر چرخ دنده در یک ماشین کتابچه راهنمای کاربر. بنابراین داده ها در C انواع، شما می توانید نه تنها یک متغیر x و آن را بر روی خط 10 باشد، یک عدد صحیح، شاید شماره 1، در خط 20، یک عدد دهدهی 10.5، و خطوط پس از آن یک زن و شوهر بعد یک رشته، من عاشق CS50. در C، متغیرهای تنها می تواند یک چیز، و فقط یک چیز. و بنابراین شما باید به آنها انواع دهد. و در این هیئت مدیره، ما یک لیست از انواع. می کاراکتر وجود دارد، که برای شخصیت ایستاده است. به طوری که یک حرف A، B، C است، D. که همچنین می تواند یک فضای شود، یا که می تواند به یک شخصیت خط جدید. اعداد صحیح هستند، که تنها وجود دارد اعداد، طیف numbers-- یا اعداد صحیح rather-- اما هیچ اعشار. برای اعشار، ما اعداد اعشاری. اعداد ممیز شناور اعداد را با اعداد اعشاری می باشد. پس از پوزیشن های خرید وجود دارد، که اعداد صحیح اساسا دیگر. شما متوجه خواهید شد که یک مدت طولانی 8 است در حالی که یک int 4 است. من به آن در یک ثانیه. دلیلش این است که پوزیشن های خرید حتی می توانید ذخیره اعداد صحیح بیش از یک int می توانید ذخیره کنید. دو شناور طولانی است. و در نهایت، ما باید رشته، که یک نوع که شما احتمالا قبل از استفاده می شود. اگر شما از جمله برچسب # includeCS50.h در فایل منبع خود را، سپس شما می توانید یک نوع رشته استفاده کنید. این در واقع به C. ساخته شده است یک زن و شوهر انواع دیگر نیز وجود دارد. اما این آنهایی که اصلی با هستند که شما استفاده خواهد کرد و روبرو می شوند. C به عنوان، دوباره من ذکر کردم، هر آن variable-- تنها می توانید یک نوع و فقط یک نوع باشد. دلیلش این است که C یک استاتیک زبان تایپ، به عنوان مخالف به زبان پویا تایپ که در آن اگر شما یک متغیر ایجاد کنید شما می توانید تغییر چه در ذخیره شده آن را به عنوان شما را در رفتن در برنامه شما. در اینجا در دست راست سمت، من اندازه های مختلف از این نوع از داده ها در بایت است. بنابراین یک شخصیت 1 بایت است. که 8 بیت است. و این بدان معناست چون 8 بیت هشت 0s و 1S وجود دارد. ما آن دموی در برای اولین بار شاهد هفته با که لامپ های باینری است. با 8 بیت یا 1 بایت، ما می توانیم نمایش اعداد از 0 تا 255. درست. اگر همه 8 بیت 0 0 که است. اگر اولین بیت 1 باشد، که تعداد این یک، و به همین ترتیب، تمام راه را تا 255. و به همین دلیل برای شخصیت شما می توانید اساسا تا 255 از آنها، اما که مقدار زیادی برای پوشش دادن همه است شخصیت ما نیاز به استفاده. برای اعداد صحیح، شما می توانید 0 و سپس شما باید 2 به 32 منهای 1. این گزینه ها چگونه بسیاری از شما برای اعداد صحیح است. برای یک مدت طولانی، شما باید 0 به 2 تا از 64 منهای 1. بنابراین شما باید بسیاری از، بسیاری، گزینه های بیشتر برای پوزیشن های خرید. رشته، که یک علامت سوال است چرا که یک داستان جالب برای بعد. آره. من می توانم بگویم همه است بر روی لبه صندلی خود را، مانند آنچه که علامت سوال است؟ این مطلب یا داستان جالب است. ما در نهایت به اندازه را پوشش خواهد داد رشته ها و صحبت بیشتر در مورد رشته ها. از آنجا که رشته است که در واقع یکی از چرخ آموزش ما در این قرار داده در البته در آغاز و سپس بعد را خاموش در تاریخ، چون رشته ها در سی در واقع علائم به آرایه شخصیت. اما باز هم، که یک مطلب یا داستان جالب برای بعد. قبل از اینکه من در هر گونه سوال حرکت می کند، نظر، نگرانی در مورد این اسلاید؟ باشه. من باید یک توضیح فوق العاده است. همچنین هنگامی که شما در حال برنامه نویسی، شما در حال رفتن برای استفاده از این اپراتورها. نشانه واقعا ساده است که می تواند ساده انجام عملیات، که با آن شما احتمالا در حال حاضر بسیار آشنا. به عنوان مثال، در سمت راست سمت، ما می بینیم اضافه کنید. برای اضافه کردن، شما فقط انجام یک علامت بعلاوه. و بنابراین شما ممکن است دو متغیر x و y. شما می توانید X + Y در کد خود را انجام دهید. شاید شما می خواهید به شما می گویند to-- به تعداد 7 و 3، می خواهید برای ذخیره که در یک متغیر به نام مجموع. شما می توانید از نوع int برای نوع، فضا انجام مجموع، نام متغیر، = 7 + 3؛ آنچه که در مجموع اینترنتی؟ هر کسی؟ اگر من در مجموع = 7 + 3 بود. چه خواهد شد در مجموع ذخیره می شود؟ شما میتوانید آن را فریاد. مخاطبان: 10. JASON HIRSCHHORN: 10. دقیقا همینطوره. آنچه در مورد در مجموع = 7-3، من فقط که نشانه فاصله استفاده کنید. چه خبر است در آن ذخیره شود؟ مخاطبان: 4. JASON HIRSCHHORN: 4. مجموع است که احتمالا نام اشتباه برای که متغیر، ولی 4 می شود ذخیره می شود. به تکثیر در C، استفاده از کمی شخصیت ستاره، شما یک X استفاده کنید. به تقسیم، استفاده از یک جلو بریده بریده نماد تقسیم نیست. و به پیمانه استفاده علامت درصد است. بنابراین اجازه دهید بگویم من می خواهم برای دیدن اعضای هیات Z = 7٪ 3، چه خواهد شد در Z ذخیره می شود؟ بنابراین، این اساسا درخواست چه پیمانه را انجام دهد؟ آیا کسی می داند چه پیمانه می کند؟ آره. Y 4. SPEAKER 1: این باقی مانده است. JASON HIRSCHHORN: این است که زمانی که باقی مانده شما تقسیم. بنابراین 7 تقسیم بر 3 2 1 باقی مانده است. بنابراین 1 به ذخیره می شود. شما تفریق انجام داد، اما این که چگونه کار می کند. این چیزی است که عملگر باقی مانده است. طول می کشد تا تعداد تقسیم آن توسط تعداد و بازده دیگر به شما باقی مانده. پس دوباره، 7٪ 3 به شما می دهد 1، چرا که 7 تقسیم بر 3 2 1 باقی مانده است، و باقی مانده را برمی گرداند. آنچه در مورد اجازه دهید به عقب برگردد تا یک گام به که نشانه تقسیم. اگر من 7 / تقسیم بر 3 می کند کسی می داند آنچه را که بازگشت؟ SPEAKER 2: 2. JASON HIRSCHHORN: چرا 2 و 2.333؟ SPEAKER 2: من فکر می کنم آن را کاهش پس از تعداد کل. JASON HIRSCHHORN: پس دقیقا همینطوره. در C، اگر شما تقسیم دو عدد صحیح 7 تقسیم بر 3، از آن می شود که پاسخ در این مورد 2.3333 برای همیشه و آن را در می یابد که نقطه اعشار و لغو احکام صادره ی همه چیز بعد از اعشار و آن را فقط به شما برمی گرداند 2. بنابراین اگر من 8 تقسیم بر 3. که در واقع، ما می دانیم که به بازگشت 2.666، اما همه چیز لغو احکام صادره ی خاموش در از اعشار، آن همه کوتاه می، و فقط به شما 2 را برمی گرداند. بنابراین 6 تقسیم بر 3، 7 تقسیم 3، 8 تقسیم بر 3، همه برای رفتن به بازگشت به شما 2. آیا کسی می داند، و یا یک حدس است، که چگونه من در واقع می تواند پاسخ کامل اگر من می خواهم که دهدهی؟ آره. برو جلو. SPEAKER 3: استفاده از یک شناور؟ JASON HIRSCHHORN: شما چه معنی؟ SPEAKER 3: از آنجا که شما گفت شناور است برای اعداد [نامفهوم] JASON HIRSCHHORN: درست است. بنابراین، که دقیقا درست است. 7 یک عدد صحیح است. اما اگر من می خواستم به نوبه خود که به یک عدد ممیز شناور، من می خواهم که به ذخیره است که به عنوان 7.0 زیرا کامپیوتر واقعا stupid-- دیدیم که با PB و J example-- آن را تنها خواهد کرد دقیقا آنچه شما به آن بگویید. بنابراین اگر شما ارسال 7، فکر می کنم که یک عدد صحیح است. اگر شما 7.0، حتی اگر ما مطمئن شوید کسانی که همه چیز با هم معادل هستند، آن رفتار است که مانند یک عدد ممیز شناور. بنابراین اگر شما 7.0 بود تقسیم توسط 3، و یا تقسیم بر 3.0، آن را می گویند، OK، در حال حاضر ما در حال برخورد با شناور. من به شما 2.333333 برای همیشه بازگشت. اما واقعا نه برای همیشه، به دلیل که ما نیز در سخنرانی را دیدم، این اعداد با ممیز شناور دقیقا دقیق نیست. بنابراین اگر شما نمی خواهید که اعشاری، و یا بخشی از آن اعشاری، سپس شما باید به یکی از آنها use-- باید یک عدد ممیز شناور و کامپیوتر به درک که این یک نقطه شناور شما می باشد با، نه یک عدد صحیح. هر گونه سوال در آن جدول در به سمت راست، تا کنون؟ و یا سمت چپ دست خود را، خود را سمت چپ، سمت چپ خود را. آره. اسپیکر 4: درست است. برای درست مثل یک به طور منظم اعداد صحیح، شما می توانید write-- شما را مجبور به ارسال شناور؟ JASON HIRSCHHORN: آره است. خوب، اگر شما می خواهید برای ایجاد یک متغیر است که یک شناور است، شما نیاز به گفتن شناور Z برابر است با چیزی. اسپیکر 4: OK. JASON HIRSCHHORN: اما اگر من می خواستم انجام 7 تقسیم بر 3 و دریافت که اعشاری، من شناور Z = 7.0 / 3.0 را انجام دهد؛ و که به من با ممیز شناور را عدد. اسپیکر 4: OK. JASON HIRSCHHORN: اگر من چیزی شبیه به نوع int z = 7/3، که به من یک عدد صحیح را، زیرا این تمام اعداد صحیح هستند. فرقی میکنه؟ اسپیکر 4: بله. JASON HIRSCHHORN: OK. عالی. هر گونه سوال دیگر در مورد آن جدول؟ واقعا؟ من خیلی هیجان زده ام. باشه. بنابراین برخی از چیزهای دیگر که شما استفاده خواهد کرد، اغلب در شرایط و یا حلقه، هستند این نوع از operators-- این نوع از عبارات بولی. و همانطور که ما به دست، == چیزی است که شما برای بررسی اگر دو چیز برابر است. بنابراین در اینجا من دارم اگر x == y و اجازه دهید دوباره فرض کنیم که X است 7 و Y 3 است. بنابراین اگر من 7 == 3، نوشت خواهد بود که بازگشت به من؟ آیا این درست است یا غلط؟ مخاطبان: غلط. JASON HIRSCHHORN: OK. من مثل همه احساس می این یکی. بنابراین همه، آنچه که بازگشت؟ مخاطبان: غلط. JASON HIRSCHHORN: غلط. عالی. 7 برابر 3 است. بنابراین 7 == 3 می کاذب بازگشت. شما یک علامت مساوی نیست، بنابراین اگر من چک 7! = 3، آنچه که بازگشت؟ مخاطبان: درست است. JASON HIRSCHHORN: درست است. بسیار عالی است. کسی در بسیار تاکید شد پشت و قدردانی میکنم. سپس شما باید کمتر از اپراتور، کمتر از یا به اپراتور برابر، بیشتر از اپراتور بیشتر، از یا به اپراتور برابر است. بنابراین یکی بررسی سلامت عقل است. اگر من تا به حال 7 بیشتر است از یا 3 برابر است. آنچه که بازگشت؟ مخاطبان: درست است. JASON HIRSCHHORN: درست است. بله. که اتاق پشت، پشت از اتاق، فوق العاده است. شما می توانید این ترکیب عبارت اگر دوست دارید، و همچنین، با منطقی و که است که && یا منطقی OR که است که || ||. و بنابراین در حال حاضر شما می توانید دو تست همه چیز together-- است که خنده دار؟ چرا خنده دار است که؟ بنابراین اگر من می خواستم، می توانم بگویم 7 بیشتر از 3 و 2 کمتر از 4 است؟ خوب، اگر 7 بیشتر است بیش از 3، که درست است. 2 کمتر از 4 است، که درست است. بنابراین تمام این چیز می صادق بازگشت. اگر من تست 7 بیشتر از 3 and-- است من فقط چیدن اعداد تصادفی here-- 4 کمتر از 2، به خوبی، که نادرست است. بنابراین درست و نادرست. و شما می توانید در رفتن و شما را به عنوان ترکیب بسیاری از شرایط با هم به عنوان شما می خواهم. آیا هر کسی هر گونه سوال، نظر، نگرانی تا کنون؟ و من می بینم که برخی از شما عکس گرفتن از من در صفحه نمایش، که من قدردانی میکنیم. امیدوارم، آن را اسنپ نیست. امیدوارم، آن را برای یادداشت های خود را است. اما تمام این رفتن به صورت آنلاین در دسترس است. بنابراین شما لازم نیست که تصاویر از این. مثل من ذکر شد، همه چیز در دسترس آنلاین برای شما خواهد بود. باشه. من در مورد به من خارج از صحنه، به طوری که هیچ کس خواهم چیزی بگویم قبل از آن اتفاق می افتد؟ سوال ها؟ [INTERPOSING صداهای] JASON HIRSCHHORN: اوه، را متوقف کند. شما بچه ها خیلی خوب هستند. باشه. من قصد دارم به برچسب است. برویم. ANDI PENG: ما قصد داریم برای انجام یک تغییر میکروفون بی دست و پا است. JASON HIRSCHHORN: من رفتن به این است. ANDI PENG: قدردانی از حمایت، بچه ها. صدایم را می شنوی؟ که خوب است؟ کامل. خوشگل. اجازه بدهید من فقط پهلو که در. باشه. بنابراین، من در مورد به مانند یک غول را انجام اطلاعات کمپرسی بر شما بچه ها در حال حاضر. و هیچگونه نگرانی اگر شما زیر هر خط کمی از که چه من در مورد به شما نشان می دهد نیست. جیسون گفت، همه چیز کاملا آنلاین. فقط ما قصد داریم به سعی در معرفی هر کس به مفاهیم تحت پوشش در برخی از این اسلاید. پس فقط به دنبال همراه. هیچ نگرانی اگر شما را درک نمی کنند هر چیزی؛ با این حال، اگر در هر نقطه شما احساس می کنید از دست رفته، بالا بردن خود را دست، ما را متوقف کند، هیچ نگرانی. خنک. بنابراین من فکر می کنم چیزی که دیوید در حال حاضر نوع در سخنرانی ذکر و جیسون تا به نوعی از اشاره تا به امروز چیزی است که یک کتابخانه است. بنابراین در برنامه نویسی، ما باید این چیزها کتابخانه نامیده می شود. که در آن، در اصل، تمام آنها تنها یک مجموعه است از توابع است که در اصل فقط کد که در حال حاضر توسط نوشته شده است کسی دیگری است که همه ما می توانید در برنامه های ما استفاده کنید. پس چگونه نرمال کار کتابخانه، درست است؟ شما وارد درب کتابخانه. شما باید تمام این کتاب شما می توانید بیرون بکشد و شما می توانید به اطلاعات دسترسی داشته در آن کتاب است. همان چیزی که در برنامه نویسی. شما یک کتابخانه که در حال حاضر شده توسط افراد دیگر نوشته شده است. و راهی که شما می توانید، به عنوان برنامه نویس یا یک دانش آموز، می توانید دسترسی به آن کتابخانه را به دست آورید از طریق کد: #include برچسب. برای مثال، در C ما سه C-- ترین معمولا سه استاندارد C استفاده کتابخانه های کتابخانه ورودی / خروجی، کتابخانه رشته، و کتابخانه ریاضی. بنابراین در اولین بار خود را مشکل چند مجموعه، آن خواهد بود سه که شما در حال استفاده از درجه اول. بنابراین به عنوان دیوید در حال حاضر توضیح داده شده در سخنرانی، من استاندارد / کتابخانه O، یا ورودی استاندارد / کتابخانه خروجی کند که دقیقا. این اجازه می دهد تا شما را در کد خود را، به ورودی هر چیزی از کاربر و خروجی است که به صفحه، در اصل چاپ آن را به روی صفحه نمایش. و به این ترتیب هر زمان که شما با استفاده از هر توابع، به عنوان مثال تابع () printf تابع () که ما قصد داریم تا بیش اسلاید بعدی بروید، مطمئن شوید که شامل استاندارد I / O کتابخانه و یا دیگری شما در حال رفتن به قادر به استفاده از تابع printf (). از آنجا که شما، به عنوان برنامه نویس در واقع هرگز نوشت که تابع، شما فقط با استفاده کسی کد دیگری در کد خود را. آیا که همه را حس؟ خنک. و سپس ما در اصل بر روی گرفتن کتابخانه string.h و math.h کتابخانه، حجتاله فقط دلالت کتابخانه، کتابخانه های دیگر است که شما در نهایت با استفاده از کد در خود را. با این حال، برای اهداف از این کتابخانه، ما نیز have-- این class-- ما نیز آنچه که کتابخانه CS50 نامیده می شود، CS50.H، که در آن ما برای مطالعه خود را ایجاد کرده اند بسیاری از عملکردهای مهم و مفید است. به طوری که شما به عنوان یک برنامه نویس می توانید کول کردن آنچه که ما در حال حاضر نوشته شده به طوری که این تابع در دسترس شما برای استفاده شما. را پوشش یک زن و شوهر توابع معمولا استفاده می شود، اما می دانم که این همه آنلاین googleable. احساس رایگان، بالا بکشد کتابخانه CS50 و پس از آن شما باید تمام توابع وجود دارد. آره. SPEAKER 5: بنابراین اگر شما نبود با استفاده از نرم افزاری است که به ما ارائه شده توسط کلاس، می کند که معنی ما می خواهم که برای دانلود و پیدا کردن این هدر فایل خودمان و به کامپیوتر که در آن است؟ ANDI PENG: سوال بسیار خوبی. دقیقا. بنابراین آن را مانند اگر شما نمی از لحاظ جسمی در یک کتابخانه در حال حاضر، هیچ راهی را برای شما به وجود در واقع به و دسترسی به آن. بنابراین همان چیزی که با برنامه نویسی در C، شما باید مطمئن شوید که شما با استفاده ما لوازم خانگی به دلیل اینکه کتابخانه در حال حاضر شده است را در آن گنجانیده شده است. و سپس هنگامی که شما هشتگ شود کد: #include، کتابخانه وجود دارد. آره. سوال خوبی بود. همه خوب است؟ خنک. خیلی خوب. بنابراین ما در حال رفتن به ضربه، اساسا، آنچه است تابع اول که ما به عنوان برنامه نویسان هستند رفتن به استفاده از توان در کد ما. این است که به تابع printf () نامیده می شود. بنابراین، تابع printf ()، به عنوان من در حال حاضر در آخرین اسلاید گفت: در استاندارد من شامل / O، ورودی استاندارد / خروجی، کتابخانه. بنابراین مطمئن شوید که هر آنچه که شما using-- آه، به من اجازه گرفتن اشاره گر لیزری هر زمان که شما با استفاده از تابع printf ()، شما باید شامل استاندارد I / O کتابخانه و یا دیگری، هنگامی که شما کامپایل، شما در حال رفتن به یک خطا چرا که کامپیوتر خواهد بود، آه من نمی دانم که در آن تابع () printf () است، شما به من گفتن که در آن تابع () printf () مي باشد. خب تابع () printf () در شامل استاندارد I / O، تا زمانی که شما با استفاده از تابع () printf ()، مطمئن شوید که به که خط بالا کد خود را. بنابراین برای مثال، تابع () printf () در اینجا یک تابع است. همه آن را چاپ چیزی است داخل پرانتز به کاربر. آیا کسی خواهم یک چاقو در این که چه خط از کد سمت راست در اینجا است که برای چاپ کردن؟ از این رو، پاسخ بر روی صفحه نمایش است. هر کسی؟ وردی: پایین. ANDI PENG: وردی، چرا شما نمی جلو و می گویند طیف عبارت؟ وردی: سلام، نام من است اندی، و من 20 ساله هستم. ANDI PENG: آه، دوست داشتنی. بنابراین در این خط ما قصد داریم به نسخه قابل چاپ کردن، سلام، نام من اندی است، و من 20 ساله هستم که عبارت درست است در واقع. نحو. بنابراین زن و شوهر مسائل نحوی است که شما بچه ها می خواهید مطمئن شوید شما می دانید. به نقل از. به نقل از دو بگویید کامپیوتر که همه چیز داخل در حال رفتن به چاپ شود. همه چیز در داخل می فقط دقیقا چگونه باشد شما از آن نوع، به جز معمولا در پایان، ما قصد داریم به می خواهید که شامل hash-- آه sorry-- A N داش. بنابراین یک نفر داش. آیا کسی می خواهید را به یک حدس در چه که به کد ما؟ آره. SPEAKER 6: قرار می دهد آن را در یک خط جدید. ANDI PENG: دقیقا. به طوری که همه می کند این است اجازه می دهد هر چه پس از این، پس از این اظهارات، به یک خط جدید چاپ شده است. به طوری که وقتی شما در حال نوشتن خود را کد شما به طور تصادفی چیز به پایان tacked که شما نمی خواهید. که همه چیز می شود منظمی چاپ یک خط و سپس ما در خط زیر شروع می شود. آیا کسی به یاد داشته باشید که نقطه و ویرگول می کند هنگامی که ما در حال برنامه نویسی؟ آره. SPEAKER 7: بیانیه. ANDI PENG: با عرض پوزش. SPEAKER 7: آیا آن را به پایان بیانیه؟ ANDI PENG: آره. بنابراین در C، و یا هر برنامه نویسی زبان، نقطه و ویرگول نشان دهنده پایان یک خط برنامه نویسی. بنابراین برای مثال، در زبان انگلیسی دوره ما استفاده به می گویند، آه این پایان یک جمله است. در برنامه نویسی، همان چیزی که، ما یک نقطه و ویرگول به معنی پایان یک خط است. اغلب اوقات، زمانی که شما شروع به برنامه، شما به شما متوجه است فراموش نکنید که به اضافه یک نقطه و ویرگول و پس از آن شما سعی می کنید برای اجرای خود را کد و آن کار نمی کند. و دوست دارید، آه، من نمی می دانم که چرا، باید آن را کار می کند. شانس شما احتمالا فراموش کرده ویرگول یا براکت و یا چیزی جایی. بنابراین، مهم است که به یاد داشته باشید. خنک. همه حق است، نشان می دهد از دست، چگونه بسیاری از مردم در اینجا تا به حال گرفته AP علوم کامپیوتر و یا در جاوا برنامه ریزی قبل، تا کنون است؟ باشه. دوست داشتني. که نخواهد بود پس از آن، اما در جاوا، شما چیزی به نام کرد: System.out.println دارند که در C. وجود ندارد بنابراین در C، هر زمان که شما خواهید برای اضافه کردن در متغیرهای به هر چیزی که می خواهید برای چاپ کردن، وجود دارد یک نحو خاص ما قصد داریم به استفاده کنید. که به نام placeholding-- اساسا ما اضافه کردن متغیرهایی در محل از عدد صحیح یا متغیر که ما می خواهیم برای چاپ. به طوری که شما می توانید ببینید بچه ها ما را گنجانده ام یک ضربه کتابخانه جدید فایل اینجا. کتابخانه CS50. و موجود در کتابخانه CS50 که یک تابع مشترک ما استفاده خواهیم کرد است در دوره ما به نام GetInt (). آیا کسی می خواهید را به یک چاقو در چه GetInt () احتمالا ممکن است انجام شود. مخاطبان: [نامفهوم] ANDI PENG: با عرض پوزش. می تواند شما را نمی شنوند. Maddie، هر کسی. MADDIE: آه، آن دهید شما برای یک عدد صحیح است. ANDI PENG: دقیقا. بنابراین این تابع، یکی دیگر از تابع که در حال حاضر توسط شخص دیگری نوشته شده است که ما می توانیم بر در حال حاضر تماس. همه آن است که بی درنگ شما، کاربر، به ورودی هر آنچه که شما می خواهید به عنوان کد در حال اجرا است و آن را ذخیره whatever-- در این مورد ما GetInt () هستید - ING، به طوری که به معنی ما به دست آوردن یک عدد صحیح است. و ما قصد داریم برای ذخیره که در عدد صحیح دیگر که ما فقط ساخته شده به نام سن. این را حس به همه؟ خنک. پس حالا که ما این عدد صحیح ذخیره کرده اید، که ما از کاربر را وادار کرده ایم، در این متغیر، ما ایجاد از نوع int به نام سن، ما پیش و مکان می توانید به که در تابع () printf ما تابع (). بنابراین نحو معمولا برای printf () است که هر کجا که در واقعی فیزیکی خود را خط شما می خواهید که شامل عدد صحیح، شما این کار را نماد سمت راست وجود دارد، علامت درصد، با نوع متغیر است که شما می خواهید. بنابراین در این سن و سال، یک عدد است. بنابراین شما در حال رفتن به شامل ٪ من به دلیل آن یک عدد صحیح است. و سپس بعد از خود را بیانیه ای، شما در حال رفتن به انجام کاما از هم و نام متغیر. بنابراین در اینجا، ما قصد داریم به چاپ از، سلام، نام من اندی است، و من سال خالی قدیمی است. Hashta-- یا sorry--، سن با هر ورودی من. بنابراین اگر من به ورودی شد 20 برای GetInt من () در اینجا، آن را چاپ کنید همان چیزی دقیق. اما، اگر من به ورودی می خواستم چیزی را دیگری، مانند شاید 40 یا 45، پس از آن شما می توانید ببینید که منعکس بر این اساس در کد. بنابراین این یک مثال است از چیزی که در آن آن را چاپ و به نظر می رسد به شما به عنوان اگر آن را همین، اما در زیر کاپوت کامپیوتر در واقع وجود دارد چیزهای بسیار متفاوت اتفاق می افتد. خنک. خیلی خوب. بنابراین اگر ما می خواهیم چندین متغیر؟ بسیار آسان است. همان چیزی که. ما همچنین یک تابع جدید را داشته در اینجا نام GetString ()، همچنین در کتابخانه CS50 شامل، که آن را نشانی از سریع کاربر برای یک رشته است که فقط مجموعه ای از شخصیت ها، به طوری که مانند یک جمله یا یک نام. بنابراین در این مورد، ما دو متغیرهایی٪ s برای رشته و٪ من برای عدد صحیح است. و ما قصد داریم به دنبال که توسط دو متغیر ما می خواهیم شامل، در جهت که آنها در جمله ظاهر می شود. بنابراین برای مثال، نام من است خالی، من می خواهم یک نام وجود دارد، بنابراین من قصد دارم به نام برای اولین بار. و بعد از آن، من می خواهم سن، می خواهم به دوران دوم. و بنابراین اگر من به ورودی می خواستم، سلام، اسم من اندی، و من 20 ساله هستم. اگر من وارد اندی و 20، همان چیزی که دقیق را چاپ؛ با این حال، در حال حاضر ما دو ذخیره کرده اید متغیرهای نام و همچنین نوع int است. آره. بلندگو 8: آیا آن را قادر به اجرای اگر شما روشن نام و سن در پایان که؟ ANDI PENG: آره. این سوال واقعا خوب است. بنابراین داستان کوتاه مدت، هیچ. از آنجا که نام و age-- چه نوع متغیر نام است؟ بلندگو 8: رشته. ANDI PENG: و چه نوع متغیر سن و سال است؟ بلندگو 8: عدد صحیح است. ANDI PENG: بنابراین در اینجا ما یک حفره یا سوراخ برای رشته و عدد صحیح، درست است؟ بنابراین اگر شما به تغییر این، کامپیوتر را نمی دانم. آن را به یک رشته را بررسی کنید، و اگر شما سعی کنید آن را از نوع int را، آن را به مانند صبر من آشفته هستم، شما می به من گفت من باید اختصاص حافظه برای یک int است. و در اینجا هنگامی که، از آن انتظار یک عدد صحیح و شما آن نام می دهد و یک رشته به جای آن، آن را نیز خواهد بود بسیار گیج کننده است، آن را اجرا نمی دقیقا به شما راه آن نیاز دارید. بنابراین در اینجا، نامگذاری و نحو است برای اجرای کد بسیار مهم است. همه خوب است؟ آره. Maddie. MADDIE: در اینجا، من می دانم که ما نگاه در نمونه در کلاس، جایی که آنها بپرسید چه سن شما است، چه نام خود را است. در اینجا، که خواهد بود آن را doesn't-- اگر ما برای اجرای این کد، آن را نمی خواهد که بپرسم؟ اما شما می فقط ورودی دو عدد و سپس آن را می خواهم که اجرا می کنید؟ ANDI PENG: بله، دقیقا. بنابراین اگر شما برای آن را به خواست صفحه نمایش، لطفا سن خود را وارد کنید، شما فقط می توانید یک تابع printf () اضافه که می گوید، لطفا سن خود را وارد کنید، بالای آن. این سوال خوبی است. آره. SPEAKER 9: بنابراین، در حال حاضر می شود شامل در GetInt () [نامفهوم]. ANDI PENG: نه، آن را در واقع است. به طوری که همه می کند این است که فقط دهید به صفحه خالی به کاربر را به ورودی چیزی. اگر شما آن را می خواهم، اگر شما می خواهید آن را به چاپ از چیزی است که می گوید کاربر، لطفا با من سن خود را، و سپس شما باید به تابع () printf () که خودتان. از آنجا که همه این با استفاده از تابع برای کارهای مختلف، شما می تواند ذخیره سازی سن، شما می تواند ذخیره سازی آدرس، شما می تواند ذخیره سازی شماره تلفن. و پس از آن واقعا تا استفاده فردی بچه ها خود را برای آنچه که شما می خواهید آن را برای گفتن دارد. آره. SPEAKER 10: بنابراین، فقط برای روشن، که در آن شما انجام ورودی نام و سن به طوری که آن نشان می دهد تا در محل از٪ s؟ ANDI PENG: همانطور که در کاربران؟ SPEAKER 10: بله، مانند چگونه من it-- را که در آن من قرار اندی، و که در آن قرار داده 20. ANDI PENG: آره. بنابراین اگر شما به شد در واقع این کد را اجرا، من در واقع در حال اجرا نیست کد، این است فقط در اینجا در حال حاضر. اگر من به اجرای کد، من می خواهم کامپایل کد، ایجاد فایل، اجرای کد، و سپس وجود دارد فقط دو فضا برای من به ورودی آن است. آره. شما بچه ها خواهید دید زمانی که شما بازی در اطراف با کد خود را. همه حق ما در حال رفتن به حرکت به بخش بعدی چه ما را پوشش امروز. ما قصد داریم به بیش از آنچه عبارات شرطی هستند. بنابراین اگر شما بچه به یاد داشته باشید و به یاد از سخنرانی، عبارات شرطی، همه آنها یک مجموعه از دستورالعمل ها را به کامپیوتر در که اگر یک شرایط خاص درست است، شما کد اجرا در داخل از آن وضعیت. بنابراین در Scratch-- اساسا موضوع بزرگ از امروز این است که شما بچه ها در حال حاضر همه دیده منطق همه چیز که ما در حال پوشش. و همه ما در حال انجام است ترجمه چیزی که در بسیار بصری بود ابتدا، و برنامه نویسی آن سخت به نحو ما استفاده خواهیم کرد برای کلاس است که C. بنابراین منطقی، تمام این بلوک شد که قطعه ای از کد سمت راست وجود دارد. آره. باشه. ما همچنین اگر به یک جای دیگر ... بیانیه است که فقط یک لایه اضافه از پیچیدگی به دستور if که در آن کامپیوتر طول می کشد نگاه این و می بیند، اگر این شرط درست باشد، انجام هر آنچه در داخل این دو براکت، else-- بنابراین نوع مانند پیش فرض اگر آن برآورده نمی condition-- انجام این کار. آن را مانند یک چنگال را در جاده است. اگر بیرون باران میبارد، من قرار در یک ژاکت باران، هر چیز دیگری دیگری من در ژاکت باران قرار داده است. آیا این منطق را حس به همه؟ خنک. خیلی خوب. پس مانند یک مثال سخت این که ما در C را ببینید است اگر من می خواستم برای ایجاد یک متغیر ساعت مشق شب نامیده می شود. و اگر ساعت مشق شب کمتر است از پنج، من می گویم زندگی بزرگ است. این فوق العاده است. با این حال، می گویند مبارزه real-- است این چیزی است که ما همه در این دوشنبه بعد از ظهر تا علم هیل احتمالا انجام درست now-- مخاطبان: [خنده] ANDI PENG: آنها راه ما می، از شما سپاسگزارم برای آن است. همان راهی که ما hardcode این در C است if-- فرض ما در حال حاضر یک متغیر از نوع اند نوع int به نام مشق شب ساعت در اینجا ببینید. اگر ساعت مشق شب کمتر از پنج تابع () printf ()، زندگی بزرگ است. به یاد داشته باشید حفظ / N به خاطر شما می خواهید یک خط جدید پس از. چاپ دیگری، مبارزه واقعی است. آیا همه درک کنند که چگونه من از این بلوک انتقال به این بلوک از کد؟ خنک. خیلی خوب. بنابراین در حال حاضر ما در حال رفتن به یک نگاه بیانیه های متعدد اگر در دسترس نباشد. بنابراین اجازه دهید فرض هدف از این برنامه این بود که ما کاربر برای یک کلاس را تحریک کند. ما موقع با استفاده از GetInt () برای درجه، و آنها ورودی یک ارزش، و شما می خواهید برای نمایش چه نوع درجه آنها کردم. بنابراین اگر من به طراحی یک برنامه، من معنی به طور معمول در همه چشم ما، 90-100 است A، 80-90 است B، و غیره و غیره. چه اشتباه با این قطعه از کد که آن را نه انجام آنچه که من می خواهم آن را به انجام. آره. SPEAKER 11: آنها محدودیت های پایین تر، اما آنها محدودیت های بالا ندارد. ANDI PENG: دقیقا. آیا همه شنیدن او چه گفت؟ رفتن وجود دارد به بالا محدودیت، اما هیچ محدودیتی وجود ندارد پایین تر است. با عرض پوزش، راه دیگری در اطراف، محدودیت های پایین تر، بدون محدودیت بالا. بنابراین به شما دوست یک زخم زدن در گفت آنچه که می توان در این چاپ صفحه نمایش اگر من به اجرای این کد. SPEAKER 11: یک خطا؟ ANDI PENG: یک خطا؟ حدس بزرگ، کاملا درست نیست. آیا هر کسی چاقو دیگر؟ آره، هارون. آرون: اگر شما را در چیزی بزرگتر از 90، آن را تمام نمرات شما رو نشان می دهد. آن را به شما نشان دهد یک A کردم، شما یک B کردم، شما یک C. کردم ANDI PENG: آره. دقیقا همینطوره. بنابراین، که می شود، فوق العاده است. با این حال، آنها متقابلا هستند منحصر به فرد، من فکر می کنم. اگر من به اجرای این قطعه از کد. و پس از آن اجازه دهید فقط می گویند، من درجه 95 وارد شده است. 95 در حال حاضر در ذخیره شده اعضای هیات کلاس نامیده می شود. و به این ترتیب C یک زبان است اجرا می شود که تا بالا به پایین، طوری که آن را برای همیشه اجرا تا به پایین. بنابراین آن را به اینجا می آیند، اگر به عنوان خوانده درجه بزرگتر یا 90 برابر است، تابع () printf () شما یک A. بزرگ، من یک 95، که بیشتر از 90. آن را به چاپ، من یک A. این رفتن کردم را به یک نگاه در این اگر، آن را می گویند، خوب 95 نیز بیش از 80، آن را به چاپ شما همچنین یک کردم علامت تعجب B، و غیره و غیره جلو. بنابراین ما می توانیم همه را ببینید، این یک اشکال شایع است که ممکن است رخ دهد هنگامی که ما نوشتن کد به نگاه کردن به. هر کسی، در هر گونه سوال در چرا که اتفاق می افتد؟ عالی. باشه. پس چگونه ما این مسئله را حل واضح است که، سوال منطقی بعدی. خب، ما باید این زیبا همه چیز به نام اگر دیگری اگر دیگری اگر اظهارات دیگری. بنابراین شما می توانید ببینید، اگر شما می خواهید برای تغییر آن مشکل، شما می خواستم به هر یک از شرایط متقابلا منحصر به فرد، شما می توانید یک دیگری را اضافه کنید ... اگر بیانیه. و این از course-- فکر می کنم از آنها به عنوان نردبان، و یا مانند پله در ladder-- شما می توانید به عنوان بسیاری از از این که شما اضافه می خواهید برای شرایط به عنوان بسیاری که شما می خواهید. بنابراین در اینجا، اگر من وارد کلاس می شود 95. اگر درجه بیشتر از 95 است، تابع () printf ()، من یک A. بزرگ است. آن را به دیدن یک چیز دیگری ... اگر و آن را به دانستن، آه، نه، من در حال حاضر اجرا اولین دیگری. من دانم و یا if-- اول من می دانم که من لازم نیست به هر یک از این نگاه چرا که یکی از آنها در حال حاضر درست بوده است. بنابراین آن را به اجرا از بالا به پایین. به محض این که یکی از اولین درست باشد، پس آن را به جست و خیز بیش از همه بقیه از دیگری ... IFS. فرقی میکنه؟ بنابراین، در این روش شما سطوح مختلف از چک کردن و به زودی به عنوان یکی از آنها نادرست است، بقیه هم هستند، آنها حتی بررسی خواهد کرد. خنک. خیلی خوب. بنابراین این یک مثال از یک متفاوت است مرتب کردن بر اساس دستور شرطی ما می بینیم کمتر، اما ما آنها را ببینید و از آنها استفاده کنید. و آنها اغلب بیشتر هستید کارآمد برای موارد خاص. بنابراین ما باید آنچه به نام دستور switch. بنابراین قبل از ما تحت پوشش چه دیگری است بیانیه، اگر ... بیانیه دیگری. در اینجا، ما آنچه که می به نام دستور switch. بنابراین، هنگامی که انجام با استفاده از سوئیچ ما اظهارات مهم این است که؟ بنابراین در بیانیه ای سوئیچ، شما معمولا، به طور معمول، در واقع شما تنها می تواند اعداد صحیح ورودی برای خود متغیر است که شما در حال چک کردن. بنابراین اگر من می خواستم به بررسی کنید تا ببینید اگر یک number-- خاص برای مثال در کلاس، اگر من یک 90 است. من می خواهم آن را به صورت که یک A است، B، و یا C. من می توانم یک مورد در اینجا. با این حال، این پرونده دارای به ثابت است. بنابراین در این معنا، دستور switch می تواند تنها برای برابری از دو عدد را بررسی کنید. آن را برای هر چیز دیگری را بررسی کنید. به طوری که چیزی که بسیار است مراقب باشید از زمانی که شما با استفاده از این. بنابراین در اینجا، اگر من می خواستم به چک کنید اگر کلاس من 90 تا 90 و 80 برابر است یا 70 یا 60، و سپس چاپ کلاس مربوطه، من می خواهم که قادر به ارسال که در بیانیه ای سوئیچ. بنابراین آن را به اینجا می آیند، چک است این عدد صحیح به این ثابت برابر است؟ اگر نه، آن را به جست و خیز. آیا آن را به ثابت برابر دو، و غیره و غیره، تا زمانی که شما ضربه طور پیش فرض، اگر هیچ یک از آنها برابر است. به محض این که یکی از آنها قرار است به برابر باشد، آن را به انجام این کار خط از کد و شکستن. که به معنی آن است که رفتن به ضربه اجرا، شکستن، و فقط به طور کامل جست و خیز به پایین از کد. بنابراین در این معنا از نوع توابع اگر دیگری اگر بیانیه ای از اگر دیگری. بنابراین در اینجا یک بتن به عنوان مثال برای شما بچه ها. بنابراین اجازه دهید فرض کنیم که من می خواستم ایجاد یک متغیر به نام سال تاسیس شد. و من می خواهم به سریع کاربر به ورودی سال که مدرسه خود تاسیس شد. بنابراین من می تواند دستور switch در اینجا ایجاد کنید. و اجازه دهید فقط می گویند، من ورودی 1636. این کد را در اینجا قصد دیدن سوئیچ سال تاسیس که برابر 1636. آن را تا مورد 1636، آه آن برابر هستند، تابع () printf () نه باید به شما در آن مدرسه تا شمال؟ از آنجا که ما فرض کنیم که آنها نمی به اینجا بروید اگر آنها به دانشگاه هاروارد رفت، شکستن و جست و خیز به پایان است. اگر من به ورودی 1701، بود که من فرض همه ما دوست ورودی، آن را این مورد جست و خیز، آمده به صورت دو است که 1701، و چاپ به دانشگاه ییل خوش آمدید! شکستن، جست و خیز به پایان است. چیز دیگری که شما احتمالا در حال بدست گرفتن این دوره آنلاین که در آن case-- خوش آمدید عالی به Yale-- آن را به رفتن به به طور پیش فرض چاپ، خوش آمدید به اینترنت! و شکستن. آره. SPEAKER 12: شما می توانید استفاده دیگری به جای پیش فرض وجود دارد؟ ANDI PENG: نه، چرا که که این تابع کل سوئیچ ساخته شده است، به نحو شما نیاز به استفاده از مورد به طور پیش فرض است. آن را مانند اگر دیگری اگر، این است یکی از آن مورد به طور پیش فرض است. آره. SPEAKER 13: شما شاید در حال حاضر گفت: این، اما می تواند شما بیش از دو مورد؟ ANDI PENG: بله می توانید به عنوان بسیاری از موارد به عنوان شما می خواهید. فکر می کنم از آن را به عنوان تنها دوست بی نهایت اضافه کردن در. SPEAKER 14: اگر شما 1701 با 1636 روشن، آن را واقعا نمی کند حق تفاوت؟ آن را فقط برای آن چک شود. ANDI PENG: این یک درخواست واقعا خوب است. و ما بر لمس این بعد، اما فقط می دانیم که سوئیچ بیانیه infinitely-- آن کارآمد تر از آن را و اگر اگر دیگری به دلیل آن عمل با استفاده از یک نوع متفاوت از تابع است که شما اجازه می دهد، به اصل، به تنها پرش مستقیم به صورتی که شما نیاز به در. آره. SPEAKER 14: داغ. با تشکر. ANDI PENG: بله SPEAKER 14: و شما می توانید نیست انجام موارد مانند و بیشتر از. ANDI PENG: شماره بنابراین، این چیزی است که محدود کردن در مورد دستور switch است که شما باید به ثابت تنها، تنها اعداد صحیح است. آره. باشه. پس این چیزی است که شما بچه ها کمتر از روبرو می شوند، اما من فقط می خواستم معرفی آن را در مورد. ما را در اینجا چه به نام یک اپراتور سه تایی. که در آن اصل، آن را فقط دوست اگر بیانیه به یک خط وارد شده است. در اینجا، من بر روی خط بعدی بروید، صفحه بعد، به دلیل آن را آسان تر برای دیدن. بنابراین ما به همه این حق دیده می شود؟ این بسیار آسان است. اگر من می خواستم به یک متغیر به نام رشته با نام، اگر تعداد معینی من آن را کمتر از 100 است، من می خواهید به اختصاص کم به رشته، دیگری من می خواهید به اختصاص بالا. این در اینجا انجام همین کار دقیق آن هشت خط کد انجام می دهند. بنابراین در اینجا من می خواهم برای ایجاد یک رشته متغیر است. و این وضعیت من است چک کردن، اگر یک عدد کمتر از 100 است، سپس مقدار کم به شما اختصاص، دیگری ارزش بالا اختصاص دهید. این اسلاید آنلاین خواهد بود، هیچ نگرانی اگر شما بچه ها این نیست. این فقط یک راه ساده تر، بیشتر است راه کارآمد از نوشتن کد. باشه. بنابراین در حال حاضر ما قصد داریم به وارد چه، برای اکثر مردم مانند بسیار، بسیار گیج کننده است چیزی که در مورد در ابتدا فکر می کنم. بخش حلقه. بنابراین، امروز، ما قصد داریم به بحث در مورد سه نوع از حلقه. ما قصد داریم تا با یک شروع حلقه، پس از آن در مورد در حالی که حلقه صحبت می کنید، و سپس در مورد حلقه صحبت کنید. بنابراین اساسا، برای بیشتر زبان آموزان بصری خارج وجود دارد، ما، در اصل، گرافیکی تصویر چه یک حلقه در حالی کند. بنابراین در یک برنامه، شما می توانید شروع و وارد حلقه در یک نقطه خاص. شما بررسی وضعیت. و اگر شرط درست باشد، شما در کد داخل را اجرا کند. و شما به پشت در اطراف و شما را بررسی کنید. اگر این هم درست است که شما را در حال اجرا این کد اطراف و در اطراف در یک حلقه. با این حال، دوم که شرط نادرست می شود، شما در حال رفتن برای شکستن و پایان دادن به حلقه. و این است که در اصل نحو (Syntax) شما در حال رفتن برای استفاده. در حالی که یک شرایط خاص است درست است انجام این کار، اگر آن را درست نیست، شما در حال رفتن به جست و خیز به پایان و حرکت رو به جلو با برنامه خود را. باشه. آیا کسی یک مثال در آنچه که ممکن است به طور بالقوه اتفاق می افتد اگر سعی کنید برای اجرای این قطعه از کد؟ به هر حال، SAJ-- که Scaz، اندی، Jason-- ما ایمیل های ما ثبت نام کردن، دوست دارم، SAJ. این ماییم. باشه. هر کسی یک مثال، و یا یک ایده در این را چاپ؟ نوع یک سوال ترفند. بنابراین در اینجا، به یاد داشته باشید که شرایط ما در حال چک کردن برای در حالی است که درست است. بنابراین در حالی که این درست است، آن را رفتن به چاپ، من عاشق SAJ! است هر نقطه که در آن ما می خواهم وجود تغییر این به هر چیزی در غیر این صورت؟ نه، درست است؟ بنابراین در اینجا، ما باید مواجه می شوند آنچه احتمالا رفتن به شنود بسیاری از برنامه های خود را، حلقه بی نهایت. شما باید دریابید که اگر شما اجرای این قطعه کد، آن را فقط برای حفظ چاپ، من عاشق SAJ! در حالی که ما از حمایت درک، ما نمی خواهیم رایانه های خود را نمی به سقوط به خاطر شما حفظ و چاپ من عاشق SAJ! پس لطفا، لطفا، جلوگیری از حلقه بی نهایت به دلیل آن را هرگز به منظور بررسی را به نادرست و شما هرگز به ترک حلقه. و شما در حال رفتن به در را برای همیشه مکیده می شود. خنک. باشه. نوع دوم از حلقه ما در مورد امروز صحبت ساختار do while، در حالی که حلقه انجام شده است. و آن را به نام حالی که حلقه چرا که شما باید انجام دهند و در حالی که. پس این است که بسیار شبیه به یک در حالی که حلقه، اما کمی متفاوت است. در اینجا، شما در حال رفتن به هر آنچه در داخل این در حالی که یک شرط خاص است. بنابراین اگر من C و کامپیوتر من بود در حال اجرا کردن این قطعه از کد، من یک نگاه در بالای صفحه. من به c برو، من می گویم انجام این کار چیزی. و بعد من را بررسی کنید، در حالی که این درست است، من باید آن را تکرار کنید. اما در حالی که این غلط است، پس از آن من حرکت رو به جلو و من هرگز به آن حلقه دوباره. می توانید هر کسی یک زخم زدن در چه تفاوت بین این حلقه و یکی از ما فقط نگاه عملا بود. آره. SPEAKER 15: شرط پس از به جای قبل از؟ ANDI PENG: دقیقا. بنابراین او گفت که شرایط پس از، نه قبل از. در نهایت، تفاوت بین این و در حالی که حلقه این است که شما فقط رفتن را به انجام هر آنچه را در داخل این بدون در نظر گرفتن آیا شرایط خود را است یا نه درست است، و پس از آن شرایط را بررسی کنید. بنابراین در این مورد، شما همیشه اعضای در این راه، شما همیشه مطمئن شوید هر آنچه در داخل حداقل اجرا می شود یک بار قبل از چک کردن برای دیدن اگر شما می خواهید آن را برای اجرای دوباره. و اینجا یک مثال است از زمانی که ما آن را استفاده کنید. بنابراین برای مثال، اگر من می خواستم به یک متغیر از نوع int به نام سن، و من می خواهم به بی درنگ کاربر برای سن خود، من قصد دارم به انجام تابع () printf () سن شما چند است؟ سن = GetInt ()، که است باعث کاربر. و برخی از مردم خواهد شد واقعا آزار دهنده است. و شما می خواهید اشکالات در نمی خود را برنامه کسی وارد مانند، اوه من 4 سال یا هر چیز دیگری منفی است. که در این صورت اگر آنها انجام این کار، این ارزیابی درست باشد، به این معنی که من قصد دارم به باید به رفتن ادامه تماس و انجام این کار. بنابراین این است که برای حفظ دوباره باعث کاربر به شما مانند یک واقعی سن و تعداد آن رفتن به رفتن ادامه تماس و redoing آن را تا زمانی که شما یک سن واقعی بیشتر از یک یا صفر نیست. بنابراین اشاره، اشاره. این خواهد بود که بسیار، بسیار مفید برای یکی از مشکلات PSet خود را. آره. SPEAKER 16: اوه، متاسفم. ANDI PENG: بله. SPEAKER 16: آیا وجود دارد، نه به یک تشکر خودتم میدونی، اما ANDI PENG: بدون نگرانی. SPEAKER 16: --are وجود دارد قوانین مختلف در اینجا، و یا آیا شما فقط فراموش برای قرار دادن نقل قول؟ ANDI PENG: آره. با عرض پوزش، که کاملا بد است. که بود قطعا تصور می شود یک نقل قول است. دریافت خوب. که می توانست اجرا کنید. باشه. بنابراین آخرین نوع حلقه ما صحبت در مورد و در نهایت، نوع ترین پیچیده برای حلقه است که. نگران نباشید اگر شما نمی مطمئن شوید که چه معناست. آن را بسیار گیج کننده در ابتدا. ما بیش از یک مثال است. که برای حلقه اتفاق می افتد در یک است که شما باید سه بیانیه که شما در حال رفتن به باشد. بنابراین برای یک چیز مسلم، شما رفتن به مقداردهی اولیه متغیر است. شما در حال رفتن برای اضافه کردن به شرایط که این حلقه را حفظ خواهد کرد در حال اجرا. و پس از آن، در پایان از حلقه، شما در حال رفتن به آن را به روز رسانی. شما می توانید متغیر به روز رسانی که شما می خواهید برای پیگیری. بنابراین ما به طور معمول استفاده برای حلقه برای زمانی که ما می خواهید برای اجرای یک حلقه برای مقدار مشخصی از زمان و ما می دانید، آه من می خواهم این حلقه برای اجرای مثل 10 بار، پس از آن شما do-- من بیش از بروید به عنوان مثال در صفحه بعد. بنابراین در اینجا به عنوان مثال، در ابتدا، اگر شما چیزی به تکرار 10 بار می خواستم، همه شما تا به حال به بود، تکرار 10 بار من عاشق SAJ! است که در آن قابل قبول تر نمایش حمایت از ما به جای حلقه بی نهایت. در اینجا، چگونه شما می توانید انتقال به C و نوشتن است که برای int-- من قصد دارم که در ایجاد یا تعریف یک متغیر از نوع int به نام من. من قصد دارم به مقداردهی اولیه آن را به 0، بنابراین من = 0؛ و این است که به وضعیت من. بنابراین من کمتر از 10 است. و سپس در end-- آخرین بیانیه شما رفتن به به روز رسانی است چه اتفاقی می افتد به من متغیر در پایان برای شما حلقه. پس از آن نوع گیج کننده است، چرا که بخش های مختلف این خط در مختلف اتفاق می افتد انواع حلقه. اما من بیش از یک رفت مثال شبه که و شاید این توضیح فقط یک کمی بهتر است. بنابراین در اینجا. که حلقه ما فقط دیدم است. اساسا در شبه، چه در این برنامه اتفاق می افتد، که برای اولین بار من ایجاد من، مقدار دهی اولیه آن را به 0. من دارم برای دیدن اگر من است کمتر از 10، که در این صورت اولین بار است از آنجا که 0 کمتر از 10 است. بنابراین حلقه است که به اجرا. و سپس من را به چاپ این خط. و سپس در پایان این خط، راست در اینجا، من قصد دارم برای انجام افزایش من، من + +، همه بدان معناست افزایش آن به یک است. بنابراین من در حال حاضر 1. از آنجا که آن را یک بار 0، اگر من سود آن است، آن را در حال حاضر 1. و سپس من قصد دارم برای رفتن به عقب به ابتدای حلقه و من بررسی وضعیت. آیا شرایط هم درست است؟ بله، هنوز هم 1 است کمتر از 10. پس از آن را به چاپ این دوباره، بروید و پس از آن افزایش من، و بررسی شرایط به طور مداوم، به طور مداوم، تا زمانی که شما در نهایت به نقطه ای که من 10 است. شما در حال رفتن برای چاپ این 10 بار و پس از آن است که به 10 برابر. شما در حال رفتن برای بررسی شرایط. است 10 کمتر از 10؟ نه، که نادرست است. بنابراین، این حلقه است که نمی برای اجرا، آن را به شکستن، و شما در حال رفتن به در ادامه با کد خود را. به طوری که شما بچه ها می بینید، این به عنوان مثال واقعا بزرگ است از یک حلقه شما می توانید برنامه در آن اجرا می شود برای یک مقدار مشخص از زمان. هر یک روشن؟ آره. SPEAKER 17: چگونه در مورد افزایش نمایی، برنامه نویسی مختلف در آن است؟ ANDI PENG: شما can-- ما هم خواهیم بود بیش از این در اسلاید بعدی. سوال خوبی بود. anyone-- است قبل از من حرکت شماها هر کسی در همه اشتباه، چرا که این یک مفهوم واقعا دشوار است. بدون نگرانی، اگر OK you're--. خنک. خیلی خوب. فقط یک اسلاید به طور کلی. این حلقه در حالی انجام شده است همان چیزی که دقیق برای حلقه بود. این فقط متفاوت نوشته شده است. شما بچه ها می توانید از اسلاید مطالعه در راحتی شما بعد از آن. اما فقط می دانم که متعدد وجود دارد راه نوشتن همان چیزی با حلقه های مختلف اتفاق می افتد. باشه. بنابراین، در حال حاضر ما در این سوال از دریافت آنچه اگر ما یک حلقه در داخل یک حلقه. ما در حال وارد شدن به واقعی نوع مسائل آغاز به کار در اینجا. زمانی که می خواهید به انجام کارهای متعدد بار در داخل از چیزهای دیگر که انجام کارهای چند بار، شما می خواهید آنچه به نام تو در تو برای حلقه. برای کسانی از شما که برای اولین بار از این دید و بسیار اشتباه است، همه ما در این جا انجام است که با داشتن یک حلقه for که در آن ما باید یک متغیر از ردیف. اما در داخل آن، ما نیز یکی دیگر از برای حلقه از یک ستون متغیر به نام. و من به شدت نشان می دهد همه از شما که اشتباه به اولین حفظ track-- این قرعه کشی، قرعه کشی این است. آیا به دلیل فقط سعی کنید از طریق آن، آن را رسم کرد. در سر خود، در این قطعه از کاغذ یا، ردیف نوشتن، پیگیری آنچه ردیف برابر است. ارسال ستون، پیگیری در این ستون برابر است. و آهنگ از آنچه که حفظ چاپ کردن با هر تکرار. هر تکرار از این حلقه، هر تکرار که حلقه بزرگتر، فقط زیر منطق است. و من به شما تضمین، شما را دوست دارم آنچه می بینید، دلیل آن نیز بسیار قابل استفاده برای مجموعه مشکل خود را. خنک. خیلی خوب. بنابراین مهم ترین چیز که شما بچه ها احتمالا همه فکر کردن در مورد در حال حاضر، مجموعه ای مشکل 1S خود هستند، که به علت پنجشنبه / جمعه. در برنامه water.c خود را، اشاره شما در حال رفتن به به سریع کاربر برای ورودی. در برنامه mario.c خود را شما در حال رفتن به برای استفاده از یک حلقه تو در تو برای، است که یک حلقه for در داخل یک حلقه، به چاپ یک بلوک از هرم، اساسا مانند آنچه ماریو است به پرش از طریق. و سپس در داخل greedy-- و یا شاید خود را تغییر، اگر هر کدام از شما بچه ها تا کنون از that-- شنیده شما در حال رفتن به که بسیار است مراقب باشید از اول مقادیر ممیز شناور. به یاد داشته باشید اعشار شناور و اعداد صحیح هستند همان چیزی نیست. مسیر که یکی که است که نگه دارید. و شما قصد استفاده از عبارات شرطی، و همچنین. همه حق است، آخرین چیزی. من یک دقیقه چند در سمت چپ کردم. سبک. پس این چیزی که نمی است در واقع اثر بهره وری، یا در حال اجرا واقعی کد خود را. با این حال، آن را به ما اثر به عنوان دانش آموزان کلاس خود را، و خوانندگان خود را. خودتان آن را اثر، اگر شما تلاش برای پیدا کردن یک مشکل. آن هم بر خوانایی کد خود را. بنابراین سبک، مانند وقتی که شما در حال تلاش برای سبک مقاله برای زبان های انگلیسی، اگر شما آیا پاراگراف را نداشته باشند، شما همه چیز را نوع داشته از با هم در یک خط پریشان، آن را آن را واقعا دشوار برای هیچکس به عنوان خوانده شده مقاله خود را، حتی اگر امتیاز خود را منطقا صدا. همان چیزی که در برنامه نویسی. شما می توانید به طرز وحشیانه ای مبهم اند کد که Scaz را پوشش خواهد داد، و هنوز هم می تواند اجرا و عملکرد. اما برای ما، به عنوان استادیار دوست داشتنی خود را، که به خواندن و ارزیابی PSets خود را، که بسیار خوب نیست. پس لطفا، به خاطر از ما و خودتان، زمانی که شما در تلاش برای رفع یک مشکل در کد خود را، و شما در حال تلاش برای خواندن کد خود را، را مطمئن شوید که شما دنبال برخی از قراردادهای که ما قصد داریم تا بیش از. بنابراین برای اولین بار. به متغیرهای خود را نام های معنی دار. اگر شما می خواهید برای ذخیره یک عدد صحیح نام سن، لطفا آن را سن نام. هنوز نام آن ارتفاع است. هنگامی که شما در حال تلاش برای ذخیره سن در ارتفاع، آن را می سازد همه چیز بسیار گیج کننده برای ما. ما دوست نداریم به اشتباه گرفته شود. شما را دوست ندارند به اشتباه گرفته شود. هیچ کس دوست ندارد به اشتباه گرفته شود. اگر شما قصد ایجاد چیزی، نام آن را چیزی معنی دار است. با این حال، در حلقه for، تک متغیرهای شخصیت معمولا خوب است. و در حلقه for، اگر شما می خواهید فقط من، و J، K، احساس رایگان برای فقط انجام این کار. مقدار دهی اولیه سازگار است. پس چه معنا است؟ این بدان معناست که به لحاظ فنی، به لحاظ نظری، شما می توانید شروع و ایجاد چندین متغیر را در همان خط. بنابراین برای مثال، من می توانم ایجاد یک عدد صحیح به نام scaz_age، و صحیح به نام andi_age = 20، و یک عدد صحیح به نام jason_age در همان خط. و من همچنین می توانید تنها یکی از اختصاص آنها و دیگران به ارزش ها. ما شما را به مدیر فروش کار را انجام ندهید. چرا که در اینجا شما اساسا ایجاد کرده اید سه متغیر، اما فقط یکی از آنها در واقع تا به ارزش. و پس از آن زمانی که ما تلاش برای خواندن کد خود را، و یا اگر شما در تلاش برای رفع یک مشکل در کد خود را، آن را بسیار گیج کننده به دنبال دارد. بنابراین فقط برای خوانایی خود را، برای خوانایی ما، این کار را نمی کند. آکولاد سازگار است. برخی از افراد به قرار دادن آنها دوست آکولاد در مکان های مختلف. این واقعا مهم نیست. فقط مطمئن شوید که شما در آن هستید را سازگار خود را کد خود را در جایی که دوست دارید به آنها قرار داده است. فاصله سازگار است. اگر شما یک فضا قرار داده پس از یک برای حلقه، همیشه انجام این کار. آیا فقط دوست نوع آن را در بعضی از نقاط، آن را در برخی دیگر نه. فقط سازگار باشد. در مرحله دوم، اگر کسی می خواهم به مطالعه کردن راهنمای سبک CS50، ما رسما یک راهنمای سبک که همه از این کنوانسیون به شما می گوید، علاوه موارد بیشتر. آن را آنلاین. آن را مانند cs50.net/style است یا چیزی شبیه به آن. شما می توانید آن را گوگل. سازگاری کلیدی است. پس نگران نباشید که چه مردم دیگر انجام می دهند، فقط مطمئن شوید که شما سازگار در کد خود را. هر کسی هر گونه سوال در مورد آن؟ آره. SPEAKER 18: بنابراین چیزی مناسب برای انجام با مقدار دهی اولیه است فقط همه آنها را در یک جداگانه خط، این است که آنچه شما می گویید؟ ANDI PENG: پس من به ندرت این اتفاق می افتد. اما اگر شما می خواهید، اگر شما می خواهید به مانند صرفه جویی در فضا در کد شما می شود، یا هر چیز دیگری، شما می توانید این کار را. ما می خواهیم که شما فقط شروع به کار نکرد یک چیز و دیگران نیست. بنابراین اگر شما می خواهید به انجام scaz_age INT، INT andi_age، jason_age هوشمند، که خوب است. فقط یک مقداردهی اولیه نیست و نه از دیگران است تمام. سوال ها؟ خیلی خوب. من قصد دارم به تصویب کردن میکروفون، و اشاره گر لیزری، و باتوم به Scaz در این نقطه. این عجیبه. ایناهاش. برایان SCASSELLATI: با تشکر از شما. چگونه است که برای صدا؟ صدا خوب است؟ . بسیار عالی است. باشه. بنابراین، سلام به همگی. من قصد دارم به سعی کنید به کار از طریق یک مثال عملی با شما. و ما قصد داریم به استفاده از CS50 محیط توسعه، آنچه به نام محیط توسعه مجتمع. و شما این را دیده ام در سخنرانی نشان داد. و در مجموعه مسائل 1، شما رفتن به یک فرصت داشته باشند برای استفاده از آن، و بازی در اطراف با آن، و به آن عادت کرده اند، چون ما قصد استفاده از آن را از طریق بقیه ترم. بنابراین در این IDE، به نظر می رسد شما آنچه در مانند یک مرورگر فایل بسیار سنتی بیش از در یک طرف. شما یک بخش کردم تا بالا که در آن شما در حال رفتن برای دیدن کد منبع خود را، خود را Cfile، کد که شما ارسال. و پایین پایین، شما یک پنجره ترمینال که شما با استفاده از به هر دو کامپایل برنامه خود را و برای اجرا و یا اجرا برنامه شما. باشه. پس فقط به ما یک کمی از را پایه و اساس، در پنجره ترمینال، شما در حال رفتن به با استفاده از مجموعه ای از دستورات که دستورات استاندارد در سراسر هستند بسیاری از سیستم های یونیکس یا لینوکس. و بنابراین اگر شما همیشه استفاده می شود هر شکلی از یونیکس، اوبونتو، یا هر یک از طعم دهنده های دیگر، این در حال رفتن به نگاه آشنا. اگر شما را نداشته باشند، نگران نباشید. هیچ چیز پیچیده در مورد آنها وجود دارد. آنها فقط با استفاده از یک مختلف نحو، یک نامگذاری مختلف کنوانسیون از شما قبل از دیده می شود. بنابراین به لیست از فایل های در یک دایرکتوری خاص، آنها در حال رفتن به استفاده از دستور ls، و یا لیست نامیده می شود. اگر شما می خواهید برای دیدن همه چیز با تمام جزئیات، شما یک دستور استفاده کنید آرگومان خط با دستور ls -l. و این هم به شما همه چیز را نشان می دهد در جزئیات بیشتر، از جمله مجوز برای یک فایل. برای تغییر دایرکتوری، شما از دستور cd استفاده کنید. و شما قادر خواهید بود برای تغییر دایرکتوری هر دو برای رفتن به دایرکتوری خانگی خود را. که فقط سی دی همه توسط به خودی خود، با دو سی دی نقطه شما را تا یک بازگشت سطح به دایرکتوری قبلی خود را. و شما همچنین می توانید سی دی به دایرکتوری فرعی با تایپ کردن در سی دی و نام آن دایرکتوری فرعی. شما همچنین میتوانید یک پوشه ایجاد کنید. و ما در حال رفتن به راه رفتن از طریق این فقط در یک دقیقه. اما فقط برای قرار دادن همه چیز بر روی صفحه نمایش. به طوری که شما می توانید آنها را ببینید. شما همچنین می خواهید توانایی برای دستکاری فایل به طور مستقیم از خط فرمان. شما قادر خواهید بود به آنها را کپی کنید، به حرکت آنها، و یا به آنها را حذف، که شده است، به طور موثر، آنها را حذف کنید. محیط برنامه نویسی CS50 به شما می دهد کامل قدرت آرگومان های خط فرمان. و این بدان معناست شما همچنین می توانید انجام کارهای بسیار خطرناک است. باشه. به عنوان مثال، شما می توانید حذف، یا این که حذف، یک فایل را بدون پرسیدن برای تایید. و شما حتی می توانید حذف recursively-- که R فاصله را flag-- کل زیر شاخه و تمام محتویات آن است. باشه. آنها به رنگ قرمز ذکر شده می باشد چون شما فکر می کنم باید "خطر" هر زمان شما کسانی که همه چیز را ببینید. باشه. خیلی خوب. در حال حاضر در نهایت، چیزهایی که رفتن به واقعا ارزش را به شما، هستند چند ترفند خوب وجود دارد به می دانم به عنوان شما در حال مرور از طریق این پنجره ترمینال. اول، شما می توانید صفحه نمایش را در روشن هر زمان تنها با تایپ کردن در روشن است. و شما در حال رفتن به من که اغلب. شما همچنین می توانید نمایش متن یک فایل با تایپ کردن و سپس نام فایل. بعد از آن شما قادر خواهید بود برای حرکت به عقب و جلو با که فقط با فاصله و کلید های arrow. اگر شما، همانطور که ما امروز در سخنرانی انجام داد، یک برنامه در حال اجرا است که به طور مداوم در حلقه بی نهایت، شما می توانید که برنامه را متوقف از اجرای با تایپ کردن در کنترل، است که با پایین نگه داشتن کنترل-C. و شما ممکن است مجبور به انجام این چند بار. کامپیوتر می شود به مراتب جلوتر از شما. و شما گاهی اوقات نیاز به آن را یک زن و شوهر از تلاش می کند به قبل از آن در واقع از طریق خواهد آمد. شما همچنین قادر خواهید به مرتب سازی بر اساس دستورات از طریق که شما فقط تایپ با استفاده از کلید تا کلید فلش، و سپس کلید فلش پایین. و چه چیزی مفید است به جای از تایپ کردن نام فایل های طولانی، شما قادر خواهید بود به تب استفاده به تکمیل خودکار چند دستورالعمل. در حال حاضر ما در حال رفتن به نشان همه کسانی که در یک ثانیه. بنابراین اگر شما به یاد داشته باشید آنها، نگران نباشید. این ها چیزهایی هستند که شما می خواهید بلند کردن و استفاده به عنوان ما به همراه داشت. باشه. بنابراین در C-- بر خلاف Scratch-- C یک زبان وارد است. این بدان معناست که ما در حال رفتن به یک منبع file-- که متن که شما ارسال شده است، دستورات است که شما ارسال، تابع () printf () بیانیه ها، حلقه، همه چیز else-- و ما قصد داریم به آن فایل و دست آن را به یک برنامه به نام کامپایلر. سپس کامپایلر را خواهد که متن نوشته شده که شما و ترجمه آن به دستورالعمل های باینری که کامپیوتر شما در واقع رفتن استفاده کنید. که به نام جسم و یا فایل اجرایی. اگر شما در این فایل نگاه کنید، شما در حال رفتن برای دیدن کد که شما نوشته شده است. اگر شما در این فایل نگاه کنید، شما در حال رفتن برای دیدن دنباله تصادفی از شخصیت که هیچ حس ندارد. دلیلش این است که این باینری است. آن را برای شما به خواندن معنی این نیست. با این حال، هر زمان که شما می خواهید اجرا چیزی، چه شما در حال رفتن به در حال اجرا این فایل جسم است. بنابراین، هنگامی که ما با این کار فایل های، ما یک فایل در C. ارسال سپس ما آن را کامپایل، با استفاده از یک فرمان مانند را که قائل به خواهد صدای جرنگ جرنگ کامپایلر برای زبان C. و این که یک شی تولید فایل، مانند، و یا در این مورد، نام پرونده من، که من در قرار داده است. خیلی خوب. بنابراین اجازه دهید در واقع این را امتحان کنید. بنابراین من با یک مثال آمد از آنچه من می خواستم را امتحان کنید. و یکی از چیزهایی که من را مجذوب انیمیشن است. بنابراین ما قصد داریم به تلاش برای انجام یک کمی از انیمیشن فقط با استفاده از کاراکتر های اسکی. شخصیت ما در حال حاضر می تواند از چاپ به راحتی. بنابراین در اینجا بهترین تلاش من است در ایجاد برای شما انیمیشن از اسم حیوان دست اموز در حال اجرا از طریق علف بلند. او آنجاست. باشه. بنابراین او را در حال اجرا نشده است، اما او ایستاده وجود دارد در چمن های بلند. حالا اگر من یک انیماتور بود، در مدرسه قدیمی نسخه انیمیشن، آنچه که من انجام است من تولید یک عکس از این اسم حیوان دست اموز در چمن. و پس از آن من تولید picture-- دیگر یکی دیگر از چیزی است که آنها به نام cell-- که اسم حیوان دست اموز فقط کمی نقل مکان کرده بود. و پس از آن یک سوم که تا به حال اسم حیوان دست اموز نقل مکان کرد کمی بیشتر است. و من یک کل تولید دنباله ای از این سلول ها. برخی که در آن اسم حیوان دست اموز است بر روی سمت چپ. و سپس به آرامی حرکت می کند، یک توسط یکی به سمت وسط. و سپس از وسط به سمت راست. و اگر من پس از آن بود، واقعا خوش شانس، من می توانم آن را با هم و من می توانم آنها را تحریک و تشجیع. و اسم حیوان دست اموز من وجود دارد در حال اجرا را از طریق چمن. که پاورپوینت بزرگ من فریب برای روز. باشه. پس این است که به خوبی به عنوان آن می شود. باشه. بنابراین، در اینجا یک بار دیگر، در اینجا ما است اسم حیوان دست اموز در حال اجرا را از طریق چمن. SPEAKER 19: باز هم. برایان SCASSELLATI: یک زمان بیشتر، همه حق است. اسم حیوان دست اموز است شما وجود دارد. باشه. پس چه امروز ما قصد داریم انجام دهید این است که ما قصد داریم سعی کنید به طور خودکار فرآیند تولید این سلول ها. ما نمی خواهد کاملا به نقطه ای از گرفتن قادر بودن به همه آنها را با هم. اما، ما قصد داریم به تلاش به طور خودکار فرآیند تولید این رشته. و این بسیاری از آنچه است انیمیشن امروز است. این است که، شما همه چیز لزوما نمی با رسم همه چیز با دست. ما با استفاده از یک کامپیوتر به طور خودکار بخش هایی از این روند است. باشه. بنابراین، اجازه دهید تغییر دهید بیش از در حال حاضر به IDE CS50 ما است. و من برای us-- و اجازه دهید ایجاد من زوم در اینجا یک کمی bit-- من ایجاد شده برای ما یک نقطه شروع. هر بار که ما از شما درخواست برای نشستن و نوشتن یک قطعه از کد، آنچه ما واقعا از شما می خواهم به انجام این است که ما درخواست برای حل یک مشکل است. و راهی که باید فکر می کنم در مورد انجام داد است با شروع با برخی از بخش ساده از محلول. و پس از آن ساخت از آن بخش. و این چیزی است که ما قصد داریم به انجام امروز. بنابراین به جای تلاش همه در یک بار به ارسال تمام دسته از کد که رفتن به تولید آن 10 سلول انیمیشن، ما قصد داریم به جای شروع با یک قطعه که کار می کند. و پس از آن خواهیم ساخت کمی که در اطراف و کمی بیشتر و کمی بیشتر است. در حال حاضر چیز خوب در مورد حل مشکلات در این راه این است که آن به شما اجازه شروع همیشه با چیزی که شما می دانید کار می کند و معرفی یکی تغییر تدریجی. و یک راه بسیار خوبی به یاد بگیرند که چگونه به کد، زیرا هر زمان شما را به یک تغییر، شما ببینید که چه تاثیر آن. باشه. بنابراین در اینجا نقطه شروع ما است. باشه. بنابراین در آغاز از فایل من، من stdio.h #included هش. که به طوری که من می توانید دریافت کنید تابع printf () به کار است. من پس از آن من تابع اصلی من است. و این هنوز هم به نظر می رسد کمی محرمانه یا مبهم به برخی از شما. این خوب است. همه آن را می گوید این است که تابع اصلی طول می کشد به معنی هیچ arguments-- از درجه اعتبار ساقط هیچ چیز در C. و بازده توسط کنوانسیون یک عدد صحیح. اصلی همیشه یک عدد صحیح می گرداند، معمولا یک کد گفت: همه چیز خوب پیش رفت و یا مراجعه نمی کند. باشه. اما اصلی که این فرم برای ما در حال حاضر. من پس از آن در سه خط کد قرار داده است. و همراه با هر خط از کد، من یک نظر قرار داده است. در حال حاضر یکی از چیزهایی که ما اصرار دارند که شما انجام دهید، و آن را چنین مهم تمرین برنامه نویسی، این است که همیشه کد نظر دهند. همیشه در یک پایین ارسال نظر چیزی انگلیسی که شما فکر می کنم کد قرار است به انجام. به این ترتیب، بعدا در زمانی که شما دوباره به آن، شما می توانید در آن نگاه کنید و شما می توانید می گویند، اوه، من به یاد داشته باشید آنچه که من بود تلاش برای انجام با این. یا زمانی که یک TA نشسته با شما را به سعی کنید برای کمک به شما در ساعات اداری، آنها می توانند در این نگاه و رفتن، من ببینید چه چیزی شما سعی داشتند تا، اما به جای این است آنچه که واقعا اتفاق می افتد. باشه. بنابراین من سه قسمت به کد من کردم، من قصد دارم به اول از همه چاپ برخی از نقطه در شروع است. من پس از آن را چاپ من اسم حیوان دست اموز بسیار فانتزی. و پس از آن برخی از کمی از نقاط در پایان. و این سه عبارت print باید برای شما آشنا در این نقطه. همه که من انجام می دهند در من هر یک از آنها این است که من چاپ کردن یک رشته از کاراکتر. هیچ متغیرهای درگیر وجود دارد. همه چیز فقط مسطح است. باشه. بنابراین اگر من به پایین در حال حاضر به terminal-- من بیایید ببینید که اگر من می توانم این را دریافت out-- و من قصد دارم به تایپ دوباره روشن است. SPEAKER 20: آیا ما با استفاده از بریده بریده دو به نظر؟ برایان SCASSELLATI: آیا می توانم استفاده از بله double--. راه های متعدد به وجود نظرات در C. یکی راه این است که با استفاده از علامت ممیز دو برابر شود. دیگر این است که استفاده از یک بریده بریده و یک ستاره و سپس با یک ستاره و یک علامت را ببندید. خیلی خوب. اول از همه، من قصد دارم به شروع به مرور در اینجا. بنابراین اگر من به دایرکتوری خانه من، من دایرکتوری را تغییر داده ام وجود دارد، من قصد دارم به نگاه کنید و ببینید چه چیزی در این دایرکتوری، LS، لیست است. من قصد دارم به دید که من دو زیرشاخه کردم. بیایید این کمی بزرگتر در اینجا به طوری که ما همه می توانند آن را ببینید. من می توانید ببینید که من دو زیرشاخه کردم. من دایرکتوری را تغییر دهید برای رفتن به فضای کاری. و من قصد دارم به تنها نوع از بخشی از آن را، و سپس فقط Tab. و آن را به بقیه برای من کامل است. تفننی. من را نگاه کنید و در فضای کاری را مشاهده کنید. و در حال حاضر، من کار در SuperSection که ما در حال در حال حاضر به تدریس. بنابراین من به آن شاخه بروید. و در نهایت، نگاه کنید و ببینید. و من که فایل bunny.c کردم. کلیه حقوق این پس اجازه دهید من یک بار دیگر روشن است. و من قصد دارم به now-- دوباره من هنوز هم در آن دایرکتوری ماندن و آن را به من گفتن من هستم این دایرکتوری SuperSection. من قصد دارم به جلو بروید و اسم حیوان دست اموز برنامه من است. و فرمان، اسم حیوان دست اموز، در حالی که صدایی کمی عجیب و غریب، نیز فراخوانی کامپایلر صدای جرنگ جرنگ. و آن را برای تولید من یک خروجی است که نام AN funny-- اجرایی فایل اجرایی به نام اسم حیوان دست اموز. باشه. من پس از آن می توانید، و این برای تلفن های موبایل حتی بدتر، اسم حیوان دست اموز را اجرا کند. باشه. و اجازه دهید ببینیم که چه چیزی آن را ندارد. باشه. که یک کمی از این آنچه که من در انتظارشونه. من تصویر حیوان دست اموز من در اختیار دارم، اما من نوع از آن همه به خودی خود می خواست. من چه چیزی را از دست دادم؟ SPEAKER 21: اسلش L یا بریده بریده N. برایان SCASSELLATI: اسلش N. باشه. بنابراین اجازه دهید به عقب را اینجا ببینید. و من از آن دریافت کنید. و من به این است. و اجازه دهید یک نگاه در حال حاضر از تابع اصلی من در اینجا. پس من باید چه کار کنم؟ من می خواهم برای پایان دادن به خط. بنابراین من در یک نظر قرار داده است. من در یک تابع () printf قرار داده است (). و آنچه من باید به در قرار داده است؟ / N. باشه. چه باید من به آن پایان با؟ نقطه و ویرگول. خیلی خوب. در حال حاضر، یکی از واقعا همه چیز مهم است مطمئن شوید هر زمانی که شما ایجاد یک تغییر در کد خود را، که شما آن را ذخیره کنید. اگر کد خود را ذخیره نیست، شما رفتن به توجه کمی ستاره وجود دارد. و آن ستاره می گوید شما این کد ذخیره نمی شود. اگر من آن را در حال حاضر کامپایل، آن را نه رفتن به منعکس کننده هر یک از این تغییرات، چرا که کامپایلر به نظر می رسد در فایل که بر روی دیسک، نه فایل که باز کردن در ویرایشگر خود را. خیلی خوب. بنابراین اجازه دهید آن را ذخیره کنید و پس از آن ما به در سمت راست پایین در اینجا، دوباره است. بیا پایین به ترمینال من. و اجازه دهید فضا دوباره روشن است. و ما می توانیم جلو و یک برو زمان برنامه اسم حیوان دست اموز است. و اجرای اسم حیوان دست اموز. که هم جواب نداد. بریده بریده اشتباه است. بنابراین اگر شما در چه من نگاه کنید، من یک / N در آن وجود دارد، اما من بریده بریده اشتباه بود. همه چیز که کامپیوتر شما آیا بسیار صریح و روشن است. باشه؟ یک اشتباه کوچک از نقطه گذاری، و به طور ناگهانی شما نمی تواند آنچه شما می خواهید. خیلی خوب. بنابراین اجازه دهید زوم دوباره. ما می گردم است. خوب که تعمیر بسیار سریع است. ما در بریده بریده را در شما قرار داده است. ما آن را ذخیره کنید. ما را در زوم به عقب. به چند دلیل، که نه شاد بودن، اما اجازه دهید به جلو و ما را به ترمینال به اینجا بروید. پاک آن را. ما زوم. و یک بار دیگر، ما اسم حیوان دست اموز است. و در حال حاضر مطمئنا به اندازه کافی، کار می کند. آخ جون. باشه. بنابراین سعی کنید به این کمی کلی تر. بیایید ببینیم که اگر به جای فقط چاپ یک فریم خاص، بیایید ببینید که اگر ما می توانیم این را به طوری که ما می توانید تمام 10 دریافت از آن فریم های انیمیشن که ما می خواست که. بنابراین دوباره، اجازه دهید این یک گام در یک زمان. اجازه دهید اول آن را تعمیم، نه به طوری که من تمام فریم، اما من هیچ کس انجام قاب که من ممکن است بخواهید. بنابراین چه تفاوت بین فریم؟ آیا اسم حیوان دست اموز است؟ آری. برایان SCASSELLATI: آره. تفاوت در چیست؟ مخاطبان: موقعیت. برایان SCASSELLATI: موقعیت خود را، درست است؟ و چگونه می توانم موقعیت خود را کنترل کند؟ چگونه بسیاری از نقاط من قرار دادن در آغاز و چگونه بسیاری از نقاط من قرار دادن در پایان. بنابراین من در حال پنج آغاز و پنج در پایان. بیایید جایگزین که پنج با یک حلقه for. باشه. و من قصد دارم برای ایجاد یک برای حلقه که را می گویند، من قصد دارم به برخی از تعداد چاپ در آغاز نقطه. من قصد دارم به استفاده از یک متغیر است. بیایید می گویند، چگونه در مورد من به عنوان شمارنده در حلقه من. و من قصد دارم آن را اعلام تا بالا. و سپس در حلقه for من نیاز به انجام سه چیز. اولین چیزی که من نیاز به انجام این است که من نیاز به مقداردهی اولیه من. چه باید مقداردهی اولیه من آن را به شروع می شود؟ 0. باشه. پس از آن من نیاز به گفتن، چه شرط خاتمه است؟ هنگامی که توقف کنم؟ خب چگونه بسیاری از نقاط شما انجام نظر برای چاپ روی این یکی؟ مخاطبان: پنج. برایان SCASSELLATI: پنج دوباره؟ چگونه در مورد اجازه دهید چیزی مختلف، ما پنج بود. بیایید نشان می دهد که آن را متفاوت است. SPEAKER 22: دو. برایان SCASSELLATI: دو. باشه. بنابراین اگر من می خواهم دو نقطه، چه باید در اینجا قرار دهم؟ مخاطبان: سه. برایان SCASSELLATI: سه. باشه. چند بار این است که رفتن را از طریق رفتن؟ که رفتن را از طریق رفتن سه بار، 0، 1، 2 و، درست است؟ همه حق است، اجازه بازگشت به دو. در حال حاضر ما دو نقطه است. و آنچه من می خواهم به انجام هر زمان من را از طریق حلقه بروید؟ چه باید تغییر هر بار من از طریق رفتن؟ SPEAKER 23: اضافه کردن یک نقطه. برایان SCASSELLATI: من باید به رفتن ادامه. من قصد دارم به اضافه کردن یک نقطه. من قصد دارم به چاپ یک نقطه، هر بار از طریق حلقه. اما چگونه من پیگیری که چگونه چند بار من را از طریق حلقه بوده است؟ من با استفاده از من، که متغیر، که ضد. پس هر زمان از طریق، من قصد دارم افزایش شمارشگر به یک است. در حال حاضر، که همین کار را برای من عنوان کرد و گفت من = من + 1. این خوب است. من می توانم آن را انجام that-- من دوست دارم مختصر، بنابراین من قصد دارم برای گفتن من + +. باشه. اجازه دهید همین اینجا در پایین. فقط من از نوع بود که یکی از. من قصد دارم به شما بچه ها اجازه دهید انجام این کار به طور کامل. خیلی خوب. پس چه باید اینجا بنویسم؟ در اینجا من برای حلقه است. من قصد دارم برای انجام یک تابع () printf () و من قصد دارم آن را به طوری که من فقط یک نقطه چاپ که پایین. چه بنویسم در داخل این حلقه در حال حاضر؟ خب، اول از همه چه متغیرهای باید استفاده کنم؟ SPEAKER 24: J. برایان SCASSELLATI: من می توانم J استفاده کنید. آیا من می توانم یکی از همان استفاده کنید؟ آیا می توانم از من دوباره؟ آره. که خوب، به دلیل است که من با استفاده از تا اینجا، من آنها را دوباره در زمانی که لازم نیست من به این نقطه است. پس چه باید مقداردهی اولیه کنم؟ SPEAKER 25: 10. برایان SCASSELLATI: 0. چه باید چک کنم؟ چگونه بسیاری از نقاط من باید حال حاضر در پایان اگر دو نقطه در آغاز کردم؟ من نیاز به هشت در پایان، پس چه باید چک کنید، من کمتر than-- مخاطبان: هفت، هشت، نه. برایان SCASSELLATI: من شنیده ام هفت. من شنیده ام هشت. و من شنیده ام نه. باشه. بنابراین ما همه در حق با شماست ball-- جیسون می گوید 10. باشه. اگر من دو نقطه برای مورد نیاز یکی از اولین، چگونه بسیاری از I-- و من نیاز به هشت نقطه برای آخرین one-- من یک دو تا بالا، چه باید قرار من پایین؟ مخاطبان: هشت. برایان SCASSELLATI: هشت. از آنجا که رفتن به شمارش صفر از طریق هفت. و هشت بار از طریق حلقه است. باشه. و چه چیزی باید انجام دهم در پایان؟ مخاطبان: من + +. برایان SCASSELLATI: من + +. خیلی خوب. به طوری که به دنبال خوبی وجود دارد. اجازه دهید آن را امتحان کنید و بیایید ببینید که چه آن را ندارد. باشه. بنابراین ما در حال رفتن به آن را ذخیره کنید. زیبا و ذخیره شده است. ما بیرون زوم تماس. ما در ترمینال اینجا را امتحان کنید. ما زوم. اوه. ما، یک بار دیگر، اسم حیوان دست اموز را برنامه ما است. و به جلو و اجرای اسم حیوان دست اموز. و وجود آن است. بنابراین اسم حیوان دست اموز ما وجود دارد. که در آن دو نقطه در آغاز و هشت نقطه در پایان. همه هنوز هم با من؟ باشه. بنابراین ما آن را ساخته شده است. ما ساخته شده است یکی اسم حیوان دست اموز، یک فریم خاص است. در حال حاضر ما قادر شده تعمیم که برای ساخت بیشتر، و انواع مختلف از قاب. حالا اجازه دهید به جلو، و آن را تولید و نه فقط یک قاب، اما اجازه دهید تولید 10 فریم، که در آن ما به آرامی اسم حیوان دست اموز را حرکت تمام راه در سراسر این زمینه است. خیلی خوب. بیا برگردیم. و ما در حال حاضر امتحان کنید. بنابراین چه چیزی واقعا نیاز به تغییر در اینجا؟ چه چیزی نیاز به تغییر؟ SPEAKER 26: شما ابتدا نیاز به تغییر تعدادی از حداکثر نقاط در آغاز. چرا که اگر ما در حال انجام 10 نقطه، آن را به نیاز به تا به مقیاس. برایان SCASSELLATI: آره. بنابراین در حال حاضر من آن را از متصلند که همیشه دو نقطه در آغاز و همیشه انجام هشت نقطه در پایان. من می خواهم به ساخت حلقه دیگری، درست است؟ برای این که من نمی خواهم ساخت فقط یک تصویر اسم حیوان دست اموز، من می خواهم به ساخت 10 عکس اسم حیوان دست اموز. بنابراین من نیاز به ساخت حلقه دیگری، و من را از طریق این حلقه بروید، من می خواهم به تغییر تعداد نقطه من در آغاز چاپ و چگونه بسیاری از نقاط که من در پایان چاپ، که بر اساس آن چرخه را از طریق حلقه من هستم. خیلی خوب. بنابراین اجازه دهید یکی دیگر از ضد. کسی گفت: قبل از J، بنابراین ما دیگر J است. و اکنون، ما در حال رفتن به ساخت یکی دیگر از حلقه for. چه می رود در داخل که حلقه؟ این مسائل تا به در داخل حلقه، درست است؟ آیا اسم حیوان دست اموز دارند به داخل حلقه بروید؟ آیا من نیاز به یک اسم حیوان دست اموز در هر یک از این 10 فریم؟ مخاطبان: اوهو. برایان SCASSELLATI: آره. من می خواهم یک اسم حیوان دست اموز در هر از 10 فریم، درست است؟ چگونه در مورد نقطه در در پایان، لازم است که من؟ باشه. بنابراین من قصد دارم که متن همه آنها. من قصد دارم به برجسته همه این، و من قصد دارم به ضربه نوار. و که رفتن به آنها فشار بیش از همه یک کمی، به طوری که آن برای من آسان است برای دیدن آنچه که در حلقه. و پس از آن من آن را به پایان. بیایید می گویند. باشه؟ در حال حاضر، در این حلقه که من building-- اوه هستم، را که شما می توانید see-- من ضد من J کردم. من آن را در 0 آغاز شده است. چند بار من می خواهم از طریق این حلقه بروید؟ مخاطبان: 10 بار. برایان SCASSELLATI: 10 بار. پس چه تعداد باید در اینجا قرار دهم؟ مخاطبان: 9، 10. برایان SCASSELLATI: 9، 10، کسی رو به 11، درست است؟ من قبل از دو نقطه می خواستم قرار داده و من کمتر از 2. من می خواستم هشت نقطه، من را به من کمتر از 8. حالا من می خواهم از طریق 10 به بار، بنابراین من کمتر than-- قرار J مخاطبان: 10. برایان SCASSELLATI: 10. ما میرویم آنجا. و آنچه را می توانم در پایان به j را انجام دهد؟ ++، آن را افزایش. باشه. در حال حاضر، در اینجا بخشی از مشکل است، چه رفتن در حال حاضر اگر من این کار را به اتفاق می افتد؟ من رفتن به چاپ 10 فریم؟ SPEAKER 27: من فکر می کنم همه آنها یکسان باشد. برایان SCASSELLATI: آنها همه همان، درست است؟ چرا که همه آنها هنوز هم برای قرار دادن دو نقطه در ابتدا. اما من همه آنها را به را نمی خواهم دو نقطه آغاز است. من چگونه بسیاری از نقاط انجام در آغاز می خواهید؟ رسید در حال تغییر. برایان SCASSELLATI: من می خواهید آن را تغییر دهید، درست است؟ بنابراین چه چیزی در اینجا من که در حال تغییر هر بار که حلقه می رود از طریق؟ مخاطبان: تعداد نقاط، J. برایان SCASSELLATI: J، تعداد نقاط. بنابراین من می تواند این را تغییر دهید به J. اولین بار از طریق حلقه، آنچه که خواهد بود؟ چه J مجموعه من به در ابتدا؟ مخاطبان: 0. برایان SCASSELLATI: پس چگونه بسیاری از بار من رفتن به انجام این کار؟ 0. بار دوم از طریق حلقه، j به رفتن به 1 چون من آن را افزایش. چگونه بسیاری از نقاط من رفتن به چاپ؟ 1. بار سوم از طریق حلقه، چگونه بسیاری از نقاط من رفتن به چاپ؟ مخاطبان: سه. برایان SCASSELLATI: J است برای رفتن به 3. چگونه بسیاری از نقاط من رفتن به چاپ؟ اوه، ببخشید، J را برای رفتن به 2. چگونه بسیاری از نقاط من رفتن به چاپ؟ مخاطبان: 2. برایان SCASSELLATI: 2. خوب، پس من قصد دارم به حفظ افزایش که همانطور که ما به همراه داشت. چگونه در مورد پایین؟ چه می رود را در اینجا؟ من نمی خواهم همیشه 8 در پایان دیگر؟ SPEAKER 28: 10. برایان SCASSELLATI: من می خواهم 10 نقطه؟ من می خواهم آن را به تغییر، TOO. پس چگونه من می خواهم آن را تغییر دهید؟ مخاطبان: [نامفهوم]. برایان SCASSELLATI: خب، اگر من پنج نقطه در آغاز، چگونه بسیاری از نقطه انجام من در پایان دریافت کنم؟ مخاطبان: پنج. برایان SCASSELLATI: اگر من شش نقطه در آغاز، چگونه بسیاری از در پایان دریافت کنم؟ مخاطبان: چهار. برایان SCASSELLATI: اگر من هفت نقطه در آغاز، چگونه بسیاری از در پایان دریافت کنم؟ مخاطبان: سه. برایان SCASSELLATI: اگر من نقطه J در آغاز کردم، چگونه بسیاری از در پایان دریافت کنم؟ 10-J. باشه. بنابراین سعی کنید که از. بنابراین من قصد دارم برای صرفه جویی در برنامه اسم حیوان دست اموز است. یک بار دیگر ما زوم کردن. ما به ترمینال ما بروید. ما آن را پاک کنید. و زوم. ما برنامه اسم حیوان دست اموز ما دوباره. و ما آن را اجرا کند. آه اوه. دست نگه دارید، اجازه دهید زوم کردن. آیا من 10 فریم را دریافت کنم؟ خوب، چگونه bunnies بسیاری من را ببینید کردن وجود دارد؟ 1، 2، 3، 4، 5، 6، 7، 8، 9، 10. من 10 فریم است. آیا همه آنها همان؟ مخاطبان: آره. شماره برایان SCASSELLATI: شماره که یکی از اولین، اسم حیوان دست اموز دور در سمت چپ است. و در اینجا، اسم حیوان دست اموز است که به دور بر روی SPEAKER 29: درست است. برایان SCASSELLATI: بنابراین، آنچه که من فراموش کاری انجام دهید؟ SPEAKER 30: شروع یک خط جدید. برایان SCASSELLATI: من را فراموش کرده برای شروع یک خط جدید، دوباره و دوباره. همان اشتباه من قبل از ساخته شده است. همه حق است، اجازه دهید به مشکل رفع شود. در حال حاضر، من هنوز کد در آن وجود دارد برای ایجاد یک خط جدید است. چرا آن را به کار نمی کردند؟ SPEAKER 31: آن را در داخل حلقه است. برایان SCASSELLATI: اوه، آن را در داخل حلقه است. درست است. آن را نشسته در خارج است. و حلقه for همه چیز است که در داخل آن متن است. بنابراین من قصد دارم به حرکت این صفحه در داخل حلقه for. و من Tab در مقابل آن را به نشان می دهد که آن را در جای مناسب است. و در حال حاضر، ما آن را دوباره ذخیره کنید. ما زوم کردن. ما به ترمینال ما می روند. زوم. ما برنامه های ما را بازسازی اسم حیوان دست اموز. و در حال حاضر، در حال حاضر ما 10 فریم ما است. [کف زدن] برایان SCASSELLATI: OK. بنابراین. در اینجا ما برای حلقه تو در تو. ما قادر به تولید در شد حلقه درونی چگونه بسیاری از نقاط من می خواستم به چاپ در آغاز، در پایان. و حلقه بیرونی کنترل چگونه بسیاری از فریم من در ساختن. ما با یک کمی آغاز شده هسته از مشکل، و ما از آن نقطه ساخته شده است. خیلی خوب. اجازه دهید یک گام دیگر. آماده ای؟ یک چیز وجود دارد که در آن در اینجا ما در واقع نوع کردم پیچیدگی بیش از ما نیاز داریم. بیا یک نگاهی بیندازیم. بنابراین در برنامه اسم حیوان دست اموز ما، اگر زوم من در اینجا، من در واقع برخی از همین کار را چیزی که بارها و بارها. چه کار کنم که مرتب سازی بر اساس همان چیزی که تکرار دو بار؟ SPEAKER 32: چاپ نقطه. برایان SCASSELLATI: بله من دو بار چاپ آن نقطه است. واقعا، من باید این نظر را در اینجا. من نسخه قابل چاپ برخی از نقاط در آغاز، تا اینجا. و بعد من برخی از نقاط چاپ در پایان. و من نوع دقیقا همان چیزی که. آنچه که ما قصد داریم به شروع کار بر روی در چند هفته آینده است که قادر به آن بلوک از کد است که ما استفاده دوباره و دوباره، و از طریق یک فرایند انتزاع نامیده می شود، ما قصد داریم به آنها را بیرون بکشد و ارسال آنها را یک بار به طوری که ما می توانید پس از آن استفاده مجدد از آنها را بارها و بارها. بنابراین سعی کنید که. آماده بودن؟ ما قصد داریم به این بلوک کد است. و من قصد دارم به آن را از وجود دارد. و من قصد دارم به define-- در پایین، من قصد دارم به نوشتن یک تابع جدید است. آن را به بازگشت هر چیزی. و من قصد دارم به آن پاسخ printDots. آن را به یک استدلال، یک عدد صحیح است که می گوید من باید howManyDots چاپ کنید. و در حال حاضر به جای چاپ نقطه J، من چاپ howManyDots من باید چاپ کنند. و یک مشکل کوچک وجود دارد در اینجا. کسی می داند آنچه در آن است؟ چه چیزی دارم که ذکر شده در اینجا است که تعریف نشده؟ مخاطبان: [نامفهوم] برایان SCASSELLATI: خوب چگونه بسیاری از نقاط تعریف شده است به سمت راست در اینجا، اما من با استفاده از آن متغیر i است. بنابراین من قصد دارم به نگاهی است که متغیر i و من قصد دارم به پایین تعریف آن را در اینجا بجای. بنابراین در حال حاضر آن را به stay-- اوه، کردم Caps Lock روشن somehow-- من رفتن به نگه داشتن من در اینجا. بنابراین در حال حاضر در اینجا تابع کوچک من است یا زیر معمول، و آن را می گوید، چگونه بسیاری از نقاط من رفتن به چاپ؟ و آن را از طریق این حلقه بروید و بارها و بارها چاپ آنها. من پس از آن می توانید تغییر دهید برنامه های من تا اینجا. و آنچه که من که تابع پاسخ؟ printDots. بنابراین من printDots پاسخ. چگونه بسیاری از نقاط انجام چاپ اولین بار قبل از اسم حیوان دست اموز؟ مخاطبان: J. برایان SCASSELLATI: J. چگونه بسیاری از نقاط انجام چاپ در پایان، پس از اسم حیوان دست اموز؟ 10-J. و یک چیز من گم شده است. همانطور که شما در سخنرانی امروز دیدم، ما در حال رفتن به اعلام printDots در بالا به نمونه اولیه است. باشه. پس آنچه که من انجام داده ام من به سعی کردم منزوی که بخشی از کد مورد استفاده مجدد قرار که من بارها و بارها انجام داده ام. و من سعی کردم آن را بیرون بکشد به طوری که همه از آن در یک مکان موجود است. به این ترتیب، اگر من یک اشتباه در جایی، من فقط باید آن را تعمیر در یک نقطه. خیلی خوب. بنابراین اجازه دهید آن را نجات دهد. و اجازه دهید مطمئن شوید که آن کار می کند. بنابراین اجازه دهید بیرون بروید. ما دوباره به ترمینال ما بروید. ما زوم. ما که فرایند اسم حیوان دست اموز می کنیم. آه. و آن را به من هشدار داده شده است. چه چیزی است که به من گفتن؟ خوب در هر یک از این بار، شما همیشه می خواهید برای حرکت به بالا به error-- اولین در حال حاضر در این یکی، من تنها یکی است. آن را به من می گوید در bunny.c، در خط 8، ستون 9، یک مشکل وجود دارد. این گزارش می گوید، شما این اعلام کرده ام من متغیر و شما آن را استفاده نمی شود. در حال حاضر به طور معمول، که نه بدترین خطا. که یکی از آسان به رفع است. و در واقع، ما می توانیم در رفت. ما می توانید به اسم حیوان دست اموز. و در این مورد، همه ما مجبور به انجام آن از من خلاص شدن از شر، چرا که ما با استفاده از نه من در داخل اصلی نیست. ما فقط در حال استفاده از آن در زیر ما معمول است. بنابراین اجازه دهید که صرفه جویی در. ما می گردم است. و زوم. ما یک بار دیگر باید اسم حیوان دست اموز. و دوباره 10 فریم ما هستند. باشه. هر زمان شما داده می شود procedure-- آره. SPEAKER 33: من a-- من آشفته هستم. می تواند شما را به کد؟ برایان SCASSELLATI: بله. SPEAKER 33: بنابراین، زمانی که شما نوشت نمونه خود را، استدلال شما آن را به نام بود howMany نامیده می شد؟ اما، below-- برایان SCASSELLATI: آه، بله. SPEAKER 33: آنها چیزی --called مختلف، من درک نمی کنم. برایان SCASSELLATI: چرا آنها متفاوت است. به طوری که یک سوال بزرگ است. بنابراین سوال این بود، تا در اینجا، من نوشت howMany، و پایین زیر، من howManyDots نوشت. دلیل آن این است که در نمونه خود را، آن را در واقع توجه نمی به نام که شما در حال قرار دادن در. همه آن را واقعا در مورد مراقبت این است که آن یک عدد صحیح است. آن را می خواهد به دانستن فرم از آنچه شما در حال قرار دادن در. در حال حاضر stylistically-- oops-- آنچه که من باید انجام است، من دوست دارم به این بازی. باشه. از آنجا که می شود آن را نگه دارید آسان تر برای من به یاد داشته باشید. اما این اشتباه من آره بود. SPEAKER 34: و بنابراین، برای نمونه اولیه به کار، فقط نوشتن آن خط، نوشتن نمونه، اجازه می دهد که تابع است که می آید درست در زیر آن برای رفتن به پایان و بازیابی یعنی چی؟ برایان SCASSELLATI: چه به این معنی زمانی است که کامپایلر می رود از طریق، آن را از بالای می رود کد خود را به پایین. و این نمونه اولیه است، است آن را اساسا یک وعده. این گزارش می گوید، برای رفتن به وجود یک تابع جایی تعریف شده است. آن را به نام printDots. و آن را به یک آرگومان که برای رفتن به یک عدد صحیح و آن را به بازگشت به هیچ چیز، نوع اعتبار ساقط است. باشه. من قول می دهم که شما آن را برای رفتن به جایی در طول جاده تعریف شده است. اما هر زمان که شما می بینید که، به عنوان شما را به پایین از طریق بقیه من تابع اصلی، من می خواهم شما برای درمان که به عنوان یک تابع که عدد صحیح ورودی طول می کشد. و تا زمانی که کامپایلر پایین می رود از طریق این، آن است که وعده می بیند. و هنگامی که آن می شود، نگه می دارد رفتن، نگه می دارد، آن را می یابد اولین بار printDots ذکر شده است. و آن را می گوید، آه، شما در حال دادن من این J. J یک عدد صحیح است. به خوبی شما به من قول داده که یک عدد صحیح و درست است. این خوب است. و سپس در نهایت، پایین در پایین، قبل از من به پایان گرفتن من فایل، من که خوب در وعده من و آن را تعریف می کنم. باشه؟ SPEAKER 35: بنابراین، آن saves-- برنامه فضاهای خالی را ذخیره کنید که تماس می رود و پر در پایان؟ برایان SCASSELLATI: این نه در مورد تخصیص حافظه. این در واقع فقط در مورد آنچه نوع از شما انتظار برای دیدن. باید این چیزی که یک استدلال، و یا پنج استدلال؟ باید آن را اعداد صحیح باشد داده شده به آن، یا رشته؟ که همه آن را به دنبال انجام دهید این است برای بررسی، شما به من دادن نوع درست استدلال است. باشه؟ خیلی خوب. اجازه بدهید به شما با ترک یک بیت دیگر نگاه کنید. هنر ASCII است مدل بزرگ نیست انیمیشن به عنوان آن امروز است. اما برخی از مردم البته همه چیز و آنها آن را به نهایت خود فشار. این است، به عنوان نشان داده دیوید در سخنرانی، یک قطعه کد که شما باید تحت هیچ شرایطی سعی کنید به خودتان کپی کنید. از آنجا که آن وحشتناک است سبک. در واقع، آن طراحی شده است به عنوان باشد مشکل که ممکن است به خواندن. باشه. بنابراین، به انجام دوباره، اجازه دهید زوم در اینجا. من قصد دارم در حال حاضر به رفتن، دایرکتوری تغییر دهید. من قصد دارم برای رفتن به یک سطح، بازگشت به فضای کاری من. من پس از آن را تغییر دهید به این دایرکتوری دایرکتوری دیگر است که من ایجاد کرده اید. و این است که بین المللی برنامه نویسی C مبهم مسابقه. ابزار مبهم به عنوان سخت که ممکن است به درک. پس لطفا، نمی ترسم اگر شما نگاه کنید در این رفت و من قادر به خواندن است. که نقطه آن است. باشه؟ اما، ما باید این برنامه فوق العاده که من رفتن به در نگاه کنید تنها با تایپ کردن است. و اجازه دهید ببینید اگر من می توانید با زوم فقط یک کمی، بنابراین شما می توانید آن را ببینید و این برنامه است. آن را به نام endo.c. و آن را مانند به نظر می رسد با این سطل نوع حروف F-L-U-I-D در آن است. این در واقع یک برنامه. آن را در گمنام ترین نوشته راه که نویسندگان احتمالا می تواند ارسال آن است. اما آن را یک قطعه کوچک فوق العاده است که تولید یک مدل از دینامیک سیالات. و بنابراین ما در حال رفتن به که مدل یک ورودی که به نظر می رسد مانند این، از یک ظروف مجموعه staired با برخی از مایع، برخی از مایع، تا در بالای صفحه. و ما باید آن را شبیه سازی آنچه اتفاق می افتد به آن است. پس من که تابع، اندو. و من آن را می دهد که ورودی فایل است که من تا به حال. و مظهر ما از هنر ASCII وجود دارد. شبیه ساز دینامیک سیال کامل در حال اجرا فقط در چند خط کد. در حال حاضر چه در واقع واقعا شگفت انگیز در مورد این برنامه کوچک این است که من می خواهم به آن را متوقف کنید، بنابراین من قصد دارم به استفاده از آنچه دستور؟ مخاطبان: کنترل-C. برایان SCASSELLATI: کنترل-C. باشه. بنابراین من کنترل-C استفاده کنید. C است که آن را متوقف کند. من دوباره روشن است. و در حال حاضر من قصد دارم به استناد برنامه، اجرای برنامه، با استفاده از خود را به عنوان ورودی می باشد. و ما دینامیک سیال را ببینید شبیه سازی از آن ذوب شدن. باشه. لطفا اجازه ندهید که برنامه بود که چیزی که شما دچار سردرگمی. آن را فقط به طوری که ما می توانیم در پایان چیزی سرد و جالب است. باشه. بهترین شانس با مجموعه مسائل خود را. ما خوشحال برای پاسخ خواهید بود سوال بعد از کلاس. ، با تشکر بسیار بچه ها.