1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA چن: مبارک ہو آپ کے ختم پر 3 00:00:11,270 --> 00:00:13,200 سی کے پروگرام کے پہلے جوڑے. 4 00:00:13,200 --> 00:00:16,379 میں جانتا ہوں کہ آپ کی پہلی داوا میں سی نحو مشکل ہو سکتا ہے. 5 00:00:16,379 --> 00:00:20,060 لیکن میں کے آخر میں، آپ کو یقین دلاتا کورس کے، آپ کو دیکھنے کے لئے قابل ہو جائے گا 6 00:00:20,060 --> 00:00:23,870 پہلی اسائنمنٹ کے جوڑے اور منٹ میں ان کو مکمل کریں. 7 00:00:23,870 --> 00:00:27,830 >> اب آپ زیادہ واقف ہو رہے ہیں کہ نحو کے ساتھ، کی کیسر پر نکلتے ہیں. 8 00:00:27,830 --> 00:00:31,720 کیسر میں، صارف کو ایک پیش کرے گی ایک کمانڈ لائن کے طور پر عددی اہم 9 00:00:31,720 --> 00:00:35,300 دلیل، تو پھر ایک سادہ داخل فوری طور پر متن پیغام. 10 00:00:35,300 --> 00:00:38,050 پروگرام تو encipher گا متن اور پرنٹ 11 00:00:38,050 --> 00:00:40,020 ان ciphertext پیغام. 12 00:00:40,020 --> 00:00:42,980 >> سیزر کے لئے enciphering بہت آسان ہے. 13 00:00:42,980 --> 00:00:46,455 ان میں سے ہر ایک خط میں منتقل چابی کے ذریعے سادہ متن،. 14 00:00:46,455 --> 00:00:49,220 نتیجے کے طور پر، یہ بھی ہے خوبصورت غیر محفوظ. 15 00:00:49,220 --> 00:00:53,850 لیکن عمل درآمد کیسر متعارف کرائے گا ہمیں ASCIIMath اور سرنی کے اعداد و شمار 16 00:00:53,850 --> 00:00:54,460 ڈھانچے. 17 00:00:54,460 --> 00:00:57,510 ہم زیادہ پیچیدہ کرنے کے لئے مل جائے گا بعد میں خفیہ کار. 18 00:00:57,510 --> 00:01:01,680 2 کی ایک اہم کیسر، میں ایک خط کے ساتھ سادہ متن کی طرف سے نمائندگی کی جائے گی 19 00:01:01,680 --> 00:01:07,580 ciphertext میں خط کی وجہ سے سی سی بی اے کرنے کے بعد دو حروف ہو جائے گا 20 00:01:07,580 --> 00:01:12,450 کی طرف کی طرف سے ای ڈی اور سی کی طرف سے نمائندگی حروف تہجی کے اختتام پر، W ہے 21 00:01:12,450 --> 00:01:18,550 زیڈ لیکن Y Y کی طرف سے، اور X کی طرف سے نمائندگی لہذا، یہ بعد دو خط نہیں ہے 22 00:01:18,550 --> 00:01:21,070 خفیہ کار حروف تہجی کے ارد گرد wraps. 23 00:01:21,070 --> 00:01:27,190 سادہ متن میں Y اس طرح کی طرف سے نمائندگی کر رہا ہے یہ کر سکتے ہیں بی کی طرف سے ciphertext میں ایک، اور Z 24 00:01:27,190 --> 00:01:32,080 جیسے کیسر صفر کو دیکھنے کے لئے میں مدد ایک مسلسل حروف تہجی پہیا. 25 00:01:32,080 --> 00:01:35,760 >> ان کا متن، صارف encipher پر دو دلائل داخل ہوں گے 26 00:01:35,760 --> 00:01:37,090 - کمانڈ لائن میں 27 00:01:37,090 --> 00:01:40,010 . / کیسر ایک اہم کے بعد. 28 00:01:40,010 --> 00:01:44,710 ہمیشہ کی طرح، ہم صارف کو اعتماد نہیں کر سکتے ہیں مکمل طور پر بنانے کے لئے کہ ان پٹ داخل کرنے کے لئے 29 00:01:44,710 --> 00:01:45,800 ہمارے پروگرام کے لئے احساس. 30 00:01:45,800 --> 00:01:50,670 تو ہم نے ان کو درست کرنا پڑے گا کمانڈ لائن ان پٹ. 31 00:01:50,670 --> 00:01:57,285 >> اس کے بجائے INT اہم صفر کا استعمال کرتے ہوئے، ہم ہیں INT اہم، INT argc، سٹرنگ argv کا استعمال کرتے ہوئے. 32 00:01:57,285 --> 00:02:01,730 عدد صحیح متغیر argc کی نمائندگی کرتا ہے میں منظور دلائل کی تعداد 33 00:02:01,730 --> 00:02:02,880 کمانڈ لائن. 34 00:02:02,880 --> 00:02:09,070 اور argv ایک سرنی ہے، یا کے طور پر اس کے بارے میں سوچنا دلائل کی ایک فہرست، رکنیت منظور 35 00:02:09,070 --> 00:02:12,000 >> تو کیسر کے لئے، ہم کس طرح کی توثیق کرتے ہیں صارف کی ان پٹ؟ 36 00:02:12,000 --> 00:02:15,870 ٹھیک ہے، وہ صرف میں داخل کیا جانا چاہئے دو کمانڈ لائن دلائل - 37 00:02:15,870 --> 00:02:18,150 . / کیسر اور ایک اہم. 38 00:02:18,150 --> 00:02:22,340 argc 2 نہیں ہے تو، اس کا مطلب ہے کہ وہ یا تو ایک اہم اور تو بھول ہی گیا 39 00:02:22,340 --> 00:02:27,230 میں داخل ہوئے. / کیسر، یا وہ ایک سے زیادہ چابیاں میں داخل ہوئے. 40 00:02:27,230 --> 00:02:29,770 >> یہ معاملہ ہے، تو آپ کروں گا دی گئی ہدایات پر پرنٹ کرنے کے لئے چاہتے ہیں 41 00:02:29,770 --> 00:02:30,910 اور پروگرام چھوڑ دیا. 42 00:02:30,910 --> 00:02:34,320 انہوں نے دوبارہ کوشش کی ضرورت ہوگی کمانڈ لائن کی طرف سے. 43 00:02:34,320 --> 00:02:37,430 لیکن argc 2 ہے، چاہے، آپ چیک کرنے کی ضرورت ہے کہ آیا وہ 44 00:02:37,430 --> 00:02:39,100 آپ کو ایک درست چابی دے. 45 00:02:39,100 --> 00:02:40,730 سیزر کے لئے، آپ کو ایک عدد صحیح کی ضرورت ہے. 46 00:02:40,730 --> 00:02:43,260 لیکن argv ڈور کی ایک سرنی ہے. 47 00:02:43,260 --> 00:02:46,490 تمہیں یہ کس طرح کی کلید تک رسائی حاصل کر سکتا ہوں؟ 48 00:02:46,490 --> 00:02:47,850 >> arrays پر ایک فوری نظر - 49 00:02:47,850 --> 00:02:51,410 ایک سے زیادہ پکڑ کہ اعداد و شمار کے ڈھانچے اسی کے اعداد و شمار کی قسم کی اقدار. 50 00:02:51,410 --> 00:02:55,350 میں لکھے کا مطلب ہے، صفر حساب سے ترتیب ہیں پہلا عنصر انڈیکس صفر ہے 51 00:02:55,350 --> 00:03:00,260 اور آخری عنصر انڈیکس سائز میں ہے سائز کی تعداد ہے جہاں مائنس 1، 52 00:03:00,260 --> 00:03:02,850 سرنی میں عناصر. 53 00:03:02,850 --> 00:03:07,380 >> میں نے ایک نئی سٹرنگ سرنی میل باکس کا اعلان کر دیا تو لمبائی 3، ضعف ہے، یہ 54 00:03:07,380 --> 00:03:08,570 اس طرح لگتا ہے. 55 00:03:08,570 --> 00:03:11,520 ڈور کے لئے تین کنٹینرز ، پارٹی کی طرف سے کی طرف. 56 00:03:11,520 --> 00:03:15,445 کسی بھی عنصر تک رسائی حاصل کرنے کے لئے، آپ کا نام ٹائپ کریں سرنی کی اور پھر اس بات کی نشاندہی 57 00:03:15,445 --> 00:03:18,080 مربع بریکٹ میں انڈیکس. 58 00:03:18,080 --> 00:03:21,610 یہ لو، میں سے ہر ایک کے لئے ایک قیمت مقرر رہا ہوں میں کسی کے ساتھ کیا کرے گا بالکل اسی طرح جیسے عنصر، 59 00:03:21,610 --> 00:03:24,310 دیگر سٹرنگ متغیر. 60 00:03:24,310 --> 00:03:29,020 >> تو ہماری کمانڈ لائن دلائل تک رسائی حاصل کرنے، ہم نے صرف اتنا کرنا ہے تک رسائی حاصل ہے 61 00:03:29,020 --> 00:03:31,690 argv سرنی کے حق عنصر. 62 00:03:31,690 --> 00:03:37,360 صارف. / blastoff ٹیم میں داخل ہوئے تو ٹرمینل میں راکٹ، argv 0 گے 63 00:03:37,360 --> 00:03:38,950 ہو. / blastoff. 64 00:03:38,950 --> 00:03:45,010 argv ٹیم ہو، اور کرے گا arg2 راکٹ ہوگا. 65 00:03:45,010 --> 00:03:47,670 >> ہم اپنے کلیدی تک رسائی حاصل کر سکتے ہیں اب کہ، ہم اب بھی کرنے کی ضرورت 66 00:03:47,670 --> 00:03:49,040 یہ صحیح ہے کہ اس بات کا یقین. 67 00:03:49,040 --> 00:03:51,060 ہم ایک عدد صحیح میں تبدیل کرنے کی ضرورت ہے. 68 00:03:51,060 --> 00:03:54,680 لیکن ہم جیسا ڈال نہیں کر سکتے ہیں ہم نے ماضی میں کیا ہے. 69 00:03:54,680 --> 00:03:58,800 خوش قسمتی سے، ایک پر Y تقریب خیال رکھتا ہے ہمارے لئے اس کی اور یہاں تک کہ واپس 0 70 00:03:58,800 --> 00:04:02,110 سٹرنگ میں تبدیل نہیں کیا جا سکتا اگر ایک عدد صحیح میں. 71 00:04:02,110 --> 00:04:04,450 یہ بتانے کے لئے، تاہم، آپ پر منحصر ہے صارف کیوں تم نہیں کروگے 72 00:04:04,450 --> 00:04:06,220 پروگرام کو آگے بڑھنے دیں. 73 00:04:06,220 --> 00:04:10,710 ایک میں Y کے لئے ایک کا نتیجہ ذخیرہ عدد صحیح، اور وہاں آپ کو اپنے چابی ہے. 74 00:04:10,710 --> 00:04:12,070 اگلے حصہ سادہ ہے. 75 00:04:12,070 --> 00:04:15,940 ، ان کی سادہ متن کے لیے صارف کا لقمہ جو اعداد و شمار کی قسم سٹرنگ کی ہو جائے گا. 76 00:04:15,940 --> 00:04:18,339 خوش قسمتی سے ہمارے لئے، تمام صارف inputted ڈور درست ہیں. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> ہم تمام ضروری ان پٹ ہے اب وہ صارف کی طرف سے، یہ ہمارے لئے وقت ہو گیا ہے 79 00:04:24,760 --> 00:04:26,520 ان کا پیغام encipher. 80 00:04:26,520 --> 00:04:29,200 قیصر کے تصور کو آسان ہے سمجھنے کے لئے کافی. 81 00:04:29,200 --> 00:04:33,750 لیکن کس طرح آپ کے کمپیوٹر کو معلوم ہوتا ہے کہ جس میں حروف ایک دوسرے کے بعد آتے ہیں؟ 82 00:04:33,750 --> 00:04:36,100 >> ASCII ٹیبل کے اندر آتا ہے جہاں یہاں ہے 83 00:04:36,100 --> 00:04:39,420 ہر کردار ایک عدد صحیح ہے تعداد اس کے ساتھ منسلک. 84 00:04:39,420 --> 00:04:41,380 کیپٹل ایک 65 ہے. 85 00:04:41,380 --> 00:04:43,310 کیپٹل بی 66 ہے. 86 00:04:43,310 --> 00:04:45,260 ایک 97 ہے چھوٹے حروف. 87 00:04:45,260 --> 00:04:47,590 چھوٹے ب 98 ہے. 88 00:04:47,590 --> 00:04:50,770 لیکن حروف تک محدود نہیں کر رہے ہیں صرف الفبایی نمبرز. 89 00:04:50,770 --> 00:04:56,020 مثال کے طور پر، @ علامت ASCII تعداد 64 ہے. 90 00:04:56,020 --> 00:04:59,690 >> پورے سٹرنگ کے ساتھ نمٹنے سے پہلے، کی دکھاوا کرتے ہیں ہم صرف منتقل کرنا پڑے 91 00:04:59,690 --> 00:05:01,220 ایک کردار. 92 00:05:01,220 --> 00:05:04,640 ٹھیک ہے، ہم صرف اصل منتقل کرنا چاہتے ہیں سادہ متن میں حروف، نہیں 93 00:05:04,640 --> 00:05:06,020 حروف یا ہندسوں. 94 00:05:06,020 --> 00:05:09,100 ہم چاہیں گے کہ تو پہلی بات جانچ پڑتال کے کردار میں ہے کہ آیا ہے 95 00:05:09,100 --> 00:05:10,430 حروف تہجی. 96 00:05:10,430 --> 00:05:14,460 >> تقریب isalpha کے لئے اس کرتا ہے ہمارے اور ایک بولین واپس - 97 00:05:14,460 --> 00:05:18,570 حروف اگر یہ سچ ہے کہ ایک خط ہے دوسری صورت میں اگر جھوٹے. 98 00:05:18,570 --> 00:05:22,270 دو دیگر مفید افعال ہیں isupper اور islower، کے ساتھ 99 00:05:22,270 --> 00:05:23,860 خود وضاحتی کے نام. 100 00:05:23,860 --> 00:05:27,370 وہ سچ واپس اگر دی کردار ، بڑے یا خفی ہے 101 00:05:27,370 --> 00:05:28,740 بالترتیب. 102 00:05:28,740 --> 00:05:33,770 وہ Booleans ہیں، وہ کر رہے ہیں حالات کے طور پر استعمال کرنے کے لئے مفید ہے. 103 00:05:33,770 --> 00:05:38,310 >> isalpha سچ واپس تو، آپ کی ضرورت ہو گی کلید کی طرف سے اس کردار کو منتقل کرنے کے لئے. 104 00:05:38,310 --> 00:05:43,750 تو کی ASCIIMath پر کھول دیں اور کچھ ASCII ریاضی کرتے ہیں. 105 00:05:43,750 --> 00:05:48,700 استعمال کے استعمال کرنے کے لئے بہت ملتا جلتا ہے سیزر کے لئے اور میں ایک اہم میں لیتا ہے 106 00:05:48,700 --> 00:05:50,870 کمانڈ لائن. 107 00:05:50,870 --> 00:05:59,590 >> میں ASCIIMath 5 چلانے کے، تو یہ شامل کرنے کے لئے لگتا ہے 5 کے لئے ایک، مجھے خط F دے اور 108 00:05:59,590 --> 00:06:01,260 ASCII قیمت کی نمائش. 109 00:06:01,260 --> 00:06:04,090 تو اس کے پروگرام پر ایک نظر ڈالیں ہیں. 110 00:06:04,090 --> 00:06:11,820 >> تم یہیں، کیوں، حیرت ہے کہ ہو سکتا ہے یہ ہے جب خط، ایک عدد صحیح ہے 111 00:06:11,820 --> 00:06:14,330 واضح طور پر، اچھی طرح سے، ایک خط. 112 00:06:14,330 --> 00:06:17,690 یہ باہر کر دیتا ہے کہ حروف اور integers تبادلہ ہیں. 113 00:06:17,690 --> 00:06:21,730 ایک خط میں رکھ کر واوین، عدد صحیح محفوظ کر سکتے ہیں 114 00:06:21,730 --> 00:06:25,390 دارالحکومت کے ASCII قیمت اے، تاہم ہوشیار رہو. 115 00:06:25,390 --> 00:06:27,150 آپ کو ایک کپڑے کی ضرورت ہے. 116 00:06:27,150 --> 00:06:31,260 ایک اقتباس کے نشانات کے بغیر، سنکلک ایک متغیر کے لئے نظر آئے گا 117 00:06:31,260 --> 00:06:35,510 ایک، اور کردار کا نام دیا. 118 00:06:35,510 --> 00:06:42,140 >> اس کے بعد میں محفوظ، خط اور ایک اہم اضافہ کریں INT متغیر نتیجہ میں رقم. 119 00:06:42,140 --> 00:06:47,740 نتیجہ کے اعداد و شمار کی قسم کی ہے اگرچہ عدد صحیح، میری printf بیان کا استعمال کرتا ہے 120 00:06:47,740 --> 00:06:50,370 حروف کے لئے٪ ج پلیس ہولڈر. 121 00:06:50,370 --> 00:06:54,530 تو پروگرام کے کردار پرنٹس عدد صحیح نتیجہ کے ساتھ منسلک. 122 00:06:54,530 --> 00:07:00,400 اور ہم عددی طباعت کے بعد سے شکل کے طور پر اچھی طرح٪ ڈی کا استعمال کرتے ہوئے، ہم دیکھتے ہیں 123 00:07:00,400 --> 00:07:02,110 تعداد کے طور پر اچھی طرح سے. 124 00:07:02,110 --> 00:07:04,450 تو اب آپ دیکھ سکتے ہیں کہ ہم حروف کا علاج اور 125 00:07:04,450 --> 00:07:06,980 integers، اور اس کے برعکس. 126 00:07:06,980 --> 00:07:12,205 >> ASCIIMath چند ایک باہر کی جانچ پڑتال کرتے ہیں ایک اہم کے طور پر 25 کا استعمال کرتے ہوئے زیادہ بار. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 ہم خط Z ملتا ہے. 129 00:07:17,090 --> 00:07:19,750 اب ہم 26 کی کوشش کریں. 130 00:07:19,750 --> 00:07:25,600 ہم نے ایک خط حاصل کرنے کے لئے چاہتے ہیں، لیکن اس کے بجائے ہم ایک بائیں بریکٹ ملتا ہے. 131 00:07:25,600 --> 00:07:29,490 تو ظاہر ہے، صرف انہوں نے مزید کہا خط کی کلید نہیں کروں گا. 132 00:07:29,490 --> 00:07:32,780 ہم لپیٹ کرنے کے لئے ایک فارمولہ پتہ کرنے کی ضرورت ہے حروف تہجی کے ارد گرد، ہماری پسند 133 00:07:32,780 --> 00:07:34,570 شروع میں مثال کے طور پر کیا. 134 00:07:34,570 --> 00:07:38,520 >> سیزر کے لئے ایک فارمولہ شفٹ درج ذیل ہے. 135 00:07:38,520 --> 00:07:42,750 ج P پلس K modulo 26 برابر. 136 00:07:42,750 --> 00:07:46,040 modulo ایک مفید ہے یاد رکھیں کہ ہم سے باقی دیتا ہے کہ آپریشن 137 00:07:46,040 --> 00:07:49,880 دوسرے کی طرف سے ایک ہی نمبر تقسیم کی. 138 00:07:49,880 --> 00:07:54,870 کی سادہ پر اس فارمولے کا اطلاق کرتے ہیں 2 کے ایک اہم متن کے ساتھ خط. 139 00:07:54,870 --> 00:08:01,810 Y کی ASCII قیمت، 89 ہے جو ہمیں 91 modulo 26، دیتا ہے 140 00:08:01,810 --> 00:08:03,690 جس میں 13 برابر ہے - 141 00:08:03,690 --> 00:08:08,740 یقینی طور پر نہیں ASCII قیمت ایک کے، جس میں 67 ہے. 142 00:08:08,740 --> 00:08:12,810 >> اب میرے ہنسی مذاق اور سے دور منتقل ایک حروف تہجی کے اعتبار انڈیکس ASCII اقدار 143 00:08:12,810 --> 00:08:18,690 ایک صفر ہے اور Z، 25 ہے جہاں Y 24 ہے کہ کا مطلب ہے. 144 00:08:18,690 --> 00:08:25,830 24 پلس 2، modulo 6،، ہمارے 26 دیتا ہے ہے جو modulo 26، 0، 145 00:08:25,830 --> 00:08:28,170 ایک کے حروف تہجی کی فہرست. 146 00:08:28,170 --> 00:08:32,980 تو اس فارمولے کو لاگو کرنے لگتا ہے حروف تہجی کے اعتبار خط کے انڈیکس اور 147 00:08:32,980 --> 00:08:34,960 نہیں اس ASCII قیمت. 148 00:08:34,960 --> 00:08:37,630 >> لیکن آپ ASCII اقدار کے ساتھ شروع. 149 00:08:37,630 --> 00:08:41,650 اور ciphertext کردار کو پرنٹ کرنے کے لئے، آپ کے ساتھ ساتھ اس کی ASCII قیمت کی ضرورت ہوگی. 150 00:08:41,650 --> 00:08:46,400 یہ پتہ کرنے کے لئے، تو آپ پر منحصر ہے آگے پیچھے سوئچ کرنے کے لئے کس طرح. 151 00:08:46,400 --> 00:08:49,850 >> ایک بار جب آپ صحیح فارمولا پتہ ایک کردار کے لئے، تم سب کرنے کی ضرورت ہے 152 00:08:49,850 --> 00:08:53,520 ہر کرنے کے لئے اسی فارمولے کا اطلاق کیا جاتا ہے سادہ متن میں خط - 153 00:08:53,520 --> 00:08:57,720 اس خط کے حروف تہجی کے اعتبار ہے، صرف اس صورت میں بالکل. 154 00:08:57,720 --> 00:09:02,360 اور تم کو محفوظ کرنے کی ضرورت ہے یاد ہے کہ کیس، اوپری یا کم، وہ کہاں ہے 155 00:09:02,360 --> 00:09:06,890 isUpper اور isLower افعال ذکر پہلے ہاتھ میں آ جائے گا. 156 00:09:06,890 --> 00:09:08,830 آپ کے پاس دو فارمولوں ہو سکتا ہے - 157 00:09:08,830 --> 00:09:11,680 بڑے حروف کے لئے ایک اور چھوٹے کے لئے ایک. 158 00:09:11,680 --> 00:09:18,420 تو isUpper ایک isLower آپ کی مدد کرے گا لاگو کرنے کے لئے جس فارمولے کا تعین. 159 00:09:18,420 --> 00:09:22,460 >> تم کس طرح ہر ایک کے لئے آپ کے فارمولے کیسے درخواست دوں ایک تار میں واحد کردار؟ 160 00:09:22,460 --> 00:09:25,910 ویسے، ایک سٹرنگ صرف ایک ہے حروف کی سرنی. 161 00:09:25,910 --> 00:09:31,150 تو کیا تم ہر کردار کی طرف سے رسائی حاصل کر سکتے میں ہر کردار سے زیادہ گروہ بندی 162 00:09:31,150 --> 00:09:33,450 لوپ کے لئے ایک میں سٹرنگ. 163 00:09:33,450 --> 00:09:37,550 لوپ کے لئے آپ کی حالت کے لئے کے طور پر، سٹرنگ کے لئے تقریب strlen، 164 00:09:37,550 --> 00:09:39,280 لمبائی، ہاتھ میں آ جائے گا. 165 00:09:39,280 --> 00:09:44,020 یہ ان پٹ کے طور پر ایک سٹرنگ میں لیتا ہے اور کہ سٹرنگ کی لمبائی واپس. 166 00:09:44,020 --> 00:09:49,250 حق لائبریری شامل کرنے کے لئے یقینی بنائیں کہ سٹرنگ کی لمبائی تقریب کو استعمال کرنے کی. 167 00:09:49,250 --> 00:09:51,790 >> اور وہاں آپ کو آپ کے ciphertext ہے. 168 00:09:51,790 --> 00:09:53,260 میرا نام Zamyla ہے. 169 00:09:53,260 --> 00:09:54,510 اور [بولنے کوڈ]. 170 00:09:54,510 --> 00:10:02,944