1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,640 ZAMYLA چان: یہ ایک میں ہوں، کیا Zamyla. 3 00:00:02,640 --> 00:00:06,950 آج، ہم کو لاگو کرنے کے لئے جا رہے ہیں ماریو، ہم ماریو اپنی طرف متوجہ جہاں 4 00:00:06,950 --> 00:00:10,730 اس کے لئے ایک مکمل پرامڈ زیادہ کود کرنے کی. 5 00:00:10,730 --> 00:00:14,430 کی ٹوٹ اس مسئلہ کے لئے ذیلی کاموں. 6 00:00:14,430 --> 00:00:17,930 >> سب سے پہلے، ہم صارف کو فوری طور کرنا چاہتے ہیں پرامڈ کی اونچائی کے لئے. 7 00:00:17,930 --> 00:00:20,510 اور پھر ہم اس بات کو یقینی بنانا چاہتے ہیں کہ اس کی ان پٹ درست ہے. 8 00:00:20,510 --> 00:00:23,280 اور پھر ہم کرنے جا رہے ہیں پرامڈ اپنی طرف متوجہ کرنا چاہتے ہیں. 9 00:00:23,280 --> 00:00:26,850 >> تو فورا بارے میں بات کریں اور صارف کی ان پٹ کی توثیق. 10 00:00:26,850 --> 00:00:29,920 اس طرح کچھ دیکھ سکتا یہ ایک کیا جبکہ ایک لوپ ہے کہ 11 00:00:29,920 --> 00:00:33,250 ایک کے لئے صارف کا اشارہ عددی اور پھر صرف دوہراتا 12 00:00:33,250 --> 00:00:35,700 اس عددی غلط ہے تو. 13 00:00:35,700 --> 00:00:38,220 تو اس حالت میں کیا ہونا چاہئے؟ 14 00:00:38,220 --> 00:00:40,630 >> اس کے لئے، اور کے پیچھے چلتے ہیں تفصیلات کے. 15 00:00:40,630 --> 00:00:46,240 ویسے، رپورٹ کسی بھی درست ہے کہ ہمیں بتاتا ہے اونچائی، 0 اور 23 کے درمیان ہونے جا رہا ہے 16 00:00:46,240 --> 00:00:47,350 شامل ہوں. 17 00:00:47,350 --> 00:00:51,400 تو پھر اس میں کوئی غلط مطلب یہ ہے کہ اونچائی 0 سے کم ہو جا رہا ہے 18 00:00:51,400 --> 00:00:53,840 یا 23 سے زیادہ. 19 00:00:53,840 --> 00:00:57,220 >> تو اب ہم اس کی معلومات کی ضرورت ہے کہ، کی ہماری حالت کو ڈیزائن کرتے ہیں. 20 00:00:57,220 --> 00:00:59,230 لیکن ہم کو ہوشیار رہنے کی ضرورت ہے، اب ہم ہیں کیونکہ 21 00:00:59,230 --> 00:01:02,130 دو Booleans کے ہم اندازہ چاہتے ہیں کہ. 22 00:01:02,130 --> 00:01:04,150 >> یہاں میں آپ کو فراہم کیا ہے ایک حقیقت کی میز کے ساتھ. 23 00:01:04,150 --> 00:01:07,520 اس سے ہمیں دو لینے کے لئے کی اجازت دیتا ہے Booleans کے، بولین ایک اور دو. 24 00:01:07,520 --> 00:01:13,600 اور ہم یا تو bool1 اندازہ کر سکتے ہیں اور bool2 یا bool1 یا bool2. 25 00:01:13,600 --> 00:01:17,390 >> لہذا کیا فرق ہے درمیان اور اور یا؟ 26 00:01:17,390 --> 00:01:21,810 ویسے، bool1 اور bool2 گے کرنے کے لئے اندازہ صحیح ہے تو صرف اور صرف 27 00:01:21,810 --> 00:01:25,680 اگر دونوں Booleans کے سچے ہیں، یا آپریشن جبکہ 28 00:01:25,680 --> 00:01:30,190 سچ ہو جائے گا یا تو ایک کی تو booleans یا دونوں درست ہیں. 29 00:01:30,190 --> 00:01:33,110 ، اس بات کو ذہن میں کے ساتھ تو آپ پتہ کر سکتے ہیں دیکھنے کے 30 00:01:33,110 --> 00:01:37,460 کیا اس کے لئے مناسب شرط ایک غلط N کے لئے آپ کیا جبکہ ایک لوپ 31 00:01:37,460 --> 00:01:38,850 ہونے جا رہا ہے. 32 00:01:38,850 --> 00:01:43,540 >> اس کے ساتھ، ہم نے حوصلہ افزائی کی اور توثیق کی ہے پرامڈ کے عروج کے صارف 33 00:01:43,540 --> 00:01:44,550 وہ چاہتے ہیں کہ. 34 00:01:44,550 --> 00:01:47,740 تو اب، یہ ہم پر منحصر ہے پرامڈ اپنی طرف متوجہ کرنے. 35 00:01:47,740 --> 00:01:50,520 اس لئے مکمل پرامڈ اس مسئلے کو تھوڑا سا نظر آئے گا 36 00:01:50,520 --> 00:01:56,340 اس طرح، ہم ایک بائیں پرامڈ ہے جہاں، کچھ فرق، اور پھر ایک حق پرامڈ. 37 00:01:56,340 --> 00:01:58,630 تو چلو ایک تھوڑا سا اس ٹوٹ. 38 00:01:58,630 --> 00:02:03,510 >> میں نے اپنے ٹیکسٹ ایڈیٹر کے پاس جاؤ، تو یہاں میں نے ہمیں ایک بائیں منسلک پرامڈ تیار کی. 39 00:02:03,510 --> 00:02:05,160 لیکن اس سے کام نہیں چلے گا. 40 00:02:05,160 --> 00:02:10,139 ہم کیا کرنا چاہتے ہیں ہم چاہتے ہے سب سے پہلے ایک دائیں منسلک پرامڈ تخلیق. 41 00:02:10,139 --> 00:02:13,580 تو صرف آگے بڑھانے کے لئے یہ کرنے کی، کی طرف کرنے کے ساتھ ساتھ میری ہیشز، 42 00:02:13,580 --> 00:02:18,240 میں صرف کچھ حروف ڈال کرنے جا رہا ہوں درمیان، صرف ان نقطوں میں. 43 00:02:18,240 --> 00:02:22,560 اس کے بعد میں پر دو ڈال کرنے جا رہا ہوں اگلی لائن، اور یہ کہ ایک لائن میں ایک. 44 00:02:22,560 --> 00:02:26,070 اور اس طرح یہاں میں ایک ہے دائیں منسلک پرامڈ. 45 00:02:26,070 --> 00:02:28,540 >> اس کے بعد میں کرنے جا رہا ہوں اوپر والی لائن پر واپس جانا 46 00:02:28,540 --> 00:02:33,930 اور فرق، میں ڈال دیا جس رپورٹ، دو جگہوں فی، ہے. 47 00:02:33,930 --> 00:02:37,680 پھر میں بھرنے کے لئے جا رہا ہوں پرامڈ کے دوسری طرف. 48 00:02:37,680 --> 00:02:42,030 میں نے دوسری قطار میں جانے کے لئے جا رہا ہوں، لکھ اور فرق کے لئے دو جگہوں پھر دو 49 00:02:42,030 --> 00:02:42,920 ہیشز. 50 00:02:42,920 --> 00:02:47,020 تیسری قطار پر واپس جائیں، دو خالی جگہوں فرق اور تین hashes لئے. 51 00:02:47,020 --> 00:02:51,480 اور آخر میں، دو خالی جگہوں فرق اور چار ہیشز لئے. 52 00:02:51,480 --> 00:02:54,400 تو وہ ایک مکمل کیا پرامڈ کی طرح نظر آئے گا. 53 00:02:54,400 --> 00:02:57,260 >> کورس کے، ہم نہیں چاہتے ہیں راستے میں ان نقطوں. 54 00:02:57,260 --> 00:03:01,220 تو ہم نے ان کی جگہ لے لے کرنے کے لئے جا رہے ہیں میں کچھ خالی جگہ رکھ کر بندیاں. 55 00:03:01,220 --> 00:03:03,720 ایک، دو، پہلی لائن پر تین. 56 00:03:03,720 --> 00:03:05,650 ایک، دوسرے پر دو. 57 00:03:05,650 --> 00:03:08,200 اور تیسری لائن میں ایک. 58 00:03:08,200 --> 00:03:12,060 تو یہ ہم ہیں تو ہم کیا کریں گے ہے صرف ایک مکمل پرامڈ بنانا چاہتے تھے، 59 00:03:12,060 --> 00:03:13,700 ہمارے ٹیکسٹ ایڈیٹر میں، کا کہنا ہے کہ. 60 00:03:13,700 --> 00:03:15,860 >> تو یہ اختیار کرے، نمونوں کو سمجھنے، 61 00:03:15,860 --> 00:03:19,870 اور کچھ pseudocode کو اس کے تبدیل. 62 00:03:19,870 --> 00:03:24,500 پرامڈ کے ہر صف کے لئے، ہم چاہتے ہیں بائیں پرامڈ پرنٹ اور پھر 63 00:03:24,500 --> 00:03:26,580 فرق اور پھر دائیں پرامڈ. 64 00:03:26,580 --> 00:03:30,260 بائیں پرامڈ کے لئے، ہم کو پرنٹ خالی جگہوں کی مطلوبہ رقم، 65 00:03:30,260 --> 00:03:31,740 ہیشز کے بعد کیا. 66 00:03:31,740 --> 00:03:35,030 پھر ہم خلاء، پرنٹ جس صرف دو جگہوں ہر وقت ہے. 67 00:03:35,030 --> 00:03:38,080 اور حق پرامڈ میں، ہم پرنٹ hashes کی مطلوبہ تعداد. 68 00:03:38,080 --> 00:03:41,410 >> دوسری صف کے لئے، ہم سے کئے گئے ایک ہی عین مطابق عمل. 69 00:03:41,410 --> 00:03:44,510 ہم بائیں کے لئے خالی جگہوں کو پرنٹ پرامڈ، مطلوبہ رقم 70 00:03:44,510 --> 00:03:49,930 ہیشز، فرق، دو خالی جگہوں، اور پھر دائیں پرامڈ لئے hashes. 71 00:03:49,930 --> 00:03:52,490 >> کی پیٹرن ٹیکل دو بائیں پرامڈ لئے. 72 00:03:52,490 --> 00:03:55,660 مقاصد کے لئے میں تھا تو، اس مثال کی، بلندی 73 00:03:55,660 --> 00:03:58,790 آٹھ کی طرف سے درخواست صارف، تو میری پہلی صف 74 00:03:58,790 --> 00:04:01,020 سے ایک ہیش اور سات خالی جگہوں ہوگا. 75 00:04:01,020 --> 00:04:03,860 میری دوسری صف پڑے گا دو hashes، چھ خالی جگہوں. 76 00:04:03,860 --> 00:04:06,749 تیسری قطار، تین hashes، پانچ خالی جگہیں. 77 00:04:06,749 --> 00:04:09,040 آپ نے شاید یہ کر سکتے ہیں آٹھ کی بلندی کے لئے اپنے آپ 78 00:04:09,040 --> 00:04:13,470 اور کتنے ہر صف کے لئے اس بات کا تعین hashes اور کس طرح بہت سے خالی جگہوں کو آپ کی ضرورت ہے. 79 00:04:13,470 --> 00:04:16,209 لیکن جو ہم کرنا چاہتے ہیں ہے ہم اس کے خلاصہ کے لئے چاہتے ہیں. 80 00:04:16,209 --> 00:04:22,660 لہذا میں کسی بھی nth صف کس طرح بہت سے، کے لئے تم سے پوچھنا hashes اور ہم کس طرح بہت سے خالی جگہوں کی ضرورت ہے؟ 81 00:04:22,660 --> 00:04:25,410 >> اب، جیسا کہ آپ کا تعین کتنے hashes لئے پیٹرن 82 00:04:25,410 --> 00:04:29,920 اور کس طرح بہت سے خالی جگہوں کو آپ کے لئے کی ضرورت ہے ایک دیئے اونچائی کے لئے کسی بھی nth صف، 83 00:04:29,920 --> 00:04:32,910 ہوشیار رہنے کی یاد کس طرح آپ کو تخکرمن رہے. 84 00:04:32,910 --> 00:04:37,160 کیا میں اس کی طرف سے مطلب روزمرہ میں کہ ہے زندگی ہم میں سے اکثر ایک کی طرف سے گنتی شروع. 85 00:04:37,160 --> 00:04:39,680 تو سب سے پہلے صفیں ایک ہو گا. 86 00:04:39,680 --> 00:04:43,620 دوسری قطار صف ہو گی نمبر دو، تو اور تو آگے. 87 00:04:43,620 --> 00:04:47,620 >> لیکن کمپیوٹر سائنس میں اور CS50، ہم صفر حساب سے ترتیب کر رہے ہیں. 88 00:04:47,620 --> 00:04:50,750 تو ہم اصل میں صفر پر گنتی شروع. 89 00:04:50,750 --> 00:04:54,020 تو سب سے پہلے قطار گے صف تعداد صفر ہو. 90 00:04:54,020 --> 00:04:56,640 دوسری قطار صف نمبر ایک ہو گا. 91 00:04:56,640 --> 00:05:02,510 اگر تو میں نے آٹھ کی بلندی تھی میری پرامڈ، ن کے اس وقت کے آخری قیمت 92 00:05:02,510 --> 00:05:05,850 اصل میں سات اور آٹھ ہو جائے گا. 93 00:05:05,850 --> 00:05:07,010 >> لہذا اس کے بارے میں ہوشیار رہنا. 94 00:05:07,010 --> 00:05:10,750 اور تم تعین کرنے کر رہے ہیں جب آگاہ رہیں آپ کے پیٹرن ہے کہ آیا آپ صفر حساب سے ترتیب 95 00:05:10,750 --> 00:05:12,360 یا ایک حساب سے ترتیب 96 00:05:12,360 --> 00:05:13,070 >> ٹھیک ہے. 97 00:05:13,070 --> 00:05:15,380 تو اب ہم ہے کہ بائیں پرامڈ لئے پیٹرن، 98 00:05:15,380 --> 00:05:18,650 ہم اس بات کا تعین کرنے کی ضرورت ہے فرق کے لئے پیٹرن. 99 00:05:18,650 --> 00:05:20,480 خوش قسمتی سے، یہ واقعی آسان ہے. 100 00:05:20,480 --> 00:05:22,690 یہ صرف ہمیشہ دو خالی جگہ ہے. 101 00:05:22,690 --> 00:05:25,240 >> تو اب ہم حق پیٹرن کے لئے آگے بڑھنے. 102 00:05:25,240 --> 00:05:27,220 پہلی صف سے ایک ہیش پڑے گا. 103 00:05:27,220 --> 00:05:28,640 دوسری صف، دو. 104 00:05:28,640 --> 00:05:29,530 تیسری قطار، تین. 105 00:05:29,530 --> 00:05:30,790 تو اور تو آگے. 106 00:05:30,790 --> 00:05:35,540 تو ایک بار پھر، کوئی بھی تجریدی لئے تعین (ن) اور کتنے hashes کسی بھی اونچائی 107 00:05:35,540 --> 00:05:38,810 اور کتنے خالی جگہیں ہر صف کے لئے ہونا چاہئے. 108 00:05:38,810 --> 00:05:39,700 >> ٹھیک ہے. 109 00:05:39,700 --> 00:05:45,050 تو ہم جانتے ہیں کہ ہر صف کے لئے ہم کچھ عمل کرنے کی ضرورت ہے. 110 00:05:45,050 --> 00:05:46,600 ہم کہ کس طرح کروں؟ 111 00:05:46,600 --> 00:05:50,440 ٹھیک ہے، ہم لوپ کی تعمیر کے لئے استعمال، ایک ابتدا پر مشتمل، 112 00:05:50,440 --> 00:05:52,310 ایک شرط، اور ایک اپ ڈیٹ. 113 00:05:52,310 --> 00:05:54,830 loops کے لئے استعمال کیا جا سکتا عمل دہرانے کے لئے. 114 00:05:54,830 --> 00:05:59,610 >> لہذا، میں نے اسے خوش کہنا چاہتے ہیں ، پھر میرے لوپ کے لئے دنیا کے 50 گنا 115 00:05:59,610 --> 00:06:03,510 کچھ اس طرح نظر آئے گا، جہاں میں صفر کرنے کے لئے میری متغیر ابتدا. 116 00:06:03,510 --> 00:06:06,200 شرط میں نے 50 سے بھی کم ہے کہ ہے. 117 00:06:06,200 --> 00:06:09,670 اور پھر اپ ڈیٹ یہ ہے کہ ایک ہر وقت کی طرف دھیرے بڑھتا. 118 00:06:09,670 --> 00:06:14,700 لہذا اس کے لئے ہو گا کیا کریں گے ایک قطار میں خوش دنیا 50 گنا پرنٹ،. 119 00:06:14,700 --> 00:06:18,080 >> اب، میں iterate کے لئے کرنا چاہتا تھا کا کہنا ہے کہ پرامڈ کے عروج سے زیادہ. 120 00:06:18,080 --> 00:06:21,560 اس کے بعد اس کی بجائے مشکل کوڈنگ کے حالت میں کچھ قدر، 121 00:06:21,560 --> 00:06:23,280 میں نے صرف متغیر اونچائی کا استعمال. 122 00:06:23,280 --> 00:06:27,180 تو یہ کیا کریں گے میں iterate ہے اونچائی ہر صف سے زیادہ. 123 00:06:27,180 --> 00:06:30,280 اور میں اندر کچھ کر سکتے ہیں اس لوپ کے جسم کے. 124 00:06:30,280 --> 00:06:32,710 >> ہم کیا چاہتے ہو لوپ کے جسم کے اندر؟ 125 00:06:32,710 --> 00:06:36,550 ویسے، ہم نے پہلے اشارہ کے طور پر، ہم چاہتے ہیں خالی جگہوں اور hashes کو پرنٹ کرنے کے لئے 126 00:06:36,550 --> 00:06:40,730 بائیں پرامڈ اور پھر پرنٹ کے لئے دو جگہوں اور پھر hashes کو پرنٹ. 127 00:06:40,730 --> 00:06:42,500 تو ہم نے پہلے ہی کہ باہر سوچا ہے. 128 00:06:42,500 --> 00:06:45,670 تو ہم کو بھرنے کے لئے شروع کر سکتے ہیں ہمارے پروگرام میں ایک سے زیادہ بہت. 129 00:06:45,670 --> 00:06:49,850 >> یہاں میں نے لوپ کے لئے ایک بیرونی ہے کہ پرامڈ میں ہر صف سے زیادہ iterates. 130 00:06:49,850 --> 00:06:53,340 اور یہ کہ جسم کے اندر جا رہا ہوں خالی جگہوں کو بار بار پرنٹ کرنے کے لئے، 131 00:06:53,340 --> 00:06:56,860 بار بار hashes کو، اور اس کے بعد کے فرق، اور پھر دائیں پرامڈ لئے hashes، 132 00:06:56,860 --> 00:07:00,440 اور اس کے بعد، آخر میں، ایک نئی اگلی صف شروع کرنے کے لئے لائن. 133 00:07:00,440 --> 00:07:02,860 >> اس کے ساتھ، ہم نے حوصلہ افزائی کی ہے ان پٹ کے لئے صارف. 134 00:07:02,860 --> 00:07:04,510 ہم اسے درست ہے اس بات کو یقینی بنایا ہے. 135 00:07:04,510 --> 00:07:06,280 اور پھر ہم پرامڈ تیار کی ہے. 136 00:07:06,280 --> 00:07:09,540 تو ماریو کامیابی سے کر سکتے ہیں اہرام چڑھنے. 137 00:07:09,540 --> 00:07:10,970 >> میرا نام Zamyla ہے. 138 00:07:10,970 --> 00:07:13,840 اور اس CS50 ہے. 139 00:07:13,840 --> 00:07:15,419