[موسیقی بجانے] DAVID J. MALAN: ٹھیک ہے. یہ CS50 ہے، اور یہ دو ہفتے کے آغاز ہے. تو ہمیں ایک مسئلے کے ساتھ آج شروع کرتے ہیں. ایک مسئلے سے، کورس کی، ہے ایک پروگرام میں غلطی، اور آپ کو بہت ملے گا اس تصور کے ساتھ واقف آپ پروگرام نہیں ہے تو پہلے. pset0 اور اب پر pset1. لیکن کچھ غور سب سے پہلے میں ایک چھوٹا سا آسان. مجھے لگتا ہے کہ اس پروگرام پیشگی میں ایک ساتھ مل کر پھینک دیا اور میں نے اس کو پرنٹ کرنا چاہئے کہ دعوی printf کا استعمال کرتے ہوئے سکرین پر 10 ستارے، لیکن یہ بظاہر کسی طرح سے چھوٹی گاڑی ہے. اس کی تفصیلات دی کہ اس نے 10 ستاروں پرنٹ کرنا چاہئے، لیکن یہ بظاہر نہیں کرتا، کیا بگ تم دعوی کرتے ہے؟ جی ہاں؟ تو یہ ایک غلطی کی طرف سے ایک دور ہے، اور آپ کو اس سے کیا مطلب ہے؟ ٹھیک ہے. بہترین. تو ہم مخصوص ہے ایک میں صفر کی قیمت شروع، اور ہم، 10 کا ن قیمت مخصوص ہے لیکن ہم زیادہ یا برابر کم استعمال کیا جاتا ہے. اور یہ اس وجہ سے دو ہے حروف اور نہ صرف ایک علامت، ایک ریاضی کی کتاب میں کی طرح، آپ کے پاس نہیں ہے اظہار کا ایک طریقہ ایک کردار کے برابر. تو ہے کہ، کم سے کم کا مطلب ہے لیکن آپ کو صفر پر گنتی شروع، لیکن آپ کو تمام طرح شمار 10 کے ذریعے اور برابر، آپ کو کورس میں جانے کا ہو کل میں 11 چیزوں کو شمار. اور تو آپ کو 11 ستاروں پرنٹ کرنے کے لئے جا رہے ہیں. تو کیا اس کے لئے ایک حل ہو سکتا ہے؟ جی ہاں؟ تو کم سے کم ایڈجسٹ یا صرف سے کم کے برابر، اور شاید، میں نے دعوی کیا، ہے بھی ایک اور حل،. اور آپ کیا کر سکتے ہیں؟ جی ہاں؟ تو 1 کے لئے اس کے برابر سے شروع، اور سے کم یا برابر کم چھوڑ. اور واضح طور سے میں دعوی کریں گے کہ، ایک عام انسان کے لئے، شاید یہ زیادہ براہ راست ہے. 1 پر گنتی شروع اور 10 شمار. بنیادی طور پر آپ کا کیا مطلب ہے. لیکن حقیقت میں ہے پروگرامنگ، ہم نے دیکھا کے طور پر، کمپیوٹر سائنسدانوں اور پروگرامرز عام طور پر صفر پر گنتی شروع ہے. اور تو ہے کہ ایک بار ٹھیک ہے آپ کو اس کے لئے استعمال کیا ہو. آپ کی حالت میں عام طور پر کرے گا سے بھی کم کی طرح کچھ ہو. تو صرف ایک منطقی غلطی ہے کہ ہم اب کر سکتے ہیں ٹھیک اور بالآخر تو recompile یہ اور صرف 10 حاصل. ویسے کس طرح اس مسئلے کے بارے میں؟ یہاں، ایک بار پھر، میں نے کا دعوی ہے کہ 10 stars-- پرنٹنگ کا ایک مقصد لائن اس وقت کے مطابق ایک، لیکن یہ نہیں ہے. ہم تجویز سے پہلے کیا طے یہ کیا کرتا ہے، ہے میں مرتب کرنے کے لئے تھے تو ضعف پرنٹ اور یہ پروگرام آپ کو لگتا ہے کہ چلانے؟ جی ہاں؟ سٹار. پر تو تمام ستارے ایک ہی لائن میں نے سنا ہے، اور اس کے بعد نئی لائن کردار. تو اس کی کوشش کریں. تو چھوٹی گاڑی-1، داخل کرے، اور میں بجنا کمانڈ دیکھیں ہم نے آخری بار کے بارے میں بات ہے کہ. ./buggy 1، اور یقینا میں تمام 10 ستارے دیکھیں میں دعوی اگرچہ ایک ہی لائن پر میرا تفصیلات کے اوپر صرف ایک تبصرہ میں میں ایک فی کیا کرنے کا ارادہ ہے کہ کوڈ لائن. لیکن یہ صحیح لگتا ہے. میں ہوں اب 15 لائن یہ لگتا ہے پھر ایک ستارہ پرنٹ، اور 16 لائن میں چھپائی رہا ہوں ایسا لگتا ہے ایک نئی سطر کے کردار، اور وہ دونوں تو پوٹ دار کر رہے ہیں میں واضح طور پر لوپ کے اندر ہوں. تو میں ستارہ نہیں کرنا چاہئے، نئے لائن، ستارہ، نئی لائن، ستارہ، نئی لائن؟ جی ہاں؟ جی ہاں، ایک زبان کے برعکس کی طرح ازگر، آپ واقف ہیں تو، پوٹ کاری نہیں کمپیوٹر پر کوئی فرق. یہ صرف انسانی فرق پڑتا. یہاں جبکہ میں ایجاد ہے لائنوں تو 15 اور خوبصورت لگ رہا ہے کہ 16--، لیکن کمپیوٹر کی پرواہ نہیں کرتا. کمپیوٹر کے بارے میں پرواہ اصل میں گھوبگھرالی منحنی خطوط وحدانی رکھنے کوڈ کا ان لائنوں کے ارد گرد. تو ہے کہ یہ صرف کی طرح clear-- ہے Scratch-- کوڈ کا ان دو لائنوں کہ چلایا جائے چاہئے. ان پیلے رنگ کے سکریچ پہیلی میں سے ایک کی طرح ٹکڑے ٹکڑے دوبارہ اور بار بار. میں تو اب اس کو دوبارہ چلانے پروگرام ./buggy-2-- HM. اب میں ایک غلطی ہے. مجھے کیا کرنا بھول گئے؟ جی ہاں، تو میں اسے مرتب نہیں کیا. تو چھوٹی گاڑی 2 بنانے کے. ایسی کوئی فائل میں نہیں تھا کیونکہ اصل میں دوسرے ورژن مرتب. تو اب دلچسپ اگھوشیت 2 نہیں متغیر. ہم 1 کر رہے ہیں. اب چھوٹی گاڑی-1-- ./buggy-1-- اور بنانے ان میں سے ہر ایک ہی لائن پر ہے. اب ایک رعایت کے لئے ہے میری اس توقع کا دعوی کہ آپ ان گھوبگھرالی منحنی خطوط وحدانی کی ضرورت ہے. جب یہ اصل میں ہے OK-- آپ ہے تو حصے یا textbooks-- میں نے محسوس گھوبگھرالی منحنی خطوط وحدانی ترک کرنا؟ جی ہاں؟ بالکل ٹھیک. صرف ایک ہی ہے جب کوڈ کے لائن کہ آپ کو کے ساتھ منسلک کرنا چاہتے ہیں ہماری پہلی مثال کے طور پر لوپ. یہ بالکل جائز ہے گھوبگھرالی منحنی خطوط وحدانی ترک کرنا صرف ایک سہولت کی طرح کے طور پر آپ کے سنکلک کی طرف سے. جی ہاں؟ اچھا سوال ہے. یہ ایک سٹائل غلطی تصور کیا جائے گا؟ ہم نے CS50 میں کے طور پر promote-- گا سٹائل گائیڈ، جس کے لئے یو آر ایل کہ ہمیشہ pset1-- میں ہے گھوبگھرالی منحنی خطوط وحدانی کا استعمال کرتے ہیں. یقینی طور پر آپ کو پروگرامنگ کرنے کے لئے نئے ہیں. حقیقت ہم نہ رہے ہیں آپ کی ممانعت کے لئے جا ان سہولیات کرنے سے. لیکن آپ کو صرف ہو رہی ہے چیزوں کی جھولی میں، بالکل ہمیشہ گھوبگھرالی استعمال آپ اس کا ہینگ حاصل کرنے تک کی تیاریاں. اچھا سوال ہے. ٹھیک ہے. کہ تو ایک مسئلے تھا. کافی سادہ کچھ میں کم از کم. اور ابھی تک آپ کو اس سوچ سکتا ہے حق، کافی ابتدائی ہے؟ اس کے پہلے ہفتے کی طرح ہے کی زبان میں تلاش کی طرح، آپ کے کیڑے اس میں دیکھیں. لیکن حقیقت یہ ہیں اصل نمائندے کچھ بہت خوفناک مسائل کے کہ حقیقی دنیا میں پیدا کر سکتے ہیں. تو آپ میں سے کچھ یاد کر سکتے ہیں آپ کو ٹیک خبر پر عمل کرتا ہے تو، یا شاید بھی پکڑے گئے فروری میں اس کی ہوا ایپل تھا کہ یہ گزشتہ سال کے ، دونوں iOS میں ایک غلطی کا تھوڑا سا بنا دیا آپریٹنگ سسٹم ان کے فون، اور بھی میک OS، آپریٹنگ سسٹم ان کے ڈیسک ٹاپ اور لیپ ٹاپ پر. اور تم اس کے طور پر شہ سرخیوں دیکھا. اور اس کے بعد، ایپل اس مسئلے کو حل کرنے کا وعدہ کیا تھا، اور بہت جلد، iOS میں اسے ٹھیک کیا لیکن پھر بالآخر میک OS میں یہ طے اس کے ساتھ ساتھ. اب ان شہ سرخیوں میں سے کوئی بھی اکیلے واقعی بنیادی مسئلہ کیا تھا ظاہر، لیکن بگ بالآخر کم کیا گیا تھا SSL میں ایک مسئلے سے، محفوظ ساکٹ لیئر. اور لمبی کہانی کو مختصر، اس سافٹ ویئر ہے کہ ہماری براؤزر اور دیگر سافٹ ویئر کی کیا کیا کرتے تھے؟ میں SSL ہے تو ملوث، جب بھی آپ ، HTTPS کے ساتھ شروع ہوتا ہے کہ ایک یو آر ایل کا دورہ پھر کیا SSL سے متعلق ہو سکتا ہے؟ خفیہ کاری. تو ہم نے کے بارے میں بات کریں گے آنے والے دنوں میں اس. خفیہ کاری، کے فن معلومات scrambling. لیکن لمبی کہانی کو مختصر، ایپل کچھ دیر میں ایک غلطی کی تھی پہلے ، SSL کے ان کے عمل میں بالآخر لاگو سافٹ ویئر HTTPS یا زیادہ سے زیادہ کی طرح یو آر ایل وہاں بھی کنکشن. جس کا نتیجہ یہ ہے کہ آپ کنکشن ممکنہ طور پر کر سکتے ہیں روک. اور آپ کے کنکشن تھے ضروری مرموز نہیں آپ کے درمیان کچھ برا آدمی میں تھا تو آپ اور منزل ویب سائٹ جو اس کا فائدہ اٹھانے کے لئے کس طرح جانتا تھا. اب ایپل بالآخر پوسٹ ایک آخر میں اس کے لئے طے کر، اور وضاحت ان کے حل کے اس تھا. محفوظ نقل و حمل کو درست کرنے میں ناکام کنکشن کی صداقت. مسئلہ کی طرف سے خطاب کیا لاپتہ توثیق اقدامات کی بحالی. تو یہ ایک بہت ہاتھ لہراتی وضاحت ہے صرف ہم مصیبت یہ کہنے کے لیے. لفظی نہیں ہے چھوٹی گاڑی تھی کہ کوڈ کی لائن ان SSL کے نفاذ، اور میں آپ آن لائن جانے کے لئے اور اس کے لئے تلاش کریں آپ اصل میں حاصل کر سکتے ہیں اصل منبع کوڈ. مثال کے طور پر، اس کا ایک سکرین شاٹ ہے صرف ایک کافی بڑی فائل کا ایک حصہ، لیکن یہ بظاہر نام سے ایک تقریب ہے SSL علامت سرور اہم تبادلے کی تصدیق. اور اس کا ایک گروپ لیتا ہے دلائل اور آدانوں. اور ہم پر توجہ مرکوز کرنے جا رہے ہیں وہاں minutia پر بہت زیادہ، لیکن آپ کے اندر کوڈ پر توجہ مرکوز ہے چلو تقریب کہ اوپر کی اس پر میں زوم. آپ نے پہلے ہی شبہ ہو سکتا ہے کیا غلطی ہو سکتا ہے آپ کو کوئی اندازہ نہیں ہے یہاں تک کہ اگر ہو بالآخر آپ کو تلاش کر رہے ہیں. ایک اسنگتی کی طرح ہے یہاں، جس میں کیا ہے؟ جی ہاں، میں واقعی میں پسند نہیں کرتے دو روانگی بر کی نظر ناکام ہو جاتا ہے. سچ کہوں تو، میں سچ میں پتہ نہیں کیا روانگی بر کا مطلب ہے کہ میں ناکام، لیکن ان میں سے دو ہونے واپس واپس کرنے کے لئے. جو صرف ایک قسم مجھے سے rubs ذہنی غلط طریقے سے، اور ہم پر میں زوم یقینا تو صرف ان لائنوں، یہ سی ہے تو ایپل کے کوڈ کا ایک بہت خود C میں لکھا ہے، اور یہ بظاہر واقعی equivalent-- ہے نہ کہ بہت پوٹ کاری کرنے کے لئے ورژن، لیکن آپ کو تسلیم ہے تو حقیقت یہ ہے کہ کوئی گھوبگھرالی منحنی خطوط وحدانی، ہے کہ وہاں کیا ایپل واقعی لگتا ہے کہ کوڈ تھا لکھا اس طرح. تو میں باہر یکبر اور صرف میں ہوں احساس میں پوٹ کاری مقرر کہ کوئی گھوبگھرالی منحنی خطوط وحدانی، کہ وہاں ہے دوسری روانگی بر کہ پیلے رنگ میں ناکام کوئی بات نہیں پر عمل کرنے جا رہا ہے. اس کے ساتھ منسلک نہیں ہے اس کے اوپر اگر شرط. تو بھی ایک بار پھر، اگر آپ ایسا کرتے کافی نہیں سمجھ کیا یہ ممکنہ طور پر کر سکتے ہیں ، کر رہے ہو جانتے ہو ان میں سے ہر ایک کہ ان لائنوں میں سے ہر ایک کے حالات ایک بہت اہم قدم ہے جانچ پڑتال کے عمل میں آپ کے ڈیٹا اصل میں ہے تو مرموز. تو ان میں سے ایک اچٹیں اقدامات، نہیں سب سے اچھا خیال. لیکن ہم اس کی ضرورت ہے کیونکہ دوسری روانگی بر، پیلے رنگ میں ناکام اور اس وجہ سے ہم ایک بار قسم کے جمالیاتی جہاں اس کے بائیں میں منتقل منطقی طور پر اس وقت ہے، کیا اس لائن کے لئے مطلب ہے کہ دوسری روانگی بر کے نیچے کوڈ کی آپ کے خیال میں ناکام؟ یہ ہمیشہ چھوڑا جا رہا ہے. تو gotos عام طور وسلم frowned ہیں ہم واقعی میں نہیں جائیں گے وجوہات کے لئے، اور یقینا CS50 میں ہم نہیں ہیں اس بیان روانگی بر سکھانے کے لئے، لیکن آپ روانگی بر سوچ سکتے ہیں معنی جانے چھلانگ کے طور پر میں ناکام کوڈ کے کسی دوسرے حصے میں. دوسرے الفاظ میں پر کود مکمل طور پر یہ آخری لائن، اور تو اس پاگل کا نتیجہ صرف تھا کہ سادہ غلطی شاید کسی کا نتیجہ کاپی اور بھی ایک چسپاں کئی بار پوری تھا iOS اور میک OS کی سیکورٹی اورودھن کا شکار تھا کچھ وقت کے لئے برے لوگوں کی طرف سے. ایپل تک آخر میں یہ طے. اب آپ کی کچھ اصل میں ہیں تو iOS یا میک OS کے پرانے ورژن چل رہا ہے، آپ gotofail.com پر جا سکتے ہیں جس میں کسی کو مقرر کیا ہے کہ ایک ویب سائٹ ہے بنیادی طور پر تعین کرنے کے لئے پروگرام آپ کے کمپیوٹر اب بھی کمزور ہے. اور واضح طور سے، اگر یہ ہے، شاید یہ ایک اچھا خیال ہے آپ کے فون کو اپ ڈیٹ کرنے یا اس نقطہ پر اپنے میک. لیکن، صرف عہد نامہ کس طرح کرنے کے لئے یہ کم سطح کی ایک تعریف تفصیلات اور کافی سادہ خیالات کر سکتے ہیں واقعی فیصلے میں ترجمہ اور مسائل کہ اس صورت میں affected-- لاکھوں لوگوں کی. انتظامیہ پر اب ایک لفظ. حصے میں اس آنے والے اتوار کو شروع ہو جائے گا. آپ کی طرف سے ایک ای میل وصول کریں گے حصے کے بارے میں ہفتے کے آخر میں، جس موڑ پر resectioning عمل آپ نے تو شروع ہو جائے گا آپ اب احساس ہوا کچھ نئے تنازعات. تو یہ ہر سال ہوتا ہے، اور ہم آنے والے دنوں میں ایڈجسٹ کرے گا. آفس hours-- ایک رکھنے کرنا یہاں اس شیڈول پر آنکھ. اس ہفتے کے تھوڑا سا میں تبدیلی، خاص طور پر وقت آغاز اور محل وقوع، تو مشورہ ہے کہ دفتری اوقات کی طرف سے پہلے اگلے چار راتوں میں سے کوئی بھی. اور اب کی تشخیص پر ایک لفظ، آپ کا مسئلہ میں کودو، خاص طور پر ایک اور باہر کا تعین کرتا ہے. تفصیلات کے مطابق تو، یہ عام طور پر ہیں محور جس کے ساتھ ہم آپ کو آپ کے کام کا اندازہ. دائرہ کار سے مراد کیا حد تک آپ کے کوڈ کے آلات خصوصیات کی ضرورت ہماری تفصیلات کی طرف سے. دوسرے الفاظ میں، کس طرح زیادہ سے زیادہ ایک ٹکڑا سیٹ آپ کاٹ کیا. آپ کو اس کے ایک تہائی کیا، اس کے نصف، اس کے 100٪. یہ صحیح نہیں ہے یہاں تک کہ اگر، تم کتنا کوشش کی؟ اس سطح قبضہ تو کوشش اور رقم کی جس میں آپ کو تھوڑا سا مسئلہ سیٹ کے مسائل. یہ ایک Correctness--، کرنے کس حد تک، آپ کے کوڈ ہے کے ساتھ مسلسل ہمارے نردجیکرن اور کیڑے مفت. تو یہ درست طریقے سے کام کرتا ہے؟ ہم اس کے کچھ ان پٹ دیتے ہیں تو، یہ کرتا ہے ہمیں توقع ہے کہ پیداوار دے؟ Design-- اب اس کی پہلی ہے خاص طور پر معیار ہیں، یا انسانی فیصلے کی ضرورت ہوتی ہے ہیں. ہم ایک عملے ہے کیوں اور یقینا، یہ ہے بہت سے تعلیم کے ساتھیوں اور کورس کے معاونین. کیا حد تک آپ کی ہے کوڈ اچھی طرح لکھا گیا ہے؟ اور پھر یہ ایک بہت ہے گتاتمک اسسمنٹ اس پر آپ کے ساتھ کام کریں گے ہفتے میں دو اور directionally آنا. تاکہ آپ نہیں جب صرف عددی سکور، بلکہ ایک تحریری سکور، یا ٹائپ کی رائے، یا انگریزی الفاظ میں رائے لکھا. یہ ہم آپ کو گاڑی چلانے کے لئے استعمال کریں گے کیا ہے اصل میں بہتر کوڈ لکھنے کی طرف. اور لیکچر اور کے حصے میں، ہم کوشش کریں گے کے طور پر اکثر کے طور پر ہم can-- باہر کر طرف اشارہ کرنا کیا ایک پروگرام بناتا ہے نہ صرف صحیح اور فعل کے اچھے، بلکہ اچھی طرح سے ڈیزائن. سب سے زیادہ موثر یہ ہو، یا کر سکتے ہیں یہاں تک کہ سب سے زیادہ خوبصورت ہو سکتا ہے. جس انداز کی طرف جاتا ہے. انداز بالآخر ہے ایک جمالیاتی فیصلے. آپ کو اچھا منتخب کیا آپ کے متغیر کے نام؟ آپ کو مناسب طریقے سے آپ کے کوڈ کے پوٹ دار ہے؟ یہ اس وجہ سے اچھی لگتی، اور کرتا ہے، یہ ایک انسان کے لئے آسان ہے اپنے متعلقہ پڑھنے کے لئے اس کے درست کی. اب عام طور پر نصاب کے مطابق، ہم سکور پانچ نکاتی پیمانے پر ان چیزوں کو. اور مجھے نکاتی گھر ہتھوڑا دو تین کہ واقعی اچھا ہے. بہت تیزی سے لوگ کرتے ہیں ریاضی کر شروع. وہ ایک تین باہر حاصل کرتے کچھ pset کے لئے درست پانچ اور وہ بہت لگتا ہے، میں 60٪ کرنے کے لئے جا جو بنیادی طور پر ایک ڈی یا ایک E. ہے اس طرح نہیں ہے کہ ہم ان کی تعداد کے بارے میں سوچنا. تین کیا واقعی اچھا ہے، اور ہم عام طور پر آغاز میں توقع مدت کے آپ کو ہو رہی ہے تو یہ ہے کہ شاید three's-- کے ایک گروپ کے ایک جوڑے میلوں کی، fours-- کے ایک جوڑے یا ایک جوڑے twos کے، fours-- کے ایک جوڑے کہ شروع کرنے کے لئے ایک اچھی جگہ ہے. اور ہم نے ایک تو طویل عرصے کے طور پر دیکھیں وقت کے ساتھ ساتھ اضافہ کی رفتار، آپ کو ایک خاص طور پر اچھا جگہ میں ہیں. ہم کرنے کے لئے استعمال فارمولہ وزن چیزیں بنیادی طور پر ہے نصاب کے مطابق اس، جس میں صرف ہم کا مطلب ہے کہ درست کرنے کے لئے زیادہ سے زیادہ وزن دے. یہ بہت اکثر درست ہے کیونکہ کہ سب سے زیادہ وقت لگتا ہے. اب مجھ پر اعتماد کرو. آپ کم از کم find-- گا ایک pset-- میں ہے کہ آپ اپنے وقت کے 90 فیصد خرچ مسئلہ کے 10 فیصد پر کام کر رہے. اور ہر چیز کی طرح کام کرتا ہے ایک یا دو کیڑے کے علاوہ، اور ان لوگوں کو کیڑے ہیں رات کو دیر سے آپ کو رکھنے کے. لوگ ہیں کہ کی طرح آپ سے فرار. لیکن اس پر سونے کے بعد، یا دفتر کے اوقات میں شرکت یا، آن لائن سوال ہے پوچھ آپ 100٪ مقصد حاصل کرنے کے جب، اور یہی وجہ ہے کہ ہم وزن ہے سب سے زیادہ درست. تھوڑا کم ڈیزائن، اور اس سے تھوڑا کم سٹائل. لیکن mind-- انداز میں رکھنے شاید سب سے آسان ہے ان میں سے کاٹ کرنے کے لئے سٹائل گائیڈ کے مطابق. اور اب، ایک سے زیادہ سنگین تعلیمی ایمانداری پر نوٹ. CS50 کی بدقسمتی امتیاز ہے اشتھاراتی بورڈ کے سب سے بڑا پروڈیوسر ہونے مقدمات تقریبا ہر سال تاریخی. طالب علموں میں دھوکہ اس کی وجہ یہ نہیں ہے CS50 کسی بھی زیادہ تو کسی دوسرے طبقے کے مقابلے میں، لیکن کیونکہ کام کی نوعیت کی طرف سے، یہ الیکٹرانک ہے حقیقت یہ ہے کہ، ہم اس کے لئے نظر آتے ہیں، اور حقیقت یہ ہے کہ حقیقت یہ ہے کہ ہم کمپیوٹر کے سائنسدانوں، ہیں میں ہم بدقسمتی ہیں کہہ سکتے ہیں یہ پتہ لگانے میں بہت اچھا. تو یہ حقیقی معنوں میں کیا مطلب ہے؟ یہ تو، نصاب کے مطابق، کورس کا فلسفہ واقعی مناسب ہو کرنے کے لئے نیچے ابلنا ہے. اس لائن کے درمیان ہے اپنے اپنے طور پر ایک کام کر اور تھوڑا سا حاصل کرنے ایک دوست سے مناسب مدد، اور مکمل طور پر کے لئے کہ کام کر آپ دوست، یا اسے اپنے کوڈ بھیج وہ صرف کر سکتے ہیں، تا کہ لے یا دائیں اسے باہر قرضے لے. اور یہ کہ لائن پار ہم کلاس میں تیار کی ہے کہ. ، نصاب دیکھیں بالآخر لائنز ہم مناسب ہونے کے طور پر اپنی طرف متوجہ اور غلط رویے، لیکن یہ واقعی فوڑے کرتا ہے جوہر نیچے آپ کے کام کرنے کی ضرورت کے آخر میں آپ کی اپنی ہو. اب اس نے کہا، ایک heuristic ہے. آپ imagine-- سکتا ہے کیونکہ دفتر گھنٹے اور انداز سے اور ویڈیوز ہم نے دکھایا طرح far-- CS50 یقینا باہمی تعاون کے ساتھ کے طور پر مراد ہے اور کے طور پر تعاون اور سماجی ممکن طور پر. باہمی تعاون کے ساتھ کے طور پر یہ سخت ہے. لیکن اس نے کہا کہ کے ساتھ پر، heuristic، آپ کے نصاب میں دیکھیں گے کے طور پر، آپ کو کچھ مسئلہ ہے کر رہے ہیں جب کہ ہے. آپ اپنے کوڈ میں کچھ بگ ہے کہ آپ حل نہیں کر سکتے، یہ آپ کے لئے مناسب ہے کسی اور کو آپ کے کوڈ کو ظاہر کرنے کے. یہاں تک کہ کلاس میں ایک دوست، ایک دوست دفتری اوقات میں آپ کو اگلے بیٹھے، یا عملے کے ایک رکن. لیکن وہ آپ کو ان کے کوڈ کو ظاہر نہیں کر سکتے ہیں. دوسرے الفاظ میں، ایک آپ کے سوال کا جواب میں help-- اوہ، یہاں کوڈ نہیں ہے کی ضرورت ہے. اس پر ایک نظر لے لو اور کیا تم اس سے نتیجہ نکالنا. اب، کورس کی، ہے ایک طریقہ واضح طور پر کھیل کے لئے میں تمہیں دکھاتا ہوں جس کے تحت اس نظام ایک سوال کے ہونے سے پہلے اپنے کوڈ. تم نے مجھے میرے اپنے کوڈ کو ظاہر ایک سوال کے ہونے سے پہلے. لیکن پھر نصاب دیکھیں اس لائن ہے جہاں کے finer تفصیلات. اب تصویر پینٹ کرنے کے لئے اور کے طور پر ہر ممکن حد تک شفاف اشتراک ہم نے حالیہ برسوں میں کہاں ہیں، اس اشتھاراتی بورڈ مقدمات کی تعداد ہے کہ CS50 پر دیکھا گیا ہے گزشتہ سات سال. 14 مقدمات یہ سب سے زیادہ حال ہی میں زوال کے ساتھ. ملوث طلباء کی شرائط میں، 20 کچھ عجیب طلباء تھا گزشتہ موسم خزاں. 33 کی ایک چوٹی تھا کچھ سال پہلے کے طالب علموں کو. جن میں سے بہت بدقسمتی ہیں اب کوئی یہاں کیمپس. کی ایک فی صد کے طور پر شامل طلباء کلاس تاریخی 0٪ سے لے کر ہے کا کہنا ہے کہ صرف ہے جو 5.3٪، کے لئے اس سالانہ ایک چیلنج ہے. اور اس مقصد کی طرف، کیا ہم ایک کی تبلیغ کرنا چاہتے ہیں ہم صرف FYI-- میں موازنہ dd-- کہ ان طالب علموں کے لئے ایک جانبداری جو کے مطابق لائن مندرجہ ذیل ہیں. ہم تمام موجودہ موازنہ کرنا تمام ماضی کے مشن کے خلاف گذارشات گزشتہ کئی سالوں سے. ہم نے گوگل کو کس طرح بھی جانتے اور کوڈ ذخیرہ مل آن لائن، فورم آن لائن، کام سائٹس. ایک طالب علم نے اسے تلاش کر سکتے ہیں، ہم ضرور کر سکتے ہیں اس کے طور پر زیادہ سے زیادہ ہم افسوس کی بات کے طور پر مل جائے. تو کیا آپ کے نصاب میں دیکھیں گے اگرچہ اس بات پر افسوس کا شق ہے. میں یقینی طور پر کر سکتے ہیں تعریف، اور ہم سب کو ہے عملے کورس کی طرح کیا ہے اس وقت، یا یہ ایک خود، یقینی طور پر اس وقت جب طرح ہے زندگی جب آپ راستے میں ملتا ہے کچھ دیر رات deadline-- نہ صرف اس کی کلاس میں، لیکن آپ another-- ہیں جب مکمل طور پر ختم،، باہر زور دیا ایک غیر معمولی تعداد ہے دوسری چیزوں کے کرنے کے لئے. تم کچھ نقطہ میں کر دے گا یقینی طور پر ایک بری، شاید دیر سے زندگی رات فیصلہ. نصاب کے مطابق تو، اس شق نہیں ہے، بنانے کی طرح ہے کہ اگر 72 گھنٹے کے اندر اندر کچھ غریب فیصلہ، آپ کو اس کی مالک اور مجھ سے باہر تک پہنچنے اور کورس کے سروں میں سے ایک اور ہم ایک بات چیت کریں گے. ہم چیزوں کو سنبھال لیں گے اندرونی امید میں یہ ایک سے زیادہ بننے کے تعلیم لمحے یا زندگی سبق، کے ساتھ اور کچھ نہیں خاص طور پر سخت نتائج آپ یہاں ان کے چارٹ پر دیکھ سکتے ہیں کے طور پر. تو یہ ایک بہت سنگین سر ہے. ہم صرف چند کے لئے روک دیں سیکنڈ کشیدگی کو توڑنے کے لئے. [موسیقی بجانے] DAVID J. MALAN: ٹھیک ہے، تاکہ تھا کہ کس طرح ایک segue کا لئے؟ آج کے بنیادی موضوعات سے. جس کے پہلے تجرید ہے. جن میں سے ایک ہونے جا رہا ہے جس بے تکلفی کے اعداد و شمار، کی نمائندگی کس طرح کہہ کے ایک بہت خشک راستہ ہم کر سکتے ہیں ہے مسائل کو حل کرنے اور سوچ کے بارے میں جانا مسائل کو حل کرنے کے بارے میں؟ تو آپ شروع میں دیکھا ہے، اور آپ نے سی کے ساتھ pset1 میں شاید پہلے سے ہی دیکھا آپ کو نہ صرف استعمال کر سکتے ہیں افعال، printf طرح، کہ دوسرے لوگوں میں گزشتہ سال آپ کے لئے لکھا تھا. تم نے بھی اپنے اپنے افعال لکھ سکتے ہیں. اور آپ کے پاس ہو سکتا ہے اگرچہ pset1 میں واضح طور C میں اس کیا، اور تم واقعی میں لکھنے کے لئے کی ضرورت نہیں ہے آپ کی problem-- کیونکہ خود کی تقریب میں شاید مشکل ہے جبکہ سب سے پہلے آپ دیکھیں گے glance-- آخر کے ساتھ حل کیا جا سکتا کوڈ کی سب نہیں ہے کہ بہت سے لائنوں. لیکن اس معاملے میں، انہوں نے کہا کہ کے ساتھ آپ کی اپنی تقریب کو لکھنے کا، دے C ہے کہ احساس آپ کو اس کی صلاحیت. میں، آج کے منبع کوڈ میں جانے کے لئے جا رہا ہوں جس، پہلے ہی آن لائن دستیاب ہے اور میں آگے اور کھلی جا رہا ہوں تقریب 0.C نامی ایک پروگرام، اور تقریب صفر میں ہم کچھ چیزیں دیکھیں گے. پہلا لائنز 18 کے ذریعے 23 اپنے اہم تقریب ہے. اور اب ہم پڑھنے کے لئے شروع کر رہے ہیں کہ ہم مکھی پر نہیں لکھ رہے کہ کوڈ، بلکہ اس کی بجائے میں نے پہلے ہی لکھا ہے یا ایک مسئلہ میں آپ کی مقرر کردہ ہونے کے حاصل کر سکتے ہیں پیشگی میں لکھا گیا. ایک اچھا طریقہ شروع کرنے کے لئے کسی اور کے کوڈ کو پڑھنے مرکزی تقریب کے لئے نظر ہے. جہاں اس اندراج پتہ نقطہ پروگرام چلانے کے لئے ہے، اور پھر وہاں سے منطقی طور پر اس کی پیروی. تو اس پروگرام بظاہر پرنٹس ایک بڑی آنت کے بعد آپ کا نام. پھر ہم GetString کا استعمال CS50 لائبریری سے ایک سٹرنگ، یا ایک لفظ یا فقرہ حاصل کرنے کے لئے بورڈ میں صارف کی طرف سے. اور پھر یہ ہے بات یہاں PrintName. اب PrintName ایک نہیں ہے سی کے ساتھ آتا ہے کہ تقریب یہ معیاری io.h. میں نہیں ہے یہ cs50.h. میں نہیں ہے یہ ایک ہی فائل میں نہیں بلکہ ہے. میں نیچے سکرال نوٹس ایک بٹ لائنوں 25 27-- کرنے اس تبصرہ کا صرف ایک خوبصورت طریقہ ہے ستاروں اور slashes کے کا استعمال کرتے ہوئے آپ کے کوڈ. یہ ایک کثیر لائن ہے تبصرہ، اور یہ صرف ہے کے نیلے میں تفصیل اس تقریب کرتا ہے. 31 کے ذریعے لائنوں میں 28 کیونکہ، مجھے ایک سپر سادہ تقریب لکھا ہے جس کا نام PrintName ہے. یہ کس طرح بہت سے لیتا ہے دلائل آپ کہیں گے؟ تو ایک دلیل ایک ہے کیونکہ قوسین کے اندر درج دلیل. جس کی قسم سٹرنگ ہے. جس PrintName کہنا ہے اس بلیک باکس کی طرح ہے لیتا ہے یا تقریب ان پٹ ایک تار کے طور پر. اور اس سٹرنگ کا نام آسانی سے نام ہو جائے گا. نہیں، نہیں ن، لیکن نام. تو PrintName کیا کرتا ہے؟ یہ اچھا آسان ہے. صرف کوڈ کا ایک لائن کے طور پر printf کے، لیکن بظاہر یہ باہر پرنٹ "ہیلو،" تو اور تو. کہاں اور تو دلیل سے آتا ہے. اب یہ یہاں ایک بہت بڑی بدعت نہیں ہے. سچ میں، میں کہ سکتا پروگرام لیا ہے کوڈ کی ایک لائن کے ساتھ لکھا گیا ہے یہاں اس کو ڈال کی طرف سے، اور کچھ کرنے کے لئے تبدیل کر دیا گیا کہ کچھ چھ یا سات یا تو شامل یہاں نیچے کوڈ کی لائنیں تمام طریقہ. لیکن یہ ایک کی مشق ہے تجرید کے طور پر جانا اصول. قسم کی ایک نئی کے اندر encapsulating ایک نام ہے کہ تقریب، اور بہتر ابھی تک اس کے نام لفظی یہ کیا کرتا ہے کا کہنا ہے کہ. میں کہ نہیں ہے printf-- مطلب خاص طور پر وضاحتی. میں نے ایک بنانے کے لئے چاہتے ہیں تو پہیلی ٹکڑا، یا میں تو ایک تقریب پیدا کرنا چاہتے ہیں کہ، کسی کا نام پرنٹ ایسا کرنے کے خوبصورتی کہ میں اصل میں کر سکتے ہیں اس تقریب کو ایک نام دیں کہ یہ کیا کرتا ہے بیان. اب یہ ایک ان پٹ میں لیتا ہے میں منمانے نام ہے، لیکن اس سے بھی حیرت انگیز وضاحتی ہے اس کی بجائے ایک چھوٹا سا زیادہ ہونے کی وجہ سے ایس طرح عام باطل، اب کے لئے، صرف کا مطلب اس تقریب نہیں ہے مجھے کچھ واپس ہاتھ. یہ GetString طرح نہیں ہے کہ لفظی ایک تار مجھے دیتا واپس ہم جیسے کاغذ کے ٹکڑے ٹکڑے کے ساتھ کیا اپنے ہم جماعتوں نے گزشتہ ہفتے کے ساتھ، بلکہ یہ صرف ایک ضمنی اثر ہے. یہ پردے پر کچھ پرنٹ. دن کے آخر میں، تو تو میں کروں تقریب-0، ./function-0، ہم اس کو میرے نام کے لئے پوچھتا ہے دیکھیں گے کہ. میں نے اپنے نام کی اقسام داؤد ٹائپ، اور اس. میں روب کے ساتھ پھر سے کرتے ہیں، یہ کہا جا رہا ہے "ہیلو، روب." تو ایک آسان خیال، لیکن شاید اس ذہنی طور سے extrapolate کر آپ کے پروگراموں کے طور پر کہ ، زیادہ پیچیدہ ایک چھوٹی سی اور تم میں سے ایک حصہ لکھنے کے لئے چاہتے ہیں کوڈ اور کال کہ code-- پکارتے کچھ وضاحتی کی طرف سے اس code-- PrintName جیسے نام، C ہمیں اس کی صلاحیت برداشت کرتا ہے. یہاں ایک سادہ مثال ہے. مثال کے طور پر، میں نے ایک کھلا ہے تو return.c کہا آج سے فائل، میں یہاں کیا کیا ہے محسوس. اس کی اہم تقریب کے سب سے زیادہ printf ہے. میں سب سے پہلے منمانے ایک ابتدا نمبر 2 کے لئے کہا جاتا متغیر X. میں تو ایکس ہے "پرنٹ میں نے "X کی قدر میں گزر. تو میں صرف یہ کیا کہہ رہا ہوں. اب میں صرف دلیری ہوں printf کے ساتھ دعوی. میں نے اس کی قیمت ایکس cubing رہا ہوں، اور میں ہوں ایک تقریب بلا کی طرف سے ایسا کرنے کہا جاتا کیوب انتقال دلیل کے طور پر ایکس میں، اور اس کے بعد کی پیداوار بچت متغیر خود میں، ایکس. تو میں X کی قدر clobbering کی ہوں. میں زیرکر رہا ہوں ساتھ X کی قدر ہے جو کچھ بھی بلا کا نتیجہ اس کیوب تقریب ہے. اور پھر میں نے کچھ باہر پرنٹ بندوق چیزیں یہاں میں نے کیا کہہ. تو پھر مکعب کیا ہے؟ بنیادی طور پر کیا نوٹس یہاں مختلف. میں تقریب دیا ہے اس سے پہلے کے طور پر ایک نام. میں ایک دلیل کے لئے ایک نام کی وضاحت کی ہے. یہ ن کی بجائے نام کی کہا جاتا ہے اس وقت، لیکن میں چاہتا ہوں کچھ کہہ سکتے ہیں. لیکن یہ مختلف ہے. بائیں پر یہ بات. ماضی میں اس سے کیا مطلوبہ الفاظ کی تھی؟ لڑکے. اب یہ ظاہر ہے int ہے. تو کیا شاید دور لے رہا ہے؟ باطل ابیوینجک جبکہ طرح کی عدم، اور اس صورت تھی. PrintName کچھ نہیں واپس. یہ کچھ کیا ہے، لیکن یہ مجھے واپس ہاتھ نہیں تھا میں ڈال سکتے ہیں کہ کچھ ایک ہی علامت کے بائیں ہاتھ کی طرف کی طرح میں 22 لائن پر یہاں کیا ہے. تو میں اوپر 30 میں کا کہنا ہے کہ، کیا شاید مطلب ہے کہ کیا کیوب کے بارے میں میرے لئے ہے؟ جی ہاں؟ یہ ایک عددی واپس. تو اس کے لئے، مجھے واپس ہاتھ کاغذ کے مثال کے طور پر، ایک ٹکڑا جس پر یہ جواب لکھا ہے. 2 cubed کی، یا 3 cubed کی، یا 4 cubed-- میں، میں منظور ہے جو کچھ بھی اور کس طرح میں اس کو لاگو کیا ہے؟ ویسے، ن کے اوقات ن کے اوقات ن میں ایک قدر کیوب سکتا ہے کس طرح ہے. تو پھر، سپر آسان خیال، لیکن ہے، demonstrative اب ہم افعال لکھ سکتے ہیں کس طرح کہ اصل میں ہمیں واپس تھا دلچسپی کے ہو سکتا ہے کہ اقدار. کی ایک آخری مثال کے طور پر نظر آتے ہیں یہاں تقریب سے ایک ملاقات کی. اس مثال میں، یہ شروع ہوتا ہے زیادہ مجبور حاصل کرنے کے لئے. تو تقریب میں، اس پروگرام نوٹس بالآخر GetPositiveInt نامی ایک تقریب بلاتا ہے. GetPositiveInt ایک نہیں ہے CS50 لائبریری میں تقریب، لیکن ہم ہم نے فیصلہ کیا یہ موجود چاہوں گا. تو ہم نے اس کے بعد فائل میں ذیل میں سکرال، میں لاگو کرنے کے بارے میں چلا گیا کس طرح محسوس مثبت int حاصل، اور میں یہ زیادہ مجبور کا کہنا ہے کہ یہ ایک مہذب ہے کیونکہ کوڈ کی لائنوں کی تعداد. یہ صرف ایک پاگل نہیں ہے چھوٹا سا کھلونا پروگرام. یہ اصل میں کچھ غلطی کی چیکنگ ہے اور زیادہ مفید کچھ کر رہے. آپ walkthrough نہیں دیکھا ہے تو ہم pset1 میں سرایت ہے کہ ویڈیوز، اس کی ایک قسم ہے جانتے ہیں کہ روح میں اسی طرح سی لوپ، چیزوں کو سکریچ کی قسم کے لئے کر سکتے ہیں. اور ایسا کہتے ہیں. یہ باہر پرنٹ کریں. تو آگے بڑھو اور (ن) کے حاصل ایک int حاصل اور (ن) میں محفوظ، اور رکھنے کے بار بار ایسا کرنے پھر اتنی دیر کے طور پر (ن) سے کم میں سے ایک ہے. تو (ن) سے بھی کم ایک ہونے جا رہا ہے صرف انسانی تعاون نہیں رہا ہے. وہ ٹائپ کر رہا ہے تو 0 یا -1 یا -50 میں، اس لوپ میں رکھنے کے لئے جا رہا ہے بار بار قتل. اور آخر میں، نوٹس صرف قیمت واپس. تو اب ہم ایک تقریب ہے یہ اچھا ہوتا CS50 میں لاگو کریں گے تو آپ کے لئے cs50.h اور ختم cs50.c، لیکن یہاں اب ہم کر سکتے ہیں اس نے خود کو لاگو. لیکن کچھ اہم تفصیلات پر دو تبصرے. One-- کیوں int اعلان کیا (ن)، لائن 29، آپ کو لگتا ہے اس کی بجائے صرف کرنے کے یہاں، جو کے ساتھ زیادہ مسلسل ہم نے گزشتہ ہفتے کیا کیا؟ جی ہاں؟ ایک اچھا خیال ہے. اگر ایسا ہے تو ہم اس کو دیا گیا یہاں، یہ ہم جیسے بار بار یہ اعلان رکھنے. میں اور خود کی ہے نہیں مشکلات، SE فی، ہم صرف کی ضرورت ہے کیونکہ اور پھر ایک بار قیمت ہم ویسے بھی ایک نیا حاصل کرنے کے لئے جا رہے ہیں. بلکہ ایک اچھا خیال. جی ہاں؟ بند کریں. میں (ن) پر اعلان کیا ہے کیونکہ لائن 29 لوپ سے باہر، اس میں قابل رسائی ہے اس پورے تقریب. دیگر افعال کی وجہ سے ن ان گھوبگھرالی کے اندر اب بھی ہے یہاں کی تیاریاں. اس بات کا یقین So--. بالکل ٹھیک. تو اس بات سے بھی زیادہ ہے. ہم بجائے اعلان ن یہیں 32 لائن پر، اس کا اندازہ لگانا کیونکہ مسئلہ ہے کہاں میں اس تک رسائی حاصل کرنے کی ضرورت ہے؟ لائن 34، اور انگوٹھے کے سادہ اصول ہے آپ کو صرف ایک متغیر کا استعمال کر سکتے ہیں سب سے زیادہ حال ہی میں گھوبگھرالی منحنی خطوط وحدانی کے اندر جس میں آپ کو یہ اعلان کیا. بدقسمتی سے، 34 لائن ایک ہی لائن میں، بہت دیر ہو چکی ہے میں نے پہلے ہی بند کر دیا ہے کیونکہ لائن 33 گھوبگھرالی منحنی خطوط وحدانی اس کے مساوی لائن 30 گھوبگھرالی منحنی خطوط وحدانی. اور اس طرح یہ کہنے کا ایک طریقہ ہے اس متغیر INT scoped ہے کہ، تو صرف اندر، بات کرنے کے لئے ان گھوبگھرالی منحنی خطوط وحدانی کے. یہ صرف ان کے باہر موجود نہیں ہے. تو یقینا، میں ہے تو اس غلط، مجھے کوڈ کو بچانے کے کے طور پر یہ غلط طریقے سے لکھا is--. مجھے آگے بڑھیں اور کرتے ہیں تقریب 1، اور نوٹس غلطی. اگھوشیت شناخت کنندہ (ن) کے استعمال یہاں ہے جو لائن 35، پر. اور ہم سکرال مزید، ایک. اگھوشیت کا استعمال 34 لائن پر شناخت ن. تو سنکلک، بجنا، یہ اس کو دیکھ رہا ہے اگرچہ موجود نہیں ہے واضح طور پر یہ ضعف ہے. تو ایک سادہ حل وہاں اس کا اعلان کیا جاتا ہے. اب مجھے کرنے کے لئے سکرال فائل کے سب سے اوپر. کے طور پر تم پر باہر چھلانگ تھوڑا مختلف ہونے کی وجہ سے سامان سے ہم نے گزشتہ ہفتے کو دیکھا؟ نہ صرف نام میں ہے، نہ صرف کرتے ہیں میں، کچھ تیز اوپر بھی شامل ہے میں ہوں کچھ ہے ایک پروٹوٹائپ بلا. اب اس کے لئے بہت طرح لگ رہا ہے کیا ہم صرف 27 لائن پر ایک لمحے پہلے دیکھا. تو ایک مختلف سے اندازہ دو میں نے یہ کیا ہے، کیوں غلطی پیغام. مجھے آگے بڑھیں اور وہاں ان لائنوں کو خارج کر دیں. اور اس طرح ہم پروٹوٹائپ کے بارے میں کچھ نہیں جانتے. اس فائل ریمیک. تقریب سے ایک بنانے کے. اور اب، لات، چار غلطیاں. کے سب سے پہلے کرنے کے لئے سکرال. تقریب کی انترنہیت اعلان مثبت int حاصل C99 میں باطل ہے. C99، صرف 1999 ء کا مطلب زبان کے ورژن ہم نے استعمال کر رہے ہیں کیا ہے جس میں C،. تو اس کا کیا مطلب ہے؟ ویسے C-- اور زیادہ خاص طور پر C خوبصورت گونگا پروگراموں compilers-- ہیں. وہ صرف آپ کیا جانتے ہیں ان سے کہا، اور یہ کہ گزشتہ ہفتے سے اصل موضوع. مسئلہ میں اگر ہے یہاں نام کو لاگو کرنے کے بارے میں، اور میں نامی ایک تقریب کہتے ہیں 20 لائن پر یہاں GetPositiveInt، اس تقریب تکنیکی نہیں سنکلک 27 لائن دیکھتا تک موجود ہیں. بدقسمتی سے، سنکلک ہے سب سے اوپر، نیچے، دائیں، بائیں باتیں کر رہے، اسے نہیں دیکھا ہے کیونکہ GetPositiveInt کے عمل، لیکن یہ آپ کی کوشش کر دیکھتا ہے یہاں اسے استعمال کرنے کے لئے، یہ صرف چللاو bail-- جا رہا ہے ایک غلطی کے ساتھ آپ شاید پیغام پر خفیہ، اور اصل میں نہیں ہے فائل مرتب. تو ایک نام نہاد پروٹوٹائپ اپ یہاں اقرار بے کار ہے. لفظی، میں یہاں نیچے چلا گیا اور میں کاپی اور اس چسپاں، اور میں اسے یہاں ڈال. صفر زیادہ مناسب ہو گا، تو ہم کریں گے لفظی کاپی اور یہ اس وقت پیسٹ. میں لفظی کاپی اور چسپاں. واقعی صرف ایک روٹی crumb طرح کے طور پر. سنکلک کرنے کے لئے ایک چھوٹا سا اشارہ. میں نے یہ کیا کرتا ہے نہیں جانتے ابھی تک، لیکن میں نے تم سے وعدہ کر رہا ہوں اس کے آخر میں موجود ہے. اس میں line-- اور اس وجہ سے ہے لائن 16-- ایک نیم وقفہ کے ساتھ ختم ہوتا ہے. یہ ڈیزائن کی طرف سے بے کار ہے. جی ہاں؟ آپ کو آپ کی لائبریری سے منسلک نہیں کیا تو اوہ، اچھا سوال the-- لئے. تیز ہیڈر فائل شامل inclusions پر مشتمل ہے. چاہئے تقریبا be-- کرنے کی ضرورت ہے ہمیشہ سب سے اوپر ہونا کے لئے ایک similar-- کے لئے فائل کے بالکل اسی وجہ سے، جی ہاں. سٹینڈرڈ کیونکہ io.h لفظی ایک لائن ہے اس طرح، لیکن لفظ printf کے ساتھ، اور اس کے دلائل اور اس کی واپسی کی قسم کے ساتھ. اور اس طرح تیز کرنے کی طرف سے اپ شامل ہیں یہاں، آپ لفظی کیا کر رہے ہیں مواد کاپی اور چسپاں کیا جاتا ہے کسی کے کچھ سب سے اوپر لکھا. اس طرح میں آپ کے کوڈ cluing ان افعال موجود ہیں حقیقت یہ ہے کہ. جی ہاں؟ بالکل. تو ایک بہت ہوشیار اور درست حل ہو جائے گا، کیا آپ جانتے ہیں؟ مجھے پتہ نہیں ہے کیا پروٹوٹائپ ہے، لیکن مجھے پتہ میں C صرف ہے کہ سمجھ تو گونگا اور اوپر سے نیچے rethinks. ویسے یہ چاہتا ہے اسے دے دو. یہ پیسٹ، ہے کہ کوڈ کاٹ دو سب سے اوپر، اور اب نیچے ذیل اہم دھکا. یہ بھی مسئلہ کو حل کرے گا. لیکن آپ کو بہت آسانی کے ساتھ آ سکتا A B فون کرنے کی ضرورت ہے جس میں ایک منظر نامے، اور شاید بی اے اس پر واپس بلاتا تکرار کہا جاتا ہے کچھ، ہے اور ہم واپس آ جائیں گے. اور یہ یا ایک اچھا ہو نہیں کر سکتے ہیں بات، لیکن اگر آپ کو یقینی طور پر کر سکتے ہیں اس حل کو توڑنے. اور اس کے علاوہ، میں کروں گا stylistically دعوی، خاص طور پر جب آپ کے پروگراموں اس طویل اور اس طویل بن، یہ صرف سپر آسان ہے سب سے اوپر اہم ڈال کرنے کے لئے یہ بات ہے کیونکہ سب سے زیادہ پروگرامرز کے بارے میں دیکھ بھال کرنے کے لئے جا رہے ہیں. اور اس طرح یہ ایک چھوٹا سا صاف ستھرا ہے، بلاشبہ، اس طرح کرنے کے لئے میں اصل میں اس نے کیا کیا ایک پروٹوٹائپ کے ساتھ بھی یہ ایک چھوٹا سا لگ رہا ہے اگرچہ پہلی نظر میں بے کار. جی ہاں؟ معذرت، آپ یہ زور کہہ سکتے ہیں؟ آپ کے مقامات کو سوئچ تو عمل اور پروٹوٹائپ؟ تو یہ ایک اچھا سوال ہے. اگر آپ اس کے نیچے دوبارہ اعلان یہاں، کیا ہوتا ہے دیکھتے ہیں. میں اس کے نیچے رکھ تو یہاں، آپ کو کہہ رہے ہیں. اوہ، معاف کرنا. زور؟ بھی زور. اوہ، اچھا سوال ہے. اس تقریب باطل گے؟ تم جانتے ہو، ان تمام سالوں کے بعد، میں اس کے بعد ایک پروٹوٹائپ ڈال کبھی نہیں ہے. تو تقریب 1 کروں اس کرنے کے بعد. [بڑبڑاہٹ] DAVID J. MALAN: اوہ، انتظار. ہم اب بھی سب سے اوپر سب کچھ ڈال دیا ہے. تو میں ہوں اگر، یہاں اس کو کرتے ہیں درست طریقے سے آپ کے سوال کو سمجھنے. میں بھی شامل ہے، سب کچھ ڈال رہا ہوں اہم اوپر پروٹوٹائپ، لیکن میں پروٹوٹائپ ڈال رہا ہوں عمل درآمد کے نیچے. میں سے ایک بنانے کے، تو میں ہو رہی ہے تو واپس ایک error-- غیر استعمال شدہ متغیر (ن). اوہ، وہاں. آپ کا شکریہ. چلو دیکھتے ہیں، ہم اس سے چھٹکارا حاصل. یہ، ایک مختلف بگ ہے تو اس کو نظر انداز کرتے ہیں. واقعی بہت تیزی سے اس ریمیک. ٹھیک ہے، تو ڈیٹا دلیل نہیں شکل سٹرنگ کی طرف سے استعمال کیا جاتا ہے اوہ (ن)، اس کی وجہ سے ہے میں یہاں ان کے لئے تبدیل کر دیا گیا. ٹھیک ہے، ہم جانتے ہیں کہ جواب to-- ٹھیک جا رہا ہے، ہم یہاں جانا. آہ، مثبت کے لئے شکریہ. ٹھیک ہے، میں اس کوڈ کو درست کریں گے after-- اس مخصوص مسئلے کو نظر انداز یہ کام کرتا ہے was-- سے جواب ہے. تو یہ ادلیکھت نہیں ہے کیا آپ کو صرف کیا ہے. میں سنکلک شبہ اس طرح میں لکھا ہے یہ آپ کے پروٹوٹائپ کو نظر انداز کیا جاتا ہے کہ جسم کی وجہ سے، تو بات کرنے کی، تقریب پہلے ہی کی اعلی اپ لاگو کیا گیا. میں واقعی میں مشورہ کرنا پڑے گا سنکلک کی دستی کسی دوسرے کی ہے تو سمجھنے کے لئے مطلب، لیکن پہلی نظر میں صرف کوشش اور استعمال کی طرف سے، کوئی اثر نہیں ہے. اچھا سوال ہے. تو، اب آگے بڑھانے منتقل دو دور کی طرف اثرات سے جس کچھ اس طرح کرتے ہیں کہ افعال ہیں ضعف printf کے ساتھ سکرین پر، لیکن ایک قدر واپس نہیں ہے. اور اس کے افعال کی واپسی ہے ہم جیسے اقدار کے چند دیکھا. ہم نے پہلے ہی گنجائش کے اس تصور نے دیکھا اور ہم بار بار اس میں دیکھیں گے. لیکن اب کے لئے، ایک بار پھر، انگوٹھے کی حکمرانی کا استعمال ایک متغیر صرف استعمال کیا جا سکتا ہے سب سے زیادہ حال ہی میں کھول کے اندر اور ہم کے طور پر بند کر دیا گھوبگھرالی منحنی خطوط وحدانی اس مخصوص مثال میں دیکھا. اور تم، باہر کی طرف اشارہ کے طور پر ایک ability-- ہے آپ ان مسائل میں سے کچھ کو حل کر سکتے ہیں عالمی سطح پر ایک متغیر ڈال کی طرف سے ایک فائل کے سب سے اوپر. لیکن تقریبا تمام صورتوں میں ہم نے اس پر خفگی کرے گا، اور بے شک بھی نہیں اب اس کے حل میں. تو اب کے لئے، takeaway ہے ہے متغیر گنجائش کے اس اصول کی ہے. لیکن اب ایک اور دیکھو اصل میں تلاش کر کے خشک راستہ کچھ بہت دلچسپ میں عملدرآمد کی تفصیلات. ہم کس طرح کے بارے میں معلومات کی نمائندگی کر سکتے. اور ہم نے پہلے ہی اس کی طرف دیکھا کلاس کے پہلے ہفتے میں. binaries کے تلاش میں، اور دشملو کے خود کو یاد دلانے. لیکن C ہے کہ گزشتہ ہفتے سے یاد مختلف اعداد و شمار اقسام اور bunches زیادہ، لیکن سب سے زیادہ مفید ہیں اب کے لئے یہ ہو سکتا ہے. ہوتا ہے جس میں ایک چار، یا کردار، ایک بائٹ، یا آٹھ بٹس کل ہونا. اور اس کے سائز کا کہنا ہے کہ ہے ایک چار میں سے صرف ایک بائٹ ہے. ایک بائٹ آٹھ بٹس ہے، تو اس کا مطلب ہے کہ ہم کس طرح بہت سے حروف کی نمائندگی کر سکتے ہیں. کس طرح بہت سے خطوط یا کی بورڈ پر علامات ہم ایک بائٹ آٹھ بٹیں ہیں. ہفتے واپس صفر کے بارے میں سوچو. آپ آٹھ بٹیں ہیں، کتنے کل اقدار آپ کے ساتھ نمائندگی کر سکتے ہیں zeros اور ہیں کے نمونوں؟ اس سے زیادہ One--. تو 256 کی کل اگر آپ صفر سے گنتی شروع. تو آپ آٹھ bits-- تو ہم اگر ہے تو ، پھر یہاں ہمارے بائنری بلب تھا ہم پر ان کی روشنی بلب تبدیل کر سکتے ہیں اور 256 منفرد نمونوں سے میں. اب یہ تھوڑا سا مسئلہ ہے. انگریزی اور کے لئے اتنا نہیں رومانوی زبانوں، لیکن یقینی طور پر آپ کو متعارف کرانے جب، کے لئے مثال کے طور پر، ایشیائی زبانوں، جس طرح سے کہیں زیادہ علامات ہے حروف تہجی کے 26 حروف. ہم اصل میں ضرورت ہو سکتی ہے ایک بائٹ سے زیادہ. اور شکر میں حالیہ برسوں معاشرے ہے استعمال کرتے ہیں کہ اپنایا دیگر معیار چارج فی ایک سے زیادہ بائٹ. لیکن اب سی میں، پہلے سے طے شدہ کے لئے صرف ایک بائٹ آٹھ بٹس ہے. ایک عددی، دریں اثنا، چار ہے بائٹس، دوسری صورت میں 32 بٹس کے طور پر جانا جاتا ہے. جس کا سب سے بڑا ممکن ہے کیا مطلب ہے تعداد ہم ایک int کے ساتھ نمائندگی کر سکتے ہیں بظاہر؟ ایک ارب. تو یہ چار ارب دے یا لے ہے. 2 32th اقتدار میں، اگر ہم کوئی منفی تعداد فرض اور صرف مثبت استعمال تعداد، یہ چار ارب ہے دے یا امکانات کو لے. ایک فلوٹ، دریں اثنا، ایک مختلف قسم ہے یہ اب بھی ایک بڑی تعداد ہے C. میں اعداد و شمار کی قسم، لیکن یہ ایک حقیقی عدد ہے. ایک اعشاریہ کے ساتھ کچھ. اور یہ پتہ چلا ہے کہ سی بھی چار بائٹس استعمال کرتا چل نقاط کے اقدار کی نمائندگی کے لئے. بدقسمتی سے کتنے سچل نقطہ اقدار دنیا میں ہیں؟ کس طرح بہت سے حقیقی اعداد ہیں؟ ایک لامحدود نہیں ہے تعداد، اور اس بات کے integers کے ایک لامحدود تعداد ہے. تو ہم اس قسم کی پہلے سے ہی ہیں یہاں خود کو ایک سوراخ کھدائی. جس کے تحت بظاہر computers-- میں them-- پر C میں لکھا کم از کم کے پروگرام صرف کے طور پر اعلی کے طور پر شمار کر سکتے ہیں چار ارب، دے یا لے اور چل نقاط کے اقدار صرف کر سکتے ہیں، بظاہر صحت سے متعلق کچھ محدود رقم ہے. صرف اتنے سارے ہندسے کے بعد ان اعشاریہ. ، کیونکہ، کورس کی، اگر آپ کو صرف 32 بٹس ہے، میں نے کے بارے میں جانے کے لئے جا رہے ہیں پتہ نہیں کس طرح شاید حقیقی تعداد کی نمائندگی پیٹرن کی مختلف اقسام کے ساتھ. لیکن یقینا ایک محدود ہے اس طرح کے نمونوں کی تعداد، تو یہاں، بھی، اس مسئلہ ہے. اب ہم تھوڑا سا مسئلہ سے بچنے کے کر سکتے ہیں. آپ کو ایک فلوٹ کا استعمال نہیں کرتے ہیں تو، آپ کو ایک ڈبل استعمال کر سکتے ہیں C میں، جس سے آپ آٹھ بائٹس، دیتا ہے zeros کی طریقہ زیادہ ممکن پیٹرن ہے اور ہیں. لیکن یہ جس کی جا رہی ہے، اب بھی محدود ہے آپ کے سافٹ ویئر لکھنا تو مشکلات ہو گرافکس کے لئے یا پسند کے لئے ریاضیاتی فارمولوں. تو آپ نے واقعی میں چاہتے ہو سکتا ہے اس سے بھی بڑا شمار کرنے کے لئے. ایک طویل long-- بیوقوفی named-- بھی آٹھ بائٹس، یا 64 بٹس ہے، اور یہ ایک int کے طور پر دو مرتبہ کے طور پر طویل ہے اور یہ ایک طویل عددی قیمت کے لئے ہے. تفریح ​​fact-- ایک int، چار بائٹس ہے تو عام طور پر C میں ایک طویل کتنا وقت ہے؟ اس کے علاوہ چار بائٹس، لیکن ایک طویل طویل آٹھ بائٹس ہے، اور اس تاریخی وجوہات کی بنا پر ہے. لیکن اب takeaway صرف اس کے اعداد و شمار ہے ہے ہے کہ ایک کمپیوٹر میں نمائندگی بجلی کے ساتھ ایک جسمانی آلہ، یہ عام طور پر ڈرائیونگ ہے ان zeros اور ones-- صحت سے متعلق کی محدود مقدار کے ساتھ. تو مسئلہ تو کیا ہے؟ ویسے ایک مسئلہ ہے عددی اتپرواہ کی. نہ صرف C میں، لیکن میں عام طور پر کمپیوٹر. مثال کے طور پر، اگر یہ ایک بائٹ کی مالیت ایک بٹ ہے تو یہ سب آٹھ بٹ ہے تو جس کا نمبر ایک ہیں. کیا نمبر یہ ہے ہم فرض تو نمائندگی یہ بائنری میں تمام مثبت اقدار ہے؟ 255، اور یہ 256 کی وجہ سے، نہیں ہے صفر کی سب سے کم تعداد ہے. تو 255 سب سے زیادہ ہے ایک، لیکن مسئلہ میں چاہتا تھا کہ لگتا ہے اس متغیر اضافہ ہے کہ آٹھ بٹس کل استعمال کر رہا ہے میں یہ اضافہ کرنا چاہتے ہیں تو. ویسے میں اضافہ کے طور پر جلد ہی کے طور پر ایک ان لوگوں کے تمام کرنے کے لئے ایک، آپ شاید صرف visually-- تصور کر سکتے ہیں decimals-- استعمال کرتے ہوئے ایک لے جانے والے کی طرح کچھ بائیں طرف بہتا جا رہا ہے. اور یقینا، میں تعداد شامل ہے تو اس کے لئے ایک، کیا ثنائی میں ہوتا ہے اسے واپس صفر overflows کی ہے. تو آپ کو صرف ایک int نہیں use-- تو، لیکن ایک ایک بائٹ integers کے شمار ایک پروگرام میں، کے طور پر جلد کے طور پر ڈیفالٹ کی طرف سے آپ، 250 حاصل کرنے کے لئے 251، 252، 253، 254، 255-- 0، 255 کے بعد آتا ہے جس شاید نہیں کیا ہے ایک صارف کی توقع کی جا رہی ہے. اب اس دوران نقطہ دنیا سچل میں، تم نے بھی اسی طرح کی ایک مسئلہ ہے. سب سے بڑا نمبر کے ساتھ اتنا نہیں اگرچہ اب بھی ایک مسئلہ ہے. لیکن صحت سے متعلق کی رقم کے ساتھ آپ کی نمائندگی کر سکتے ہیں. تو اس کی مثال کے طور پر ایک نظر ڈالیں یہاں بھی آج کے ذریعہ code-- سے فلوٹ 0.c. اور یہ ایک سپر نوٹس سادہ پروگرام ہے کہ بظاہر کس قدر کو پرنٹ کرنا چاہئے؟ اگر آپ اس کو پرنٹ کرنے کے لئے جا رہی ہے دانو کیا نئے نحو کے تھوڑا سا ہے اگرچہ یہاں؟ تو امید ہے کہ 0.1. تو ایک دسواں حصہ کے برابر میں 10 سے 1 تقسیم کر رہا ہوں کیونکہ. میں نے جواب ذخیرہ کرنے رہا ہوں ایک متغیر میں F بلایا. یہ متغیر کی قسم فلوٹ، ہے جو میں صرف مجوزہ مطلوبہ الفاظ موجود ہے. ہم اس سے پہلے دیکھا، لیکن نہیں ہے اس printf میں ایک صاف راستہ کی طرح ہے کتنے ہندسوں کی وضاحت کرنے کے لئے آپ ایک دشملو نقطہ کے بعد دیکھنا چاہتے ہیں. تو اس سنکیتن صرف کا مطلب کہ یہاں ایک پلیس ہولڈر ہے. یہ ایک چل نقاط کے لئے ہے قیمت، اور اوہ، راہ کی طرف سے، دشملو نقطہ کے ساتھ ساتھ یہ ظاہر دشملو نقطہ کے بعد ایک بڑی تعداد. تو یہ تعداد ہے اہم ہندسوں کی، تو آپ چاہتے ہیں کہ، بات کرنے کے لئے. تو مجھے آگے جانا ہے اور کرتے ہیں ./float-0، فلوٹ 0 بنانے، اور بظاہر 1 10 سے تقسیم 0.0 ہے. اب یہ کیوں ہے؟ ٹھیک ہے پھر، کمپیوٹر لے جا رہا ہے مجھے لفظی، اور میں 1 لکھا ہے اور میں نے 10 لکھا، اور ایک اندازہ کیا ان دونوں کے لئے فرض کیا گیا ڈیٹا کی قسم ہے اقدار؟ ایک int، یہ تکنیکی ہے کچھ تھوڑا مختلف. یہ عام طور پر ایک طویل ہے، لیکن یہ ہے بالآخر ایک لازمی قیمت. نہیں چل نقاط کی قیمت. جو ہے تو اس کا کہنا ہے کہ ، ایک int ہے اور یہ ایک int ہے مسئلہ کمپیوٹر ہے کی صلاحیت نہیں ہے یہاں تک کہ اعشاریہ ذخیرہ کرنے کے لئے. آپ 1 جب تو تقسیم 10 کا استعمال کرتے ہوئے integers کی طرف سے شمار کنندہ اور دونوں کے لئے ذواضعاف اقل، جواب 0.1 ہونا چاہئے. لیکن کمپیوٹر کی وجہ سے ان integers کا ہو 0.1 کے ساتھ کیا پتہ نہیں ہے. تو کیا یہ واضح طور پر کر رہا ہے؟ یہ صرف، اسے دور پھینک ہے اور میں بالآخر کیا دیکھ رہا ہوں میں نے اصرار کیا کہ صرف اس وجہ سے 0.0 ہے printf یہ میرے ایک دشملو نقطہ ظاہر. لیکن مسئلہ یہ ہے کہ اگر آپ ایک عددی کی طرف سے ایک عددی تقسیم، آپ تعریف کی طرف سے get-- گا کی ایک عددی C--. اور ایسا کرنے والا نہیں ہے اچھا اور آسانی سے کچھ اپ کے لئے اس دور کی طرح ایک یا نیچے قریبی. یہ تراش جا رہا ہے دشملو کے بعد سب کچھ. تو صرف intuitively، شاید ایک حل کیا ہے؟ یہاں آسان حل کیا ہے؟ جی ہاں؟ بالکل ٹھیک. کیوں ہم صرف کے طور پر ان کا علاج نہیں ہے مؤثر طریقے سے چل نقاط کے اقدار فلوٹ یا ڈبلز میں تبدیل. اور اب میں کروں floats اگر-0، یا میں floats کے 1 مرتب تو، جس کے لئے ایک جیسی ہے کیا صرف تجویز کیا گیا ہے. اور اب میں floats کے 0، اب میں اپنے 0.1 حاصل کرتے ہیں. اب یہ حیرت انگیز ہے. لیکن اب میں کرنے جا رہا ہوں کچھ تھوڑا مختلف. میں واقعی میں کیا ہے دیکھنے کے شوقین ہوں، ہڈ کے نیچے جا رہا، اور میں نے اس کو پرنٹ کرنے کے لئے جا رہا ہوں باہر 28 اعشاری مقامات. میں واقعی میں دیکھنا چاہتے ہیں 0.1000-- ایک infinite-- کہ 0.1 کے بعد [اشراوی] 27 سے zeros. ٹھیک ہے تو دیکھتے ہیں میں یقینا حاصل کیا. floats کے 0 ایک ہی فائل بنائیں. ./floats-0. کی ڈرامائی جواب پر میں زوم. اس وقت، آپ سوچ رہا ہوں 10 سے تقسیم 1 10٪، یا 0.1 ہے. یہ نہیں ہے. کم از کم اب تک کے طور پر کمپیوٹر کی متعلقہ. ٹھیک why-- اب، یہ مکمل ہے 10 سے تقسیم جھوٹ 1 0.1 ہے. لیکن یہ نہیں ہے کہ why-- takeaway ہے آج. تو کمپیوٹر، لگتا ہے کمرے میں ہم سب کے برعکس، 10 سے 1 تقسیم ہے اصل میں اس پاگل کی قیمت؟ بظاہر کر کمپیوٹر کیا ہے؟ یہ کیا ہے؟ یہ فی SE، اتپرواہ نہیں ہے. اتپرواہ عام طور پر ہے جب آپ کو ایک کی قیمت کے ارد گرد لپیٹ. یہ imprecision کی اس مسئلہ ہے چل نقاط کی قیمت میں آپ کو صرف 32 ہے جہاں یا شاید بھی 64 بٹ. لیکن ایک لامحدود ہے تو حقیقی تعداد کی تعداد دشملو پوائنٹس کے ساتھ کی تعداد اور تعداد یقینا اس کے بعد آپ ان میں سے سب کی نمائندگی نہیں کر سکتے ہیں. تو کمپیوٹر دیا ہے ہم سے قریب ترین میچ قیمت کے لئے اس کا استعمال کرتے ہوئے کی نمائندگی کر سکتے ہیں میں واقعی چاہتے ہیں کی قیمت کے لئے بہت سے بٹس، جس 0.1 ہے. بدقسمتی سے، اگر آپ ریاضی کر شروع، یا آپ سچل کے ان قسم کے شامل شروع اہم پروگراموں میں نقطہ اقدار مالی سافٹ ویئر، فوجی software-- کچھ جہاں خیال ہے شاید بہت اہم. اور آپ کو انہوں نے مزید کہا شروع اس طرح کی تعداد، اور شروع سافٹ ویئر چل رہا ہے واقعی بڑے آدانوں کے ساتھ یا گھنٹے یا بہت بہت کے لئے سال کے دنوں میں یا بہت سے، ان چھوٹی چھوٹی غلطیوں یقینا وقت پر شامل کر سکتے ہیں. اب ایک طرف ایک کے طور پر، اگر آپ کو ہے تو کبھی سپرمین 3 یا دفتر کی جگہ دیکھا اور آپ کو یاد کر سکتے ہیں کس طرح ان لوگوں کو چرا لیا ان کے کمپیوٹر سے رقم کا ایک بہت چل نقاط کے اقدار کا استعمال کرتے ہوئے کی طرف سے اور بہت کم کو شامل remainders کے، امید ہے کہ فلم اب سمجھ میں آتا ہے. یہ وہ تھے کیا ہے اس فلم میں کے لئے alluding. حقیقت یہ ہے کہ سب سے زیادہ کمپنیوں نظر نہیں کریں گے ایک مخصوص تعداد کے بعد اعشاری مقامات کی، لیکن وہ سینٹ کی مصنوعات ہیں. تو آپ کو، ان کے شامل شروع آپ کو پیسے کی ایک بہت بنانے کے لئے شروع آپ کے بینک اکاؤنٹ میں. تو وہ آفس کے لئے جگہ کی وضاحت کی ہے. اب بدقسمتی سے باہر دفتر کی جگہ، وہاں کچھ قانونی پریشان ہیں اور اہم اثرات کی یہ قسم بنیادی ڈیزائن کے فیصلوں، وجوہات میں سے اور بے شک ایک ہم نے کورس میں C کا استعمال اگر تم واقعی اس زمین ہے ہے تاکہ کمپیوٹر کس طرح کام کی تفہیم کو، کس طرح سافٹ ویئر کے کام، اور نہیں حاصل کی جاچکی کے لئے کچھ لے. اور یقینا بدقسمتی سے، کے ساتھ بھی بنیادی تفہیم، انسانوں ہم غلطی. اور کیا میں اشتراک سوچا ہے یہ آٹھ منٹ کی ویڈیو یہاں لیا ہے جو ایک جدید Marvels واقعہ، سے چیزیں کس طرح کام پر ایک تعلیمی شو کہ دو تصاویر پینٹ جب ایک نا مناسب استعمال اور کی تفہیم چل نقاط کے اقدار کچھ اہم کرنے کے لئے کی قیادت کی بدقسمتی نتائج. چلو ایک نظر ڈالیں. [ویڈیو پلے بیک] اب ہم انجینئرنگ "پر واپس جدید Marvels آفات ". کمپیوٹر. ہم سب کو قبول کرنے آیا ہوں اکثر نراشا مسائل them-- کیڑے، وائرس کے ساتھ ہے، اور چھوٹے کی قیمتوں کے لئے سافٹ ویئر glitches-- سہولت کے لئے ادا کرنے کے لئے. لیکن ہائی ٹیک اور ہائی سپیڈ میں فوج اور خلائی پروگرام ایپلی کیشنز، سب سے چھوٹی مسئلہ کر سکتے ہیں تباہی میں magnified ہو. 4 جون، 1996، سائنسدانوں نے تیار ایک بغیر پائلٹ Ariane 5 راکٹ شروع کرنے کے لئے. یہ سائنسی لے جا رہا تھا مصنوعی سیارہ ڈیزائن واضح طور پر کس طرح قائم کرنے کے لئے زمین کے مقناطیسی میدان انٹرایکٹ شمسی ہواؤں کے ساتھ. راکٹ کے لئے تعمیر کیا گیا تھا یورپی خلائی ایجنسی، اور اس سہولت سے اٹھا فرانسیسی گیانا کے ساحل پر. میں 37 اور -at پرواز، وہ سب سے پہلے دیکھا کچھ غلط ہو رہا تھا. nozzles کے swiveling گیا ہے کہ ایک طرح سے وہ واقعی نہیں کرنا چاہئے. پرواز میں تقریبا 40 اور، واضح طور پر گاڑی، مصیبت میں تھا جب انہوں نے اور یہ کہ فیصلہ اس کو تباہ کرنے. رینج سیفٹی آفیسر، کے ساتھ زبردست ہمت، بٹن دبایا اس سے پہلے اور راکٹ دھماکے سے اڑا دیا عوام کی حفاظت کے لئے ایک خطرہ بن. -یہ شادی سے پہلے تھا سے Ariane 5 کے سفر، اور اس کی تباہی لیا کیونکہ دوش کی جگہ راکٹ سافٹ ویئر میں سرایت. پر -The مسئلہ سے Ariane تھا کہ وہاں کی ضرورت ہے کہ ایک بڑی تعداد تھی 64 بٹس، اظہار کرنے کے لئے اور وہ تبدیل کرنے کے لئے کرنا چاہتا تھا ایک 16 بٹ تعداد میں. ان کی تعداد کہ فرض کیا گیا بہت بڑا ہونے جا رہا نہیں کیا گیا تھا. کہ میں ان لوگوں کو ہندسوں کے سب سے زیادہ 64 بٹ تعداد سے zeros تھے. وہ غلط تھے. ایک کے اسمرتتا سافٹ ویئر پروگرام کو قبول کرنے کی طرف سے پیدا نمبر کی قسم ایک اور ناکامی کی جڑ تھا. سافٹ ویئر ڈیویلپمنٹ کی بن گیا تھا ایک نئی ٹیکنالوجی کے بہت مہنگا کا حصہ. Ariane 4 راکٹ تھا بہت کامیاب رہا. کے لئے پیدا سافٹ ویئر کی اتنی یہ بھی سے Ariane 5 میں استعمال کیا گیا تھا. Ariane. بنیادی مسئلہ تھا سے Ariane 5. faster--، تیز تیز تھا اور سافٹ ویئر ہے کہ کے لئے حساب نہیں کیا تھا. راکٹ کی تباہی ایک بہت بڑا مالی تباہی تھا. سب کی وجہ سے ایک منٹ سافٹ ویئر کی خرابی. لیکن اس سے پہلے نہیں تھا وقت ڈیٹا تبادلوں کے مسائل جدید راکٹ ٹیکنالوجی دوچار تھا. آغاز کے ساتھ 1991 -میں خلیج کی پہلی جنگ کے، پیٹریاٹ میزائل ایک اسی قسم کی تجربہ ایک تعداد تبادلوں سے مسئلہ. اور اس کے نتیجے کے طور پر 28 کہ لوگ 28 امریکی soldiers-- ہلاک ہو گئے تھے، اور تقریبا ایک سو زخمی ہوئے. تو چاہیے تھا جس پیٹریاٹ، آنے والے Scuds کے خلاف کی حفاظت کے لئے، ایک میزائل کو برطرف کرنے میں ناکام رہے. کب عراق کویت اور امریکہ پر حملہ کر دیا ابتدائی 1991 میں صحرا طوفان کا آغاز، پیٹریاٹ میزائل بیٹریاں تعینات کیا گیا تھا سعودی عرب اور اسرائیل کی حفاظت کے لئے عراقی Scud میزائل حملوں سے. پیٹریاٹ ایک امریکی درمیانی رینج ہے زمین سے ہوا نظام ریتیان کمپنی کی طرف سے تیار. پیٹریاٹ کے -The سائز انٹرسیپٹر خود اس کے بارے میں تقریبا 20 فٹ طویل ہے اور اس کے بارے میں 2،000 پونڈ کا وزن. اور یہ، کے بارے میں ایک warhead اٹھانے میں اس کے تقریبا 150 پونڈ ہے. اور warhead خود ہے ایک اعلی دھماکہ خیز مواد، جس میں اس کے ارد گرد ٹکڑے ہے. تو warhead کے سانچے ہے ایک buckshot کی طرح کام کرنے کے لئے ڈیزائن. -The میزائل کئے جاتے ہیں کنٹینر فی چار، اور ایک نیم ٹریلر کی طرف سے منتقل کر رہے ہیں. -The پیٹریاٹ اینٹی میزائل نظام اب کم از کم 20 سال پیچھے چلا جاتا ہے. یہ اصل میں ڈیزائن کیا گیا تھا ایک فضائی دفاعی میزائل کے طور پر دشمن کے ہوائی جہاز کو نیچے گولی مار کرنے کے لئے. خلیج کی پہلی جنگ میں کہ جنگ پر آئے تو، فوج کے لئے استعمال کرنا چاہتا تھا Scuds کے، نہیں ہوائی جہاز کے نیچے گولی مار. عراقی ائیر فورس تھا ایک مسئلہ کے اتنا نہیں، لیکن فوج Scuds کے بارے میں فکر مند تھا. اور تاکہ وہ کرنے کی کوشش کی پیٹریاٹ کو اپ گریڈ. دشمن -Intercepting 5 مچ میں سفر میزائل کافی چیلنج کیا جا رہا تھا. لیکن جب پیٹریاٹ کی خدمت میں لے جایا گیا تھا، فوج کے بارے میں معلوم نہیں تھا ایک عراقی ترمیم کہ ان Scuds کے بنا تقریبا یہ ناممکن. کیا ہوا Scuds کے ہے میں آ رہے تھے غیر مستحکم تھے. وہ ڈانواڈول تھے. اس کی وجہ یہ Iraqis-- تھا 600 کلومیٹر سے باہر حاصل کرنے کے لئے ایک 300 کلومیٹر رینج missile-- کے ، سامنے warhead سے باہر وزن لیا اور warhead ہلکا بنا دیا. تو اب پیٹریاٹ آنے کی کوشش کر Scud میں، time-- کے اور سب سے زیادہ کی غالب اکثریت time-- یہ صرف Scud کی طرف سے پرواز. پیٹریاٹ نظام آپریٹرز -Once ، پیٹریاٹ اس کا ہدف یاد احساس انہوں نے پیٹریاٹ کی warhead اڑا دیا اگر یہ ممکن جانی نقصان سے بچنے کے لئے زمین پر گر کی اجازت دی گئی. -That سب سے زیادہ لوگوں نے دیکھا تھا کے طور پر آسمان میں بڑے fireballs، اور کے طور پر غلط سمجھا Scud ہتھیاروں کے پکڑے. رات آسمان، محب وطن میں -Although کامیابی کے ساتھ تباہ کرنے کے لئے شائع Scuds کے، Dhahran میں نہیں ہو سکتا اس کی کارکردگی کے بارے میں کوئی غلطی نہیں. نہیں پیٹریاٹ کے رڈار نظام آنے والے Scud کے کھو ٹریک اور وجہ سے شروع کبھی نہیں ایک سافٹ ویئر کے دوش پر. یہ سب سے پہلے دریافت کیا جو اسرائیلی تھا اب نظام پر تھا، زیادہ سے زیادہ وقت تضادات پائے جانے بن گیا. وجہ سرایت گھڑی کی نظام کے کمپیوٹر میں. -About دو ہفتے قبل Dhahran، میں سانحہ، اسرائیلیوں کی رپورٹ محکمہ دفاع کہ نظام وقت ہار رہا. آٹھ گھنٹے کے بعد چلانے کے، وہ محسوس نظام کی بننے کہ کافی کم درست. محکمہ دفاع کی طرف سے جواب پیٹریاٹ بیٹریاں کی تمام کہہ نظام نہیں چھوڑ ایک طویل وقت کے لئے. انہوں نے ایک طویل وقت تھا نے کبھی نہیں کہا. 8 گھنٹے، 10 گھنٹے، ایک ہزار گھنٹے. کوئی بھی جانتے تھے. -The پیٹریاٹ بیٹری بیرکوں میں تعینات الظهران اور اس ناقص اندرونی میں گھڑی 100 سے زائد گھنٹے کے لئے کیا گیا تھا 25 فروری کی رات کو. یہ ایک درستگی کا وقت پتہ لگایا کے ایک سیکنڈ کے دسویں کے بارے میں. ایک دوسرے کے اب دسویں ایک دلچسپ تعداد ہے اس کا اظہار نہیں کیا جا سکتا کیونکہ ، بالکل بائنری میں جس یہ بالکل ظاہر نہیں کیا جا سکتا ہے کا مطلب کسی بھی جدید ڈیجیٹل کمپیوٹر میں. یہ یقین کرنا مشکل ہے لیکن ایک مثال کے طور پر اس کا استعمال. کی تعداد ایک تہائی ہے. ایک تہائی نہیں ہو سکتا بالکل دشملو میں اظہار. ایک تہائی 0،333 ہے انفینٹی کے لئے جا. کے ساتھ ایسا کرنے کے لئے کوئی راستہ نہیں ہے ایک دشملو میں مکمل درستگی. مسئلہ یہ ہے کہ بالکل قسم ہے کہ پیٹریاٹ میں ہوا. اب نظام بھاگ گیا، برا وقت غلطی بن گیا. آپریشن کے 100 گھنٹے -کے بعد، وقت میں غلطی صرف ایک تہائی تھا ایک دوسرے کے. لیکن ایک کی ھدف بندی کے لحاظ سے 5 مچ میں سفر میزائل، یہ ایک سے باخبر رہنے کے نتیجے میں 600 سے زائد میٹر کی غلطی. یہ ایک مہلک غلطی ہو گی Dhahran میں فوجیوں کے لئے. ایک Scud آغاز تھا کیا ہوا ابتدائی انتباہ مصنوعی سیارہ کی طرف سے پتہ چلا، اور وہ ایک Scud آ رہا تھا جانتے تھے ان کے جنرل سمت میں. یہ آ رہا تھا جہاں وہ نہیں جانتا تھا. یہ ریڈار تک اب تھا پیٹریاٹ نظام کے اجزاء دفاع Dhahran تلاش اور رکھنے کے لئے آنے والے دشمن میزائل کے ٹریک. -The ریڈار بہت ہوشیار تھا. یہ اصل ٹریک گا Scud کی پوزیشن اور پھر جہاں کی پیشن گوئی یہ شاید ہو جائے گا اگلی بار ریڈار ایک پلس بھیجا. یہ رینج دروازے بلایا گیا تھا. پیٹریاٹ ایک بار -Then کافی وقت ہے فیصلہ واپس جاؤ اور چیک کے لئے منظور یہ پتہ چلا اعتراض کے لئے محل وقوع اسے واپس جاتا ہے. تو یہ غلط کرنے کے لئے واپس چلا گیا جب جگہ، تو کوئی اعتراض دیکھتا ہے. اور یہ کوئی اعتراض نہیں تھا کہ فیصلہ. ایک جھوٹ کا پتہ لگانے نہیں تھا کہ اور اس ٹریک قطرے. -The آنے والے Scud غائب ہو گیا ریڈار اسکرین سے، اور بعد میں، یہ بیرکوں میں slammed. Scud 28 ہلاک. یہ گزشتہ ایک نکالا گیا خلیج کی پہلی جنگ کے دوران. بدقسمتی سے، اپ ڈیٹ سافٹ ویئر اگلے دن پر طلوع فجر پر پہنچے. سافٹ ویئر دوش تھا رہا مقرر، اختتامی شورش زدہ میں ایک باب پیٹریاٹ میزائل کی تاریخ. [END ویڈیو پلے بیک] DAVID J. MALAN: یہ CS50 کے لئے ہے. ہم آپ کو بدھ کو دیکھیں گے. [موسیقی بجانے]