1 00:00:00,000 --> 00:00:00,309 2 00:00:00,309 --> 00:00:02,350 [؟ DAN ARMADARAS؟] ہیلو، میں [ہوں؟ ڈین Armadaras؟]. 3 00:00:02,350 --> 00:00:04,410 آج، ہم جا رہے ہیں ٹھیک دیکھ کر کیا جائے. 4 00:00:04,410 --> 00:00:06,697 نہ صرف ہم کرنے جا رہے ہیں کچھ تراکیب کے بارے میں بات، 5 00:00:06,697 --> 00:00:09,280 بلکہ ہم پر نظر کرنے جا رہے ہیں خصوصیات میں سے کچھ موجود 6 00:00:09,280 --> 00:00:14,170 اجازت دیتے ہیں کہ CS50 IDE کے اندر اندر آپ آسانی سے ایک پروگرام ڈیبگ. 7 00:00:14,170 --> 00:00:16,272 >> صرف ایک مثال غلط جا سکتے ہیں کہ کچھ 8 00:00:16,272 --> 00:00:18,730 اور یہ اصل میں کچھ ہے ہم نے پہلے ہی سے پہلے دیکھا ہے کہ. 9 00:00:18,730 --> 00:00:23,200 اس صورت میں، یہ ایک سی پروگرام ہے کہ، صارف کی طرف سے ایک عددی قبول 10 00:00:23,200 --> 00:00:27,580 دو کی طرف سے تقسیم کرتا ہے اور فراہم کرتا ہے واپس صارف کو پیداوار. 11 00:00:27,580 --> 00:00:30,610 اب ہم نے دیکھا ہے سے پہلے لیکچر میں، 12 00:00:30,610 --> 00:00:34,370 ہم یہ اصل سبب بن جائے گا معلوم ہے کہ تقسیم کے مسائل کی مخصوص اقسام 13 00:00:34,370 --> 00:00:35,860 ہم طاق نمبروں کی ہے جب. 14 00:00:35,860 --> 00:00:40,330 >> خاص طور پر، ہم صرف دور پھینک دونگا دشملو نقطہ کے بعد کچھ. 15 00:00:40,330 --> 00:00:43,170 اب ہم جانتے ہیں کہ اس کیس ہو. 16 00:00:43,170 --> 00:00:47,430 اور ہم نے اسے چلاتے ہیں تو، ہم اس بات کی تصدیق کر سکتے ہیں تالیف کی طرف سے سب سے پہلے ہمارے شکوک و شبہات،،. 17 00:00:47,430 --> 00:00:50,460 اور پھر، چل رہا ہے کی طرف سے اور طاق میں داخل. 18 00:00:50,460 --> 00:00:51,720 >> یہ کوئی نئی بات نہیں ہے. 19 00:00:51,720 --> 00:00:54,490 لیکن یہ اصل میں ایک ہے ایک مسئلے کی مثال ہے کہ 20 00:00:54,490 --> 00:00:58,810 ایک بڑی پروگرام کے اندر اندر موجود کر سکتے ہیں اس کو ٹریک کرنے کے لئے مشکل ہو جاتا ہے. 21 00:00:58,810 --> 00:01:02,640 ہم کیا مسئلہ اگرچہ ہم جانتے ہیں ، معاملے کی حقیقی بنیادی نکتہ ہے 22 00:01:02,640 --> 00:01:06,250 شناخت کرنے کی کوشش ہو سکتا ہے خاص طور پر جہاں خرابی اس وقت ہوتی، 23 00:01:06,250 --> 00:01:09,750 کیا ہے کہ مسئلہ کی شناخت ہے، اور پھر اس کا تعین. 24 00:01:09,750 --> 00:01:14,400 تو ایک مثال کے طور پر فراہم کرتے ہیں کچھ ہو سکتا ہے کیا 25 00:01:14,400 --> 00:01:19,030 ہم پہلے ہی جانتے ہیں لیکن دفن کیا جا سکتا ہے کوڈ کے دیگر عناصر کے اندر اندر. 26 00:01:19,030 --> 00:01:23,090 >> تو اس دوسرے ذریعہ کھولنے ایک مثال کے طور پر کوڈ فائل، 27 00:01:23,090 --> 00:01:27,165 اس تقسیم مسئلہ ہے ایک بڑی پروگرام کا حصہ. 28 00:01:27,165 --> 00:01:29,040 اب بھی تھوڑا سا ہو سکتا ہے بٹ تدبیر، اور ہم 29 00:01:29,040 --> 00:01:31,076 آسانی سے کرنے کے قابل ہو سکتا ہے خاص طور پر، اس کی شناخت 30 00:01:31,076 --> 00:01:32,450 ہم صرف اس پر بحث کر رہے ہیں. 31 00:01:32,450 --> 00:01:38,250 لیکن ہم یہ ہے کہ پتہ کر سکتے ہیں مسئلہ ایک بڑے پیمانے پر موجود کر سکتے ہیں. 32 00:01:38,250 --> 00:01:45,450 >> اب میں اس مرتب اور تو یہ ایک طاق میں داخل چلانے، 33 00:01:45,450 --> 00:01:49,816 ہم خاص طور پر نہیں ملتا ہے کہ دیکھ سکتے ہیں ہم توقع کر سکتے ہیں اس کی پیداوار. 34 00:01:49,816 --> 00:01:51,690 اس خاص معاملے میں، ہم کہہ سکتے ہیں کہ ہم 35 00:01:51,690 --> 00:01:56,060 تعداد کے شمار کرنے کے لئے چاہتے ہیں ایک سے کچھ مخصوص تعداد کے لئے. 36 00:01:56,060 --> 00:01:58,130 اور اگر ہم دیکھ سکتے ہیں مسائل کی ایک قسم ہے 37 00:01:58,130 --> 00:02:03,880 ہم لکھنا کر رہے ہیں یہاں تو، بس، 0 اور 1 ہم 5 کے ایک ان پٹ فراہم کرتے ہیں جب. 38 00:02:03,880 --> 00:02:07,380 >> تو ہم نے پہلے ہی جانتے ہیں کہ یہاں ایک مسئلہ ہے. 39 00:02:07,380 --> 00:02:11,662 لیکن ہم واضح طور پر معلوم نہیں کر سکتے ہیں جہاں اس معاملے اصل میں موجود. 40 00:02:11,662 --> 00:02:13,620 طریقوں میں سے اب ایک کہ ہم اس کو ٹھیک کرنے کی کوشش کر سکتے ہیں 41 00:02:13,620 --> 00:02:15,745 ہم نے ایسی چیز ہے پہلے سے متعارف کرایا گیا. 42 00:02:15,745 --> 00:02:18,880 ہم صرف ایک بڑے پیمانے پر استعمال کر سکتے. 43 00:02:18,880 --> 00:02:21,680 >> لائن 14 پر، ہم نے اس printf تقریب، 44 00:02:21,680 --> 00:02:25,620 جو ہمیں ریاست باہر پرنٹ کرنے کی اجازت دیتا ہے معلومات کے مختلف ٹکڑے ٹکڑے کر کے. 45 00:02:25,620 --> 00:02:28,880 اور یہ کچھ ہے کہ آپ کو آپ کے پروگرام کے اندر اندر بیعانہ چاہئے 46 00:02:28,880 --> 00:02:33,100 ہے بالکل وہی جو پتہ کرنے کی کوشش کریں کوڈ کے مختلف لائنوں میں ہو. 47 00:02:33,100 --> 00:02:36,350 تو یہ نہیں ہے یہاں تک کہ اگر حتمی نتائج کہ ہم اصل میں 48 00:02:36,350 --> 00:02:39,830 سے باہر پیدا کرنے کے لئے چاہتے ہیں اس پروگرام، ہم اب بھی 49 00:02:39,830 --> 00:02:42,300 کچھ ڈبگ ہو سکتا ہے بیانات ہم کہاں 50 00:02:42,300 --> 00:02:46,970 پتہ لگانے کی کوشش کر سکتے ہیں خاص طور پر کیا اپنے کوڈ کے اندر کیا ہو رہا ہے. 51 00:02:46,970 --> 00:02:51,210 >> تو اس معاملے میں، میں لونگا ڈیبگ ٹیگ کے ساتھ printf. 52 00:02:51,210 --> 00:02:53,540 اس صورت میں، یہ ہے صرف ایک ڈبگ سٹرنگ 53 00:02:53,540 --> 00:02:56,840 میں ڈال تو یہ ہو جاتا ہے کہ ہوں کہ میرا کوڈ کی پیداوار میں بہت واضح 54 00:02:56,840 --> 00:02:59,200 کیا اس میں ظاہر کرنے کے لئے چاہتے ہیں. 55 00:02:59,200 --> 00:03:04,410 نمبر یہاں اور پیداوار ہم حساب ہے. 56 00:03:04,410 --> 00:03:06,800 >> اس صورت میں، میں طاقت خاص طور پر جاننا چاہتا ہوں 57 00:03:06,800 --> 00:03:11,380 جو اس سے پہلے ہو رہا ہے اور کچھ مخصوص حساب کے بعد. 58 00:03:11,380 --> 00:03:16,224 تو میں نے پہلے ایک printf استعمال کر سکتے ہیں اور کوڈ کے اس لائن کے بعد. 59 00:03:16,224 --> 00:03:18,640 اس صورت میں، میں بھی کر سکتا ہوں یہ تھوڑا سا زیادہ واضح کر دینا 60 00:03:18,640 --> 00:03:21,960 پہلے ڈبگ کہہ کر اور ڈبگ اس کے بعد 61 00:03:21,960 --> 00:03:26,540 میں اس کے ساتھ خود کو الجھانے نہیں ہے ایک جیسی نظر آتے ہیں کہ ایک سے زیادہ لائنوں. 62 00:03:26,540 --> 00:03:32,290 >> اب ہم اس اور چلانے تو recompile تو یہ، ایک بار پھر پانچ طرح ایک بڑی تعداد میں داخل 63 00:03:32,290 --> 00:03:35,090 ہم دیکھ سکتے ہیں کہ اب سے پہلے اور بعد کی پیداوار 64 00:03:35,090 --> 00:03:40,670 اور ہم نے ایک واضح نہیں کیا ہے کہ تلاش ڈویژن یا واضح تعداد کے ہونے 65 00:03:40,670 --> 00:03:43,680 کیا ہم واقعی چاہتے ہیں کہ. 66 00:03:43,680 --> 00:03:48,660 اب اس صورت میں، یہ ہے نہیں واقعی ایک واضح کی پیداوار. 67 00:03:48,660 --> 00:03:52,440 یہ واقعی میں ایک واضح نتیجہ نہیں ہے کہ ہم اس مخصوص پروگرام سے باہر کرنا چاہتے. 68 00:03:52,440 --> 00:03:54,427 >> اور یہ ایک، ایک بار پھر، ہے تھوڑا سا تدبیر. 69 00:03:54,427 --> 00:03:57,510 لیکن، شاید، چیزوں میں سے ایک ہے تفصیلات نے کہا کہ اگر ہم کر سکتے ہیں 70 00:03:57,510 --> 00:04:01,900 ہم کی طرف سے تقسیم کرنا چاہتی ہیں کہ 2 اور تو دوسرے الفاظ میں 1-- شامل، 71 00:04:01,900 --> 00:04:04,550 اس کے بعد ہم up-- منہاج القرآن کرنا چاہتے ہیں ہم کر سکتے ہیں جانتے ہیں کہ ہو سکتا ہے 72 00:04:04,550 --> 00:04:08,060 اس صورت میں، اس مخصوص بات کرتے ہیں. 73 00:04:08,060 --> 00:04:14,010 اب یہاں ہم ہو جائے گا معلوم ہے کہ ہماری آدھی تعداد میں 1 کا اضافہ کرنے کے قابل ہو. 74 00:04:14,010 --> 00:04:16,490 >> اس recompile ہیں اور یہ اس بات کی تصدیق 75 00:04:16,490 --> 00:04:18,860 ہم چاہتے ہیں کہ جس طرح برتاؤ کر رہی ہے. 76 00:04:18,860 --> 00:04:21,980 اب ہم پہلے دیکھ سکتے ہیں کہ ہونے، ہم نمبر 5 ہے. 77 00:04:21,980 --> 00:04:26,620 کے بعد، ہم، نمبر 3 ہے ہمارے تصریح کے مطابق، 78 00:04:26,620 --> 00:04:29,292 ہم کیا کرنا چاہتے تھے ہے. 79 00:04:29,292 --> 00:04:31,000 لیکن ہم پر نظر ڈالیں تو یہاں پیداوار، ہم کر سکتے ہیں 80 00:04:31,000 --> 00:04:33,760 ہم ایک اور ہو سکتا ہے کہ کو دیکھنے کے ہے جس میں مکمل طور پر بگ، 81 00:04:33,760 --> 00:04:36,940 ہم 0 سے ہماری شمار شروع کر رہے ہیں. 82 00:04:36,940 --> 00:04:39,390 >> اب ایک بار پھر، یہ کچھ ہے ہم نے ماضی میں دیکھا ہے کہ 83 00:04:39,390 --> 00:04:42,500 اور ہم بہت آسانی سے حل کر سکتے ہیں. 84 00:04:42,500 --> 00:04:44,790 لیکن اس معاملے میں، ہم بھی فائدہ تھا 85 00:04:44,790 --> 00:04:48,940 printf بیان کا استعمال کرتے ہوئے براہ راست لوپ کے لئے کے اندر 86 00:04:48,940 --> 00:04:52,930 خاص طور پر جہاں جاننا اس غلطی کو جاری کیا گیا تھا. 87 00:04:52,930 --> 00:04:55,150 تو printf بیانات ہیں کی مدد کرنے میں بہت ہی مفید 88 00:04:55,150 --> 00:04:57,940 تم کہاں کا تعین، خاص طور پر آپ کے منبع کوڈ میں، 89 00:04:57,940 --> 00:05:00,620 ایک مخصوص غلطی واقع ہے. 90 00:05:00,620 --> 00:05:03,650 >> اور یہ احساس کرنا بھی اہم ہے کہ، ہم کوڈ لکھ رہے ہیں کے طور پر، 91 00:05:03,650 --> 00:05:06,052 ہم مفروضات ہو سکتا ہے پروگرام کی حالت کے بارے. 92 00:05:06,052 --> 00:05:08,510 یا ہم مفروضات ہو سکتا ہے پروگرام کے کس حصے کے بارے میں 93 00:05:08,510 --> 00:05:13,020 اصل میں صحیح یا غلط ہے جب بعد میں ہم اس پروگرام پر تعمیر کے طور پر 94 00:05:13,020 --> 00:05:15,950 اور یہ ایک کا حصہ بنا پیچیدہ اور وسیع تر پروگرام 95 00:05:15,950 --> 00:05:19,700 ہم نے کچھ پہلو کہ احساس ہے کہ کہ اصل میں چھوٹی گاڑی ہے. 96 00:05:19,700 --> 00:05:22,680 >> printf کے استعمال کرتے ہوئے واقعی مدد کر سکتے ہیں کو محدود اور شناخت 97 00:05:22,680 --> 00:05:26,430 پروگرام کے علاقوں کہ نہیں کر سکتے ہیں بالکل جس طرح برتاؤ کیا جائے کہ ہم 98 00:05:26,430 --> 00:05:29,500 ہمارے مفروضات کی بنیاد پر، کی توقع. 99 00:05:29,500 --> 00:05:31,460 لیکن دوسری اوزار موجود ہے دستیاب، کے ساتھ ساتھ، 100 00:05:31,460 --> 00:05:34,860 کہ ہمیں اعداد و شمار کرنے کی کوشش کرنے کی اجازت دیتے ہیں جہاں ایک خرابی واقع ہے باہر 101 00:05:34,860 --> 00:05:39,930 اور بھی، خاص طور پر، کیا چیزیں پروگرام کے اندر ہو رہی ہیں. 102 00:05:39,930 --> 00:05:41,990 >> تو printf کا استعمال بہت ہے مفید جب ہم چاہتے ہیں 103 00:05:41,990 --> 00:05:45,900 کے مخصوص علاقوں کی نشاندہی کچھ بگ ہے کہ ایک پروگرام. 104 00:05:45,900 --> 00:05:47,730 لیکن یہ بھی ہو جاتا ہے تھوڑی دیر کے بعد تکاؤ. 105 00:05:47,730 --> 00:05:50,500 اس صورت میں، یہ ایک ہے نسبتا آسان پروگرام 106 00:05:50,500 --> 00:05:52,750 صرف ایک یا دو متغیر کے ساتھ. 107 00:05:52,750 --> 00:05:57,260 اور یہ ہمارے لئے بہت آسان ہو جاتا ہے ان متغیرات کی قدر کو پرنٹ 108 00:05:57,260 --> 00:05:59,670 بڑے پروگرام کے تناظر میں. 109 00:05:59,670 --> 00:06:02,670 >> لیکن ہم ایک مختلف ہو سکتا ہے بہت سے متغیر ہے کہ پروگرام. 110 00:06:02,670 --> 00:06:06,530 اور یہ بہت نہیں ہو سکتا printf استعمال کرنے کے لئے اتنا آسان 111 00:06:06,530 --> 00:06:10,120 کیا ہو رہا ہے کا اندازہ کرنے کی کوشش کریں ان متغیرات میں سے ہر ایک کے لئے 112 00:06:10,120 --> 00:06:13,590 پروگرام کے طور پر عمل کیا جاتا ہے. 113 00:06:13,590 --> 00:06:16,960 موجود ہے کہ ایک پروگرام ہے ٹھیک کرنے والا کھولتا پروگرام کہا. 114 00:06:16,960 --> 00:06:20,320 اس صورت میں، ایک ہے کہ ہم استعمال، GDB GNU ٹھیک کرنے والا کھولتا ہے، یا 115 00:06:20,320 --> 00:06:24,260 کہ ہمیں اندرونی معائنہ کرنے کی اجازت دیتا ہے ایک بہت زیادہ میں ایک پروگرام کے کام کاج 116 00:06:24,260 --> 00:06:25,700 تفصیلی طریقہ. 117 00:06:25,700 --> 00:06:28,810 >> ہم اصل میں پھانسی کر سکتے ہیں کمانڈ لائن سے GDB 118 00:06:28,810 --> 00:06:35,370 یہاں صرف GDB اور ٹائپ کی طرف سے ہم ڈیبگ کرنا چاہتے ہیں کہ حکم. 119 00:06:35,370 --> 00:06:37,550 اس صورت میں، شمار. 120 00:06:37,550 --> 00:06:41,650 اب اس صورت میں، ہم اس کو دیکھ سکتے ہیں GDB کا کہنا ہے کہ ایک فوری طور پر ہمیں لاتا ہے. 121 00:06:41,650 --> 00:06:44,020 اور ہم اصل میں کر سکتے ہیں GDB کے حکم دیتا ہے عملدرآمد 122 00:06:44,020 --> 00:06:48,260 اصل کے عمل کو شروع کرنے کے لئے پروگرام، بعض مقامات پر اس کو روکنے کے، 123 00:06:48,260 --> 00:06:51,060 متغیر کا اندازہ اور متغیر کا معائنہ کہ 124 00:06:51,060 --> 00:06:54,152 پروگرام ریاست میں موجود کہ خاص طور پر اس وقت، 125 00:06:54,152 --> 00:06:55,110 اور تو اور تو آگے. 126 00:06:55,110 --> 00:06:57,240 یہ ہمارے لئے طاقت کا ایک بہت فراہم کرتا ہے. 127 00:06:57,240 --> 00:06:59,960 >> لیکن یہ صرف اس لئے ہوتا ہے یہ بھی CS50 IDE 128 00:06:59,960 --> 00:07:05,870 ایک GUI یا صارف فراہم کرتا ہے GDB کے لئے انٹرفیس ہے کہ 129 00:07:05,870 --> 00:07:11,120 ہمیں ضرورت کے بغیر ایسا کرنے کی اجازت دیتا جو کمانڈ لائن انٹرفیس 130 00:07:11,120 --> 00:07:13,560 یا بالکل بھی. 131 00:07:13,560 --> 00:07:16,930 میں اس تک رسائی حاصل کر سکتے ہیں اس طرح ڈیبگ بٹن کا استعمال کرتے ہوئے ہے 132 00:07:16,930 --> 00:07:20,120 CS50 IDE کے سب سے اوپر. 133 00:07:20,120 --> 00:07:24,280 اب ماضی میں، ہم نے کیا ہے دیکھا ہم کمانڈ کا استعمال کرتے ہیں 134 00:07:24,280 --> 00:07:27,660 لائن مرتب اور پھر ایک پروگرام کو چلانے کے. 135 00:07:27,660 --> 00:07:29,790 >> ڈیبگ بٹن کرتا ان اقدامات کے دونوں. 136 00:07:29,790 --> 00:07:34,380 لیکن یہ بھی لے آئے گا اب تک حق پر ٹھیک کرنے والا کھولتا ٹیب 137 00:07:34,380 --> 00:07:38,280 کہ ہمیں ایک قسم کا معائنہ کرنے کی اجازت دیتا ہے پروگرام کی خصوصیات میں سے 138 00:07:38,280 --> 00:07:40,500 کے طور پر عمل کیا جاتا ہے. 139 00:07:40,500 --> 00:07:44,280 میں اس میں، ڈیبگ کلک کریں کیس، اس کو لے آئے گا 140 00:07:44,280 --> 00:07:48,230 کنسول میں ایک نیا ٹیب بہت نچلے حصے میں ونڈو. 141 00:07:48,230 --> 00:07:51,160 >> اور تم اس ٹیب ہے کہ دیکھ سکتے ہیں سب سے اوپر پر کچھ معلومات. 142 00:07:51,160 --> 00:07:52,670 اور ہم بڑی حد تک اس کو نظر انداز کر سکتے ہیں. 143 00:07:52,670 --> 00:07:54,800 لیکن چیزوں میں سے ایک ہم محسوس کرنا چاہتا ہوں کہ 144 00:07:54,800 --> 00:07:57,170 یہ نتائج کہ ایک ہی بات ہے کہ ہم 145 00:07:57,170 --> 00:08:03,000 ہم بنانے چلاتے کرنے کی کوشش کی تو ملے گا ٹرمنل ونڈو میں سی پروگرام. 146 00:08:03,000 --> 00:08:06,230 >> یہاں، ہم اس بجنا چل رہا ہے دیکھ سکتے ہیں، اور اس پرچم کی ایک قسم ہے، 147 00:08:06,230 --> 00:08:12,660 اور یہ ہمارے count.c فائل مرتب ہے جس وقت منتخب ٹیب تھا 148 00:08:12,660 --> 00:08:15,100 کہ میں ڈبگ مارا. 149 00:08:15,100 --> 00:08:18,010 تو اس کی وجہ سے بہت مفید ہے اب اس ڈیبگ بٹن کا استعمال، 150 00:08:18,010 --> 00:08:23,280 ہم ایک ہی وقت کے بعد مرتب کر سکتے ہیں اور پروگرام پر عمل ہے کہ ہم اصل میں 151 00:08:23,280 --> 00:08:24,460 کو چلانے کے لئے چاہتے ہیں. 152 00:08:24,460 --> 00:08:27,880 >> ہے کہ جھنڈے میں سے ایک اہم، اس معاملے میں، 153 00:08:27,880 --> 00:08:30,190 ہم اصل میں استعمال کر رہا ہوں سب سے طویل وقت کے لئے 154 00:08:30,190 --> 00:08:32,450 بلکہ کچھ ہاتھ کیا لہراتے ہوئے [اشراوی]، جس 155 00:08:32,450 --> 00:08:33,820 یہیں اس میں سے ایک ہے. 156 00:08:33,820 --> 00:08:35,790 بجنا میں، اس کا کہنا ہے کہ -ggdb3. 157 00:08:35,790 --> 00:08:38,570 158 00:08:38,570 --> 00:08:41,250 اس صورت میں، ہم کیا ہیں بجنا بتا، ہمارے سنکلک، 159 00:08:41,250 --> 00:08:43,820 ہم اپنے پروگرام مرتب کرنے کے لئے چاہتے ہیں. 160 00:08:43,820 --> 00:08:46,810 بلکہ کیا ہیں فراہم کرتے ہیں نامی علامت معلومات 161 00:08:46,810 --> 00:08:50,940 سنکلک اصل میں تک رسائی حاصل ہے تاکہ بنیادی معلومات کا ایک بہت کچھ کرنے کے 162 00:08:50,940 --> 00:08:52,610 پروگرام کے اندر اندر موجود. 163 00:08:52,610 --> 00:08:55,260 >> مزید خاص طور پر، تعداد میں ہے کہ افعال میں سے، 164 00:08:55,260 --> 00:08:58,000 ان کے افعال میں نام، متغیر، اقسام 165 00:08:58,000 --> 00:09:01,730 ان متغیرات، اور ایک مختلف قسم کے ہیں کہ ٹھیک کرنے والا کھولتا میں مدد ہے کہ دوسری چیزوں کے 166 00:09:01,730 --> 00:09:04,350 اس آپریشن کو انجام دینے کے. 167 00:09:04,350 --> 00:09:06,600 اب کچھ اور بھی ہے اس کا ذکر کرنا ضروری ہے 168 00:09:06,600 --> 00:09:10,280 جب ہم چل رہا ہے بحث کر رہے ہیں اس طرح میں ایک پروگرام. 169 00:09:10,280 --> 00:09:13,660 >> یہ اصل میں ہے کہ نوٹس ہمارے کنسول میں ایک نیا ٹیب پرورش 170 00:09:13,660 --> 00:09:14,780 نیچے کے ساتھ ساتھ. 171 00:09:14,780 --> 00:09:18,600 ہم اب کوئی بات چیت کرنا پڑے براہ راست ٹرمنل ونڈو کے ساتھ. 172 00:09:18,600 --> 00:09:21,420 لیکن اس نئے ٹیب ہے اصل میں ایک ٹرمینل ونڈو. 173 00:09:21,420 --> 00:09:26,710 یہ صرف چلانے کے لئے مخصوص ہے ہم پیدا کیا ہے کہ پروگرام. 174 00:09:26,710 --> 00:09:29,270 >> میں، نچلے حصے میں نوٹس کچھ پیداوار کے ساتھ مجموعہ 175 00:09:29,270 --> 00:09:33,500 سنکلک اور GDB بجنا کی طرف سے، ہم بڑی حد تک نظر انداز کر سکتے ہیں، 176 00:09:33,500 --> 00:09:37,570 یہ اصل کی پیداوار سے پتہ چلتا ہے بہت نچلے حصے میں ہمارے پروگرام. 177 00:09:37,570 --> 00:09:41,240 اب یہ محسوس کرنا اہم ہے کہ اصل میں اس ایک ونڈو 178 00:09:41,240 --> 00:09:43,360 آپ کو دکھائے گا آپ کے پروگرام کی طرف سے پیداوار 179 00:09:43,360 --> 00:09:47,190 بلکہ ان پٹ کو قبول کر سکتے ہیں اس پروگرام کے لئے، کے ساتھ ساتھ. 180 00:09:47,190 --> 00:09:49,260 >> تو کا کہنا ہے کہ نوٹس ایک بڑی تعداد درج کریں، 181 00:09:49,260 --> 00:09:53,050 جو ہم تھا کہ ایک ہی پیداوار ہے پہلے ٹرمنل ونڈو میں تھا. 182 00:09:53,050 --> 00:09:55,510 لیکن یہ اب اس نئے ٹیب میں دکھایا گیا ہے. 183 00:09:55,510 --> 00:09:56,550 میں ان پٹ ایک بڑی تعداد کر سکتے ہیں. 184 00:09:56,550 --> 00:10:00,900 اور یہ اصل میں کریں گے تقریب ہم توقع کے طور پر 185 00:10:00,900 --> 00:10:05,890 ہمارے ڈبگ دکھا، پیداوار، چھوٹی گاڑی ہو سکتا ہے اس کی پیداوار، 186 00:10:05,890 --> 00:10:07,010 کے طور پر ہم نے پہلے دیکھا ہے. 187 00:10:07,010 --> 00:10:10,460 اور بہت نچلے حصے میں، یہ اصل میں کچھ اضافی پیداوار ہے 188 00:10:10,460 --> 00:10:14,550 جی ڈی پی کی طرف سے صرف یہ کہہ رہی اس پروگرام مکمل کر لیا ہے. 189 00:10:14,550 --> 00:10:16,655 >> اب آپ اس میں دیکھا کے طور پر کے ذریعے خاص طور پر چلائیں، 190 00:10:16,655 --> 00:10:19,370 یہ خاص طور پر نہیں تھا مفید بھی وجہ سے 191 00:10:19,370 --> 00:10:23,740 ہم نے اگرچہ ٹھیک کرنے والا کھولتا مینو آئے اپ، یہ اب بھی ایک چلانے پروگرام تھا. 192 00:10:23,740 --> 00:10:26,790 کوئی وقت اصل میں یہ کیا ہمارے لئے پر عملدرآمد روک 193 00:10:26,790 --> 00:10:30,767 تمام کا معائنہ کرنے کے قابل ہو جائے متغیر کے اندر اندر موجود. 194 00:10:30,767 --> 00:10:32,850 کچھ اور بھی ہے ہم نے آرڈر میں کرنا پڑتا ہے کہ 195 00:10:32,850 --> 00:10:36,910 ہم چاہتے ہیں کہ اس کی شناخت کرنے کے لئے حاصل کرنے کے لئے GDB پروگرام کے عمل کو روکنے کے لئے 196 00:10:36,910 --> 00:10:42,820 اور صرف اسے آگے بڑھنے کی اجازت نہیں عام طور پر ہم کسی بھی دوسری صورت میں کریں گے کے طور. 197 00:10:42,820 --> 00:10:45,530 >> پھانسی کو روکنے کے کرنے کے لئے، کچھ مخصوص لائن پر، 198 00:10:45,530 --> 00:10:47,830 ہم کیا ہے تخلیق کرنے کی ضرورت ایک بریک پوائنٹ بلایا. 199 00:10:47,830 --> 00:10:52,670 اور ایک وقفے نقطہ بہت آسانی سے پیدا کیا ہے اس میں اپنے ماؤس لے کر IDE CS50 200 00:10:52,670 --> 00:10:57,090 اور بائیں براہ راست کلک کچھ مخصوص لائن نمبر کی. 201 00:10:57,090 --> 00:10:59,920 مجھے لگتا ہے کہ ایسا ایک بار، ایک سرخ ڈاٹ اشارہ کرتا ہے جس، ظاہر ہوتا ہے 202 00:10:59,920 --> 00:11:02,300 کہ لائن اب ایک وقفے نقطہ ہے. 203 00:11:02,300 --> 00:11:07,540 >> اور میں GDB چلانے کہ اگلی بار، یہ کہ وقفے نقطہ پر عملدرآمد روک دے گا 204 00:11:07,540 --> 00:11:10,280 یہ کوڈ کا اس لائن تک پہنچ جاتا ہے. 205 00:11:10,280 --> 00:11:12,230 اب یہ ایک اہم ہے بات کا احساس کرنے کے لئے 206 00:11:12,230 --> 00:11:16,140 یہ نہیں ہے کہ ضروری کیس ہے کہ کوڈ کی ہر لائن 207 00:11:16,140 --> 00:11:17,880 اصل میں قابل رسائی ہے. 208 00:11:17,880 --> 00:11:23,780 میں ایک تقریب پیدا کرنے کے لئے تھے یہاں، مثال باطل ایف کے لئے 209 00:11:23,780 --> 00:11:31,230 اور ہیلو یہاں ایک پرنٹ لائن کرتے world-- میں اس تقریب کو فون نہیں ہے تو، 210 00:11:31,230 --> 00:11:34,770 یہ معاملہ ہو جائے گا کہ، میں یہاں ایک بریک پوائنٹ قائم کر دیں تو، 211 00:11:34,770 --> 00:11:36,220 تقریب میں بلایا جائے کبھی نہیں کرے گا. 212 00:11:36,220 --> 00:11:38,310 اور اس وجہ سے، اس خاص طور پر بریک پوائنٹ 213 00:11:38,310 --> 00:11:43,040 اصل میں روک کبھی نہیں کرے گا پروگرام پر عملدرآمد. 214 00:11:43,040 --> 00:11:48,020 >> تو میں صحیح طریقے سے تشکیل دے کہتے ہیں کہ کوڈ کے کچھ لائن پر ایک بریک پوائنٹ 215 00:11:48,020 --> 00:11:50,340 کہ اصل میں پھانسی دے دی جائے گی. 216 00:11:50,340 --> 00:11:53,470 اب اس صورت میں، یہ ہے مرکزی تقریب میں پہلی لائن. 217 00:11:53,470 --> 00:11:56,630 تو یہ یقینی طور پر معاملہ ہو جائے گا کہ، میں ان پر عملدرآمد شروع کے طور پر جلد کے طور پر، 218 00:11:56,630 --> 00:11:58,580 بہت پہلے لائن تک پہنچ جائے گا. 219 00:11:58,580 --> 00:12:00,230 GDB پر عملدرآمد کو روکنے کے گا. 220 00:12:00,230 --> 00:12:04,100 اور پھر، میں کرنے کے قابل ہو جائے گا ٹھیک کرنے والا کھولتا کے ساتھ بات چیت. 221 00:12:04,100 --> 00:12:08,480 >> آپ کے طور پر ایک سے زیادہ لائنوں مقرر کر سکتے ہیں اگر آپ چاہیں تو، breakpoints کے. 222 00:12:08,480 --> 00:12:11,365 ہم نے بھی ایک لائن تشکیل دے سکتے ہیں یہاں کے کوڈ کا اس علاقے میں 223 00:12:11,365 --> 00:12:12,490 کہ پہنچ نہیں کیا جائے گا. 224 00:12:12,490 --> 00:12:14,744 اور ہم بھی مزید نیچے ایک مقرر کر سکتے ہیں. 225 00:12:14,744 --> 00:12:16,660 وجہ یہ ہے کہ ہم کریں گے ہم کریں گے ایسا کرنا چاہتے ہیں 226 00:12:16,660 --> 00:12:19,119 تھوڑا سا میں جانے صرف ایک لمحے میں تفصیل. 227 00:12:19,119 --> 00:12:21,660 تو اب کے لئے، مجھے صرف دو غیر فعال ان اضافی وقفے پوائنٹس 228 00:12:21,660 --> 00:12:24,940 ہم کیا ہوتا ہے کو دیکھنے کے کر سکتے ہیں تاکہ میں ایک وقفے ہے جب 229 00:12:24,940 --> 00:12:27,650 اپنے پروگرام میں نقطہ. 230 00:12:27,650 --> 00:12:29,410 میں نے کر دیا ہے کچھ اس پروگرام میں تبدیلی. 231 00:12:29,410 --> 00:12:30,750 تو میں نے اسے بچانے کے لئے کی ضرورت ہے. 232 00:12:30,750 --> 00:12:34,490 میں ڈیبگ پر کلک کریں گے میں کر سکتے ہیں تاکہ تالیف شروع اور پھر 233 00:12:34,490 --> 00:12:36,880 ٹھیک کرنے والا کھولتا کی پھانسی. 234 00:12:36,880 --> 00:12:40,632 >> ہم دیکھیں گے، کہ لمحات کے بعد ہم وقفے کے طور پر منتخب کیا ہے کہ لائن 235 00:12:40,632 --> 00:12:43,360 نقطہ پیلے رنگ میں روشنی ڈالی ہے. 236 00:12:43,360 --> 00:12:47,440 ہم نے بھی میں محسوس کر سکتے ہیں ڈیبگ پینل میں اوپری دائیں 237 00:12:47,440 --> 00:12:50,940 روکنے آئکن تبدیل کر دیا ہے کہ ایک چھوٹا سا کھیل آئکن میں. 238 00:12:50,940 --> 00:12:54,710 یہ ہم کو روکنے کا مطلب ہے کہ پھانسی، اس خاص معاملے میں. 239 00:12:54,710 --> 00:12:57,840 اور کھیل کے بٹن پر گا مارنے ہمیں عملدرآمد دوبارہ شروع کرنے کی اجازت دیتے ہیں 240 00:12:57,840 --> 00:13:00,000 اس مخصوص نقطہ پر. 241 00:13:00,000 --> 00:13:03,240 >> دیگر کے ایک جوڑے کی ہے کہ نوٹس اس ڈبگ پینل میں دستیاب بٹن، 242 00:13:03,240 --> 00:13:04,220 اس کے ساتھ ساتھ. 243 00:13:04,220 --> 00:13:09,470 مجھ سے کی اجازت دیتا ہے، زیادہ قدم کوڈ میں سے ایک لائن کو پھانسی 244 00:13:09,470 --> 00:13:14,030 اور اس لائن کو پھلانگنا اس صورت میں اگلے ایک، جس،، 245 00:13:14,030 --> 00:13:17,060 printf کے مطلب ہو گا بیان پھانسی دے دی ہے. 246 00:13:17,060 --> 00:13:22,310 اور اس وقت کو روکنے کے گا تو جیسے 13 پر عملدرآمد،. 247 00:13:22,310 --> 00:13:25,090 >> اور یہ بھی ایک قدم ہے تقریب میں جس 248 00:13:25,090 --> 00:13:28,950 میں دوسرے پیدا کیا ہے تو مفید ہے دوسری جگہوں پر منبع کوڈ میں کام کرتا ہے. 249 00:13:28,950 --> 00:13:31,420 اور میں میں قدم کرنا چاہتے ہیں ان افعال کی بجائے 250 00:13:31,420 --> 00:13:33,050 مجموعی طور پر اس تقریب کو پھانسی. 251 00:13:33,050 --> 00:13:37,279 لیکن ہم قدم پر زیادہ نظر آئے گا صرف ایک لمحے میں تقریب میں. 252 00:13:37,279 --> 00:13:40,320 اب کچھ دوسری چیزوں کے نوٹس اصل میں اس ڈبگ پینل کے اندر موجود ہیں. 253 00:13:40,320 --> 00:13:44,110 >> ہم اس پینل کہا جاتا ہے جو ہمیں پتہ چلتا ہے، اسٹیک کال 254 00:13:44,110 --> 00:13:45,300 بالکل ہم کہاں ہیں. 255 00:13:45,300 --> 00:13:48,550 اس صورت میں، ہم اندر ہیں مرکزی تقریب کے. 256 00:13:48,550 --> 00:13:50,880 ہمارا سکرپٹ count.c کہا جاتا ہے. 257 00:13:50,880 --> 00:13:53,820 اور ہم پر ہونا ہو 13، کالم ایک، جس 258 00:13:53,820 --> 00:13:58,950 کیا روشنی ڈالی علاقے خاص طور پر ہے ماخذ کوڈ کے طور پر ساتھ ساتھ، کی طرف اشارہ کرتا. 259 00:13:58,950 --> 00:14:02,435 >> اب یہ بھی پتہ چلتا ہے کہ محسوس کریں مقامی متغیر سیکشن کے تحت 260 00:14:02,435 --> 00:14:06,710 متغیرات میں سے سب کہ اس تقریب کے اندر اندر موجود. 261 00:14:06,710 --> 00:14:08,930 یہ نوٹ کرنا اہم ہے متغیرات میں سے سب کہ 262 00:14:08,930 --> 00:14:12,580 اس مقامی متغیر میں دکھایا جائے گا ایک تقریب کے اندر اندر سیکشن، 263 00:14:12,580 --> 00:14:14,380 یہاں تک کہ وہ بیان کر رہے ہیں اس سے پہلے. 264 00:14:14,380 --> 00:14:19,160 ہم ایک متغیر ہے کہ یہاں دیکھ سکتے ہیں NUM بلایا، 0 کے ایک پہلے سے طے شدہ قیمت ہے، 265 00:14:19,160 --> 00:14:21,280 اور یہ قسم int ہے. 266 00:14:21,280 --> 00:14:24,110 >> اب ہم اصل میں ابتدا سے پہلے ان متغیرات میں سے سب، 267 00:14:24,110 --> 00:14:26,685 ہم ضروری نہیں ہیں 0 کی قیمت کو دیکھنے کے لئے بات کی ضمانت. 268 00:14:26,685 --> 00:14:29,200 اور دیگر پھانسی پر منحصر ہے آپ کارکردگی کا مظاہرہ کیا ہے کہ 269 00:14:29,200 --> 00:14:32,020 اور آپ کی میموری جب ریاست آپ اصل میں اس پروگرام چلاتے ہیں، 270 00:14:32,020 --> 00:14:34,605 آپ کو تلاش ہے کہ ہو سکتا ہے 0 کی اقدار نہیں دیکھ رہا ہوں 271 00:14:34,605 --> 00:14:36,550 اور، کے بجائے، کسی دوسرے پاگل تعداد. 272 00:14:36,550 --> 00:14:38,390 >> لیکن اس کے بارے میں فکر نہ کرو. 273 00:14:38,390 --> 00:14:44,610 جب تک متعلقہ ہونے نہیں جا رہا ہے آپ اصل میں قدر کی ابتدا. 274 00:14:44,610 --> 00:14:49,630 اب اس صورت میں، ہم دیکھ سکتے ہیں کہ میں نے کچھ نتائج کارکردگی کا مظاہرہ کیا. 275 00:14:49,630 --> 00:14:52,131 اور میں، اب، پر عملدرآمد روک دیا گیا ہوں. 276 00:14:52,131 --> 00:14:53,880 لیکن اس معاملے میں، کیا مجھے سچ میں کرنا چاہتے ہیں 277 00:14:53,880 --> 00:14:58,060 اس لائن پر قدم کرنے کے لئے ہے کوڈ کی تو میں نے اصل کر سکتے ہیں 278 00:14:58,060 --> 00:15:04,390 کہ int کے لئے صارف کے سوال کہ ہم اپنے پروگرام میں استعمال کرنا چاہتے. 279 00:15:04,390 --> 00:15:07,060 >> اب اس صورت میں، جب میں، نوٹس پھلانگنا مارا 280 00:15:07,060 --> 00:15:11,940 اس کی بجائے روک یا دوبارہ شروع کریں بٹن اس توقف کے بٹن کو تبدیل کر دیا گیا 281 00:15:11,940 --> 00:15:14,022 اس کوڈ کو اصل عمل ہے کیونکہ. 282 00:15:14,022 --> 00:15:15,730 کیا ہو رہا ہے ٹھیک ہے اب یہ ہے 283 00:15:15,730 --> 00:15:21,630 ان پٹ کے لئے ہمارے لئے کچھ معلومات انتظار ہم اپنے پیداوار متن کی طرف سے دیکھ سکتے ہیں کے طور پر 284 00:15:21,630 --> 00:15:23,600 بہت نچلے حصے میں. 285 00:15:23,600 --> 00:15:25,787 >> تو اب، یہ وہ جگہ ہے اصل میں روک دیا گیا نہیں، 286 00:15:25,787 --> 00:15:28,620 یہاں تک کہ یہ اگرچہ، کی طرح، ظاہر ہوتا ہے کچھ نہیں ہو رہا ہے کیونکہ ہونا. 287 00:15:28,620 --> 00:15:32,360 لیکن یہ صرف اس لئے ہوتا ہے کہ 13 پر اپنے مخصوص کیس، 288 00:15:32,360 --> 00:15:34,210 میں صارف کی ان پٹ کے لئے انتظار کر رہا ہوں. 289 00:15:34,210 --> 00:15:39,130 اور اس طرح GDB کا معائنہ کرنے کے قابل نہیں ہے اس کے طور پر ایک پروگرام چلا رہا ہے. 290 00:15:39,130 --> 00:15:43,370 >> میں کچھ داخل ہے کہ اب اگلی بار ان پٹ تو میں، اس نمبر 5 میں داخل ہوں گے 291 00:15:43,370 --> 00:15:46,140 ہم میں دیکھا ہے کے طور پر مارا واپس past--، اور ہم 292 00:15:46,140 --> 00:15:51,430 کہ، فوری طور پر، GDB پآساس نوٹس اور، ایک بار پھر، اگلی لائن پر روشنی ڈالی گئی. 293 00:15:51,430 --> 00:15:55,320 لیکن ایک کے طور پر، اب اس نوٹس ہماری ایک قدر inputting کی کا نتیجہ، 294 00:15:55,320 --> 00:15:58,930 ہم اندر اس قدر کو اپ ڈیٹ کیا ہمارے مقامی متغیر، کی جس 295 00:15:58,930 --> 00:16:05,560 واضح طور پر معلوم کرنے کے لئے بہت مفید ہے کیا اس نمبر میموری میں تھا. 296 00:16:05,560 --> 00:16:10,650 >> اب میں اس پروگرام کو جاری رکھنے کی اجازت دے سکتا ہے اس پر عملدرآمد کے آخر تک کھیل 297 00:16:10,650 --> 00:16:12,570 دوبارہ شروع کریں مارنے کی طرف سے. 298 00:16:12,570 --> 00:16:16,410 ہم بہت جلد دیکھ سکتے ہیں کہ پروگرام ختم عمل کرتا ہے 299 00:16:16,410 --> 00:16:19,790 اسی کی پیداوار اس کے ساتھ ہم پہلے تھا، ٹھیک کرنے والا کھولتا بند، 300 00:16:19,790 --> 00:16:23,170 اور اب اس پروگرام مکمل طور پر بند کر دیا ہے. 301 00:16:23,170 --> 00:16:25,320 >> میں ظاہر کے لئے کہ دیکھ کے مقاصد کیا 302 00:16:25,320 --> 00:16:27,280 ہم اصل میں دوبارہ شروع مارا جب ہوتا ہے. 303 00:16:27,280 --> 00:16:30,640 لیکن ہم اصل میں کرنے جا رہے ہیں اس پروگرام میں واپس جانا چاہتی ہوں 304 00:16:30,640 --> 00:16:33,820 ہم ڈیبگ کرنے کی کوشش کر سکتے ہیں تاکہ خاص طور پر کیا ہو رہا ہے. 305 00:16:33,820 --> 00:16:37,980 میں debugger استعمال کر رہا ہوں کہ اب، میں مئی ان ڈبگ printf بیانات کی ضرورت نہیں. 306 00:16:37,980 --> 00:16:43,860 >> میں کروں گا کے طور پر تو میں نے ان کو ختم کر سکتے ہیں اب صرف ہمارے آسان کوڈ میں واپس جانے کے لئے 307 00:16:43,860 --> 00:16:45,950 ہم ایک لمحے پہلے تھا کہ. 308 00:16:45,950 --> 00:16:48,790 اب مجھے بچانے کے لئے جب پروگرام اور اس پر عمل، 309 00:16:48,790 --> 00:16:53,700 یہ، ایک بار پھر، کہ ابتدائی میں جائیں گے میں 11 لائن پر تھا اس نقطہ کو توڑنے. 310 00:16:53,700 --> 00:16:57,700 اور میں معائنہ کرنے کے لئے قابل ہو جائے گا میری متغیر میں کرنا چاہتا ہوں کے طور پر. 311 00:16:57,700 --> 00:17:00,695 >> یہ صرف اس لئے اس ایسا ہوتا ہے حصہ، بہت دلچسپ نہیں ہے 312 00:17:00,695 --> 00:17:04,364 اور میں جا رہا ہوں معلوم ہے کہ اس بیان سے باہر پرنٹ کرنے کے لئے. 313 00:17:04,364 --> 00:17:05,280 ایک نمبر درج کریں. 314 00:17:05,280 --> 00:17:08,099 اور پھر، میں جا رہا ہوں معلوم ہے کہ کہ عددی کے لئے صارف سے پوچھنا. 315 00:17:08,099 --> 00:17:13,329 تو شاید، میں نے اصل میں منتقل کرنا چاہتے ہیں میرے نیچے تھوڑا سا مزید نقطہ وقفے. 316 00:17:13,329 --> 00:17:16,710 >> تم وقفے پوائنٹس ختم کر سکتے ہیں براہ راست، پھر، کلک کر 317 00:17:16,710 --> 00:17:18,460 اس لائن تعداد کے بائیں. 318 00:17:18,460 --> 00:17:22,200 وہ لال ڈاٹ کا اشارہ، غائب ہو جائے گا کہ بریک پوائنٹ اب چلا گیا ہے کہ. 319 00:17:22,200 --> 00:17:24,780 اب اس صورت میں، پر عملدرآمد روک دیا گیا ہے. 320 00:17:24,780 --> 00:17:27,770 اور اس طرح یہ اصل میں نہیں جا رہا ہے کہ خاص طور پر مثال کے طور پر میں دوبارہ شروع. 321 00:17:27,770 --> 00:17:30,210 لیکن میں نے ایک وقفے مقرر کر سکتے ہیں تھوڑا سا بعد موڑ. 322 00:17:30,210 --> 00:17:33,880 >> اور اب میں دوبارہ شروع جب میرے کوڈ، یہ دوبارہ شروع کریں اور بتائیں گے 323 00:17:33,880 --> 00:17:36,190 کہ بریک پوائنٹ کے نقطہ. 324 00:17:36,190 --> 00:17:37,374 ایک بار پھر، میں دوبارہ شروع مارا. 325 00:17:37,374 --> 00:17:39,040 کچھ ہو رہا ہے کی طرح نہیں لگ رہا ہے. 326 00:17:39,040 --> 00:17:41,450 لیکن وہ میری وجہ سے ہے کوڈ ان پٹ کے لئے انتظار کر رہا ہے. 327 00:17:41,450 --> 00:17:47,900 میں نے ایک نمبر 5 میں داخل درج کریں مارا، اور کرے گا اب اگلے بریک پوائنٹ مارا جائے گا. 328 00:17:47,900 --> 00:17:50,570 >> اب اس صورت میں، اس کوڈ کے مطابق ہے 329 00:17:50,570 --> 00:17:53,820 کہ، پہلے، ہم جانتے تھے چھوٹی ہونا ہوا. 330 00:17:53,820 --> 00:17:57,590 تو کیا ہوتا ہے کا اندازہ دو وقت میں اس مخصوص نقطہ پر. 331 00:17:57,590 --> 00:18:02,620 ایک لائن پر روشنی ڈالی ہے تو اس لائن ابھی تک پھانسی نہیں کیا گیا ہے. 332 00:18:02,620 --> 00:18:06,490 تو اس صورت میں، ہم دیکھ سکتے ہیں میں ایک بڑی تعداد ہے، جو 333 00:18:06,490 --> 00:18:11,610 میں نامی ایک عدد صحیح ہے ایک قیمت 5 ہے کہ NUM. 334 00:18:11,610 --> 00:18:15,090 اور میں کارکردگی کا مظاہرہ کیا کرنے جا رہا ہوں اس نمبر پر کچھ ریاضی. 335 00:18:15,090 --> 00:18:20,130 >> میں اس پر قدم تو، ہم کر سکتے ہیں NUM کے لئے اس قدر محسوس 336 00:18:20,130 --> 00:18:23,780 کے مطابق میں تبدیل کر دیا گیا ہم اصل میں کیا ہے کہ ریاضی. 337 00:18:23,780 --> 00:18:26,810 اور اب ہم ہیں کہ اندر لوپ کے لئے اس کے بارے میں 338 00:18:26,810 --> 00:18:29,090 یا اب اس لوپ کے لئے خود روشنی ڈالی ہے، 339 00:18:29,090 --> 00:18:32,450 ہم ایک نئے ہے کہ دیکھ متغیر ہے کہ میں کہا جاتا 340 00:18:32,450 --> 00:18:35,370 لوپ کے لئے اس میں استعمال کیا جا کرنے کے لئے کی جا رہی ہے. 341 00:18:35,370 --> 00:18:38,230 >> اب جب کہ میں نے پہلے یاد کبھی کبھی آپ کو ہیں کہ اس کا ذکر 342 00:18:38,230 --> 00:18:43,470 پاگل کی کسی قسم کو دیکھنے کے لئے جا رہا اس تعداد سے پہلے سے طے شدہ طور پر تعداد 343 00:18:43,470 --> 00:18:45,530 یا یہ کہ متغیر ہے اصل initialized ہے. 344 00:18:45,530 --> 00:18:49,040 ہم خاص طور پر دیکھ سکتے ہیں کہ یہاں اس متغیر میں 345 00:18:49,040 --> 00:18:51,345 نہیں ہے جس میں، میں بلایا ابھی initialized کیا گیا 346 00:18:51,345 --> 00:18:53,560 اجاگر کرنے کا وقت. 347 00:18:53,560 --> 00:18:57,070 لیکن ہم اس سے کچھ تعداد ہے کہ دیکھ سکتے ہیں ہم اصل میں توقع نہیں ہے کہ. 348 00:18:57,070 --> 00:18:57,620 >> ٹھیک ہے. 349 00:18:57,620 --> 00:18:59,661 اس کے بارے میں فکر مت کرو ہم اصل میں نہیں ہے کیونکہ 350 00:18:59,661 --> 00:19:04,970 میں جب تک اس نمبر سے initialized اس لائن اور قیمت پھلانگنا 351 00:19:04,970 --> 00:19:08,560 میں قدر 1 سے initialized کیا گیا ہے. 352 00:19:08,560 --> 00:19:11,400 تو ہے کہ اصل میں ہے کہ کو دیکھنے کے لئے کیس، کے دوران قدم دو. 353 00:19:11,400 --> 00:19:14,420 اب ہم دیکھ سکتے ہیں کہ اس لائن کو پھانسی دے دی گئی ہے. 354 00:19:14,420 --> 00:19:17,000 اور اب ہم کو اجاگر کر رہے ہیں اس printf لائن. 355 00:19:17,000 --> 00:19:22,230 >> اور اب ہم کس طرح ہماری اقدار کو دیکھنے کے کر سکتے ہیں میں نے اور 3 وقت کے ساتھ تبدیل کر دیا ہے. 356 00:19:22,230 --> 00:19:26,450 یہ حقیقت میں، ایسا کرنے کے لئے بہت مفید ہے، بار بار لائنز سے زیادہ قدم ہے. 357 00:19:26,450 --> 00:19:30,480 اور تم کیا اصل میں حاصل کر سکتے ہیں آپ کے لئے لوپ کے اندر کیا ہوتا ہے 358 00:19:30,480 --> 00:19:33,660 اور کیا ہوتا ہے اندر لوپ کے لئے اس کے متغیر 359 00:19:33,660 --> 00:19:39,200 اس پروگرام پر عملدرآمد کے طور پر ایک وقت میں ایک قدم اس وقت ہوتی ہے. 360 00:19:39,200 --> 00:19:41,110 >> اب اس نقطہ پر، مجھے صرف کافی سے زیادہ اضافہ کر دیا 361 00:19:41,110 --> 00:19:44,210 اب میں اپنے پروگرام کے اختتام پر ہوں. 362 00:19:44,210 --> 00:19:46,980 میں اس پر قدم ہیں، تو یہ اصل پر عملدرآمد روک 363 00:19:46,980 --> 00:19:48,860 ہم نے ماضی میں دیکھا ہے. 364 00:19:48,860 --> 00:19:52,110 تو، مجھے ایک بار پھر، اس کو دوبارہ شروع کرتے ہیں میں کچھ اور باہر کی طرف اشارہ کر سکتے ہیں، 365 00:19:52,110 --> 00:19:53,320 اس کے ساتھ ساتھ. 366 00:19:53,320 --> 00:19:55,350 >> اس صورت میں، یہ ہے اب ایک بار پھر، مجھ سے پوچھ، 367 00:19:55,350 --> 00:19:57,100 ایک بڑی تعداد، جس میں، ایک بار پھر، میں داخل ہوں گے. 368 00:19:57,100 --> 00:20:00,300 لیکن اس وقت، میں داخل کرنے کے لئے جا رہا ہوں ایک بڑی تعداد تاکہ لوپ کے لئے 369 00:20:00,300 --> 00:20:02,540 زیادہ بار iterate گا. 370 00:20:02,540 --> 00:20:06,090 اس صورت میں، میں جا رہا ہوں 11 کی قیمت درج کرنے کے لئے. 371 00:20:06,090 --> 00:20:08,390 >> اب ایک بار پھر میں نے مقرر کیا تھا کیونکہ لائن 15 پر ایک بریک پوائنٹ، 372 00:20:08,390 --> 00:20:10,490 اس لائن کو اجاگر کرنے کے لئے جا رہا ہے. 373 00:20:10,490 --> 00:20:12,980 ہم دیکھ سکتے ہیں کہ ہماری نمبر 11 درست طریقے سے ہے 374 00:20:12,980 --> 00:20:15,560 ہمارے مقامی متغیر میں نمائندگی. 375 00:20:15,560 --> 00:20:22,460 اب ہم، اس سے زیادہ کر سکتے ہیں نکلنے ہماری قیمت میں کیا ہوتا ہے دیکھتے ہیں 376 00:20:22,460 --> 00:20:25,680 ہم لوپ کے لئے اس کے اندر آگے بڑھنے کے طور پر. 377 00:20:25,680 --> 00:20:31,960 یہ ہر وقت ہم incremented کیا جاتا ہے لوپ کے لئے اس کے اوپر تک پہنچنے کے. 378 00:20:31,960 --> 00:20:35,110 >> چیزوں میں سے ایک اب ہو سکتا ہے عملدرآمد کے دوران ایسا کرنے کے لئے مفید ہو 379 00:20:35,110 --> 00:20:40,490 اس پروگرام کا اصل میں میرے لئے ہے کو دیکھنے کے لئے متغیر مجھدار تبدیل 380 00:20:40,490 --> 00:20:42,450 میرے پروگرام میں ہوتا ہے. 381 00:20:42,450 --> 00:20:46,540 اس صورت میں، میں نے اصل میں کر سکتے ہیں ڈبل قیمت کلک. 382 00:20:46,540 --> 00:20:48,040 یہ ایک متن والے فیلڈ ہو جاتا ہے کہ نوٹس. 383 00:20:48,040 --> 00:20:50,280 >> اب میں مختلف درج کر سکتے ہیں مکمل طور پر کی قدر 384 00:20:50,280 --> 00:20:55,700 میرا پروگرام کس طرح برتاؤ کرتی دیکھنے کے لئے مجھے لگتا ہے کہ متغیر تبدیل کر دیا ہے جب. 385 00:20:55,700 --> 00:20:59,560 اب اس صورت میں، متغیر اب میں قیمت 10 پر مشتمل ہے. 386 00:20:59,560 --> 00:21:02,810 لیکن پروگرام اب بھی ہے پر عملدرآمد میں روک دیا گیا. 387 00:21:02,810 --> 00:21:07,610 میں نے قدم جب، میں اس کو دیکھنے کے میں 10 کے طور پر میں داخل ہوئے جس قدر میں،، 388 00:21:07,610 --> 00:21:12,170 ، NUM کی قیمت سے زیادہ نہیں ہے جو فوری طور پر لوپ کے لئے کا سبب بنتا ہے 389 00:21:12,170 --> 00:21:14,240 عمل کو روکنے کے لئے. 390 00:21:14,240 --> 00:21:16,210 >> اب جب کہ نہ صرف ہے وجہ کیا تم کروگی 391 00:21:16,210 --> 00:21:19,450 جگہ میں متغیر میں ترمیم کرنا چاہتے ہیں. 392 00:21:19,450 --> 00:21:22,210 تم واقعی چاہتے ہو سکتا ہے یہ اتنا پر نظر ثانی کرنے کی کوشش کریں 393 00:21:22,210 --> 00:21:24,590 آپ جاری رکھ سکتے ہیں ایک لوپ کے پھانسی 394 00:21:24,590 --> 00:21:27,370 یا تاکہ آپ پر نظر ثانی کر سکتے ہیں اس سے پہلے کچھ قدر 395 00:21:27,370 --> 00:21:32,630 ریاضی کے کچھ مخصوص سیٹ تک پہنچ جاتا ہے آپ کو انجام دینے کے بارے میں ہیں کہ. 396 00:21:32,630 --> 00:21:36,210 >> تو اب ہم اصل تبدیل پروگرام کے طور پر میں کی قدر، عمل تھا 397 00:21:36,210 --> 00:21:39,540 یہ لوپ کے لئے چھوڑنے کے لئے کی وجہ سے وقت سے پہلے ہی میں، اچانک، کیونکہ 398 00:21:39,540 --> 00:21:42,770 قیمت سے زیادہ ہونا ہوا NUM کے، لوپ کے لئے کہ اس کے معنی 399 00:21:42,770 --> 00:21:45,410 اب کوئی پھانسی دے دی جائے کرنے کی ضرورت ہے. 400 00:21:45,410 --> 00:21:48,780 مزید، یہ ہوا ہم میں کی قدر تبدیل کر دیا گیا اس صورت 401 00:21:48,780 --> 00:21:53,270 لائن 17 پر روشنی ڈالی گیا تھا جب، وقت میں نقطہ تھا جس 402 00:21:53,270 --> 00:21:56,280 اس لوپ عملدرآمد کے لئے اصل میں اندازہ کیا جا رہا تھا. 403 00:21:56,280 --> 00:22:00,210 >> میں قدر کی تبدیل کر دیا تھا تو میں نے ایک مختلف لائن پر،، 19 کا کہنا ہے کہ 404 00:22:00,210 --> 00:22:03,360 ہم مختلف دیکھا ہوتا رویے 19 لائن کریں گے کیونکہ 405 00:22:03,360 --> 00:22:08,310 لوپ سے پہلے پھانسی دے دی ہے حالت تشخیص نو کی گئی تھی. 406 00:22:08,310 --> 00:22:11,900 اب اس نقطہ پر، ہوں، ایک بار پھر، اس پروگرام کے اختتام پر. 407 00:22:11,900 --> 00:22:15,707 اور میں نے اس کے لئے آگے بڑھنے کے لئے اجازت دے کر سکتے ہیں میرا پروگرام قدرتی چھوڑنے کے لئے کی اجازت دیتے ہیں. 408 00:22:15,707 --> 00:22:18,290 لیکن چیزوں کے ایک جوڑے کی ہے لے جانے کے لئے اہم ہیں کہ 409 00:22:18,290 --> 00:22:19,960 یہ خاص طور پر بحث سے. 410 00:22:19,960 --> 00:22:22,490 آپ کا اندازہ کرنے کی ضرورت ہے آپ کے اپنے مفروضات 411 00:22:22,490 --> 00:22:24,710 کس طرح کے بارے کوڈ برتاؤ کیا جانا چاہئے. 412 00:22:24,710 --> 00:22:28,220 کسی بھی وقت آپ سے کچھ ٹکڑے لگتا ہے کہ آپ کو پتہ کوڈ کام کرنے کے لئے کیا ہوتا ہے کے، 413 00:22:28,220 --> 00:22:30,940 کہ جانے کے لئے ایک سرخ پرچم ہو سکتا ہے واپس اور اندازہ ہے، اور اس بات کا یقین 414 00:22:30,940 --> 00:22:33,470 آپ کے مفروضہ ہے کہ کس طرح ہے کہ کوڈ کام کر رہا ہے 415 00:22:33,470 --> 00:22:38,290 یہ ہے کس طرح اصل میں سچ ہے آپ کے منبع کوڈ میں ظاہر. 416 00:22:38,290 --> 00:22:41,300 >> لیکن بات اس سے بھی زیادہ تھا، ہم ٹھیک کرنے والا کھولتا استعمال کر رہے ہیں جب، 417 00:22:41,300 --> 00:22:43,920 تم پر breakpoints کے ڈال کر سکتے ہیں کوڈ کے مختلف لائنوں، 418 00:22:43,920 --> 00:22:48,110 کرنے کے لئے سبب بن جائے گا ٹھیک کرنے والا کھولتا جس ان لائنوں میں سے ہر ایک پر عملدرآمد روک 419 00:22:48,110 --> 00:22:52,210 تو آپ اندازہ کر سکتے ہیں میموری یا اس سے بھی اس جگہ میں تبدیل. 420 00:22:52,210 --> 00:22:55,630 اور پھر، آپ کر سکتے ہیں یاد رکھیں کہ ایک سے زیادہ breakpoints کے تشکیل دے تاکہ تم 421 00:22:55,630 --> 00:23:00,390 یہ بھی پھانسی دوبارہ شروع کر سکتے، جائیں کوڈ کے بڑے حصے کے دوران، 422 00:23:00,390 --> 00:23:04,790 اور یہ خود بخود توقف کریں گے اگلے وقفے نقطہ پر. 423 00:23:04,790 --> 00:23:07,760 >> اصل میں زیادہ اعلی درجے کی نہیں ہے ٹھیک کرنے والا کھولتا کی خصوصیات، کے ساتھ ساتھ. 424 00:23:07,760 --> 00:23:10,170 لیکن ہم آپ سے رجوع کرنا پڑے گا کچھ بعد ویڈیوز 425 00:23:10,170 --> 00:23:14,090 واقعی کس طرح کے علاوہ چڑھاو کرنے کے لئے ان مخصوص افعال کو استعمال کرنے. 426 00:23:14,090 --> 00:23:15,990 اب کے لئے، آپ کا شکریہ دیکھ کے لئے بہت بہت شکریہ. 427 00:23:15,990 --> 00:23:18,080 اور اچھی قسمت ٹھیک.