ZAMYLA چان: یہ ایک میں ہوں، کیا Zamyla. آج، ہم کو لاگو کرنے کے لئے جا رہے ہیں ماریو، ہم ماریو اپنی طرف متوجہ جہاں اس کے لئے ایک مکمل پرامڈ زیادہ کود کرنے کی. کی ٹوٹ اس مسئلہ کے لئے ذیلی کاموں. سب سے پہلے، ہم صارف کو فوری طور کرنا چاہتے ہیں پرامڈ کی اونچائی کے لئے. اور پھر ہم اس بات کو یقینی بنانا چاہتے ہیں کہ اس کی ان پٹ درست ہے. اور پھر ہم کرنے جا رہے ہیں پرامڈ اپنی طرف متوجہ کرنا چاہتے ہیں. تو فورا بارے میں بات کریں اور صارف کی ان پٹ کی توثیق. اس طرح کچھ دیکھ سکتا یہ ایک کیا جبکہ ایک لوپ ہے کہ ایک کے لئے صارف کا اشارہ عددی اور پھر صرف دوہراتا اس عددی غلط ہے تو. تو اس حالت میں کیا ہونا چاہئے؟ اس کے لئے، اور کے پیچھے چلتے ہیں تفصیلات کے. ویسے، رپورٹ کسی بھی درست ہے کہ ہمیں بتاتا ہے اونچائی، 0 اور 23 کے درمیان ہونے جا رہا ہے شامل ہوں. تو پھر اس میں کوئی غلط مطلب یہ ہے کہ اونچائی 0 سے کم ہو جا رہا ہے یا 23 سے زیادہ. تو اب ہم اس کی معلومات کی ضرورت ہے کہ، کی ہماری حالت کو ڈیزائن کرتے ہیں. لیکن ہم کو ہوشیار رہنے کی ضرورت ہے، اب ہم ہیں کیونکہ دو Booleans کے ہم اندازہ چاہتے ہیں کہ. یہاں میں آپ کو فراہم کیا ہے ایک حقیقت کی میز کے ساتھ. اس سے ہمیں دو لینے کے لئے کی اجازت دیتا ہے Booleans کے، بولین ایک اور دو. اور ہم یا تو bool1 اندازہ کر سکتے ہیں اور bool2 یا bool1 یا bool2. لہذا کیا فرق ہے درمیان اور اور یا؟ ویسے، bool1 اور bool2 گے کرنے کے لئے اندازہ صحیح ہے تو صرف اور صرف اگر دونوں Booleans کے سچے ہیں، یا آپریشن جبکہ سچ ہو جائے گا یا تو ایک کی تو booleans یا دونوں درست ہیں. ، اس بات کو ذہن میں کے ساتھ تو آپ پتہ کر سکتے ہیں دیکھنے کے کیا اس کے لئے مناسب شرط ایک غلط N کے لئے آپ کیا جبکہ ایک لوپ ہونے جا رہا ہے. اس کے ساتھ، ہم نے حوصلہ افزائی کی اور توثیق کی ہے پرامڈ کے عروج کے صارف وہ چاہتے ہیں کہ. تو اب، یہ ہم پر منحصر ہے پرامڈ اپنی طرف متوجہ کرنے. اس لئے مکمل پرامڈ اس مسئلے کو تھوڑا سا نظر آئے گا اس طرح، ہم ایک بائیں پرامڈ ہے جہاں، کچھ فرق، اور پھر ایک حق پرامڈ. تو چلو ایک تھوڑا سا اس ٹوٹ. میں نے اپنے ٹیکسٹ ایڈیٹر کے پاس جاؤ، تو یہاں میں نے ہمیں ایک بائیں منسلک پرامڈ تیار کی. لیکن اس سے کام نہیں چلے گا. ہم کیا کرنا چاہتے ہیں ہم چاہتے ہے سب سے پہلے ایک دائیں منسلک پرامڈ تخلیق. تو صرف آگے بڑھانے کے لئے یہ کرنے کی، کی طرف کرنے کے ساتھ ساتھ میری ہیشز، میں صرف کچھ حروف ڈال کرنے جا رہا ہوں درمیان، صرف ان نقطوں میں. اس کے بعد میں پر دو ڈال کرنے جا رہا ہوں اگلی لائن، اور یہ کہ ایک لائن میں ایک. اور اس طرح یہاں میں ایک ہے دائیں منسلک پرامڈ. اس کے بعد میں کرنے جا رہا ہوں اوپر والی لائن پر واپس جانا اور فرق، میں ڈال دیا جس رپورٹ، دو جگہوں فی، ہے. پھر میں بھرنے کے لئے جا رہا ہوں پرامڈ کے دوسری طرف. میں نے دوسری قطار میں جانے کے لئے جا رہا ہوں، لکھ اور فرق کے لئے دو جگہوں پھر دو ہیشز. تیسری قطار پر واپس جائیں، دو خالی جگہوں فرق اور تین hashes لئے. اور آخر میں، دو خالی جگہوں فرق اور چار ہیشز لئے. تو وہ ایک مکمل کیا پرامڈ کی طرح نظر آئے گا. کورس کے، ہم نہیں چاہتے ہیں راستے میں ان نقطوں. تو ہم نے ان کی جگہ لے لے کرنے کے لئے جا رہے ہیں میں کچھ خالی جگہ رکھ کر بندیاں. ایک، دو، پہلی لائن پر تین. ایک، دوسرے پر دو. اور تیسری لائن میں ایک. تو یہ ہم ہیں تو ہم کیا کریں گے ہے صرف ایک مکمل پرامڈ بنانا چاہتے تھے، ہمارے ٹیکسٹ ایڈیٹر میں، کا کہنا ہے کہ. تو یہ اختیار کرے، نمونوں کو سمجھنے، اور کچھ pseudocode کو اس کے تبدیل. پرامڈ کے ہر صف کے لئے، ہم چاہتے ہیں بائیں پرامڈ پرنٹ اور پھر فرق اور پھر دائیں پرامڈ. بائیں پرامڈ کے لئے، ہم کو پرنٹ خالی جگہوں کی مطلوبہ رقم، ہیشز کے بعد کیا. پھر ہم خلاء، پرنٹ جس صرف دو جگہوں ہر وقت ہے. اور حق پرامڈ میں، ہم پرنٹ hashes کی مطلوبہ تعداد. دوسری صف کے لئے، ہم سے کئے گئے ایک ہی عین مطابق عمل. ہم بائیں کے لئے خالی جگہوں کو پرنٹ پرامڈ، مطلوبہ رقم ہیشز، فرق، دو خالی جگہوں، اور پھر دائیں پرامڈ لئے hashes. کی پیٹرن ٹیکل دو بائیں پرامڈ لئے. مقاصد کے لئے میں تھا تو، اس مثال کی، بلندی آٹھ کی طرف سے درخواست صارف، تو میری پہلی صف سے ایک ہیش اور سات خالی جگہوں ہوگا. میری دوسری صف پڑے گا دو hashes، چھ خالی جگہوں. تیسری قطار، تین hashes، پانچ خالی جگہیں. آپ نے شاید یہ کر سکتے ہیں آٹھ کی بلندی کے لئے اپنے آپ اور کتنے ہر صف کے لئے اس بات کا تعین hashes اور کس طرح بہت سے خالی جگہوں کو آپ کی ضرورت ہے. لیکن جو ہم کرنا چاہتے ہیں ہے ہم اس کے خلاصہ کے لئے چاہتے ہیں. لہذا میں کسی بھی nth صف کس طرح بہت سے، کے لئے تم سے پوچھنا hashes اور ہم کس طرح بہت سے خالی جگہوں کی ضرورت ہے؟ اب، جیسا کہ آپ کا تعین کتنے hashes لئے پیٹرن اور کس طرح بہت سے خالی جگہوں کو آپ کے لئے کی ضرورت ہے ایک دیئے اونچائی کے لئے کسی بھی nth صف، ہوشیار رہنے کی یاد کس طرح آپ کو تخکرمن رہے. کیا میں اس کی طرف سے مطلب روزمرہ میں کہ ہے زندگی ہم میں سے اکثر ایک کی طرف سے گنتی شروع. تو سب سے پہلے صفیں ایک ہو گا. دوسری قطار صف ہو گی نمبر دو، تو اور تو آگے. لیکن کمپیوٹر سائنس میں اور CS50، ہم صفر حساب سے ترتیب کر رہے ہیں. تو ہم اصل میں صفر پر گنتی شروع. تو سب سے پہلے قطار گے صف تعداد صفر ہو. دوسری قطار صف نمبر ایک ہو گا. اگر تو میں نے آٹھ کی بلندی تھی میری پرامڈ، ن کے اس وقت کے آخری قیمت اصل میں سات اور آٹھ ہو جائے گا. لہذا اس کے بارے میں ہوشیار رہنا. اور تم تعین کرنے کر رہے ہیں جب آگاہ رہیں آپ کے پیٹرن ہے کہ آیا آپ صفر حساب سے ترتیب یا ایک حساب سے ترتیب ٹھیک ہے. تو اب ہم ہے کہ بائیں پرامڈ لئے پیٹرن، ہم اس بات کا تعین کرنے کی ضرورت ہے فرق کے لئے پیٹرن. خوش قسمتی سے، یہ واقعی آسان ہے. یہ صرف ہمیشہ دو خالی جگہ ہے. تو اب ہم حق پیٹرن کے لئے آگے بڑھنے. پہلی صف سے ایک ہیش پڑے گا. دوسری صف، دو. تیسری قطار، تین. تو اور تو آگے. تو ایک بار پھر، کوئی بھی تجریدی لئے تعین (ن) اور کتنے hashes کسی بھی اونچائی اور کتنے خالی جگہیں ہر صف کے لئے ہونا چاہئے. ٹھیک ہے. تو ہم جانتے ہیں کہ ہر صف کے لئے ہم کچھ عمل کرنے کی ضرورت ہے. ہم کہ کس طرح کروں؟ ٹھیک ہے، ہم لوپ کی تعمیر کے لئے استعمال، ایک ابتدا پر مشتمل، ایک شرط، اور ایک اپ ڈیٹ. loops کے لئے استعمال کیا جا سکتا عمل دہرانے کے لئے. لہذا، میں نے اسے خوش کہنا چاہتے ہیں ، پھر میرے لوپ کے لئے دنیا کے 50 گنا کچھ اس طرح نظر آئے گا، جہاں میں صفر کرنے کے لئے میری متغیر ابتدا. شرط میں نے 50 سے بھی کم ہے کہ ہے. اور پھر اپ ڈیٹ یہ ہے کہ ایک ہر وقت کی طرف دھیرے بڑھتا. لہذا اس کے لئے ہو گا کیا کریں گے ایک قطار میں خوش دنیا 50 گنا پرنٹ،. اب، میں iterate کے لئے کرنا چاہتا تھا کا کہنا ہے کہ پرامڈ کے عروج سے زیادہ. اس کے بعد اس کی بجائے مشکل کوڈنگ کے حالت میں کچھ قدر، میں نے صرف متغیر اونچائی کا استعمال. تو یہ کیا کریں گے میں iterate ہے اونچائی ہر صف سے زیادہ. اور میں اندر کچھ کر سکتے ہیں اس لوپ کے جسم کے. ہم کیا چاہتے ہو لوپ کے جسم کے اندر؟ ویسے، ہم نے پہلے اشارہ کے طور پر، ہم چاہتے ہیں خالی جگہوں اور hashes کو پرنٹ کرنے کے لئے بائیں پرامڈ اور پھر پرنٹ کے لئے دو جگہوں اور پھر hashes کو پرنٹ. تو ہم نے پہلے ہی کہ باہر سوچا ہے. تو ہم کو بھرنے کے لئے شروع کر سکتے ہیں ہمارے پروگرام میں ایک سے زیادہ بہت. یہاں میں نے لوپ کے لئے ایک بیرونی ہے کہ پرامڈ میں ہر صف سے زیادہ iterates. اور یہ کہ جسم کے اندر جا رہا ہوں خالی جگہوں کو بار بار پرنٹ کرنے کے لئے، بار بار hashes کو، اور اس کے بعد کے فرق، اور پھر دائیں پرامڈ لئے hashes، اور اس کے بعد، آخر میں، ایک نئی اگلی صف شروع کرنے کے لئے لائن. اس کے ساتھ، ہم نے حوصلہ افزائی کی ہے ان پٹ کے لئے صارف. ہم اسے درست ہے اس بات کو یقینی بنایا ہے. اور پھر ہم پرامڈ تیار کی ہے. تو ماریو کامیابی سے کر سکتے ہیں اہرام چڑھنے. میرا نام Zamyla ہے. اور اس CS50 ہے.