ZAMYLA چان: یہ ایک، میرے، کیا Zamyla ہے. ماریو میں آج ہم ہو جا رہے ہیں ماریو کے لئے نصف پرامڈ ڈرائنگ چڑھنے کے لئے. تو کے بارے میں بات ہمارے اس مسئلہ کے لئے سے کرتے کی. ہم چاہتے ہیں جا رہے فوری اور درست کرنے کس طرح ایک درست ان پٹ کے لئے صارف اعلی ماریو پرامڈ بننا چاہتا ہوں. اور پھر، ہم اسے اپنی طرف متوجہ کرنے کے لئے جا رہے ہیں. تو فورا ہی ساتھ شروع کرنے کی اجازت نہیں اور ان پٹ کے لئے صارف کی توثیق. ہم کے استعمال کر سکتے ہیں CS50 لائبریری تقریب اس بات کا یقین کرے گا کہ int حاصل صارف ایک عددی آدانوں. کوئی مثبت صحیح عدد، منفی integers کے، نمبر 0 تمام منصفانہ کھیل. دوسری صورت میں، صارف کو کہا جائے گا وہ ان پٹ ایک درست عدد صحیح ہے جب تک دوبارہ کوشش. اب حاصل INT کرتا ہے اگرچہ ہمارے لئے بہت کام کو یقینی بنانے میں ہے کہ صارف ہمیں ایک عددی دیتا ہے، ہم اب بھی کچھ لاگو کرنے کی ضرورت اس پر اضافی رکاوٹوں. سب کے بعد، ہم ماریو چڑھنے کی ضرورت نہیں کر سکتے ہیں اونچائی منفی 12 کے نصف پرامڈ. اس کے علاوہ، مسئلہ تصریح کہ ہم صرف کر سکتے ہیں کا کہنا ہے کہ ماریو چڑھنے کی اجازت 0 اور 23 کے درمیان بلندیوں کی ایک پرامڈ. ٹھیک ہے، تو ہے کہ ہم ضرورت کا مطلب ہے مسلسل صارف کو فوری طور کرنا ہمیں ایک درست دینے کے لئے نمبر اور صرف جاری رہے وہ ہمیں ایک درست اونچائی دیا ہے ایک بار. ہم کہ کس طرح کروں؟ ویسے، مستقل عمل ہمیں دے loops-- کر کچھ کا خیال بار بار. تھوڑی دیر کے طور پر سی میں ایک لوپ لوپ کہ مسلسل ہو جائے گا جب تک کے طور لوپ کے جسم کو پھانسی دی حالت صحیح تشخیص. جیسے ہی کہ شرط کے طور پر جھوٹے پر تشخیص، پروگرام پر جاری رہے گی جو کچھ اس کے بعد آتا ہے. loops کی ایک طریقہ ہیں جبکہ سو ہم اس مسلسل کو یقینی بنانے ایک درست ان پٹ کے لئے صارف کو فوری طور. اور ایک بار انہوں نے ہمیں ایک درست ان پٹ کو دے، ہم اگلے آتا ہے جو کچھ بھی کرنے کے لئے کارروائی کر لیں گے. ہمیں امید ہے کہ ہم آپ سے درخواست کرنے کے لئے جا رہے ہیں جانتے ہیں کم از کم ایک بار ان پٹ کے لئے صارف. تو اب ہم میں سے ایک بہن کے لئے آیا لوپ، ایسا جبکہ لوپ ہے جس جبکہ. لوپس عملدرآمد کرے گا جبکہ کم از کم ایک بار لوپ کے جسم. لہذا شرط جانچ پڑتال کے بغیر، یہ لوپ کے جسم پر عمل کریں گے. اور پھر دیکھنا حالت چیک چاہے وہ خود کو دوبارہ کرنے کی ضرورت ہے. یہ جب ہاتھ میں آتا ہے ہم صارف کی ان پٹ کی توثیق کر رہے ہیں. ہمیں امید ہے کہ ہم جا رہے ہیں جانتے ہیں کم از کم ایک بار ان سے پوچھیں کرنے. چنانچہ ایک کر دیر لوپ شاید کچھ اس طرح نظر. ہم ایک عددی ن ہے. اور کرتے کے اندر جبکہ لوپ، ہم فوری طور پر ایک عددی کے لئے صارف کو فوری طور. ن غلط ہے تو پھر ہمیں انہیں فوری طور پر لیں گے بار بار بار وہ جب تک ہمیں یہ درست عدد صحیح دے. آخر میں، ایک بار ن ایک درست ان پٹ ہے، ہم کریں گے ہمارے پروگرام کے باقی کے لئے آگے بڑھنے. تو چلو رپورٹ اور چیک کرنے کے لئے واپس جانے دو کیا ایک درست ان پٹ کے لئے حالات ہونے جا رہا ہے. درست بلندیوں تک جا رہے ہیں 0 اور 23، پر مشتمل ہے کے درمیان ہو. تو باطل بلندیوں تک جا رہے ہیں 0 سے کم یا 23 سے زیادہ ہو. تو ڈیزائن کے لئے یاد آپ کی حالت میں احتیاط سے، شرط یہ ہے کہ یہ جانتے ہوئے کرو جبکہ لوپ کے لئے ہونا چاہئے جبکہ ن غلط ہے. اب یہ ایک بننے کے لئے نہیں جا رہا ہے سادہ ایک بولین اظہار. ہم کو اکٹھا کرنے کی ضرورت کے لئے جا رہے ہیں دو مختلف اظہار ہمارے پورے شرط بنانے کے لئے. تو صرف میں نے ایک حقیقت کی میز کو دیکھو پہلے سے ہی آپ کو اشارہ ہم ہیں کہ دی دو Booleans کے ساتھ نمٹنے جا. تو یہاں ایک حقیقت میز ہے جہاں میں دو Booleans-- بولین 1 اور 2 ہے. تو ہم اندازہ کرنے کا اختیار ہے bool1 اور bool2 یا bool1 یا bool2. اور صرف دونوں اگر سچ ہو جائے گا Booleans کے تمام جبکہ، صحیح پر اندازہ یا ایک کے طور پر طویل عرصے کے طور پر سچ ہو جائے گا دو Booleans کے صحیح تشخیص. ٹھیک ہے، تو ایک لمحے لے لو، اس کو موقوف ویڈیو اور اس سچائی کی میز ہضم. میں یہیں انتظار کروں گا. جب آپ واپس آئیں، دیکھتے ہیں آپ ساتھ مل کر ٹکڑے کر سکتے ہیں تو کے لئے ایک بولین اظہار آپ ن کی شرط ایک غلط اندراج ہونے کے. تو اب ہم ہے کہ درست صارف ان پٹ، کی اجازت آگے بڑھو اور ہم کس طرح کے بارے میں بات نصف پرامڈ اپنی طرف متوجہ کر سکتے ہیں. یہاں اس سادہ ٹیکسٹ ایڈیٹر میں، میں نے ایک بائیں منسلک پرامڈ تیار کی ہے. لیکن ہم ہمارے ضرورت ہے پرامڈ حق منسلک کیا جائے گا. تو میں نے ایسا کیسے کر سکتے ہیں؟ ٹھیک ہے، میں آگے بڑھانے کے لئے کی کوشش کر سکتے ضمنی کے لئے سب کچھ صرف ایک چھوٹا سا ڈال کی طرف سے درمیان میں کردار. اور پھر، اگلے کے لئے لکیر، میں ڈال کرنے کے لئے جا رہا ہوں کچھ زیادہ حروف اس کے ساتھ ساتھ آگے بڑھانے کے لئے، اور further-- اسی اور وغیرہ میں نے دائیں منسلک پرامڈ ہے جب تک. تو ہم نے ایک صحیح سیدھ پرامڈ ہے، لیکن یہ نقطے کے ساتھ تو بہت اچھا نظر نہیں آتی. لیکن ہم اب بھی کرنا چاہتے ہیں وہ اچھا وقفہ کاری کو برقرار رکھنے. تو میں نے لفظی کرنے جا رہا ہوں کچھ خالی جگہ داخل. تین نقطے کی بجائے، میں کروں گا ایک، دو، تین خالی جگہوں ڈال. دوسری لائن پر. میں نے ایک، دو خالی جگہوں ڈال دیتا ہوں. اور اپانتی پر لکیر، صرف ایک خلائی. اور یہاں میں ایک دائیں منسلک پرامڈ ہے. متن میں مثال کرنے سے ایڈیٹر، ہم پیٹرن کے لئے ایک خیال ہے ہم نصف پرامڈ اپنی طرف متوجہ کرنے کے لئے استعمال کریں گے کہ. ہر صف کے لئے، ہم نے کیا ہم نے کچھ خالی جگہوں کی قسم ہے، اور پھر ٹائپ کچھ hashes کو، اور پھر ٹائپ کلید درج کریں، جس میں ایک نئی سطر پیدا کر رہا ہے. تو اب ہم اس کے لئے ہے کہ، ہم چلتے ہیں ایک قدم آگے اور ایک پیٹرن کو تلاش کریں. تو میں نے کے لئے، کہنے جا رہا ہوں اس مثال کے مفاد، ہم 8 کی بلندی کے ساتھ کام کر رہے ہو. پہلی صف دو کر جا رہا ہے سات خالی جگہوں مندرجہ ذیل ہے کہ ہیشز. دوسرے کی تین hashes، چھ خالی جگہوں. تیسری row-- چار ہیشز، پانچ spaces-- تو اور تو آگے ہم nth صف تک پہنچنے تک. تو پھر، کیا میں nth صف کے لئے تم سے پوچھنا، ہم کتنے hashes ضرورت کے لئے جا رہے ہیں اور کتنے خالی جگہوں؟ تو یہ ایک معلوم کرنا آپ پر منحصر ہے کتنے hashes کی نمائندگی کرنے کے فارمولے اور کتنے خالی جگہوں کے لئے کی ضرورت ہے آپ کو کچھ اونچائی ہے جب nth صف. اب آپ کو اس باہر figuring کر رہے ہیں جب، احتیاط سے آپ تخکرمن رہے ہیں کس طرح کیا جائے. کیا میں اس کی طرف سے مطلب ہے کہ روزمرہ کی زندگی ہم سب کے اندر 1 کی طرف سے عام طور پر، گنتی شروع. لیکن CS50 میں اور کمپیوٹر سائنس میں عام طور پر، ہم 0 حساب سے ترتیب ہیں. تو سب سے پہلے قطار ہو گی 0 N 1 کے طور پر مخالفت. تم ہو جب اس کا محتاط رہیں آپ کے پیٹرن پتہ کرنے کی کوشش. تو اب کس طرح کرنے کے لئے واپس جانے دیا ہم اپنے پرامڈ اپنی طرف متوجہ کرنے کے لئے جا رہے ہیں. ہر صف کے لئے، ہم کرنا چاہتے ہیں جا رہے ہیں ، خالی جگہوں کو پرنٹ hashes کو پرنٹ، اور پھر ایک نئی سطر میں پرنٹ. یہاں اشارہ ہے ہر صف "کے لئے" لفظ. C میں، ہم نے ایک تعمیر ہے لوپ کے لئے ایک بلایا، ایک پر مشتمل ہے جس میں ابتدا، حالت، ایک اپ ڈیٹ، اور لوپ کے جسم. میں کہنا چاہتا تھا ہیلو کہو دنیا، 50 مرتبہ، میری لوپ کے لئے کچھ اس طرح نظر آئے گا. میں 0 کے لئے اپنی عددی ابتدا. شرط میں نے 50 سے بھی کم ہے کہ ہے. اور پھر میری ید صرف ہے ایک ہر وقت تک میں نے incrementing کی. ہم نے بھی loops کے لئے استعمال کر سکتے ہیں چیزوں پر iterate. یہاں نوٹس ہمیں نہیں دیکھا کہ مشکل، ایک بڑی تعداد کوڈت بلکہ متغیر رکھ دیا بجائے حالت میں اونچائی. تو میں یہاں کیا کر رہا ہوں میں iterating رہا ہوں کیا ہے پرامڈ کے ہر تنازعہ پر. میں نے ہر ایک کے لئے کچھ کر سکتے ہیں میرے لوپ کے جسم کے اندر قطار. ہم اندر کیا کر رہے ہیں لوپ کے جسم؟ ویسے، ہم نے پہلے ہی کہا تھا کہ ہم چھپائی رہے ہیں خالی جگہوں اور ہم hashes کو چھپائی رہے ہیں اور ہم نے ایک نئی لائن چھپائی رہے ہیں. تو لوپ کے لئے اپنے بیرونی اس طرح نظر آئے گا. میں نے ہر صف پر iterate پرامڈ کے، کا استعمال کرتے ہوئے، اس صورت میں، متغیر کے طور پر اونچائی کہ پرامڈ کے عروج ذخیرہ ہے. اس لوپ کے جسم کے اندر، میں ہوں بار بار خالی جگہوں کو پرنٹ کرنے کے لئے جا، تعداد بار بار hashes کو، اور پھر ایک نئی سطر میں پرنٹ. تو اب، تصورات کے تمام کا استعمال کرتے ہوئے میں نے اس واک کے ذریعے میں کے بارے میں بات کی ہے آپ فوری طور پر کرنے کے قابل ہونا چاہئے صارف کی ان پٹ کے لئے،، کہ ان پٹ کی توثیق اور پھر نصف پرامڈ اپنی طرف متوجہ. میرا نام Zamyla ہے، اور اس CS50 ہے.