[پخش ویدئو] پیروزی -A از ریاضی و مهارت های مکانیکی این بزرگ جدید به صورت خودکار ماشین حساب در دانشگاه هاروارد. مشکلات پیچیده در ریاضیات از طریق دستگاه را در شکل رمزی در نوار به طور دقیق در یک حل میزان ناچیزی از زمان مورد نیاز برای محاسبه انسان است. طراحی شده برای تسریع تمام اشکال ریاضی و علمی پژوهش، مغز مکانیکی غول پیکر برای کار خواهد کرد نیروی دریایی ایالات متحده تا پایان جنگ. [END پخش] DAVID J. مالان: این، CS50 است. گذشته جادویی بود مکان است، اما تا به حال اگر شما فکر آنچه که دستگاه است در مرکز علوم دانشگاه هاروارد، در واقع بخشی از هاروارد مارک من، و آن را بر روی صفحه نمایش وجود دارد در حال حاضر برای بسیاری از سال گذشته. و آنچه شما خواهید دید جاسازی شده در مجموعه ای مشکل یک نگاه پشت صحنه است در چه که دستگاه انجام داد، و می کند، از پروفسور هری لوئیس، که در است بخش علوم کامپیوتر است. بنابراین بیشتر در مورد که در فقط یک کمی. اما امروز ما به انتقال آغاز از هفته گذشته به این، و ما اشاره را از یک عکس در اینجا که در واقع کاملا مشهور است. آیا کسی می داند این در اینجا بر روی صفحه نمایش است. حداقل با توجه به اسطوره. آره. مخاطبان: این ویروس اولین بار. DAVID J. مالان: پس از آن بود ظاهرا اولین اشکال واقعی در یک کامپیوتر است. در حال حاضر در واقعیت اشکال کلمه، برای یک اشتباه در یک برنامه، با ما برای برخی از شده زمان در جهان فیزیکی، و این یکی از اولین بار بود بار ثبت که در آن کسی که در واقع یک پروانه بزرگ از علامت گذاری به عنوان کنده کامپیوتر II، آن را در چسب قرار داده است، و زمان آن ثبت به عنوان اولین اشکال شناخته شده به واقع از لحاظ جسمی یافت شده است. پس در نتیجه از وارد شد که به افسانه هاو روایات قومی امروز است. همه چیز از گذشته هفته آنلاین در دسترس است. در منابع خاص که شما ممکن است نه لزوما متوجه، به ویژه اگر از آمدن به اینجا در فرد است. بنابراین یکی از همراهان آموزش هر سال باعث می شود یک مجموعه استاندارد از یادداشت ها، بنابراین شما نیاز را حفظ کند سر خود را پایین، تلاش به رونویسی هر چیزی که ممکن است در کلاس در اینجا اتفاق می افتد. پس متوجه است که کسانی که به اصطلاح [؟ SCRIBD؟] یادداشت آنلاین، قطعا اسلاید و کد منبع است که ما در کلاس استفاده کنید. ما را رونوشت متن کامل در دسترس است. بنابراین اگر شما به یاد داشته باشید که برخی مبهم مدت، و می خواهید به آن نگاه کنید تا کمی بیشتر به راحتی، درک کنند که همه که آنلاین جستجو است. و همچنین تکمیل فرم سفارش است. در واقع، امروز ما شروع به در نگاه کنید سطح زبان برنامه نویسی پایین تر، به زودی به ما شناخته شده است به عنوان C، و آن را بسیار آسان به نوعی از تنها پس از چند دست داده لحظات زمان، و پس از تعجب چگونه ما در واقع به برخی کردم مثال پیچیده از ساده ترین. و به این ترتیب متوجه خواهیم گیلاس انتخاب کنید در کلاس برخی از نمونه های نماینده، اما متوجه باشید که خیلی بیشتر است در دسترس آنلاین، بنابراین شما می توانید کار از طریق آن با سرعت خود را، با این حال شما راحت ترین است. اما ما با چپ برنامه هایی که فقط این بود. بنابراین من پرچم سبز کلیک کنید، و چه این برنامه را انجام دهید؟ می گوید: سلام، جهان است. این باعث می شود که گربه می گویند سلام در دنیای کوچک خود در سمت بالا سمت چپ رابط کاربر خراش است. اما ما آغاز شده را به شما معرفی برخی از اصطلاحات هفته گذشته است. و به این ترتیب، همه چیز مثل این که ما به نام چه؟ آنچه ممکن است در اصطلاح عمومی برای این؟ آره. یک روش یا یک بیانیه. مطمئنا، آن را یک عمل است. آیا این. و در عین حال وجود دارد اشکال دیگر به خراش، علاوه بر این به اصطلاح بیانیه ای، آنها نیز چیزهایی مثل این، که ما به نام چه؟ آره. بنابراین یک حلقه. و در این مورد، این چیزی که تکرار، بدیهی است، 10 بار. یک بلوک برای همیشه وجود دارد. یک زن و شوهر از دیگران وجود دارد. و امروز ما قصد داریم تا ببینید که چگونه به ترجمه این به جهان مدرن تر، اگر شما خواهد شد، حتی اگر آن را به نظر می رسد در نگاه اول به بسیار محرمانه تر می شود. اما کسانی بودند که در واقع حلقه. و پس از آن ما چیزهایی مانند این که این شکل بود، و اساسا سوال پرسید. و ما به این عنوان چه اشاره شده؟ مخاطبان: عبارت بولی باشد. DAVID J. مالان: آره. عبارت بولی باشد. چیزی است که درست یا نادرست، آری یا نه، یک یا صفر، با این حال شما می خواهید برای دیدن جهان است. اما ما آن بولی نام عبارات، و ما آنها را به برق وصل به شرایط، و یا شاخه. و در جهان ابتدا، همه چیز به خوبی قفل از نظر شکل آن، اگر آن را حس منطقی به انجام این کار، اما شما لازم نیست که به توقف در تنها انجام یک چیز مشروط، شما می توانید یک ضرب المثلی دارند چنگال را در جاده و یا این یا آن اگر شرط درست است یا نه. و پس از آن، به عنوان شما خواهید دید، اگر شما در حال حاضر، شما می توانید لانه حتی این بلوک. بنابراین ابتدا رشد می کند برای پر کردن اشکال که شما ممکن است بخواهید برای وارد کردن به آن، بنابراین شما در واقع می تواند بیان ترین هر گونه منطق است که شما ممکن خواهید انجام دهید. در حال حاضر چند کلمه از اعلام برای هر دو در اینجا و New Haven. بنابراین برش امروز آغاز می شود. URL برای این است که در دوره است وب سایت، برای کسانی که نا آشنا. بخش ها خواهد بود فرصت با هم در یک محیط بسیار صمیمی تر از [؟ سندرز؟] اجازه می دهد، با 10 تا 20 با یک همکلاسی آموزش همکار در آهنگ های مختلف، و قدم های مختلف، اگر شما را انتخاب کنید. در واقع البته پیشنهادات بخش های مختلف برای کسانی که کمتر راحت، بیشتر راحت، و جایی در میان، و نقش کلی در اینجا، است هیچ تعریف رسمی وجود دارد، اما اگر شما کمتر و راحت هستید، شما نوع آن را می دانم. شما کمی بی باک در مورد ما ایده پله پا، شاید، تماس در کلاس درس، و یا نشان دادن تا یک در بین بخش. اگر شما برنامه نویسی از شما بوده ام شش ساله، راحت تر بود، شاید به شما. و اگر آن را یک نوع بازی شیر یا خط تا، این دقیقا همان چیزی است که در بین به معنای. در حال حاضر، در عین حال، برای یک کلاس این اندازه، آن را به ما طول می کشد مدتی به بخش همه، پس ما به اصطلاح، بخش فوق العاده، در آینده این تعطیلات آخر هفته و اوایل هفته آینده، بنابراین یک نگاه وب سایت درس را برای کسانی که البته گسترده ای هستند، و همچنین برای کسانی فیلم برداری که می تواند آنها را ندارد. و بخش خود را شروع خواهد شد در هفته سوم از CS50 شاخص صفر است. مجموعه ای مشکل است در حال حاضر 0 در وب سایت درس است. و متوجه است که شما لازم نه روز اواخر این ترم. بنابراین این ارتقا از گذشته است سال، زمانی که ما پنج روز در اواخر بود. بنابراین اگر شما نمی دانید، ما نه مجموعه مشکل است. شما باید نه روز اواخر، که هر کدام شما تنها می توانید یکی از صرف هر هفته است. که به طور موثر باعث می شود تمام مجموعه مسائل به علت جمعه، اما هدف این است برای قرار دادن یک کمی کمی از فشار روانی شما را به سعی کنید به همه چیز در روز پنج شنبه چرا که به عنوان شما به زودی کشف، برای بهتر یا بدتر از آن، ترین همه چیز را در جهان نرم افزار پایان می رسد تا مصرف بسیار طولانی تر از شما پیش بینی. پس از آن یک نوع در نظر فرصت برای کمک به خود را به هدف قرار دادن پنج شنبه، اما به راحتی در که، بله، همه چیز است که به علت جمعه. و اگر شما آنها را انتخاب در پنجشنبه، که فوق العاده است. هیچ امتیاز پاداش و یا اضافی وجود دارد اعتباری برای ملاقات که آخرین مهلت. این به معنای تنها یک چوب زیر بغل. و ساعات اداری، هر دو در اینجا و در نیوهیون، در فرد، اگر شما می خواهم به دیدار با هر یک از دوره های ما آموزش همراهان و CAS برای کمک. خیلی خوب. بنابراین در حال حاضر، اجازه دهید این موضوع را بیشتر واقعی است. و برای یک لحظه آن را به شروع به کمی محرمانه تر، اما بسیار به سرعت در روز جمعه و هفته آینده ما خواهد شد قادر به انجام خیلی بیشتر از ما می تواند تا کنون در ابتدا. بنابراین ما معرفی کد آخرین هفته، البته pictoral. این قطعات پازل بود. و ما که آن را به رسمیت چیزی به نام کد منبع، اما مثل نگاه می کنید؟ خوب، آن را نگاه کمی چیزی شبیه به این. و، در واقع، فقط به نوع کسی را دست انداختن که در آن ما می توانیم با این بروید. من قصد دارم به جلو بروید و باز کردن یک پنجره در اینجا، و من فقط رفتن را انتخاب کنید فایل جدید است. و من قصد دارم برای ذخیره این فایل به عنوان چیزی شبیه سلام نقطه C. بیشتر که انتخاب کلمات در یک لحظه. و این است چگونه ممکن است کسی را رفتن در مورد نوشتن یک برنامه است. شامل استاندارد I / O نقطه ساعت، اعضای هیات تحریریه اصلی از درجه اعتبار ساقط، و سپس باز آکولاد، نزدیک آکولاد، تابع () printf سلام کاما از هم جهان، بک اسلش نفر، نقطه و ویرگول، ذخیره، انجام می شود. باشه. من برای اولین بار من نوشته ام برنامه، اما آن را به فوق العاده جریان حرکت زیرا زمانی که من در واقع اجرای این برنامه، البته، با نوشتن را خوش آمدید، و پس از آن نقطه اسلش سلام، و ما از طریق این در جزئیات بسیار بیشتر در یک لحظه، که همه آن را است. آیا پاپ نیست باز کردن هر پنجره. این هیچ کاری انجام نمی به خصوص فانتزی. همه آن کند چیزی است که من آن را به گفت انجام دهید، اما ما چگونه به آن را دریافت کنید؟ و چگونه ما بر اساس آن ساخت؟ خوب، اجازه دهید چند معرفی مفاهیم مختلف در اینجا. بنابراین یکی، ما در مورد برای شروع با استفاده از برنامه ای به نام یک کامپایلر. یک کامپایلر برای سیستم عامل مک، ویندوز وجود دارد، لینوکس، هر تعداد از سیستم عامل، و ما به زودی شما را به معرفی محیط زیست است که ما با استفاده از خواهد شد، اما یک کامپایلر فقط یک عمومی مدت برای یک قطعه از نرم افزار که کد منبع را می گیرد و تولید کد شیء از آن. به عبارت دیگر، اگر شما به عنوان ورودی منبع خود را دارند کد، چیزی شبیه به آنچه که من فقط تایپ، در نهایت به تولید کد شی. و کد شیء است که واقعا فقط راه فانتزی گفت: خروجی صفر و یک است. به عبارت دیگر، منبع کد، حتی اگر آن را رفتن به نگاه محرمانه کمی، و کمی کمتر دوستانه از ابتدا در نگاه اول، آن را حداقل چیزی است که ما انسان ها می تواند درک. این نوع از نظر می رسد و برای تلفن های موبایل مانند انگلیسی حتی اگر آن را بسیار موجز. در حالی که برنامه نویسی در صفر و یکی، به عنوان پیشینیان ما تا به حال انجام، چند سال پیش، یک داور سرگرم کننده است. و در عین حال، این چیزی است که است کامپیوتر هنوز درک می کند. بنابراین کامپایلر ما را می شود از کد منبع به کد شیء. آن را مانند باز کردن یک فایل با این کامپایلر، و هنگامی که شما آن را ذخیره کنید، شما آن صفر و آنهایی که دریافت کنید. بنابراین خواهیم دید که چگونه به انجام که در یک لحظه. اما اجازه دهید در حال حاضر سعی به ارائه یک پل بین هفته گذشته و این، به طوری که حتی به عنوان ما گذاشت در مورد چیزهایی مثل آکولاد، و سمی کالن و پرانتز، و همه از این فکری جالب جنبه های برنامه نویسی، که بسیار قابل درک مردم سفر تا اوایل، درک کنند که همه از ایده امروز، همان گذشته است. بنابراین گذشته، ما شاهد این مثال در اینجا، برنامه Hello World. خب، از امروز شروع، اگر ما می خواهیم برای پیاده سازی است که همان برنامه، آن را به نگاه چیزی کمی شبیه به این. و ما قبل از چه نوع int طولانی توضیح دهد، و اصلی، و خالی، و همه از آن است، اما حداقل من در اینجا ببینید در حال حاضر آشنا سلام جهان. در همین حال، همه چیز مانند تابع، سلام، خیلی ساده برای رفتن به یک بیانیه بسیار ساده مثل این. تابع () printf سلام جهان، با برخی از نقل از، با یک بک اسلش، با نقطه و ویرگول، اما بیشتر در آمده است. حلقه ها، در عین حال، این یک حلقه است که، البته، می گوید: سلام جهان را برای همیشه، و این یکی را به نگاه کمی عجیب و غریبتر از در گذشته، اما اگر من چیزی می گویند مانند، در حالی که درست است، من می توانید و سپس چاپ سلام جهان دوباره و دوباره و دوباره و دوباره. و پس از آن به شما به عنوان می تواند به نوعی شروع به استنباط در اینجا، این کنوانسیون استفاده از آکولاد نوع مانند استقبال از خط فاصله دار از کد وجود دارد. خط تابع () printf کد بسیار شبیه قطعه پازل زرد تا بالا. بنابراین ما قصد داریم نیست که می گویند برای همیشه، ما در حال رفتن به در حالی که درست، اما خواهیم دید که چرا این است که در فقط یک کمی. در همین حال، اگر ما یک حلقه شبیه به این، که در آن شما را تکرار چیزی محدود تعداد بار، این یکی بیش از حد آن رفتن به کمی مورد استفاده قرار گرفتن به، اما آن را به اینترنت می گویند من می شود صفر، من کمتر از 10، من + +، و پس از آن تابع () printf است. اما برای رفتن به الگوهای وجود دارد. و برای کسانی از شما آشنا با AP علوم کامپیوتر، و یا جاوا، یا هر تعداد از زبان های دیگر، تقریبا همه از این سازه تا کنون باید بیشتر آشنا است. بنابراین متغیر است. بنابراین در اینجا گزیده ای خراش ساده است که مجموعه یک متغیر به نام شمارنده به صفر، و سپس برای همیشه می گوید ضد، و سپس آن را تغییر مقابله به یک است. بنابراین آن را با صفر شروع می شود، و سپس یکی، دو، سه. خوب، چگونه ممکن است معرفی می کنیم که در این زبان جدید کمی به طور مشابه؟ INT ضد برابر صفر، در حالی که درست است که که همان ایده از قبل است از انجام کاری برای همیشه، و من فقط رفتن به printf. و در حال حاضر آن را گرفتن کمی عجیب و غریب، درصد من، اما بیشتر در آمده است، اما این ایده ها دقیقا همان است. ما فقط در حال حاضر باید به پایبندی به نحو که کامپیوتر است رفتن به تقاضا از ما. عبارت بولی، چیزی شبیه به SX کمتر از y و x کمتر از Y، و y کمتر از Z است. آن را به نگاه یک چیزی کمی مثل این، با پرانتز فقط مانند ریاضی برای اندازه گیری خوبی به فقط اطمینان حاصل شود که منظور از عملیات است که ما قصد. و در حال حاضر، شرایط. بنابراین اگر x از y کمتر، می گویند x کمتر است از y، دیگری اگر x بزرگتر از y باشد، می گویند x بزرگتر از y باشد، در غیر این صورت منطقی، X به Y باید برابر باشد. بنابراین شما ممکن است پیاده سازی چیزی شبیه به این در ابتدا، یا شما ممکن است پیاده سازی آن را در این نحو. و دوباره، آکولاد از نوع به ما همان شکل پازل قطعات، اما نحو، در حال حاضر شاید، شروع به دنبال برخی از الگوهای. بنابراین، چه این به ما را در اینجا؟ بنابراین ما تماس پس از آن در برنامه اصلی ما است. اجازه دهید در واقع، در حال حاضر، انجام کاری با آن. بنابراین در این اولین خط ما می بینیم تیز عبارتند از، استاندارد I / O، نقطه H، و پس از آن برخی از زاویه های عجیب و غریب براکت زیر که. اصلی اعضای هیات از درجه اعتبار ساقط، و سپس تابع () printf سلام جهان. پس فقط یک گام را. کسی که قبل از برنامه ریزی هرگز، حداقل یکی از این خطوط را توضیح دهد. با استفاده از شاید برخی از اصطلاحات مخصوص یک صنف از هفته گذشته است. تابع () printf چه چیزی است، به عنوان مثال؟ آره. مخاطبان: [نامفهوم] DAVID J. مالان: آره. این یک تابع یا یک بیانیه است، از اصطلاحات هفته گذشته است. و آن را یک عمل است که انجام کاری است. در حال حاضر این تابع، یا این بیانیه، می کند به نظر می رسد آن را به برخی از نوع ورودی؟ و به چه معنا آن را به نظر می رسد به ورودی، اگر چنین است؟ ورودی، چه چیزی که من در؟ آره. مخاطبان: [نامفهوم] DAVID J. مالان: آره. بنابراین خراش چند قطعه پازل که در آن شما می توانید آن را parametrize. شما می توانید از تکرار به مسدود چند بار به تکرار، به طوری که یک ورودی بود انواع، و درست مثل خراش حال یک حفره یا سوراخ کوچک سفید برای تعداد شما می توانید نوع در، بنابراین ما در این استفاده پرانتز جهان متن به ما که به شکل دایره را به که ما می توانیم ورودی ما را وصل کنید. پس از همه، ده ها سال پیش زمانی که این زبان، به نام C، هیچ کس اختراع شد پیش بینی آن را یکی از ما، این چند سال بعد، ما می خواهم می خواهید یک تابع است که می گوید: سلام. درست؟ این می تواند خوب اگر یک وجود دارد قطعه پازل، و یا یک کلمات کلیدی، که به نام سلام، که به معنای واقعی کلمه فقط می گوید: سلام. اما ما نیاز به این کار نیست. ما می توانیم چیزی بسیار کمتری دارد سطح، مانند چاپ عمومی فرمان، که طول می کشد ورودی، و چاپ هر آنچه ما می خواهیم. بنابراین در حال حاضر متوجه الگوی که شروع خواهد شد به ظهور. پرانتز باز، پرانتز بسته است ظاهرا استقبال از ورودی، و پس از آن دو را ببینید نقل در هر دو به پایان می رسد. هنوز بک اسلش عجیب و غریب وجود دارد N، اما امیدوارم در حال حاضر شما می توانید شروع به تجسم حداقل که تابع () printf است که مصرف در بعضی از فرم های ورودی. نه به عنوان کاربر پسند که خراش، اما آن را فقط مانند در اختیار داشتن در برخی از ارزش وجود دارد وصل شده است. همه حق است، در حال حاضر اجازه واقع انجام کاری با این. بنابراین برخی از شما ممکن است از مطمئن شوید داشتن خرید کرده کلاس قبل، گفتگو با دوستان، که برای سالهای زیادی ما چیزی به نام استفاده دستگاه CS50. این یک اصطلاح برای توصیف یک تکنولوژی بود به نام ماشین مجازی، که یک قطعه نرم افزاری است که خود را پیشینیان را دانلود کردن وب سایت درس به صورت رایگان. آنها همچنین یک قطعه به صورت رایگان دانلود نرم افزار به نام یک Hypervisor، چیزی به نام مثل VMware، و یا مجازی، و یا هر تعداد از ابزارهای دیگر، و در خود مک و یا کامپیوتر و یا هر کامپیوتری که در سال گذشته و در سال گذشته، آنها دو برابر یک آیکون کلیک کنید این نرم افزار اجرا نام هایپروایزر. و سپس در داخل آن برنامه آنها دستگاه CS50 را باز کنید. و اثر این بود که آیا یک سلف از شما در حال اجرا بود و یا سیستم عامل Mac OS ویندوز، او پس از آن پس از آن یک پنجره جدید در حال خود صفحه نمایش در حال اجرا محیط زیست CS50 است. بنابراین یک ماشین مجازی شما اجازه می دهد اجرای یک سیستم عامل داخل دیگر، و این دقیقا همان کاری که ما کردیم. در طول بیشتر از دوره ما استفاده از یک سیستم عامل به نام لینوکس، به طور خاص لینوکس اوبونتو، و این یک راه بسیار خوب در سال های گذشته است مطمئن شوید که هر کس در این دوره فقط همان محیط بود. و شما می توانید هر نوع استفاده کامپیوتری که شما واقعا می خواهید. در میان جنبه های منفی، هر چند، بود آن را مانند دو گیگابایت بود برای دانلود این چیز. اما ضرورتا کار نمی فوق العاده خوبی در افرادی که کامپیوتر است که شاید تنها حال یک فرفره و یا پس از RAM، یا نه بیش از حد بسیاری از گیگاهرتز سرعت CPU، و بنابراین در این سال، برای این و دلایل دیگر، بوده ایم گذار به این محیط. به اصطلاح CS50 IDE است که بر اساس نرم افزار منبع باز است، و یک پلت فرم پشتیبانی که یک شرکت به نام از Cloud9 از در اروپا، که اجازه می دهد تا ما را به اصل که محیط دقیق همان است که در سال گذشته، اما در ابر به اصطلاح. پس چه ابر است؟ شما احتمالا کلیک کرده اید آیکون آن بر روی مک و یا کامپیوتر شما. ابر چیست؟ آره؟ کمی بلندتر. آره. این فقط یک دسته از کامپیوتر و رایانه است در جاهای دیگر که داده اینترنتی و اجرا نرم افزار و مانند آن. پس از آن واقعا فقط به کلمه د قانونی توصیف [؟ قابل اجاره؟] کامپیوتر که در جاهای دیگر زندگی می کنند. که شما، خودتان، لزوما خودش را دارد. بنابراین، هنگامی که داده های خود، و یا خود را برنامه ها، در ابر هستند، آن را فقط به معنی آن در کسی کامپیوتر دیگری در جاهای دیگر، و نه، به احتمال زیاد در، خود را لپ تاپ های فیزیکی و یا دسکتاپ. و به طوری که چه CS50 IDE در حال حاضر است. پس شما را به برخی از به URL که شما را معرفی به، در مجموعه مسئله 1، بعد از این هفته، که خواهد شد و سپس، پس از ورود به سیستم، شما این محیط است. و بسیار شبیه به خراش بود چند پانل های مختلف درگیر، به طوری که IDE CS50 دارند که دقیقا. در سمت بالا دست چپ در اینجا، شما رفتن به دیدن یک مرورگر فایل آشنا. بنابراین هر یک از فایل های که شما قرار داده و به این محیط فقط به وجود ذکر شده است. فایل ها و پوشه ها. در بالای سمت راست در اینجا، شما در حال رفتن به یک مکان که در آن شما در واقع می تواند کد خود را بنویسید. در ابتدا در C، بعد از آن در مدت در پی اچ پی و جاوا اسکریپت، و شاید برای نهایی پروژه، روبی و پایتون یا جاوا یا هر تعداد از زبان پشتیبانی در این محیط زیست است. آن را در تمام گره خورده است به CS50 به طور خاص. و سپس در گوشه پایین در اینجا، به خصوص برای کسانی راحت تر، شما چیزی به نام یک پنجره ترمینال. و این اجازه می دهد تا پنجره ترمینال شما برای اجرای هر دستور که شما می خواهید در این محیط ابر. این اجازه می دهد شما را به نصب هیچ نرم افزار اضافی که شما می خواهید دلیل این که شما به اصطلاح ریشه، و یا مدیر امتیازات. بنابراین به عبارت دیگر، حتی اگر این در نهایت در ابر میزبانی، و حتی اگر ما آن را تا حدی ساده شده به طور پیش فرض، به معنای واقعی کلمه معرفی، به لطف دن Armendariz به، و دینو، و دن برادلی در تیم CS50 بیش از گذشته بسیاری از ماه های سال، کمتر و راحت حالت است که پنهان بسیاری از حواس او را پرت در ابتدا گیج کننده است. همه چیز وجود دارد به وجود نشان دهنده یک سیستم کامپیوتر معمولی که شما ممکن است در دنیای واقعی استفاده کنید. پس چه چیزی این همه معنی، و آنچه می تواند ما در واقع با آن انجام دهید؟ اجازه دهید در واقع زیرچشمی نگاه کردن را در یک برنامه است. بنابراین من قصد دارم برای باز کردن محیط واقعی در اینجا، که فقط کروم است مرورگر، که می تواند فایرفاکس، می تواند اینترنت اکسپلورر، و یا برخی از مرورگر های دیگر نیز هست. آن را کامل در اینجا برای لحظه ای به نمایش درمیآید. و من می خواهم به کسی را دست انداختن در واقع جدا چه این برنامه بود. بنابراین اجازه دهید نگاهی، با زوم کردن در تا بالا، در آنچه من انجام داد، و چگونه من به اینجا رسیدیم. بنابراین در اینجا آن است دقیق همان خط کد. بنابراین این بیانیه است، همانطور که قبلا ذکر شده است. تابع است که می گوید: سلام. آکولاد، در خط چهار خط و شش، احتمالا نوع پاکت که خط آن را مرتبط با جوهر برنامه من است. پس در واقع، این اصلی کلمه کلیدی، که تا در خط سه، شما می توانید از آن به عنوان معادل فکر می کنم از که زمانی که پرچم سبز کلیک، مسدود در ابتدا. به طوری که همه ما را در اینجا است، هنگامی که پرچم سبز کلیک، چاپ، و یا می گویند، سلام دنیا. اما اجازه دهید یک حدس است، در حال حاضر، در چه اولین بار از این، خط محرمانه تر، است. شارپ شامل، باز زاویه دار براکت، استاندارد I / O نقطه ساعت، بستن براکت زاویه دار. چه می شود که شاید انجام این کار، به خصوص اگر شما برنامه ریزی به قبل از در برخی از زبان دیگر. آره؟ مخاطبان: [نامفهوم] DAVID J. مالان: آره. دقیقا. پس این است که به شما دسترسی به یک کتابخانه، پس به صحبت، از توابع. و یک کتابخانه از توابع است توابع است که شخص دیگری نوشت، یا به تازگی و یا مدت ها قبل، به طوری که شما لازم نیست که به چرخ را دوباره اختراع. به عنوان مثال، ما نمی باید بدانید که، در سال 2015، چگونه به نوشتن کد قرار می دهد که یک شخصیت بر روی صفحه نمایش است. شخص دیگری نمیفهمد که با تابع printf به طوری که من می توانم از انتزاعی مرتب سازی بر اساس دور از آن، و یا لایه در بالای خود و یا او کد، و در حال حاضر فقط برای مسلم است که هر برنامه من ارسال می توانید چیزی را به روی صفحه نمایش چاپ. بنابراین این خط اول وجود دارد در گام اول شامل به اصطلاح فایل هدر برای کتابخانه استاندارد. بنابراین مشاهده می کنید، این زبان در که ما در حال حاضر مشغول به کار حال یک کتابخانه استاندارد با بسیاری از توابع. تابع () printf یکی از آنها است، و که اولین خط از کد معنی من دسترسی به آن دسته از توابع، به طوری که من لازم نیست برای دوباره اختراع که چرخ. حالا اجازه دهید به پنجره پایین بروید و دقیقا آنچه که من قبل از انجام. یک لحظه پیش، زمانی که من صیقل دادن آثاری از طریق کد، تایپ کردن با آن را برای اولین بار، من به سرعت تایپ، را خوش آمدید. چه بود که همه چیز در مورد شما را حدس بزنید؟ چه می کردم؟ آره؟ بیخیال. مشکلی نیست. آره. مخاطبان: کامپایل کردن آن. DAVID J. مالان: آره. این فقط تدوین شد. درست؟ حتی اگر این کاملا نا آشنا به شما، آن را بسیار انگلیسی مانند است. این قطعا صفر نیست و آنهایی که، پس من هنوز هم نیاز به آن اجرا را از طریق به اصطلاح برنامه، یک کامپایلر، که رفتن به آن را به عنوان ورودی و خروجی. و حداقل در حال حاضر، در این محیط لینوکس، اما این است که شرط لازم نیست، این تنها جایی که ما آغاز خواهد شد، شما به طور کلی با تعامل سیستم های کامپیوتری مثل این توسط یک خط دستور به اصطلاح. بنابراین با یک پلک زدن سریع و صفحه کلید خود را، و نه آنقدر ماوس خود را، و نه بنابراین ویندوز بسیار و آیکون ها و منوها، و نه همه چیز متنی است. و حتی اگر این احساس می کند، در ابتدا نگاه، شاید، مثل یک گام به عقب، این در واقع یک بسیار بیشتر راه های قدرتمند و رسا از کنترل یک کامپیوتر به خصوص که شما، خودتان، تر شده راحت از کمتر است. آن را به شما اجازه می دهد برای انجام بسیاری همه چیز بیش از آنچه مایکروسافت و یا اپل اجازه می دهد تا شما را به انجام با سیستم عامل گرافیکی خود را. بنابراین، هنگامی که من ضربه را وارد، در حال حاضر، هیچ چیز این زمان اتفاق می افتد چون ظاهرا برنامه سلام است که تا تاریخ. و آنچه از دستور بود من بعد از آن زد؟ نقطه بریده بریده سلام، و سلام جهان. حالا اجازه دهید یک گام تماس برای فقط یک لحظه. به نظر می رسد که فقط یک سلام راه ساده شده ای از کامپایل یک برنامه. اجازه دهید فقط معرفی یک تکه از اصطلاحات مخصوص یک صنف، اما پس از آن حرکت به دور از آن، از آن نمی که جالب برای اهداف امروز است. کامپایلر ما قصد داریم به شروع به استفاده از است که به نام صدای جرنگ جرنگ، برای زبان C. و این یک برنامه ای است که فقط اجرا است ما در خط فرمان وجود دارد انجام داد. و بنابراین اگر من می خواهم کامپایل برنامه که من در یک فایل به نام سلام نقطه نوشته شده است ج، من به معنای واقعی کلمه فقط نوع صدای جرنگ جرنگ سلام C را وارد کنید. جالب این است، به دلایل تاریخی، اگر من مشخص نیست نام برنامه که من به خروجی می خواهید، اگر من نمی مشخص کردن یک نام فایل را برای آن صفر و آنهایی که، بسیار عجیب و غریب سال کنوانسیون به تصویب رسید پیش جایی که حس نوع پاسخ خوب در آن زمان، خوب اجازه دهید فقط خودسرانه تماس برنامه برای اولین بار ما یک نقطه کامپایل است. می آید برای اولین بار در حروف الفبا. خارج، آن را به خروجی است. بنابراین ما را به برنامه پاسخ به طور پیش فرض یک نقطه است. و این خوب است چرا که اگر من می خواهم اجرای برنامه در این متن بر اساس محیط زیست، من فقط نوع نقطه اسلش یک نقطه خارج را وارد کنید. و آن را دقیقا مانند قبل اجرا. بنابراین اجازه دهید که واقعی سریع می باشد. بنابراین اگر من به بازگشت به من کد منبع در CS50 IDE، و من به جای این کار، صدای جرنگ جرنگ سلام تخت C را وارد کنید، متوجه چیزی به نظر می رسد اتفاق می افتد، اما تقریبا همیشه در این محیط لینوکس، به نظر می رسد که هیچ چیز بد اتفاق می افتد، که به معنی چیزی خوب در واقع اتفاق افتاده است. اگر شما یک خطای دید نیست پیام، همه احتمالا به خوبی. و در واقع، اگر من در حال حاضر انجام نقطه اسلش یک نقطه خارج وارد کنید، من همان برنامه من اجرا شود. من هنوز هم برنامه سلام از پیش از آن به دلیل واقع، آن را رفتن به خیلی بهتر فقط تایپ را جای به خاطر سپردن این ورد دستورات، اما اجازه دهید ببینیم که چگونه ما ممکن است بر این وجود را بهبود بخشد،. بنابراین، این دستور است به کامپایل کد. این دستور برای اجرا است کد کامپایل شده پس از آن. چگونه می توان یک نام فایل مشخص کنید؟ خوب اجازه دهید فقط معرفی یک قطعه از اصطلاحات مخصوص یک صنف. هنگامی که شما در این هستید متن محیط مبتنی بر، شما در حال رفتن به خواهید برای مشخص همه چیز به نام آرگومان های خط فرمان. که فقط یک راه فانتزی گفتن است، به عبارت دیگر در اعلان که نیشگون گرفتن و کشیدن رفتار هر برنامه شما در حال اجرا است. بنابراین به طور خاص برنامه من در حال اجرا، با تایپ کردن نام صدای جرنگ جرنگ، برنامه به نام صدای جرنگ جرنگ است. پس این است که یا مدرسه قدیمی معادل دو بار کلیک در مایکروسافت ورد یا آیکون برخی از برنامه است. من فقط به جای تایپ کردن نام آن، اما در این نسخه از دستور، من پس از آن فضای O فاصله دارند سلام سلام فضای نقطه C. بنابراین حتی اگر شما هرگز بازی در این جهان و جهان، فقط یک حدس را چه O می کند فاصله سلام انجام دهد؟ و یا چه آن صدای جرنگ جرنگ را به انجام؟ آره. مخاطبان: [نامفهوم] DAVID J. مالان: آره. این فقط مجموعه خروجی فایل را به سلام به جای هر نشانه یک نقطه است. و، در واقع، اجازه دهید این را امتحان کنید. بنابراین اگر من در حال حاضر انجام، اولین اجازه دهید این کار، R متر خوش آمدید. که حذف شده است. و آن را می گویند حذف فایل به طور منظم سلام، که است بی ارزش محرمانه، اما آن را فقط یعنی آیا شما می خواهید فایل را حذف کنید، و من Y برای بله نوع. و متوجه، اگر شما در بالای اجمالی شد سمت چپ، آن را از آن بالا ناپدید می شوند. اجازه دهید من در حال حاضر انجام O فاصله صدای جرنگ جرنگ، و من قصد دارم به جلو بروید و سلام، در همه کلاه، سلام نقطه C. در حال حاضر، اگر من بریده بریده نقطه سلام، آنچه که شما انتظار می کنید؟ شاید آن حروف حساس است. شاید این طور نیست. بیایید ببینید. بدون چنین فایل یا دایرکتوری. و ما به نوعی می توانید تقلب شده توسط فقط به دنبال در بالا سمت چپ. چیزی که من اصلا به صرفه جویی در برنامه به عنوان؟ همه کلاه سلام. پس در واقع، که رفتن برای ایجاد یک تفاوت. بنابراین در حال حاضر سلام جهان است. در حال حاضر این است که همه چیز خوب است و خوب، و همه بسیار ذهن بیحس کننده، به نوعی مطلع گرفتار در این جزئیات، اما درک آنها خوب است. تایپ کردن به طور فزاینده این ورد طولانی رفتن به ویژه شود سرگرم کننده، به طوری که مردم در جهان اختراع یک برنامه دیگر، چند سال پیش، به نام را، که کاملا به سادگی اجازه می دهد تا شما را به نوع ساخت، نام برنامه می خواهید مطمئن، و هوشمند است که در آن نگاه خواهد در پوشه فعلی، با نام مستعار دایرکتوری، و اگر شما یک فایل به نام سلام نقطه C، که فایل آن را کامپایل خواهد شد برای شما به یک برنامه به نام سلام. پس از آن یک راه بسیار ساده است از انجام دستورات بیشتر مرموز که ما گذشته انجام داد. و ما از پیش تنظیم شده CS50 IDE به دانستن که آن را باید O فاصله و تعدادی از انجام پرچم دیگر، و یا آرگومان های خط فرمان، که ما قبل از اینکه طولانی را ببینید. اما اجازه دهید در حال حاضر در واقع انجام چیزی جالب تر است. فقط تایپ کردن سلام جهان همه زمان است که همه قانع کننده نیست. بنابراین، اجازه دهید به جلو و تغییر این برنامه و می گویند، سلام دیوید. در حال حاضر من رفتن به پایین صفحه بروید. من قصد دارم به جلو بروید و را خوش آمدید. و دوباره در حال حاضر شما در حال دیدن را به شما نشان دیگر دنباله ای از دستورات است که آن را چرا که ما به انجام پیش پیکربندی شده آن را که راه، اما ما نیاز برای نگران نباشید آنچه در آن انجام دیگر از آن است که تدوین نقطه اسلش سلام، سلام جهان است. چی شده؟ آره. مخاطبان: [نامفهوم] DAVID J. مالان: بله. بنابراین، اشتباه noobie. من متوجه این فوق العاده ظریف، اما ستاره در اینجا، در تب، فقط بدان معناست که شما آن را ذخیره نمی شود، و مرورگرهای و دیگر برنامه های انجام این کار گاهی اوقات. بنابراین کنترل ها و یا دستور بازدید کنندگان باید آن را ذخیره کنید. حالا من به پیش بروید و دوباره اجرای برنامه است. مجددا کامپایل. راست، پس از آن یک فرایند چند مرحله ای است. هیچ یک از آن است به ویژه پیچیده، اما هر زمان که ما تغییر فایل، ما نیاز به تغییر در نتیجه صفر و آنهایی که، و بریده بریده نقطه خوش آمدید. وای. پس این است که بسیار underwhelming که ما فقط چاپ این. بیایید همه چیز را کمی بیشتر پویا، در حال حاضر. خب معلوم است، که دوست ابتدا، C متغیرهای پشتیبانی می کند. و معلوم است اگر شما می خواهید به یک متغیر است که فروشگاه ها، یک عدد مانند ما نمی به طور معمول با خراش داد، اما مانند یک کلمه یا یک عبارت یا یک نام، شما می توانید یک متغیر مشخص به از نوع رشته. بنابراین ما بیشتر از دید این در یک لحظه، اما معلوم است که C، و بسیاری از زبان مانند آن، انواع بسیار خاص از متغیرهای. آن را نه تنها مانند جبر، که در آن شما یک X، یک y و z را دریافت کنید و کسانی که فقط همیشه اعداد، در یک زبان برنامه نویسی شما می توانید شماره ذخیره، شما می توانید ذخیره شخصیت های منحصر به فرد، شما می توانید از کلمات کل فروشگاه، شما می توانید ذخیره تصاویر کل، فایل های طیف صدا، و مانند آن. بنابراین ما نیاز به مشخص کنید که چه نوع متغیر است. و طبق قرارداد من قصد دارم به پاسخ من متغیر فقط به خاطر اینکه موجز، و برای رشته است. و سپس من قصد دارم برای ذخیره در داخل این متغیر، فقط با خراش دوست وقتی که من استفاده از بلوک مجموعه، من قصد دارم به استفاده از عملگر انتساب در C، که به سادگی به اندازه کافی است، مساوی است نشانه است، اما از علامت مساوی کند این است. آن حرکت می کند چیزی از حق به در سمت چپ از بیان است. پس آنچه که من انجام داده اند، در روشن شود خط پنج است، من یک متغیر اعلام کرده ام. من کامپیوتر را گفته ام، من را حافظه برای یک متغیر، پاسخ آن را، و می دانم که در پیش است که من قصد دارم به قرار دادن یک رشته در آن است. و یک رشته فقط یک دنباله ای از شخصیت. این یک کلمه یا یک عبارت یا پاراگراف، اما یک رشته از کاراکتر است. این اعداد نیست. چه رشته من برای رفتن به قرار دادن به آن متغیر؟ خب، ظاهرا نقل قول تمام کردن، "هانا". در حال حاضر متوجه الگوی که حال ظهور است. یک عبارت دست چپ وجود دارد. یک عبارت دست راست وجود دارد، از هم جدا شده علامت مساوی. و فقط یک حدس است، اگر نا آشنا با این حال، با نقطه و ویرگول در حال انجام است. چه آن را احتمالا برای ما انجام می دهند؟ آره؟ مخاطبان: [نامفهوم] DAVID J. مالان: آره. این فقط فسخ خط. درست؟ کامپیوتر می خواهید به صراحت می شود گفت: به معنای واقعی کلمه، چه باید بکنید. مانند کره بادام زمینی و ژله ساندویچ مثال، اگر شما مشخص نیست دقیقا آنچه شما قصد، ممکن است آن را به قضاوت یا خطا است. نقطه و ویرگول بدین معنی است، که آن را برای این دستور. آن را در حال فوق العاده دقیق، و آن را یک چیز بسیار آسان برای ترک کردن. بنابراین در حال حاضر این برنامه به نظر نمی رسد است رفتار متفاوت تا زمانی که من آن را پویا تر. بنابراین به جای سخت می تواند خود من نام، اجازه دهید من یک مقدار حفره یا سوراخ قرار داده است. و معلوم است که، و من می دانم این از پس از خواندن اسناد و مدارک، و با استفاده از تابع برای سال ها، که تابع () printf به پویا طراحی شده است. شما لازم نیست بدانید که در پیش چه کلمات می خواهید به در آن قرار داده. شما می توانید به جای یک حفره یا سوراخ، مانند درصد، که است که که به کامپیوتر، قرار دادن یک رشته در اینجا. که رشته ما خواهید برای قرار دادن وجود دارد؟ اراده می رسد که بین این پرانتز، که به یاد داشته باشید، مشخص ورودی به یک تابع، اگر شما کاما از هم لیستی از چیزهایی که از هم جدا در اینجا، ما در واقع در چند عبور ورودی به یک تابع. بنابراین درست مثل برخی از خراش بلوک، شما ممکن است با آنها را برای بازی پروژه های خود را هنوز یا در همه، برخی از بلوک های خراش دو ورودی. دو جعبه سفید شما می توانید تایپ اعداد یا کلمات را به. بنابراین به اختصاص C توابع مانند تابع () printf است که می تواند دو ورودی است. و دوباره، این کاما از هم است آنها را جدا. بنابراین در انگلیسی، دوباره حتی اگر شما قبل از برنامه ریزی هرگز، توسط تابع () printf منطق که یک تابع باشد، دو ورودی، طول می کشد که یکی از آنها یک حفره یا سوراخ، آنچه را که شما امیدواریم که است تابع () printf است که به انجام این ورودی؟ آن را به گفتن سلام هانا، امیدوارم. بنابراین برای این که ما باید آن را ذخیره کنید را انجام دهید. من قصد دارم به زوم کردن. من قصد دارم برای رفتن به پایین در اینجا و می گویند، را خوش آمدید وارد کنید. آه. چیزی اشتباه است، و در واقع این است که کاملا خسته کننده باشد. من شش خط کد و مانند 12 خط از خطا است. بنابراین، نگاه به جلو به این. پس چه اتفاقی افتاده؟ بنابراین بهترین قاعده کلی در اینجا، ویژه هنگامی که شما در حال شروع کردن، انجام شده توسط پریشان نیست مسائل در پایین. در واقع، من بسیار به عمد فقط میگردین بالا چرا که اغلب، یک کامپیوتر است نه همه که روشن از یک دستگاه. آن را به اشتباه گرفته شود. اگر یک چیز را می بیند که آن را درک نمی، ممکن اشتباه دیگر خط کد به عنوان نادرست، حتی اگر آنها کاملا خوب است. بنابراین شما همیشه می خواهید برای کار بالا به پایین از طریق خطا است. و مسلما این است فوق العاده در حال حاضر محرمانه. خطا، استفاده از اعلام نشده رشته شناسه. آیا منظور من استاندارد در؟ نه، من به معنای رشته. و آن را با اشاره در، شاید آن یک اشتباه تایپی است. مرتب کردن بر اساس مانند، غلط گیر املایی در یک راه بسیار نخبه، اما دلیل در اینجا، و شما این را می دانند فقط با عمل، که معلوم است که رشته در C. وجود ندارد در واقع، C یک زبان به ویژه قدیمی است، و آن سطح بسیار پایین است، و آن را بسیاری از ویژگی های نه که شما ممکن است بزرگ شده اند با اگر شما، در واقع، برنامه ریزی در جاوا، به عنوان برخی از شما داشته باشد، اما شما می توانید آن را از چیزهای جدید یاد می دهد. و در واقع، ما این CS50 انجام داده اند، حتی اگر در پایان ترم، همه از این چرخ آموزش خواهد در نظر گرفته شده است، چیزی که ما در این کار را انجام دو هفته اول در ابتدا ما نیز شما از جمله CS50 نقطه ساعت. که یک فایل هدر است. بیشتر در مورد که در آینده است. این یک فایل که حاوی توابع است که ما برای شما نوشته شده است. و در میان آن دسته از توابع است توابع برای گرفتن ورودی از کاربر، مانند رشته و اعداد و اعداد حقیقی، و بیشتر. اما آن را نیز چند کلید های میانبر. این یک Boolean به عنوان نوع داده تعریف می کند. C می کند درست یا غلط ندارد. اما ما می توانیم آن مفهوم را درست یا غلط از طریق این کتابخانه است. و آن را نیز به یک رشته نیست ساخته شده در تا زمانی که ما شامل این خط. بنابراین این خط از کد می گوید کامپایلر، هی، صدای جرنگ جرنگ، نگاه در این فایل برای یک کل دسته از کد که CS50 است به طوری که نوشته شده است هر کسی با استفاده از این فایل می توانید برای اعطا به ویژگی های آنها اضافه شده است. بنابراین در حال حاضر من جلو بروید و روشن روی صفحه نمایش، و اگر کنجکاو من فقط گفت کنترل L در هر زمان به پاک کردن صفحه نمایش، یا شما می توانید روشن کنید. من فقط رفتن به جلو بروید در حال حاضر و نوع را خوش آمدید، و همه خوب است. هنوز هم یک خروجی محرمانه، اما این یک پیام نادرست است. حال حاضر اگر من نقطه اسلش سلام، و به عنوان یک به کنار، بریده بریده نقطه به ترین ناآشنا است. این فقط بدان معناست، به معنی نقطه دایرکتوری جاری است. بنابراین اگر شما همیشه استفاده می شود داس، و یا لینوکس، یونیکس و یا شما ممکن است چیزی انجام داده اند مانند سی دی نقطه نقطه، که در آن نقطه نقطه به معنای رفتن به عقب در زمان، و یا به عقب، و یا بالاتر در دایرکتوری خود را. نقطه فقط بدان معناست نگاه در دایرکتوری جاری است. من می خواهم سلام، این است که در اینجا ببینید. و در واقع، در حال حاضر آن را می گوید: سلام هانا. و اگر آن را دوباره عوض کنم به ماریا، کامپایل مجدد آن سلام، نقطه اسلش را سلام، برنامه تغییر نگه می دارد. اما این است که هنوز برنامه خیلی احمقانه. اگر من می خواهم به کشتی این برنامه، یا آن را به یک دوست را، یا آن را به ماریا و یا هانا را برای آن موضوع، که خوب است. من می توانم آن برای هر دو آنها سفارشی، اما آن را هرگز برای رفتن به پویا. آنها می توانند آن یک بار آن را وارد تغییر نمی پایین را به آن صفر و آنهایی که. بنابراین آنچه که ما چیزی دقیق انجام داد؟ چه می شود اگر، به جای سخت و برنامه نویسی به برنامه نام این شخص، اگر ما فقط رشته در تقاضا؟ بنابراین به عبارت دیگر، به من اجازه انجام این کار. من قصد دارم به کامپایل مجدد این برنامه است. و به من اجازه زوم در پایین است. را خوش آمدید نقطه اسلش سلام. حال حاضر هیچ چیز اتفاق می افتد. می توانیم یک داوطلب سریع به چیزی اتفاق می افتد؟ بیا بالا. نام شما چیست؟ PANCHO: پانچو. DAVID J. مالان: پاچو؟ بیا بالا. هنگامی که شما تا اینجا، این است رفتن به بسیار underwhelming، اما آن را جالب تر از من تایپ کردن آن. اگر می خواهید پیش بروید و نوع خود را نام، من این برنامه فقط برای شما ساخته شده است. فقط نام خود را تایپ کنید. را وارد کنید. فوق العاده است. همه حق است، از شما بسیار سپاسگزارم. PANCHO: از شما بسیار سپاسگزارم. DAVID J. مالان: OK. [تشویق حضار] که بسیار مهربان بود. در اینجا شما بروید. آنچه ما انجام دهید؟ بنابراین ما در نهایت، حداقل، ساخته شده این برنامه پویا. در حال حاضر آن هنوز هم قطعا طراحی شده توسط underwhelming، اما ما در نهایت باید توانایی در حال حاضر به نوشتن کد در پیش است، بسیار مانند نویسندگان تابع () printf، و پس از آن به صورت پویا سازگاری در ورودی ما بر اساس دست، یا توسط برنامه نویس، و یا توسط انسان که در واقع تعامل با برنامه است. بنابراین اجازه دهید در واقع در حال حاضر سعی به انجام چند سازه دیگر ببینید و اگر ما می توانید برنامه را خود پیچیده تر است. بنابراین اجازه دهید پیش و به جای رفتن نوشتن این یکی، از ابتدا، من قصد دارم برای رفتن به امروز کد منبع، و همه از این موجود در دوره است وب سایت، و شما می توانید با کشیدن و رها آن به محیط زیست خود را آمده جمعه یک بار مشکل مجموعه 1 به شما می دهد دستورالعمل ها، یا شما می توانید این کار را در خط فرمان به خوب است، اما بیشتر به در آمده P مجموعه 1. بیایید ببینید که چه چیزی در این برنامه در اینجا به نام، جمع کننده نقطه C. در حال حاضر من در حال حاضر نظر داده اید آن است، اما تازه چه خبر؟ در نگاه اول، چه خط کد کاملا جدید؟ احتمالا نه اساسا نا آشنا است. مخاطبان: [نامفهوم] DAVID J. مالان: آره، بنابراین اعضای هیات x برابر گرفتن N. ما هرگز دیده می شود هر یک از این قبل از، اما از نوع int است که احتمالا نماد برای چه نوع متغیر، [؟ از؟] یک عدد صحیح. بنابراین برای عدد صحیح بین المللی. این فقط بودن موجز. X فقط خودسرانه است. x و y و z هنوز بسیار مناسب برای اعداد، اما به طور کلی ما کلمات یک بار استفاده کنید برنامه های ما را دریافت کنید پیچیده تر است. مطلع INT، البته، بسیار شبیه به رشته GET، احتمالا برای به دست آوردن یک int از کاربر، و سپس ما در حال رفتن به همین کار را با y است. و ظاهرا، حتی اگر این آخرین خط، 24، به نظر می رسد پیچیده تر، آن را به می گویند که مجموع این و این چیزی است که دیگر است. و درصد متوجه من احتمالا نشان دهنده چه؟ چه نقشی درصد من ظاهرا خدمت می کنند؟ این فقط متغیرهایی است. درست؟ درصد بازدید کنندگان برای رشته بود، درصد من است برای عدد صحیح است. رفتن وجود دارد به درصد F برای ارزش نقطه، شناور که فقط یک عدد با نقطه اعشار است. به عبارت دیگر، یک عدد حقیقی. بنابراین اجازه دهید در واقع این کامپایل برنامه واقعی سریع و انجام را جمع کننده. متأسفیم. فرصت خوب است. بنابراین اطلاع در اینجا، در تمام این مدت کاربر من نام برای این حساب jharvard است. من در CS50 IDE IDE50 هستم، با نام مستعار. و در حال حاضر به رنگ آبی در اینجا، اشاره است، اما از محیط زیست، از جایی که من هستم. و در واقع، اگر زوم من تا به بالا در اینجا، توجه که من یک IDE50 و من می بینم این کلمه، اگر شما نوع به نوبه خود سر خود را به سمت، فضای کاری. به طور خلاصه، این واقعیت است که من از دیدن فضای کاری بریده بریده مد بدان معنی است که در این متن بر اساس محیط فرمان، من در معادل متن هستم این گرافیکی در اینجا پوشه است. بنابراین، هنگامی که من بریده بریده نقطه جمع کننده، آن را گفت هیچ قانون به هدف توقف جمع کننده. من نمی دانم که چه معناست، اما آن را بد برای برخی از این دلیل. بدون چنین فایل یا دایرکتوری حتی روشن تر است. که در آن است پس از آن؟ بر اساس جایی که من کلیک برای باز کردن فایل های قبلی است. که در آن ممکن است باشد؟ آن را احتمالا در منبع یکی W، برای چهارشنبه، و من می توانم آن را ببینید، در واقع، اگر من باز است که تا. جمع کننده است نقطه C وجود دارد، اما در این مبتنی بر متن محیط زیست، دوباره، من باید فوق العاده صریح است. اگر من می خواهم برای تغییر شاخه به منبع یک چهارشنبه، من نیاز به تایپ، سی دی منبع فضای یک چهارشنبه وارد و در حال حاضر تغییرات سریع به من یک نشانه بصری را که من، در واقع، در جاهای دیگر در محیط های من، اما در حال حاضر من می توانم را جمع کننده، به نظر می رسد به کار، نقطه اسلش جمع کننده، من یک عدد صحیح است. یکی. دو. مجموع یک و دو سه است. اما اگر من همکاری نمی کنند، بیایید ببینید که چه روی int کند. من یک عدد صحیح می دهد. شماره دوباره امتحان کنید. باشه. خوب است. 50. 50. خیلی خوب. پس از آن در نهایت همکاری می کند. و این برخی از قابلیت های که این توابع می توانید در برای شما ساخته شده است. بنابراین در داخل اجرای از روی int، چه برنامه نویسی ساخت از هفته گذشته است که احتمالا در وجود دارد را وادار این رفتار سعی مجدد، دوباره امتحان کنید، دوباره امتحان کنید؟ آره، احتمالا وجود دارد برخی از انواع حلقه. آن را به نحوی نگاه از بلوک های خراش است، اما این در واقع چه در داخل فایل است. و در یک زمان چند هفته خواهیم در واقع در کتابخانه CS50 نگاه به آنچه در داخل، اما وجود دارد یک حلقه تحمیل که دقیقا. بیایید بازی کمی احمقانه بازی در اینجا با این پرونده. شرایط صفر نقطه C. ما فقط در حال رفتن به طور کلی شروع به شمارش صفر. و من نگه داشتن اسکرول گذشته برخی از مسائل در بالا. به رنگ آبی در اینجا، مشخص با تمام از این ستاره ها و اسلش، کسانی از شما که برنامه قبل از آن، این است که؟ چرا ما نگه پرش بیش از آن؟ چی؟ رسید این یک نظر است. DAVID J. مالان: آره. این فقط یک نظر است. این یک نظر برای انسان است به خواندن، که در مورد ما، چه به ما می گوید نام فایل است، که آن را نوشته، و چه آن را ندارد، به طوری که شما لازم نیست از طریق کد به عنوان خوانده شده بدانید که چه چیزی این فایل همه چیز در مورد. این فقط یک است، اما عملکرد آن را بی ربط است. و من حتی می توانید آن را از حذف فایل من و هیچ تاثیری. خطوط آبدار این برای اولین بار دو در اینجا، در حال حاضر. اعتبار اصلی اعضای هیات معادل است از زمانی که ما پرچم سبز کلیک، بنابراین ما در حال رفتن به ترک می شود که برای امروز، و ما آمده است، در نهایت، به آنچه به عنوان int و باطل است، اما در حال حاضر، متوجه آنچه من انجام داده ام اینجا بیش از حد، شما همچنین می توانید، اگر شما یک خط در نظر، اگر شما فکر می خواهید برای به اشتراک گذاشتن در مورد یک خط از کد، کنوانسیون در C است که برای انجام بریده بریده بریده بریده، و پس از آن چند کلمه موجز، یک جمله کامل، به طور کلی یک پاراگراف، که فقط به شما توضیح می دهد، و یا خود را TF، و یا خوانندگان دیگر و یا همکاران، چه کد خود را انجام می دهند. بنابراین به جای به نگاه در این استنباط و از خطوط نه و 10، چیزی است که این کار، در خط هشت من فقط یک نظر به درخواست کاربر برای یک عدد صحیح، پس از آن من لازم نیست به فکر می کنم بیش از حد سخت در مورد چه خطوط نه و 10 می باشد. من فقط می دانم که این چیزی است که در مجموع آنها انجام می دهند. چگونه؟ خوب، در اینجا اعلان شده است. در اینجا گرفتن از نوع int است. و بر اساس قبلی رفتار، آن را مانند به نظر می رسد اعضای هیات مطلع به اندازه کافی هوشمند مطمئن شوید که است انسان همکاری می دهد و آن یک عدد صحیح. اما در حال حاضر ما این را ببینید. و این یادآور خراش است. من ادعا که من تجزیه و تحلیل ورودی کاربر، اما تا حدودی اشتباه شود. و ظاهرا این کار در این است که چگونه C ما بیان که اگر دیگری، یک شاخه، چنگال را در جاده ها، اما من می گویند تا حدودی اشتباه شود. اشکال در این برنامه چیست؟ درباره بیشتر به عقب؟ آره. مخاطبان: [نامفهوم] صفر است. DAVID J. مالان: آره. بنابراین اگر در صفر نوع I، اجازه دهید در نظر دقیقا همان است که مورد، و یا گوشه ای، اگر تو بخواهی. بنابراین اگر در صفر تایپ می کنم، که از بلوک است که به ظاهرا آن را گرفتن؟ اگر یا چیز دیگری؟ دیگری، و آن را می گویند، شما یک عدد منفی را برداشت. و در واقع، صفر است که قرار نیست به مثبت یا منفی، و به طوری که به اشتباه خواهد بود. که می تواند یک اشکال. پس چگونه می تواند ثابت؟ کسی که هرگز قبل از برنامه ریزی؟ آیا شما want-- مخاطبان: [نامفهوم] DAVID J. مالان: .. جمع؟ مخاطبان: [نامفهوم] DAVID J. مالان: اوه، شما؟ کسی که قبل از برنامه ریزی هرگز. می خواهید امتحان کنید دست خود را در این، در پیراهن قرمز؟ بیا بالا. آه، بله، در آمده است، اگر شما از ذهن نیست. بنابراین هرگز برنامه ریزی قبل از آن، نام شما چیست؟ لورن: لورن. DAVID J. مالان: لورن، همه حق است. بنابراین این اشکال را برای ما حل کنند. شما نمی C دیده ام، احتمالا، و احتمالا هیچ زبان دیگر. بنابراین این برنامه برای ما حل کنند. خوب به دیدار تو. بدون فشار. لورن: آره. DAVID J. مالان: اما باز هم، اگر این قمار با توجه به طرح می رود، غذای آماده در اینجا خواهد باشد، فقط دوباره، برای شروع به متوجه الگوهای و پی بردن به نحوی موجود چگونه دیگری که شما ممکن بیان خودتان، بدون جناس در نظر گرفته، به منظور را به تصرف برخی سناریو های اضافی. بنابراین ما در حال گفت اگر دیگری. تابع () printf، خوب است. و متوجه CS50 با IDE، IDE و frankly-- مخفف مجتمع محیط زیست و توسعه. این فقط یک راه فانتزی گفتن است برنامه ای است که کمک می کند تا برنامه شما. آن را کاربر پسند چیزهایی مانند زمانی که شما یک پرانتز تایپ کنید، آن را به طور خودکار به شما می دهد دیگر. فرض این است که شما هستید در نهایت رفتن به خواهید به نوع آن، و آن را نیز آن را با نقل قول. بنابراین من می خواهم خط 23. 99٪ از راه وجود دارد. کسی که می خواهید به سنج در با نوک؟ من از نقطه ویرگول از مخاطبان شنیده می شود. خوب است. به طوری که کامل است. و در حال حاضر، من فقط باید کمی بهت و حیرت با خط 21. چگونه ما می خواهیم به بیان این؟ چه درخواست می خواهیم به درخواست، شما فکر می کنید؟ بنابراین پیش از درخواست از ما خواسته، اگر n بزرگتر از صفر باشد، انجام این کار. دیگری، انجام این کار. بنابراین ما نیاز به انتخاب یک سوال در اینجا. مخاطبان: [نامفهوم] DAVID J. مالان: خوب. بنابراین اگر N برابر صفر است. بسیار عالی است. بنابراین اجازه دهید در اینجا توقف. از شما بسیار سپاسگزارم برای این با braving. اجازه بدهید به شما کمی به خوبی سزاوار را توپ استرس، شاید وجود دارد. بنابراین ما تقریبا وجود دارد. در واقع، لورن، اگر شما نمی ذهن، اجازه دهید من در اینجا یکی نیشگون گرفتن و کشیدن، فقط به سازگار با آنچه که ما در ابتدا دیدم، چه من می خواهم به انجام این کار با خطوط 21 و 24، فقط دوباره بر اساس در مورد چگونه ما در ابتدا این بود، شاید؟ مخاطبان: حرکت آن است. DAVID J. مالان: بله، این حرکت به بالا. بنابراین شرط دیگری، سوم، و یا چهارم، و پنجم، و یا شعبه نهایی، باید واقع پس از آن آمده است، و این فقط بر اساس قرارداد، فقط به خاطر اینکه اگر شما خواهد شد. بنابراین من نیاز به این نیشگون گرفتن و کشیدن. و من نیاز به قرار دادن من آکولاد به اینجا. و در حال حاضر، این برنامه کامپایل خواهد شد. ما خیلی نزدیک است، اما وجود دارد یک اشکال بسیار، بسیار ظریف است. بیایید ببینید که چه اتفاقی می افتد. اول، اجازه دهید من به جلو و زوم کردن. من قصد دارم به جلو بروید و تایپ را شرط صفر است. آه، من دروغ گفته است. در حال حاضر کامپایلر است در واقع بسیار هوشمند است. و من واقعا نمی دانند آن پیغام خطا است. با استفاده از نتیجه انتساب به عنوان یک بیماری بدون پرانتز، ظاهرا بد است. اما به چه معنا است؟ خوب دوباره، به دنبال الگوهای در کد است که ما را ندیده اید، چه خط 17 در واقع انجام است، حتی اگر لورن در نظر گرفته شده کمی در غیر این صورت؟ آره. مخاطبان: [نامفهوم] DAVID J. مالان: آره. بنابراین به یاد داشته باشید از علامت مساوی، ظاهرا که ما آن را قبل از استفاده، است برابر است. مأموریت آن، از راست به چپ. بنابراین خط 17 در حال حاضر یک بیماری است، و آن را اجرای کد در داخل پرانتز، اما وقتی که کد اجرا، آنچه اتفاق می افتد به ارزش صفر؟ آنچه اتفاق می افتد به ارزش N؟ تبدیل شدن به صفر است. بنابراین اگر N در حال تبدیل شدن به صفر، و دوباره، به عنوان در هر هفته گذشته، ما به طور کلی می گویند که صفر نادرست است و یکی درست است، و یا بله یکی است و هیچ صفر است. بنابراین درست و نادرست، و 0. اگر n به عنوان خط 17 شده است با توجه به مقدار 0، صفر درست است؟ شماره با این تعریف، صفر غلط است. که کنوانسیون ما هستیم رفتن به چسبیدن به حرکت رو به جلو. بنابراین خطوط 18، 19، و 20 در حال حاضر همیشه اعمال می شود، منطقی است؟ آنها نمی توانند. بنابراین سوال از ما خواسته اما نه کاملا دقیق، و شما نمی دانید این مگر اینکه شما آن را دیده ام، راه حل در C زمانی است که شما می خواهید به بیان برابری، به شما می گویند برابر برابر. بنابراین علامت مساوی در حال حاضر مورد استفاده قرار گرفت تا با انتساب، از راست به چپ. برابر برابر یعنی برابر است. و اگر شما واقعا می خواهید ذهن خود را به خم شود، در جاوا اسکریپت و پی اچ پی، وجود دارد برابر با برابر است با برابر است، که معنی چیز دیگری در دسترس نباشد، اما ما را به که قبل از بلند است. بنابراین این یک تعمیر ساده است، اما متوجه فوق العاده آسان را به این اشتباه، و پس از آن تعجب و مبارزه برای چند دقیقه، اگر نه یک ساعت، چرا من این است که کد اجرا به عنوان قصد من؟ به این دلیل که شما نگفتم آن را دقیقا آنچه شما به معنای. به طوری که تقریبا بود کامل، و آن را بزرگ بود که ما در سراسر این دو کمی تصادفا همه چیز چون در حال حاضر اگر ما آنها را تعمیر کنند، و من را شرط صفر نقطه اسلش شرایط صفر، من می خواهم یک عدد صحیح به مدیر فروش. بیایید ببینید. شماره آن را به زور مرا به انجام آن است. بنابراین 42. من یک عدد مثبت را برداشت. بنابراین در حال حاضر چگونه می توانم ثابت این برنامه درست است؟ اگر شما یک ریاضی دان هستید، شما می توانید نیست واقعا این اثبات با آزمون و خطا، درست؟ شما هم می توانید نه تنها اثبات از طریق به عنوان مثال، اما حداقل به عنوان برنامه نویس ما نیست رفتن به تلاش برای اثبات برای که این در واقع درست است، اما من باید احتمالا تست برخی از موارد نماینده. من 42 تست شده است. من می توانم 43 تست. من می توانم 44 تست. آزمون 45. درست؟ اما من می توانم این مدت واقعا طولانی است. چه خواهد بود بیشتر موارد جالب را امتحان کنید؟ مخاطبان: [نامفهوم] صفر است. DAVID J. مالان: پس صفر است. بدیهی است. و خوب است، ما آن را این بار کردم، به لطف کد جدید لورن است. یک مورد دیگر خوب را امتحان کنید چیست؟ رسید دیگری منفی است. DAVID J. مالان: منفی و شاید چیزی کمی بزرگتر، بنابراین شاید منفی 42، اما به طور کلی، هنگامی که تست برنامه های خود را حرکت رو به جلو، شما رفتن به می خواهم به فکر می کنم به خودتان، مانند آنچه موارد اساسی متفاوت هستند. و من به جرات می یک مورد منفی، یک مورد مثبت، صفر و یک مورد بسیار دور از این. اجازه دهید در یک نوع از این هر چند نگاه کنید. شرایط است. این یک راه حل درست است که در اینجا، به طوری که شما دو و آنلاین را مشاهده کنید، اگر شما از طریق راه رفتن تکمیل فرم سفارش، به طور کلی افزایش این گام به گام تا زمانی که ما گرفتن دقیقا روش درست است. چه اگر ما می خواستیم به درخواست دو سوال در یک بار؟ من اجازه باز کردن این به جای آن. غیر سوئیچ، به دلایل ما بار دیگر ببینید. تازه چه خبر نحوی که اینجا هستید؟ من در حال حاضر بازی یک بازی که در آن کامپیوتر است که گفتن من، من یک عدد صحیح را بین یک و 10، و سپس من قضاوت ورودی کاربر است. در انگلیسی، بر اساس کد شما اینجا را ببینید به رنگ آبی، آنچه که این برنامه انجام می دهند؟ مخاطبان: [نامفهوم] برداشت یک عدد بزرگ یا کوچک است. DAVID J. مالان: آره. این فقط قضاوت که آیا من برداشت بزرگ، و یا متوسط، و یا تعداد کمی در بسیار بر اساس تعریف خودسرانه از کوچک، متوسط، و بزرگ در اینجا، اما متوجه نحو که جدید این است. هیچ کمتر از نوع int یا مساوی وجود دارد امضاء، و یا بزرگتر یا مساوی به ثبت نام، که در آن یک بر دیگری، که شما می توانید مانند مایکروسافت ورد بیان در. بنابراین در یک زبان برنامه نویسی شما معمولا فقط دو شخصیت، یکی پس از دیگری. و چه چیزی این احتمالا نمایندگی، علامت آمپرسند. مخاطبان: [نامفهوم] DAVID J. مالان: آره. این فقط بدان معناست و به دلیل آن معلوم است که نویسندگان C با استفاده از یک علامت تک، که شما ممکن است فکر خواهد بود مناسب برای مفهوم و، در حال حاضر استفاده می شود، علامت بنابراین علامت در واقع قطاری در مورد ما در واقع می خواهم. بنابراین اجازه دهید حال حاضر در سراسر دو چیز تلو تلو خوردن. اجازه بدهید به جلو و باز کردن است. چیزی که کمی نگران کننده است. عدم دقت نقطه C. اجازه دهید دو چیز معرفی من در اینجا. یکی، توجه کنید که ما می توانیم انجام ریاضیات، به عنوان فقط به عنوان قبل از زمانی که ما انجام داد به علاوه از دو عدد، x و y. آنچه که این برنامه ظاهرا انجام می دهند؟ من آن نظر داده اید نشده است، و من معرفی درصد F، اما من به سرعت گفت: قبل از درصد F به معنی نقطه شناور ارزش است که تعداد واقعی است. چیزی را با یک عدد اعشاری نقطه، که یک عدد صحیح است. شما چه فکر میکنید این برنامه این است تلاش برای من بر روی صفحه نمایش نشان می دهد؟ آره؟ رسید نتیجه یک بیش از 10. DAVID J. مالان: آره. نتیجه یک تقسیم بر 10 چیست. راست، چرا که همه از شما احتمالا رشد کرده است تا با علم به اینکه یکی از بیش از 10 چه شده است؟ آره، آن را فقط 1/10 یا 0.1. درست؟ بنابراین اجازه دهید که این واقع است. بنابراین اجازه دهید من به جلو و صرفه جویی در این. اجازه دهید من پایین در اینجا. عدم دقت را نقطه اسلش عدم دقت و توجه، بیش از حد، در یک محیط لینوکس، شما نمی به تایپ کردن عدم دقت و تمام روز. به طور کلی، اگر شما ضربه تب، آن را خواهد فکر خود را برای شما به پایان برسد، بر اساس کلمات که موجود در دایرکتوری جاری است. باشه. بنابراین حق با تو بود. یکی تقسیم بر 10 است، در واقع، 0.1. اما من یک کمی کنجکاو هستم. و معلوم است تابع () printf پشتیبانی از برخی از ویژگی های به موجب آن شما می توانید بیش از مشخص تعداد پیش فرض نقطه اعشاری. بنابراین اگر من می خواهم برای دیدن 10 دهدهی امتیاز من می توانم درصد انجام دهید، برای نماد حفره یا سوراخ، نقطه 10 برای من 10 رقم اعشار را، و پس از آن هنوز هم نقطه شناور ارزش، و، از سوی دیگر، این بک اسلش نفر است ظاهرا ما در حفظ و با استفاده از؟ به نظر می رسد آن را به یک نماد برای یک خط جدید. این راه بسیار صریح و روشن است از گفتن به کامپیوتر، حرکت مکان نما به بعد خط بعد از شما در حال انجام است. و خواهیم دید که چه اتفاقی می افتد هنگامی که ما این کار را نمی کند. اجازه دهید من کامپایل مجدد را عدم دقت. در حال حاضر نقطه اسلش عدم دقت. باشه. هنوز هم حق. یکی تقسیم بر 10. در حال حاضر من یک کمی کنجکاو، هر چند. اگر من نگاه 20 دهدهی اشاره می کند، ترجمه و مجددا تکرار، و به عنوان یک کنار گذاشته برای سرعت، شما همچنین می توانید استفاده کنید بالا و پایین فلش به خود را در طول تاریخ خود را حرکت، بنابراین شما لازم نیست که برای حفظ تایپ مجدد این دستورات، را وارد کنید. متعجب. من یاد ندارم که در مدرسه ابتدایی. خوب، پس به من اجازه دهید مانند 29 مکان را ببینید. شاید این فقط یک اتفاق است. شاید کامپیوتر من اقدام عجیب و غریب. که یک چیز نیست، درست است؟ آن را به انجام چیزی قطعی. بنابراین عدم دقت است. OK، که خراب کرد. بنابراین آنچه در جریان است؟ بنابراین ظاهرا خود را معلم است از دروغ گفتن به همه شما از این زمان برای دلایلی که ما قبل از اینکه طولانی را ببینید. اما اجازه دهید با یک برنامه دیگر به پایان برسد. این برنامه کوچک است کسی نوشت چند سال پیش، و این در واقع بخشی از یک مسابقه. در واقع هیچ کس می نویسد کد مانند این، و اگر شما، این است سبک نگارش یک مشکل. اما مردم این کار را برای افتخار کردن. برای ارسال گیج کننده ترین به دنبال برنامه ای است که وجود به چیزی جالب است. و توجه داشته باشید من فکر کردم ما ترک در امروز، قبل از کولتون بازی می کند ما را در اینجا، است که برای اجرای این برنامه، که حتی در فقط با استفاده از C در این متن مبتنی بر محیط زیست، به ما این را می دهد. لعنتی. [خنده حضار] ایستاده. [نامفهوم] C فاصله ل متر. شما در حال رفتن برای دیدن جادویی افسون که ما قبل از اینکه طولانی را ببینید. [نامفهوم] خوب. و در حال حاضر شما می توانید حتی انجام چیزهایی مثل این. خودشه. برای CS50 ما، شما را در روز جمعه را ببینید. [موسیقی] [تشویق حضار]