[Powered by Google Translate] DAVID J. مالان: کلیه حقوق این CS50 است و این
پایان هفته 1، کارت های مطالعه و تعداد کل
همکلاسی ها است که شما را در این سال 745 است.
و ما خیلی هیجان زده شده برای بسیاری از شما در دوره
این ترم، اما حتی اگر این دوره می باشد بسیار بزرگ است،
متوجه باشید که این چیزها را مانند ناهار جمعه، مانند
ساعت اداری، بخش 15 شخص، و غیره که
واقعا به معنای ایجاد این بیشتر صمیمی
محیط زیست است.
بنابراین حتی اگر ما ممکن است جمع آوری یک یا دو بار در هفته، در اینجا در
ساندرز، می دانیم که بسیاری از تجربه خود را در این دوره
بسیار دست در کنار همکلاسی های خود
و کارکنان آموزش.
>> بنابراین در اینجا ما، پاییز 2012.
به طوری که آخرین باری که ما توجه داشته باشید از به پایان رسید به یاد
دقت، صحبت کردن در مورد نمایش اعداد است.
و ما در یکی از شکست اتفاق افتاده است که نگاه کرد، در
جهان واقعی، زمانی که آن را به سوء تفاهم آمد
کامپیوتر چگونه کار می کنند.
خب، امروز ما می خواهیم یکی دیگر از کسانی که ایده ها را به عنوان دوباره
همچنین ادامه بحث ما از مشتری CS50
و C و آنچه به این معنی واقعا به برنامه.
اما در ابتدا، فقط یک زن و شوهر از اخبار و اطلاعیه گردباد.
>> بخش شروع روز یکشنبه و در هفته اول است که همیشه
کمی از یک شروع سریع، زیرا ما فقط در رو
بخش خودتان.
ما انجام می دهیم در همین حال، در حال حاضر، با همراهان آموزش، در حال حاضر
که آنها می دانند که برنامه های خود را، به طوری که ما هدف،
صبح روز شنبه، برای پیگیری با شما را با بخش خود را
واگذاری و TF.
درک کنند که آنها را شروع می کنیم روز بعد، یکشنبه
و یا دوشنبه یا سه شنبه.
و پس از آن ما را تغییر بخش به عنوان آنها بوجود می آیند را در خود جای
در روزهای آینده است.
ساعات اداری، در همین حال،، دوباره، امشب از ساعت 8 تا 11، در
آننبرگ، و همچنین فردا شب.
حتی اگر مجموعه مشکل به طور کلی به علت در پنج شنبه ها
در ظهر، متوجه می شوید که تا پنج روز دیر به صرف
از این رو در دسترس ساعات اداری پنج شنبه ها هستند، در صورتی که
شما در یکی از آن روزهای اواخر نقدی و، در نتیجه، ارائه
چیزی در روز جمعه.
اجازه دهید به من نشان می دهد که ابتدا در میان لذت بیشتر، در میان
مجموعه مشکل اصلی کم تر است.
و من می خواهم بر روی کسانی که در اواخر روز آویزان، استراتژیک، فقط
بعد از آن در ترم وقتی زندگی شروع می شود در راه
با midterms و طبقات دیگر.
تنظیم مشکل 1، در عین حال، خواهد شد البته ارسال شده
وب سایت این جمعه، به عنوان در راه رفتن درس
از طریق ویدئو، که خواهد شد در 02:30 روز جمعه فیلم برداری
و سپس روز بعد نوشته شده است.
>> بنابراین ما در روز دوشنبه به پایان رسید.
من می خواهم به - در واقع، یک نکته در اینجا است.
از آنجا که طبقات - از آنجا که ساندرز دقیقا نمی قرض دادن
خود را گاه به گاه Q & A پشت و جلو وحشتناکی خوب، ما
رفتن را امتحان کنید چیزی جدید در سال جاری، به موجب آن
اگر شما راحت بالا بردن دست خود را و یا شما فقط
ترجیح میدهند که دست خود را در یک اتاق می خواهم این را افزایش نمی دهد،
ما قصد داریم به برخی از همراهان آموزش و CAS
به خدمت گیری cs50.net/discuss در هنگام سخنرانی.
بنابراین اگر شما یک سوال چون من به طور کامل
معلوم نیست در مورد چیزی و یا شما هستید کنجکاو در مورد برخی از
موضوع، سعی کنید از ارسال آن وجود دارد.
برچسب آن را با برچسب از سخنرانی، و ما بهترین های ما انجام
امروز و در هفته بعد - we'll سعی کنید از این - به این میدان
یا الکترونیکی، آنلاین، و یا اگر آن را مانند ما باید احساس
واقعا آن را یکهو آدرس، یکی از همراهان آموزشی یا
CAS دست خود و بالا بردن بپرسید
ناشناس از طرف شما.
بنابراین ما باید این را امتحان کنید و ببینید که چگونه به خوبی این کار است.
اما، با تمام معنی، به منظور بالا بردن دستها به عنوان شما می خواهم.
>> بنابراین زمان گذشته به ما نشان داد که 10٪ و یا یک دهم است، نه
واقع، 0.1، مثل شما سالها پیش داده شد.
در واقع، یک مقدار شبیه به این.
اما این کاملا درست نیست، درست است؟
ما فقط باید این محدودیت در کامپیوتر موجب آن، اگر شما
فقط باید یک مقدار محدود از حافظه، RAM و یا بیشتر
به طور خاص بیت، خب، فقط یک تعداد محدود وجود دارد
از چیزهایی که می تواند نشان دهد.
به عنوان مثال، اگر ما از عدد صفر، و ما می خواهیم به
نمایندگی در دودویی با استفاده از هشت بیت، که در آن یک بیت،
دوباره، صفر یا یک، ما ممکن است
نمایندگی آن را به عنوان 00،000،000.
و این کمی بی ارزش دراز است.
فقط در سیستم دهدهی در دنیای واقعی مانند،
به طور کلی، اگر شما می خواهید برای نوشتن از 123 شماره،
انسان احتمالا 00000123 نوشتن نیست حتی اگر،
عملکرد، که تعداد دقیق همان است.
ما فقط صفر پیشرو، قطره پس به صحبت می کنند.
>> در دودویی، ما می توانیم همین کار را.
باینری و باینری صفر، صفر و فقط صفر است.
شما فقط نیاز به یک بیت است.
اما دوباره، واحد اندازه گیری رایج ترین در جهان
محاسبات بایت، هشت بیت است.
فقط به خاطر یک بیت، تقریبا بی فایده است.
هشت بیت، نه چندان مفید است، اما حداقل آن را بیشتر
مفید تر از یک واحد اندازه گیری است.
بنابراین با هشت بیت، ما به طور معمول خواهید باینری را نمایندگی کند.
بنابراین در اینجا ما باید اعداد صفر، یک، دو، و پس از آن، به عنوان
مقابله بود در ویدئو ما چهارشنبه گذشته، ما می توانیم ادامه
شمارش تا هفت، تا هشت.
و پس از آن اگر ما با استفاده از بیت بیشتر و بیشتر، ما
شمارش تا بی نهایت.
اما اگر شما تنها تعداد محدودی از این بیت، به عنوان
در مورد هر سیستم کامپیوتری، و یا حتی موشک
سیستم، خوب، در واقع شما فقط داشته
مقدار معینی از دقت.
بنابراین اگر شما می خواهید برای نشان دادن شماره مانند 0.1،،
کامپیوتر را انتخاب کنید و را انتخاب کنید.
و اگر آن را تنها یک تعداد متناهی از اعداد می توانید آن را
نمایندگی، می توان آن را نزدیک به 0.1 را برای شما، اما این نمی تواند
لزوما شما را دقیقا همان مقدار که شما می خواهید.
و این فقط یکی از چالش های کامپیوتر،
زیر هود، خوشبختانه.
>> همانطور که ما حرکت دورتر در ترم، این سطح پایین تر
جزئیات بسیار کمتر جالب توجه است، اما قطعا
استفاده از این ایده ها می تواند برخی از جهان بسیار واقعی
انشعابات.
یکی از سرگرم کننده بیتی است.
چگونه بسیاری از شما را دیده اند، فیلم فضای اداری شگفت انگیز؟
اگر شما را نداشته باشند، که غیر رسمی خود را
مشق شب در هفته.
اما در فضای اداری، همراهان در آن فیلم را
استفاده از دقیقا به این ایده است، اما آنها در واقع به سرقت برده
آن را از یکی دیگر از فیلم است که شما ممکن است
دیده می شود، حتی سال ها قبل است.
پس اجازه دهید من برای شما چند ثانیه از این تریلر را از
این فیلم شگفت انگیز است و این بسیار
علمی مربوطه می باشد.
>> نقش MOVIE]
در واقع من در حال ترویج است.
من می توانم یک ویروس است که قادر به rip کردن برنامه ای است که
محل هم بزرگ است.
خوب، چگونه کار می کند؟
هر بار یک معامله در بانک وجود دارد که در آن علاقه است
محاسبه شده، هزاران نفر در روز وجود دارد، کامپیوتر به پایان می رسد
با این کسری از یک سنت.
اما من قصد ندارم به انجام هر کاری غیر قانونی است.
غیر قانونی؟ سمیر، این امریکا است.
شما باید به سوگند به خدا.
اگر هیچ کس نمی داند در این مورد، اما ما، همه حق است؟ بدون اعضای خانواده، هیچ
دختر، هیچ کس.
[نامفهوم].
نگران نباشید، مرد، من به هر کسی بگوید یا نه.
[MOVIE به پایان می رسد]
>> همه حق است، پس شاید که من پیدا کردم این فیلم بهتر از بیشتر
افرادی که در اینجا، اما در هر صورت، ویروس است که آنها
تلاش برای ایجاد -
و در فیلم، در هر زمان که می خواهم با چیزی است که یک ویروس،
آن را به طور کلی در واقع یک ویروس نیست.
این تنها برنامه ای است که کسی نوشت برای انجام کاری است.
و در این صورت، بچه ها در تلاش بودند برای نوشتن یک برنامه
که با استفاده از شرکت خود را در زمان میگویند Innotech
سیستم محاسبات، به موجب آن رایانه ها، بیش از حد، حتی زمانی که آن را
به پول می آید، می تواند نه لزوما
نمایندگی پول دقیقا.
بنابراین حتی اگر شما ممکن است 0.10 $ در حساب بانکی خود داشته باشد،
0.10، به خوبی، کامپیوتر در واقع ممکن است که شما فکر می کنم
این بسیاری از سنت ها را در حساب بانکی خود را.
و بنابراین، آنچه این افراد مشتاق به انجام این کار - و آنها
به سرقت برده ایده، آن را معلوم از سوپرمن III، که در آن
ریچارد Pryor همان چیزی که - آنها اساسا
نوشتن برنامه هایی که آرزوی همه از عقبی
اعداد، کوچک، کوچک، بخش کوچکی از
سکه و انحراف مسیر کسانی که به طوری که انسان تنها
فکر، آه، آن تنها 0.10 $ وجود دارد، اما همه از آن
عقبی اعداد در نهایت اضافه کنید.
بنابراین یک ایده فوق العاده و آن hilariously که در آن نتیجه معکوس
فیلم خاص.
>> اما در دنیای واقعی، بیش از حد، بسیار بیشتر در باره وجود دارد
پیامدهای این نوع از همه چیز.
و یکی از دلایل فرو رفتن به زمینه کامپیوتر
علم است، باز هم، کاربرد آن نه به
فنی و مهندسی علوم به تنهایی، اما فقط به
زمینه های دیگر نیز هست.
پس این نگاه کمتر lighthearted در آنچه می تواند به اشتباه است، اما
آن را نیز کاملا باز شدن چشم، من فکر می کنم، زمانی که آن را می آید
درک دقیقا چگونه در همه جا حاضر فن آوری های مانند
کامپیوتر و برنامه نویسی و یا این روزها،
در فرم از نرم افزار است.
بنابراین این کلیپ بعدی این است که فقط حدود شش دقیقه، همچنان
که در آن ما را ترک کردن زمان گذشته، اما اجازه می دهد تا ما را به نگاه کمی
در یکی از این مسائل بیشتر در عمق.
اجازه دهید من صفحه پیش به جایی که ما را ترک کردن،
که اینجا درست بود.
و ما دو بخش دو، به حدود شش دقیقه در اینجا.
>> [PLAY MOVIE]
گرفتار تکنولوژی راکت مدرن است.
در سال 1991، با شروع جنگ اول خلیج فارس، پاتریوت
موشک یک نوع مشابه را تجربه
مشکل تبدیل شماره.
و به عنوان یک نتیجه، 20 نفر، 20 سرباز آمریکایی کشته شدند
و حدود 100 تن دیگر زخمی شدند، که وطن شد که قرار
برای محافظت در برابر Scuds ورودی،
به آتش یک موشک ناموفق بود.
>> وقتی عراق به کویت حمله کرد و امریکا راه اندازی کویر
طوفان در سال 1991 در اوایل، باتری های موشک پاتریوت
اعزام به محافظت از عربستان سعودی و اسرائیل از عراق
حملات موشک های اسکاد است.
پاتریوت آمریکا میان برد سطح به هوا است،
ساخته شده توسط شرکت ریتون است.
اندازه رهگیر پاتریوت خود، آن را در مورد
در حدود 20 فوت طول و وزن آن در حدود 2،000 پوند است.
و آن را حمل یک کلاهک در حدود - من فکر می کنم آن را در حدود
£ 150.
و خود کلاهک مواد منفجره است که
قطعه در اطراف آن است.
پوشش از کلاهک به مثل چارپاره عمل می کنند طراحی شده است.
موشک های انجام شده چهار نفر در هر کانتینر و
حمل و نقل توسط یک تریلر نیمه است.
>> سیستم ضد موشکی پاتریوت می رود حداقل به
20 سال در حال حاضر.
این در اصل به عنوان یک موشک دفاع هوایی طراحی شده بود
شلیک کردن هواپیماهای دشمن، در اولین جنگ خلیج فارس.
وقتی که جنگ آمد همراه، ارتش می خواست برای استفاده از آن به ساقه
پایین Scuds، هواپیما نیست.
نیروی هوایی عراق بود خیلی از یک مشکل نیست، اما ارتش
به در مورد Scuds نگران است.
و به طوری که آنها تلاش برای ارتقاء پاتریوت است.
متوقف کردن موشک های دشمن در سفر در ماخ 5 که قرار بود
به چالش کافی است.
اما زمانی که میهن پرستی را به خدمت بردند، ارتش
آگاه بود از اصلاح عراقی ساخته شده است که خود را نمی
Scuds تقریبا غیر ممکن است برای ضربه.
>> چه اتفاقی افتاد Scuds بود که
در آینده ناپایدار است.
آنها wobbling.
دلیلی برای این عراقی ها بود، به منظور رسیدن به 600
کیلومتر خارج از محدوده یک موشک 300 کیلومتر، در زمان
وزن از کلاهک جلو و
کلاهک سبکتر است.
بنابراین در حال حاضر پاتریوت تلاش در اسکاد، و بسیاری از
آن زمان، اکثریت قریب به اتفاق از زمان، آن را
فقط با اسکاد پرواز.
هنگامی که اپراتورهای سیستم پاتریوت پاتریوت متوجه
از دست رفته هدف خود را، آنها منفجر کلاهک پاتریوت.
برای اجتناب از تلفات احتمالی، آن را اجازه داده شد
به سقوط به زمین است.
که چیزی بود که بسیاری از مردم را دیدم، به عنوان آتشی بزرگ در آسمان،
و به عنوان ره کلاهک اسکاد اشتباه گرفته شده است.
>> اگر چه، در آسمان شب، میهن پرستان ظاهر می شود
در ظهران، با موفقیت نابود Scuds می تواند وجود ندارد
اشتباه نکنید در مورد عملکرد آن.
وجود دارد، سیستم رادار پاتریوت از دست رفته آهنگ از
ورودی اسکاد و راه اندازی هرگز به علت
نقص نرم افزار.
این اسرائیلی ها که برای اولین بار کشف کردند این بود که دیگر
سیستم، اختلاف زمانی بیشتر شد،
به دلیل یک ساعت تعبیه شده در کامپیوتر سیستم.
حدود دو هفته قبل از فاجعه در ظهران،
اسرائیلی ها به وزارت دفاع که
سیستم در حال از دست دادن زمان است.
بعد از حدود هشت ساعت در حال اجرا، آنها متوجه شده است که
سیستم در حال تبدیل شدن به طرز محسوسی کمتر دقیق است.
وزارت دفاع در پاسخ گفتن همه
باتری های پاتریوت به سیستم را ترک نمی کند
برای مدت زمان طولانی.
آنها گفتند: هرگز به مدت طولانی چه بود - 8 ساعت، 10
ساعت، 1،000 ساعت.
هیچ کس نمی دانست.
>> باتری پاتریوت در سربازخانه در ظهران مستقر
و ساعت داخلی ناقص خود را بر روی بیش از 100 ساعت شده
شب از ماه فوریه 25th.
ردیابی زمان را به دقت و صحت در حدود یک دهم ثانیه است.
در حال حاضر یک دهم دوم یک عدد جالب این است که به دلیل
می توان آن را در باینری بیان می شود، دقیقا، که به معنی
آن را نمی توان دقیقا در هر بیان
کامپیوتر های دیجیتال مدرن.
این سخت است که باور.
اما استفاده از این به عنوان مثال.
>> بیایید شماره 1/3.
یک سوم می تواند در دهدهی بیان می شود، دقیقا همان است.
یک سوم است .333 بی نهایت.
هیچ راهی برای انجام این کار را با دقت مطلق در دهدهی وجود دارد.
این دقیقا همان نوع مشکل اتفاق افتاده است که در
پاتریوت.
دیگر سیستم زد، خطا زمانی بدتر شد.
پس از 100 ساعت از عمل، خطا در زمان
حدود یک سوم از یک ثانیه.
اما در هدف قرار دادن موشک در ماخ 5
آن را در یک خطای ردیابی بیش از 600 متر شده است.
این امر می تواند یک خطای مهلک برای سربازان در ظهران.
>> چه اتفاق افتاده است پرتاب اسکاد توسط هشدار دهنده زود هنگام تشخیص داده شد
ماهواره و آنها می دانستند که اسکاد خود را در
جهت.
آنها نمی دانستند که در آن آینده است.
این بود که در حال حاضر به بخش رادار پاتریوت
سیستم دفاع ظهران، برای پیدا کردن و پیگیری
موشک های دشمن وارده.
این رادار بسیار باهوش بود.
شما در واقع موقعیت اسکاد و پیگیری
پیش بینی که در آن احتمالا در کنار هم
رادار با ارسال یک پالس.
که دروازه دامنه نامیده می شد.
سپس، هنگامی که پاتریوت تصمیم می گیرد هم به اندازه کافی به تصویب رسید به رفتن
برگشت و بررسی مکان بعدی برای این شناسایی
جسم، آن را به عقب می رود.
بنابراین، هنگامی که آن را رفت و برگشت به محل اشتباه، و سپس آن را می بیند
شیء، و تصمیم می گیرد که هیچ شیء وجود دارد.
این تشخیص نادرست بود و قطره های آهنگ.
>> اسکاد ورودی از صفحه رادار ناپدید شد.
و ثانیه بعد، آن را به سربازخانه ناودان. اسکاد
منجر به کشته شدن 28 و یکی از آخرین کار اخراج شدند در طول
اولین جنگ خلیج فارس.
متأسفانه، نرم افزار به روز شده در ظهران رسیدند
روز بعد.
و نقص نرم افزار ثابت شده بود، بسته شدن یک فصل در
سابقه مشکل از موشک.
PATRIOT است که در واقع مخفف "ردیابی آرایه فازی
رهگیری هدف است. "
>> تمامی حقوق، بنابراین یک نتیجه بسیار غم انگیز تر از نه کاملا
درک این جهان است.
و غذای آماده، واقعا از این فیلم این است که راه حل
شد راه اندازی مجدد سیستم دفاع موشکی خود را وجود دارد
هر یک بار در در حالی که.
و به این ترتیب دوباره، یکی از اهداف این دوره، قطعا
در مقیاس فروتن تر از این برنامه است، به
چشم ها واقعا باز هر کس دقیقا چگونه شما در مورد
ساخت ماشین آلات انجام آنچه شما می خواهید آنها را به انجام و چگونه می روید
در مورد انجام این کار به درستی، در حالی که در طول راه آن را انجام می دهند
خب، ظرافت، و غیره.
و بنابراین، امروز، اجازه دهید شیرجه رفتن به کمی بیشتر از کمی از این، اما
به طوری که ما نمی رویم نه بیش از حد سریع، به خصوص برای کسانی که کمتر
راحت، بلکه به طوری که ما می توانیم به نفع حفظ
کسانی که راحت تر است، اجازه دهید فقط به سرعت آغاز خواهد شد با کمی
روکش برخی از این ایده ها.
و دوباره، بپرسید دور، در هر دو شخص و یا آنلاین، اگر شما
سوالات، بنابراین ما می توانیم به هر کس که در همان صفحه نگه می دارد.
>> بنابراین لوازم CS50، گام سریع به عقب،
چه، در واژه های خود را؟
OK اگر شما هیچ ایده چه چیزی این کلمات هنوز ممکن است.
[نامفهوم]
خوب، پس برای رابط کاربر جهانی -
که ما می توانیم به اشتراک بگذارید.
قطعا.
بنابراین ما می تواند، به عنوان مثال، به شما بگویم که برای رفتن به برخی از
وب سایت، دانلود این نرم افزار برای سیستم عامل مکینتاش.
دانلود این نرم افزار برای ویندوز، پیکربندی
این طرف و اون.
اما واقعیت این است که ما را به فنی بی حد و حصر را اجرا
مسائل.
و همچنین این روزها، بسیاری از آنچه که در حال انجام است سمت سرور،
در جهان محاسبات، به ویژه هنگامی که آن را می آید به
توسعه وب سایت ها و برنامه های کاربردی مبتنی بر وب، در واقع
اغلب در یونیکس یا لینوکس کامپیوتر انجام می شود، به عنوان مخالف
مکینتاش یا ویندوز رایانه های شخصی است.
>> بنابراین در میان upsides، پس از آن، با استفاده از این چیزی که به نام
CS50 لوازم خانگی است که همه ما باید همان محیط است.
بنابراین هر کس در همان صفحه بدون توجه به چه سخت افزاری شما
آمد به دانشگاه با بلکه dabbling دقیقا
همان محیط است که شما با استفاده از سمت
پایان ترم و همچنین برای توسعه وب سایت و همچنین در
آینده برای برنامه های کاربردی جهان واقعی آن است.
بنابراین بیشتر ملموس، لوازم خانگی CS50 یک قطعه آزاد است
نرم افزاری است که به شما اجازه می دهد برای اجرای یک سیستم عامل دیگر،
لینوکس، در این مورد، بر روی کامپیوتر خود را در یک پنجره است.
در حال حاضر شما فقط می توانید دانلود لوازم خانگی.
شما نیاز به یک برنامه که با آن به بازی و یا اجرای دستگاه.
و آن قطعه از نرم افزار به طور کلی به عنوان شناخته شده است
hypervisor.
Hypervisors در فرم از محصولات مانند VMWARE می آیند،
جعبه های مجازی، نحوهی.
همه نوع از شرکت ها نرم افزار، هر دو آزاد و
تجاری، به طور یکسان.
آنچه شما در مسئله تنظیم را ببینید (1) دستورالعمل در مورد نحوه
به دست آوردن نرم افزار آزاد که با آن به
اجرای لوازم خانگی CS50.
و هنگامی که شما انجام دهید، شما باید در یک پنجره بر روی مک یا PC خود را،
یک محیط دسکتاپ است که به نظر می رسد کاملا شبیه به این است، که در آن
آن را چیزی مانند منوی شروع در
پایین گوشه سمت چپ.
این خانه یک پوشه یا دایرکتوری خانه، در سمت چپ بالای صفحه
، سطل زباله وجود دارد می تواند، و غیره.
بنابراین ما باید از هم جدا جزئیات لازم را به عنوان ما به کسی را دست انداختن.
>> اما در حال حاضر شروع به شیرجه رفتن به C. اجازه
بنابراین C این زبان برنامه نویسی، شبیه روح به
ابتدا، اما به مراتب کمتر گرافیکی، اما از قضا، به دور
قدرتمند تر است هنگامی که شما با آن ادراک است.
بنابراین در C، نوشتن برنامه با نوشتن کد منبع، که
این نحو انگلیسی مانند، شبیه به جوراب
تظاهرات که ما آخرین بار است که اجازه می دهد تا شما را به
خودتان را بیان نسبتا دقیق تر، اگر
arcanely، به کامپیوتر است.
>> پس چه نوع از نرم افزار محصول شما در واقع نیاز
برای نوشتن برنامه در یک زبان مانند C، بر اساس ما
مکالمه در روز دوشنبه؟
[نامفهوم]
OK، شما فقط نیاز به یک ویرایشگر متن.
شما به هیچ نرم افزار خاصی نیاز نیست
در هر سه برای نوشتن برنامه های.
شما فقط نیاز به یک ویرایشگر متن مانند دفترچه یادداشت، بر روی ویندوز،
TextEdit در مک، و یا چیزی به نام gedit، در جهان
لینوکس، که ما در اینجا می خواهید استفاده کنید.
و آن، به نوشتن برنامه.
>> اما نوشتن تنها نیمی از معادله است.
بعد از آن شما باید آنها را اجرا کنید.
اما به منظور اجرای برنامه های -
شما می توانید کد منبع را اجرا کنید.
به جای آن شما باید به انجام آنچه به آن برای اولین بار؟
آره.
DAVID J. مالان: شما نیاز به
تدوین آن است.
و، شخص دیگری، کامپایل کد منبع به معنای -
[نامفهوم]
DAVID J. مالان: دقیقا.
ترجمه آن را به صفر و آنهایی که.
از آنجا که همه ما، این روز، کامپیوترهایی که دارای پردازنده،
تقریبا همه از آن توسط یک شرکت به نام اینتل ساخته شده است، و
اینتل در داخل، به معنی این در داخل مغز شما وجود دارد
کامپیوتر، شناخته شده به عنوان CPU.
و یکی از چیزهایی که آن مغز است، آن را می داند
چگونه به درک الگوهای صفر و آنهایی که.
این می داند که چه الگوی بیت نشان دهنده علاوه بر این، چه
الگوی نشان دهنده کسورات، چه الگوی
بیت نشان دهنده چاپ و ایجاد یک صدای قابل شنیدن است.
>> پس به طور خلاصه، CPU، همراه با سیستم عامل،
که یک تکه از نرم افزار که قابل اجرا بر روی بالای CPU است،
پس به صحبت می کنند.
با هم، این دو قطعه می دانم که چگونه برای اجرای برنامه هایی که
ما انسان ها را بنویسید.
>> بنابراین اگر من به لوازم خانگی CS50 در اینجا، من نیاز به باز کردن
تا یک ویرایشگر متن است و من می توانم این دسترسی
یک زن و شوهر از راه است.
من هم می تواند به منو بروید، برنامه نویسی،
و سپس می توانید انتخاب کنید -
نه، که نه منو.
من می توانم به لوازم جانبی / gedit برای باز کردن اینجا
ویرایشگر متن من کم است.
یا ساده تر، من می توانم این آیکون کوچک در پایین کلیک کنید
گوشه سمت چپ.
و در حال حاضر این محیط زیست را دریافت کنم اینجا.
این کاملا یادآور یک ویرایشگر متن ساده است، فقط
یک یا دو تفاوت است.
در بالا، جایی که مکان نما چشمک می زند، این است که
من می توانم شروع به نوشتن کد.
در پایین این است که چیزی به نام پنجره ترمینال.
و چه نوع از چیزهایی که می تواند به من در این کار را انجام دهند
به اصطلاح پنجره ترمینال؟
[نامفهوم]
>> خوب، بنابراین من از دستورات اجرا شود.
و برخی از دستورات در دوشنبه زد کمی بود
مرموز در ابتدا، اما LS لیست سی دی برای راهنمای تغییر،
RM، حذف شده است.
پس از آن مرتب سازی بر از یک روش قدیمی مدرسه از مرور خود را
کامپیوتر، تنها با استفاده از صفحه کلید خود را و دستورات متنی،
و نه به طور کلی، با استفاده از ماوس.
اما خواهیم دید که، قبل از اینکه طولانی، این در واقع به ما می دهد
کمی قدرت و کمی بیشتر دقت که با آن به
ابراز خودمان.
و سپس در اینجا در سمت چپ، ما فقط رفتن برای دیدن،
به عنوان نرم افزار نوشتن، خلاصه کمی از ما شروع
برنامه ایم که در بالا سمت چپ نوشته شده است.
اما خواهیم که دوباره قبل از اینکه طولانی را ببینید.
>> پس اجازه دهید انجام کاری نسبتا ساده است در اینجا.
اجازه بدهید اول به جلو و رفتن به فایل، ذخیره، و من فقط
رفتن به در jharvard کلیک در اینجا، بیش از در سمت چپ، و
jharvard است، دوباره نام پوشه خانه من، من
فایل های شخصی، من، در حال حاضر در حال جان هاروارد، در حالی که همه از شما
به زودی جان هاروارد در این محیط می شود.
اون این شاخه صفحه اصلی، My Documents و غیره،
که من می خواهم را ذخیره کنید، در حال حاضر، این فایل شوید.
بنابراین من قصد دارم به آن را hello.c. سپس من رفتن به
جلو و کلیک کنید را ذخیره کند، و در حال حاضر آنچه که من در اینجا این است زبانه
به نام hello.c، بسیار شبیه به نوع دیگری از ویرایشگر.
>> بنابراین در حال حاضر من به جلو بروید و شروع به نوشتن یک برنامه کنیم.
اعضای هیات تحریریه اصلی (خالی).
و پس از آن من فقط به زمان گذشته، printf برای چاپ فرمت،
("سلام جهان!"
)؛
تقریبا کامل است.
اما من یک زن و شوهر از جزئیات را از دست داده است.
چه از دست رفته است از این برنامه است که من واقعا برای نیاز
آن را به واقع کامپایل؟
آره.
[نامفهوم]؟
>> DAVID J. مالان: بله، بنابراین من نیاز به استاندارد عبارتند از:
I / کتابخانه O.
بنابراین این نیاز به رفتن به بالا اصلی است، بنابراین من فقط برای رفتن
برخی از اتاق را برای آن وجود دارد.
و من قصد دارم به # شامل .
را متوجه شده و براکت زاویه دار وجود دارد.
و به عنوان یک به کنار، gedit کمی کاربر پسند است، اگر
گاهی اوقات یک کمی گیج کننده است، که در آن تلاش می کند برای کمک به شما
چشم متوجه چه خطوط با آنچه.
بنابراین این واقعیت است که کرسر من درست در کنار این زاویه دار است
براکت، توجه کنید که چگونه آن را برجسته زاویه دار دیگر
براکت به علاوه این یکی.
و این فقط برای جلب توجه من به این واقعیت که من
داشتن تقارن است.
و تقارن در برنامه نویسی است که به طور کلی چیز خوبی است.
به طور مشابه، اگر من حرکت کرسر من به پایان، توجه داشته باشید که چگونه
آکولاد خط نشان می دهد که، بله، من یک باز
و یک بسته، پس به صحبت می کنند.
>> همه حق است، و من می توانم یک چیز دیگر را انجام دهید.
این به شدت لازم است، اما عمل خوب نیست، می گویند
بازگشت 0.
و 0 بازگشت آنچه برای ما در اینجا؟
یا نشانگر چه؟
[نامفهوم]
DAVID J. مالان: اما هیچ کار اشتباهی است.
با صراحت و آن را سخت برای بسیاری به اشتباه در
این برنامه کوتاه.
بنابراین من تنها بودن فوق العاده صریح و روشن است که همه به خوبی.
من، انسان، زمانی که من برای اجرای این برنامه، احتمالا هرگز
که 0.
به طور کلی، این اعداد است که در حال بازگشت از اصلی
تنها سر خود را به انسان ها عقب زمانی
چیزی می رود اشتباه است.
و شما پاپ کمی تا گفت خطای سیستم، یک،
دو، سه، یا هر چه که تعداد این بود که
در واقع بازگشته است.
پس هر چیز دیگری اشتباه با این؟
[نامفهوم]
>> DAVID J. مالان: بنابراین این بسیار اشتباه عملکردی
اما زیبایی است.
من احتمالا باید در یک کاراکتر خط جدید قرار داده است وجود دارد در
انتهای این رشته به طوری که ما در واقع مکان نما به حرکت
خط بعدی، و این برنامه فقط به نظر می رسد کمی زیباتر است.
>> بنابراین در حال حاضر من به پایین به پنجره ترمینال من
و زوم شوید.
و این چیز در اینجا، آن را به نام اعلان
فقط به من یادآوری که من هستم، jharvard @ دستگاه، که در آن
لوازم خانگی نام از کامپیوتر من در هستم.
در پرانتز این است که ریشه یابی لغات، نماد دهان قرقره کردن، که
نشان دهنده چه؟
مخاطبان: دایرکتوری خانه.
DAVID J. مالان: دایرکتوری خانه.
به طوری که فقط یک نماد مختصر برای گفتن به شما را در
پوشه های شخصی خود را که در آن تمام فایل های خود را به طور پیش فرض.
بنابراین در حال حاضر، در اینجا، من می توانم ls برای لیست تایپ کنید.
و تنها چیزی که من می بینم در اینجا در حال حاضر است hello.c.
و این خوب است چون من فقط این را نوشتهاید.
>> پس اجازه دهید من بروم جلو و انجام را خوش آمدید.
و متوجه من تایپ نمی کند hello.c.
در عوض، من فقط تایپ کردن نام پایه ای از فایل، خوش آمدید.
و، به عنوان ما در روز دوشنبه را دیدم، فقط می خواهد که من می خواهم استنباط
فایل C.
بنابراین در حال حاضر من تایپ را خوش آمدید.
حالا من این دستور نسبتا طولانی است و ادامه خواهد داد
دیدن این دوباره و دوباره.
اما برای روشن، صدای جرنگ جرنگ، کلمه ای که فقط به نظر می رسد،
که کامپایلر واقعی است.
ایجاد شده است فقط یک ابزار ساخت است.
این فقط یک کاربر برنامه دوستانه تر که من موجب صرفه جویی در، در
طولانی، از نیاز به تایپ فوق العاده خسته کننده طولانی اجرا
دستورات مانند که یکی از.
بنابراین شما می توانید صدای جرنگ جرنگ دستی اجرا کنید.
شما می توانید از آن دستی تایپ کنید.
فقط می شود بسیار خسته کننده است.
و به این ترتیب تنها برنامه ای است که زندگی ما را ساده می کند و
فرمانهای پیچیده تر برای ما.
>> همه حق است، به طوری که در حال حاضر چه فایل باید داشته باشم
در دایرکتوری جاری من؟
نه فقط hello.c، بلکه خوش آمدید.
پس اگر من می خواهم برای اجرای میهمان گرامی، به یاد می آورم که من می گویم نقطه بریده بریده،
که در آن به معنای نقطه به پوشه فعلی، هر کجا که شما بروید
هستند و برنامه ای به نام خوش آمدید، پس از آن اجرا کند، و در واقع، در حال حاضر،
سلام جهان.
تمامی حقوق، هر گونه سوال در مورد گردش کار و یا نحو
آنچه که ما فقط (مشکل اینجا بود)؟
>> همه حق است، بنابراین چیز شکاف دوباره بگذارید.
بنابراین این بود underwhelming فقط به نوشتن یک برنامه است که فقط
همیشه می گوید: سلام، جهان است.
بنابراین ما آن را تغییر می کند، در تاریخ دوشنبه، می گویند، سلام، دیوید.
این کمی شخصی تر است، اما فقط به عنوان سخت به عنوان رمزی
اولین نسخه.
بنابراین همه که قانع کننده نیست.
اما وجود دارد، وجود دارد که در C، توابع قطعا علاوه بر
چاپ، توابع است که اجازه می دهد ورودی های کاربر را دریافت کنید.
و راه ما این، روز دیگر، به شرح زیر است.
قبل از اینکه من در واقع چاپ کردن چیزی، و من برای اولین بار
چیزی از کاربر است.
بنابراین، من این کار را دوباره بگذارید.
>> عبارات S، که در آن است فقط یک نام خودسرانه، در اینجا، برای
رشته، برابر GetString.
پس چه شد GetString؟
به وضوح می شود یک رشته، بر روی نام آن است.
اما آنچه در آن است، از لحاظ فنی تر است؟
این یک تابع است.
پس از آن یک تابع است که با C فی نفسه نمی آمد.
CS50 کارکنان این را نوشتهاید.
و بنابراین برای استفاده از این، شما فقط نمی تواند شامل stdio.h،
شما همچنین باید شامل چه؟
آره.
بنابراین cs50.h است که فقط یک فایل چند سال پیش نوشت.
ما آن را بر روی دستگاه را برای شما در کنار نصب
همه از فایل های استاندارد.
و به این ترتیب در این چند هفته اول از کلاس، خواهیم با استفاده از
این فقط به ساده سازی روند انجام این کار بسیار اساسی
همه چیز دوست دارم ورودی گرفتن کاربر.
از آنجا که عنوان می کنیم در چند هفته، گرفتن ورودی کاربر را در
زبان C است که در واقع جای تعجب پیچیده،
به ویژه به دلیل شما را در پیشبرد نمی دانم، معمولا، چگونه
چیزهای زیادی کاربر در حال رفتن به تایپ شوید.
و زمانی که شما نمی دانید که چه مقدار اطلاعات را به انتظار، شما نمی
می دانم که چه مقدار حافظه تخصیص.
و در واقع اگر شما یک کاربر خصمانه که تلاش
برای هک را به سیستم شما کامپیوتر خود را، سقوط، خوب،
به طور کلی از روش اول پس از حمله است، درست مانند من در
دوشنبه، نوع دنباله ای طولانی از شخصیت های تصادفی
ضربه را وارد کنید، و ببینید چه چیزی می شکند.
زیرا به طور کلی، اگر معافیت های برنامه، که نکات در
یک نقص امنیتی، به طور بالقوه.
این قطعا به شما نکات، برنامه نویس، داشتن ساخته شده
اشتباه، اما خطرناکی تر، شما ممکن است را ساخته اند
اشتباه مربوط به امنیت، و به طور کلی خواهیم دید که
این که چگونه دستگاه ها را به این روز در معرض خطر، هر دو
در جهان وب و برنامه ها در
خط فرمان، این را میپسندند.
>> بسیار خوب.
بنابراین رشته ها در برابر GetString.
بنابراین بیشتر مشخص در حال حاضر، چه خط 6 را در اینجا؟
بنابراین تابع در سمت راست می شود رشته،
طول می کشد که چگونه بسیاری از استدلال؟
باشه.
بنابراین هیچ.
سلامت عقل کمی بررسی کنید.
بحث، دوباره، این است که فقط یک ورودی به یک تابع را تغییر دهید
رفتار پیش فرض خود را در برخی از راه.
اما در این مورد، من نمی خواهم برای تغییر
رفتار GetString.
من فقط می خواستم به یک رشته است.
بنابراین من هیچ چیز در پرانتز قرار داده است، و پس از آن من قرار
نقطه و ویرگول بدین شکل؛ demarking پایان خط از کد.
در حال حاضر، علامت مساوی برابر این معنی نیست، و در هر سه.
این به این معنی انتساب، که به معنی قرار دادن هر آنچه می شود
خروجی در داخل راست آنچه در سمت چپ است.
>> بنابراین در سمت چپ، ما می گویند که ما اعلام کرده اند
رشته نامیده میشود.
و بیشتر به طور خاص، ایم حافظه در داخل اختصاص داده شده
که ما از بیت قرار داده است که نشان دهنده یک دنباله از
کاراکتر باشد.
اما امروز، ما اختصاص داده اند
یا یک رشته اعلام کرد.
بسیار خوب.
بنابراین در حال حاضر یک بار من انجام داده ام، من می خواهم به ارزش پلاگین
، ارزش داوود نیست.
پس این اشتباه است چرا؟
بنابراین این فقط به معنای واقعی کلمه سخت کد است.
این برای گفتن "سلام، s"، که همان چیزی است که من می خواهم نیست.
بنابراین من می توانم این کار را انجام دهند.
علامت درصد، یک حفره یا سوراخ شده است، اما در حال حاضر من نیاز به
انتقال به چاپ یک آرگومان دوم.
به یاد بیاورید که استدلال به توابع از هم جدا
کاما از هم، به طوری که با کاما بعدی من بعد از این نامه قرار داده است.
و در این زمینه در حال حاضر، S متغیر است، و printf،
پس از دریافت این دو ورودی -
رشته در سمت چپ و نام متغیر در سمت راست -
دومی به سابق برای ما، پلاگین و
فقط از چاپ یک رشته خوب و زیبا شامل
هر چه در آن است که ما تایپ شوید.
>> بنابراین سعی کنید این اجازه.
رفتن به جلو و زوم، پشت
به پنجره ترمینال من.
بزرگنمایی در پایین در اینجا.
تکرار را خوش آمدید.
صدای جرنگ جرنگ به نظر می رسد به عمل.
من قصد دارم به تایپ / خوش آمدید، وارد کنید.
هیچ چیز به نظر می رسد اتفاق می افتد، اما آن را در این سریع
که من می تواند چیزی شبیه به مقابله و تایپ کنید، را وارد کنید، و در حال حاضر ما
خوش آمدید، مقابله و
و من می توانم آن را دوباره با راب انجام دهید، و غیره.
بنابراین امیدوارم در حال حاضر این برنامه است رفتار من قصد دارم.
>> در حال حاضر، همه آن کاربر پسند.
من هیچ ایده آنچه که از من انتظار می رود.
بنابراین ما قطعا می تواند این کار را تا یک کمی تمیز می کند.
اجازه بدهید به عقب برویم تا به اینجا، و به جای آن فقط غواصی در و
درخواست از کاربر برای یک رشته، اجازه دهید من به صراحت بگویم
کاربر چیزی است که من در انتظار.
بنابراین printf ("رشته را وارد کنید:
)؛
بنابراین هیچ متغیرهای اینجا.
علامت درصد است.
فقط عبارت ساده انگلیسی.
اجازه بدهید من در حال حاضر به پایین این صفحه بروید و برنامه عمل.
اما هیچ چیز به نظر می رسد تغییر کرده است.
چرا؟
من باید آن را کامپایل مجدد.
بنابراین اشتباه آسان می کند.
اما شما نه تنها صرفه جویی در فایل
کامپایل مجدد برنامه.
و بنابراین اگر من دوباره اجرا سلام، در حال حاضر صدای جرنگ جرنگ می کند.
در حال حاضر من می توانم فرار کنی (دور بشی) / سلام. و حالا نگاه کنید به "یک رشته را وارد کنید:".
باشه.
در حال حاضر آن را کمی کاربر پسند تر است.
مقابله، را وارد کنید، سلام، مقابله.
>> خوب، اجازه دهید سعی کنید این دوباره و شروع به فکر کردن
در مورد موارد گوشه ای.
پس فقط در ابتدا می خواهم، شما در حال تشویق و یا در حال
تشویق به نوع تنظیمات در مورد چه چیزی ممکن است فکر می کنم
اشتباه است اگر شما همه چیز را که کاربر ممکن است انجام دهد را پیش بینی نیست.
اشکالات، بنابراین، ممکن است امدن.
بنابراین یک رشته را وارد کنید -
مورد گوشه ای اینجا چه خبر است؟
یک سناریوی که من، برنامه نویس، نه ممکن است داشته
پیش بینی؟
آره.
باشه.
پس چه می شود اگر من در یک شماره شبیه به این تایپ؟
بسیار خوب.
بنابراین هنوز هم کار می کند.
Gramatically می سازد هیچ حس.
اما حداقل این برنامه کار می کند.
>> مورد دیگری گوشه چه خبر؟
چیزی من انتظار نیست.
آره؟
باشه.
بنابراین ما می تواند چیزی شبیه به شماره واقعا، واقعا بزرگ را انجام دهد.
بنابراین، این کار را در اینجا بگذارید.
اجازه دهید من زوم برای یک ثانیه، به من اجازه برجسته.
نمی توانید کپی کنید و آن را در اینجا.
بسیار خوب.
بنابراین من نمی توانم کپی کنید و در این پنجره ترمینال کنیم،
فقط آن را تقلید کند.
اجازه بدهید من زوم کردن، رفتن به بپیچید.
من قصد دارم برای انجام این کار برای مدت زمان طولانی، به دلیل آن نیست
در واقع در این برنامه را بشکند.
اما می تواند.
را وارد کنید.
اما این کار را نکرد.
بسیار خوب.
اما این یک مورد گوشه ای واقعی است.
و تنها به این دلیل که رفتار درستی، پس به
صحبت می کنند، به دلیل عملکرد GetString CS50 است که در واقع
طراحی شده در زیر هود، همانطور که ما در چند هفته خواهید را ببینید.
به طور خودکار RAM بیشتر و بیشتر، بیشتر و بیشتر اختصاص
حافظه از سیستم عامل، زمانی که آن را متوجه، وای،
شما واقعا در چیزی بسیار طولانی تایپ شده است.
در حال حاضر، این بیت از یک دروغ سفید است.
اگر ما در واقع برای مدتی متوقف شد و من در تایپ
چیزی شبیه به 5 میلیارد حرف در صفحه کلید
در اینجا، یا واقعا ضربه کپی خمیر کمی، کاملا احتمالا
می تواند برنامه ای را به تصادف شود.
فقط یک کمی سخت تر برای شبیه سازی است که با محدود
مقدار از زمان.
>> مورد دیگری گوشه ای ما می توانید سعی کنید چه خبر؟
آره؟
آره.
پس چرا ما پاسخ هیچ چیز نیست؟
بنابراین، ما در واقع باید به برخی از عمل، چرا که در غیر این صورت
این برنامه به نشستن وجود دارد چشمک می زند در تمام طول روز است.
اما اگر من فقط ضربه را وارد کنید -
خوب، در حال حاضر، هنوز هم به نظر می رسد اشتباه است.
آیا سقوط نیست، اما شاید در حال حاضر وجود دارد فرصت را به
شروع به اجرای یک برنامه دقیق تر
که در واقع چک می کند.
و اگر رشته، جمله، کلمه ای که من
تایپ در طول 0، خب، شاید من باید در داد
کاربر، و یا به او بگویید و یا خود را برای ورود به یک رشته دیگر، به طوری که
ما در واقع آنچه به نظر می رسد مانند رفتار درست و نه
فقط نظارت کامل بر روی بخشی از من است.
>> سوال در پشت؟
شماره دهدهی.
بنابراین ما می توانیم آن، سعی کنید بیش از حد.
1،10000005 است.
انگار که برای رفتن به کار در واقع درست است.
که در واقع انتظار می رود.
اگرچه ما ممکن است تایپ که وجود دارد، یا یک
بزرگتر شماره قبل از آن، متوجه باشید که هنگامی که ما در حال تایپ کردن کاربر
ورودی و ما با استفاده از تابع GetString، نمی
مهم نیست اگر آنچه من تایپ کردن به نظر می رسد مثل یک عدد می باشد.
به یاد بیاورید که با توجه به ASCII، همه چیز خود را در
صفحه کلید دارای یک مقدار عددی است که می توان به نقشه برداری
شخصیت، کاراکتر است.
بنابراین در این مورد، حتی اگر من ممکن است یک عدد، نوع
کامپیوتر در حال رفتن به آن فکر می کنم، پس به صحبت می کنند، به عنوان یک رشته -
چیزی است که به نظر می رسد مثل یک عدد است، اما
در واقع نه یک عدد.
اما در واقع اش Segue کامل، چرا که در حال حاضر ما می توانیم
در واقع گذار به برنامه های نوشتن که
استفاده از انواع داده های دیگر.
>> پس علاوه بر این با استفاده از کاراکتر، یا نه، علاوه بر این با استفاده از رشته ها،
درک است که ما و همچنین در انواع دیگر داده ها در C
زبان های دیگر.
کاراکتر، به عنوان نام نشان می دهد، فقط یک شخصیت واحد است.
شناور مقدار ممیز شناور است، و این فقط فانتزی
راه گفت: تعداد واقعی - چیزی است که اعشاری
نقطه در آن با برخی از اعداد را به سمت چپ و / یا حق.
یک int یک عدد صحیح است که فقط یک عدد مثل 123 است.
و در حال حاضر بیشتر جالب توجه است چیزهایی مانند دو.
چیزی که ما می گوییم دو زمان گذشته بود؟
این 64 است، درست است.
بنابراین در حالی که به طور معمول شناور 32 بیتی -
پس از آن این مدت در حافظه، آن را با استفاده از صفر و 32 نفر را به
نشان دهنده ارزش - دو برابر شده است به معنای واقعی کلمه دو برابر، که
این بدان معنی است که شما هم می تواند اعداد بزرگتر، و یا
شما می توانید شماره های دقیق تر نشان دهند.
بنابراین شما می توانید اعداد بعد از نقطه اعشار داشته باشد، اما
به عنوان همکار در این ویدئو گفت، حتی ساده چیزی
مفهومی مثل 1/3 را می توان به دقت توسط یک نماینده
کامپیوتر، چرا که در نهایت شما اجرا از بیت، و
بنابراین شما فقط می توانید .33333333 در بسیاری از مواقع، در
نقطه ای که شما فقط باید بگویم من از نمایندگی
فضا، من باید فقط به آن روز و آن را نشان دهنده
تا حدودی مبهم دوست دارم.
و طولانی مدت -
احمقانه نام، اما این دلیل است که یک نوع داده شناخته شده به عنوان یک وجود دارد
طولانی در C است که به اتفاقی است که اغلب 32 بیت، درست مثل
بین المللی 32 بیت است، اما در طولانی مدت است
به طور کلی 64 بیت.
پس از آن فقط معنی است که شما می توانید بزرگتر نمایندگی
تعداد از این.
>> بسیار خوب.
بنابراین اگر ما در واقع می خواهم برای شروع به نمایندگی از همه چیز، ما
ممکن است بیشتر از انواع پیچیده، نیاز و
به همین دلیل است که ما باید رشته.
بنابراین در کتابخانه CS50، آن فایل به نام cs50.h، ما
در واقع اعلام یک نوع داده ها، پس به صحبت می کنند، به نام رشته،
اما رشته می کند در واقع وجود ندارد.
این است که، باز هم، یکی از این لایه ها ما در حال رفتن به پوست
در یک یا دو هفته و پرتاب آن دور، و در واقع
نگاه زیر کاپوت در چه رشته ای واقع شده است، و
چگونه آن را نشان داده شده است.
ما همچنین در مقادیر بولی نگاه کنید.
>> پس چه بود بولی در چهار چوب، از ابتدا؟
این درست است یا غلط است.
پس از آن تنها یک ارزش است که درست یا غلط، در یا خاموش، 1 و یا
0، با این حال شما می خواهید برای مشاهده جهان است.
بنابراین در C، به لطف کتابخانه CS50، که به نوبه خود
شامل یک کتابخانه دیگر در قسمت پایین هود،
دسترسی به یک نوع داده که به نام بولی، که
به معنای واقعی کلمه اجازه می دهد تا ما را به او واگذار ارزش درست یا نادرست به
چیز در یک برنامه.
>> پس جلو بروید اینجا و نوشتن یک برنامه کوچک است که اجازه
آیا چیزی که شامل اعداد به جای.
پس به من اجازه برگشت به بخش لوازم خانگی CS50، به من اجازه رفتن به جلو و
ایجاد یک فایل جدید به نام -
اجازه دهید فقط می گویند چیزی ساده، مانند math.c.
بسیار خوب.
و اکنون به بالای برنامه من، من هستم
رفتن به معمول -
# شامل ، به طوری که من می توانید استفاده کنید
printf، اعضای هیات تحریریه اصلی (خالی) -
خواهیم آمد، در نهایت، چه بین المللی به معنی
در اینجا، چه خالی به این معنی است، اما در حال حاضر، فقط می دانم که
شما باید برای شروع برنامه های شبیه به این.
در حال حاضر من قصد دارم به جلو بروید و می گویند چیزی که کمی
مختلف - printf ("یک عدد به من بده:"
)؛
سپس من قصد دارم به انجام نوع int N = GetInt، چرا که آن
معلوم GetInt تابع دیگری در کتابخانه CS50
علاوه بر این GetString.
و در حال حاضر من قصد دارم برای انجام کاری احمقانه است، مانند "با تشکر
برای٪ D "برای عدد صحیح دهدهی است، و پس از آن با کاما از هم N و
و سپس 0 بازگشت.
تا دوباره، بازگشت 0 تا به چیزی برای انجام با شماره من
درخواست کاربر.
فقط در پایان دادن به این همه، احتمالا، به خوبی دلالت دارد.
>> پس من پایین رفتن به پنجره ترمینال من در اینجا اجازه دهید.
اجازه بدهید من ریاضی را تایپ کنید را وارد کنید.
و چیزی اشتباه است.
را ریاضی کار نمی کند.
در اینجا برای اولین بار از پیام های خطا.
چرا؟
کمی مرموز، اما -
آره.
بنابراین cs50.h.
بنابراین دوباره، به ویژه در اوایل، شما اول خود را ارسال
برنامه برای pset 1 در بخش، در ساعات اداری و
رک و پوست کنده، آن را قریب به اتفاق گاهی اوقات این چیزها
در واقع گفت.
اما شما متوجه آنها بسیار سریع شروع به سقوط
به سطل به موجب آن یکی از این بدان معنی است که شما در سمت چپ کردن
# در بالای صفحه از فایل را شامل می شود.
و صدای جرنگ جرنگ، کامپایلر، به شما اطلاع رسانی از این
گفت، بلکه fancifully، اعلام ضمنی
GetInt تابع نامعتبر است.
>> بسیار خوب.
پس چه معنا است؟
این فقط بدین معناست که شما به طور ضمنی اعلام GetInt در
به این معنی که شما به صراحت آن را اعلام نکرده است.
به طور واضح نوع int اعلام، شما باید برای تدریس
صدای جرنگ جرنگ که در آن وجود دارد.
و راه حل بسیار ساده برای آن است که آن را تدریس توسط
از جمله این فایل های دیگر، cs50.h، در
بالا فایل های خود را.
از آنجا که به معنای واقعی کلمه، # شامل آن است که می گوید صدای جرنگ جرنگ
بسیار زیادی برای پیدا کردن فایل به نام cs50.h، کپی،
رب آن را به طور خودکار به بالای برنامه های من برای من،
و پس از آن کد منبع را صفر و آنهایی که تبدیل کنید.
اما بدیهی است که بسیار خسته کننده خواهد بود اگر ما انسان ها
برای رفتن به کپی کردن و چسباندن این فایل های بزرگ در همه زمان ها،
# شامل تنها نشانی که به طور خودکار و بدون
muddying کد من با کتابخانه شخص دیگری است.
و یک کتابخانه فقط یک فایل دیگر که شامل توابع و
چیزهای دیگر که شخص دیگری نوشته شده است، که ما
اعمال نفوذ به خاطر خود ما است.
>> بسیار خوب.
بیایید دوباره سعی کنید.
اطمینان ریاضی.
را وارد کنید.
خوب است.
به طوری که به نظر می رسد به کار کرده اند.
بنابراین اجازه دهید من در حال حاضر اجرا ریاضی / ریاضی.
را وارد کنید به من می دهد تعداد، 123.
با تشکر از 123.
در حال حاضر سعی کنید یک مورد دیگر گوشه ای بگذارید.
رشته بسیار سخاوتمندانه است، چرا که
رشته می تواند هر چیزی باشد.
می تواند شبیه اعداد، شبیه
شخصیت ها، مانند کلمات نگاه کنید.
اما از نوع int نوع int است.
بنابراین در حال حاضر اگر من کاربر دشوار است، و آن را گفت: "به من بده
یک عدد باشد، "چه می شود اگر من سعی می کنم برای انجام این کار چیزی شبیه به 0.1؟
خوب، که یک عدد است، و آن را مطابق با
دستور زبان من در اینجا استفاده می شود، اما در زیر کاپوت، من از
البته با استفاده از تابع GetInt.
>> پس اجازه دهید ببینیم که چه چیزی اتفاق می افتد.
را وارد کنید، دوباره سعی کنید.
بسیار خوب.
اجازه بدهید من دشوار است و فقط ضربه را وارد کنید دوباره.
را وارد کنید، را وارد کنید.
بنابراین در حال حاضر به نظر می رسد که GetInt است کمی بیشتر است
قوی تر از GetString.
ما کارکنان، به گونه ای که اگر ما متوجه به اجرا در
به شما داده اند ما بین المللی - و بین المللی یک عدد اعشاری
حاوی صفر، آنهایی که، twos، threes، چهار دست و پا، سپاس، sixes،
هفت، هشت، و یا nines.
و آن است.
بدون اعشار، هیچ شخصیت، هیچ نقطه گذاری.
به نظر می رسد که در حال حاضر به همکاری است.
پس من سعی چهار، پنج، شش، و است که به من می شود از طریق اجازه دهید.
پس در واقع، به مقعد می شود، من احتمالا باید "می گویند به من بده
یک عدد صحیح "به منظور انتقال به کاربر
دقیقا همان چیزی است که من قصد دارم.
>> در حال حاضر فکر می کنم در مورد زیر هود بگذارید.
ما قصد داریم به در چگونه cs50.h امروز اجرا شده است نگاه کنید،
این کتابخانه موجود است.
اما اگر آن را نگه می دارد گفت: سعی مجدد، دوباره، دوباره، برنامه نویسی
ساخت: من احتمالا در زیر هود به با استفاده از
اجرای این؟
بنابراین فقط یک حلقه، درست است؟
یکی از ساده ترین ایده است که ما در ابتدا دیدم.
برای همیشه لطفا برای، ساخت تکرار ساخت.
احتمالا، در این برنامه، در زیر هود، حتی
هر چند که در C نوشته شده است و نه خراش، آن را انجام می دهند
چیزی به نام معادل برای همیشه لطفا برای در صورتی که کاربر نمی
تایپ شده در یک عدد صحیح، می گویند سعی مجدد، دوباره، دوباره، دوباره، به طوری که
سپس در نهایت وقتی که ما انجام می دهیم دریافت یک عدد صحیح، و سپس شما
شکستن که حلقه.
>> بنابراین توابع دیگر چه می توانیم استفاده در کتابخانه CS50؟
خب، نوع از آنهایی که واضح، حداقل بر اساس
انواع داده ها است که ما در حال حاضر می دانیم وجود دارد.
ما اجرا GetString، GetInt، اما در سراسر
هفته اول از این واژه، شما همچنین می توانید GetFloat و استفاده از
و GetLongLong GetDouble به منظور دقیقا
انواع داده است که شما می خواهید.
از آنجا که جزئیات کلیدی در اینجا این است که بر خلاف برخی از زبانها،
مثل پایتون و روبی، جایی که شما لزوما باید به
اعلام نوع داده یک متغیر -
شما لازم نیست که کامپیوتر برای گفتن چه نوع از مسائل
شما در حال رفتن به متغیر قرار داده است -
در C، شما باید همیشه آنقدر دقیق است.
بنابراین اگر شما می خواهید یک متغیر به نام N، یک تکه از ذخیره سازی
که در این مورد اتفاق می افتد به 32 بیت کنوانسیون شما
کامپیوتر به گفتن است که این بیت ها
رفتن به ذخیره یک شماره -
نه یک شخصیت، یک رشته نیست، و نه یک شناور است.
و این موضوع را ما به طور موثر
فرار به هفته گذشته است.
اگر ما با استفاده از اعداد صفر و آنهایی که نه تنها برای نشان دادن
تعداد بلکه به عنوان کارشناس و CS، چگونه در جهان است
کامپیوتر رفتن می دانم که این الگوی بیت در واقع
نشان دهنده تعداد 65، به عنوان مخالف به نمایندگی از
نامه A، که تصادفا، با توجه به
ASCII، فراخوان، معادل به 65 بود؟
>> بنابراین این نوع داده ها را فراهم زمینه را به کامپیوتر، به طوری
که می داند اگر این بیت را باید به عنوان یک تفسیر
INT و یا به عنوان یک رشته است.
هر گونه سؤال، پس از آن، در این؟
آره؟
DAVID J. مالان: سوال خوب است.
اگر ما را از stdio.h، فایل جویی در هزینه -
به من اجازه پایین رفتن به پنجره ترمینال و اجرا ریاضی، زوم
در و وارد -
در حال حاضر من یک خطا های مختلف، چون من به طور ضمنی
اعلام آنچه که عمل در حال حاضر؟
Printf.
بنابراین در حال حاضر من یک مشکل جدید، که راه حل این است
اساسا همان.
من نیاز به قرار دادن که در بازگشت.
مخاطبان: [نامفهوم]
DAVID J. مالان: آه.
بنابراین اگر من را از -
خوب، آره.
بنابراین اگر شمول استاندارد I / O کتابخانه را حذف کنم
در اینجا، و پس از آن شما می گویید اگر من از printf خلاص شدن از شر، دریافت
خلاص شدن از شر printf؟
بله.
این باید کار کند، چون من دیگر با استفاده از هر - اوه.
آیا من فقط دروغ؟
آه، درست است.
این کار نخواهد کرد به دلیل یک خطای جدید ما فقط معرفی است.
و این یکی کمی بیشتر واضح است.
>> چه مشکل؟
N متغیر استفاده نشده است.
بنابراین این خطا در نتیجه ما با داشتن پیکربندی است
لوازم خانگی به خصوص به کوتهنظرانه، واقعا در داد
شما برای هر اشتباه ممکن است، حتی اگر نوع آن از
یک اشتباه غیر کشنده مثل این - آن است که واقعا بزرگ
برخورد که من اختصاص داده شده بین المللی، قرار دادن یک عدد در آن است، و پس از آن
هیچ چیز با آن انجام داد؟
بنابراین عملکرد، وجود ندارد.
که قصد ندارم به شکستن این برنامه است.
این تنها نوع احمقانه، درست است؟
است هیچ ارزش داشتن که تعداد پرسیده شده است، ذخیره می شود وجود دارد
آن را در یک متغیر، اگر شما هرگز به انجام هر کاری
با آن، اعم از آن را چاپ کنید و یا آن را ذخیره کنید.
بنابراین در این مورد، صدای جرنگ جرنگ است اذعان به همان اندازه، و
گفت: N متغیر استفاده نشده است.
>> بنابراین ما می توانیم از این اگر ما واقعا می خواهید را حل کنند.
اما باز هم، این برنامه نویسی خوب نیست در حال حاضر.
بنابراین من می توانم این کار را انجام دهند فقط -
رفتن به پایین، به من اجازه دهید صفحه نمایش پاک کردن، ریاضی را.
که کار می کند.
در حال حاضر من می توانم برنامه ریاضی من، اجرا طول می کشد ورودی -
خوب، بد بود.
ورودی، و این است همه آن کند، در این مورد است.
>> پس در واقع، اجازه دهید سعی کنید یک مورد گوشه ای دیگر است که ما
قبلا فکر نمی کنم.
در این مورد - در اینجا، اجازه بازگشت به یکی که
کمی بیشتر کاربر پسند.
اجازه بدهید من به عقب برگردید و اجرا ریاضی را دوباره.
اوه، چه کار کنم اشتباه است؟
باید به عقب.
باشه.
در حال حاضر ما در حال بازگشت به حالت اولیه، که در آن تمام
امیدوارم به خوبی.
و حالا اگر من را اجرا ریاضی، 123 به نظر می رسد به کار کند.
اما این واقعا اثبات موثر نیست، فقط می گویند
خوب، کار می کند.
789، کار می کند.
زمان ارسال کنید.
از آنجا که موارد گوشه ای دیگر در اینجا وجود دارد.
رشته واقعا ما مشکل زیادی را با تایپ کردن در
زیادی از کاراکتر ها است.
اما چه می شود اگر من در این نوع؟
هدف قرار دادن شماره 1 در کل خیلی زیادی در اینجا -
همه حق است، آن را کمی خسته کننده است، بنابراین من قصد دارم به
توقف در اینجا، و من قصد دارم به ضربه را وارد کنید.
>> چه جهنم اتفاق افتاده است؟
بنابراین این در واقع می تواند توضیح داده شود.
من هم آن را به عنوان دودویی؟
یک فکر خوب است، اما نه، این واقعیت است که آن را در زمان نیست
به عنوان دودویی، چرا که در واقع، فقط از یک نوع بود
تصادف باشد.
ما می توانیم این را دوباره انجام دهید.
بنابراین هیچ 2 در سیستم باینری است که وجود دارد
احتمالا به اندازه کافی به هر حال.
را وارد کنید.
به طوری که مشکل نیست.
چه چیز دیگری؟
دقیقا.
>> بنابراین به آنچه بین المللی واقع شده است فکر می کنم.
این 32 بیت است که در مجموع تفسیر می شوند
به عنوان یک عدد.
اگر شما 32 بیت، این بدان معناست که هر یک از بیت ها می تواند
0 یا 1، 0 یا 1 (یک)
بنابراین این بدان معناست که دو احتمالات را برای این بیت وجود دارد،
دو امکان برای این کار، دو احتمالات را برای این
بیت - به طوری که 2 بار 2 بار -
به طوری که 2 تا 32 قدرت است که تعداد کل
جایگشت از صفر و آنهایی که در صورتی که شما دارای 32
متغیرهایی، صفر و یا آنهایی که در مقابل از شما.
بنابراین اگر من از 2 تا 32، ریاضی، این چیزی است که؟
پس از آن زیادی است.
این 4 میلیارد، دادن یا گرفتن.
و 4 میلیارد به نظر نمی رسد به آنچه که در اینجا چاپ شد.
در واقع، این به نظر می رسد نزدیک به 2 میلیارد دلار است.
اما این یک تصادف نیست.
این واقعیت که کامپیوتر به اشتباه تعداد زیادی من،
دنباله بزرگ من و آنهایی که پس از آن دنباله بزرگ من از twos،
در حدود 2 میلیارد، توضیح داده شده است که چگونه؟
کلاه در بین المللی وجود دارد.
قطعا یک مقدار حداکثر است که شما می توانید نمایندگی وجود دارد.
اما معمولا 4 میلیارد دلار، درست است؟
اگر 2 تا از 32 است حدود 4 میلیارد دلار، که به نظر می رسد مانند
که بزرگترین عدد است.
بنابراین باقی مانده، اما یک فکر خوب است.
منفی است.
بنابراین اگر شما به 4 میلیارد همه چیز امکان پذیر است که شما می توانید
نمایندگی با این جایگشت های مختلف از 32 0s و و
1S، به خوبی، آن را به همین دلیل است که ما انسان ها در صورت تمایل به می ایستد
نمایندگی نه فقط اعداد صحیح مثبت
اما منفی اعداد صحیح.
و در واقع، فرض که C می کند.
بنابراین با 32 بیت، شما می توانید نمایندگی تقریبا منفی 2
میلیارد تمام راه را تا مثبت 2 میلیارد است.
و بنابراین در این مورد، چیزی است که ما واقعا دیدن است فقط
حاشیه ظرفیت از عدد صحیح ما، و ما، به طوری
به صحبت می کنند، سرریز عدد صحیح است.
سعی کردیم به جای بیت های بیشتری را به آن نسبت به واقع می توانند به راحتی.
بنابراین نتیجه نهایی این است که ما اساسا تمام 1 بیت می باشد.
ما بدبختانه همه از بیت های ما در، ما تلاش برای نشان دادن
بزرگترین تعداد ممکن است، اما آن را به وضوح نزدیک نیست
به اندازه کافی بزرگ برای نشان دادن دو چیز به من فقط تایپ شوید.
آره؟
مخاطبان: [نامفهوم]
>> DAVID J. مالان: سوال خوب است.
چرا ما نه تنها نشانگر این است که منفی
فقط به عنوان یک شخصیت به سیستم وارد شوید؟
بنابراین ما کاملا می تواند و ما پس از آن می تواند صرفه جویی
بیتی اضافی است.
اما شما هنوز هم به این خط تیره را به نمایندگی، و
که می خواهم برای شما هزینه حداقل چیزی،
احتمالا یک کمی.
بله، ما می تواند 32 بیت های استفاده شده برای تعداد ما داشته باشد، اما در حال حاضر
ما نیاز به یک بیت دیگر برای فاصله ما استفاده می شود
علامت اختصاری، علامت منفی.
بنابراین در حال حاضر ما 33 ارزش کمی، که ما می توانیم انجام دهیم، اما این
تنها راه آن انجام می شود.
ما قضاوت سال تماس پیش ساخته شده، 32 بیت مرتب سازی بر اساس
واحد اندازه گیری در اینجا.
بنابراین ما در حال رفتن به استفاده از یکی از کسانی که بیت به طور موثر به
نمایندگی منفی، و 31 بیت برای نشان دادن شماره.
سوال دیگر؟
بسیار خوب.
این زیادی است.
چرا ما به جلو بروید و پنج دقیقه ای را استراحت ما در اینجا؟
>> بسیار خوب.
پس باز هم، به بیش از حد تاکید برنامه های کاربردی ریاضی
برنامه نویسی، اجازه بدهید فقط خاموش شهامت این مثال یکی از
قبل از اینکه ما را به سازه های دیگر حرکت می کند، فقط به این دلیل آن
چند سکندری در برخی از نشان دادن
اصول اولیه زمانی که آن را به برنامه های نوشتن می آید.
در این مورد، انجام عبارات محاسباتی است که برخی از
ارتباط به نحو جالب است.
>> بنابراین این فقط یک فرمول است که ما با آن می تواند تبدیل
دمای هوا از فارنهایت به سانتیگراد.
اگر شما به یاد ندارد، این تنها فرمول استفاده کرد.
بنابراین اگر ما در فارنهایت ارزش از 32 درجه است، که به برق وصل کردن
انجماد، که برای رفتن به 32 منهای 32 0 است، و در واقع،
0 بار در سانتیگراد است همچنین انجماد.
بنابراین سلامت عقل را سریع چک کنید - که این فرمول آشنا است.
اجازه بدهید من به به دستگاه، هر چند، و شروع به
نوشتن یک برنامه به نام، مثل، f2c؛ "فارنهایت به
سانتیگراد نقطه C ".
و در بالا در اینجا، من قصد دارم شروع کردن با # شامل
stdio.h، و من قصد دارم به اعضای هیات تحریریه اصلی (خالی)، و
دوباره، خواهیم دوباره در آینده به عنوان به چه نوع int به معنی
و چه خالی وجود دارد به معنای وجود دارد.
و حالا من به جلو بروید و پیاده سازی برنامه ای است که اجازه
اساسا این تبدیل را برای ما انجام می دهد.
>> تا printf، بیایید می گویند، دما در درجه فارنهایت.
و پس از آن اجازه دهید من بروم جلو و گرفتن مقدار از کاربر.
چه نوع ارزش را باید از کاربر دریافت کنید اگر من می خواهم
آنها را به من دما در درجه فارنهایت را به من بدهید؟
آره؟
چه را به شما پیشنهاد؟
آره.
بنابراین احساس شناور بسیار معقول است.
ما، دوباره، فقط چند گزینه است که
ما تا کنون دیده ایم.
ما باید چیزهایی مثل کاراکتر، دو، شناور، هوشمند، طولانی مدت،
بولی، رشته است.
پس از این، احساس شناور بسیار معقول است.
ما می تواند دو، راست، چرا که اگر ما واقعا می خواهید به
نشان دهنده درجه حرارت انسان -
98،60000 -
ما می تواند 64 بیت برای انجام این کار استفاده کنید، اما آن را احساس می کند مانند
overkill برای درجه حرارت.
بنابراین اجازه دهید فقط با شناور.
حالا من نیاز به یک متغیر است.
فقط به چیزهای کوچک و ساده نگه دارید، من قصد دارم به آن را F، اما من
می تواند فقط به عنوان به درستی آن را درجه حرارت،
اما در هر صورت خوب است.
بنابراین F = GetFloat شناور.
به محض این که من در حال حاضر تصمیم گرفته اند به استفاده از GetFloat، هر چند، من
نیاز به یک اصلاح را به.
آره.
بنابراین ما نیاز به # ، در غیر این صورت کامپایلر
رفتن به ما داد.
حالا که من آن را شناور، به من اجازه رفتن به جلو و انجام
تبدیل.
>> ابتدا، اجازه دهید من نیز به این عادت در اینجا
اظهار نظر کد.
بنابراین دوباره، یک «دیدگاه» است فقط یک نماد است به انسان که
از این برنامه در هر سه بخش نیست، بلکه آن یکی، به شما کمک می کند تا
درک آنچه که شما صبح روز بعد، و یا بعد از
ماه، از آن کمک می کند تا همکار آموزش خود را در درک آنچه شما انجام
و یا آنچه شما در نظر گرفته شده برای انجام این کار، پس از آن
به طور کلی بسیار خوب عمل.
هر چند خط از کد، نوشتن یک نظر به
خودتان یا همکار شما است.
بنابراین در اینجا، من قصد دارم برای گفتن: "از کاربر برای دمای بپرس."
کند که یک جمله کامل، فقط یک عبارت کوتاه می شود.
اما ایده پشت در اظهار نظری در C است که هر یک از شما
نظرات باید قدرت دادن به شما - و یا، می گویند، TF و یا یک همکار -
برنامه های خود را برای جمع آوری و دقیقا می دانند چه آن را ندارد، نه
بسیار خواندن کد، اما با خواندن نظرات، که
باید موجز و روشن است.
همه حق است، بنابراین در حال حاضر من به جلو بروید و می گویند، "تبدیل
فارنهایت به سانتیگراد است. "پس من در رفتن به جلو و انجام،
بیایید می گویند، شناور ج.
خواهیم به سانتیگراد به عنوان یک ارزش ممیز شناور.
>> و اجازه چاقو در این را به من.
فرمول است، دوباره، تا اینجا.
به عنوان 5/9 برابر F منهای 32.
بنابراین این کار را کنیم.
تا 5 تا 9 تقسیم شده است، منهای -
اوه، من آن را messed تا حال حاضر.
بار.
بنابراین 5/9 برابر F منهای 32.
بنابراین F منهای 32، نقطه و ویرگول بدین شکل است.
و در حال حاضر، در اینجا پایین، من قصد دارم به جلو بروید
و می گویند، نتیجه چاپ.
و این بخشی از برنامه آسان است. Printf.
چگونه می توانم در مورد چاپ این؟
خوب، من می توانم بگویم که تعداد سانتیگراد٪ F \ N "
فقط برای برخی از زیبایی شناسی.
و پس از آن چه مقدار می خواهم در اینجا به برق وصل کردن به عنوان printf
2 استدلال؟
باشه.
پس فقط ج.
بنابراین ما با این شروع خواهیم کرد و سپس بازگشت 0.
باز هم، آن را تا به چیزی برای انجام با ریاضی است.
این فقط به این معنی همه خوب است.
>> در حال حاضر، این درست است، این برنامه این است؟
بسیار خوب.
پس من ساخته شده است برخی از اشتباهات.
حتی اگر شما هیچ ایده چه چیزی برنامه نویسی، شما می توانید مرتب سازی بر اساس
از بازگشت پی بردن به مدرسه
اشتباهات در اینجا ممکن است.
چه یکی از اولین؟
مخاطبان: [نامفهوم]
DAVID J. مالان: آره.
بنابراین ما در حال از دست رفته پرانتز.
این عمدی بود که من پرانتز در سخنرانیها بود
اسلاید در اینجا، چون در واقع این تصور از نظم وجود دارد
عملیات، یا تقدم، که به موجب آن برخی از عملیات ها -
ضرب -
بالاتر الزام آور، بالاتر اولویت، از همه چیز
مانند افزودن یا تفریق.
بنابراین ما این را برای سال ها انجام می شود فقط به دقیقا مشخص
چه عملیات ریاضی باید انجام شود برای اولین بار.
بنابراین من احتمالا باید دقیقا تقلید کند.
در غیر این صورت، کامپیوتر احتمالا رفتن سعی کنید به انجام
چیزی شبیه به تقسیم 5 تا 9، پس از آن F، ضرب و سپس جمع و تفریق
32 از همه چیز.
است که در واقع، نه، آنچه که ما می خواهیم انجام دهیم.
بنابراین پرانتز بگذارید.
اجازه دهید اضافه کردن پرانتز من در اینجا، پرانتز در اینجا.
بیایید این کار را در اینجا.
در اینجا، من فقط متوجه یکی دیگر از اشتباه من در طول راه ساخته شده است.
آره؟
مخاطبان: [نامفهوم]
>> DAVID J. مالان: ه.
خوب است.
بنابراین، ما در واقع همان عدد صحیح
موضوع تقسیم از قبل است.
من درست است که، اجازه دهید ببینیم که چه چیزی نشانه است.
اما ما قصد داریم که باید برای اصلاح
اشتباه دیگر در اینجا.
آره؟
مخاطبان: [نامفهوم]
DAVID J. مالان: بله.
بنابراین، اشتباه احمقانه من ساخته شده، اما فوق العاده مهم است.
در کامپیوتر است که قصد ندارم به نوبه خود فقط یک چشم کور و اجازه دهید
من استفاده از F پایتخت، زمانی که من در واقع اعلام متغیر
به عنوان یک اف حروف کوچک را در اینجا، در خط 8.
بنابراین من نیاز به اصلاح در خط 11 حروف بزرگ من، که در آن
لحظه ای پیش F پایتخت اشتباه بود.
در مورد اینجا چه؟
باید این حروف کوچک و همچنین؟
که باید باشد، اما این یک تصادف است.
که F٪ چیزی برای انجام با متغیر است.
بنابراین فقط به فوق العاده روشن در اینجا، به من اجازه رفتن به جلو و
تغییر نام، به طور خلاصه، "درجه حرارت است." اجازه بدهید تغییر نام
این دما است. " اجازه بدهید من این تغییر نام نیست.
از آنجا که، دوباره، F٪ در سطح جهان به این معنی، "شناور مقدار نقطه است."
تا به چیزی برای انجام با متغیر من.
اما "دما" را در همه جا است، فقط کمی دارای اطناب،
بنابراین من قصد دارم برای رفتن به حروف کوچک "F" من ها.
>> در حال حاضر، اجازه دهید من به جلو بروید پایین به پنجره من در اینجا.
را f2c -
بود که، باز هم، به نام دلخواه من
این فایل را به.
به نظر می رسد وارد شده است.
اجازه بدهید من اجرا f2c.
را وارد کنید.
دما در درجه فارنهایت - اجازه دهید یکی از آسان.
32.
خوب، درست باشد.
اما، اگر من در حال حاضر انجام این کار 212 برای جوش -
لعنت.
بسیار خوب.
بنابراین، به وضوح درست نیست، اگر TF شما تلاش می کند
حداقل دو مقدار است.
پس چه مشکل؟
خوب، شما در حال حاضر انگشت خود را بر روی این موضوع چیست.
اما به همین دلیل است که این مورد؟
به اینجا که من انجام ریاضی از 5 تقسیم شده در 9.
بنابراین مفهومی که کاملا درست است.
کاملا سازگار با فرمول.
اما کامپیوتر تنها دقیقا همان چیزی است که شما
به آنها بگویید که برای انجام این کار است.
و چیزی است که ما به طور موثر گفتن به کامپیوتر در اینجا
تقسیم 5 عدد صحیح توسط 9 عدد صحیح
و من نتیجه را می دهد.
مشکل این است که، هر چند، هنگامی که شما بخش با استفاده از داده
انواع خروجی از همان نوع داده به عنوان ورودی است.
و بنابراین اگر دو ورودی هر دو نوع داده int، خروجی
برای بین المللی است.
و تا 5 تا 9 تقسیم چیزی نقطه است.
اما آنچه نزدیکترین عدد صحیح به نقطه چیزی است؟
بنابراین، آن را در واقع 0.
بنابراین همانطور که ما در روز دوشنبه مورد بحث، همه چیز بعد از اعشار
نقطه کوتاه می شود.
این فقط می شود دور انداخته شده است.
بنابراین این یک اشتباه کامل است، چرا که من ممکن و همچنین فقط
ضرب همه چیز توسط 0 در اینجا.
>> در حال حاضر، من می توانم این کار را در یک زن و شوهر از راه حل.
من می توانم این کار را انجام دهند.
5.0 توسط 9.0 تقسیم شده است.
با مشخصات فنی، من حتی نمی نیاز به انجام این کار.
این کار کافی است فقط به یکی از اعداد شناور -
دو - با قرار دادن نقطه اعشار در اینجا.
زیرا آنچه اتفاق می افتد در حال حاضر این است که زمانی که شما تقسیم یک عدد صحیح
یک شناور، یا دو، کامپیوتر، برای تحقق بخشیدن به
آه، یکی از آن دقیق تر است.
اجازه دهید من در سمت دادن به شما با دقت بیشتر نسبت به گمراه
شما در نظر گرفته شده است.
پس از آن نتیجه تبدیل -
از آن خواهد شد در نتیجه به عنوان یک ارزش ممیز شناور و همچنین بازگشت.
به طوری که کار می کند.
این امر کار می کنند.
و یک مکانیزم دیگر وجود دارد که ما تو را ببینید
بیشتر جزئیات هفته آینده.
شما در واقع می تواند به عنوان برنامه نویس، به کامپیوتر
در واقع به یک نوع داده به عنوان درمان
هر چند که دیگر بودند.
>> بنابراین من در واقع می تواند این کار را انجام دهند.
در پرانتز، من می توانم چیزی شبیه به (شناور)، باز می گویند
پرانتز، پرانتز نزدیک است.
و این همان چیزی است که به نام "ریخته گری شده است." باز هم، بیشتر
در این هفته بعد.
اما این تنها راه برنامه ریزی از گفتن است
کامپیوتر، آره من می دانم 9 یک عدد صحیح است یا طولانی.
من می دانم که این یک مقدار ممیز شناور نیست.
اما آن را به عنوان از جمله به هر حال درمان است.
بنابراین به بازیگران یک نوع داده ها به معنای برای تبدیل
از یکی به دیگری است.
صادقانه بگویم، این است که فقط یک کمی زشت است، بنابراین من می خواهم پیشنهاد ما
بازگشت به پیشنهاد اصلی فقط تبدیل
این چیزها را به شناور مقادیر نقطه به صورت دستی است.
از آنجا که در حال حاضر آن را فقط فوق العاده روشن چه خبر است، و
آن همه که منحرف نیست.
>> بنابراین در حال حاضر به بازگشت به پنجره ترمینال من بگذارید.
را f2c.
اجازه بدهید من به جلو بروید و اجرای این.
و به عنوان یک به کنار، شما حوصله تایپ این دستورات
دوباره و دوباره، متوجه باشید که کامپیوتر، مانند لینوکس،
تمایل دارند به صورت کاملا هوشمند است.
و اگر من ضربه بالا، ما می تواند از طریق تمام تاریخ من
دستورات، بالا و پایین.
بنابراین در این مورد در اینجا من فقط می توانید برای اجرای f2c.
من فریاد زد، چون من فقط این کار را انجام دادیم ثانیه قبل است.
در حال حاضر تا به امروز است.
بنابراین در حال حاضر من می توانم فرار کنی (دور بشی) f2c دوباره.
بیایید سعی کنید 32 فارنهایت است.
در حال حاضر سعی کنید 212 فارنهایت بگذارید.
>> Phew.
به نظر می رسد به کار است.
در حال حاضر، این خوب است، اما کمی خودسرانه آن را احساس می کند که
من شش عدد بعد از اعشار است.
درست است؟
اگر شما فرد آب و هوا در تلویزیون، شما نوع doofus
اگر شما در حال خواندن دما را به
این درجه از دقت.
بنابراین ساده این اجازه.
پس در واقع اینجا، اجازه دهید به printf من.
و آره، من می خواهم به شناور.
اما من می خواهم به حال دقت مشخص است.
و من قصد دارم به موجز کمی است.
من قصد دارم برای گفتن، یک نقطه بعد از محل اعشار را به من بدهید.
بنابراین به جای می گویند F٪، من قصد دارم برای گفتن٪ .1 F.
و این تنها به معنای یک موقعیت به من بدهید
بعد از نقطه اعشار.
بسیار خوب.
بیایید سعی کنید این دوباره.
اجازه بدهید من دوباره آن را اجرا کنید بعد از کامپایل.
و در حال حاضر در 32 نوع، و من به عقب بر گردیم
موجز ارزش بیشتر.
و من می تواند در نوع، در حال حاضر، 212، و به عقب بر گردیم موجز بیشتر
ارزش نیز هست.
و چیزهای دیگر که شما می توانید با printf انجام دهید وجود دارد.
شما در واقع می تواند گسترده شماره باید مشخص کنید.
اگر شما می خواهید به بالشتک بر روی آن، بنابراین شما می توانید به راست چین و یا
چپ چین از اعداد و یا
سعی کنید به چیزهایی مرکز.
بنابراین متوجه حقه های کمی وجود دارد که شما می توانید انجام است.
اما آنها فقط به کدهای قالب جوش،
مانند ما داشته باشد.
>> بنابراین در شرایط استفاده از این موضوع از اولویت.
این جدول بسیار خسته کننده به رفتن را از طریق متد است.
اما متوجه باشید که نویسندگان C با
قوانین است که مشخص کنید که کدام اپراتورها بالاتر
اولویت، قدرت الزام آور تر از دیگران است.
بنابراین در حالی که در مدرسه، ما به طور کلی می دانستند آن بود که
ضرب و تقسیم، و سپس جمع و تفریق،
پس از آن برخی دیگر از مسائل است.
در دنیای برنامه نویسی، بسیار وجود دارد
لیست دیگر چیزها می شود.
و این چیزی است که ارزش حفظ در حال حاضر نیست.
شما قبل از اینکه طولانی به آن سازگار است.
اما درست مثل مدرسه، پرانتز به طور کلی حل
مسائل مربوط به اولویت، با ساخت فوق العاده شفاف به
کامپیوتر و انسان به طور یکسان در نظر گرفته شده است.
بنابراین این فقط یک برگه تقلب کمی وجود دارد.
اما بسیاری از کسانی که در جزئیات ما نمی خواهد شد برای برخی از زمان.
>> بسیار خوب.
در حال حاضر، اجازه ساخت و حرکت به دور از این کمی احمقانه است
ریاضی نمونه.
با وجود این، اصول مشابه استفاده کنید، اما شروع
ابراز خودمان کمی بیشتر شبیه خراش است.
بنابراین در ابتدا، ما تا به حال این عبارات بولی است.
و به زبان انگلیسی، یک عبارت بولی چیست؟
درست یا غلط.
این چیزی است که مورد ارزیابی قرار به درست یا غلط است.
0 یا 1.
روشن یا خاموش.
هر آنچه شما می خواهید به آن تماس بگیرید.
در حال حاضر به خراش، تکه های پازل، شبیه این است.
و این ترکیب، در پایین وجود دارد، از سه
تکه های پازل.
یکی همراه -
چیزی است که خالی و خالی.
و سپس دو عبارات بولی در داخل از آن.
بنابراین شما می تواند عبارات بولی لانه برای دریافت بیشتر
پیچیده عبارات بولی.
به عنوان مثال، اگر آن را سه شنبه، و آن را خوب است
آب و هوا، و سپس بیرون بروید.
یا خودسرانه، چیزی شبیه به آن.
بنابراین شما می توانید از عبارات بولی آمد تا با تاریخ
حقیقت مقدار بزرگتر، که پاسخ بر اساس
کوچکتر است.
>> در حال حاضر، C، خوشبختانه، این نقشه برداری
در واقع خیلی ساده است.
پرانتز کمک به همه چیز را روشن اینجا.
&& همان چیزی است که به معنی "و." بنابراین این که چگونه
ما قصد داریم برای تبدیل این بلوک ها از ابتدا به C.
و شرایط ما در ابتدا دیدم، در دست چپ
طرف وجود دارد، من می توانم آنها را به همین ترتیب در C. پشته اگر x کمتر است
نسبت به y، و سپس این کار را انجام دهند.
دیگری اگر x بزرگتر از Y است، و سپس این کار را انجام دهند.
دیگری منطقا آنها باید برابر باشد، به طوری که می گویند
که آنها با هم برابر هستند.
بنابراین ما در حال حاضر می توانید برای ساختن این چیزها شروع می شود.
>> بنابراین به عنوان مثال اجازه ندهید.
اجازه بدهید باز کردن یک فایل است که بر روی وب سایت دوره است که
من در پیشبرد نوشت.
است که به نام nonswitch.c.
و خواهیم دید که چرا در یک لحظه.
بنابراین در این فایل - nonswitch.c -
اولین بار است که یک دسته وجود ندارد
نظرات در بالای صفحه.
این فقط توضیح نام فایل، آنچه در آن
می کند، و غیره.
و ظاهرا نشان می دهد که با استفاده از عملگرهای منطق بولی و نشستند -
conjoining دو عبارت است.
>> پس ببینید که چگونه این برنامه کار می کند.
شامل دو فایل، cs50.h و stdio.h.
اگر من در پایین حرکت کنید، در حال حاضر، این برنامه، آن را کمی طولانی تر
از ما قبلا نوشته شده است، اما بسیار قابل خواندن است.
بنابراین من برای اولین بار به کاربر چاپ، در خط 18،
"من یک عدد صحیح بین 1 و 10 به من بدهید." پس
که سمت راست وجود دارد.
در حال حاضر من عدد صحیح است.
اما متوجه باشید که GetInt - خیلی ساده است.
این فقط رفتن به یک int است.
رفتن به اطمینان حاصل شود که آن را بین المللی است و نه یک
رشته یا شناور.
اما آن را نمی خواهید به انجام هر نوع از چک کردن مرز است.
این که برای فیلتر کردن اعداد بین
محدوده خاصی است.
بنابراین ما که خودمان را پیاده سازی کند.
پس فقط در ابتدا می خواهم، جایی که من می تواند یک رابطه را انجام دهد
دو عبارت، من می توانم که در C به شرح زیر انجام دهید.
اگر n بزرگتر یا مساوی به 1 و n کمتر از و
یا تا 3 برابر، من می خواهم تا بسیار خودسرانه فرمان
عدد به یک عدد کوچک.
فقط به خاطر یک بیانیه.
دیگری اگر بین 4 و 6، نسخه قابل چاپ "برداشت یک رسانه
شماره. "دیگری اگر n بین 7 و 10، چاپ" شما برداشت
شماره بزرگ است. "و دیگری نسخه قابل چاپ" شماره نامعتبر است انتخاب شما. "
از آنجا که منطقی است، که به شرح زیر است اگر ایم
خسته محدوده ما.
>> پس این است که نه کاملا درک که ما چگونه نوشتن بزرگتر یا
برابر در کلاس ریاضی.
درست است؟
شما معمولا آن را مانند این قرعه کشی، با خط زیر آن است.
اما هیچ کلید بر روی صفحه کلید من وجود دارد.
بنابراین نماد در C برای بیان بزرگتر از یا
برابر است با دو شخصیت و نماد کمتر از
یا مساوی به دو شخصیت است و همچنین است.
بسیار خوب.
بنابراین اگر اجرای این برنامه، شما احتمالا می توانید آن را حدس بزنید
رفتن به انجام.
اگر من به جلو و nonswitch را وارد کنید.
و پس از آن nonswitch اجرا شود.
من یک عدد بین 1 و 10.
من قصد دارم به آن 11 را.
من را برداشت تعداد نامعتبر است.
اجازه بدهید من شماره 3 را امتحان کنید.
تعداد کمی از من برداشت.
بنابراین نسبتا ساده وجود دارد.
>> چه می شود اگر من می خواهم به تغییر رفتار از این برنامه و
به جای انجام کاری کمی متفاوت است؟
اجازه بدهید من به جلو بروید و می گویند این.
اجازه بدهید من خلاص شدن از شر این همه.
و اجازه دهید به من می گویند اگر (n == 42).
و سپس من قصد دارم به جلو بروید و می گویند نسخه قابل چاپ "شما برداشت
جواب درست ". دیگری که ما در حال رفتن به جلو بروید و می گویند،
printf ("شما برداشت
اشتباه جواب ")؛ باشه.
فقط به خاطر.
>> در حال حاضر، چند نکته، ما در اینجا می توانید.
یکی از نماد است که شما فکر می کنم این است، من نه از نوع
مناسب ترین است.
وقتی که من می خواهم برای بررسی برابری، معلوم است که شما استفاده نمی کند
ورود به سیستم برابر است.
شما به جای استفاده از علامت تساوی برابر.
و به همین دلیل ممکن است که می شود، فقط به طور مستقیم؟
آره.
مخاطبان: [نامفهوم]
DAVID J. مالان: درسته.
علامت تساوی است که در حال حاضر برای تخصیص استفاده می شود.
کسی واقعا فکر می کنم این از طریق.
و به این ترتیب در حال حاضر، هنگامی که آن را به آزمایش برابری می آید، ما را به
صریح و روشن تر می شود، و می گویند برابر برابر است.
یک اشتباه بسیار رایج است که برای انجام این کار است.
و اگر در ساعات اداری و یا گاهی اوقات هفته آینده و یا در
دو هفته بعد به شما چیزی شبیه به این و پس از آن
مبارزه با آن را به مدت 10 20 دقیقه تلاش برای کشف کردن
چه اشکال لعنتی است، متوجه است که شما یکی از این
افرادی ساخته شده است که این اشتباه است.
بنابراین، فوق العاده آسان است.
اما هدف در حال حاضر است که برای دفع این اشتباه است.
این می تواند ارزیابی، زیرا این چیزی است که واقعا گفت؟
اگر N می شود 42.
بنابراین مردم فعل استفاده کنید، شفاهی، به بیان
مفهوم انتساب است "می شود." بنابراین اگر می شود 42.
به طوری که به معنای اختصاص 42 تا N است.
در حال حاضر من بیان بولی در پرانتز،
داخل این وضعیت، ارزش آن 42 است.
درست است؟
زیرا اگر آن را ارزیابی می کنید از داخل به خارج، در کل
پاسخ، در حال حاضر، 42 است.
>> پس اگر من از شما این سوال، گفت: "اگر (42)،" چه شده است
که واقعا گفت؟
خب، عبارات بولی تنها می تواند درست یا غلط باشد.
0 یا 1.
روشن یا خاموش.
بنابراین ما به نظر می رسد به صورت گوشه ای در اینجا، که به موجب آن همه
ناگهانی، من گفت: "اگر (42)". این یک مقدار بولی نیست.
بنابراین، آنچه که کامپیوترها، هر چند، آن را اساسا برابر است
هر چیزی که 0 تفسیر درست باشد.
1.
در.
همه آنها معادل عملکرد.
فقط مقدار 0 یا کلمه کلیدی نادرست، به عنوان خواهیم
در نهایت ببینید، است که در واقع غلط است.
بنابراین "اگر (42)" در واقع درست باشد، به دلیل آن است که غیر صفر است.
پس به عبارت دقیق تر، یک مقدار بولی است که واقعا نه چندان
بسیار درست یا غلط، اما برای این
مورد، اگر 0 است و یا غیر صفر است.
پس غلط یا نادرست است.
و این به ما اجازه می دهد تا شامل همه بیشتر
احتمالات در بیان پرانتز.
بنابراین ما نیاز به، تا کنون با دقت، می گویند این -
اگر (n == 42).
نگران نباشید، زیرا ما نیاز به مشخص کردن یک آزمون برابری،
نه انتساب یک مقدار.
>> چه چیز دیگری شایان ذکر است در اینجا؟
این آکولاد در واقع لازم نیست.
من آنها را به انجام این کار فقط به NIT ضربه زننده در اینجا.
اما هنگامی که شما به یک بیماری است که فقط دارای یک خط
کد، به عنوان یک راحتی، برنامه نویسان نیازی به استفاده از
پرانتز فرفری.
کافی است فقط به دندانه دار کردن، به دلایل زیبایی شناختی، و
سپس خط خود را از کد بنویسید.
فقط زمانی که شما می خواهید برای نوشتن دو خط کد -
به عنوان مثال، دیگری printf ("خداحافظ!"). اگر شما می خواهید برای انجام
که این خراب است.
شما می توانید از همه شما می خواهم تورفتگی، اما واقعیت این است که شما را
دو خط کد بدون استفاده از آکولاد تایپ
بدان معنی است که این برنامه به درستی اجرا نمی خواهد یا ممکن است
حتی نمی کامپایل صحیح می باشد.
بنابراین در حال حاضر، صادقانه بگویم، من فکر می کنم بهترین عادت است
استفاده از آکولاد، و شما که آنها را
فوق العاده روشن چه خبر است.
>> همچنین، به عنوان کنار گذاشته - به خصوص اگر شما در میان کسانی هستید که با استفاده از
توصیه می شود کتاب و یا منابع آنلاین -
متوجه باشید که این مفهوم سبک وجود دارد در
برنامه نویسی.
و برخی از مردم ترجیح می دهند برای قرار دادن بریس فرفری
در اینجا در یک خط است.
برخی از مردم ترجیح می دهند برای انجام کارهای مضحک،
می خواهم آنها را در اینجا قرار دهید.
هیچ پاسخ اشتباه وجود دارد که آن را به می آید
سبک است، اما این اشتباه است.
اما برخی از افراد آن را انجام دهد.
[خنده]
DAVID J. مالان: بنابراین من به ذکر است در حال حاضر، صرفا به این دلیل به عنوان
شما بر روی همه چیز در کتاب و یا آنلاین به عنوان خوانده شده، شما در حال رفتن به
پیام های مختلف از استادان مختلف و
مختلف نویسندگان است.
و درست است که، درک عملکرد آنها
به طور کلی معادل است، اما سازگار باشد.
بنابراین در این مورد، ما را در فرفری استاندارد
پرانتز پوشش اینجا در سمت چپ است.
>> بسیار خوب.
پس جلو بروید و در حال حاضر اجرای این اجازه دهید و ببینید که چه اتفاقی می افتد
با این برنامه است.
را nonswitch.
سپس nonswitch اجرا شود.
من یک عدد صحیح بین 0 و - به طوری که مربوط نیست
دیگر، اما من فقط رفتن به خودسرانه می گویند 42.
و من جواب درست را برداشت.
خوب در حال حاضر، اجازه دهید در واقع را در یک مسیر متفاوت است.
به نظر می رسد برخی از نحو دیگری نیز وجود دارد ما
در برنامه می توانید استفاده کنید.
در اینجا یک قطعه جدید از ترکیب نحوی است که عملکرد مشابه،
اما فقط به معرفی یکی دیگر از راه بیان خودمان است.
پس این همان چیزی است که به نام "دستور switch است." و
دستور switch عمل به شرح زیر می باشد.
طول می کشد، در پرانتز، یک مقدار که شما می خواهید
"تعویض".
شما می خواهید به رفتار متفاوت بر اساس ارزش خود را.
پس این به این معنی سوئیچ در مقدار N است.
و به چه معنی است؟
خوب، اگر n 1 یا 2 یا 3، به جلو بروید و چاپ از "شما
برداشت یک شماره بزرگ "و سپس شکستن.
دلیلی برای استراحت است که راه C کار می کند این است که به عنوان
به محض این که آن را می یابد که منطبق است، از آن شروع می شود اجرای
همه از کد زیر آن.
بنابراین اگر من یک خط از کد، به عنوان من در اینجا در خط 27،
می شود اعدام شده اند.
اگر من در اینجا اضافه کردن یک خط، آن را می شود اعدام شده اند.
خط دیگر در اینجا، آن را می شود اعدام شده اند.
این برنامه فقط اجرای آنچه در زیر متوقف کند
عبارت مورد قابل اجرا زمانی که من به صراحت
می گویند "را بشکند." بنابراین اشتباه است.
راست، در این مورد، به عنوان یک نتیجه است.
مورد 4 یا 5 یا 6 به طور مشابه، در جریان است
برای چاپ کردن یک پیام است.
در این حالت، تعداد متوسط.
بشکن.
مورد 7، 8، 9، 10، آن را برای چاپ کردن: "شما برداشت بزرگ
تعداد "فرار.
و پس از آن به معنای واقعی کلمه وجود دارد واژه کلیدی به نام "پیش فرض"
که به طور موثر مانند "دیگری" ساخت.
بنابراین نحو جدید است، اما از نظر فکری،
هیچ چیز در تمام جدید است.
درست مثل خراش است.
دیگری اگر، اگر، اگر دیگری، مرتب کردن بلوک.
>> به طوری که تغییر نسخه از این برنامه است.
اما توجه کنید که ما آن را با اعداد اینجا بود.
اجازه بدهید باز کردن نسخه دوم، فقط برای نشان دادن
چیزی که کمی مشخص تر است.
بنابراین در اینجا ما باید نمرات به جای آن.
تبدیل کردن شما می توانید از سوئیچ ها نه تنها در اعداد صحیح استفاده کنید، اما در
کاراکتر باشد.
در تمام انواع داده، اما حداقل بر صفات.
بنابراین در اینجا، ما می تواند چیزی شبیه به اگر مقدار C که
کاربر، تایپ در خط 19، با استفاده از تابع GetChar
سرمایه یا کوچک، اجازه دهید آن را تفسیر به عنوان یک کلاس،
و می گویند که آنها را برداشت درجه عالی.
و پایین در کنار دستور switch، ما دیگر
موارد برای "B" و "C"، و غیره.
اما اجازه دهید در حال حاضر به دور از یک چیز دیگر است.
و دوباره، نوع پرواز را از طریق
برخی از این نمونه ها است.
اما این واقعا به طوری که ما می توانیم آنها را، درخواست -
یا در واقع، فقط آنها را در حال حاضر ترجمه -
به C.
>> پس جلو بروید و اجازه دهید این کار را انجام.
من قصد دارم برای باز کردن یک فایل جدید است.
و من قصد دارم به انجام .
و سپس من قصد دارم به اعضای هیات تحریریه اصلی (خالی).
اجازه دهید این فایل را نجات دهد من به عنوان یک loop.c.
فقط به عنوان مثال.
و من قصد دارم به جلو بروید و زیر را انجام دهید.
من می خواهم برای نوشتن یک برنامه بسیار خسته کننده است.
بنابراین 10.
اجازه دهید این کار را انجام.
9.
بسیار خوب.
به محض اینکه شما شروع به انجام این کار در برنامه نویسی، شما
احتمالا انجام کاری اشتباه است.
اما ما به هر حال شروع است.
متأسفم.
که در واقع غلط است.
7.
6.
5.
4.
هیچ چیز اتفاقی خواهد افتاد وقتی که ما را به 0.
3.
2.
1.
باشه.
0.
حذف.
>> بسیار خوب.
پس 0 بازگشت.
بنابراین این برنامه به وضوح به انجام آنچه که آن را بسیار
tediously می گوید که آن را به انجام است.
رفتن به نسخه قابل چاپ همه کسانی که
ارزش ها، از بالا به پایین است.
پس من را حلقه کنیم.
و پس از آن - اوه.
را حلقه.
من در پوشه اشتباه بود.
و در حال حاضر حلقه اجرا به من اجازه بده.
را وارد کنید.
هورا.
بسیار خوب است.
خوب، برنامه های بلند مدت است.
>> همه حق است، اما در حال حاضر این کار را بهتر کنیم.
فقط در ابتدا می خواهم، زمانی که شما شروع به استفاده از حلقه
ساخت، به جای کپی کردن و چسباندن همه
قطعات پازل، اجازه دهید این چیزی که معرفی کنم.
بنابراین در C، ساختارهای حلقه های مختلف وجود دارد،
که یکی از آنها به نظر می رسد مثل این.
A "برای" حلقه سه چیز، توسط دو سمی کالن از هم جدا می کند.
و پس از آن، در داخل بدنه حلقه، به طوری که به صحبت می کنند -
داخل مسائل آکولاد -
ما می توانیم چیزی را دوباره و دوباره انجام دهید.
بنابراین آنچه که من در اینجا بر روی صفحه نمایش، این است که
به معنای واقعی کلمه فقط یک نظر است.
/ / به معنی در اینجا به نظر می آید.
این کد نمی باشد.
این فقط به توضیحات انگلیسی، برای من، انسان است.
>> مقداردهی بنابراین، شرایط، و به روز رسانی.
خب، بیایید ببینید که چگونه این کار.
این اجازه می دهد تا به بازنویسی این برنامه به شرح زیر است.
برای -
بنابراین در اینجا می آید حلقه من -
INT من -
در اینجا یک متغیر به نام "من" می آید -
می شود مقدار دهی اولیه به 10 است.
بنابراین، مقدار دهی اولیه من برای این مشکل وجود دارد.
من می خواهم به انجام این حلقه تا زمانی به عنوان "من" بزرگتر یا
برابر با 0 است.
و در هر تکرار از این حلقه، من می خواهم
به من -.
بنابراین ما + + در روز دوشنبه را دیدم.
- مخالف است.
decrements ارزش 1.
داخل این حلقه، من می خواهم به واقع انجام کاری.
بنابراین من قصد دارم به چیزی می گویند مانند printf است.
من نمی خواهم برای گفتن 10 در حال حاضر، به دلیل این بدیهی است فقط
رفتن به به چاپ همان مقدار است.
چه من می خواهم به جای آن، احتمالا چاپ می شود؟
آره.
بنابراین گفت: "من." بنابراین D٪، من.
>> بنابراین من قصد دارم به سرقت یکی از کسانی که ایده ها از پیش از آن -
این جایگزینی برای کدهای فرمت -
و سپس در اینجا، در پایین، من 0، بازگشت تنها
برای اندازه گیری خوب است.
اما در حال حاضر، من موجز برنامه بیشتر است.
این فقط چند خط، و نه 10 یا 11 خط است.
اجازه دهید به من فوری من پایین این صفحه بروید.
حلقه بازسازی.
تکرار حلقه.
و به نظر می رسد همان است.
در حال حاضر، این برنامه جالب تر است.
اما در حال حاضر من می توانم چیزی شبیه به این را تایپ کنید.
من می توانم این را به 100 تغییر دهید.
من پس از آن می توانید برنامه را کامپایل مجدد.
و پس از آن من می توانید دوباره اجرای برنامه.
و در حال حاضر آن می رود بر روی کامپیوتر های امروزی فوق العاده سریع است.
اما من -
و در واقع، بافر عقبلغز من
حتی که دور بروید.
وجود دارد بروید.
بنابراین ما به همه 100.
اما آن را آسان را به اشتباه در اینجا.
رفتن به رفتار مورد انتظار اگر من
به طور تصادفی انجام دهید؟
پس از آن مانند بی نهایت احساس می کند.
بنابراین اگر کامپیوتر رفتار کنیم.
>> پس اجازه دهید من بروم جلو و حلقه.
و اجازه دهید که حلقه اجرا من.
پس اجازه دهید به دست می آید که در یک لحظه.
خواهیم که اجرا کنیم.
از آنجا که چه باید شمارش تا کمی؟
احتمالا حداقل 2 میلیارد دلار، اگر ما داشته باشد که تعداد بیت هایی است، و
ما با استفاده از ارزش های مثبت است.
پرش به اینجا.
علاوه بر این نوع از حلقه ها، ما باید چه نامیده می شوند در حالی که
حلقه. بنابراین، درست مثل به خراش، شما تا به حال برای همیشه لطفا برای
بلوک، و شما تا به حال بلوک تکرار.
به طور مشابه، در C، شما فقط از راه های دیگر
ابراز خودتان.
بنابراین شما باید این مفهوم در حالی که یک حلقه است که اجازه می دهد تا شما را به
خود را کمی متفاوت بیان کرد.
و سپس شما باید چیزی به نام یک حلقه DO-در حالی که،
که در عمل کمی متفاوت نیز هست.
و ما این را از هم جدا در طول زمان کسی را دست انداختن.
>> اما اجازه دهید نگاهی به این یکی از آخرین.
اگر ما را به -
هنوز هم در حال اجرا است.
این خیلی بی نهایت است.
بنابراین اجازه دهید من به مثبت، و نشان می دهد که ما چگونه می تواند در حقیقت
حکومت ورودی کاربر را کمی بیشتر به طور موثر.
این یک برنامه بسیار کوتاه است.
و در اینجا ما باید، در اصلی، از نوع int N اعلامیه.
پس من به یک متغیر به نام N. در حال حاضر، من به معنای واقعی کلمه می گویند
"کار را انجام دهیم." و بعد من باز فرفری
بریس بریس فرفری، نزدیک است.
و پس از آن متوجه است، بلافاصله پس از آن، آن را می گوید در حالی که N
کمتر از 1 می باشد.
پس توجه کنید که این خطوط -
19 تا 24 -
نوشتن جمعی یک حلقه DO-در حالی که.
و دوباره، نحو، یک ایده جدید نیست.
این فقط یکی دیگر از راه حلقه، به نحوی است.
پس چه این کار را انجام دهند؟
آیا به شرح زیر است در حالی که N کمتر از 1 می باشد.
بنابراین چه چیزی من می خواهم کاری انجام دهید؟
من تقاضا می کنم که شما از من یک عدد صحیح مثبت را.
سپس من در واقع سعی کنید یک عدد صحیح را از کاربر دریافت کنید.
اما در اینجا منظور از عملیات، به این دلیل که
در حالی که وضعیت پایین است در اینجا، من هستم و سپس رفتن به چک، N
کمتر از 1؟
بنابراین فرض کنید که کاربر -
پس از این که در این راه خواستار -
انواع در 0 ارزش.
این وضعیت در حال رفتن به درست یا غلط؟
خوب، این در واقع درست باشد.
به دلیل N 0 است، و 0 است که کمتر از 1 است.
پس چه می کند که این مفهوم را میرسانند؟
آیا دوباره آن را.
فقط یک بار که شرایط را ارزیابی برابر false هستند.
اگر من در 42 را تایپ کنید.
چاه، 42 کمتر از 1 نیست.
بنابراین این حلقه اجرا انجام می شود.
و بنابراین در آن نقطه، برنامه می گویند، با تشکر
42، در این مورد.
اکنون که شما را در این راه از ابراز خودتان -
ما نباید منتظر این را به پایان برساند.
رفتن به برداشتن برخی از زمان.
ادامه دفعه بعد، شاید.
>> اما در حال حاضر، شما باید توانایی امیدوارم به درک
کمی شوخ طبعی یکی از بازیکنان بالماسکه و کارناوال که غالبا دارای ماسک منقاردار است.
پوزش.
این است که در علوم کامپیوتر نماینده از طنز نیست
جهان است، اما آن را زیبا.
پایان [می خندد] بیایید در آن توجه داشته باشید.
و ما شما را در روز دوشنبه را ببینید.
[تشویق حضار]