[Powered by Google Translate] DAVID J. MALAN: ٹھیک ہے، اس CS50 ہے، اور یہ ہے دو ہفتے کے شروع کریں. آپ کا شکریہ. ہمیں ایک فون کال کے ساتھ یہاں شروع. کے بارے میں 617 بگ CS50 ڈائل کرنے کی ہے. CS50: یہ CS50 ہے. شٹل کے لڑکے کے لئے 1 دبائیں. پھر سے شروع کرنے کے لئے، 9 دبائیں. DAVID J. MALAN: تو انہوں نے شٹل لڑکے، 1 پریس کے لئے کہا. تو ہم 1 پریس کے لئے جا رہے ہیں. CS50: اپنے اصل کیا ہے؟ پرمانیکتا، پریس 1. Mather، پریس 2. Boylston، پریس 3. Lamont، پریس 4. کو mem ہال پریس 5. پھر سے شروع کرنے کے لئے، 0 دبائیں. DAVID J. MALAN: ہم نے پرمانیکتا کی 1 پریس کریں گے. CS50: اگلا، دوسرا شٹل 1:10 PM پر چھوڑ دیتا ہے یہ بہت منٹ، اور پھر 1:20 PM، 1:30 PM، 1:40 PM. یہ CS50 ہے. DAVID J. MALAN: تو یہ CS50 کی آواز ہے. اور یہ آخری منصوبوں کی قسم کی ایک مثال کے طور پر ہے، مثال کے طور پر، آپ کی طرف کاٹ سکتی ہے سمسٹر کے اختتام. مثال کے طور پر، اس shuttleboy.cs50.net موجود ہے - اصل میں ایک منصوبہ ہے کہ میں سب سے پہلے CS51 لینے کے بعد لکھا واپس جب میں ایک انڈر گریجویٹ تھا. اور پریرتا یہاں واپس آ گیا تو تھا، وہ تھا تھا طباعت شٹل بس نظام الاوقات، اور کوئی تھا آن لائن اپ چیزیں دیکھنے کا تصور. اور اس میں ایک ہفتے کے آخر میں میں کبوتر کی طرح، کے ذریعے ڈالا شیڈول طباعت، اور اسے ایک کمپیوٹر پروگرام ported. اس وقت، کمپیوٹر پروگرام لکھا ہوا C. میں اور تم اصل میں ایک ٹائپ شٹل لڑکے کی طرف سے یہ دوڑ ٹمٹمانے فوری طور پر جیسا کہ ہم کیا گیا ہے اس طرح دور کر. لیکن سال کے دوران، اس کو فوری طور پر میں تیار ہے پیغام رسانی بوٹ. یہ اس ویب سائٹ میں حال ہی میں وضع کیا ہے ایک میں، ایس ایم ایس کی بنیاد پر آلہ ہے، کے ساتھ کے طور پر آواز کی بنیاد پر اس آلے کو میں. اور یہ چیزوں کی قسم میں اشارہ کرنا یہ ہے کہ آپ کر سکتے ہیں کی سمسٹر کے آخر تک خود کے لئے کیا. مثال کے طور پر، وہاں، شٹل کے لڑکے کا SMS ورژن ہوتا ہے مندرجہ ذیل کے طور پر کام کرنے کے لئے. اگر، آپ کے موبائل فون پر، آپ 41411 پر ایک متن پیغام بھیجیں گے اور پھر شٹل لڑکے کے لئے خصوصی علامت sboy بھیج، A B اور، جہاں ایک اصل ہے اور بی کی طرف سے کے بعد ایک منزل - مثال کے طور پر، Boylston خلائی پرمانیکتا - کیا آپ کو چند سیکنڈ کے اندر اندر واپس ہو جانا چاہئے اصل متن اس طرح ہے شٹل لڑکے سے پیغام آپ کو بتا بالکل جب اگلے چند شٹل کو اس نقطہ کی طرف سے ہے، اس پر جا نقطہ B. اور اس کے طور پر جانا جاتا ہے کی ایک عام مثال ہے ایک API کا استعمال کرتے ہوئے. تو مثال کے طور پر، اس صرف shuttleboy.cs50.net ہے، اس کی اصل اوتار ویب کی بنیاد پر ہے. لیکن اعداد و شمار ہے کہ اس اور دیگر اطلاقات واضح ہے کہ CS50 تیار کیا سب سب کو بے نقاب کر رہے ہیں شکل میں یہاں APIs کی، درخواست پروگرامنگ انٹرفیس. اور یہ صرف کہنے کی پسند ہیں طریقہ ہے کہ لوگوں کو ہم پسند ہے انٹرنیٹ اور دوسروں کو کچھ وقت خرچ پیدا کیا ہے سافٹ ویئر ہے کہ آپ کے لئے ہم سے اعداد و شمار پر قبضہ اور استعمال کر سکتے ہیں پھر سب سے اوپر آپ کی اپنی ایپلی کیشنز کی تعمیر کہ ڈیٹا سیٹ کے. تو مثال کے طور پر، جن میں سے اس شٹل لڑکے API صفحے، CS50 دستی، بنیادی طور پر دستاویزات میں ہوتا ہے آپ اعداد و شمار کے لئے CS50 سرورز پوچھ کے بارے میں کیسے جا سکتے ہیں. مثال کے طور پر، اگر آپ CSV فائلوں، کوما سے واقف ہیں اقدار الگ، یہ صرف طرح کی فوری اور گندی ہیں فائلوں ایکسل کی طرح. تو آپ کے تمام اعداد و شمار کے سب کے لئے شٹل لڑکے کو پوچھ سکتے ہیں کے گھروں اور ان کے GPS کے نقاط، اور آپ کو مل جائے گا واپس، اس طرح بنیادی طور پر، ایک سپریڈ شیٹ ہے کہ تو آپ کو آپ کے اپنے ایک پروگرام میں پڑھ سکتے ہیں اور اس کے بعد نتائج پیدا، شٹل لڑکے ہی کی طرح کر رکھا جائے ہوتا ہے. ان لوگوں سے زیادہ واقف، زیادہ جدید اعداد و شمار نمائندگی کے لیے JSON، جاوا سکرپٹ کے آبجیکٹ سنکیتن شامل ہیں. تم سے کچھ کی طرف واپس آئے گا سمسٹر کے اختتام. لیکن پھر یہ صرف CS50 اپنے APIs کے کئی میں سے ایک ہے. اب ہے اور دلچسپ بات ہے، ان دنوں، فیس بک اور ٹویٹر اور گوگل اور بہت ہر مقبول ویب سائٹ کے باہر API، جو اگر تم پڑھ کا مطلب ہے کسی قسم کا ہے دستاویزات اپنی ویب سائٹ پر، آپ کو ایک کے لئے سائن اپ اکاؤنٹ، آپ کے سب سے اوپر پر سافٹ ویئر لکھنے تو شروع کر سکتے ہیں جو کچھ بھی اوزار یا ڈیٹا کمپنی ہے جو فراہم کرتا ہے. اور ہماری اپنی تعلیم کے ساتھیوں کے ایک جوڑے سال پہلے ایک اس کی ایک میک ورژن لکھا تھا. تو سب سے اوپر بائیں میں عنوان یہاں میک لنک میں، آپ اصل میں کر سکتے ہیں میک OS ویجیٹ ہے جو خود اپنے میک پر چلتا ہے کرنے کے لئے ڈاؤن لوڈ، اتارنا اسی قسم کی چیزوں کی. تو یہ اس طرح کے ڈیٹا سیٹ کے سب سے اوپر پر تعمیر کے بارے میں ہے. لیکن سمسٹر کے اختتام کی طرف اس کے بارے میں مزید. تو اصلی ایک مسئلے پر فوری میں صرف کی قسم حاصل کرنے کے لئے کودو، چیزیں آج گرم، اور لگتا ہے کہ میں سے کچھ پر واپس چیزیں ہم نے گزشتہ ہفتے کو دیکھا. خاص طور پر، آپ کے وزٹرز کا ریکارڈ رکھا جاؤ اور ھیںچو، کا کہنا ہے کہ، یہاں یہ مثال ہے. Buggy1.c، اس کورس کی ویب سائٹ پر دستیاب ہے اگر آپ چاہتے ہیں اسے ڈاؤن لوڈ کرنے اور اپنے ارد گرد ڑکیلنا. لیکن یہاں میں لشکر یہ کافی مختصر پروگرام میں زوم، اور صرف بنیادی عمارت بلاکس میں کہا گیا ہے کہ بعض انتہائی تیز رفتار recap ہم واقعی حاصل کی جاچکی کے لئے لے جا شروع کرنے جا رہے ہیں. نیلے چیزیں تو، 1 9 کے ذریعے لائنوں میں، صرف سافٹبال سوال. تو یہ صرف تبصرے ہیں. وہ کوئی فعال معنی نہیں ہے. لیکن وہ احساس میں تبصرے ہیں کہ وہ نوٹ ہیں کہ میں، انسانی، کہ درس میں اور اس کے بعد اپنے آپ کو بنا دیا تو لیکچر، میں اصل میں یاد کر سکتے ہیں کہ اس پروگرام لائن کی طرف سے لائن اس کے ذریعے پڑھنے کے بغیر کرتا ہے اور میرے دماغ میں تاریخ recreating. مزید برآں، اگر میں جیسے کسی اور پر اس پروگرام کے حوالے تم، یہ زیادہ سے زیادہ آپ کو واضح اس طرح تبصرے کی وجہ سے ہے، کیا پروگرام اصل میں کیا کر رہی ہے، یا کم از کم کیا پروگرام کر کرنا ہے. چاہے یا نہیں یہ صحیح ہے ایک مکمل طور پر معاملہ ہے. اب، کثیر لائن تبصرے کے ساتھ C میں، یاد ہے کہ لائن پر ایک جادو کی علامت ہے، * /. یہ یہاں کا مطلب ہے کہ ایک تبصرہ کے آغاز آتا ہے. اور کچھ نہیں فرق پڑتا ہے جب تک کہ تم آخر مختتم تک پہنچنے کے، جس میں * /، کے برعکس ہے. تو حقیقت یہ ہے کہ میں نے 80 میں سے کچھ عجیب ستاروں ہیں یہاں سے بائیں سے دائیں واقعی میں صرف ایک جمالیاتی تفصیل ہے. یہ کوئی فعال معنی نہیں ہے. اب ہے کہ کس طرح 11 لائن کے بارے میں کیا خیال ہے؟ کیا یہ عام آدمی کی شرائط میں کیا کرتا ہے؟ یہ کیا ہے؟ سامعین: معیار پر مشتمل ہے. DAVID J. MALAN: ٹھیک ہے، اچھا ہے. تو یہ stdio.h لائبریری بھی شامل ہے. تو اس کا کیا مطلب ہے؟ ٹھیک ہے، کہ فائل کے اندر، stdio.h، ایک پوری چڑھانے ہیں تقریب کا اعلان کیا - یہ ہے کہ، کوڈ ہے کہ کسی اور نے لکھا. ایک تقریب میں اعلان کیا ہے اور ایک بہترین مثال stdio.h ہے - جو پسندیدہ اب تک؟ تو printf میں سے ایک سب سے زیادہ عام ہیں، یقینی طور پر استعمال کرنے کے لئے جلد ہی، اس لائبریری سے ہے. اگر میں کوڈ کی اس لائن کو خارج کر لیتے ہیں، بجنا چللاو جا رہا ہے آپ کے وزٹرز کا میں ایک اگھوشیت علامت کا استعمال کرتے ہوئے کے بارے میں کچھ. شاید پہلے سے نہ سوچا کچھ مطلوبہ الفاظ کی ہے، کیونکہ ہم نے سنکلک کیا printf لگتا ہے کو مطلع نہیں کیا ہے چاہتے ہیں، جب تک کہ ہم اس لائن میں شامل ہیں. اور نیچے زمین پر، سچ میں، وہ لائن کیا کہہ رہا ہے یہ ہے اس فائل stdio.h، کھولنے جہاں بھی یہ سرور پر ہے ہارڈ ڈرائیو، یا آلات کی ہارڈ ڈرائیو، اور کاپی پیسٹ کی ٹھیک ہے میری فائل میں بغیر میرا دستی طور پر ایسا کرنے کے لئے. اب، ایک بار ہم نے اہم حاصل، ہم بہت پہلے سے شروع کر دیں گے علاوہ چڑھا کیا int اور کیا باطل ہے. لیکن اب کے لئے دو، تین لائنوں کو دیکھو کے اندر اندر 15 17 کے ذریعے. اس میں چھوٹی گاڑی کے طور پر دعوی کرتے ہیں. اپنے تبصرے میں 7 لائن کا کہنا ہے کہ "10 پرنٹ چاہیے ستارے لیکن نہیں ہے یہ. کیوں نہیں پرنٹ، اصل میں، 10 ایسے ستاروں؟ سامعین: [اشراوی. DAVID J. MALAN: بالکل. تو دیکھیں گے کہ ہم 0 سے شمار کرنا شروع کر رہے ہیں. اور یہ اصل میں پروگرامنگ میں ایک کنونشن ہے اور کمپیوٹر زیادہ عام طور پر سائنس، شمار شروع کی بجائے 0 1 سے. اور یہ واقعی صرف یہ حقیقت اس کے لئے، سے حاصل مثال کے طور پر، جب جب ہم آٹھ افراد اسٹیج پر تھا، کسی نے بھی ان کے ہاتھ اٹھانے تھی، وہ تھے تمام مؤثر طریقے سے zeros. اور اس طرح اسے ایک کمپیوٹر کنونشن کی مہربان تو ہے، لہذا، 0 سے گنتی شروع کرنے کے لئے. اگر وہ سب سے کم تعداد ہے آپ کو بائنری میں نمائندگی کرسکتے ہیں. لہذا ہم یہاں 0 میں ابتدا کرنا شروع کر دیا ہے. ہم میں 0 کے برابر مقرر کیا ہے. لیکن اس وقت میں نے اس غلطی کو یہاں نے کرتے ہوئے کہا کہ میں سے کم ہے یا 10 کے برابر ہے. لیکن اگر آپ کو لگتا ہے کہ اس میں سے، میں جا رہا ہوں اگر میں 0 میں شروع کرتے ہیں اور پھر 1، 2، 3، 4، 5، 6، 7، 8، 9، 10، میں واقعی میں جا رہا ہوں پردے پر 11 ستاروں پرنٹ، کیونکہ میں چلے گئے اور 10 کے برابر ہے. اتنا آسان حل ہے تو کیا ہوا؟ سامعین: [اشراوی. DAVID J. MALAN: ذرا اس سے بھی کم میں تبدیل. اگر تم واقعی چاہتے ہیں، تو آپ کو یہ کر سکتے ہیں. لیکن عام طور پر، اس مقصد frowned ہے. اور 0 سے شمار کرنا شروع صرف تم کچھ کرنا چاہئے ہے عام طور پر استعمال کیا جاتا ہو. اب، کیا اور خود اس پورے تعمیر کے بارے میں؟ یہ لائن لوپ کے لئے 15 demarks. تو اس کے لئے ایک تقریب نہیں ہے. یہ صرف ایک بیان ہے. یہ ایک looping کی تعمیر ہے، جیسا کہ ہم نے شروع میں دیکھا. اور اس کے تین حصے ہیں. یاد رکھیں کہ پہلے حصہ ہے نیم وقفہ کے بائیں. دو semicolons کے درمیان کا درمیانی حصہ ہے. اور پھر دائیں حصہ دائیں طرف ہے دوسری نیم وقفہ. اب، ان میں سے پہلے کیا کرتا ہے؟ سامعین: [اشراوی. DAVID J. MALAN: واپس وہاں؟ جی ہاں؟ سامعین: ابتدا. DAVID J. MALAN: ابتدا. تو اس کا کیا مطلب ہے؟ ہم نے ایک میں نے فون کیا متغیر کا اعلان کر دیا ہے. یہ قسم int ہے، کیونکہ میں int میں مخصوص ہے. اور میں میں 0 کی قیمت پر ابتدا کر رہا ہوں. تو کیا یہ سچ کہہ رہا ہے؟ یہ مؤثر طریقے سے کمپیوٹر کہہ رہا ہے ارے، مجھے کافی دے میموری، کافی RAM، ایک نمبر کو فٹ ہونے کے لئے اور اس کے بعد کر دینا RAM کے اس حصہ میں 0 نمبر. اور ایک کے طور پر ایک طرف، کتنا بڑا ایک int عام طور پر کم از کم اندر ہے، آلے کی؟ سامعین: 32 بٹ. DAVID J. MALAN: 32 بٹس. جس سے کہ مجھے 32 بٹس، دوسری صورت میں 4 بائٹس کے طور پر کہا جاتا ہے کا مطلب ہے، اور اس میں قدر 0 کو، جو کہ بہت آسان ہے کیونکہ یہ صرف 0 بٹس قائم کا مطلب ہے. تو اب، دوسرا یہاں حصہ شرط ہے. اور حالت ہے، جیسا کہ نام سے پتہ چلتا ہے، جو موازنہ کیا جاتا ہے بار بار بار کے طور پر کہ یہ سچ ہے یا جھوٹ ہے. تو یہ کہہ رہا ہے کوڈ کے مندرجہ ذیل لائنوں کرنا ہے - یعنی 16 لائن، کہ صرف پوٹ دار ہے کیونکہ نیچے - اتنی دیر میں 10 سے بھی کم ہے. اور اس لوپ کے ذریعے ہر iteration کے بعد، incrementation، جو اس معاملے میں ہے، میں + +. اب، یہ میں + + ہونا ضروری نہیں ہے. میں ہو سکتا ہے - لیکن اگر میں نے ایسا کیا، کیا رویہ ہو رہا ہے اس پروگرام کے ہے؟ سامعین: یہ ایک لامحدود لوپ کو ہونے جا رہا ہے. DAVID J. MALAN: یہ لامحدود لوپ کے کچھ قسم کی ہونے جا رہا ہے، جب تک ہم منفی ارب 2 یا اس کے بعد خوش قسمت ملتا ہے. شاید چیزوں کے ارد گرد تبدوست کی نوعیت کی طرف سے لپیٹ، ہے کہ ہم ایک int کے لئے مختص ہے بٹس کی تعداد. لیکن یہ اس بات کو یقینی طور اب تک 10 سے زیادہ iterate جا رہا ہے اور بات کو یقینی طور سے سے زیادہ 11 اوقات یہاں. اور اب احساس، بالکل اسی طرح جیسے ایک طرف ایک، کہ میں + + اور - واقعی صرف syntactic چینی ہیں. یہ صرف تھوڑا کیا ہے کے لئے آشلپی سنکیتن ہے واضح طور پر مندرجہ ذیل لکھا: میں میں = 1 +. کہ میں ایک جیسی ہے + +. یہ صرف کی طرح خوبصورت لگتا ہے کہنا مجھے + +. succinct، زیادہ پڑھنے کے قابل ہے. اور اس وجہ سے زیادہ تر لوگ بجائے کہ کرتے ہیں. لیکن یہ فعل کے جیسی ہے جو ہم نے ابھی دیکھا. تو مختصر میں، فوری یہاں طے کر صرف اتنا کہنا میں iterate ہے 0 سے تمام طرح سے کم 10. اور پھر ہم 10 ستاروں یقینا مل جائے گی. تو اس کی کوشش ہے. مجھے نیچے دیے گئے ٹرمینل کھول دو. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ڈائریکٹری میں ہے کہ اس کے اندر ہے اور میں اب بجنا کے ساتھ دستی طور پر مرتب کی جا رہی ہوں. اور میں buggy1.c کے طور پر اس پر مرتب کرنے کے لئے، درج کریں کی جا رہی ہوں. اور اب buggy1، کیوں ایسی کوئی فائل یا ڈائریکٹری buggy1 کہا جاتا ہے؟ سامعین: [اشراوی. DAVID J. MALAN: جی ہاں. تو یہ اصل میں a.out کہتے ہیں. تو یاد اگر آپ نے ابھی بجنا چلانے، جہاں بجنا ہے سنکلک ہے، اور آپ کو وہ نام ہے جو آپ کرنا چاہتے ہیں کی وضاحت نہیں کرتے اپنے پروگرام دے، a.out ڈیفالٹ جا رہا ہے. تو یقینا اگر میں LS کیا - افوہ. اور میں didn't - سیاہ اور سفید مسئلہ کچھ آپ کو طے ہو گئی ہے کا سامنا کرنا پڑا. لیکن مجھے ایسا. وہاں ہم نے بائیں ہاتھ کی طرف a.out ہے. تو ہم buggy1 کے بجائے a.out چلانے ہے. تو آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور اس کام کو. a.out / درج کریں. اور میں بظاہر کیا نہیں کیا؟ شائقین کو محفوظ کریں. DAVID J. MALAN: میری فائل کو محفوظ کریں. تو یہ آسانی سے کنٹرول S مارنے، یا کرنے والے کی طرف سے حل کیا جاتا ہے فائل، جیسے بہت سے پروگراموں میں محفوظ کریں. مجھے یہاں جانا، سکرین واضح، اسے دوبارہ چلانے دو اور وہاں اب بھی ایک بگ ہے. تو کیا چل رہا ہے - سامعین: تم مرتب نہیں کیا ہے. DAVID J. MALAN: آہ، اچھا ہے. میں اسے مرتب نہیں کیا. ایک مورھ کی طرح، میں نے کوڈ کو دیکھ دیکھ رہا ہوں کہ کیا غلط ہے. تو بجنا buggy1.c، اب a.out. وفف بچایا. تو یہ تھوڑا بدسورت لگ رہا ہے کیونکہ کوئی نئی لائن ہے پروگرام میں کہیں بھی. لیکن پھر یہ صرف ایک جمالیاتی تفصیل ہے. اور کم از کم اگر ہم ان لوگوں کو باہر شمار، ہم اب 10 ایسے ستاروں کو دیکھتے ہیں. ٹھیک ہے، یہ دوسری مثال وارم اپ کے بارے میں کیا؟ تو buggy2 میں، میں نے دعوی کیا ہے کہ اس ورژن، بھی پرنٹ، 10 ستارے، فی لائن ایک. اس وقت تو میں نے ایک newline کردار ہے، صرف کرنے کے لئے تھوڑا خوبصورت چیزیں. بلکہ اس کی بجائے میں ہے. تو آپ کے وزٹرز کا ریکارڈ رکھا بجنا buggy2.c کرتے ہیں، درج کریں. اب اسے دوبارہ a.out کہتے ہیں. درج کریں. میں صرف ایک نئی لائن، صرف آخری نئی لائن دیکھتے ہیں کہ اگلی لائن پر میرا فوری طور پر منتقل. اور ابھی تک واضح طور پر میں ہے *، پرنٹنگ پھر ایک نئی سطر میں، *، تو میں ایک نئی سطر ہے. لیکن یہاں کیا بگ ہے؟ جی ہاں؟ سامعین: [اشراوی. DAVID J. MALAN: بالکل. تو ازگر، جہاں پوٹ کاری کی طرح کچھ زبانوں کے برعکس اصل میں میں کام کا مطلب ہے، C طرح زبان - ہم کے طور پر نظر آئے گا، پی ایچ پی، جاوا سکرپٹ - پوٹ کاری صرف انسان فائدہ کے لئے بہت ہے. تو حقیقت یہ ہے کہ میں نے 16 اور 17 اوپر پوٹ دار ہے بہت اچھا لگتا ہے، لیکن یہاں یہ کوئی فعال معنی نہیں ہے. اگر میں دونوں لائنوں کے لئے حصہ کے طور پر پھانسی پر کرنا چاہتے ہیں لوپ، تو میں گھوبگھرالی منحنی خطوط وحدانی میں ایسا کرنے کی طرف سے ان کے بند کرنا ضروری ہے. آپ اس کونے کو صرف اور گھوبگھرالی منحنی خطوط وحدانی اگر ترک کاٹ کر سکتے ہیں کیا معاملہ ہے؟ سامعین: صرف ایک لائن. DAVID J. کریں MALAN: صرف ایک لائن. تو یہ نحو کی تفصیل کی ایک اچھی قسم کی طرح ہے تاکہ آپ کے پاس وقت برباد نہیں کرتے تین لائنیں لکھ دو ہیں گھوبگھرالی منحنی خطوط وحدانی، صرف کوڈ کا ایک ایک لائن لکھنے کے لئے. لیکن اگر آپ کے پاس دو یا دو سے زیادہ لائنوں ہیں ہم یقینا ایسا کرنے کی ضرورت ہے. تو اب مجھے اس کو بچانے کے. آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور بجنا چلانے کو دوبارہ دو تو پھر آپ کے وزٹرز کا ریکارڈ رکھا a.out rerun، اور اب میں ان کے فی لائن ایک. اب، a.out پھر ایک پروگرام کے لئے ایک گونگا نام کی طرح ہے. بجنا میں کیسے اصل میں مجھے ایک فائل کا نام دے بتا سکتے ہیں کہ زیادہ صارف دوست buggy2 خود کی طرح ہے؟ تھوڑا زیادہ واضح طور پر؟ سامعین: [اشراوی. DAVID J. MALAN: ٹھیک ہے، تو میں ہی اصل میں لے جا سکتے ہیں شارٹ کٹ صارف دوستانہ اور صرف لکھنے buggy2 ہے. میں اس معاملے میں وضاحت نہ سی، اور درج کریں مارا. اور کیا پڑتا ہے، اس کی طرف سے میرے لئے buggy2.c سے آگاہ کریں بجنا سے ایسا کرنے کی. خاص طور پر، یہ بجنا مطالبہ، بجنا چلاتی مزید طریقہ استعمال کرتے ہوئے کمانڈ لائن دلائل یا سوئچ سے میں واقعی میں ضرورت ہے. وقت میں، ہم ان مختلف کیا کیا واپس آ جائیں گے خفیہ hyphenated اظہار کا مطلب ہے. لیکن اب، یہ صرف آپ کے وزٹرز کا ریکارڈ رکھا مصیبت ہے بچانے یاد رکھنے اور ان میں سے سب ٹائپ کرنے مختلف hyphenated اظہار. اور اس کے اوپر بالآخر ہے کہ اب میں buggy2 ہے. اگر میں یہ کرنے کے لئے دستی طور پر کرنا چاہتے ہیں، لیکن میں، بجائے یہ کر سکتے ہیں - بجنا و buggy2 اور پھر buggy2.c. اور یہ کہ آپ کے وزٹرز کا ریکارڈ رکھا اسی طرح کہا جاتا buggy2 فائل دے گا. تو مختصر میں، بجنا سنکلک ہے. صرف ایک صارف دوست آلہ ہے کہ ہم زیادہ سے زیادہ استعمال کریں گے بنانا ہے اور زیادہ، کیونکہ یہ صرف شروع ہمارے لئے چیزوں کو آسان بنائیں. اور ہم 0 واپس، آخر. ابھی کے لئے، صرف اس وجہ سے، لیکن ہم اس حصے چڑھا شروع کر دیں گے آج اور بدھ کے روز. اس کا کسی پر کوئی سوال؟ جی ہاں؟ سامعین: [اشراوی] وہاں کی قیمت درج کرنے میں LS؟ DAVID J. MALAN: ٹھیک ہے. جب میں نے کی قیمت درج کرنے میں ٹائپ LS، کہ مجھے کچھ جادو کر رہے تھے ایک مسئلے کو حل کرنے کے پردے کے پیچھے. میں بھول گیا تھا، جیسا کہ ہم کیا گیا ہے تم میں سے بہت سے کہہ بحث بورڈ، کرنا - ہم نے اب یہ کر دونگا - sudo یم Y appliance50 اپ ڈیٹ. افوہ کہ ہجے درست ہے. تو آلات ایک آپریٹنگ سسٹم کی طرح ہے. یہ آپریٹنگ کہا جاتا Fedora نظام چل رہا ہے. اور اب میرا سست انٹرنیٹ کنکشن کی وجہ سے، میں نے واقعی یہ hosed. sudo یم اپ ڈیٹ چل رہا ہے، جیسا کہ ہم تم سے کہتا ہوں میں کیا مسئلہ سیٹ، بنیادی طور پر خودکار تازہ کاریاں چلانے پسند ہے میک OS یا ونڈوز میں. اور کے آغاز میں اس چلانے کے لئے وجہ مسئلہ سیٹ ہے کیونکہ جب ہم نے آلے کو پیدا، میں، نے گڑبڑ کر دی، اور میں نے غلطی نے اپنے تمام پروگراموں کے نظر آتے ہیں جو کہ ایک سیاہ سکرین پر سیاہ ہے، لہذا تم انہیں نہیں دیکھ رہے ہیں ڈیفالٹ کے ذریعہ. لیکن آلے کا تازہ ترین ورژن مقرر کرتا ہے. اور میں وقفے کے دوران اسے ٹھیک ایک بار میں انٹرنیٹ پڑے گا کنیکٹوٹی. تو قیمت درج کرنے میری غلطی کو چھپاتی ہے، بہت discreetly بظاہر. دیگر سوال؟ جی ہاں؟ سامعین: کہاں سے آیا ہے؟ [اشراوی] DAVID J. MALAN: اچھا سوال ہے. کہاں سے آیا ہے؟ یہ ایک لینکس پروگرام ہے جو کئی سال کے لئے موجود ہے، جب تک ہے CS50 سے پہلے. اور یہ Fedora کی طرح ایک آپریٹنگ سسٹم کے ساتھ آتا ہے ہے. CS50 لائبریری سے نہیں آتی. اصل میں، صرف وہ چیزیں ہیں جو CS50 لائبریری سے آتے ہیں ابھی تک، کہ ہم نے دیکھا، GetString، GetInt، سب ان افعال جاؤ، اور لفظ کی سٹرنگ، اور کچھ حد تک، bool لفظ. لیکن ہم اس کے علاوہ چڑھاو جب ہم نے CS50 میں کودو گے آلات خود. تو جی ہاں، ایک اور سوال ہے. سامعین: جب تم نے کہا اور پھر چھوٹی گاڑی بنانے، کس طرح کرتا ہے کمپیوٹر [اشراوی] کو جانتے ہو؟ DAVID J. MALAN: اچھا سوال ہے. تو جب آپ صرف چلانے buggy1 بنا یا buggy2 بنانے، کہ کس طرح پڑتا ہے پتہ ہے؟ تو ڈیفالٹ کی طرف سے، اگر آپ buggy1 بنانے کو ٹائپ کریں، کے لئے نظر کرنا فائل بلایا buggy1.c. اور پھر یہ مناسب بجنا حکم executes، اس سے ڈیفالٹ پیداوار کہا جاتا a.out فائل زیرکر رہا ہے. اصل میں، اگر ہم کیا بنا پر نظر ہے، کیا - ہم یہ چھوڑ. اگر ہم کیا گیا تھا اصل میں کر بنا پر نظر buggy2، یہ پہلے سے ہی کی تاریخ ہے. تو آپ کے وزٹرز کا ریکارڈ رکھا RM کمانڈ کو ہٹانے، پروگرام میں نے پہلے لکھا تھا. Y-E S تصدیق کرتے ہیں کہ میں اس کو خارج کرنا چاہتے ہیں ٹائپ. اگر اب مجھے کیا کرنا، کہ یہ بہت لمبی لائن میں نوٹس، یہ آخری بات buggy2 و ہے. سب کو کر رہا ہے یہ دلیل کو منظور ہے، اس سے بات کرنے، بجنا، تو ہے کہ میں اسے خود ٹائپ کی ضرورت نہیں ہے. تو ٹھیک ہے، انتظامی کے فوری جوڑے اعلانات. تو قسموں کے لئے، جو سرکاری طور پر شروع کر دیا اس آنے والے اتوار، آپ ہمیشہ لانے، اگر چاہیں گے تم نے ایک، ایک لیپ ٹاپ ہے. اگر آپ کو ایک لیپ ٹاپ کی ضرورت نہیں ہے، آپ کے وزٹرز کا ریکارڈ رکھا طرف سے تک پہنچنے کرنا مجھے ایک ای میل گر رہی ہے. اور ہم ایک کام کے فلو کو اعداد و شمار کریں گے. عام طور پر آپ کے سیکشن میں تلاش کر لیں گے یہ ہے کہ وہ حصہ ہیں ہاتھوں پر تصوراتی حصہ،. ہم سوالات کے سیکشن کا حصہ خاص طور پر استعمال کریں گے ہفتے کے مسئلہ سیٹ، میں سے کچھ کے ذریعے چلنا لیکچر کی طرف سے تصوراتی مواد. اور اس مسئلہ کی موجودہ سیٹ میں تمام ہے. اور ہم ہاتھوں پر کچھ سرگرمیوں میں بھی، کبھی کبھی کودو گے جن میں سے پیش کیا جائے کی ضرورت ہو گی، کبھی کبھی جو نہیں کریں گے. مثال کے طور پر اس کے پہلے ہفتے، وہ صرف ایک کے طور پر مراد رہے ہیں ورزش کے وارم اپ. اور آپ کو تلاش ہے کہ ان مسائل کو واقعی صرف یہ ہے کہ گے. وہ کافی چھوٹے ہو مراد رہے ہیں، لیکن ضروری نہیں کہ تچرچھ لکھنے پروگرام، جو ضروری نہیں کہ رہے ہیں اور خود کو دلچسپ ہیں لیکن اچھے مواقع نحو کے ساتھ نئے کام کرتا ہے کے ساتھ، کے آرام میں مشق، سیکشن جہاں آپ اپنے ہم جماعتوں میں سے چند ایک ہیں کے طور پر پیش آپ TF کے طور پر اچھی طرح سے. اور کیا ہم وقت کے ساتھ کیا کریں گے نامی CS50 خالی جگہوں آلے کا استعمال ہے، جس کے تحت صرف CS50 آلات کا استعمال کرتے ہوئے کی بجائے، تمہیں بجائے براؤزر میں ایک ویب کے صفحے پر جاتے ہیں، جہاں آپ کے قابل ہو جائے گا سیکشن کے دوران ایک براؤزر ونڈو میں کوڈ لکھنے. اور پھر اگر تم میں داخل، تو آپ کی تعلیم فیلو دکھا سکتے ہیں جو بھی ہے آپ کو آپ کے براؤزر میں آپ کی سکرین پر ٹائپ کر رہے ہیں کلاس کے سامنے میں ونڈو یا گمنام عوامی، تو ہے کہ وہ کے ساتھ چل سکتے ہیں اپنے ہم جماعتوں کے جو تم نے اچھا کیا، کیا تمہیں اچھی طرح نہیں تھا. اور پھر، باقی کو یقین دلایا یہ سب اچھی طرح سے رکھا جائے گمنام کیا جا سکتا ہے. لیکن یہ بہت زیادہ کے لئے ایک اچھا موقع ہو جائے گا لیکچر کی طرح کچھ کے مقابلے میں انترکریاشیلتا کی اجازت دیتا ہے ہے. اس دوران میں ہم نے ان چیزوں کو بلایا سپر گے حصوں، جو اختیاری ہیں، لیکن میں ہر ایک کے لئے کھلے ہیں کلاس، لہذا آپ کو اس سے زیادہ اجتماعی کے لئے کیا کر سکتے ہیں مسئلہ ایک سیٹ ہے. یہاں شیڈول ہے. اس نے cs50.net میں سر ورق پر شائع کیا جاتا ہے. یاد رکھیں کہ ایک ہیکر مخصوص ہو جائے گا ایک کل دوپہر. اور ہم ایک آج اور ایک کل فلم اور ان پوسٹ 24 گھنٹے کے اندر اندر آن لائن. تو فکر ہے اگر آپ ان اوقات میں سے کسی کو نہیں کر سکتے ہیں، نہیں. اور پھر شیڈول آن لائن cs50.net میں ہے. خود sectioning کی شرائط میں، آپ کو ایک ہو جانا چاہئے آپ کو کورس ہوم پیج مل جانے کی ہدایت کی ای میل اپنے حصے کے باہر. اگر زندگی کو تبدیل کر دیا اور تم اپنے حصے کو تبدیل کرنے کی ضرورت ہے ہے، یہ کوئی مسئلہ نہیں ہے. ، وہ اسی URL، cs50.net/section، واحد کے پاس واپس جاؤ اور آپ کو اسی طرح کے فارم کو بھریں تا کہ آپ یہ کر سکتے ہیں کریں گے تو ہمیں اپنی ترجیحات دیتے ہیں. اور ہم نے ہفتے کے آخر کی طرف سے جو ہم کر سکتے ہیں کے طور پر کی پیروی کرے گا انتظار کریں. گزشتہ ہفتے کو یاد کرتے ہیں، کہ ہم CS50 بحث کا استعمال کرتے ہوئے تجویز پیش کی، لیکچر میں کورس بحث کے آلے کے ہے. تو ہم 40 سوال تھا کہ اس سے پوچھا گیا اور لیکچر کے دوران جواب ہے. تو اسے اچھی طرح کام کرنے کے لئے لگ رہا تھا، تو ہم جاری رکھیں گے ایسا کرنے کی کوشش کر رہے ہیں. اگر، آپ کو لیکچر کے دوران آرام دہ اور پرسکون کی ترتیب نہیں محسوس آپ کے ہاتھ، کوئی بات نہیں. پر cs50.net/discuss جاؤ، وہاں پوسٹ، اور ہماری تعلیم میں سے ایک ساتھیوں یا تو الیکٹرانک کا جواب یا بڑھا دیں گے ان کے آپ کی طرف سے ہاتھ، کے لحاظ سے پوچھنا گمنام سوال کی نوعیت پر ہے. اور رائے کی شرائط میں عام طور پر psets ہو جائے گا، ایک ہفتے کے اندر اندر واپس. کیونکہ یہ تھوڑی دیر لیتا ہے قسموں کے لئے حاصل کرنے کے لئے توازن، پہلی pset، 0 اور 1 کے، تھوڑا سا ہو جائے گا کے طور پر چیزوں کو حل میں تاخیر ہوئی. ہفتوں میں رہنا اس کے لئے دیکھتے آئے. ٹھیک ہے، تو کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے میرے سنگین ڈال صرف ایک لمحے کے لئے آواز. تو یہ اصل میں ایک دلچسپ کا موسم ہے اس بحث کی ہے، دوسری چیزوں کے ساتھ کیمپس متعلقہ کیا چل رہا ہے. لیکن CS50 بات کو یقینی طور سے اپنی تاریخ کے اس مخصوص دیکھا گیا ہے کئی کے لئے ہر سال کے طور پر زیادہ سے زیادہ ہے، اس کورس میں موضوع، سال، اشتھاراتی بورڈ کلاس کا تقریبا 3 فیصد ہے. یہ سب سے حال ہی میں سال، 2011، CS50 35 طالب علموں کو اشتھاراتی کے سوار ہے. یہ ہے، میرے خیال میں، وضاحت کی کمی کی وجہ سے نہیں ہے. احساس ہے کہ کورس نصاب میں، اس کا ایک صفحہ ہے بیان جہاں لائنوں کی وضاحت ہیں. اسی بیان ہر میں سے ایک پر بار بار کیا جاتا ہے مسئلہ ایک صفحے پر کرتا ہے. یہ آج تو میں واقعی صرف ذکر اس کا احساس لوگ. اور ہم نے مختلف چیزیں کرنے کی کوشش کی ہے. اور جو میں نے سوچا تھا کہ آج ہم کیا کریں گے ایک لمحے لے اصل میں گزشتہ مقدمات آئے ہیں میں سے کچھ دیکھو. بجائے ان گندی تھوڑا راز رکھنے کے لئے، اصل میں باہر کی طرف اشارہ کیا طالب علم کیا ہے اور کس طرح ہم نے پتہ چلا ہے اور واقعی جو "انتہائی اہم حوصلہ افزائی کے لئے ہے بھی اس بات چیت کی ہے. تو اس کے ساتھ اس نے کہا، لائن بنیادی طور پر ہے - نصاب کے مطابق، آپ کا استقبال، آپ رہے ہیں کی حوصلہ افزائی کی، ہم جماعتوں کے ساتھ بات کرتے ہیں. یہ ان باہمی تعاون کے ساتھ ہونے کا سارا مقصد ہے Annenberg میں دفتری اوقات کے لئے حوصلہ افزائی لوگوں حتمی منصوبے کے ساتھ مل کر کام کرنے کے لئے. لیکن لائن تیار کی ہے جب وہ وقت آتا ہے اصل میں لکھنے آپ کی آخری حل ہے. انگریزی میں خطاب کرتے ہوئے، مکمل طور پر ٹھیک ہے، چھدم کوڈ میں بات بالکل ٹھیک ہے. ایک سہپاٹھی آپ کی pset ای میل، دے ان پر نظر آتے ہیں اسکرین کے طور پر ہاتھ ٹائپ جاری، لائن سے زائد ہے. خاص لائنز کی نصاب پر دیکھو. لیکن کس طرح یہ بدقسمتی سے ایک ہے کی ایک تصویر پینٹ حقیقت کا احساس ہے کہ ویب سائٹ وہاں ہے کہ اس طبقے اور دوسرے بہت سے کلاس سے حل ہے. حقیقت یہ ہے کہ آپ کو یا تم میں سے 3 فیصد کا پتہ ہے کہ یہ موجود ہے کا مطلب ہے کہ ہم جانتے ہیں کہ یہ موجود ہے. حقیقت یہ ہے کہ وہاں اس طرح کی ویب سائٹ ہے جہاں آپ کسی ادائیگی اصل میں آپ کا مسئلہ سیٹ کر سکتے ہیں - یہ تھا ایک حقیقی معاملہ ہے کہ گزشتہ سال آیا. یہ نامی odesk.com ویب سائٹ ہے. اور ٹم نے اس شخص کا نام یہاں کون پر شائع کر رہا تھا تھا اس ویب سائٹ کے اور کسی سے کہا کہ میں ان کے 7 pset کرنا اس مخصوص کیس. ٹھیک ہے، odesk.com بہت گوگل کے قابل ہے، اور ہم بھی ہیں Googling میں بہت اچھا ہے. یہاں، بھی، سائٹس ہیں - اور یہ ایک نہیں بلکہ ہے atrocious، صاف صاف. [ہنسی] DAVID J. MALAN: اس سائٹ کے بارے میں مضحکہ خیز بات یہ ہے کہ اگر آپ اس صفحے کے بارے میں پڑھتے ہیں، وہ ان کی کارپوریٹ کے بارے میں بات کرتے ہیں ثقافت اور ہے کہ کسٹمر سروس کس طرح ان کی تعداد ایک ہے ترجیح، اس بات کا یقین کر لیں کہ آپ کے اسائنمنٹس حاصل کرنے کے لئے وقت پر تبدیل کر دیا. لیکن تمام سنجیدگی میں، پھر، یہ حقیقت ہے کہ ان سائٹس ، موجود، ہم احساس بھی آگاہ ہیں سائٹس کی یہ قسم. اور آپ کو کس بات کا احساس دینے کے یہ عام طور پر فارم لیتا ہے، ہم عام طور پر عظیم اسکینڈلوں نہیں کرتے ہیں جہاں لوگ بڑے پیمانے پیمانے کی کسی بھی قسم کی تعاون، بلکہ یہ کمزوری کی ان دیر رات لمحات ہے، جہاں تم اتنا یہ زیادہ سے زیادہ ہے، AM 4:00 ہے، تو آپ ختم، کر رہے ہیں اور آپ اپنے آپ کو لگتا ہے، اچھا، مجھے صرف میرے پر ایک نظر رکھنا روممیٹ یا اپنے دوست کے کوڈ یا جیسے. اور اس کی توضیحات Student کی بدقسمتی شامل یہ اور طالب علم B کے سامنے سرتسلیم خم کی طرح جمع کرانے کچھ کمپیوٹر میں کچھ اس طرح، یقینا جو، سائنس کلاس، کمپیوٹر کے سائنسدانوں کے لئے ہمیشہ آسان ہے سافٹ ویئر کے ساتھ پتہ لگانے کے لئے. یہ ایک عام مثال ہے، جہاں آپ کی طرح ہے کسی کے ساتھ مل کر کام کر رہے ہیں، میں شاید بات کر انگریزی، ٹھیک pseudocode. لیکن پھر یہ وقت آئے گا تو اصل میں جمع کرنے کے لئے، اور psets صرف ای میل یا ڈراپ باکس یا جیسے کے ذریعے تبادلہ ہو. لیکن کم ظاہر کہ یہ ہے کرنے کی کوشش میں کیا ہوا ہے، تو یہ وہی ہے جو پیش ہے. یہ بھی کرتا ہے، اچھا لکھا ٹکڑے ٹکڑے سفر نہیں جیسے سافٹ ویئر ہم اصل میں پتہ لگانے کے لئے ہے ان قسم کی چیزوں کی. اور یقینا ہم کیا کرتے ہیں دوڑ سافٹ ویئر ہے کہ سب کے سب آپس میں موازنہ گزشتہ سال کے تمام کے خلاف اس سال کے گذارشات گذارشات، ہم سب کچھ کے خلاف پر پائے وہاں ہر کام کی ویب سائٹ کے خلاف، انٹرنیٹ،. یہ سب بہت خود کار ہے. اور اس طرح ہم نے اس واقعی عظیم جانبداری میں 97 فیصد ہے جو واقعی میں ان کے گدھے اس میں اور دوسرے میں کام کر نے کلاس اور اس کوشش کے سب میں ڈال تاکہ کام وہ بالآخر ان کا اپنا ہے جمع کرائیں. اور میں عمر کے لئے جا سکتے ہیں. یہ صرف گزشتہ سال کے مقدمات کی ایک مٹھی بھر ہیں. چند طالب علموں نے ان فائلوں کو 2 pset کے لئے پیش identically pset 3 pset، 4، 5 pset، 6 pset، 9 pset. اس صورت میں، اس 0 گئے تمام سوالات اور گزشتہ سال میں، دو جہاں تھا طالب علموں identically کئی کے درمیان پیش کی اس کی سزا دیگر "قسم کی درخواست -" ڈاٹ، ڈوٹ، ڈوٹ. تو ہم 600 کی کلاس میں بھی اس کا پتہ لگانے کے کیا پیش quizzes. تو مختصر میں، اس - صاف صاف، میں اس قسم کی نفرت گفتگو - لیکن یہ واقعی میں ایک جان بوجھ کر کوشش کی جا رہی ہے اس سال یہ تعداد پر ڈرائیو کرنے کی کوشش کریں. کیونکہ اگرچہ ہم کا کہنا ہے کہ چیزوں کے بارے میں اس قسم کے ہر سال، میں نے کچھ کے لئے اس پر dwelled کی حقیقت سوچتے معمول سے زیادہ اور زیادہ اور اصل میں صرف باہر کی طرف اشارہ کرتے ہوئے کہ جیسا کہ، یہ، کم از کم اتنا بڑا سودا نہیں لگتا ہے، ہو سکتا ہے اس خاص وقت میں واپس لگتا ہے، دونوں جانبداری میں اپنے آپ کو اور اپنے یہاں ہم جماعتوں. تو اگر آپ نے کبھی کے طور پر میں آپ کا کوئی سوال ہو تو جہاں لائن براہ مہربانی ہے، صرف مجھ سے ذاتی طور پر تک پہنچنے. لیکن جواب ہمیشہ ہے، مکمل طور پر میں زور دیا آخری منٹ دیر سے دن میں نقد. یا اگر یہ ابھی دیر دن نہیں ایک بات ہے، سکوئر سے، مجھے ذاتی طور پر ای میل کر سکتے ہیں. ہمیں کچھ سمجھ لیں گے. براہ مہربانی ہارورڈ میں آپ کا وقت خطرے میں نہیں ڈال یہاں. اب، میں نے سوچا تھا کہ ہم موڈ ہلکا کرنا چاہئے، میں اگلی سلائڈ کے طور پر شامل ہیں. [ہنسی] DAVID J. MALAN: یہ ویب سائٹ (ویب سائٹ) بہت اچھا تھا. میں اصل میں ایک مشغول تھوڑا ہے. اس میں سے ایک ہے. اور پھر یہ ایک حیرت انگیز تھا. ٹھیک ہے اس بلی کے بچے کی، تو رات کو دیر لگتا ہے کہ جب بنا ان فیصلوں. ٹھیک ہے، زیادہ مزہ آئے اور کم سنگین چیزیں، جیسے شروط. ٹھیک ہے، تو ہم ان کے بارے میں مختصر طور پر بات کی تھی. یہ کچھ ہے کہ شاید بہت سے واقف ہے سکریچ کی دنیا. اور سکریچ کی دنیا میں، ہم اس کی ضرورت کبھی کبھی جاؤ راستے میں فورکس کرتی. یا تو یہ یا وہ یا یہ دوسری بات یہاں کرتے ہیں. اور جب ہم نے یہ کرنا چاہتے ہیں، اگر ہم اس کا استعمال، C میں اب کر سکتے ہیں اور تعمیر. اور پھر یہاں ہم بولین اظہار ہے. مثال کے طور پر، بولین اظہار یہاں، ہم کر سکتے ہیں یا ایک ساتھ مل کر ان کو احساس ہے کہ ہم نے یہ شرط ہے یا میں شرط. ہم مل کر احساس ہے کہ ہم چاہتے ہیں میں ان کر سکتے ہیں اس حالت اور اس حالت چیک کرنے کے لیے. اور ہم یہاں ایک سوئچ بیان اب ہے، جس میں ایسا نہیں ہے اس طرح کی شرائط میں سے ان لوگوں کو syntactically اسی طرح ہے، لیکن یہ ہمیں اگر کے برابر، اور اگر کسی اگر اور کرنے کے لئے کی اجازت دیتا ہے اگر، اور صرف ان کے کیس کی طرف سے کیس enumerating کی طرف سے کی طرح کیس کی طرف سے کیس کی طرف سے. تو ہم نے ان لوگوں کو آخری بار دیکھا. اور پھر ہم loops جیسی چیزوں وسلم چھونے کرنا شروع کر دیا ہے. ہم نے ان میں سے ایک پہلے صرف ایک لمحے کو دیکھا. لیکن ان دیگر looping تشکیل ہیں. مثال کے طور پر، یہ ایک یہاں. سو (شرط)، اس بات کو بار بار کرتے ہیں. تو بنیادی طور پر، کے درمیان مختلف کیا لگتا ہے کی لوپ اور یہ دیر لوپ یہاں؟ کے لئے یہ لوپ اور یہ دیر لوپ. جی ہاں؟ یہ کیا ہے؟ سامعین: [اشراوی. DAVID J. MALAN: اچھا. تو لوپ کی حالت کے لئے جبکہ واضح طور پر ہے زیادہ نحو. اس ابتدا ہے، اس کو اپ ڈیٹ نہیں ہے. تھوڑی دیر لوپ میں، صرف اس شرط ہے. تو ایسا لگتا ہے کہ یہ ایک کے مقابلے کے لئے ذیل میں pared تھوڑا ہے لوپ، جس کا مطلب ہے کہ اگر ہم متغیر کرنا چاہتے ہیں اور ہم چاہتے ہیں incrementation ہے، ہم واقعی ہے یہ بات خود کرتے ہیں. تو آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور gedit کھول. مجھے آلے کو سوئچ. اور ایسا صرف ایک فوری چھوٹی سی مثال کے طور پر ایسا ان میں سے ایک دوسرے سے ممتاز بناتا ہے. اور میں میرے دماغ سے پیٹھ میں یہاں ایک بات کہنا چاہئے. میں خاص طور پر نام Tim کا ذکر کیا ہے. ٹم اصل میں کسی کو تھا کہ ایک طالب علم کرنا تلاش کرنے کی کوشش کی جا ان کے لئے ان کے ہوم ورک. ہم نے اس خاص حصے میں کوئی ٹم تھا. تو، ایسا نہ ہو کہ میں ایک طالب علم نے انکشاف کیا احساس، یہ ایک طالب علم نہیں تھا. یہ انٹرنیٹ پر ایک بے ترتیب شخص کام کرنے پراکسی گزشتہ سال کی طرف سے. تو ہم اس کو تلاش بھی ہے. تو یہاں اس صورت میں، آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور ایک نئی فائل کو کھولنے کے. فائل. اس سے مجھے ایک ٹیب دیتا ہے. آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور اس کو بچانے loop.c. مجھے جانے دو اور محفوظ کریں پر کلک کریں. اور پھر یہاں نیچے، آگے بڑھیں اور لکھنا شروع # شامل ہیں. مجھے اندر زوم اب ہم int اہم (باطل) سے کر دونگا. <میں، اب (int میں = 0 کے لیے مجھے آگے بڑھو اور اوہ، 10، مجھے + +). اور اب میں آگے بڑھو اور ستارہ پرنٹ کروں جا رہا ہوں کہ میں پہلے کیا. اور پھر اس پروگرام کے آخر میں، ہم صرف جا رہے ہیں پر ایک نئی سطر میں پرنٹ، صرف اس لئے کہ میرا فوری طور پر کیا تمام گندا نہ دیکھو. 0 واپس. syntactically درست لگتا ہے؟ ابھی تک. تو ہم دیکھتے ہیں. تو مجھے باہر زوم، میرے ٹرمنل ونڈو میں. اور آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور لوپ کو چلانے، کیونکہ میں نے اس سے ملاقات کی بات loop.c. تو لوپ ہے. ٹھیک مرتب لگتا ہے. مجھے لوپ کو چلاتے ہیں، اور اب درج کریں. اور اس نے 10 ستاروں طباعت ہے لگتا ہے. تو صرف تھوڑی دیر لوپ یہ تبدیل اور کیا دیکھتے مسائل ہم سفر ختم کی قسم. تو اس کے بجائے، آپ کے وزٹرز کا ریکارڈ رکھا یہاں جاؤ اور کا کہنا ہے کہ جب میں 10 سے کم - کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے لوپ کے لئے چھٹکارا حاصل. ٹھیک ہے، تو ہم کے ایک جوڑے کے مسائل پہلے سے ہی ہے. تو شرط ایک ہی ہے، لیکن میں واضح طور پر یاد کر رہی ہوں ابتدا. میں incrementation کو یاد کر رہی ہوں. تو کیا امکان کمپائلر آپ کے وزٹرز کا ریکارڈ رکھا بتاو جب میں کرنے کی کوشش کرنا چاہئے اس پروگرام مرتب کریں؟ جی ہاں؟ سامعین: [اشراوی. DAVID J. MALAN: اچھا. اس میں میں سب کچھ - تو اس اگھوشیت طرح کچھ کہا جا رہا ہے کیس میں متغیر. اور اگھوشیت شناخت کنندہ میں یقینا استعمال کرتے ہیں،. اور اس طرح یہ پی ایچ پی کی طرح زبانوں کے ساتھ اس کے برعکس ہے اور ازگر اور روبی، جس سے آپ میں سے کچھ واقف ہو سکتا ہے، جہاں آپ متغیر کا استعمال کرتے ہوئے شروع کی قسم ولی nilly اور ان کے اعلان کے بارے میں فکر کرنے کی ضرورت واضح طور پر ہمیشہ. C اور جاوا اور سی جیسے زبانوں میں + +، آپ سپر واضح ہے. اور اگر تم میں نے متغیر چاہتے ہیں، تو آپ مجھے بتانا پڑے متغیر کی یہ کس طرح کی ہے. تو ہم کو ٹھیک اس کے طور پر مندرجہ ذیل کے لئے جا رہے ہیں. میں یہاں جاؤ اور int میں ٹائپ کی ضرورت کے لئے جا رہا ہوں، لہذا میں نے میں نے متغیر کا اعلان کر دیا ہے. اب، میں ایک قدم چھوڑا ہے. میں ظاہر initialized یہ ہے نہیں، لیکن ہم دیکھتے ہیں اگر کہ کم از کم کرتا ہے بجنا سٹاپ شکایت ہے. تو مجھے اس پروگرام ریمیک. ٹھیک ہے، اب یہ صرف شکایت ہے ایک مختلف وجہ سے. "رکن کی 'میں' غیر ابتدا شدہ جب یہاں استعمال کیا جاتا ہے." ٹھیک ہے تو، جو بہت واضح ہے. Initialized صرف یہ ایک قیمت کے برابر مقرر کرنے کا مطلب ہے. اور ہم نے نہیں کیا ہے کہ، تو مجھے کوشش کرنے دو 0 برابر ہے. اب پھر سے کوشش کریں اور بجنا چلانے کو دوبارہ. اس وقت مرتب کیا. اور میں اسے چلانے کے لئے کے بارے میں ہوں. لیکن بڑی پرانی لامحدود لوپ، کیونکہ میں نے کیا کیا ہے ابتدا، میں نے حالت کیا ہے، لیکن میں نے کبھی نہیں کیا ہے incrementation کسی بھی قسم کی ہے. تو میں incrementation کس طرح کر سکتا ہوں؟ ٹھیک ہے، تھوڑی دیر کے لوپ میں، ایسا لگتا ہے جیسے میں جا رہا ہوں زیادہ کیونکہ اس کا پہلا طرح لوپ کے اندر کیا ہے، looping تشکیل کرنے کے ہفتے کی طرح مثال کے طور پر، جرابوں پر جرابيں اور خود کو ووٹوں کی گنتی کے ساتھ، ہم نے کرنا تھا آخر میں کچھ پسند، اگلی لائن میں واپس جانا ہے. کیا ہوگا اگر میں جاؤ اور کیا مجھے اس + یہاں +؟ چلو، یہ بھی نہیں مرتب. مجھے پہلے ہی سے پکڑو. کیا ہوا یہاں؟ سامعین: [اشراوی. DAVID J. MALAN تو یہ یقینی طور پر نہیں ہے int. یہ میں ہے. اور پہلے کی طرح گھوبگھرالی منحنی خطوط وحدانی،، پوٹ کاری کافی نہیں ہے. تو اب اس میں تعمیر کیا ہے. لہذا جب میں 10 سے بھی کم ہے، ایک ستارہ پرنٹ، تو میں اضافہ. اور جس طرح ایک جبکہ لوپ کام ہے کہ جیسے ہی آپ مارا لوپ کے سب سے نیچے دیئے، جو کہ اس معاملے میں لائن 10 کی طرح لگ رہا ہے، 6 لائن پر واپس جا رہا ہے، جس کے بعد حالت پھر سے جانچ پڑتال رکھا جائے گا. اور اگر میں اب بھی 10 سے کم ہے، ہم لائنوں 8 کرتے ہیں اور کریں گے 9 تو، پھر ہم 10 مارا، اور 6 سے واپس جانے کریں گے، بار بار بار اور پھر سے، تو جب تک میں 10 سے بھی کم ہے. تو چلو چلانے کو دوبارہ یہاں ہے. ٹھیک ہے، ہم ٹھیک مرتب کیا ہے. آپ کے وزٹرز کا ریکارڈ رکھا لوپ دوبارہ چلنے والے دو. اور اب یہ اصل میں کام کرنے لگتا ہے. pluses اور minuses یہاں تو؟ ٹھیک ہے، اب تک وہاں اصل میں نہیں ہے پی ایل او کی ایک پوری - کتنا پیارا ہے. ٹھیک ہے، یہ ایک تھا - آہ، یہ ایک حادثہ تھا. ٹھیک ہے، تو چلو لوپ کے لئے واپس جانے. تو loops کے لئے اچھے ہیں کیونکہ وہ سپر واضح ہیں. اور اگرچہ وہ ایک چھوٹا سا لکھنے clunky ہے، بہت طاقتور ہے اور یہ آپ کی اجازت دیتا ہے ہے ایک بار میں ایک سے زیادہ چیزوں کو. جبکہ loops قدر کی ایک بڑی رقم ہے لگتا نہیں ہے صرف ابھی تک، کیونکہ یہ لگتا ہے جیسا کہ ہم نے ابھی مزید کام کرنا ہے. ہم ابتدا ڈال یہاں ہے یہاں کو اپ ڈیٹ کریں، اور ہم یہ سب یاد ہے. تو ہم وقت میں دیکھنا ہے کہ دیر loops اصل میں قرض دینے گے خود کو صرف مختلف سیاق و سباق میں، مختلف ڈیٹا فہرست اور ہیش میزیں کی طرح ڈھانچے، چیزوں کو ہم ملے گی کے وسط سمسٹر. لیکن اب معلوم ہے کہ اس تیسری قسم کے طور پر جانا جاتا ہے، ایک کیا جبکہ لوپ. اور ہم نے اس مختصر طور پر دیکھا ہے. اور یہ 1 pset کے ساتھ انتہائی مددگار ثابت ہو سکتا ہے. کسی بھی وقت تم سے کچھ اور تو کرنا چاہتا چیک کرنے کے لیے اگر صارف تعاون، اور اگر انہوں نے ایسا نہیں کیا، اسے دوبارہ کرتے ہیں، کیا جبکہ لوپ پر خود کو منطق اس طرح کی کیشنز میں ڈھال لیتا ہے. ، کے طور پر سب سے اوپر سے نیچے تک یہاں آرڈر تجویز کیونکہ کرتے لفظی کا مطلب ہے کہ یہ کرتے ہیں. اور یہ بار بار کرتے ہیں، کہ کیا ہو سکتا ہے؟ شاید اس کا مطلب ہے بلا GetInt GetString اور پھر GetInt یا GetString کی قدر تو جانچ پڑتال اور چللا صارف میں اگر وہ ان سے پوچھ کی طرف سے تعاون نہیں کیا ہے بار بار بار. تم سے کچھ کو ایک بار کرنا کہاں چاہتے ہیں، پھر کچھ کی حالت چیک کرنے کے لیے ہے. تو اس کی کوشش ہے. مجھے اصل میں یہ کیا جبکہ ایک لوپ اب تبدیل. اور میں آگے جانا ہے اور مندرجہ ذیل کر جا رہا ہوں. تو مندرجہ ذیل کام کریں. چلو کرتے ہیں int میں = GetInt ()، لیکن پہلے صارف بتا دو کیا کرنا ہے. تو تھوڑا مختلف اس وقت. "مجھے ایک int کرو." تو میں اس کے لیے printf استعمال کریں گے. اور اب میں یہاں جانا جا رہا ہوں، اور میں ایسا کرنے جا رہا ہوں جب میں ہے، کا کہنا ہے کہ، اس سے بڑا - میں ہے، چلو دیکھتے ہیں، کا کہنا ہے کہ، 0 سے کم، یا میں ہے 10 سے زیادہ. دوسرے الفاظ میں، میں نے 1 سے 9 نمبر کی ضرورت ہے، صرف منمانے. تو میں نے ایک مشترکہ بولین اظہار یہاں استعمال کر رہا ہوں اس بات کا یقین کر لیں کہ کہ میں 0 سے کم یا 10 سے زیادہ ہے، جس میں کیس میں اس لوپ کو یہاں دوبارہ کرے گا. تو پھر ایسا - جب میں 0 سے کم یا میں 10 سے بڑھ کر ہے. تو اب آگے بڑھو اور اس کے ایک بار ہم نے کیا ہے. چلو صرف ایک فوری وویک چیک کرتے ہیں. printf ("شکریہ،٪ D ہے"، میں). تو اس سادہ پروگرام ایک int کے لئے صارف پوچھتے ہیں، اس بات کا یقین کر لیں کہ یہ کچھ حد، 1 سے 9 شامل کے اندر اندر ہے بناتا ہے، اور پھر یاد کیا صرف وہ کی طرف سے صارف شکریہ میں صرف ایک چھوٹا سا وویک چیک کے طور پر ٹائپ،. لیکن دیکھو، اگر اس طرح کا مقصد کام کرتا ہے. مجھے سر نیچے یہاں اور دوبارہ چلانے لوپ بنا. ہمم. "اگھوشیت شناخت کنندہ 'میں' کا استعمال کریں." یہ عجیب بات ہے. میں نے سوچا تھا کہ ہم اس حل ہے. ہی علامات لیکن مختلف کوڈ. جی ہاں؟ سامعین: [اشراوی] دو کے اندر، ہم [اشراوی]. DAVID J. MALAN: بالکل. تو یہ اصل میں ہمیں موضوع دائرہ کار کے طور پر جانا جاتا ہے کی طرف جاتا ہے ہے. یہ پتہ چلا ہے کہ C، پھر یہ واقعی آپ لفظی لیتا ہے. اور اگر آپ کو کچھ اس طرح کرتے ہیں آپ کو ایک int جہاں اعلان اور اس کے بعد اس میں کچھ قدر تفویض، لیکن آپ کے پاس ایک کہ اندر کیا گھوبگھرالی منحنی خطوط وحدانی کی جوڑی، کیا C کرتا ہے رکھتی ہے کہ آپ صرف ان 32 کے اندر اندر میں موجود معروف بٹس چاہتے لائنوں کے سیاق و سباق کے اندر اندر ان گھوبگھرالی منحنی خطوط وحدانی کے سیاق و سباق، 9 کے ذریعے 6. تو میں نے اعلان کیا ہے اور یہ مقرر کیا جاتا ہے 8 لائن میں قیمت، لیکن جیسے ہی کے طور پر آپ سے باہر جاتے ہیں گھوبگھرالی تسمہ سے نیچے 9 لائن، میں میں اب نہیں ہے گنجائش، تو بات کرنے کی. S-C-O-P E- یہ صحیح تناظر میں نہیں رہ گیا ہے. تو اب کوئی بات نہیں، میں تو ایسا ہے جیسے ہم بھی نہیں تھا اس کا اعلان کر دیا. تو کیا ہوا، تو کچھ اس طرح کے لئے ایک طے کر ہے، اگر وجہ یہ ہے کہ میں گھوبگھرالی منحنی خطوط وحدانی کے اندر اندر اعلان کیا جاتا ہے، جس بظاہر خراب ہے؟ یہاں؟ سامعین: [اشراوی. DAVID J. MALAN: جی ہاں. تو ہم اس کی ابتدا سے باہر کر سکتے ہیں. تو آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور اعلان حصوں جس کو خارج کر دیں میں قسم کی وضاحت، اور مجھے یہ یہاں کیا ہے. تو آن لائن 5 میں اب یہ کہتے ہیں کہ "مجھے ایک int کرو." میں کال کریں. کیونکہ 9 سطر میں نوٹس، میں ایسا نہیں کرنا چاہتا، میں پہلے سے ہی 32 بٹیں ہے. میں ایک کمپیوٹر سے پوچھنا چاہتا ہوں نہیں ہے مختلف 32 بٹیں. میں وہی 32 بٹیں کو استعمال کرنے کے لئے کرنا چاہتے ہیں. اور اب کیونکہ میں آن لائن 5 میں اعلان کیا جاتا ہے، یہ اب بھی ہے legit یہ 11 کی لائن اور اوپر 12 میں استعمال کریں. تو مجھے اس recompile کرنے کی کوشش کریں اور دیکھیں اگر بجنا بند ہو جاتا ہے چللا. لوپ ہے. تو اب یہ "تقریب کی انترنہیت اعلان ہے 'GetInt C99 میں باطل ہے "یہ کیا ہے.؟ جی ہاں؟ سامعین: [اشراوی. DAVID J. MALAN: جی ہاں. تو اب ہے کہ میں واقعی میں GetInt کا استعمال کرتے ہوئے کر رہا ہوں، یہ کچھ نہیں ہے کہ صرف آتا ہے کے ساتھ C. یہ CS50 سے آتا ہے. تو ہم اس کی ضرورت ہے. اور مجھے فوری طور پر ذیل میں واپس جانا یہاں اور دوبارہ چلانے ہے. ٹھیک ہے، آخر میں. اب ہم اس اور دیگر غلطی حل ہے. مجھے اب لوپ کو چلانے اور دیکھتے ہیں کیا ہوتا ہے. "مجھے ایک int دے دو." میں اسے 11 دے دونگا. -1 میں اس کو دے دونگا. میں اسے FOO دے دونگا. میں اسے 5 دے دونگا. اور اب یہ واقعی کام کرتا ہے. لیکن فوری طور پر یہاں ایک وجہ کے لئے تبدیل کر دیا گیا. اس نے ایسا کیوں کہا ان اوقات میں سے ایک دوبارہ کوشش کریں لیکن مجھے ایک دو دیگر تین بار int؟ اس رویہ ہے کیوں مختلف ہے؟ سامعین: یہ ایک تار دیا. DAVID J. MALAN: معاف کیجئے گا؟ سامعین: تم نے یہ ایک تار دیا. DAVID J. MALAN: جی ہاں. تو ہم نے اسے اس تیسری کوشش میں ایک تار دیا، جب میں FOO ٹائپ. FOO ایک تار ہے. یہ ظاہر ہے ایک int نہیں ہے. اور جس طرح کہ CS50 GetInt نافذ ہے یہ ہے کہ ہم اگر کچھ نہیں ہے چیک کرنے کے لیے 0 سے کم یا 10 سے زیادہ وجہ سے آپ کے لئے، کہ ہم کس طرح پہلے سے جانتے ہیں کس قسم کی int آپ چاہتے ہیں؟ لیکن ہم آپ کے لئے minimally، کم از کم چیک کرنے کے لیے کیا صارف سکتے ہیں ایک عددی ٹائپ ہے؟ اور اگر انہوں نے ایسا نہیں کیا، ہم صارف میں ٹائپ کرکے چللانا "دوبارہ کوشش کریں" سکرین. تو اب ہم ایک پروگرام ہے کہ looping ہے. ٹھیک ہے. اب، ان میں سے جو بہتر تعمیر طرح کی ہے؟ تو یہ وہ جگہ ہے جہاں چیزیں ایک تھوڑا گندا حاصل کرنے کے لئے شروع، حقیقت یہ ہے کہ آپ کو ایک متغیر یہاں اعلان یاد ہے اگر آپ اسے کچھ کے اندر استعمال کرنا چاہتے ہیں گھوبگھرالی منحنی خطوط وحدانی اور باہر. لیکن اگر اس سے پہلے تھوڑا خفیہ لگ رہا ہے نظر، صرف پھر، سادہ منطق کو یاد ہے. کے لئے C میں کچھ بھی استعمال کرتے ہیں، چاہے وہ ایک تقریب ہے یا یہ ایک متغیر ہے، تو آپ کو اگر یہ ایک تقریب ہے شامل ہے کسی لائبریری میں، یا آپ کو یہ اعلان کرنے کی ضرورت ہے. لیکن اب آپ کو حقیقت کے اضافی احساس کی ضرورت ہے کہ آپ اسے درست گنجائش میں اعلان کر رہے ہیں. تم نے اسے نہیں ڈال رہے ہیں قوسین کے اندر بھی مضبوطی سے. تو مجھے اصل میں واپس رول. اگر ہم مثال کے طور پر ہمارے پہلے سے جاتے ہیں، اور میں جا رہا ہوں int کے لئے واپس، int میں = 0، میں 10 <، مجھے + +، میں اور اس طرح printf ستاروں، اور پھر بند قوس، اور اب printf اب میں ہے - اسی منطق کے مطابق، جب میں نے کرنے کی کوشش کیا ہو گا اس پروگرام مرتب کریں؟ سامعین: جعلی شناخت کنندہ ہے. DAVID J. MALAN: تو اس کا ایک اور جعلی شناخت کنندہ ہے، اگھوشیت شناخت کنندہ ہے. اب وجہ سے تھوڑا مختلف ہے. کوئی گھوبگھرالی منحنی خطوط وحدانی ظاہر یہاں ہے، لیکن اسی خیال، گنجائش کی ایک ہی کہانی لاگو ہوتا ہے. اگر آپ کو ایک کے اندر میں کی طرح ایک متغیر کا اعلان کر دیا ہے لوپ کے لئے، یہاں تک کہ اگر آپ گھوبگھرالی واضح طور پر نہیں کیا ہے لکھا منحنی خطوط وحدانی ابھی بھی وہاں کے طور پر، ان میں سے ذہنی طور پر لگتا ہے، جس میں کیس میں صرف لوپ کے لئے درست اندر ہے. یہ درست نہیں ہے ایک بار تم اگلی لائن حاصل کرنے کے لئے، جس میں اس کیس اب 10 ہے. تو گنجائش اور اس طرح کے چند مسائل. ٹھیک ہے، کے ذہن میں کوئی سوالات ہیں؟ ٹھیک ہے، تو یہ ایک چھوٹی سی سی پروگرام کی طرح ہے، صرف تھوڑا ستاروں چھپائی. لیکن دیکھو، اگر آپ کو یہ گانا یاد ہے. یہ ایک ناقابل یقین حد تک پریشان گیت بچوں پر گانا گا ہے اسکول بس اور طرح. لیکن کیا اس کے بارے میں اچھی بات ہے یہ ہے کہ یہ اس cyclicity ہے، ہے جس کے تحت "دیوار پر 99 بیئر کی بوتلیں، بیئر کی 99 بوتلیں. ایک نیچے لے جاؤ، اس کے ارد گرد گزر پر 98 بوتلیں بیر دیوار "اور تو گانا 97 دوہراتا، پھر 96، پھر. 95، 94 تو، تمام طرح نیچے 0 اگر آپ واقعی ہے کہ دور بس. تو اس کے نفاذ کی ترتیب کے لئے ایک اچھا پروگرام کی وجہ سے ہے، یہ میری خدا، اگر آپ کو کچھ کے ساتھ یہ تو صرف عمل درآمد کر سکتے ہیں کوڈ کی لائنیں، آپ کو اس پر پوری کی دھن تھوکنے سکتا ہے گیت بہت تیزی سے. لیکن، اب ہم نے راستے میں ایک دوسرے سے دور کچھ چڑھانا شروع کر سکتے ہیں ان بنیادی looping تشکیل اور اب بھی افعال متعارف کرانے کا ہے کہ ہم نے خود لکھ، اقدار واپس کہ ہم ارد گرد گزر. لیکن اس سے پہلے، آگے ہم کیوں نہیں کرتے ہیں اور ہمارے پانچ منٹ کرنا یہاں ٹوٹ جاتا ہے؟ اور جب ہم واپس ملے، ہم نے یہ گانا گانا گا. ٹھیک ہے، تو ہم واپس آ گئے. اور جب میں نے کا کہنا ہے کہ اب ہم نے یہ گانا گانا گا، میرا مطلب ہے پروگرام، زبانی طور پر نہیں. تو یہاں ہم beer1.c، جو اس میں سے ایک عمل درآمد ہے ہے خاص طور پر گانا. اور بس کے ساتھ ان لوگوں مجریچت کے لئے واضح، کیا اس بات کو لگتا ہے، مجھے آگے بڑھو اور beer1، درج کریں. اب مجھے beer1 چلائیں، اور ہم کیا دیکھیں گے - بہت بوتلوں کس طرح بیر ہو جائے گا؟ میں 99 میں ٹائپ کریں، جیسے گیت کا کہنا ہے کہ گے. درج کریں. اور اب اگر ہم کے ذریعے سکرال - افوہ - اگر ہم اس کے تمام کے ذریعے سکرال، ہم دیکھیں گے کہ یہ واقعی پوری گانا تھا. ایک منٹ رکو. میری کتاب بار ایک نے غلطی کی بہت کم ہے. بڑی ونڈو کا استعمال دو beer1 99، تو، ہم وہاں چلتے ہیں. لہذا ہم یہاں پوری گیت کی طرف سے زیادہ تیزی سے گایا کمپیوٹر سے یہ ہماری طرف سے ہو سکتا تھا. تو، اگرچہ نوٹس، چکریی فطرت یہاں. اس کا کہنا ہے کہ 99، 99 تو، تو "کسی کو نیچے لے جاؤ، اسے منظور ارد گرد "98 تو. اور اب یہ بار بار دوہراتا ہے. تو یہ اصل میں کسی قسم کے کے لئے ایک بہترین موقع ہے looping کی تعمیر. نوٹس ہے کہ میں یہاں ایک کونے کاٹنے کی قسم ہوں. یاد رکھیں کہ میں کہہ رہا ہوں "دیوار پر ہوں بیئر کی 98 بوتلیں، 97 دیوار پر بیئر کی بوتلیں، "اور یہ کہ صرف اس لئے تھا کہ جب ہم بیر ایک بوتلیں حاصل کرنے کے لئے، میرے پاس نہیں ہے انگریزی گرائمر کے بارے میں فکر کرنے کی. لیکن ہم اگر کوئی تھوڑا سا کے ساتھ یہ بھی ٹھیک کر سکتے ہیں حالت، شاید. اگر یہ تعداد واحد ہے، آگے جاؤ اور "بوتل" کا کہنا ہے کہ، ورنہ اگر یہ جمع ہے، "بوتلیں" کا کہنا ہے کہ. لیکن اب، میں مکمل طور پر اس کونے کاٹنے رہا ہوں. تو چلو دیکھتے ہیں جو ہم یہاں مل گیا ہے. تو ہم سب سے اوپر میں کچھ تبصرے مل گیا ہے. میں ان دو لائبریریوں کے طور پر بھی شامل کر رہا ہوں، ہم عام طور پر کیا گیا ہے. اور اب مجھے پہلے ذیل میں سکرال کوڈ کا اصل لائنوں. 17 لائن سب سے اہم دور کک. لائن 21 اور 20 کتنے بیئر کی بوتلیں وہاں ہو جائے گا؟ اور پھر میں GetInt کہتے ہیں. اور اب میں وویک چیک کے تھوڑا سا ہے. تو یہ ایک کنونشن ہے کہ ہم اپنانے اب شروع کر دیں گے ہے زیادہ سخت چیک کرنے کے لیے صارف کی ان پٹ. کبھی کبھی آپ کو صرف ان کو دوبارہ فوری طور پر نہیں کرنا چاہتا اور بار بار. اگر صارف screws اور تعاون نہیں کرتا، ٹھیک ہے. اور صرف ان کے ساتھ نہیں سودا کرنے بند کرو. اور تاکہ میں یہاں کیا کر رہا ہوں. اگر N 1 سے کم ہے، میں صرف صارف کو چللاو جا رہا ہوں، "معاف کیجئے گا، کوئی احساس نہیں کرتا ہے." اور پھر میں جا رہا ہوں منمانے واپس 1. تو پھر یہ صرف ایک کنونشن کی عادت ہے. اب کے لئے یہ ایمان لے. لیکن اب تک، ہم نے ہمیشہ کیا گیا ہے 0 کیونکہ آرہے ہیں، ہم 0 کرنا کیا واپس لوٹنے نے کہا ہے؟ سامعین: کامیابی. DAVID J. MALAN: کامیابی ہے کہ تمام ہے. تو اب ہے کہ ہم آخر کے بارے میں سوچنا شروع کر رہے ہیں غیر کامیابیوں - دوسرے الفاظ میں، کونے کے مقدمات، غلطی کے حالات میں - اب میں ایک لامحدود کی فراہمی ہے، یا کم از کم چار ارب ممکن چیزیں ہے جو کہ اپنے پروگراموں میں غلط جا سکتے ہیں. اور میں انہیں انفرادی تعداد بتائے شروع کر سکتے ہیں. اب، عام طور پر یہ صرف واپس کافی کچھ دوسرے 0 سے. تو ہم صرف اب کے لئے 1 واپس جا رہے ہیں. لیکن 1 واپس لوٹنے کے لئے وجہ یہ ہے کہ جیسے ہی تم واپس ہے 1 لگتا ہے، باقی پروگرام کا کیا؟ یہ روکتا ہے. کہ یہ ہے. تو حقیقت یہ ہے کہ میں نے 1 واپس آ رہا ہوں مؤثر طریقے سے ہے اس پروگرام پر عملدرآمد مختصر circuiting تاکہ 27 کی لکیر سے نیچے کچھ بھی نہیں پر عمل جاری رکھیں گے. جیسے اہم منافع کے طور پر، کہ یہ ہے. ٹھیک ہے، اگر ایسا ہے تو صارف کرتا ہے اور ہم 30 لائن تک پہنچنے کے تعاون کیونکہ وہ ایک جائز تعداد میں ٹائپ، یہاں میرا ہے اس گیت کا عمل. لہذا میں نے سب سے پہلے باہر کے لئے ایک newline کردار پرنٹ جمالیات. اب میں لوپ کے لئے ایک ہے. نوٹس اور میں تھوڑی دیر میں باتیں کر رہا ہوں ایک مختلف سمت کی. میں سے کم کرنے کی ضرورت نہیں ہے، میں + + کرنے کی ضرورت نہیں ہے. میں بجائے ایک متغیر میں ابتدا، یہ سیٹ برابر کہہ سکتے ہیں ن نمبر صارف میں ٹائپ، تو مندرجہ ذیل کام کریں، تو جب تک میں 0 سے بڑا ہے، تو میں - ایک بار آپ نے اس لوپ میں سے ایک iteration ختم ہے. تو ہم شمار لوپ کے لئے ایک کا استعمال کرتے ہوئے کے طور پر کر سکتے ہیں. اب، یہ بہت ہفتے ایک چیزیں اب printf کے ساتھ ہے،. تو پرنٹ "دیوار پر٪ D بیئر کی بوتلیں." پرنٹ D "٪ بیئر کی بوتلیں. "" کسی کو نیچے لے جاؤ، اس کے ارد گرد گزر. "پرنٹ "دیوار پر٪ D بیئر کی بوتلیں." تو یہ اب بھی٪ D ہے، لیکن نوٹس ہے کہ دلیل printf ہے کو تبدیل کرنے. کوما کے بعد، میں میں ہوں، کیونکہ میں نے 99 کہنا چاہتے ہیں. یہ کوما کے بعد، میں میں ہوں، کیونکہ میں 99 کہنا چاہتے ہیں. یہ کوما کے بعد، میں میں ہے - 1، کیونکہ میں 98 پر کہنا چاہتا ہوں یہ پہلا iteration، اور وغیرہ. اور اب یہاں ذیل، میں کچھ پاگل سی تبصرہ ہے. اور پھر 42 لائن میں کنونشن کی طرف سے 0 واپس signifying کہ سب کچھ ٹھیک ہے. تو کیا ہوا اگر میں goofed؟ ایک عام غلطی کیا ہو سکتا ہے؟ ٹھیک ہے، اگر میں نے غلطی سے اچھی طرح انہوں نے کہا کہ، میں شمار کرنا چاہتے ہیں 0 نیچے میں 0 دیوار پر بیئر کی بوتلیں چاہتے ہیں؟ تو میں کہتا ہوں، یا اس سے بڑھ کر 0 کے برابر ہے. علامات ہے کہ میں اب اگر میں recompile کیا جا رہا ہے beer1 اور اسے چلانے؟ سامعین: منفی. DAVID J. MALAN: جی ہاں، یہ منفی جانے والا ہے. یہ ایک دور کی طرف سے ایک غلطی ہے، ناقابل یقین حد تک ایک عام غلطی ہے. چلو اصل میں ٹرمنل ونڈو پر واپس جائیں اور یہ کرنا یہاں تو ہم ایک وقت میں زیادہ دیکھ سکتے ہیں. ، بیئر کی 99 بوتلیں درج کریں. بند کریں، لیکن ہم نے کبھی بھی تو تھوڑا گئے بہت دور ہے. ہم گیت بہت دور نیچے گایا، کہ اس طرح اب ہم مارا منفی نمبر. لہذا یہ بہت کام نہیں کرتا. ٹھیک ہے، تو ہم آسانی سے ٹھیک کر سکتے ہیں کہ واپس جا کر جس طرح اسے ایک بار تھا. لیکن بعض مواقع کے لئے ہیں اب بہتری؟ اچھا، مجھے beer2.c کھولنے اور یہاں نیچے سکرال کریں اور ایک لے اس ورژن کی طرف دیکھو. پہلی بات یہ ہے کہ اپنے آپ کو مختلف طور پر باہر چھلانگ کیا اس ورژن میں یہاں؟ سامعین: [اشراوی. DAVID J. MALAN: جی ہاں، تو نہیں میں، کیونکہ یہ ہوئی آپ کے وزٹرز کا ریکارڈ رکھا تم جانتے ہو کیا، میں (ن) کے لئے صارف سے پوچھ رہا ہوں اور پھر میں ہوں میں (ن) کے برابر کی ترتیب، اور پھر میں میں تبدیل کر رہا ہوں، لیکن میں کبھی نہیں ہوں چھونے (ن) ایک بار پھر. تو کیا heck آپ کے نقطہ 32 دوسرے آونٹن تھا بٹس کہا جاتا ہے صرف اس لئے ہے کہ میں نے ایک مختلف متغیر ہو سکتا ہے؟ تو اس معاملے میں، میں طرح تسلیم کیا ہے کہ غیر ضروری ڈیزائن کی خاصیت ہے. اور اب میں کہنے جا رہا ہوں جبکہ N 0 سے بڑا ہے، آگے اور ایک ہی گیت کو پرنٹ کریں، کے طور پر printf ن گزر دوسری دلیل، اور این - دوسری دلیل کے طور پر 1 یہاں نیچے. اور پھر اس لوپ میں سے ہر ایک iteration، آگے اور بس جاؤ (ن) خود تدریج کریں. ، فعل، اب اس پروگرام جیسی ہو جائے گا. اگر میں 99 میں ٹائپ کریں، N 99 میں شروع ہوتا ہے. میں تدریج کریں، تدریج کریں، تدریج کریں، تدریج کریں. میں تمام اور طریقہ یہ ہے کہ "ایک بوتل بیر میں نیچے جا رہا ہوں دیوار کی تعمیر، ایک بیئر کی بوتل. ایک نیچے لے جاؤ، اس کے ارد گرد منتقل. 0 دیوار پر بیئر کی بوتلیں "آخر، کیونکہ میں نے کیا حالت درست ہو جاؤ. یہ 0 سے بڑا ہے. میں نے یہ غلطی نہیں کی تھی. تو اس سے بہتر اور افضل ہے، ایک ورژن یا دو ورژن ہے؟ تو میں دو کے لئے murmurings کا ایک گروپ نے سنا. کیوں دو ہے؟ یہ کیا ہے؟ سامعین: [اشراوی. DAVID J. MALAN: اوہ، ٹھیک ہے. تو 0 نیچے نہیں جانا، لیکن یاد رکھنا، ایک ورژن میں، اصل صحیح ورژن یا تو 0 سے نیچے نہیں تھا. تو یاد رکھو کہ یہ صحیح ورژن ہے. تو چلو کم از کم دو صحیح ورژن کا آپس میں موازنہ کریں. ورژن کے حق میں ایک دلیل کیا ہے دو ہونے کے ناطے، ممم، بہتر ہے؟ جی ہاں؟ سامعین: یہ کم خلا کا استعمال کرتا ہے. DAVID J. MALAN: ٹھیک ہے، تو یہ کم خلا کا استعمال کرتا ہے، ٹھیک ہے؟ جبکہ ورژن ایک (ن) کے لئے 32 بٹیں، اور پھر کسی دوسرے کا استعمال کیا میں کے لئے 32 بٹیں. دو ورژن صرف (ن) کے لئے 32 بٹیں کا استعمال کیا جاتا ہے، کہ ایک پلس لگتا ہے. دیگر خیال؟ کیا کسی ایک کے حق میں بحث کرنا چاہتے ہیں؟ جی ہاں؟ سامعین: (ن) کے لئے کوڈ کا اضافی لائن استعمال کرنے کے لئے ہے - DAVID J. MALAN: ٹھیک ہے، اس بات کا یقین. تو یہ درست ہے. یہ تو صرف کم از کم کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے متعلق تو - میرا مطلب ہے، یہ اصل میں ایک چھوٹا سا messier محسوس ہوتا ہے، حقیقت یہ ہے کہ میں ایک میں میری ساری منطق کے encapsulate ترتیب نہیں کر سکتے لوپ کے لئے لوپ کے لئے کر سکتے ہیں کے طور پر خوبصورت لائن،. یہاں، میں اس (ن) پر اس قسم کی سمت ہے - لوپ کے آخر میں وجہ سے، منطقی طور پر ضروری ہے. لیکن اس کی قسم کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے متعلق غلط طریقے سے rubs، صرف اس لئے کہ یہ یہاں کی منطق سے علیحدہ لگتا ہے، اگرچہ، ایک بار پھر، یہ ضروری ہے. دیگر خیال؟ جی ہاں؟ سامعین: [اشراوی. DAVID J. MALAN: جی ہاں. تو کیا ہوا اگر تمہارے بدلے گانے کے آخر میں، چاہتے تھے پھر گیت کا نام پرنٹ؟ طرح "بیئر کی 99 بوتلیں کو کھیلنے کے لئے شکریہ"، کچھ یا اس طرح پاگل ہیں؟ لیکن بات، آپ کو اصل قیمت تک رسائی چاہتے تھے. حقیقت یہ ہے کہ آپ mutated یا تبدیل کر دیا ہے ہر پر N iteration ہے اور اسی وجہ سے اس کی اصل قدر کو برباد کر دیا ہے کا مطلب ہے کہ آپ آخر میں ایسا نہیں کر سکتا. اب، arguably، ہم واضح طور پر کرنا چاہتے ہیں نہیں ہے کہ اس پروگرام میں. تو کسے پرواہ ہے؟ لیکن وہ ایک بہت درست بات ہے. اور ایماندار ہو، واقعی کسی یہیں جواب دیں. وہ دونوں یکساں طور پر درست ہے. میں کسی بھی طرح رکھا جائے یقین کیا جا سکتا ہے. میں کہتا ہوں کہ، عام طور پر، یہ ایک اچھا اصول ہے اگر آپ کچھ قیمت کے لئے صارف سے پوچھا ہے اور آپ کو ایک متغیر میں ذخیرہ (ن) کی طرح، صرف قسم کے اصول پر، یہ شاید اچھی ارد گرد رکھیں کہ. اور کسی بھی ڈیٹا آپ کو بار بار mutate کرنا چاہتے ہیں، صرف خود کو اس متغیر کی ایک کاپی دے، صرف اس لئے کہ آپ اصل پر رسائی حاصل ہے. آپ کے پاس 32 بٹس خرچ کر رہے ہیں، لیکن حقیقت یہ ہے کمپیوٹر، RAM کے دو گیگا بائٹ ان دنوں ہے، پسند اور ہم 32 بٹیں کے دوران quibbling کر رہے ہیں؟ واقعی اتنا بڑا سودا نہیں ہے. اور نصف ایک ٹمٹم یا کے ساتھ اس آلہ، بھی RAM گیگا بائٹ، 64 بٹس کے مقابلے میں 32 بٹس، اتنا بڑا سودا نہیں ہے. یقینی طور پر آج، اس کے سائز کی طرف سے ابیبھوت طرح ہو رہا ہے پروگرام خود، جو کئی سو جا رہا ہے کلو بائٹ، اگر چند ایک میگا بائٹ نہیں، ان دنوں. تو مناسب سے متعلق تحفظات کا، کوئی ایک درست جواب ہے. لیکن کم از کم ان خیالات ہیں کہ شروع کر دینا چاہئے آپ کے دماغ کے ذریعے جانا ہے؟ کیونکہ 0 pset میں، اگرچہ ہم واقعی صرف کی توقع ، درست، یا کم از کم مختلف کیڑے کہ disclaiming آپ کا سامنا ہو سکتا ہے، جیسا کہ ہم آگے بڑھنے، ڈیزائن ایک اور اہم پہلو ہو جائے گا، دونوں کوڈ لکھنے کی اور بھی ہمارے کوڈ کا جائزہ. اور اس میں کم از کم دے اس طرح چیزیں سوچا. صرف اس لئے کہ کچھ کام کا مطلب نہیں ہے یہ اچھی بات ہے، کا مطلب یہ نہیں ہے یہ اچھی طرح سے ڈیزائن کیا گیا ہے. اور یہ چیزیں تعلیم ساتھیوں میں سے ایک ہے اور مسئلہ سیٹ کی مدد سے ہمیں وقت کے ساتھ حصہ چڑھاو گا. ٹھیک ہے، کے بارے میں کیا ہے، ہم کہتے ہیں، اس ورژن یہاں؟ مجھے تھوڑا ایک لمحے میں کچھ یہاں تلاش کرتے ہیں. پہلے کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے اس کی چھٹکارا حاصل. اور اب ہم اس گرائمر مسئلے کو حل کریں. تو اس ورژن میں، میں گرامر کو حل کرنے چاہتے ہیں تاکہ بجائے صرف parenthetical کی طرح "بوتل" کا کہنا ہے کہ، یا "بوتلیں" - میں اس کونے کاٹ نہیں کرنا چاہتا - میں بھی متحرک طور پر باہر لفظ "بوتلیں" پرنٹ کرنا چاہتے ہیں یا "بوتل" آج، اس طرح ان کے٪ کی جگہ دار کا استعمال کرتے ہوئے. تو میں conditionally چیک کرنے کے لیے میں کی قدر کیا ہے کی ضرورت ہے. اور اگر اسے 1 ہے، میں "بوتل" کہنا چاہتے ہیں، اور اگر یہ کچھ اور میں، میں "بوتلیں" کہنا چاہتے ہیں. تو ایسا کرنے کی کوشش کریں. تو اگر میں 1 ==، تو مجھے آگے بڑھیں اور اعلان - مجھے ایک تار کی ضرورت ہے، تو آپ کے وزٹرز کا ریکارڈ رکھا سٹرنگ S1 کرتے ہیں، کیونکہ یہ پہلا سٹرنگ میں کے بارے میں ابھی یاد رکھتی ہے. میں "بوتل" کہنے جا رہا ہوں. اور پھر، دیکھتے ہیں، سٹرنگ S2 - اور میں اس بات کی وضاحت جہاں میں نے ایک لمحے میں جا رہا ہوں گے - "بوتلیں." تو یاد ہے کہ، اس گانے میں، ہم قابل ہو جائے کرنے کی ضرورت ہے چیزیں، دو مختلف الفاظ کو ممکنہ طور پر پرنٹ. تو اگر ہم یہاں واپس دیکھو، یہ محسوس جب ہم حاصل کرنے کے لئے یہاں مثال کے طور پر،، "دیوار پر دو بیئر کی بوتلیں بیئر کی دو بوتلیں، ایک نیچے لے جاؤ، اس کے ارد گرد گزر "، میں چاہتا ہوں یہ چوتھی لائن "ایک بوتل بیر کہنا دیوار بوتلوں "یا" تو میں فیصلہ کرنے کی ضرورت ہے، میں کہہ رہا ہوں. چاہتے ہیں " "بوتل"؟ تو میں نے منمانے کہنے جا رہا ہوں، ٹھیک ہے، میں اب نامی ایک متغیر S1 سٹرنگ، اعلان کے لئے جا رہا ہوں ایک، ہے کہ یہاں اور یہاں بھی میں پلگ ان حاصل کرنے کے لئے جا رہا ہے، کیونکہ ان الفاظ کو ہمیشہ ایک جیسی ہے، صرف کی وجہ سے گیت کی نوعیت. اور مجھے S2 ہے جو لفظ میں کرنا چاہتے ہیں کو فون کرنے جا رہا ہوں آخر میں یہاں نیچے ظاہر ہوتے ہیں. اب، لفظی، 100 میں سے 99 مرتبہ، یہ جا رہا ہے 2 ان مقدمات کی دونوں میں ایک ہی ہے، کیونکہ 3 جمع ہے، ہے جمع، 4 جمع ہے. لیکن اس کونے کے معاملے میں، جہاں ہم 2 جاتے ہیں اور پھر 1، یا 1 بھی اور اس کے بعد 0، میں اس منطق کی ضرورت ہے. تو میں اپنے کوڈ میں اس حق کو حاصل کرنے میں کچھ وقت بتانا ہے. اگر تو اگر میں یہ کروں، میں 1 ==، پھر مقرر "بوتل" کے برابر S1 اور S2 "بوتلیں"، کے برابر 1 کیونکہ ہو جائے گا بوتل، اور اس 0 بوتلوں کے لئے ہو جائے گا. اور یہاں یہ، یہ کیا کی نمائندگی کرتا ہے؟ بس صاف ہو جائے. یہ صرف ایک تبصرہ ہے. تو حقیقت یہ ہے کہ آپ کے تبصرے ایک لائن ہو سکتا ہے آپ کا مطلب ہے کہ اس طرح اپنے کوڈ تبصرہ، لیکن ایک عام کر سکتے ہیں نمونہ بھی ہے، کہ اگر آپ کو ایک جملہ سپر مختصر ہے کہ تم اپنے آپ کو ڈال کرنا چاہتے ہیں اور یہ صرف پڑھنے کے قابل ہے ڈال یہ درست کوڈ کے لائن کے آخر میں، آپ یہ کر سکتے ہیں بالکل اس طرح کچھ کرنا. تو اب کیا ہوا اگر میں نے یہ کیا؟ ورنہ اگر میں 1 کے برابر نہیں ہے. تو دھماکے کے برابر ہے - فجائیہ نقطہ "بینگ" کے طور پر جانا جاتا ہے. دھماکے تو = 1. تو اگر میں 1 کے برابر نہیں ہے، کہ میں کیا بجائے کرنا چاہتے ہیں؟ ٹھیک ہے، سب سے پہلے لفظ میں کیا کرنا چاہتے ہیں؟ تو 1 سٹرنگ جمع بوتلوں کے لئے "کی بوتلیں" ہونا چاہئے، اور پھر یہ جمع "بوتلیں" کے ساتھ ساتھ اب کے لیے، گا. اور ہم دیکھتے ہیں اگر یہ اصل میں ہم سے ہو جاتا ہے. جہاں ہم جانا چاہتے ہیں. تو اب توجہ اگر میں یہاں ذیل میں سکرال، کہ میں plugging رہا ہوں نہ صرف میں، S1 لیکن. میں میں اور S1 میں plugging رہا ہوں. اور پھر یہاں نیچے، میں مائنس 1 ہوں، جس کے طور پر ایک ہی ہے پہلے، لیکن S2. دوسرے الفاظ میں، میں انگریزی کی بنیاد پر تبدیل کرنے کے لئے لفظ چاہتے ہیں اس منطق پر. اب، وہاں پہلے سے ہی اس کوڈ میں کچھ مسئلہ ہے. کیا پہلے ہی ٹوٹ باہر دروازے کے یہاں ہے؟ جی ہاں؟ سامعین: [اشراوی. DAVID J. MALAN: بالکل. اس لیے میں نے پہلے ہی گنجائش کا سبق کی خلاف ورزی کی ہے. تو میں S1 اور S2 قرار دیا ہے، لیکن میں کے اندر کیا ہے گھوبگھرالی منحنی خطوط وحدانی، جس کا مطلب ہے کہ جی ہاں، یہ کوڈ کام کریں گے اوپر 42 تک، لیکن جیسے ہی میں 43 لائن مارا لگتا ہے، کیا نہیں طویل موجود ہے؟ اچھا لگتا ہے، کیا گنجائش میں نہیں ہے - S1 یا S2 نہ. تو ہم اس کو ٹھیک کرنے کی ہے. تو آپ کے وزٹرز کا ریکارڈ رکھا ڈیکلیریشنز حذف. اور میں متغیر کے نام چھوڑ کر اس کو حذف کریں گے اور اس کو ختم کر دیں. اور واقعی میں کیا لائنوں میں ان چیزوں کا اعلان کرنا چاہئے؟ سامعین: [اشراوی. DAVID J. MALAN: جی ہاں، اس لئے شاید ٹھیک ہے یہاں، 33 ish. سٹرنگ S1 تو اور پھر S2 سٹرنگ. اور یہ پتہ چلا ہے، میں یہ کر سکتے ہیں. اگر آپ کو اسی قسم کی دو متغیر کا اعلان کر رہے ہیں، تم صرف اصل میں ایک کوما کا استعمال کریں اور کر سکتے ہیں کہ سب C. میں ٹھیک ہے، تو اب میں دو متغیر ہے - S1 اور S2. میں ان میں بتائے ہوں اقدار یہاں کے حالات، یا یہاں. اور پھر میں نے ان کا استعمال کرتے ہوئے نیچے رہا ہوں نیچے. کتنی اچھی طرح اب یہ کام کرنے جا رہے ہیں؟ ٹھیک ہے، یہ اب بھی ایک چھوٹی سی چھوٹی گاڑی ہے، لیکن چلو، کم از کم دیکھ کہ ہم کس طرح دور ہو گیا ہے. تو آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور beer3 بنانے. یہ beer3 ہے؟ جی ہاں، اس beer3 ہے. اور اب ہم آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور beer3 چلانے. 99 399. ہم نے ان میں سے سب سے زیادہ شاید ہوں. اور اس میں نیچے یہاں دیکھو،. "دیوار پر ایک بوتل بیر، بیر ایک بوتل لے، نیچے ایک دیوار پر چاروں طرف منتقل، بیر 0 بوتلیں. " لیکن میں حل کا صرف نصف میں آپ کی توجہ اپنی طرف متوجہ کر رہا ہوں. کی قسم یہاں مصیبت میں ہے. تو ایسا لگتا ہے کہ کونے مقدمات پیدا ہوں جب میں برابر کیا دو اقدار؟ سامعین: 2، 1. DAVID J. MALAN: 2 اور 1. 1 نہیں 1 ہے. یہ واقعی صرف ان اس گیت کے آخری دو stanzas ہے. تو بجائے میں کیا کرنا چاہتے ہو؟ تو میں نے کیس پکڑے گئے جہاں اگر میں == 1 ہے لگ رہے ہو، تو پہلا لفظ "بوتل"، لیکن دوسرا لفظ ہے "بوتلیں" ہے. لیکن یہاں، میں اس 2 == کو تبدیل کرنا چاہتے ہیں. اور اگر یہ معاملہ ہے، مجھے کیا کرنا چاہتے ہیں پہلا لفظ ہے؟ سامعین: "بوتلیں". DAVID J. MALAN: دو بوتل کے لئے "بوتلیں"،. اور یہ لفظ یہاں تو ہونا چاہئے - سامعین: "بوتل". DAVID J. MALAN: "بوتل"، واحد. سب ٹھیک ہے، چلو باہر زوم، یہاں واپس جاؤ، دوبارہ چلانے، دوبارہ چلنے والے beer3 قسم، پھر 99. ٹھیک ہے، "انقطاع غلطی کور پھینک دیا." کیا میں غلط کیا ہے؟ سامعین ہیں: آپ کی کوئی قدر نہیں ہے [اشراوی]. DAVID J. کریں MALAN: آہ، بہترین نقطہ. ٹھیک ہے، تو کیا ہوا یہاں ہے؟ انقطاع غلطی تو ہم واقعی دیکھ کر جا رہے ہیں یہ مستقبل میں بہت چند بار، جان بوجھ کر. لیکن اب کیا یہ اصل میں مطلب ہے؟ تقریبا ہمیشہ ایک انقطاع غلطی کا مطلب یہ ہے کہ آپ کے پاس کسی نہ کسی طرح آپ کے کمپیوٹر میں میموری RAM، تک رسائی حاصل کرنے کی کوشش کی، کہ تم خود نہیں ہے کہ، آپ اصل میں نہیں ہے سے پوچھا کام کرنے کے لئے نظام ہے. تو اس معاملے میں نوٹس، میں نے کیا کیا ہے، جو میری منطق میں غلطی. میں S1 اور S2 قدر تفویض اگر میں 1 برابر ہے. میں بھی اس نے کیا ہے اگر میں 2 برابر ہے. لیکن میں دوسرے کی لامحدود تعداد میں یہ نہیں کیا ہے امکانات - خاص طور پر، 3 یا 4 یا ڈاٹ، ڈوٹ، ڈوٹ، 99. تو اس کے لئے ایک طے کر چلو، ہو سکتا ہے ورنہ حالت ہے. اور کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے یہاں جاؤ اور کہو S1 برابر - اسے یہاں کیا ہونا چاہئے؟ سامعین: [اشراوی. DAVID J. MALAN: کیونکہ عام کیس میں "بوتلیں"،، یہ صرف ایک ہی چیز ہے. تو اقتباس، unquote، "بوتلیں. برابر تو جمع کے لئے بوتلوں، اور پھر یہاں، جمع بوتلوں کے لئے. ٹھیک ہے، تو اب مجھے میرے ٹرمنل ونڈو پر واپس جانے، recompile، یہ دوبارہ چلائیں. 99. واہ. اور ایک فوری وویک چیک کرتے ہیں ہیں. تکنیکی طور پر، ہم نے ان میں سے اس بات کو یقینی بنانے کے لئے پڑھنا چاہتے ہیں وہ درست ہیں، لیکن چلو کو دیکھو کم سے کم مشہور مجرموں. 3 بوتلیں، 2 بوتلیں، 2 بوتلیں، 1 بوتل، 1 بوتل 0 بوتلیں. ہم کم از کم یہ اب کے لئے طے کر دی ہے لگ رہے ہو. لیکن یہاں پکڑنے ہے کہ یہ جو ایک خدا کے خوفناک گندگی ہے صرف ایک پاگل کو حل کرنے کے ایک حروف کی گرائمر کی تفصیل. تو ایک وجہ ہے کہ میں نے اس کونے کاٹ کی قسم ہے پہلے، کیونکہ یہ مکمل طور پر پریشان ہے ہے اتنا کوڈ لکھنے. لیکن یہ پتہ چلا ہے کہ وہاں سے تھوڑا سا زیادہ خوبصورت طریقوں بالکل وہی بات کا اظہار کیا ہے. اور ہم نے مندرجہ ذیل کر سکتے ہیں. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ایک لمحے کے لئے سکرین پر یہ چھوڑ کر ایک تہرا آپریٹر کے طور پر جانا جاتا ہے کچھ متعارف کرانے. یہ ایک لائنر کی طرح ہے جو صرف کرنے کے لئے کے لئے ہے، اور ہمارے ایک چھوٹی سی sexier ہے، کے طور پر وعدہ کیا رہتا ہے. اور میں اس کے طور پر مندرجہ ذیل کے لئے جا رہا ہوں. آپ کے وزٹرز کا ریکارڈ رکھا نامی S1 سٹرنگ کرو، اور مجھے تفویض اس کے طور پر مندرجہ ذیل ہے. (1 ==) "بوتل"، ورنہ "بوتلیں." S2 جملہ ملتا ہے (2 ==)؟ "بوتل"، ورنہ "بوتلیں." تو پھر یہاں کیا فرق ہے؟ کوڈ کی یہ دو لائنوں میں بحث کر سکتے ہیں یہ ساری گندگی کی جگہ. تو میں یہ ایک گندگی فون، صرف اس لئے کہ اس کی قسم کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے متعلق rubs غلط طریقے سے کہ اس کوڈ کے بہت زیادہ لائنیں ہے. غلط نہیں ہے. یہ برا ڈیزائن نہیں ہے. کی طرح، یہ بالکل درست ہے اور بالکل ٹھیک ہے. لیکن کوڈنگ تکاؤ ہو جاتا ہے، اگر تم اپنے آپ کو ایسا کرنے کا اظہار ہے خاص طور پر بار بار بار ایک سادہ لات اس طرح منظر نامے. تو C کچھ شارٹ کٹ اس طرح ہے. تو یہ بنیادی طور پر کہہ رہے ہیں کہا جاتا S1 سٹرنگ کا اعلان ہے اور تفویض یا تو اس کی قیمت یا اس کی قیمت اگر میں == ہے - معاف کیجئے گا، میں یہ زیادہ واضح طور پر کہنا چاہئے. ایک متغیر S1 کا اعلان کرتے ہیں، یہ اس قدر تفویض اگر یہ سچ ہے تو. دوسری صورت میں، یہ اس قیمت کو تفویض. تو دوسرے الفاظ میں، اس کی ایک ایک لائن کے راستے سے ترتیب دیں اور اگر کہہ رہے ہیں لیکن راستے میں ایک کام کر رہی ہے. تو اگر میں 1 ہے، تو آگے بڑھو اور اس "بوتل" کہتے ہیں. اور تو یہ کہتے ہیں، اسے "بوتلیں". دریں اثنا، S2، دوسرا لفظ ہے کہ ہم اس کی وضاحت کی ضرورت ہے، اگر میں 2 برابر ہے، ہم کریں گے "بوتل" S2 مقرر کیا ہے. دوسری صورت میں، یہ "بوتلیں" مقرر کیا ہے. اور کیا اب اس کا مطلب یہ ہے کہ میں اس کے ذریعے جاؤ اور سب کو خارج کر سکتے ہیں کوڈ کا ان لائنوں. اور جب میں نے کا کہنا ہے کہ، کسی حد تک مضحکہ خیز ہے کہ اب یہ ہے sexier، stylistic احساس کی طرح میں sexier ہے. حقیقت یہ ہے کہ فعل، اس کوڈ کو اصل میں جا رہا ہے پر بالکل وہی کام کرتے ہیں. اور اگرچہ یہ پہلے ایک پراسرار بہت کم نظر ہو سکتا ہے نظر، کیونکہ ہم نے اس کی تعمیر نہیں دیکھا ہے سے پہلے، میں تھا کا کہنا ہے کہ یہ آخر میں بہت کچھ ہونے جا رہا ہے پڑھنے کے قابل اور اتنا آسان ہم انسان کے لئے الگ الگ سمجھنے کی وجہ سے اب آپ کو صرف پڑھ سکتے ہیں تمام کوڈ کو ایک ہی لائن میں. یہ اب بھی اگر جہاں یہ ہے کی روح یہی ہے اور پھر حالت یہ ہے اگر اندر کیا ہے اور اس ہے کسی اور کے اندر کیا ہے. لیکن ہم یہ صرف بہت زیادہ elegantly کر سکتے ہیں. اور اگر اب میں اپنے ٹرمینل میں واپس جانا، تمام خارج کر دیا ہے ان لائنوں کی اور صرف دو ان لوگوں کے ساتھ ان کی جگہ لے لی، recompile، 99 کے ساتھ دوبارہ چلنے والے بیئر کی بوتلیں، کہ نوٹس گرائمر حقیقت میں ہے،، اب بھی درست ہے. تو پھر شروع کرنے کے لئے کچھ کرتے ہیں. بیر 2 بوتلیں، بیر 1 بوتل. صحیح لگتا ہے. جی ہاں. تو ہم وہاں بہت زیادہ succinct حل ہے. یہ تو بھی، جیسا کہ آپ C سے زیادہ سے زیادہ آرام دہ اور پرسکون نہیں ملتا، پہلے pset یا اس سے بھی دوسرے کے ساتھ ضروری ہے، لیکن احساس ہے کہ ان تشکیل ہمیں چیزیں کبھی بھی کرنے کی اجازت دے سکتے ہیں زیادہ elegantly. اب یہاں ایک اور چیز دیتے. آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور return1.c کو کھول دو. اب ہم ایک طریقہ ہے کہ میں ایک اور مسئلے کو حل کرنے کے لئے شروع کر دیں ہمیں زیادہ بہتر کوڈ لکھنے کے لئے کی اجازت دیتا ہے ہے. تو یہاں ایک سادہ سی پروگرام کے تحت زندگی میں جس کا مقصد ہے اقدار اضافہ ہے. اور اصل میں، ایک قدم واپس لے لو. مجھے یہ دستی طور پر کیا ہے. مجھے اور int اہم (باطل) شامل کرتے ہیں. اور آپ کے وزٹرز کا ریکارڈ رکھا اس increment.c کو فون. اور میں کیا کرنا چاہتے ہیں؟ میں آگے بڑھو اور طرح کچھ کہا جا رہا ہوں - تعداد میں ہم ایک ہی فون کروں گا - int ایکس. تو int ایکس 2 ہو جاتا ہے، printf X٪ D، نئی لائن، X. تو ميں روزہ سے ہوں، لیکن واقف سامان کی طرح اب ٹائپ کر رہا ہوں. پھر میں نے X + + کرنے کے لئے جا رہا ہوں. پھر میں ہے کہ ایک ہی سزا کو دوبارہ پرنٹ جا رہا ہوں. اور پھر میں 0 پروگرام چھوڑ کے واپس جا رہا ہوں. ٹھیک ہے، تو یہ ایک پروگرام ہے increments ایک بڑی تعداد ہے. یہ سب سے پہلے 2 کچھ ابتدا ہو رہا ہے، اور پھر یہ ہے یہ اضافہ اور اسے دوبارہ پرنٹ جا رہے ہیں. تو اضافہ چلاتے ہیں، ناقابل یقین حد تک سادہ پروگرام ہے. لیکن اب لگتا ہے کہ میں قدر کیوب کرنا چاہتے ہیں، ایسا کرنے کسی حد تک صوابدیدی کچھ. اور میں واقعی میں X اس کے کیوب ہو جاتا ہے کرنا چاہتے ہیں. تو مجھے کا استعمال کیا پاؤ تقریب کہا جاتا ہے، لیکن میں نہیں کر سکتے ہیں سچ میں پتہ جہاں جو ابھی ہے. اس لئے میں اس طرح پرانے زمانے کی کرنے جا رہا ہوں. X اوقات یہ برابر X X اوقات X اوقات. تو میں قدر cubing رہا ہوں، خود ہی اسے دوبارہ ضرب اور بار بار، تا کہ ہم اقتدار حاصل اس کیس میں 3. تو اب تعداد میں پرنٹ کرنا چاہئے، ہم کے طور پر دیکھیں گے یہاں - اضافہ کمانے کے لئے، تو یہ اصل میں واقعی نہیں اضافہ اب، لیکن ہم نام انفرادی چھوڑ دونگا - اور پھر 2 8. اب، ہم نے بہتر بنانے کے لئے ایک موقع کے آغاز یہاں جس کے تحت، ایک نمبر کو ضرب کے اس cubing بات خود کی طرف سے خود کی طرف سے خود کی طرف سے اس طرح کا خیال ہے کہ ہو سکتا ہے مفید ایک تقریب کے طور پر، زیادہ کی طرح کسی کا فیصلہ کیا سال پہلے - آپ کو پتہ ہے، قسم کی مفید اگر ہم میں سے ایک نے نیچے بیٹھ کر اور printf تاکہ باقی دنیا کے اس کا استعمال کر سکتے ہیں لکھتے ہیں، کیا ہم کیوں نہیں بیٹھتے ہیں اور کہا جاتا کیوب ایک تقریب لکھیں جو کہ ہمارے لئے اس cubing کرتا ہے تو ہم بھی نہیں ہے کو دستی طور پر اقدار کو یہاں cubing کے تصور کو نافذ کریں؟ تو ایک سادہ مثال ہے، لیکن آگے بڑھو اور استعمال ایک کے طور پر ہماری اپنی تقریب کو لکھنے کا موقع. تو اس طرح اب تک، ہم نے صرف اہم استعمال کیا ہے، اور ہم دوسرے کا استعمال کیا ہے لوگوں کے کام کرتا ہے، لیکن ہم اپنے لکھا نہیں ہے. تو ہم یہاں جانا. مجھے آگے جانا ہے اور کہا جاتا کیوب ایک تقریب لکھنے جا رہا ہوں. اور میں یہ ایک ان پٹ لے جا رہا ہوں. تو اس کی ان پٹ ایک عددی جا رہا ہے. اور کیا کرنے جا رہا ہے؟ یہ int پیداوار کا اعلان ہو رہا ہے = ان پٹ وقت ان پٹ اوقات ان پٹ. اور پھر وہ اس کی پیداوار کو واپس جا رہا ہے. اور پھر میں مخصوص اب ہے. یہ تقریب ایک int واپس جا رہا ہے. تو یہاں تو یہ ہے کہ آپ کس طرح اپنے اپنے افعال لکھ تھا. تم پہلے فیصلہ آپ کا نام کیا ہے تقریب میں ہونے جا رہا ہے. اور عام طور پر، وضاحتی کچھ اچھا ہے، تو میں یہ کیوب پر کال کریں. اس کے بعد آپ کی وضاحت کرنا ہے جو اس پر واپس جا رہا ہے، کیا ہے اس کی پیداوار ہو رہا ہے. اور ہم نے بہت ہے کہ اختیارات کی ضرورت نہیں ہے. Int، چار، فلوٹ، bool، سٹرنگ. اب کے لیے، میں ایک int کے ساتھ رہنا جا رہا ہوں، کیونکہ میں نے اسے چاہتے ایک عددی واپس. اس کے بعد آپ کی وضاحت اس کے آدانوں، اگر کوئی ہے تو، کیا ہیں ہے. اور اگر کیوب ایک دلیل لیتا ہے، کے درمیان کچھ لیتا ہے قوسین، تم نے اس دلیل کو نام دینا ہے تاکہ آپ اسے کچھ فون کے طور پر آپ کو عمل درآمد یا لکھ رہے ہیں کر سکتے ہیں اس فنکشن ہے، اور تم یہ ایک قسم، دینا پڑے گا جو اس میں کیس int جا رہا ہے. تو مختصر میں، کیوب ایک تقریب ہے کہ ایک عددی لیتا ہے ان پٹ اور پیداوار کے طور پر ایک عددی واپسی کے طور پر. تو کیا اس ان پٹ کے ساتھ کیا کرتا ہے؟ ٹھیک ہے، میں 14 سطر میں نامی ایک متغیر پیداوار کا اعلان، اور میں اسے قدر ان پٹ وقت ان پٹ وقت ان پٹ کو تفویض. اور پھر میں پیداوار واپس. تو میں یہ کس طرح تو استعمال کرتے ہیں؟ میں لائن پر کیا ان پر روشنی ڈالی حروف تبدیل کروں 7 کیا جائے، آپ کو لگتا ہے کہ ہے؟ سامعین: [اشراوی. DAVID J. MALAN: جی ہاں، X کے کیوب. تو ایکس ایک متغیر ہے، جس کا مطلب ہے کہ یہ کچھ قدر کی ڈگری حاصل کی ہے. خوش قسمتی سے، اس قسم عددی ہے. اور کیونکہ ایکس ایک int ہے، اس کا مطلب ہے کہ میں یہ کیوب میں منتقل کر سکتی ہیں. اور اگرچہ میں قیمت کے ساتھ X کی قدر زیرکر رہا ہے کر رہا ہوں کیوب ایکس کے معاملہ ابھی تک رہا ہے، کسی بھی وقت آپ کو برابر سائن ان کریں اور کوڈ کی ایک لائن، دائیں جانب سامان ہو جاتا ہے پھانسی اور پھر تفویض ہو جاتا ہے بائیں پر قیمت. تو آپریشن کے حکم کے طور پر ہم امید کریں گے. تو اس کا کام کرتا ہے؟ اچھا، مجھے یہاں جانا ہے. مجھے اپنے ٹرمنل ونڈو کھولنے. مجھے اضافہ کرتے ہیں، درج کریں. "تقریب 'کیوب' کی انترنہیت اعلان باطل میں ہے C99 "ایک طرف ایک ہے.، C99 زبان C سے مراد تھا 1999 میں وضاحت کی گئی ہے، جس ورژن پر ایک اپ ڈیٹ کے سے تھا 1989، جو اصل میں ایک اپ ڈیٹ ہے. تو یہ کہ اس کا مطلب ہے. تو کیا اس کا مطلب یہ ہے کہ "شامل اعلان کی ہے تقریب 'کیوب' باطل ہے "یہ یہاں ہے؟ یہ 12 سطر میں وہیں ہے. سامعین: [اشراوی. DAVID J. MALAN: یہ کیا ہے؟ سامعین: اس سے پہلے بھی نہیں ہے. DAVID J. MALAN: اس سے پہلے بھی نہیں ہے. تو یہ بات ہے. C قسم کے بیوکوف ہے، یا C compilers پاگل کی طرح ہیں. وہ واقعی صرف کیا آپ ان سے کیا کہتا ہوں. اور وہ خاص طور پر، صرف نیچے اپنے کوڈ کو سب سے اوپر پڑھیں، بائیں سے دائیں. تو اگر سنکلک، بجنا، اپنے کوڈ کو پڑھ کر رہی ہے، سطر نمبر 1، باہر کے اعدادوشمار ایسا کیسے کر. اوہ، یہاں آتا ہے اہم ہے. ٹھیک ہے، آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور ایک متغیر x اعلان. مجھے کچھ پرنٹ. 7 لائن، کیا heck کیوب ہے؟ یہ stdio.h میں اعلان نہیں ہے. یہ سی کے ساتھ نہیں آتی میں نہیں کیا کرنا ہے خیال ہے. اور اس طرح بجنا صرف bails اور اس غلطی پیغام کے ساتھ برابر ہے. تو ہم طریقوں میں سے ایک جوڑے میں اسے درست کر سکتے ہیں. ہم بجنا سکھانے کے کیوب جہاں منتقل کی طرف سے کیا ہے اعلان ہے. تو میں کاٹا اور اہم اوپر چسپاں. اب احساس ہوتا ہے کہ یہ صرف اس وجہ سے اہم نہیں رہ گیا ہے سب سے پہلے ہے، اب بھی پہلے سے طے شدہ کی طرف سے پھانسی. مین اہم ہے. یہ ڈیفالٹ تقریب کا نام ہے. جہاں یہ ایک فائل میں ہے اس سے کوئی فرق نہیں ہے. لیکن کم از کم اب بجنا کیوب دکھایا گیا ہے اس سے پہلے کہ میں اسے استعمال کیا ہے. تو چلو دیکھتے ہیں اگر بجنا خوش ہے. اضافہ، اس وقت مرتب کیا. آپ کے وزٹرز کا ریکارڈ رکھا اضافہ چلانے. اور یقینا، یہ کام کر رہا ہے. اب، آپ کو منظرنامے کے ساتھ جہاں بالآخر آ سکتے ہیں یہ ممکن نہیں ہے ہر تقریب ڈال ہر تقریب سے اوپر. آپ کو حقیقت میں اس لامتناہی لوپ میں پھنس گا، اس آدمی کو یہاں لیکن یہ جہاں چاہتا ہے آدمی وہاں کی ضرورت ہے. تو یہ ہمیشہ کام نہیں کرتا. تو شکر، C ایک سے زیادہ خوبصورت حل ہے. میں یہ واپس ڈال جا جہاں تھا رہا ہوں، صرف اس لئے کہ میں اصول کی بات کے طور پر ترجیح دیتے ہیں، جو اہم ہمیشہ سب سے اوپر ہے، کیونکہ یہ صرف اچھی ہے جو اس پروگرام ڈیفالٹ کی طرف سے ہے. اور جو میں یہاں کرنے جا رہا ہوں وہ اعلان کیا کہتے ہیں ایک پروٹوٹائپ. میں لفظی کی طرف سے میری کیوب تقریب کو دوبارہ اعلان کرنے جا رہا ہوں کاپی اور چسپاں. اصل میں، یہ لفظی نہیں ہے. تو لفظی کاپی اور چسپاں 15 لائن اپ 6 کی لکیر سے اوپر. اس سے کوئی فرق نہیں ہے یہ کیا لائن پر ختم ہو جاتا ہے ہے. 4 لائن پر ہوتا ہے. لیکن اس سے پہلے اہم ہے. لیکن فرق یہ نوٹس. ایک نیم وقفہ کے ساتھ 4 ختم لائن، جس کا مطلب ہے، بجنا، اس کے لئے میری بات ہے کہ ایک تقریب بھی موجود ہے کیوب ہے کہ ایک int لیتا ہے اور ایک int واپس بلایا. لیکن میں نے تم سے نہیں ابھی یہ کیا ہے بتانے جا رہا ہوں. صرف اتنا جانتا ہوں کہ میں آپ کو آخر میں بتانا وعدہ کرتا ہوں. اور یقینا، اب یہ ٹھیک ہے کہ اس کے نیچے ذیل ہے. تو یہ عام طور پر بہتر ہے، کیونکہ اس وقت کے سب سے اوپر دیئے گئے آپ کی فائل، آپ نے صرف، تیزی سے آگ، ایک ہی لائن میں ھڑھڑ کر سکتے ہیں ہر کیا، جو آپ کے افعال میں سے نام ہیں، ان کے آدانوں ہیں، جو کچھ ان کے نتائج ہیں. اور زیادہ واضح ہو، ان پٹ عام طور پر دلیل کا مطلب ہے کہ یا پیرامیٹر، مترادف. پیداوار واپسی قیمت کا مطلب ہے کہ، کیا اس سے فرق پڑتا ہے میرے پاس واپس ہاتھ. تو یہاں اس صورت میں، کیوب گیا ہے سب سے اوپر اعلان، لیکن وضاحت کی گئی ہے، دوسری صورت میں کے طور پر عملدرآمد کے نیچے دیے گئے نام سے جانا جاتا ہے،. تو اب ہم یہاں واپس جاؤ اور اس کو دوبارہ چلانے کے. تو اب مجھے آگے جاؤ اور دوبارہ چلانے بنانے، اضافہ چلانے کو دوبارہ. اور اب یہ ٹھیک کام کرنے لگتا ہے. تو اب ہم آگے بڑھیں اور جیسے کچھ فیکٹر کر سکتے ہیں اس کا چوتھا ورژن میں مثال کے طور پر بیر. تو مجھے یہاں نیچے سکرال. نوٹس اور یہ کہ میں اس قسم کی دل سے یہ سبق لیا ابھی. حقیقت یہ ہے کہ میں بھی وہی سٹینزا گانا دوبارہ کیا گیا تھا اور بار بار، گیت میں ایک ہی کورس کی لائن کو محسوس کیا، مجھے کیا کرنا کیوں پسند نہیں کہ ایک تقریب میں عنصر ہے؟ اور یقینا، اس منشا میں سے ایک ہونا چاہئے. حقیقت یہ ہے کہ دنیا میں کوئی اور چاہتا ہو سکتا ہے کے علاوہ ایک کیوب تقریب کا استعمال کرنے کے لئے - جو کچھ عنصر اور آپ کے لکھنے کے لئے ایک اچھا وجہ ہے خود اپنی مرضی کے مطابق تقریب - اگر اپنے پروگرام ہے جو صرف کرتا ہے کے کوڈ کا ایک حصہ ہے تصوراتی احساس، کہ تم قسم کی یہ دینا چاہتا ہوں نام - اس کیس میں کورس کی طرح - تو آپ کے پاس ہے کہ ایک علیحدہ تقریب کے طور پر اسی طرح لکھ سکتے ہیں. آپ کو اہم سب کچھ لکھنے کی ضرورت نہیں ہے اگر صرف اس کا صاف الگ اور یہ نام دینے لگتا ہے. تو یہاں اس معاملے میں نوٹس، کہ میں نے اوپر ایک تبصرہ ہے اس تقریب میں ہے کہ صرف بارے میں گاتی بوتلوں کی مخصوص تعداد. یہاں یاد رکھیں کہ میں نے ان کو فون کرنے کی ضرورت نہیں ہے چیزوں کی ان پٹ اور پیداوار. اصل میں، اس وقت میں صرف بوتل کے لئے اپنی ان پٹ ب قرار دیا ہے. یہاں اور صفر نے کیا تجویز دیکھا؟ اس کورس - شائقین کو اسے واپس نہیں کیا. DAVID J. MALAN: ایک قدر واپس نہیں کرتا ہے. اور یقینا، افعال اقدار کو واپس نہیں ہے. وہ کچھ کرنا صرف کر سکتے ہیں. وہ ضمنی اثرات کہا جاتا ہے کر سکتے ہیں، جو اس میں کیس صرف سکرین پر پرنٹ کی ایک پوری چڑھانے ہے. تو محسوس ہے کہ اس کوڈ میں لفظی صرف سے چرایا گزشتہ مثال کے طور پر. فرق صرف میرا استعمال کرنے کے بجائے ہے متغیر، اب میں میرے متغیر کے طور پر ب رہا ہوں کا استعمال کرتے ہوئے. لہذا میں ب نیچے ہے یہاں، میں ب نیچے ہے یہاں، میں ب ہے مائنس یہاں ذیل 1. لیکن کوڈ کو بالکل ویسے ہی ایک ہی ہے. لیکن صرف تم اب ظاہر ہے کہ کس طرح ہم اس کا استعمال کر سکتے ہیں، مجھے جانے دو آگے اور اصل میں یہ تبدیل لوپ کے لئے ایک ہو. (int میں = ن، میں> ن؛ میں -). تو میں کہ ہمارے گزشتہ مثال کے طور پر کی طرف سے چرا لیا ہے. سے پہلے، یہ 37 سطر میں ہے کہ میں نے شروع ہوتا اس پریشان گانا گا. بلکہ اس کی بجائے، میں صرف اب میں کے کورس پر کال جا رہا ہوں. ہو گیا. تو اب اس لوپ کے ہر iteration میں، میں اس دوسرے فون تقریب، کورس، کہ میں لکھنے کا اتفاق ہوا ہے. یہ کسی اور سال پہلے کی طرف سے لکھا نہیں تھا. لیکن کورس، دوران، printf کا استعمال کرتا ہے پرنٹ ان چار لائنوں میں سے باہر. لیکن حقیقت یہ ہے کہ میں نے کورس میں بار بار فون کر رہا ہوں لوپ کا مطلب یہ ہے کہ میں ہی آخر میں حاصل کرنے کے لئے جا رہا ہوں، بالکل وہی گیت جیسا کہ میں نے ابھی تک ہے. تو مختصر میں، اب اگر میں اپنے کوڈ میں واپس دیکھو، اگرچہ فعل یہ برابر ہے نوٹس، کہ یہ سے بھی زیادہ پڑھنے کے قابل حاصل کرنے کے لئے شروع. مجھے ٹھیک سے پتہ نہیں کس طرح GetInt لاگو. سچ کہوں، مجھے نہیں پتہ کہ کس طرح کورس لاگو کیا جاتا ہے. لیکن اس سے مجھے کوئی فرق نہیں پڑتا. مجھے پرواہ نہیں ایک انسان کے طور پر کیونکہ اب میں الگ الگ کرسکتے، پڑھ اس نیچے اوپر سے. اور اس وجہ سے کام کرتا ہے کہ وہ کیا کے مطابق نام کر رہے ہیں، ، کر، میرا کوڈ تیزی سے پڑھنے کے قابل ہے. اور جیسا کہ ہمارے پروگراموں کو بہت زیادہ پیچیدہ ملتا ہے - کی سمسٹر کے آخر تک، آپ کو سینکڑوں لائنوں کی تحریری گے پی ایچ پی اور جاوا سکرپٹ اور طرح طرح کی زبانوں میں کوڈ - آپ کو تلاش ہے کہ یہ اتنا آسان سے ٹریک رکھنے کے لئے ہے. جو تم نے کیا ہے. اور جب تم شروع دوستوں کے ساتھ تعاون یا شراکت داروں یا ساتھیوں کے، آپ کو بہت کچھ لکھنے کے قابل ہو جائے گا ان بنیادی ورزش شروع کرنے کی طرف سے بڑے پیمانے پر پروگرام عمارت بلاکس. تو اس کے ساتھ اس نے کہا کہ، ہم اسے ایک دن کیوں نہیں بلاتے؟ اور ہم آپ کو بدھ کو نظر آئے گا. [اپلاز]