>> ZAMYLA چن: مبارک ہو آپ کے ختم پر
سی کے پروگرام کے پہلے جوڑے.
میں جانتا ہوں کہ آپ کی پہلی داوا میں سی نحو مشکل ہو سکتا ہے.
لیکن میں کے آخر میں، آپ کو یقین دلاتا کورس کے، آپ کو دیکھنے کے لئے قابل ہو جائے گا
پہلی اسائنمنٹ کے جوڑے اور منٹ میں ان کو مکمل کریں.
>> اب آپ زیادہ واقف ہو رہے ہیں کہ نحو کے ساتھ، کی کیسر پر نکلتے ہیں.
کیسر میں، صارف کو ایک پیش کرے گی ایک کمانڈ لائن کے طور پر عددی اہم
دلیل، تو پھر ایک سادہ داخل فوری طور پر متن پیغام.
پروگرام تو encipher گا متن اور پرنٹ
ان ciphertext پیغام.
>> سیزر کے لئے enciphering بہت آسان ہے.
ان میں سے ہر ایک خط میں منتقل چابی کے ذریعے سادہ متن،.
نتیجے کے طور پر، یہ بھی ہے خوبصورت غیر محفوظ.
لیکن عمل درآمد کیسر متعارف کرائے گا ہمیں ASCIIMath اور سرنی کے اعداد و شمار
ڈھانچے.
ہم زیادہ پیچیدہ کرنے کے لئے مل جائے گا بعد میں خفیہ کار.
2 کی ایک اہم کیسر، میں ایک خط کے ساتھ سادہ متن کی طرف سے نمائندگی کی جائے گی
ciphertext میں خط کی وجہ سے سی سی بی اے کرنے کے بعد دو حروف ہو جائے گا
کی طرف کی طرف سے ای ڈی اور سی کی طرف سے نمائندگی حروف تہجی کے اختتام پر، W ہے
زیڈ لیکن Y Y کی طرف سے، اور X کی طرف سے نمائندگی لہذا، یہ بعد دو خط نہیں ہے
خفیہ کار حروف تہجی کے ارد گرد wraps.
سادہ متن میں Y اس طرح کی طرف سے نمائندگی کر رہا ہے یہ کر سکتے ہیں بی کی طرف سے ciphertext میں ایک، اور Z
جیسے کیسر صفر کو دیکھنے کے لئے میں مدد ایک مسلسل حروف تہجی پہیا.
>> ان کا متن، صارف encipher پر دو دلائل داخل ہوں گے
- کمانڈ لائن میں
. / کیسر ایک اہم کے بعد.
ہمیشہ کی طرح، ہم صارف کو اعتماد نہیں کر سکتے ہیں مکمل طور پر بنانے کے لئے کہ ان پٹ داخل کرنے کے لئے
ہمارے پروگرام کے لئے احساس.
تو ہم نے ان کو درست کرنا پڑے گا کمانڈ لائن ان پٹ.
>> اس کے بجائے INT اہم صفر کا استعمال کرتے ہوئے، ہم ہیں INT اہم، INT argc، سٹرنگ argv کا استعمال کرتے ہوئے.
عدد صحیح متغیر argc کی نمائندگی کرتا ہے میں منظور دلائل کی تعداد
کمانڈ لائن.
اور argv ایک سرنی ہے، یا کے طور پر اس کے بارے میں سوچنا دلائل کی ایک فہرست، رکنیت منظور
>> تو کیسر کے لئے، ہم کس طرح کی توثیق کرتے ہیں صارف کی ان پٹ؟
ٹھیک ہے، وہ صرف میں داخل کیا جانا چاہئے دو کمانڈ لائن دلائل -
. / کیسر اور ایک اہم.
argc 2 نہیں ہے تو، اس کا مطلب ہے کہ وہ یا تو ایک اہم اور تو بھول ہی گیا
میں داخل ہوئے. / کیسر، یا وہ ایک سے زیادہ چابیاں میں داخل ہوئے.
>> یہ معاملہ ہے، تو آپ کروں گا دی گئی ہدایات پر پرنٹ کرنے کے لئے چاہتے ہیں
اور پروگرام چھوڑ دیا.
انہوں نے دوبارہ کوشش کی ضرورت ہوگی کمانڈ لائن کی طرف سے.
لیکن argc 2 ہے، چاہے، آپ چیک کرنے کی ضرورت ہے کہ آیا وہ
آپ کو ایک درست چابی دے.
سیزر کے لئے، آپ کو ایک عدد صحیح کی ضرورت ہے.
لیکن argv ڈور کی ایک سرنی ہے.
تمہیں یہ کس طرح کی کلید تک رسائی حاصل کر سکتا ہوں؟
>> arrays پر ایک فوری نظر -
ایک سے زیادہ پکڑ کہ اعداد و شمار کے ڈھانچے اسی کے اعداد و شمار کی قسم کی اقدار.
میں لکھے کا مطلب ہے، صفر حساب سے ترتیب ہیں پہلا عنصر انڈیکس صفر ہے
اور آخری عنصر انڈیکس سائز میں ہے سائز کی تعداد ہے جہاں مائنس 1،
سرنی میں عناصر.
>> میں نے ایک نئی سٹرنگ سرنی میل باکس کا اعلان کر دیا تو لمبائی 3، ضعف ہے، یہ
اس طرح لگتا ہے.
ڈور کے لئے تین کنٹینرز ، پارٹی کی طرف سے کی طرف.
کسی بھی عنصر تک رسائی حاصل کرنے کے لئے، آپ کا نام ٹائپ کریں سرنی کی اور پھر اس بات کی نشاندہی
مربع بریکٹ میں انڈیکس.
یہ لو، میں سے ہر ایک کے لئے ایک قیمت مقرر رہا ہوں میں کسی کے ساتھ کیا کرے گا بالکل اسی طرح جیسے عنصر،
دیگر سٹرنگ متغیر.
>> تو ہماری کمانڈ لائن دلائل تک رسائی حاصل کرنے، ہم نے صرف اتنا کرنا ہے تک رسائی حاصل ہے
argv سرنی کے حق عنصر.
صارف. / blastoff ٹیم میں داخل ہوئے تو ٹرمینل میں راکٹ، argv 0 گے
ہو. / blastoff.
argv ٹیم ہو، اور کرے گا arg2 راکٹ ہوگا.
>> ہم اپنے کلیدی تک رسائی حاصل کر سکتے ہیں اب کہ، ہم اب بھی کرنے کی ضرورت
یہ صحیح ہے کہ اس بات کا یقین.
ہم ایک عدد صحیح میں تبدیل کرنے کی ضرورت ہے.
لیکن ہم جیسا ڈال نہیں کر سکتے ہیں ہم نے ماضی میں کیا ہے.
خوش قسمتی سے، ایک پر Y تقریب خیال رکھتا ہے ہمارے لئے اس کی اور یہاں تک کہ واپس 0
سٹرنگ میں تبدیل نہیں کیا جا سکتا اگر ایک عدد صحیح میں.
یہ بتانے کے لئے، تاہم، آپ پر منحصر ہے صارف کیوں تم نہیں کروگے
پروگرام کو آگے بڑھنے دیں.
ایک میں Y کے لئے ایک کا نتیجہ ذخیرہ عدد صحیح، اور وہاں آپ کو اپنے چابی ہے.
اگلے حصہ سادہ ہے.
، ان کی سادہ متن کے لیے صارف کا لقمہ جو اعداد و شمار کی قسم سٹرنگ کی ہو جائے گا.
خوش قسمتی سے ہمارے لئے، تمام صارف inputted ڈور درست ہیں.
>> ہم تمام ضروری ان پٹ ہے اب وہ صارف کی طرف سے، یہ ہمارے لئے وقت ہو گیا ہے
ان کا پیغام encipher.
قیصر کے تصور کو آسان ہے سمجھنے کے لئے کافی.
لیکن کس طرح آپ کے کمپیوٹر کو معلوم ہوتا ہے کہ جس میں حروف ایک دوسرے کے بعد آتے ہیں؟
>> ASCII ٹیبل کے اندر آتا ہے جہاں یہاں ہے
ہر کردار ایک عدد صحیح ہے تعداد اس کے ساتھ منسلک.
کیپٹل ایک 65 ہے.
کیپٹل بی 66 ہے.
ایک 97 ہے چھوٹے حروف.
چھوٹے ب 98 ہے.
لیکن حروف تک محدود نہیں کر رہے ہیں صرف الفبایی نمبرز.
مثال کے طور پر، @ علامت ASCII تعداد 64 ہے.
>> پورے سٹرنگ کے ساتھ نمٹنے سے پہلے، کی دکھاوا کرتے ہیں ہم صرف منتقل کرنا پڑے
ایک کردار.
ٹھیک ہے، ہم صرف اصل منتقل کرنا چاہتے ہیں سادہ متن میں حروف، نہیں
حروف یا ہندسوں.
ہم چاہیں گے کہ تو پہلی بات جانچ پڑتال کے کردار میں ہے کہ آیا ہے
حروف تہجی.
>> تقریب isalpha کے لئے اس کرتا ہے ہمارے اور ایک بولین واپس -
حروف اگر یہ سچ ہے کہ ایک خط ہے دوسری صورت میں اگر جھوٹے.
دو دیگر مفید افعال ہیں isupper اور islower، کے ساتھ
خود وضاحتی کے نام.
وہ سچ واپس اگر دی کردار ، بڑے یا خفی ہے
بالترتیب.
وہ Booleans ہیں، وہ کر رہے ہیں حالات کے طور پر استعمال کرنے کے لئے مفید ہے.
>> isalpha سچ واپس تو، آپ کی ضرورت ہو گی کلید کی طرف سے اس کردار کو منتقل کرنے کے لئے.
تو کی ASCIIMath پر کھول دیں اور کچھ ASCII ریاضی کرتے ہیں.
استعمال کے استعمال کرنے کے لئے بہت ملتا جلتا ہے سیزر کے لئے اور میں ایک اہم میں لیتا ہے
کمانڈ لائن.
>> میں ASCIIMath 5 چلانے کے، تو یہ شامل کرنے کے لئے لگتا ہے 5 کے لئے ایک، مجھے خط F دے اور
ASCII قیمت کی نمائش.
تو اس کے پروگرام پر ایک نظر ڈالیں ہیں.
>> تم یہیں، کیوں، حیرت ہے کہ ہو سکتا ہے یہ ہے جب خط، ایک عدد صحیح ہے
واضح طور پر، اچھی طرح سے، ایک خط.
یہ باہر کر دیتا ہے کہ حروف اور integers تبادلہ ہیں.
ایک خط میں رکھ کر واوین، عدد صحیح محفوظ کر سکتے ہیں
دارالحکومت کے ASCII قیمت اے، تاہم ہوشیار رہو.
آپ کو ایک کپڑے کی ضرورت ہے.
ایک اقتباس کے نشانات کے بغیر، سنکلک ایک متغیر کے لئے نظر آئے گا
ایک، اور کردار کا نام دیا.
>> اس کے بعد میں محفوظ، خط اور ایک اہم اضافہ کریں INT متغیر نتیجہ میں رقم.
نتیجہ کے اعداد و شمار کی قسم کی ہے اگرچہ عدد صحیح، میری printf بیان کا استعمال کرتا ہے
حروف کے لئے٪ ج پلیس ہولڈر.
تو پروگرام کے کردار پرنٹس عدد صحیح نتیجہ کے ساتھ منسلک.
اور ہم عددی طباعت کے بعد سے شکل کے طور پر اچھی طرح٪ ڈی کا استعمال کرتے ہوئے، ہم دیکھتے ہیں
تعداد کے طور پر اچھی طرح سے.
تو اب آپ دیکھ سکتے ہیں کہ ہم حروف کا علاج اور
integers، اور اس کے برعکس.
>> ASCIIMath چند ایک باہر کی جانچ پڑتال کرتے ہیں ایک اہم کے طور پر 25 کا استعمال کرتے ہوئے زیادہ بار.
ہم خط Z ملتا ہے.
اب ہم 26 کی کوشش کریں.
ہم نے ایک خط حاصل کرنے کے لئے چاہتے ہیں، لیکن اس کے بجائے ہم ایک بائیں بریکٹ ملتا ہے.
تو ظاہر ہے، صرف انہوں نے مزید کہا خط کی کلید نہیں کروں گا.
ہم لپیٹ کرنے کے لئے ایک فارمولہ پتہ کرنے کی ضرورت ہے حروف تہجی کے ارد گرد، ہماری پسند
شروع میں مثال کے طور پر کیا.
>> سیزر کے لئے ایک فارمولہ شفٹ درج ذیل ہے.
ج P پلس K modulo 26 برابر.
modulo ایک مفید ہے یاد رکھیں کہ ہم سے باقی دیتا ہے کہ آپریشن
دوسرے کی طرف سے ایک ہی نمبر تقسیم کی.
کی سادہ پر اس فارمولے کا اطلاق کرتے ہیں 2 کے ایک اہم متن کے ساتھ خط.
Y کی ASCII قیمت، 89 ہے جو ہمیں 91 modulo 26، دیتا ہے
جس میں 13 برابر ہے -
یقینی طور پر نہیں ASCII قیمت ایک کے، جس میں 67 ہے.
>> اب میرے ہنسی مذاق اور سے دور منتقل ایک حروف تہجی کے اعتبار انڈیکس ASCII اقدار
ایک صفر ہے اور Z، 25 ہے جہاں Y 24 ہے کہ کا مطلب ہے.
24 پلس 2، modulo 6،، ہمارے 26 دیتا ہے ہے جو modulo 26، 0،
ایک کے حروف تہجی کی فہرست.
تو اس فارمولے کو لاگو کرنے لگتا ہے حروف تہجی کے اعتبار خط کے انڈیکس اور
نہیں اس ASCII قیمت.
>> لیکن آپ ASCII اقدار کے ساتھ شروع.
اور ciphertext کردار کو پرنٹ کرنے کے لئے، آپ کے ساتھ ساتھ اس کی ASCII قیمت کی ضرورت ہوگی.
یہ پتہ کرنے کے لئے، تو آپ پر منحصر ہے آگے پیچھے سوئچ کرنے کے لئے کس طرح.
>> ایک بار جب آپ صحیح فارمولا پتہ ایک کردار کے لئے، تم سب کرنے کی ضرورت ہے
ہر کرنے کے لئے اسی فارمولے کا اطلاق کیا جاتا ہے سادہ متن میں خط -
اس خط کے حروف تہجی کے اعتبار ہے، صرف اس صورت میں بالکل.
اور تم کو محفوظ کرنے کی ضرورت ہے یاد ہے کہ کیس، اوپری یا کم، وہ کہاں ہے
isUpper اور isLower افعال ذکر پہلے ہاتھ میں آ جائے گا.
آپ کے پاس دو فارمولوں ہو سکتا ہے -
بڑے حروف کے لئے ایک اور چھوٹے کے لئے ایک.
تو isUpper ایک isLower آپ کی مدد کرے گا لاگو کرنے کے لئے جس فارمولے کا تعین.
>> تم کس طرح ہر ایک کے لئے آپ کے فارمولے کیسے درخواست دوں ایک تار میں واحد کردار؟
ویسے، ایک سٹرنگ صرف ایک ہے حروف کی سرنی.
تو کیا تم ہر کردار کی طرف سے رسائی حاصل کر سکتے میں ہر کردار سے زیادہ گروہ بندی
لوپ کے لئے ایک میں سٹرنگ.
لوپ کے لئے آپ کی حالت کے لئے کے طور پر، سٹرنگ کے لئے تقریب strlen،
لمبائی، ہاتھ میں آ جائے گا.
یہ ان پٹ کے طور پر ایک سٹرنگ میں لیتا ہے اور کہ سٹرنگ کی لمبائی واپس.
حق لائبریری شامل کرنے کے لئے یقینی بنائیں کہ سٹرنگ کی لمبائی تقریب کو استعمال کرنے کی.
>> اور وہاں آپ کو آپ کے ciphertext ہے.
میرا نام Zamyla ہے.
اور [بولنے کوڈ].