1 00:00:00,000 --> 00:00:07,800 2 00:00:07,800 --> 00:00:10,190 >> ZAMYLA: سمجھنے کے لئے تکرار، تو آپ لازمی 3 00:00:10,190 --> 00:00:13,820 پہلے تکرار سمجھ. 4 00:00:13,820 --> 00:00:17,280 پروگرام ڈیزائن کے ذرائع میں تکرار ہو رہی ہے آپ خود referential ہے 5 00:00:17,280 --> 00:00:18,570 تعریف. 6 00:00:18,570 --> 00:00:21,520 پنراورتی ڈیٹا ڈھانچے، مثال کے طور پر، ڈیٹا ڈھانچے ہیں 7 00:00:21,520 --> 00:00:23,990 میں خود بھی شامل ہیں ان کی تعریف. 8 00:00:23,990 --> 00:00:27,160 لیکن آج، ہم توجہ مرکوز کرنے جا رہے ہیں پنراورتی افعال پر. 9 00:00:27,160 --> 00:00:31,160 >> ، افعال آدانوں کو یاد ہوگا کہ دلائل، اور ایک قیمت واپس ان 10 00:00:31,160 --> 00:00:34,480 کی طرف سے نمائندگی کی پیداوار یہاں اس آریھ. 11 00:00:34,480 --> 00:00:38,060 ہم جسم کے طور پر باکس کے بارے میں سوچتے ہوں گے سیٹ پر مشتمل تقریب، 12 00:00:38,060 --> 00:00:42,340 تشریح ہدایات کی ہے کہ ان پٹ اور ایک پیداوار فراہم. 13 00:00:42,340 --> 00:00:45,660 جسم کے اندر ایک قریب سے دیکھو لے تقریب میں کالوں کو ظاہر کر سکتا 14 00:00:45,660 --> 00:00:47,430 دوسرے افعال کے ساتھ ساتھ. 15 00:00:47,430 --> 00:00:51,300 اس سادہ تقریب، FOO، لے ان پٹ کے طور پر ایک ہی سٹرنگ لیتا ہے اور 16 00:00:51,300 --> 00:00:54,630 پرنٹ کس طرح بہت سے خطوط اس سٹرنگ ہے. 17 00:00:54,630 --> 00:00:58,490 سٹرنگ کی لمبائی کے لئے تقریب strlen کی،، جن کی پیداوار ہے، کہا جاتا ہے 18 00:00:58,490 --> 00:01:01,890 printf پر کال کے لئے کی ضرورت ہے. 19 00:01:01,890 --> 00:01:05,770 >> اب، کیا ایک پنراورتی تقریب کرتا ہے خصوصی خود کہتے ہیں یہ ہے کہ. 20 00:01:05,770 --> 00:01:09,610 ہم اس پنراورتی نمائندگی کر سکتے ہیں یہ سنتری تیر کے ساتھ کال 21 00:01:09,610 --> 00:01:11,360 واپس خود looping کے. 22 00:01:11,360 --> 00:01:15,630 لیکن پھر خود قتل ہوگی دوسرے پنراورتی کال کرنے، اور 23 00:01:15,630 --> 00:01:17,150 دوسرے اور دوسرے. 24 00:01:17,150 --> 00:01:19,100 لیکن پنراورتی افعال لامحدود نہیں ہو سکتا. 25 00:01:19,100 --> 00:01:23,490 وہ کسی نہ کسی طرح ختم کرنے کے لئے ہے، یا آپ پروگرام ہمیشہ کے لئے چلا جائے گا. 26 00:01:23,490 --> 00:01:27,680 >> تو ہم کو توڑنے کے لئے ایک راستہ تلاش کرنے کی ضرورت ہے پنراورتی کالوں سے باہر. 27 00:01:27,680 --> 00:01:29,900 ہم بنیاد کیس کہتے ہیں. 28 00:01:29,900 --> 00:01:33,570 بنیاد کیس حالت سے ملاقات کی ہے تو، تقریب کے بغیر واپس 29 00:01:33,570 --> 00:01:34,950 دوسرے پنراورتی کال. 30 00:01:34,950 --> 00:01:39,610 ایک صفر کی تقریب، ہیلو، اس تقریب لے لو اس ان پٹ کے طور پر ایک int ن لیتا ہے. 31 00:01:39,610 --> 00:01:41,260 بنیاد کیس پہلے آتا ہے. 32 00:01:41,260 --> 00:01:46,220 ن صفر سے بھی کم، پرنٹ الوداع اور ہے دیگر تمام معاملات کے لئے واپس، 33 00:01:46,220 --> 00:01:49,400 تقریب ہیلو پرنٹ اور عملدرآمد کرے گا پنراورتی کال. 34 00:01:49,400 --> 00:01:53,600 کے ساتھ تقریب ہیلو ایک اور کال ایک decremented ان پٹ قیمت. 35 00:01:53,600 --> 00:01:56,790 >> اب، ہم، ہیلو پرنٹ اگرچہ تقریب ختم نہیں کریں گے ہم جب تک 36 00:01:56,790 --> 00:02:00,370 اس کی واپسی کی قسم کو واپس، اس صورت باطل میں. 37 00:02:00,370 --> 00:02:04,830 تو ہر ن بنیاد کیس کے مقابلے میں دوسرے کے لئے، اس تقریب ہیلو ہیلو واپس آ جائیں گے 38 00:02:04,830 --> 00:02:06,890 (ن) کے مائنس 1. 39 00:02:06,890 --> 00:02:10,050 اس تقریب اگرچہ باطل ہے، ہم واضح طور پر یہاں واپسی کی قسم نہیں کرے گا. 40 00:02:10,050 --> 00:02:12,000 ہم صرف تقریب کو پھانسی دیں گے. 41 00:02:12,000 --> 00:02:16,960 تو ہیلو بلا (3) ہیلو پرنٹ اور ہیلو (2) (1) ایک ہیلو executes ہے جس پر عمل 42 00:02:16,960 --> 00:02:20,560 ہیلو executes ہے جس میں (0)، جہاں بنیاد کیس حالت سے ملاقات کی ہے. 43 00:02:20,560 --> 00:02:24,100 تو ہیلو (0) الوداع پرنٹ اور واپسی. 44 00:02:24,100 --> 00:02:24,990 >> ٹھیک ہے. 45 00:02:24,990 --> 00:02:28,690 تو اب ہم کی بنیادی باتیں سمجھتے ہیں کہ انہوں نے کی ضرورت ہے کہ پنراورتی کام کرتا ہے، 46 00:02:28,690 --> 00:02:32,730 کم از کم ایک بنیاد کیس کے ساتھ ساتھ ایک پنراورتی کال، ایک پر منتقل 47 00:02:32,730 --> 00:02:34,120 زیادہ بامعنی مثال کے طور پر. 48 00:02:34,120 --> 00:02:37,830 صرف واپس نہیں کرتا ہے کہ ایک کوئی بات نہیں ہے کیا باطل. 49 00:02:37,830 --> 00:02:41,340 >> کی جز ضربیہ پر ایک نظر ڈالیں آپریشن میں سب سے زیادہ استعمال 50 00:02:41,340 --> 00:02:43,660 امکانات کے حساب. 51 00:02:43,660 --> 00:02:48,120 (ن) کے جز ضربیہ ہر کی پیداوار ہے سے مثبت عدد صحیح کم 52 00:02:48,120 --> 00:02:49,400 اور (ن) کے برابر. 53 00:02:49,400 --> 00:02:56,731 تو جز ضربیہ پانچ 5 مرتبہ 4 گنا ہے 3 بار 2 بار 1 120 دینے کے لئے. 54 00:02:56,731 --> 00:03:01,400 چار جز ضربیہ 4 اوقات 3 بار ہے 2 بار 1 24 دینے کے لئے. 55 00:03:01,400 --> 00:03:04,910 اور اسی اصول کا اطلاق ہوتا ہے کسی بھی مثبت عدد صحیح کرنے کے لئے. 56 00:03:04,910 --> 00:03:08,670 >> تو ہم کس طرح ایک پنراورتی لکھنے سکتا ہے جز ضربیہ حساب لگاتا ہے کہ تقریب 57 00:03:08,670 --> 00:03:09,960 ایک بڑی تعداد کی؟ 58 00:03:09,960 --> 00:03:14,700 ٹھیک ہے، ہم دونوں کی شناخت کے لئے کی ضرورت ہو گی بنیاد کیس اور پنراورتی کال. 59 00:03:14,700 --> 00:03:18,250 پنراورتی کال ہی ہو جائے گا بیس کے علاوہ تمام مقدمات کے لئے 60 00:03:18,250 --> 00:03:21,420 کیس، جو ہم کرنا پڑے گا مطلب یہ ہے کہ ہمیں دے گا کہ ایک پیٹرن کو تلاش ہماری 61 00:03:21,420 --> 00:03:23,350 مطلوبہ نتائج. 62 00:03:23,350 --> 00:03:30,270 >> یہ مثال کے طور، کس طرح 5 جز ضربیہ دیکھ 1 2 3 4 ضرب شامل 63 00:03:30,270 --> 00:03:33,010 اور یہ کہ بہت ہی ضرب ، یہاں پایا جاتا ہے 64 00:03:33,010 --> 00:03:35,430 4 جز ضربیہ کی تعریف. 65 00:03:35,430 --> 00:03:39,810 تو ہم 5 جز ضربیہ ہے دیکھتے ہیں کہ صرف 5 بار 4 جز ضربیہ. 66 00:03:39,810 --> 00:03:43,360 اب اس پیٹرن کا اطلاق ہوتا ہے 4 کے ساتھ ساتھ جز ضربیہ؟ 67 00:03:43,360 --> 00:03:44,280 جی ہاں. 68 00:03:44,280 --> 00:03:49,120 ہم 4 جز ضربیہ پر مشتمل ہے کو دیکھنے کے ضرب 3 بار 2 بار 1، 69 00:03:49,120 --> 00:03:51,590 3 جز ضربیہ کے طور پر بہت ہی تعریف. 70 00:03:51,590 --> 00:03:56,950 تو 4 جز ضربیہ 4 بار 3 کے برابر ہے جز ضربیہ، اور تو اور تو آگے ہمارے 71 00:03:56,950 --> 00:04:02,170 پیٹرن 1 جز ضربیہ، جب تک چپک جس تعریف کی طرف سے 1 کے برابر ہے. 72 00:04:02,170 --> 00:04:04,950 >> کوئی دوسرے مثبت ہے integers کے چھوڑ دیا. 73 00:04:04,950 --> 00:04:07,870 تو ہم نے کے لئے پیٹرن ہے ہمارے پنراورتی کال. 74 00:04:07,870 --> 00:04:13,260 ن جز ضربیہ (ن) کے اوقات کے برابر ہے (ن) کے جز ضربیہ مائنس 1. 75 00:04:13,260 --> 00:04:14,370 اور ہماری بنیاد کیس؟ 76 00:04:14,370 --> 00:04:17,370 یہ صرف ہماری تعریف ہو جائے گا 1 جز ضربیہ کی. 77 00:04:17,370 --> 00:04:19,995 >> تو اب ہم تحریری طور پر منتقل کر سکتے تقریب کے لئے کوڈ. 78 00:04:19,995 --> 00:04:24,110 بنیاد کیس کے لئے، ہم پڑے گا حالت ن برابر 1، برابر جہاں 79 00:04:24,110 --> 00:04:25,780 ہم 1 واپس آ جائیں گے. 80 00:04:25,780 --> 00:04:29,280 اس کے بعد پنراورتی کال پر آگے بڑھ رہے ہیں، ہم (ن) بار واپس آ جائیں گے 81 00:04:29,280 --> 00:04:32,180 (ن) کے جز ضربیہ مائنس 1. 82 00:04:32,180 --> 00:04:33,590 >> اب یہ ہمارے ٹیسٹ ہیں. 83 00:04:33,590 --> 00:04:35,900 کی جز ضربیہ 4 کوشش کریں. 84 00:04:35,900 --> 00:04:39,420 ہمارے تقریب فی برابر ہے 4 بار جز ضربیہ (3). 85 00:04:39,420 --> 00:04:43,040 جز ضربیہ (3) کے برابر ہے 3 بار جز ضربیہ (2). 86 00:04:43,040 --> 00:04:48,700 جز ضربیہ (2) 2 مرتبہ کے برابر ہے جز ضربیہ (1)،، جس میں 1 واپس. 87 00:04:48,700 --> 00:04:52,490 جز ضربیہ (2) اب 2 بار 1، 2 واپس. 88 00:04:52,490 --> 00:04:55,960 جز ضربیہ (3) اب واپس آ سکتے ہیں 3 بار 2، 6. 89 00:04:55,960 --> 00:05:02,490 اور آخر میں، جز ضربیہ (4) 4 بار 6، 24 واپس. 90 00:05:02,490 --> 00:05:06,780 >> آپ کو کسی بھی دشواری کا سامنا کر رہے ہیں پنراورتی کال کے ساتھ، دکھاوا ہے کہ 91 00:05:06,780 --> 00:05:09,660 تقریب میں پہلے ہی کام کرتا ہے. 92 00:05:09,660 --> 00:05:13,450 کیا میں اس کی طرف سے مطلب ہے، آپ کو کرنا چاہئے کہ واپس کرنے کے لئے آپ پنراورتی کالوں پر اعتماد 93 00:05:13,450 --> 00:05:15,100 صحیح اقدار. 94 00:05:15,100 --> 00:05:18,960 مثال کے طور پر، میں جانتا ہوں کہ اگر جز ضربیہ (5) 5 گنا کے برابر ہے 95 00:05:18,960 --> 00:05:24,870 جز ضربیہ (4)، میں نے اس پر بھروسہ کرنے جا رہا ہوں جز ضربیہ (4) میرے 24 دے گا. 96 00:05:24,870 --> 00:05:28,510 اگر آپ، ایک متغیر کے طور پر سوچ گا، آپ نے پہلے ہی وضاحت کی گئی ہے کے طور پر اگر 97 00:05:28,510 --> 00:05:30,070 جز ضربیہ (4). 98 00:05:30,070 --> 00:05:33,850 تو کسی بھی جز ضربیہ کے لئے (ن)، یہ ہے (ن) کے مصنوعات اور 99 00:05:33,850 --> 00:05:35,360 گزشتہ جز ضربیہ. 100 00:05:35,360 --> 00:05:38,130 اور یہ گزشتہ جز ضربیہ بلا کی طرف سے حاصل کی جاتی ہے 101 00:05:38,130 --> 00:05:41,330 (ن) کے جز ضربیہ مائنس 1. 102 00:05:41,330 --> 00:05:45,130 >> آپ کو نافذ کر سکتے ہیں، اب دیکھنا پنراورتی اپنے آپ کو کام. 103 00:05:45,130 --> 00:05:50,490 آپ کے ٹرمنل اپ لوڈ، یا run.cs50.net، اور ایک تقریب رقم لکھنا 104 00:05:50,490 --> 00:05:54,770 کہ ایک عددی ن لیتا ہے اور واپس تمام مسلسل مثبت کی رقم 105 00:05:54,770 --> 00:05:57,490 (ن) کی طرف سے 1 integers کے. 106 00:05:57,490 --> 00:06:01,000 میں کچھ کی رقم باہر لکھا ہے آپ کی مدد کرنے کی اقدار ہماری. 107 00:06:01,000 --> 00:06:04,030 سب سے پہلے، اعداد و شمار بنیاد کیس حالت. 108 00:06:04,030 --> 00:06:06,170 اس کے بعد، رقم پر نظر ڈالیں (5). 109 00:06:06,170 --> 00:06:09,270 آپ کی شرائط میں یہ اظہار کر سکتے ہیں ایک اور رقم کا؟ 110 00:06:09,270 --> 00:06:11,290 اب، کیا رقم کے بارے میں (4)؟ 111 00:06:11,290 --> 00:06:15,630 تم کس طرح رقم اظہار کر سکتے ہیں (4) ایک اور رقم کے معاملے میں؟ 112 00:06:15,630 --> 00:06:19,655 >> آپ کی رقم ایک بار جب (5) اور رقم (4) دیگر رقوم کی شرائط میں کا اظہار کیا، دیکھ 113 00:06:19,655 --> 00:06:22,970 اگر آپ کو ایک کی شناخت کر سکتے ہیں رقم (ن) کے لئے پیٹرن. 114 00:06:22,970 --> 00:06:26,190 اگر نہیں، چند دوسرے نمبر کی کوشش اور ان کی رقوم میں اظہار 115 00:06:26,190 --> 00:06:28,410 ایک اور تعداد کے لحاظ سے. 116 00:06:28,410 --> 00:06:31,930 مجرد کے لئے] شناخت کی طرف سے تعداد، آپ کو اپنے راستے پر اچھی طرح سے کر رہے ہیں 117 00:06:31,930 --> 00:06:34,320 کسی ن کے پیٹرن کی شناخت. 118 00:06:34,320 --> 00:06:38,040 >> تکرار ایک بہت طاقتور آلہ ہے، تو یقینا یہ ان تک محدود نہیں ہے 119 00:06:38,040 --> 00:06:39,820 حساب کا کام کرتا ہے. 120 00:06:39,820 --> 00:06:44,040 تکرار بہت مؤثر طریقے سے استعمال کیا جا سکتا مثال کے طور پر درخت کے ساتھ نمٹنے جب. 121 00:06:44,040 --> 00:06:47,210 ایک کے لئے درختوں پر مختصر چیک کریں زیادہ مکمل جائزہ لینے، لیکن اب کے لئے 122 00:06:47,210 --> 00:06:51,140 میں، کہ بائنری تلاش درخت یاد خاص طور پر، ہر، مراکز کی بنا رہے ہیں 123 00:06:51,140 --> 00:06:53,820 ایک قیمت اور دو نوڈ اشارہ کے ساتھ. 124 00:06:53,820 --> 00:06:57,270 عام طور پر، اس کی طرف سے نمائندگی کی ہے ایک لائن کی طرف اشارہ ہونے کے والدین کی نوڈ 125 00:06:57,270 --> 00:07:01,870 بائیں بچے نوڈ اور ایک صحیح بچے نوڈ. 126 00:07:01,870 --> 00:07:04,510 ایک بائنری تلاش کی ساخت درخت کے ساتھ ساتھ خود کو ڈھال لیتا 127 00:07:04,510 --> 00:07:05,940 ایک پنراورتی تلاش. 128 00:07:05,940 --> 00:07:09,730 پنراورتی کال یا تو گزر جاتا ہے بائیں یا دائیں نوڈ، لیکن زیادہ 129 00:07:09,730 --> 00:07:10,950 درخت مختصر میں اس کی. 130 00:07:10,950 --> 00:07:15,690 >> تم پر ایک کارروائی انجام دینے کے لئے چاہتے ہیں ایک بائنری درخت میں ہر ایک نوڈ. 131 00:07:15,690 --> 00:07:17,410 تم کس طرح اس کے بارے میں جانے کے لئے ہو سکتا ہے؟ 132 00:07:17,410 --> 00:07:20,600 ٹھیک ہے، اگر آپ کو ایک پنراورتی لکھ سکتے تھے آپریشن کارکردگی کا مظاہرہ اس تقریب 133 00:07:20,600 --> 00:07:24,450 والدین کی نوڈ پر ایک پنراورتی کرتا ہے ایک ہی تقریب کو فون، 134 00:07:24,450 --> 00:07:27,630 بائیں میں گزر صحیح بچے نوڈس. 135 00:07:27,630 --> 00:07:31,650 مثال کے طور پر، اس تقریب، FOO، کہ ایک دیا نوڈ کی قدر اور تبدیلیاں 136 00:07:31,650 --> 00:07:33,830 1 اس کے بچوں کے تمام. 137 00:07:33,830 --> 00:07:37,400 شہوت انگیز null نوڈ وجوہات کی بنیاد کیس تقریب کا اشارہ، واپس کرنے کے لئے 138 00:07:37,400 --> 00:07:41,290 کسی بھی نوڈس نہیں ہیں اس ذیلی درخت میں چھوڑ دیا. 139 00:07:41,290 --> 00:07:42,620 >> کی اس کے ذریعے چل دو. 140 00:07:42,620 --> 00:07:44,340 سب سے پہلے والدین کی 13 ہے. 141 00:07:44,340 --> 00:07:47,930 ہم 1 قدر تبدیل، اور پھر فون ہمارے گھر کے صفحے پر تقریب کے طور پر اچھی طرح سے 142 00:07:47,930 --> 00:07:49,600 حق کے طور پر. 143 00:07:49,600 --> 00:07:53,910 تقریب، FOO، بائیں پر کہا جاتا ہے سب سے پہلے ذیلی درخت، تو بائیں نوڈ 144 00:07:53,910 --> 00:07:57,730 1 اور FOO میں دوبارہ تعینات ہو جائے گا اس نوڈ کے بچوں پر بلایا جائے، 145 00:07:57,730 --> 00:08:01,900 سب سے پہلے بائیں اور پھر دائیں، اور تو اور تو آگے. 146 00:08:01,900 --> 00:08:05,630 اور شاخوں کی ضرورت نہیں ہے ان سے کہو کہ کسی بھی زیادہ بچوں کو ایک ہی عمل 147 00:08:05,630 --> 00:08:09,700 حق کے بچوں کے لئے جاری رہے گی پورے درخت کی نوڈس تک 148 00:08:09,700 --> 00:08:11,430 1 میں دوبارہ تعینات کیا. 149 00:08:11,430 --> 00:08:15,390 >> آپ دیکھ سکتے ہیں، آپ کو محدود نہیں کر رہے ہیں صرف ایک پنراورتی کال. 150 00:08:15,390 --> 00:08:17,930 کام ہو جائے گا کے طور پر بہت سے. 151 00:08:17,930 --> 00:08:21,200 آپ کو ایک درخت تھا تو جہاں ہر نوڈ کے تین بچے تھے، 152 00:08:21,200 --> 00:08:23,100 بائیں، مشرق، اور ٹھیک ہے؟ 153 00:08:23,100 --> 00:08:24,886 تم کس طرح FOO کو ترمیم کریں گے؟ 154 00:08:24,886 --> 00:08:25,860 ٹھیک ہے، سادہ. 155 00:08:25,860 --> 00:08:30,250 صرف ایک پنراورتی کال شامل کریں اور مشرق نوڈ پوائنٹر میں منتقل. 156 00:08:30,250 --> 00:08:34,549 >> تکرار بہت طاقتور اور نہیں ہے خوبصورت ذکر، لیکن یہ ایک ہو سکتا ہے 157 00:08:34,549 --> 00:08:38,010 سب سے پہلے میں مشکل تصور، تو ہو مریض اور اپنا وقت لے. 158 00:08:38,010 --> 00:08:39,370 بنیاد کیس کے ساتھ شروع کریں. 159 00:08:39,370 --> 00:08:42,650 یہ عام طور پر شناخت کرنے کے لئے سب سے آسان ہے، اور پھر آپ کو کام کر سکتے ہیں 160 00:08:42,650 --> 00:08:43,830 پیچھے وہاں سے. 161 00:08:43,830 --> 00:08:46,190 آپ تک پہنچنے کے لئے کی ضرورت ہے آپ کی بنیاد کیس، تو اس کی طاقت 162 00:08:46,190 --> 00:08:47,760 آپ کو کچھ اشارے دے. 163 00:08:47,760 --> 00:08:53,120 میں ایک مخصوص کیس کا اظہار کرنے کی کوشش کریں دیگر مقدمات کی شرائط، یا ذیلی سیٹ میں. 164 00:08:53,120 --> 00:08:54,700 >> اس مختصر دیکھ کر کے لئے شکریہ. 165 00:08:54,700 --> 00:08:58,920 بہت کم سے کم، اب آپ کر سکتے ہیں اس طرح کے مذاق کو سمجھنے کی. 166 00:08:58,920 --> 00:09:01,250 میرا نام کیا Zamyla ہے، اور اس CS50 ہے. 167 00:09:01,250 --> 00:09:04,306 168 00:09:04,306 --> 00:09:07,170 >> ہیلو، اس تقریب کو لے لو، ایک لیتا ہے کہ صفر کی تقریب 169 00:09:07,170 --> 00:09:09,212 ایک int، ن، ان پٹ کے طور پر. 170 00:09:09,212 --> 00:09:11,020 بنیاد کیس پہلے آتا ہے. 171 00:09:11,020 --> 00:09:14,240 ن 0 سے کم، پرنٹ ہے تو "الوداع" اور واپسی. 172 00:09:14,240 --> 00:09:15,490