[Powered by Google Translate] DAVID J. مالان: کلیه حقوق این CS50 است، و این است که
شروع از دو هفته است.
متشکرم.
اجازه دهید ما در اینجا با یک تماس تلفنی آغاز.
من به شماره گیری 617-BUG-CS50.
CS50: این CS50.
برای پسر شاتل را فشار دهید 1.
بیش از شروع را فشار دهید 9.
DAVID J. مالان: بنابراین او برای پسر شاتل، مطبوعات 1 گفت.
بنابراین ما در حال رفتن به فشار 1.
CS50: منشاء شما چیست؟
برای استفاده از پردازنده، مطبوعات 1.
مدر، مطبوعات 2.
Boylston، مطبوعات 3.
لامونت، مطبوعات 4.
حافظه هال، مطبوعات 5.
بیش از شروع، 0.
DAVID J. مالان: ما می خواهیم 1 برای چهار را فشار دهید.
CS50: شاتل بعدی برگ های این دقیقه در 1:10 PM، و
سپس در 01:20، 01:30، 01:40.
این CS50 است.
>> DAVID J. مالان: پس این صدای CS50.
و آن را نمونه ای از انواع پروژه های نهایی، برای
به عنوان مثال، شما می توانید گاز خاموش به سمت
پایان ترم است.
به عنوان مثال، که shuttleboy.cs50.net وجود دارد -
در واقع یک پروژه است که من برای اولین بار پس از مصرف CS51 نوشت
زمانی که من در مقطع کارشناسی بود.
و الهام بخش در اینجا بود در آن زمان، همه آنها به حال
چاپ شاتل برنامه اتوبوس، و در آنجا بود
مفهوم به دنبال چیز آنلاین است.
و بنابراین من نوعی از کبوتر در یک تعطیلات آخر هفته، از طریق ریخت
چاپ برنامه، و آن را به یک برنامه رایانه ای منتقل شده است.
در آن زمان، برنامه های کامپیوتری اتفاق افتاده است باید نوشته شود
در C. در واقع آن را توسط پسر شاتل تایپ در فرار
پلک زدن به مانند ما انجام داده ایم تا کنون تحریک کند.
اما در طول سال ها، آن را به یک لحظه تبدیل
پیام های ربات.
این بیشتر به تازگی به این وب سایت تکامل یافته است، به
SMS مبتنی بر ابزار، و همچنین به این ابزار مبتنی بر صدا.
و این است که در انواع چیزهایی اشاره است که شما می توانید
کار را برای خودتان پایان ترم.
>> به عنوان مثال، وجود دارد، نسخه SMS از پسر شاتل اتفاق می افتد
به کار به شرح زیر است.
اگر، بر روی تلفن همراه شما، شما ارسال یک پیام به صورت متن 41،411
سپس sboy نماد ویژه، ارسال برای پسر شاتل،
A و B، که در آن منشأ و B است.
مقصد -
به عنوان مثال، چهار Boylston فضایی -
آنچه که شما باید در عرض چند ثانیه یک متن است
پیام پسر شاتل به شما می گویم دقیقا زمانی که
چند بعدی شاتل، از آن نقطه رفتن به آن
نقطه B.
و این یک مثال کلی تر از چیزی است که شناخته شده به عنوان
با استفاده از API است.
>> بنابراین برای مثال، این در اینجا این است فقط shuttleboy.cs50.net،
تجسم واقعی مبتنی بر وب از این.
اما داده است که تاکید و دیگر برنامه های است که CS50
را توسعه داده است همه به هر کس در اینجا در معرض فرم
از رابط های برنامه کاربردی، رابط های برنامه نویسی برنامه های کاربردی است.
و این تنها راه فانتزی و گفت که مردم ما دوست داریم
اینترنت و دیگران را صرف برخی از زمان ایجاد
نرم افزاری است که شما می توانید با استفاده از دستور برای گرفتن داده ها از ما و
پس از آن برنامه های خود را در بالای ساخت
که مجموعه ای از داده ها است.
بنابراین به عنوان مثال، این شاتل صفحه API پسر در اینجا، که
اتفاق می افتد که در کتابچه راهنمای CS50، در اصل اسناد
چگونه شما می توانید در مورد درخواست CS50 سرور برای داده.
به عنوان مثال، اگر شما آشنایی با فایل های CSV، کاما از هم
از هم جدا ارزش ها، این تنها مرتب کردن بر اساس سریع و کثیف
فایل های اکسل مانند.
بنابراین شما می توانید پسر شاتل برای همه داده ها در تمام بپرسید
خانه ها و مختصات GPS خود را، و شما خواهید دریافت کنید
پشت، در اصل، یک صفحه گسترده که می خواهم این است که
بعد از آن شما می توانید به یک برنامه را آن گونه که مایلید تغییر دهید به عنوان خوانده شده و پس از آن
ایجاد نتایج، شاتل مانند پسر خود
اتفاق می افتد به انجام.
برای کسانی که آشنا تر، مدرن تر داده بازنمودهای
JSON، JavaScript در مرورگر نشانه گذاری شی.
چیزی خواهد آمد به شما به سمت
پایان ترم است.
>> اما باز هم، این است که تنها یکی از بسیاری از رابط های برنامه کاربردی خود CS50.
نکته هیجان انگیز در حال حاضر، این روزها، فیس بوک و
توییتر و گوگل و تقریبا در هر وب سایت محبوب
برخی از مرتب کردن بر اساس API، بدان معناست که اگر شما خواندن وجود دارد
اسناد را در وب سایت خود، شما برای ثبت نام
حساب، بعد از آن شما می توانید شروع به نوشتن نرم افزار در بالای
هر ابزار و یا داده هایی را که شرکت وجود دارد فراهم می کند.
و پس از همراهان تدریس ما را چند سال به عقب
نوشت مکینتاش نسخه از این.
بنابراین در ارتباط با عنوان مک در اینجا و در سمت چپ بالا، شما در واقع می تواند
دانلود سیستم عامل مک ویدجت است که اجرا می شود خود را در مک خود را به انجام
انواع چیزها می شود.
پس از آن همه چیز در مورد ساخت و ساز بر روی مجموعه داده هایی از این دست است.
اما بیشتر در مورد آن به سوی پایان ترم.
>> پس بیایید در سریع واقعی به اشکال شیرجه، فقط به نوع از
همه چیز گرم تا امروز، و فکر می کنم در برخی از
چیزهایی که ما در هفته گذشته نگاه کرد.
به طور خاص، به من اجازه رفتن به جلو و بالا بکشد، می گویند،
این مثال در اینجا.
Buggy1.c، این است که اگر شما می خواهم در وب سایت درس
می خواهم به آن را دانلود کنید و بهم زدن در اطراف خودت.
اما اجازه دهید در اینجا در این برنامه نسبتا کوتاه امکان زوم و فقط
روکش فوق العاده سریع برخی از بلوک های ساختمان های اساسی است که
ما واقعا در حال رفتن به تنها شروع به گرفتن برای مسلم است.
>> بنابراین چیزهای آبی رنگ، در خطوط 1 تا 9، فقط
سوالات سافتبال.
پس این ها فقط نظرات.
آنها هیچ معنا عملکردی.
اما آنها به این معنا است که آنها یادداشت که
من، انسان، ساخته شده به خودم، به طوری که در سخنرانی و پس از
سخنرانی، من در واقع می تواند به یاد داشته باشید این برنامه
بدون نیاز به از طریق آن خط به خط خوانده و
تاریخ دوباره در ذهن من است.
علاوه بر این، در صورتی که این برنامه را به دست شخص دیگری مانند
شما، آن را به مراتب واضح تر برای شما، به دلیل از نظر شبیه به این،
این برنامه در واقع انجام می دهند، و یا حداقل آنچه را که
برنامه قرار است انجام شده است.
اینکه آیا یا نه صحیح است موضوع دیگری در دسترس نباشد.
در حال حاضر، در C، با نظر چند خط، به یاد داشته باشید که بر روی خط
در اینجا نماد سحر و جادو است، / *.
این بدان معنی است در اینجا می آید شروع از یک نظر است.
و هیچ چیز دیگری مهم نیست تا زمانی که شما رسیدن به انتهای ترمیناتور،
* /، مخالف است.
بنابراین واقعیت این است که من 80 برخی از ستاره های عجیب و غریب در اینجا از
از چپ به راست است که واقعا فقط جزئیات زیبایی شناسانه است.
این هیچ معنای کاربردی می باشد.
>> در حال حاضر چگونه در مورد خط 11؟
چه می کند این کار را به عبارت دیگر انجام دهید؟
که چیست؟
مخاطبان: شامل استاندارد است.
DAVID J. مالان: OK، خوب است.
پس از آن شامل کتابخانه stdio.h است.
پس چه معنا است؟
خب، در داخل آن فایل stdio.h هستند، یک دسته کل
اظهارات تابع -
است که، کدی که شخص دیگری نوشت.
و یک مثال کامل از یک تابع که در اعلام
stdio.h است -
که در حال حاضر مورد علاقه؟
تا printf، یکی از آنهایی که شایع ترین استفاده از، قطعا
در اوایل، از آن کتابخانه وجود دارد.
اگر من حذف این خط از کد، صدای جرنگ جرنگ می داد
به من چیزی در مورد استفاده از یک نماد اعلام نشده است.
چیزی اعلام نشده است، احتمالا کلمه کلیدی، به دلیل
کامپایلر printf به نظر می رسد ما را مطلع نمی
دوست مگر اینکه ما که در خط است.
و بیشتر به زمین، در واقع، آنچه که خط گفت:
باز کردن آن فایل stdio.h، هر جا که آن را بر روی سرور است
هارد دیسک، و یا هارد دیسک دستگاه، را کپی کنید و خمیر آن
در سمت راست وجود دارد به پرونده من، بدون من
نیاز به انجام این کار دستی.
>> در حال حاضر، زمانی که ما پایین در اینجا به بخش اصلی آمار، قبل از اینکه طولانی خواهیم شروع به
اذیت کردن جدا چه بین المللی و چه از درجه اعتبار ساقط است.
اما در حال حاضر، اجازه دهید نگاهی به سه خط
ظرف 15 تا 17.
در اینجا من به عنوان حشره دار کنند.
خط 7 در نظر من می گوید: "باید 10 نسخه قابل چاپ
ستاره اما اینکار را در مورد شما نمی کنند. نیست "چرا این نیست چاپ، در واقع،
10 از جمله ستاره؟
مخاطبان: [نامفهوم].
DAVID J. مالان: دقیقا.
به طوری که ما شروع به شمارش از 0 اطلاع می دهد.
و این است که در واقع یک کنوانسیون در برنامه نویسی و
علم کامپیوتر به طور کلی، شروع به شمارش
از 0 به جای 1.
و این واقعا فقط از این واقعیت است که، برای مشتق شده
به عنوان مثال، هنگامی که ما تا به حال هشت نفر بر روی صحنه، هنگامی که
هیچ کس بالا بردن دست خود، آنها
صفر به طور موثر.
و پس از آن فقط کنوانسیون کامپیوتر مهربان بنابراین،
بنابراین، برای شروع به شمارش از 0.
در صورتی که پایین ترین شماره شما می توانید در باینری را نمایندگی کند.
>> پس در این جا ما شروع به مقدار دهی اولیه من را به 0.
ما مجموعه ای رو به 0 برابر است.
اما پس از آن من این اشتباه را در اینجا، گفت: من کمتر از یا
تا 10 برابر است.
اما اگر شما فکر می کنم که از طریق، اگر من از 0 شروع شده و پس از آن من
تا 1، 2، 3، 4، 5، 6، 7، 8، 9، 10، من در واقع به رفتن
نسخه قابل چاپ کردن 11 ستاره روی صفحه نمایش، چرا که من بالا رفته است
و برابر با 10 است.
بنابراین حل آسان در اینجا پس از آن چه؟
مخاطبان: [نامفهوم].
DAVID J. مالان: تنها تغییر آن را به کمتر از.
اگر شما واقعا می خواهید، شما می توانید این کار را انجام دهند.
اما به طور کلی، که غضب.
و به این ترتیب شروع به شمارش از 0 فقط چیزی است که شما باید
به طور معمول استفاده می شود به.
در حال حاضر، چه در مورد کل این ساختار به خودی خود؟
این 15 خط demarks حلقه.
بنابراین برای یک تابع نیست.
این فقط یک بیانیه است.
این یک ساختار حلقه، مانند ما در ابتدا دیدم.
و آن را دارای سه بخش می باشد.
توجه داشته باشید که در بخش اول وجود دارد
در سمت چپ نقطه و ویرگول بدین.
بخش میانی در بین دو سمیکالن وجود دارد.
و سپس دست راست را به سمت راست وجود دارد
از نقطه و ویرگول بدین شکل دوم است.
در حال حاضر، برای اولین بار از این چه؟
مخاطبان: [نامفهوم].
DAVID J. مالان: برگشت وجود دارد؟
آره؟
مخاطبان: دهی اولیه.
>> DAVID J. مالان دهی اولیه.
پس به چه معنی است؟
یک متغیر به نام من به ما اعلام کرده اند.
آن را از نوع int است، چرا که من مشخص اعضای هیات من.
و من هستم من در مقدار دهی اولیه به ارزش 0.
بنابراین آنچه که در این گفت: واقعا؟
آن را به طور موثر به کامپیوتر گفت: با سلام، به من به اندازه کافی
حافظه، RAM کافی، به تناسب تعداد، و پس از آن قرار داده است
شماره 0 که در آن تکه از RAM.
و به عنوان یک به کنار، چقدر بزرگ بین المللی است به طور معمول، حداقل در داخل
لوازم خانگی
مخاطب: 32 بیتی.
DAVID J. مالان: 32 بیت.
بنابراین این بدان معناست که من 32 بیت، در غیر این صورت به عنوان 4 بایت شناخته می شود،
و قرار دادن 0 ارزش در آن است، که بسیار آسان است زیرا
آن را فقط به معنی همه بیت را به 0.
>> بنابراین در حال حاضر، بخش دوم در اینجا شرط است.
و شرط، به عنوان نام نشان می دهد، همان چیزی است که بررسی می شود
دوباره و دوباره و دوباره به عنوان که آیا این درست است یا غلط.
بنابراین این فقط گفت: انجام خطوط زیر کد -
یعنی خط 16، به دلیل که تنها فاصله دار است
زیر -
تا زمانی که من کمتر از 10 است.
و بعد از هر تکرار از طریق این حلقه، آیا
incrementation، که در این مورد این است + +.
در حال حاضر، آن را ندارد به من + +.
این می تواند من -.
اما اگر من، چه رفتار
از این برنامه؟
مخاطبان: این رفتن به یک حلقه بی نهایت است.
DAVID J. مالان: رفتن به برخی از انواع حلقه بی نهایت،
مگر این که ما خوش شانس بعد از 2 منفی میلیارد.
شاید چیز در اطراف بسته بندی کردن، فقط با ماهیت محدود
تعداد بیت های که ما برای بین المللی اختصاص داده شده است.
اما مطمئنا رفتن به مراتب بیش از 10 تکرار و
قطعا بیش از 11 بار در اینجا.
>> و در حال حاضر، فقط به عنوان یک کنار، بدانند که من + + و من -
واقعا فقط قند نحوی است.
این فقط نماد مختصر برای چه چیزی کمی بیشتر
به صراحت به شرح زیر نوشته شده است:
من = + 1 است.
که به من یکسان است + +.
این فقط به نوعی به نظر می رسد زیباتر می گویند من + +.
این موجز، قابل خواندن است.
و به این ترتیب بسیاری از افراد که به جای انجام دهد.
اما این عملکرد یکسان است به
آنچه که ما فقط دیدم.
بنابراین در کوتاه مدت، ثابت میانبر در اینجا فقط به گفتن تکرار من در
از 0 تمام راه را تا به کمتر از 10 است.
و پس از آن ما در واقع 10 ستاره را دریافت کنید.
>> بنابراین سعی کنید این اجازه.
اجازه بدهید باز کردن ترمینال در پایین.
اجازه بدهید من به دایرکتوری که این شوید.
و من قصد دارم به آن را کامپایل دستی با صدای جرنگ جرنگ در حال حاضر.
و من قصد دارم به کامپایل این به عنوان buggy1.c، را وارد کنید.
و در حال حاضر buggy1، چرا که بدون چنین فایل یا دایرکتوری وجود دارد
به نام buggy1؟
مخاطبان: [نامفهوم].
DAVID J. مالان: آره.
پس از آن در واقع به نام a.out.
بنابراین اگر شما فقط اجرا صدای جرنگ جرنگ یاد، که در آن صدای جرنگ جرنگ است
کامپایلر و شما به نام شما می خواهید مشخص نیست
را به برنامه خود، آن را به طور پیش فرض به a.out.
پس در واقع اگر من LS -
متأسفم.
و من didn't - شماره سیاه و سفید برخی از
شما با آن روبرو شده است.
اما به من اجازه انجام این کار است.
وجود دارد ما باید a.out در سمت چپ وجود دارد.
بنابراین ما باید برای اجرای a.out به جای buggy1.
>> پس جلو بروید و اجازه دهید این کار را انجام.
/ a.out را وارد کنید.
و من ظاهرا چه چیزی نیست؟
مخاطبان: ذخیره.
DAVID J. مالان: صرفه جویی در فایل.
به طوری که به راحتی با هدف قرار دادن کنترل، و یا رفتن به حل
فایل، ذخیره، مانند در اکثر برنامه ها.
اجازه بدهید من به پایین، پاک کردن صفحه نمایش، دوباره آن را اجرا کنید.
و هنوز هم یک اشکال وجود دارد.
پس چه می گذرد -
مخاطب: شما کامپایل کند.
DAVID J. مالان: آه، خوب است.
من آن را کامپایل کند.
مانند یک ادم سفیه و احمق، من به دنبال کد برای دیدن چه چیزی اشتباه است.
بنابراین buggy1.c صدای جرنگ جرنگ، در حال حاضر a.out.
و phew، نجات داد.
>> پس از آن کمی زشت به نظر می رسد، زیرا هیچ خط جدیدی وجود دارد
در هر نقطه این برنامه است.
اما باز هم، که فقط جزئیات زیبایی شناسانه است.
و حداقل اگر کسانی که ما شمارش، ما باید
در حال حاضر 10 ستاره مانند را ببینید.
خب، آنچه در مورد این دومین به عنوان مثال گرم کردن؟
بنابراین در buggy2، من ادعا می کنند که این نسخه، بیش از حد، چاپ
10 ستاره، یکی در هر خط.
بنابراین این زمان، من یک کاراکتر خط جدید، فقط به
چیزهای کمی زیباتر است.
اما به جای من این است.
بنابراین من انجام buggy2.c صدای جرنگ جرنگ اجازه را وارد کنید.
در حال حاضر آن را دوباره به نام a.out.
را وارد کنید.
من فقط یک خط جدید، فقط خط آخر را مشاهده کنید که
حرکت سریع من به خط بعدی.
و در عین حال به وضوح من چاپ شده *، سپس یک خط جدید،
*، و سپس یک خط جدید است.
اما آنچه این اشکال را در اینجا؟
آره؟
مخاطبان: [نامفهوم].
>> DAVID J. مالان: دقیقا.
بنابراین بر خلاف برخی از زبانها، مانند پایتون، که در آن دندانه دار
در واقع معنای کارکردی، در
زبان C -
همانطور که خواهیم دید، پی اچ پی، جاوا اسکریپت -
دندانه دار است که واقعا فقط به نفع انسان است.
بنابراین این واقعیت که من فاصله دار است خط 16 و 17 به نظر می رسد بزرگ،
اما این هیچ معنای عملکردی در اینجا.
اگر من می خواهم به هر دو خط به عنوان بخشی از اجرای
حلقه، پس از آن من باید آنها را در آکولاد با انجام این کار، محصور است.
شما فقط می توانید که از گوشه و برش و حذف آکولاد اگر
در مورد چه چیزی؟
مخاطبان: فقط یک خط است.
DAVID J. مالان: فقط یک خط است.
به طوری که تنها مرتب سازی بر اساس مرتب سازی بر اساس خوبی از جزئیات نحو به طوری که
شما اتلاف وقت نیست با نوشتن سه خط، که دو نفر از آنها
آکولاد، فقط به نوشتن یک خط کد است.
اما اگر شما دارای دو یا بیشتر از دو خط، ما
در واقع نیاز به انجام این کار است.
>> بنابراین در حال حاضر این نجات بده.
اجازه بدهید من بروم جلو و دوباره اجرا صدای جرنگ جرنگ.
سپس a.out عمل به من اجازه بده، و در حال حاضر من آنها را یکی در هر خط.
در حال حاضر، a.out دوباره نوع از نام گنگ برای برنامه است.
چگونه می توان صدای جرنگ جرنگ بگویم به واقع من نام فایل
که بیشتر کاربر پسند، مانند buggy2 خود را؟
کمی با وضوح بیشتری است؟
مخاطبان: [نامفهوم].
DAVID J. مالان: OK، بنابراین من در واقع طول می کشد بسیار
کاربر پسند میانبر و نوشتن را buggy2.
من مشخص نیست. C در این مورد، و ضربه را وارد کنید.
و آنچه را می کند این است که از آن کامپایل buggy2.c برای من
درخواست صدای جرنگ جرنگ به آن را انجام دهد.
به طور خاص، خواستار آن صدای جرنگ جرنگ، آن را اجرا می کند صدای جرنگ جرنگ با استفاده از روش
خط فرمان استدلال و یا سوئیچ از من در واقع نیاز است.
در آن زمان، ما را دوباره به آنچه را که همه از این های مختلف
مرموز عبارات hyphenated معنی می دهد.
اما در حال حاضر، فقط صرفه جویی در من مشکل از
به یاد داشته باشید و نیاز به تایپ از تمام کسانی که
عبارات مختلف hyphenated.
و حرکت صعودی آن در نهایت
که در حال حاضر من buggy2.
اگر من می خواهم به انجام این کار دستی، هر چند، من
می توانید به جای انجام این کار -
صدای جرنگ جرنگ-O buggy2 و سپس buggy2.c.
و به همین ترتیب است که به من دادن یک فایل به نام buggy2.
>> بنابراین در کوتاه مدت، صدای جرنگ جرنگ کامپایلر.
فقط یک ابزار کاربر پسند است که ما استفاده خواهیم کرد بیشتر است
و بیشتر، به دلیل آن را فقط شروع به
ساده سازی همه چیز برای ما است.
و ما بازگشت 0، در نهایت.
در حال حاضر، فقط به این دلیل است، اما ما باید شروع به اذیت کردن که بخشی
امروز و در روز چهارشنبه است.
هر گونه سؤال در هر یک از این؟
آره؟
مخاطبان: [نامفهوم]
LS در نقل قول وجود دارد؟
DAVID J. مالان: OK.
وقتی که من تایپ LS در نقل قول، که من انجام شد برخی از سحر و جادو
در پشت صحنه به رفع یک اشکال است.
من را فراموش کرده است، مانند گفتن بوده ایم بسیاری از شما در
تخته های بحث، به انجام -
خواهیم انجام این کار در حال حاضر - یام-Y به روز رسانی کنید: sudo appliance50.
اوه، که املای درست است.
بنابراین دستگاه مانند یک سیستم عامل است.
اجرای این سیستم عامل به نام فدورا است.
و در حال حاضر به دلیل اتصال به اینترنت من آهسته، من
واقعا آن را hosed.
بنابراین در حال اجرا کنید: sudo بروز رسانی یام، همانطور که ما به شما می گویند به در
مجموعه مشکل، اساسا در حال اجرا به روز رسانی خودکار را دوست
در سیستم عامل مکینتاش یا ویندوز.
و به همین دلیل برای اجرای این کار را در آغاز خیلی از
مجموعه ای مشکل است زیرا هنگامی که ما ایجاد دستگاه
messed تا، و من به طور تصادفی تمام برنامه های خود را نگاه کنید
سیاه و سفید بر روی صفحه نمایش سیاه و سفید، به همین دلیل است که شما در حال دیدن آنها نیست
به طور پیش فرض.
اما آخرین نسخه از دستگاه رفع این.
و من که در طول استراحت رفع هنگامی که من اینترنت
اتصال.
>> به نقل از فقط پنهان اشتباه من، بسیار محتاطانه،
ظاهرا.
سوال دیگر؟
بله؟
مخاطبان: از کجا آمده را از؟
[نامفهوم]
DAVID J. مالان: سوال خوب است.
کجا را می آیند؟
این یک برنامه لینوکس است که برای سالهای زیادی وجود داشته است، طولانی است
قبل از CS50.
و آن را با یک سیستم عامل مانند فدورا می آید.
این کار از کتابخانه CS50 آمده است.
در واقع، تنها چیزهایی را که از کتابخانه CS50 می آیند
تا کنون، که ما دیده ایم، GetString، GetInt، همه
کسانی که دریافت توابع، و رشته کلمه، و تا
حد، کلمه بولی است.
اما اذیت که از هم جدا می کنیم هنگامی که ما را به CS50 شیرجه
لوازم خانگی خود را.
>> پس بله، یک سؤال در اینجا است.
مخاطبان: هنگامی که شما در گفت و پس از آن حشره دار، چگونه
کامپیوتر [نامفهوم]؟
DAVID J. مالان: سوال خوب است.
بنابراین، هنگامی که شما فقط اجرا buggy1 و یا به آن buggy2، چگونه
را می دانید؟
بنابراین به طور پیش فرض، اگر شما تایپ کنید را buggy1، به نظر می رسد برای
فایل با نام buggy1.c است.
و سپس آن را اجرا دستورات صدای جرنگ جرنگ مناسب،
در نتیجه لغو پیش فرض فایل خروجی به نام a.out.
در واقع، اگر ما در آنچه را نگاه کنید، چه -
اجازه دهید به ترک این.
اگر ما در آنچه در واقع انجام این کار نگاه کنید، مطمئن buggy2
آن را در حال حاضر تا به امروز است.
بنابراین حذف دستور rm به من اجازه بده
برنامه قبل از نوشت.
تایپ Y-E-S را به تایید می کنند که من می خواهم به آن را حذف.
اگر من در حال حاضر انجام نمی دهید، توجه کنید که در این خط بسیار طولانی،
این آخرین چیزی است که در اینجا وجود دارد،-O buggy2.
همه در حال انجام است عبور از این بحث، پس به صحبت می کنند، به
صدای جرنگ جرنگ، به طوری که من مجبور نیست که آن را خودم تایپ.
>> همه حق است، بنابراین یک زن و شوهر سریع اداری
اطلاعیه ها.
بنابراین برای بخش، که رسما شروع به این آینده
یکشنبه، شما همیشه به ارمغان می آورد می خواهم، اگر
شما باید یک، یک لپ تاپ.
اگر شما یک لپ تاپ را نداشته باشند، رسیدن به من
حذف ایمیل به من.
و ما را به شکل یک گردش کار است.
آنچه به طور کلی شما در بخش پیدا کنید، این است که آنها بخشی
مفهومی، بخشی از دست است.
ما به طور خاص به بخش از سوالات، بخشی از استفاده کنید
مجموعه ای مشکل در هفته، به پیاده روی را از طریق برخی از
مواد مفهومی از سخنرانی.
و این همه در مجموعه ای از مشکل کنونی است.
و ما همچنین می خواهیم به برخی از فعالیت دست بر روی فرو رفتن، گاهی اوقات
خواهد شد که لازم می شود را مشاهده کنید، گاهی اوقات از
که نیست.
به عنوان مثال، این هفته، آنها فقط به عنوان یک به معنای
گرم کردن ورزش.
و شما خواهید فهمید که این مشکلات واقعا که.
آنها به معنای به نسبتا کوچک است، اما نه لزوما
برنامه های پیش پا افتاده به نوشتن، که لزوما
فرصت های هیجان انگیز و از خود هستند اما خوب به
تمرین با استفاده از دستور، با توابع جدید، در راحتی از
بخش که در آن شما باید یک چند از همکلاسی های شما در حال حاضر به عنوان
همچنین TF شما.
>> و آنچه ما را در طول زمان انجام دهید این است که با استفاده از یک ابزار به نام CS50 فضاهای،
به موجب آن به جای اینکه فقط با استفاده از لوازم خانگی CS50، شما
به جای آن به یک صفحه وب در مرورگر، که در آن شما قادر خواهید بود
برای نوشتن کد در یک پنجره مرورگر در بخش.
و پس از آن اگر شما در انتخاب همکار آموزش خود را پس از آن می تواند نشان دهد
هر چه در آن است که شما در حال تایپ کردن بر روی صفحه نمایش شما را در مرورگر خود
پنجره در جلوی کلاس، چه ناشناس و یا
عمومی، به طوری که او پس از آن می توانید از طریق راه رفتن
همکلاسی های خود را به آنچه که شما به خوبی، آنچه که شما انجام نه به خوبی.
و دوباره، مطمئن باشید همه این را می توان به سادگی ناشناخته خواهد ماند.
اما آن خواهید بود یک فرصت خوب برای خیلی بیشتر
تعامل از چیزی شبیه به سخنرانی می شود.
>> در عین حال، ما باید این چیزها را به نام فوق العاده
بخش، که اختیاری است ولی ما به روی همه باز
کلاس، به طوری که شما می توانید این جمعی را برای
مشکل تنظیم است.
در اینجا برنامه.
این نیز بر روی صفحه اصلی در cs50.net شده است.
توجه داشته باشید که خواهید بود یک هکر خاص وجود دارد
فردا بعد از ظهر.
و ما امروز و فردا و فیلم و بعد از آن
آنلاین ظرف 24 ساعت.
بنابراین اگر شما می توانید هر یک از این بار را ندارد، نگران نباشید.
و دوباره، برنامه اکنون آنلاین است. در cs50.net.
>> در برش خود را، شما باید بدست
ایمیل آموزش شما را به صفحه اصلی این دوره برای پیدا کردن
خارج از بخش خودتان.
اگر زندگی تغییر کرده است و شما نیاز به تغییر بخش خود را،
یک مشکل نیست.
بازگشت به که URL، cs50.net/section، منحصر به فرد،
و شما با پر کردن فرم مشابه به طوری که شما می توانید
پس از آن ما را به تنظیمات خود را.
و ما را به دنبال خواهد داشت تا پایان هفته به عنوان آنچه ما می توانیم
خود جای دهد.
در هفته گذشته، به یاد آورید که ما پیشنهاد استفاده از CS50 گفتگو،
ابزار بحث درس، در سخنرانی است.
بنابراین ما تا به حال 40 سوال که پرسیده بودند
پاسخ داده شده در هنگام سخنرانی.
پس از آن به نظر می رسید به خوبی کار می کنند، به طوری که ادامه خواهیم داد
تلاش برای انجام این کار است.
اگر، در طول سخنرانی، شما نه تنها احساس راحت بالا بردن
دست خود را، نه یک مشکل.
برو به cs50.net/discuss، ارسال وجود دارد، و یکی از آموزش های ما
همراهان خواهد شد یا آن پاسخ الکترونیکی و یا بالا بردن خود را
دست از طرف شما ناشناس به درخواست، بسته
در طبیعت از سوال.
و در از لحاظ بازخورد، به طور کلی psets خواهد بود
بازگشت در عرض یک هفته.
از آنجا که آن را طول می کشد در حالی که کمی برای بخش برای رسیدن به
تعادل، pset اول، 0 و 1 خواهد بود کمی
به تعویق افتاد به عنوان همه چیز حل و فصل کردن.
اما بماند که در هفته های کوک شده آمده است.
>> همه حق است، بنابراین من جدی من قرار داده
صدا برای یک لحظه.
پس این است که در واقع آب و هوای جالب برای
این بحث، با تمام چیزهای دیگر
در رفتن در دانشگاه مربوط به آنها نمیدهد.
اما CS50 قطعا سابقه خود را از این خاص
موضوع، به همان اندازه که در هر سال، در این دوره، برای بسیاری از افراد
سال، آگهی تابلوهای حدود 3٪ از کلاس است.
این سال های اخیر، 2011، CS50 تبلیغ سوار 35 دانشجو است.
این است، من فکر می کنم، به علت عدم شفافیت نیست.
متوجه باشید که در برنامه درسی این دوره است، یک صفحه وجود دارد
بیانیه ای توضیح می دهد که در آن خطوط هستند.
بیانیه ای که بر روی هر یک از تکرار
مشکل این مجموعه در یک صفحه است.
>> بنابراین من امروز واقعا فقط به ذکر است این را به
مردمی آگاه از این است.
و ما سعی چیز متفاوت است.
و آنچه که من فکر می کنم که ما می خواهیم انجام دهیم که امروز این است که فقط یک لحظه را به
در واقع در برخی از موارد گذشته که آمده اند تا نگاه.
به جای حفظ این اسرار به عنوان کثیف کمی، در واقع
اشاره به آنچه که دانش آموزان انجام داده اند و چگونه ما را شناسایی
و واقعا چه انگیزه فراگیر برای
حتی داشتن این گفتگو است.
پس با که گفت، خط اساسا این است -
در هر برنامه درسی، شما خوش آمدید، شما در حال، تشویق به
صحبت با همکلاسی.
که هدف از داشتن این مشترک
ساعات اداری در آننبرگ و تشویق افراد و برای
پروژه نهایی هم کار کنند.
اما خط کشیده شده است وقتی که می آید زمان برای نوشتن واقعی
راه حل نهایی خود را.
صحبت به زبان انگلیسی، کاملا خوب، صحبت کردن در شبه کد،
کاملا خوب است.
ایمیل همکلاسی pset خود، اجازه دادن به آنها نگاه بیش از
صفحه نمایش به عنوان دست همچنان تایپ کردن،
در طول خط نیز هست.
آیا نگاهی به برنامه درسی برای خطوط خاص.
>> اما فقط به رنگ یک تصویر از چگونگی این است که متاسفانه
واقعیت، متوجه باشید که وب سایت ها هستند وجود دارد خارج وجود دارد که
راه حل های از این کلاس و بسیاری از کلاس های دیگر است.
واقعیت این است که شما و یا در حدود 3٪ از شما می دانیم که این وجود دارد
این بدان معنی است که ما می دانیم که این وجود دارد.
واقعیت این است که وب سایت ها هستند شبیه به این وجود دارد که در آن شما
کسی که می تواند در واقع به مجموعه مشکل شما پرداخت - این بود
یک مورد واقعی آمد که تا سال گذشته.
این وب سایت موسوم به odesk.com است.
و تیم به نام شخص در اینجا بود که ارسال شد
این وب سایت و پرسید: کسی که به انجام pset خود را 7 در
این مورد خاص.
خب، odesk.com گوگل قادر است، و ما هم
بسیار خوب در گوگلینگ.
در اینجا، بیش از حد، وب سایت ها هستند وجود دارد - و این یکی و نه
همین، رک و پوست کنده.
[خنده]
DAVID J. مالان: چیز خنده دار در مورد این سایت این است اگر
شما خواندن صفحه در مورد، آنها در مورد شرکت خود را صحبت
فرهنگ و نحوه خدمات به مشتریان خود شماره یک است
اولویت، تا مطمئن شوید که تکالیف خود را دریافت کنید
تبدیل در زمان.
>> اما در تمام جدیت، دوباره، این واقعیت است که این سایت ها
وجود داشته باشد، ما درک، بیش از حد، آگاه از
این نوع از سایت های.
و به شما حس از آنچه را به شکل این به طور کلی
طول می کشد، ما به طور کلی رسوایی بزرگ ندارد که در آن مردم
همکاری در هر نوع مقیاس گسترده، بلکه
این است که این اواخر شب لحظات ضعف، که در آن شما باید تا
زیادی برای انجام، این، 04:00 شما خسته شده، و شما
فکر می کنم به خودتان، خوب، اجازه دهید من فقط یک نگاه در من
هم اتاقی یا کد دوست من است و یا مانند.
و تظاهرات از این متاسفانه دانشجویی شامل
ارسال یک چیزی مثل این و دانشجوی B ارائه شده
چیزی شبیه به این است، که قطعا، در یک کامپیوتر
کلاس علم است، قابل ملاحظه ای آسان برای دانشمندان کامپیوتر
برای تشخیص با نرم افزار.
این یکی دیگر از الگوی رایج این است، که در آن شما را مرتب سازی بر اساس ام
کار در کنار کسی، شاید صحبت کردن در
انگلیسی، فقط خوب است، شبه.
اما پس از آن که می آید زمان به واقع تسلیم، و psets
فقط از طریق ایمیل یا Dropbox به مانند رد و بدل شده است.
اما در تلاش برای آن را کمتر آشکار است که این
آنچه اتفاق افتاده است، پس این همان چیزی است که ارائه شده است.
این، بیش از حد، آیا این سفر به خوبی نوشته شده است قطعه از
نرم افزار مانند ما باید در واقع به تشخیص
این نوع از چیزها.
و در واقع آنچه که ما انجام می دهیم، نرم افزار اجرا است که مقایسه همه
ارسالی در این سال در برابر تمام سال گذشته
ارسالی، در مقابل همه چیز ما در
اینترنت، در مقابل هر وب سایت کار در خارج وجود دارد.
این همه بسیار خودکار است.
و بنابراین ما این کار را واقعا به انصاف بزرگ را به 97٪ که
واقعا کار سنجش خود را در این و سایر
کلاس ها و قرار دادن در همه این تلاش به طوری که کار
آنها در نهایت خود را ارسال کنید.
و من می توانم برای سنین.
>> اینها فقط تعداد انگشت شماری از موارد در سال گذشته است.
تعداد کمی از دانش آموزان را مشاهده کنید این فایل ها عینا برای pset 2،
3، pset 4، pset pset 5، pset 6، pset 9.
در این مورد، این مسابقه 0 و در سال گذشته، که در آن دو بود
دانش آموزان را مشاهده کنید عینا این حکم در میان بسیاری از
دیگران، "درخواست از نوع -" نقطه، نقطه، نقطه.
بنابراین حتی در یک کلاس از 600 این که ما تشخیص
ارسال آزمونها.
بنابراین در کوتاه مدت، این - رک و پوست کنده، من نفرت داشتن این نوع از
مکالمه - اما این واقعا یک تلاش عمدی
سعی کنید به این سال به پایین که شماره.
چرا که حتی اگر ما می گویند که این نوع از چیزهایی که هر
سال، من فکر می کنم این واقعیت که بر روی آن ساکن برای چند
چند ثانیه از حد معمول و در واقع فقط با اشاره به
که آنچه را که ممکن است مانند، اه، این یک معامله بزرگ به نظر می رسد، حداقل
فکر می کنم به این لحظه خاص، هر دو در انصاف به
خود و همکلاسی های خود را در اینجا.
بنابراین اگر شما همیشه باید هر گونه سؤال به عنوان خط
است، لطفا فقط رسیدن به شخص من است.
اما پاسخ این است که همیشه، به طور کامل تاکید در
در آخرین لحظه، پول نقد در اواخر روز.
یا اگر آن را موضوع نداشتن اواخر هر روز،
راستش، من ایمیل شخصا.
ما می خواهیم چیزی را بیرون آورید.
لطفا وقت خود را قرار نیست در اینجا در دانشگاه هاروارد در معرض خطر است.
>> در حال حاضر، من فکر می کنم ما باید خلق و خوی روشن، بنابراین من
این را به عنوان اسلاید بعدی گنجانده شده است.
[خنده]
DAVID J. مالان: این وب سایت بزرگی بود.
من در واقع کمی منحرف کردم.
این یکی وجود دارد.
و سپس این یکی از شگفت انگیز است.
خوب، پس فکر می کنم که بچه گربه در اواخر شب هنگام ساخت
کسانی که تصمیم گیری.
تمامی حقوق، بنابراین برگشت به لذت بیشتر و کمتر جدی مسائل، مانند
شرایط.
>> همه حق است، بنابراین ما به طور خلاصه در مورد این صحبت کردیم.
این چیزی است که احتمالا بسیار آشنا است
در جهان، از ابتدا.
و در جهان، از ابتدا، ما باید این نیاز گاهی به
برو چنگال را در جاده.
در هر دو صورت این یا آن و یا چیز دیگری در اینجا انجام دهید.
و زمانی که ما می خواهیم برای انجام این کار، ما می توانیم استفاده کنید، در C در حال حاضر، اگر این
دیگری ساخت.
و سپس در اینجا ما عبارات بولی.
به عنوان مثال، عبارات بولی در اینجا، ما می تواند و یا
آنها را با هم، به این معنا است که ما باید این وضعیت OR
که وضعیت.
ما می توانیم و آنها را با هم، به این معنا است که ما می خواهیم
این وضعیت و این شرط را بررسی کنید.
در اینجا ما یک دستور switch در حال حاضر، که نه چندان
به نحوی مشابه به این نوع شرایط است، اما آن را
اجازه می دهد تا ما را به انجام معادل اگر، اگر دیگری، اگر دیگری، دیگری
اگر، و مانند آن به سادگی با شمارش آنها را مورد به مورد
مورد به مورد.
بنابراین ما به کسانی که آخرین بار دیدم.
و پس از آن ما شروع به لمس کردن بر چیزهایی مثل حلقه.
ما شاهد یکی از این فقط یک لحظه پیش.
اما این ساختارهای حلقه های دیگر وجود دارد.
>> به عنوان مثال، این یکی در اینجا است.
بنابراین در حالی که (شرط)، انجام این کار چیز دوباره و دوباره.
بنابراین اساسا، آنچه که به نظر می رسد بین این متفاوت
حلقه و این حلقه در حالی که در اینجا؟
این حلقه و این در حالی که حلقه.
آره؟
که چیست؟
مخاطبان: [نامفهوم].
DAVID J. مالان: خوب.
بنابراین در حالی که در شرط حلقه، به وضوح وجود دارد
نحو.
این مقدار دهی اولیه وجود دارد، این به روز رسانی وجود دارد.
در حالی که حلقه، فقط این وضعیت وجود دارد.
پس از آن به نظر می رسد که آن را کمی در مقابل برای مقایسه
حلقه، بدان معناست که اگر ما می خواهیم به متغیرها و ما می خواهیم
به incrementation، ما در واقع به
انجام این کار چیز خودمان.
>> پس جلو بروید و اجازه دهید باز کردن gedit.
اجازه بدهید من سوئیچ را به دستگاه.
و اجازه دهید فقط یک مثال کوچک است که سریع
متمایز یکی از آنها از سوی دیگر است.
و در پشت ذهن من در اینجا، من باید یک چیز می گویند.
من به طور خاص اشاره به نام تیم است.
تیم در واقع کسی که دانش آموز تلاش برای پیدا کردن به انجام
مشق شب خود را برای آنها.
ما هیچ تیم در آن بخش خاص بود.
درک، مبادا فاش دانش آموز، آن را یک دانش آموز نیست.
آن شخص به طور تصادفی بر روی اینترنت انجام کارها
در سال گذشته در پروکسی.
به طوری که پیدا می کنیم، بیش از حد.
بنابراین در این مورد در اینجا، به من اجازه رفتن به جلو و
باز کردن یک فایل جدید.
فایل، جدید.
این به من می دهد یک تب در اینجا.
اجازه بدهید من به جلو بروید و صرفه جویی در آن را به عنوان loop.c.
اجازه بدهید من بروید و ذخیره را کلیک کنید.
و سپس در اینجا، اجازه دهید به جلو بروید و شروع به نوشتن
# شامل .
اجازه بدهید من زوم شوید.
حالا اعضای هیات تحریریه اصلی (خالی) را انجام دهد.
من، در حال حاضر من به جلو بروید و کار را برای (اعضای هیات من = 0 اجازه دهید
اوه، 10، من + +).
و در حال حاضر من قصد دارم برای رفتن به جلو و چاپ ستاره که من
انجام زودتر.
و سپس در پایان این برنامه، ما فقط به رفتن
چاپ یک خط جدید است، به طوری که سریع من
همه کثیف به نظر نمی آید.
بازگشت 0.
به نظر می رسد نحوی صحیح است؟
تا کنون.
پس اجازه دهید را ببینید.
>> پس من زوم اجازه، به پنجره ترمینال من.
و به من اجازه رفتن به جلو و اجرا حلقه، زیرا من به نام این
loop.c. چیز
بنابراین حلقه را.
به نظر می رسد به کامپایل OK.
حلقه اجرا، و در حال حاضر وارد کنید.
و این به نظر می رسد به 10 ستاره چاپ شده است.
بنابراین اجازه بدهید فقط تبدیل به حلقه در حالی که یک و ببینید چه چیزی
نوع مسائل ما سفر.
بنابراین به جای این کار، اجازه دهید من در اینجا و می گویند در حالی که من
کمتر از 10 -
به من اجازه خلاص شدن از حلقه for.
OK، بنابراین ما باید یک زن و شوهر از مشکلات در حال حاضر.
بنابراین این وضعیت همان است، اما من به وضوح از دست رفته
دهی اولیه.
من گم شده incrementation.
پس چه باید کامپایلر به احتمال زیاد من زمانی که من سعی می کنم به
تدوین این برنامه؟
آره؟
مخاطبان: [نامفهوم].
>> DAVID J. مالان: خوب.
پس از آن رفتن به می گویند چیزی شبیه اعلام نشده - در این
مورد، من متغیر است.
و در واقع، استفاده از شناسه اعلام نشده من به.
و بنابراین این در مقایسه با زبان هایی مانند PHP و
پایتون و روبی، که برخی از شما ممکن است آشنا،
که در آن شما فقط می توانید شروع به استفاده از متغیرهای نوع
بهر حال و لازم نیست که به نگرانی در مورد اعلام آنها
به صراحت همیشه.
در C و در زبان هایی مانند جاوا و C + +، شما باید
فوق العاده صریح و روشن است.
و اگر شما می خواهید یک متغیر به نام من به، شما باید به من بگویید
چه نوع متغیر آن است.
بنابراین ما در حال رفتن به برای رفع این مشکل به شرح زیر است.
من قصد دارم که باید به بالا برود و نوع int من به، بنابراین،
یک متغیر به نام من به من اعلام کرده اند.
در حال حاضر، من به قلم یک گام.
من به وضوح آن را مقداردهی اولیه نیست، اما بیایید ببینیم در صورتی که در
حداقل می سازد صدای جرنگ جرنگ توقف شکایت.
بنابراین من بازسازی این برنامه به شما اجازه می دهد تا.
>> تمامی حقوق، در حال حاضر آن را فقط شکایت
یک دلیل متفاوت است.
"متغیر" من "است که آماده سازی استفاده می شود که در اینجا است." همه حق است، بنابراین
که بسیار صریح و روشن است.
مقداردهی اولیه به حالت فقط بدان معناست که تنظیم آن را به یک مقدار مساوی است.
و ما انجام داده ایم، به طوری که اجازه دهید من سعی برابر 0 است.
در حال حاضر سعی کنید این دوباره و دوباره اجرا صدای جرنگ جرنگ.
تهیه و تدوین این زمان.
و من در مورد آن را اجرا کنید هستم.
اما در حلقه بی نهایت بزرگ قدیمی، چرا که من انجام داده ام
مقدار دهی اولیه من این بیماری انجام داده است، اما من انجام داده ام هرگز
هر نوع incrementation.
پس چگونه می تواند از incrementation من کاری انجام دهید؟
خب، در حالی که یک حلقه، آن را احساس می کنم رفتن به
را به انجام آن در داخل حلقه، زیرا بسیار شبیه به اول
نمونه هفته انجام ساختارهای حلقه مانند با
جوراب و با شمارش خود، ما تا به حال انجام
چیزی که در پایان، بازگشت به خط بعدی بروید.
چه می شود اگر من به جلو و انجام این من + + در اینجا؟
اجازه را حتی تدوین این.
گرفتن من در حال حاضر.
چه اشتباه است که اینجا هستید؟
مخاطبان: [نامفهوم].
>> DAVID J. مالان: پس از آن قطعا از نوع int نیست.
من آن را.
و پرانتز، گیومه، مثل قبل،
دندانه دار است کافی نیست.
بنابراین در حال حاضر من این ساخت.
بنابراین در حالی که من کمتر از 10، چاپ یک ستاره،
پس از آن من نمود.
و راه در حالی که با این نسخهها کار حلقه این است که به محض اینکه شما ضربه
انتهای حلقه، که در این مورد مانند خط 10 به نظر می رسد،
آن را برای رفتن به خط 6، که در آن نقطه
شرط بررسی می شود دوباره.
و اگر من هنوز هم کمتر از 10 است، خواهیم انجام خطوط 8 و
پس از آن 9، پس از آن خواهیم 10، ضربه و به عقب برویم تا 6، دوباره و
دوباره و دوباره و دوباره، تا زمانی که من کمتر از 10 است.
پس بیایید دوباره اجرا کنند.
>> خوب، ما وارد شده درست است.
اجازه بدهید دوباره اجرا حلقه.
و در حال حاضر آن را در واقع به نظر می رسد به کار کند.
پس مثبت و منفی در اینجا؟
خوب، تا کنون در واقع وجود دارد کل ساف -
خیلی ناز.
تمامی حقوق، که بود - آه، که یک تصادف بود.
همه حق است، بنابراین بازگشت به حلقه for اجازه دهید.
بنابراین برای حلقه ها خوب هستند چرا که آنها فوق العاده صریح و روشن است.
و حتی اگر آنها کمی clunky برای نوشتن، آن را
بسیار قدرتمند است و آن را اجازه می دهد تا شما را به انجام
چیزهای متعدد در یک بار.
در حالی که حلقه به نظر نمی رسد مقدار زیادی از ارزش به
با این حال، به دلیل آن را احساس می کند که ما فقط باید برای انجام کار بیشتر است.
ما برای قرار دادن مقدار دهی اولیه در اینجا،
به روز رسانی را در اینجا، و ما باید به خاطر داشته باشید برای انجام تمام کارهایی که.
بنابراین ما در زمان را ببینید که حلقه در حالی که در واقع به من قرض بدهید
خود را فقط در زمینه های مختلف، داده های مختلف
ساختار، همه چیز مانند لیست ها و جداول مخلوط می کنیم برای به دست آوردن
اواسط ترم.
اما در حال حاضر، می دانیم که این نوع سوم به عنوان شناخته شده وجود دارد DO-
در حالی که حلقه.
و دیده ایم به طور خلاصه.
و این ممکن است برای شما مفید باشند فوق العاده با pset 1.
هر زمان که شما می خواهید برای انجام کاری و پس از آن بررسی کنید که آیا
کاربر همکاری، و اگر نه، دوباره آن را انجام دهد، انجام دهند
در حالی که حلقه خود را آشنایی به این نوع از منطق است.
از آنجا که به ترتیب از بالا به پایین نشان می دهد،
انجام به معنای واقعی کلمه به معنی انجام این کار.
و این کار را دوباره و دوباره، چه ممکن است باشد؟
شاید به این معنی GetInt تماس تلفنی یا GetString و پس از آن
چک کردن ارزش GetInt یا GetString و سپس فریاد
کاربر اگر آنها را با پرسیدن آنها همکاری
دوباره و دوباره و دوباره.
که در آن شما می خواهید برای انجام کاری یک بار،
سپس برخی از شرایط را بررسی کنید.
>> بنابراین سعی کنید این اجازه.
اجازه بدهید در واقع تغییر این در حال حاضر به یک حلقه DO-در حالی که.
و من قصد دارم به جلو بروید و زیر را انجام دهید.
بنابراین زیر را انجام دهید.
اجازه دهید اعضای هیات من GetInt = ()، اما اجازه دهید ابتدا به کاربر
چه چیزی را باید انجام دهد.
بنابراین کمی متفاوت است این زمان.
"بین المللی را به من بده".
بنابراین من printf خواهم برای آن استفاده کنید.
و در حال حاضر من قصد دارم به پایین در اینجا، و من قصد دارم برای انجام این کار
در حالی که من، بیایید می گویند، بیشتر از -
بیایید ببینید، من، چه می گویند، به کمتر از 0 یا من
بیشتر از 10 است.
به عبارت دیگر، من می خواهم یک عدد از 1 تا 9، فقط
خودسرانه.
بنابراین من با استفاده از ترکیب یک عبارت بولی در اینجا به
مطمئن شوید که من در کمتر از 0 یا بیشتر از 10، که در آن
مورد من این حلقه را دوباره در اینجا انجام دهید.
پس باز هم، این کار را -
در حالی که من کمتر از 0 یا من بیشتر از 10 است.
>> بنابراین در حال حاضر پیش بروید و این کار زمانی که ما انجام داده ایم که اجازه دهید.
بیایید فقط کار بررسی سلامت عقل را سریع است.
printf ("با تشکر، من٪ D"، I) است.
بنابراین این برنامه ساده می پرسد کاربر برای بین المللی،
اطمینان حاصل می کند آن را در برخی از محدوده 1 تا 9 فراگیر،
و سپس با تشکر از کاربر با یادآوری آنها را به آنچه که آنها فقط
تایپ، فقط به عنوان یک بررسی سلامت عقل کوچک است.
اما اجازه دهید ببینیم که اگر این کار را به عنوان در نظر گرفته شده است.
بگذار سر به من در اینجا و آن ها را دوباره اجرا را حلقه.
سلام.
"استفاده از شناسه اعلام نشده" من "است. عجیب است.
من فکر می کنم ما حل شده است.
علامت اما کد های مختلف است.
آره؟
مخاطبان: [نامفهوم] در داخل این دو، ما را به
[نامفهوم].
>> DAVID J. مالان: دقیقا.
بنابراین این در واقع ما را به یک موضوع شناخته شده به عنوان دامنه.
به نظر می رسد که C، دوباره، آن را واقعا شما را به معنای واقعی کلمه است.
و اگر شما چیزی شبیه به این که در آن از نوع int به شما اعلام
و پس از آن اختصاص برخی از ارزش، اما شما که در داخل
جفت آکولاد، چه C می کند آن است که فرض بر این است که شما
فقط کسانی که بیت های 32 که من در داخل وجود داشته باشد شناخته شده است می خواهم
زمینه از کسانی که از آکولاد، در چارچوب خطوط
6 تا 9. بنابراین من اعلام شده است، و به آن اختصاص می
ارزش در خط 8 است، اما به محض این که شما را در خارج از
خط 9 زیر بریس فرفری، من دیگر در
دامنه، پس به صحبت می کنند.
S-C-O-P-E. این دیگر در چهار چوب درست است.
بنابراین در حال حاضر وجود ندارد من، آن را به عنوان هر چند که ما تا به حال حتی نمی
اعلام آن را در همه.
>> پس چه راه حل و سپس برای چیزی شبیه به این، اگر
دلیل آن این است که من در داخل آکولاد اعلام شده است، که
ظاهرا بد است؟
در اینجا؟
مخاطبان: [نامفهوم].
DAVID J. مالان: آره.
بنابراین ما می توانیم آن را در خارج مقداردهی اولیه.
پس جلو بروید و حذف قطعات اعلامیه به موجب آن اجازه
نوع را مشخص کنید، و اجازه دهید آن را انجام دهد من در اینجا.
بنابراین در خط 5، آن را در حال حاضر می گوید: "بین المللی را به من بده." آن من تماس بگیرید.
توجه کنید که در خط 9، من نمی خواهم به انجام این کار، چون من
در حال حاضر 32 بیت داشته باشد.
من نمی خواهم کامپیوتر بخواهید
مختلف 32 بیت.
من می خواهم به استفاده از آن 32 همان بیت.
و در حال حاضر چون من در خط 5 اعلام شده، باز هم حلال است
برای استفاده از آن در خط 11 و خط 12.
>> پس اجازه دهید من سعی کنید به کامپایل مجدد و ببینید
اگر صدای جرنگ جرنگ را متوقف می کند فریاد.
ایجاد حلقه.
بنابراین در حال حاضر آن است که "اعلامیه ضمنی عملکرد
GetInt 'نامعتبر است در C99. "چیست؟
آره؟
مخاطبان: [نامفهوم].
DAVID J. مالان: آره.
بنابراین در حال حاضر که من در واقع با استفاده از GetInt، این چیزی نیست
که فقط همراه با C. این می آید از CS50.
بنابراین ما نیاز داریم این است.
و به من اجازه برگشت به پایین سریع
در اینجا و آن ها را دوباره اجرا کند.
خوب، در نهایت.
حالا ما به حل و فصل آن و خطا است.
اجازه بدهید من در حال حاضر اجرا حلقه و ببینید که چه اتفاقی می افتد.
"بین المللی را به من بده." من آن را 11 به من بدهید.
من آن را به -1 می دهد.
من آن را صنایع غذایی به من بدهید.
من به 5 می دهد.
و در حال حاضر آن را در واقع کار می کند.
اما سریع به یک دلیل اینجا تغییر کرده است.
چرا آن را می گویند سعی مجدد یکی از این زمان، اما به من بدهد
INT سه بار دیگر؟
چرا که رفتار متفاوت است؟
مخاطب: به یک رشته است.
DAVID J. مالان: ببخشید؟
مخاطب: شما به یک رشته است.
DAVID J. مالان: آره.
بنابراین ما به این رشته در این تلاش سوم،
وقتی که من تایپ صنایع غذایی
FOO یک رشته است.
این بدیهی است که بین المللی نیست.
و راه که CS50 اجرا کرده است GetInt است که ما
چک کنید اگر چیزی کمتر از 0 یا بیشتر از 10
برای شما، چرا که ما چگونه در پیشبرد دانم چه نوع
INT شما می خواهید؟
اما ما با حداقل می تواند برای شما بررسی کنید، آیا کاربر در حداقل
یک نوع عدد صحیح؟
و اگر نه، ما را در کاربر با تایپ کردن داد "سعی مجدد" در
صفحه نمایش.
>> بنابراین در حال حاضر ما برنامه ای است که حلقه. باشه.
در حال حاضر، کدام یک از این نوع ساختار بهتر است؟
پس این است که در آن همه چیز شروع به کمی کثیف،
واقعیت این است که شما باید به خاطر داشته باشید یک متغیر را اعلام تا در اینجا
اگر شما می خواهید به استفاده از آن را در داخل برخی از
آکولاد و خارج.
اما حتی اگر این به نظر می رسد کمی مرموز در ابتدا
نگاه، فقط دوباره، به یاد داشته باشید منطق ساده است.
به منظور استفاده از هر چیزی در C، که آیا آن را در یک تابع و یا
آن را در یک متغیر، شما باید به آن است، اگر آن را در یک تابع
در برخی از کتابخانه، و یا شما نیاز به آن را اعلام کرد.
اما در حال حاضر شما نیاز دارید که به فکر اضافی از این واقعیت است که
شما آن را اعلام در محدوده راست است.
شما آن را با قرار دادن بیش از حد محکم در داخل پرانتز.
>> پس اجازه دهید من در واقع عقب.
اگر ما به عنوان مثال به ما از پیش از آن، و من به
برگشت به اعضای هیات، اعضای هیات من = 0؛ من <10؛ + +، و من
انجام ستاره printf، مثل این، و بعد از آن پرانتز نزدیک، و در حال حاضر
printf من در حال حاضر -
با توجه به همین منطق، چه اتفاقی خواهد افتاد وقتی که من سعی می کنم به
تدوین این برنامه؟
مخاطبان: شناسه نامعتبر است.
DAVID J. مالان: پس از آن یکی دیگر از شناسه نامعتبر،
شناسه اعلام نشده است.
در حال حاضر، به دلیل کمی متفاوت است.
بدیهی است که هیچ فرفری پرانتز در اینجا وجود دارد، اما همان
ایده، داستان همان دامنه صدق می کند.
اگر شما یک متغیر مثل من در داخل اعلام کرد
حلقه for، حتی اگر شما به صراحت نوشته نشده فرفری
پرانتز، از آنها فکر می کنم ذهنی که هنوز وجود دارد، که در آن
من تنها در داخل معتبر از حلقه for.
این معتبر نیست هنگامی که شما به خط بعدی، که در
این پرونده در حال حاضر 10.
پس فقط چند مسائل مربوط به دامنه و مانند.
همه حق است، هر گونه سؤال؟
>> تمامی حقوق، به طوری که این نوع از برنامه های کوچک و بی اهمیت است،
چاپ فقط ستاره کوچک.
اما اجازه دهید را ببینید اگر شما به یاد داشته باشید این آهنگ در اینجا.
این آهنگ فوق العاده آزار دهنده است بچه ها را در آواز خواندن است
اتوبوس مدرسه و مانند آن است.
اما آنچه خوب است در مورد آن این است که این cyclicity،
به موجب آن، آن را "99 بطری آبجو روی دیوار،
99 بطری آبجو.
یکی کردن، آنرا به اطراف منتقل، 98 بطری آبجو در
دیوار. "و سپس آهنگ تکرار از 97، سپس 96، پس از آن
95، 94، تمام راه را به پایین تا 0، اگر شما در واقع
دور در اتوبوس.
بنابراین این یک برنامه خوب برای مرتب سازی پیاده سازی است، چرا که من
خدا، اگر شما فقط می تواند این کار را با چند اجرای
خط از کد شما می توانید تف تمامی متن به این
آهنگ بسیار سریع.
اما در طول راه، ما می توانیم شروع به در حال حاضر اذیت جدا
از این ساختارهای حلقه اساسی و هم اکنون نیز
معرفی توابع است که ما خودمان را می نویسم، آن را به ارزش
که ما به اطراف منتقل می کند.
اما در ابتدا، چرا ما نمی جلو بروید و ما پنج دقیقه را
شکستن در اینجا؟
و هنگامی که ما به عقب بر گردیم، ما به آواز خواندن در این آهنگ.
>> همه حق است، بنابراین ما در حال بازگشت است.
و وقتی که من می گویند ما در حال حاضر به خواندن این ترانه، منظورم
برنامه نویسی، و نه شفاهی.
بنابراین در اینجا ما باید beer1.c است، که یکی از اجرای این
خاص آهنگ.
و تنها به روشن، برای کسانی که ناآشنا با آنچه
این چیزی که به نظر می رسد مانند، بگذار بروم پیش
و ایجاد beer1 را وارد کنید.
در حال حاضر beer1 اجرا به من اجازه بده و چه خواهیم دید - چگونه بسیاری از بطری
آبجو وجود خواهد داشت؟
من در 99 نوع، مانند این ترانه می گوید.
را وارد کنید.
و حالا اگر ما را از طریق حرکت -
متأسفیم - اگر ما را از طریق تمام این حرکت، خواهیم دید که
این در واقع کل آهنگ آواز خواندن.
یک دقیقه صبر کنید.
نوار اسکرول من کمی messed تا.
اجازه دهید با استفاده از پنجره های بزرگتر.
بنابراین beer1، 99، وجود دارد بروید.
بنابراین در اینجا آهنگ کامل، بسیار سریعتر سونگ
کامپیوتر از آن می تواند توسط ما بوده است.
بنابراین، را متوجه هر چند، به ماهیت چرخشی در اینجا.
این گزارش می گوید 99، 99، و سپس "یکی پایین، آن را رد
در اطراف "، و سپس 98.
و در حال حاضر آن را تکرار دوباره و دوباره.
>> بنابراین این در واقع یک فرصت مناسب برای برخی از انواع
حلقه ساخت.
توجه کنید که من نوع برش گوشه ای در اینجا.
توجه داشته باشید که من گفت: "98 بطری آبجو را روی دیوار،
97 بطری آبجو روی دیوار، "و این بود که خیلی
که هنگامی که ما را به یک بطری آبجو، من لازم نیست
به نگرانی در مورد دستور زبان انگلیسی.
اما ما همچنین می توانیم این کار را با کمی اگر درست
شرایط، شاید.
اگر این عدد منحصر به فرد است، به جلو بروید و می گویند: "بطری"،
در غیر این صورت اگر آن جمع است، می گویند: "بطری" است.
اما در حال حاضر، من به طور کامل برش که گوشه.
پس اجازه دهید ببینیم که چه چیزی ما داریم اینجا.
بنابراین ما باید برخی از نظرات در بالای صفحه است.
من جمله این دو کتابخانه ها، به عنوان
ایم به طور معمول بوده است.
و در حال حاضر من در پایین حرکت به اولین اجازه
خطوط واقعی از کد.
خط 17 لگد کردن اصلی است.
خط 21 و 20 است که چگونه بسیاری از بطری های آبجو وجود دارد خواهد بود؟
و پس از آن من تماس GetInt.
و در حال حاضر من بیت از ورود به سلامت عقل است.
>> بنابراین این کنوانسیون که ما در حال حاضر می خواهید شروع به اتخاذ شده است
بیشتر دقت بررسی ورودی کاربر.
گاهی اوقات شما فقط نمی خواهید دوباره آنها را بی درنگ
و دوباره و دوباره.
اگر کاربر پیچ می کند و همکاری نیست، خوب است.
ترک و فقط با آنها برخورد نمی.
و بنابراین، این چیزی است که من در اینجا انجام است.
اگر N کمتر از 1 است، من فقط رفتن به کاربر داد.
"ببخشید، که باعث می شود معنی ندارد." و سپس من قصد دارم به
خودسرانه 1 بازگشت.
پس باز هم، این است که فقط یک کنوانسیون عادت به.
در حال حاضر، آن را در ایمان است.
اما تا به حال، ما همیشه شده است بازگشت به 0، به دلیل
بازگشت 0 نشان دهنده چه گفته ام؟
مخاطبین: با موفقیت انجام شد.
DAVID J. مالان: موفقیت، این همه.
بنابراین در حال حاضر که ما در نهایت شروع به فکر کردن در مورد
موفقیت غیر -
به عبارت دیگر، موارد گوشه ای، شرایط خطا -
در حال حاضر من یک منبع بی نهایت، و یا حداقل چهار میلیارد
همه چیز امکان پذیر است که می تواند به اشتباه در برنامه های من است.
و من می توانم شروع به اختصاص آنها را به اعداد فرد.
در حال حاضر، به طور کلی از آن کافی است فقط به بازگشت
چیزی به غیر از 0.
بنابراین ما در حال به سادگی بازگشت 1 در حال حاضر.
اما دلیلی برای بازگشت 1 این است که به محض اینکه شما بازگشت
1، حدس بزنید چه اتفاقی می افتد به بقیه از برنامه؟
آن متوقف می شود.
همین.
بنابراین واقعیت این است که من از بازگشت 1 به طور موثر است.
مدار کوتاه به اجرای این برنامه به طوری که
هیچ چیز در زیر خط 27 ادامه خواهد داد اجرا.
به محض این که بازده های اصلی، که در آن است.
>> تمامی حقوق، بنابراین در صورتی که کاربر می کند همکاری و رسیدن به خط 30
زیرا آنها در شماره مشروع تایپ، در اینجا من است
اجرای این آهنگ.
بنابراین من برای اولین بار از چاپ یک کاراکتر خط جدید، فقط برای
زیبایی شناسی.
من در حال حاضر یک حلقه for.
و توجه کنید که من انجام می دهند همه چیز در یک بیت
از جهت های مختلف است.
من لازم نیست که برای انجام این کار کمتر از من لازم نیست که برای انجام این کار + +.
من به جای آن می توانید مقداردهی اولیه متغیر من می گویند، آن را برابر با
n، تعداد کاربر در تایپ، پس از آن به شرح زیر است، انجام این کار
زمانی که من بزرگتر از 0 است، پس من -
هنگامی که شما به پایان رسید یک تکرار از این حلقه است.
بنابراین ما می توانیم شمارش پایین با استفاده از حلقه for نیز هست.
در حال حاضر، این هفته خیلی زیاد است یک چیزهای در حال حاضر، با printf است.
بنابراین نسخه قابل چاپ "٪ ​​بطری D آبجو بر روی دیوار است." نسخه قابل چاپ "٪ ​​D
بطری های آبجو. "" یکی پایین، تصویب آن را در اطراف. "چاپ
"٪ D بطری های آبجو بر روی دیوار است." پس از آن هنوز هم D٪ است، اما
توجه کنید که بحث ها و منازعات را به printf در حال تغییر است.
بعد از کاما، من، زیرا من می خواهم بگویم 99.
پس از این با کاما، من، زیرا من می خواهم بگویم 99.
پس از این با کاما، من من - 1 است، چرا که من می خواهم بگویم 98 در
این تکرار اول، و غیره.
و در حال حاضر پایین در اینجا، من فقط برخی از سخن گفتن کمی احمقانه است.
و سپس بند 42، من بازگشت 0 توسط کنوانسیون، به این مفهوم است که
همه چیز خوب است.
>> پس چه می شود اگر من goofed؟
چه چیزی ممکن است اشتباه معمول در اینجا باشد؟
خب، چه می شود اگر من به طور تصادفی به خوبی، من نمی خواهم به دفعات مشاهده شده
را به 0، 0 بطری آبجو روی دیوار من می خواهم؟
بنابراین من می گویم، من بزرگتر از یا برابر با 0 است.
رفتن به علامت است که من در حال حاضر اگر من کامپایل مجدد
beer1 و آن را اجرا کند؟
مخاطبان: منفی.
DAVID J. مالان: آره، میخوای بری منفی است.
این خطا خارج شده توسط یک است، باور نکردنی
اشتباه معمول را انجام دهیم.
اجازه دهید در واقع بازگشت به پنجره ترمینال بروید و این کار را انجام
در اینجا، به طوری که ما می توانیم در یک زمان را ببینید.
را وارد کنید، 99 بطری آبجو.
نزدیک است، اما ما رفت و تا کنون کمی بیش از حد است.
خواند این آهنگ را بیش از حد پایین، به طوری که ما در حال حاضر به ضربه
عدد منفی است.
پس از آن نه کاملا کار می کنند.
>> همه حق است، بنابراین ما به راحتی می تواند حل کند که با رفتن به
آن را یک بار بود.
اما آنچه برخی از فرصت در حال حاضر برای
بهبود؟
خوب، اجازه دهید من باز beer2.c و پایین حرکت کنند و یک
نگاهی به این نسخه.
اولین چیزی که بیرون می پرد شما را به عنوان های مختلف
در این نسخه در اینجا؟
مخاطبان: [نامفهوم].
DAVID J. مالان: آره، به طوری که نه بیشتر، چرا که آن را به رخ داده است
من شما می دانید چه، من درخواست کاربر برای N، و پس از آن من
راه من تا n برابر است، و پس از آن من هستم من در حال تغییر است، اما من هرگز
لمس کردن N دوباره.
پس چی بود نقطه شما اختصاص یکی دیگر از 32
بیت به نام من به طوری که من می تواند یک متغیر متفاوت داشته باشند؟
بنابراین در این مورد، من مرتب کردن بر اساس به رسمیت شناخته شده است که غیر ضروری
قابلیت طراحی.
و من در حال حاضر رفتن به می گویند در حالی که N است بیشتر از 0
جلو و چاپ آهنگ، عبور N به printf به عنوان
آرگومان دوم و n - 1 را به عنوان آرگومان دوم به پایین در اینجا.
و سپس در هر تکرار از این حلقه، به جلو بروید و فقط
واحد کم N خود.
در حال حاضر، عملکرد، این برنامه
رفتن به یکسان است.
اگر من در 99 نوع، N شروع می شود در 99.
من کاهش، کاهش، کاهش، کاهش.
من قصد دارم به تمام راه را به پایین یک بطری آبجو
دیوار، یک بطری آبجو به من بدهید.
یکی پایین، تصویب آن را در اطراف.
0 بطری آبجو بر روی دیوار است. "در پایان، چون من
این وضعیت را درست دریافت کنید.
بزرگتر از 0 بود.
من این اشتباه را ندارد.
>> بنابراین که بهتر است نسخه یک و یا نوع دو است؟
بنابراین من یک دسته از زمزمه برای دو نفر شنیده می شود.
2 چرا؟
که چیست؟
مخاطبان: [نامفهوم].
DAVID J. مالان: آه، درست است.
پس آن را نمی خواهد به زیر 0، اما به یاد داشته باشید در نسخه اول،
نسخه اصلی درست زیر 0 یا نیست.
به طوری که این نسخه درست به یاد داشته باشید.
پس اجازه دهید حداقل مقایسه دو نسخه صحیح است.
استدلال به نفع از نسخه
دو تای، MMM، بهتر است؟
آره؟
مخاطبین: با استفاده از فضای کمتر.
DAVID J. مالان: خوب، پس آن را با استفاده از فضای کمتر، درست است؟
در حالی که یک نسخه با استفاده از 32 بیت برای N، و پس از آن دیگر
32 بیت برای من.
نسخه تنها دو با استفاده از 32 بیت برای N، به طوری که
به نظر می رسد به همراه.
سایر اندیشههای؟
آیا کسی که می خواهید را به نفع یکی از استدلال می کنند؟
آره؟
مخاطب: شما مجبور به استفاده از خط اضافی از کد N -.
>> DAVID J. مالان: خوب، مطمئن شوید.
به طوری که عادلانه باشد.
بنابراین این تنها، حداقل برای من -
منظورم این است، این در واقع احساس مسیه کوچک، این واقعیت است که
من نمی توانم مرتب سازی بر اساس محفظهای قرار دادن تمام منطق من در یک
خط، زیبا، حلقه for، حلقه for می تواند.
در اینجا، من به نوعی به رویه در این N -
در پایان از حلقه، به دلیل
منطقا لازم است.
اما این نوع از پاک من راه اشتباه، فقط به خاطر آن
جدا از منطق تا اینجا به نظر می رسد، حتی اگر،
باز هم، این برنامه ضروری است.
سایر اندیشههای؟
آره؟
مخاطبان: [نامفهوم].
>> DAVID J. مالان: آره.
پس چه می شود اگر شما به جای این، در پایان این آهنگ، می خواستم به
نسخه قابل چاپ کردن دوباره به نام از این آهنگ؟
مانند "برای بازی 99 بطری آبجو"، و یا چیزی
احمقانه است که می خواهم؟
اما نکته این است که شما می خواستم دسترسی به مقدار اصلی است.
این واقعیت که شما جهش یا تغییر N در هر
تکرار و به همین دلیل، ارزش اصلی خود را نابود کرده است
معنی است که شما فقط می توانید در پایان انجام نیست.
در حال حاضر، مسلما، ما به وضوح نمی خواهید به انجام
که در این برنامه است.
پس چه کسی اهمیت میدهد؟
اما این یک نکته بسیار معتبر است.
و صادقانه بگویم، واقعا وجود دارد هیچ کس
حق در اینجا پاسخ دهید.
آنها هر دو به همان اندازه درست است.
من می توانم در هر صورت متقاعد شده است.
می خواهم بگویم که به طور کلی، این یک اصل خوب اگر شما
کاربر را برای برخی از ارزش خواسته و شما را در یک متغیر ذخیره می شود
مانند ازت، فقط مرتب کردن بر اساس در اصل، آن را احتمالا خوب
برای نگه داشتن که در اطراف.
و هر گونه اطلاعات شما می خواهید به جهش دوباره و دوباره، فقط
خودتان یک کپی از آن متغیر را، فقط این کار است که شما
دسترسی به اصل.
شما در حال گذراندن 32 ادامه بیت است، اما واقعیت این است این
کامپیوتر است، می خواهم، دو گیگابایت RAM این روزها،
و ما در حال quibbling بیش از 32 بیت؟
واقعا چنین معامله بزرگ نیست.
و حتی در این دستگاه با نیمی از یک فرفره یا
گیگابایت RAM، 32 بیت در مقابل 64 بیت،
چنین معامله بزرگ نیست.
بدیهی است امروز، آن را به رفتن به راه غرق اندازه
از برنامه های خود را، که به چند صد
کیلوبایت، اگر نه چند مگابایت، این روز است.
>> بنابراین نگرانی های معقول، هیچ کس جواب درست است.
اما حداقل کسانی هستند که افکار است که باید شروع به
رفتن را از طریق ذهن خود را؟
از آنجا که در pset 0، حتی اگر ما واقعا تنها انتظار می رود
صحت، و یا حداقل به سوأل اشکالات مختلف است که
شما ممکن است مواجه می شوند، همانطور که ما حرکت رو به جلو، طراحی شده است
رفتن به یکی دیگر از جنبه های کلیدی، هر دو به نوشتن کد
و همچنین ما را ارزیابی کد.
و بنابراین، حداقل به من بدهید به چیزهایی مثل این.
و فقط به خاطر اینکه با این نسخهها کار چیزی به این معنا نیست که آن خوب است،
به این معنا نیست که آن را به خوبی طراحی شده است.
و این یکی از چیزهایی که همراهان آموزش و
مجموعه مسائل به ما کمک خواهد کرد که کسی را دست انداختن بخشی در طول زمان است.
>> خب، چه در مورد، اجازه دهید می گویند، این نسخه را در اینجا؟
به من اجازه انجام چیزی که کمی سکسی در اینجا در یک لحظه.
در ابتدا من از شر این اجازه.
و در حال حاضر حل این مشکل دستوری کنیم.
بنابراین در این نسخه، من می خواهم به رفع گرامر به طوری که،
نه فقط از پرانتز ها، مانند "بطری"
یا "بطری" -
من نمی خواهم که گوشه ای برای کاهش -
من همچنین می خواهم به صورت پویا نسخه قابل چاپ از کلمه "بطری"
یا "بطری"، در نتیجه با استفاده از متغیرهایی این٪ s را امروز.
بنابراین من نیاز به مشروط بررسی کنید چه مقدار از من است.
و اگر آن را 1، من می خواهم برای گفتن "بطری"، و اگر هر چیزی آن
دیگر، من می خواهم بگویم "بطری". بنابراین سعی کنید برای انجام این کار اجازه دهید.
بنابراین اگر من == 1، و سپس اجازه دهید من بروم جلو و اعلام -
من نیاز به یک رشته، بنابراین من می توانم S1 رشته، زیرا این
رشته اول من در مورد مراقبت از حق.
من قصد دارم برای گفتن "بطری" است. و سپس، اجازه دهید را ببینید، رشته
S2 - و من توضیح می دهند که من قصد دارم در یک لحظه -
"بطری". به طوری که، در این ترانه، ما باید قادر به یاد
نسخه قابل چاپ همه چیز، دو واژه مختلف به طور بالقوه.
بنابراین اگر ما به عقب نگاه، توجه کنید که هنگامی که ما برای به دست آوردن
این مثال در اینجا، "دو بطری آبجو روی دیوار،
دو بطری آبجو، یکی پایین، عبور در اطراف "، من می خواهم
این خط چهارم به حال "می گویند یک بطری آبجو به در
دیوار "بنابراین من نیاز به تصمیم گیری، آیا من می خواهم برای گفتن" بطری "و یا
"بطری"؟ بنابراین من قصد دارم به خودسرانه می گویند، همه حق است،
من قصد دارم تا هم اکنون یک متغیر به نام S1، رشته
یک، که رفتن به وصل در اینجا و همچنین در اینجا،
چرا که این واژه ها همیشه یکسان است، فقط به دلیل
طبیعت از این آهنگ.
و من قصد دارم به تماس S2 هر کلمه ای که می خواهید به
در نهایت به نظر می رسد در اینجا.
در حال حاضر، به معنای واقعی کلمه، 99 بار از 100، آن را خواهد
در هر دو این موارد، چون 3 جمع، 2
جمع، 4 جمع است.
اما در این مورد گوشه ای، جایی که ما به 2 و سپس 1، یا
حتی 1 و پس از آن 0، من نیاز به این منطق.
بنابراین من مجبور به صرف برخی از زمان در کد من که حق است.
بنابراین اگر من این کار را، اگر من == 1، و سپس راه S1 برابر "بطری"
و S2 برابر با "بطری"، چرا که این کار برای 1
بطری، و این برای 0 بطری باشد.
و این در اینجا، چه چیزی را نشان می دهد؟
فقط برای روشن شود.
این فقط یک نظر است.
بنابراین این واقعیت است که شما می توانید یک خط نظرات شما به معنی
می توانید کد خود را مانند این نظر است، اما یکی دیگر از شایع
پارادایم، بیش از حد، این است که اگر شما یک عبارت فوق العاده کوتاه است که
شما می خواهید خود را قرار داده و آن را فقط قابل خواندن برای قرار دادن
آن را درست در انتهای خط از کد، شما می توانید
مطلقا چیزی شبیه به این انجام دهد.
>> بنابراین در حال حاضر چه می شود اگر من این کار را؟ دیگری اگر من برابر است با 1.
بنابراین بنگ برابر است -
به علامت تعجب به عنوان "انفجار" شناخته شده است.
بنابراین بنگ = 1.
بنابراین اگر من برابر است با 1 نیست، چه می توانم به جای می خواهید کاری انجام دهید؟
خب، اولین کلمه ای که من می خواهم به چه؟
بنابراین رشته 1 باید "بطری" برای بطری های جمع،
و پس از آن این خواهد بود که جمع "بطری" و همچنین، در حال حاضر.
و خواهیم دید که در صورتی که این در واقع می شود ما را به
که در آن ما می خواهیم به آن بروید.
بنابراین در حال حاضر اگر من در پایین حرکت کنید در اینجا، توجه کنید که من متصل کردن در
نه تنها من، بلکه S1.
متصل کردن من در من و S1.
و سپس در اینجا، من منهای 1 است، که همان
قبل از آن، اما S2.
به عبارت دیگر، من می خواهم به تغییر کلمه انگلیسی بر اساس
در این منطق.
در حال حاضر، در حال حاضر برخی از مشکلات در این کد وجود دارد.
آنچه را که در حال حاضر در خارج از دروازه اینجا؟
آره؟
مخاطبان: [نامفهوم].
>> DAVID J. مالان: دقیقا.
بنابراین من در حال حاضر به نقض درس حوزه.
بنابراین من اعلام S1 و S2، اما من آن را در داخل انجام می شود
آکولاد، که به معنی آره، این کد کار خواهد کرد
تا خط 42 است، اما به محض این که من ضربه خط 43، حدس بزنید چه هیچ
دیگر وجود دارد؟
خب، حدس می زنم چه دیگر در محدوده - نه S1 و S2.
بنابراین ما باید برای حل این مشکل است.
بنابراین اعلامیه حذف به من اجازه بده.
و من به نام متغیر و ترک حذف این اینجا
و حذف اینجا کلیک کنید.
و در چه خطوط باید واقعا این چیزها را اعلام کنید؟
مخاطبان: [نامفهوم].
DAVID J. مالان: آره، پس احتمالا
حق در اینجا، 33-پذیری.
بنابراین S1 رشته و پس از آن رشته S2.
و معلوم است، من می توانم این کار را انجام دهند.
اگر شما اعلام دو متغیر از همان نوع،
شما در واقع می تواند فقط یک کاما و استفاده از انجام این کار در C. همه
راست است، بنابراین در حال حاضر من دو متغیر ها -
S1 و S2.
من اختصاص به آنها ارزش ها در این
شرایط در اینجا، و یا در اینجا.
و سپس من آنها را با استفاده از پایین است.
چقدر خوب است این در حال حاضر رفتن به محل کار؟
>> خوب، آن را هنوز کمی حشره دار، اما اجازه دهید حداقل دیدن
تا چه حد ما رو بدست.
پس اجازه دهید من بروم جلو و beer3.
این beer3؟
بله، این beer3 است.
و حالا من به جلو بروید و آن را اجرا beer3.
399 99.
ما احتمالا می تواند بسیاری از آنها را به جست و خیز.
و پایین در اینجا، در آن نگاه کنید.
یک بطری آبجو به روی دیوار، یک بطری آبجو،
1 پایین، آن را منتقل می کند در اطراف، 0 بطری های آبجو بر روی دیوار است. "
اما من توجه خود را به تنها نیمی از راه حل است.
نوع پیچ در اینجا.
پس از آن به نظر می رسد که موارد گوشه ای بوجود می آیند که من برابر آنچه
دو مقدار؟
مخاطب: 2، 1.
DAVID J. مالان: 2 و 1.
این 1 و 1.
این واقعا فقط این دو بند از این ترانه است.
پس چه می توانم به جای می خواهید کاری انجام دهید؟
بنابراین به نظر می رسد گرفتار در مورد جایی که اگر من == تا 1،
پس از آن اولین کلمه "بطری" است، اما کلمه دوم
"بطری" است. اما در اینجا، من می خواهم برای تغییر این == 2.
و اگر این مورد است، چه چیزی من می خواهم
اولین کلمه می شود؟
مخاطبان: "بطری".
DAVID J. مالان: "بطری"، که برای دو بطری.
و سپس این کلمه در اینجا باید -
مخاطبان: "بطری".
DAVID J. مالان: "بطری"، منحصر به فرد است.
>> تمامی حقوق، کوچک نمایی، در اینجا، دوباره اجرا را،
دوباره اجرا beer3، نوع 99 دوباره.
خوب، "تقسیم بندی گسل (هسته ریخته)."
چه من انجام داده اند اشتباه است؟
مخاطب: شما ارزش ندارد [نامفهوم].
DAVID J. مالان: آه، نقطه عالی.
همه حق است، پس چه چیزی اشتباه است که اینجا هستید؟
بنابراین گسل تقسیم بندی، و ما در واقع رفتن به
این کاملا چند بار در آینده، به عمد.
اما در حال حاضر، چه این در واقع چیست؟
گسل، تقسیم بندی تقریبا همیشه بدان معنی است که شما باید
به نوعی سعی به دسترسی به حافظه RAM در کامپیوتر شما،
که متعلق به شما نیست، که شما در واقع نمی پرسید
سیستم عامل.
بنابراین در این مورد، متوجه آنچه که من انجام داده ام، که
ناقص در منطق من.
S1 و S2 یک مقدار را به من اختصاص داده اگر من برابر با 1 است.
من نیز انجام می شود که اگر برابر 2 است.
اما من آن را در تعداد نامتناهی از دیگر انجام می شود
احتمالات -
به طور خاص، در 3 یا 4 یا نقطه، نقطه، نقطه، 99.
بنابراین یک ثابت برای این فقط می تواند اجازه بدهید می شود
شرایط دیگری داشته باشند.
و اجازه دهید من در اینجا بروید و می گویند S1 برابر -
آنچه که باید از آن می شود؟
مخاطبان: [نامفهوم].
>> DAVID J. مالان: "بطری"، چرا که در صورت مشترک،
فقط همین.
بنابراین برابر است با نقل قول، نقل قول را تمام کردن، "بطری". بنابراین برای جمع
بطری، و پس از آن تا اینجا، برای بطری های جمع است.
خوب، پس حالا به من اجازه برگشت به پنجره ترمینال من
کامپایل مجدد، دوباره اجرا شود.
99.
صدای سوت حاکی از حیرت یا تحسین.
و اجازه ورود به سلامت عقل را سریع انجام دهد.
با مشخصات فنی، ما می خواهم می خواهم به خواندن همه آنها را به مطمئن شوید که
آنها درست است، اما اجازه دهید نگاهی به
حداقل از مجرمان شناخته شده است.
3 بطری، 2 بطری، 2 بطری، 1
بطری، 1 بطری، 0 بطری.
ما به نظر می رسد حداقل در حال حاضر ثابت شده است.
اما نکته در اینجا این است که چه افتضاحی افتضاح خدا این است
فقط برای حل یک احمق
یک شخصیت جزئیات گرامری.
بنابراین این نوع از دلیل است که من قطع این گوشه وجود دارد
پیش از آن، به دلیل آن کاملا آزار دهنده است که باید به
نوشتن این کد از حد.
اما به نظر می رسد که کمی ظریف تر راه وجود دارد
ابراز دقیقا همان است.
و ما می توانیم این کار را به شرح زیر انجام دهید.
>> اجازه دهید این ترک من بر روی صفحه نمایش برای یک لحظه و
معرفی چیزی شناخته شده به عنوان یک عملگر سه تایی.
این نوع از یک بوش است که فقط به معنای ایجاد ما
زندگی جذاب کوچک، به عنوان وعده داده است.
و من قصد دارم برای انجام این کار به شرح زیر است.
یک رشته به نام S1 به من بدهید، و به من اجازه
اختصاص آن به شرح زیر است.
(من == 1)؟
"بطری"، در غیر این صورت "بطری". رشته S2 می شود (من == 2)؟
"بطری"، در غیر این صورت "بطری".
پس چه پس از آن است که در اینجا تفاوت؟
این دو خط از کد، من استدلال می کنند، می تواند
به جای تمام این آشفته بازار است.
بنابراین من آن را به یک ظرف غذا، فقط به خاطر آن هم از نوع پاک من
راه اشتباه است که آن را به بسیاری از خطوط از کد است.
اشتباه نیست.
این طرح بد نیست.
مانند، این کاملا درست است و کاملا خوب است.
اما برنامه نویسی خسته کننده می شود اگر شما به خودتان را بیان
لعنت به طور خاص دوباره و دوباره و دوباره با ساده
سناریو این را میپسندند.
بنابراین C است برخی از کلید های میانبر، این را میپسندند.
بنابراین این اساسا گفت: اعلام یک رشته به نام S1 و
اختصاص آن چه این مقدار و یا این مقدار اگر من == -
با عرض پوزش، من باید این را به وضوح می گویند.
اعلام S1 متغیر، این مقدار اختصاص دهید در صورتی که این درست است.
در غیر این صورت، این مقدار اختصاص دهید.
بنابراین به عبارت دیگر، این نوع از راه یک خط
گفت: اگر به جز انجام یک انتساب در طول راه.
بنابراین اگر من 1، و سپس پیش بروید و این "بطری" تماس بگیرید. و
سپس این دیگری، آن را "بطری". در همین حال، S2،
دومین کلمه ای که ما نیاز به تعریف، اگر من برابر با 2، خواهیم
تنظیم S2 به "بطری". در غیر این صورت، آن مجموعه را به "بطری". و چه
این به این معنی است که من می توانم از طریق این صفحه و حذف همه
این خط کد.
و زمانی که من می گویم، تا حدودی مسخره، این است که در حال حاضر
جذاب، جذاب در نوع حس سبکی است.
این حقیقت که عملکرد، این کد است که در واقع به رفتن
آیا دقیقا همان.
و حتی اگر آن را ممکن است کمی مرموز در اولین نگاه
نگاه، از آنجا که ما از این ساختار دیده می شود نه قبل از آن، من می خواهم
استدلال می کنند که در نهایت رفتن به خیلی بیشتر
خواندن و بنابراین بسیار آسان تر برای ما انسان ها به گونه
درک کنند، زیرا در حال حاضر شما فقط می توانید بخوانید
کد همه در یک خط است.
هنوز در روح اگر چنین است، که در آن این است که
شرایط و پس از آن این همان چیزی است که در داخل اگر و این
همان چیزی است که در داخل دیگری است.
اما ما می توانیم این فقط خیلی بیشتر ظرافت انجام دهد.
>> و اگر من در حال حاضر به برگشت به ترمینال من، با حذف همه
از این خطوط و آنها را تنها با این دو جایگزین،
کامپایل مجدد، دوباره اجرا بطری آبجو با 99، توجه داشته باشید که من
دستور زبان است، در واقع، هنوز هم درست است.
تا دوباره، چیزی است که برای شروع.
2 بطری آبجو، 1 بطری آبجو.
به نظر می رسد درست است.
آره.
بنابراین ما باید یک راه حل بسیار بیشتر موجز.
بنابراین، بیش از حد، به عنوان شما می توانید راحت تر با C،
لزوما با pset اولین و یا حتی 2، اما
متوجه باشید که این سازه می تواند به ما اجازه می دهد برای انجام کارهای همیشه
ظرافت.
حالا یک چیز دیگر را در اینجا بگذارید.
اجازه بدهید من به جلو بروید و باز کردن return1.c.
در حال حاضر شروع به حل مشکل دیگری در راه است که اجازه
اجازه می دهد تا ما را به نوشتن کد های پیچیده تر است.
>> بنابراین در اینجا یک برنامه ساده و کوچک که هدف در زندگی
برای افزایش ارزش.
و در واقع، اجازه دهید یک قدم به عقب.
اجازه دهید من این کار را دستی.
اجازه دهید من را شامل و اعضای هیات تحریریه اصلی (خالی).
و اجازه دهید این increment.c با من تماس.
و آنچه من می خواهم کاری انجام دهید؟
من قصد دارم به جلو بروید و می گویند چیزی شبیه به -
ما تماس بگیرید همان اعداد -
X int است.
بنابراین X از نوع int می شود 2؛ printf X٪ D، خط جدید، x.
بنابراین من تایپ کردن سریع است، اما نوع از مسائل آشنا در حال حاضر.
سپس من قصد دارم برای انجام X + +.
سپس من قصد دارم به چاپ دوباره که حکم همان است.
و سپس من قصد دارم به بازگشت 0 برنامه ای برای ترک.
همه حق است، پس این برنامه ای است که
افزایش یک عدد است.
این برای اولین بار رفتن به مقداردهی اولیه چیزی تا 2، و سپس آن را
رفتن به آن را افزایش و چاپ دوباره آن را.
>> بنابراین اجازه دهید اجرا افزایش، برنامه فوق العاده ساده است.
اما فرض کنید در حال حاضر که من می خواهم به مکعب مقدار، بنابراین انجام
چیزی تا حدودی خودسرانه است.
و من در واقع می خواهم برای انجام X مکعب از آن می شود.
بنابراین من می تواند استفاده از آنچه به نام تابع POW، اما من نه
واقعا که در آن است که در عین حال می دانم.
بنابراین من قصد دارم برای انجام این کار راه قدیمی از مد افتاده است.
X بار این برابر است با X بار X بار X است.
بنابراین من cubing ارزش، از ضرب آن را با خود دوباره
و دوباره و دوباره، به طوری که ما می توانید از قدرت
3 در این مورد است.
بنابراین در حال حاضر تعداد من باید چاپ باید باشد، همانطور که خواهیم دید
- افزایش، به طوری که آن را در واقع واقعا افزایش
دیگر، اما خواهیم این نام به تنهایی ترک -
2 و پس از آن 8.
در حال حاضر، در حال حاضر آغاز فرصتی برای پالایش
در اینجا، که به موجب آن این چیز cubing از ضرب یک عدد
خود را خود به خود به خودی خود احساس می کند مانند این فقط ممکن است
مفید به عنوان یک تابع، بسیار شبیه به کسی تصمیم گرفت
سال پیش - می دانید، نوع مفید است اگر یکی از ما می نشیند
و می نویسد: printf به طوری که بقیه جهان می توانند از آن استفاده کنید،
چرا ما نمی نشستن و نوشتن یک تابع به نام مکعب
که آیا این cubing برای ما بنابراین ما لازم نیست به صورت دستی
اجرای مفهوم cubing مقادیر اینجا؟
>> بنابراین یک مثال ساده، اما اجازه دهید به جلو و استفاده از این به عنوان یک
فرصت به نوشتن تابع خود ما.
پس تا کنون، ما فقط استفاده می شود اصلی، و ما استفاده کرده ایم دیگر
توابع مردم است، اما در حال حاضر خود ما نوشته شده است.
بنابراین در اینجا ما بروید.
من قصد دارم به جلو بروید و نوشتن یک تابع به نام مکعب است.
و من قصد دارم به ورودی آن را.
بنابراین ورودی آن است برای رفتن به یک عدد صحیح است.
و آنچه در آن است انجام دهید؟
رفتن به اعلام خروجی از نوع int = ورودی ورودی بار
ورودی برابر است.
و سپس آن را می خواهم به بازگشت که خروجی.
و پس از آن من به صورت خاص در حال حاضر.
این تابع برای بازگشت به یک int است.
بنابراین در اینجا پس از آن این است که چگونه شما می خواهم عملکرد های خود را ارسال.
ابتدا نام خود را از تصمیم گیری
تابع خواهد بود.
و به طور کلی، چیزی توضیحی خوب است، به طوری که من
آن را مکعب.
سپس شما باید مشخص کنید که چه آن را به بازگشت، چه
خروجی آن خواهد بود.
و ما گزینه های است که بسیاری از داشته نشده است.
INT، کاراکتر، شناور، بولی، رشته.
در حال حاضر، من قصد دارم تا با بین المللی چوب، زیرا من آن را می خواهم
برای بازگشت به یک عدد صحیح است.
سپس شما باید مشخص کنید چه ورودی آن، اگر وجود داشته باشد، است.
و اگر مکعب طول می کشد استدلال می کند، چیزی بین
پرانتز، شما باید به آن استدلال نام به طوری که
شما می توانید به آن چیزی است که تماس بگیرید تا شما پیاده سازی و یا نوشتن
این تابع، و شما باید آن را یک نوع، که در این
مورد رفتن به نوع int است.
بنابراین به طور خلاصه، مکعب یک تابع است که طول می کشد یک عدد صحیح است
به عنوان ورودی و بازده یک عدد صحیح را به عنوان خروجی.
>> بنابراین آن چه که با ورودی انجام دهد؟
خب، در خط 14، خروجی متغیر به نام من اعلام و من
ارزش، بار ورودی ورودی ورودی بار را به آن اختصاص دهید.
و سپس خروجی I بازگشت.
پس چگونه این کار استفاده کنم؟
چه این شخصیت های برجسته شده را تغییر دهم در خط
7 تا می شود، آیا شما فکر می کنم؟
مخاطبان: [نامفهوم].
DAVID J. مالان: بله، بنابراین مکعب از X است.
بنابراین X یک متغیر، که بدان معنی است که دارای برخی از ارزش است.
خوشبختانه، آن را از نوع صحیح است.
و از آنجا که بین المللی است، این بدان معناست که من می توانم آن را به مکعب عبور.
و حتی اگر من مهم مقدار x با مقدار
X مکعب، بوده است این مورد تا کنون، هر زمان به شما
علامت تساوی و یک خط از کد، چیزهایی که در سمت راست
اعدام می شود و پس از آن می شود به اختصاص داده
ارزش در سمت چپ.
بنابراین منظور از عملیات این است که ما امیدواریم.
بنابراین این کار می کند؟
خوب، اجازه دهید من در اینجا به پایین.
اجازه دهید من باز کردن پنجره ترمینال من.
به من اجازه انجام را افزایش، را وارد کنید.
"بیانیه ضمنی از عملکرد 'مکعب' نامعتبر است
C99 است. "به کنار، C99 اشاره به C زبان آن را به عنوان
تعریف شده در سال 1999، که به روز رسانی بر روی نسخه از
سال 1989، است که به روز رسانی بیش از اصلی.
پس این است که تمام معنی است.
>> پس چه آیا این به معنی "بیانیه ضمنی
تابع 'مکعب' نامعتبر است "این حق در اینجا.
سمت راست وجود دارد در خط 12.
مخاطبان: [نامفهوم].
DAVID J. مالان: چه خبر است؟
مخاطبان: قبل نمی باشد.
DAVID J. مالان: قبل نمی باشد.
بنابراین این چیزی است.
C نوع احمق، و یا کامپایلرهای C، نوع احمقانه است.
آنها واقعا فقط از آنچه به شما می گویند آنها را به انجام انجام دهید.
و آنها، به طور خاص، تنها بالای کد خود را به پایین به عنوان خوانده شده
از چپ به راست است.
بنابراین اگر به کامپایلر، صدای جرنگ جرنگ، کد خود را در حال خواندن، خط 1،
ارقام چگونه به انجام این کار است.
اوه، در اینجا می آید بخش اصلی است.
خوب، اجازه دهید من بروم جلو و اعلام X متغیر است.
اجازه دهید چیزی چاپ من.
خط 7، چی مکعب است؟
این در stdio.h را اعلام کرد.
این کار با C. نمی آمد من هیچ نظری ندارم که چه باید بکنید.
و به این ترتیب صدای جرنگ جرنگ فقط وثیقه واریز و با پیام خطا است که.
بنابراین ما می توانیم این کار را در یک زن و شوهر از راه حل.
ما می توانیم صدای جرنگ جرنگ مکعب است و تنها با حرکت که در آن تدریس
اعلامیه است.
پس من برش داده شده و آن را در بالای بخش اصلی جا به جا شده است.
حالا که فقط به دلیل اصلی این است که دیگر اول، آن را درک
هنوز هم به طور پیش فرض اجرا شده است.
صفحه اصلی اصلی است.
طور پیش فرض نام تابع است.
مهم نیست که در آن در یک فایل است.
اما حداقل در حال حاضر صدای جرنگ جرنگ دیده است مکعب قبل از من از آن استفاده کنید.
پس اجازه دهید را ببینید اگر صدای جرنگ جرنگ شادتر است در حال حاضر.
را افزایش، آن را کامپایل این زمان.
>> اجازه دهید من اجرا افزایش است.
و در واقع، به نظر می رسد کار.
در حال حاضر، شما می توانید آمد تا با سناریو در نهایت که در آن
این امکان پذیر نیست برای قرار دادن هر تابع
بالاتر از هر تابع دیگر.
شما در این حلقه بی نهایت در واقعیت گیر کرده است،
جایی که این مرد می خواهد اما این
مرد باید وجود داشته باشد.
به طوری که همیشه کار نمی کند.
خوشبختانه، C یک راه حل ظریف تر است.
من قصد دارم به بازگشت را که در آن بود، فقط به خاطر من
ترجیح می دهید، به عنوان یک اصل مهم، که اصلی همیشه
در بالا، به دلیل آن را فقط خوب است برای دیدن آنچه که این برنامه
می کند به طور پیش فرض.
و آنچه من قصد دارم برای انجام این کار در اینجا است که اعلام نام
یک نمونه اولیه است.
من قصد دارم دوباره تابع مکعب من به معنای واقعی کلمه
کپی و چسباندن.
در واقع، به معنای واقعی کلمه نیست.
تا به معنای واقعی کلمه کپی کردن و چسباندن خط 15
تا بالاتر از خط 6.
مهم نیست که چه خط به پایان می رسد تا در.
این اتفاق می افتد در خط 4.
اما آن را به قبل از بخش اصلی است.
اما متوجه این تفاوت است.
خط 4 به پایان می رسد با نقطه و ویرگول، که به معنی سلام،
صدای جرنگ جرنگ، سخن من برای آن وجود دارد که یک تابع وجود دارد
نام مکعب است که طول می کشد بین المللی و بین المللی را برمی گرداند.
اما من قصد ندارم به شما بگویم آنچه در آن است هنوز.
درست است که من قول می دهم که به شما بگوید در نهایت می دانم.
و در واقع، در حال حاضر آن را درست این است که به پایین است.
>> پس این است که به طور کلی بهتر است، زیرا پس از آن در بالا
فایل خود را، شما فقط می توانید خاموش سر و صدا، سریع آتش، یک خط
هر نام از توابع خود را، چه خود را
ورودی، خروجی آنها است.
و به روشن تر، ورودی به طور کلی به معنی استدلال و یا
پارامتر، مترادف است.
خروجی به معنای بازگشت به ارزش، چیزی است که آن را نشانی از
دست را به من برگرداند.
بنابراین در این مورد در اینجا، مکعب شده است در بالا اعلام شده، اما
تعریف شده است، در غیر این صورت به عنوان شناخته شده اجرا شده است، در پایین.
بنابراین در حال حاضر بازگشت و دوباره اجرای این اجازه.
بنابراین در حال حاضر من به جلو بروید و اجازه دهید دوباره اجرا را، دوباره اجرا افزایش است.
و در حال حاضر به نظر می رسد کار فقط خوب است.
بنابراین در حال حاضر ما می توانید پیش بروید و از چیزی مانند عامل
آبجو به عنوان مثال به این نسخه چهارم.
پس من حرکت را در اینجا بگذارید.
و توجه کنید که من به نوعی در زمان این درس فقط در حال حاضر به قلب.
واقعیت این است که من آواز بند دوباره به همان و
دوباره و دوباره، خط کر در آهنگ، احساس
مانند اینکه چرا من نمی توانم عاملی است که خارج را به یک تابع است؟
و در واقع، این باید یکی از انگیزه است.
علاوه بر این واقعیت است که شخص دیگری در جهان ممکن است بخواهید
برای استفاده از یک تابع مکعب -
که یک دلیل خوب به عامل چیزی و نوشتن خود را
خود تابع سفارشی -
اگر یک تکه از کد در برنامه های خود را که فقط باعث می شود وجود دارد
معنای مفهومی، که شما نوع می خواهید به آن را
نام و نام خانوادگی - مثل در این مورد، کر -
پس از آن شما به همین ترتیب می توانید به عنوان یک تابع جداگانه بنویسید.
شما لازم نیست برای نوشتن همه چیز در اصلی آن را فقط به
احساس پاک کننده به آن را جدا و آن را به یک نام بدهید.
>> بنابراین در این مورد در اینجا، توجه کنید که من یک نظر در بالای
این تابع است که فقط در مورد آواز می خواند
شماره های مشخص شده از بطری.
توجه کنید که در اینجا من لازم نیست که به این
چیزهایی ورودی و خروجی است.
در واقع، این زمان من فقط ب ورودی من برای بطری نامیده می شود.
و توجه کنید که در اینجا، خالی نشان می دهد چه؟
که کر -
مخاطبان: آیا آن را بر نمی گرداند.
DAVID J. مالان: یک مقدار را بر نمی گرداند.
و در واقع، توابع مجبور به بازگشت به ارزش ها.
آنها می توانند چیزی را انجام درست.
آنها می توانند عوارض جانبی نامیده می شوند، که در این
مورد است که فقط دسته کل چاپ بر روی صفحه نمایش است.
پس که این کد را در اینجا، من به معنای واقعی کلمه فقط از به سرقت برده متوجه
مثال قبلی است.
تنها تفاوت این است به جای استفاده از من به عنوان من
متغیر، من در حال حاضر با استفاده از ب به عنوان متغیر است.
بنابراین من باید ب را در اینجا، من ب را در اینجا، من ب
منهای 1 را در اینجا.
اما این کد دقیقا همان است.
اما فقط به شما نشان می دهد در حال حاضر چگونه ما می توانیم این کار استفاده کنید، اجازه دهید من بروم
جلو و در واقع تغییر این را به عنوان یک حلقه for.
برای (من بین المللی = N، من> N، من -).
>> پس من که از مثال قبلی ما به سرقت رفته است.
پیش از این، آن را در خط 37 است که من می خواهم که آغاز شده
آواز این آهنگ آزار دهنده است.
اما در عوض، من فقط رفتن به حال کر از من تماس بگیرید.
انجام شد.
بنابراین در حال حاضر در هر تکرار از این حلقه، من به این
تابع، کر، که من به طور اتفاقی به نوشتن.
آن را توسط شخص دیگری سال پیش نوشته شده بود.
اما کر، در عین حال، با استفاده از printf به چاپ
این چهار خط.
اما واقعیت این است که من خواستار کر دوباره و دوباره در
حلقه بدان معنی است که من قصد دارم برای به دست آوردن، در پایان،
دقیق آهنگ همان است که من تا کنون.
بنابراین در کوتاه مدت، در حال حاضر اگر من نگاه کد، حتی اگر
عملکرد این معادل است، توجه کنید که آن را
شروع به گرفتن و حتی بیشتر قابل خواندن است.
من دقیقا نمی دانند که چگونه GetInt
پیاده سازی شده است.
صادقانه بگویم، من نمی دانم چگونه کر اجرا شده است.
اما این برای من مهم نیست.
من اهمیتی نمی دهند، چرا که در حال حاضر من می توانم از مرتب کردن، به عنوان یک انسان، به عنوان خوانده شده
این پایین از بالا به.
و به این دلیل که توابع با توجه به آنچه که آنها به نام
، کد من این است که به طور فزاینده ای قابل خواندن است.
و به عنوان برنامه های ما بسیار پیچیده تر -
پایان ترم، به شما امکان نوشتن صدها خط
کد را در زبان هایی مانند PHP و JavaScript و مانند آن -
شما یابند که آن را بسیار آسان تر نسبت به پیگیری
آنچه شما انجام داده ام.
و زمانی که شما شروع به همکاری با دوستان و یا
شرکا و یا همکاران، شما قادر خواهید بود برای نوشتن خیلی بیشتر
برنامه های گسترده ای شروع به ورزش این پایه
بلوک های ساختمانی.
>> پس با که گفت، چرا ما نمی آن روز؟
و ما شما را در روز چهارشنبه را ببینید.
[تشویق حضار]