[موسیقی بجانے] DAVID J. MALAN: ٹھیک ہے، اس CS50 ہے. اور اس ہفتے سے ایک ہے. چنانچہ ہفتے صفر میں ہے کہ آخری بار یاد، ہم کمپیوٹیشنل سوچ پر مرکوز. اور ہم اس سے کو منتقل سکریچ، ایک گرافیکل پروگرامنگ ہمارے دوستوں سے زبان ایم ائی ٹی کی میڈیا لیب میں. اور سکریچ کے ساتھ، ہم نے دریافت کیا افعال جیسے خیالات، اور حالات، اور loops، اور متغیر، اور یہاں تک کہ واقعات، اور موضوعات، اور زیادہ. اور آج، ہم کرنے جا رہے ہیں ان خیالات کا استعمال جاری، اور واقعی کے لئے ان کو لینے عطا کی، لیکن ان کا ترجمہ C. ابھی طور پر جانا کسی دوسری زبان میں، C ایک زیادہ روایتی زبان ہے. یہ ایک کم سطح ہے زبان، اگر آپ. یہ خالصتا متنی ہے. اور اس طرح پہلی نظر میں، یہ ہے سب نہیں بلکہ خفیہ دیکھنے کے لئے جا اگر آپ پہلے پروگرام کبھی نہیں کیا ہے. ہم کے لئے جا رہے سیمی کولون، اور قوسین، اور گھوبگھرالی منحنی خطوط وحدانی، اور زیادہ. لیکن یہ بھی احساس نحو ہے اگرچہ ایک چھوٹا سا نا واقف نظر کرنے کے بارے میں تم میں سے سب سے زیادہ کے لئے، کہ ماضی دیکھیں. اور خیالات کو دیکھنے کے لئے کی کوشش کریں ہیں ہیں، یقینا، واقف، یہاں ہفتے میں ایک کیا کیونکہ ہم آپس میں موازنہ کرنے کے لئے ہے کرنے کے لئے شروع کر دیں گے ابتدائی طور پر، C. مقابلے سکریچ لہذا، مثال کے طور پر، یاد کرتے ہیں جب ہم اس ہمارے پروگراموں کے پہلے سے لاگو آخری بار، ہم نے دیکھا کہ ایک بلاک تھا this-- جب طرح کچھ سبز پرچم پر کلک کریں، اور پھر ہم نے اس کے نیچے ایک یا ایک سے زیادہ پہیلی کے ٹکڑے ٹکڑے، اس صورت میں، کا کہنا ہے کہ، ہیلو دنیا. لہذا، یقینا، سکریچ میں، مجھے لگتا ہے کہ سبز پرچم پر کلک کریں جب اپنے پروگرام کو چلانے کے لئے ہے، لہذا بات کرنے کے لئے، یہ ہیں پھانسی دے دی ہو کہ بلاکس، یا رن. اور، خاص طور پر، سکریچ کہا، خوش، دنیا. اب، میں بیان کردہ ہو سکتا تھا یہاں مختلف الفاظ. لیکن ہم بے شک، کہ، بہت سے نظر آئے گا ان blocks-- اور بے شک میں، C میں کئی افعال میں ہو سکتا ہے parametrized یا اپنی مرضی مختلف چیزیں کرنے کے لئے. سچ تو یہ ہے، C میں ہم نے تو اب، تبدیل کرنا چاہتے ہیں، اس کے شروع کے پروگرام اس دوسری زبان کے لئے، ہم ایک لکھنے کے لئے جا رہے ہیں اس طرح کچھ. عطا کی، کچھ مجریچت ہے وہاں نحو سب سے زیادہ امکان، INT، اور قوسین، اور صفر. لیکن اگرچہ تم کروگی printf-- لگتا ہے کہ یہ صرف پرنٹ کیا جائے گا. لیکن print پرنٹ کا مطلب ، فارمیٹ کیا ہم جلد ہی دیکھیں گے کے طور پر. یہ لفظی پرنٹ گا سکرین پر جو کچھ بھی ، ان قوسین کے اندر ہے جو کورس کے اس معاملے میں، ہیلو دنیا ہے. لیکن تم کچھ دوسرے محسوس کریں گے نحو، کچھ ڈبل قیمت درج کرنے، کہ آخر میں قوسین، نیم بڑی آنت اور طرح. چنانچہ ہیڈ کا تھوڑا سا ہے، تو بات کرنے کی، دونوں cognitively اور میں syntactically، ہم جا رہے ہیں طویل عرصے سے پہلے یاد کرنے کی ضرورت کے لئے. لیکن عملی طور پر ساتھ کہ اس کا احساس، یہ آپ کو باہر کود کرنے کے لئے شروع ہو جائے گا. سچ تو یہ ہے، چلو اس سے ایک پر توجہ مرکوز کرتے ہیں تقریب، اس معاملے میں specifically-- ہیلو دنیا کا کہنا ہے کہ. تو کہتے ہیں کہ دالہ ہے. ہیلو دنیا اس پیرامیٹر ہے، یا دلیل، اس کی اصلاح. اور C میں مساوی صرف ہے یہاں اس ایک لائن ہونے جا رہا، printf کے برابر ہے جہاں،، کا کہنا ہے کہ ڈبل کے حوالے سے کہا سٹرنگ، ہیلو دنیا، کورس کے، برابر ہے وہاں سفید باکس میں کیا ہے کرنے کے لئے. اور الٹا سلیش (ن)، ایک چھوٹا سا اگرچہ عجیب اور شروع سے غائب، بس اثر ہم کریں گے کر جا رہا ہے ایک کمپیوٹر میں دیکھ، اپنے میک یا ایک پی سی کی طرح، بس آگے بڑھ اگلی لائن پر کرسر. اسے مارنے کی طرح ہے اپنے کی بورڈ پر درج. تو ہم سے بہت پہلے پھر سے دیکھ لیں گے. لیکن سب سے پہلے، چلو اس پر ایک نظر ڈالیں ہیں loops کی صورت میں دوسری مثال. ہم آخری بار یہ ہمیشہ کے لئے لوپ تھا پہیلی کے ٹکڑے ٹکڑے کا ایک سلسلہ تھا جس میں کہ لفظی کچھ کیا اس معاملے میں forever--، کہتے ہیں، دنیا ہیلو، ہیلو دنیا، ہیلو دنیا، دنیا ہیلو. تو یہ ڈیزائن کی طرف سے ایک لامحدود لوپ ہے. C میں، ہم اس کو نافذ کرنا چاہتے ہیں تو اسی خیال، ہم صرف یہ کر سکتا ہے. سچ ہے، جبکہ ہیلو printf کے اب world-- جبکہ، صرف semantically بنانا، اس قسم کی ایسا کرنے کے خیال کی یاد دلاتا ہے کچھ دوبارہ، اور پھر، اور پھر، اور کب تک؟ ویسے، true-- کو یاد ہوگا کہ سچ صرف پر یا ایک ہے. اور سچ، کورس کے، ہمیشہ سچ ہے. تو یہ ایک بے معنی کی طرح ہے بیان صرف سچ کہنے کے لیے. لیکن درحقیقت یہ جان بوجھ ہے، سچ صرف ہمیشہ سچ ہے تو اس کی وجہ، سچ صرف کا مطلب ہے جبکہ مقابلے میں، بالواسطہ طور پر ایک چھوٹا سا ہے تو، کوڈ کا مندرجہ ذیل لائنوں کہ ان گھوبگھرالی منحنی خطوط وحدانی کے درمیان میں صرف پھانسی چاہئے پھر، اور پھر، اور ایک بار پھر، اور اصل میں کبھی نہیں روک. لیکن اگر تم چاہتے ہو تو اپنے ہم کے طور پر، کو روکنے کے لئے لوپ طرح کچھ کے ساتھ آخری بار کیا یہ مندرجہ ذیل 50 بار دہرائیں، C میں ہم نے کیا ہے کے ساتھ بھی ایسا ہی کر سکتے ہیں مطلوبہ الفاظ کی loop-- لئے ایک نامی ، لیکن اس کے لئے بھی نہ ہونے کی وجہ سے. اور پھر ہم، یہاں کچھ نئے نحو ہے int کے ساتھ میں نے کے برابر ہے 0، میں نے کم 50، میں + +. اور ہم اس کے لئے واپس آ جائیں گے. لیکن یہ صرف ہے کہ ہم کس طرح کریں گے سکریچ بلاکس کے سیٹ میں ترجمہ کوڈ کے سی لائنوں کی ایک سیٹ کرنے کے لئے. دریں اثنا، متغیر غور. اور، اصل میں، ہم صرف ایک لمحے پہلے دیکھا. اسکریچ کی صورت میں ہے اور اگر، ہم میں نامی ایک متغیر کا اعلان کرنا چاہتے تھے میں عددی ہونے کے لئے، صرف ایک نمبر، اور ہم کچھ قدر کرنے کے لئے مقرر کرنا چاہتے ہیں، ہم اس سنتری کا استعمال کریں گے یہاں مجھے 0 مقرر کو بلاک. اور آج ہم دیکھ لیں گے اور اس سے آگے، صرف گزشتہ ہفتے کی طرح، پروگرامرز تقریبا ہمیشہ ایسا ، صفر سے گنتی شروع واقعی کنونشن کی طرف سے. بلکہ سے یاد ہمارے بائنری کی بحث، سب سے چھوٹی تعداد آپ کر سکتے ہیں بٹس کی کسی بھی تعداد کے ساتھ کی نمائندگی کرتے ہیں صرف 0 خود بننے جا رہی ہے. اور اس طرح ہم عام طور پر شروع کر دیں گے 0 سے بھی ہمارے متغیر ابتدا. اور C میں، ایک ہی کرنا ہم int کہنے جا رہے ہیں عددی کے لئے، صرف کنونشن کی طرف سے مجھے. میں اس متغیر بلا سکتی تھی کچھ بھی میں چاہتا ہوں، صرف سکریچ میں طرح. اور پھر برابر 0 خصوصا دیتا دائیں سے قدر 0 اور متغیر میں رکھتا ہے، یا وہاں سٹوریج کنٹینر، بائیں طرف. اور نیم بڑی آنت ہم دیکھتے لیں گے کے طور پر اور ہم ان میں سے چند ایک نے پہلے ہی دیکھا ہے ابھی سوچا کے اختتام کا مطلب ہے. کچھ اور کرنا ڈاؤنلوڈ کریں فالو کریں کہ لائنوں پر. اب کیا بولین اظہار کے بارے میں؟ شروع میں اس کو یاد ہوگا، ان کے تاثرات تھے یا تو سچے ہیں کہ یا false-- کے سوالات، واقعی، صحیح یا غلط ہیں کہ. تو سکریچ کی صورت میں، ہم ہی نے اس طرح ایک سادہ سوال پوچھ، میں نے 50 سے کم ہے؟ تو میں نے ایک بار پھر، ایک عدد صحیح ہے. شاید ہم اسے استعمال کر رہے ایک سکریچ پروگرام میں ایک سکور کے ٹریک رکھنے کے لئے یا کچھ اس طرح. شروع میں یہاں تو یہ نحو صرف کا مطلب، میں نے 50 سے کم ہے؟ ویسے، شکر ہے، کچھ ہے C. میں اور ترجمہ کرنے کی سادہ، یہ ہم صرف کم میں کہیں گے 50، واقف کلید کا استعمال کرتے ہوئے اپنے کی بورڈ پر. دریں اثنا، اگر آپ کرنا چاہتے تھے کچھ جنرل کا کہنا ہے کہ، کی طرح، اچھی طرح سے، Y جہاں ہر مقابلے X بھی کم ہے X اور Y کی خود متغیر ہیں؟ ہم ایک ہی بات کر سکتے ہیں C میں، اتنی دیر سے ہم نے اس کو ان متغیرات میں پہلے ہی پیدا. اور ہم کس طرح کرنے کے لئے نظر آئے گا طویل عرصے سے پہلے کہ ایسا. ہم صرف Y سے زیادہ X بھی کم کہیں گے. تو آپ کے لئے شروع کر رہے ہیں کچھ مماثلت دیکھیں. اور بنایا ان لوگوں کو جو لوگ سکریچ یقینی تھے ان بنیادی خیالات سے کچھ کی طرف سے حوصلہ افزائی. اور اگر تم کو اس قسم کی کو دیکھ لیں گے بہت سے زبانوں میں سے نحو نہ صرف، فیرنا نہیں صرف C، لیکن ازگر، اور جاوا سکرپٹ، اور اب بھی دیگر زبانوں. اس کی ایک اور تعمیر پر غور کرتے ہیں C سے، ایک شرط کے تصور، مشروط کچھ کر. کچھ سچ ہے تو، ایسا. کچھ اور سچ ہے تو، وہ کروں. یہ پروگرامنگ کی طرح ہے راستے میں ایک کانٹا کے برابر. شاید یہ ایک دو طرفہ کانٹا ہے، تین راستہ کانٹا، یا اس سے زیادہ. اور شروع میں، ہم کو ہو سکتا ہے کچھ اس طرح دیکھا. لہذا یہ ایک بڑا ایک ہے. لیکن رشتہ دار غور منطق کی سادگی. X Y سے کم ہے تو، پھر کہیں X بھی کم ہے Y مقابلے، X Y سے بڑا ہے اور اگر، پھر کہیں X Y سے بڑا ہے. اور پھر، منطقی طور پر، اگر آپ سکریچ واپس لگتا یا صرف آپ کے اپنے انسانی وجدان، ساتھ ساتھ، X Y سے بڑا نہیں ہے تو، اور ایکس کورس کے اس کے بعد Y سے کم نہیں ہے، X Y کے برابر ہو جا رہا ہے. اس صورت میں، nesting کے ذریعے تو ان لوگوں کے سکریچ بلاکس، ہم نے ایک تین حاصل کر سکتے ہیں سڑک میں راستہ کانٹا؟ دریں اثناء، ہم کرنا چاہتے ہیں تو arguably سب C میں ایسا جو، کم از کم ایک چھوٹا سا simpler-- لگتا ہے آپ نحو کے ساتھ واقف حاصل ایک بار. X Y سے کم ہے تو، printf کے X Y سے بھی کم ہے. ورنہ X Y سے زیادہ ہے تو، printf کے X Y سے بڑا ہے. ورنہ printf کے ایکس، y-- اور کے برابر ہے ایک بار پھر، کے ساتھ ان لوگوں الٹا سلیش صرف ختم ہو جاتی ہے ان لوگوں کو نئی لائنوں کے لئے کہ اگر ایسا ہے تو آپ کو اصل پروگرام کی اس قسم کی بھاگ گیا یہ صرف منتقل کرے گا آپ کا کرسر بالآخر سکرین کی اگلی لائن. اب، اس دوران سکریچ دوسرے تھا زیادہ جدید ترین خصوصیات، صرف جن میں سے کچھ ہم کرنے جا رہے ہیں ابتدائی طور پر C. کی دنیا پر منتقل اور ان میں سے ایک تھا شروع میں ایک فہرست کو بلایا. اور یہ ایک خاص تھا متغیر کی قسم کہ آپ ایک سے زیادہ چیزوں کو سٹور کرنے کی اجازت یہ پیٹھ میں، واپس کرنے کے لئے، واپس کرنے کے لئے، واپس کرنے کے لئے. C میں، یہ ضروری نہیں ہے فہرستوں، SE فی، لیکن کچھ زیادہ عام ہیں کہ ، arrays کہا جاتا ہے، اگرچہ ہم کریں گے بعد میں اس سمسٹر میں واپس آئیں کچھ دیکھ کرنے ایک فہرست، یا واقعی ایک لنک کی فہرست بلایا. لیکن اب، سب سے قریب کے لئے ہمارے لئے C میں برابر کچھ نہ کچھ ہونے جا رہا ہے ایک صف بلایا. اور ایک صف صرف ایک ہے متغیر کی خاص قسم کہ آپ کو ڈیٹا سٹور کرنے کی اجازت دیتا ہے واپس، واپس کرنے کے لئے واپس کرنے کے لئے واپس کرنے کے لئے. اور، یقینا، سکریچ میں، ہم تک رسائی حاصل کرنا چاہتے تھے تو ایک صف کے پہلے عنصر یا ایک list-- اور میں نے اسے فون کرنے جا رہا ہوں کنونشن، ہے argv، دلیل کی طرف سے ویکٹر، لیکن طویل عرصے سے پہلے اس پر مزید. میں نے پہلے عنصر کو حاصل کرنے کے لئے چاہتے ہیں، تو کی، argv کے سکریچ کی دنیا میں آپ اصل میں عام طور پر کرتے ہیں 1 سے گنتی شروع. اور تو میں argv کی اشیاء 1 حاصل ہو سکتا ہے. یہی MIT لاگو صرف کس طرح ہے فہرستوں کے تصور. لیکن C میں، میں جا رہا ہوں زیادہ صرف صرف اتنا کہنا، ہے argv، جس میں دوبارہ کا نام ہے میرا list-- یا واضح رہنا، ایک سرنی. اور میں نے پہلی چاہتے ہیں تو عناصر، میں جا رہا ہوں مربع بریکٹ استعمال کرنے کے لئے، آپ کو کون سا اکثر ایک کی بورڈ کے تحت استعمال نہیں ہو سکتا ہے. مگر 0 صرف کا مطلب، مجھے سب سے پہلے حاصل. چنانچہ اس موقعہ پر اور کے طور پر وقت گزر جاتا ہے، ہم جا رہے ہیں ان dichotomies دیکھنے کے لئے شروع کرنے کے لئے سکریچ اور C کے درمیان، جس کے تحت سکریچ ایک کا استعمال کرتا. C میں ہم یہاں 0 استعمال کریں. لیکن اگر آپ کو فوری طور پر نظر آئے گا آپ سمجھ ہی بار ہر زبان کی بنیادیں، کہ یہ تمام چیزیں زیادہ حاصل کرنے کے لئے شروع مشق اور مشق کے ذریعے واقف. تو اصل میں ایک پروگرام میں اب دیکھو. یہاں ہمارے C کے پہلے ہوں گے مکمل پروگرام کے لئے ماخذ کوڈ. اور پروگرام ہم جا رہے ہیں غور کے لئے پیش کرنے کے لئے برابر ہے کہ ایک ہے کہ پہلے سکریچ ٹکڑے کرنے کے لئے. یہاں تو، ہم کیا گیا ہے ہے arguably سب سے آسان سی پروگرام تم نے وہ بھی لکھ سکتے ہیں اصل میں کچھ کرتا ہے. اب، ہم نے ماضی دیکھتا ہوں، اب کے لئے، میں شامل کیا ہے، معیاری io.h، اور ان کا زاویہ بریکٹ، اور int، اور صفر، اور گھوبگھرالی منحنی خطوط وحدانی، اور پسند. اور ایسا صرف پر توجہ مرکوز کرتے ہیں کیا، کم از کم وجدانی، پہلے سے ہی آپ کو باہر کود سکتا ہے. سچ تو یہ ہے، اہم، مجھے نہیں پتہ ضروری معلوم ہے یہ کیا ہے، کہ لیکن سکریچ کی طرح زیادہ تھا جب سبز پرچم، پہیلی ٹکڑا کلک کیا تاکہ ایک پروگرامنگ زبان کے طور پر C کرتا کوڈ کا ایک اہم ٹکڑا ہے کہ ڈیفالٹ کی طرف سے قتل ہو جاتا. اور، یقینا، یہ لفظی مرکزی بلایا جا رہا ہے. لہذا اہم ایک تقریب ہے. اور یہ موجود ہے کہ ایک خصوصی تقریب ہے C میں آپ کو ایک پروگرام چلاتے ہیں کہ، یہ اہم کی طرف سے چلایا جاتا ہے ہے پہلے سے طے شدہ. سکریچ کی دنیا میں، یہ عام طور پر اس وقت جب سبز پرچم تھا کلک کیا ڈیفالٹ کی طرف سے چلایا گیا ہے کہ. دریں اثناء، ہم پہلے بھی دیکھا ہے، printf کے یا پرنٹ فارمیٹ کیا، کہ ہے ساتھ آتا ہے ایک تقریب ہو رہا C، دوسروں کی ایک پوری چڑھانے کے ساتھ ساتھ، وقت اور وقت کی طرف سے اس کی مرضی ایک بار پھر، بالکل ایسا کرنے کے لئے اس کا نام تجویز کے طور پر، کچھ پرنٹ. کیا ہم کو پرنٹ کرنا چاہتے ہیں؟ ٹھیک ہے، ہم دیکھیں گے کہ احاطہ حروف کی طرف سے these-- ہیلو دنیا کی طرح، ڈبل قیمت درج کرنے میں الٹا سلیش (ن)، ہم بالکل printf کا بتا سکتے ہیں سکرین پر کیا پرنٹ کرنے کے لئے. لیکن ترتیب میں کیا کرنا کہ، ہم بدقسمتی سے ہے کہ کچھ لینے کی ضرورت ہے پہلے ہی ہم انسان کے لئے خفیہ، لیکن کم از کم اس میں کچھ readable-- ہے تیز شامل ہیں، معیاری io.h، INT، اہم، باطل، printf کے، جادو کی تمام منتر ہم صرف سکرین پر دیکھا. لیکن ہم اصل کرنے کے لئے ہے اب بھی زیادہ arcane جاؤ. ہم سب سے پہلے کوڈ ترجمہ کرنے کی ضرورت ہم مشین کوڈ میں لکھتے ہیں کہ. اور گزشتہ ہفتے سے یاد کرنے والی مشینیں کہ، کم از کم لوگ ہیں جو ہم یہاں جانتے، دن کے آخر میں صرف zeros اور ہیں کو سمجھنے. میرا خدا، ان کے لکھنے کے لئے ہم نے تو اصل پروگرام میں zeros اور ہیں، یہ بہت، بہت جلد کریں گے کسی بھی چیز کا باہر مزہ لے. لیکن یہ گزشتہ ہفتے کی قیمت، باہر کر دیتا ہے کہ zeros اور ہیں کے یہ نمونے صرف خصوصی معنی ہے. مخصوص سیاق و سباق میں، ان کا مطلب اعداد سکتا. کچھ سیاق و سباق میں، وہ مطلب ہو سکتا ہے خطوط، یا رنگ، یا کسی بھی تعداد وہاں پر دیگر abstractions میں. لیکن صرف آپ کے کمپیوٹر کی ہے کے طور پر ایک CPU، سنٹرل پروسیسنگ یونٹ، یا آپ کے کمپیوٹر کے اندر دماغ. یہ عام طور پر انٹیل کے اندر، کہ ہے کیونکہ سب سے بڑے اداروں میں سے ایک کہ کمپیوٹر کے لئے CPUs کے ہوتا ہے. ویسے، انٹیل CPUs کے اور دوسروں کے بس پیشگی فیصلہ کیا ہے کہ صفر کے بعض نمونوں اور والوں مخصوص چیزیں مطلب گی. zeros اور ہیں کی مخصوص نمونے گا مطلب، سکرین کے لیے اس کو پرنٹ، یا ان دو اعداد کا اضافہ، یا ان دو نمبروں منہا، یا سے اعداد و شمار کے اس ٹکڑے کو منتقل میرے کمپیوٹر کی میموری یہاں، یا دیگر بہت کم سطح کی کسی بھی تعداد، لیکن آخر میں مفید، آپریشن. لیکن، شکر ہے، ہم انسانوں کو نہیں جا رہے ہیں تفصیل کی اس سطح جاننے کی ضرورت ہے کرنے کے لئے. بے شک، صرف جہاں، پچھلی بار کی طرح ہم پر abstracted دوبارہ، اور پھر، اور پھر، بہت کم سطح سے عمارت zeros اور ہیں کی طرح primitives میں اعلی سطح تصورات نمبرز، اور حروف کی طرح، اور رنگ، اور زیادہ، تو ہم پروگرامرز کے طور پر کر سکتے ہیں کے کندھوں پر کھڑے دوسرے لوگ جو ہم سے پہلے آئے ہیں اور سافٹ ویئر کی دیگر اس کا استعمال لوگوں us-- سے پہلے لکھا ہے یعنی پروگراموں مدونین بلایا. C ایک زبان ہے عام طور پر مرتب کیا جاتا ہے، جس سے تبدیل مطلب مشین کوڈ ماخذ کوڈ. خاص طور پر، اس کا مطلب کیا کہ آپ کو آپ کے ذریعہ مل گیا ہے کر رہا ہے تو کوڈ آپ اپنے آپ کو ہی ہم اس کو، لکھتے ہیں کہ سکرین پر صرف ایک لمحے میں لونگا، اور آپ اسے تبدیل کرنا چاہتے ہیں مشین کو بالآخر code-- ان لوگوں کے zeros اور ہیں کہ صرف اپنے میک یا اپنے کمپیوٹر understands-- آپ کو ایک فرسٹ مل گیا ہے کے طور پر میں اس کے منبع کوڈ کو کھانا کھلانا ایک خاص ان پٹ پروگرام ایک سنکلک کہا جاتا، پیداوار جن میں سے ہم دیکھو گے مشین کوڈ ہے. اور، یقینا، پچھلی بار ہم نے بات کی تھی کے بارے میں، واقعی، دن کے آخر میں، مسائل کو حل کرنے. آپ آدانوں مل گیا ہے. اور تم شدہ نتائج مل گیا ہے. اور تم کسی قسم کے مل گیا ہے وسط میں الگورتھم کی. والگورزم ضرور ہو سکتا ہے سافٹ ویئر میں لاگو کیا، ہم pseudocode کے آخری ہفتے کے ساتھ دیکھا اور ہم اصل کوڈ کے ساتھ نظر آئے گا کے طور پر اس ہفتے. اور اس طرح ایک سنکلک واقعی صرف اندر یلگوردمز کی ایک سیٹ ہے اس میں سے جانتے ہیں کہ کس طرح کرنے کے لئے خاص الفاظ تبدیل، اہم، اور printf طرح، اور دوسروں کو ہم صرف صفر کے پیٹرن میں دیکھا اور والوں کہ انٹیل کے اندر اور دیگر CPUs کے اصل میں سمجھتی. تو ہم یہ کس طرح کروں؟ ہم نے ایک سنکلک کہاں ملتا ہے؟ ہم میں سے اکثر یہاں ایک میک یا ایک PC ہے. اور تم میک OS چلا رہے ہیں، یا ونڈوز، یا لینکس، یا سولیرس، یا دیگر کی کسی بھی تعداد آپریٹنگ سسٹمز. اور، یقینا، ہم کر سکتے تھے ویب پر باہر جانے اور ایک سنکلک، اتارنا اپنے میک یا آپ کے پی سی کے لئے آپ کی خاص طور پر آپریٹنگ سسٹم کے لئے. لیکن ہم سب پر ہو گی مختلف صفحات، تو بات کرنے کی. ہم نے تھوڑا سا پڑے گا مختلف ترتیب. اور چیزیں سب ایک ہی کام نہیں کرے گا. اور، یقینا، ان دنوں ہم میں سے بہت استعمال نہیں کرتے سافٹ ویئر صرف ہمارے لیپ ٹاپ پر چلتا ہے. اس کے بجائے، ہم کچھ کا استعمال ایک براؤزر کی طرح کہ ویب کی بنیاد پر ہم سے تک رسائی حاصل کرنے کی اجازت دیتا ہے کلاؤڈ میں ایپلی کیشنز. اور بعد میں اس سمسٹر، ہمیں بالکل ایسا کریں گے. ہم ایپلی کیشنز لکھیں گے یا code-- کا استعمال کرتے ہوئے سافٹ ویئر کی، C نہیں لیکن ازگر کی طرح دیگر زبانوں اور جاوا سکرپٹ بادل میں چلانے کے کہ. اور یہ کہ ہم نے خود کو ایسا کرنے کی، سمسٹر کے دوران اصل میں ایک کلاؤڈ بیسڈ استعمال کریں گے ماحول CS50 IDE کے طور پر جانا. یہ ایک ویب کی بنیاد پر پروگراموں ہے ماحول، یا مربوط ترقی ماحول، IDE، کہ کچھ کے اوپر بنایا گیا ہے اوپن سورس سافٹ ویئر کلاؤڈ 9 بلایا. اور ہم نے کچھ تدریسی بنایا ہے یہ کرنے کے لئے simplifications میں بعض خصوصیات کو چھپانے کے لئے تو کے طور پر ہمیں ضرورت نہیں ہے کہ پہلے ہفتے، جس کے بعد آپ کر سکتے ہیں ان کے ظاہر اور ایسا زیادہ تر کچھ بھی آپ کو ماحول کے ساتھ چاہتے ہیں. اور یہ ہمیں بھی کرنے کی اجازت دیتا مخصوص سافٹ ویئر پہلے سے انسٹال. ایک نام نہاد CS50 کی طرح چیزیں لائبریری، جس میں ہم جلد ہی دیکھیں گے کچھ کے ساتھ C میں ہماری فراہم کرتا ہے اضافی فعالیت. لہذا اگر آپ کو جانا تو کرنا، بالآخر، CS50.io، آپ، کو لاگ پوچھا جائے گا اور اگر آپ ایسا کرتے ہیں اور تخلیق ایک بار مفت کے لئے ایک اکاؤنٹ، اگر آپ کو ایک تک رسائی حاصل کرنے کے قابل ہو جائے گا بالکل اس طرح لگتا ہے کہ ماحول. اب، یہ پہلے سے طے شدہ موڈ میں ہے. سب کچھ اچھا ہے اور سکرین پر روشن. ہم میں سے بہت سے لوگوں کی عادت ہے ہے کہ CS50 ٹکڑے پر کام کر رہے ہیں رات میں بہت دیر ہو. اور اس لئے تم میں سے بعض کو ترجیح دیتے ہیں ہو سکتا ہے تو بات کرنے کی رات کے موڈ میں تبدیل،. لیکن، بالآخر، تم کیا ہو CS50 IDE کے اندر دیکھنے کے لئے جا تین مختلف areas-- ہے چھوڑ دیا جہاں پر ایک علاقے آپ کی فائلوں میں ہونے جا رہے ہیں بادل، اوپر دائیں پر ایک علاقے جہاں آپ کے کوڈ قابل تدوین کی جا رہی ہے. آپ کو کھولنے کے لئے کے قابل ہو جائے گا کسی بھی پروگرام کے لئے انفرادی ٹیب آپ کے اندر اس سمسٹر لکھتے ہیں کہ کہ سب سے اوپر دائیں کونے میں. اور پھر سب سے arcanely، اور ابھی تک طاقتور، میں اس بات کی جا رہی ہے نیچے ایک ٹرمنل ونڈو کے طور پر جانا. یہ ایک پرانے اسکول ہے کمانڈ لائن انٹرفیس، یا CLI، کہ اجازت دیتا ہے کیا آپ کمانڈ پر عمل کرنے کی اس معاملے میں کمپیوٹر پر، cloud-- میں کمپیوٹر اپنے کوڈ کو مرتب طرح کام کرنا ماخذ کوڈ سے مشین کوڈ، آپ کے پروگراموں کو چلانے کے لئے، یا شروع کرنے کے لئے آپ ویب سرور، یا آپ کے ڈیٹا بیس تک رسائی کے لئے، اور دیگر تکنیک کے کسی بھی تعداد ہم طویل عرصے سے پہلے استعمال کرنے کے لئے شروع کریں گے کہ. لیکن وہاں حاصل کرنے کے لئے، ہم ہیں اصل ضرورت کے لئے جا آن لائن جاؤ اور کھیلنا شروع کرنے کی. اور ایسا کرنے کے، کی پہلی دو مرکزی ساتھ ایڈجسٹمنٹ شروع کر دیں، اور ایک پروگرام کا اہم حصہ ہیں لکھ. اور چلو اس تقریب کا استعمال کرتے ہیں ہم نے پہلے استعمال کیا جس میں printf کے،، بس کچھ کہنا. تو یہاں میں CS50 IDE کے اندر پہلے سے ہی ہوں. میں پہلے سے انتخاب کیا ہے. اور مجھے مکمل ونڈو دکھائی. اور اس طرح، آخر میں، آپ بھی آ مسائل میں جیسے مراحل کی پیروی کریں گے کہ آن لائن دستاویزات فراہم کرے گا. تو آپ کو فکر کرنے کی ضرورت نہیں ہے ہر چھوٹی تکنیکی قدم جذب میں نے آج یہاں کیا ہے کہ. لیکن اگر آپ اس طرح ایک سکرین حاصل کریں گے. میں نے رات کے موڈ میں ہونا ہو. اور تم ہر چیز روشن کر سکتے ہیں رات کے موڈ کو غیر فعال کرنے کی طرف سے. اور کے اختتام پر دن، آپ کو دیکھنے کے لئے جا رہے ہیں فائل کی areas-- ان تین اہم بائیں میں براؤزر، اپ سب کا کوڈ ٹیبز، اور نیچے دیے گئے ٹرمنل ونڈو. مجھے آگے جانے دو اور میرا پہلا پروگرام لکھنے. I، اس preemptively فائل پر جانے کے لئے جا رہا ہوں محفوظ کریں، اور hello.c کے طور پر میری فائل کو بچانے کے. بے شک، کنونشن کی طرف سے، کسی بھی پروگرام میں ہم کہ سی زبان میں لکھا لکھ کچھ کے نام سے منسوب کیا جانا چاہئے ڈاٹ C، کنونشن کی طرف سے. تو میں نے یہ hello.c نام کرنے جا رہا ہوں، کیونکہ میں تو صرف دنیا کو ہیلو کہنا چاہتا ہوں. اب میں زوم کرنے کے لئے جا رہا ہوں باہر اور محفوظ کریں پر کلک. اور میں اب یہاں ہے سب ایک ٹیب ہے جس میں میں نے کوڈ لکھنے شروع کر سکتے ہیں. یہ مرتب کرنے کے لئے نہیں جا رہا ہے. یہ کوئی مطلب نہیں ہے. اور میں تبدیل کیا تو بھی اگر zeros اور ہیں اس، CPU کی کوئی ضرورت کے لئے جا رہا ہے خیال کے ارد گرد کیا ہو رہا ہے. لیکن میں لکیریں لکھنا تو اس میچ کرو C کی conventions-- C وجود کے ساتھ، پھر، اس طرح نحو کے ساتھ زبان کا اس، ہیلو printf کے world-- اور میں نے کے ساتھ آرام دہ ہو گیا وقت کے ساتھ یہ کر رہے. لہذا میں نے کر دیا ہے نہیں لگتا کوئی بھی ٹائپ کی غلطیوں. لیکن، ہمیشہ، بہت پہلے وقت تم یہ کر، تم کروگے. اور میں کیا کرنے جا رہی ہوں بہت طاقت ہو اچھی طرح سے آپ کے لئے پہلی بار کام نہیں. اور یہ کہ بالکل ٹھیک ہے، حق اب کیونکہ آپ صرف تازگی کی ایک پوری بہت دیکھ لے، لیکن وقت کے ساتھ آپ کو واقف حاصل ایک بار اس ماحول کے ساتھ، اور یہ زبان، اور دوسروں کو، آپ چیزوں کو دیکھنے کے لئے شروع کر دیں گے کہ یا تو صحیح یا غلط ہیں. اور یہ کیا ہے تعلیم ساتھیوں اور کورس معاونین، زائد وقت میں اتنا اچھا حاصل کر رہا ہے آپ کے کوڈ میں غلطی یا کیڑے spotting کے. لیکن میں یہ دعوی موجود اس کوڈ میں کوئی کیڑے ہیں. تو اب میں اس پروگرام کو چلانے کے لئے چاہتے ہیں. ابھی میرے اپنے میک یا پی سی پر، میں تیار ہوں ڈبل کلک شبیہیں کی عادت میں نے کچھ پروگرام کو چلانے کے لئے چاہتے ہیں جب. لیکن یہ یہاں ماڈل نہیں ہے. اس ماحول، CS50 IDE ہے جس میں. ہم ایک آپریٹنگ استعمال کر رہے ہیں سسٹم لینکس بلایا. لینکس ایک اور کی یاد تازہ ہے آپریٹنگ سسٹم، عام طور پر جانا جاتا ہے یونکس جیسا. اور لینکس بالخصوص لئے جانا جاتا ہے ایک کمانڈ لائن ماحولیات، CLI اندوز. اب، ہم ایک مخصوص استعمال کر رہے ہیں لینکس کا ذائقہ اوبنٹو نامی. اور اوبنٹو کو صرف ایک ہے لینکس کے کچھ ورژن. لیکن یہ لینکس کے ان دنوں اصل میں کرتے گرافیکل یوزر انٹرفیس کے ساتھ آئے. اور ہم کو بھی ہو ایک کو یہاں استعمال کرے ویب پر مبنی ہے. تو یہ بھی ایک نظر کر سکتے ہیں کسی چیز سے تھوڑا مختلف تم اپنے آپ کو ہو سکتا ہے دیکھا یا ماضی میں چلایا. تو میں نے آگے جانے کے لئے جا رہا ہوں اب اور مندرجہ ذیل کام کریں. میں hello.c کے طور پر اس فائل کو محفوظ کر لیا ہے. میں آگے جانے کے لئے جا رہا ہوں اور بجنا تو قسم clanghello.c C زبان کے لئے ایک سنکلک ہے. اس سے پہلے سے نصب ہے CS50 IDE میں. اور تم بالکل ڈاؤن لوڈ اور آپ کے اپنے میک یا PC پر اس کو انسٹال. لیکن، پھر، آپ سب کی ضرورت نہیں کرے گا پہلے سے ترتیب دینے کی آپ کے لئے کیا. اب کے لئے تو، میں صرف ہوں clanghello.c چلانے کے لئے جا. اور اب اس نحو کو نوٹس یہاں آخر میں کرے گا صرف میں ایک میں ہوں کہ اس کا مطلب کا احساس فولڈر یا ڈائریکٹری کام جگہ بلایا. یہ ڈالر کا نشان صرف کنونشن ہے معنی کے لئے، یہاں آپ کے حکم دیتا ہے ٹائپ کریں. یہ صرف، ایک فوری طور پر کہا جاتا ہے کیا ہے کنونشن کی طرف سے ڈالر کی نشانی ہے. اور میں اب آگے بڑھو اور اگر کلک درج، کچھ نہیں ہوا ہے لگتا ہے. لیکن یہ اصل میں ایک اچھی بات ہے. کم ہے کہ پر ہوتا ہے آپ کی سکرین، زیادہ امکان آپ کے کوڈ کا صحیح ہونا ہے، کم از کم میں syntactically. میں نے اس کو چلانا چاہتے ہیں تو پروگرام، میں کیا کروں؟ ٹھیک ہے، یہ پتہ چلا ہے کہ کنونشن کی طرف سے پہلے سے طے شدہ نام پروگرام کے لئے آپ کو ایک وضاحت نہیں ہے جب نام آپ کا پروگرام صرف میں a.out ہے. اور یہ نحو بھی، تمہیں طویل عرصے سے پہلے سے واقف ہو جاؤ. ڈاٹ صرف کا مطلب، ارے، CS50 سلیش IDE، میں a.out نامی ایک پروگرام کو چلانے کے کہ میری موجودہ ڈائریکٹری کے اندر ہے. یہی ڈاٹ موجودہ ڈائریکٹری کا مطلب ہے. اور ہم کیا دوسری طرح کے انداز کو دیکھ لیں گے کرداروں میں سے بہت پہلے کا مطلب. تو ہم یہاں جانا، درج، ہیلو دنیا. اور آپ محسوس کریں گے، کہ کیا ہوا ہے؟ نہ صرف یہ خوش دنیا پرنٹ تھا. یہ بھی منتقل کر دیا گیا اگلی لائن پر کرسر. اور کیوں تھا؟ کوڈ ہم نے پہلے لکھا تھا وہ کیا تھا اس بات کا یقین ہے کہ کرسر کریں گے اگلی لائن پر جانا؟ ایک کے بارے میں عجیب بات یہ ہے کمپیوٹر یہ صرف جا رہا ہے لفظی کرنے کے لئے آپ کو کرنے کی یہ بتا کیا. تو کیا تم ہیلو printf کے لئے اسے کہوں تو، کوما، خلائی، دنیا، بند اقتباس، یہ لفظی صرف جا رہا ہے ان حروف کو پرنٹ کرنے کے. لیکن میں اس کے خصوصی کردار تھا آخر میں، یاد، الٹا سلیش ن میں. اور یہ کہ اس بات کا یقین کیا ہے کردار چلا گیا سکرین کی اگلی لائن. سچ تو یہ ہے، مجھے جانے اور اس کے کیا. مجھے آگے بڑھو اور اس کو حذف کرتے ہیں. اب، کہ محسوس اپنی سکرین کے سب وہاں ہے میں ایک چھوٹا سا سرخ روشنی کے ٹیب کا اشارہ، ارے، آپ اپنی فائل کو محفوظ نہیں کیا ہے. تو میں نے کنٹرول کے ساتھ آگے جانے کے لئے جا رہا ہوں S یا کمانڈ S، فائل کو محفوظ کریں. اب یہ ایک لمحے کے لیے گئے سبز goes--. اور اب یہ واپس آ گیا ہے صرف ایک قریبی آئکن ہونے. اب میں دوبارہ clanghello.c چلاتے ہیں تو، درج کریں، ڈاٹ سلیش، a.out ہے، درج، آپ کو یہ اب بھی کام کیا ہے کہ نظر آئے گا. لیکن یہ arguably سب ایک چھوٹی سی چھوٹی گاڑی ہے. ابھی، میرے prompt-- کام کی جگہ، اور پھر اس ڈالر کا نشان، اور پھر میری اصل prompt-- سب ایک ہی لائن پر ہے. تو یہ یقینی طور پر ایک جمالیاتی بگ، یہاں تک کہ اگر یہ واقعی ایک منطقی مسئلے نہیں ہے. لہذا میں نے میں نے ابھی کیا کیا رد کرنے جا رہا ہوں. I میں a.out rerun کرنے جا رہا ہوں. میں شامل کیا ہے توجہ newline کردار واپس. میں نے فائل محفوظ کر لیا ہے. تو میں نے، میں a.out rerun کرنے جا رہا ہوں and-- dammit، ایک مسئلے سے، غلطی کا مطلب ہے ایک مسئلے سے. تو بگ کہ اگرچہ ہے میں (ن) نے الٹا سلیش نے مزید کہا، دوبارہ محفوظ،، پروگرام میں دوبارہ بھاگ گیا رویے ایک ہی تھا. کیوں کہ ہو سکتا ہے؟ میں نے ایک قدم یاد آ رہی ہے، ہے نہ؟ یہ اہم قدم کے اوائل میں ہے کہ آپ کا تھا آپ کو آپ کے منبع کوڈ کو تبدیل جب ضروریات کو، یہ بھی چلانے باہر کر دیتا ہے کمپائلر کے ذریعے اسے ایک بار پھر آپ کو نئی مشین کوڈ حاصل کریں تاکہ. مشین کوڈ، zeros اور ہیں، ، تقریبا ایک جیسی ہونے کے لئے جا رہے ہیں لیکن بالکل ایسا نہیں، ہمیں ضرورت ہے کیونکہ، کورس کے، اس نئی لائن. تو کیا یہ طے کرنے کے لئے، مجھے اس کی ضرورت کرنے جا رہا ہوں clanghello.c rerun کرنے، درج، ڈاٹ سلیش، a.out ہے. اور اب، ہیلو دنیا واپس آ گیا ہے جہاں میں توقع کرنا یہ ہونا. تو یہ سب ٹھیک ہے اور اچھا ہے. لیکن میں a.out ایک کے لئے ایک خوبصورت بیوکوف نام ہے پروگرام، جو ہونا ہوتا ہے، اگرچہ، تاریخی وجوہات کی بناء پر، اسمبلی نتائج معنی default--. لیکن مجھے آگے یہاں جانے دو اور مختلف طریقے سے ایسا. میں نے اپنے ہیلو دنیا پروگرام چاہتے ہیں اصل کو ہیلو کہا جا. اگر تو یہ ایک آئیکن تھے میرے ڈیسک ٹاپ، جو میں a.out نہیں کیا جائے گا. یہ خوش بلایا جائے گا. تو ایسا کرنے، یہ پتہ چلتا ہے کہ بجنا، بہت سے پروگراموں کی طرح، ، کمانڈ لائن کے دلائل کی حمایت یا جھنڈوں، یا سوئچز، صرف اس رویے پر اثر انداز جس میں. خاص طور پر، بجنا ایک ڈیش اے کی حمایت اس کے بعد ایک دوسرا لفظ لیتا ہے جو پرچم،. اس صورت میں، میں نے منمانے کروں گا، لیکن معقول حد تک، یہ خوش کال کریں. لیکن میں یہ کچھ بھی کہہ سکتے ہیں میں چاہتا ہوں، میں a.out، سوائے جس بلکہ بات اس کے علاوہ ہو گا. اور پھر صرف نام کی وضاحت فائل کا میں مرتب کرنے کے لئے چاہتے ہو. تو اب بھی شروع میں اگرچہ میں اب بھی بجنا ہے کمانڈ کے، کمانڈ کے آخر میں میں اب بھی فائل کا نام ہے، اب میں ان کمانڈ لائن ہے دلائل، ان جھنڈوں کہہ رہے ہیں کہ، اوہ، ویسے، پیداوار-او، ایک فائل ہیلو نہ ڈیفالٹ a.out کہتے،. تو میں نے مارا تو اب، کچھ بھی نہیں درج ہوا ہے لگتا ہے. اور، ابھی تک، اب میں ڈاٹ سلیش ہیلو ایسا کر سکتے ہیں. تو یہ ایک ہی پروگرام ہے. zeros اور ہیں دن کے آخر میں ایک جیسی. لیکن وہ دو میں ہیں مختلف files-- میں a.out، جو سب سے پہلے ورژن ہے اور صرف حماقت، نامزد کیا اور اب ہیلو، جس کی وجہ سے زیادہ ہے ایک پروگرام کے لئے زیادہ مجبور نام. لیکن، ایمانداری، میں نے کبھی نہیں ہوں پھر اس کو یاد کرنے کے لئے جا، اور پھر، اور پھر. اور، اصل میں، کے طور پر ہم لکھ زیادہ پیچیدہ پروگراموں، حکم دیتا ہے تم ہو لکھنے کی ضرورت کے لئے جا بھی حاصل کرنے کے لئے جا رہے ہیں زیادہ اب بھی پیچیدہ. اور اس طرح فکر کرنے کی نہیں. یہ پتہ چلا ہے کہ انسانوں سے پہلے ہمیں وہ بھی احساس ہو گیا یہ بالکل وہی مسئلہ تھا. وہ بھی کرنے کے لئے لطف اندوز نہیں کیا کافی طویل، arcane حکم ٹائپ، چھوڑ دو ان کو یاد. اور اس طرح ہم سے پہلے انسانوں بنا دیا ہے یہ آسان بنانے کے کہ دوسرے پروگراموں آپ کے سافٹ ویئر مرتب کرنے کے لئے. اور، یقینا، ایسے ہی ایک پروگرام بنانے کو کہا جاتا ہے. تو میں نے آگے بڑھو اور اس میں کیا کرنے جا رہا ہوں. میں نے سب کچھ توڑنا کرنے جا رہا ہوں میں صرف مندرجہ ذیل انداز میں کیا. مجھے LS ٹائپ کریں. اور تم لوگ تین چیزوں میں محسوس کریں گے میں a.out، اور ایک ستارہ، ہیلو اور ایک ستارہ، اور hello.c کے. امید ہے کہ یہ کرنا چاہئے ، ایک چھوٹی سی بدیہی ہو جیسا کہ پہلے بھی نہیں تھا insofar کے اس کے کام کی جگہ میں کچھ بھی نہیں. میں تھا کہ کچھ بھی نہیں تھا ہم کلاس شروع کر دیا جب تک پیدا. اور میں hello.c پیدا. میں نے تو اسے مرتب، اور یہ a.out کہتے. اور پھر میں نے تھوڑا سا اسے دوبارہ مرتب مختلف طریقے ہیں اور یہ خوش نامی. تو میں نے اس ڈائریکٹری میں تین فائلیں ہیں، اس فولڈر کام جگہ بلایا میں. اب، میں اس کے ساتھ ساتھ وہ دیکھ سکتا ہوں میں اصل میں باہر زوم تو. میں یہاں باہر زوم اور اگر کہ سب سے اوپر دائیں ہاتھ کی طرف دیکھو کونے، بائیں کے طور پر وعدہ آپ کی سکرین کے ہاتھ کی طرف ہمیشہ آپ کو دکھانے کے لئے جا رہا ہے کیا آپ کے اکاؤنٹ میں ہے، کیا ہے CS50 IDE کے اندر. اور تین فائلیں موجود نہیں ہے. لہذا میں نے میں a.out سے چھٹکارا اور خوش کرنے کے لئے چاہتے. اور جیسا کہ آپ شاید intuitively پر آپ تصور، کنٹرول کلک کی ترتیب کر سکتے ہیں یا براہ راست اس پر کلک کریں. اور اس چھوٹے مینو ٹمٹمانے. آپ فائل کو ڈاؤن لوڈ کر سکتے ہیں، کو چلانے کے یہ، یہ مشاہدہ، تروتازہ،، نام تبدیل یا کیا نہیں. اور میں صرف حذف کرسکتی، اور یہ ختم ہوجائے گا. لیکن ایک کمانڈ کے ساتھ چیزوں کو کرنے دو اب کے لئے لائن، آرام دہ اور پرسکون حاصل کرنے کے لئے تو کے طور پر اس کے ساتھ، اور مندرجہ ذیل کام کریں. میں آگے بڑھو اور دور کرنے کے لئے جا رہا ہوں لفظی rma.out ٹائپ کرکے a.out ہے. اس حکم کا پتہ چلا ہے، کو ہٹا یا اور کچھ کو خارج کرنے، خارج یا حذف نہیں ہے. یہ صرف بچانے کے لئے زیادہ اور succinctly RM ہے، آپ کو کچھ اسٹروکس، اور Enter دبائیں. اب ہم کسی حد تک ہو جا رہے ہیں ہیں cryptically باقاعدہ فائل میں a.out خارج کر دیں. میں واقعی میں کیا نہیں جانتے فاسد کی فائل ابھی تک ہو گی. لیکن میں نے اس کو ہٹانا چاہتے ہیں. تو میں نے ہاں کے لئے Y ٹائپ کرنے جا رہا ہوں. یا میں نے اسے باہر ٹائپ کریں، اور درج مارا کر سکتے ہیں. اور، ایک بار پھر، کچھ بھی ہونے لگتا ہے. لیکن اس سے، عام طور پر ایک اچھی بات ہے،. I LS اس وقت ٹائپ کریں، میں کیا دیکھنا چاہیئے؟ امید ہے کہ، صرف ہیلو اور hello.c کے. اب، طور پر ایک طرف، تمہیں یہ ستارہ، ستارے کو نوٹس، کہ میرے پروگراموں کے آخر میں ہے. اور وہ بھی سبز رنگ میں نظر آرہے ہیں. یہ صرف CS50 IDE کی راہ ہے حقیقت یہ ہے کہ میں آپ کو cluing کے کہ ماخذ کوڈ نہیں ہے. یہی وجہ ہے کہ ایک executable ایک runnable ہے، پروگرام آپ کو اصل میں چلا سکتے ہیں ڈاٹ سلیش کر، اور اس کے بعد کی طرف سے اس کا نام ہے. اب، مجھے آگے بڑھو اور ہٹانے اس، ہیلو RM، درج، باقاعدہ ہٹا دیں ہیلو دائر، جی ہاں. اور اب میں LS ٹائپ کریں تو، ہم hello.c کے واپس آ گئے ہیں. حذف کرنے کی کوشش کرو تمہارا اصل منبع کوڈ. وہاں خصوصیات ہیں اگرچہ CS50 IDE جہاں میں تعمیر آپ کو آپ کی نظرثانی کی سرگزشت ذریعے جا سکتے ہیں اور وقت میں آپ اگر اتفاقی طور پر ماضی کسی چیز کو حذف، احساس ہونا ایسا ان کا اشارہ ملتا ہے ہاں یا فی کے طور پر، آپ اصل میں کیا کرنا چاہتے ہیں کے. اور میں سب سے اوپر تک جانا ہے تو یہاں کونے چھوڑ دیا، تمام ہے کہ رہتا ہے hello.c ہے. تو کے bunches وہاں ہے دوسرے حکم دیتا ہے کہ لینکس کی دنیا میں پھانسی کر سکتے ہیں، جن میں سے ایک بار پھر، بنائیں، ہے. اور ہم بنانے کے لئے جا رہے ہیں میرا پروگرام اب کے طور پر مندرجہ ذیل ہے. اس کے بجائے بجنا کر کے، بجائے بجنا اے کر کے، میں نے صرف کرنے جا رہا ہوں لفظی، ٹائپ بنانے ہیلو. اور اب محسوس کریں، میں ہوں hello.c کے بنانے میں ٹائپنگ. میں نے ہیلو بنانے ٹائپ کر رہا ہوں. اور اس پروگرام بنائیں CS50 IDE، اور زیادہ کے ساتھ آتا ہے عام طور پر لینکس کے ساتھ، ہے کہ ایک پروگرام ہے خوش نامی ایک پروگرام بنانے کے لئے جا. اور ویسے، کنونشن کی طرف سے، فرض کرنے جا رہا ہے اس پروگرام بنایا جا سکتا ہے کہ اگر، یہ ایک ذریعہ سے بنایا جا رہا ہے کوڈ فائل ڈاٹ سی میں ختم ہونے والے، hello.c کے. تو میں نے مارا تو اب نوٹس درج، کہ کمانڈ قتل ہو جاتا ہے اصل میں بھی طویل ہے پہلے سے زیادہ سے پہلے. کیونکہ ہم کر لیا ہے اور وہ ہے ہے کرنا تشکیل کردہ CS50 IDE کہ میں تعمیر کچھ اضافی خصوصیات ہم ابھی تک کی ضرورت نہیں ہے، لیکن جلد ہی ہو جائے گا. لیکن اہم بات یہ ہے کا احساس کرنے کی میں نے ایک خوش پروگرام ہے اب ہے. میں نے پھر LS ٹائپ، تو میں ایک ہیلو پروگرام ہے. اور میں نے ساتھ چلا سکتے ہیں ڈاٹ میں a.out سلیش، کوئی، اس کے پورے نقطہ ہے کیونکہ ورزش ڈاٹ سلیش ہیلو تھا. اور اب میں نے اپنے ہیلو دنیا پروگرام ہے. لہذا آگے بڑھنے، ہم صرف تقریبا ہمیشہ ہو ہمارے پروگراموں کو مرتب کرنے کے لئے جا کمانڈ بنائیں کا استعمال کرتے ہوئے. اور پھر ہم نے ان کی طرف سے چلانے کے لئے جا رہے ہیں ڈاٹ سلیش، اور پروگرام کا نام. لیکن کے لئے بناتے ہیں کیا کر رہا ہے کا احساس آپ کو یہ خود ایک سنکلک نہیں ہے. یہ صرف ایک سہولت کے پروگرام ہے کہ ایک سنکلک ٹرگر کرنے کے لئے کس طرح جانتا ہے تم اپنے آپ کو اس کا استعمال کر سکتے ہیں تاکہ کو چلانے کے لئے. کیا دوسری کمانڈز میں موجود لینکس، اور باری CS50 IDE میں؟ ہم جلد ہی ایک نہیں ہے کہ نظر آئے گا CD کمانڈ، بدلیں ڈائریکٹری. یہ اندر آپ کی اجازت دیتا ہے آپ کے کمانڈ لائن انٹرفیس واپس آگے منتقل کرنے کے، اور، اور مختلف فولڈرز کو کھولنے اپنے ماؤس کا استعمال کرتے ہوئے بغیر. فہرست کے لئے کھڑا ہے ہم نے دیکھا LS، موجودہ ڈائریکٹری میں فائلوں. دیر بنائیں، آپ کر سکتے ہیں شاید نتیجہ نکالنا شروع کر دیں ان ڈائریکٹری بنانے now-- کیا مطلب، آپ کو ایک فولڈر تخلیق کرنے کے لئے چاہتے ہیں تو. ہٹانے کے لئے RM، RM دیر کے لئے ، ڈائریکٹری اور ان کو دور ایک بار پھر، کمانڈ لائن ہیں تم کیا کے مساوی اپنے ماؤس کے ساتھ CS50 IDE میں ایسا کر سکتا ہے. لیکن اگر آپ کو جلد ہی تلاش کر لیں گے کہ کبھی کبھی یہ صرف ہے تیزی سے ایک بہت کچھ کرنے کی ایک کی بورڈ کے ساتھ چیزوں کو، اور بالآخر ایک بہت زیادہ طاقتور. لیکن یہ کہ بحث کرنا مشکل ہے کچھ بھی ہم نے اب تک کر رہا ہوں جب تمام، سب کچھ جو طاقتور ہے ہم ہی کہہ دیا گیا ہے، ہیلو دنیا. اور، اصل میں، میں نے hardcoded کیا میرے پروگرام میں الفاظ ہیلو دنیا. ابھی تک کوئی تحرک نہیں ہے. سکریچ شدت کے ایک حکم تھا زیادہ دلچسپ گزشتہ ہفتے. اور اس طرح وہاں حاصل کرنے کی اجازت. کی طرف سے اس کی طرف ایک قدم لینے دو ان افعال میں سے کچھ کی راہ. تو نہ صرف C printf کے ساتھ آتا ہے، اور دیگر افعال کے bunches جن میں سے کچھ ہم دیکھیں گے وقت کے ساتھ، ایسا نہیں ہوتا صحیح باہر یہ سب اتنا آسان بنانے صارف ان پٹ حاصل کرنے میں پھاٹک کے. سچ تو یہ ہے، کمزوریوں میں سے ایک C کی طرح زبانوں کے، اور یہاں تک کہ جاوا اور ابھی تک دوسروں، جو نہیں کرتا ہے یہ آسان صرف کی طرح چیزوں کو حاصل کرنے کے لئے بنانے صارفین، یا ڈور، الفاظ سے صحیح اعداد، اور جملے، ایسے اکیلے چیزیں بتائیں نقطہ اقدار، یا حقیقی اعداد سچل دشملو پوائنٹس، اور واقعی کے ساتھ طویل نمبروں، ہم جلد ہی دیکھیں گے کے طور پر. تو یہاں کے افعال کی اس فہرست میں، ان دیگر سکریچ پہیلی ٹکڑے ٹکڑے کی طرح ہیں ہم CS50 میں پہلے سے نصب کیا ہے کہ کہ ہم چند ہفتوں کے لئے استعمال کریں گے IDE ایک طرح کی تربیت پہیوں، اور کے طور پر بالآخر ان سے دور لے، اور دیکھو ڈاکو، شاید، اوپر نیچے یہ باتیں کیوں لاگو کیا جاتا ہے. لیکن ایسا کرنے کے، کی اجازت اصل میں ایک پروگرام لکھنے. اب مجھے آگے چلتے ہیں. پھر میں نے ایک نیا تخلیق کرنے جا رہا ہوں اس چھوٹی سی پلس پر کلک کر کے فائل، اور نئی فائل پر کلک کرنے. میں نے اس سے اگلے کو بچانے کے لئے جا رہا ہوں ، کا کہنا ہے کہ کے طور پر ایک، string.c، میں ڈور کے ساتھ کھیلنے کے لئے چاہتے ہیں کیونکہ. اور C میں سٹرنگ صرف ہے حروف کی ترتیب. تو اب آگے چلتے ہیں اور مندرجہ ذیل کام کریں. شامل معیاری IO.h-- اور یہ، معیاری IO باہر کر دیتا ہے IO صرف ان پٹ اور آؤٹ پٹ کا مطلب ہے. تو یہ پتہ چلا ہے کہ یہاں اس لائن کیا ہے printf استعمال کرنے کے لئے ہم ہمسایہ رہا ہے. printf کے، کورس کے، پیداوار پیدا. تو printf استعمال کرنے کے لئے، بدل جاتا ہے باہر آپ کو کوڈ کے اس لائن ہی ہوگا آپ کی فائل کے سب سے اوپر. اور ہم واپس آ جائیں گے کیا یہ واقعی بہت پہلے کا مطلب. اس میں ہے کہ باہر کر دیتا ہے کسی بھی C پروگرام میں لکھنا، جس کے ساتھ میں یہ شروع کرنے کے لئے ہے اس طرح لگ رہا ہے کہ کوڈ. اور تم CS50 IDE محسوس، اور کر دیں گے دیگر مربوط ترقی اس کی طرح کے ماحول، کے طور پر بہترین کوشش کرنے کے لئے جا رہے ہیں وہ آپ کی سوچ کو ختم کرنے کی کر سکتے ہیں. سچ تو یہ ہے، ایک لمحے پہلے میں نے کالعدم اگر میں نے ابھی کیا کیا، میں درج کریں مارا. میں تو کھلی گھوبگھرالی مارا تسمہ، دوبارہ درج کریں مارا. اور یہ میری سوچ سے فارغ. اس سے، مجھے ایک نئی سطر دی کوئی کم پوٹ دار اچھا ساہتیک وجوہات کی بنا پر ہم دیکھیں گے. اور پھر یہ خود بخود مجھے دیا میری سوچ کو ختم کرنے کی ہے کہ گھوبگھرالی تسمہ. اب، یہ ہمیشہ ایسا نہیں ہوتا آپ کیا کرنا چاہتے ہیں لگتا ہے. لیکن بڑے حصے میں، یہ کرتا ہے آپ کو کچھ اسٹروکس کو بچانے. ایک لمحے پہلے تو، ہم اس پروگرام بھاگ گیا ہیلو، دنیا، اور پھر اسے مرتب کیا، اور پھر یہ بھاگ گیا. لیکن یہاں کوئی تحرک نہیں ہے. ہم چاہتے تھے تو کیا کچھ مختلف؟ ٹھیک ہے، کیا میں واقعی کرنا چاہتا تھا تو صارف سے ایک تار حاصل؟ میں نے ایک پہیلی ٹکڑا استعمال کرنے کے لئے جا رہا ہوں تار حاصل that-- بالکل بلایا. C میں پتہ چلا آپ نہیں چاہتے کہ جب ایک پہیلی ٹکڑے کرنے کے لئے ان پٹ فراہم کرنے، یا ایک تقریب کے لئے زیادہ مناسب طریقے سے، آپ کو لفظی صرف اوپن خانے کرتے، بند خانے. گویا وہاں ہے تو یہ ہے کوئی سفید خانے میں ٹائپ کرنا. کہہ دو بلاک سے پہلے ایک چھوٹی سی سفید باکس تھا. ہم کہ اب ایسا سفید باکس کی ضرورت نہیں ہے. لیکن میں حاصل سٹرنگ فون جب، میں نے کہیں نتیجہ ڈال کرنا چاہتے ہیں. لہذا سی میں ایک بہت عام مثال کے لئے ہے یہاں حاصل تار کی طرح ایک تقریب، کال، اور پھر اس کی واپسی کی قیمت ذخیرہ. اس کا نتیجہ ہے اس کی کسی چیز میں کوشش. اور کیا ہے پروگرامنگ میں تعمیر، C اسکریچ میں یا اب چاہے، ہم اس اصل میں کچھ ذخیرہ کرنے کے لئے استعمال کر سکتے ہیں؟ یہ ایک متغیر صحیح کہا جاتا ہے،؟ اور شروع میں، ہم واقعی ایسا نہیں کرتے کیا متغیر میں جا رہا تھا پرواہ. لیکن اس معاملے میں، ہم اصل میں کرتے. میں سٹرنگ کہنے جا رہا ہوں. اور پھر میں کہہ سکتے ہیں اس میں کچھ بھی میں چاہتا ہوں. میں نے اسے فون کرنے جا رہا ہوں نام، سٹرنگ حاصل ہو جاتا ہے. اور اب تم ہو یہاں تک کہ اگر اس کے لئے ایک چھوٹا سا نیا، محسوس کیا میں کچھ تفصیل فقدان رہا ہوں. میں نے ایک نیم بڑی آنت بھول رہا ہوں. مجھے یہ سوچ ختم کرنے کی ضرورت. تو میں نے، میرے کرسر کو منتقل کرنے کے لئے جا رہا ہوں اور وہاں نیم بڑی آنت کو مارا. اور میں صرف کیا کیا ہے؟ کوڈ کے اس لائن میں، اس وقت نمبر 5، مجھے کوئی آدانوں کے ساتھ حاصل سٹرنگ بلا رہا ہوں. تو کوئی چھوٹی سی سفید نہیں ہے بلاک کے محفوظ کریں ہے کی طرح باکس. میں صرف یہ کہہ رہا ہوں، ارے، کمپیوٹر، مجھے ایک تار حاصل. برابر علامت واقعی نہیں ہے ایک برابر علامت، SE فی. یہ اسائنمنٹ ہے جس کا مطلب آپریٹر،، ارے، کمپیوٹر، قدر منتقل بائیں طرف کے حق سے. اور بائیں میں، میں مندرجہ ذیل ہے. ارے، کمپیوٹر، مجھے ایک تار دے حروف کی ترتیب. اور کال اس سٹرنگ کا نام. اور میں بھی اس کا نام کو فون کرنے کی ضرورت نہیں ہے. میں نے روایتی، یہ کہہ سکتے ہیں، S کی طرح کچھ، ہم کرنے میں استعمال کیا جاتا ہے زیادہ کی طرح متغیر میں فون. لیکن اب میں اس کے ساتھ کچھ کرنے کی ضرورت. اس کے لئے بہت پاگل ہو جائے گا چل رہا ہے، اس کوڈ کو مرتب کرنے کی کوشش اس پروگرام، اگرچہ مجھے ایک تار ہو رہی ہے، یہ اب بھی صرف ہے کیونکہ ہیلو دنیا کہنے جا رہا. لیکن میں نے اس کو تبدیل کرنے کے لئے کیا چاہتے ہو تو. میں ایسا کیوں نہیں کرتے؟ فیصد ے، کوما ے. اور یہ اب بھی ایک چھوٹا سا خفیہ ہے. تو مجھے میرے متغیر زیادہ واضح کر دو. مجھے اس متغیر نام نام لیتے ہیں. اور ہم تنگ نہیں کر سکتے ہیں تو دیکھتے ہیں علاوہ یہاں کیا ہو رہا ہے. تو اوپر پانچ پر، میں نے ایک تار ہو رہی ہوں. اور میں اس سٹرنگ ذخیرہ کرنے رہا ہوں، جو کچھ بھی صارف میں ٹائپ کیا ہے اس کا یا اس کی بورڈ میں، نام نامی ایک متغیر میں. اور یہ پتہ چلا ہے کہ printf کا نہیں صرف کرتا ہے ڈبل میں ایک دلیل لے کی قیمت درج کرنے، ڈبل قیمت درج کرنے میں ایک ان پٹ. یہ دو، تین تین، یا اس سے زیادہ، اس طرح لے جا سکتے ہیں دوسرے، یا تیسرے یا چوتھے یہ کہ، تمام متغیر کے نام یہ ہیں، یا خاص طور پر قیمت، آپ میں پلگ کرنے کے لئے چاہتے ہیں کہ، متحرک طور پر، کی قیمت درج کرنے میں اس سٹرنگ. دوسرے الفاظ میں، کیا اس کے ساتھ کچھ غلط ہو جائے گا؟ میں نے ابھی کہا تو ہیلو نام، الٹا سلیش ن،، میری فائل کو بچایا میری کوڈ مرتب کی، اور یہ بھاگ گیا، کیا ہوگا؟ یہ صرف کہنے کے لئے جا رہا ہے، ہیلو ، نام لفظی N-A-M-E، جس کی وجہ سے اس قسم کی احمقانہ ہے یہ دنیا سے مختلف نہیں ہے. تو قیمت درج کرنے میں کچھ بھی ہے کیا لفظی چھپی ہو جاتا ہے. میں کرنا چاہتے ہیں تو وہاں ایک پلیس ہولڈر، میں اصل میں استعمال کرنے کی ضرورت کچھ خاص نحو. آپ پڑھیں اور اگر یہ پتہ چلتا ہے printf تقریب کے لئے دستاویزات، یہ آپ کو بتا دیں گے کہ آپ فیصد زبانیں استعمال کرتے ہیں تو، مندرجہ ذیل کے طور پر آپ کو ایک کی قیمت متبادل کر سکتے ہیں. اس کے بعد ایک کوما کے بعد ڈبل اقتباس، آپ کو صرف کا نام لکھنا آپ چاہتے ہیں کہ متغیر اس شکل میں میں پلگ کرنے کوڈ، یا فارمیٹ وضاحت کار، فیصد ڈور کے لئے کی. اور اب میں نے اپنی فائل کو محفوظ کر لیا ہے تو میں نے اپنے ٹرمینل کے لئے نیچے واپس جاؤ. اور میں سلک بنائیں ٹائپ، کیونکہ، ایک بار پھر، اس کا نام فائل ہے کہ میں نے پہلے انتخاب کیا string.c ہے. تو میں نے، سلک بنائیں درج کہنے جا رہا ہوں. ہے بھگوان، میں سے سب کی طرف دیکھو غلطیوں ہم پہلے ہی کر دیا ہے. اور یہ کیا، یہ واقعی ہے is-- ایک چھ، سات لائن پروگرام کی طرح؟ تو یہ ہے کہ یہ بہت کر سکتے ہیں ہے فوری طور پر بھاری اکثریت حاصل. یہ ٹرمینل ونڈو ہے اب صرف regurgitated خرابی کے پیغامات کی ایک بڑی تعداد. بے شک، میں نے زیادہ کی خرابی کی ضرورت نہیں ہے مجھ سے پیغامات کوڈ کی لائنیں ہے. تو کیا ہو رہا ہے؟ ویسے، بہترین حکمت عملی کسی بھی وقت آپ کو ایسا کرنے کی ایک غالب کا سامنا کرتے اس طرح کی غلطیوں کی فہرست، واپس سکرال کر رہا ہے، کمانڈ کے لئے نظر آپ کو صرف، دوڑا میرے معاملے میں جس سٹرنگ بنانا ہے. کیا بناتے ہو میں دیکھو، اور یہ کہ یہ ہے طویل بجنا کمانڈ، وہاں کوئی بڑی بات نہیں. لیکن سرخ برا ہے. گرین بننے کی کوشش کر رہا ہے نرم اور مددگار. لیکن یہ اس معاملے میں، اب بھی برا ہے. لیکن جہاں یہ برا ہے؟ String.c، لائن پانچ، کردار پانچ. تو یہ صرف عام کنونشن ہے. کچھ بڑی آنت کچھ کا مطلب لائن نمبر اور کردار تعداد. خرابی، اگھوشیت کے استعمال شناخت کنندہ سٹرنگ. آپ میں معیاری نتائج لہذا، بدقسمتی سے، بجنا مددگار بننے کی کوشش کر رہا ہے. لیکن یہ اس صورت میں، غلط ہے. نہیں، بجنا، میرا مطلب نہیں تھا معیاری IO. میں نے فون پر مطلب ہے کہ، جی ہاں. لیکن لائن پانچ یہاں اس میں سے ایک ہے. اور بجنا نہیں کرتا سمجھنے S-T-R-I-N-G. یہ ایک اگھوشیت شناخت کنندہ، پیغام ہے لفظ جو صرف اس سے پہلے کبھی نہیں دیکھا ہے. اور یہ کہ کیونکہ C، زبان ہے ہم ابھی میں کوڈ لکھ رہے ہیں، ڈور بلایا متغیر نہیں ہے. یہ ڈیفالٹ کی، حمایت کی وجہ سے، ایسا نہیں ہوتا کچھ ایک تار بلایا. اس کا ایک ٹکڑا ہے CS50 شبدجال، لیکن بہت روایتی. مندرجہ ذیل کے طور پر میں نے اسے ٹھیک کر سکتے ہیں. میں نے کوڈ کی ایک لائن کا اضافہ تو اس پروگرام کی سب سے اوپر کرنے، cs50.h، میں، ایک اور فائل ہے جس میں شامل ہیں کہیں CS50 IDE کے اندر، کہیں ہارڈ ڈرائیو پر، تو بات کرنے کی، اوبنٹو آپریٹنگ سسٹم کے کہ میں دوڑ رہا ہوں، کہ ہے کہ فائل ہے آپریٹنگ سکھانے جا رہا نظام ایک تار ہے جو کچھ، صرف معیاری io.h طرح فائل ہے ہے کہ آپریٹنگ سسٹم میں ہے کیا printf یہ سکھانے کے لئے جا رہا. بے شک، ہم ملا کرے گا ایک بہت ہی اسی طرح کا پیغام IO سٹینڈرڈ اعتراف کیا تھا تو IO.h اور printf کا استعمال کرنے کی کوشش. تو میں نے آگے اور صرف جانے کے لئے جا رہا ہوں میری سکرین صاف کرنے کے کنٹرول L لے. یا آپ کو واضح ٹائپ کر سکتے ہیں اور یہ ہو گا صرف ٹرمنل ونڈو کو صاف. لیکن آپ اب بھی وقت میں واپس سکرال کر سکتے ہیں. اور میں سلک بنائیں rerun کرنے جا رہا ہوں. ، اپنی انگلیوں کو اس وقت عبور درج. اوہ میرے خدا، یہ کام کیا. جو مجھے ایک طویل خفیہ کمانڈ کو ظاہر کرتا ہے کہ بجنا ذریعے کیا جنریٹ بنانا ہے، لیکن کوئی خرابی کے پیغامات. لہذا، اس بات کا احساس ہے اگرچہ آپ کو مکمل طور حاصل ہو سکتا ہے کے ساتھ ابیبھوت خرابی کے پیغامات کی تعداد، یہ صرف اس پریشان جھرن کاری ہو سکتی ہے جہاں بجنا نہیں سمجھتی اثر، جو اس کے بعد اس کا مطلب ایک بات، اگلے لفظ سمجھ نہیں ہے، یا اگلی لائن. اور اس طرح یہ صرف آپ کے کوڈ پر chokes. لیکن طے آسان ہو سکتا ہے. اور اس طرح ہمیشہ پر توجہ مرکوز پیداوار کا بہت پہلی لائن. اور اگر تم ایسا نہیں کرتے تو اس کو سمجھنے، صرف نظر مطلوبہ الفاظ کے لئے کہ ہو سکتا ہے سراگ، اور لائن نمبر، اور کردار، جہاں اس غلطی ہو سکتی ہے. اب مجھے آگے جانا ہے اور ٹائپ کریں ڈاٹ سلیش، سٹرنگ، درج. ایچ ایم، یہ خوش کچھ نہیں کہہ رہا ہے. کیوں؟ ویسے، یاد کرتے ہیں، یہ کہاں سے چل رہا ہے؟ شاید یہ اس وقت پھنس گیا ہے ایک لوپ میں، اگر آپ، لائن چھ پر، کیونکہ سلک ڈیزائن کی طرف سے حاصل کریں، CS50 عملے کی طرف سے لکھا گیا، لفظی صرف بیٹھنے کے لئے مراد ہے وہاں انتظار کر، اور انتظار کر، اور ایک سٹرنگ کے لئے انتظار کر رہے. ہم سٹرنگ کی طرف سے مطلب تمام انسانی ان پٹ ہے. تو تم کیا جانتے ہو؟ مجھے آگے چلتے ہیں. اور صرف ایک سنک پر، مجھے دو میرا نام، ڈیوڈ ٹائپ، درج. اب میں ایک سے زیادہ متحرک پروگرام ہے. اس نے کہا، ہیلو ڈیوڈ. میں آگے بڑھو اور ایک بار پھر اس چلاتے ہیں تو، مجھے، Zamila نام کا کہنا ہے کہ کوشش میں داخل کرتے ہیں. اور اب ہم ایک متحرک پروگرام ہے. میں مشکل کوڈت دنیا نہیں کی ہے. میں نے مشکل کوڈت نہیں کیا ہے، نام، یا داؤد، یا Zamila. اب یہ پروگراموں کی طرح بہت زیادہ ہے یہ ان پٹ لے تو ہم جانتے ہیں، جہاں، یہ قدرے مختلف پیداوار پیدا. اب، یہ سب سے بہتر نہیں ہے صارف کے تجربے، یا UX. میں نے پروگرام کو چلانے کے. مجھے نہیں معلوم کہ میں سمجھا رہا ہوں میں اصل میں نظر آتے ہیں، جب تک ایسا کرنے کے لئے یا منبع کوڈ کو یاد. تو چلو صارف بنانے کے لئے ہیں ایک چھوٹا سا بہتر تجربہ چیزوں کی آسان کے ساتھ. مجھے اس میں واپس چلتے ہیں پروگرام، اور صرف printf کا کہنا. اور مجھے آگے بڑھو اور کہنے نام، بڑی آنت دو، اور ایک جگہ، اور پھر ایک نیم بڑی آنت. اور صرف کک کے لئے، کوئی ردعمل ن. اور یہ کہ جان بوجھ ہے، میں نہیں چاہتا کیونکہ اگلی لائن پر منتقل کرنے کے لئے فوری طور پر. میں، بجائے، ایسا چاہتے ہیں، سٹرنگ بنانے نئی مشین میں میرا کوڈ recompile کرنے کوڈ ڈاٹ سٹرنگ سلیش. آہ، یہ بہت خوبصورت ہے. اب میں اصل میں کیا کمپیوٹر جانتے مجھے، ایسا ایک نام دینا چاہتا ہے. تو میں نے آگے جانے کے لئے اور ٹائپ کرنے جا رہا ہوں روب میں، درج کریں، اور ہیلو، روب. لہذا، اس بات کا احساس، اس، اب بھی ہے آخر میں دن، صرف ایک نو لائن پروگرام کے. لیکن ہم ان کے بچے اقدامات اٹھائے ہیں. ہم ایک ہی لائن میں لکھا جس کے ساتھ ہم واقف، printf کے، دنیا ہیلو تھے. پھر ہم اس کا ایک تھوڑا سا کالعدم کر دی. اور ہم اصل حاصل سٹرنگ کا استعمال کیا. اور ہم ایک متغیر میں اس قدر پھینک دیا. اور پھر ہم آگے چلے گئے اور بہتر یہ ایک تیسری لائن کے ساتھ مزید. اور کے اس عمل تکراری تحریری طور پر سافٹ ویئر کو صحیح معنوں میں کلید ہے. CS50 میں، اور عام طور پر زندگی میں، آپ عام طور پر نیچے بیٹھ کر نہیں کرنا چاہئے، ذہن میں ایک پروگرام ہے، اور لکھنے کی کوشش پوری چیز کو بالکل ایک بار. یہ، لامحالہ، راستے میں آئے گی ہم سے خود کو یہاں دیکھا زیادہ غلطیاں. یہاں تک کہ میں، اس دن کے لئے، مسلسل دیگر احمقانہ غلطی کرتے ہیں، اصل مشکل غلطیوں ہیں معلوم کرنا مشکل ہوتا ہے کہ. لیکن آپ کو زیادہ غلطیوں زیادہ کر دے گا کوڈ کی لائنیں آپ کو ایک بار میں تمام لکھنا. اور اس طرح کا یہ عمل، کوڈ کا ایک تھوڑا سا لکھ آپ کے ساتھ آرام دہ اور پرسکون ہیں، مرتب یہ،، اس کو چلانے کے زیادہ عام طور پر اس کی جانچ، پھر on-- منتقل ہم سے رکھا ہے تاکہ صرف کی طرح layering اور گزشتہ ہفتے layering کی، کسی چیز سے عمارت بہت زیادہ پیچیدہ کچھ کرنے کے لئے آسان، یہاں بھی ایسا ہی کریں. بیٹھ جاؤ، نہیں اور کرنے کی کوشش کریں ایک پورے مسئلہ لکھ. دراصل ان کے بچے اقدامات کرے. اب، ڈور تمام نہیں ہیں کہ خود حضور مفید. ہم کرنے کی طرح، مثالی طور پر، اصل میں تھا ہمارے ٹول کٹ میں کچھ اور ہے. تو اصل میں بالکل ایسا ہونے دیں. اب مجھے آگے بڑھو اور کوڑا دو ایک تھوڑا سا مختلف پروگرام. اور ہم عددی کے لئے، اس int.c فون کروں گا. میں نے اسی طرح، میں جا رہا ہوں، CS550.h شامل. میں معیاری IO شامل کرنے کے لئے جا رہا ہوں. اور یہ کہ بہت عام ہو رہا ہے کلاس کے ان پہلے چند دنوں میں. اور میں تیار کی جا رہی ہوں ایک اہم تقریب کے ساتھ اپنے آپ. اور اب اس کی بجائے ایک تار حاصل کرنے کی، آگے بڑھو اور ایک int حاصل کرنے کی اجازت. چلو اس کا مجھے فون کرتے ہیں، اور اسے حاصل کال کریں INT، قریبی قوسین، نیم بڑی آنت. اور اب ایسا چلو اس کے ساتھ کچھ، printf کے. کی طرح کچھ کہنے دو ہیلو، الٹا سلیش (ن)، کوما میں. تو میں نے بہت زیادہ نقل کر رہا ہوں میں نے صرف ایک لمحے پہلے کیا کیا تھا. میں یہاں ایک پلیس ہولڈر ہے. میں چاہتا ہوں کیونکہ، یہاں میں نے کوما کیا ہے کہ پلیس ہولڈر میں میں پلگ کرنے کے لئے. تو آگے بڑھو اور کوشش کرتے ہیں اس پروگرام مرتب. فائل کی int.c. کہا جاتا ہے تو میں نے INT بنانے، کہنے کے لئے، درج کی جا رہی ہوں. اوہ میرے خدا، لیکن کوئی بڑی بات نہیں، ٹھیک ہے؟ ایک غلطی نہیں ہے. ایک نحوی غلطی نہیں ہے یہاں اس طرح اس پروگرام نہیں کر سکتا int.c، لائن کے اندر مرتب کیا جائے سات، کردار 27، کی خرابی کی شکل پروپوزل کی گذارش چار اختصاص ستارہ، کہ جو کچھ بھی ہے. لیکن اس دلیل کی قسم int ہے. تو یہاں، بھی، ہم نہ ضروریات کو جا رہے ہیں آج اگرچہ مواد کی ایک بہت ہے، ہم کے ساتھ آپ کو مغلوب کرنے کے لئے جا رہے ہیں بالکل C کے ہر خصوصیت، اور اس سے زیادہ عام طور پر پروگرامنگ، صرف ان کے پہلے چند ہفتوں میں. تو وہاں اکثر شبدجال ہونے جا رہا ہے جس کے ساتھ آپ واقف نہیں ہیں. اور، اصل میں، چار ستارہ کچھ ہے ہم واپس آ کر جا رہے ہیں ایک یا دو ہفتے کے وقت میں. لیکن اب کے لئے، ہم کر سکتے ہیں تو دیکھتے ہیں الفاظ واقف ہیں کہ پارس. Formats-- تو ہم شکل سنا وضاحت کار، شکل کوڈ سے پہلے. کہ واقف ہے. Type-- لیکن دلیل قسم int ہے. ایک منٹ رکو، میں ایک int ہے. اصل میں شاید فیصد ے کچھ وضاحت کی گئی معنی ہے. اور، یقینا، یہ کرتا ہے. ایک عددی، اگر آپ چاہتے ہیں یہ متبادل کرنے printf کے، آپ نے واقعی ایک استعمال کرنا ہے مختلف شکل وضاحت کار. اور تم کو یہ پتہ نہیں کریں گے جب تک کوئی آپ کو بتایا، یا تم سے پہلے کیا کیا تھا. مگر فیصد میں کیا ہے عام طور پر استعمال کیا جا سکتا ایک عددی میں plugging کے لئے printf میں. آپ کو بھی استعمال کر سکتے ہیں فیصد ایک دشملو عددی کے لئے D. لیکن میں یہاں اچھا اور آسان ہے. تو ہم نے اس کے ساتھ چلے جائیں گے. اب مجھے آگے بڑھو اور دوبارہچلانے بنانے INT، درج. یہی وجہ ہے کہ کوئی غلطیاں اچھا ہے،. ڈاٹ، int-- OK، برا صارف کے تجربے میں کمی میں اپنے آپ کو نہیں بتایا ہے کیونکہ کیا کروں. لیکن یہ ٹھیک ہے. میں نے جلدی پر پکڑ رہا ہوں. اور اب مجھے آگے بڑھو اور ڈیوڈ، OK، Zamila، روب میں ٹائپ. ٹھیک ہے، تو یہ ایک اچھی بات ہے. اس وقت، میں، ایک تقریب کا استعمال کرتے ہوئے کر رہا ہوں ایک پہیلی ٹکڑا، حاصل INT بلایا. اور یہ out-- بدل جاتا ہے اور ہم کریں گے term-- میں اس سے بعد میں CS50 عملے لاگو کیا ہے اس طرح میں تار حاصل کہ یہ صرف جسمانی طور پر ہو جائے گا آپ کے لئے ایک تار حاصل. اس میں حاصل INT لاگو کیا ہے اس طریقے کہ جو صرف کرے گا آپ کے لئے ایک عددی حاصل. اور تم تو اس کے انسانی، تعاون نہیں کرتے، یہ ہے لفظی صرف کرنے کے لئے جا ،، دوبارہ کوشش دوبارہ کوشش، دوبارہ کوشش کہنا لفظی وہاں بیٹھے looping کے، جب تک آپ کو کچھ جادو کی تعداد کے ساتھ تسکین، 50، اور خوش 50 کی طرح. یا پھر ہم ایک بار پھر اس چلاتے ہیں اور قسم 42 میں، ہیلو 42. اور اس طرح حاصل INT تقریب کہ پہیلی ٹکڑا کے اندر کافی منطق ہے، کافی سوچ، معلوم کرنا، ایک لفظ کیا ہے؟ اور ایک بڑی تعداد کیا ہے؟ صرف قبول کرنے، بالآخر، نمبرز. تو یہ اس کہ باہر کر دیتا تمام ہے کہ ابیوینجک نہیں ہے. اب تک. لہذا، گرمیوں، پچھلی بار ہم نے بہت تیزی سے چلے گئے عمل درآمد کے کھیل، اور حرکت پذیری میں، اور شروع میں فنکارانہ کام. اور یہاں، ہم مواد ہو رہے ہو ہیلو دنیا، اور خوش 50. یہ سب اس متاثر کن نہیں ہے. اور، یقینا، ان سب سے پہلے چند ترجمہ کچھ وقت لگے گا حوصلہ افزائی میں بڑھانے پر. لیکن ہم اتنا زیادہ ہے سچ تو یہ ہے، اب کنٹرول. اور ہم کرنے جا رہے ہیں بہت فوری طور پر شروع کرنے layering کی ان بنیادی primitives کی سب سے اوپر پر. لیکن سب سے پہلے، کی سمجھ لے کیا حدود ہیں. سچ تو یہ ہے، چیزوں میں سے ایک سکریچ آسانی سے نہیں کرتا نظر آتے ہیں ہم سے کرتے ہیں واقعی ہے ہڈ کے نیچے، اور کیا ایک کو سمجھ کمپیوٹر یہ کیا کر سکتے، ہے، اور اس کے حدود کیا ہیں. اور، یقینا، اس کا فقدان تفہیم، ممکنہ طور پر، طویل المیعاد ہمارے اپنے mistakes-- تحریری طور پر قیادت کر سکتے ہیں کیڑے، غیر محفوظ سافٹ ویئر لکھنے کہ کسی طرح سے ہیک. تو چلو طرف کچھ اقدامات اٹھانے کی اجازت کی طرف سے یہ ایک چھوٹا سا بہتر تفہیم ، کی راہ کہنا، مندرجہ ذیل مثال. میں آگے بڑھو اور لاگو کرنے کے لئے جا رہا ہوں اصلی یوجک نامی ایک پروگرام فوری. کی طرح، ایک دوسرے کے ساتھ کچھ تعداد کو شامل کرتے ہیں. اور میں نے کچھ کونے کونے کوڈ کرنے جا رہا ہوں یہاں، اور صرف کاپی اور پیسٹ جہاں میں نے صرف، سے پہلے تھا تو ہم جلد جا کر سکتے ہیں. ابھی تو میں نے بنیادی آغاز مل گیا ہے یوجک نامی ایک پروگرام کے. اور آگے بڑھو اور اس کے کیا. میں آگے جانے کے لئے جا رہا ہوں اور کہہ دو، intx int حاصل ہو جاتا ہے. اور تم کیا جانتے ہو؟ چلو ایک بہتر صارف کے تجربے بنا دو. تو چلو صرف اتنا کہنا ایکس ہے، اور مؤثر طریقے سے دو ہمیں X دینے کے لئے صارف کو فوری طور. اور پھر مجھے printf کے آگے جاؤ اور کہو، دو گانے، نغمے Y ہے کے بارے میں، اس وقت کی توقع صارف کی طرف سے دو اقدار. اور پھر بس آگے بڑھو اور کہہ دو، printf کے، X اور Y کی رقم ہے. اور اب میں فیصد کی نہیں کرنا چاہتی. I فیصد میں کرنا چاہتا ہوں، الٹا سلیش N، اور اس کے بعد رقم کی قدر میں پلگ. تو میں نے اس کے کرنے کے بارے میں کیسے جا سکتا ہے؟ آپ کو پتہ ہے؟ میں نے متغیر کا استعمال کس طرح جانتے. مجھے صرف ایک نیا، INT Z اعلان. اور میں یہاں ایک اندازہ لے جا رہا ہوں. اس میں برابر علامات ہیں زبان، شاید میں ایکس علاوہ Y صرف کیا کر سکتے ہیں، جب تک میں میری اختتام پر ایک نیم بڑی آنت کے ساتھ سوچا؟ اب میں یہاں نیچے واپس جاؤ، Z میں پلگ کر سکتے ہیں، ایک نیم بڑی آنت کے ساتھ اس سوچ کو ختم. اور اب، دیکھیں ان تو ہونے دیں لائنیں ایکس کے انداز int حاصل ہے. Y int حاصل ہے. ، X اور Y شامل میں قدر ذخیرہ z-- لہذا، ایک بار پھر، برابر یاد رکھیں سائن ان برابر نہیں ہے. اس سے دائیں سے بائیں سے تفویض کی ہے. اور چلو رقم ہے کہ کو پرنٹ کریں X اور Y کی، لفظی Z نہیں ہے لیکن Z کے اندر کیا ہے. تو چلو یوجک کرنے دو - اچھا، کوئی غلطیوں اس وقت. ڈاٹ سلیش یوجک، درج، ایکس 1 بننے جا رہی ہے. Y 2 بننے جا رہی ہے. اور X اور Y کی رقم 3 ہے. تو ہے کہ سب ٹھیک ہے اور اچھا ہے. تو آپ کو اس کے ریاضی تصور کریں گے اس طرح ایک پروگرام میں کام کرنا چاہئے. لیکن تم کیا جانتے ہو؟ اس متغیر، سطر ہے 12، بھی ضروری؟ آپ کو عادت میں حاصل کرنے کی ضرورت نہیں ہے کے صرف متغیر میں چیزوں کو ذخیرہ کرنے صرف آپ کر سکتے ہیں کی وجہ سے. اور، اصل میں، یہ عام بات ہے سمجھا برا ڈیزائن آپ کو ایک متغیر پیدا کر رہے ہیں تو، فون کیا اس معاملے میں Z،، اس میں کچھ ذخیرہ کرنے اور اس کے بعد فوری طور پر اسے استعمال کرتے ہوئے، لیکن پھر کبھی نہیں. کیوں کسی چیز کا نام دیں Z طرح آپ لفظی ہو تو اس کا استعمال کرنے کے لئے جا بات یہ ہے کہ صرف ایک بار، اور تو جہاں آپ پیدا کرنے اور proximal پہلی جگہ میں، کوڈ کی لائنیں کے لحاظ سے اتنا قریب؟ تو تم کیا جانتے ہو؟ یہ پتہ چلا ہے C بہت لچکدار ہے کہ. میں واقعی کرنا چاہتے ہیں تو پلگ ان اقدار یہاں، میں نے ایک نیا متغیر کا اعلان کرنے کی ضرورت نہیں. میں نے صرف پلگ میں ایکس سکتا ہے کے علاوہ Y، C سمجھتا کیونکہ ریاضی، اور ریاضی کے آپریٹرز. تو میں نے صرف یہ ریاضی کرتے، کہہ سکتے ہیں، X علاوہ Y.، ان اقدار ہیں جو کچھ بھی، پلگ نتیجے اس سٹرنگ میں عددی. تو یہ اگرچہ، ہو سکتا ہے صرف ایک ہی لائن میں کم، ایک بہتر ڈیزائن، ایک بہتر پروگرام، کیونکہ اس وجہ سے، کم کوڈ وہاں ہے مجھے سمجھنے کے لئے کم. اور یہ بھی صرف صاف ستھرا ہے، ہم نہیں ہیں insofar کے طور پر نئے لفظ متعارف کرانے، نئی علامتوں، Z کی طرح، اگرچہ وہ واقعی ایسا نہیں کرتے ایک مقصد کے زیادہ خدمت کریں. بدقسمتی سے، ریاضی نہیں ہے تمام ہے کہ قابل اعتماد کبھی کبھی. آگے بڑھو اور یہ کرتے ہیں. میں آگے جانے کے لئے جا رہا ہوں اب اور مندرجہ ذیل کام کریں. کی printf کے، فیصد میں، پلس فیصد کرنے دو میں، فیصد میں، الٹا سلیش (ن) کے ہوں گے. اور میں this-- xyx علاوہ Y کرنے جا رہا ہوں. تو میں صرف دوبارہ سے لکھنا کرنے جا رہا ہوں یہ تھوڑا سا مختلف طریقے سے یہاں. مجھے صرف ایک فوری وویک چیک کرتے ہیں. ایک بار پھر، چلو آگے خود حاصل نہیں ہونے دیں. یوجک، ڈاٹ سلیش یوجک بنائیں. X 1 ہے، Y 2، 1 کے علاوہ 2 3 ہے. تو یہ اچھی بات ہے. لیکن اب اس کو پیچیدہ کرنے دو تھوڑا سا، اور ایک نئی فائل بنانے. میں نے اس ایک کو فون کرنے جا رہا ہوں، کہتے ہیں، ints کے، integers کے لئے جمع. میں نے ایک لمحے پہلے تھا جہاں مجھے شروع کرتے ہیں. لیکن اب چند دیگر لائنوں کرتے ہیں. ، مجھے آگے بڑھو اور مندرجہ ذیل کام کرنے دو printf کے، فیصد میں، مائنس فیصد میں، فیصد میں، کوما ایکس، کوما YX مائنس Y ہے. تو میں نے قدرے کر رہا ہوں وہاں مختلف ریاضی. کی ایک دوسرے پر کرتے ہیں. فیصد میں بہت مرتبہ فیصد مجھے فیصد میں، الٹا سلیش (ن) ہے. کے پلگ میں ایکس، اور Y، اور ایکس اوقات Y چلو. ہم پر ستارے کا استعمال کریں گے اوقات کے لئے آپ کے کمپیوٹر. آپ ایکس کا استعمال نہیں کرتے. ایکس ہے یہاں ایک متغیر کے نام. تم ضرب کے لئے سٹار کا استعمال. کی ایک سے کرتے ہیں. printf کے فیصد میں، تقسیم فیصد کی طرف سے، فیصد میں ہے، الٹا سلیش (ن). XY y-- سے تقسیم لہذا آپ C میں سیدھا سلیش کا استعمال ڈویژن ایسا کرنے. اور دوسرے سے ایک کے کرتے ہیں. فیصد میں کے باقی، تقسیم فیصد کی طرف سے، فیصد میں ہے. xy-- اور اب باقی زیادہ چھوڑ دیا ہے کیا ہے. آپ کو ایک کی تقسیم کی کوشش کرتے ہیں ایک شمار کنندہ میں ذواضعاف اقل، کتنا اس پر چھوڑ دیا جاتا ہے آپ باہر تقسیم نہیں کر سکتا ہے؟ تو وہاں واقعی نہیں ہے، ضروری نہیں کہ، ایک علامت ہم اس کے لئے گریڈ اسکول میں استعمال کیا ہے. لیکن وہاں سی میں آپ کہنا X modulo Y، کہ جہاں اس تناظر میں یہ فیصد علامت مبہم تم اندر ہیں جب ڈبل قیمت درج کرنے کی، printf کے کے، فیصد کے اندر شکل وضاحت کار کے طور پر استعمال کیا جاتا ہے. تم میں سے باہر فیصد استعمال کرتے ہیں ایک ریاضیاتی اظہار میں ہے کہ، یہ ماڈیولر لئے modulo آپریٹر ہے ہمارے مقاصد کے لئے arithmetic-- یہاں، صرف کا مطلب، کیا ہے ایکس کے باقی Y کی طرف سے تقسیم کیا گیا؟ Y سے تقسیم ایکس تو ایکس سلیش Y ہے. Y کی طرف سے تقسیم ایکس کے باقی کیا ہے؟ کے طور پر ایک پروگرامر کہیں گے یہ، جدید Y ایکس کی. تو میں یہاں کوئی غلطیاں ہیں، مجھ سے دو آگے بڑھو اور ints کے، تعدد، اچھا بنانے، اور ڈاٹ سلیش ints کے. اور چلو آگے بڑھو اور ایسا، کی، کا کہنا ہے کہ 1، 10 دو. ٹھیک ہے، 1 کے علاوہ 10، 11 ہے چیک کریں. 1 مائنس 10 چیک، منفی 9 ہے. 1 اوقات 10 10 ہے، چیک کے. 1 10 is-- سے تقسیم ٹھیک ہے، ہم کہ ایک کو چھوڑ دیں گے. 10 سے تقسیم 1 کے باقی 1 ہے. یہ درست ہے. لیکن یہاں میں ایک مسئلے سے نہیں ہے. پس جس کو میں رکھ میرے صحیح نہیں سونپ،. میرا مطلب ہے، یہ 0 کے قریب ہے. 1 10 سے تقسیم، آپ کو ہم کر رہے ہیں تو، جانتے کچھ کونوں کاٹنے، اس بات کا یقین، یہ صفر ہے. لیکن یہ واقعی ہونا چاہئے 1/10، 0.1، یا 0.10، 0،1000، یا تو آگے. یہ واقعی صفر نہیں ہونا چاہئے. ویسے، یہ کمپیوٹر ہے کہ باہر کر دیتا لفظی کر ہم نے اسے کہا کیا. ہم Y سے تقسیم X طرح ریاضی کر رہے ہو. اور X اور Y دونوں، لائنوں فی کوڈ کے اوائل میں، اعداد صحیح ہیں. اس کے علاوہ، سطر 15 پر، ہم ہیں printf کے، ارے، printf کا پلگ میں بتا رہی ایک عددی، پلگ میں ایک عدد صحیح، پلگ میں ایک integer-- خاص طور پر X، اور اس کے بعد Y، اور اس کے بعد ایکس Y کی طرف سے تقسیم کیا گیا. X اور Y ints کے ہیں. ہم وہاں اچھے ہیں. لیکن X کی طرف سے کیا تقسیم ایکس ہے؟ X کی طرف Y ہونا چاہئے تقسیم، ریاضی، 1/10، یا 0.1، جس میں ایک حقیقی عدد، ایک حقیقی عدد ہے ممکنہ طور پر، ہونے، ایک اعشاریہ. اس سے ایک عددی نہیں ہے. لیکن سب سے قریبی کیا ہے 1/10، یا 0.1 کرنے کے لئے عددی؟ جی ہاں، یہ ایک طرح سے صفر ہے. 0.1 یہ زیادہ کی طرح ہے. اور 1 یہ زیادہ ہے. تو 1/10 سے قریب ہے 0 یہ ایک کے لئے ہے کے مقابلے میں. اور تو کیا C ہمارے لئے کیا کر رہی ہے اس قسم کی ہم اس کے ضروریات کو کہا، کیونکہ اس عددی قطع برید کر رہا ہے. اس قدر، ایک بار پھر ہے جو لے جا رہا ہے 0،1000 طرح کچھ ہونا چاہیے، 0 اور تو آگے. اور یہ سب کچھ قطع برید ہے دشملو نقطہ کے بعد لہذا اس کے کہ تمام چیزیں، کیونکہ اگر ایسا نہیں ہوتا ، ایک عددی کے تصور میں فٹ ہے جس منفی 1، 0، 1 کی طرح صرف ایک نمبر ہے، اوپر اور نیچے، یہ سب کچھ دور پھینک دے آپ کی وجہ سے دشملو نقطہ کے بعد ایک اعشاریہ فٹ نہیں کر سکتے تعریف کی طرف سے ایک عدد صحیح میں. تو یہاں اس کا جواب صفر ہے. تو ہم یہ کیسے ٹھیک کروں؟ ہم سب مل جل کر ایک اور حل کی ضرورت ہے. اور ہم نے مندرجہ ذیل کے طور، یہ کر سکتے ہیں. مجھے آگے چلتے ہیں اور ایک نئی تخلیق فائل کی، اس میں سے ایک floats.c بلایا. اور یہاں اس کو بچانے کے اسی ڈائریکٹری، float.c. اور مجھے آگے جانا ہے اور کاپی دو پہلے سے ہے کہ کوڈ میں سے کچھ. لیکن بجائے اس کے حاصل کرنے ایک int، یہ کرتے ہیں. مجھے ایک چل نقاط قیمت دے دو X بلایا. جہاں ایک چل نقاط قدر صرف لفظی ہے چل نقاط کے ساتھ کچھ. اس سے دائیں کرنے کے لئے، بائیں کرنے کے لئے منتقل کر سکتے ہیں. یہ ایک حقیقی تعداد ہے. اور مجھے نہیں بلالے int حاصل، لیکن فلوٹ حاصل، بھی مینو کے درمیان تھا جس کے C250 لائبریری میں اختیارات میں سے. کی ایک فلوٹ کرنے Y تبدیل کرو. تو یہ فلوٹ حاصل ہو جاتا ہے. اور اب، ہم ints میں پلگ نہیں کرنا چاہتا. یہ ہم فی صد کا استعمال کرنا پڑے باہر کر دیتا ہے فلوٹ کے لئے F، فلوٹ کے لئے فیصد F، اور اب اس کو بچانے. اور اب، انگلیوں سے تجاوز کر، بنانے floats کے، اچھی، ڈاٹ سلیش floats کے. ایکس ایک 1. Y ہونے جا رہا ہے ایک بار پھر 10 کی جا رہی ہے. اور، اچھی، OK میرے علاوہ صحیح ہے. I، زیادہ کے لئے امید کر رہا تھا لیکن میں اس کے لکھنے کے لئے بھول گیا تھا. تو چلو بڑھو اور اس کے منطقی غلطی طے کر کے بتائیں. آگے بڑھو اور مندرجہ ذیل پر قبضہ کرتے ہیں. ہم صرف تھوڑا کاپی اور پیسٹ کر دونگا. اور میں مائنس کہنے جا رہا ہوں. اور میں بار کہنے جا رہا ہوں. اور میں تقسیم کیا کہنے جا رہا ہوں. اور میں، modulo ہے ایسا کرنے نہیں جا رہا ہوں جو یہاں کے طور germane نہیں ہے، F کی طرف سے تقسیم کیا، اور اوقات plus-- OK، چلو پھر اس کے کیا. بنائیں floats کے، ڈاٹ سلیش floats کے، اور 1، 10، and-- اچھا، کوئی، ٹھیک ہے. تو میں نے ایک بیوکوف ہوں. تو یہ بہت عام ہے کمپیوٹر سائنس میں اس طرح بیوکوف غلطیوں کو بنانے کے لئے. تعلیمی مقاصد کے لئے، جو میں واقعی کرنا چاہتا تھا یہاں سائنس تبدیلی تھی پلس، مائنس، گنا کرنے کے لئے، اور امید ہے کہ آپ کے طور پر، تقسیم کرنے کی اس مشق کے دوران محسوس کیا. تو اب اس کو دوبارہ مرتب کرتے ہیں پروگرام، ڈاٹ سلیش فلوٹ کرتے. اور تیسری بار کے لئے، چلو یہ میری توقعات پر پورا اترتا ہے تو دیکھنے. 1، 10،، میں داخل، ہاں ٹھیک ہے، 1.000، 10.000 سے تقسیم، 0،100000 ہے. اور یہ ہم کنٹرول کر سکتے ہیں پتہ چلا ہے کہ کتنے نمبرز سے ان لوگوں کے اشارہ کے بعد کر رہے ہیں. ہم اصل میں لونگا. ہم اس پر واپس آ جائیں گے. لیکن اب، حقیقت میں، ریاضی درست ہے. لہذا، ایک بار پھر، کیا takeaway ہے یہاں ہے؟ اس C میں، وہاں ہیں کہ باہر کر دیتا نہ صرف صرف strings-- اور حقیقت میں،، وہاں، واقعی نہیں ہیں کیونکہ ہم CS50 لائبریری کے ساتھ ان لوگوں کو شامل. لیکن صرف ints کے نہیں ہیں. بھی floats کے موجود ہیں. اور یہ دوسرے اعداد و شمار کے ایک گروپ کو باہر کر دیتا ہے اقسام بھی، ہم سے بہت پہلے استعمال کریں گے کہ. آپ ایک ہی چاہتے ہیں تو پتہ چلتا ہے کردار، نہ کہ حروف کی سٹرنگ، آپ کو صرف ایک چار استعمال کر سکتے ہیں. آپ ایک bool چاہتے تو ہے کہ باہر کر دیتا ہے، ایک بولین قدر، صحیح یا غلط ہیں، CS50 لائبریری کے لئے شکریہ، ہم نے اس کے ساتھ ساتھ C bool کے ڈیٹا کی قسم میں شامل کیا. لیکن یہ بھی میں موجود ہے دوسرے زبانوں کے ساتھ ساتھ. اور یہ آپ کو کبھی کبھی پتہ چلا ہے کہ بڑی تعداد اس کے بعد پہلے سے طے شدہ کی طرف سے آنے کی ضرورت ہے ints اور floats کے ساتھ. اور، اصل میں، ایک ڈبل ایک بڑی تعداد ہے کہ نہیں 32 بٹس، لیکن 64 بٹس استعمال کرتا. اور ایک طویل طویل ایک بڑی تعداد ہے کہ ، نہیں 32، بٹس لیکن 64 بٹس استعمال کرتا بالترتیب، چل نقاط کے لئے اقدار اور integers کے، بالترتیب. تو اب دراصل لشکر طیبہ کارروائی میں اس کو دیکھنے کے. میں یہاں سے آگے جانے کے لئے جا رہا ہوں اور ایک دوسرا پروگرام کوڑا. یہاں، میں آگے جانے کے لئے جا رہا ہوں اور CS50.h. شامل کرتے اور مجھے جانے دو، معیاری io.h. اور تم کچھ محسوس کریں گے فنکی یہاں کیا ہو رہا ہے. اس میں چیزیں کوڈنگ رنگ نہیں ہے اس سے پہلے کیا تھا کے طور پر اسی طرح. اور یہ پتہ چلا، کہ میں کیونکہ بات یہ ہے کہ ایک فائل کے نام نہیں دیا ہے. میں نے اس ایک کو فون کرنے جا رہا ہوں sizeof.c، اور محفوظ مارا. اور میری بہت کے ساتھ کیا ہوتا محسوس کریں کہ سیاہ پس منظر کے خلاف سفید کوڈ. ابھی، کم از کم نہیں ہے وہاں میں جامنی کچھ. اور یہ نحو پر روشنی ڈالی ہے. کیونکہ، بہت صرف، میں ہے جنہیں IDE کس قسم کی فائل کو بتایا یہ ہے کہ یہ نام دینے کی طرف سے ہے، اور خاص طور پر ایک فائل چڑھانے کی کوشش. اب، چلو آگے بڑھو اور اس کے کیا. میں آگے اور بہت جانے کے لئے جا رہا ہوں بس مندرجہ ذیل bool کے باہر پرنٹ فیصد LU ہے. ہم واپس آ جائیں گے صرف ایک لمحے میں اس. اور پھر میں جا رہا ہوں bool کے پرنٹ سائز. اور اب، صرف بچانے کے لئے اپنے آپ کو کچھ وقت، میں ہوں ایک پوری کیا کرنے جا ایک بار میں ان کے گروپ. اور، خاص طور پر، میں جا رہا ہوں ایک چار اور چار اس کو تبدیل. یہ ایک، میں تبدیل کرنے جا رہا ہوں ایک ڈبل اور ایک ڈبل کرنے کے. یہ ایک، میں تبدیل کرنے جا رہا ہوں ایک فلوٹ اور ایک فلوٹ کرنے. یہ ایک، میں جا رہا ہوں ایک int اور ایک int کے لئے تبدیل. اور یہ ایک، میں جا رہا ہوں ایک طویل طویل کرنے کے لئے تبدیل کرنے کے لئے. اور یہ اب بھی لے جا رہا ہے ایک طویل وقت کے، طویل طویل. اور پھر، آخر میں، میں دے دیا اپنے آپ کو ایک بہت زیادہ، سٹرنگ. اس سی، نہیں ہے کہ باہر کر دیتا ہے نامی خصوصی آپریٹر اس کا سائز لفظی ہے کرنے کے لئے، جب چلاتے جا رہا، ہم میں سے سائز بتا ان متغیرات میں سے ہر ایک. اور اب یہ ایک طریقہ ہے،، ہم واپس منسلک ہو سکتے ہیں گزشتہ ہفتے کی بحث کرنے کے لئے اعداد و شمار اور نمائندگی کی. مجھے آگے بڑھو اور مرتب کرتے ہیں کی ڈاٹ سلیش سائز کے سائز. اور دیکھتے ہیں. یہ سی میں پتہ چلا ہے کہ خاص طور پر CS50 IDE پر، خاص طور پر آپریٹنگ سسٹم اوبنٹو، جس میں ایک 64 بٹ آپریٹنگ ہے اس صورت میں نظام، ایک bool کی جا رہی ہے جگہ کی ایک بائٹ کا استعمال. اس سائز ماپا جاتا ہے کس طرح ہے، نہیں بٹس میں، لیکن بائٹس میں. اور جب کہ ایک بائٹ آٹھ بٹس ہے. چنانچہ ایک bool، یہاں تک کہ آپ اگرچہ تکنیکی طور پر صرف کی ضرورت ہے ایک 0 یا 1، یہ ایک چھوٹا سا بیکار ہے ہم اسے کس طرح لاگو کیا ہے. یہ اصل میں ایک پوری کا استعمال کرنے کے لئے جا رہا ہے byte-- تاکہ تمام zeros، شاید ہیں تمام لوگ، یا اس طرح کچھ، یا صرف ایک 1 آٹھ بٹس کے درمیان. ایک چار، دریں اثنا، ایک کردار کے لئے استعمال کیا گزشتہ ہفتے کی قیمت ایک ASCII کردار کی طرح، ایک کردار بننے جا رہی ہے. اور یہ کہ کے ہمارے تصور کے ساتھ synchs یہ کوئی زیادہ سے زیادہ 256 bits-- ہونے کی بجائے، یہ کوئی ہونے کے ساتھ synchs اپ 8 سے زیادہ وقت کی بٹس، جس ہم کے طور پر بہت سے 256 کے طور پر اقدار دیتا ہے. ایک ڈبل کرنے جا رہا ہے 8 بائٹس یا 64 بٹس ہونا. ایک فلوٹ 4 ہے. ایک int 4 ہے. ایک طویل، طویل 8. اور ایک تار 8. لیکن اس کے بارے میں فکر مت کرو. ہم چھیل واپس پرت ہے کہ جا رہے ہیں. اس ڈور سکتے، باہر کر دیتا ہے 8 بائٹس سے زیادہ طویل ہو. اور، یقینا، ہم نے لکھا ہے پہلے سے ہی ڈور، ہیلو دنیا، 8 بائٹس سے زیادہ وقت. لیکن ہم واپس آ جائیں گے صرف ایک لمحے میں اس. لیکن یہاں دور لے مندرجہ ذیل ہے. کوئی کمپیوٹر صرف ایک محدود ہے میموری اور جگہ کی رقم. تم صرف بہت سے جمع کر سکتے ہیں اپنے میک یا PC پر فائلوں. تم صرف میں بہت سے پروگراموں کے محفوظ کر سکتے ہیں RAM ایک بار میں چل رہا ہے، ضروری نہیں کہ، یہاں تک کہ ورچوئل میموری، کیونکہ آپ RAM کی ایک محدود رقم ہے. اور صرف تو picture-- کرنے آپ ایک لیپ ٹاپ کو کھول دیا کبھی نہیں کیا ہے یا اضافی میموری حکم دیا ایک کمپیوٹر کے لئے، آپ کو یہ معلوم نہیں ہو سکتا آپ کے کمپیوٹر کے اندر لگتا ہے کہ کچھ ہے اس طرح کی ایک چھوٹی سی. لہذا اس کا نام دیا ہے صرف ایک عام کمپنی ہے اہم ہے کہ کمپیوٹر کے لئے RAM ہوتا. اور RAM جہاں پروگراموں ہے وہ چلا رہے ہیں جبکہ رہتے. لہذا ہر میک یا PC، آپ کو دوگنا جب پر ایک پروگرام کلک کریں، اور اس کو کھولتا ہے، اور اس میں کچھ لفظ دستاویز کھولتا ہے یا کچھ اس طرح، یہ عارضی طور پر میں اس کا ذخیرہ RAM، کیونکہ RAM تیز ہے اپنی ہارڈ ڈسک کے مقابلے میں، یا آپ کے ٹھوس ریاست ڈسک. جہاں پروگراموں جانا تو یہ صرف ہے وہ چلا رہے ہیں جب رہنے کے لئے، یا فائلوں کا استعمال کیا جا رہا ہے کر رہے ہیں جب. تو آپ کو نظر آتے ہیں کہ چیزیں ہیں آپ اپنے لیپ ٹاپ کے اس کے اندر کس طرح، یا تھوڑا سا بڑی چیزیں آپ کے ڈیسک ٹاپ کے اندر. لیکن چابی آپ کو صرف ایک ہے ہے ان چیزوں میں سے محدود تعداد. تب میں سے صرف ایک محدود رقم ہے ہارڈویئر اس کی میز پر بیٹھ کر حق یہاں. لہذا، ضرور، ہم دکان نہیں کر سکتے ہیں infinitely طویل نمبروں. اور، ابھی تک، آپ کو واپس لگتا ہے کہ اگر گریڈ اسکول، کتنے ہندسے سکتے آپ صحیح کرنے کے لئے ہے ایک اعشاریہ کی؟ اس بات کے لئے، کس طرح بہت ہندسے سکتے آپ کو ایک اعشاریہ کے بائیں کرنے کے لئے ہے؟ واقعی، infinitely کئی. اب، ہم انسانوں کو صرف طاقت ہو ملین تلفظ کرنے کے لئے کس طرح جانتے ہیں، اور ارب، ٹریلین، اور کواڈریلین، اور quintillion کے. اور میں کی حدود کو آگے بڑھانے ہوں میری understanding-- یا my-- مجھے سمجھ نمبرز، لیکن میری نمبروں کی تلفظ. لیکن وہ ساتھ infinitely بڑے حاصل کر سکتے ہیں بائیں کرنے کے لئے لامتناہی ہندسوں یا ایک اعشاریہ کے دائیں جانب. لیکن کمپیوٹر صرف ایک ہے میموری کی محدود رقم، ٹرانجسٹروں کی ایک محدود تعداد میں، ایک اندر روشنی بلب کی محدود تعداد میں. تو کیا ہوتا ہے جب اگر آپ کی جگہ سے باہر چلانے کے؟ اگر آپ دوسرے الفاظ میں، گزشتہ ہفتے میں واپس لگتا ہم تعداد کے بارے میں بات کرتے وقت خود، بائنری میں نمائندگی کیا جا رہا فرض کریں کہ ہمارے پاس ہے یہاں اس 8 بٹ قدر. اور ہم سات 1 کی اور ایک 0 ہے. اور لگتا کہ ہم چاہتے ہیں اس کی قیمت میں 1 کا اضافہ کرنے. یہ ابھی ایک بہت بڑی تعداد ہے. مجھے یاد ہے تو یہ، 254 ہے گزشتہ ہفتے دائیں سے ریاضی. لیکن میں کیا تبدیلی اگر دائیں 0 سے ایک 1 ہے؟ پوری تعداد، کے کورس، آٹھ 1 کا بن جاتا ہے. تو ہم اب بھی اچھے ہیں. اور یہ کہ شاید کی نمائندگی کرتا ہے 255، اگرچہ سیاق و سباق پر منحصر ہے یہ اصل میں نمائندگی کر سکتے ہیں ایک منفی نمبر. لیکن یہ کسی اور وقت کے بارے میں مزید. اس کے بارے میں اس کی طرح یہ محسوس ہوتا ہے مجھے اعتماد کر سکتے ہیں کے طور پر اعلی. اب، یہ صرف 8 بٹس ہے. اور میرا میک، ضرور، جس طرح سے ہے میموری کی زیادہ سے زیادہ 8 بٹس. لیکن یہ محدود ہے. لہذا ایک ہی دلیل، لاگو ہوتا ہے یہاں تک کہ اگر ہم سکرین پر ان لوگوں میں سے زیادہ ہے. لیکن اگر آپ نہیں ہیں تو کیا ہوتا اس نمبر، 255 کو ذخیرہ کرنے، اور آپ 1 سا زیادہ شمار کرنا چاہتے ہیں؟ تم 255 سے 256 میں جانا چاہتا ہوں. مسئلہ، کورس کے، یہ ہے کہ آپ تو گزشتہ ہفتے کی طرح صفر پر گنتی شروع، آپ کے طور پر اعلی شمار نہیں کر سکتے 256 کے طور پر،، 257، چھوڑ دو اکیلے 258 بتائیں، کیا کیونکہ میٹر آپ کو ایک 1 کا اضافہ ہوتا ہے جب؟ آپ پرانے گریڈ اسکول کرتے ہیں تو نقطہ نظر، آپ کو یہاں ایک 1 ڈال، اور پھر 1 پلس 1 2 ہے، لیکن اس کے واقعی میں ایک صفر، آپ کو لے 1، کیری 1، 1 لے جانے. ان تمام چیزوں کے، ان 1، صفر پر جانے. اور تم ہوا، جی ہاں، کسی کے طور پر بائیں ہاتھ کی طرف سے 1 باہر کی طرف اشارہ،. لیکن سب کچھ آپ کر سکتے ہیں اصل میں دیکھنے اور میموری میں فٹ صرف آٹھ 0، کہنا ہے جو ہے کچھ مواقع پر آپ تو، ایک کمپیوٹر، سائن کافی گنتی کی کوشش کی، تم ہو کے ارد گرد لپیٹ کرنے کے لئے جا، یہ محسوس ہوتا ہے صفر، یا شاید بھی منفی میں نمبرز، صفر سے بھی کم ہیں جو. اور ہم اس قسم کی یہ دیکھ سکتے ہیں. مجھے آگے بڑھو اور لکھتے ہیں یہاں ایک حقیقی فوری پروگرام. مجھے آگے بڑھو اور لکھتے ہیں ایک پروگرام اتپرواہ بلایا. cs50.h شامل، میں شامل ہیں سٹینڈرڈ IO.h-- اوہ، میں واقعی میں میرے نحو اجاگر یاد کیا. تو چلو overflow.c کے طور پر اس کو بچانے. اور اب int اہم void-- اور طویل سے پہلے، ہم کریں گے کیوں کی وضاحت کرنے کے لئے واپس آئے ہم int اہم باطل لکھتے رہتے ہیں. لیکن اب کے لئے، صرف کا کرتے ہیں عطا کے لئے، اسے لے. کے اپنے آپ کو ایک int دے دو، اور 0 اس کی ابتدا. پھر int کے لئے کرتے ہیں کہ میں zero-- حاصل اصل میں، کی ایک لامحدود لوپ کرنے دو اور دیکھتے ہیں کیا. سچ ہے، جبکہ اس کے بعد کی ن کو پرنٹ کریں فیصد ہے میں نے، (ن)، پلگ میں ن. لیکن، اب، (ن) ہو جاتا ہے (ن) کے علاوہ 1 کے کرتے ہیں. تو دوسرے الفاظ میں، ہر ایک پر اس لامحدود لوپ کے تکرار، کے این کی قیمت ڈالیں ہیں، اور اس کے لئے 1 کا اضافہ، اور اس کے بعد بائیں پر ن میں واپس نتیجہ ذخیرہ. اور، اصل میں، ہم نحو دیکھا ہے تھوڑا سا اس طرح، مختصر طور پر. ایک ٹھنڈی چال بجائے ہے یہ سب لکھنے کی، آپ اصل میں ایک این پلس برابر ہے 1 کہہ سکتے ہیں. یا آپ کو واقعی پسند ہونا چاہتے ہیں تو، آپ کہہ سکتے ہیں این پلس پلس نیم بڑی آنت. لیکن یہ مؤخر الذکر دو صرف کر رہے ہیں ہم syntactic چینی فون کروں گا کیا پہلی چیز کے لئے. پہلی بات یہ ہے، زیادہ واضح ہے بالکل ٹھیک، مکمل طور پر درست. لیکن یہ زیادہ عام ہے، میں کہونگا. تو ہم صرف ایک لمحے کے لئے یہ کر دونگا. اب بنا دو اتپرواہ، لگتا ہے بلکہ اشوب، ڈاٹ سلیش اتپرواہ. کی، دیکھیں N خوبصورت بڑے ہو رہی ہے چلو. لیکن اس کی سوچنے دو، کتنا بڑا N مل سکتی ہے؟ ن ایک int ہے. ہم کے سائز کے ساتھ ایک لمحے پہلے دیکھا مثال ایک int چار بائٹس ہے. ہم نے پچھلے ہفتے سے جانتے ہیں، چار بائٹس ہے 32 بٹس، کیونکہ 8 گنا 4، جو کہ 32 ہے. کہ 4 ارب ہونے جا رہا ہے. اور ہم 800،000 تک ہیں. یہ ہمیشہ کے لئے لے جا رہا ہے میں ممکنہ طور پر کر سکتے ہیں کے طور پر زیادہ اعتماد کر. تو میں نے آگے جانے کے لئے جا رہا ہوں کے طور پر آپ سے پہلے طویل ہو سکتا ہے، اور واضح طور سے کنٹرول C-- مارا، کنٹرول C، ایک بہت، جہاں کنٹرول C عام طور پر اسباب کو منسوخ. بدقسمتی سے اس وجہ سے بادل میں چل رہا ہے، کبھی کبھی بادل ہے اتنا کچھ چیزیں باہر توکنا، بہت بہت پیداوار، یہ جا رہا ہے میری ان پٹ کے لئے ایک چھوٹا سا وقت لگ کلاؤڈ پر حاصل کرنے کے. تو میں نے مارا، اگرچہ کنٹرول C کو چند سیکنڈ پہلے، یہ یقینی طور پر کی طرف ہے ایک لامحدود لوپ کے اثر. اور اس طرح اس طرح کے معاملات میں، ہم ہیں کہ ہو چھوڑنے کے لئے جا. اور ہم ایک اور شامل کرنے کے لئے جا رہے ہیں یہاں ٹرمنل ونڈو پلس، جو ظاہر ہے نہیں ہے کے ساتھ اس طرح سے، یہ اب بھی سوچ رہا ہے کے بعد سے. اور آگے بڑھو اور رہنے دو ایک چھوٹا سا زیادہ مناسب. میں آگے بڑھو اور کیا کرنے جا رہا ہوں یہ صرف متناہی کئی بار. ، کے لوپ کے لئے ایک کا استعمال کرتے ہیں جس نے پہلے اشارہ. آؤ کریں. مجھے ایک اور متغیر int میں ہو جاتا ہے 0 کرو. میں بھی کم، کے، کا کہنا ہے کہ 64 میں + + دو ہے. اور اب مجھے آگے اور پرنٹ جانے دو این فیصد میں ہے باہر، ن کوما. اور پھر (ن) یہ اب بھی ہے ہمیشہ کے لئے لے جا رہا. آؤ کریں. ن ہو جاتا ہے N اوقات 2. یا پھر ہم پسند ہو سکتا ہے اور اوقات 2 برابر کرتے. لیکن صرف (ن) کا کہنا ہے کہ خود اوقات 2 برابر،. دوسرے الفاظ میں، اس میں پروگرام کا نیا ورژن، میں نے ہمیشہ کے لئے انتظار نہیں کرنا چاہتا 800،000 4 ارب طرح سے. چلو بس کے ساتھ اس سے زیادہ حاصل کرتے ہیں. اصل میں ن ہر وقت دوگنا کرنے دو. کون سا، یادآوری، دوہراکرن ہے کورس کے، ہونے کے برعکس. اور گزشتہ ہفتے، جبکہ ہمارے پاس ہے کچھ دوبارہ، اور پھر، اور ایک بار پھر، انتہائی تیز رفتار، دوہراکرن ضرور لونگا سب سے بڑی ممکن 1 سے ہمیں حاصل قیمت ہم ایک int کے ساتھ کرنے کے لئے اعتماد کر سکتے ہیں کہ. تو بالکل اس کے کیا. اور ہم نے بہت پہلے اس کے پاس واپس آ جائیں گے. لیکن یہ، ایک بار پھر، صرف کی طرح ہے شروع میں دوبارہ بلاک. اور آپ کو طویل سے پہلے اس کا استعمال کریں گے. یہ صرف صفر سے شمار کا مطلب ، لیکن، برابر 64 کے لئے نہیں کے لئے اپ. اور اس کے ہر iteration پر لوپ، صرف میں incrementing کی رکھنے. لہذا میں + + - اور یہ جنرل تعمیر لائن پر 7 صرف ایک سپر عام طریقہ ہے کے کے کچھ لائنوں کو دہرانے کوڈ، کئی بار کچھ. جس کا کوڈ کی لائنیں؟ ان گھوبگھرالی منحنی خطوط وحدانی، آپ کے طور پر اب سے gleaned ہے ہو سکتا ہے، مطلب، مندرجہ ذیل کام کریں. اس طرح شروع میں ہے، جب یہ پیلے رنگ کے بلاکس ہے اور دیگر رنگ اس قسم کے گلے لگانے یا دیگر بلاکس گلے. یہی ان گھوبگھرالی ہے منحنی خطوط وحدانی کے یہاں کیا کر رہے ہیں. تو میں نے اپنے نحو مل گیا تو آپ right-- C ذرائع میں گاجر علامت کو دیکھ سکتے ہیں کہ میں گیا کتنی بار ہے اس مسئلہ کو حل کرنے کی کوشش کر. تو ہے کہ ایک سے چھٹکارا حاصل کرے مجموعی طور پر، اور اس ونڈو کو بند. اور ہم نئی ایک کا استعمال کریں گے. اتپرواہ، ڈاٹ سلیش بنائیں اتپرواہ، درج، ٹھیک ہے، یہ پہلی نظر میں برا لگتا ہے. لیکن وقت میں واپس سکرال، میں نے اس سے 64 گنا تھا. اور پہلی بار محسوس کریں، N 1 ہے. دوسری بار، ن، 2 ہے پھر 4، پھر 8، تو 16. اور یہ جتنی جلدی ہے کہ لگتا ہے I، تقریبا 1 بلین کے لئے حاصل میں نے پھر اسے دوگنا ہے تو، کہ مجھے 2 ارب دینا چاہئے. لیکن یہ پتہ چلا ہے، ہے cusp پر حق. اور اس طرح یہ اصل میں بڑھ 1 ارب سے ایک int تقریبا منفی 2 سے ارب، ایک عدد صحیح ہے کیونکہ، نمبرز ہم برعکس گزشتہ ہفتے سنبھالنے کر رہے تھے، مثبت اور منفی دونوں ہو سکتا ہے حقیقت میں اور ایک کمپیوٹر میں. اور اس طرح کم از کم ان میں سے ایک بٹس مؤثر طریقے سے چوری ہو جائے. تو ہم واقعی صرف، 31 بٹس ہے یا 2 ارب ممکن اقدار. لیکن اب کے لئے، takeaway ہے کافی ہے بس، جو کچھ اس کے نمبر ہیں اور جو ریاضی، ہے کچھ برا، بالآخر ہوتا آخر میں آپ کے لئے کوشش کر رہے ہیں کیونکہ بٹس ایک بھی کئی بار permute. اور آپ کو مؤثر طریقے سے سب سے جاؤ 1 کے لئے شاید سب کو 0 کے، یا ہو سکتا ہے جو کہ صرف کچھ دوسرے پیٹرن واضح طور پر، سیاق و سباق پر منحصر ہے، ایک منفی نمبر کے طور پر تشریح کی جا سکتی ہے. اور اس طرح یہ اعلی ترین میں لگ رہے ہو گے یہ خاص طور پر پروگرام میں اعتماد کر سکتے ہیں صرف تقریبا 1 ارب ہے. لیکن یہاں ایک جزوی حل ہے. آپ کو پتہ ہے؟ مجھے ایک سے تبدیل کرو ایک طویل طویل کرنے int کی. اور مجھے آگے یہاں جانے دو اور میں جا رہا ہوں say-- ایک اہستاکشرت طویل کرنے کے لئے اس کو تبدیل کرنے. یا، میں اپنے آپ کو کبھی یاد نہیں چلو دیکھتے ہیں،. آگے بڑھو اور اتپرواہ بنا دو. نہیں، ایسا نہیں ہے، LLD، آپ کا شکریہ. تو کبھی کبھی بجنا مددگار ہو سکتا ہے. میں کیا شکل یاد نہیں آیا وضاحت کار ایک طویل طویل کے لئے تھا. لیکن، واقعی، بجنا مجھے بتایا. سبز، اچھے کے کچھ قسم ہے اب بھی تم نے غلطی کی ہے کا مطلب. یہ میں LLD مطلب ہے کہ اندازہ لگا رہا ہے. لہذا، ایک طویل مجھے یہ مشورہ ہے لے جانے دو طویل دشملو تعداد، اس کو بچانے. اور ڈاٹ مجھے یہ rerun ہیں، اتپرواہ سلیش، درج. اور اب کیا اچھا ہے یہ ہے. میں وقت میں واپس سکرال، تو ہم اب بھی شروع اسی جگہ میں گنتی 1، 2، 4، 8، 16. نوٹس کی، ہم حاصل تمام راستہ 1 ارب. لیکن اس وقت ہم محفوظ طریقے سے 2 ارب کے لئے حاصل. پھر ہم 4 ارب کے لئے حاصل، پھر 8 ارب، 17 ارب. اور ہم اس سے زیادہ جانا، اور اعلی، اور اعلی. آخر میں، اس، بھی، ٹوٹ جاتا ہے. آخر میں، ایک طویل طویل کے ساتھ، جس 64 بٹ قدر، نہیں ہے ایک 32 بٹ قدر، آپ کو شمار تو بہت زیادہ، آپ کے ارد گرد لپیٹ 0. اور اس معاملے میں، ہم کو بھی ہو ایک منفی نمبر کے ساتھ ختم. تو یہ ایک مسئلہ ہے. اور یہ اس کہ باہر کر دیتا مسئلہ ہے کہ تمام جادو نہیں ہے. میں نے جان بوجھ ہے اگرچہ ان کی غلطیوں کے ساتھ اس کی حوصلہ افزائی کی، یہ ہم میں سے ہر قسم کی اسے دیکھ باہر کر دیتا ہے ہم سے، یا کم از کم ہم میں سے کچھ کے ارد گرد ایسا. تو Lego سٹار وار میں، اگر کیا تم نے کبھی کھیل کھیلا گیا ہوں، جو آپ کے ارد گرد جا سکتے ہیں باہر کر دیتا ہے LEGO دنیا میں چیزوں کو توڑنے، اور سککوں جمع، بنیادی طور پر. اور اگر تم نے کبھی ادا کیا ہے اگر اس کھیل بہت زیادہ وقت، اس بے نام فرد کے طور پر یہاں کیا، کل تعداد سککوں آپ کو جمع کر سکتے ہیں کہ ایسا لگتا گا، 4 ارب، ہے. اب، کے ساتھ یہ اصل میں گول ہے. تو Lego کوشش کر رہا تھا چیزوں صارف دوستانہ رکھنے. انہوں نے کے لئے یہ بالکل 2 ایسا نہیں کیا 32 گزشتہ ہفتے فی طاقت،. لیکن 4 ارب ایک وجہ ہے. یہ اس کی معلومات پر مبنی لگتا ہے،، کہ LEGO، اور کمپنی ہے کہ ، اس کی اصل سافٹ ویئر بنا دیا فیصلہ کیا کہ سککوں کی زیادہ سے زیادہ تعداد صارف جمع کر سکتے ہیں ہے، بے شک، 4 ارب، وہ ان کے کوڈ میں انتخاب کیا ہے کیونکہ استعمال کرنے کے لئے زیادہ وقت نہیں ہے ایک طویل، بظاہر، لیکن صرف ایک عدد صحیح، ایک اہستاکشرت عدد صحیح، صرف ایک مثبت عدد صحیح، جن کی زیادہ سے زیادہ قدر ہے کہ تقریبا ہے. ویسے، یہاں ایک اور عجیب سے ایک ہے. کھیل کی تہذیب میں So، جس آپ میں سے کچھ کے ساتھ، واقف ہو سکتا یہ اس سال پہلے سے پتہ چلتا ہے اس کھیل ہے جس کے تحت میں ایک مسئلے سے تھا آپ کردار ادا کیا ہے تو اس کھیل میں گاندھی کی، بجائے اس کے، بہت امن پسند ہونے کی وجہ بجائے ناقابل یقین حد تک، ناقابل یقین حد تک تھا جارحانہ، بعض حالات میں. خاص طور پر، جس طرح کہ تہذیب کاموں ہے کہ آپ کو تو، کھلاڑی، ، جمہوریت اپنانے آپ aggressiveness کے سکور ہو جاتا ہے دو، تا مائنس طرف decremented مائنس، اور اس کے بعد مائنس مائنس. تو کیا تم سے 2 منہا آپ کی اصل iterating کو. بدقسمتی سے، آپ سب iterating ہے تو ابتدائی طور پر 1، اور آپ کو 2 اس میں سے منہا جمہوریت اپنانے کے بعد گاندھی کے طور پر یہاں شاید کیونکہ وہ بہت passive-- تھی، کیا کیا ہے کے aggressiveness کے پیمانے پر 1. لیکن اس کے بعد وہ، جمہوریت کو اپنایا ہے تو وہ 1 منفی 1 میں جاتا ہے. بدقسمتی سے، وہ تھے اہستاکشرت اعداد کا استعمال کرتے ہوئے، جس کا مطلب ہے کہ وہ بھی منفی سلوک کیا نمبرز گویا وہ مثبت تھے. اور یہ پتہ چلا ہے کہ منفی 1 مثبت برابر، عام کمپیوٹر پروگراموں میں، 255 ہے. گاندھی اپنایا تو جمہوریت، اور اس وجہ سے ہے ان کے aggressiveness اسکور کمی واقع ہوئی، یہ اصل 255 کے ارد گرد رولس اور اس کے سب سے زیادہ ہوتا ہے کھیل ہی کھیل میں جارحانہ کردار. تو کیا تم اس پر گوگل کر سکتے ہیں. اور یہ واقعی، تھا، ایک حادثاتی پروگراموں مسئلے، لیکن اس سے کافی داخل ہوا ہے تب سے ودیا. وہ سب مذاق اور پیارا ہے. زیادہ خوفناک جب اصل ہے حقیقی دنیا کے الات، اور نہیں کھیل، یہ وہی کیڑے ہو. سچ تو یہ ہے، صرف ایک سال پہلے ایک مضمون آیا بوئنگ 787 ڈریم لائنر کے بارے میں پتہ. اور سب سے پہلے میں مضمون نظر ایک چھوٹا سا جادو پڑھتا. لیکن یہ کہا کہ یہ، ایک سافٹ ویئر بوئنگ میں خطرے نئے 787 ڈریم لائنر جیٹ ہے پائلٹوں کی وجہ سے کرنے کی صلاحیت موجود کا کنٹرول کھونے کے لئے ہوائی جہاز، ممکنہ طور پر وسط پرواز میں، FAA کے عہدیداروں حال ہی میں خبردار کیا ھوائی کمپنیاں. یہ عزم تھا کہ ایک ماڈل 787 سے طاقت کیا گیا ہے کہ ہوائی جہاز 248 سے مسلسل لئے دن تمام ردوبدل موجودہ کھو سکتے ہیں، AC، جنریٹر کی وجہ سے بجلی کنٹرول یونٹس، GCUs، بیک وقت میں جا سیف موڈ میں ناکام رہتے ہیں. یہ مجھے کھونے کی طرح ہے. لیکن میمو، بیان کیا ٹھیک ہے، اب مجھے وہ مل گیا، شرط ایک سافٹ ویئر کی وجہ سے ہوئی کرنے کے لئے اندرونی مقابلہ جنریٹر کنٹرول بعد اتپرواہ گے کہ یونٹس مسلسل بجلی کی 248 دنوں کے. ہم اس جاری کر رہے ہیں نقصان کو روکنے کے کرنے کے لئے محسوس کے تمام AC بجلی کی طاقت، نتیجہ یہ نکل سکتا ہے جس میں ہوائی جہاز کے کنٹرول کے نقصان میں. لہذا، لفظی، کچھ عددی ہے، یا کچھ مساوی ڈیٹا کی قسم، سافٹ ویئر میں استعمال کیا جا رہا ایک حقیقی ہوائی جہاز میں آپ کو آپ کے ہوائی جہاز کو رکھنے کے لئے اگر کہ ، کافی طویل ہے جس میں بظاہر پر آپ صرف چلا رہے ہیں کیس ہو سکتا ہے انہیں مسلسل اور کبھی نہیں unplugging سے اپنے ہوائی جہاز، ایسا لگتا ہے، یا اس کی بیٹریاں مر جاتے ہیں دے، بالآخر شمار کیا جائے گا، اور اپ، اور اپ، اور اپ، اور اپ، اور اپ. اور، فطرت کی طرف سے، ایک میموری کی محدود رقم ، اتپرواہ گا واپس رولنگ صفر یا کچھ منفی قدر، جن میں سے ایک ضمنی اثر ہے frighteningly اصلی حقیقت طیارے کی ضرورت ہو سکتی ہے کہ ری بوٹ جا کرنے کے لئے، مؤثر طریقے سے، یا، بدتر گر سکتا ہے، یہ پرواز کے طور پر. لہذا مسائل کے ان قسم ہمارے ساتھ اب بھی ہیں، even-- یہ ایک 2015 مضمون تھا، سب سے زیادہ خوفناک آپ کو ضروری نہیں کرتے جب ، سمجھنے کی تعریف کرتے ہیں، یا اندازہ غلطیوں کے ان قسم. تو یہ ایک دوسرے کا بدل جاتا ہے وہاں اعداد و شمار کی نمائندگی کے بارے میں بری بات. یہ بھی floats کے ہیں کہ باہر کر دیتا ہے اس قسم کی ناقص، floats کے، کیونکہ، بھی، میں تجویز ہے 32 بٹس، یا شاید 64 آپ کو ایک ڈبل کا استعمال کرتے ہیں. لیکن یہ اب بھی محدود ہے. اور پکڑنے ہے اگر آپ کر سکتے ہیں کہ اعداد کی ایک لامحدود تعداد میں ڈال دیا دشملو نقطہ کے بعد، کوئی راستہ آپ کو وہاں ہے تمام ممکنہ نمائندگی کر سکتے ہیں نمبرز کہ ہم سکھایا گیا جماعت میں اسکول دنیا میں موجود کر سکتے ہیں. ایک کمپیوٹر، بنیادی طور پر، ضروری ہے ان لوگوں کی تعداد کی ایک اپسمچی منتخب درست طریقے سے نمائندگی کے لئے. اب، کمپیوٹر سکتے ہیں گول ہو سکتا ہے تھوڑا سا، اور تقریبا سٹور کرنے کی اجازت دے سکتا ہے کسی بھی تعداد کو ممکنہ طور پر چاہتے ہو سکتا ہے. صرف intuitively پر آپ لیکن اگر، بٹس کی ایک محدود تعداد پڑے، آپ کو صرف ان permute سکتے ہیں اتنے محدود طریقوں سے. تو آپ کو ممکنہ طور پر نہیں کر سکتے ہیں ایک محدود تعداد کا استعمال بٹس کی کی Permutation کے، zeros اور ہیں کے پیٹرن، ایک لامتناہی کی نمائندگی کے لئے نمبروں کی تعداد، جس کمپیوٹرز کو شاید یہ پتہ چلتا ہے کہ بہت اچھی طرح بعض اوقات ہم سے جھوٹ بول جائے. سچ تو یہ ہے، یہ کرتے ہیں. مجھے CS50 IDE میں واپس چلتے ہیں. مجھے آگے جانے دو اور ایک چھوٹا سا پروگرام تشکیل کہا جاتا imprecision، یہ دکھانے کے لئے کمپیوٹرز، یقینا imprecise ہیں،. اور مجھے آگے جانا ہے اور اس کے ساتھ شروع کرتے ہیں آگے سے کہ کوڈ کے کچھ، اور اب صرف مندرجہ ذیل کام کریں. مجھے آگے بڑھو اور printf کے، فیصد کرنے دو F، الٹا سلیش (ن)، 1 10 سے تقسیم. دوسرے الفاظ میں، کی گہری میں کودو 1/10، جیسے 1 اور 10 سے تقسیم کرنا. یقینا، ایک کمپیوٹر 1/10 نمائندگی کر سکتے ہیں. تو آگے بڑھو اور گئی imprecision بنانے. چلو دیکھتے ہیں. ڈاک ڈبل قسم کی وضاحت. لیکن دلیل قسم int ہے. کیا ہو رہا ہے؟ اوہ، دلچسپ، تو یہ ایک بات ہے سبق سے پہلے سے سیکھا. میں کہہ رہا ہوں، ارے، کمپیوٹر شو مجھے فیصد F کے ساتھ ایک فلوٹ. لیکن میں یہ 2 ints کے دے رہا ہوں. یہ پتہ چلتا ہے تو، میں ٹھیک کر سکتے ہیں طریقوں میں سے ایک جوڑے میں. میں نے صرف 1.0 میں ایک ہی بدل سکتے ہیں، اور 10.0 میں 10، جس پر کرے گا، بے شک، تبدیل کا اثر ہے floats-- میں ان کو اب بھی امید ہے کہ اسی تعداد. وہاں کچھ ہے باہر یا بدل جاتا ہے ہم طویل عرصے سے پہلے ایک بار پھر دیکھ لیں گے. آپ کی تعداد ڈال سکتا. تم، اس parenthetical کا استعمال کرتے ہوئے کر سکتے ہیں اظہار، آپ کہہ سکتے ہیں ارے، کمپیوٹر، یہ لے لو 10، جو میں جانتا ہوں ایک int ہے. لیکن یہ، براہ مہربانی کا علاج،، گویا یہ ایک فلوٹ ہے. لیکن یہ غیر ضروری طور پر پیچیدہ محسوس ہوتا ہے. ہمارے مقاصد کے لئے آج، چلو صرف لفظی دو ان کی طرف اشارہ اقدار سچل بنانے ایک اعشاریہ، اس طرح کے ساتھ. مجھے آگے بڑھو اور دوبارہچلانے، بنانے گئی imprecision، اچھا، ڈاٹ سلیش گئی imprecision، درج. ٹھیک ہے، ہم اچھی لگ رہی ہو. 1 کے مطابق، 10 سے تقسیم میرا یہاں میک، یقینا 0.100000، ہے،. اب، میں نے گریڈ اسکول میں سکھایا گیا تھا 0 کا ایک لامحدود تعداد میں ہونا چاہئے. تو کم از کم کوشش کرتے ہیں ان میں سے کچھ دیکھنے کے لئے. یہ printf ایک چھوٹی سی ہے کہ باہر کر دیتا اچھے اب بھی ہم استعمال کر رہا ہے کے مقابلے میں. یہ آپ کی وضاحت کرنے کی ضرورت نہیں ہے باہر کر دیتا ہے صرف فیصد F، یا صرف فیصد میں. تم واقعی میں وضاحت کر سکتے ہیں یہ چند کنٹرول کے اختیارات. خاص طور پر، میں جا رہا ہوں کہنے کے لئے، ارے، printf کے، اصل میں مجھے 10 دشملو پوائنٹس دکھائے. تو یہ ایک چھوٹا سا عجیب لگ رہا ہے. لیکن تم فیصد کا کہنا ہے کہ، ڈاٹ، کتنے نمبرز آپ کے بعد دیکھنا چاہتے ہیں دشملو نقطہ، اور اس کے بعد ایف فلیٹ کے لئے، اس کی وجہ سے ہے صرف دستاویزی کیا کہتا ہے. مجھے آگے بڑھو اور اس کو بچانے کے ہیں. اور وہ بھی محسوس کریں، میں ہو رہی ہوں چیزوں دوبارہ ٹائپ کرکے کے تھکے ہوئے. تو میں صرف کے قیام رہا ہوں اور یہاں میری چابیاں پر تیر. اور میں نے اپ کو مارنے رکھنے کے لئے، آپ کو حکم دیتا ہے کے سب دیکھ سکتے ہیں کہ میں نے کر دیا، یا غلط طریقے سے بنایا. اور اب میں آگے جانے کے لئے جا رہا ہوں اور نہیں اصل میں بظاہر اس کا استعمال،. گئی imprecision، ڈاٹ بنائیں تاکہ imprecision-- سلیش کیا میں اندر سکھایا گیا تھا گریڈ اسکول کے باہر کی جانچ پڑتال کرتا. میں نے 10 اعشاریہ کو پرنٹ بھی اگر دیتا، یقینا، 0،10000 ہے. لیکن تم کیا جانتے ہو؟ کی ایک چھوٹی سی لالچی حاصل کرتے ہیں. ، کی، کا کہنا ہے کہ جیسے دو میرے 55 دکھائے دشملو کے بعد پوائنٹس. کی واقعی میں اس ڈالیں ایک سپن کے لئے باہر پروگرام. مجھے بنانے کے ساتھ اس کا ریمیک دو گئی imprecision، ڈاٹ سلیش، گئی imprecision. اور ہم یہاں جانا. اپنے بچپن ایک جھوٹ تھا. بظاہر، 1 10 سے تقسیم بے شک ہے 0.100000000000000005551115123-- کیا ہو رہا ہے؟ ٹھیک ہے، یہ تو آپ کی قسم، باہر کر دیتا ہے بنیادی میں باہر اب تک کافی نظر آتے ہیں اس کی نمائندگی تعداد میں، یہ اصل بالکل نہیں 1/10، یا 0.1 ہے اور ہے zeros کی ایک لامحدود تعداد میں. اب، یہ کیوں ہے؟ ویسے، اگرچہ یہ ایک بہت سادہ ہے ہم سے انسان کے لئے نمبر، 1، 10 سے تقسیم یہ اب بھی infinitely کئی میں سے ایک ہے نمبرز ہم کو لگتا ہے کہ ہو سکتا ہے کہ. لیکن ایک کمپیوٹر صرف نمائندگی کر سکتے ہیں متناہی تاکہ تعداد. اور اگر ایسا ہے، مؤثر طریقے سے، کیا کمپیوٹر ہمیں اس کے قریب ترین ہے دکھا رہا ہے تعداد کے سننکٹن ہم 1/10 ہے یقین کرنا چاہتے ہیں، یا واقعی 0،10000 اشتھاراتی Infinitum. بلکہ، اگرچہ، یہ وہ جگہ ہے اسے حاصل کر سکتے ہیں کے طور پر قریب. اور، یقینا، آپ کو نظر آتے ہیں تو ہڈ کے نیچے، ہم دیکھ کر یہاں ہیں کے طور پر دشملو کے بعد 55 ہندسے، ہم اصل میں اس حقیقت کو دیکھنے کے. ابھی آپ نے، اگر ایک طرف ایک کے طور پر کبھی movie-- دیکھا تم میں سے سب سے زیادہ شاید نے have not لیکن سپرمین 3 کچھ سال پہلے، رچرڈ Pryor بنیادی طور پر اس لیوریجڈ ان کی کمپنی میں حقیقت ایک بہت چوری کرنے پیسے کی کسور اور مصنوعات کے، company-- مجھے یاد کے طور پر ہے کیونکہ، یہ ایک while-- بنیادی طور پر تھا ہو گیا ہے کچھ بھی دور پھینک قابل نہیں تھا کہ سینٹ کی کے تصور میں. لیکن اگر آپ کا اضافہ اگر ان تمام چھوٹے، چھوٹے، چھوٹے دوبارہ نمبروں، اور ایک بار پھر، اور پھر آپ کی طرح کر سکتے ہیں، ان کے کیس، پیسے کی ایک اچھی رقم بنانے کے. اسی خیال کی طرف سے چیر رہا تھا ایک سے زیادہ حال ہی، لیکن اس کے باوجود اب بڑی عمر مووی، آفس کے لئے جگہ بلایا، جہاں اس فلم میں لوگ، جو مصیبت، ایک ہی کام کیا مکمل طور پر، بہت زیادہ راستے کے ساتھ ختم ان کے بینک اکاؤنٹ میں پیسے. یہ سب بہت مشکوک تھا. لیکن دن کے اختتام پر، گئی imprecision ہمارے چاروں طرف ہے. اور یہ کہ، بھی، ہو سکتا ہے کیس frighteningly. یہ پتہ چلا ہے کہ سپرمین 3 اور دفتر کی جگہ ایک طرف، وہاں کچھ بہت اصلی ہو سکتا ہے دنیا اثرات imprecise کی حقیقتوں کے اعداد و شمار کی نمائندگی کہ ہم بھی انسان کے لئے اس دن ضروری نہیں کہ ایسا اس کے ساتھ ساتھ ہمیں چاہئے کے طور پر سمجھنے، یا جیسا کہ اکثر ہمیں چاہئے کے طور پر یاد. اور، یقینا، مندرجہ ذیل کلپ ہے کچھ بہت حقیقی دنیا میں ایک نظر سے اگر آپ کو کیا ہوتا ہے کے نتائج گئی imprecision کی تعریف نہیں کرتے کہ نمبرز نمائندگی میں ہو سکتا ہے. [ویڈیو پلے بیک] -Computers، ہم سب کو قبول کرنے آیا ہوں اکثر نراشا مسائل عنقریب کیڑے کے ساتھ جانا، وائرس، اور سافٹ ویئر کے glitches، چھوٹے قیمت ادا کرنے کے لئے سہولت کے لئے. لیکن ہائی ٹیک اور ہائی سپیڈ میں فوجی اور خلائی پروگرام ایپلی کیشنز، سب سے چھوٹی مسئلہ سکتے آفت میں عظیم ہے. جون 4th، 1996 کو، سائنسدانوں سے تیار ایک بغیر پائلٹ ایرین 5 راکٹ شروع کرنے. یہ سائنسی لے جا رہا تھا مصنوعی سیارہ ڈیزائن کیا مختصرا کس طرح قائم کرنے کے لئے زمین کے مقناطیسی میدان انٹرایکٹ شمسی ہواؤں کے ساتھ. راکٹ لئے بنایا گیا تھا یورپی خلائی ایجنسی، اور اس سہولت سے اٹھا فرانسیسی گیانا کے ساحل پر. میں کے بارے میں 37 سیکنڈ -At فلائٹ، وہ سب سے پہلے محسوس کیا کچھ غلط جا رہا تھا. nozzles کے میں swiveling کیا گیا تھا ایک طرح وہ واقعی نہیں کرنی چاہئے. پرواز میں 40 سیکنڈ کے ارد گرد، واضح طور پر، گاڑی مصیبت میں تھا. انہوں نے بنایا ہے جب اور یہ ہے ایک فیصلہ اس کو تباہ کرنے. رینج سیفٹی آفیسر، کے ساتھ زبردست ہمت، بٹن دبایا، اس سکتا کرنے سے پہلے، راکٹ دھماکے سے اڑا دیا عوام کے تحفظ کے لئے ایک خطرہ بن. -یہ شادی سے پہلے کا تھا ایرین 5 کے سفر. اور اس کی تباہی لے لی کیونکہ ایک دوش کی جگہ راکٹ کے سافٹ ویئر میں سرایت. ایرین پر -The مسئلہ تھا ایک بڑی تعداد موجود تھی کہ ضرورت کا اظہار کرنے کے 64 بٹس. اور اگر وہ تبدیل کرنے کے لئے کرنا چاہتا تھا ایک 16 بٹ تعداد میں. انہوں نے مانا ہے کہ تعداد میں کبھی نہیں جا رہا تھا ، بہت بڑا ہونے والوں میں سب سے زیادہ ہے کہ ایک 64 بٹ تعداد میں ہندسے صفر تھے. وہ غلط تھے. ایک کی -The اسمرتتا سافٹ ویئر پروگرام کو قبول کرنے تعداد کی قسم کی طرف سے پیدا ایک اور ناکامی کی جڑ تھا. سافٹ ویئر ڈیویلپمنٹ کی ہو گئی تھی ایک نئی ٹیکنالوجی کے بہت مہنگا حصہ. ایرین راکٹ بہت کیا گیا ہے کامیاب، تو سافٹ ویئر کے زیادہ تر یہ بھی تھا کے لئے پیدا ایرین 5 میں استعمال کیا. -مندرجہ بنیادی مسئلہ ایرین کہ تھا 5، تیز تھا تیز تر تیز. اور سافٹ ویئر نہیں تھا کہ کے لئے حساب. راکٹ کے -The تباہی ایک بہت بڑا مالی تباہی، تھا تمام کی وجہ سے ایک منٹ کے سافٹ ویئر کی خرابی کی. لیکن یہ پہلی نہیں تھی وقت اعداد و شمار کے تبادلوں کے مسائل جدید راکٹ ٹیکنالوجی دوچار کیا تھا. -میں 1991، آغاز کے ساتھ پہلی خلیجی جنگ کے، پیٹریاٹ میزائل اسی طرح کی ایک قسم کا تجربہ تعداد کے تبادلوں مسئلہ کی. اور نتیجے کے طور پر، 28 افراد، 28 امریکی فوجی، ہلاک ہو گئے تھے، اور کے بارے میں 100 دیگر زخمی، جب محب وطن، جس کی توقع تھی آنے والے scuds خلاف کی حفاظت کے لئے، ایک میزائل کو برطرف کرنے میں ناکام رہے. جب عراق نے کویت، اور امریکہ پر حملہ کر دیا ابتدائی 1991 میں صحرا طوفان کا آغاز کیا، پیٹریاٹ میزائل بیٹریاں تعینات کر دیے گئے سعودی عرب اور اسرائیل کی حفاظت کے لئے عراقی Scud میزائل حملوں سے. محب ایک امریکی میڈیم رینج ہے ہوا کے نظام کے لئے کی سطح، پر تیار ریتیان کمپنی کی طرف سے. محب انٹرسیپٹر کی -The سائز خود کے بارے میں تقریبا 20 فٹ لمبی ہے. اور یہ تقریبا 2،000 پونڈ کا وزن. اور یہ، کے بارے میں کے ایک وار ہیڈ لے جا رہی ہے میرے خیال میں یہ تقریبا 150 پونڈ ہے. اور وار ہیڈ خود ہے ایک اعلی دھماکہ خیز مواد، جس میں اس کے ارد گرد کے ٹکڑے ہے. وار ہیڈ کے سانچے ہے buckshot طرح کام کرنے کے لئے ڈیزائن. -مندرجہ میزائل کئے جاتے ہیں چار کنٹینر فی، اور ایک نیم ٹریلر کی طرف سے منتقل کر رہے ہیں. -مندرجہ پیٹریاٹ اینٹی میزائل نظام اب کم از کم 20 سال کے لئے واپس چلا جاتا. یہ اصل میں ڈیزائن کیا گیا تھا ایک فضائی دفاعی میزائل کے طور پر دشمن کے ہوائی جہاز کو نیچے گولی مار کرنے کے لئے. پہلی خلیجی جنگ میں، اس جنگ کے نزدیک پہنچے تو آرمی کرنے کے لئے استعمال کرنا چاہتے تھے scuds، نہ ہوائی جہاز گولی مار. عراقی ائر فورس میں تھا ایک مسئلہ کی بہت زیادہ نہیں. لیکن فوج scuds فکر ہو رہی تھی. اور تاکہ وہ کرنے کی کوشش کی محب کو اپ گریڈ. ایک دشمن -Intercepting میزائل مچھ 5 میں سفر کافی چیلنج کیا جا رہا تھا. لیکن جب محب وطن خدمت میں لے جایا گیا، فوج ایک سے آگاہ نہیں تھا عراقی ترمیم کی گئی ہے کہ ان scuds کو مارنے کا تقریبا ناممکن. کیا ہوا scuds ہے میں آ رہے تھے غیر مستحکم تھے. انہوں بالز Wobbling رہے تھے. اس کی وجہ یہ تھی عراقیوں کے لئے، 600 کلومیٹر کے فاصلے پر حاصل کرنے کے لئے ایک 300 کلومیٹر سے باہر رینج میزائل، وزن میں لے لیا سامنے وار ہیڈ سے باہر. وہ وار ہیڈ ہلکا بنا دیا. تو اب محب وطن ہے Scud کی اوپر آنے کی کوشش کر. اور زیادہ تر وقت، وقت کی غالب اکثریت، یہ صرف Scud کی طرف پرواز کرے گا. محب نظام آپریٹرز ایک بار ، محب اپنے ہدف یاد کیا احساس ہوا وہ محب وطن کے وار ہیڈ سے اڑا لیا اگر ممکن ہو جانی نقصان سے بچنے کے لئے زمین پر گرنے کی اجازت دی گئی. سب سے زیادہ لوگوں نے دیکھا یعنی دین تھا، آسمان میں ان بڑے fireballs کی، اور کے طور پر غلط سمجھا Scud کی ہتھیاروں کی پکڑے. رات میں -Although آسمان، پیٹریاٹ شائع ہوا کامیابی ہونے کے لئے Dhahran اوپر، Scuds تباہ، کوئی غلطی نہیں ہو سکتا اس کی کارکردگی کے بارے میں. نہیں، محب وطن کے رڈار نظام آنے والا Scud کی کے کھو ٹریک، اور کی وجہ سے شروع کی ہے کبھی نہیں ایک سافٹ ویئر دوش کرنے کی. یہ اسرائیلیوں سب سے پہلے دریافت کون تھا اب نظام پر تھا، زیادہ سے زیادہ وقت کے تضادات پائے سرایت ایک گھڑی کی وجہ سے، بن گیا نظام کی کمپیوٹر میں. -کے بارے میں دو ہفتے پہلے Dhahran میں سانحہ، اسرائیلیوں کو اطلاع محکمہ دفاع کہ نظام وقت کھو رہی تھی. تقریبا آٹھ گھنٹے یا چلانے کے بعد، وہ نظام کہ دیکھا کافی کم درست ہوتا جا رہا تھا. محکمہ دفاع کی طرف سے جواب محب بیٹریاں کے سب کہہ نظام نہ چھوڑنے کے لئے ایک طویل وقت کے لئے پر. وہ جو ایک طویل وقت نے کبھی نہیں کہا was-- آٹھ گھنٹے، 10 گھنٹے، 1،000 گھنٹے. کوئی بھی نہیں جانتا تھا. -مندرجہ محب بیٹری بیرکوں میں تعینات Dhahran اور اس کی ناقص داخلی اوپر 100 گھنٹے سے زائد گھڑی پر کیا گیا تھا کی 25th فروری کی رات کو. -یہ ایک درستگی کے لئے وقت پتہ لگایا کی ایک دوسری اس کے دسویں حصے کے بارے میں. اب، ایک ایک سیکنڈ کے دسویں ایک دلچسپ تعداد ہے، یہ بیان نہیں کیا جا سکتا ہے کیونکہ ، بائنری میں بالکل جس یہ بالکل بیان نہیں کیا جا سکتا ہے کا مطلب کسی بھی جدید ڈیجیٹل کمپیوٹر میں. یہ یقین کرنا مشکل ہے. لیکن ایک مثال کے طور پر اس کا استعمال. کے نمبر ایک تیسری ڈالیں. ایک تہائی نہیں ہو سکتا بالکل دشملو میں اظہار. ایک تہائی 0،333 ہے انفینٹی کے لئے چل. کے ساتھ ایسا کرنے کے لئے کوئی راستہ نہیں ہے دشملو میں مطلق درستگی. یہ بالکل مسئلہ کی طرح ہے کہ محب میں ہوا. اب نظام کے بھاگ گیا، بدتر وقت غلطی ہو گیا. آپریشن کے 100 گھنٹے -کے بعد، وقت میں غلطی صرف تقریبا ایک تہائی تھی ایک سیکنڈ کے. لیکن ایک کی ھدف بندی کے لحاظ سے میزائل مچھ 5 میں سفر، یہ ایک سے باخبر رہنے کے نتیجے میں 600 سے زائد میٹر کی خرابی. یہ ایک مہلک غلطی ہو گی کیا پر فوجیوں کے لئے کیا ہوا ایک Scud کی لانچ تھا ارلی وارننگ مصنوعی سیارہ کی طرف سے پتہ اور وہ Scud کی جانتے تھے کہ ان کے جنرل سمت میں آنے والے. وہ نہیں جانتا تھا کہ یہ کہاں آ رہی تھی. اب یہ ریڈار تک تھا محب نظام کا جزو تلاش اور رکھنے کے لئے Dhahran کا دفاع آنے والے دشمن کے میزائل کا ٹریک. -مندرجہ ریڈار بہت ہوشیار تھا. یہ اصل کو ٹریک کرے گا Scud کی کی پوزیشن، اور پھر جہاں یہ شاید پیشن گوئی اگلی بار ریڈار بھیجا جائے گا ایک باہر پلس. کہ ایک رینج گیٹ کہا جاتا تھا. -Then، ایک بار پیٹریاٹ کافی وقت ہے فیصلہ کرتا ہے واپس جاؤ اور اگلے جانچ کرنا منظور اس کا پتہ چلا اعتراض کے لئے محل وقوع، اسے واپس چلا جاتا ہے. تو یہ غلط واپس چلے گئے جب جگہ، یہ تو کوئی اعتراض دیکھتا. اور یہ کوئی بھی نہیں تھا کہ فیصلہ کرتا ہے اعتراض، یہ ایک جھوٹ کا پتہ لگانے تھا، اور ٹریک گرتا. -مندرجہ آنے والا Scud کی غائب ہو گیا ریڈار اسکرین سے. اور سیکنڈ کے بعد، یہ بیرکوں میں تنقید کی. Scud کی 28 کو قتل کیا اور آخری تھی ایک پہلی خلیجی جنگ کے دوران فائرنگ کی. بدقسمتی سے، اپ ڈیٹ سافٹ ویئر اگلے دن Dhahran پر پہنچے. سافٹ ویئر کے دوش تھا رہا فکسڈ، کلوزنگ شورش زدہ میں ایک باب پیٹریاٹ میزائل کی تاریخ. [ویڈیو پلے بیک] DAVID J. MALAN: تو یہ سب کے لئے ہے کہنا اتپرواہ کے ان مسائل اور گئی imprecision سب بھی اصلی ہیں. تو ہم یہاں کیسے حاصل کیا؟ ہم صرف printf کے بارے میں بات کر کے ساتھ شروع ہوا. ایک بار پھر، اس تقریب کہ پردے پر کچھ پرنٹ، اور ہم نے اس کے بعد متعارف کرایا چند دیگر افعال نام نہاد CS50 کی لائبریری سے. اور ہم جاری رکھیں گے کی وجہ سے وقت میں ان کو دیکھنے کے. اور ہم، خاص طور پر، حاصل سٹرنگ کا استعمال کیا، اور int حاصل، اور اب بھی فلوٹ حاصل، اور ابھی تک دوسروں اب بھی ہم سامنا کریں گے اور طویل سے پہلے خود استعمال کرتے ہیں. لیکن اس موقع پر، پڑے ہم پہلے ہی ایک ضرورت کو دیکھا واپس کیا ان افعال ہاتھ کو ذخیرہ کرنے کے لئے؟ وہ ہم واپس ایک تار کے حوالے، یا ایک int، یا فلوٹ. اور کبھی کبھی ہم کہ ڈال کرنے کی ضرورت ہے سٹرنگ، یا INT، یا فلوٹ، کہیں. اور ان چیزوں کو ذخیرہ کرنے، صرف یاد کرتے ہیں شروع میں کی طرح، ہم متغیر ہے. لیکن شروع میں برعکس، C میں ہم اصل اقسام ہیں متغیر ڈیٹا کی اقسام، زیادہ generally-- ان کے درمیان، ایک سٹرنگ، ایک int، ایک فلوٹ، اور ان دوسروں کو اب بھی. اور اس طرح ہم C میں متغیر کا اعلان کرتے ہیں، ہم اپنے ڈیٹا کی اقسام کا اعلان کرنا پڑے گا. یہ کچھ نہیں ہے ہم کریں گے سمسٹر میں بعد کیا کرنا ہے جیسا کہ ہم دوسری زبانوں میں منتقل. لیکن اب کے لئے، ہم نے کی ضرورت ہے ایڈوانس میں ایک priori کے لیے، کمپیوٹر کس قسم سمجھاو متغیر کی ہم یہ ہمیں دینا چاہتا ہوں. ابھی، اسی اثناء میں، پرنٹ کرنے کے لئے ڈیٹا کی اقسام کی ان اقسام، ہم بتا printf سے توقع کیا ہے. اور ہم، ڈور کے لئے فیصد ے دیکھا اور integers کے لئے فی صد میں، اور چند پہلے سے ہی دوسروں. اور ان لوگوں کو صرف ضروریات ہیں بصری پریزنٹیشن کے لئے کہ معلومات کی. اور ان میں سے ہر ایک اصل میں ہو سکتا ہے parametrized یا کسی طرح سے tweaked کیا، آپ کنٹرول کو آگے بڑھانے کے لئے چاہتے ہیں آؤٹ پٹ کی قسم آپ کو ملتا ہے کہ. اور، اصل میں، یہ باہر کر دیتا ہے کہ نہ صرف ایک نئی سطر کے لئے (ن) بھی ہے. ورنہ الٹا سلیش کہا جاتا ہے کچھ بھی نہیں ہے ایک گاڑی کی واپسی، کے لئے R جس ایک سے ماخوذ ہے پرانے اسکول ٹائپ رائٹر، اور یہ بھی ونڈوز کئی سال کے لئے استعمال کیا جاتا ہے. ٹیبز کے لئے الٹا سلیش T ہے. باہر کر دیتا ہے، آپ چاہتے ہیں کہ اگر ایک تار کے اندر ڈبل اقتباس، ہم نے استعمال کیا ہے کہ یاد آوری ڈبل اقتباس ڈبل بائیں اور دائیں پر اقتباس اس طرح اب تک ہماری ڈور کی ختم ہو جاتی ہے. وہ چیزیں جو الجھانے کے لئے لگ رہے ہو گے. آپ میں ایک ڈبل اقتباس ڈال کرنا چاہتے ہیں تو ایک تار اور، بے شک کے وسط، اسے دیکھنے کے لئے بردوست ہے. اور اس طرح آپ کے لئے تو، فرار ہونے کی ہے بول، کچھ کے ساتھ ایک ڈبل اقتباس کی طرح، لفظی، ڈبل اقتباس الٹا سلیش. اور اب بھی چند دوسری بات ہے. اور ہم نے ان میں سے زیادہ نظر آئے گا طویل عرصے سے پہلے اصل استعمال میں. تو اب سے منتقلی کی اجازت اعداد و شمار، اور نمائندگی کی، اور ریاضی کے آپریٹرز، تمام جس کے بارے میں ہمیں کچھ عمارت دی جس کے ساتھ بلاکس کو کھیلنے کے لئے. لیکن اب اصل دے ہمارے ذخیرہ الفاظ کے باقی ہم نے پہلے ہی تھا کہ سکریچ کے ساتھ گزشتہ ہفتے کچھ دوسرے پر ایک نظر لینے کی طرف سے C-- میں تشکیل ان میں سے نہیں. لیکن نظریات ہم ہیں واقعی صرف دیکھنے والے سے ترجمہ زور دینا ایک زبان، سکریچ، دوسرے میں، C. اور وقت کے ساتھ، ہم اٹھا لیں گے ہمارے ٹول کٹ کے لئے مزید اوزار، syntactically ہے، تو بات کرنے کی. اور، یقینا، آپ کے خیالات پر نظر آئے گا ابھی گزشتہ ہفتے سے بجائے واقف ہیں. تو ایسا کرنے دو. آگے بڑھو اور ایک پروگرام کوڑا دو کہ اصل میں کچھ اظہار کا استعمال کرتا، ایک بولین اظہار. مجھے آگے یہاں جانے دو اور ایک نئی فائل بنانے. میں نے اس condition.c فون کروں گا. مجھے آگے جانے دو اور CS50 لائبریری شامل. اور مجھے آگے جانا ہے اور اس میں شامل ہونے دیں ہمارے افعال کے لئے معیاری io.h، اور printf کے، اور زیادہ بالترتیب. مجھے اپنے آپ پر کہ نمونہ دینے کرو int اہم باطل، جن کی وضاحت ہم کریں گے واپس مستقبل میں آتے ہیں. اب مجھے آگے جانا ہے اور دے دو اپنے آپ کو حاصل INT ذریعے ایک int. پھر مجھے آگے بڑھو اور اس کے کیا. میں نے دو less-- ہے تو میں کہنا چاہتا ہوں مثبت، منفی درمیان تمیز، یا صفر اقدار. تو میں صفر سے بھی کم ہے، مجھے دو صرف اس پروگرام کو صرف کا کہنا ہے، منفی، الٹا سلیش (ن)، ورنہ میں صفر سے زیادہ ہو تو. اب میں ہوں، ظاہر کی، کہنے جا مثبت، (ن) printf کے. اور پھر تو میں ایسا کر سکتا if--. میں نے کے برابر ہے، تو 0 میں کر سکتا. لیکن میں بنا رکھا تھا پہلے سے ہی کم از کم ایک غلطی. برابر علامت ہے کہ یاد کرتے ہیں برابر نہیں، ہم انسانوں کو یہ پتہ ہے کے طور پر. لیکن یہ تفویض آپریٹر ہے. اور ہم پر 0 لینے کے لئے نہیں کرنا چاہتا دائیں اور بائیں طرف میں میں ڈال دیا. لہذا اس الجھن سے بچنے کے لئے، یا شاید برابر کے غلط استعمال پر دستخط، انسانوں کچھ سال پہلے کا فیصلہ بہت سے پروگرامنگ زبانوں میں آپ مساوات کے لئے کی جانچ کرنا چاہتے ہیں جب بائیں اور دائیں کے درمیان، آپ اصل میں برابر کا استعمال. تو آپ کو برابر دو بار دستخط مارا. آپ صحیح سے تفویض کرنا چاہتے ہیں تو بائیں کرنے کے لئے، آپ کو کسی ایک ہی علامت کا استعمال کرتے ہیں. تو ہم this-- ورنہ ایسا کر سکتا ہے صفر کے برابر میں برابر تو. میں نے تو جانا ہے اور کر سکتے تھے میرے گھوبگھرالی منحنی خطوط وحدانی کے کھولنے، اور کہتے ہیں، printf کے 0، (ن)، کیا. لیکن کس طرح ان کو یاد راستے میں کانٹے کام کر سکتے ہیں. اور، واقعی، صرف منطق کے بارے میں سوچنا. میں نے ایک نمبر ہے. یہ خاص طور پر ایک عددی ہے،. اور اس کا مطلب یہ کم ہو رہا ہے 0، یا 0، یا 0 سے بڑا مقابلے میں. تو اس کی قسم ہے تقاضا ڈیفالٹ کیس. اور اس طرح ہم، صرف پسند کر سکتا ہے سکریچ،، ورنہ تو اس کے ساتھ تقسیم اور صرف کسی اور کا کہنا ہے کہ. منطقی طور پر، اگر آپ کو پروگرامر صرف وہاں ہے تین بالٹیاں جس کی وجہ سے میں منظر نامے، پہلی fall-- سکتے ہیں دوسرے، یا تیسرے اس کی نہیں کرتے معاملے میں اضافی صحت سے متعلق انہوں نے مزید کہا کی زحمت اور وہاں اضافی منطق. بس کے ساتھ آگے جا یہاں کسی اور کے ڈیفالٹ کیس. اب، چلو آگے بڑھو اس کو بچانے کے بعد، بنانے حالات کے حالات سلیش ڈاٹ نہیں ایک عظیم یوزر انٹرفیس، میں نے فورا ہی نہیں کر رہا ہوں، کیونکہ صارف، میں نے پہلے ذکر کیا ہے. لیکن یہ ٹھیک ہے. ہم اس سادہ رکھیں گے. کے نمبر 42 کی کوشش کرتے ہیں. اور یہ کہ مثبت ہے. کے نمبر کی کوشش کرتے ہیں منفی 42، منفی. کی قیمت 0 کوشش کرتے ہیں. اور، یقینا، یہ کام کرتا ہے. اب، تم سے پہلے کے مسائل کے ساتھ نظر آئے گا طویل، ٹیسٹنگ چیزوں میں تین بار، شاید کافی نہیں. آپ نے شاید کچھ کی جانچ کرنا چاہتے ہیں بڑی تعداد، بعض چھوٹے نمبرز، کسی کونے مقدمات، کے طور پر ہم نے ان کو بیان کرنے کے لیے آتا ہوں. ایک لیکن اب کے لئے، یہ ہے بہت سادہ پروگرام. اور میں،، یقین منطقی طور پر جو تین مقدمات میں آتا ہے کہ. اور، یقینا، یہاں تک کہ ہم اگرچہ صرف ممکنہ منفی پہلو پر توجہ مرکوز گئی imprecision اور فلو کی، میں حقیقت جہاں CS50 کے مسائل کے بہت سے، ہم فکر کرنے نہیں جا رہے ہیں کے بارے میں، ہر وقت، اتپرواہ میں سے ان لوگوں کے مسائل اور گئی imprecision، کیونکہ، حقیقت میں، سی، یہ اصل میں سب نہیں ہے کہ ان چیزوں سے بچنے کے لئے آسان. آپ کو شمار کرنے کے لئے چاہتے ہیں، تو بڑا، اور بڑا، اور بڑا، اس تکنیک آپ وہاں ہیں باہر کر دیتا ہے اکثر کہا جاتا چیزیں شامل، استعمال کر سکتے ہیں لائبریریوں، کوڈ کا مجموعہ، کہ آپ استعمال کر سکتے ہیں کہ دوسرے لوگوں، لکھا جیسے اور دیگر زبانوں میں جاوا اور دوسروں، اصل یہ ایک بہت آسان کر دے یہاں تک کہ اعلی کو شمار کرنے کے. تو یہ واقعی ان خطرات میں سے کچھ ہے زبان آپ استعمال کی ایک تقریب. اور آنے والے ہفتوں میں، ہم کریں گے واقعی کتنا خطرناک C دیکھیں آپ کو مناسب طریقے سے اس کا استعمال نہیں کرتے ہیں تو ہو سکتا ہے. لیکن وہاں سے، اور اس کے ساتھ ازگر، اور جاوا سکرپٹ، گا ہم نے کچھ اضافی تحفظات پر پرت، اور ان خطرات کے کم چلاتے ہیں. تو چلو بنانے میں تھوڑا اور ہمارے پروگرام میں دلچسپ منطق. تو مجھے آگے بڑھو اور تخلیق ہیں منطقی نامی پروگرام صرف اس میں سے کچھ کے ساتھ ادا کر سکتے ہیں اصل منطق، logical.c. میں نے صرف کاپی اور کچھ چسپاں کریں گے اس سے قبل اتنی سے کوڈ میں واپس حاصل کرنے کے یہ اچھا نقطہ اغاز پر. چار C. میں رہا ہوں میرے لئے اس وقت دو یہ سی کے ایک نام دینے جا رہا یہ روایتی ہے صرف اس وجہ، صارف کی طرف سے ایک کردار حاصل. اور چلو طرح کا ڈرامہ کرنے دو میں نے حصہ پر عمل درآمد کر رہا ہوں کہ ری مکس پروگرام کے، ہٹائیں اس سے پہلے پروگرام صارف کی حوصلہ افزائی ایک فائل کو دور کرنے کے. ہم ایسا کیسے کر سکتا ہے؟ C کے برابر ہے تو میں، یہ کہنا چاہتا ہوں برابر، اقتباس unquote، Y، تو میں فرض کرنے جا رہا ہوں صارف ہاں منتخب کیا ہے کہ. میں نے صرف ہاں پرنٹ کرنے کے لئے جا رہا ہوں. یہ اصل میں لکھ رہے تھے تو ہٹانے کا پروگرام، ہم فائل کو خارج کر سکے کوڈ کے زیادہ لائنوں کے ساتھ. لیکن ہم نے اسے سادہ رکھیں گے. ورنہ سی کے برابر ہے، اگر (ن) کے برابر ہے اور اب یہاں، میں، کہنے جا رہا ہوں صارف کی کوئی مراد لیا ہو گا. اور پھر کسی اور، آپ کیا جانتے ہیں؟ میں کیا کوئی اور نہیں جانتے صارف ٹائپ کرنے جا رہا ہے. تو میں صرف یہ کہنا جا رہا ہوں کہ ایک غلطی، جو کچھ بھی ہے وہ اصل ٹائپ. تو کیا یہاں کیا ہو رہا ہے؟ ایک بنیادی فرق ہے میں نے ماضی میں کیا کیا ہے کے مقابلے میں. ڈبل قیمت درج کرنے، ڈبل قیمت درج کرنے، ڈبل کی قیمت درج کرنے، اور، ابھی تک، ایک کی قیمت درج، ایک کی قیمت درج. اس وقت جب کہ، C میں پتہ چلا آپ کو ایک تار لکھنے کے لئے چاہتے، آپ سے ہم نے صرف کے طور پر ڈبل قیمت درج کرنے کا استعمال کرتے ہیں، printf کے ساتھ یہ سب وقت کا استعمال کیا گیا. لیکن اگر آپ صرف ایک کے ساتھ نمٹنے کے لئے چاہتے ہیں تو ایک کردار، ایک نام نہاد چار، پھر آپ نے واقعی ایک کی قیمت درج کا استعمال. آپ کے وہ لوگ پروگرام کیا ہے جو اس سے پہلے، آپ کو نہیں ہو سکتا اس کے بارے میں فکر کرنا پڑا بعض زبانوں میں امتیاز. C میں، یہ فرق پڑتا ہے. اور اگر ایسا ہے تو میں ایک چار ہو جاؤ اور میں چاہتا ہوں برابر کا استعمال کرتے ہوئے چار موازنہ کرنے Y یا ن کی طرح کچھ خط کے برابر ہے، مجھے کیا کرنا ہے، یقینا، ایک کی قیمت درج کرنے کی ضرورت ہے. اب، چلو آگے بڑھو اور اس کے کیا. آگے بڑھو اور بنانے کرو منطقی ڈاٹ منطقی سلیش. اور اب میں حوصلہ افزائی کی جا رہی ہوں. لہذا، شاید، ایک بہتر صارف کے تجربے یہاں کیا کرنا ہے اصل میں مجھے بتاو گے. لیکن میں صرف آنکھ بند کرنے جا رہا ہوں ، جی ہاں کے لئے، OK اچھا Y کہنا. چلو پھر سے چلانے دو، N کوئی لئے، اچھا. مجھے معلوم ہے کہ بعض لوگوں کی طرح مان لیں، میرے ٹوپیاں تالا چابی بھی اکثر سب پر ہے. تو میں نے غلطی کو دارالحکومت Y، درج کرتے ہیں،. OK، جو میں امید کر رہا ہوں بالکل وہی نہیں ہے. بے شک، کمپیوٹر لفظی کیا کر رہا ہے میں نے کے لئے چیک do-- کو بتایا چھوٹے Y اور چھوٹے ن. یہ اچھی طرح محسوس نہیں کرتا صارف کے تجربے، اگرچہ. میرے لئے دعا گو ہیں اور قبول کرتے ہیں یا تو کم کیس یا اوپری کیس. یہ پتہ چلتا ہے تو، تم چاہتے ہو سکتا ہے اسکریچ میں جیسے کچھ کہنا، طرح لفظی یا سی کے برابر ہے دارالحکومت واحد کے حوالے سے کہا Y برابر. باہر کر دیتا ہے، C استعمال نہیں ہوئے اس لغوی مطلوبہ لفظ یا. لیکن یہ دو عمودی سلاخوں ہے. آپ، عام طور پر شفٹ منعقد کرنے کا ہے آپ کو ایک US کی بورڈ استعمال کررہے ہیں، اور عمودی بار مارا آپ کی واپسی کی کلید اوپر چابی. لیکن یہ عمودی بار عمودی بار کا مطلب یا. تو، اس کے برعکس، ہم چاہتے تھے کہنا اور، سکریچ میں طرح، ہم ایمپرسینڈ ایمپرسینڈ ایسا کر سکتا ہے. یہی وجہ ہے کہ، یہاں کوئی منطقی احساس کرتا ہے کیونکہ ایک انسان ممکنہ طور پر نہیں کر سکتا ٹائپ کیا ہے Y اور چھوٹے Y دونوں اور ایک ہی کردار کے طور پر دارالحکومت Y. لہذا یا ہے ہم یہاں کیا ارادہ رکھتے. تو میں دونوں جگہوں پر ایسا کرتے ہیں تو، یا C برابر برابر دارالحکومت N، اب ہے rerun، منطقی بنانے، منطقی ہے rerun. اب، میں Y ٹائپ کر سکتے ہیں. اور میں کے ساتھ دوبارہ ایسا کر سکتے ہیں دارالحکومت Y، یا سرمایہ N. اور میں اضافی میں شامل کر سکتے ہیں اب بھی مجموعے. تو یہ ایک منطقی ہے اب insofar کے پروگرام میں نے کے لئے منطقی طور پر کر رہا ہوں. اس قدر یا اس کی قیمت. اور میں نے کی ضرورت نہیں ہے، ضروری نہیں کہ، دو مزید IFS ورنہ IFS کے ساتھ آئے. میں واقعی میں سے کچھ جمع کر سکتے ہیں اس طرح سے ایک دوسرے کے ساتھ منطق کے متعلق. تو یہ بہتر ہو گا بس کے مقابلے میں ڈیزائن کیا ، کہہ C کم کیس Y برابر ہے تو، پرنٹ ہاں، ورنہ سی دارالحکومت Y برابر ہے تو، پرنٹ ہاں، کسی اور C کے برابر ہے تو دوسرے الفاظ میں lower--، آپ کے پاس کرنے کی ضرورت نہیں ہے زیادہ سے زیادہ شاخیں. تم برابر کے کچھ جمع کر سکتے ہیں منطقی طور پر شاخیں، اس طرح سے کے طور پر. تو صرف ایک پر ایک نظر ڈالیں ہیں حتمی جزو، ایک حتمی تعمیر، کہ C اجازت دیتا ہے. اور ہم میں واپس آ جائیں گے اب بھی دوسروں کے لئے مستقبل. اور پھر ہم کو دیکھ کر یہ نتیجہ اخذ کر لیں گے کوڈ کے نہیں درست اوپر work-- لیکن ڈیزائن کے کوڈ حاصل کوڈ کے، اور ابتدائی پر ان لوگوں کے بیج پلانٹ. تو مجھے آگے بڑھو اور یہاں ایک نئی فائل کو کھولنے. آپ کو پتہ ہے؟ میں نے دوبارہ عمل درآمد کی جا رہی ہوں اسی پروگرام، لیکن ایک مختلف تعمیر کا استعمال کرتے ہوئے. تو مجھے فوری طور پر اپنے آپ کو دے دو رسائی cs50.h شامل کرنے CS50 لائبریری کے لئے، printf کے لئے معیاری io.h. مجھے میری int اہم باطل دے. اور پھر یہاں، دو مجھے آگے بڑھو اور اس کے کیا. چار ج ذرا پہلے، چار کی طرح حاصل ہو جاتا ہے. اور میں نے ایک نئی تعمیر کو استعمال کرنے کے لئے جا رہا ہوں کیا کردار پر، سوئچ now--؟ لہذا سوئچ قسم کی طرح ہے ایک ٹرین کی پٹریوں سوئچنگ. یا، واقعی، اس قسم کی ہے ایک باقی ہے تو، اگر کوئی اور تو، لیکن کسی حد تک مختلف طریقے سے لکھا. ایک سوئچ اس طرح لگ رہا. آپ کو سوئچ ہے، اور پھر کیا کردار یا آپ کو دیکھنے کے لئے چاہتے ہیں کی تعداد، پھر کچھ گھوبگھرالی منحنی خطوط وحدانی میں چاہوں سکریچ، صرف اس چیزیں کہنا. اور پھر آپ کو مختلف مقدمات ہیں. اگر آپ اور کچھ استعمال نہیں کرتے. آپ لفظی لفظ کیس استعمال. اور تم کچھ اس طرح کہیں گے. تو ایک چھوٹے Y کی صورت میں، یا ایک سرمایہ Y کی صورت میں، آگے بڑھو اور ہاں باہر پرنٹ. اور پھر سوئچ سے باہر کو توڑنے. یہی ہے. ہم کیا کر رہے ہیں. ، اگر تو بات کرنے کے علاوہ، کم کیس این، یا سرمایہ N، تو آگے بڑھو اور پرنٹ باہر کوئی، اور پھر توڑ. Else-- اور اس قسم کی ہے پہلے سے طے شدہ کیس indeed-- printf کے error-- اور صرف اچھے کی پیمائش کے لئے، اگرچہ منطقی طور پر اس وقفے ضروری نہیں ہے ہم آخر میں ہیں کیونکہ ویسے بھی سوئچ کی، اب میں سوئچ سے باہر توڑ رہا ہوں. تو یہ تھوڑا مختلف لگ رہا. لیکن، منطقی طور پر، یہ ہے اصل میں برابر. اور تم کیوں استعمال کرے گا دوسرے پر ایک؟ کبھی کبھی، صرف ذاتی ترجیح، کبھی کبھی جمالیات، میں اس کی جانب دیکھنے لگتے تو اب، وہاں کچھ ہے لئے کہا جائے گا اس کوڈ کے پڑھنے کی اہلیت. میرا مطلب ہے، اس حقیقت یہ ہے کہ کوئی بات نہیں کوڈ کے کمرے میں ہم میں سے بہت کے لئے نئی ہے. لیکن یہ صرف کی قسم خوبصورت ہے. تم، خفی Y، دارالحکومت Y دیکھیں کم کیس N، N دارالحکومت ڈیفالٹ، یہ صرف کی قسم چھلانگ ایک طرح سے اپنے آپ کو باہر کہ، arguably سب، شاید گزشتہ مثال آئی ایف ایس، اور عمودی سلاخوں کے ساتھ، اور کچھ آئی ایف ایس، نہیں ہو سکتا ہے. تو یہ واقعی ذاتی کی بات ہے انتخاب، واقعی، یا پڑھنے کی اہلیت، کوڈ کے. لیکن فعالیت کے لحاظ سے، مجھے دو آگے بڑھو اور ایک سوئچ، ڈاٹ سلیش بنانے سوئچ، اور اب، خفی Y میں ٹائپ دارالحکومت Y، خفی (ن)، دارالحکومت N، ڈیوڈ، کہ ہے کیونکہ دوبارہ کوشش نہیں ایک کردار. توقع کے مطابق کی، ایکس، غلطی کرتے ہیں. اور، logically-- اور یہ کچھ ہے I general-- بھی حوصلہ افزائی کرے گا ہم صرف کریدنے رہے ہیں اگرچہ ان کی خصوصیات میں سے کچھ کی سطح. اور یہ واضح نہیں ہو سکتا ہے جب آپ اپنے آپ کو، کی بورڈ پر بیٹھ جاؤ یہ کیسے کام کرتا ہے؟ یہ کیا کریں گے؟ کے بارے میں خوبصورت بات ایک لیپ ٹاپ، یا ڈیسک ٹاپ، یا رسائی ایک سنکلک کے ساتھ ایک کمپیوٹر پر، اور اس طرح ایک کوڈ ایڈیٹر کے ساتھ، آپ کو تقریبا ہمیشہ ان کا جواب دینے کے کر سکتے ہیں ہے صرف کوشش کر اپنے آپ کے لئے سوالات. اگر بیان بازی ہاتھ میں سوال تھے، آپ بھول جائیں تو کیا ہوتا آپ کے وقفے کے بیانات؟ جو اصل میں ایک بہت عام بات کرنے کی، یہ نظر نہیں ہے کیونکہ جیسے آپ واقعی ان کی ضرورت. انہوں نے سچ کو مکمل نہیں آپ ایک خانے یا ایک گھوبگھرالی طرح سوچا تسمہ کرتا. چلو آگے بڑھو اور کوڈ recompile اور دیکھنے. تو سوئچ، ڈاٹ سلیش سوئچ بنانے. کی کم کیس میں ٹائپ کریں Y، اوپر کیس، درج. تو میں نے Y ٹائپ. پروگرام نہیں، ہاں کہا، غلطی، گویا یہ اس کے دماغ تبدیل کر رہا تھا. لیکن اس قسم کی کیا ہوتا ہے کیونکہ، تھا ایک سوئچ کے ساتھ پہلی صورت یہ ہے کہ میچ بنیادی طور پر مطلب یہ ہے کہ، ارے کمپیوٹر، اس کے نیچے تمام کوڈ کو پھانسی. اور آپ کہتے ہیں نہیں ہے تو بریک، یا وقفے نہ کہو، یا وقفے نہ کہو، کمپیوٹر اڑانے کی جا رہی ہے ان خطوط کے تمام کے ذریعے اور جب تک ان سب کو پھانسی جو کہ گھوبگھرالی تسمہ لئے ہو جاتا ہے. تو بریک، یقینا، ضروری ہیں. لیکن یہاں ایک takeaway ہے، جب ہے شک میں، کچھ کرنے کی کوشش. ہو سکتا ہے کہ سب سے پہلے اپنے کوڈ کو بچانے کے، یا ایک اضافی فائل میں اس کو بچانے کے آپ کے بارے میں بہت فکر مند ہیں تو الجھ اور ٹھیک کرنے کے لئے کام آپ کو معلوم ہے کہ کام کر رہا ہے. لیکن چیزوں کی کوشش. اور، جیسا کہ ڈرو شاید نہیں کرتے، کمپیوٹر ایسا ہو سکتا ہے کے، یا آپ یہاں کچھ بھی منسوخ کروں. آپ ہمیشہ واپس آ سکتے ہیں کچھ پہلے ورژن کے لئے. تو چلو دیکھ کر ختم کرنے دو کوڈ کے ڈیزائن. ہم لکھنے کے لئے اب اس کی صلاحیت ہے حالات، اور لکھنے کے loops، اور متغیر، اور کال کے افعال. لہذا، واضح طور سے، ہم اس قسم کی پشت پر ہیں جہاں ہم، سکریچ کے ساتھ ہفتے پہلے تھے ایک کم مجبور متن کے ساتھ ہی سہی اسکریچ سے زیادہ ماحول کی اجازت دیتا ہے. لیکن ہم حاصل کر لیا ہے کہ کس طرح فوری طور پر محسوس کریں سے لغت، یہ بات ہے یہاں تک کہ اگر میں ڈوب کرنے کے لئے تھوڑا وقت لگ کرنے کے لئے جا، اب ہم اس کے ذخیرہ الفاظ کا استعمال کر سکتے ہیں تاکہ زیادہ دلچسپ پروگراموں کو لکھنے کے لئے. اور چلو ایک بچہ قدم لے کہ طرف، کے طور پر مندرجہ ذیل ہے. مجھے آگے جانے دو اور یہاں ایک نئی فائل بنانے کے. میں نے اس کو فون کرنے جا رہا ہوں prototype.c، اور متعارف کرانے پہلی بار کے لئے، کی صلاحیت اپنے اپنے افعال بنانے کے لئے. تم میں سے کچھ کو ہو سکتا ہے سکریچ کے ساتھ یہ کام کیا، جس کے تحت آپ تشکیل دے سکتے ہیں شروع میں اپنی اپنی مرضی کے بلاکس، اور پھر جگہ میں ان کو کھینچ کر لائیں جہاں بھی تم سی میں چاہوں گا اور سب سے پروگرامنگ میں زبانوں، آپ کو بالکل ایسا کر سکتے ہیں that-- اپنے اپنے افعال بنانے، وہ پہلے سے ہی موجود نہیں ہے تو. لہذا، مثال کے طور پر، مجھے آگے جانے دو اور cs50.h شامل کریں، اور شامل ہیں معیاری io.h، int اہم باطل. اور اب ہم ایک ہونا جانے کے لئے تیار پلیس ہولڈر. I پرنٹنگ چیزیں رکھنے آج لوگوں کے ناموں کی طرح. اور یہ کہ like-- محسوس ہوتا ہے اچھا نہیں ہو گا اگر وہاں پرنٹ کا نام نامی ایک تقریب تھی؟ میں printf استعمال کرنے کی ضرورت نہیں ہے. مجھے یاد کرنے کی ضرورت نہیں تمام فارمیٹ کوڈ. میں کیوں، یا کیوں نہیں، مجھ سے پہلے کسی نے ایک تقریب میں بلایا تعداد تخلیق نام، کچھ نام دیا ہے کہ، صرف اسے باہر پرنٹ؟ دوسرے الفاظ میں، اگر میں کہوں، ارے، کمپیوٹر، مجھے ایک تار دے اس طرح کے لئے صارف پوچھ کر، CS50 کی حاصل سٹرنگ تقریب کے ذریعے. ارے، کمپیوٹر، میں اس سٹرنگ ڈال بائیں ہاتھ کی طرف میں متغیر، اور یہ کال. اور پھر، ارے کمپیوٹر، آگے بڑھو اور پرنٹ شخص کا نام، کیا. اب، یہ، اچھا ہو گا کیونکہ اس پروگرام، بجا، پر نامزد ایسا کرنے کی توقع کی جاتی ہے کے مجھ سے کہتا ہے ان لوگوں تقریب کے ناموں کی راہ کی طرف سے. مجھے جانے اور پروٹوٹائپ، درج کریں. اور، بدقسمتی سے، اس پرواز کرنے والا نہیں ہے. Prototype.c، 7 لائن، کردار 5، کی خرابی، ضمنی اعلان تقریب پرنٹ نام کے C99، C99 میں غلط ہے C کے ایک ورژن کے معنی کہ 1999 میں باہر آئے. وہ سب ہے. تو میں نے پتہ نہیں کیا اس کی سب ابھی تک کا مطلب ہے. لیکن میں نے سرخ رنگ میں غلطی کو تسلیم کرتے ہیں. یہ بہت واضح ہے. اور اس کے ساتھ ہے کہ لگتا ہے یہاں سبز کردار، مسئلہ، کھلے پرنٹ نام کے ساتھ ہے قوس ے، قوس، نیم بڑی آنت. لیکن شامل اعلان تقریب ہم مختصر طور پر اس سے قبل دیکھا. یہ بس، کا مطلب ہے، کہ بجنا پتہ نہیں ہے کہ میرا کیا مطلب. یہ بات ہے کہ میں ایک ڈکشنری کا لفظ استعمال کیا ہے کبھی نہیں دیکھا یا اس سے پہلے سکھایا گیا. اور اس طرح میں نے اسے سکھانے کی ضرورت اس تقریب کا مطلب کیا. تو میں نے آگے جانے کے لئے اور ایسا کرنے کے لئے جا رہا ہوں. میں آگے بڑھو اور لاگو کرنے کے لئے جا رہا ہوں میری اپنی تقریب میں بلایا پرنٹ نام. اور میں کہتا ہوں، مندرجہ ذیل کے طور پر، کہ جا رہا ہوں اسے اس، printf کے، ہیلو، فیصد کرتا ے، الٹا سلیش (ن)، نام، نیم بڑی آنت. تو میں صرف کیا کیا؟ لہذا اس کے لئے، باہر کر دیتا ہے اپنی خود کی تقریب کو لاگو، ہم اس قسم کی کچھ قرضے لے اہم طور پر ایک ہی ساخت کے ہم صرف کیا گیا ہے کہ کے لئے لیا جاچکی، اور میں جانتے صرف کاپی اور بہت زیادہ کیا چسپاں میں نے ماضی میں لکھ رہا ہوں. لیکن یہاں پیٹرن نوٹس. int، اہم، باطل، ہم علاوہ چڑھاو لیں گے طویل عرصے سے پہلے کہ اصل میں کیا مطلب ہے. لیکن آج کے لئے، صرف متوازیت محسوس. صفر، پرنٹ کا نام، سٹرنگ کا نام، تاکہ وہاں ہے ایک جامنی رنگ کے مطلوبہ الفاظ کی، جس میں ہم شروع کرنے جا رہے ہیں واپسی کی قسم بلا، کے نام تقریب، اور پھر ان پٹ. لہذا، اصل میں، ہم کشید کر سکتے ہیں طرح گزشتہ ہفتے کے اس قسم کے کے طور پر، اس کا نام یا ہے کوڈ ہم ہیں کے الگورتھم لکھنا ہے کے لئے جا بنیادی الگورتھم کوڈ ہم لکھنے کے لئے جا رہے ہیں. یہ اس کی ان پٹ ہے. یہ اس کی پیداوار ہے. یہ تقریب، پرنٹ کا نام، ہے نام نامی ایک سٹرنگ لینے کے لئے ڈیزائن کیا گیا، یا جو کچھ بھی، ان پٹ کے طور، اور پھر باطل. یہ، کچھ بھی واپس نہیں کرتا جیسے تار حاصل یا INT کرتا حاصل. تو اسے واپس مجھ سے کچھ حوالے کرنے جا رہا ہے. یہ صرف ایک کی ضرورت کے لئے جا رہا ہے ضمنی اثر، تو بات کرنے کی، ایک شخص کا نام پرنٹ کے. تو نوٹس، 7 لائن، I پرنٹ کا نام کال کر سکتے ہیں. لائن 10 میں، میں وضاحت کر سکتے ہیں یا پرنٹ کے نام پر عملدرآمد. لیکن، بدقسمتی سے، کہ نہ کافی ہے. مجھے آگے جانے دو اور محفوظ کرنے کے بعد اس recompile. واہ، اب، میں نے اسے بنایا ہے بدتر، یہ لگتا ہے. کی اتنی ضمنی اعلان تقریب پرنٹ نام غلط ہے. اور، ایک بار پھر، وہاں زیادہ غلطیوں ہے. لیکن میں بھی، اس سے قبل خبردار طور آپ کے ساتھ ابیبھوت ہو تو، یا ایک چھوٹا سا دکھ اتنے دیکھنا غلطیاں، پہلے پر صرف توجہ مرکوز صرف ابتدائی طور پر، کیونکہ یہ شاید ایک جھرن کاری اثر پڑا ہے. C، یا بجنا تو زیادہ خاص طور پر، اب بھی پرنٹ کے نام کو تسلیم نہیں کرتا. اور یہ کہ کیونکہ بجنا ہے، ڈیزائن کی طرف سے، اس قسم کی گونگا ہے. یہ صرف آپ کو ایسا کرنے پر یہ بتانے ہے کرتا ہے. اور یہ صرف ترتیب میں ایسا کرتا ہے جس میں آپ کو ایسا کرنے کی یہ بتا. تو میں نے، لائن چار اہم تعریف کی ہے جیسے ہم بہت کثرت سے کر رہا ہوں. میں لائن 10 پر پرنٹ نام وضاحت کی گئی ہے. لیکن میں استعمال کرنے کے لئے کوشش کر رہا ہوں سطر سات پر پرنٹ نام. یہ بھی جلد ہی، ابھی تک موجود نہیں ہے. لہذا میں ہوشیار ہونا، اور طرح ہو سکتا ہے، ٹھیک ہے، تو صرف ساتھ کھیلنے کی اجازت، اور پرنٹ کے نام تک منتقل یہاں، اور دوبارہ مرتب. یا الله. یہ کام کر گیا. یہ کہ کے طور پر آسان تھا. لیکن منطق بالکل ہے. آپ بجنا سکھانے کے لئے ہے جو کچھ اس پہلی تقریب وضاحت کی طرف سے ہے. اس کے بعد آپ اسے استعمال کر سکتے. لیکن، واضح طور سے، اس محسوس ہوتا ہے ایک مستحکم ڈھال کی طرح. تو ہر وقت میں چلانے کے ایک مسئلہ میں، میں نے صرف ہوں اجاگر اور کوڈ کو کاپی کرنے کے لئے جا میں نے لکھا تھا، اسے کاٹا اور اسے یہاں چسپاں. اور، یقینا، ہم کر سکتے تھے کچھ منظرنامے تدبیر جہاں ایک تقریب شاید ایک اور بات کرنے کی ضرورت. اور تم صرف ہر نہیں ڈال سکتا ہر دوسرے کے اوپر کی تقریب. تو یہ بدل جاتا ہے وہاں ایک بہتر حل. ہم یہ ہو چھوڑ سکتے ہیں. اور، واضح طور سے، یہ عام طور پر اچھا ہے، اور آسان، اور اچھا ڈیزائن مرکزی پہلے ڈالنے کے لئے، کیونکہ، ایک بار پھر، صرف سبز پرچم پر کلک کیا جب کی طرح اہم، اس تقریب ہے ڈیفالٹ کی طرف سے قتل ہو جاتا. تو تم اس کے ساتھ ساتھ ڈال سکتا فائل کے سب سے اوپر اس کے تاکہ آپ کو یا کسی بھی وقت جب دیگر انسانی کی فائل کو دیکھتا ہے آپ کو کیا ہو رہا ہے پتہ ہے صرف مرکزی پہلے پڑھنے کی طرف سے. یہ پتہ چلتا ہے تو، ہم بجنا بتا سکتے ہیں مستعدی، ارے، بجنا، چار آن لائن، میں لاگو کرنے کے لئے وعدہ کرتا ہوں ایک تقریب میں بلایا تعداد نام ایک تار بلایا نام لیتا ہے کہ ان پٹ، اور ریٹرن کچھ نہیں، باطل کے طور پر. اور میں کے ارد گرد حاصل کر لیں گے بعد میں اس پر عمل درآمد. یہاں مین آتا ہے. مین اب لائن پر 9 استعمال کر سکتے ہیں پرنٹ کریں نام، کیونکہ بجنا کہ یقین کرنے کے ہے، بالآخر، جو تعریف کا سامنا کریں گے کی تعداد نام نفاذ کی. تو میری فائل کو بچانے کے بعد، دو مجھے آگے بڑھو اور پروٹوٹائپ بنانے، اچھا اس وقت لگ رہا ہے. ڈاٹ، سلیش پروٹوٹائپ، مجھے دو آگے بڑھو اور ایک کا نام میں ٹائپ کریں. ڈیوڈ، ہیلو ڈیوڈ، Zamila، ہیلو Zamila، اور، بے شک، اب یہ کام کرتا ہے. تو یہاں جزو ہے کہ ہم کر لیا ہے ایک اپنی مرضی کی طرح، ایک اپنی مرضی کی تقریب بنا دیا سکریچ بلاک کے ہم اس کو بلا رہے ہیں. لیکن سکریچ برعکس جہاں آپ کر سکتے ہیں صرف اسے تخلیق اور اس کا استعمال شروع، اب ہم ایک ہونا پڑے گا زیادہ pedantic چھوٹی، اور اصل میں بجنا کو تربیت استعمال کرنے کے لئے، یا یہ توقع کرنا. اب، جیسا کہ ایک ایک طرف، یہ سب وقت ہے یہی ہم سمیت ایمان پر صرف آنکھ بند کر دیا گیا cs50.h، میں، اور معیاری io.h سمیت؟ ویسے، یہ پتہ چلتا ہے، چند دوسری چیزوں کے درمیان، تمام ہے کہ ان لوگوں کو ڈاٹ H میں ہے فائلوں، ہو جس میں فائلوں کے لیے. انہوں ہیڈر فائلوں، تو بات کرنے کی کر رہے ہیں. وہ اب بھی سی میں لکھا ہو لیکن وہ فائل کی ایک مختلف قسم ہو. ابھی کے لئے، آپ کو بہت زیادہ فرض کر سکتے ہیں cs50.h، میں کے اندر ہے کہ تمام ہے کہ اس طرح کچھ ایک liners، نہیں ہے کہا جاتا پرنٹ نام افعال کے لئے، لیکن تار حاصل کی، حاصل کریں فلوٹ، اور چند دیگر. اور اسی طرح prototypes کی ہیں، کسی ایک liners کے، معیاری io.h کے اندر printf کے، میں اب ہے، جس کے لئے میری اپنی پرنٹ نام کی تقریب. تو دوسرے الفاظ میں، اس پورے وقت سے ہم نے صرف آنکھ بند کاپی اور چسپاں کر دیا گیا اس میں شامل ہیں، شامل ہیں کہ، کیا ہو رہا ہے؟ لوگ سراگ کے صرف قسم کے ہیں کیا افعال کے طور بجنا رہے ہیں، یقینا، لاگو کیا، صرف دوسری جگہوں پر مختلف فائلوں میں کہیں اور سسٹم پر. تو ہم نے پرنٹ کے نام کو لاگو کیا ہے. اس کے اس طرف کا اثر ہے سکرین پر کچھ پرنٹنگ. لیکن یہ اصل میں ایسا نہیں ہوتا مجھے کچھ واپس حوالے. ہم کے بارے میں جانے کے لئے کس طرح ایک پروگرام پر عمل پیرا ہے کہ مجھے کچھ واپس حوالے کرتا ہے؟ ویسے، چلو اس کی کوشش کرتے ہیں. مجھے آگے بڑھو اور لاگو کرتے ہیں ایک فائل کہا جاتا return.c تو ہم کس طرح کچھ کا مظاہرہ کر سکتے جیسے تار حاصل، یا int حاصل، اصل میں واپس آ رہا ہے صارف کو واپس کچھ. آگے بڑھو اور int اہم باطل کی وضاحت کرتے ہیں. اور، ایک بار پھر، مستقبل میں، ہم کریں گے کہ int اور یہ کہ باطل کیا معلوم اصل میں کر رہا ہے. لیکن آج کے لئے، ہم کریں گے اس کو تحفہ کے طور پر لیں. I، آگے اور printf کے جانے کے لئے جا رہا ہوں ایک اچھا صارف کے تجربے کے لئے، ایکس ہے. اور پھر میں نے کے لئے انتظار کرنے جا رہا ہوں صارف کو حاصل int کے ساتھ ایکس مجھے دینا. اور پھر میں نے آگے جانے کے لئے جا رہا ہوں اور مربع ایکس باہر پرنٹ. تو آپ کو صرف ایک ہے جب کی بورڈ، عام لوگوں چھوٹی گاجر کا استعمال کی بورڈ پر علامت اقتدار میں نمائندگی کے لئے کے، یا کے مائپادک. لہذا مربع X میں موجود ہے. اور اب میں ایسا کرنے جا رہا ہوں. میں نے صرف ایکس کیا do-- سکتا ہے مربع؟ X مربع X اوقات ایکس ہے. اور ہم نے اس میں کچھ وقت پہلے پہلے سے ہی آج. اس طرح محسوس نہیں کرتا تمام زیادہ پیش رفت. آپ کو پتہ ہے؟ کے اس خیال کی کچھ بیعانہ دو تجرید کی پچھلی بار سے. یہ تو اچھا نہیں ہو گا نامی ایک تقریب نہیں ہے مربع بالکل اس کرتا ہے؟ اب بھی یہ، کے اختتام پر دن، ایک ہی ریاضی کرتا ہے. لیکن خلاصہ بتائیں دور لینے کا خیال ایک ہی نمبر سے ضرب ایک اور، اور صرف اس کا نام دیں، کی طرح اس قدر مربع. اور، دوسرے الفاظ میں، میں C، کی ایک تقریب کی تخلیق ہیں کہا جاتا مربع بالکل اس کرتا ہے. اس اسکوائر کو بلایا جا رہا ہے. یہ ایک int لے جا رہا ہے. اور ہم صرف کریں گے گے ڈیفالٹ کی طرف سے ن کہتے،. لیکن ہم یہ ہم چاہتے ہیں کچھ بھی کہہ سکتے ہیں. اور سب اس کے لئے جا رہا ہے کہ لفظی، واپسی ہے ایسا، ن اوقات (ن) کا نتیجہ. لیکن یہ ہے کیونکہ کسی چیز کے واپس لوٹنے، جس میں جامنی رنگ سے ہم نے مطلوبہ الفاظ کی ہے پہلے کبھی نہیں دیکھا، میں نے، 11 لائن پر، نہیں صرف باطل اس وقت کہہ سکتے ہیں. صفر، مثال میں ہم نے ابھی دیکھا پرنٹ نام کے بجائے، صرف، کا مطلب ہے کہ کچھ کرو. لیکن مجھے کچھ واپس حوالے نہیں کرتے. اس صورت میں، میں چاہتی ہو واپس کرنے کے لئے (ن) کے اوقات (ن)، یا یہ کہ جو کچھ بھی ہے، وہ نمبر. تو میں نہیں کہہ سکتا، ارے، کمپیوٹر، I باطل کچھ بھی نہیں واپس آ جائیں،. یہ، فطرت کی طرف لوٹ آئے ایک int ہو رہا ہے. اور تو ہے کہ یہاں کیا ہو رہا ہے کہ تمام ہے. مربع کی ان پٹ ایک int ہونے جا رہا ہے. اور تاکہ ہم اس کا استعمال کر سکتے ہیں، جو ضروری ہے ایک نام ہے، N. یہ پیداوار جا رہا ہے ایک نام کی ضرورت نہیں ہے کہ ایک int. ہم آپ کو مین پر چھوڑ کر سکتے ہیں، یا جو بھی ہے اس کی قیمت تو ہمیں یاد کرنے کے لئے مجھے استعمال کرتے ہوئے اس کی اپنی متغیر کے ساتھ چاہتے ہیں. اور، ایک بار پھر، صرف نئے یہاں مطلوبہ لفظ کی واپسی ہے. اور میں صرف کچھ ریاضی کر رہا ہوں. میں واقعی غیر ضروری ہونا چاہتے تھے تو، میں کہہ سکتا INT مصنوعات کو ملتا ن اوقات ن. اور پھر میں مصنوعات کو واپس، کہہ سکتے ہیں. لیکن، پھر، میرے نقطہ کرنے کے اوائل یہ صرف نہیں کیا جا رہا اچھے design-- کی طرح، کیوں ایک نام کو متعارف کرانے، ایک علامت، مصنوعات کی طرح، صرف فوری طور پر اس کو واپس کرنے کے لئے؟ یہ ایک چھوٹا سا صاف ستھرا ہے، ایک چھوٹا سا سخت، تاکہ صرف واپسی (ن) بار کہنے کے لئے بات کرنے کے لئے، ن، یکسر اس لائن سے چھٹکارا حاصل. اور یہ، پڑھنے کے لئے صرف کم کوڈ ہے غلطیوں کے لئے کم موقع. اور ہے تو آپ یہ دیکھتے ہیں اصل میں اب کام کرتا ہے. اب، میں جا رہا ہوں آگے اور واپسی بنانے کے. افوہ، تقریب کے ضمنی اعلان. میں نے پہلے کوئی بڑی بات یہ غلطی کی ہے،. مجھے صرف ٹائپ کریں، یا اجاگر اور کاپی، بالکل وہی تقریب پروٹوٹائپ، یا دستخط، یہاں تقریب کی. یا مجھے پوری تقریب منتقل کر سکتے ہیں. لیکن یہ ایک چھوٹا سا سست ہے. تو ہم ایسا نہیں کریں گے. اب، مجھے واپسی بنانے کے لئے ہیں ایک بار پھر، سلیش واپسی ڈاٹ. X 2. ایکس مربع جاتا ہے 4. X 3. ایکس مربع ہے 9 ہے. اور تقریب لگتا اب کام کرنے کی. تو فرق یہاں کیا ہے؟ I، مربع کہا جاتا ہے کہ ایک تقریب ہے اس صورت میں، میں ایک ان پٹ میں ڈال دیا جس میں. اور میں ایک پیداوار واپس حاصل. اور ابھی تک، ماضی میں، اگر میں نے دوسری مثال کھولنے ، پہلے سے جس prototype.c کہا جاتا تھا، میں پرنٹ نام، تھا جس میں باطل واپس آئے، تو بات کرنے کی، یا پھر یہ کچھ بھی نہیں واپس آئے، اور محض ایک ضمنی اثر تھا. تو کیا یہاں کیا ہو رہا ہے؟ ویسے، تقریب پر غور صرف ایک لمحے کے لئے سٹرنگ حاصل. ہم تقریب کا استعمال کرتے ہوئے کر رہا ہوں مندرجہ ذیل طریقے سے تار حاصل. ہم نے ایک تقریب حاصل پڑا ہے سٹرنگ، طرح، cs50.h شامل کریں معیاری io.h، int، اہم، باطل شامل. اور پھر ہر وقت میرے پاس اس طرح اب تک حاصل سٹرنگ بلایا، میں نے کہا ہے کچھ، کی طرح سٹرنگ ، تار حاصل ہو جاتا ہے کیونکہ تار چلو اس get.c-- حاصل سٹرنگ بلالے خود ایک تار واپس کہ میں نے تو یہ کر سکتے ہیں استعمال، اور، کا کہنا ہے کہ ہیلو، کوما، فیصد ے، الٹا سلیش (ن)، ے. تو یہ ایک ہی مثال ہے، واقعی، ہم نے پہلے کیا تھا کہ. تو سٹرنگ ایک قدر واپس حاصل. لیکن ایک لمحے پہلے، تعداد سٹرنگ ایک قدر واپس نہیں کرتا. یہ صرف ایک ضمنی اثر ہے. تو یہ ایک بنیادی فرق ہے. ہم نے مختلف دیکھا ہے ابھی افعال کی اقسام، جن میں سے کچھ واپس آ چکے ہیں اقدار، جن میں سے کچھ نہیں کرتے. تو شاید یہ سٹرنگ، یا INT، یا فلوٹ ہے. یا شاید یہ صرف باطل ہے. اور فرق یہ ہے ان افعال ہے کہ اعداد و شمار کو حاصل کرنے اور ایک قدر واپس اصل میں ہیں مذاکرات کی میز پر واپس کچھ لانے، تو بات کرنے. تو آگے بڑھو اور ایک آخری سیٹ پر نظر ڈالیں اب، ایک احساس دیتا ہے کہ، مثالوں کے ہم کس طرح طاقت ہو، بے شک، تجریدی بہتر، اور بہتر ہے، اور بہتر، یا اس سے زیادہ، اور اس سے زیادہ، اور زیادہ، حکم میں لکھنے کے لئے، بالآخر، بہتر کوڈ. آگے بڑھو، اور روح میں رہنے دو سکریچ کے، مندرجہ ذیل کام کریں. مجھے آگے بڑھو اور شامل ہیں cs50.h، میں اور معیاری io.h. مجھے آگے بڑھو اور دے دو اپنے آپ کو ایک int، اہم، باطل. اور مجھے آگے جانا ہے، اس cough.c بلالے. اور مجھے آگے اور صرف جانے دو سکریچ طرح، کھانسی / N باہر پرنٹ. اور میں اس کو تین بار کیا کرنا چاہتے ہیں. لہذا میں ہوں، کورس کے، صرف جا کاپی اور تین بار پیسٹ کرنا. اب میں بنانے کے لئے جا رہا ہوں ڈاٹ سلیش کھانسی کھانسی. کے اپنے آپ کو تھوڑا اور کمرے دینے کرو یہاں، درج، کھانسی، کھانسی، کھانسی. ظاہر ہے، نہیں ہے، پہلے سے ہی ایک بہتری کے لئے موقع. مجھے کاپی اور چسپاں کیا چند بار آج. لیکن یہ صرف اس لئے میں نے نہیں کیا تھا کے طور پر بہت سے حروف ٹائپ کرنا ہے. میں اب بھی تبدیل کر دیا گیا کیا کوڈ کا ان لائنوں ہیں. یہ تین لائنوں، ایک جیسی ہیں جس سست محسوس ہوتا ہے اور بے شک ہے، اور شاید صحیح نقطہ نظر نہیں ہے. کیا جزو کے ساتھ تو ہم اس کوڈ کو بہتر بنانے کے کر سکتے تھے؟ ہم کاپی اور پیسٹ کوڈ کی ضرورت نہیں ہے. اور، یقینا، اگر آپ محسوس کرتے ہیں کسی بھی وقت اپنے آپ کو کاپی اور چسپاں، اور یہاں تک کہ، کوڈ کو تبدیل نہیں مشکلات ایک بہتر طریقہ ہے ہیں. اور، یقینا، نہیں ہے. مجھے آگے بڑھو اور لوپ کے لئے ایک ایسا، اگرچہ نحو نہ کروں ابھی تک قدرتی طور پر آ. یہ تین بار کیا، صرف مندرجہ ذیل کام کرکے اور میں مشق سے یہ پتہ کرنے کے لئے ہو. لیکن اب ہم مثالوں کی ایک بڑی تعداد ہے. اور آپ دیکھیں گے سب اب بھی زیادہ ریفرنسز. یہ ہے کہ، 6 لائن پر نحو ہے دوہراتا ہے کہ اسکریچ طرح بہت بلاک کے، مندرجہ ذیل تین بار دہرائیں. یہ اب کے لئے ایک چھوٹا سا جادو ہے. لیکن یہ زیادہ ملے گا، اور زیادہ واقف. اور اسے دہرانے جا رہا ہے لائن آٹھ میں تین بار، کہ میں تو دوبارہ مرتب میک کھانسی اتنا، ڈاٹ سلیش کھانسی، کھانسی، کھانسی، کھانسی. یہ اب بھی اسی طرح کام کرتا. تو ہے کہ سب ٹھیک ہے اور اچھا ہے. لیکن اس سے بہت پر abstracted نہیں ہے. یہ بالکل صحیح ہے. لیکن یہ وہاں کی طرح محسوس ہوتا ایک موقع ہو سکتا ہے، کی دنیا میں کے طور پر سکریچ، آغاز کی قسم تا کہ یہ چند semantics کے شامل کرنے کے لئے میں نے صرف لوپ کے لئے کچھ بھی نہیں ہے، اور ایک تقریب کا کہنا ہے کہ کھانسی، یا کھانسی کرتا. آپ کو پتہ ہے؟ مجھے ایک بننے کے لئے کوشش کرتے ہیں اس سے بھی تھوڑا کولر، اور اصل میں ایک تقریب لکھتے ہیں کہ کچھ ضمنی اثرات ہیں، یہ کھانسی فون کریں. اور یہ کوئی ان پٹ لیتا ہے، اور پیداوار کے طور پر کوئی قیمت واپس. لیکن تم یہ کیا کرتا ہے معلوم ہے؟ یہ this-- printf کے کراسکتا unquote جو اقتباس، کھانسی. اور اب یہاں، میں جا رہا ہوں آگے اور int کے لئے جانے کے لئے، میں، صفر ہو جاتا ہے میں سے کم 3، میں پلس پلس. میں ہے جو، printf کا کام نہیں کرنے جا رہا ہوں arguably سب ایک کم سطح پر عمل درآمد تفصیل کے. مجھے کھانسی کے لئے کس طرح کی پرواہ نہیں کرتے. میں نے صرف کھانسی تقریب کا استعمال کرنا چاہتے ہیں. اور میں صرف کھانسی کو فون کرنے جا رہا ہوں. اب وجود میں ائی کو نوٹس. آپ ایسا نہیں کرتے تو آپ کو ایک تقریب کہتے ہیں یہ، آدانوں مکمل طور پر ٹھیک دینا چاہتا ہوں. بس کھلی قوس، بند کر سکتا ہوں قوس، اور آپ کیا کر رہے ہیں. آپ کو ایک تقریب کی وضاحت کرتے ہیں، یا ، ایک تقریب کے پروٹوٹائپ کا اعلان آپ کو پیشگی میں معلوم ہے کہ اگر یہ نہیں ہے کوئی بحث کرنے جا رہا، وہاں ان لوگوں کو قوسین میں صفر کہتے ہیں. اور یہ کہ بعض ہوتا تمہیں وہ اتفاقی طور پر اسے کا غلط استعمال نہیں کرے گا. مجھے آگے بڑھو اور کھانسی بنا دو. اور، کورس کی، میں نے ایک غلطی کی ہے. Dammit، کہ وہاں ہے ضمنی اعلان. لیکن یہ ٹھیک ہے. یہ ایک آسان حل ہے. میں نے صرف پروٹوٹائپ اعلی اپ کی ضرورت ہے میری فائل میں میں نے اصل میں اسے استعمال کر رہا ہوں کے مقابلے میں. تو اب مجھے کھانسی ایک بار پھر، اچھا بنانے کے لئے ہیں. اب، یہ کام کرتا ہے. کھانسی، کھانسی، کھانسی، کھانسی بنائیں. لہذا اگر آپ کو لگتا ہے ہو سکتا ہم سچ ہو کہ صرف اس مسئلہ انجینئرنگ. اور، یقینا، ہم ہیں. یہ ایک اچھا نہیں ہے ایک پروگرام کے امیدوار کے لئے اس وقت refactoring پر، اور کام کر رہے پدانکردوست سڑن بلایا، جہاں آپ کو کچھ کوڈ کے لے، اور اس کے بعد آپ کی قسم عنصر چیزیں باہر، تو کے طور پر ان کے لئے زیادہ semantics کے بتانا، اور یہ بالآخر طویل مدت کے دوبارہ استعمال. لیکن اس کی طرف سے ایک عمارت بلاک ہے زیادہ جدید ترین پروگراموں کہ ہم شروع کریں گے طویل عرصے سے پہلے کہ تحریری طور پر ہمارے ذخیرہ الفاظ کی اجازت دیتا ہے بہتر کوڈ لکھنے کے لئے ہے جس کے ساتھ. اور، یقینا، کی صورت میں آپ دیکھتے ہیں ہم مزید اس وسیع نہیں کر سکتے. یہ تھوڑا لنگڑا لگتا ہے کہ میں، اہم، لوپ کے لئے اس خوفناک کے بارے میں فکر کرنے کی ضرورت ہے، اور بار بار کھانسی کالنگ. کیوں میں نے صرف کھانسی نہیں بتا سکتا، تین بار کھانسی، براہ مہربانی؟ دوسرے الفاظ میں، میں کیوں نہیں صرف کھانسی اور ایسا کرنے کی ان پٹ کو دے؟ کیوں میں نے صرف، نہیں کہہ سکتا میں مرکزی کھانسی تین بار. اور اب، اس قسم کی جادو ہے. یہاں بہت تکراری ہے. اور ویسے، ایک بچہ قدم ہے بے شک،. لیکن صرف صلاحیت پر کہنے کے لئے لائن آٹھ، تین بار کھانسی، یہ صرف اتنا زیادہ پڑھنے کے قابل ہے. اور، اس کے علاوہ، مجھے پتہ کرنے کی ضرورت نہیں یا کھانسی لاگو کیا جاتا ہے کس طرح دیکھ بھال. اور، یقینا، بعد میں میں اصطلاح اور آخری منصوبوں کے لئے، آپ کے ساتھ ایک منصوبے سے نمٹنے تو ایک ہم جماعت یا دو ہم جماعتوں، آپ کا احساس ہوگا کہ آپ کے لئے جا رہے ہیں کرنے کے لئے ہے، یا کرنے کے لئے، کام کی تقسیم چاہتے ہیں. اور آپ کا فیصلہ کرنے کے لئے چاہتے ہیں جا رہے ہیں پیشگی، کون کیا کیا جا رہا ہے، اور جو ٹکڑوں میں؟ اور نہ یہ اچھا ہو گا اگر آپ، مثال کے طور پر، تحریری طور پر اہم کے انچارج، کیا لے. اور آپ کا روم میٹ، یا آپ پارٹنر زیادہ عام طور پر، کھانسی کو لاگو کرنے کا خیال رکھتا ہے. اور یہ ڈویژن، ان تجرید کی دیواروں، یا تجرید کی تہوں تو آپ گے،، سپر طاقتور ہیں ، خاص طور پر بڑے کے لئے، کیونکہ زیادہ پیچیدہ پروگراموں اور سسٹمز، یہ ایک سے زیادہ لوگوں کو تعمیر کرنے کی اجازت دیتا چیزیں ایک ساتھ، اور بالآخر اس طرح سے ایک دوسرے کے ساتھ ان کے کام کو سلائی. لیکن، کورس کے، ہم اب کھانسی ٹھیک کرنے کی ضرورت. ہم کھانسی بتانے کی ضرورت کہ، ہے، تم کیا جانتے ہو؟ آپ ایک لینے کی ضرورت کے لئے جا رہے ان پٹ تاکہ باطل نہیں، لیکن int اور اب. آگے بڑھو اور میں ڈال دو INT کھانسی. میں صفر ہو جاتا ہے. میں نے کتنی بار سے بھی کم ہے. میں نے تین پہلے کہا. لیکن اس میں کیا چاہتا ہوں نہیں ہے. میں عام کیا جا کرنے کھانسی چاہتے تکرار کے کسی بھی تعداد کی حمایت. لہذا، بے شک، یہ کہ میں چاہتا ہوں ن ہے، جو کچھ بھی صارف مجھ سے کہتا ہے. اب میں آگے بڑھو اور پرنٹ کھانسی کہہ سکتے ہیں. اور کوئی بات نہیں کیا تعداد صارف، میں گزر جاتا ہے میں نے اس پر کئی بار iterate گا. دن کے آخر میں اتنی، پروگرام ایک جیسی ہے. لیکن یہ چیزیں سب کو نوٹس یہاں تک کہ ایک اور فائل میں ہو سکتا ہے. بے شک، میں میں نہیں جانتے لمحے کس طرح printf کا لاگو کیا جاتا ہے. میں اس وقت پتہ نہیں کس طرح حاصل سٹرنگ، یا int حاصل، یا فلوٹ حاصل لاگو کیا جاتا ہے. اور میں نہیں چاہتا ہوں میری سکرین پر انہیں دیکھ. ویسے بھی، میں نے پر توجہ مرکوز کرنے کے لئے شروع کر رہا ہوں میرا پروگرام، ان کے افعال نہیں. اور اگر ایسا ہے، بے شک، جیسے ہی آپ کے طور پر اس طرح کے کوڈ کو باہر فیکٹرنگ شروع، ہم بھی کھانسی منتقل کر سکتے ہیں ایک علیحدہ فائل کرنے کے لئے؟ کسی اور نے اس پر عملدرآمد کر سکتے تھے. اور آپ اور آپ کے پروگرام بن بہت خوبصورت، اور پڑھنے کے قابل، arguably سب، واقعی چار وہیں لائن پروگرام. تو اب آگے چلتے ہیں اور ایک اور تبدیلی. نوٹس کہ میری پروٹوٹائپ سب کو تبدیل کرنے کے لئے ہے. تو مجھے تو ہے کہ حل کریں میں چللایا نہ ہو. کھانسی بنائیں، مجھے ایک بار کھانسی چلانے کے زیادہ، اب بھی ایک ہی بات کر. لیکن اب، ہم ایک ہے نوٹس ایک آخری ورژن کے لئے جزو. آپ کو پتہ ہے؟ میں ضروری، صرف کھانسی نہیں کرنا چاہتا. میں زیادہ عام ہے کچھ ہے کرنا چاہتے ہیں. تو تم کیا جانتے ہو؟ مجھے یہ کرنا چاہتا ہوں. مجھے زیادہ سکریچ کی طرح، ہے کرنا چاہتے ہیں ، کرتا ایک کا کہنا بلاک کے، لیکن نہ صرف کچھ تو کئی بار کچھ کہنا. میں نے اسے ایک بہت ہی خاص سٹرنگ کہنا چاہتا ہوں. اور، اس وجہ سے، میں ایسا نہیں کرتے یہ صرف کھانسی کہنا چاہتا ہوں. مجھے یہ کہنا چاہتا ہوں جو کچھ بھی سٹرنگ میں منظور کیا جاتا ہے. تو نوٹس، میں عام کر دیا ہے یہ تو اب جب کہ کہہ دو کہ اچھا نام کی طرح لگتا ہے اس کے لئے، سکریچ کی طرح، ، دو دلائل لیتا سکریچ برعکس. ایک ایک تار ہے. ایک ایک int ہے. اور میں ان کو سوئچ کر سکتے. میں صرف کی قسم کے خیال کی طرح پہلا سٹرنگ کہنا، اور پھر کس طرح بہت سے پچھلوں. باطل کو اب بھی اس کا مطلب ہے کہ کچھ بھی واپس نہیں کرتا. یہ صرف بصری طرف ہیں اثرات، [کے ساتھ کی طرح؟ اردن،؟] چللانا کی زبانی ضمنی اثر. یہ اب بھی کچھ ن بار کرتا، 0 تک، لیکن ن کے برابر نہیں. اس کا مطلب یہ ن کل اوقات. اور پھر صرف باہر پرنٹ جو کچھ بھی اس سٹرنگ ہے. تو میں واقعی عام کیا ہے کوڈ کے اس لائن. تو اب، میں نے کس طرح عمل درآمد کرتے کھانسی تقریب؟ I باطل کھانسی بھی کر سکتے ہیں. اور میں اب بھی کس طرح میں لے جا سکتے ہیں کئی بار آپ کو کھانسی کے لئے چاہتے ہیں. لیکن تم کیا جانتے ہو؟ اب مجھے کیا کہنا پنٹ سکتے ہیں. I ساتھ کہہ کال کر سکتے ہیں لفظ کھانسی، ن میں گزر. اور میں یہ بھی لاگو کرنے کے لئے چاہتے ہیں تو، صرف تفریح ​​کے لئے، ایک چھینک کی تقریب، میں نے کئی بار کچھ چھینک کر سکتے ہیں. اور میں، میں reusing ن رکھ سکتے کیونکہ اس تناظر یا دائرہ کار میں ہے کہ میٹر کو نوٹس اس تقریب کے اندر اندر صرف موجود. اور (ن) اس سلسلے میں صرف یہاں اس تقریب کے اندر موجود ہے. تو ہم واپس آ جائیں گے گنجائش کے ان مسائل. اور یہاں، میں نے صرف کہنے جا رہا ہوں، ہیں achoo، اور اس کے بعد (ن) بار، نیم بڑی آنت. اور اب، میں صرف قرضے لینے کی ضرورت ان کی تقریب یہاں دستخط. تو کھانسی درست ہے. باطل چھینک اب صحیح ہے. اور میں اب بھی صرف اتنا کہنا ضرورت. تو میں کہتا ہوں، کہنے جا رہا ہوں سٹرنگ، int ن، نیم بڑی آنت. اس لیے میں زیادہ انجنیئر کیا ہے heck کے اس پروگرام سے باہر. اور یہ ایسا نہیں کرتا ضروری یہ ہے مطلب تحریری طور پر جب آپ کو کیا کرنا چاہئے پروگراموں میں سے بھی آسان. کہ ظاہر ہے کچھ لے واقعی آسان، بہت مختصر، اور دوبارہ عمل درآمد راستے میں بہت زیادہ کوڈ کا استعمال کرتے ہوئے. لیکن آپ کو اصل میں نظر آئے گا، اور میں وقت، ان مثالوں پر واپس دیکھو اور احساس، اوہ، ان مراحل ہیں ہم، اصل میں وسیع کرنے کے لئے لے گئے کسی چیز فیکٹر، دن کے آخر میں جب تک میرا کوڈ اصل میں بہت مناسب ہے. میں نے تین کھانسی کے لئے چاہتے ہیں کیونکہ بار پھر تین بار چھینک، میں نے صرف، اس rerun کرنے جا رہا ہوں پروگرام کھانسی بنانے، اور کھانسی چلانے. اور میں تین کھانسی ہے اور تین چھینک. اور اس طرح یہ ایک بنیادی ہے پیرا میٹر، اگر آپ، ہم کے بارے میں جانا ہو سکتا ہے کہ کس طرح کے لئے اصل میں ایک پروگرام کو لاگو. لیکن ذرا دیکھو ابھی کیا ہے دو ہم اس وقت کے سب کر رہا ہوں اور کیا حتمی ٹکڑوں میں سے کچھ اس سادہ کمانڈ کے پیچھے ہیں. دن کے آخر میں، ہم نے ہمارے سنکلک طور بجنا کا استعمال کرتے ہوئے کیا گیا. ہم سورس لکھ رہا ہوں کوڈ، تبدیل مشین کوڈ میں بجنا ذریعے. اور ہم صرف میک استعمال کر رہا ہوں تاکہ ہمارے اسٹروکس کی سہولت کے لئے ہمیں یاد کرنے کی ضرورت نہیں ہے کہ بجنا خود سے ان لوگوں کے منتر. لیکن اصل بنائیں کیا کر رہی ہے؟ اور، کے نتیجے میں، کیا بات ہے بجنا اصل میں کر؟ ہم آسان کر دیا ہے، حالانکہ یہ باہر کر دیتا ہے آج کی یہ کہہ کر بحث، آپ، ماخذ کوڈ لے کے طور پر اسے منظور آپ کو دیتا ہے جس میں ایک سنکلک، ان پٹ مشین کی پیداوار کوڈ، بدل جاتا ہے وہاں وہاں کے اندر کچھ مختلف اقدامات. اور مرتب چھتری ہونا ہوتا اقدامات کی ایک پوری چڑھانے کے لئے مدت. لیکن صرف چڑھاو دو اس سے باہر واقعی بہت تیزی سے. یہ ہم کر رہا ہوں باہر کر دیتا ہے زیادہ سے زیادہ چیزوں کو ہر بار میں نے ایک پروگرام چلائیں، یا ہر بار میں نے آج ایک پروگرام مرتب. تو کے preprocessing سے مراد سی کے ایک پروگرام میں کچھ بھی this--، ہم نے بار بار نظر آئے گا کے طور پر، کہ، اس ہیش کی علامت کے ساتھ شروع ہوتا ہے یا یہاں ہیش ٹیگ علامت، کا مطلب ہے کہ یہ ایک پریپروسیسر ہدایت ہے. اس کا مطلب ہے، اس معاملے میں، ارے کمپیوٹر، اس فائل کے ساتھ کچھ اس سے پہلے کہ آپ کو اصل میں میرے اپنے کوڈ کو مرتب. اس صورت میں، ہیش ہے شامل ہیں، بنیادی طور پر، کہہ کے C کی راہ، ارے کمپیوٹر، مندرجات مل جاؤ cs50.h، میں کے لئے اور ان کے یہاں چسپاں. ارے کمپیوٹر، مل جاؤ معیاری io.h کے مندرجات، اس پر ہے جہاں کہیں بھی ہارڈ ڈرائیو، اسے یہاں چسپاں. لہذا ان چیزوں ہو کے preprocessing دوران پہلی. اور بجنا ہمارے لئے اس کے تمام کرتا ہے. اور ایسا ہی رفو کرتا ہے تیزی سے، آپ کو بھی ایسا نہیں کرتے کیا ہو چار مختلف چیزیں دیکھ. لیکن اس سے پہلے اس طرح قدم ہے. کیا اصل میں اگلے کیا ہوتا ہے؟ ویسے، اگلے عہدیدار قدم مرتب کر رہا ہے. اور یہ پتہ چلا ہے کہ ایک پروگرام مرتب تکنیکی طور سے جانے کا مطلب ہے کہ ماخذ کوڈ، ہم نے سامان کچھ کرنے کے لئے، آج لکھ دیا گیا اسمبلی کا کوڈ بلایا، کچھ نہ کچھ کہ تھوڑا مختلف لگ رہا. اور، اصل میں، ہم اس حقیقی تیزی کو دیکھ سکتے ہیں. مجھے اصل میں میرے IDE کو چلیں. ، مجھ سے آگے اور کھلے hello.c کے چلتے ہیں جس بہت پہلے پروگرام ہے جس کے ساتھ ہم آج شروع کر دیا. اور مجھے آگے جانا ہے اور بجنا ایک چلانے کی اجازت مختلف طریقے سے تھوڑا، بجنا ایس، hello.c کے، جو اصل میں کرنے جا رہا ہے مجھے ایک اور فائل hello.s یہ دے. اور ہم نے کبھی نہیں شاید ہو جائے گا ایک بار پھر کوڈ کے اس طرح دیکھنے. آپ ایک کم سطح لے تو CS61 کی طرح کے نظام کی کلاس، آپ کو بہت زیادہ نظر آئے گا کوڈ کی اس قسم کی. لیکن یہ اسمبلی زبان ہے. یہ x86 اسمبلی زبان ہے کہ CPU بنیادی جاتا ہے کہ CS50 IDE اصل میں سمجھتی. اور خفیہ یہ کرتا ہے کے طور پر نظر آتے ہیں، یہ کچھ ہے کمپیوٹر بہت اچھی طرح سمجھتا ہے. نائب ق، یہ ایک منہا ہے. تحریکوں نہیں ہے. یہاں کے افعال میں سے نہیں بلا رہا ہے، X oring، ایک تحریک، ایک اضافہ، ایک پاپ، ایک واپسی. تو وہاں کچھ بہت کم سطح کی ہدایات CPUs کے سمجھتے ہیں کہ کہ میں نے پہلے اشارہ. یہی انٹیل کے اندر ہے. کے پیٹرن ہیں zeros اور ہیں کہ ان arcanely الفاظ نقشہ، لیکن کسی حد تک اچھی طرح کا نام دیا، ہدایات، تو بات کرنے. یہی تو کیا ہوتا ہے آپ اپنے کوڈ کو مرتب. آپ کو اسمبلی ملتا اس سے باہر زبان، جس میں تیسرا قدم جمع کرنے کے لئے ہے کا مطلب ہے کہ کہ اسمبلی کے کوڈ میں، بالآخر، مشین code-- zeros اور ہیں، نہ کہ ہم صرف ایک لمحے پہلے دیکھا متن. تو پری پروسیسنگ ہے کہ تلاش کرتا اور جگہ لے لے، اور چند دوسری چیزوں کے. مرتب اپنے ماخذ لیتا C سے کوڈ، ماخذ کوڈ ہم جماعت سے، لکھا ہے کہ کوڈ ہم صرف میں glanced کہ. جمع کے کہ اسمبلی لیتا zeroes اور کرنے کے لئے کوڈ CPU واقعی گے دن کے آخر میں سمجھ. اور لنک آخری مرحلہ ہے پھر ہمارے لئے ہوتا ہے، اتنی تیزی سے کہ ہم بھی ایسا نہیں کرتے کا کہنا ہے کہ نوٹس، ارے کمپیوٹر، کے تمام لے zeros اور ہیں کہ داؤد کے کوڈ کو مرتب کرنے کا نتیجہ اور اس صورت میں اس کی اہم تقریب. اور ہے کمپیوٹر، مل جاؤ zeros اور ہیں تمام CS50 عملے نے لکھا ہے کہ CS50 لائبریری کے اندر. داؤد کے ساتھ میں ان لوگوں کو ملائیں. اور ہے کمپیوٹر، تمام zeros مل جاؤ اور کسی اور سال لکھا والوں کہ پہلے printf کے لئے. اور میں ان لوگوں کو شامل پوری بات، تو ہے کہ ہم نے میرے zeros اور ہیں، مل گیا CS50 عملے کے zeros اور ہیں، printf کے zeros اور ہیں، اور کچھ اور ہم استعمال کر رہے. وہ سب ایک میں ایک دوسرے کے ساتھ مل کر کیا حاصل پروگرام، نامی اس صورت میں، ہیلو. بس تو آج کے بعد، ہم کریں گے لفظ مرتب استعمال کرتے ہیں. اور ہم نے حاصل کی جاچکی کے لئے لے جائے گا جب کہ ہم اس کا مطلب آپ کے پروگرام مرتب، کا کہنا ہے کہ،، ارے پری پروسیسنگ، جمع، اور لنک. لیکن اصل میں کچھ رسیلی چیزیں وہاں ہے ہڈ کے نیچے ہو رہا. اور خاص طور پر اگر آپ کو ، متجسس کچھ وقت حاصل آپ poking ہے شروع کر سکتے ہیں یہ کم سطح پر ارد گرد. لیکن اب کے لئے، اس بات کا احساس آج کے لئے نتائج یہ درمیان ہیں بہت صرف ایک عمل کا آغاز، کے ساتھ آرام دہ ہو رہی ہے کے ہیلو دنیا کی طرح کچھ. بے شک، ہم آج جو کچھ کیا کے سب سے زیادہ یقینی طور پر انتہائی تیز رفتار میں نہیں ڈوبیں گے. اور یہ کچھ لے جائے گا وقت، اور کچھ پریکٹس. اور مشکلات ہیں، آپ کو ترتیب دیں گے کے لئے اپنے کی بورڈ مارا چاہتے ہیں یا سکرین پر چللاو. اور اس کے سب ٹھیک ہے. اگرچہ، شاید نہیں کرنے کی کوشش بہت بہت لائبریری میں یہ کروں. اور بالآخر، تمہیں اگرچہ قابل شروع کرنے کے لئے کیا جائے، اچھا کوڈ میں دونوں نمونوں کو دیکھ کر، آپ نے لکھا ہے کہ اور غلطیوں میں آپ نے کر دیا ہے کہ. اور کرنے کے عمل کی طرح بہت ایک TF بننے یا کسی CA کی طرح ہے، آپ بہتر حاصل کرنے کے لئے شروع کریں گے اور ان نمونوں کو دیکھ کر میں بہتر، اور صرف آپ کو حل کرنے کے بالآخر اپنے مسائل. اس دوران میں، کافی مقدار ہو جائے گا ہم میں سے آپ کو مدد کی قرضے دے، اور آپ کو حاصل کرنے کے لئے اس کے ذریعے. اور لکھنے اپس میں مسائل میں سے سب کے لئے آپ کے ذریعے ہدایت کی جائے گی حکم دیتا ہے میں سے سب میں یقینی طور سے جانتے ہیں کہ اب تک پریکٹس کی ایک بہت، لیکن اڑایا ہے ہو سکتا ہے اب کے لئے کسی کی سر پر. اور یہ کہ مکمل طور پر ٹھیک ہے. لیکن، بالآخر، تم جا رہے ہو پیٹرن ابھر کر سامنے دیکھنے کے لئے شروع کرنے کے لئے. اور ایک بار آپ کے تمام ماضی حاصل پاگل تفصیلات، قوسین کی طرح، اور گھوبگھرالی منحنی خطوط وحدانی، اور نیم کولون، اور چیزیں، واضح طور سے، کہ بالکل نہیں ہے ذہنی دلچسپ. اور اس کا مقصد نہیں ہے کسی بھی تعارفی کلاس لینے. اس سے کوئی فرق کرنے جا رہے ہیں کہ خیالات کے مطابق ہے. اس کے loops ہے، اور حالات، اور افعال، اور زیادہ طاقتور تجرید، اور کوڈ کے فیکٹرنگ، اور اچھا ڈیزائن، اور اچھی سٹائل، اور بالآخر درست آپ کے کوڈ کے، بالآخر ہے سب سے زیادہ اہمیت کے لئے جا. لہذا اگلے ہفتے، ہم ان کو لے جائے گا کہ ہم سب سے پہلے شروع میں دیکھا خیالات اور اب ترجمہ C. کے لئے اور ہم شروع کریں گے کے پہلے متعارف کرانے کے لئے کورس کی حقیقی دنیا ڈومینز. Glosbe پر آپ کو سیکورٹی کی دنیا پر توجہ مرکوز کریں گے اور مزید خاص خفیہ نگاری، scrambling معلومات کے فن. سب سے پہلے میں اور آپ کے مسائل اپنے آپ کو اس سے آگے لکھنے کے لئے حاصل کرے گا نحو کے کچھ کے ساتھ کھیلنے کے اور بعض منطقی حل کرنے کے مسائل، بالآخر طویل عرصے سے پہلے، اصل میں جدوجہد کرنا ہے، یا کو خفیہ، اور بالآخر بےرمز معلومات. اور سب کچھ ہم نے کیا ہے آج، کافی کم کرے گا سطح، صرف اجازت دینے کے لئے کی جا رہی ہے ہم سے ایک، اور ایک لینے کے لئے، اور اوپر کی جانب ایک اور قدم ابھی تک سب سے زیادہ دلچسپ کوڈ لکھنے. کہ اگلے ہفتے پر تو زیادہ. [ویڈیو پلے بیک] وہ کیا آپ کے بارے میں مجھے بتا سکتے ہیں آخری بار آپ نے اسے دیکھا؟ وہ کیا میں واقعی، کہہ سکتے ہیں؟ میرا مطلب ہے، یہ کسی بھی دوسرے کی طرح تھا پہلے سے پیداوار ریہرسل، کچھ بھی نہیں تھا سوائے اس نے کہا میرے ساتھ پھنس کہ بہت آخر میں. -یہ CS50 تھا. یعنی، ایک کٹ سب کی ریہرسل پر بہت اچھا کام. یعنی دین کے لنچ؟ ہاں، تم نے اور میں کر سکتے ہیں تھوڑا سا میں ایک سینڈوچ قبضہ. مجھے صرف ساتھ debrief میں دو ڈیوڈ واقعی بہت تیزی سے. ڈیوڈ؟ ڈیوڈ؟ [END پلے بیک]