>> [موسیقی بجانے]
ڈوگ لایڈ: ٹھیک.
ایک عجیب موضوع کی قسم، ٹھیک ہے؟
جادو کی تعداد.
وہ ہے جب وہ مطلب DOE جادو کی تعداد کے بارے میں بات؟
ویسے، پروگراموں میں سے کچھ ہم CS50 میں لکھا ہے کہ
اب تک کچھ عجیب تھا تعداد قسم کی ان میں پھینک دیا.
شاید وجوہات کی بنا پر ہم ایسا نہیں کرتے مکمل طور پر صحیح اب سمجھ.
مثال کے طور پر، ماریو مسئلہ میں، ہم 23 پرامڈ کے عروج محدود.
ہم واضح طور پر تم نے کہا زیادہ سے زیادہ 23 نہیں جا سکتا.
>> لیکن 23 کا کیا مطلب ہے؟
ویسے، آپ کو پڑھنے کے تو ، احتیاط سے آپ رپورٹ
کہ دیکھا ہے ہو سکتا ہے وجہ ہم 23 میں اسے محدود
معیاری اونچائی کی وجہ سے ایک ٹرمینل ونڈو کے 24 ہے.
اور ہم نے تو پرامڈ اس سے طویل ہو،
یہ عجیب بات کر سکتا ہے جہاں اس کی سکرین سے دور چلتا ہے.
آپ جانتے ہیں اور، کیا کرتا ہے یہ ٹھیک ہے، کے تناظر میں کیا مطلب ہے؟
>> 23 فوری طور پر واضح کا مطلب ہے کسی سے جو آپ کے پروگرام میں لگ رہا ہے
اور شاید ایک مختلف ہے سائز ٹرمنل ونڈو؟
غالبا نہیں.
یہ ٹھیک ہے، کی طرح لگتا ہے.
ویسے، یہ کیوں صرف کم 23 سے زیادہ ہے؟
عام طور پر، اس طرح ہے ایک بری عادت کی اصل
آپ کے کوڈ میں constants کی لکھنے کے لئے.
آپ اصل میں کرتے ہیں جب، ایسا کرنے میں آپ کے کوڈ میں ایک مسلسل لکھنا،
اسے استعمال کرنے کے طور پر کہا جاتا ہے بعض اوقات جادو کی تعداد، کچھ ہے جو
ہم عام طور پر کوشش کریں اور اس سے بچنے کے لئے چاہتے ہیں.
>> مثال کے طور پر، ایک نظر ڈالیں یہاں اس سادہ تقریب میں.
ظاہر ہے کوئی اعداد و شمار نہیں ہے C میں قسم کارڈ یا ڈیک بلایا.
تو میرے ساتھ صبر.
اس کا ایک تھوڑا سا ہے pseudocode کے یہاں میں ملا.
یہ نامی ایک تقریب ہے بظاہر کارڈ نمٹنے
اس پیرامیٹر کے طور پر ایک ڈیک لیتا ہے، اور مجھ سے مرضی پیداوار ایک کارڈ.
>> اور میں یہاں جہاں میں کچھ کر رہا ہوں ، 0 سے 52 چلتا ہے کہ ایک لوپ ہے
اور میں نے ایک کارڈ نمٹنے کے.
ٹھیک ہے، ہم ایک جادو مل گیا ہے یہاں میں نمبر، صحیح.
آپ کو جادو نمبر ہے کیا دیکھتے ہیں؟
یا اس سے زیادہ اہم بات یہ ہے، تم کرتے ہو مسئلہ یہاں کیا دیکھ رہے ہو؟
خاص طور پر اگر یہ صرف ایک تقریب ہے
ایک میں اس کے اپنے فائل میں پر مشتمل ہے کہ فولڈر
مختلف کا ایک گروپ فائلوں، جن میں سے ہر
تاش کے کرنے کے لئے ایک بات کرتا ہے.
شاید یہ ان پچھاڑ، یا ایک ہاتھ نمٹتا پانچ کارڈ کی بجائے ایک کارڈ کی.
>> تم کیا دیکھتے ہو مسئلہ یہاں ہو سکتا ہے؟
آپ جادو نمبر دیکھتے ہیں میں نے کوڈ میں انجکشن ہے؟
یہ درست ہے، 52 ہے.
>> کی طرح، intuitively پر آپ شاید جانتے ہیں، ٹھیک ہے.
کا ایک معیاری پتوں کی طرح کارڈ 52 کارڈ پر مشتمل ہے.
لیکن ہمارے پروگرام میں، یہ صرف ہے قسم کی وہاں کے ارد گرد تیرتا.
اچانک ایک 52 ہے کی طرح ہے.
>> اس کو حل کرنے کا ایک طریقہ مسئلہ یہ کرنا ہے.
اب ہم بہت واضح طور پر ہیں 52 ڈیک سائز باہر بلا.
یہ تھوڑا زیادہ بدیہی ہے جب لوپ کے لئے میں معنی
اس کے بعد ہم، میں کہتا ہوں کہ بعد میں ڈیک سائز کے مقابلے میں کم ہے.
یہ صرف 52 کہہ کے مقابلے میں بہتر لگتا ہے.
اب یہ اصل میں اس مسئلہ کو حل کرتا.
یہ کچھ علامتی دیتا ہے مسلسل مطلب.
لیکن اس قسم کی اصل میں کرتا ہے ایک اور مسئلہ کو متعارف کرانے
کہ فوری طور پر ظاہر نہیں ہو سکتا ہے.
یہاں تک کہ اس متغیر تو globally-- اعلان کیا جاتا ہے
آپ یہ کیا ہے یاد کرتے ہیں ہم اعلان جب جس کا مطلب
عالمی سطح پر مقامی طور پر مقابلے میں ایک متغیر ہے؟
ہم ایک متغیر کا اعلان یہاں تک کہ اگر عالمی سطح پر، کیا ہے تو
ایک تقریب میں کے افعال میں سے ہمارے سوٹ
کارڈ ہیرا پھیری کے ساتھ اس سودے کہ نادانستہ طور پر، ڈیک سائز تبدیل
یا اس کی طرف سے اس کو بڑھاتا ہے 1 یا 1 کی طرف سے کمی واقع ہوتی ہے.
یہ ٹھیک ہے، مصیبت جادو کر سکتا ہے؟
ہم نے ایک سیٹ کے ساتھ نمٹنے کر رہے ہیں خاص طور پر اگر کارڈ کی مکمل ڈیک shuffling کے جہاں
کی ضرورت ہے.
ڈیک سائز کمی واقع ہوئی ہے تو 1 کی طرف سے، مثال کے طور پر، 51،
ہم اصل میں بدل نہیں کر رہے ہیں ممکنہ طور پر تمام کارڈ.
ہم نے ان میں سے ایک باہر جا رہے ہیں.
اور اس قدر شاید ہو سکتا ہے پیشن گوئی یا ایک برا اداکار کی طرف سے استحصال کیا.
>> C ایک کہا جاتا ہے فراہم کرتا ہے پریپروسیسر ہدایت، جس
بھی ایک میکرو کے لئے کہا جاتا ہے علامتی constants کی پیدا.
اور حقیقت میں، آپ پہلے سے ہی ہے ایک پریپروسیسر ہدایت دیکھا،
تم نے اسے سنا نہیں ہے یہاں تک کہ اگر # شامل کے ساتھ اس ملاقات.
یہ ایک میکرو کی ایک اور مثال ہے یا پریپروسیسر ہدایت.
>> راستہ علامتی constants کی تخلیق کرنے کے لئے، یا ایک مسلسل کا نام دینے
یہ زیادہ ہے تاکہ کا مطلب ہے، مندرجہ ذیل کے طور پر ہے.
# وضاحت، نام، متبادل.
ایک طرف بہت ضروری یہاں واقعی فوری.
میں ایک نیم وقفہ نہیں ڈال آپ #defines کے اختتام.
تو یہ ہیں # وضاحت، نام، متبادل ہے.
>> آپ کے پروگرام مرتب کیا جاتا ہے جب، کیا اصل میں ہوتا
جا رہے ہیں تو سنکلک ہے اپنا کوڈ کے ذریعے جانے کے لئے
اور ہر مثال کی جگہ جو کچھ بھی کے ساتھ لفظ "نام" آپ
متبادل کے طور پر ڈال دیا.
Analogously، # شامل ہے تو قسم کی کاپی اور چسپاں کے لئے اسی طرح،
تو # وضاحت کی طرح ہے کو تلاش کرنے اور تبدیل کرنے کے لئے اسی طرح،
کیا تم نے کبھی ایک میں اس خصوصیت کا استعمال کیا ہے تو لفظ پروسیسنگ پروگرام، مثال کے طور پر.
>> مثال کے طور پر، تو تو میں 3.14159265 طور پر PI # وضاحت،
آپ کو بہتر ریاضی ہیں تو مائل اور آپ کو اچانک
3.14159265 پرواز دیکھیں کے ارد گرد آپ کے کوڈ میں،
آپ کو شاید یہ PI کے بارے میں بات کر رہا ہے جانتے ہیں.
لیکن شاید ہم اسے ایک دے سکتے ہیں تھوڑا زیادہ علامتی معنی.
اور ہم اس کی بجائے # وضاحت کہہ سکتے ہیں نمبروں کی کہ گراس کے طور پر PI
میں رکھنے کے لئے نہیں جا رہا ہوں کہ اور اس سے زیادہ پڑھنے.
>> اور کیا میں اس وقت ہونے جا رہا ہے پروگرام ہے جب مرتب وقت ہے
مرتب، پہلی بات یہ ہے کہ کیا ہو گا اس کے ذریعے جائیں گے
اور یہ ہر وقت جگہ لے لے گا یہ، دارالحکومت P، دارالحکومت میں دیکھتا ہے
یہ لفظی کے ساتھ اس کی جگہ لے لیں گے 3.14 اور اسی طرح، تاکہ آپ
یہ ہر قسم کی ضرورت نہیں ہے اب بھی وقت آپ کے پروگرام کے دوران
فعالیت ہے کہ آپ آپ کام کر رہے ہیں کیونکہ، توقع
توڑ کے ساتھ، ضرب، یہ pi کی طرف سے جو کچھ بھی ہے، تقسیم.
>> آپ کو اس تک محدود نہیں کر رہے ہیں صرف تعداد کے لئے متبادل.
مثال کے طور پر، میں # وضاحت کر سکتے ہیں CS50 سٹرنگ کے طور پر کورس.
اس صورت میں، جب پروگرام مرتب کیا جاتا ہے،
# وضاحت کے ذریعے جائیں گے کوڈ، ہر وقت تبدیل
یہ CS50 سٹرنگ کے ساتھ "کورس" دیکھتا ہے.
>> آپ یہاں محسوس کریں گے بھی مجھے لگتا ہے کہ اکثر
# وضاحت اپنے تمام علامتی وضاحت constants کی، تو بات کرنے کی
تمام بڑے حروف میں ہمیشہ رہے ہیں.
یہ ایک کنونشن ہے.
اس کی ضرورت نہیں ہے.
وجہ عام طور پر لوگوں کو استعمال کریں گے تمام دارالحکومتوں وہ #defining کر رہے ہیں جب
صرف یہ ہے کہ یہ بہت واضح بنانے کے لئے ہے میرا کوڈ کے اس مخصوص عنصر
ایک وضاحت مسلسل جاری ہے.
یہ چھوٹے تھا، تو یہ ممکن ہے کہ یہ ایک متغیر کے ساتھ الجھن میں ہو سکتا.
اور یہ کہ شاید ایک اچھی بات نہیں کرنا.
>> تو یہ خاص طور پر حل بہت بہتر ہے
پچھلے والوں کے مقابلے.
میں سب سے پہلے # وضاحت ڈیک سائز 52، تو پھر اب یہاں 52، یا ڈیک سائز کے اپنے استعمال،
ایک بہت زیادہ بدیہی اور بہت محفوظ ہے.
آپ کو ایک مسلسل جوڑتوڑ نہیں کر سکتے ہیں.
تم 52 پلس پلس نہیں کہہ سکتا.
53 کرنے کے لئے تبدیل کرنے کے لئے نہیں جا رہا ہے.
تم کچھ 52 تبدیل نہیں کر سکتے.
>> آپ کو ایک متغیر تبدیل کر سکتے ہیں جس کی قیمت 52 ہے،
جو ہم سے پہلے تھا سے پہلے درست تھا.
اور آپ میں اضافہ کر سکتے 53 کہ متغیر.
لیکن آپ 52 پلس پلس اور نہیں کہہ سکتا اچانک 53 میں 52 کی باری ہے کہ ہے.
52 ہمیشہ 52 ہے.
اور اس لئے تم نادانستہ طور پر تبدیل نہیں کر سکتے اسے یہاں توڑ کی طرف سے ڈیک سائز،
>> ایک اچھا کی طرف یہ اگرچہ کا اثر ہے
کہ آپ کو معلوم ہے کہ نہیں دنیا بھر کے تمام ممالک
سائز 52 تاش کے استعمال کرتے ہیں؟
مثال کے طور پر، اس میں واقعی عام ہے جرمنی، 32 کی ایک ڈیک سائز کا استعمال کرنے کے لئے
وہ کچھ نکالنا جہاں کم قیمت کارڈ کی.
اور اس معاملے میں، میں بندرگاہ میرے سوٹ کرنا چاہتے تھے
ساتھ نمٹنے ہے کہ افعال میں جرمنی کے لئے کارڈ ہیرا پھیری.
میں سب سے پہلے مثال کے طور پر میں کر سکتا ہوں ہم سے ظاہر ہوتا ہے، جاؤ اور تبدیل کرنے کے لئے ہے
32 کے ساتھ اپنے کوڈ میں 52 کے تمام مثالوں.
>> لیکن یہاں، میں # وضاحت تو ڈیک سائز میرا کوڈ کے سب سے اوپر 32 کے طور پر،
میں اسے تبدیل کرنے کی ضرورت ہے، میں کر سکتا ہوں بس جاؤ اور یہ کہ ایک چیز کو تبدیل.
میرا کوڈ تو recompile، کے تمام اچانک اس کے ذریعے تشہیر کرتا ہے.
اصل میں، ہم چھت تبدیل کر سکتے ہیں ہم چاہتے ہیں کسی بھی قیمت پر سائز.
>> میں میں دلچسپی لے سکتے ہیں ڈیک سائز اٹھا کے کھیل؟
>> میں ڈوگ لایڈ ہوں.
اور اس CS50 ہے.