1 00:00:00,000 --> 00:00:01,940 [Powered by Google Translate] [Walkthrough - مسئلہ 2 سیٹ] 2 00:00:01,940 --> 00:00:04,130 [Zamyla چان - ہارورڈ یونیورسٹی] 3 00:00:05,170 --> 00:00:07,490 یہ [CS50 ہے. CS50.TV] 4 00:00:07,490 --> 00:00:10,750 ٹھیک ہے. ہیلو، سب لوگ، اور 2 Walkthrough کا استقبال ہے. 5 00:00:10,750 --> 00:00:14,330 سب سے پہلے، میں آپ کو 1 pset ختم کرنے کے لئے کو مبارکباد کرنا چاہتے ہیں. 6 00:00:14,330 --> 00:00:18,140 میں جانتا ہوں کہ وہ تم میں سے بعض کے لئے تھوڑا مشکل ہو سکتا ہے، 7 00:00:18,140 --> 00:00:20,460 اپنا پہلا کمپیوٹر پروگرام ہے کہ آپ نے لکھا جا سکتا تھا، 8 00:00:20,460 --> 00:00:24,500 لیکن صرف اس کے آخر میں یہ یاد رکھنا، جب آپ سمسٹر کے آخر میں واپس نظر آئے، 9 00:00:24,500 --> 00:00:29,820 آپ 1 pset کو دیکھو اور تم کہتے ہو، "ارے، میں کیا کر سکتا تھا کہ 5 منٹ میں." گے 10 00:00:29,820 --> 00:00:35,700 تو اور اعتماد ہے کہ آپ کو اس کے آخر میں 1 pset ضرور بہت آسان تلاش کر لیں گے. 11 00:00:35,700 --> 00:00:40,640 لیکن اب یہ ایک بہت بڑی کامیابی ہے، اور کیا کے لئے مبارک ہو. 12 00:00:40,640 --> 00:00:44,010 اب ایک فوری نوٹ پہلے بھی ہم walkthrough کے گوشت میں ملتا ہے. 13 00:00:44,010 --> 00:00:48,340 میں صرف ایک فوری نوٹ بنانے کے لئے چاہتے ہیں کہ میں کبھی کبھی کافی وقت نہیں ہو گا 14 00:00:48,340 --> 00:00:52,500 walkthroughs کے دوران مسئلہ سیٹ کرنے کی ہر ایک طریقہ کے ذریعے جانے کے لئے 15 00:00:52,500 --> 00:00:56,140 بلکہ نفاذ کی 1 یا 2 قسم شاید توجہ مرکوز، 16 00:00:56,140 --> 00:00:57,750 طریقوں ہے کہ آپ یہ کر سکتے ہیں. 17 00:00:57,750 --> 00:01:01,970 لیکن اس کا کہنا ہے کہ آپ نے یہ دوسرا راستہ کرنے سے منع کر رہے ہیں نہیں ہے. 18 00:01:01,970 --> 00:01:05,980 اکثر، کمپیوٹر سائنس کے ساتھ کے طور پر، کام کرنے کے متعدد طریقے، 19 00:01:05,980 --> 00:01:12,190 اور اس بات کو یقینی طور حل کا ایک مختلف قسم سے میں پیش کیا ہو سکتا ہے استعمال کرنے کے لئے آزاد محسوس کرتے ہیں. 20 00:01:12,190 --> 00:01:14,520 [2 pset: Crypto - Zamyla چان - zamyla@cs50.net] 21 00:01:14,520 --> 00:01:17,160 [pset2 - 0. سوالات کے ایک حصے - 1. کیسر - 2. Vigenere] 22 00:01:17,160 --> 00:01:20,650 ٹھیک ہے. تو مسئلہ 2 سیٹ: Crypto ایک مذاق ہے. 23 00:01:20,650 --> 00:01:24,500 ایک بار پھر، آپ کو سوالات کے ایک حصے کے کے ساتھ ہر pset کے ساتھ شروع کر دیں گے 24 00:01:24,500 --> 00:01:29,600 جو اپنے مقرر کردہ تعلیم کے ساتھی کے ساتھ آپ کے حصے میں منعقد کیا جا رہا ہے. 25 00:01:29,600 --> 00:01:31,670 ہم جا walkthrough کے دوران ان کے ذریعے جانے کے لئے نہیں کر رہے ہیں، 26 00:01:31,670 --> 00:01:35,100 لیکن وہ ضرور آپ کی مدد pset مکمل کریں گے. 27 00:01:35,100 --> 00:01:38,100 تو مسئلہ سیٹ کا پہلا حصہ کیسر ہے. 28 00:01:38,100 --> 00:01:43,470 اور کیسر میں کوئی آپ ایک عددی کے ساتھ ایک اہم ہو جائے گا، 29 00:01:43,470 --> 00:01:48,420 اور آپ کو عبارت کے ایک تار ہے کہ وہ آپ کی فراہم کردہ خفیہ 30 00:01:48,420 --> 00:01:50,670 اور انہیں ایک خفیہ بات واپس دے دینا. 31 00:01:50,670 --> 00:01:56,050 اگر کسی کے پاس ایک کرسمس کہانی دیکھا ہے کہ اس کی ایک مثال ہے. 32 00:01:56,050 --> 00:01:59,090 پھر مسئلہ سیٹ کے دوسرے حصے Vigenere ہے، 33 00:01:59,090 --> 00:02:01,790 جس میں ایک سے زیادہ اعلی درجے کی خفیہ کاری کی ٹیکنالوجی ہے. 34 00:02:01,790 --> 00:02:05,640 اور اس طرح ہم متن کا ایک ٹکڑا encipher جا رہے ہیں، 35 00:02:05,640 --> 00:02:09,600 بجائے صرف ایک عددی کے بغیر، ہم اصل میں یہ ضابطہ کاری کے لئے جا رہے ہیں 36 00:02:09,600 --> 00:02:13,340 مطلوبہ الفاظ کہ صارف ہمیں فراہم کرے گا. 37 00:02:16,270 --> 00:02:22,090 ٹھیک ہے، تو آلات میں آج پہلے سے مؤثر ہتھیار دراصل آلات کو اپ ڈیٹ کرنے کے لئے رکھا جائے جا رہی ہے. 38 00:02:22,090 --> 00:02:26,430 بحث بورڈ پر ہم جیسی چیزوں دیکھ، "کیوں؟ یہ کام نہیں کرتا" 39 00:02:26,430 --> 00:02:28,110 "50 کام جمع کرائیں کیوں نہیں ہے؟" 40 00:02:28,110 --> 00:02:31,830 اور اکثر حل اصل میں صرف اپنے آلات کو اپ ڈیٹ کرنے کی ہے. 41 00:02:31,830 --> 00:02:36,730 اور اگر ایسا ہے تو آپ کو صرف آپ کے آلے sudo یم Y ٹرمنل ونڈو میں چلانے کے - 42 00:02:36,730 --> 00:02:40,040 ، اپ ڈیٹ - جو کہہ رہے ہیں جی ہاں پرچم ہے، ہر چیز کو اپ ڈیٹ 43 00:02:40,040 --> 00:02:42,280 تو اپنے آلات کو اپ ڈیٹ کی ضرورت اگر ہو جائے گا. 44 00:02:42,280 --> 00:02:46,960 اور میں کوئی تکلیف ہے اگر آپ کے پاس پہلے سے ہی آلات کے تازہ ترین ورژن میں ہیں نہیں ہے. 45 00:02:46,960 --> 00:02:51,280 تو یہ کوئی نئے اپ ڈیٹس دستیاب اور آپ کے ساتھ کام کرنا جاری رکھ سکتے ہیں کہیں گے. 46 00:02:51,280 --> 00:02:55,800 لیکن یہ اچھی بات ہے بھی ہر وقت ہے کہ آپ کو آلات کھولتے پھانسی 47 00:02:55,800 --> 00:02:57,140 کیونکہ ہم اب بھی ہیں بہت - 48 00:02:57,140 --> 00:03:00,320 آلات میں اسے ٹھیک - کبھی کبھی اگر ہم نے ایک مسئلے میں آتے ہیں. 49 00:03:00,320 --> 00:03:03,180 تو اس بات کا یقین کر لیں کہ آپ آلات کے تازہ ترین ورژن ہے 50 00:03:03,180 --> 00:03:07,710 چلائیں اور ہے کہ اس کو اپ ڈیٹ. 51 00:03:07,710 --> 00:03:14,360 ٹھیک ہے. کے بعد سے تو ہم خط کے ساتھ نمٹنے کر رہے ہیں اور تبدیل کرنے، enciphering چیزوں، 52 00:03:14,360 --> 00:03:20,410 ہم واقعی ہمارے ASCII چارٹ کے ساتھ سب سے بہترین دوست بن کرنا چاہتے ہیں جا رہے ہیں. 53 00:03:20,410 --> 00:03:24,350 اس میں بے شمار ہیں آن لائن ہیں، اگر آپ محسوس کرتے ہیں. شاید آپ کی اپنی بھی ہے. 54 00:03:24,350 --> 00:03:29,950 بنیادی طور پر، ہر خط اور ہر نمبر اور ہر کردار کے ساتھ 55 00:03:29,950 --> 00:03:32,210 تعداد ان کے ساتھ منسلک ہے، 56 00:03:32,210 --> 00:03:38,670 اور تو یہ اچھا ہے کہ اصل خط کے ساتھ ساتھ ان کے ASCII اقدار کو دیکھنے کے لئے. 57 00:03:38,670 --> 00:03:42,310 ہے کہ آپ کو مسئلہ کے سیٹ میں ضرور مدد کرے گا. 58 00:03:42,310 --> 00:03:45,750 ایک بات ہے جو واقعی کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے اس مسئلے کے سیٹ میں مدد کی اصل کو پرنٹ تھا، 59 00:03:45,750 --> 00:03:48,380 اور جیسا کہ میں دیکھ رہا تھا، میں اس پر اصل میں متوجہ کرے، 60 00:03:48,380 --> 00:03:51,150 لکھنا، "اگر یہ وہاں جانے کے لئے ہے، تو ..." 61 00:03:51,150 --> 00:03:55,270 کی قسم اس پر میں اپنی طرف متوجہ کریں اور اس کو نشان زد کر کے، اپنے ASCII ٹیبل کے ساتھ سب سے بہترین دوست بن جاتے ہیں. 62 00:03:57,240 --> 00:04:00,750 اس کے بعد ہم اپنے کو ضائع کرنے میں کچھ دوسرے آلات ہیں. 63 00:04:00,750 --> 00:04:03,750 اس کے بجائے اصل میں ان کی ان پٹ کی سب کے لئے صارف نے فورا ہی 64 00:04:03,750 --> 00:04:05,230 ہم ایک مجموعہ کرنے کے لئے جا رہے ہیں. 65 00:04:05,230 --> 00:04:06,880 ہم انہیں کچھ ان پٹ کے لئے فوری طور پر جا رہے ہیں، 66 00:04:06,880 --> 00:04:11,350 لیکن ہم یہ بھی صرف کمانڈ لائن کے دلائل استعمال کرنے کے لئے جا رہے ہیں. 67 00:04:11,350 --> 00:04:15,600 تو جب وہ اپنے پروگرام چلاتے ہیں، عام طور پر آپ کا کہنا ہے کہ / ہیلو.، مثال کے طور پر، 68 00:04:15,600 --> 00:04:17,310 اگر آپ کا پروگرام hello.c تھا. 69 00:04:17,310 --> 00:04:22,500 لیکن اس کے بجائے وقت صرف یہ کہہ رہی ہیں، وہ الفاظ، دلائل کے بعد رکھ سکتے ہیں. 70 00:04:22,500 --> 00:04:27,210 اور اس طرح ہم نے استعمال کرنے کے لئے جا رہی جو کچھ بھی وہ اپنے ان پٹ کے طور پر ساتھ ساتھ ہمارے لئے میں گزر رہے ہیں، 71 00:04:27,210 --> 00:04:31,720 صرف عددی کے لئے فوری رد عمل ظاہر سے باہر بھی منتقل لیکن کمانڈ لائن دلائل کا استعمال کرتے ہوئے. 72 00:04:31,720 --> 00:04:36,590 اور پھر ہم arrays اور ڈور، جو ہم نے ایک بہت استعمال کریں گے اور ساتھ ہی میں چلے جائیں گے. 73 00:04:41,460 --> 00:04:44,810 یہاں صرف 1 منی ASCII چارٹ کی ایک مثال ہے. 74 00:04:44,810 --> 00:04:48,460 جیسا کہ میں نے کہا، ہر خط ایک نمبر کے مساوی ہے، 75 00:04:48,460 --> 00:04:52,510 اور اسی طرح اپنے آپ کو اس سے واقف ہیں. یہ ہاتھ میں آئے گا. 76 00:04:52,510 --> 00:04:55,610 اور بعد میں جب ہم کچھ تعداد کے ساتھ نمٹنے کے ASCIIMath کرنے شروع - 77 00:04:55,610 --> 00:05:00,110 انہوں نے کہا کہ ان تفریق - تو یقینی طور پر اس چارٹ سے رجوع اچھا ہے. 78 00:05:02,860 --> 00:05:06,920 کچھ ہے جو آپ کے ساتھ ادا کیا جا سکتا ہے - تو یہاں کیسر صفر کی ایک مثال ہے. 79 00:05:06,920 --> 00:05:11,190 یہ صرف ایک پہیا ہے. بنیادی طور پر، ایک بیرونی حروف ہے تو اور ایک اندرونی حروف ہے. 80 00:05:11,190 --> 00:05:15,290 تو یہیں کیسر صفر 0 کے بٹن کے ساتھ ایک مثال ہے. 81 00:05:15,290 --> 00:05:21,540 بنیادی طور پر، ایک کے ساتھ منسلک کیا جاتا ہے، B B کے ساتھ منسلک ہے، Z. تک راستہ 82 00:05:21,540 --> 00:05:26,590 لیکن پھر اس کا کہنا ہے کہ ہم نے مثال کے طور پر 3 کا ایک اہم چاہتے تھے،. 83 00:05:26,590 --> 00:05:33,280 اس وقت ہم اندرونی وہیل کو باری باری دکھائے گا تاکہ اب D، وغیرہ کے ساتھ سیدھ میں لاتا ہے 84 00:05:33,280 --> 00:05:35,250 اور اس طرح یہ بنیادی طور پر یہ ہے کہ ہم کیا کرنے جا رہے ہیں. 85 00:05:35,250 --> 00:05:38,340 ہم ایک پہیا نہیں ہے، لیکن جو ہم کرنے جا رہے ہیں ہمارے پروگرام 86 00:05:38,340 --> 00:05:44,490 کی طرح ہمارے ساتھ تعداد کی ایک مقررہ رقم حروف تہجی جاتے ہیں. 87 00:05:44,490 --> 00:05:48,650 تو جیسا کہ میں نے پہلے کہا، ہم کمانڈ لائن دلائل سے نمٹنے جا رہے ہیں 88 00:05:48,650 --> 00:05:50,390 کے ساتھ ساتھ ایک عددی حاصل کرنے کے طور پر. 89 00:05:50,390 --> 00:05:55,050 تو اس طرح ہے کہ ایک صارف آپکے کیسر پروگرام چلائے جائیں گے کہہ رہا ہے. کیسر / 90 00:05:55,050 --> 00:05:58,090 اور پھر اس کے بعد ایک نمبر درج ہے. 91 00:05:58,090 --> 00:06:01,130 اور یہ تعداد چابی، تبدیلی کی نمائندگی کرتا ہے، 92 00:06:01,130 --> 00:06:06,740 کئی بار آپ اپنے کیسر صفر کے اندرونی پہیہ گھومنے جا رہے ہیں کہ کس طرح. 93 00:06:06,740 --> 00:06:08,390 اور اس لئے تم یہاں ایک مثال دیکھتے ہیں. 94 00:06:08,390 --> 00:06:14,550 اگر ہم ہمارے کیسر صفر میں ایک L سے خط داخل، 95 00:06:14,550 --> 00:06:19,520 تو اس O کے ذریعے D ان پٹ کیونکہ وہ ہر 3 گنا سے زیادہ منتقل خط ہے، 96 00:06:19,520 --> 00:06:22,080 کہ میں نے تمہیں دکھایا وہیل کی مثال کی طرح ہے. 97 00:06:22,080 --> 00:06:25,300 تو پھر اگر آپ نے درج کی، مثال کے طور پر، یہ CS50 ہے! 98 00:06:25,300 --> 00:06:27,960 تو اس خط کی بھی منتقل کریں گے. 99 00:06:27,960 --> 00:06:31,040 اور یہ کیسر اور Vigenere دونوں میں ایک اہم بات ہے 100 00:06:31,040 --> 00:06:34,890 یہ ہے کہ ہم کسی بھی حروف غیر پر جا رہے ہیں. 101 00:06:34,890 --> 00:06:39,160 تو کسی بھی خالی جگہیں، حروف، وغیرہ، نمبرز، ہم ان کے ایک ہی رکھنے کے لئے جا رہے ہیں. 102 00:06:39,160 --> 00:06:42,920 ہم صرف اس صورت میں خط منتقل کی جا رہے ہیں. 103 00:06:42,920 --> 00:06:45,870 تو جیسا کہ آپ وہیل کے طور پر دیکھتے ہیں، ہم صرف ہم پر دستیاب خطوط، 104 00:06:45,870 --> 00:06:50,150 تو ہم صرف خطوط کو تبدیل کرنے اور خط کو خفیہ کرنا چاہتے ہیں. 105 00:06:51,370 --> 00:06:56,720 تو سب سے پہلے کام، تم نے دیکھا ہے کہ مسئلہ میں کیسر کے لئے استعمال 2 سیٹ 106 00:06:56,720 --> 00:07:05,280 کیسر چلانے پھر ایک نمبر درج کریں جب آپ اس ٹرمینل میں حصہ ہے. 107 00:07:05,280 --> 00:07:10,940 تو ہے کہ ہم کیا کرنے کی ضرورت ہے کسی نہ کسی طرح اس چابی حاصل کرنے کے لئے اور اس تک رسائی حاصل کی ہے. 108 00:07:10,940 --> 00:07:14,730 اور اس طرح ہم کسی نہ کسی طرح دیکھنے کے لئے یہ دوسری کمانڈ لائن دلیل ہونے جا رہا ہے کرنا چاہتے ہیں. 109 00:07:14,730 --> 00:07:20,950 پہلا کیسر / جا رہا ہے، اور اگلے ایک اہم تعداد بننے جا رہا ہے. 110 00:07:22,190 --> 00:07:29,200 لہذا اس سے قبل ہم نے int اہم (باطل) ہمارے C پروگراموں کو شروع کرنے کے لئے تھا. 111 00:07:29,200 --> 00:07:31,790 ہم واپس چھیل تھوڑا سا پرت کے لئے جا رہے ہیں 112 00:07:31,790 --> 00:07:34,720 اور اصل میں دیکھو کہ باطل میں ہمارے مرکزی تقریب گزر کے بجائے 113 00:07:34,720 --> 00:07:37,920 ہم اصل میں 2 پیرامیٹرز کے ساتھ کام کر رہے ہو. 114 00:07:37,920 --> 00:07:44,070 ہم نے ایک نام argc int ہے اور پھر تاروں کی ایک صف قرار دیا argv. 115 00:07:44,070 --> 00:07:46,030 تو argc ایک عدد صحیح ہے، 116 00:07:46,030 --> 00:07:49,640 اور یہ اپنے پروگرام میں منظور دلائل کی تعداد کی نمائندگی کرتا ہے. 117 00:07:49,640 --> 00:07:53,590 اور پھر argv اصل میں منظور دلائل کی فہرست ہے. 118 00:07:53,590 --> 00:08:00,820 دلائل کے تمام ڈور ہیں، اور تو argv ایک ڈور کی صف، فہرست، کی نمائندگی کرتا ہے. 119 00:08:01,830 --> 00:08:03,990 arrays تھوڑا سا کے بارے میں بات کرنے دو 120 00:08:03,990 --> 00:08:05,940 Arrays بنیادی طور پر ایک نئے اعداد و شمار کا ڈھانچہ ہیں. 121 00:08:05,940 --> 00:08:09,660 ہم ints ہے، ہم ڈبلز ہے، ہم ڈور ہے، اور اب ہم arrays ہے. 122 00:08:09,660 --> 00:08:13,820 Arrays اعداد و شمار کے ڈھانچے جو اسی قسم کی ایک سے زیادہ اقدار چیت کر سکتے ہیں ہیں، 123 00:08:13,820 --> 00:08:18,320 تو بنیادی طور پر، جو قسم آپ چاہتے ہیں کی ایک فہرست ہے. 124 00:08:18,320 --> 00:08:24,400 بنیادی طور پر، اگر آپ نے سب 1 متغیر میں integers کی ایک فہرست کی ضرورت تھی، 125 00:08:24,400 --> 00:08:29,090 تو آپ کو ایک نیا متغیر قسم int صف کی تھی پیدا ہوگا. 126 00:08:29,090 --> 00:08:34,450 تو arrays صفر حساب سے ترتیب ہیں، کا مطلب یہ ہے کہ صف کے پہلے عنصر 0 انڈیکس میں ہے. 127 00:08:34,450 --> 00:08:41,799 اگر اس مثال میں کے طور پر 4 کی حد کے، صف ہے، آپ کا آخری عنصر صفحہ 3 میں تو ہو جائے گا، 128 00:08:41,799 --> 00:08:44,810 1 - جس میں 4 ہے. 129 00:08:45,940 --> 00:08:48,420 تو صف بنانے کے لئے، آپ کو اس طرح کچھ کرنا ہوگا. 130 00:08:48,420 --> 00:08:51,440 کا کہنا ہے کہ آپ کو ایک ڈبل صف چاہتے تھے. 131 00:08:51,440 --> 00:08:56,520 یہ اعداد و شمار کی قسم کی کسی بھی قسم کے لئے جاتا ہے، تاہم. 132 00:08:56,520 --> 00:09:00,210 تو کا کہنا ہے کہ آپ کو ایک ڈبل صف چاہتے ہیں. کہتے ہیں کہ تم اس میل باکس کو فون کرنا چاہتے ہیں. 133 00:09:00,210 --> 00:09:04,760 جیسا کہ تم کسی دوسرے ڈبل ابتدا کریں گے، 134 00:09:04,760 --> 00:09:09,760 تم ڈبل اور پھر نام کا کہنا ہے کہ، لیکن اس وقت ہم مربع بریکٹ ڈال، 135 00:09:09,760 --> 00:09:13,570 اور پھر نمبر صف کی لمبائی ہو جائے گا. 136 00:09:13,570 --> 00:09:16,840 یاد رکھیں کہ ہم arrays میں کبھی لمبائی تبدیل نہیں کر سکتے ہیں، 137 00:09:16,840 --> 00:09:21,230 لہذا آپ کو ہمیشہ اور منتخب کرنے کے لئے باکس کتنے کی وضاحت کی ضرورت ہے، 138 00:09:21,230 --> 00:09:25,440 کتنی اقدار آپ کے صف پر منعقد ہو رہا ہے. 139 00:09:25,440 --> 00:09:31,820 تو آپ کی صف میں مختلف اقدار کو قائم کرنے کے لئے، آپ کو اس مندرجہ ذیل نحو کو استعمال کرنے کے لئے جا رہے ہیں، 140 00:09:31,820 --> 00:09:33,200 کے طور پر آپ سلائڈ پر دیکھتے ہیں. 141 00:09:33,200 --> 00:09:37,620 تم نے میل باکس انڈیکس 0 1.2 مقرر کیا جائے گا، 142 00:09:37,620 --> 00:09:42,180 میل باکس انڈیکس 1 2.4 سیٹ، وغیرہ 143 00:09:42,180 --> 00:09:47,910 اب کہ ہم arrays کا جائزہ لینے کے ایک سا ہے، argc اور argv واپس جانے. 144 00:09:47,910 --> 00:09:52,220 ہم جانتے ہیں کہ argv اب ڈور کی ایک صف ہے. 145 00:09:52,220 --> 00:09:55,080 تو جب ایک صارف میں گزر - کا کہنا ہے کہ وہ ایک پروگرام چلا رہے ہیں - 146 00:09:55,080 --> 00:09:58,740 انہوں نے کا کہنا ہے کہ / ہیلو ڈیوڈ Malan، 147 00:09:58,740 --> 00:10:05,160 کیا پروگرام کے لئے آپ کے پاس پہلے سے ہی اصل میں کیا argc اور argv کے ساتھ ہے آئے گا. 148 00:10:05,160 --> 00:10:07,620 تو آپ کو اس کے بارے میں فکر کرنے کی ضرورت نہیں ہے. 149 00:10:07,620 --> 00:10:14,370 اس معاملے میں Argc 3 کیونکہ یہ خالی جگہوں کی طرف سے 3 الگ الگ الفاظ دیکھتا ہے. 150 00:10:14,370 --> 00:10:18,850 اور تو اس مثال میں صف، پہلے انڈیکس / ہیلو گی. 151 00:10:18,850 --> 00:10:21,770 اگلے ایک ڈیوڈ، اگلے ایک Malan. 152 00:10:21,770 --> 00:10:25,640 کیا کسی کو فورا کیا argv کے درمیان تعلقات، 153 00:10:25,640 --> 00:10:28,990  صف، اور argc ہے؟ 154 00:10:32,820 --> 00:10:38,090 جی ہاں. اس میں ہم args.c. میں ایک مثال میں لے کر آتی ہوں 155 00:10:38,090 --> 00:10:42,880 چلو دیکھتے ہیں اگر ہم 2 کے درمیان تعلقات کا فائدہ لے سکتے ہیں. 156 00:10:42,880 --> 00:10:46,550 یہاں آپ آلے میں تلاش کر سکتے ہیں ڈیفالٹ کی درخواست 157 00:10:46,550 --> 00:10:49,450 ج فائلوں کو کھولنے کے لئے کبھی کبھی Emacs ہے. 158 00:10:49,450 --> 00:10:54,660 لیکن ہم gedit کے ساتھ نمٹنے کے لئے کرنا چاہتے ہیں، جو آپ کر سکتے ہیں ہے آپ کو اپنے C فائل پر کلک کر سکتے ہیں، 159 00:10:54,660 --> 00:11:04,580 خصوصیات کے ساتھ کھولو، اور پھر gedit، ڈیفالٹ کے طور پر مقرر کریں منتخب کریں، 160 00:11:04,580 --> 00:11:13,020 اور اب آپ کے پروگرام کے بجائے gedit Emacs میں کھلنا چاہیے. 161 00:11:14,710 --> 00:11:16,290 ٹھیک ہے. 162 00:11:17,120 --> 00:11:25,520 تو میں یہاں ایک پروگرام ہے کہ میں ہر ایک کمانڈ لائن دلیل پرنٹ کرنا چاہتے ہیں ہے. 163 00:11:25,520 --> 00:11:32,050 تو جو کچھ بھی صارف آدانوں، میں بنیادی طور پر یہ ایک نئی سطر میں ان سے واپس کرنا چاہتا ہوں. 164 00:11:32,050 --> 00:11:36,710 تو ہے کہ ایک ساخت ہے کہ ہم کچھ iterate استعمال کر سکتے ہیں - 165 00:11:36,710 --> 00:11:40,380 کچھ ہے جو تم شاید اپنے pset 1 میں استعمال کیا ہے؟ 166 00:11:40,380 --> 00:11:45,840 اگر آپ چیزوں کی ایک سیٹ نمبر کے ذریعے جانے کے لئے کرنا چاہتے ہیں؟ >> لوپ [طالب علم]. 167 00:11:45,840 --> 00:11:48,910 لوپ کے لیے. بالکل. تو لوپ کے ساتھ شروع. 168 00:11:48,910 --> 00:11:56,900 ہم int میں 0 = ہے. چلو صرف ایک معیاری ابتدا متغیر کے ساتھ شروع کرتے ہیں. 169 00:11:56,900 --> 00:12:02,370 میں ایک سیٹ کے لئے حالات اور چھوڑ دیں تو کہتے ہیں کہ میں + +، معاملات کو وہاں جا جا رہا ہوں. 170 00:12:02,370 --> 00:12:04,090 ٹھیک ہے. 171 00:12:04,090 --> 00:12:11,590 تو argv واپس سوچ، اگر argv پروگرام میں منظور دلائل کی فہرست میں ہے 172 00:12:11,590 --> 00:12:15,380 اور argc پروگرام میں دلائل کی تعداد ہے، 173 00:12:15,380 --> 00:12:21,280 تو اس کا مطلب ہے کہ بنیادی طور پر argc argv کی لمبائی، ٹھیک ہے، 174 00:12:21,280 --> 00:12:28,970 کیونکہ وہاں argc کی قیمت کے طور پر بہت سے دلائل کے طور پر جا رہے ہیں. 175 00:12:28,970 --> 00:12:35,910 تو اگر ہم argv میں ہر عنصر iterate کرنا چاہتے ہیں، 176 00:12:35,910 --> 00:12:43,290 ہم ہر وقت دیا انڈیکس میں argv میں متغیر تک رسائی حاصل کرنا چاہتے ہیں جا رہے ہیں. 177 00:12:43,290 --> 00:12:49,060 جو اس کے ساتھ کی نمائندگی کیا جا سکتا ہے، ٹھیک ہے؟ 178 00:12:49,060 --> 00:12:53,430 یہ متغیر اس صورت میں خاص سٹرنگ کی نمائندگی کرتا ہے 179 00:12:53,430 --> 00:12:57,030 کیونکہ یہ ایک تار صف ہے - کہ دیا انڈیکس میں مخصوص اسٹرنگ ہے. 180 00:12:57,030 --> 00:13:00,690 ہم کیا کرنا چاہتے ہیں، ہم اس معاملے میں پرنٹ کرنا چاہتے ہیں، تو چلو printf کا کہنا ہے کہ. 181 00:13:00,690 --> 00:13:04,680 اور اب argv سٹرنگ ہے، تو ہم نے اس پلیس ہولڈر کو وہاں رکھنا چاہتا ہوں. 182 00:13:04,680 --> 00:13:08,430 صرف اچھے لگ رہے ہو ہم نے ایک نئی لائن کی ضرورت ہے. 183 00:13:08,430 --> 00:13:12,530 تو یہاں ہم نے ایک لوپ کے لئے ہے. ہم شرط نہیں ہے. 184 00:13:12,530 --> 00:13:20,020 تو میں 0 میں شروع ہوتا ہے، اور پھر ہر وقت یہ دیا سٹرنگ کو پرنٹ کرنے کے لئے جا رہا ہے 185 00:13:20,020 --> 00:13:22,980 صف میں اس مخصوص انڈیکس میں. 186 00:13:22,980 --> 00:13:28,410 تو جب ہم صف میں عناصر چھپائی کو روکنے کے لئے چاہتے ہیں؟ 187 00:13:28,410 --> 00:13:35,720 جب ہم ختم کر چکے ہیں، ہے نا؟ جب ہم صف کے آخر تک پہنچ چکے. 188 00:13:35,720 --> 00:13:38,870 تو ہم صف کی لمبائی ماضی کی حد سے تجاوز نہیں کرنا چاہتا، 189 00:13:38,870 --> 00:13:43,700 اور ہم نے پہلے سے ہی پتہ ہے کہ ہم اصل میں فعال طور پر تلاش کریں کہ کیا argv کی لمبائی ہے کی ضرورت نہیں ہے 190 00:13:43,700 --> 00:13:47,520 کیونکہ اس نے ہمیں دیا ہے، اور وہ کیا ہے؟ Argc. بالکل. 191 00:13:47,520 --> 00:13:56,640 تو ہم کو کئی بار یہ عمل argc نمبر کرنا چاہتے ہیں. 192 00:13:56,640 --> 00:13:59,550 میں صحیح ڈائریکٹری میں نہیں ہوں. 193 00:14:02,100 --> 00:14:03,490 ٹھیک ہے. 194 00:14:03,490 --> 00:14:08,990 اب بنانے args. کوئی غلطیاں، جو بہت اچھا ہے. 195 00:14:08,990 --> 00:14:11,430 تو صرف args چلانے. 196 00:14:11,430 --> 00:14:15,130 کیا یہ ہمیں واپس جا رہا ہے؟ یہ صرف اسے واپس پرنٹ جا رہا ہے. 197 00:14:15,130 --> 00:14:18,320 انہوں نے کہا کہ آپ اس پروگرام میں args inputted، میں یہ آپ کو واپس دینے جا رہا ہوں. " 198 00:14:18,320 --> 00:14:23,170 تو کا کہنا ہے کہ ہم args تو FOO بار کہنا چاہتا ہوں. 199 00:14:23,170 --> 00:14:26,570 تو تو اسے پرنٹ باہر ہمارے پاس واپس. ٹھیک ہے؟ 200 00:14:26,570 --> 00:14:30,790 تو تم کس طرح استعمال کر سکتے ہیں argc اور argv کی ایک مثال ہے 201 00:14:30,790 --> 00:14:33,460 اس argc جاننے argv کی لمبائی کی نمائندگی کرتا ہے. 202 00:14:33,460 --> 00:14:42,750 اس بات کا یقین کر لیں کہ آپ کبھی بھی صف کی لمبائی سے باہر نہیں arrays ایک تک رسائی کے ساتھ 203 00:14:42,750 --> 00:14:45,140 کیونکہ C تم پر ضرور چللاو گا. 204 00:14:45,140 --> 00:14:47,560 آپ کو بلایا انقطاع غلطی کچھ ملے گی، 205 00:14:47,560 --> 00:14:52,470 جو مزہ کبھی نہیں ہے، بنیادی طور پر کہہ رہے ہیں تم سے کچھ تک رسائی حاصل کرنے کی کوشش کر رہے ہیں 206 00:14:52,470 --> 00:14:55,000 جو موجود نہیں ہے، آپ کو نہیں ہے. 207 00:14:55,000 --> 00:14:59,430 تو اس بات کا یقین کریں، اور خاص طور پر صفر تخکرمن کے ساتھ، ہم نہیں چاہتے ہیں - 208 00:14:59,430 --> 00:15:02,390 مثال کے طور پر کی طرح، اگر ہم 4 کی لمبائی کی ایک صف ہے، 209 00:15:02,390 --> 00:15:07,240 کہ صف 4 انڈیکس موجود نہیں کیونکہ ہم 0 میں صفر انڈیکس میں شروع نہیں ہوتا. 210 00:15:07,240 --> 00:15:11,730 یہ صرف طرح loops کے لئے دوسری فطرت بن جب ہم نے 0 میں شروع ہو جائے گا. 211 00:15:11,730 --> 00:15:13,610 تاکہ ذہن میں رکھیں. 212 00:15:13,610 --> 00:15:22,590 کیا تم نے کبھی ایک صف ہے جو آپ کی پہنچ سے باہر ہے کے صفحہ تک رسائی حاصل نہیں کرنا چاہتا. 213 00:15:26,710 --> 00:15:32,560 تو کیا اب ہم یہ دیکھنے کی ضرورت ہے کہ ہم کس طرح طرح کی رسائی کی کر سکتے ہیں کر سکتے ہیں 214 00:15:32,560 --> 00:15:35,930 کمانڈ لائن کے دلائل کہ اندر منظور کر رہے ہیں 215 00:15:35,930 --> 00:15:41,330 لیکن جیسا کہ آپ سٹرنگ دیکھا، argv اصل میں ایک سٹرنگ صف ہے. 216 00:15:41,330 --> 00:15:45,740 تو یہ اصل میں ایک عددی نہیں ہے، لیکن کیسر میں ہم integers کے ساتھ نمٹنے کے لئے چاہتے ہیں. 217 00:15:45,740 --> 00:15:54,430 خوش قسمتی سے، وہاں ہمارے لئے پیدا تقریب ہے کہ ایک تار اصل میں ایک عددی تبدیل کر سکتے ہیں ہے. 218 00:15:54,430 --> 00:15:58,710 بھی ہم یہاں میں صارف کی ان پٹ کے ساتھ نمٹنے نہیں ہے جہاں ہم نے ان سے فوری رد عمل ظاہر کر رہے ہیں رہے ہیں 219 00:15:58,710 --> 00:16:03,740 چابی کے لئے ان پٹ کے لئے یہاں تو ہم اصل میں نہیں reprompt کہہ سکتے ہیں، 220 00:16:03,740 --> 00:16:07,840 "اوہ، مجھے ایک عددی دے، کا کہنا ہے کہ اگر یہ صحیح نہیں ہے." 221 00:16:07,840 --> 00:16:10,540 لیکن ہم اب بھی صحیح استعمال کے لئے چیک کرنے کے لیے ضرورت ہے. 222 00:16:10,540 --> 00:16:13,520 کیسر میں وہ صرف نمبر 1 میں منتقل کرنے کی اجازت دی جاتی ہے، 223 00:16:13,520 --> 00:16:18,030 اور تاکہ وہ کیسر / چلانے کے لئے تو ہے اور وہ آپ کو ایک نمبر دینے ہیں. 224 00:16:18,030 --> 00:16:23,660 تو argc ایک مخصوص تعداد ہے. 225 00:16:23,660 --> 00:16:29,060 کیا تعداد اگر وہ تمہارے / کیسر تو ایک چابی کو منتقل ہے کہ ہو سکتا ہے؟ 226 00:16:29,060 --> 00:16:32,920 argc کیا ہے؟ >> [2 طالب علم. دو. >> بالکل. 227 00:16:32,920 --> 00:16:35,490 تو آپ کو اس بات کا یقین کر لیں کہ کہ argc 2 ہے بنانے کے لئے چاہتے ہیں. 228 00:16:35,490 --> 00:16:39,620 دوسری صورت میں آپ بنیادی طور پر اس پروگرام کو چلانے کے لئے انکار کر دیا. 229 00:16:39,620 --> 00:16:43,040 اہم میں ایک تقریب ہے جو int اہم کا کہنا ہے کہ ہے، 230 00:16:43,040 --> 00:16:47,360 تو ایک کامیاب پروگرام کے آخر میں اچھی پریکٹس کی واپسی 0 ہمیشہ ہم. 231 00:16:47,360 --> 00:16:50,840 اگر ایسا ہے تو کہتے ہیں، وہ آپ کو 3 کمانڈ لائن کی بجائے دلائل 2 دیتے ہیں 232 00:16:50,840 --> 00:16:54,350 یا آپ 1 مثال کے طور پر دے، تو جو تم کرتے ہو گے تم اس کے لئے چیک کرنے کے لیے کرنا چاہتے ہیں کریں گے 233 00:16:54,350 --> 00:16:59,900 اور پھر 1 کہہ رہے ہو، نہیں واپس میں اس پروگرام کے ساتھ آگے بڑھنے نہیں کر سکتے ہیں. 234 00:16:59,900 --> 00:17:03,190 [طالب علم] وہاں آپ کے متن میں جگہ نہیں ہو سکتا. >> معاف کرنا؟ 235 00:17:03,190 --> 00:17:06,780 [طالب علم] متن آپ خفیہ کرنے کی کوشش کر رہے ہیں میں ایک جگہ پر نہیں ہو سکتا. 236 00:17:06,780 --> 00:17:08,480 آہ! 237 00:17:08,480 --> 00:17:11,280 متن ہے کہ ہم پر خفیہ کرنے کی کوشش کر رہے ہیں کی شرائط میں، یہ اصل میں بعد میں آتا ہے 238 00:17:11,280 --> 00:17:13,970 جب ہم اس متن کو دے. 239 00:17:13,970 --> 00:17:18,260 تو ابھی ہم صرف کمانڈ دلائل کے طور پر قبول کر رہے ہیں اصل تعداد، 240 00:17:18,260 --> 00:17:21,579 کیسر خفیہ کاری کے لئے اصل تبدیلی. 241 00:17:21,579 --> 00:17:27,569 [طالب علم] کیوں آپ 2 کی ضرورت ہے کے طور پر صرف 1 argc کی مخالفت؟ وہاں ضرور نمبر 1 ہے. 242 00:17:27,569 --> 00:17:32,200 ٹھیک ہے. وجہ ہم argc کے لئے 2 کی ضرورت کی بجائے 1 243 00:17:32,200 --> 00:17:36,260 جب تم نے ایک پروگرام چلائیں اور کہتے وجہ سے ہے. / کیسر / یا خوش. 244 00:17:36,260 --> 00:17:38,280 جو اصل میں ایک کمانڈ لائن کی دلیل کے طور پر شمار. 245 00:17:38,280 --> 00:17:43,020 تو تو اس نے پہلے ہی 1 لیتا ہے اور تو ہم اضافی 1 inputting رہے ہیں. 246 00:17:45,030 --> 00:17:49,440 تو آپ اصل میں inputting کمانڈ لائن کی دلیل میں ایک تار کر رہے ہیں. 247 00:17:49,440 --> 00:17:52,730 تم کیا کرنا چاہتے ہیں، ہم کیسر کے لئے ایک عددی کے ساتھ نمٹنے کے لئے چاہتے ہیں، 248 00:17:52,730 --> 00:17:57,180 لہذا آپ کو اس atoi تقریب کا استعمال کر سکتے ہیں. 249 00:17:57,180 --> 00:18:02,850 اور بنیادی طور پر، آپ اسے ایک تار میں گزر اور پھر یہ تم واپس واپس ایک عددی 250 00:18:02,850 --> 00:18:06,070 اگر یہ ممکن ہے کہ ایک عددی میں سٹرنگ پر بنا ہے. 251 00:18:06,070 --> 00:18:10,960 اب یاد ہے جب ہم اس طرح printf یا GetString چیزوں کے ساتھ کام کر رہے ہو، 252 00:18:10,960 --> 00:18:13,390 ہم لائبریریوں جو ہمارے مخصوص ہیں شامل ہیں. 253 00:18:13,390 --> 00:18:19,450 تو ہم نے شروع میں اس طرح ایک ہیش ٹیگ معیار I / O، H،. کچھ کے ساتھ شروع ہو جاتے ہیں. 254 00:18:19,450 --> 00:18:22,430 ٹھیک ہے، atoi ان لائبریریوں میں سے ایک کے اندر اندر نہیں ہے، 255 00:18:22,430 --> 00:18:26,600 تو ہمیں کیا کرنا ہے ہے ہم اس کے لئے صحیح لائبریری شامل ہے. 256 00:18:26,600 --> 00:18:32,720 تو واپس 1 Walkthrough جہاں میں دستی تقریب پر تبادلہ خیال کیا یاد. 257 00:18:32,720 --> 00:18:37,110 آپ اپنے ٹرمینل میں انسان ٹائپ کریں اور پھر اس کے بعد ایک تقریب کے نام کی طرف سے ہے. 258 00:18:37,110 --> 00:18:39,720 اور اس لئے کہ اس کے استعمال کی ایک مکمل فہرست لے آئے گا، 259 00:18:39,720 --> 00:18:42,890 لیکن اس کے ساتھ ساتھ اسے پرورش جس لائبریری، جس سے تعلق رکھتا ہے. 260 00:18:42,890 --> 00:18:47,000 تو میں آپ کو چھوڑ atoi کے ساتھ دستی تقریب کو استعمال کرنے کے لئے کریں گے 261 00:18:47,000 --> 00:18:53,360 اور اعداد و شمار جو لائبریری آپ atoi تقریب کو استعمال کرنے کے قابل ہو جائے شامل کرنے کی ضرورت ہے. 262 00:18:54,450 --> 00:18:57,670 تو ہم کلید ہے اور اب یہ سادہ متن حاصل کرنے کے لئے آتا ہے، 263 00:18:57,670 --> 00:19:01,820 اور وہ اصل میں صارف کی ان پٹ کو جہاں آپ فوری طور پر کی جا رہی ہے. 264 00:19:01,820 --> 00:19:05,540 ہم نے GetInt اور GetFloat کے ساتھ نمٹتا ہے، اور اسی رگ میں 265 00:19:05,540 --> 00:19:07,670 ہم GetString سے نمٹنے جا رہے ہیں. 266 00:19:07,670 --> 00:19:12,440 لیکن ہم نے اس معاملے میں کسی بھی کروں کرنے کی ضرورت نہیں ہے جبکہ یا loops جبکہ چیک کرنے کے لیے ہے. 267 00:19:12,440 --> 00:19:14,480 GetString ہمیں یقینی طور پر ایک تار دے گا، 268 00:19:14,480 --> 00:19:17,630 اور ہم خفیہ جا رہے ہیں جو صارف ہمیں دیتا ہے. 269 00:19:17,630 --> 00:19:23,770 تو فرض کہ یہ صارف inputted ڈور کی تمام درست ہیں. 270 00:19:23,770 --> 00:19:24,670 بہت اچھا ہے. 271 00:19:24,670 --> 00:19:27,270 تو پھر ایک بار آپ کو ان کلیدی ہے اور ہے ایک بار آپ کو متن ہے، 272 00:19:27,270 --> 00:19:31,660 اب کیا بچا ہے ہے آپ کو سادہ متن encipher ہے. 273 00:19:31,660 --> 00:19:36,530 سادہ متن صرف فوری طور پر زبان سے زائد کا احاطہ کرتا ہے، جو صارف آپ دیتا ہے، 274 00:19:36,530 --> 00:19:41,030 اور ciphertext ہے جو آپ ان سے واپس. 275 00:19:42,450 --> 00:19:45,850 ڈور تو، خط کی طرف سے اصل خط کے ذریعے جانے کے قابل ہو جائے 276 00:19:45,850 --> 00:19:48,550 کیونکہ ہم ہر خط کو منتقل کرنا ہے، 277 00:19:48,550 --> 00:19:51,390 اگر ہم اس ڈور سمجھتا ہوں، ہم واپس پرت چھیل کی قسم 278 00:19:51,390 --> 00:19:54,130 ہم دیکھتے ہیں کہ وہ واقعی میں حروف کی ایک فہرست ہو. 279 00:19:54,130 --> 00:19:55,930 ایک دوسرے کے بعد آتا ہے. 280 00:19:55,930 --> 00:20:01,690 اور اس طرح ہم arrays کے طور پر تاروں کے علاج کے کیونکہ انہوں نے حروف کی arrays ہیں کر سکتے ہیں. 281 00:20:01,690 --> 00:20:05,640 تو کا کہنا ہے کہ آپ نامی ایک متن سٹرنگ ہے، 282 00:20:05,640 --> 00:20:09,400 اور اس متغیر متن کے اندر اندر محفوظ یہ CS50 ہے. 283 00:20:09,400 --> 00:20:15,680 پھر 0 انڈیکس میں متن دارالحکومت T، صفحہ 1 H، وغیرہ ہو گی 284 00:20:17,530 --> 00:20:23,970 اور پھر arrays کے ساتھ، args.c میں argc مثال میں 285 00:20:23,970 --> 00:20:27,090 ہم نے دیکھا ہے کہ ہم ایک صف پر iterate تھا 286 00:20:27,090 --> 00:20:32,440 اور ہم میں سے = 0 iterate تک جب تک میں لمبائی سے بھی کم ہے. 287 00:20:32,440 --> 00:20:35,560 تو ہم باہر figuring ہمارے سٹرنگ کی طوالت کیا ہے میں سے کچھ طریقہ کی ضرورت ہے 288 00:20:35,560 --> 00:20:37,090 اگر ہم اس پر iterate کرنے جا رہے ہیں. 289 00:20:37,090 --> 00:20:42,300 خوش قسمتی سے پھر ہمارے لئے وہاں ایک تقریب ہے، اگرچہ بعد میں CS50 میں 290 00:20:42,300 --> 00:20:45,860 آپ کو بنانے کے لئے اپنی خود کی تقریب کو لاگو کرنے کے قابل ضرور ہو جائے گا 291 00:20:45,860 --> 00:20:48,260 جس میں ایک تار کی لمبائی کا حساب کر سکتے ہیں. 292 00:20:48,260 --> 00:20:52,120 لیکن اب ہم سٹرنگ کی حد ہے، تو strlen کو استعمال کرنے کے لئے جا رہے ہیں. 293 00:20:52,120 --> 00:21:00,440 آپ کو ایک تار میں گزرتے ہیں، اور پھر اس کے بعد آپ کو ایک int ہے کہ آپ سٹرنگ کی طوالت کی نمائندگی کرتا ہے واپس آ جائیں گے. 294 00:21:00,440 --> 00:21:05,840 چلو کہ ہم کس طرح ایک تار میں ہر کردار iterate کے قابل ہو سکتا ہے اس کی ایک مثال میں نظر 295 00:21:05,840 --> 00:21:08,470 اور اس کے ساتھ کچھ کرنا. 296 00:21:08,470 --> 00:21:13,250 ہم کیا کرنا چاہتے ہے سٹرنگ میں سے ہر ایک کردار iterate، 297 00:21:13,250 --> 00:21:19,150 اور جو جو ہم کرنا چاہتے ہیں ہم نے 1 کی طرف سے واپس ہر 1 کردار پرنٹ 298 00:21:19,150 --> 00:21:22,060 کے علاوہ ہم نے اس کے ساتھ دیئے گئے کچھ شامل کریں. 299 00:21:22,060 --> 00:21:27,020 تو لوپ کے ساتھ شروع. Int میں = 0. 300 00:21:27,020 --> 00:21:30,070 ہم حالت کے لئے جگہ چھوڑ کر جا رہے ہیں. 301 00:21:32,700 --> 00:21:36,840 ہم iterate چاہتے ہیں جب تک ہم سٹرنگ کے آخر تک پہنچ جاتے ہیں، ہے نا؟ 302 00:21:36,840 --> 00:21:41,340 تو پھر کیا تقریب ہمیں سٹرنگ کی لمبائی دیتا ہے؟ 303 00:21:41,340 --> 00:21:43,160 [اشراوی طالب علم کے جواب] 304 00:21:43,160 --> 00:21:46,420 یہ کمانڈ لائن کے دلائل کی لمبائی ہے. 305 00:21:46,420 --> 00:21:50,650 لیکن ہم نے ایک تار کے لئے ایک تقریب ہے جو ہمیں سٹرنگ کی لمبائی دیتا ہے استعمال کرنے کے لئے کرنا چاہتے ہیں. 306 00:21:50,650 --> 00:21:53,090 تو کہ سٹرنگ کی حد کے ہے. 307 00:21:53,090 --> 00:21:57,130 اور تو آپ کو اس کی ایک تار میں منتقل کرنے کی ہے. 308 00:21:57,130 --> 00:21:59,760 یہ معلوم ہے کہ کیا سٹرنگ کی لمبائی کا حساب کرنے کی ضرورت ہے کرنے کی ضرورت ہے. 309 00:21:59,760 --> 00:22:03,160 تو پھر ہم اس معاملے میں کی سٹرنگ کے ساتھ کام کر رہے ہو. 310 00:22:04,790 --> 00:22:05,860 بہت اچھا ہے. 311 00:22:05,860 --> 00:22:10,770 تو پھر جو ہم کرنا چاہتے ہیں، printf ہم. 312 00:22:10,770 --> 00:22:14,850 اب، ہم کرداروں کے ساتھ نمٹنے کے لئے چاہتے ہیں. ہم ہر فرد کردار پرنٹ کرنا چاہتے ہیں. 313 00:22:14,850 --> 00:22:22,150 جب آپ نے اسے ایک فلوٹ کو پرنٹ کرنے کے لئے چاہتے ہیں، تو آپ کو٪ F کی طرح پلیس ہولڈر استعمال کریں گے. 314 00:22:22,150 --> 00:22:24,580 ایک int کے ساتھ آپ٪ D استعمال کریں گے. 315 00:22:24,580 --> 00:22:30,890 اور اسی طرح آپ کو ایک کردار کے ساتھ٪ C کا استعمال کرتے ہیں کا کہنا ہے کہ میں ایک کردار چھپائی جا رہا ہوں 316 00:22:30,890 --> 00:22:34,570 جو ایک متغیر کے اندر محفوظ ہے. 317 00:22:34,570 --> 00:22:40,840 تو ہم یہ ہے، اور اس کی مدت اور اس کی جگہ شامل ہے. 318 00:22:40,840 --> 00:22:45,430 ہم کون سا کردار کا استعمال کر رہے ہیں؟ 319 00:22:45,430 --> 00:22:49,780 ہم ہم جو بھی کردار سٹرنگ کے کم ہیں کا استعمال کرتے ہوئے جا رہے ہیں. 320 00:22:49,780 --> 00:22:52,890 تو پھر ہم سٹرنگ کے ساتھ کچھ کا استعمال کرتے ہوئے جا رہے ہیں، 321 00:22:52,890 --> 00:22:56,420 لیکن ہم بعض کردار تک رسائی حاصل کرنے کے لئے وہاں رکھا جائے چاہتے ہیں. 322 00:22:56,420 --> 00:23:02,740 لہذا اگر ایک تار صرف ایک صف ہے، تو پھر ہم arrays کے عناصر کو کس طریقے سے تک رسائی حاصل کرتے ہیں؟ 323 00:23:02,740 --> 00:23:06,480 ہم نے ان مربع بریکٹ ہے، اور اس کے بعد ہم وہاں انڈیکس ڈال. 324 00:23:06,480 --> 00:23:11,820 تو ہم مربع بریکٹ ہے. ہم اس معاملے میں ہماری انڈیکس میں استعمال کر سکتے ہیں. بالکل. 325 00:23:15,290 --> 00:23:22,370 تو ہم کہہ رہے ہیں ہم نے ایک کردار چھپائی ایک نقطہ اور ایک خلا کی طرف سے پیروی کی جائے جا رہے ہیں رہے ہیں، 326 00:23:22,370 --> 00:23:30,870 اور یہ کہ کردار ہمارے سٹرنگ S میں ith حرف بننے جا رہا ہے. 327 00:23:32,920 --> 00:23:39,330 میں صرف اس کو بچانے کے لئے جا رہا ہوں. ٹھیک ہے. 328 00:23:42,510 --> 00:23:46,840 اب میں سٹرنگ کی حد کو چلانے کے لئے جا رہا ہوں. 329 00:23:46,840 --> 00:23:53,440 تو ہم نامی OMG سٹرنگ تھا، اور اب یہ اس سے بھی زیادہ زور دیا ہے. 330 00:23:53,440 --> 00:23:57,870 اسی طرح دو کا کہنا ہے کہ ہم اصل میں صارف سے ایک تار حاصل کرنے کے لئے کرنا چاہتے ہیں. 331 00:23:57,870 --> 00:23:59,580 ہم یہ کیسے کر سکتا ہے؟ 332 00:23:59,580 --> 00:24:01,610 سے پہلے، ہم ایک int کس طرح حاصل کیا؟ 333 00:24:01,610 --> 00:24:08,040 ہم GetInt ٹھیک ہے، نے کہا کہ؟ لیکن یہ int نہیں ہے، تو چلو GetString. 334 00:24:11,780 --> 00:24:17,770 تار کی لمبائی بنانے دو یہاں ہم ایک مخصوص فوری درج نہیں کیا. 335 00:24:17,770 --> 00:24:19,940 تو مجھے پتہ نہیں ہے. 336 00:24:19,940 --> 00:24:23,820 میں یہاں میرا نام رکھنے جا رہا ہوں تو میں ان چیزوں میں سے ایک کر سکتے ہیں 337 00:24:23,820 --> 00:24:29,600 میں اس طرح ہر خط یا کچھ اور کے لئے ایک لفظ ہے جہاں دیتےہیں. ڈاؤن لوڈ، اتارنا. 338 00:24:29,600 --> 00:24:31,900 تو کہ سٹرنگ کی حد کے ہے. 339 00:24:33,000 --> 00:24:34,640 تو ہم کیسر واپس آ گئے ہیں. 340 00:24:34,640 --> 00:24:38,620 ہم نے کہ ہم کس طرح ایک تار پر iterate پر چند آلات ہیں، 341 00:24:38,620 --> 00:24:41,250 کہ ہم کس طرح ہر فرد عنصر تک رسائی حاصل کریں. 342 00:24:41,250 --> 00:24:44,720 تو اب ہم اس پروگرام میں واپس حاصل کر سکتے ہیں. 343 00:24:44,720 --> 00:24:48,650 جیسا کہ میں نے پہلے ASCII ٹیبل میں، تمہارا سب سے اچھا دوست کا ذکر کیا 344 00:24:48,650 --> 00:24:52,300 آپ کی تعداد ہے جو کہ ہر خط کے ساتھ منسلک رہے ہیں کو دیکھنے کے لئے جا رہے ہیں. 345 00:24:52,300 --> 00:24:55,900 تو یہاں کا کہنا ہے کہ ہمارے سادہ متن ہے مجھے چکر آ رہا ہوں! 346 00:24:55,900 --> 00:25:01,090 پھر ان حروف میں سے ہر ایک کو ایک نمبر اور اس کے ساتھ منسلک ASCII قیمت جا رہی ہے، 347 00:25:01,090 --> 00:25:04,710 بھی apostrophe، یہاں تک کہ خلا، یہاں تک کہ فجائیہ نشان، 348 00:25:04,710 --> 00:25:06,600 لہذا آپ کو ذہن میں رکھنا چاہیں گے. 349 00:25:06,600 --> 00:25:12,360 تو ہمارے کلید کا کہنا ہے کہ ان کے کمانڈ لائن کی دلیل میں شامل صارف 6. 350 00:25:12,360 --> 00:25:17,770 یہ پہلا خط،، جس میں ہے جو 73 کی طرف سے ظاہر کیا جاتا ہے کے لئے کا مطلب ہے، 351 00:25:17,770 --> 00:25:25,610 آپ کو انہیں واپس کرنے کے لئے جو کچھ بھی خط 73 + 6 ASCII قیمت کی طرف سے ظاہر کیا جاتا ہے کرنا چاہتے ہیں. 352 00:25:25,610 --> 00:25:29,020 اس صورت میں 79 ہو جائے گی. 353 00:25:30,840 --> 00:25:35,040 اب ہمیں اگلے کردار میں جانا چاہتے ہیں. 354 00:25:35,040 --> 00:25:40,960 تو سادہ متن کے صفحہ 1 میں اگلے apostrophe ہو جائے گی. 355 00:25:40,960 --> 00:25:46,780 لیکن یاد رکھنا، ہم صرف خط encipher کرنا چاہتے ہیں. 356 00:25:46,780 --> 00:25:50,040 تو ہم اس بات کا یقین کر لیں کہ کہ apostrophe اصل میں ایک ہی رہتا ہے بنانے کے لئے چاہتے ہیں، 357 00:25:50,040 --> 00:25:54,310 کہ ہم نے 39 سے 45 جو کچھ بھی تبدیل نہیں کرتے ہیں. 358 00:25:54,310 --> 00:25:57,150 ہم اسے ایک apostrophe کے طور پر رکھنا چاہتے ہیں. 359 00:25:57,150 --> 00:26:00,780 تو ہم صرف حروف encipher یاد کرنا چاہتے ہیں 360 00:26:00,780 --> 00:26:04,560 کیونکہ ہم تمام دیگر علامات کے اپنے پروگرام میں کوئی تبدیلی نہیں رہنا چاہتے. 361 00:26:04,560 --> 00:26:07,130 ایک اور بات یہ ہے کہ ہم چاہتے ہیں بڑے حروف تہجی کے تحفظ کے لئے ہے. 362 00:26:07,130 --> 00:26:10,250 لہذا جب آپ کے پاس ایک بڑے خط ہے، اسے ایک بڑے کے طور پر رہنا چاہئے. 363 00:26:10,250 --> 00:26:12,830 Lowercases چھوٹے کے طور پر رہنا چاہئے. 364 00:26:13,620 --> 00:26:19,480 تو کچھ مفید کام کرتا ہے صرف enciphering خط کے ساتھ نمٹنے کے لئے کے قابل ہو جائے 365 00:26:19,480 --> 00:26:22,380 اور چیزوں کے بڑے حروف تہجی کا تحفظ رکھنے 366 00:26:22,380 --> 00:26:25,130 isalpha، isupper، islower افعال ہے. 367 00:26:25,130 --> 00:26:29,270 اور اس طرح یہ کام کرتا ہے کہ آپ کو ایک بولین قیمت واپس ہیں. 368 00:26:29,270 --> 00:26:34,180 بنیادی طور پر، صحیح یا غلط ہے. یہ ایک بڑے ہے؟ یہ اکشرانکیی ہے؟ 369 00:26:34,180 --> 00:26:37,180 یہ ایک خط ہے، بنیادی طور پر ہے. 370 00:26:37,180 --> 00:26:41,070 تم نے اس تقریب کو کس طرح استعمال کریں گے تو یہاں 3 مثالیں ہیں. 371 00:26:41,070 --> 00:26:47,060 بنیادی طور پر آپ کو ٹیسٹ کیا قیمت اس تقریب کی طرف سے آپ کو واپس کر سکتے ہیں، صحیح یا غلط ہے 372 00:26:47,060 --> 00:26:49,400 کہ ان پٹ کی بنیاد پر ہے. 373 00:26:49,400 --> 00:26:54,880 یا تو نہیں encipher کچھ یا اسے صفر یا اس بات کا یقین کر لیں کہ ہے کہ اس میں بڑے، وغیرہ ہے 374 00:26:54,880 --> 00:27:01,080 [طالب علم] صرف آپ کو تھوڑا اور کس طرح تم ان کا استعمال کرتے ہیں ان کی وضاحت کر سکتا ہوں؟ >> جی ہاں، تو اس بات کا یقین کر لیں کہ کے لئے. 375 00:27:01,080 --> 00:27:08,470 تو اگر ہم واپس دیکھو، ہم یہاں سرمایہ ہے، ٹھیک ہے؟ 376 00:27:08,470 --> 00:27:14,550 تو ہم جانتے ہیں کہ میں اے جاتا ہے کیونکہ میں 6 + O. ہے 377 00:27:14,550 --> 00:27:18,740 لیکن ہم اس بات کا یقین کر لیں کہ کہ O دارالحکومت O. کی جا رہی ہے بنانے کے لئے چاہتے ہیں 378 00:27:18,740 --> 00:27:22,940 تو بنیادی طور پر، جو اپنے ان پٹ کو تبدیل کرنے کے لئے کی جانے کی قسم ہے. 379 00:27:22,940 --> 00:27:26,870 تو چاہے وہ بڑے ہے یا طرح کی جس طرح سے ہے کہ ہم اس سے نمٹنے کے تبدیل نہیں. 380 00:27:26,870 --> 00:27:32,360 تو پھر اگر ہم اس مخصوص انڈیکس پر isupper تقریب کا استعمال کرتے ہیں، 381 00:27:32,360 --> 00:27:36,480 تو isupper ("میں")، جو سچ ہمارے لئے واپس، تو ہم جانتے ہیں کہ یہ اوپری ہے. 382 00:27:36,480 --> 00:27:40,360 تو اس بنا پر، ہم ایک فارمولے میں بعد میں جائیں گے 383 00:27:40,360 --> 00:27:42,750 کہ آپ کیسر میں چیزیں منتقل استعمال کریں گے، 384 00:27:42,750 --> 00:27:46,560 تو بنیادی طور پر، ایک تھوڑا سا مختلف فارمولے جا اگر یہ بڑے ہے 385 00:27:46,560 --> 00:27:50,670 کے طور پر چھوٹے کی مخالفت کی. احساس ہے؟ 386 00:27:51,020 --> 00:27:52,760 جی ہاں. کوئی تشویش نہیں. 387 00:27:54,900 --> 00:27:58,990 میں نے ایک خط، جو احساس کافی نہیں ہے 6 انہوں نے مزید کہا کے بارے میں تھوڑا بات کی 388 00:27:58,990 --> 00:28:05,500 جب ہم اس قسم کی سمجھ سوائے اس کے کہ ان حروف 389 00:28:05,500 --> 00:28:08,920 integers کے ساتھ تبادلہ کی قسم ہیں. 390 00:28:08,920 --> 00:28:11,250 ہم کیا کرتے ہیں ہم استعمال انترنہیت کاسٹنگ کی طرح ہے. 391 00:28:11,250 --> 00:28:18,100 ہم جہاں آپ کو ایک کی قیمت کو لے ڈال میں تھوڑا بعد جاؤ اور تم نے یہ ایک مختلف قسم میں تبدیل کریں گے 392 00:28:18,100 --> 00:28:20,440 سے اصل میں تھا. 393 00:28:20,440 --> 00:28:25,910 لیکن ہم اس pset کے ساتھ کی قسم interchangeably حروف کو استعمال کرنے کے لئے کے قابل ہو جائے گا 394 00:28:25,910 --> 00:28:30,880 اور ان کے اسی عددی اقدار. 395 00:28:30,880 --> 00:28:35,140 اگر ایسا ہے تو آپ کو صرف ایک کی قیمت درج کرنے کے ساتھ صرف ایک کردار encase، 396 00:28:35,140 --> 00:28:40,390 تو آپ integers کے ساتھ اس کے ساتھ کام کرتے ہیں، ایک عددی کے طور پر اس سے نمٹنے کے قابل ہو جائے گا. 397 00:28:40,390 --> 00:28:48,040 تو دارالحکومت C 67 سے متعلق ہے. چھوٹے F 102 سے متعلق ہے. 398 00:28:48,040 --> 00:28:51,480 ایک بار پھر، اپنے ASCII میز پر دیکھو، اگر آپ کو ان اقدار کو جاننا چاہتے ہیں. 399 00:28:51,480 --> 00:28:56,160 ، تو کس طرح آپ کو اور منہا کرنے کے قابل ہو سکتا ہے میں سے کچھ مثالیں میں 400 00:28:56,160 --> 00:29:03,130 کس طرح آپ واقعی ان کرداروں کے ساتھ اصل میں کام کر سکتے ہیں، انہیں interchangeably استعمال کریں. 401 00:29:03,870 --> 00:29:11,350 مجھے کہتے ہیں کہ ASCIIMath ایک عددی ایک کردار کے علاوہ حساب جا رہا ہے 402 00:29:11,350 --> 00:29:17,590 اور پھر اس کے نتیجے میں کے طور پر بھی کردار کے نتیجے میں ASCII قیمت دکھاتا ہے. 403 00:29:17,590 --> 00:29:22,290 اور اس طرح میں یہاں کہہ رہا ہوں - اس حصے کے ساتھ we'll معاہدے کے بعد - 404 00:29:22,290 --> 00:29:29,100 لیکن بنیادی طور پر، میں یہ کہہ رہا ہے کہ صارف کے ساتھ ایک بٹن کے ساتھ چلانے کے ASCIIMath کہنا چاہئے رہا ہوں، 405 00:29:29,100 --> 00:29:30,880 اور میں کہہ رہی ہے کہ وہ چابی نمبر جا رہا ہے کر رہا ہوں 406 00:29:30,880 --> 00:29:34,600 جس کے ساتھ ہم نے اس کردار کو شامل کرنے کے لئے جا رہے ہیں. 407 00:29:34,600 --> 00:29:38,560 تو یہاں محسوس کہ چونکہ میں ایک چابی کا مطالبہ کر رہا ہوں، 408 00:29:38,560 --> 00:29:40,590 کیونکہ میں مطالبہ کیا کہ وہ مجھے دے 1 بات رہے ہو، 409 00:29:40,590 --> 00:29:45,600 میں صرف / asciimath. اور ایک چابی کو قبول کرنا چاہتے ہیں. 410 00:29:45,600 --> 00:29:49,330 لہذا میں درخواست کرتا ہوں کہ argc 2 کے برابر ہے جا رہا ہوں. 411 00:29:49,330 --> 00:29:54,360 اگر یہ نہیں ہے، تو میں 1 کو واپس کرنے اور پروگرام سے باہر نکلیں گا جا رہا ہوں. 412 00:29:55,070 --> 00:29:58,540 تو میں کہہ رہا ہوں کی چابی کی پہلی کمانڈ لائن دلیل نہیں ہے رہا ہوں، 413 00:29:58,540 --> 00:30:05,080 دوسرا ایک جا رہا ہے، اور جیسا کہ آپ کو یہاں دیکھ کر، 414 00:30:05,080 --> 00:30:11,790 میں ایک عددی میں باری کی جا رہی ہوں. 415 00:30:15,740 --> 00:30:19,230 پھر میں نے ایک کردار R قائم کرنے جا رہا ہوں. 416 00:30:19,230 --> 00:30:23,970 نوٹس کہ متغیر chr کی قسم اصل میں ایک عدد صحیح ہے. 417 00:30:23,970 --> 00:30:30,480 جس طرح سے ہے کہ میں ایک عددی طور پر ر کرنے کے لئے استعمال کرنے کے قابل ہوں یہ ایک کی قیمت درج کرنے کے ساتھ یہ encasing کی طرف سے ہے. 418 00:30:33,850 --> 00:30:40,560 تو ہماری printf بیان کی حمایت جہاں ہم نے ایک کردار کے لئے ایک پلیس ہولڈر ہے 419 00:30:40,560 --> 00:30:43,590 اور پھر ایک عددی کے لئے ایک پلیس ہولڈر، 420 00:30:43,590 --> 00:30:49,450 کردار chr کی طرف سے نمائندگی ہے، اور عددی چابی ہے. 421 00:30:49,450 --> 00:30:54,320 اور تو ہم نتیجے میں 2 ایک ساتھ شامل کرنے جا رہے ہیں. 422 00:30:54,320 --> 00:30:58,420 تو ہم R شامل کرنے کے لئے جا رہا + جو چابی ہے رہے ہیں، 423 00:30:58,420 --> 00:31:03,520 اور پھر ہم اس کا نتیجہ کو پرنٹ کرنے کے لئے جا رہے ہیں. 424 00:31:06,210 --> 00:31:14,220 تو asciimath بنانے. اس کی تاریخ ہے، تو چلو asciimath چلانے. 425 00:31:14,220 --> 00:31:18,290 اوہ، لیکن دیکھو، یہ کچھ نہیں ہے کیونکہ ہم یہ اصل میں نہیں تھا ایک چابی دے. 426 00:31:18,290 --> 00:31:23,850 تو جب یہ صرف 1، ہمارے مرکزی تقریب واپس یہ صرف ہمیں واپس لوٹا دی. 427 00:31:23,850 --> 00:31:29,250 تو پھر ہم ایک چابی میں گزرے. کسی نے مجھے ایک نمبر دے. >> [طالب علم] 4. 428 00:31:29,250 --> 00:31:30,920 4. ٹھیک ہے. 429 00:31:30,920 --> 00:31:39,280 تو ر 4 ہمیں V، جس میں 118 ASCII قیمت کے مساوی دینے جا رہا ہے کی طرف سے اضافہ ہوا ہے. 430 00:31:39,280 --> 00:31:43,880 تو پھر اس قسم کا احساس ہے کہ کرتا ہے - 431 00:31:43,880 --> 00:31:51,250 اصل میں، کیا میں تمہیں، کیا آپ کو لگتا ہے کہ ر کے ASCII قیمت ہے اگر ر + 4 118 ہے پوچھ سکتے ہیں؟ 432 00:31:53,070 --> 00:31:55,470 اس کے بعد جی ہاں، ر 114 ہے. 433 00:31:55,470 --> 00:32:03,010 تو اگر تو آپ ASCII میز پر نظر آتے ہیں، اس بات کا یقین کے لئے کافی تمہیں دیکھ، کہ R 114 کی طرف سے ظاہر کیا جاتا ہے کریں گے. 434 00:32:03,010 --> 00:32:08,610 تو اب ہے کہ ہم جانتے ہیں کہ ہم حروف integers شامل کر سکتے ہیں، یہ بہت آسان لگتا ہے. 435 00:32:08,610 --> 00:32:12,740 ہم صرف ایک تار iterate جیسا کہ ہم نے ایک سے پہلے مثال کے طور پر میں دیکھا جا رہے ہیں. 436 00:32:12,740 --> 00:32:17,170 ہم چیک کرنے کے لیے کریں گے اگر یہ ایک خط ہے. 437 00:32:17,170 --> 00:32:20,420 اگر ایسا ہے، تو ہم جو کچھ بھی چابی ہے منتقل کریں گے. 438 00:32:20,420 --> 00:32:23,650 بہت آسان ہے، جب تم اس طرح سے حاصل کرنے کے لئے سوائے 439 00:32:23,650 --> 00:32:32,140 تم نے دیکھا ہے کہ Z، 122 کی طرف سے نمائندگی تو آپ کو ایک مختلف کردار دے گی. 440 00:32:32,140 --> 00:32:37,770 ہم اصل میں ہمارے حروف تہجی کے اندر اندر رہنے کے لئے چاہتے ہو، ہے نا؟ 441 00:32:37,770 --> 00:32:43,180 تو ہم ارد گرد ریپنگ کی قسم کی کوئی نہ کوئی راستہ پر اعداد و شمار کرنے کی ضرورت ہے. 442 00:32:43,180 --> 00:32:47,190 جب آپ جیڈ تک پہنچنے کے لئے اور آپ کو ایک مخصوص تعداد کی طرف سے اضافہ کرنا چاہتے ہیں، 443 00:32:47,190 --> 00:32:51,230 آپ ASCII حروف تہجی کے حصے سے باہر میں نہیں جانا چاہتی ہے؛ 444 00:32:51,230 --> 00:32:54,140 تم واپس A. تمام طرح لپیٹ چاہتے ہیں 445 00:32:54,140 --> 00:32:58,550 لیکن اس بات کو ذہن میں رکھنے کے آپ اب بھی کیس کا تحفظ کر رہے ہیں. 446 00:32:58,550 --> 00:33:00,980 تو کہ خط جاننے علامات نہیں بن سکتے 447 00:33:00,980 --> 00:33:05,290 علامات طرح چل رہا ساتھ ساتھ تبدیل نہیں کر رہے ہیں. 448 00:33:05,290 --> 00:33:08,170 آخری pset میں تمہیں ضرور کی ضرورت نہیں تھی، 449 00:33:08,170 --> 00:33:14,310 لیکن ایک آپشن معامل تقریب کا استعمال کرتے ہوئے کی طرف سے آپ کے لالچی pset پر عملدرآمد تھا. 450 00:33:14,310 --> 00:33:17,230 لیکن اب ہم اصل میں معامل استعمال کرنے کی ضرورت کے لئے جا رہے ہیں، 451 00:33:17,230 --> 00:33:19,900 تو صرف یہ ایک تھوڑا سا پر. 452 00:33:19,900 --> 00:33:26,920 بنیادی طور پر، جب آپ X modulo Y، کہ تم Y سے تقسیم ایکس کے باقی دیتا ہے ہے. 453 00:33:26,920 --> 00:33:30,930 یہاں کچھ مثالیں ہیں. ہم نے 27 فیصد 15 ہے. 454 00:33:30,930 --> 00:33:36,200 بنیادی طور پر، آپ کو 27 سے جب 15 منفی بغیر ممکن ہو سکے کے طور پر کئی بار کے طور پر منہا 455 00:33:36,200 --> 00:33:39,060 تو آپ کو 12 بائیں سے زیادہ ملتا ہے. 456 00:33:39,060 --> 00:33:44,650 تو اس طرح ریاضی کے تناظر میں اس قسم کی ہے، لیکن کس طرح اصل میں ہم اس کا استعمال کر سکتے ہیں؟ 457 00:33:44,650 --> 00:33:47,100 یہ ہمارے wrapover کے لئے مفید ہو رہا ہے. 458 00:33:47,100 --> 00:33:55,420 اس کے لئے، صرف کا کہنا ہے کہ میں نے تم سب سے کہا کہ وہ 3 گروپوں میں تقسیم ہیں. 459 00:33:55,420 --> 00:33:58,010 کبھی کبھی آپ کو گروپس اور اس طرح کچھ یہ کرتے ہیں. 460 00:33:58,010 --> 00:34:01,320 کہتے ہیں میں نے کہا، "ٹھیک ہے، میں تم سب سے چاہتا ہوں 3 میں تقسیم کیا جائے گا." 461 00:34:01,320 --> 00:34:04,240 کہ تم ایسا کیسے کر سکتا ہے؟ 462 00:34:04,240 --> 00:34:06,810 [اشراوی طالب علم کے جواب] جی ہاں، بالکل. نے گن لو. ٹھیک ہے. 463 00:34:06,810 --> 00:34:10,260 چلو، اصل میں ایسا ہے. کیا آپ کو شروع کرنے کے لئے کرنا چاہتے ہیں؟ 464 00:34:10,260 --> 00:34:13,810 1، 2، 3، 4 [طالب علموں نے گنتی]. 465 00:34:13,810 --> 00:34:16,620 لیکن یاد رکھنا ... >> [طالب علم] اوہ، معاف کرنا. 466 00:34:16,620 --> 00:34:18,730 یہ ایک بہت ہی اچھی بات ہے. 467 00:34:18,730 --> 00:34:24,130 آپ 4 نے کہا، لیکن ہم واقعی آپ کو 1 کہنا چاہتے ہیں کیونکہ ہم صرف 3 گروپوں چاہتے ہیں. 468 00:34:24,130 --> 00:34:30,159 تو، کس طرح - نہیں، جو کہ ایک بہت اچھی مثال ہے کیونکہ تو پھر کس طرح آپ 1 کا کہنا ہے کہ ہو سکتا ہے؟ 469 00:34:30,159 --> 00:34:33,370 4 اور 1 کے درمیان کیا تعلق ہے؟ 470 00:34:33,370 --> 00:34:36,760 ٹھیک ہے، 3 4 MOD 1 ہے. 471 00:34:36,760 --> 00:34:41,460 تو اگر آپ جاری رکھتے ہیں، تو آپ کو 2 ہو جائے گا. 472 00:34:41,460 --> 00:34:44,540 تو ہم 1، 2، 3، 1، 2 ہے. 473 00:34:44,540 --> 00:34:49,420 ایک بار پھر، آپ نے واقعی 5th شخص ہو. آپ کی بجائے 2 5 کہنا کو کس طرح جانتے ہیں؟ 474 00:34:49,420 --> 00:34:53,760 آپ کا کہنا ہے کہ 5 3 MOD 2 ہے. 475 00:34:53,760 --> 00:34:59,100 میں دیکھ کتنے 3 گروپوں سے چھوڑ دیا جاتا ہے کرنا چاہتے ہیں، تو جس کے لئے میں ہوں 476 00:34:59,100 --> 00:35:02,860 اور تو اگر ہم نے پورے کمرے کے ساتھ ساتھ جاری ہے، 477 00:35:02,860 --> 00:35:07,760 تو ہم دیکھتے ہیں کہ ہم ہمیشہ اصل میں خود رہے ہیں جدید تقریب میں درخواست دینے 478 00:35:07,760 --> 00:35:09,990 کی قسم شمار. 479 00:35:09,990 --> 00:35:14,490 یہ ٹھوس مثال کے طور پر کس طرح آپ modulo استعمال کر سکتے ہیں کے بارے میں مزید قسم ہے 480 00:35:14,490 --> 00:35:17,960 کیونکہ مجھے یقین ہے کہ ہم میں سے سب سے زیادہ شاید اس عمل کے ذریعے گئے ہیں 481 00:35:17,960 --> 00:35:19,630 جہاں ہم نے شمار کرنا پڑا ہے. 482 00:35:19,630 --> 00:35:21,840 modulo پر میں آپ کا کوئی سوال ہے؟ 483 00:35:21,840 --> 00:35:25,360 یہ بہت ضروری ہو اس کے تصورات کو سمجھنے کے لئے کیا جائے گا، 484 00:35:25,360 --> 00:35:28,640 تو میں اس بات کا یقین کر لیں کہ آپ لوگ سمجھتے ہیں بنانے کے لئے چاہتے ہیں. 485 00:35:28,640 --> 00:35:34,660 [طالب علم] اگر کوئی باقی نہیں ہے، یہ آپ کو اصل تعداد ہے دے؟ 486 00:35:34,660 --> 00:35:40,430 اگر ان میں سے پہلی 3 میں سے ایک یہ کیا تھا، اس نے انہیں دیا جو وہ اصل میں تھے، 487 00:35:40,430 --> 00:35:43,310 یا اس نے انہیں دیا [اشراوی] >> یہ ایک اچھا سوال ہے. 488 00:35:43,310 --> 00:35:48,750 جب modulo کے لئے کوئی باقی ہے - تو کا کہنا ہے کہ آپ کو 6 3 MOD ہے - 489 00:35:48,750 --> 00:35:52,340 کہ اصل میں آپ کو واپس دیتا ہے 0. 490 00:35:53,670 --> 00:35:57,290 ہم جو بعد میں تھوڑا سا کے بارے میں بات کریں گے. 491 00:35:58,810 --> 00:36:07,720 اوہ ہاں، مثال کے طور پر، 3rd شخص - 3 3 MOD اصل میں ہے 0 لیکن وہ 3 نے کہا کہ. 492 00:36:07,720 --> 00:36:14,900 تو، جو ایک اندرونی پکڑنے کی طرح مثال کے طور پر ہے، 493 00:36:14,900 --> 00:36:17,620 ٹھیک طرح، اگر MOD 0 تو میں 3rd شخص کے لئے جا رہا ہوں. 494 00:36:17,620 --> 00:36:22,740 لیکن ہم نے کہ ہم کس طرح کیا 0 بعد سے نمٹنے کے کرنا چاہتے ہیں کر سکتے ہیں کی طرح میں لے کر آتی ہوں. 495 00:36:22,740 --> 00:36:32,750 تو اب ہم کسی نہ کسی طرح صحیح خط پر جیڈ میپنگ کا ایک طریقہ ہے. 496 00:36:32,750 --> 00:36:34,920 لہذا اب ہم ان مثالوں کے ذریعے چلا گیا ہے، 497 00:36:34,920 --> 00:36:37,880 ہم اس قسم کی دیکھ کیسر کس طرح کام کر سکتے ہیں. 498 00:36:37,880 --> 00:36:42,640 آپ کے پاس 2 حروف دیکھتے ہیں اور پھر آپ کو دیکھ کر انہیں منتقل. 499 00:36:42,640 --> 00:36:44,430 تو اور فارمولے کی شرائط میں اس کا اظہار کرنے کی کوشش. 500 00:36:44,430 --> 00:36:46,940 رپورٹ میں یہ فارمولا دراصل آپ کو دی جاتی ہے، 501 00:36:46,940 --> 00:36:52,070 لیکن ہر متغیر کا مطلب ہے کے ذریعے نظر چلو قسم. 502 00:36:52,070 --> 00:36:55,000 ہمارا آخر نتیجہ ciphertext جا رہا ہے. 503 00:36:55,000 --> 00:36:58,300 تو یہ کہنا ہے کہ ciphertext کے ith کردار 504 00:36:58,300 --> 00:37:02,500 سادہ متن کے ith کردار کے مطابق چل رہا ہے. 505 00:37:02,500 --> 00:37:08,130 یہ سمجھ میں آتا ہے کیونکہ ہم ہمیشہ ان چیزوں پرت کرنا چاہتے ہیں. 506 00:37:08,130 --> 00:37:13,480 ith کردار ciphertext پلس K، جو ہماری چابی ہے ہونے جا رہا ہے - 507 00:37:13,480 --> 00:37:17,230 یہ سمجھ میں آتا ہے - اور اس کے بعد ہم اس 26 MOD ہے. 508 00:37:17,230 --> 00:37:19,860 واپس یاد ہے جب ہم جیڈ تھا 509 00:37:19,860 --> 00:37:24,190 ہم کردار میں حاصل کرنے کے لئے نہیں کرنا چاہتا تھا، تو ہم اسے MOD چاہتے تھے 510 00:37:24,190 --> 00:37:26,540 حروف تہجی کے ارد گرد لپیٹ کی قسم اور 511 00:37:26,540 --> 00:37:33,430 جیڈ کے بعد آپ کو ایک جانے، B، C، D، جب تک کہ آپ صحیح تعداد ہے. 512 00:37:33,430 --> 00:37:44,690 تو ہم جانتے ہیں کہ جیڈ، اگر 6 +، ہم F دے کیونکہ بعد جیڈ آتا F، بی، سی، ڈی، ای،. 513 00:37:44,690 --> 00:37:52,530 تو یاد ہے ہم اس بات کا یقین کے لئے جانتے ہیں کہ جیڈ 6 + ہمیں F دینے کی جا رہی ہے. 514 00:37:52,530 --> 00:38:03,530 ASCII اقدار میں، Z 122 ہے اور F 102 ہے. 515 00:38:03,530 --> 00:38:10,570 تو ہم ہمارے کیسر فارمولا بنانے کی کوئی نہ کوئی راستہ تلاش کرنا ہوگا ہمیں 102 دے 516 00:38:10,570 --> 00:38:13,590 122 میں لینے کے بعد. 517 00:38:13,590 --> 00:38:19,550 تو اگر ہم صرف اس فارمولے ('Z' 6 +) 26 فیصد، کہ اصل میں آپ 24 دیتا ہے کا اطلاق 518 00:38:19,550 --> 00:38:25,980 کیونکہ 122 + 6 128، 128 26٪ آپ کو 24 باقی دیتا ہے. 519 00:38:25,980 --> 00:38:29,140 لیکن اس F واقعی مطلب یہ نہیں ہے. یہ یقینی طور پر نہیں ہے 102. 520 00:38:29,140 --> 00:38:33,590 یہ بھی حروف تہجی میں 6th خط نہیں ہے. 521 00:38:33,590 --> 00:38:41,550 تو ظاہر ہے، ہم نے یہ ایک تھوڑا سا tweaking کچھ طریقہ کرنے کی ضرورت ہے. 522 00:38:42,970 --> 00:38:51,340 باقاعدہ حروف تہجی کے لحاظ سے، ہم جانتے ہیں کہ Z 26th خط ہے اور F 6th ہے. 523 00:38:51,340 --> 00:38:55,460 لیکن ہم نے کمپیوٹر سائنس میں ہو، تو ہم نے 0 میں انڈیکس کے لئے جا رہے ہیں. 524 00:38:55,460 --> 00:39:00,690 تو پھر Z 26 نمبر ہونے کی وجہ سے کرنے کے بجائے، ہم اس تعداد میں 25 کا کہنا ہے کہ جا رہے ہیں 525 00:39:00,690 --> 00:39:02,630 کیونکہ ایک 0 ہے. 526 00:39:02,630 --> 00:39:04,770 تو اب ہم اس فارمولے کا اطلاق. 527 00:39:04,770 --> 00:39:11,710 ہم Z 25 6 + کی طرف سے نمائندگی ہے، جس سے آپ 31 دیتا ہے. 528 00:39:11,710 --> 00:39:15,790 اور 31 26 MOD آپ کو باقی کے طور پر فراہم کرتا ہے 5. 529 00:39:15,790 --> 00:39:20,500 یہ بالکل صحیح ہے کیونکہ ہم جانتے ہیں کہ F حروف تہجی میں 5th خط ہے. 530 00:39:20,500 --> 00:39:26,400 لیکن یہ اب بھی F نہیں ہے، ٹھیک ہے؟ یہ ابھی بھی 102 نہیں ہے. 531 00:39:26,400 --> 00:39:32,730 تو اس pset کے لئے ایک چیلنج تعلقات کو جاننے کی کوشش کر رہا گا 532 00:39:32,730 --> 00:39:36,910 ان ASCII اقدار اور حروف تہجی انڈیکس کے درمیان تبدیل درمیان. 533 00:39:36,910 --> 00:39:40,280 بنیادی طور پر، کہ آپ کیا کرنا چاہیں گے، آپ ASCII اقدار سے شروع کرنا چاہتے ہیں، 534 00:39:40,280 --> 00:39:45,390 لیکن تو آپ کسی نہ کسی طرح ایک حروف تہجی انڈیکس میں کہ ترجمہ کرنا چاہتے ہیں 535 00:39:45,390 --> 00:39:52,610 اس وقت کا حساب اس سے جو خط ہونا چاہئے - بنیادی طور پر، اس کے حروف تہجی انڈیکس کیا ہے 536 00:39:52,610 --> 00:39:57,660 بیجلیھ کردار - تو وہ واپس ASCII اقدار کا ترجمہ ہے. 537 00:39:57,660 --> 00:40:04,870 اگر ایسا ہے تو آپ کو اپنے ASCII ٹیبل کوڑا، اور پھر کے درمیان تعلقات کو تلاش کرنے کی کوشش کا کہنا ہے کہ، 102 اور 5 538 00:40:04,870 --> 00:40:10,440 122 یا 25. 539 00:40:12,140 --> 00:40:15,690 ہم نے کمانڈ لائن دلائل سے ہماری چابی ہو گیا ہے، ہم نے سادہ متن کو ملا ہے، 540 00:40:15,690 --> 00:40:17,520 ہم اسے enciphered دیا ہے. 541 00:40:17,520 --> 00:40:19,820 اب ہم سب کرنا چھوڑ دیا ہے یہ ہے کہ یہ پرنٹ ہے. 542 00:40:19,820 --> 00:40:22,040 ہم نے اس کو مختلف طریقوں سے ایک جوڑے کر سکتے ہیں. 543 00:40:22,040 --> 00:40:24,570 ہم کیا کر سکتے ہیں اصل میں پرنٹ ہے جیسا کہ ہم ساتھ جاتے ہیں. 544 00:40:24,570 --> 00:40:28,250 جیسا کہ ہم سٹرنگ میں ختم حروف iterate، 545 00:40:28,250 --> 00:40:31,660 ہم بس ابھی تو پرنٹ ہے جب ہم اس کا حساب کر سکتے ہیں. 546 00:40:31,660 --> 00:40:36,030 متبادل طور پر، آپ کو ایک صف میں بھی اور حروف کی ایک سرنی جمع کر سکتے ہیں 547 00:40:36,030 --> 00:40:39,280 اور آخر میں اس پوری صف پر iterate اور اسے باہر پرنٹ. 548 00:40:39,280 --> 00:40:40,980 تو آپ کو اس کے لئے اختیارات میں سے ایک جوڑے کی ہے. 549 00:40:40,980 --> 00:40:47,280 اور یاد رکھنا کہ٪ C کردار چھپائی کے لئے پلیس ہولڈر ہونے جا رہا ہے. 550 00:40:47,280 --> 00:40:50,420 تو ہم وہاں کیسر ہے، اور اب ہم Vigenere پر منتقل، 551 00:40:50,420 --> 00:40:57,580 جو کیسر کی طرح ہے لیکن صرف تھوڑا سا زیادہ پیچیدہ ہے. 552 00:40:57,580 --> 00:41:03,310 تو بنیادی طور پر Vigenere کے ساتھ آپ ایک مطلوبہ الفاظ میں گزر رہے ہیں کیا جا رہا ہے. 553 00:41:03,310 --> 00:41:06,510 تو ایک بڑی تعداد کی بجائے، آپ کو ایک تار کے لئے جا رہے ہیں، 554 00:41:06,510 --> 00:41:09,200 اور اس وجہ سے ہے کہ آپ کے مطلوبہ الفاظ کے طور پر کام کرنے جا رہا ہے. 555 00:41:09,200 --> 00:41:14,440 اس کے بعد، ہمیشہ کی طرح، آپ صارف سے ایک تار کے لئے فوری طور پر حاصل جا رہے ہیں 556 00:41:14,440 --> 00:41:19,050 اور پھر اس کے اور اس کے بعد encipher انہیں ciphertext واپس دے دو. 557 00:41:19,050 --> 00:41:24,650 تو جیسا کہ میں نے کہا کہ صرف ایک مخصوص تعداد کی طرف سے منتقل کی بجائے، بہت کیسر کی طرح ہے، 558 00:41:24,650 --> 00:41:30,620 تعداد اصل کردار سے کردار ہر وقت تبدیل کرنے جا رہا ہے. 559 00:41:30,620 --> 00:41:34,890 منتقل کرنے کے لئے کہ حقیقی تعداد کی نمائندگی کرتے ہیں، اس کی بورڈ حروف کی طرف سے نمائندگی ہے. 560 00:41:34,890 --> 00:41:43,150 اگر ایسا ہے تو آپ کو ایک مثال کے طور پر ایک تبدیلی ہے، میں داخل ہیں، تو اس 0 تبدیلی کے مطابق کریں گے. 561 00:41:43,150 --> 00:41:45,900 تو اسے دوبارہ حروف تہجی انڈیکس پر واپس. 562 00:41:45,900 --> 00:41:49,100 کیا مفید ہو گا اگر آپ کو دیکھ رہا ہوں کہ ہم واقعی ASCII اقدار کے ساتھ کام کر رہے ہو رہے ہیں ہو سکتا ہے 563 00:41:49,100 --> 00:41:51,790 کے ساتھ ساتھ حروف، کے ساتھ کے طور پر حروف تہجی انڈیکس کے طور پر، 564 00:41:51,790 --> 00:41:58,020 ہو سکتا ہے یا اپنے اپنے ASCII ٹیبل ہے کہ 25 کے ذریعے 0 کے حروف تہجی کی فہرست سے پتہ چلتا ہے، 565 00:41:58,020 --> 00:42:03,750 Z کے ذریعے، اور ASCII اقدار لہذا آپ کو تعلقات قسم کے دیکھ سکتے ہیں 566 00:42:03,750 --> 00:42:07,020 اور خاکے اور کچھ نمونوں کی کوشش اور تلاش کریں. 567 00:42:07,020 --> 00:42:11,010 اور اسی طرح، اگر آپ کے ایف کی طرف سے مخصوص مثال کے طور پر میں منتقل کر رہے تھے - 568 00:42:11,010 --> 00:42:21,110 اور یہ یا تو چھوٹے یا بڑے F ہے - تو اس 5 کے مطابق کریں گے. 569 00:42:21,110 --> 00:42:24,180 ہم اب تک اچھی ہے؟ 570 00:42:25,770 --> 00:42:30,050 Vigenere کے لئے فارمولا تھوڑا سا مختلف ہے. 571 00:42:30,050 --> 00:42:32,960 بنیادی طور پر، آپ کو دیکھتے ہیں کہ یہ صرف کیسر کی طرح ہے، 572 00:42:32,960 --> 00:42:37,390 بجائے اس کے علاوہ صرف K ہم K انڈیکس J ہے. 573 00:42:37,390 --> 00:42:44,810 نوٹس کہ ہم میں استعمال نہیں کر رہے ہیں بنیادی طور پر کیونکہ، مطلوبہ الفاظ کی لمبائی 574 00:42:44,810 --> 00:42:49,850 ہمارے ciphertext کی لمبائی ضروری نہیں ہے. 575 00:42:49,850 --> 00:42:56,130 یہ تھوڑا سا واضح ہو جائے گا جب ہم ایک مثال ہے کہ میں تھوڑا سا ہے بعد میں دیکھیں گے. 576 00:42:56,130 --> 00:43:03,160 بنیادی طور پر، اگر آپ کو ohai کے مطلوبہ الفاظ کے ساتھ آپ کے پروگرام کو چلانے کے، 577 00:43:03,160 --> 00:43:08,560 تو اس کا مطلب یہ ہے کہ ہر وقت، ohai آپ کی تبدیلی کی جا رہی ہے. 578 00:43:08,560 --> 00:43:11,060 تو، کے لحاظ سے آپ اپنے مطلوبہ الفاظ میں کیا پوزیشن پر 579 00:43:11,060 --> 00:43:15,800 آپ کو اس رقم کی طرف سے آپ کے بعض ciphertext کردار منتقل کی جا رہے ہیں. 580 00:43:15,800 --> 00:43:19,630 ایک بار پھر، صرف کیسر کی طرح، ہم اس بات کا یقین کر لیں کہ ہم چیزوں کے بڑے حروف تہجی کے تحفظ کرنا چاہتے ہیں 581 00:43:19,630 --> 00:43:22,900 اور ہم صرف encipher حروف، حروف یا خالی جگہیں نہیں. 582 00:43:22,900 --> 00:43:26,330 تو افعال ہے کہ آپ استعمال کر سکتے ہیں پر کیسر واپس، دیکھو 583 00:43:26,330 --> 00:43:32,570 جس طرح سے کہ آپ کا فیصلہ کیا ہے کہ کس طرح چیزیں، منتقل اور آپ کے پروگرام ہے کہ یہاں لاگو کرنے کے لئے. 584 00:43:32,570 --> 00:43:35,260 تو یہ نقشہ دو. 585 00:43:35,260 --> 00:43:39,680 ہم نے ایک سادہ متن ہے کہ ہم GetString سے صارف سے ملا ہے 586 00:43:39,680 --> 00:43:44,090 یہ کہہ رہے ہیں کیا جا رہا ہے ... CS50 ہے! 587 00:43:44,090 --> 00:43:47,090 پھر ہم ohai کے مطلوبہ الفاظ ہے. 588 00:43:47,090 --> 00:43:50,930 پہلے 4 حروف بہت آسان ہیں. 589 00:43:50,930 --> 00:43:55,580 ہم جانتے ہیں کہ ٹی اے کی طرف سے منتقل کیا جا رہا ہے، 590 00:43:55,580 --> 00:44:01,990 تو ایچ ایچ کی طرف سے منتقل کیا جا رہا ہے، کی طرف سے منتقل کیا جا رہا ہے. 591 00:44:01,990 --> 00:44:04,610 آپ کو یہاں دیکھ کر کہ ایک 0 کی نمائندگی کرتا ہے، 592 00:44:04,610 --> 00:44:11,940 تو آخر قیمت اصل میں پہلے کی طرح صرف وہی خط ہے. 593 00:44:11,940 --> 00:44:15,250 اس کے بعد کے میں منتقل کر دیا گیا ہے. 594 00:44:15,250 --> 00:44:19,370 لیکن پھر آپ کو ان ادوار کو یہاں ہے. 595 00:44:19,370 --> 00:44:25,960 ہم encipher کہ تو ہم کچھ اسے تبدیل نہیں کرنا چاہتے ہیں نہیں ہے 596 00:44:25,960 --> 00:44:31,280 اور صرف میں کوئی تبدیلی نہیں کی مدت کو پرنٹ کریں. 597 00:44:31,280 --> 00:44:38,020 [طالب علم] مجھے سمجھ میں نہیں آ رہا ہے کہ کس طرح تم جانتے ہو کہ اس کی طرف سے منتقل کر دیا گیا ہے - کہاں تم نے کیا - >> اوہ، معاف کرنا. 598 00:44:38,020 --> 00:44:41,620 آپ کو یہاں سب سے اوپر دیئے گئے ہے کہ کمانڈ لائن کی دلیل یہاں ohai 599 00:44:41,620 --> 00:44:43,740 ہے کہ مطلوبہ الفاظ کے طور پر ہو رہا ہے. 600 00:44:43,740 --> 00:44:49,550 اور تو بنیادی طور پر، آپ کو مطلوبہ الفاظ کے کرداروں کے دوران سایکلنگ کر رہے ہیں. 601 00:44:49,550 --> 00:44:52,020 [طالب علم] تو اے اسی منتقل کرنے کی جا رہی ہے - 602 00:44:52,020 --> 00:44:56,260 تو اے حروف تہجی میں ایک مخصوص تعداد کے مساوی ہے. 603 00:44:56,260 --> 00:44:58,400 [طالب علم] ٹھیک ہے. لیکن جہاں آپ کو CS50 حصہ سے ملا؟ 604 00:44:58,400 --> 00:45:02,540 اوہ. کہ جہاں آپ کی طرح ہو GetString میں ہے "آپ کے وزٹرز کا ریکارڈ رکھا ضابطہ کاری کریں سٹرنگ دو." 605 00:45:02,540 --> 00:45:07,510 [طالب علم] وہ آپ کو اس سے منتقل کرنے کی دلیل دینے جا رہے ہیں 606 00:45:07,510 --> 00:45:09,380 اور اس کے بعد آپ کو آپ کی پہلی سٹرنگ کے لئے پوچھیں گے. >> جی ہاں. 607 00:45:09,380 --> 00:45:12,440 تو جب وہ پروگرام چلاتے ہیں، وہ مطلوبہ الفاظ کو شامل کرنے کے لئے جا رہے ہیں 608 00:45:12,440 --> 00:45:14,740 ان کی کمانڈ لائن کے دلائل میں جب انہوں نے اسے چلاتے ہیں. 609 00:45:14,740 --> 00:45:19,740 پھر ایک بار آپ کی جانچ پڑتال کی ہے کہ وہ اصل میں آپ 1 دی ہے اور زیادہ نہیں، کم نہیں، 610 00:45:19,740 --> 00:45:23,750 تو آپ انہیں ایک تار کے لئے فوری طور پر جا رہے ہیں، کا کہنا ہے کہ، "مجھے ایک تار دے دو." 611 00:45:23,750 --> 00:45:27,630 تو وہ ہے جہاں وہ اس معاملے میں اس نے تمہیں دیا ہے ... CS50 ہے! 612 00:45:27,630 --> 00:45:32,090 تو پھر تم اس کا استعمال اور ohai استعمال اور iterate جا رہے ہیں. 613 00:45:32,090 --> 00:45:38,200 ، یاد رکھیں کہ ہم یہاں ادوار خفیہ کاری پر چھوڑا 614 00:45:38,200 --> 00:45:51,660 لیکن ہم اے ohai، اگلے ایک کے لئے ہماری حیثیت کے لحاظ سے استعمال کیا. 615 00:45:51,660 --> 00:45:54,990 اس صورت میں یہ تھوڑا مشکل ہے کیونکہ وہ 4 دیکھ، 616 00:45:54,990 --> 00:45:57,710 تو تھوڑا جاری. صرف میرے ساتھ یہاں رہو. 617 00:45:57,710 --> 00:46:02,960 پھر ہم میں اور S، جو اس وقت کے اے اور ایچ کی طرف سے ترجمہ کر رہے ہیں، بالترتیب. 618 00:46:02,960 --> 00:46:09,370 اس وقت ہم نے ایک جگہ ہے، اور تو ہم جانتے ہیں کہ ہم جا خالی جگہوں encipher کرنے کے لئے نہیں کر رہے ہیں. 619 00:46:09,370 --> 00:46:18,930 لیکن یاد رکھیں کہ بجائے اس جگہ پر ایک جا یہیں 620 00:46:18,930 --> 00:46:28,330 ہم نے ایک کی طرف سے خفیہ کاری کر رہے ہیں - مجھے پتہ ہے اگر آپ دیکھ سکتے ہیں نہیں ہے - یہیں ہے. 621 00:46:28,330 --> 00:46:33,710 H تو پسند نہیں آپ اصل میں پہلے سے مقرر ہے، کا کہنا ہے کہ اے یہاں ہے، یہاں ہے، 622 00:46:33,710 --> 00:46:39,200 میں یہاں ہے، یہاں ہے، اے، H،، میں، اے، H، میں،. تم ایسا نہیں ہے. 623 00:46:39,200 --> 00:46:43,760 آپ صرف مطلوبہ الفاظ میں اپنی پوزیشن میں تبدیلی 624 00:46:43,760 --> 00:46:51,020 جب آپ کو معلوم ہے کہ آپ کو اصل میں ایک حقیقی خط خفیہ کاری پر جا رہے ہیں. 625 00:46:51,020 --> 00:46:53,920 کیا اس طرح کا کوئی مطلب ہے؟ 626 00:46:53,920 --> 00:46:55,800 ٹھیک ہے. 627 00:46:56,490 --> 00:46:58,500 تو صرف کچھ یاددہانی. 628 00:46:58,500 --> 00:47:03,760 آپ کو اس بات کا یقین کر لیں کہ آپ صرف آپ کے مطلوبہ الفاظ میں اگلے حرف کو ترقی کرنا چاہتے ہیں 629 00:47:03,760 --> 00:47:06,390 اگر آپ سادہ متن میں کردار ایک خط ہے. 630 00:47:06,390 --> 00:47:09,120 تو کا کہنا ہے کہ ہم اے میں ہو. 631 00:47:09,120 --> 00:47:19,310 ہم دیکھیں گے کہ اگلے کردار، سادہ متن میں انڈیکس، مثال کے طور پر ایک نمبر ہے،. 632 00:47:19,310 --> 00:47:31,630 پھر ہم J، ہمارے مطلوبہ الفاظ کے لئے انڈیکس کو آگے بڑھانے کے نہیں، جب تک ہم ایک دوسرے خط تک پہنچنے. 633 00:47:31,630 --> 00:47:36,230 ایک بار پھر، آپ کو مطلوبہ الفاظ کے آغاز میں اس بات کا یقین کر لیں کہ آپ wraparound بنانا چاہتے ہیں 634 00:47:36,230 --> 00:47:37,770 جب تم اس کے آخر میں ہیں. 635 00:47:37,770 --> 00:47:42,030 اگر آپ دیکھتے ہیں یہاں ہم میں میں ہو، اگلے ایک O ہے. 636 00:47:42,030 --> 00:47:47,690 تو آپ کو آپ کے مطلوبہ الفاظ کے آغاز wraparound کرنے کے قابل ہونے کا کوئی نہ کوئی راستہ تلاش کرنا چاہتے ہیں 637 00:47:47,690 --> 00:47:49,470 ہر وقت ہے کہ آپ کو آخر تک پہنچنے کے. 638 00:47:49,470 --> 00:47:55,040 اور تو پھر، کیا آپریٹر کی طرح ارد گرد ریپنگ کے لئے اس صورت میں مفید ہے؟ 639 00:47:56,630 --> 00:47:59,840 مثال کے طور پر دور کی گنتی کی طرح. 640 00:47:59,840 --> 00:48:03,710 [طالب علم] فیصد سائن ان کریں. >> جی ہاں، فیصد کی علامت ہے، جس modulo ہے. 641 00:48:03,710 --> 00:48:11,250 تو modulo ہاتھ میں آئے گا جب آپ اپنے ohai میں انڈیکس لپیٹ کرنا چاہتے ہیں کریں گے. 642 00:48:11,250 --> 00:48:17,700 اور صرف ایک فوری اشارہ: تھوڑی گنتی نے جیسے مطلوبہ الفاظ سے زیادہ ریپنگ کے بارے میں سوچ کی کوشش کریں، 643 00:48:17,700 --> 00:48:23,590 جہاں اگر 3 گروپوں، 4th شخص ہے، 644 00:48:23,590 --> 00:48:30,610 ان کی تعداد ہے کہ انہوں نے کہا کہ 3 4 MOD، جس میں 1 تھا. 645 00:48:30,610 --> 00:48:32,880 تو اس سے لگتا ہے کہ اس طرح کی کوشش کریں. 646 00:48:34,770 --> 00:48:42,740 جیسا کہ آپ فارمولے میں دیکھا، تم جہاں بھی CI اور پھر PI ہے لیکن پھر KJ، 647 00:48:42,740 --> 00:48:44,700 آپ کو اس بات کا یقین کر لیں کہ آپ ان میں سے ٹریک رکھنے بنانے کے لئے چاہتے ہیں. 648 00:48:44,700 --> 00:48:47,580 تم میں کو فون کرنے کی ضرورت نہیں ہے، آپ اسے J فون کرنے کی ضرورت نہیں ہے، 649 00:48:47,580 --> 00:48:53,270 لیکن آپ اس بات کا یقین کر لیں کہ آپ کو آپ سادہ متن میں پوزیشن کہ تم پر نگاہ رکھنے کے بنانے کے لئے چاہتے ہیں 650 00:48:53,270 --> 00:48:55,790 پوزیشن کے طور پر ہے کہ آپ کو آپ کے مطلوبہ الفاظ میں ہیں 651 00:48:55,790 --> 00:48:59,840 کیونکہ وہی ہونا ضروری نہیں جا رہے ہیں. 652 00:48:59,840 --> 00:49:06,400 نہ صرف مطلوبہ الفاظ کرتا ہے - یہ آپ سادہ متن سے ایک مکمل طور پر مختلف لمبائی ہو سکتا ہے. 653 00:49:06,400 --> 00:49:09,140 کے علاوہ، آپ سادہ متن، کی تعداد اور حروف ہیں، 654 00:49:09,140 --> 00:49:14,450 تو یہ بالکل ایک ساتھ میچ نہیں ہے. جی ہاں. 655 00:49:14,450 --> 00:49:19,280 [طالب علم] معاملے کو تبدیل کرنے کی تقریب ہے؟ 656 00:49:19,280 --> 00:49:24,530 آپ کو ایک دارالحکومت تبدیل کر سکتا ہوں؟ >> جی ہاں، ضرور ہے. 657 00:49:24,530 --> 00:49:27,890 تم نے چیک کر سکتے ہیں - میں اس toupper، سب 1 لفظ کا خیال ہے. 658 00:49:30,650 --> 00:49:36,310 ، لیکن جب تم نے چیزوں کو صفر اور متن کے تحفظ کی کوشش کر رہے ہیں 659 00:49:36,310 --> 00:49:39,350 بہترین بنیادی طور پر الگ الگ مقدمات ہیں. 660 00:49:39,350 --> 00:49:42,040 اگر یہ ایک بڑے ہے، تو آپ کو اس کی طرف سے منتقل کرنا چاہتے ہیں 661 00:49:42,040 --> 00:49:46,460 کیونکہ آپ کے فارمولے میں، تم واپس کب نظر آئے کہ ہم کس طرح جانے کی قسم 662 00:49:46,460 --> 00:49:50,900 interchangeably تعداد کی نمائندگی کی طرح ASCII کے درمیان 663 00:49:50,900 --> 00:49:55,020 اور اصل حروف تہجی انڈیکس، ہم اس بات کو یقینی بنانا چاہتے ہیں 664 00:49:55,020 --> 00:50:01,850 پیٹرن کی کسی طرح کا ہے کہ آپ کو استعمال کرنے کے لئے جا رہے ہیں جا رہا ہے. 665 00:50:01,850 --> 00:50:04,580 طرز پر ایک اور مہربانی نوٹ کریں، اصل میں. 666 00:50:04,580 --> 00:50:07,250 تم ضرور تعداد کے ساتھ نمٹنے جا رہے ہیں. 667 00:50:07,250 --> 00:50:11,280 جادو کی تعداد کو استعمال کرنے کی کوشش کریں، جس انداز کی ایک مثال ہے. 668 00:50:11,280 --> 00:50:18,470 تو کا کہنا ہے کہ آپ کی طرف سے پسند ہر وقت تبدیلی کچھ کرنا چاہتے ہیں - 669 00:50:18,470 --> 00:50:22,400 ٹھیک ہے، تو اشارہ ہے، ایک اور بگاڑنے ہے جب آپ کچھ منتقل جا رہے ہیں 670 00:50:22,400 --> 00:50:26,310 ایک مخصوص رقم کی طرف سے، کہ ایک حقیقی تعداد کی طرف سے نہیں کی نمائندگی کرنے کی کوشش کریں 671 00:50:26,310 --> 00:50:32,810 بلکہ اور دیکھیں اگر آپ ASCII قیمت کا استعمال کر سکتے ہیں، جو اس قسم کی زیادہ احساس کرے گا کی کوشش کریں. 672 00:50:32,810 --> 00:50:35,470 ایک اور نوٹ: کیونکہ ہم فارمولوں کے ساتھ کام کر رہے ہو، 673 00:50:35,470 --> 00:50:41,200 اگرچہ آپ کے TF کی طرح معلوم ہے کہ آپ کس پیٹرن کا استعمال کرتے ہوئے کر سکتے ہیں، 674 00:50:41,200 --> 00:50:44,430 آپ کے تبصرے قسم کی سب سے بہترین پر منطق، پسند کی وضاحت، 675 00:50:44,430 --> 00:50:51,880 "کیونکہ میں اس پیٹرن کا استعمال کرتے ہوئے کر رہا ہوں ..." اور آپ کے تبصرے میں اس قسم کی طرز succinctly وضاحت. 676 00:50:54,090 --> 00:50:58,990 [2 walkthrough تھا] اگر کوئی اور سوال نہیں ہیں، تو میں تھوڑا سا کے لئے صرف یہاں رہیں گے. 677 00:50:58,990 --> 00:51:04,370 Crypto اور آنے کے لئے شکریہ: آپ کی 2 pset کے ساتھ گڈ لک. 678 00:51:06,070 --> 00:51:08,620 [طالب علم] آپ کا شکریہ. >> شکریہ. 679 00:51:09,220 --> 00:51:10,800 [میڈیا حاضر تعارف]