[موسیقی بجانے] DAVID J. MALAN: ٹھیک ہے. یہ CS50 ہے، اور یہ 2 ہفتہ کے آخر ہے. آج تو، ہم جا رہے ہیں ہماری نظر جاری کرنے ہم چیزوں کی نمائندگی کرتے ہیں کس طرح hood-- دور منتقل نیچے integers کے کی طرح تعداد کی طرف سے اور چل نقاط کے اقدار اور ڈور پر توجہ مرکوز کی اور بالآخر زیادہ دلچسپ پروگرام. لیکن ہم یہ بھی ایک پر ایک نظر ڈالیں گے ڈومین مخصوص مسائل کے جوڑے سب سے پہلے ہو جائے گا جس کے خفیہ نگاری شامل ہو، scrambling معلومات کے فن، جس میں آپ کو یہاں اوپر دیکھیں ریڈیو یتیم اینی کی ایک تصویر ہے پرانے سے رہسی کوٹواچک انگوٹی. یہ اصل میں بہت پرانی شکل ہے اور cryptopgraphy کے بچے دوستانہ فارم اس انگوٹی دو disks-- ہے جس کے تحت ایک کے اندر اور باہر. اور کی طرف سے، ان میں سے ایک آپ کر سکتے ہیں گھومنے بنیادی طور پر ایک جیسے حروف لائن دوسرے حروف کے ساتھ Z ذریعے دوسرے الفاظ میں اے کے ذریعے بی کی طرح، آپ لفظی حروف باری باری دکھائے گا کر سکتے ہیں، اس طرح ایک تعریفیں کی طرف سے کے ساتھ آ حروف کو خط ہے کہ، اگر ایسا ہے تو آپ ایک خفیہ پیغام بھیجنے کے لئے چاہتا تھا ینی طرح کسی کے لئے، آپ لکھ سکتے ہیں پھر باری باری دکھائے گا اور آپ کے پیغام کے نیچے خط، جس میں، آپ کا مطلب تو آپ اس کے بجائے کہنا ہے کہ "ایک" کا کہنا ہے کہ "B" آپ کے کہنے کا مطلب "B" آپ اس کے بجائے "C" کہتے ہیں - یا کچھ اور ایک چھوٹا سا زیادہ ہوشیار that-- سے اور اس کے بعد، آخر میں، اتنی دیر ینی اس کوٹواچک ہے کے طور پر انگوٹی، وہ پیغام وضاحت کر سکتے ہیں. اب، آپ، حقیقت میں، یاد یہ ہے کہ کر سکتے ہیں ایک بہت مشہور فلم میں استعمال کیا گیا تھا دوران اشتھاراتی nauseum ادا کرتا ہے کرسمس کے موسم. یہاں ایک نظر ڈالیں. Ralphie تو پارکر: "یہ سمری میں سب کو معلوم ہے رالف پارکر اس طرح سے مقرر کیا جاتا ہے کہ لٹل یتیم اینی خفیہ کے ایک رکن سرکل اور تمام کرنے کا حق ہے احترام اور فوائد اس پر واقع. " Ralphie تو پارکر (بیان): لٹل یتیم اینی دستخط کئے. دستخط کننده، پیری اندرے! سیاہی میں. احترام اور فوائد، پہلے ہی نو سال کی عمر میں. [موسیقی بجانے] [ریڈیو براڈکاسٹر] Ralphie تو پارکر: چلو. اس کے ساتھ حاصل کرتے ہیں. میں ہے کہ تمام جاز کی ضرورت نہیں ہے اسمگلروں اور قزاقوں کے بارے میں. ریڈیو ادگھوشک: کل مدد اختتام ساہسک کے لئے رات سیاہ سمندری ڈاکو جہاز. اب، اس وقت ینی کے لئے ہے اراکین آپ کے لئے خفیہ پیغام خفیہ سرکل کے. بچوں، صرف ممبران یاد رکھیں ینی کے خفیہ سرکل کے ینی کے خفیہ پیغام کی وضاحت کر سکتے ہیں. یاد رکھیں، ینی تم پر انحصار کیا جاتا ہے. B-2 اپنے پن کو مرتب. یہاں پیغام پر 12، 11، 2-- Ralphie تو پارکر (بیان): میں میری پہلی خفیہ ملاقات میں ہوں. ریڈیو ادگھوشک: --25، 14، 11، 18، 16-- Ralphie تو پارکر (بیان): اوہ، پیری عظیم آواز آج رات میں تھا. مجھے لگتا ہے کہ آج رات کے بتا سکتا ہوں پیغام بہت ضروری تھا. ریڈیو ادگھوشک: --3، 25. یہ ینی خود کی طرف سے ایک پیغام ہے. کسی کو مت بتانا، یاد رکھیں. [پتائی] Ralphie تو پارکر (بیان): نوے سیکنڈ کے بعد، میں ہوں میں صرف کمرے میں گھر جہاں نو کے ایک لڑکے پرائیویسی اور ضابطہ ربائی میں بیٹھ سکتا ہے. آہ. "بی" [منہ دبا ہںسنا] Ralphie تو پارکر (بیان): میں اگلے کے لئے گئے تھے. "ای" سب سے پہلے لفظ "ہو". جی ہاں! یہ آسان اب آ رہا تھا. "U." [منہ دبا ہںسنا] رینڈی پارکر: آہ،، Ralphie تو آ. مجھے جانا ہوگا! Ralphie تو پارکر: میں، حق نیچے ماں ہو جائے گا. Gee کی whiz ہے. "ٹی" "او" "اس بات کا یقین کرنے کے لئے. "کیا" اس بات کا یقین "؟ لٹل یتیم اینی کیا تھا کہنے کی کوشش کر؟ کیا "اس بات کا یقین"؟ ماں: Ralphie تو، رینڈی جانا ہے. تم باہر آ جائے گا؟ Ralphie تو پارکر: ٹھیک ہے، ماں! میں باہر ہو جائے گا! Ralphie تو پارکر (بیان): میں نے قریب ہو رہا تھا. کشیدگی خوفناک تھا. وہ کیا تھا؟ سیارے کی قسمت توازن میں پھانسی پر لٹکا سکتے. ماں: Ralphie تو، رینڈی جانا ہے! Ralphie تو پارکر: میں ٹھیک ہو جائے گا باہر، بلند آواز سے رونے کے لئے! Ralphie تو پارکر (بیان): تقریبا وہاں! میری انگلیاں اڑ گئے! میرا دماغ ایک سٹیل کا نیٹ ورک تھا. ہر تاکنا vibrated کے. یہ تقریبا واضح تھا! جی ہاں! جی ہاں! جی ہاں! جی ہاں! Ralphie تو پارکر: "اس بات کا یقین آپ Ovaltine پینے کے لئے. " Ovaltine؟ ایک کے crummy تجارتی؟ [موسیقی بجانے] Ralphie تو پارکر: کتیا کا بیٹا ہے. [ہنس] DAVID J. MALAN: تو ہے تو کیا خفیہ نگاری میں ایک جھلک this-- ایک کے لئے ہو سکتا ہے پرانے سے پینے. تو ایک فوری اعلان. آپ کو اس کے لئے آزاد ہیں، تو جمعہ 1:15 بجے اور کرے گا CS50 کے لئے ہمارے ساتھ شامل کرنے کے لئے پسند دوپہر کے کھانے کے، اس یو آر ایل کے سربراہ. سب سے پہلے ہمیشہ کی طرح کے طور پر کام، آئے. لیکن وقت کے ساتھ، ہم اس بات کو یقینی بنائیں گے حصہ لینے کے لئے چاہتے ہیں جو سب سے زیادہ کسی کو بھی شیڈول وار کر سکتے ہیں. تو ڈور. ہم Zamyla-- جن ہے اب آپ سب سے زیادہ امکان سے ملاقات کی ہے مسئلہ سیٹ میں 1-- جن نام اس طرح ہجے ہے. اور تم نے اس کا نام ٹائپ لگتا ہے ہے کہ ایک کمپیوٹر پروگرام میں GetString طرح کچھ کا استعمال کرتے ہوئے. بازیافت کرنے کے لئے ان keystrokes کے، کس طرح ہم ایک کی نمائندگی کے بارے میں جانا ہے سٹرنگ، ایک لفظ، ایک پیراگراف، یا یہ یہاں کی طرح ایک سے زیادہ خطوط؟ ہم کے بارے میں آخری بار بات کی integers اور مسائل اس عددی اتپرواہ کے ساتھ پیدا اور چل نقاط کے اقدار اور مسائل کہ صحت سے متعلق کے اندر پیدا ہوتی ہیں. ڈور کے ساتھ، ہم کم از کم تھوڑا سا زیادہ لچک ہے strings-- کیونکہ اصلی world-- میں ایک خوبصورت صوابدیدی لمبائی ہو سکتا ہے. بہت مختصر، بہت طویل. لیکن پھر بھی، ہم جا رہے ہیں مل کمپیوٹر کبھی کبھی کر سکتے ہیں میموری سے باہر اور بھی نہیں چلاتے ایک بڑا کافی سٹرنگ ذخیرہ. لیکن اب کے لئے، کی دیکھ کرنے کے لئے شروع کرتے ہیں ان خانوں میں کچھ کے طور پر ایک تار یہاں. تو چھ ایسے خانوں، جس میں سے ہر ایک ایک کردار یا کی نمائندگی کرتا ہے "چار." سی ایچ ایک r-- ہے - تو "چار" یاد ہے کہ سی میں بلٹ میں ڈیٹا کی اقسام میں سے ایک اور کیا اچھا ہے آپ استعمال کر سکتے ہیں اس طرح کی ایک عمارت بلاک کے طور پر، ایک پہیلی ٹکڑا، اگر آپ، ایک فارم پر ہم جاری رکھیں گے کہ اعداد و شمار کی بڑی قسم ایک "سٹرنگ." کو فون کرنے اب، کیا سوچ کے بارے میں مفید ہے اس طرح میں ڈور کی طرح چیزوں کے بارے میں؟ ٹھیک ہے، یہ ہم کر سکتے ہیں پتہ چلا ہے کہ اصل میں اس کی ساخت بیعانہ اصل میں انفرادی حروف تک رسائی حاصل کرنے کے لئے ایک خوبصورت براہ راست انداز میں. میں آگے بڑھو اور پیدا کرنے کے لئے جا رہا ہوں نامی ایک فائل "stringzero.c،" اگر آپ چاہتے ہیں جو کچھ بھی لیکن آپ کو کال کر سکتے ہیں. اور کورس کی ویب سائٹ پر ہے پہلے سے پہلے میں اس مثال، تاکہ آپ کی ضرورت نہیں ہے سب کچھ ٹائپ. اور میں آگے جانے کے لئے جا رہا ہوں اور سب سے پہلے int اہم باطل کرتے. اور چند دنوں کے اندر اندر، ہم کے علاوہ چڑھانا شروع کر دیں گے یہ کیوں کیا باطل، یہاں ہے اگلے اہم، اور تو آگے INT. لیکن اب کے لئے، کی جاری ہے کاپی کرنے کے لئے پیسٹ. میں کے نام ایک تار کا اعلان کرنے جا رہا ہوں. اور میں سے واپس جا رہا ہوں میں جو کچھ بھی صارف اقسام کر GetString. یہ ایک سادہ کی جا رہی ہے پروگرام، کوئی ہدایات، میں صرف آنکھ بند کر کے جا رہا ہوں صارف جانتا ہے کہ توقع کیا یہ آسان رکھنے کے لئے کرنا. اور اب میں لوپ کے لئے ایک کی ضرورت کے لئے جا رہا ہوں. اور میرے لئے لوپ کے اندر ہوں میں صفر ہو جاتا ہے int ہے کرنے کے لئے جا. اور میں،، ایک بار پھر، صرف ایک کنونشن ہے گنتی کے لئے ایک انڈیکس متغیر، لیکن میں جو چاہو کہہ سکتے. مجھے اچھی طرح سے than-- کم ہے کرنے کے لئے جا رہا ہوں کیا Zamyla کے نام چھ حروف طویل ہے. تو میں سخت کرنے جا رہا ہوں اب کے لئے وہاں کوڈ کہ. اور پھر میں + +. اور اب ان گھوبگھرالی کے اندر منحنی خطوط وحدانی میں، printf کیا کرنے جا رہا ہوں اور میں نے ایک پرنٹ کرنا چاہتے ہیں ایک وقت میں کردار. تو میں کے لئے C استعمال کرنے کے لئے جا رہا ہوں شاید پہلی بار. اور پھر میں ہر پرنٹ کرنے کے لئے چاہتے ہیں اپنی ہی سطر میں کردار. تو میں نے ایک ڈال کرنے کے لئے جا رہا ہوں تھوڑا الٹا سلیش (ن). اقتباس. اور اب میں یہاں کچھ کرنا چاہتے ہیں. میں باہر پرنٹ کرنے کے لئے چاہتے ہیں تار میں مخصوص خط، کی، میں iterating رہا ہوں کے طور پر چھ صفر سے. دوسرے الفاظ میں، میں چاہتا ہوں ے کی i'th کردار پرنٹ. اب میں اس کو کس طرح کر سکتے ہیں؟ ویسے زیادہ خانوں میں طرح یہاں اس کی نمائندگی، قسم کے، باکسنگ کے تصور کو جادو میں حروف، آپ اسی طرح یہ کر سکتے ہیں syntactically ہے صرف وضاحت کی طرف سے سی، میں کردار i'th کے باہر پرنٹ کرنے کے لئے چاہتے ہیں. مربع بریکٹ کا استعمال کرتے ہوئے آپ کے کمپیوٹر کے کی بورڈ پر ایک امریکی کی بورڈ پر ہیں عام طور پر آپ کی واپسی اہم اوپر. تو یہ بالکل صحیح نہیں ہے ابھی تک، آپ نے محسوس کیا ہو سکتا ہے کے طور پر. لیکن میں کی طرح جا رہا ہوں آنکھ بند کر کے یہاں آگے بڑھانے. اور میں سٹرنگ 0 بنانے کے کرنے جا رہا ہوں. مجھے یہ کرنا لیکن اس سے پہلے، تو دیکھتے ہیں ہم کچھ عام کی غلطیوں کا اندازہ نہیں کر سکتے. اس کے مرتب کرنے کے لئے جا رہا ہے؟ نہیں، میں چیزوں کی ایک پوری چڑھانے یاد کر رہا ہوں. لائبریریوں میں نے سنا. تو فائلوں ہیڈر جس میں یہاں شامل کرنا چاہتے ہیں کر سکتے ہیں؟ جی ہاں. سامعین: آپ کی ضرورت ہے معیاری I / O [اشراوی] DAVID J. MALAN: بہترین. تو اگر میں معیاری I / O کی ضرورت ہے. کیا مقصد میں معیاری I / O چاہتے ہیں؟ printf کے لئے. تو stdio.h شامل. اور آپ کو بھی میں شامل ہے کہ تجویز کیا وجہ CS50 لائبریری؟ ڈور ہے کرنے کے لئے. تو ہم کیا دیکھیں گے CS50 لائبریری کر رہا ہے ایک تار کے اس تصور تخلیق کرنے کے لئے. لیکن اب کے لئے، آپ کو صرف سوچ سکتے ہیں اس کا ایک اصل اعداد و شمار کی قسم کے طور پر. تو یہ ایک چھوٹا سا صاف کرنے کے لئے لگتا ہے. اور اب میں آگے جانے کے لئے جا رہا ہوں اور یقینا تار 0 کروں. مرتب. تو یہ اچھی بات ہے. لہذا اگر ہم کر سکتے ہیں میں زوم مجھے ./string0 زیادہ باریک بینی سے کیا ہو رہا ہے کو دیکھنے کے. درج کریں. Z-A-M-Y-L-A داخل. اور ہم کیا Zamyla کے نام کے باہر طباعت ہے. تو یہ بہت اچھی بات ہے. تو اب آگے بڑھو اور پھر اس پروگرام کو چلانے کے، اور Daven کا مکمل نام ٹائپ. تعجب، حیرت. درج کریں. ہمم. ہم Daven کی چھپی ہوئی نہیں ہے درست طریقے سے مکمل پہلا نام. اب اس میں واضح ہونا چاہئے وجہ سے کیا ماضی، کی طرح، پاگل ڈیزائن فیصلہ؟ جی ہاں، میں مشکل کوڈت میرے لوپ کے لئے کے چھ اندر. اب میں نے کیا کیا ہے کہ صرف اس وجہ سے میں کیا Zamyla کا نام جانتا تھا چھ حروف ہو جا رہا تھا. لیکن یقینا یہ نہیں ہے ایک عام حل. یہ باہر کر دیتا تو ہم کو متحرک کر سکتے ہیں ایک تار کی لمبائی اعداد و شمار نامی strlen جشن بلا کی طرف سے. ایک بار پھر، جان بوجھ کر اور succinctly صرف نام ٹائپ کرنے کے لئے یہ زیادہ آسان بنانے کے لئے. لیکن اس کے ساتھ مترادف ہے ایک تار کی لمبائی کو حاصل کرنے کے. میں اپنے ٹرمینل میں واپس جانے کے لئے جا رہا ہوں ونڈو اور سنکلک دوبارہ چلانے. لیکن یہ مجھ پر چللا رہا ہے. لپیٹ لائبریری تقریب کا اعلان const-- INT اہستاکشرت قسم کے ساتھ بھی strlen میں کھو گیا ہوں. مکمل طور پر. تو، خاص طور پر کے طور پر آپ آنکھوں پر شیشے کا کور کرنے کے لئے شروع اس طرح خرابی کے پیغامات، خصوصی توجہ کے ساتھ ایمانداری سے پہلے چند الفاظ پر. ہم نے اس مسئلہ میں ہے 8 لائن، یہاں اشارہ کے طور پر. اور یہ سٹرنگ 0.c میں ہے. لپیٹ اعلان لائبریری تقریب strlen. تو یہ عام طور پر کی جا رہی ہے خرابی کے پیغامات کا ایک نمونہ ہو. لپیٹ کچھ اعلان. تو مختصر میں، میں کے لئے لگ رہا ہے کیا ہے یہاں، 8 لائن کے لئے احترام کے ساتھ کیا کیا ہے. کیا ہو سکتا ہے حل بھی ہو تم اپنے آپ strlen کی کبھی استعمال نہیں کیا ہے؟ سامعین: ایک مختلف لائبریری کا حصہ؟ DAVID J. MALAN: حصہ ایک مختلف لائبریری کے. یہ اعلان کیا ہے تو، تو بات کرنے کی. یہ کچھ فائل میں ذکر کیا جاتا ہے stdio.h شامل اور CS50.h. سے دوسرے اب جہاں یہ بیان کیا جاتا ہے؟ ایماندار کرنے کے لئے، آپ کو یا تو صرف کے لئے ہے آپ کے سر کے اوپر سے یہ جانتے ہیں، یا آپ یہ گوگل اور باہر تلاش. یا یہ جانتے ہیں، میں CS50 میں کھول دیا ہے ٹرمینل پروگرام، آلات جس صرف بڑے، مکمل سکرین ورژن ہے کیا gedit کے ونڈو کے نچلے حصے میں ہے. اور یہ ایک ہے کہ باہر کر دیتا ہے کہا جاتا اسی طرح succinct کے حکم، آپ میں ٹائپ کریں جہاں دستی، کے لئے آدمی اور ایک تقریب کے نام، مارا درج کریں اگر آپ سے منصفانہ واپس مل جائے گا پراسرار دستاویزی. یہ عام طور پر صرف متن ہے اس طرح کچھ لگتا. یہ تھوڑا بھاری ہے پہلی نظر میں. لیکن سچ کہوں تو میں جا رہا ہوں میری آنکھوں پر شیشے کا کور دو اور صرف ایک حصہ پر توجہ مرکوز میں اس وقت کے لئے کے بارے میں پرواہ. جس میں یہ ہے. جس ساخت کی طرح لگتا ہے کچھ میں سے واقف ہوں. بے شک انسان کے صفحے، تو بات کرنے کے لئے، آپ کو بتائے گا کیا میں ہیڈر فائل تقریب طرح strlen کی وضاحت کی گئی ہے. تو میں gedit اب واپس جا رہا ہوں. اور میں آگے جانے کے لئے جا رہا ہوں اور یہاں # شامل میں شامل اور فائل کو بچانے. میں کے ساتھ سکرین صاف کرنے کے لئے جا رہا ہوں کنٹرول L آپ سوچ رہے ہیں تو. اور میں نے دوبارہ چلا جا رہا ہوں string.0، اس وقت سے آگاہ کریں. ./string.0 کیا Zamyla. کہ مجھے جانے دو کام کرنے کے لئے لگ رہا تھا آگے اور Davenport کے ساتھ Rerun. درج کریں. اور یہ کہ، بھی، کام کرنے کے لئے لگ رہا تھا. تو ہم اس کے مقابلے میں تھوڑا بہتر کر سکتے ہیں اگرچہ، ہم صاف چیزیں کرنے کے لئے شروع کر سکتے ہیں صرف ایک تھوڑا سا. اور میں واقعی میں جا رہا ہوں اب ایک اور چیز کو متعارف کرانے. میں آگے جانے کے لئے جا رہا ہوں اور ایک مختلف فائل میں اس کو بچانے کے. اور میں نے فون کرنے کے لئے جا رہا ہوں اس فائل string1.c صرف کوڈ کے ساتھ مطابقت کرنے کے لئے آپ آن لائن تلاش کرنے کے لئے قابل ہو جائے گا. اور میں پر توجہ مرکوز بالکل اسی کوڈ. یہ میں نے کیا ہے کہ باہر کر دیتا ہے لینے کے کیا گیا قسم عطا کی حقیقت کے لئے اپنے لیپ ٹاپ ہے کہ، اور کے نتیجے میں، CS50 آلات میموری کا ایک بہت، کے ایک بہت ہے رام، جگہ کی بائٹس کی ایک بہت جس میں میں نے ڈور محفوظ کر سکتے ہیں. لیکن حقیقت میں طویل عرصے سے ٹائپ کافی، اور کافی keystrokes کے، میں نے اصول کی قسم میں کر سکتے ہیں زیادہ حروف میں اپنے کمپیوٹر سے جسمانی طور پر کے لئے میموری ہے. اور یہ مسئلہ ہے. بہت ایک int صرف کر سکتے ہیں کی طرح اصول میں، اتنا زیادہ شمار، آپ کو صرف بہت سے حروف رٹنا کر سکتے ہیں آپ کے کمپیوٹر کی RAM یا بے ترتیب میں رسائی میموری. تو میں بہتر اندازہ تھا اس مسئلہ، یہاں تک کہ یہ ایک غیر معمولی ہو سکتا ہے اگرچہ کونے کیس، تو بات کرنے کی. اکثر نہیں ہوتا ہے، ہو سکتا ہے. یہ ہوتا ہے اور اگر میں نہیں اندازہ اور اس کے لئے پروگرام، اپنے پروگرام کیا کون جانتا ہے کر سکتے ہیں. ، جو بھی ربوٹ،، منجمد پھانسی. کچھ ہو سکتا متوقع. تو مجھے کیا کرنے جا رہا ہوں اب، اب واقعی، کبھی آنکھ بند کر کے میں نے پہلے ہے کی طرح ایک متغیر کا استعمال کرتے ہیں کی واپسی کی قیمت مقرر کیا گیا ہے GetString طرح کچھ دوسرے تقریب، میں اس بات کا یقین کرنے کے لئے جا رہا ہوں کہ اس کی قدر درست ہے. تو میں نے پڑھا ہے صرف جانتے ہیں GetString کے لئے CS50 کی دستاویزات، جو بالآخر ہم آپ کی طرف اشارہ کریں گے، کہ GetString ایک خاص علامت واپس تمام میں نل، N-U-L-L کہا کچھ غلط ہو جاتا ہے، ٹوپیاں. تو عام طور پر، یہ ایک تار واپس. لیکن یہ ن U-L-L-- واپس دوسری صورت میں اگر ہم آخر میں واقعی میں کیا دیکھیں گے کہ کہ صرف کا مطلب means-- کچھ برا ہوا. اب یہ بہت شروع میں کی طرح، کا مطلب ہے، میں، C میں ایک شرط چیک کر سکتے ہیں کے برابر نل نہیں ہے اگر نہیں. آپ اس سے پہلے نہیں دیکھا ہے تو، صرف کا مطلب اس کے برابر نہیں ہے. تو اس کے برعکس ہے ، یاد ہے جس میں برابر برابر،، ایک سے مختلف ہے تفویض ہے جو، برابر. کے برابر نہیں کرتا تو نل، صرف اس صورت میں کیا کریں میں کوڈ کا ان لائنوں پر عمل کرنا چاہتے ہیں. تو دوسرے الفاظ میں، میں آنکھ بند کر کے میں کودو پہلے اور سب iterating شروع کے دوران، اور اس کا علاج اس کی ایک ہی تسلسل ہے اگرچہ کے طور پر حروف، میں، سب سے پہلے چیک کرنے کے لئے جا رہا ہوں ایک منٹ انتظار کرو، یقینی طور پر نہیں کی ہے اس خصوصی قیمت کے برابر، نل؟ اگر یہ ہے، بری چیزیں ہو سکتا ہے کیونکہ. اور اب کے لئے، کہ بری چیزیں فرض آپ کے پروگرام گر کر تباہ مطلب ہو رہا، اور آپ ضروری کی وصولی نہیں کر سکتے ہیں. تو واضح طور سے، یہ uglier ہے لگتا ہے. اس قسم کی پر نظر کرنے کے لئے اب بردوست ہے. لیکن یہ زیادہ ہو جائے گا طویل عرصے سے پہلے واقف. لیکن میں تجویز کرنے جا رہا ہوں اب ایک دوسرے بہتری. یہ درست کرنے کے لئے ایک بہتر ہے. اپنے پروگرام کی وجہ سے، اب زیادہ درست ہے غیر معمولی صورت میں یہ کافی نہیں میموری ، میں نے اسے سنبھال لیں گے موجود ہے، اور میں کچھ نہیں کروں گا. میں کم از کم کریش نہیں کریں گے. لیکن یہاں ایک آخری ورژن کرتے ہیں. اور ایک فائل string2.c کہا. مجھے لگتا ہے کہ چسپاں کرنے کے لئے جا رہا ہوں صرف ایک لمحے کے لئے ایک ہی کوڈ، اور میں اس کو اجاگر کرنے کے لئے جا رہا ہوں صرف ایک لمحے کے لئے یہاں لائن، 11،،. اب حقیقت ہے کہ ہوشیار compilers ہے بجنا ہمارے لئے اس کو ٹھیک کر سکتے ہیں کی طرح پردے کے پیچھے ہماری کبھی جاننے کے بغیر. لیکن اس کے بارے میں سوچنا بنیادی طور پر ایک پریشانی ڈیزائن کے طور پر. کوڈ کا یہ لائن، کورس کی، ہے کہہ، کچھ متغیر میں 0 ابتدا. یہ بہت سیدھا ہے. اور پھر یہ کیا ہے بیان، یہاں، میں کر، + +؟ ہم نے اس سے پہلے دیکھا، لیکن ہم نے واقعی اس کے بارے میں بات نہیں کی. سامعین: میں incrementing. DAVID J. MALAN: incrementing کر میں. کے ذریعے ہر iteration پر تو اس لوپ، ہر سائیکل، آپ کو ایک کی طرف سے، میں incrementing رہے ہیں. تو یہ بڑا، اور بڑا ہو جاتا ہے، اور لوپ ختم تک بڑا. یہ کس طرح ختم کرتا ہے؟ ویسے یہ مشرق ہے ہم سے پہلے استعمال کیا ہے جس کی حالت. تم میں دیکھا ہے اور P سیٹ میں walkthroughs کے. لیکن یہ بات کیا ہے؟ تو مندرجہ ذیل لوپ جب تک میں سے کم ہے؟ سامعین: سٹرنگ کی لمبائی. DAVID J. MALAN: تار کی لمبائی. تو یہ بہت سفائیپسند ترجمہ اس معنی میں انگریزی. اب مسئلہ یہ ہے کہ ہر وقت میں اس اصول میں اس لوپ کے ذریعے iterate، میں اس سوال پوچھ رہا ہوں. میں ے کی سٹرنگ کی لمبائی سے بھی کم ہے؟ میں ے کی سٹرنگ کی لمبائی سے بھی کم ہے؟ اب میں ہر iteration پر تبدیل کر رہا ہے؟ یہ ہے. + + کی وجہ سے. تو ہر iteration میں بڑا ہو رہا ہے. لیکن ہے کے بڑے ہو، یا چھوٹے، یا بالکل تبدیل؟ نمبر ڈیزائن کی شرائط، محور میں سے ایک میں تو جس کے ساتھ ہم کوڈ کا اندازہ کرنے کی کوشش کریں کلاس میں، اس قسم کی احمقانہ محسوس ہوتا ہے. آپ لفظی کی طرح، ہر iteration پر اس لوپ کے پوچھ پھر ایک ہی لات سوال، اور پھر، اور پھر، اور لفظی یہ کبھی نہیں تبدیل کرنے کے لئے کی جا رہی ہے. میں نے چھونے نہیں کر رہا ہوں کم از کم تو کی کے مواد کو تبدیل کرنے کی کوشش کر. تو میں نے اس سے تھوڑا بہتر کر سکتے ہیں. اور میں کیا کرنے جا رہا ہوں نہیں ہے ، صرف ایک متغیر میں اعلان لیکن ایک دوسرے متغیر میں، منمانے گے لیکن روایتی، (ن) کہتے ہیں. کرنے کے لئے (ن) کے برابر مقرر ے کی سٹرنگ کی لمبائی. اور پھر یہاں، میں جا رہا ہوں تو، ایک ہوشیار تھوڑا اصلاح کرنا دن کے آخر میں، اس سے بات کرنے کے کوئی صحیح یا کوئی کم درست ہے پہلے سے. لیکن یہ ایک بہتر ڈیزائن ہے. اصل میں میں استعمال کر رہا ہوں کہ کم وقت، کم CPU سائیکل، تو ایک ہی جواب، بات کرنے کے لئے سوال، لیکن صرف ایک بار. کہ عام طور پر کوئی سوال کو بہتر بنانے کے اصول، پروگرام کی کارکردگی، کا کہنا ہے کہ؟ جی ہاں؟ سامعین: آپ کیوں کرتے [اشراوی] استعمال کرتے ہیں؟ DAVID J. MALAN: اچھا سوال ہے. تو ہم کیوں کے اختتام پر + + ڈال دیا ہے میں نے اس کی بجائے میں کے آغاز؟ اس صورت میں، یہ ہے کوئی فعال اثرات. اور عام طور پر، میں ہوتے ہیں postfix آپریٹر کا استعمال یہ ایک چھوٹا سا زیادہ واضح طور پر ہے تاکہ آپریشن ہو رہا ہے جب. ان مجریچت کے لئے، ایک اور ہے آپ + + میں کر سکتا ہے جس کے تحت بیانات. یہ فعل ہیں اس معاملے میں برابر کچھ نہیں ہے کیونکہ کہ ہے incrementation کے ارد گرد. لیکن آپ کے ساتھ آ سکتا مقدمات اور کوڈ کی لائنیں جس میں ایک فرق پڑتا ہے. تو عام طور پر، ہم ایسا نہیں کرتے یہ بھی ایک کے بارے میں بات. واضح طور سے، کیونکہ یہ آپ کی ہے کوڈ sexier ہے، اور طرح کے برساتی کوٹ، اور کم حروف. لیکن حقیقت، یہ بہت مشکل ہے ہے میں میرے دماغ میں لپیٹ کے لیے بھی، لگتا ہے کبھی کبھی اس کے ارد گرد، آپریشن کے حکم. ایک طرف ایک کے طور پر، اگر ایسا ہے تو آپ واقعی، یہ پسند نہیں ہے یہاں تک کہ اس قسم کی شہوانی، شہوت انگیز ہے اگرچہ تلاش، آپ بھی ایسا کر سکتے ہیں میں + = 1، جس کے uglier ورژن ہے postfix ہے incrementation کے لئے ایک ہی خیال. میں نے یہ اور آپ کا کہنا ہے کہ اس کا مذاق بنانا چاہیے، لیکن آپ کے طور پر کوڈ کو دیکھنے کے لئے آئے گا طویل عرصے سے پہلے خوبصورت کچھ. [ہنسی] DAVID J. MALAN: ٹھیک ہے نا؟ جی ہاں. وسط میں سوال. سامعین: آپ int ن کا کہنا ہے کہ کی ضرورت ہے؟ DAVID J. MALAN: کیا تم int ن کا کہنا ہے کہ کرنے کی ضرورت نہیں. ہم نے پہلے ہی INT کہا ہے کیونکہ، آپ اسے دوبارہ کہنے کی ضرورت نہیں ہے. کیچ ن ہے کہ ہے میں کے طور پر ایک ہی ڈیٹا قسم کی ہو. تو ہے کہ یہاں صرف ایک سہولت ہے. جی ہاں. سامعین: آپ پر جا سکتے ہیں پرنٹ کردار کی بریکٹ میں ایک بار پھر؟ DAVID J. MALAN: بالکل. ٪ C تو، آخری سے یاد وقت، صرف ایک پلیس ہولڈر ہے. یہ یہاں ایک چار ڈال کا مطلب ہے. الٹا سلیش (ن)، کورس کے، صرف کا مطلب ہے کہ یہاں ایک سطر توڑ ڈال. ، ابھی، چھوڑ دیتا ہے کہ تو نئے نحو کا یہ ٹکڑا. اور اس کے لفظی پکڑو، کہہ رہا ہے سٹرنگ بلایا اور جاؤ اس i'th کردار، تو بات کرنے کی. اور میں i'th کردار کہہ رکھنے کیونکہ اس لوپ کے ہر iteration پر ہم چھپائی رہے ہیں جیسے یہ ہے باہر، سب سے پہلے کی بریکٹ 0، ایک پروگرامر کا کہنا ہے کہ ہو سکتا ہے کے طور پر. پھر اس وقت، بریکٹ 1 S بریکٹ 2، پھر 3، 4. لیکن کورس کے، یہ ایک متغیر ہے، تو میں صرف میں اس کے ساتھ اس کا اظہار. اہم، تاہم، احساس ہے، آپ نہیں ہے خاص طور پر اگر اس دنیا میں acclimating گیا پروگرامنگ، جہاں ہم سب کے ہوگا، صفر سے اعتماد لگ رہے ہو اب صفر سے گنتی شروع. کیونکہ ڈور، پہلے کردار، کیا Zamyla میں Z کے لئے بہتر یا برے کے لئے ہے مقام کی تعداد صفر پر رہنے کے لئے جا. ٹھیک ہے، تو مجھے لانے یہاں کیا Zamyla کرنے کے لئے ہمیں واپس اور واقعی میں کیا جا رہا ہے کو دیکھنے کے ہڈ کے نیچے. تو قسم ڈال کے اس تصور ہے. تم واقعی ہو سکتا ہے پہلے سے ہی اس کے ساتھ ادا کیا، شاید ہیکر کے لئے P کے ایڈیشن ایک سیٹ. لیکن قسم کی معدنیات سے متعلق صرف سے مراد C میں صلاحیت اور کچھ دیگر زبانوں میں ایک ڈیٹا کی قسم کو تبدیل کرنے کی. اب ہم اس کو کس طرح دیکھ سکتے ہیں خوبصورت straightforwardly؟ تو، آغاز یہ، یاد ہے انگریزی حروف تہجی کے. اور سیاق و سباق، سے، یاد کی طرح ایک ہفتے پہلے ASCII ہے. امریکی معیاری کوڈ معلومات کے تبادلے کے لئے. جس میں صرف ایک بہت طویل راستہ ہے حروف سے ایک تعریفیں کہہ کے تعداد میں، اور تعداد سے حروف کے لئے. تو یہاں M، ڈاٹ ڈاٹ کے ذریعے ڈاٹ، لائنوں کے ساتھ، یاد، پر دشملو تعداد 65. اور ہم نے بات نہیں کی واضح طور پر اس کے بارے میں، لیکن یقینا اسی طرح ہے چھوٹے حروف کے لئے تعداد. اور یقینا، ہیں. دنیا کچھ سال فیصلہ پہلے تھوڑا سا، ایک چھوٹے، 97 جا رہا ہے. اور تھوڑا سا ب جا رہا ہے تو آگے 98، اور کرنے کے لئے. اور کسی بھی دیگر اہم کے لئے اپنے کی بورڈ، ہے بٹس کی ایک اسی طرح کے پیٹرن ہو جا. یا equivalently، ایک دشملو تعداد. تو ہاتھ میں سوال، تو، ہم کس طرح کر سکتے ہیں اصل میں ہڈ کے نیچے اس کو دیکھا؟ تو میں ایک بار پھر gedit کے پر جانے کے لئے جا رہا ہوں. بلکہ قسم سے شروع سے اس کو، میں آگے جانے کے لئے جا رہا ہوں اور صرف کچھ کو کھولنے آج کے کوڈ سے ASCII صفر کہا. اور ASCII صفر اس طرح لگ رہا. تو اس کے ارد گرد ہمارے ذہنوں لپیٹ دیں. تو سب سے پہلے، میں نے یہ تبصرہ کیا ہے جو اچھا ہے کوڈ،. یہ لفظی ہے کیونکہ توقع کیا مجھ سے کہہ، بڑے حروف کے لئے ایک تعریفیں ظاہر. اب میں کافی نہیں جانتے جو میں اس کی طرف سے مطلب ہے، تو اندازہ دو. انگریزی میں، ہو سکتا ہے کسی حد تک techie انگریزی، کیا 18 لائن ظاہر کرتا ہے ہمارے لئے کر رہے ہو؟ صرف 18 لائن. یہ کیا inducing کی ہے؟ کیا یہ یہاں لات مار کرنے کے لئے جا رہا ہے؟ سامعین: ایک لوپ. DAVID J. MALAN: ایک لوپ. اور کتنی بار ہے iterate جا رہا ہے؟ سامعین: [آوازیں INTERPOSING] چھ بار. DAVID J. MALAN: نہیں چھ بار. سامعین: 26 بار. DAVID J. MALAN: 26 بار. جی ہاں، معذرت. 26 اوقات. کیوں؟ ویسے، یہ ایک چھوٹا سا عجیب ہے، لیکن میں نے 65 سے گنتی شروع کر دیا ہے. جس عجیب، لیکن غلط نہیں ہے. یہ کہنا فی برا نہیں ہے. اور میں کیا کر رہا ہوں کہ صرف کیونکہ، یہ مثال کے طور پر، میں اس قسم کی امید کر رہا ہوں دارالحکومت ایک 65 تھا. اب یہ سب سے زیادہ خوبصورت ہے راستہ مشکل کوڈ کی قسم، ایسا کرنے کے لئے باطنی اقدار کہ کوئی کبھی یاد کرنے کی توقع کی جاتی ہے. لیکن اب کے لئے، میں ہوں کہ نوٹس 65 کے علاوہ 26 کے ذریعے یہ کر. بظاہر میں بھی نہیں کرنا چاہتے کیونکہ میرے سر میں ریاضی کرنا. تو میں نے سنکلک کرتے ہیں گے. لیکن اس کے بعد ہر لوپ پر، ہر iteration لوپ کے، میں میں incrementing رہا ہوں. تو اب یہ تھوڑا خفیہ لگ رہا ہے. لیکن ہم بنیادی عمارت ہونا چاہئے جس کے ساتھ بلاکس اس کو سمجھنے کے لئے. ٪ C ایک چار کے لئے ایک پلیس ہولڈر ہے. میں نے ایک int کے لئے ایک پلیس ہولڈر ہے. اور اس کی طرف سے اس کا استعمال کرتے ہوئے پتہ چلا ہے کہ نئے نحو، اس parenthetical، تو ، بات ایک ڈیٹا کی قسم تو کرنے کے لئے قوسین کے اندر، میں علاج کے لئے سنکلک مجبور کر سکتے ہیں میں نہیں ایک عدد صحیح ہے، لیکن ایک چار کے طور پر. اس طرح مجھے کردار دکھا اس نمبر کے برابر. اب یہاں نیچے، اس کوڈ کو بہت زیادہ ایک جیسی ہے. میں صرف کرنے کے لئے کرنا چاہتا تھا سپر واضح حقیقت میں 97 میں شروع کر رہا ہوں کہ، جس میں ایک چھوٹے ہے. 26 سے زیادہ حروف کے ذریعے. اور میں، پھر doing-- ہوں میں ڈال، تو بات کرنے کی. یا قسم کی معدنیات سے متعلق میں، تو بات کرنے کی. ایک چار کے لئے ایک int کی طرف سے. تو نتیجہ جا رہا ہے، واضح طور سے، معلومات ہم نے پہلے سے ہی جانتے. میں جا رہا ہوں ASCII-0 سی ڈاٹ نہیں dot--. نوٹس، آپ شاید ہے کہ غلطی میں صرف اتفاقی طور پر کیا. ASCII-0 بنائیں. اب میں ./ascii 0 کرنے جا رہا ہوں. میں زوم، اور بدقسمتی گے یہ سکرین سکرال کرنے کے لئے جا رہا ہے. لیکن ہم ایک پورے چارٹ جہاں دیکھیں 97 کرنے کے لئے ایک نقشے، 98 B نقشے، اور ہم مزید سکرال ایک، کورس کے، 65 کرنے کے لئے نقشے. تو اس کا کہنا ہے کہ ہے ہم کیا تبلیغ کیا گیا ہے، اس مساوی، وہاں ہے حقیقت میں حقیقت میں کیس. تو اس کی ایک فوری ترمیم. مجھے ASCII-1.c کھول دو. اور طرح، یہ ہوشیار نوٹس کی، اس کی وضاحت. یہ ASCII-1.c ہے، اور اس پاگل چیز محسوس. اور یہ واقعی دل سے ہو جاتا کیا کمپیوٹر کے کر رہے ہیں. یہاں تک کہ ہم انسان ہو گی اگرچہ letters-- کی شرائط میں شمار نہیں میں سوچ شروع نہ کرو، ٹھیک ہے ایک تو بی، اور جسمانی اشیاء کو شمار کرنے کے لئے ان کا استعمال کرتے ہیں. آپ یقینی طور پر میں چاہتا ہوں کہ کہہ سکتے ہیں کہا جاتا ہے کچھ متغیر ابتدا c-- لیکن میں نے اس anything-- کہا جاتا ہے کر سکتے ہیں تو C دارالحکومت A. initialized ہے دن کے آخر میں، کمپیوٹر، کیونکہ آپ کو ذخیرہ کرنے کر رہے ہیں میں پرواہ نہیں کرتا، یہ صرف آپ چاہتے ہیں کس طرح پرواہ اس کی معلومات پیش کرنے کے لئے. آپ کے کمپیوٹر کے لئے چاہتے ہیں کے لئے کس طرح بٹس کہ اس انداز کی تشریح؟ تو یہ کچھ میں نہیں ہے عام طور پر کرنے کا مشورہ دیتے. یہ واقعی صرف ایک مثال ہے تبلیغ ہے کہ تم بالکل کر سکتے ہیں ایک چار کے لئے ایک عددی ابتدا. کیونکہ نیچے ایک چار کے ہڈ، کورس کے، 0 سے 255 کرنے کے لئے صرف ایک نمبر ہے. تو آپ کو یقینی طور پر کر سکتے ہیں ایک int کے اندر ڈال دیا. اور کیا یہ بھی ہے کا ثبوت ہے کہ ہم اس ایک سے تبدیل کر سکتے ہیں یہاں، دوسرے میں ٹائپ، بالآخر ایک ہی بات چھپائی. اور حقیقت میں، اس میں online-- درست کریں گے یہاں، ایک بار پھر، اس کا کہنا تھا. مجھے آن لائن اس کو صاف کرتے ہیں، اور ہم کریں گے ضرورت کے طور پر ایک آن لائن walkthrough میں دیکھیں، کیا ارادہ کیا تھا. ٹھیک ہے. اب شامل تو گزشتہ مثال کے طور پر ایک اور ب کے اور اس کے بعد ہم کریں گے نشان تک چیزوں کو لے. ایک اور ب کے ساتھ اور تو بڑے حروف تہجی میں سی اور مساوی اس، چلو یہاں، اس مثال پر ایک نظر لے. ایک اور مثال کے طور پر کوڈ. ہم ہے کہ ایک کو کھولنے گے پہلے ہی بنا دیا، ہم تو ٹائپ کرنے کی ضرورت نہیں تمام شروع سے باہر. اور امید میں نوٹس ہم ایک سے زیادہ ہیڈر کا استعمال کرتے ہوئے کر رہے ہیں ہے جس کے درمیان فائلوں، ہمارے نئے دوست، string.h کو. اب یہ سب سے پہلے میں، لگتا ہے نظر، ایک چھوٹا سا خفیہ. لیکن ہم نے کی وجہ نہیں کر سکتے ہیں تو دیکھتے ہیں یہاں کیا چل رہا ہے کے ذریعے. سب سے پہلے میں صارف سے ایک تار حاصل، اور میں ایک متغیر میں اس سٹرنگ ڈال کہا جاتا ہے. پہلے سے کاپی پیسٹ. 22 سطر میں، میں بظاہر ہوں بالکل وہی جو کر رہا میں iterating رہا ہوں، ایک لمحے پہلے کیا تھا ایس حروف پر. اور یہاں نئی ​​چالوں کا استعمال کرتے ہوئے کر رہے ہیں سٹرنگ کی لمبائی، معمولی اصلاح (ن) میں سٹرنگ کی لمبائی کو ذخیرہ کرنے کی، بلکہ پھر strlen بلا سے، اور پھر، اور پھر. اور صرف میں (ن) کے مقابلے میں کم ہے کہ جانچ پڑتال. اب یہاں، چیزوں کو حاصل ایک چھوٹی سی دلچسپ. لیکن یہ صرف ایک درخواست ہے اسی نئے خیال کی. انگریزی کرتا میں کیا میں نمائندگی کی بریکٹ؟ سامعین: ہر گنتی کردار [اشراوی]. DAVID J. MALAN: ہر کردار گنتی. اور اس سے بھی زیادہ succinctly، کی بریکٹ میں کیا کی نمائندگی؟ کہ آپ کا کہنا ہے کہ. یہاں جگہ پر آپ ڈال کرنے کے لئے نہیں. سامعین: Well-- DAVID J. MALAN: لفظ تو is-- تو سٹرنگ starts-- جس کیا Zamyla، ہے سامعین: --you کے ساتھ نمٹنے حروف separately-- DAVID J. MALAN: اچھا. بالکل ٹھیک. مربع بریکٹ سنکیتن آپ کی اجازت دیتا ہے انفرادی طور پر ہر کردار تک رسائی حاصل کرنے، تو بریکٹ 0 ہونے جا رہا ہے تار میں پہلے کردار. کی بریکٹ 1 جا رہا ہے تو آگے دوسری، اور. تو سوال میں پوچھ رہا ہوں، یہاں، اس حالت میں کیا ہے؟ کی زیادہ سے زیادہ کی i'th کردار ہے سے برابر یا ایک چھوٹے؟ اور یہ، یہاں، کیا مطلب ہے ڈبل ampersands کے ساتھ؟ سامعین (ساتھ مل کر) اور. DAVID J. MALAN: اور. یہ اس کے لئے صرف برابر ہے. اور C میں ایک مطلوبہ لفظ نہیں ہے، آپ کی ضرورت استعمال، اور annoyingly، ایمپرسینڈ ایمپرسینڈ. اور یہ، اس کے برعکس، پوچھ رہا ہے کردار i'th ایس کی کم سے کم یا برابر Z چھوٹے؟ اور پھر، یہاں کہاں ہے بنیادی تفہیم ایک کے عمل کمپیوٹر کا احساس کرتا ہے. میں ہے، اگرچہ، کہ نوٹس ڈاٹ ڈاٹ ڈاٹ وہاں، چھوٹے Z کے ذریعے ایک کی طرح کر رہے ہیں لگتا ہے اپ پر 97 سے تمام ملحق اقدار. اور بڑے کے لئے ایک ہی 65 سے شروع. تو takeaway ہے، اس کے بعد، کہ، انگریزی میں ہے آپ کی وضاحت کیسے کریں 24 کیا کر رہا ہے لائن؟ جی ہاں؟ سامعین: 24 پر یہ دیکھنے کے لئے کی جانچ پڑتال کی ہے چاہے ہر کردار ایک چھوٹے ہے. DAVID J. MALAN: یہ جانچ پڑتال کی ہے ہر کردار ایک چھوٹے خط ہے. تو بھی زیادہ succinctly، ہے کے چھوٹے کے i'th کردار؟ یہی ہے جو ہم کر رہے ہے منطقی طور پر یہاں کا اظہار، ایک چھوٹا سا cryptically، لیکن بالآخر بہت straightforwardly. کردار چھوٹے i'th ایس کی ہے؟ اگر ایسا ہے تو، اور یہاں ہے جہاں چیزیں ایک چھوٹا سا ذہن موڑنے حاصل صرف ایک لمحے کے لئے، اگر ایسا ہے تو، جانا آگے اور ایک کردار پرنٹ. تو یہ صرف ایک پلیس ہولڈر ہے، لیکن جو کردار؟ کیوں کی بریکٹ میں کر رہا ہوں مائنس یہاں یہ اظہار؟ ویسے یہاں پیٹرن محسوس. اصل تعداد اتنا فرق نہیں پڑتا. لیکن 97 نوٹس ہے کہ کس طرح دور 65 سے؟ سامعین: 32. DAVID J. MALAN: 32. دور کس طرح 66 سے 98 ہے؟ سامعین: 32. DAVID J. MALAN: بگ C سے چھوٹی سی؟ 32. تو سے 32 چھلانگ ہے ایک خط. تو واضح طور سے میں، کر سکتے ہیں اس کے لئے اس کو آسان بنانے. لیکن اس وقت میں اس قسم کی مشکل کوڈنگ ہوں یہ کم سطح کی تفہیم کوئی قاری کبھی ہے سمجھنے کے لئے جا. تو میں اس کے طور پر وسیع کرنے کے لئے جا رہا ہوں، میں جانتے چھوٹے حروف بڑے ہیں. میں بڑے حروف ہیں چھوٹے اقدار، ستم ظریفی یہ ہے. لیکن یہ کرنے کے لئے مؤثر طریقے سے برابر ہے کی بریکٹ میں سے 32 منہا کہہ. ان کے تناظر میں تو خط، خط تو ایک، چھوٹے ہو ایک، اور میں 32 منہا، اس کا کیا اثر ہوتا ہے، ریاضی، پر ایک چھوٹے؟ سامعین: Capitalizes-- DAVID J. MALAN: یہ Capitalizes. اور یقینا، یہ کیوں ہے ہمارے پروگرام صفر فائدہ اٹھانے کو کہا جاتا ہے. یہ پروگرام یا تو ایک خط capitalizes، اگر یہ ہے جانچ پڑتال کے بعد واقعی ایک چھوٹے خط. دوسری صورت میں، لائن 30 میں، میں تو میں کیا کروں اس میں ہے کہ ایک چھوٹے خط نہیں ہے ایک خاص طور پر میں تلاش لوپ میں iteration کے. صرف اسے باہر پرنٹ. تو چیزیں تبدیل نہیں کرتے یہاں تک کہ چھوٹے نہیں ہے. کے لئے اپنے آپ کو محدود تھوڑا Z ذریعے ایک چھوٹا سا. اب یہ کافی arcane ہے. لیکن دن کے اختتام پر، اس ہم کس طرح، ایک وقت، ہے چیزوں کو لاگو کرنے کے لئے تھا. میں بجائے فائدہ کھولنے ایک، اوہ خدا کا شکریہ. ایک تقریب ہے اوپری کے لئے کہا جاتا ہے کہ کر سکتے ہیں ہم صرف کیا سب کچھ ایک کافی کم سطح پر. اب اوپری دلچسپ ہے یہ ایک فائل میں اعلان کیا جاتا ہے کی وجہ سے، اور آپ کو صرف یہ پتہ چلے گا دستاویزات کی جانچ پڑتال کی طرف سے، یا کلاس، جہاں میں، کا کہنا ہے کہ، بتایا جا رہا ہے یہ ایک فائل کہا جاتا ctype.h میں، موجود ہے. تو یہ ہمارا ایک اور نئے دوست ہے. اور اوپری بالکل کرتا ہے اس کے نام سے پتہ چلتا ہے. آپ کے درمیان، ایک دلیل کے طور پر، میں منتقل کر سکتے ہیں ان قوسین، کچھ کردار. میں i'th کردار میں منتقل کرنے کے لئے جا رہا ہوں کی ہماری پسند ہیں نئی ​​سنکیتن کا استعمال کرتے ہوئے ہے مربع بریکٹ شامل. اور ایک اندازہ، واپسی ہے بالائی کی قدر بظاہر جا ہو؟ سرمایہ خط. سرمایہ خط. تو میں نے ایک چھوٹے میں منتقل تو، امید ہے، اوپری کی تعریف کی طرف سے، یہ ایک واپس جا رہا ہے ورنہ بڑے اے، اس میں ایک چھوٹے خط نہیں ہے پہلی جگہ، میں صرف اسے باہر پرنٹ. اور یقینا، نوٹس یہاں دوسری دوست. نہ صرف اوپری موجود ہے، لیکن، کم ہے جو اصل میں میرے لئے اس سوال کا جواب ہے. اب ان چیزوں کو جس نے لکھا، 10S سال پہلے، آپ کیا جانتے ہیں؟ اوپری کرنے کے لئے لاگو ہے اس طرح کے کوڈ کا استعمال کرتے ہوئے کم. لیکن ساتھ دوبارہ، مسلسل دور abstracting کے اس خیال، کی طرح، کم سطح عملدرآمد کی تفصیلات. اور لوگوں کے کندھوں پر کھڑے جو کام کرتا ہے کا استعمال کرتے ہوئے، ہمارے سامنے آیا بالائی کی طرح اور، کم ہے جو حیرت انگیز کافی اچھی طرح سے ہیں وہ کیا کرتے ہیں کا کہنا ہے کہ نام، ہے ایک شاندار مثال کو اپنانے کے لئے. اب، یہ میں نے پڑھا ہے کہ باہر کر دیتا ہے ، کے لئے مرد صفحہ، بالائی، کا کہنا ہے کہ میں کچھ جاننے کے. تو آدمی toupper کرتا ہے. یہ تھوڑا بھاری ہے. لیکن نوٹس، یہاں اس کا ذکر ہے میں استعمال کرنا چاہئے کہ ہیڈر فائل. ایک طرف، اس کی وجہ یہ ہے کے طور پر گمراہ کن ہے، تقریب ints کے بجائے حروف کا استعمال کرتا ہے غلطی کی چیکنگ کی وجہ سے. لیکن ہم شاید آ جائیں گے واپس مستقبل میں. لیکن اوپری تبدیل کرنے کے لئے، یہاں، نوٹس اگر ممکن ہو تو خط C بڑے. تو یہ بہت سیدھا ہے. اور اب تھوڑا زیادہ مخصوص ہو. کے حصے میں نظر آتے ہیں واپسی کی قیمت کے تحت مرد صفحہ. واپس قیمت ہے تبدیل خط کی. یا C، تو تبادلوں ، ممکن نہیں تھا جہاں C اصل ان پٹ ہے. جس میں سے، یہاں سے معلوم ہے بالائی دلیل. تو یہ takeaway ہے کیا ہے؟ واپس قیمت ہے تبدیل خط کی، یا C، اصل خط، تو تبادلوں سے ممکن نہیں تھا. کیا بہتری اس لئے میں کر سکتے ہیں اپنے کوڈ کے ڈیزائن کے لئے بنانے کے؟ جی ہاں؟ سامعین: آپ اور ختم کر سکتے ہیں. DAVID J. MALAN: میں کر سکتے ہیں اور بیان کو ہٹا دیں، اور نہ صرف کسی بیان. سامعین: [اشراوی] کو ہٹا سکتے ہیں. DAVID J. MALAN: میں کر سکتے ہیں پوری کانٹا دور راستے میں، اور اگر مکمل طور پر. تو یقینا، مجھے کھول دو اس کے آخری ورژن، تو، 2 فائدہ اور کس طرح صرف نوٹس آپ، شہوانی، شہوت انگیز، کوڈ، اب ہو رہی ہے گا، اس میں میں نے کچھ سے کم ہے سات یا تو صرف چار لائنوں، میں نے ارادہ کیا کہ فعالیت صرف بالائی بلا کی طرف سے، کی بریکٹ میں، اور پرنٹنگ میں گزر باہر، پلیس ہولڈر٪ C کے ساتھ، اس مخصوص کردار. اب بلاشبہ، ایک مسئلے سے ہے، یا ایک مسئلے کے کم از کم خطرہ، اس پروگرام میں. تو واپس آنا پہلے takeaway ہے کرنے کے لئے، میں بھی شاید میں کیا کرنا چاہئے اس پروگرام اس سے زیادہ مضبوط بنانے کے لئے، کوئی راستہ نہیں ہے، تا کہ یہ کر سکتے ہیں یہاں تک کہ شاذ و نادر صورتوں میں، کریش؟ سامعین: یہ نل نہیں ہے بات کو یقینی بنائیں. DAVID J. MALAN: یہ نل نہیں ہے بات کو یقینی بنائیں. تو واقعی، اس سپر بنانے کے لئے مناسب، میں، کی طرح کچھ کرنا چاہئے کی تو نل، نہیں ہے آگے بڑھو اور پھانسی کوڈ کا ان لائنوں، جس میں میں کر سکتے ہیں اس کے بعد اس طرح بڑھائیں، اور پھر میرے قریب تسمہ میں ڈال دیا. دو خیالات کے باندھنے اتنا اچھا ہے. جی ہاں؟ سامعین: آپ استعمال کر سکتے ایک کی بجائے، جبکہ لوپ ہے؟ DAVID J. MALAN: جاسکتا میں نے کیا جبکہ ایک لوپ ہے؟ سامعین: --you یقینی بنانا چاہتے ہیں آپ اصل میں [اشراوی]. DAVID J. MALAN: جاسکتا آپ کو ایک کرتے استعمال کرتے ہیں؟ مختصر جواب، کوئی. آپ کے بارے میں ہیں کیونکہ دوسرے کونے کے کیس کو متعارف کرانے. سٹرنگ صفر لمبائی کی ہے. مثال کے طور پر، اگر میں صرف مارا کبھی کیا Zamyla ٹائپ کے بغیر، درج کریں. میں واپس ایک اصل آپ کے حوالے کرنے جا رہا ہوں سٹرنگ، ہم آخر میں دیکھیں گے کے طور پر، کہ صفر حروف ہے. یہ اب بھی ایک تار ہے، یہ صرف سپر مختصر ہے. لیکن آپ کو، جبکہ ایک کیا استعمال کرتے ہیں تو، آپ آنکھ بند کر کے جا رہے ہیں کے ساتھ کچھ کرنے کی کوشش کریں کہ سٹرنگ کرنے کے لئے احترام، اور کچھ بھی نہیں ہو رہا ہے. سامعین: ٹھیک ہے، تم نے تو ہے [اشراوی] s-- جبکہ DAVID J. MALAN: اوہ، میں دیکھ، رکھنے صارف کی طرف سے ایک تار ہو. تو مختصر جواب، آپ ، اور تنگ رکھ سکتا ان میں آپ کو ہے کہ ایک تار دینے کے لئے میموری میں فٹ ہونے کے لئے کافی مختصر. بالکل. میں صرف نہیں کرنے کا انتخاب کیا. وہ میرے سٹرنگ میں نہیں دیتے تو چاہتے ہیں، میں چھوڑ رہا ہوں، میں دے رہا ہوں. لیکن بالکل، اس مقصد کے لئے، تم بالکل کہ کر سکتے ہیں. تو لائبریری کے ہیڈر فائلوں کہ اب ہم یہاں، یہ ہیں کے ساتھ واقف ہو. معیاری I / O، cs50.h، میں، string.h کو، ctype.h، اور، یقینا، دوسروں کے ہیں. تم میں سے کچھ دریافت کر لیا ہے math.h. میں ریاضی کی لائبریری لیکن میرے لئے، اب آپ کو متعارف کرانے یہ وسائل ہے کہ CS50 عملے، Davin، اور روب، اور Gabe کی خاص ایک دوسرے کے ساتھ ڈال دیا ہے. کہ جلد ہی پر لنک کیا جائے گا کورس کی ویب سائٹ. یہ CS50 حوالہ کہا جاتا ہے. صرف آپ کو ایک فوری دینے کے لئے کون سا مندرجہ ذیل کے طور پر اس کا ذائقہ، کام کرتا ہے. مجھے reference.cs50.net جانے دو. آپ کو بائیں طرف نظر آئے گا بھاری فہرست کی طرف سی کے ساتھ آئے کہ افعال کی. لیکن میں لمحے کے لئے، دیکھ بھال، تو strlen کی طرح کچھ کے بارے میں، میں نے اسے وہاں ٹائپ کر سکتے ہیں. یہ فہرست فلٹر میں پرواہ صرف کیا. میں اس پر کلک کرنے کے لئے جا رہا ہوں. اور اب، چھوڑ دیا آپ ہمیں امید ہے نظر آئے گا ایک سے زیادہ براہ راست، انسانی ہے کس طرح کے دوستانہ وضاحت اس تقریب کے کام کرتا ہے. ایک تار کی لمبائی واپسی. یہاں ایک خلاصہ یہاں، تم کس طرح ہیڈر فائل کی شرائط میں اس کا استعمال، اور کیا تقریب کے لحاظ سے اس کے دلائل کے معاملے میں کی طرح لگتا ہے. اور پھر یہاں، واپسی ایک تار کی لمبائی. لیکن زیادہ آرام دہ اور پرسکون آپ کو ان لوگوں کے لئے، آپ اصل میں، زیادہ آرام کلک کر سکتے ہیں اور اس کے مندرجات صفحہ، اب، تبدیل کیا جائے گا کیا پہلے سے طے شدہ اقدار ہونا آپ مرد صفحہ کا استعمال کرتے ہوئے کی طرف سے حاصل. CS50، دوسرے الفاظ میں حوالہ ایک آسان بنانے ہے طالب علموں کے لئے عملے کی طرف سے آدمی کے صفحات، کے. خاص طور پر، ان کم آرام دہ اور پرسکون اور میں، کے درمیان ہے تاکہ آپ لپیٹ کرنے کی کوشش کرنے کی ضرورت نہیں ہے آپ کے دماغ کے ارد گرد، واضح طور سے، کچھ کافی خفیہ نحو کچھ دیر اور دستاویزات. تو یہ بات ذہن میں رکھیں کہ دن میں آنے کے لئے. تو یہاں، پھر، ایک Zamyla ہے. اب ہے کہ ایک سوال پوچھنا ہے ایک چھوٹا سا زیادہ انسانی قابل رسائی. کیا گیا ہے جو چانگ کا شکریہ، زیادہ ہاتھی پرنٹنگ گزشتہ چند دنوں کے لئے براہ راست. ہم دینے کے لئے ایک موقع ہے ان کے کم از کم ایک. ہم صرف ایک رضاکار حاصل کر سکتے ہیں سکرین پر اپنی طرف متوجہ کرنے کے لئے آنے کے لئے. کس طرح یہاں کے بارے میں؟ پر چلو. آپ کا نام کیا ہے؟ ALEX: یلیکس. DAVID J. MALAN: یلیکس. ٹھیک ہے. یلیکس، پر آئے. ہم کو دیکھنے کے لئے کے بارے میں ہیں آپ یہاں کی سکرین پر لکھاوٹ. ٹھیک ہے، آپ سے مل کر اچھا لگا. ALEX: اچھا آپ سے ملنے. DAVID J. MALAN: ٹھیک ہے. تو، سپر آسان ورزش. بار زیادہ نہیں ہے آج ایک ہاتھی حاصل. آپ GetString کا کردار ادا کر رہے ہیں. اور میں صرف آپ کو بتا رہا ہوں آپ ہو گیا ہے کہ سٹرنگ. اور، آپ کو لگتا ہے کہ GetString کے، بلایا گیا ہے. اور انسانی، میری طرح، ہے کیا Zamyla، Z-A-M-Y-L-A میں ٹائپ. بس آگے بڑھو اور پر کیا Zamyla لکھیں سکرین آپ کو یہ ملا اگرچہ کے طور پر اور میموری میں اسے کہیں محفوظ. کئی کیا ہو گی کے لئے جانے کے کمرے ٹھیک ہے کہ دیگر words--، جا رکھنے کے. [ہنسی] تو کیا Zamyla، بہترین. تو اب لگتا ہے کہ آپ، GetString کی، پھر کہا جاتا ہے. اور اس وجہ سے، میں، آپ کو فراہم بورڈ، ایک اور نام، Belinda کی کے ساتھ. ٹھیک ہے. اور اب اگلی بار GetString ہے کہا، میں، Gabe کی طرح کچھ میں ٹائپ G-A-B-E. تم سچ میں لے جا رہے ہیں دل رینڈم رسائی میموری کے لئے. جس میں سب کچھ آ رہا ہے مکمل طور پر تصادفی. ٹھیک ہے. [ہنسی] ALEX: معذرت میری لکھاوٹ بری ہے. DAVID J. MALAN: نہیں، یہ ٹھیک ہے. اور کس طرح روب، R-O-B کے بارے میں. ٹھیک ہے. اچھا. تو میں آپ کو کرے گا اندازہ نہیں تھا قسم کے اس طرح میں چیزیں ڈال. لیکن ہم یہ کام کر سکتے ہیں. تو آپ کو بچھانے کے بارے میں کس طرح جانا تھا میموری میں ان حروف سے باہر؟ دوسرے الفاظ میں، ہم سوچتے ہیں اس آئتاکار سیاہ سکرین ایک کی نمائندگی کے طور پر کمپیوٹر کی RAM، یا میموری. اور یہ کہ رام صرف یاد ہے بائٹس کی ایک پوری چڑھانے، اور بائٹس کی بٹس کی ایک پوری چڑھانے ہیں. اور بٹس کسی نہ کسی طرح ہیں عام طور پر، لاگو کے کچھ فارم کے ساتھ ہارڈ ویئر میں بجلی. تو اس کی طرح ہے ہم کے بارے میں بات کی ہے layering کے حاصل کی جاچکی کے لئے اور اب لے جا سکتے ہیں. آپ کس طرح کے بارے میں جانا تھا جہاں لکھنے کا فیصلہ روب بمقابلہ Gabe کی کے مقابلے میں کیا Zamyla بمقابلہ Belinda کی؟ ALEX: میں صرف میں نے یہ کیا آپ نے مجھے بتایا کہ حکم. DAVID J. MALAN: اور یہ سچ ہے. لیکن کیا تم کہاں ڈال حکومت Belinda کی کا نام اور Gabe کی کا نام؟ جواب: کچھ نہیں؟ DAVID J. MALAN: [ہنستا ہے] تو کام کرتا ہے، یہ ٹھیک ہے. تو کمپیوٹر چھوٹی سی ہیں اس سے بھی زیادہ منظم. اور اس طرح ہم وہاں رہنے implement-- جب جب اصل میں ہم صرف ایک لمحے کے لئے کی طرح کچھ لاگو ایک کمپیوٹر میں GetString، کیا Zamyla بہت زیادہ رکھی کیا جا سکتا ہے طرح تم نے، سکرین پر کیا. اور محسوس کرنے کے لئے اہم ہے یہاں، یلیکس نے کیا کیا، ایک حد بندی کی طرح نہیں ہے ان الفاظ میں سے ہر ایک میں، ٹھیک ہے؟ تم نہیں لکھا Z-A-M-Y-L-A-B-E-L-I-N-D-A-G-A-B-- دوسرے الفاظ میں، کچھ قسم کی ہو گیا ہے جس کی حد بندی کی، قسم کے، بے ترتیب وقفہ کاری ان مختلف الفاظ کے درمیان. لیکن اس کی وجہ سے، اچھا ہے ہم انسانوں کو اب کر سکتے ہیں یہ ہیں کہ دیکھ چار مختلف ڈور. یہ صرف ایک تسلسل نہیں ہے حروف کے بہت سے. تو ایک کمپیوٹر، اس کے بعد، اس دوران، Zamyla کی طرح ایک تار لے سکتا ہے، ان خطوط میں سے ہر ایک میں ڈال دیا میموری کا ایک بائٹ کے اندر. لیکن اس تعداد میں، بہت بڑا ہے کورس کے، چھ حروف سے. RAM کے ایک پوری چڑھانے ہے. اور تو اب، اس خانوں کی گرڈ جا رہا ہے کیا یلیکس صرف کی نمائندگی کرنے سکرین پر یہاں کیا. اور اب، یلیکس، ہم آپ کو ایک پیش کر سکتے ہیں نیلے یا چانگ کی طرف سے ایک سنتری ہاتھی. جواب: میں ایک نیلے ہاتھی لے لیں گے. DAVID J. MALAN: ایک نیلے ہاتھی. تو تعریف کی ایک بڑی دور، یلیکس کے لئے یہاں، اگر ہم کر سکتے. [تالیاں] جواب: آپ کا شکریہ. DAVID J. MALAN: آپ کا شکریہ. تو takeaway ہے ہے، کہ اگرچہ پیٹرن کی قسم یہاں، وقت کے ساتھ تبدیل کر دیا گیا بورڈ پر، یہ تھا مختلف ڈور کے درمیان حد بندی یلیکس ہمارے لئے ہے کہ. اب کمپیوٹر، واضح طور سے، ایک ہی بات کر سکتے ہیں. وہ کس قسم کی پرواز کر سکتے ہیں کہیں RAM میں ڈور. یہاں، یہاں، یہاں، یہاں نیچے. وہ بالکل ایسا کر سکتا ہے. لیکن، کورس کی، ہے شاید سب سے بہتر نہیں کی منصوبہ بندی. ٹھیک ہے نا؟ میں یلیکس پوچھ رکھا تو نام حاصل، شاید وہ تھا شاید اپ، یہاں کچھ زیادہ نیچے رکھ یہاں، یہاں، یہاں، آخر میں یہاں پر. لیکن تھوڑا زیادہ کی منصوبہ بندی کے ساتھ، یقینی طور پر، ہم زیادہ cleanly چیزیں ڈال کر سکتے ہیں. اور یقینا، کہ ایک کمپیوٹر کرتا ہے. لیکن پکڑنے ہے تو میں حاصل اگلے سٹرنگ کیا Zamyla کچھ ہے کے بعد Belinda کی طرح، ہم لکھ سکتا ہے جہاں کی تجویز اس گرڈ کے حوالے سے بی خط؟ آپ کہاں جائیں گے؟ ایک کے دائیں جانب، ایک نیچے Z، ذیل میں؟ آپ کی پہلی کے instincts کیا ہو گا؟ سامعین: Z مندرجہ ذیل. DAVID J. MALAN: تو Z نیچے. اور اس خوبصورت ہے براہ راست، ٹھیک ہے؟ یہ صاف کی طرح ہے، یہ ہم نے کیا ہے ایک کی بورڈ پر ہم درج کریں مارا جب، یا ایک ای میل کرتے وقت چیزوں کی شق وار فہرست. لیکن حقیقت یہ ہے کہ کمپیوٹر ہے زیادہ موثر کرنے کی کوشش کریں، اور زیادہ سے زیادہ یقینی طور پر رٹنا ممکن طور پر RAM میں ڈیٹا، تاکہ آپ کو کسی بھی بائٹس ضائع نہیں کرتے. آپ کو ضائع نہیں ہے تو کسی بھی سکرین ریل اسٹیٹ کی. اور مسئلہ، اگرچہ، ہے ہم لفظی خط ڈال دیا تو B ایک کے بعد، ہم کس طرح کرنے کے لئے جا رہے ہیں کیا Zamyla کا نام کہاں ختم جانتے اور belinda کا نام شروع ہوتا ہے؟ تو کیا تم صرف، اچھی طرح سے، تجویز انسان بنیادی طور پر، کلید درج کریں مارا. ذیل میں اس کو نیچے رکھو. یا یلیکس کیا بھی، صرف لکھنے شروع گزشتہ ایک ذیل میں اگلا نام، اور یہ کہ ایک کے نیچے، اور پھر اس سے ایک کے نیچے. کہ ایک بصری اشارہ ہے. کمپیوٹر ایک اور بصری اشارہ ہے، لیکن یہ تھوڑا مزید succinct. یہ اس funky کردار ہے. شاید ہے جو الٹا سلیش 0، الٹا سلیش (ن) کی یاد تازہ، اور تو آگے، اب. خصوصی فرار انداز. الٹا سلیش 0 کا راستہ ہے ایک قطار میں آٹھ صفر بٹس کی نمائندگی. 0000 0000. آپ اس ایکسپریس کا راستہ نہیں ہے اپنے کی بورڈ پر تعداد صفر مارا، ایک ASCII حروف حقیقت یہ ہے کہ میں اس کی وجہ. یہ ایک نمبر کی طرح لگتا ہے، لیکن ایک دشملو تعداد اصل میں ہے اس سرکلر کی نمائندگی کرتا ہے تراشہ، سرکلر رسم الخط. دریں اثنا، الٹا سلیش صفر لفظی، کا مطلب ہے کہ میرے لئے یہاں آٹھ صفر بائٹس ڈال. تو یہ کسی حد تک صوابدیدی ہے. ہم کسی بھی پیٹرن کا استعمال کیا ہے کر سکتے ہیں بٹس کی، لیکن دنیا کچھ سال فیصلہ پہلے، اس کی نمائندگی کرنے میموری میں ایک تار کے آخر، صرف zeros کی ایک پوری چڑھانے ڈال. ہم اس کا پتہ لگانے کے کر سکتے ہیں. اب اس کا مطلب ہے کہ اس کا کوئی خط حروف تہجی سے zeros کے ساتھ کی نمائندگی کیا جا سکتا ہے. لیکن اس کے، ہم نے پہلے ہی دیکھا ہے ٹھیک ہے ہم پر میں 97 65 کا استعمال کرتے ہوئے کر رہے ہیں. ہم کہیں نہیں مل سکا تمام zeros کے قریب ہے. ایک کمپیوٹر کی میموری میں Belinda تو اصل میں یہاں جانے کے لئے کی جا رہی ہے. میں پیلے رنگ میں تیار کی ہے صرف اس پر ہماری توجہ اپنی طرف متوجہ کرنے کے لئے. اور نوٹس، بھی، اس مکمل طور پر صوابدیدی ہے. میں ایک گرڈ کے طور پر تیار کی ہے. کی طرح، RAM کچھ جسمانی اعتراض ہے. یہ ضروری نہیں ہے قطار اور کالم، SE فی. یہ صرف بائٹس کی ایک پوری چڑھانے ہے کسی نہ کسی طرح ہارڈ ویئر میں لاگو کیا. لیکن Belinda کی میں نے کے بعد اگر Gabe کی کے نام میں ٹائپ، وہ، یاد میں یہاں ختم کرنے کے لئے جا رہا ہے اور میں Daven کے نام میں ٹائپ ہے تو، مثال کے طور پر، وہ یہاں ختم کرنے کے لئے جا رہا ہے. اور میں جاری رکھ سکتے ہیں اس سے بھی زیادہ کے نام لکھیں. بدقسمتی سے، میں کرنے کی کوشش کرتا ہے تو ایک سپر طویل نام لکھ، میں نے آخر میں میموری سے باہر چلانے سکتا ہے. جس صورت میں، GetString ہے ہم نے کہا کہ، نل واپس جا رہا. لیکن شکر ہے، کم از کم اس بصری میں یہاں، ہم بہت ہے کہ اب تک حاصل نہیں کیا. اب کیا اچھی بات ہے یہ ہے کہ چیزوں کے علاج کے عام خیال باکس میں کیا جا رہا ہے کے طور پر C کی ایک خصوصیت کے نمائندے اور زبانوں کی ایک بہت، ایک صف کے طور پر جانا جاتا ہے. ایک صف میں اعداد و شمار کی ایک اور قسم ہے. اگر آپ یہ ایک آنکڑا ڈھانچہ ہے. واقعی میں اس کے معنی میں ساخت، قسم کے، کم از کم، ایک باکس کی طرح لگ آپ کے دماغ کی آنکھ میں. ایک صف ایک ملحق ہے جیسی اعداد و شمار اقسام کی ترتیب، واپس واپس کرنے کے لئے واپس کرنے کے لئے واپس کرنے کے لئے. دوسرے میں تو ایک تار، الفاظ، حروف کے ایک صف ہے. حروف کی ایک سرنی. لیکن یہ آپ کو ہو سکتا ہے باہر کر دیتا ہے چیزوں کی bunches کی arrays. اصل میں، ہم بھی ڈال سکتے ہیں ایک صف میں تعداد. فارم ہے جس میں ہم شروع کرنے کے لئے جا رہے ہیں یہ اعداد و شمار کا اعلان ایک صف کے طور پر جانا جاتا ساخت بھی مربع بریکٹ کا استعمال کرنے کے لئے کی جا رہی ہے. لیکن ان مربع بریکٹ کرنے کے لئے جا رہے ہیں اس تناظر میں مختلف معنی ہے. اور مندرجہ ذیل کی یہ دیکھتے ہیں. میں نے کھول دیا کہ لگتا ہے یہاں ایک نئی فائل. اور میں ages.c. کے طور پر اس کو بچانے کے اور میں یہاں اپنے فولڈر میں اس کو بچانے کے کریں گے. اور اب میں آگے جانے کے لئے جا رہا ہوں اور کچھ ٹائپ کرنا شروع کریں کی طرح شامل ہیں، cs50.h، میں بھی شامل ہیں stdio.h شامل، اہم صفر int کی. اور پھر یہاں کے اندر، میں چاہتا ہوں پہلے عمر نامی ایک int ہے. اور میں ایک حاصل کرنے کے لئے استعمال کرنے کے لئے جا رہا ہوں اس کا یا اس کی عمر کے لئے صارف سے int. لیکن اس پروگرام کی طرف سے استعمال کیا جا کرنے کے لئے کیا مراد ہے جو کچھ بھی سیاق و سباق کے لئے ایک سے زیادہ لوگوں،. میں نے لوگوں کی ایک لائن ہے. ان سب میں ٹائپ کرنے کی ضرورت ان شاید کچھ، مجھے پتہ نہیں ہے کے لئے عمر، مقابلہ، یا واقعہ انہوں نے کے لئے پہنچے ہیں کہ. تو اگلے شخص، میں دوسرے متغیر کی ضرورت ہے. میں صرف کرتے ہیں کیونکہ عمر GetInt کا ہو جاتا ہے، کہ ہے جا clobber، یا ادلیکھت پچھلا شخص کی عمر. تو یہ اچھا نہیں ہے. میری پہلی سنتیں تو ہو سکتا ہے، اوہ، ٹھیک ہے، میں ایک سے زیادہ لوگوں کے حاصل کرنے کے لئے چاہتے ہیں تو ages--، اس age1 کہتے ہیں INT age2 int ہو جاتا، INT age3 GetInt کا ہو جاتا ہے. اور اب میں استعمال کرنے کے لئے جا رہا ہوں یہاں کچھ pseudocode کوڈ. ان کی تعداد کے ساتھ کچھ کرنا. ہم ایک دن کے لئے چھوڑ دیں گے کیا ہم سے کر رہے ہیں ہم نے صرف لمحے کے لئے دیکھ بھال age1، age2، age3 کے بارے میں. بدقسمتی سے، میں نے ایک بار اس پروگرام مرتب اور، اصل صارفین کے سامنے میں ڈال دیا بنیادی طور پر غریب ڈیزائن کیا ہے مجھے لگتا فیصلہ کیا ہے؟ جی ہاں؟ سامعین: [اشراوی] DAVID J. MALAN: جی ہاں، میں نے بھی کوشش نہیں کی ہے کس طرح بہت سے عمر معلوم کرنا میں اصل میں کے بارے میں پرواہ نہیں ہے؟ میں یہاں سے کم تین لوگوں کو ہے تو، اور اس وجہ سے کم تین سال کی عمر، میں اب بھی آنکھ بند کر کے تین امید کر رہا ہوں. خدا چار افراد کو ظاہر نہ کرے. میرا پروگرام صرف بھی ان کی حمایت نہیں کرے گا. اور اس طرح یہ، لمبی کہانی مختصر، ایک اچھی عادت نہیں ہے. ٹھیک ہے نا؟ میں بنیادی طور پر کاپی کیا گیا تھا اور کوڈ چسپاں اور صرف tweaking کی متغیر کے نام. اور، میرے خدا، آپ نے تو، تین نہیں عمر، لیکن 10، یا 100، یا اس سے بھی 6،500 انڈرگریجویٹ، مثال کے طور پر. یہ خاص طور پر کرنے کے لئے نہیں جا رہا ہے خوبصورت کوڈ، یا پائیدار. آپ کی ضرورت کے لئے جا رہے ہیں پروگرام ہر وقت دوبارہ سے لکھنا لوگوں تبدیلیوں کی تعداد. تو شکر، ہماری اصل میں آج کے لئے ages.c فائل، ہم ایک زیادہ ہوشیار حل ہے. سب سے پہلے، میں نے قرضے لئے جا رہا ہوں ، ہم چند ایک بار استعمال کیا جاتا ہے کی تعمیر یہ حاصل کرنے کے لئے، جبکہ لوپ کرنا کمرے میں لوگوں کی تعداد. میں نے ابھی دوبارہ، صارف پریشان کرنے جا رہا ہوں اور پھر، وہ جب تک مجھے دیتا ہے ایک مثبت عدد صحیح ہے کہ (ن) کی قیمت. میں استعمال کیا جاتا ہے کر سکتے ہیں، آخری وقت کے مثبت int حاصل. لیکن ہم اس کی ضرورت نہیں ہے حقیقی کے لئے، تو میں آگے چلے گئے اور اس خیال کو لاگو کر رہے. اب یہاں نیچے، اس نئی چال ہے. تبصرے کے طور پر 27 لائن، میں 26 لائن سے پتہ چلتا ہے میں، ایک صف کا اعلان ہے جس میں سب کی عمر ذخیرہ کرنے کے لئے. تو آپ کو،، ایک int نہیں نہیں حاصل کرنے کے لئے چاہتے ہیں تو دو ints کے، لیکن ints کی ایک پوری چڑھانے. خاص طور پر n صحیح اعداد، تھے ن ہو سکتا ہے 100 ہو سکتا ہے، تین، 1،000 ہو سکتا ہے. نحو، بہت صرف، ہے کا کہنا ہے کہ، کیا آپ کے اعداد و شمار کی قسم چاہتے ہیں؟ آپ کو فون کرنا چاہتے ہیں کیا میموری کے اس حصہ؟ آپ گرڈ فون کرنے کے لئے کیا کرنا چاہتے ہیں کہ اس pictorially کا کی طرح لگتا ہے؟ اور یہاں بریکٹ میں، آپ کا کہنا ہے کس طرح آپ کو صف ہونا چاہتے ہیں. اور اس سے پہلے، جب میں نے کہا نحو، یہاں ایک چھوٹا سا مختلف ہے ہم اب بھی مربع بریکٹ کا استعمال کرتے ہوئے کر رہے ہیں، لیکن میں ایک صف کا اعلان کر رہا ہوں جب، کے اندر تعداد مربع بریکٹ کا مطلب کس طرح آپ کو صف کے لئے چاہتے ہیں. اس کے برعکس، جب ہم نے کی استعمال کر رہے تھے بریکٹ میں ایک لمحے پہلے، ہے، ایک سٹرنگ، حروف کی ایک سرنی، یقینا ہے لیکن آپ کو ایک متغیر کا اعلان نہیں کر رہے ہیں جب، یہاں اس مطلوبہ الفاظ کے ساتھ کے طور پر، آپ کو صرف ہو رہی ہے ایک مخصوص انڈیکس، ایک مخصوص اس صف سے عنصر. ہم جانتے ہیں کہ ایک بار، باقی اس براہ راست ہے. میں سب سے پہلے باہر پرنٹ کرنے کے لئے جا رہا ہوں نئے تو شخص تعداد میں سال کی عمر کیا ہے. میں صرف، شخص ایک نمبر کا کہنا ہے کہ جہاں شخص نمبر دو، شخص نمبر تین. اور میں صرف، ریاضی کر رہا ہوں تو اس طرح عام لوگوں کے، ہم اس کے لئے ایک سے شمار پروگرام، اور نہ صفر سے. پھر میں GetInt کہتے، لیکن میں محفوظ وسطی میں جواب میں بریکٹ. جس سرنی میں i'th عمر ہے. آخری وقت جبکہ ہم علاج تھے تو کیا Zamyla کے نام کے لئے حروف کے طور پر ان باکس، اور دوسروں کو. اب، ان باکس کی نمائندگی 32 بٹس، یا چار بائٹس جس میں ہم محفوظ کر سکتے ہیں ایک int، ایک int، ایک int. جن میں سے سب، پھر، اسی ڈیٹا کی قسم ہے. اب میں کچھ پاگل کرنا، وقت گزر جاتا ہے کی طرح، صرف اس پروگرام لکھنے کا جواز پیش کرنے کے لئے. اور پھر یہاں نیچے، میں پھر iterate کے اب سے ایک سال کہہ صف پر، شخص نمبر ایک کی مرضی کچھ سال کی عمر ہو. اور یہ پتہ کرنے کے لئے math-- میرا مطلب ہے، اس بہت ریاضی پیچیدہ نہیں ہے میں صرف ان کی عمر ایک شامل. بس، ایک بار پھر، اس کا مظاہرہ کرنے کے لئے. بس میں انڈیکس کر سکتے ہیں کے طور پر ایک تار میں، کی، تو عمر کے ایک صف میں کر سکتے ہیں میں انڈیکس، وہاں اس طرح. تو جہاں اس لے جا رہا ہے؟ تو ہم دیکھیں گے، آخر میں، ایک دنوں میں کچھ چیزیں آنے کے لئے. ایک، اس وقت، جب آپ کے اپنے پروگراموں لکھنے، ماریو، لالچی، کریڈٹ کی طرح. آپ کا نام ٹائپ کیا گیا ہے پروگرام اور مارنے درج کریں. اور پھر صارف کی ان پٹ حاصل کرنے کے. GetString کے، GetInt کے ساتھ، getLongLong، یا جیسے. لیکن یہ اس کی حمایت کرتا ہے C باہر کر دیتا ہے کچھ کمانڈ لائن سے ملاقات ہمیں جا رہا ہے جس کے دلائل، اصل میں آپ ٹائپ کہ الفاظ میں حاصل، ٹمٹمانے فوری طور پر، آپ کے پروگرام کے نام کے بعد. ، آپ کو آنے والے دنوں میں تو کیسر کی طرح کچھ ٹائپ کر سکتے ہیں، یا ./caesar اس کے بعد 13 نمبر،. ہم اس کام کو کس طرح نظر آئے گا. یقینا، کیونکہ مسئلہ ہم ہیں، دو سیٹ آپ کو متعارف کرانے کے لئے جا ایک چھوٹا سا کچھ Ralphie تو کی یاد تازہ کارٹوگرافی کے پہلے چیلنج. scrambling معلومات کے فن. یہ، حقیقت میں، بہت ہے Ralphie تو کیا کیا کی یاد تازہ. یہ خفیہ کاری کی ایک مثال ہے الگورتھم، R-O-T 13 ایک ملاقات کی ROT13. جس میں صرف باری باری دکھائے گا کا مطلب ہے کہ حروف تہجی 13 مقامات میں حروف. آپ کو ایسا تو، اب آپ دیکھیں گے ایک واقف جملے، شاید، کیا ہے. لیکن جس طرح ہم نے استعمال کرنے کے لئے جا رہے ہیں اس، بالآخر، اس سے زیادہ عام طور پر ہے. P میں، سٹینڈرڈ ایڈیشن میں، دو سیٹ آپ، خفیہ کار کے ایک جوڑے کو نافذ کریں گے کیسر کہا جاتا ہے، Vigenère کہا جاتا. دونوں گھورنی ہیں اس میں خفیہ کار، آپ کو کسی نہ کسی طرح ایک مختلف خط میں ایک خط تبدیل. اور کیسر سپر آسان ہے. آپ 13 میں شامل، ایک کا اضافہ یا 26 تک کچھ تعداد. Vigenere اس پر کرتا ہے ایک خط کی بنیاد. Vigenere تو، کے طور پر آپ کو نظر آئے گا رپورٹ میں، زیادہ محفوظ ہے. لیکن دن کے اختتام پر کیا ، آپ کو لاگو کیا جائے گا اور P دو سیٹ آپ دونوں کو استعمال کرتے ہیں کہ یہ اہم ہے خفیہ کاری اور ڈکرپشن کے لئے. تبدیل کرنے کے عمل کا حوالہ دیتے ہوئے سادہ متن، کچھ اصل پیغام، بیجلیھ متن، میں جس کچھ خفیہ کردہ ہے. اور پھر اسے دوبارہ خفیہ کشائی. ہیکر ایڈیشن میں، دریں اثنا، آپ کو ہو جائے گا اسی طرح کچھ کے ساتھ فرض سونپا روح میں، ہم آپ کو دے دیں گے جہاں ایک عام لینکس، یا سے ایک فائل، میک، یا یونیکس کمپیوٹر کہا جاتا etsy ایک پوری پر مشتمل ہے جس کے پاس ورڈ، صارف کا نام اور پاس ورڈ کے گروپ. اور ان کے پاس ورڈ کے تمام ہے مرموز، یا سے hashed گیا، تو زیادہ مناسب طریقے سے، بات کرنے کے لئے آپ رپورٹ میں دیکھیں گے کے طور پر. اور ہیکر ایڈیشن کو چیلنج کریں گے اس طرح ایک ان پٹ لے جا کے ساتھ آپ کو، اور پاس ورڈ کریکنگ. اس سے باہر figuring، کیا ہے انسان کے پاس ورڈ اصل میں تھا. یقینا، پاس ورڈ ہے، کیونکہ عام طور پر واضح میں محفوظ نہیں، اور عام طور پر پاس ورڈ اندازہ لگانا مشکل نہیں ہونا چاہئے. کہ اکثر معاملہ نہیں ہے. اور کیا ہم نے سوچا تھا کہ ہے ایک دو منٹ کے ساتھ ختم ایک خاص طور پر نظر پاس ورڈ کے غریب پسند ایک فلم سے آپ کو پیار سے یاد کر سکتے ہیں. اگر نہیں تو، آپ کو کرایہ چاہئے. [ویڈیو پلے بیک] ہیلمیٹ، آپ پریت، کیا ہو رہا ہے؟ تم نے میری بیٹی کو کیا کر رہے ہیں؟ متعارف کرانے کے لئے مجھے -Permit شاندار نوجوان پلاسٹک سرجن، ڈاکٹر فلپ Schlotkin. میں سب سے بڑی ناک کام آدمی پوری کائنات اور بیورلی ہلز. آپ کا مہاراج. -Nose کام؟ مجھے سمجھ نہیں آتا. وہ پہلے سے ہی ایک ناک کام تھا. اس میٹھی 16 موجود تھے. نہیں، یہ آپ کو لگتا ہے نہیں ہے. یہ بہت، بہت برا ہے. آپ مجھے نہیں دیتے ہوائی ڈھال مجموعہ، ڈاکٹر Schlotkin دے گا آپ بیٹی اپنے پرانے ناک واپس. - [ہاںفتے ہوئے] Nooooooooooooo. کہ تم کہاں سے حاصل کیا؟ ٹھیک ہے. میں بتاتا ہوں، بتاتا ہوں. نہیں، والد صاحب، کوئی. تم نہیں کرنا چاہئے. -You're میرے عزیز. میں اپنے نئے ناک کی کمی محسوس کریں گے. لیکن میں انہیں بتانا نہیں کرے گا مجموعہ کوئی بات نہیں کیا. اچھی طرح -بہت. ڈاکٹر Schlotkin، تمہاری سب سے بری کرنا. -My خوشی. کوئی! رکو، رکو. میں بتا دونگا. میں بتا دونگا. میں نے یہ کام جانتا تھا. ٹھیک ہے، مجھے دے دو. مجموعہ میں سے ایک ہے. ون. ون. -Two. -Two. -Two. تین. تین. تین. چار. چار. چار. پانچ. پانچ. پانچ. مجموعہ میں سے ایک ہے تو، دو، تین، چار، پانچ. یہ بیوکوفی مجموعہ میں نے کبھی اپنی زندگی میں سنا ہے. بات یہ ہے کہ ایک کی طرح ہے بیوکوف اس کے سامان پر ہوگا. ، مہاراج آپ کو شکریہ. [ریموٹ کلکس] آپ کیا کیا؟ میں نے دیوار دیا. نہیں، تم نے نہیں کیا پوری فلم کر دیا. مجھے ہوگا غلط بٹن دبایا. ٹھیک ہے، اسے واپس رکھ! فلم واپس رکھو! جی ہاں، سر! جی ہاں، سر. کی، آرنلڈ جانے-چلو. ، گریچن آو. کورس میں گا پتہ اس کے لئے آپ کو بل کرنے کے لئے ہے. ٹھیک ہے؟ یہ کام کیا؟ بادشاہ کہاں ہے؟ یہ،، سر کام ہم مجموعہ ہے. عظیم. اب ہم ہر آخری سانس لے سکتے ہیں سیارے Druidia سے تازہ ہوا کے. مجموعہ کیا ہے؟ ایک، دو، تین، چار، پانچ. ایک، دو، تین، چار، پانچ؟ جی ہاں. یہ حیرت انگیز ہے. میں ایک ہی ہے میرا سامان مجموعہ. کے لئے 1 Spaceball کو تیار فوری طور پر روانگی. جی ہاں، سر. کو تبدیل میرا سامان مجموعہ. [دروازے بند صوتی] [دروازے کی جیل ہیلمیٹ مارنے] -Ahh. [END ویڈیو پلے بیک] DAVID J. MALAN: اس کے لئے ہے CS50، ہم اگلے ہفتے آپ کو نظر آئے گا. راوی: اور اب، گہرے Daven Farnham کی طرف سے خیالات،. DAVEN FARNHAM: C میں کوڈنگ ہے سکریچ کے مقابلے میں بہت زیادہ مشکل. printf کے، سکریچ ایک جھوٹ تھا. [ہنسی SOUNDBITE]