[Powered by Google Translate] [2 ہفتہ جاری،]
[ڈیوڈ J. Malan، ہارورڈ یونیورسٹی]
یہ [CS50 ہے. CS50.TV] -
ٹھیک ہے. یہ CS50 ہے، اور یہ 2 ہفتے کے آخر ہے.
اگر آپ اس وقت کے ارد گرد بھوک کل کی توقع ہے،
جانتے ہیں کہ ہم ایک چھوٹے سے گروپ کل جمعرات، 1:15 PM منعقد کرنے جا رہے ہیں.
اس یو آر ایل یہاں ہے اگر آپ پر RSVP کرنا چاہتے ہیں.
خلائی محدود ہوتی ہے، لہذا براہ مہربانی اگر جب تک آپ اس کو بھرنے کے فارم کی طرف سے بھرا ہوا ہے معاف کریں.
ایک اور یو آر ایل، اگرچہ، دلچسپی کا باعث ہو سکتا ہے یہ ہے.
صرف ایک ماہ کے وقت کے بارے میں، کورس دستیاب کرایا جا رہا ہے
زیادہ موٹے طور پر edX کے ذریعے، جس کے ذریعے انٹرنیٹ پر لوگوں کے ساتھ کی پیروی کرنے کے قابل ہو جائے گا،
نصاب میں کافی فعال طور پر حقیقت میں مشغول ہے.
وہ CS50 آلات اور CS50 کا استعمال کریں گے بحث
اور مختلف سافٹ ویئر کے اوزار ہے کہ ہم نے پہلے سے ہی کیا گیا ہے اس سمسٹر کا استعمال کرتے ہوئے کے سب سے زیادہ.
اور اقدامات میں سے ایک ہم ایک استعمال کے طور پر اس سال پر لے جانا چاہتے ہیں تو
یہ دیکھنے کے لئے ہم کس طرح زیادہ مواد کا ترجمہ کر سکتے ہیں
بات اور تحریری زبانوں میں.
تو اگر آپ کو اس منصوبے میں حصہ لینے میں دلچسپی ہو سکتی ہے
ہم نے کورس لیکچر کے لئے جس کے تحت انگریزی ٹرانسکرپٹس اور سب ٹائٹل فراہم کرے گا
شارٹس اور سیمناروں اور حصوں اور اس طرح،
اگر آپ روانی سے بات یا روانی سے کسی اور زبان لکھنے،
ہم آپ کو اس منصوبے میں اترنے کی محبت جس میں آپ ویڈیوز میں سے ایک یا اس سے زیادہ پر لے جائے گا،
ایک زبان ہے تم بہت اچھی طرح سے جانتا ہوں میں ان کا ترجمہ ہے.
>> آپ کے انٹرفیس کا احساس دیتے ہیں، اس ویب پر مبنی یوزر انٹرفیس ہے
کہ ہم جو بنیادی طور پر اس طرح ایک UI پیدا کر دے گا کے ذریعے کریں گے.
یہ آپ کے وزٹرز کا ریکارڈ رکھا پہلے کچھ ہالووین سکھا رہی تھی،
اور سیاہ دائیں ہاتھ کی طرف ان وقت کے ٹکٹ پر اگلے
آپ کو مختلف چیزیں نظر آئے گا جو میرے منہ سے اس دن باہر آئے،
اور پھر آپ کو اس کے نیچے کسی دوسری زبان میں ترجمہ کرنے کے قابل ہو جائے گا
بالکل وہی جو میپنگ کے درمیان اس معاملے میں ہے، انگریزی اور ہسپانوی کا کہنا ہے کہ.
تو یہ اصل میں ایک بہت ہی صارف دوست آلہ ہے.
تم اور تیزی سے آگے کی بورڈ شارٹ کٹس کے ساتھ ماضی بہت آسانی سے کر سکتے ہیں.
اگر ایسا ہے تو آپ کو اس کے استعمال میں حصہ لینے اور کرنا چاہتے ہیں تو آپ کے الفاظ نے دیکھا اور پڑھا
وہاں لوگ ہزاروں کی طرف سے ممکنہ طور پر، براہ مہربانی، بلا جھجھک شرکت.
پیر سے بلی کے بچے کے بارے میں ایک لفظ.
ایسا نہ ہو کہ ہم نے ایک حد سے زیادہ ڈراونا پیغام بھیجا ہے، اس کا احساس کرتے ہیں، کے طور پر دفتری اوقات تجویز ہے
اور حصے تجویز ہے، کورس کے ڈیزائن بہت زیادہ ہے
طلباء اور مسئلہ سیٹ کے ذریعے تعاون کام کی بات کر
اور مل کر مسائل، اور واقعی لائن صرف نیچے آتا ہے،
پھر کام بالآخر پیش آپ اپنے ہونا چاہئے.
اور اس طرح بہت ایمانداری سے، یہ دفتری اوقات میں مکمل طور پر عام ہے،
یہ مکمل طور پر بھی کی توقع، کچھ تمہارے ساتھ دوست کے ساتھ بات.
>> اگر وہ یا وہ کسی موضوع کے ساتھ جدوجہد کر رہی ہے اور آپ کی طرح ہیں،
"اوہ، ٹھیک ہے، میں آپ کو کوڈ کے کچھ لائن کی ایک جھلک ہے کہ میں نے لکھا ہے،" ٹھیک ہے،
ایسا ہوتا ہے، اور یہ کہ بہت سازگار سیکھنے کے عمل کے ساتھ ہے، مجھے لگتا ہے،.
کہاں لائن کو پار کر ہو جاتا ہے ہے جب سر کی طرح tilted ہے بہت اور کے لئے یہاں
یا واقعی اس کے لئے منٹ ہے آپ کے دوست کے لئے ایک کو غیر مسدود کرنے کا موقع ہے،
اور یقینا جب چیزوں کا تبادلہ کرنے کے لئے، ای میل اور ڈراپ باکس اور طرح کے ذریعے
بھی وہاں لائن ہے.
تو تمام اسباب کی طرف سے آرام دہ اور پرسکون محسوس کرتے ہیں اور لگتا ہے کہ دوستوں کے ساتھ بات چیت کی حوصلہ افزائی کی
psets اور زیادہ کے بارے میں اور ہم جماعتوں کے احساس اور یہ کہ جو آپ کو بالآخر پیش
آپ کی تخلیق اور کسی کی مصنوعات واقعی ہونا چاہئے.
اور pset2 ڈومین کے مخصوص مسائل میں سے ایک،
جو دیر کل رات باہر آئے گا، خفیہ نگاری کی دنیا میں کودو ہے،
جس میں خفیہ کاری یا scrambling معلومات کے فن ہے،
اور یہ بالآخر سیکورٹی کی دنیا سے متعلق ہے.
اب، ہم میں سے سب سے زیادہ کے لئے سیکورٹی کافی اشیاءہوسکتی میکانزم کی شکل میں آتا ہے.
ہم سب کو صارف نام اور پاس ورڈ ہے،
اور ہم سب بہت خراب صارف کا نام اور پاس ورڈ ہے، امکان سب سے زیادہ ہے.
>> اگر آپ کا پاس ورڈ ایک سے زیادہ ویب سائٹ پر ایک ہی ہے، جو شاید سب سے اچھا خیال نہیں ہے،
کے طور پر کی سمسٹر کے آخر کی طرف ہم بات کریں گے.
کوئی مذاق نہیں ہے - - اگر آپ کے پاس ورڈ میں ایک چپچپا نوٹ کے وزٹرز کا ریکارڈ رکھا جائے گا آپ کے مانیٹر پر
وہ بھی ضروری ہے بہترین ڈیزائن لیکن کافی عام رجحان نہیں ہے.
اور، اگر آپ خفیہ نگاری کا استعمال نہیں کر رہے ہیں آپ کے پاس ورڈ کو خفیہ کرنے کے لئے
وہ خاص طور پر کمزور ہیں.
تو اگر آپ کو لگتا ہے کہ آپ سپر ایک خفیہ لفظ دستاویز رکھنے کی طرف سے کیا جا رہا ہے کر رہے ہیں ہوشیار
کہیں آپ کی ہارڈ ڈرائیو پر اپنے تمام پاسورڈز کی ہے
لیکن یہ ایک فولڈر میں ہے کہ کسی میں دیکھو، وہ بھی ایک بہت محفوظ طریقہ کار نہیں ہے جا رہا ہے.
اور تو کیا pset2 متعارف کرائے گا، خفیہ نگاری کے اس فن ہے
اور معلومات scrambling تاکہ پاس ورڈ طرح چیزیں زیادہ محفوظ ہیں.
یہاں سیاق و سباق یہ ہے کہ غیر محفوظ ڈیٹا کے ساتھ
خفیہ اور اس جدوجہد کا موقع آتا ہے.
اور اس طرح یہ، مثال کے طور پر، ایک خفیہ کردہ پیغام کی ایک مثال ہے.
یہ اصل میں انگریزی میں کچھ کہتے ہیں، لیکن یہ واضح طور پر مکمل طور پر واضح نہیں ہے.
اور ہم آج مکمل دائرے میں آنے کے علاوہ چڑھانا کیا یہ خفیہ پیغام ہے گے.
لیکن چیزیں کمپیوٹر کی حقیقی دنیا میں جیسے وہ انگریزی جملے ہو سکتا ہے بھی نہیں دیکھو.
مثال کے طور پر، یہ ہے جو آپ کو ایک معیاری لینکس یا میک یا UNIX کمپیوٹر پر تلاش کر سکتے ہیں
ایک فائل میں ایک بار تھا صلی اللہ علیہ وسلم ایک وقت قرار دیا پاس ورڈ فائل ہے.
>> آج کل یہ دوسرے مقامات پر منتقل کر دیا گیا ہے.
لیکن اگر آپ کو ایک ایسا نظام پر صحیح جگہ میں دیکھو، تم نہ صرف اپنے صارف نام نظر آئے گا
یا سسٹم پر دوسرے لوگوں کی ہے، لیکن آپ کو ان کے پاس ورڈ کی ایک خفیہ کردہ ورژن دیکھیں گے.
درحقیقت لفظ وہاں crypt تجویز کیا گیا ہے کہ مندرجہ ذیل چیزیں خفیہ ہے،
اور بظاہر بے ترتیب حروف اور حروف اور اعداد کا یہ سلسلہ اور وغیرہ
اور صرف عام طور پر کوئی راز جان کر decrypted کیا جا سکتا ہے ہے -
ایک خفیہ لفظ، ایک خفیہ نمبر -
اور یقینا کسی قسم کی بالآخر فوڑے خفیہ نگاری نیچے کے فن پر اعتماد کرتے ہیں،
اور ایک ایسی چیز ہے کہ کسی اور کا نہیں کرتا جانے
تو ہم آج تھوڑا تفصیل سے اس کی اور pset میں آنے کی کریں گے.
اور اب پاس / ناکام پر ایک لفظ.
تم میں سے بعض کو خاص طور پر اس صورت حال میں جبکہ pset1، آلات میں dived ہے،
اور خود کے لئے ایک بہت ہی نئی دنیا کا احساس، کہ کوبٹھاوں اور الجھن
اور صرف تکنیکی مشکلات بہت متوقع ہیں،
، خاص طور پر پہلی pset، جہاں صرف اتنا نیا ہے کے ساتھ
LS اور سی ڈی سے واقف ہو رہی ہے اور ان تمام arcane حکم
اور ایک نیا ماحول ہے، اور یہ کہ اصل مال اور خود پروگرامنگ سے الگ ہے.
تو بھی احساس ہے کہ یقینی طور پر دفتری اوقات ایک کی حمایت کے ڈھانچے کے طور پر موجود ہیں.
>> حصے میں اس آنے والے اتوار کو شروع کرتے ہیں.
لیکن سب سے اہم بات یہ ہے کہ، اگر آپ محسوس کر صرف یہ ہے کہ اس دنیا میں آپ کے لئے نہیں کر رہے ہیں
احساس ہے کہ یہ واقعی وقت لگے ہے.
اور یہ اس موقع کے لئے سال پہلے ایک کلاس پاس کرنے / ناکام نہیں تھے میرے لئے،
سکوئر سے، میں نے کبھی سوچا بھی نہیں ہے کلاس روم میں قدم.
اور آپ اسے تبدیل تک، کا کہنا ہے کہ کر سکتے ہیں، پانچویں کورس کے پیر
، اگر ایسا ہے تو آپ کو اب کنارے پر ہو کسی دوسرے کے پانیوں میں، کہ بجائے سر مکمل طور پر احساس
کرتے ہیں ضرور / ناکام گزر کو تبدیل کرنے کے بارے میں غور کریں.
ایک بار پھر، واقعی یہ ثقافت نہیں یہاں چیزیں لینے کے ہارورڈ میں گزر / ناکام
کیونکہ سب واقعی یا overachieve پر، حاصل کرنے کے لئے چاہتا ہے
لیکن سچ کہوں تو، یہ کچھ کرنے کی کوشش کے ایک شاندار طریقہ ہے
جو آپ سے واقف نہیں، اور ہو سکتا ہے آپ زیادہ تر صورتوں میں کیا کر رہی ہوں، ٹھیک ہے،
شاید اپنے حیرت بہت ہے.
اور زیادہ ٹھوس لحاظ سے، جو مجھے لگتا ہے کہ گزر / عام طور پر ناکام ہے،
خاص طور پر اس صورت حال میں جبکہ آپ pset0 کے ساتھ تجربہ ہو سکتا ہے،
اگر آپ کچھ pset میں 10 گھنٹے، 15 گھنٹے، 25 گھنٹے میں ڈال دیا
اور آپ کو صرف دیوار کے خلاف اپنے سر کر رہے ہیں پیٹنے اور یہ انتہائی رات کو ہو رہا ہے دیر
لیکن آپ کو راستے سے pset 90 فیصد لیا ہے اور تمہیں صرف ایک بات سمجھ نہیں کر سکتے ہیں،
ناکام / پاس واقعی اس طرح ایک طبقے کی برتری لیتا ہے دور
آپ جہاں الگ الگ کر سکتے ہیں اور خوشی، کا کہنا ہے کہ "ٹھیک ہے، مجھے معلوم ہے کہ یہ درست نہیں ہے،
لیکن میں نے اس پر اپنے گدا کام کیا دور میں جہاں یہ ختم ہونے کے ساتھ بہت خوش ہوں، "
اور اس پاس کے لئے توقعات پر پورا اترنے / ناکام ہو جائے گا.
تاکہ ذہن میں رکھنے کی ہے. ٹھیک ہے.
>> ، تم میں سے وہ لوگ جو ہارورڈ یونیورسٹی کے وائی فائی کا استعمال کرنے کی جدوجہد میں مصروف ہے تو
جانتے ہیں کہ ایک CS50 SSID، ایک وائی فائی کنکشن ہے، کے ارد گرد تیرتا ہے
کہ آپ کے لئے بہتر قسمت ہو سکتا ہے.
یہ ایک چھوٹا سا وڈمبنا ہے کہ اس کے لئے پاس ورڈ ہے، اگر آپ کو اس سے منسلک کرنے کی کوشش کریں کرنا چاہتے ہیں
اور ہمیں معلوم ہے کہ اگر یہ بہتر نہیں ہے - - بہتر رفتار کے لئے 8 12345، تمام طریقہ ہے
کیونکہ 8 5 سے زیادہ محفوظ ہے.
لہذا اگر آپ کو پاس ورڈ وائی فائی کی ضرورت ہے، CS50 wirelessly یہاں مربوط، 12345678،
اور CS50 پر عہدے کے بارے میں بات اگر آپ کے پاس ابھی تک وقفے وقفے سے رابطے کے مسائل ہیں،
اور ہم اختیارات ہے کہ اس جگہ کے لئے پتہ رکھا جائے گا. ٹھیک ہے.
خاص طور پر تم میں سے ان لوگوں کو جو پرستار ہر چیز ایپل کے لڑکے یا لڑکیاں ہیں تو ایک فوری جھلکی.
کیا میں نے چند سال سے واپس کھودا اس فائل کو یہاں تھا، iUnlock.c،
صرف کی قسم زیادہ مکمل اور زیادہ پیچیدہ بنانے کے لئے
کچھ زیادہ بنیادی C پروگرام ہم لکھ رہا ہوں.
تو میں نے اس فائل کو کھولا، iUnlock.c. یہ آج کے لئے لیکچرز کے صفحے پر دستیاب ہے.
بائیں ہاتھ پر آپ کے افعال میں سے ایک لمبی فہرست نظر آتا ہے.
تو فیلو جو اس نے لکھا کے افعال میں سے ایک بہت، صرف مرکزی سے زیادہ لکھا.
انہوں نے لائبریریوں کے ایک مکمل جھوبڈ یہاں کیا کرتے تھے، اور اگر ہم طومار کر شروع کے ذریعے،
یہ اصل میں ہے اصل فون کے لئے بہت پہلے کریک، مجھے یقین ہے، ہے.
>> جو جب آپ اصل فون باگنی چاہتے تھے، AT & T سے untether کا مطلب ہے کہ
اور اصل میں اس پر خصوصی سافٹ ویئر انسٹال کریں اور چیزیں کہ ایپل لوگوں کو کرنا نہیں چاہتے تھے،
کسی کو معلوم کرنا کہ وہ کس طرح سافٹ ویئر کی خرابی کا استحصال کر سکتا ہے وقت لگا،
- iUnlock.c غلطیوں، کیڑے ایپل سافٹ ویئر میں، اور اس طرح پیدا ہوا تھا
کہ اگر آپ کو آپ کے کمپیوٹر پر مرتب کیا گیا اور ایک موبائل پر اسے نصب
جو آپ کے کمپیوٹر کے ذریعے، کا کہنا ہے کہ، ایک USB کیبل سے منسلک کیا گیا تھا،
یہ آپ کو آپ کے فون پر انتظامی یا جڑ استحقاق دے گی
اور آپ کو بہت زیادہ جو کچھ بھی تم چاہتے ہو.
اور اس طرح اس دلچسپ بلی اور ماؤس کھیل رہا ہے
ایپل اور خاص طور پر دنیا کے باقی وہ کے درمیان بہت سے کمپنیوں کی طرح
ان کی چیزیں نیچے تالا لگا تاکہ تم اس کے ساتھ ہی کیا جو وہ ارادہ رکھتے ہیں کر سکتے ہیں کرنے کی کوشش کریں.
لیکن اس طرح لوگوں اور کم سطح کے تفصیلات کی تفہیم کا شکریہ -
اور اس معاملے میں C پروگرامنگ - اور واقف تشکیل کی بہت
کہ ہم کھیلنا شروع کر دیا ہے، تو آپ کو واقعی ہارڈ ویئر بیعانہ کر سکتے ہیں
ایک انداز میں آپ کو دیکھ کر صحت مند اور کچھ کارپوریٹ ہستی ضروری نہیں ہے.
تو مثال کے طور پر، مجھے پتہ نہیں یہ سب کیا کر رہی ہے،
لیکن GetVersion بہت براہ راست آواز
ہے اور ایسا لگتا ہے جیسے یہ ایک تقریب میں ہے کہ اس شخص نے لکھا ہے.
یہ کچھ طرح کی ایک دلیل کے طور پر عددی لیتا ہے، کچھ بھی واپس نہیں کرتا ہے،
لیکن لوپ کے لئے یہاں اور اگر حالت، حالت وقفے اگر لوپ ظاہر
اور کسی نہ کسی طرح ورژن کی تعداد سے متعلق ہے، اور اگر ہم ذیل میں سکرال،
اگرچہ ان مطلوبہ الفاظ میں سے ایک بہت کچھ کے نئے ہونے جا رہے ہیں.
اور یہاں کے افعال میں سے ایک پوری بہت ہم نے کبھی نہیں دیکھا ہے اور کبھی نہیں دیکھ سکتا ہے
سمسٹر کے دوران.
>> دن کے آخر میں، یہ ایک ہی اصول اور منطق مندرجہ ذیل ہے کہ ہم کیا گیا ہے کے ساتھ کھیلنے کے ابھی تک.
تو یہ اب تک بھی آپ کے فون 3s یا 4s یا جلد ہی 5s ان دنوں ٹوٹ پرانی ہے،
لیکن معلوم ہے کہ یہ سب بہت اس دنیا سے حاصل کیا ہے کہ ہم میں dived ہے.
چلو تھوڑا سا زیادہ سادہ مثال کے طور پر ایک نظر ڈالیں:
اس میں سے ایک، صرف کچھ نحو کے ساتھ کرنے کو گرم اور بھی کچھ دیگر ڈیٹا کی قسم
کہ ہم کے بارے میں بات کی ہے لیکن ہے C. میں واقعی نہیں دیکھا
یہ ایک ملاقات کی positive1.c فائل ہے، اور سب سے اوپر تبصرے کے مطابق،
یہ صرف کا مطالبہ ہے کہ ایک صارف کو ایک مثبت عدد فراہم.
تو یہ کیا جبکہ ایک لوپ ہے، جو صارف انٹرایکٹو پروگراموں کے لئے بہت اچھا ہے اس کی ایک مثال ہے
، جہاں آپ صارف کو بتانے کی ضرورت ہے کچھ کرنا
اور اگر وہ تعاون نہیں آپ کو ان میں چللاو یا ان کی ان پٹ کو مسترد کرتے ہیں.
پوائنٹ میں کیس: میں لائنیں 24 کے ذریعے 19 کرنے جا رہا ہوں
جب تک صارف نے مجھے نہیں ہے ایک مثبت عدد ہے.
18 لائن پر یہ تفصیل، میں اس پورے looping کی تعمیر کے اوپر کیوں (ن) نے اعلان
22 لائن کے ساتھ جہاں میں واقعی میں (ن) کو حاصل کرنے کے لئے دیکھ بھال کے خلاف ہے؟ جی ہاں.
سکوپ [طالب علم. >> جی ہاں، تو گنجائش کے اس مسئلہ.
اور عام آدمی کی شرائط میں، جو گنجائش سے رجوع کرتا ہے؟
جی ہاں. >> [اشراوی طالب علم کے جواب] >> آپ کو ایک زور کچھ بات کر سکتا ہوں؟
[طالب علم] تم کہاں اس متغیر تک رسائی حاصل کر سکتے ہیں. >> کامل.
تم کہاں کسی خاص متغیر تک رسائی حاصل کر سکتے ہیں.
اور عام طور پر، انگوٹھے کی حکمرانی ابھی تک رہا ہے کہ کچھ متغیر کی گنجائش
سب سے حال ہی میں گھوبگھرالی منحنی خطوط وحدانی ہے کہ تم نے دیکھا ہے کی طرف سے وضاحت کی گئی ہے.
>> اور تو اس صورت میں، اگر میں (ن) کو 22 لائن پر اعلان کی غلطی کی ہے اس لائن کام کریں گے.
میں ایک int حاصل کرتے ہیں، اور میں 22 سطر میں اس متغیر (ن) میں ڈال دیں گے،
لیکن جو کوڈ کے مطابق کوئی اندازہ نہیں ہے میں کس بارے میں بات کر رہا ہوں اب ہوگا؟ >> [طالب علم] 25.
[Malan] 25، اور یہ 24 بدل جاتا ہے کے ساتھ ساتھ کیونکہ یہ اس کیس میں گھوبگھرالی منحنی خطوط وحدانی سے باہر آتا ہے.
تو اذيت دينے والے صرف ایک تھوڑا سا ہے لیکن بہت آسانی سے محض متغیر اعلان کی طرف سے حل
تقریب خود باہر.
آج ہم بعد میں دیکھیں گے آپ کو مزید ایک قدم جا سکتے ہیں
اور تم تھوڑا سست بھی ہو سکتا ہے.
اور یہ عام طور پر سفارش کی گئی ہے نہیں، لیکن آپ کو سست بھی مل سکے
اور عالمی سطح پر ایک متغیر ڈال، ایک تقریب کے، اندر بات نہیں، ایک لوپ کے اندر نہیں،
لیکن فائل میں ہی، آپ کے افعال میں سے سب سے باہر لکھا، جیسا کہ میں نے 15 لائن پر یہاں کیا ہے.
یہ عام طور وسلم frowned ہے، لیکن احساس ہوتا ہے یہ بعض اوقات دیگر مسائل کا حل ہے،
جیسا کہ ہم آخر میں نظر آئے گا.
تو اس طرح اب ہم اسے چھوڑ، لیکن چلو دیکھیں اگر ہم اس کو دوبارہ سے لکھنا کر سکتے ہیں کریں گے
صرف خود تھوڑا مختلف کا اظہار کرتے ہوئے شروع کرنے کے لئے.
، صرف صاف ہو جائے، یہ پروگرام positive1 ہے.
مجھے آگے یہاں جاؤ اور میرے ٹرمنل ونڈو میں positive1، درج کریں.
ٹھیک سے آگاہ کریں. میں positive1 چلانے کے لئے، مارا درج کریں کی جا رہی ہوں.
میں درخواست کرتا ہوں کہ تم نے مجھے ایک مثبت عدد صحیح دے. میں -1 کہیں گے. یہ کام نہیں کیا.
0، 99. یہ کام کرنے لگتا ہے.
ہو سکتا ہے کہ سب سے زیادہ سخت نہیں ٹیسٹ، لیکن کم از کم یہ ایک اچھا وویک چیک
کہ ہم صحیح راستے پر ہیں.
>> تو اب ہم آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور اس کا ورژن 2 کو کھولنے،
اور کیا مختلف پہلے سے ہی ہے؟
یہ ایک ہی بات کو لاگو کرتی ہے، لیکن ہے کہ واضح طور پر مختلف اس وقت کے طور پر باہر سے کود ہے؟
سبز رنگ میں یہ bool. یہ سبز، اس bool، جس میں ایک ڈیٹا کی قسم ہے کے طور پر جانا جاتا ہے کے مطلوبہ الفاظ میں روشنی ڈالی ہے.
یہ سی کے تمام ورژن میں نہیں آتی تعمیر
آپ کو ایک مخصوص لائبریری کو شامل کرنے کی ضرورت ہے.
ہمارے معاملے میں، میں CS50 لائبریری شامل ہیں تاکہ ہم bool پر رسائی حاصل ہے.
لیکن 18 کی لائن میں، ہم بولین یہاں قدر کہا جاتا شکر گزار ہیں.
میں یہ کچھ بلا سکتی تھی، لیکن میں اس کے شکر گزار کہا
صرف کی قسم کچھ semantic مطلب تبلیغ.
تو ابتدائی طور پر 18 لائن پر، میں بظاہر شکر گزار نہیں ہوں
کیونکہ بولین شکر گزار قدر 18 سطر میں جھوٹے initialized ہے.
اور پھر یہ لگتا ہے کہ میں 21 لائنوں میں یہاں 23 کے ذریعے کیا ہے
ہے، میں صرف قسم میری منطق کو دوبارہ ہے.
22 لائن میں تو کوئی فعل مختلف، لیکن اب میں چیک کرنے کے لیے اگر int صارف فراہم کی ہے
0 سے بڑا ہے، تو میں صرف حقیقی کا شکر ادا کی قدر تبدیل کریں.
اور مجھے ایسا کیوں کرتے ہیں؟ کیونکہ 25 سطر میں، بظاہر میں ایک شرط چیک کرنے کے لیے جا رہا ہوں.
اس لوپ کو کیا جبکہ شکر گزار باطل ہے.
لہذا میں 1 ورژن کے لئے ایک متبادل کے طور پر اس کی تجویز پیش کی
کیونکہ اس میں کم از کم تھوڑا زیادہ بدیہی شاید ہے، اسے تھوڑا انگریزی میں زمین ہے.
تو مندرجہ ذیل کرتے ہیں جبکہ آپ کے شکر گزار ہیں یا نہیں جبکہ شکر گزار باطل ہے.
اور اس وقت بھی میں بظاہر یاد ہے صارف میں ٹائپ کی پرواہ نہیں کرتے
نوٹس کیونکہ کوئی متغیر (ن)، تو اصل میں، وہاں ایک چھوٹی سی سفید جھوٹ ہے.
>> فعل، پروگرام تھوڑا سا مختلف ہے، ایک بار ہم نے اس کے سب سے نیچے دیئے حاصل کرنے کے لئے
کیونکہ مجھے یاد نہیں کیا (ن) ہے رہا ہوں.
لیکن میں یہاں کا مظاہرہ کرنا چاہتے تھے بھی ہے کہ اگرچہ ہم نے GetInt دیکھا ہے
اور کیا جا رہا ہے ایک دائیں ہاتھ کی طرف پر استعمال کیا جاتا ہے GetString علامت اس طرح اب تک برابر
تاکہ ہم قدر، تکنیکی طور پر، جو سختی ضروری نہیں ہے یاد.
اگر، جو بھی وجہ سے آپ کو صرف قیمت کو بچانے کے لئے کی پرواہ نہیں ہے کے لئے
تم صرف قیمت چیک کرنے کے لیے، دیکھیں گے کہ ہم GetInt یہ صرف لکھ سکتے ہیں کرنا چاہتے ہیں،
کھلی قوس، قوس.
یہ فنکشن ایک قدر واپس جا رہا ہے، کے طور پر ہم کہہ رہے ہیں.
کیا آپ اسے دوبارہ ایک int دینے جا رہا ہے.
اور اگر ایسا ہے تو آپ کو ذہنی طور پر یہ کیا ہو رہا کے بارے میں سوچتے ہیں،
GetInt جب میں 99 میں ٹائپ کریں، 99 نمبر واپس،
اور تو conceptually، ایسا لگتا ہے جیسے میرا کوڈ اصل میں یہ تھے.
تو اگر 99 یقینا 0 سے بڑا ہے، تو شکر گزار سچ ہو جاتا ہے،
تو 25 لائن کا احساس اہ، ہم نے کیا ہے کیونکہ میں اب شکر گزار ہوں رہے ہیں،
اور 26 سطر میں، ہم صرف، کا کہنا ہے کہ "مثبت عدد صحیح کے لئے شکریہ!"
جو کچھ بھی یہ ہوا.
اب معمولی syntactic چینی کرتے ہیں، تو بات کرنے کی.
چلو دیکھتے ہیں اگر ہم نے اس تیسرے اور آخری ماڈل کے ساتھ positive3 میں 25 لائن کو صاف کر سکتے ہیں.
>> فرق صرف اتنا ہے جو کوڈ کے مطابق دیکھا؟ >> [طالب علم] 25. >> [Malan] جی ہاں، 25.
اور ہم نے یہ چال نہیں ہے ابھی تک دیکھا، لیکن ہم نے پیر کو فجائیہ نقطہ نظر تھا،
جو کیا کرنا ہے؟ >> [طالب علم] نہیں. نہیں >> یا نفی.
تو ایک بولین قدر اور اس کی قدر پلٹائیں.
جھوٹے یہ سچ ہے کہ باطل ہو جاتا ہے، سچ ہو جاتا ہے.
اس کے تو، میں تجویز کریں گے، یہاں تک کہ کوڈ لکھنے کی ایک چھوٹی سی زیادہ بدیہی طریقہ ہے
کیونکہ میں اب بھی جھوٹے مشکور ابتدا، میں اب بھی مندرجہ ذیل کرتے ہیں،
میں صحیح شکرگزار مقرر وقت آنے پر،
لیکن اب تم واقعی یہ زبانی طور پر بائیں سے دائیں کوڈ کا ترجمہ کر سکتے ہیں،
جبکہ (شکر گزار!)؛ کیونکہ دھماکے یا فجائیہ نقطہ نہیں تصور کرنا،
تو جبکہ شکر گزار نہیں.
تو پھر، ہم SE فی کوئی نئے متعارف کروایا نہیں ہے.
ہم Booleans کے بارے میں واپس بات کی تھی جب ہم سکریچ کے ساتھ ادا کیا،
لیکن اب احساس ہوتا ہے ہم نے بہت سے مختلف طریقوں سے ہماری کوڈ لکھنے شروع کر سکتے ہیں.
تو خاص طور پر pset1 میں اگر آپ کو کچھ پروگرام کو لکھنے کا طریقہ جاننے کی جدوجہد کر طرح کی ہیں،
مشکلات ہیں، آپ کو قسمت میں ہو کیونکہ وہاں کے حل کے کسی بھی تعداد میں ہو سکتا ہے
کہ آپ صلی اللہ علیہ وسلم ہو سکتا ہے.
مثال کے طور پر، یہ صرف پروگراموں میں سے بھی آسان 3 ہے. ٹھیک ہے.
اور اب یاد پیر ہم واپسی اقدار کے ساتھ اس نوٹ پر چھوڑ دیا.
تو ہم بہت ہی پہلی بار کے لئے ایک ایسا پروگرام ہے جو بنیادی ہی نہیں ہے نے لکھا؛
یہ بھی اس کی اپنی مرضی کے تقریب میں ہے کہ میں نے یہاں لکھا ہے.
تو اوپر 31 میں 34 کے ذریعے ایک کیوب تقریب کو لاگو کیا ہے.
یہ پیچیدہ نہیں ہے. یہ صرف ایک * ایک *. اس صورت میں ہے
لیکن کیا اس کے بارے میں ضروری ہے وہ یہ ہے کہ میں ایک کی شکل میں ان پٹ لے جا رہا ہوں
اور میں ایک * ایک * کی شکل میں پیداوار واپس آ رہا ہوں.
تو اب میں صلاحیت ہے، بہت کچھ میں prinf صرف کے ساتھ کیا کرتے تھے جیسے
کیوب تقریب کو فون کر کے اس تقریب کو فون کریں.
>> اور کیوب تقریب کچھ ان پٹ لیتا ہے، اور کیوب کی تقریب کچھ پیداوار واپس.
کے برعکس، printf صرف کچھ کیا.
یہ کچھ ہے کہ ہم پرواہ واپس نہیں کیا، اگرچہ یہ ایک طرف ایک قدر واپس کرتا ہے؛
تم صرف عام طور پر اس کو نظر انداز کرتے ہیں.
Printf کچھ میں نے کیا. یہ پردے پر پرنٹ کی ایک ضمنی اثر تھا.
یہاں اس کے برعکس، ہم نے کیوب تقریب، جس میں اصل میں کچھ واپس ہے.
تو جو لوگ اس سے واقف ہیں ان کے لئے، یہ ایک کافی براہ راست خیال ہے.
لیکن جو لوگ آدانوں میں گزر رہا اور واپس نتائج حاصل کرنے کے اس خیال کے ساتھ کم واقف ہیں ان کے لئے،
ہم صرف کچھ سپر سادہ کرنے کی کوشش ہے.
آرام دہ اور پرسکون کسی مرحلے پر مختصر طور پر آ رہی ہے؟
تم نے تم پر ایک کیمرے کے ساتھ آرام دہ اور پرسکون کے ساتھ ہے. جی ہاں؟ ٹھیک ہے.
آپ کا نام کیا ہے؟ >> [طالب علم] کین. >> کین. ٹھیک ہے. کین، پر آتے ہیں.
کین قسم کی ایک تقریب یہاں ہونے جا رہا ہے.
چلو، آگے بڑھو اور اس کے کیا. چلو، ایک چھوٹا سا پسند ہیں.
آپ سے مل کر اچھا لگا. مرکز مرحلے میں آپ کا استقبال ہے. ٹھیک ہے.
چلو اس بٹن کو یہاں مارا. ٹھیک ہے.
تو یہاں آپ کو ایک جدید چاکبورڈ ہے،
اور میں کیا ہوں اہم تقریب میں مثال کے طور پر ہے،
اور میں نے اپنے ہاتھ میں ایک رکن نہیں ہے.
>> ٹھیک ہے، میں نہیں کہہ سکتا ہے - میں واقعی میں نہیں کس طرح یاد ہے.
میں اچھی کی لکھاوٹ واقعی نہیں ہے،
اور اس لئے میں آپ کو میرے لئے سکرین پر کچھ کو پرنٹ کرنے کے لئے چاہتے ہیں.
میں اہم پروگرام ہے رہا ہوں، اور میں آپ کو اس کا کہنا ہے کہ جا رہا ہوں
میرے چکن شروع میں یہ لکھنے اور پھر آپ کو ان پٹ کو منظور کرتے ہوئے.
تو پاگل ہے اگرچہ اس مشق ہے، کے افعال میں سے تصور اور ایک تقریب پر کال
اور ایک تقریب واقعی فوڑے اس آرہے ہیں.
میں اہم ہوں، میں صرف سکرین پر کچھ printf، اقتباس، unquote لکھا،
میں نے یہ پروگرام چلا رہا ہوں، اور جیسے ہی printf کہا جاتا ہو جاتا ہے،
یہ ایک بحث یا ایک ڈبل قیمت درج کرنے کے درمیان کبھی کبھی پیرامیٹر لیتا ہے.
یہاں یہ دلیل ہے. میں کین پر گزر رہا ہوں.
وہ ایک سیاہ باکس میں سے کچھ بڑی تعداد سال پہلے لکھا ہے
کہ بظاہر صرف جانتا ہے کہ سکرین پر چیزوں کو کس طرح پرنٹ کرنے کے لئے ہے.
تو پھانسی.
یہ برا نہیں ہے. بہت اچھا ہے.
تو اب کین قتل کیا جاتا ہے. کیا اس نے مجھ سے کچھ کے ہاتھ میں واپس کی ضرورت ہے؟
یہ نہیں ہے کہ ہم ابھی تک دیکھا ہے.
ایک بار پھر، printf اصل میں ایک بڑی تعداد واپس کرتا ہے، لیکن ہم اب نظر انداز کرنے جا رہے ہیں
کیونکہ ہم نے اسے کبھی استعمال نہیں کیا ہے. تو وہ کین کے لئے ہے.
اور تو اب اہم پروگرام کا کنٹرول دوبارہ لیتا ہے
کیونکہ کوڈ کے لائن printf، انہیں قابل عمل کیا جاتا ہے.
اور ہم اپنے راستے کے بارے میں جانا، انہیں قابل عمل جو دوسرے لائنوں ہیں.
تو اب ہم ایک تھوڑا سا مختلف مثال کے طور پر کرنے کی کوشش کریں.
اس بار یہاں پہلے سکرین واضح، اور اس وقت ہم cubing تقریب کروں گا،
لیکن اس وقت، میں ایک پیداوار کی قیمت کی توقع ہے.
>> تو آگے بڑھو اور اس کے کیا.
اب میں کوڈ کی ایک سطر ہے جو یہ کہتا ہے کہ ایکس ایکس کے کیوب ہو جاتا ہے ہے.
کوڈ کے مطابق، یاد ہے، اس طرح لگ رہا ہے: X = کیوب (X)؛
تو یہ کس طرح کام کرنے جا رہا ہے؟ چلو آگے بڑھو اور آپ کو ایک سفید سکرین کو دوبارہ دے.
اب میں نیچے X کی قدر لکھنے جا رہا ہوں،
جس وقت میں اس وقت کا ہے، کا کہنا ہے کہ، 2 یہ اتنا آسان رکھنے کے لئے.
میں 2 کی قدر، جو میری قیمت ایکس ہے ایک کاغذ کا ٹکڑا نیچے لکھا ہے.
میں اس کین حوالے. >> اور میں صرف جواب لکھا؟ >> جی ہاں، صرف جواب لکھنا ہے.
ٹھیک ہے. اور اب وہ مجھ سے کچھ واپس ہے. ٹھیک ہے. segue اچھا لگا.
لہذا اب اس نے مجھے دیتا واپس اس کیس میں 8 کی قیمت، اور میں نے اس کے ساتھ کیا کرتے ہیں؟
اصل - چلو دیکھتے ہیں، یہ حق حاصل ہے. میں نے اس کے ساتھ کیا کرنے جا رہا ہوں؟
اب میں اس قیمت کو لینے کے لئے اور اصل میں یہ یاد میں ان اسی بٹس میں جمع کی جا رہی ہوں.
نوٹس لیکن میں یہاں جدوجہد کر کے رہا ہوں.
میں کچھ الجھن میں ہوں کیونکہ جہاں میں اصل میں X کی قدر کرتے ہیں لکھنے،
کیونکہ جو میں نے ابھی کیا ہے وہ جسمانی طور پر ہاتھ کین کاغذ کا ایک ٹکڑا ہے جو 2 قدر تھا ہے،
جس X تھا، اور یقینا، یہی ہے کیا ہوا ہے.
تو یہ پتہ چلتا ہے کہ جب آپ تقریب کہتے ہیں اور آپ کو ایک بحث میں گزر
ہیلو طرح، دنیا یا آپ 2 کی طرح بحث میں گزر
عام طور پر، آپ کو اس دلیل کی ایک کاپی میں گزر رہے ہیں.
اور اس طرح کے طور پر میں نمبر 2 یہاں لکھا اور کین کو اس کے حوالے کر دیا،
اس کا مطلب یہ ہے کہ میں اب بھی 2 قدر کی ایک کاپی کو کہیں ہونا ضروری ہے
کیونکہ یقینا، اب کہ میں واپس ہو گیا 8 قدر ہے، میں RAM میں واپس جانے کی ضرورت ہے
اور اصل میں نیچے 8 لکھنے جہاں میں نے ایک بار نمبر 2.
تو ضعف، میں گزر، لفظی، قدر کی ایک نقل کے اس تصور کو یاد ہے.
>> کین ان کی بات، آپ کے وزٹرز کا ریکارڈ رکھا دیتا کچھ - 8 کی طرح اس معاملے میں ایک قدر -
اور اس کے بعد میں اس کی قیمت کے ساتھ کچھ کرنا ہے اگر میں اس کے ارد گرد رہنا چاہتا ہوں.
تو یہ سب واپس آنا بہت پہلے بھی واقف ہو گا.
آپ اس ڈیمو کے لئے بہت بہت شکریہ، کین. [تعریف]
بہت اچھا کام کیا ہے.
چلو دیکھتے ہیں کہ کس طرح بالآخر بلا کہ ہم یہاں کیا کر رہے ہو تقریب میں سے کچھ سے متعلق ہیں.
آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور ہمیں cubing مثال کے طور پر یہاں واپس لانے.
اگر ہم واقعی اس کے لینے کے شروع کرنا چاہتے ہیں کہ نوٹس
ہم حقیقت یہ ہے کہ تعداد X ہے کہ یہاں میں منظور کیا جا رہا ہے کے احساس کے لئے جا رہے ہیں
کیا اصل میں کیا جا رہا ہے تقریب میں منظور سے مختلف ہے.
تو پھر، کاپی کی طرف سے اس کے پاس صرف ایک لمحے میں بہت germane بننے جا رہا ہے.
چلو کچھ جو حق ابھی تک بہت کام نہیں کرتا پر ایک نظر لے.
میں آگے جانے کے لئے اور ایک تہائی چھوٹی گاڑی، مثال کے طور پر، جو فطرت کی طرف سے غلطی ہے کھولنے جا رہا ہوں،
اور یہ buggy3 کہا جاتا ہے اور یہ ایک گماگمن تقریب نافذ.
یہاں ہم ایک اہم تقریب ہے جو X اور Y منمانے 1 اور 2 initialized بالترتیب ہے.
ہم GetInt استعمال کرتے ہیں، لیکن ہم صرف ایک سادہ ورزش کی ضرورت ہے کر سکتے ہیں،
تو اس 1 اور 2 کے طور پر مشکل کوڈت ہے.
21 لائنوں اور 22 میں، ہم بظاہر X اور Y، فی سطر 1 پرنٹ کریں.
اس کے بعد 23 لائن پر، میں دعوی کرتے ہیں میں ان اقدار کو گماگمن رہا ہوں، ڈاٹ، ڈوٹ، ڈوٹ.
میں بظاہر فون لائن میں ایک تقریب میں 24 نام نہاد سویپ 2 دلائل لیتا ہے.
یہ مکمل طور پر legit کے لئے کام کرتا ہے 2 دلائل لینے کے لئے ہے. ہم یہ دیکھ چکے ہیں printf یہ پہلے سے ہی کرنا ہے.
>> تو سویپ بظاہر X اور Y لیتا ہے، اور کے طور پر اس کا نام تجویز،
مجھے امید ہے کہ یہ ان 2 اقدار تبادلہ ہو رہا ہے.
تو پھر میں لائن پر دعوی کرتے ہیں 25 "تبدیل" اور میں X اور Y کو دوبارہ پرنٹ
مفروضے کے تحت کہ وہ یقینا کیا گیا ہے تبدیل.
لیکن اگر میں واقعی اس پروگرام کو چلانے کے - مجھے ایک ٹرمینل ونڈو کھولنے،
مجھے buggy3 بنانے - جیسا کہ نام سے پتہ چلتا ہے، یہ اچھی طرح سے ختم کرنے کے لئے نہیں ہے
کیونکہ Y جب میں دیکھیں گے کہ ایکس 1 ہے درج کریں مارا، 2،
ابھی تک اور پروگرام کے اختتام پر، وہ اب بھی ہیں، حقیقت میں، وہی.
تو مظاہرے ابھی کین کے ساتھ، جو اصل میں ہو رہا ہے کی بنیاد پر؟
چلو اس سویپ تقریب میں کودو. یہ انتہائی مختصر ہے. یہ صرف طویل عرصے سے کوڈ کا ایک چند لائنوں کے ہے.
لیکن کیا سادہ کین کے ساتھ کو بتایا کہ یہاں کہانی کی بنیاد پر بنیادی مسئلہ ہے؟
سویپ ٹوٹ کیوں ہے؟
[طالب علم] آپ کو ایک کاپی، نہیں متغیر ذخیرہ کرنے کر رہے ہیں.
بالکل. ہم ایک کاپی ذخیرہ کرنے رہے ہیں، خود متغیر نہیں ہے.
دوسرے الفاظ میں، سویپ بظاہر 2 دلائل، ایک int لیتا ہے،
اور یہ منمانے ایک بی اور کہا جاتا ہے،
اور میں یہاں X اور Y، جو بالترتیب 1 اور 2 میں منظور کر لیا ہے،
لیکن مجھے X میں لفظی نہیں گزر رہا ہوں، میں Y میں لفظی نہیں کر رہا ہوں گزر
میں ایکس کی ایک کاپی اور Y کی ایک کاپی کو منظور کر رہا ہوں.
یہ تقریبا جیسے آپ کاپی اور سویپ میں پیسٹ
اقدار کہ آپ یہ اصل میں جوڑتوڑ کرنا چاہتے ہیں.
تو اگر یہ بات ہے، جب میں پروگرام کے آغاز لائن قتل 35 تو 36 ہے،
جب میں 37 لائن کہانی میں اس وقت ملتا ہے، کی قیمت کیا ہے؟
کہانی میں اس وقت، 37 لائن، جو اس وقت کی قیمت ہے؟ >> 1 [طالب علم.
[Malan]، یہ صرف 1، ٹھیک ہو جائے گا، کیونکہ ایکس پہلی دلیل کے طور پر میں منظور کیا گیا تھا
اور یہ تقریب صرف منمانے اپنی پہلی دلیل ایک کو بلا رہا ہے.
اسی طرح دوسری دلیل Y ہے، اور یہ صرف منمانے دوسری دلیل ب ہے بلا ہے.
>> یہ وجود میں ائی اصل میں کافی صرف وضاحت کی ہے. اس کے بارے میں سوچو.
ہم میں سے کوئی بھی شخص جو printf لکھا سے ملاقات کی ہے،
تو ضرور وہ کوئی اندازہ نہیں ہے جو ہمارے متغیر 30 سال بعد بلایا جا رہا ہے.
تو آپ کیا کہتے ہیں افعال آپ لکھ رہے ہیں کہ میں متغیر کے درمیان ایک فرق ہے
اور تم کیا کام کرتا ہے آپ کو بلا یا استعمال کر رہے ہیں میں متغیر کہتے ہیں.
تو دوسرے الفاظ میں، میں میری متغیر X اور Y کے طور پر لکھا ہے،
لیکن اگر کسی سویپ کی تقریب لکھا تھا، وہ یقینی طور پر معلوم نہیں کریں گے
جو میرے متغیر بلایا جا رہا ہے،
تو احساس ہوتا ہے کہ یہی وجہ ہے کہ آپ کے ناموں کی اس duality ہے.
تکنیکی طور پر، میں اتفاق کی طرف سے یہ کر سکتا ہے،
لیکن وہ اب بھی نقول کے طور پر کی جائے گی منظور.
خوبصورت اگر یہ ایک خالص اتفاق ہو گا کہ وہ شخص جو سویپ لکھا
تھا اسی کے نام کا استعمال کیا.
ب تو کہانی میں اس وقت، 37 لائن، 1 ہے، 2 ہے، اور اب میں ان کے تبادلہ پر کارروائی.
سب سے پہلے، مجھے اصل میں یہ بہت زیادہ صرف.
مجھے نہیں پتہ ہے کہ کوڈ کا ان 3 لائنز کر رہے تھے.
مجھے بس یہ کرتے ہیں: B = ایک، ایک = B؛ کیا ہے.
اس وجہ سے ٹوٹا ہوا ہے، منطقی طور پر؟
یہ بدیہی چیز کی طرح ہے، ہے نا؟
ایک ہو جاتا ہے بستر اور بی تو ایک ہو جاتا ہے،
لیکن مسئلہ یہ ہے کہ جیسے ہی 37 لائن executes، ب اور قدر کیا ہے؟
اسی، 1، کیونکہ آپ clobbered ہے، تو بات کرنے کے لئے، آپ B تبدیل ایک کے برابر ہے.
تو ایک بار 37 لائن کو پھانسی دے دی ہے، یہ بہت اچھی بات ہے، اب آپ نمبر 1 کی 2 نقول ہیں
اس تقریب کے اندر، تو جب آپ کو 38 سطر میں نے کہا ہے کہ ب =،
آپ کو اس قسم کی مصیبت میں ہے کیونکہ آپ نے صرف 1 1 رہے ہیں بتائے رہے ہیں.
آپ کی طرح کی قیمت کے بارے میں آپ دیکھ بھال کو کھو دیا ہے.
تو اس کی اصل ورژن میں نوٹس، جو میں نے کیا ہے.
بجائے میں کوڈ کا ایک تہائی لائن ہے کہ اس طرح دیکھا تھا.
میں ایک عارضی متغیر کا اعلان.
>> Tmp ایک عارضی متغیر کے لئے ایک بہت عام نام ہے، اور یہ ایک int ہے
کیونکہ یہ میچ جو میں نے اس کی ایک کاپی بنانے کے لئے چاہتے ہیں ہے.
میں tmp کے اندر کی کاپی ذخیرہ، تاکہ ایک بار 37 لائن کو پھانسی دے دی ہے،
کی قیمت ہے - فوری وویک چیک - ب کی قیمت 1، 2،
اور tmp کی قیمت بھی 1 ہے.
تو اب میں 38 لائن پھانسی.
ایک بار 38 لائن executes، ب کی قیمت پر لیتا ہے. اور بی 2 تھا، تو اب 2 ہے.
ب تو کہانی میں اس وقت، 2 ہے، 2 ہے، اور tmp 1 ہے،
تو اب منطقی طور پر، ہم ب میں صرف plop tmp قدر ہم نے کیا کر رہے ہیں کر سکتے ہیں.
تو ہم نے اس مسئلہ کو حل کیا ہے.
بدقسمتی سے، جب میں نے اس فارم میں اس پروگرام چلاتے ہیں، یہ کسی بھی اقدار کو اصل میں نہیں ہے تبادلہ.
لیکن واضح، کیوں؟
میں صرف ایک لمحے سے پہلے منطقی مسئلہ مقرر کیا،
لیکن پھر اگر میں اس پروگرام چلاتے ہیں، X اور Y کوئی تبدیلی نہیں رہیں گے
پروگرام پر عملدرآمد کے اختتام کی طرف سے.
[اشراوی طالب علم تبصرہ] >> ہم نے کچھ واپس نہیں کیا ہے تو، یہ سچ ہے.
لیکن یہ بدل جاتا ہے وہاں ایک مسئلہ کے تھوڑا سا ہے کیونکہ ابھی تک،
صرف ایک ہی چیز ہے ہم واپس کرنے کے قابل ہو گیا ہے ایک بات ہے، اور یہ سی کی پابندی ہے
تم واقعی میں صرف ایک قدر واپس، جس میں کیس میں یہاں کی قسم پھنس گیا ہوں کر سکتے ہیں
کیونکہ میں ایکس کی نئی قیمت واپس یا جا سکتا ہے، میں Y کی نئی قیمت واپس کر سکتا ہے،
لیکن میں دونوں واپس کرنا چاہتے ہیں.
تو یہاں آنے آسان حل نہیں ہے.
لیکن مسئلہ بنیادی طور پر کیوں ہے؟ کیا ہم اصل میں تبدیل کر دیا ہے؟
[طالب علم] a اور b. >> a اور b.
لیکن a اور b X اور Y، جس کا مطلب ہے کہ ہم صرف اس کام کا سب نے کی کاپیاں ہیں،
ہم صرف 3 منٹ خرچ سویپ تقریب اور ان متغیرات میں سے 3 کے بارے میں بات کر رہے ہیں،
اور یہ کہ تنہائی میں عظیم ہے، بالکل صحیح ہے،
لیکن ایک اور ب کے دائرہ کار صرف ان لائنوں میں ہے.
>> لہذا اگر آپ نے ابھی لوپ کے لئے ایک طرح کے اندر ایک عددی میں لوپ کے لئے اعلان
اسی طرح، اگر آپ کو ایک تقریب کے a اور b کے اندر اعلان کر رہے ہیں کہ آپ نے لکھا ہے،
جس سے وہ صرف اس تقریب کی درست اندر ہیں، جیسے ہی کے طور پر سویپ قتل کیا جاتا ہے کا مطلب ہے کہ
اور ہم 24 سے اوپر 25 لائن سے چلے جاؤ، بالکل X اور Y کی گئی ہے تبدیل نہیں.
تم نے صرف وقت کی ایک پوری بہت متغیر کی کاپیاں گماگمن برباد کیا.
تو یہ پتہ چلا ہے کہ اس کا حل کیا واقعی غیر واضح ہے.
یہ بہت اقدار کو واپس کرنے کے لئے کافی نہیں ہے کیونکہ ہم 1 قدر ہی واپس آ سکتے ہیں،
اور میں واقعی میں ایک ہی وقت میں دونوں X اور Y تبادلہ چاہتے ہیں،
تو ہم اس کے واپس آنے کی جا رہے ہیں.
لیکن اب احساس ہوتا ہے کہ اس معاملے کو بنیادی حقیقت یہ ہے کہ a اور b کاپیاں ہیں سے حاصل کیا
اور وہ ان کے اپنے دائرہ کار میں ہیں.
کسی طرح سے اس کو حل کرنے کی کوشش کریں.
مجھے اصل میں یہاں واپس سکرال کریں اور کھولو، ہے، اس کا ایک چوتھا مختلف، buggy4 کہہ دو.
اس کے بارے میں کیا خیال ہے؟
یہ بھی اسی طرح لیکن آسان اس سے پہلے کہ ہم اس کو حل کرنے میں ایک کوشش کو دیکھنے کے لئے مسئلہ ہے.
اس پروگرام اضافہ بھی کہا جاتا ہے، اور اس بظاہر 1 18 سطر میں ایک X عددی initializes.
مجھے تو دعوی ہے X 1 ہے، میں تو "Incrementing ..." کا دعوی
میں تو اضافہ کہتے ہیں، لیکن اس کے بعد لائنوں 22 اور 23 میں، میں دعوی ہے یہ incremented کیا گیا ہے،
دعوی ہے X اب جو کچھ بھی ہے - 2، شاید - لیکن اس پروگرام چھوٹی گاڑی ہے.
کیا مسئلہ ہے؟
جی ہاں. >> [اشراوی طالب علم کے جواب] بالکل. >>
تو ایکس گیا ہے اعلان 18 لائن پر ظاہر ہے.
یہ اہم گھوبگھرالی منحنی خطوط وحدانی کے اندر ہے.
بہت آسان جواب یہ ہے کہ X یہاں موجود ہے،
تو یہ 32 سطر میں موجود ہی نہیں ہے، اس پروگرام اصل میں بھی مرتب نہیں ہوں گے.
سنکلک جب میں اس کوڈ کو مرتب کرنے کی کوشش کریں آپ کے وزٹرز کا ریکارڈ رکھا میں چللانا جا رہا ہے
کچھ اگھوشیت شناخت کنندہ یا اس اثر سے کچھ کے بارے میں. اصل میں،،، کرنے کی کوشش کریں.
یہ buggy4 بنانا ہے. وہاں ہے.
اوپر 32 میں اگھوشیت شناخت کنندہ 'X' کا استعمال کریں.
اور اصل میں، تو زیادہ واضح آج یہاں ہو سکتا ہے کہ یہ مفید ہے
دفتری اوقات میں اور گھر میں.
>> یاد رکھیں کہ یہ ایک cryptically لکھا تھوڑا ہے.
لیکن حقیقت یہ ہے کہ بجنا ہے ہم پر چللایا، buggy4.c کہہ رہے: 32:5، اصل میں مفید ہے.
اس کا مطلب یہ ہے کہ غلطی کردار 5 عہدے پر 32 لائن پر ہے.
تو 1، 2، 3، 4، 5. یہ حقیقت میں ہے، جہاں مسئلہ ہے.
اور بھی، بھی، دفتری اوقات میں اور گھر میں اس بات کو ذہن میں رکھنا، میں خوش یہاں ہوں.
میں ایک غلطی ہے. یہ نسبتا آسان ہے طے کرنے جا رہا ہے.
لیکن اگر آپ کے پاس زبردست خرابی کے پیغامات کی ایک پوری فل سکرین،
پھر احساس کہ bottommost ایک اوپر ایک کی روگسوچک ہو سکتا ہے.
تو ہمیشہ اوپر سے نیچے سے اپنے کیڑے کا پیچھا
کیونکہ وہاں ایک گلبہار چین کا اثر ہو سکتا ہے
کہ تجویز آپ کو راستہ مسائل سے آپ اصل میں کرتے ہیں ہے.
تو ہم یہ کیسے ٹھیک اگر میرا مقصد X اضافہ کر سکتا ہے؟ >> [طالب علم] عالمی X بنائیں.
ٹھیک ہے، تو ہم X عالمی کر سکتے ہیں.
چلو شارٹ کٹ کہ میں پہلے کے بارے میں خبردار کیا ہے، لیکن heck، ہم صرف ایک فوری حل کی ضرورت ہے،
تو صرف int X یہاں کہہ. X عالمی کرتا ہے.
تو اب اہم ہے اس تک رسائی اور اضافہ اس تک رسائی ہے،
اور اس طرح ہم آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور اب یہ تالیف.
buggy4 بنائیں، درج کریں. اب مرتب لگتا ہے.
آو buggy4 چلانے. اور یہ اصل میں کام کرنے لگتا ہے.
یہ ان چیزوں کو کہ میں کہتا ہوں کہ کیا ہے میں سے ایک ہے، میں کے طور پر نہیں کرتے ہیں،
کیونکہ جیسا کہ میں نے صرف یہاں کیا ہے، عام طور پر،
ہمارے پروگرام بہت زیادہ دلچسپ اور اس سے بہت زیادہ حاصل کرنے کے لئے جا رہے ہیں،
اور اگر آپ کی فائل کے سب سے اوپر دیئے گئے آپ کے زندگی کے مسائل کا حل صرف تمام متغیر ہے، ڈال
بہت جلد پروگراموں horrifically مشکل کا انتظام کیا ملتا ہے.
نئے متغیر کے نام سوچنا یہ مشکل ہو جاتا ہے،
یہ مشکل ہو جاتا ہے اس کو سمجھنے کے لئے کیا متغیر کیا کر رہا ہے،
اور عام طور پر، یہ ایک اچھا حل نہیں ہے.
تو ایسا بہتر ہیں.
ہم ایک عالمی متغیر کو یہاں استعمال نہیں کرنا چاہتے.
>> میں ایکس اضافہ کرنا چاہتے ہیں، تو میں نے ظاہر کر سکتے -
دن کے آخر میں، یہ بیوکوف کہانی کی طرح ہے کیونکہ ہم صرف ایسا -
لیکن اگر میں اس آپریٹر کے بارے میں نہیں جانتے یا کیا میں نے یہ اہم میں ہی تبدیل کرنے کی اجازت نہیں کیا گیا تھا،
اور کس طرح کین اس وقت یہاں میں نہیں کیوب پر عملدرآمد لیکن اضافہ کر سکتا ہے؟
میں اس بات کو یہاں کیسے تبدیل کروں؟ جی ہاں.
[طالب علم] X میں درہ اور پھر لوٹ [اشراوی] >> ٹھیک ہے، اچھا ہے.
تو میں نے X میں کیوں نہیں اور پھر گزر بجائے اسے واپس
بس میں کیوں نہیں کرتے X 1 + واپس.
ایک جوڑے چیزیں یہاں کو تبدیل کرنا ہوگا. میں صحیح راستے پر ہوں.
اور کیا میں موافقت کی ضرورت ہے؟ کوئی اور. جی ہاں.
[اشراوی طالب علم کے جواب]
میں اضافہ کی واپسی کی قسم کو تبدیل کرنے کی ضرورت ہے کیونکہ یہ باطل نہیں ہے.
صفر کا مطلب کچھ نہیں ہے واپس کیا جا رہا ہے، لیکن اب واضح طور پر یہ ہے،
تو اس کی ضروریات کو تبدیل کرنے کی - >> [طالب علم] int.
int کے مطابق جو کچھ بھی میں واقعی میں واپس آ رہا ہوں.
اب کچھ اور اب بھی چھوٹی گاڑی یہاں ہے. جی ہاں.
[اشراوی طالب علم کے جواب] >> [Malan] تو مجھے X اضافہ کرنے کی ضرورت ہے؟
[اشراوی طالب علم کے جواب] >> [Malan] آہ، تو میں ایکس کو منتقل کرنے کی ضرورت ہے.
لہذا میں نے یہ یہاں کرنے کی ضرورت ہے. >> [اشراوی طالب علم تبصرہ]
[Malan] تو پروٹوٹائپ، میں اس کو یہاں تبدیل کرنا ہوگا.
تو یہ ایک int بننا ہے، یہ بن گیا ہے -
ہمم، میں اصل میں ایک بگ ہے یہاں. میں کسی شخص کی یہ پہلی کو ٹھیک ہوں.
یہ اصل میں کیا ہونا چاہئے؟ یہ ایک int کچھ مل گیا ہے.
یہ x ہو، لیکن صاف صاف کر سکتے ہیں، اگر آپ کو آپ کے متغیر X کے سب بلا شروع،
یہ کم سے کم واضح ہے جس جس حاصل کرنے کے لئے جا رہا ہے.
>> تو صرف منمانے میرا مددگار افعال کے لئے ایک مختلف نام دینے کے کنونشن کا انتخاب
افعال میں لکھ رہا ہوں. ہم نے اس کو ایک فون ہے، یا ہم یہ کہہ سکتے ہیں کریں گے -
چلو اس نمبر پر فون بھی زیادہ واضح ہو.
تو پھر میں واپس جو نمبر 1 کے علاوہ ہے،
اور اب میں 1 دوسری چیز کو تبدیل کرنے اور یہاں ایک دوسرے کے یہاں بات ہے.
میں 21 لائن پر پہلے تبدیل کیا ہے؟ >> [اشراوی طالب علم کے جواب]
[Malan] میں یہ x تفویض ہے. میں صرف اضافہ نہیں (X) کال کر سکتے ہیں.
میں بائیں ہاتھ پر X کی قدر تبدیل کرنے کے کی طرف سے جواب یاد کرنے کی ضرورت ہے.
اور اگرچہ X اب یہ ہے کہ بائیں اور دائیں، مکمل طور پر ٹھیک ہے
کیونکہ دائیں ہاتھ کی طرف سب سے پہلے پھانسی ہو جاتا ہے تو بات بائیں ہاتھ میں plopped ہو جاتا ہے -
اس صورت میں ایکس.
اور پھر آخر میں، یہ ایک آسان حل ہے.
یہ صرف کیا نیچے ذیل ہے، int تعداد سے ملنے چاہئے.
تو واقعی پاگل تقریب کے لئے تبدیلیوں کے پورے گچرچھی
لیکن ہیں کہ ہم تیزی سے چاہتا ہوں کے نمائندے.
تو buggy4 ہے. میں کہیں خراب ہے.
اوہ، میرے خدا. 6 لائن ایک پروگرام میں پانچ غلطیوں.
تو کیا 18 لائن پر غلط ہے، کردار 5؟
تو میں اس int، کا اعلان ہے.
چلو دیکھتے ہیں. دوسرے کی غلطیوں کی ایک پوری چڑھانے ہیں.
اوہ، میرے خدا - 19، 18، 21 - لیکن پھر، صرف سکرین واضح، کنٹرول L یہاں،
اور بجنا rerun.
لہذا 5 مسائل اصل میں صرف یہ ہے کہ 1 ہے.
تو اب ہم buggy4 چلانے، درج کریں. واہ، X گیا ہے درست طریقے سے incremented.
ٹھیک ہے. تعداد میں کس طرح اضافہ کرنے کے کوئی سوال؟ جی ہاں.
[اشراوی طالب علم سوال] >> اچھا سوال ہے.
یہ کس طرح ہے کہ میں ایکس نمبر پر اور پروگرام فوری طور پر پتہ چل جائے گا تبدیل کر سکتے ہیں؟
>> ایک بار پھر اس کا اس تجرید کے طور پر لگتا ہے.
تو اگر میں اہم ہوں اور کین اضافہ ہے، واضح طور سے مجھے اس کی پرواہ نہیں کیا کین مطالبہ اس کے رکن ہیں.
مجھے پرواہ نہیں کہ اس نے فون کچھ ہے کہ اس کی فعالیت کے اس پر عملدرآمد کے ساتھ کیا ہے.
یہ ایک پر عملدرآمد کی تفصیل ہے کہ میں، مرکزی، کے بارے میں دیکھ بھال کرنے کی ضرورت نہیں ہے.
اور اس طرح صرف یہ مسلسل تقریب کے اندر تبدیل - نمبر یہاں اور یہاں تعداد -
یہ بہت لمبے وقت کے طور پر recompile لیتا ہے.
اس طرح کی پسند ہے اگر آپ کو لگتا ہے کہ ہم میں سے کے بارے میں بہت سے، تم میں سے ان لوگوں کو ڈرائیور کے لائسنس کے ساتھ
یا جو کارفرما ہے اگر آپ بھی ایک گاڑی میں کارفرما ہے،
ہم میں سے سب سے زیادہ نہیں پتہ ہے کہ کس طرح ایک کار ہڈ کے نیچے کام کرتا ہے ہے.
اور لفظی، اگر آپ کو ڈاکو، ہم میں سے سب سے زیادہ کھولتے ہیں - خود شامل ہیں -
جا رہے ہو سچ میں پتہ ہے جو ہم دیکھ رہے ہیں نہیں،
طرح کی طرح آپ کو یہ حق کی طرح سامان کے ساتھ اب محسوس ہو سکتا ہے.
لیکن ہم دیکھ بھال کس طرح کار کام واقعی نہیں ہے،
ہم اس کی پرواہ نہیں ہے کہ گاڑی کے اندر کی سلاخوں اور pistons اور کیبلز کے تمام
کر رہے ہیں اصل میں کر رہی ہیں.
پسٹن اس معاملے میں یہاں کوئی فرق نہیں پڑتا آپ کیا کہتے ہیں جیسے کچھ تو ہے. ایک ہی خیال ہے.
جی ہاں. >> [اشراوی طالب علم سوال]
اگر متغیر مساج پل کی استعمال پہلے ہیں،
آپ، پروگرامر، انہیں ہر جگہ کو تبدیل کرنے کی ضرورت گے.
یا آپ فائل مینو، لفظی، تو کرتے ہیں اور تلاش کریں، بدل سکتا ہے - اس طرح کچھ -
لیکن آپ کو وہ تبدیلیاں خود بنانے کی ضرورت کے لئے جا رہے ہیں.
تم مسلسل ہونا پڑے گا. >> [طالب علم.] اگر ایک سے زیادہ متغیر ہیں [اشراوی]
یہاں کی طرح ایک خاص حکم، اگر یہ دوسرے نمبر int ہے؟ >> [طالب علم] صحیح.
[Malan] جی ہاں. آرڈر فرق پڑتا ہے جب آپ تقریب کو بلا رہے ہیں.
>> تو اگر میں اضافہ کچھ کوما کچھ کے ساتھ بلا رہے تھے یہاں،
وہاں ایک براہ راست میپنگ ہے.
پہلی متغیر، جو کچھ بھی کہتے ہیں، یہاں پہلی دلیل کی ایک نقل کی جاتی ہے.
معاف کیجئے گا. یہ ایک خانے نہیں ہونا چاہئے.
دوسرے کے ساتھ دلیل لائنوں. تو حکم، جی ہاں، معاملات. ٹھیک ہے.
معاف کیجئے گا. میں زیادہ دیر تک وہاں حاصل کرنے کے لئے راستہ لیا. دیگر سوال؟ ٹھیک ہے.
تو چلو دیکھتے ہیں، اگر ہم اصل میں یہاں کیا جا رہا ہے کی ایک تصویر پینٹ نہیں کر سکتے ہیں
ہڈ کے نیچے، تو بات کرنے کی.
یہ ایک مستطیل ہے کہ آپ کے کمپیوٹر کی میموری کی نمائندگی کر سکتے ہیں ہے.
یہاں تک کہ اگر آپ کو کوئی اندازہ نہیں ہے میموری کس طرح کام کرتا ہے یا کس طرح RAM کام ہے،
کم از کم یہ فرض ہے کہ تم ان دنوں اس کے bunches ہیں.
تم اس کے میگا بائٹ ہے، آپ کو اس کی گیگا بائٹس ہے،
اور ہم 0 ہفتے سے جانتے ہیں کہ صرف ایک بائٹ کیا ہے؟ >> [طالب علم] 8 بٹس.
8 بٹس، ٹھیک ہے؟ تو 8 zeroes اور 1.
تو اگر آپ کے کمپیوٹر RAM کے ایک ٹمٹم، RAM کے 2 gigs ان دنوں ہے،
آپ میموری کا ایک ارب یا 2 ارب بائٹس یا 8 تقریبا ارب یا 16 ارب بٹس
کے اندر اندر آپ کے کمپیوٹر کے.
تھوڑا Wooly ولی مثال کے برعکس، یہ مقناطیسی ذرات نہیں ہے خاص طور پر اب.
تیزی سے - لیپ ٹاپ میں کم از کم - یہ ٹھوس ریاست ڈرائیوز، SSDs ہے،
کہ صرف کوئی منتقل پارٹس ہیں. یہ تمام الیکٹرانک ہے. یہ سب بجلی کی بنیاد پر ہے.
تو صرف میموری کی 1 یا 2 گیگا کہ آپ کی نمائندگی کے طور پر اس مستطیل کے بارے میں سوچو.
>> تو اس میموری کا ایک حصہ ہے.
کمپیوٹر سائنس کی دنیا کی طرح تقسیم
میموری کی مقدار مختلف چیزیں ہیں.
مثال کے طور پر، اگر یہ آپ کے کمپیوٹر کی RAM ہے، جیسا کہ وہاں مستطیل کی طرف سے تجویز پیش کی ہے،
یہ پتہ چلا ہے کہ کنونشن کی طرف سے، آپ کے RAM کے سب سے اوپر دیئے گئے، تو بات کرنے کی،
عام طور پر ہے جو متن کے ٹکڑے بھی کہا جاتا ہے.
وہ 0s اور 1s ہیں کہ آپ نے مرتب کیا ہے.
تو جب ہم کیا a.out ہے میں ہڈ کے نیچے دیکھا ہے،
ان تمام 0s اور 1s،، جب تم نے ایک پروگرام چلائیں
ان 0s اور 1s کہا جاتا RAM کچھ میں آپ کی ہارڈ ڈرائیو سے بھری ہوئی ہیں،
اور وہ RAM میں سب سے اوپر میں ڈال رہے ہیں.
اس دوران، آپ دیگر چیزیں ہیں: ڈیٹا ابتدا، ڈیٹا uninitialize.
میموری کا وہ 2 علاقے اس وقت عالمی متغیر، جو آپ اکثر استعمال نہیں کرتے کا حوالہ دیتے ہیں
لیکن کبھی کبھی اگر آپ ایسا کرتے ہیں، انہوں نے وہاں ساتھ ساتھ ختم.
ماحول متغیر، جو ہمارے پاس زیادہ وقت خرچ نہیں کریں گے، اس کے بعد کچھ دیگر چیزیں ہے
لیکن پھر 2 اہم چیزیں سمسٹر بھر واپس آئے گا،
اسٹیک اور ڈھیر.
تو آپ کے کمپیوٹر کی میموری کا سب سے زیادہ محفوظ ہے جب ایک پروگرام چلا رہا ہے
کسی چیز کے لئے اسٹیک کو فون کیا اور کچھ ڈھیر ملاقات کی.
ہم آج ڈھیر کے بارے میں بات کرنے کے لئے نہیں جا رہے ہیں، لیکن ہم اسٹیک کے بارے میں بات کریں گے.
اسٹیک Mather ہاؤس میں ڈائننگ ہال کھانے کی ٹرے کی بصری جادو مراد ہے
یا، تم جہاں بھی ہو ہو جہاں ہر روز ڈائننگ ہال کے عملے نے انہیں صاف
وہ ان کو منزل سے اوپر پر کتابیں رکھی،
اور اسی طرح، کی یاد میں، وہاں ایک اسٹیک کچھ ڈال کے اس خیال ہے،
ایک اسٹیک کچھ ڈال، ایک اسٹیک کچھ ڈال.
اور کیا ہم اس سے کیا مطلب ہے؟
>> اس تصویر کا صرف کم نصف ہے، آپ کے کمپیوٹر کی RAM میں دو زوم،
مندرجہ ذیل تجویز ہے.
یہ پتہ چلا ہے کہ جب آپ a.out یا خوش طرح ایک پروگرام چلاتے ہیں -
جو بھی پروگرام ہے کہ آپ نے لکھا ہے -
پھر وہ 0s اور 1s آپ کی ہارڈ ڈرائیو، جو ذخیرہ طویل مدتی ہے سے بھری ہوئی ہیں،
وہاں رہتا ہے اس وقت بھی جب آپ کو پلگ RAM میں بھری ہوئی ھیںچو.
RAM ہارڈ ڈرائیوز سے تیز ہے - ہارڈ ڈرائیوز سے چھوٹا ہے -
لیکن یہ پروگراموں جہاں رہتے ہیں جب تم ان سے چلا رہے ہیں.
تو آپ ڈبل میک یا PC پر ایک پروگرام پر کلک کریں، یہ RAM میں ہارڈ ڈرائیو سے بھری ہوئی ہے.
جیسے ہی یہ RAM، راستہ سب سے اوپر دیئے گئے 0s اور 1s جانے میں بھری ہوئی ہے،
نام نہاد متن کے ٹکڑے، لیکن پھر جیسے ہی کے طور پر آپ کے پروگرام اصل میں شروع ہوتا ہے چل رہا ہے،
مرکزی تقریب کہا جاتا ہے اور سب سے اہم، جیسا کہ ہم نے دیکھا ہے، اکثر مقامی متغیر ہے،
ints اور ڈور اور حروف اور طرح کی ہے.
تو اگر آپ کا پروگرام ہے کہ آپ نے لکھا ہے یا پروگرام ہے کہ آپ نے ڈبل کلک کیا ہے
استعمال کیا کچھ متغیر کا اہم اندر
وہ میموری کا اپنے اسٹیک کے سب سے نیچے دیئے گئے ختم، تو بات کرنے کی.
مزید concretely، یہ اصل میں کیا مطلب ہے؟
یہ صرف ہے کہ اگر ہم آپ کے کمپیوٹر میں RAM کی بائٹس کی تعداد کو جا رہے تھے کا مطلب ہے کہ
نوٹس کہ اس بائٹ 0 نمبر ہو سکتا ہے، یہ بائٹ نمبر 1، 2، 3، 4، 5، 6 ہو سکتا ہے،
تمام 2 بلین تک جس طرح سے تمام طریقہ سب سے اوپر ہو جائے گا.
تو دوسرے الفاظ میں، جب ہم بائٹس کی شرائط میں RAM یا میموری کے بارے میں بات کرتے ہیں،
یہ صرف کا مطلب ہے کہ کسی نے فیصلہ کیا ہے کیا میموری کے ان حصوں میں سے ہر ایک کی تعداد.
، لہذا جب آپ ایک int کے لئے 32 بٹیں کی ضرورت ہے یا آپ کو چار کے لئے 8 بٹس کی ضرورت ہے
وہ یاد میں جہاں تک آخر؟
>> Conceptually، وہ صرف اس چیز کے نیچے بلایا اسٹیک میں ختم.
لیکن جو دلچسپ اب ہے جب اہم مطالبہ ایک تقریب -
نامی FOO تقریب، صرف ایک صوابدیدی نام فرض -
کیا ہوتا اہم ہے میموری کی یہ اسٹیک کے سب سے نیچے دیئے گئے ہے؛
FOO اب یاد میں مرکزی کے سب سے اوپر پر لگایا جاتا ہے.
کسی بھی مقامی متغیر کہ FOO conceptually اہم لوگوں کے اوپر کی طرح ختم کر دیا ہے تو.
FOO کو ایک دوسرے سے ملاقات کی بار ایک تقریب کہتے ہیں، اگر ان متغیرات یہاں ختم.
اگر بار کچھ اور، یہاں، یہاں، یہاں کہتے ہیں.
تو ایک پروگرام چلا رہا کرنے کے بارے میں دلچسپ کیا ہے یہ ہے کہ کے طور پر آپ کے افعال فون
اور ان افعال افعال کو فون کریں اور ان افعال کے افعال کا فون،
آپ کو یاد میں اس کے افعال میں سے اسٹیک تعمیر.
اور صرف ایک تقریب کی واپسی میں ایک بار تم اس میموری کے واپس آنے شروع ہے.
تو ایک کمپیوٹر پروگرام میں میموری سے باہر چلانے کا سب سے آسان کے طریقوں میں سے ایک
افعال جو کبھی واپس لکھنے کے لئے ہے.
تو مثال کے طور پر، جان بوجھ کر ایک چھوٹی گاڑی کے پروگرام کے ساتھ زیادہ سے زیادہ کا مظاہرہ.
مجھے آگے بڑھو اور # شامل
int اہم (باطل)،
اور میں جبکہ (2> 1)، جو ہم پر شاید کبھی نہیں بدل جائے گی میں کیا کرنے جا رہا ہوں،
اور اب آپ کے وزٹرز کا ریکارڈ رکھا آگے جا اور printf کرنا.
اصل میں، یہ کم ضعف دلچسپ ہونے جا رہا ہے. چلو، ایسا.
کے لئے int میں = 0، میں 0> - ہم اس غلطی - میں + +.
اور printf یہاں نہیں ہے. پر عمل کیا میں تبلیغ کر رہا تھا.
چلو یہاں ایک طریقہ ہے، باطل کورس، اور ہم میں int کہیں گے،
اور پھر میں printf کہنا جا رہا ہوں - نہیں، چلو اس سے زیادہ دلچسپ بنانے کے لئے.
چلو، اصل میں کچھ بھی نہیں پرنٹ. چلو ایسا کورس ().
ٹھیک ہے. تو یہ چھوٹی گاڑی ہے کیونکہ کیوں؟
میں اس بنا رہا ہوں جیسا کہ میں جا رہا ہوں کیونکہ پروگرام دلچسپی کے کچھ اصل نہیں کرتی.
>> لیکن اس کا مقصد نہیں ہے.
مقصد یہ ہے کہ ایک پروگرام جن کی اہم تقریب کیا، بظاہر ہے کو لکھنے کے لئے ہے؟
خود کو کال کریں. اور اصل میں، ہم لوپ کی ضرورت نہیں ہے.
چلو یہ بھی بہت واقعی بنیادی بگ کے نزدیک نہیں کھو آسان بنائیں.
مین کالز کو کچھ کورس گانے کورس،
تو میں پاگل نے کچھ کیا اور میں کورس کال کورس تھا
کیونکہ میں فرض کیا گیا ہے یہ شاید کسی اور کو نافذ کرنے جا رہا تھا،
اور اب یہ ابھی تک مرتب نہیں ہے. مجھے کیا کرنے کی ضرورت ہے؟
یاد میں پروٹوٹائپ کی ضرورت ہے.
اس لئے میں یہاں باطل کورس کی ضرورت ہے (int میں)؛
لہذا اب اگر میں یہاں نیچے جاتے ہیں - اصل میں، بڑی ونڈو کا استعمال کریں.
چلو آگے بڑھو اور کورس بنانا.
اگھوشیت شناخت کنندہ میں استعمال کریں.
اوہ، یہ پاگل تھا. ہم دلیل کی ضرورت نہیں ہے. چلو ایسا کریں.
میں چاہتا ہوں کہ ہم اس طرح شروع کیا تھا. یہ لکھنا بہت آسان پروگرام ہوتا ہے.
آمدید. اب میرے ٹرمینل دریچہ جانا، بجنا rerun، اور ہم یہاں ہیں.
وہ بہت تیز تھا.
کیا اصل میں صرف ہوا ہے، لیکن؟
اچھا، اب میں پرنٹ لائن تاکہ ہم دیکھ سکتے ہیں کریں گے.
مجھے printf کا کہنا ہے کہ ("میں یہاں ہوں") - کوئی متغیر نہیں. ہم نے اسے اس طرح چھوڑ دیں گے.
مجھے rerun ہے. مجھے کورس rerun.
اور ... پر آئے. جاری رکھتے ہیں.
ایک طرف ایک کے طور پر، کیوں یہ ابھی تک گر کر تباہ ہو گیا ہے نہیں؟
انقطاع غلطی سپر روزہ پہلے ہوا.
[اشراوی طالب علم کے جواب] بالکل. >> تو اس پرنٹ میں وقت لگتا ہے، ہے نا؟
یہ صرف کمپیوٹر حصہ پر زیادہ کام کرتا ہے.
اور اس ہے: انقطاع غلطی ہے.
>> تو توجہ صرف روزہ پروگراموں کو کس طرح چلاتے ہیں.
اگر آپ کو کسی بھی چیز کی، سپر روزہ پرنٹ نہیں کر رہے ہیں.
لیکن ہم ابھی تک اس انقطاع غلطی ہے کیونکہ جو کچھ ہو رہا تھا؟
اگر آپ کو لگتا ہے کہ کس طرح آپ کے کمپیوٹر کی میموری میں رکھی ہے،
اس اہم ہوتا ہے، لیکن یہاں ہم صرف اس کورس کو فون، اور ہم اس کورس کو کہتے ہیں.
اور اب اگر میں اپنے جمالیات حق ہے، یہ تو صرف کورس، کورس، کورس کہنا جا رہا ہے،
کورس، کورس، کورس، کورس، اشتھاراتی nauseum، اور آخر میں کیا ہونے جا رہا ہے؟
اگر بڑی تصویر، لفظی، یہ ہے، کیا صرف conceptually ہوتا ہے؟
اسٹیک overruns ڈھیر.
یا برا، آپ صرف متن طبقہ بھی شامل ہے، سب کچھ overrun،
جو 0s اور 1s ہے جو آپ کے پروگرام کی نمائندگی کرتے ہیں.
مختصر میں، یہ صرف سپر، سپر برا ہے.
آپ کے پروگرام کے کنٹرول سے باہر spiraled ہے.
آپ طرح زیادہ میموری سے آپ کا ارادہ کا استعمال کرتے ہوئے کر رہے ہیں
تمام، اس کیس میں ایک احمقانہ غلطی کی وجہ سے
یا اس کیس میں بہت جان بوجھ کر کیا ایک تقریب خود بلا رہا ہے.
اب، یہ سب برا نہیں ہے.
خود بلا افعال دراصل عظیم طاقت ہے جب آپ اسے درست طریقے سے استعمال کرتے ہیں.
میں نے اسے صحیح طریقے سے استعمال نہیں کیا ہے یہاں.
تو یہ سب برا نہیں ہے، لیکن حقیقت یہ ہے کہ میں نے اصل میں کبھی نہیں روکنے خود بلا
اس پروگرام کے ایک بنیادی کمزوری ہے.
تو ہم کہاں اس سب کے ساتھ جا رہے ہیں؟ کہ اصل میں کیا ہو رہا ہے؟
جب میں اضافہ کی تقریب کہتے ہیں جیسا کہ ہم ان مثالوں میں کیا کر رہے تھے،
میں 1 کہ میں اندر سے گزر طرح ایک قدر ہے
میں نمبر 1 کی ایک کاپی میں گزرتے ہیں، تو مندرجہ ذیل ہوتا ہے.
چلو اضافہ مثال کے طور پر میں جانے کے لئے، یہاں اس آدمی کو.
یہ اصل میں کیا ہو رہا ہے.
جب میں اضافہ کہتے ہیں اور میں X میں گزرتے ہیں، pictorially، یہاں کیا ہو رہا ہے یہ ہے.
>> اگر میں 1 کی قدر ذخیرہ ہے اور میں واقعی میں اضافہ کہتے ہیں،
جو اب کورس کہا جاتا ہے - رکن آپ کے وزٹرز کا ریکارڈ رکھا پھینک آف ہے یہاں.
چلو اس اضافہ کو کہتے ہیں، اور ہمیں پتہ نہیں کہ یہ اگلے تقریب ہو رہا ہے.
تو کیا ہے اصل میں ہو رہا یہاں اہم ہے کہیں میں میموری کا ایک حصہ ہے
جو نمبر 1 ذخیرہ کرنے ہے.
جب میں اضافہ کہتے ہیں، میں میموری کا ایک حصہ کا استعمال کرتے ہوئے کر رہا ہوں،
لیکن اب میں 1 کی کاپی ہے.
جب میں اس قدر اضافہ، 2 بن جاتا ہے،
لیکن پھر کیا اضافہ کی واپسی کے طور پر کے طور پر جلد ہی ہوتا ہے؟
یہ میموری صرف آپریٹنگ سسٹم پر واپس کے حوالے ہو جاتا ہے،
جس کا مطلب ہے کہ تم نے کیا ہے مفید کچھ نہیں ہے.
1 اصل اہم میں شامل کیا گیا تھا اب بھی اصل میں وہاں ہے.
تو ہم کہاں اس کے ساتھ جا رہے ہیں؟
یہ پتہ چلا ہے کہ آپ کو یاد میں بائٹس کی اس ترتیب واپس واپس
کہ آپ چیزیں ڈال، اور کر سکتے ہیں یہ پتہ چلا ہے کہ ہم نے پہلے سے ہی کچھ دیکھ لیا ہے
کہ چیزیں پیچھے رکھ واپس، واپس کی حمایت شامل ہے.
1 ہفتہ اور اب 2 ہفتے کی بنیاد پر سٹرنگ کیا ہے؟
یہ صرف حروف کا ایک مجموعہ ہے.
تو یہ پتہ چلتا ہے جیسا کہ آپ کو یاد میں نمبر رکھ سکتے ہیں،
اسی طرح آپ کو یاد میں حروف پر رکھ سکتے ہیں.
اور ایک بار ہم نے یاد میں ڈال حروف واپس شروع واپس کی حمایت کی حمایت،
یہ پتہ چلا ہے، چیزوں کی طرح لوپ یا دیر لوپ کے لئے آسان استعمال کرتے ہوئے کہ
بائیں سے دائیں جانب ہم حروف سے زیادہ ایک تار میں iterate کر سکتے ہیں
اور مختلف حروف میں ان سے مکمل طور پر مساج کرنا شروع -
ب بن سکتا ہے، بی سی بن سکتا ہے -
تاکہ آخر میں، ہم نے ایک انگریزی کی سزا ہے کہ اصل میں احساس کرتا ہے لے جا سکتے ہیں
اور وہ ایک خط میں سے ہر ایک کو ایک وقت میں تبدیل
ہمارے کمپیوٹر میموری کے ذریعے چلنے کی طرف سے بائیں سے دائیں اصل میں خفیہ.
تو ہمارے یہاں پانچ منٹ کے وقفے لے
اور جب ہم واپس آئے، ہم معلومات scrambling کے اس عمل کا آغاز کریں گے.
>> ٹھیک ہے.
اس سے پہلے کہ ہم کچھ crypto میں کودو اور ان چیزوں arrays کہا جاتا ہے،
کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے کے ذہن میں کوئی سوالات کے لئے روکنے کے دو کیونکہ مجھے لگتا ہے کہ میں واقعی میں اس قسم کی muddled
ان موضوعات میں سے کچھ. لہذا کو ٹھیک اب اگر ہم کر سکتے ہیں ہیں.
ہم صرف واپسی اقدار کے بارے میں بات کی تھی، ہم نے دلائل کے بارے میں بات کی تھی،
اور ہم اس تصور کے بارے میں بات کی، جو ہم ہفتوں میں واپس آنے آ جائیں گے،
ان سجا دیئے ٹرے کی ایک پوری چڑھانے کے طور پر میموری دیکھنے، اس سے بات کرنے
اپ نیچے، اس طرح سے کہ ہر ٹرے اسٹیک پر ڈال دیا ہو جاتا ہے
ایک تقریب ہے کہ اس وقت کیا جا رہا ہے کہا جاتا ہے کی نمائندگی کرتا ہے.
کوئی سوال؟
مجھے یہاں ایک سوال پوچھنا ہے.
مجھے جو اس نے ہمارے پہلے Q & A. میں سے کچھ پہلے تھا اس کی پیٹھ کو آسان بنانے
حقیقت یہ ہے کہ اضافہ اوپن خانے، int تعداد ہے، خانے بند -
int تعداد کیا کی نمائندگی کرتا ہے؟
[طالب علم] دلیل ہے. >> دلیل ہے. ٹھیک ہے. لیکن ایک دلیل کیا ہے؟
[اشراوی طالب علم کے جواب] >> یہ کیا ہے؟ >> [طالب علم] کچھ ہے جو تم اندر سے گزر
ٹھیک ہے، تو کچھ ہے جو تم اندر گزرتے ہیں اور عام طور پر، یہ صرف ان پٹ ہے.
اگر آپ زندگی میں ایک تقریب اور ہے کہ تقریب کا مقصد لکھنے تھے
کچھ تھوڑا سا مختلف ہر بار آپ اسے استعمال کرنا ہے،
اس کے بعد کہ اس کے لئے بہت ہو صرف ایک ہی طریقہ لگتا ہے یہ ان پٹ کے ساتھ فراہم کرے گا
تاکہ اس ان پٹ کے ساتھ کچھ مختلف ہر وقت کر سکتے ہیں.
>> تو آپ کو دو چیزوں کے جب ایک تقریب ان پٹ لیتا ہے پر کی وضاحت کرنے کی ضرورت ہے.
آپ کو وہ نام ہے جو کہ آپ اس ان پٹ پر دینے کے لئے چاہتے ہیں کی وضاحت کرنے کی ضرورت ہے
خالصتا تاکہ آپ کو آپ اپنی سہولت کے لئے اس سے رجوع کر سکتے ہیں
تقریب ہے کہ آپ اپنے آپ کو لکھنے، کے طور پر میں 32 سطر میں یہاں کیا کر رہے ہیں.
لیکن تم نے بھی اس قسم کی وجہ سے سی ایک پروگرامنگ زبان ہے کی وضاحت کی ضرورت ہے
یہ صرف کی ضرورت ہے کہ اگر آپ ایک متغیر کرنا چاہتے ہیں، تو آپ کے کمپیوٹر کو بتانے کے لئے ہے کہ اعداد و شمار کی قسم یہ ہے ہے،
بڑے حصے میں تاکہ یہ جانتا ہے کہ کتنے بٹس کہ متغیر کے لئے مختص
کیونکہ یہ 6 ہو سکتا ہے - معاف کرنا، یہ 6 نہیں کرے گا.
یہ 16 ہو سکتا ہے، اس کے پاس 8 ہو سکتا ہے، یہ 32 ہو، یہاں تک کہ 64 کر سکتے ہیں،
لیکن کمپیوٹر پر پتہ کی ضرورت ہے.
اب بائیں ہاتھ پر int کے برعکس کیا، کی نمائندگی کرتا ہے؟
[اشراوی طالب علم کے جواب] >> یہ کیا ہے؟ تقریب کی >> [طالب علم] قسم ہے.
ایک تقریب کی قسم، اور خاص طور پر، اس کی پیداوار کی قسم. ٹھیک ہے.
تو قوسین میں بات جبکہ اس کی ان پٹ کی نمائندگی کرتا ہے، اگر کوئی ہے تو،
بائیں بات اس کی پیداوار کی نمائندگی کرتا ہے.
اور اس معاملے میں اضافہ بظاہر ایک int واپس،
اور اس int اس تقریب کی واپسی کی قسم ہے.
کیا اس سے فرق پڑتا ہے کی واپسی کا مطلب؟
لفظی، آپ کو مطلوبہ الفاظ کی واپسی کا استعمال کرتے ہیں اور اس کے بعد جو آپ کو واپس لوٹ رہے ہیں اگر
مطلوبہ الفاظ کے دائیں جانب ایک عدد صحیح ہے،
تو وہ جو ہم سے وعدہ کیا ہے اس کے ساتھ یقینا مطابق ہے.
ہیلو دنیا - - آپ ایسا کچھ نہیں کر سکتا کیونکہ وہ ایک تار ہے.
>> ظاہر ہے، یہ ایک عدد صحیح نہیں ہے.
تو مختصر میں، بوجھ ہم پر واقعی ہے، پروگرامر، مخصوص ہونا
جو ہم واپس لوٹنے رہے ہیں اور کے طور پر اس کے واپس لوٹنے کے بارے میں تو اصل میں جانا.
یہاں سیاق و سباق اب یہ ہے کہ آپ کے کمپیوٹر کی میموری میں ایک گیگا بائٹ، 2 گیگا ہے -
جو بھی - شاید یہ زیادہ ہے، شاید یہ کم ہے،
لیکن کمپیوٹر کے مختلف حصوں ہونے کے طور پر دیکھتا ہے.
کچھ اور کچھ وہاں نیچے جاتا ہے، وہاں جاتا ہے،
مختلف چیزیں درمیان میں جاتا ہے، اور آج ہم صرف کہانی کہہ شروع،
لیکن ہم اس سے زیادہ وقت واپس آ جائیں گے.
اب کے لیے، میموری کا واحد ٹکڑا ہم واقعی پرواہ متن حصہ ہے
کیونکہ یہ صرف 0s اور 1s بجنا ہے کہ کی نمائندگی کرتا ہے outputted ہے.
تو جب تم a.out طرح کی بورڈ میں ایک کمانڈ چلائیں
یا آپ میک OS یا ونڈوز پر ڈبل ایک آئکن پر کلک کریں،
آپ کے پروگرام آپ کی ہارڈ ڈرائیو سے RAM میں بھری ہوئی ہے
اور یہ آپ کے کمپیوٹر کے RAM کے سب سے اوپر دیئے گئے plopped ہے، تو بات کرنے کی.
دریں اثناء، جیسا کہ آپ کے پروگرام چل رہا شروع ہوتا ہے اور بنیادی کہا جاتا ہو جاتا ہے
پروگرام میں آپ نے لکھا ہے یا پروگرام مائیکروسافٹ یا ایپل نے لکھا،
اس کے مقامی متغیرات میں سے کوئی آپ کے کمپیوٹر کی میموری کے سب سے نیچے دیئے گئے ذیل میں ختم.
لیکن اہم کالز ایک اور تقریب ہے جو خود متغیر یا دلائل ہیں، اگر وہ اس سے اوپر ختم.
اور اگر اس تقریب کو کچھ کہلاتا ہے، وہ اس کے اوپر اس کے اوپر ختم، اس کے اوپر ہے.
>> ، اور صرف ایک بار ایک تقریب قتل کیا جاتا ہے، ٹرے کے اسٹیک، تو ہے بات کرنے کی
کم اور کم حاصل کرنے کے لئے شروع.
اور یہ وہی ہے جو اس کے بعد، ایک مختصر میں وضاحت کرتا ہے، کیوں جب آپ کیوب فون
یا آپ اضافہ کہتے ہیں، تو آپ کو قدر کی ایک کاپی میں گزر رہے ہیں.
اور اس کا کیا pictorially کا مطلب یہ ہے کہ آپ لفظی نمبر 1 لکھ رہے ہیں
میموری کا ایک اور حصہ میں تبدیل کرنے، کہ اضافہ کی صورت میں 1 2
یا ایک کیوب کے معاملے میں 8 اور پھر اس میموری کو دور پھینک
جیسے ہی اضافہ یا کیوب تقریب کی واپسی کے طور پر. سوال.
[طالب علم] عالمی متغیر کہاں محفوظ ہوتی ہیں؟
عالمی متغیر کیا اس وقت کہا جاتا initialized ڈیٹا یا غیر ابتدا شدہ ڈیٹا میں جمع کیے جاتے ہیں،
اختلاف ہے، اگر آپ کو ایک عالمی متغیر ہے اور آپ نے اسے تفویض فوری طور پر ایک قیمت
کے ساتھ سائن ان برابر ہے، یہ وہاں سب سے اوپر دیئے گئے ختم ہوتا ہے،
اور اگر آپ نے ابھی int ایکس کا کہنا ہے کہ، کوئی قیمت نہیں کے ساتھ، یہ RAM میں ختم ہو جاتی ہے تھوڑا سا کم
صرف کنونشن کی طرف سے.
دیگر سوال؟ ٹھیک ہے.
تو یہ تصویر واپس آنا کیونکہ ہم زیادہ طاقتور ملے گا
ہم نے کمپیوٹر کے ساتھ کیا کر سکتے ہیں کے ساتھ،
لیکن اب، خفیہ نگاری پر ایک مختصر تعارف ہے،
خفیہ نگاری کی ایک مخصوص قسم کی ہے کہ دنیا کے مسائل کا حل نہیں ہے
لیکن ان میں سے کچھ کو حل کرتا ہے.
یہاں اس صورت میں، ہم نام خفیہ نگاری خفیہ کلید کچھ ہے.
خفیہ نگاری خفیہ کلید ہے، جیسا کہ نام سے پتہ چلتا ہے، ایک راز سے اس کی سیکورٹی کو حاصل ہے.
>> مثال کے طور پر، اگر آپ کو گریڈ اسکول میں واپس تھے اور آپ کو ایک چھوٹے سے رہسی محبت خط سے گزر رہے تھے
لڑکا ہے یا لڑکی کرنے کے لئے آپ کو پر کچل رہے تھے، اگر آپ کو سامعین کے ذریعے نوٹ کو منتقل کرنا چاہتے تھے،
آپ کو شاید اس طرح انگریزی میں ایک نوٹ لکھ نہیں یا جو بھی اپنے آبائی زبان ہے گی.
بلکہ، آپ خفیہ یا تم نے انہیں ان دنوں صرف ایک متن پیغام بھیج سکتا ہے ہو سکتا ہے.
لیکن آپ انہیں اصل میں کلاس بھر میں ایک نوٹ کے پاس ہو سکتا ہے.
اور اس طرح میں یہ محفوظ کرنا ہے کہ اپنے دوستوں اور اساتذہ
یہ معلوم نہیں ہے کہ آپ کیا لکھ رہے ہیں، آپ کو ایک منصفانہ سادہ الگورتھم کے ساتھ آ سکتا ہے،
تم جوان اگرچہ ہو سکتا ہے، صرف الفاظ جدوجہد.
تو آپ کو ایک لکھنے کی بجائے بی لکھ سکتا ہے،
بجائے آپ بی سی کو لکھ سکتا ہے،
بجائے آپ سی کے د لکھنے، اور وغیرہ ہو سکتا ہے.
یا آپ ایک سے زیادہ بہتر ترجمہ کے ساتھ آ سکتا ہے
مختلف خطوط خط.
لیکن پکڑنے لڑکا ہے یا جن کیا آپ یہ معلومات بھیج رہے ہیں لڑکی ہے
ضروریات کو کچھ ہے، ظاہر ہے پتہ ہے؟ >> [طالب علم] کیا آپ کو بھیج رہے ہیں.
کیا تمہارا راز ایک اور بی اور سی اور کے D'کے درمیان تعریفیں کیا ہے کی طرح ہے،.
کیا یہ صرف حروف میں سے ہر ایک 1 انہوں نے مزید کہا سے بی بی، سی ہے؟
یہ اس سے بھی زیادہ پیچیدہ ہے؟
>> تو آپ اور آپ کے چاہنے والوں کو یہ خفیہ معلومات فراہم کرنے کی ضرورت ہے،
لیکن یہاں پکڑنے-22 کی طرح ہے.
اگر یہ بہت ہی پہلی بار ہے آپ کو کلاس کے ذریعے اس محبت خط بھیج رہے ہیں،
کہ لڑکا ہے یا لڑکی کا پتہ بھی کیا راز ہے کہ کس طرح چل رہا ہے؟
تو خفیہ کلید crypto دنیا کے مسائل کا حل نہیں ہے،
اور وہاں اصل میں تعلق ہے کہ ہم سمسٹر آخر کی طرف واپس آ جائیں گے.
اسی طرح ہم میں سے سب سے زیادہ جانتے ہیں کہ کسی جو مثال کے طور پر کام کرتا ہے، Amazon.com، نہیں،
اور ابھی تک ہم میں سے بہت سے لوگ شاید Amazon.com میں سامان خریدا،
اور ہم فرض ہے کہ ان ای کامرس لین دین محفوظ ہیں سکھایا گیا ہے.
URL شاید کا کہنا ہے کہ HTTPS، شاید ایک پاگل سی پیڈلاک آئکن ہے کہیں،
خفیہ نگاری کے کچھ قسم کی آپ کے کریڈٹ کارڈ کی معلومات کی حفاظت ہے
آپ اور Amazon.com کے درمیان.
اور اس کے باوجود اگر خفیہ نگاری شامل کچھ راز جاننے
اور ابھی تک میں ایمیزون پر کسی کو معلوم نہیں ہے اور میں اس بات کو یقینی طور سے اہتمام کیا راز کسی بھی قسم کی ہے نہیں
ایمیزون میں کسی کے ساتھ کس طرح میرے کمپیوٹر یا اپنے براؤزر کر رہی ہے؟
اس کا بدل جاتا ہے وہاں خفیہ نگاری کے دیگر اقسام کے مکمل طور پر ہے کہ اس مسئلہ کو حل.
لیکن ایک کے سادہ پر ہم آج کے لئے توجہ مرکوز کریں گے،
آپ کو پیشگی میں جہاں کا بندوبست کچھ رہسی کے بارے میں جاننا کر سکتے ہیں
+1 یا ایک اور بی کے درمیان کچھ میپنگ کی طرح.
اور خفیہ نگاری کے عمل عام طور پر شامل ہیں.
آپ کو کچھ سادہ متن، بائیں میں دکھائے جانے والے تاثر ہے،
آپ الگورتھم یا عمل کے کسی قسم کے ذریعے اس کی خفیہ کاری کے لئے اسے چلانے -
ب ہو سکتا ہے کہ صرف ایک ب ہو جاتا ہے، سی ہو جاتی ہے -
اور پھر آپ ciphertext کے ساتھ ختم.
دریں اثنا، ایک بار آپ کے چاہنے والوں کی اس خفیہ نوٹ حاصل کرنے کے
وہ یا تو وہ بےرمز یہ عام طور پر کی طرف سے اس الگورتھم کو تبدیل ہے
تاکہ سادہ متن واپس حاصل کرنے کے لئے.
اس کی جسمانی incarnations ہیں.
>> مثال کے طور پر، یہ ایک چھوٹے سے رہسی کوٹواچک انگوٹی ہے،
اور یہ احساس ہے کہ دو dials یہاں ہے میں ایک انگوٹی ہے.
اس چیز سے باہر علاقے، Z ذریعے ایک خط ہے،
اگرچہ وہ بے ترتیب ترتیب میں ہیں،
اور اندر، اصل میں کچھ تعداد
اس طرح ہے کہ اس قسم کی اس انگوٹی کے ساتھ باہر نہیں بلکہ باری اندر کر سکتے ہیں
کے لئے حروف کے ساتھ تعداد لائن.
نامی ایک کرسمس کہانی فلم سے، آپ کو اس چھوٹی سی Ralphie دیکھیں گے
اعداد و شمار کیا لٹل یتیم کے اینی خفیہ پیغام اس سے تھا شوقین تھا
نے عددی پیغامات کی شکل میں ایک سیریل کے باکس، مجھے لگتا ہے، آگاہ
اور آپ کو تمام چھوٹی سی کارڈ جو اناج کے خانے میں آیا جمع تھا،
آپ کو ان میں میل تھا، آپ خفیہ کوٹواچک کی انگوٹی واپس حاصل کرنے کے لئے تھا
تاکہ آپ کو آخر میں اعداد و شمار کیا تعریفیں حروف اور اعداد کے درمیان ہے
حروف یا حروف اور.
ہم کس طرح کمپیوٹر میں عمل درآمد یا کی نمائندگی اس طرح کی چیزوں کے بارے میں جا سکتے ہیں؟
ہم تھوڑا flexibly پر خود کا اظہار کرنے کا ایک طریقہ کی ضرورت ہے
سے ہمارے متغیر کو ابھی تک کی اجازت دی ہے.
ہم ints تھا، ہے ہم نے حروف لیا ہے، ہم floats اور ڈبلز اور دیگر لیا ہے،
لیکن ان میموری کی انفرادی ٹکڑے ٹکڑے ہیں جو ہمیں چیزوں کا اظہار نہیں دیتے ہیں
الفاظ اور جملے اور جملے کی طرح.
بے شک ہم ایسی چیزیں ڈور بلایا ہے،
لیکن ہم سے وعدہ کرتا ہوں کہ یہ واقعی میں صرف CS50 لائبریری میں ایک آسان بنانے ہے
کہ ہم چھیل واپس ارادہ کر رہے ہیں.
اور اس لئے کہ یہاں کرنا شروع کر دیں.
آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور ایک فائل کو کھولنے کے دو -
ان فائلوں کی تمام دستیاب ہیں، ہمیشہ کی طرح، آن لائن - نام نہاد array.c
ایک ڈور کوئی تعلق مسئلے کو حل کرنے کے لئے لیکن اس ایک تصویر یہاں پینٹ
کس طرح ہم نے ملاقات کی ایک صف کچھ استعمال کر سکتے ہیں.
>> ایک صف میں ایک ڈیٹا کی قسم ہے.
یہ قسم کی متغیر کی ایک قسم ہے جو ایک سے زیادہ چھوٹے اعداد و شمار اقسام اس کے اندر ہے ہے
واپس واپس، واپس واپس.
تو مثال کے طور پر اگر ہم ایک چھوٹا سا پروگرام ہے کہ آپ کو آپ کے کوئز اوسط دیتا ہے لکھنا چاہتے تھے
50 2 quizzes ہے جیسے ایک کورس کے لئے
آپ کو یہ بھی گزشتہ ہفتے کے مال کی کچھ کی بنیاد پر پروگرام کو بہت آسانی سے لکھ سکتے تھے
GetInt اور متغیرات میں سے ایک جوڑے کا استعمال کرتے ہوئے کی طرف سے: int quiz1، quiz2 int.
اور یہ بہت سیدھا ہے.
یہ شاید 10 ہے، کوڈ زیادہ سے زیادہ 20 لائنیں ایک پروگرام پر عمل درآمد
2 کوئز سکور کے لیے صارف تو پوچھتے ہیں اور ان کی اوسط computes
میں شامل ایک ساتھ مل کر، 2 کی طرف سے تقسیم، اور پھر نتائج چھپائی کی طرف سے.
ہم یہ شاید بہت آسانی سے اب کئی منٹ میں سے کچھ کے بعد کر سکتے ہیں.
لیکن مسئلہ یہ ہے کہ لگتا ہے کہ 50 تھا 3 quizzes یا 4 ہے.
فرض کریں کہ آپ ایک کلاس ہے کہ ہفتہ وار تھا quizzes کے لئے ایک ہی پروگرام استعمال کرنے کے لئے کرنا چاہتا تھا.
ایک کلاس ہے کہ ہفتہ وار quizzes ہے کے بارے میں سوچو.
اگر ایک سمسٹر میں 16 یا تو ہفتوں ہے، اب آپ کو 16 متغیر ہے:
int quiz1، int quiz2، int quiz3، quiz4 int.
جیسے ہی تم اس فالتوپن کو دیکھ کر شروع، اس کوڈ کی کاپی اور چسپاں،
تم چاہو وہاں ایک بہتر طریقے تھے شروع کر دینا چاہئے.
اور شکر، arrays کے وجہ سے ہے. تو ایسا کرنے دو
سب سے پہلے، مجھے ایک بہت ہی سادہ بات یہ ہے کہ ہم نے استعمال کیا ابھی تک نہیں کیا ہے متعارف کرانے،
لیکن آپ کو یہ کوڈ میں کبھی کبھار نظر آئے گا.
>> اس کا ہے جو عام طور پر کہا جاتا مسلسل ہے.
تو اس بات کا احساس ہے کہ اس کی قیمت کبھی نہیں بدل میں مسلسل ہے.
انسانی کنونشن جب ایک مسلسل پیدا
تمام بڑے حروف تہجی کو صرف اس لئے ہے کہ یہ واقعی آپ کے کوڈ میں ہے استعمال کرنے کے لئے ہے،
اور مخصوص مطلوبہ الفاظ کی ہے کہ آپ C میں استعمال کرتے ہیں # وضاحت ہے.
تو ہم کا کہنا ہے کہ #، تو ایک خلا کی وضاحت، تو لفظ ہے کہ آپ کو مسلسل نام کے لئے استعمال کرنے کے لئے کرنا چاہتے ہیں
اور اس کے بعد مسلسل کی قدر ہے.
نوٹس یہ ایک متغیر کچھ بتائے سے مختلف ہے.
کوئی برابر دستخط، کوئی نیم وقفہ نہیں ہے.
یہ وہی ہے جو عام طور پر پریپروسیسر ہدایت کے طور پر نام سے جانا جاتا ہے،
لیکن ہے کہ کسی دوسرے وقت پر.
ابھی کے لئے، یہ ایک تبدیل کہا جاتا QUIZZES قدر پیدا
جس کی اصل عددی قیمت 2 ہے.
تو جہاں کہیں بھی آپ QUIZZES دیکھ، QUIZZES اس فائل کے دوران، QUIZZES
کہ صرف 2 نمبر ہے.
اگر میں مرکزی اب دیکھو، یہ کس طرح کام کرتا ہے کو دیکھنے کے.
سب سے پہلے یہ تھوڑا خفیہ لگ رہا ہے، لیکن اس کی 1 ہفتہ سے ساری چیزیں ہے.
گریڈ کے لئے صارف سے پوچھو. ہم اس کو کس طرح کرتے ہیں؟
22 لائن میں - یہ سچ رسیلی حصہ ہے - میں ایک فلوٹ کا اعلان
لیکن صرف ایک فلوٹ نہیں. میں اعلان، بلکہ رہا ہوں، اقدار چل نقاط کی ایک صف ہے.
یہ متغیر گریڈ کہا جاتا ہے، جیسا کہ یہاں تقاضا جا رہا ہے،
لیکن نئے نحو کا واحد ٹکڑا تو یہ مربع بریکٹ ہیں.
حقیقت یہ ہے کہ میں فلوٹ اور پھر گریڈ اوپن بریکٹ اور پھر ایک نمبر کا کہنا ہے کہ ہے -
اگر یہ مسلسل جاری ہے، یہ ہم نے یہ کیا طرح ہے کا نوٹس -
اس کا مطلب یہ ہے، "ارے، کمپیوٹر، مجھے 2 floats دے اور ہم مجموعی طور پر ان کے گریڈ کو فون کریں."
>> یہ اس طرح ایک زیادہ تکاؤ عمل کے برعکس ہے: grade1 فلوٹ؛
grade2 فلوٹ، اور وغیرہ.
تو ایک صف ہمیں اس خیال پر عمل در آمد کی بہت کم messily کی اجازت دیتا ہے لیکن،
اس طرح کہ ہم کوڈ کے لائن 1 لکھنے کے بجائے، کا کہنا ہے کہ کر سکتے ہیں، سمسٹر 16 ہفتے کے لئے 16 میں.
میں 2 کوڈ مشکل نہیں چاہتے تھے کیونکہ، اگر آپ اس کے بارے میں میں کیا سوچتے ہیں اب منطقی طور پر
لگتا ہے کہ اگلے سال 3 CS50 تبدیلیاں بجائے quizzes
اور میں یہاں 2 نمبر تھا، میں نے 2 نمبر یہاں تھا،
میں نمبر 2 یہاں تھا، نمبر 2 یہاں.
یہ بہت تکاؤ اور بہت آسان بگاڑ ہو جاتا ہے
اور اتفاقی طور پر 3 سے 1 قدر تبدیل اور 2 میں سے کچھ دوسرے قدر یاد آتی ہے.
تو میں بجائے خلاصہ دور جا رہا ہوں اور یہ مسلسل اس کا استعمال،
کے طور پر اس کا نام تجویز ہے، کبھی نہیں بدل جاتا ہے.
اور اب کوئی بات نہیں ہے کہ ہم مختلف ہیں اس سال یا آئندہ quizzes،
میں صرف یہ ایک جگہ میں سب سے اوپر میں تبدیل ہے.
تو یہ سب ایک مسلسل جاری ہے.
دریں اثنا، نیا تصوراتی خصوصیت ایک صف کی ہے.
تو مربع بریکٹ مجھے یہ بہت floats دے گا اور اس کی اجازت دیتا ہے آپ کے وزٹرز کا ریکارڈ رکھا اجتماعی انہیں گریڈ یہاں فون ہے.
تو اب دیکھنے کی بات ہے کہ میں کیا کرنے جا رہا ہوں.
یہاں 24 سطر میں لوپ کے لئے ایک آغاز ہے.
>> یہ واقعی میں کچھ بھی نہیں پسند ہے. یہ صرف QUIZZES کا استعمال کرتے ہوئے مشکل کوڈت ایک بڑی تعداد کے بجائے.
لیکن ذہنی گزشتہ ہفتے سے مختلف نہیں ہے.
یہ صرف printf ہے، تو printf ("٪ د٪ # D کوئز:")
کیونکہ میں صرف پرنٹ دینے کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے 2 نمبر 1 گئے تمام سوالات اور اس کے بعد 2 کا 2 چاہتے ہیں.
تو یہ ایک خالصتا جمالیاتی بات ہے.
لیکن دلچسپ حصہ اب 27 لائن میں ہے.
میں چل نقاط ایک قدر کے ساتھ دو جگہ دار میں سے ایک میں بھرنے کے لئے
تم پھر سے مربع بریکٹ کا استعمال کریں.
اس صورت میں، میں نے میں کا استعمال کریں کیونکہ لوپ کے لئے اس قدر کیا برابر کے ساتھ شروع کیا ہے، بظاہر رہا ہوں؟
0 [طالب علم]. >> [Malan] 0.
تو اس لوپ کے پہلے iteration ہے جیسے میں نے کوڈ میں یہ لکھا تھا،
لیکن اس لوپ کے دوسرے iteration پر ایسا ہے جیسے میں اپنے کوڈ میں یہ لکھا ہے.
لیکن حقیقت یہ ہے کہ میں ایک متغیر کا استعمال کرتے ہوئے کر رہا ہوں بہت اچھا ہے، کیونکہ جیسا کہ نام سے پتہ چلتا ہے،
ہر iteration پر اس قدر مختلف ہے،
تو میں اس صف ایک وقت میں بھرنے رہا ہوں ایک جگہ.
کیا اس صف کی طرح لگتی ہے؟
میں سکرین پر سپر آسان مستطیل یہاں متوجہ وجہ سے پہلے اس وجہ سے تھا.
ایک صف میموری کا ایک حصہ میموری کا ایک حصہ کے بعد ہے
میموری کا ایک حصہ کی طرف سے کے بعد اور وغیرہ.
تو اگر میرا اس معاملے میں صف 2 سائز کے یہاں ہے، سب میں کر کی جائے گی
میرے کوئز اسکور میں ٹائپ کرکے یہاں اچھا لگتا ہے - میں اس پر 100 ہے اور تو مجھے اس پر 99 ایک ہے -
تو اس میموری بھی نہیں ہو سکتا ہے استعمال کیا جاتا ہے کیونکہ میں صرف کمپیوٹر سے پوچھا ہے
2 سائز کے ایک صف کے لئے.
وہ چوکوں اب بھی وہاں ہو، ہے نا؟
آپ اب بھی رام کی 2 گیگا ہیں یہاں تک کہ اگر آپ صرف 2 floats کے بارے میں پوچھ رہے ہیں.
تو arrays کے پیچھے خیال ہے کہ کمپیوٹر میموری کا ایک حصہ لیتا ہے
اور پھر چھوٹے ٹکڑوں واپس apportions واپس، واپس واپس.
اور اس طرح ہے کہ ایک صف ہے.
>> یہ میموری کے اندر ایک ملحق حصہ ہے جس میں سے آپ کو چیزیں ڈال کر سکتے ہیں.
یہ تو صرف کچھ بورنگ ریاضی کرنا ہوتا ہے.
اگر میں یہاں نیچے سکرال، یہ وہ جگہ ہے جہاں تو میں صف پر iterate.
میں صف میں اقدار میں سے سب سے summation کے ساتھ آتے ہیں،
اور پھر میں گول تقریب یہاں کو استعمال کرتے ہوئے اصل میں QUIZZES سے تقسیم رقم کرنا ہے.
لیکن کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے اب کے لئے کافی ریاضی کی طرح کے طور پر اس میں اپنے ہاتھ لہر.
لیکن جو میرے لئے کر رہی ہے بالآخر اوسطا کمپیوٹنگ ہے.
تو پہلے کوئز کے علاوہ دوسری کوئز 2 سے تقسیم کیا اور پھر اسے ایک int کے طور پر پرنٹنگ باہر.
لیکن چلو اب نامی ایک مختلف string1 مثال کے طور پر منتقلی
جس میں ایک اسی طرح کی تصویر کا استعمال کرتے ہوئے کی ڈور پینٹ.
آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور صرف ایک لمحے کے لئے یہ آسان بنانے.
پوٹ کاری کو اب معاف کر دو.
اس مثال میں سے 19 کی لائن میں نوٹس، میں صارف کی طرف سے ایک تار ملتا ہے.
نوٹس لیکن کیا میں اگلے لائنوں میں 22 آگے کر رہا ہوں.
میں اصل میں میں سے iterating رہا ہوں - اور یہ ایک نئی چال ہے - strlen، سٹرنگ، کی حد کے ہے.
یہ کہ، اگر آپ اسے ایک تار پاس ایک تقریب ہے جو کہ C کے ساتھ آتا ہے ہے
یہ آپ کو بتاتا ہے اس سٹرنگ میں کتنے حروف ہیں. وہ سب ہے.
اور حقیقت یہ ہے کہ یہ تار کی لمبائی کی بجائے strlen ہے کیونکہ یہ زیادہ succinct ہے.
تیس سال پہلے، لوگوں، چیزوں اور succinctly ممکن لکھنا پسند،
تو ہم نے اس کنونشن کو یہاں رکھ دیا ہے.
میں + کا مطلب صرف + ہر iteration میں اضافہ.
اور اب اس نوٹس کے، جو واقعی دلچسپ ہے.
اوپر 24 میں، میں کہتا ہوں، "کمپیوٹر، مجھے ایک کردار دے، 8 بٹس، اور اسے سی کو فون کریں."
لیکن جو دائیں ہاتھ سے کہہ یہ کیا ہے؟
انگریزی میں، اس کا کیا کی نمائندگی کرتا ہے؟
[طالب علم] صف میں پہلی کردار.
بالکل. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے صف میں سب سے پہلے کردار دے دو.
یا، عام طور پر، کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے صف میں ith کردار دیتے ہیں.
احساس اور اب یہ ضروری ہے کہ، کمپیوٹر سائنسدانوں کے طور پر،
ہم اصل میں 0 سے گن رہے ہیں.
>> آپ صوابدید نہیں ہے ایسا کرنے شروع کرنے کے لئے.
اب آپ کو کمپیوٹر کی توقعات کے مطابق برتاؤ کرنے اور 0 سے شمار ہوگا
[0] کیونکہ ایک تار میں پہلی کردار کی جا رہی ہے،
[1] دوسری جا رہا ہے، [2]، تیسری، اور وغیرہ جا رہا ہے.
، تو یہ پروگرام، اگر میں اسے مرتب، اس کو دوبارہ string1 ہے، تو string1 بنانے
اور اب میں میرے ٹرمنل ونڈو میں string1 چلائے گئے.
یہ ان پٹ کے لئے انتظار کر رہا ہے، تو میں ڈیوڈ میں ٹائپ کرنے کے لئے، درج کریں جا رہا ہوں،
اور اب یہ مختلف لائنوں پر داؤد پرنٹ کیونکہ نوٹس کہ میں کیا کر رہا ہوں.
میں ایک وقت میں ایک کردار چھپائی رہا ہوں.
ہم تفصیل میں جانا، اس پر آج نہیں کرے گا، لیکن مجھے یہ چیک پہلے ایک لمحے کے یہاں سے خارج کر دیا ہے.
یہ پتہ چلا ہے کہ اگر صارف ناجائز استعمال کر رہی ہے، معاندانہ، یا صرف الجھن میں،
آپ کو کچھ کی لمبائی کی ایک تار دینے کے لئے اصل میں ناکام کر سکتے ہیں.
اگر آپ نے کی بورڈ پر غلط کلید کو مارا، آپ کو کوئی تار دے سکتا ہے،
یا اگر آپ بدنیتی پر مبنی ہیں، تو آپ کو ایک مضمون کے ایک گیگا بائٹ کی مالیت میں پیسٹ کرنے کی کوشش کر سکتے ہیں
، میں اس جملے کو بھرنے کے لئے، اور اگر کمپیوٹر میموری ختم
یہ پتہ چلا ہے کہ ہم واپس نامی اس خاص نل قیمت حاصل کرنے کے لئے جا رہے ہیں.
تو اب کے لئے، صرف یہ جانتے ہیں کہ اس خصوصی ملاقات کی نل قدر ہے
جو ہمیں چیک کرنے کے لیے جب ہم میموری سے باہر دوسری چیزوں کے درمیان ہیں، کی اجازت دے گا.
لیکن اگر میں کھول اب string2، یہاں ایک فرق محسوس کریں.
string2 کے ساتھ ایک فرق نوٹس
string2 کے ساتھ، لوپ کے لئے یہ تھوڑا مختلف ہے.
>> مجھے NULLs تاکہ ہم ان لوگوں کو کسی اور وقت کے بارے میں بات کر سکتے ہیں حذف.
لوپ کے لئے اس وقت کے بارے میں مختلف کیا ہے؟
میں گزشتہ مثال کے طور پر واپس جا سکتے ہیں.
تو ورژن 2، 1 ورژن ہے. 1، 2.
1، 2.
strlen فون ہے کہاں؟
یہ لوپ کے لئے سب سے پہلے حصے میں ہے.
میں نے یہ کیوں کر رہا ہوں کوئی خیال؟ جی ہاں.
[طالب علم] تو آپ کو تقریب ہر ایک وقت فون نہیں ہے.
[Malan] تو ہم FUNCTION کو کال نہیں ہر ایک وقت. بالکل.
loops کے لئے سے یاد ہے کہ وہ انتہائی سادہ ہیں
ایک بار آپ کی طرح سمجھتے ہیں کہ یہ ابتدا، حالت، اور اپ ڈیٹ ہے.
مسئلہ یہ ہے کہ حالت لوپ کے ہر iteration پر ہوتا ہے.
اور اس وجہ سے یہاں اس مثال میں، حقیقت یہ ہے کہ یہ میری شرط ہے کے بارے میں برا کیا ہے؟
[طالب علم] آپ strlen بلا رہے ہیں.
[Malan] آپ strlen پھر بلا رہے ہیں اور بار بار.
کہ سٹرنگ کی طوالت لیکن ایک بار میں داؤد میں ٹائپ ہے، 5،
اور یہ لوپ کے ہر iteration پر تبدیل کرنے کے لئے نہیں ہے
کیونکہ اب بھی سٹرنگ D--V-D-.
تو یہ ایک تیزی سے اہم خیال کیا بننے جا رہی ہے میں ایک اشارہ ہے
ڈیزائن فیصلہ ہے جہاں صرف کمپیوٹر کے غیر ضروری کام کرتے ہیں کے طور پر جانا جاتا ہے.
>> بس کے طور پر سٹینڈرڈ ایڈیشن کا آپس میں ایک pset2 pset2 چوری چھپے پیش منظر
ہے، آپ اصل میں خفیہ کار کے کچھ نمبر پر عملدرآمد کو چیلنج کرنے والے
خفیہ کاری یلگوردمز کے کچھ نمبر، تاکہ تم خفیہ دونوں کر سکتے ہیں
اور بہت ایک Ralphie طرح بےرمز خفیہ پیغامات وہاں ضابطہ ربائی مکمل.
pset2 کے ہیکر ایڈیشن میں، ہم تھوڑا مزید جانے کے لئے جا رہے ہیں.
ہم ایک حقیقی کمپیوٹر سسٹم سے آپ کو ایک فائل کے ہاتھ میں جا رہے ہیں
ہے کہ صارف نام اور اصل مرموز پاس ورڈ کی ایک پوری چڑھانے پر مشتمل ہے،
اور ہیکر ایڈیشن کے لئے چیلنج ان کے پاس ورڈ کو ٹوٹ جا رہا ہے
اور اعداد و شمار کیا خفیہ نگاری یا کیا راز دراصل ان پاس ورڈ پیدا کرنے کے لئے استعمال کیا گیا.
اور ہم نے ایک نئی خصوصیت کا استعمال کرتے ہوئے سی کے کی طرف سے اس پر کرنے جا رہے ہیں
کہ میں آپ کے پاس صرف ایک ڈیمو دلائل کمانڈ لائن کے طور پر جانا جاتا دیں گے.
یہ پتہ چلتا ہے، جیسا کہ تم میں سے بعض کے حصے میں یا درسی کتابوں میں دیکھا جا سکتا ہے،
اہم قوسین میں صفر ہو ہمیشہ نہیں ہے.
یہ پتہ چلا ہے کہ اہم بھی اس طرح کر سکتے ہیں لکھا دو دلائل کے ساتھ،
argc اور argv، جہاں argc الفاظ کی تعداد ہے
ہے کہ آپ کو آپ کے کمانڈ لائن پر پروگرام کا نام کے بعد ٹائپ
اور argv اصل الفاظ ہیں.
اور کے طور پر مربع وہاں بریکٹ تجویز ہے، argv بظاہر ایک صف ہے.
یہ یاد میں ایک اسٹرنگ کے بعد ایک اسٹرنگ کے بعد ایک تار ہو رہا ہے.
>> تو جو ہم 2 pset کے ساتھ شروع کرنے کے لئے کے قابل ہو جائے کرنے کے لئے جا رہے ہیں کچھ اس طرح ہے.
اگر میں argv1، جس میں ایک مثال کے طور پر ہم نے پیر کو واپس آئے، اور اسے چلانے گے بناتے ہیں،
نوٹس کہ اس نے ابھی تک کچھ کرنا نہیں لگ رہا ہے.
یہ صرف اس کے اپنے نام پرنٹ.
لیکن اگر میں کہتا ہوں کہ الوداع کلاس، کا نوٹس کہ اس پروگرام بظاہر iterates
الفاظ ہے جو کہ آپ نے فوری طور پر ٹائپ کیا گیا ہے وہ یہ کہ یہ ہر ایک سے زیادہ ہے.
اور اس کا مطلب ہے جس کے ذریعے ہم الفاظ تک رسائی حاصل ہے کہ صارف کو فوری طور پر میں ٹائپ ہے
مرکزی تبدیل کرنے سے int اہم (باطل) سے اس ہفتے کے آخر میں شروع کرنے کے مرکزی (argc، argv) int کی طرف سے ہے
اور اس طرح دلائل کمانڈ لائن پیدا کیا جائے گا.
اور ایک بار تم اس میں واقعی بہتر ملے، آپ واقعی trippy پروگرام لکھنے کے قابل ہو جائے گا
جیسا کہ اس میں سے ایک، جس میں اوپر اور اس سے باہر جاتا ہے
فعالیت میں سے کچھ ہم اس طرح دور کیا ہے لیکن سب کو بہت طاقتور ہے.
>> تو ہم نے اس کے ساتھ سکرین پر چھوڑ دو، اور ہم نے تم سے پیر کو نظر آئے گا کریں گے.
>> [CS50.TV]