1 00:00:00,000 --> 00:00:02,350 >> [موسیقی بجانے] 2 00:00:02,350 --> 00:00:05,444 3 00:00:05,444 --> 00:00:06,360 ڈوگ لایڈ: ٹھیک. 4 00:00:06,360 --> 00:00:07,770 ایک عجیب موضوع کی قسم، ٹھیک ہے؟ 5 00:00:07,770 --> 00:00:09,050 جادو کی تعداد. 6 00:00:09,050 --> 00:00:12,012 وہ ہے جب وہ مطلب DOE جادو کی تعداد کے بارے میں بات؟ 7 00:00:12,012 --> 00:00:14,220 ویسے، پروگراموں میں سے کچھ ہم CS50 میں لکھا ہے کہ 8 00:00:14,220 --> 00:00:16,660 اب تک کچھ عجیب تھا تعداد قسم کی ان میں پھینک دیا. 9 00:00:16,660 --> 00:00:19,680 شاید وجوہات کی بنا پر ہم ایسا نہیں کرتے مکمل طور پر صحیح اب سمجھ. 10 00:00:19,680 --> 00:00:23,950 مثال کے طور پر، ماریو مسئلہ میں، ہم 23 پرامڈ کے عروج محدود. 11 00:00:23,950 --> 00:00:26,880 ہم واضح طور پر تم نے کہا زیادہ سے زیادہ 23 نہیں جا سکتا. 12 00:00:26,880 --> 00:00:28,702 >> لیکن 23 کا کیا مطلب ہے؟ 13 00:00:28,702 --> 00:00:30,410 ویسے، آپ کو پڑھنے کے تو ، احتیاط سے آپ رپورٹ 14 00:00:30,410 --> 00:00:32,493 کہ دیکھا ہے ہو سکتا ہے وجہ ہم 23 میں اسے محدود 15 00:00:32,493 --> 00:00:36,160 معیاری اونچائی کی وجہ سے ایک ٹرمینل ونڈو کے 24 ہے. 16 00:00:36,160 --> 00:00:38,860 اور ہم نے تو پرامڈ اس سے طویل ہو، 17 00:00:38,860 --> 00:00:41,290 یہ عجیب بات کر سکتا ہے جہاں اس کی سکرین سے دور چلتا ہے. 18 00:00:41,290 --> 00:00:45,140 آپ جانتے ہیں اور، کیا کرتا ہے یہ ٹھیک ہے، کے تناظر میں کیا مطلب ہے؟ 19 00:00:45,140 --> 00:00:48,880 >> 23 فوری طور پر واضح کا مطلب ہے کسی سے جو آپ کے پروگرام میں لگ رہا ہے 20 00:00:48,880 --> 00:00:51,550 اور شاید ایک مختلف ہے سائز ٹرمنل ونڈو؟ 21 00:00:51,550 --> 00:00:52,330 غالبا نہیں. 22 00:00:52,330 --> 00:00:53,080 یہ ٹھیک ہے، کی طرح لگتا ہے. 23 00:00:53,080 --> 00:00:55,005 ویسے، یہ کیوں صرف کم 23 سے زیادہ ہے؟ 24 00:00:55,005 --> 00:00:56,880 عام طور پر، اس طرح ہے ایک بری عادت کی اصل 25 00:00:56,880 --> 00:00:58,940 آپ کے کوڈ میں constants کی لکھنے کے لئے. 26 00:00:58,940 --> 00:01:02,190 آپ اصل میں کرتے ہیں جب، ایسا کرنے میں آپ کے کوڈ میں ایک مسلسل لکھنا، 27 00:01:02,190 --> 00:01:05,630 اسے استعمال کرنے کے طور پر کہا جاتا ہے بعض اوقات جادو کی تعداد، کچھ ہے جو 28 00:01:05,630 --> 00:01:08,030 ہم عام طور پر کوشش کریں اور اس سے بچنے کے لئے چاہتے ہیں. 29 00:01:08,030 --> 00:01:12,830 >> مثال کے طور پر، ایک نظر ڈالیں یہاں اس سادہ تقریب میں. 30 00:01:12,830 --> 00:01:15,726 ظاہر ہے کوئی اعداد و شمار نہیں ہے C میں قسم کارڈ یا ڈیک بلایا. 31 00:01:15,726 --> 00:01:16,600 تو میرے ساتھ صبر. 32 00:01:16,600 --> 00:01:18,910 اس کا ایک تھوڑا سا ہے pseudocode کے یہاں میں ملا. 33 00:01:18,910 --> 00:01:21,050 یہ نامی ایک تقریب ہے بظاہر کارڈ نمٹنے 34 00:01:21,050 --> 00:01:26,570 اس پیرامیٹر کے طور پر ایک ڈیک لیتا ہے، اور مجھ سے مرضی پیداوار ایک کارڈ. 35 00:01:26,570 --> 00:01:30,990 >> اور میں یہاں جہاں میں کچھ کر رہا ہوں ، 0 سے 52 چلتا ہے کہ ایک لوپ ہے 36 00:01:30,990 --> 00:01:33,394 اور میں نے ایک کارڈ نمٹنے کے. 37 00:01:33,394 --> 00:01:35,310 ٹھیک ہے، ہم ایک جادو مل گیا ہے یہاں میں نمبر، صحیح. 38 00:01:35,310 --> 00:01:38,790 آپ کو جادو نمبر ہے کیا دیکھتے ہیں؟ 39 00:01:38,790 --> 00:01:42,280 یا اس سے زیادہ اہم بات یہ ہے، تم کرتے ہو مسئلہ یہاں کیا دیکھ رہے ہو؟ 40 00:01:42,280 --> 00:01:44,310 خاص طور پر اگر یہ صرف ایک تقریب ہے 41 00:01:44,310 --> 00:01:48,030 ایک میں اس کے اپنے فائل میں پر مشتمل ہے کہ فولڈر 42 00:01:48,030 --> 00:01:49,970 مختلف کا ایک گروپ فائلوں، جن میں سے ہر 43 00:01:49,970 --> 00:01:51,670 تاش کے کرنے کے لئے ایک بات کرتا ہے. 44 00:01:51,670 --> 00:01:57,310 شاید یہ ان پچھاڑ، یا ایک ہاتھ نمٹتا پانچ کارڈ کی بجائے ایک کارڈ کی. 45 00:01:57,310 --> 00:01:59,420 >> تم کیا دیکھتے ہو مسئلہ یہاں ہو سکتا ہے؟ 46 00:01:59,420 --> 00:02:03,220 آپ جادو نمبر دیکھتے ہیں میں نے کوڈ میں انجکشن ہے؟ 47 00:02:03,220 --> 00:02:04,390 یہ درست ہے، 52 ہے. 48 00:02:04,390 --> 00:02:06,440 >> کی طرح، intuitively پر آپ شاید جانتے ہیں، ٹھیک ہے. 49 00:02:06,440 --> 00:02:09,740 کا ایک معیاری پتوں کی طرح کارڈ 52 کارڈ پر مشتمل ہے. 50 00:02:09,740 --> 00:02:12,570 لیکن ہمارے پروگرام میں، یہ صرف ہے قسم کی وہاں کے ارد گرد تیرتا. 51 00:02:12,570 --> 00:02:15,280 اچانک ایک 52 ہے کی طرح ہے. 52 00:02:15,280 --> 00:02:18,290 >> اس کو حل کرنے کا ایک طریقہ مسئلہ یہ کرنا ہے. 53 00:02:18,290 --> 00:02:22,724 اب ہم بہت واضح طور پر ہیں 52 ڈیک سائز باہر بلا. 54 00:02:22,724 --> 00:02:25,390 یہ تھوڑا زیادہ بدیہی ہے جب لوپ کے لئے میں معنی 55 00:02:25,390 --> 00:02:28,650 اس کے بعد ہم، میں کہتا ہوں کہ بعد میں ڈیک سائز کے مقابلے میں کم ہے. 56 00:02:28,650 --> 00:02:32,666 یہ صرف 52 کہہ کے مقابلے میں بہتر لگتا ہے. 57 00:02:32,666 --> 00:02:34,290 اب یہ اصل میں اس مسئلہ کو حل کرتا. 58 00:02:34,290 --> 00:02:38,460 یہ کچھ علامتی دیتا ہے مسلسل مطلب. 59 00:02:38,460 --> 00:02:40,820 لیکن اس قسم کی اصل میں کرتا ہے ایک اور مسئلہ کو متعارف کرانے 60 00:02:40,820 --> 00:02:43,770 کہ فوری طور پر ظاہر نہیں ہو سکتا ہے. 61 00:02:43,770 --> 00:02:45,859 یہاں تک کہ اس متغیر تو globally-- اعلان کیا جاتا ہے 62 00:02:45,859 --> 00:02:47,650 آپ یہ کیا ہے یاد کرتے ہیں ہم اعلان جب جس کا مطلب 63 00:02:47,650 --> 00:02:50,500 عالمی سطح پر مقامی طور پر مقابلے میں ایک متغیر ہے؟ 64 00:02:50,500 --> 00:02:53,340 ہم ایک متغیر کا اعلان یہاں تک کہ اگر عالمی سطح پر، کیا ہے تو 65 00:02:53,340 --> 00:02:55,500 ایک تقریب میں کے افعال میں سے ہمارے سوٹ 66 00:02:55,500 --> 00:02:59,750 کارڈ ہیرا پھیری کے ساتھ اس سودے کہ نادانستہ طور پر، ڈیک سائز تبدیل 67 00:02:59,750 --> 00:03:02,727 یا اس کی طرف سے اس کو بڑھاتا ہے 1 یا 1 کی طرف سے کمی واقع ہوتی ہے. 68 00:03:02,727 --> 00:03:04,060 یہ ٹھیک ہے، مصیبت جادو کر سکتا ہے؟ 69 00:03:04,060 --> 00:03:08,261 ہم نے ایک سیٹ کے ساتھ نمٹنے کر رہے ہیں خاص طور پر اگر کارڈ کی مکمل ڈیک shuffling کے جہاں 70 00:03:08,261 --> 00:03:08,760 کی ضرورت ہے. 71 00:03:08,760 --> 00:03:12,804 ڈیک سائز کمی واقع ہوئی ہے تو 1 کی طرف سے، مثال کے طور پر، 51، 72 00:03:12,804 --> 00:03:14,970 ہم اصل میں بدل نہیں کر رہے ہیں ممکنہ طور پر تمام کارڈ. 73 00:03:14,970 --> 00:03:16,500 ہم نے ان میں سے ایک باہر جا رہے ہیں. 74 00:03:16,500 --> 00:03:21,680 اور اس قدر شاید ہو سکتا ہے پیشن گوئی یا ایک برا اداکار کی طرف سے استحصال کیا. 75 00:03:21,680 --> 00:03:24,920 >> C ایک کہا جاتا ہے فراہم کرتا ہے پریپروسیسر ہدایت، جس 76 00:03:24,920 --> 00:03:27,764 بھی ایک میکرو کے لئے کہا جاتا ہے علامتی constants کی پیدا. 77 00:03:27,764 --> 00:03:30,180 اور حقیقت میں، آپ پہلے سے ہی ہے ایک پریپروسیسر ہدایت دیکھا، 78 00:03:30,180 --> 00:03:32,916 تم نے اسے سنا نہیں ہے یہاں تک کہ اگر # شامل کے ساتھ اس ملاقات. 79 00:03:32,916 --> 00:03:37,150 یہ ایک میکرو کی ایک اور مثال ہے یا پریپروسیسر ہدایت. 80 00:03:37,150 --> 00:03:41,290 >> راستہ علامتی constants کی تخلیق کرنے کے لئے، یا ایک مسلسل کا نام دینے 81 00:03:41,290 --> 00:03:43,740 یہ زیادہ ہے تاکہ کا مطلب ہے، مندرجہ ذیل کے طور پر ہے. 82 00:03:43,740 --> 00:03:47,030 # وضاحت، نام، متبادل. 83 00:03:47,030 --> 00:03:49,140 ایک طرف بہت ضروری یہاں واقعی فوری. 84 00:03:49,140 --> 00:03:54,180 میں ایک نیم وقفہ نہیں ڈال آپ #defines کے اختتام. 85 00:03:54,180 --> 00:03:57,310 تو یہ ہیں # وضاحت، نام، متبادل ہے. 86 00:03:57,310 --> 00:03:59,540 >> آپ کے پروگرام مرتب کیا جاتا ہے جب، کیا اصل میں ہوتا 87 00:03:59,540 --> 00:04:01,740 جا رہے ہیں تو سنکلک ہے اپنا کوڈ کے ذریعے جانے کے لئے 88 00:04:01,740 --> 00:04:06,770 اور ہر مثال کی جگہ جو کچھ بھی کے ساتھ لفظ "نام" آپ 89 00:04:06,770 --> 00:04:08,860 متبادل کے طور پر ڈال دیا. 90 00:04:08,860 --> 00:04:13,060 Analogously، # شامل ہے تو قسم کی کاپی اور چسپاں کے لئے اسی طرح، 91 00:04:13,060 --> 00:04:15,700 تو # وضاحت کی طرح ہے کو تلاش کرنے اور تبدیل کرنے کے لئے اسی طرح، 92 00:04:15,700 --> 00:04:19,180 کیا تم نے کبھی ایک میں اس خصوصیت کا استعمال کیا ہے تو لفظ پروسیسنگ پروگرام، مثال کے طور پر. 93 00:04:19,180 --> 00:04:26,345 >> مثال کے طور پر، تو تو میں 3.14159265 طور پر PI # وضاحت، 94 00:04:26,345 --> 00:04:28,720 آپ کو بہتر ریاضی ہیں تو مائل اور آپ کو اچانک 95 00:04:28,720 --> 00:04:31,640 3.14159265 پرواز دیکھیں کے ارد گرد آپ کے کوڈ میں، 96 00:04:31,640 --> 00:04:33,517 آپ کو شاید یہ PI کے بارے میں بات کر رہا ہے جانتے ہیں. 97 00:04:33,517 --> 00:04:35,850 لیکن شاید ہم اسے ایک دے سکتے ہیں تھوڑا زیادہ علامتی معنی. 98 00:04:35,850 --> 00:04:39,850 اور ہم اس کی بجائے # وضاحت کہہ سکتے ہیں نمبروں کی کہ گراس کے طور پر PI 99 00:04:39,850 --> 00:04:42,110 میں رکھنے کے لئے نہیں جا رہا ہوں کہ اور اس سے زیادہ پڑھنے. 100 00:04:42,110 --> 00:04:45,560 >> اور کیا میں اس وقت ہونے جا رہا ہے پروگرام ہے جب مرتب وقت ہے 101 00:04:45,560 --> 00:04:48,530 مرتب، پہلی بات یہ ہے کہ کیا ہو گا اس کے ذریعے جائیں گے 102 00:04:48,530 --> 00:04:51,520 اور یہ ہر وقت جگہ لے لے گا یہ، دارالحکومت P، دارالحکومت میں دیکھتا ہے 103 00:04:51,520 --> 00:04:55,610 یہ لفظی کے ساتھ اس کی جگہ لے لیں گے 3.14 اور اسی طرح، تاکہ آپ 104 00:04:55,610 --> 00:04:58,090 یہ ہر قسم کی ضرورت نہیں ہے اب بھی وقت آپ کے پروگرام کے دوران 105 00:04:58,090 --> 00:05:00,631 فعالیت ہے کہ آپ آپ کام کر رہے ہیں کیونکہ، توقع 106 00:05:00,631 --> 00:05:05,090 توڑ کے ساتھ، ضرب، یہ pi کی طرف سے جو کچھ بھی ہے، تقسیم. 107 00:05:05,090 --> 00:05:08,230 >> آپ کو اس تک محدود نہیں کر رہے ہیں صرف تعداد کے لئے متبادل. 108 00:05:08,230 --> 00:05:12,279 مثال کے طور پر، میں # وضاحت کر سکتے ہیں CS50 سٹرنگ کے طور پر کورس. 109 00:05:12,279 --> 00:05:14,070 اس صورت میں، جب پروگرام مرتب کیا جاتا ہے، 110 00:05:14,070 --> 00:05:16,236 # وضاحت کے ذریعے جائیں گے کوڈ، ہر وقت تبدیل 111 00:05:16,236 --> 00:05:19,900 یہ CS50 سٹرنگ کے ساتھ "کورس" دیکھتا ہے. 112 00:05:19,900 --> 00:05:21,720 >> آپ یہاں محسوس کریں گے بھی مجھے لگتا ہے کہ اکثر 113 00:05:21,720 --> 00:05:26,090 # وضاحت اپنے تمام علامتی وضاحت constants کی، تو بات کرنے کی 114 00:05:26,090 --> 00:05:28,130 تمام بڑے حروف میں ہمیشہ رہے ہیں. 115 00:05:28,130 --> 00:05:28,960 یہ ایک کنونشن ہے. 116 00:05:28,960 --> 00:05:30,170 اس کی ضرورت نہیں ہے. 117 00:05:30,170 --> 00:05:33,900 وجہ عام طور پر لوگوں کو استعمال کریں گے تمام دارالحکومتوں وہ #defining کر رہے ہیں جب 118 00:05:33,900 --> 00:05:37,590 صرف یہ ہے کہ یہ بہت واضح بنانے کے لئے ہے میرا کوڈ کے اس مخصوص عنصر 119 00:05:37,590 --> 00:05:38,820 ایک وضاحت مسلسل جاری ہے. 120 00:05:38,820 --> 00:05:43,730 یہ چھوٹے تھا، تو یہ ممکن ہے کہ یہ ایک متغیر کے ساتھ الجھن میں ہو سکتا. 121 00:05:43,730 --> 00:05:46,120 اور یہ کہ شاید ایک اچھی بات نہیں کرنا. 122 00:05:46,120 --> 00:05:48,910 >> تو یہ خاص طور پر حل بہت بہتر ہے 123 00:05:48,910 --> 00:05:50,550 پچھلے والوں کے مقابلے. 124 00:05:50,550 --> 00:05:59,950 میں سب سے پہلے # وضاحت ڈیک سائز 52، تو پھر اب یہاں 52، یا ڈیک سائز کے اپنے استعمال، 125 00:05:59,950 --> 00:06:01,850 ایک بہت زیادہ بدیہی اور بہت محفوظ ہے. 126 00:06:01,850 --> 00:06:03,280 آپ کو ایک مسلسل جوڑتوڑ نہیں کر سکتے ہیں. 127 00:06:03,280 --> 00:06:05,259 تم 52 پلس پلس نہیں کہہ سکتا. 128 00:06:05,259 --> 00:06:06,800 53 کرنے کے لئے تبدیل کرنے کے لئے نہیں جا رہا ہے. 129 00:06:06,800 --> 00:06:09,390 تم کچھ 52 تبدیل نہیں کر سکتے. 130 00:06:09,390 --> 00:06:12,470 >> آپ کو ایک متغیر تبدیل کر سکتے ہیں جس کی قیمت 52 ہے، 131 00:06:12,470 --> 00:06:14,870 جو ہم سے پہلے تھا سے پہلے درست تھا. 132 00:06:14,870 --> 00:06:17,000 اور آپ میں اضافہ کر سکتے 53 کہ متغیر. 133 00:06:17,000 --> 00:06:21,100 لیکن آپ 52 پلس پلس اور نہیں کہہ سکتا اچانک 53 میں 52 کی باری ہے کہ ہے. 134 00:06:21,100 --> 00:06:23,350 52 ہمیشہ 52 ہے. 135 00:06:23,350 --> 00:06:28,860 اور اس لئے تم نادانستہ طور پر تبدیل نہیں کر سکتے اسے یہاں توڑ کی طرف سے ڈیک سائز، 136 00:06:28,860 --> 00:06:29,940 137 00:06:29,940 --> 00:06:32,390 >> ایک اچھا کی طرف یہ اگرچہ کا اثر ہے 138 00:06:32,390 --> 00:06:38,310 کہ آپ کو معلوم ہے کہ نہیں دنیا بھر کے تمام ممالک 139 00:06:38,310 --> 00:06:40,690 سائز 52 تاش کے استعمال کرتے ہیں؟ 140 00:06:40,690 --> 00:06:45,630 مثال کے طور پر، اس میں واقعی عام ہے جرمنی، 32 کی ایک ڈیک سائز کا استعمال کرنے کے لئے 141 00:06:45,630 --> 00:06:48,020 وہ کچھ نکالنا جہاں کم قیمت کارڈ کی. 142 00:06:48,020 --> 00:06:50,960 اور اس معاملے میں، میں بندرگاہ میرے سوٹ کرنا چاہتے تھے 143 00:06:50,960 --> 00:06:55,390 ساتھ نمٹنے ہے کہ افعال میں جرمنی کے لئے کارڈ ہیرا پھیری. 144 00:06:55,390 --> 00:06:59,440 میں سب سے پہلے مثال کے طور پر میں کر سکتا ہوں ہم سے ظاہر ہوتا ہے، جاؤ اور تبدیل کرنے کے لئے ہے 145 00:06:59,440 --> 00:07:03,570 32 کے ساتھ اپنے کوڈ میں 52 کے تمام مثالوں. 146 00:07:03,570 --> 00:07:07,940 >> لیکن یہاں، میں # وضاحت تو ڈیک سائز میرا کوڈ کے سب سے اوپر 32 کے طور پر، 147 00:07:07,940 --> 00:07:11,730 میں اسے تبدیل کرنے کی ضرورت ہے، میں کر سکتا ہوں بس جاؤ اور یہ کہ ایک چیز کو تبدیل. 148 00:07:11,730 --> 00:07:15,010 میرا کوڈ تو recompile، کے تمام اچانک اس کے ذریعے تشہیر کرتا ہے. 149 00:07:15,010 --> 00:07:18,850 اصل میں، ہم چھت تبدیل کر سکتے ہیں ہم چاہتے ہیں کسی بھی قیمت پر سائز. 150 00:07:18,850 --> 00:07:22,500 >> میں میں دلچسپی لے سکتے ہیں ڈیک سائز اٹھا کے کھیل؟ 151 00:07:22,500 --> 00:07:23,430 >> میں ڈوگ لایڈ ہوں. 152 00:07:23,430 --> 00:07:25,840 اور اس CS50 ہے. 153 00:07:25,840 --> 00:07:27,772