1 00:00:00,000 --> 00:00:02,270 [Powered by Google Translate] [2 ہفتہ جاری،] 2 00:00:02,270 --> 00:00:04,220 [ڈیوڈ J. Malan، ہارورڈ یونیورسٹی] 3 00:00:04,220 --> 00:00:06,880 یہ [CS50 ہے. CS50.TV] - 4 00:00:06,880 --> 00:00:10,990 ٹھیک ہے. یہ CS50 ہے، اور یہ 2 ہفتے کے آخر ہے. 5 00:00:10,990 --> 00:00:14,410 اگر آپ اس وقت کے ارد گرد بھوک کل کی توقع ہے، 6 00:00:14,410 --> 00:00:18,620 جانتے ہیں کہ ہم ایک چھوٹے سے گروپ کل جمعرات، 1:15 PM منعقد کرنے جا رہے ہیں. 7 00:00:18,620 --> 00:00:21,360 اس یو آر ایل یہاں ہے اگر آپ پر RSVP کرنا چاہتے ہیں. 8 00:00:21,360 --> 00:00:26,740 خلائی محدود ہوتی ہے، لہذا براہ مہربانی اگر جب تک آپ اس کو بھرنے کے فارم کی طرف سے بھرا ہوا ہے معاف کریں. 9 00:00:26,740 --> 00:00:29,300 ایک اور یو آر ایل، اگرچہ، دلچسپی کا باعث ہو سکتا ہے یہ ہے. 10 00:00:29,300 --> 00:00:32,369 صرف ایک ماہ کے وقت کے بارے میں، کورس دستیاب کرایا جا رہا ہے 11 00:00:32,369 --> 00:00:36,890 زیادہ موٹے طور پر edX کے ذریعے، جس کے ذریعے انٹرنیٹ پر لوگوں کے ساتھ کی پیروی کرنے کے قابل ہو جائے گا، 12 00:00:36,890 --> 00:00:39,380 نصاب میں کافی فعال طور پر حقیقت میں مشغول ہے. 13 00:00:39,380 --> 00:00:42,270 وہ CS50 آلات اور CS50 کا استعمال کریں گے بحث 14 00:00:42,270 --> 00:00:45,490 اور مختلف سافٹ ویئر کے اوزار ہے کہ ہم نے پہلے سے ہی کیا گیا ہے اس سمسٹر کا استعمال کرتے ہوئے کے سب سے زیادہ. 15 00:00:45,490 --> 00:00:48,710 اور اقدامات میں سے ایک ہم ایک استعمال کے طور پر اس سال پر لے جانا چاہتے ہیں تو 16 00:00:48,710 --> 00:00:51,930 یہ دیکھنے کے لئے ہم کس طرح زیادہ مواد کا ترجمہ کر سکتے ہیں 17 00:00:51,930 --> 00:00:53,960 بات اور تحریری زبانوں میں. 18 00:00:53,960 --> 00:00:57,500 تو اگر آپ کو اس منصوبے میں حصہ لینے میں دلچسپی ہو سکتی ہے 19 00:00:57,500 --> 00:01:02,270 ہم نے کورس لیکچر کے لئے جس کے تحت انگریزی ٹرانسکرپٹس اور سب ٹائٹل فراہم کرے گا 20 00:01:02,270 --> 00:01:05,450 شارٹس اور سیمناروں اور حصوں اور اس طرح، 21 00:01:05,450 --> 00:01:08,200 اگر آپ روانی سے بات یا روانی سے کسی اور زبان لکھنے، 22 00:01:08,200 --> 00:01:12,290 ہم آپ کو اس منصوبے میں اترنے کی محبت جس میں آپ ویڈیوز میں سے ایک یا اس سے زیادہ پر لے جائے گا، 23 00:01:12,290 --> 00:01:15,200 ایک زبان ہے تم بہت اچھی طرح سے جانتا ہوں میں ان کا ترجمہ ہے. 24 00:01:15,200 --> 00:01:18,700 >> آپ کے انٹرفیس کا احساس دیتے ہیں، اس ویب پر مبنی یوزر انٹرفیس ہے 25 00:01:18,700 --> 00:01:22,090 کہ ہم جو بنیادی طور پر اس طرح ایک UI پیدا کر دے گا کے ذریعے کریں گے. 26 00:01:22,090 --> 00:01:24,290 یہ آپ کے وزٹرز کا ریکارڈ رکھا پہلے کچھ ہالووین سکھا رہی تھی، 27 00:01:24,290 --> 00:01:27,390 اور سیاہ دائیں ہاتھ کی طرف ان وقت کے ٹکٹ پر اگلے 28 00:01:27,390 --> 00:01:31,210 آپ کو مختلف چیزیں نظر آئے گا جو میرے منہ سے اس دن باہر آئے، 29 00:01:31,210 --> 00:01:34,850 اور پھر آپ کو اس کے نیچے کسی دوسری زبان میں ترجمہ کرنے کے قابل ہو جائے گا 30 00:01:34,850 --> 00:01:38,690 بالکل وہی جو میپنگ کے درمیان اس معاملے میں ہے، انگریزی اور ہسپانوی کا کہنا ہے کہ. 31 00:01:38,690 --> 00:01:40,440 تو یہ اصل میں ایک بہت ہی صارف دوست آلہ ہے. 32 00:01:40,440 --> 00:01:43,370 تم اور تیزی سے آگے کی بورڈ شارٹ کٹس کے ساتھ ماضی بہت آسانی سے کر سکتے ہیں. 33 00:01:43,370 --> 00:01:47,490 اگر ایسا ہے تو آپ کو اس کے استعمال میں حصہ لینے اور کرنا چاہتے ہیں تو آپ کے الفاظ نے دیکھا اور پڑھا 34 00:01:47,490 --> 00:01:51,850 وہاں لوگ ہزاروں کی طرف سے ممکنہ طور پر، براہ مہربانی، بلا جھجھک شرکت. 35 00:01:51,850 --> 00:01:54,350 پیر سے بلی کے بچے کے بارے میں ایک لفظ. 36 00:01:54,350 --> 00:02:00,350 ایسا نہ ہو کہ ہم نے ایک حد سے زیادہ ڈراونا پیغام بھیجا ہے، اس کا احساس کرتے ہیں، کے طور پر دفتری اوقات تجویز ہے 37 00:02:00,350 --> 00:02:03,300 اور حصے تجویز ہے، کورس کے ڈیزائن بہت زیادہ ہے 38 00:02:03,300 --> 00:02:07,360 طلباء اور مسئلہ سیٹ کے ذریعے تعاون کام کی بات کر 39 00:02:07,360 --> 00:02:11,260 اور مل کر مسائل، اور واقعی لائن صرف نیچے آتا ہے، 40 00:02:11,260 --> 00:02:16,010 پھر کام بالآخر پیش آپ اپنے ہونا چاہئے. 41 00:02:16,010 --> 00:02:18,860 اور اس طرح بہت ایمانداری سے، یہ دفتری اوقات میں مکمل طور پر عام ہے، 42 00:02:18,860 --> 00:02:22,240 یہ مکمل طور پر بھی کی توقع، کچھ تمہارے ساتھ دوست کے ساتھ بات. 43 00:02:22,240 --> 00:02:24,370 >> اگر وہ یا وہ کسی موضوع کے ساتھ جدوجہد کر رہی ہے اور آپ کی طرح ہیں، 44 00:02:24,370 --> 00:02:27,940 "اوہ، ٹھیک ہے، میں آپ کو کوڈ کے کچھ لائن کی ایک جھلک ہے کہ میں نے لکھا ہے،" ٹھیک ہے، 45 00:02:27,940 --> 00:02:31,250 ایسا ہوتا ہے، اور یہ کہ بہت سازگار سیکھنے کے عمل کے ساتھ ہے، مجھے لگتا ہے،. 46 00:02:31,250 --> 00:02:36,750 کہاں لائن کو پار کر ہو جاتا ہے ہے جب سر کی طرح tilted ہے بہت اور کے لئے یہاں 47 00:02:36,750 --> 00:02:41,160 یا واقعی اس کے لئے منٹ ہے آپ کے دوست کے لئے ایک کو غیر مسدود کرنے کا موقع ہے، 48 00:02:41,160 --> 00:02:44,160 اور یقینا جب چیزوں کا تبادلہ کرنے کے لئے، ای میل اور ڈراپ باکس اور طرح کے ذریعے 49 00:02:44,160 --> 00:02:45,640 بھی وہاں لائن ہے. 50 00:02:45,640 --> 00:02:48,620 تو تمام اسباب کی طرف سے آرام دہ اور پرسکون محسوس کرتے ہیں اور لگتا ہے کہ دوستوں کے ساتھ بات چیت کی حوصلہ افزائی کی 51 00:02:48,620 --> 00:02:52,810 psets اور زیادہ کے بارے میں اور ہم جماعتوں کے احساس اور یہ کہ جو آپ کو بالآخر پیش 52 00:02:52,810 --> 00:02:57,340 آپ کی تخلیق اور کسی کی مصنوعات واقعی ہونا چاہئے. 53 00:02:57,340 --> 00:03:00,490 اور pset2 ڈومین کے مخصوص مسائل میں سے ایک، 54 00:03:00,490 --> 00:03:04,740 جو دیر کل رات باہر آئے گا، خفیہ نگاری کی دنیا میں کودو ہے، 55 00:03:04,740 --> 00:03:08,970 جس میں خفیہ کاری یا scrambling معلومات کے فن ہے، 56 00:03:08,970 --> 00:03:12,600 اور یہ بالآخر سیکورٹی کی دنیا سے متعلق ہے. 57 00:03:12,600 --> 00:03:16,560 اب، ہم میں سے سب سے زیادہ کے لئے سیکورٹی کافی اشیاءہوسکتی میکانزم کی شکل میں آتا ہے. 58 00:03:16,560 --> 00:03:19,050 ہم سب کو صارف نام اور پاس ورڈ ہے، 59 00:03:19,050 --> 00:03:23,450 اور ہم سب بہت خراب صارف کا نام اور پاس ورڈ ہے، امکان سب سے زیادہ ہے. 60 00:03:23,450 --> 00:03:28,240 >> اگر آپ کا پاس ورڈ ایک سے زیادہ ویب سائٹ پر ایک ہی ہے، جو شاید سب سے اچھا خیال نہیں ہے، 61 00:03:28,240 --> 00:03:30,070 کے طور پر کی سمسٹر کے آخر کی طرف ہم بات کریں گے. 62 00:03:30,070 --> 00:03:34,720 کوئی مذاق نہیں ہے - - اگر آپ کے پاس ورڈ میں ایک چپچپا نوٹ کے وزٹرز کا ریکارڈ رکھا جائے گا آپ کے مانیٹر پر 63 00:03:34,720 --> 00:03:38,350 وہ بھی ضروری ہے بہترین ڈیزائن لیکن کافی عام رجحان نہیں ہے. 64 00:03:38,350 --> 00:03:42,470 اور، اگر آپ خفیہ نگاری کا استعمال نہیں کر رہے ہیں آپ کے پاس ورڈ کو خفیہ کرنے کے لئے 65 00:03:42,470 --> 00:03:44,210 وہ خاص طور پر کمزور ہیں. 66 00:03:44,210 --> 00:03:47,270 تو اگر آپ کو لگتا ہے کہ آپ سپر ایک خفیہ لفظ دستاویز رکھنے کی طرف سے کیا جا رہا ہے کر رہے ہیں ہوشیار 67 00:03:47,270 --> 00:03:49,910 کہیں آپ کی ہارڈ ڈرائیو پر اپنے تمام پاسورڈز کی ہے 68 00:03:49,910 --> 00:03:53,670 لیکن یہ ایک فولڈر میں ہے کہ کسی میں دیکھو، وہ بھی ایک بہت محفوظ طریقہ کار نہیں ہے جا رہا ہے. 69 00:03:53,670 --> 00:03:56,990 اور تو کیا pset2 متعارف کرائے گا، خفیہ نگاری کے اس فن ہے 70 00:03:56,990 --> 00:04:02,010 اور معلومات scrambling تاکہ پاس ورڈ طرح چیزیں زیادہ محفوظ ہیں. 71 00:04:02,010 --> 00:04:05,790 یہاں سیاق و سباق یہ ہے کہ غیر محفوظ ڈیٹا کے ساتھ 72 00:04:05,790 --> 00:04:07,930 خفیہ اور اس جدوجہد کا موقع آتا ہے. 73 00:04:07,930 --> 00:04:11,470 اور اس طرح یہ، مثال کے طور پر، ایک خفیہ کردہ پیغام کی ایک مثال ہے. 74 00:04:11,470 --> 00:04:14,700 یہ اصل میں انگریزی میں کچھ کہتے ہیں، لیکن یہ واضح طور پر مکمل طور پر واضح نہیں ہے. 75 00:04:14,700 --> 00:04:18,279 اور ہم آج مکمل دائرے میں آنے کے علاوہ چڑھانا کیا یہ خفیہ پیغام ہے گے. 76 00:04:18,279 --> 00:04:23,490 لیکن چیزیں کمپیوٹر کی حقیقی دنیا میں جیسے وہ انگریزی جملے ہو سکتا ہے بھی نہیں دیکھو. 77 00:04:23,490 --> 00:04:28,430 مثال کے طور پر، یہ ہے جو آپ کو ایک معیاری لینکس یا میک یا UNIX کمپیوٹر پر تلاش کر سکتے ہیں 78 00:04:28,430 --> 00:04:32,070 ایک فائل میں ایک بار تھا صلی اللہ علیہ وسلم ایک وقت قرار دیا پاس ورڈ فائل ہے. 79 00:04:32,070 --> 00:04:34,200 >> آج کل یہ دوسرے مقامات پر منتقل کر دیا گیا ہے. 80 00:04:34,200 --> 00:04:39,210 لیکن اگر آپ کو ایک ایسا نظام پر صحیح جگہ میں دیکھو، تم نہ صرف اپنے صارف نام نظر آئے گا 81 00:04:39,210 --> 00:04:43,400 یا سسٹم پر دوسرے لوگوں کی ہے، لیکن آپ کو ان کے پاس ورڈ کی ایک خفیہ کردہ ورژن دیکھیں گے. 82 00:04:43,400 --> 00:04:47,980 درحقیقت لفظ وہاں crypt تجویز کیا گیا ہے کہ مندرجہ ذیل چیزیں خفیہ ہے، 83 00:04:47,980 --> 00:04:52,680 اور بظاہر بے ترتیب حروف اور حروف اور اعداد کا یہ سلسلہ اور وغیرہ 84 00:04:52,680 --> 00:04:56,480 اور صرف عام طور پر کوئی راز جان کر decrypted کیا جا سکتا ہے ہے - 85 00:04:56,480 --> 00:04:58,840 ایک خفیہ لفظ، ایک خفیہ نمبر - 86 00:04:58,840 --> 00:05:03,160 اور یقینا کسی قسم کی بالآخر فوڑے خفیہ نگاری نیچے کے فن پر اعتماد کرتے ہیں، 87 00:05:03,160 --> 00:05:05,650 اور ایک ایسی چیز ہے کہ کسی اور کا نہیں کرتا جانے 88 00:05:05,650 --> 00:05:10,090 تو ہم آج تھوڑا تفصیل سے اس کی اور pset میں آنے کی کریں گے. 89 00:05:10,090 --> 00:05:12,200 اور اب پاس / ناکام پر ایک لفظ. 90 00:05:12,200 --> 00:05:15,360 تم میں سے بعض کو خاص طور پر اس صورت حال میں جبکہ pset1، آلات میں dived ہے، 91 00:05:15,360 --> 00:05:19,080 اور خود کے لئے ایک بہت ہی نئی دنیا کا احساس، کہ کوبٹھاوں اور الجھن 92 00:05:19,080 --> 00:05:21,700 اور صرف تکنیکی مشکلات بہت متوقع ہیں، 93 00:05:21,700 --> 00:05:24,180 ، خاص طور پر پہلی pset، جہاں صرف اتنا نیا ہے کے ساتھ 94 00:05:24,180 --> 00:05:27,730 LS اور سی ڈی سے واقف ہو رہی ہے اور ان تمام arcane حکم 95 00:05:27,730 --> 00:05:33,050 اور ایک نیا ماحول ہے، اور یہ کہ اصل مال اور خود پروگرامنگ سے الگ ہے. 96 00:05:33,050 --> 00:05:36,940 تو بھی احساس ہے کہ یقینی طور پر دفتری اوقات ایک کی حمایت کے ڈھانچے کے طور پر موجود ہیں. 97 00:05:36,940 --> 00:05:38,880 >> حصے میں اس آنے والے اتوار کو شروع کرتے ہیں. 98 00:05:38,880 --> 00:05:42,960 لیکن سب سے اہم بات یہ ہے کہ، اگر آپ محسوس کر صرف یہ ہے کہ اس دنیا میں آپ کے لئے نہیں کر رہے ہیں 99 00:05:42,960 --> 00:05:44,710 احساس ہے کہ یہ واقعی وقت لگے ہے. 100 00:05:44,710 --> 00:05:48,600 اور یہ اس موقع کے لئے سال پہلے ایک کلاس پاس کرنے / ناکام نہیں تھے میرے لئے، 101 00:05:48,600 --> 00:05:50,990 سکوئر سے، میں نے کبھی سوچا بھی نہیں ہے کلاس روم میں قدم. 102 00:05:50,990 --> 00:05:53,690 اور آپ اسے تبدیل تک، کا کہنا ہے کہ کر سکتے ہیں، پانچویں کورس کے پیر 103 00:05:53,690 --> 00:05:58,280 ، اگر ایسا ہے تو آپ کو اب کنارے پر ہو کسی دوسرے کے پانیوں میں، کہ بجائے سر مکمل طور پر احساس 104 00:05:58,280 --> 00:06:01,260 کرتے ہیں ضرور / ناکام گزر کو تبدیل کرنے کے بارے میں غور کریں. 105 00:06:01,260 --> 00:06:04,570 ایک بار پھر، واقعی یہ ثقافت نہیں یہاں چیزیں لینے کے ہارورڈ میں گزر / ناکام 106 00:06:04,570 --> 00:06:08,670 کیونکہ سب واقعی یا overachieve پر، حاصل کرنے کے لئے چاہتا ہے 107 00:06:08,670 --> 00:06:11,130 لیکن سچ کہوں تو، یہ کچھ کرنے کی کوشش کے ایک شاندار طریقہ ہے 108 00:06:11,130 --> 00:06:16,720 جو آپ سے واقف نہیں، اور ہو سکتا ہے آپ زیادہ تر صورتوں میں کیا کر رہی ہوں، ٹھیک ہے، 109 00:06:16,720 --> 00:06:18,210 شاید اپنے حیرت بہت ہے. 110 00:06:18,210 --> 00:06:20,980 اور زیادہ ٹھوس لحاظ سے، جو مجھے لگتا ہے کہ گزر / عام طور پر ناکام ہے، 111 00:06:20,980 --> 00:06:22,940 خاص طور پر اس صورت حال میں جبکہ آپ pset0 کے ساتھ تجربہ ہو سکتا ہے، 112 00:06:22,940 --> 00:06:26,560 اگر آپ کچھ pset میں 10 گھنٹے، 15 گھنٹے، 25 گھنٹے میں ڈال دیا 113 00:06:26,560 --> 00:06:29,920 اور آپ کو صرف دیوار کے خلاف اپنے سر کر رہے ہیں پیٹنے اور یہ انتہائی رات کو ہو رہا ہے دیر 114 00:06:29,920 --> 00:06:33,950 لیکن آپ کو راستے سے pset 90 فیصد لیا ہے اور تمہیں صرف ایک بات سمجھ نہیں کر سکتے ہیں، 115 00:06:33,950 --> 00:06:36,520 ناکام / پاس واقعی اس طرح ایک طبقے کی برتری لیتا ہے دور 116 00:06:36,520 --> 00:06:39,100 آپ جہاں الگ الگ کر سکتے ہیں اور خوشی، کا کہنا ہے کہ "ٹھیک ہے، مجھے معلوم ہے کہ یہ درست نہیں ہے، 117 00:06:39,100 --> 00:06:42,350 لیکن میں نے اس پر اپنے گدا کام کیا دور میں جہاں یہ ختم ہونے کے ساتھ بہت خوش ہوں، " 118 00:06:42,350 --> 00:06:44,850 اور اس پاس کے لئے توقعات پر پورا اترنے / ناکام ہو جائے گا. 119 00:06:44,850 --> 00:06:47,540 تاکہ ذہن میں رکھنے کی ہے. ٹھیک ہے. 120 00:06:47,540 --> 00:06:50,520 >> ، تم میں سے وہ لوگ جو ہارورڈ یونیورسٹی کے وائی فائی کا استعمال کرنے کی جدوجہد میں مصروف ہے تو 121 00:06:50,520 --> 00:06:54,780 جانتے ہیں کہ ایک CS50 SSID، ایک وائی فائی کنکشن ہے، کے ارد گرد تیرتا ہے 122 00:06:54,780 --> 00:06:56,490 کہ آپ کے لئے بہتر قسمت ہو سکتا ہے. 123 00:06:56,490 --> 00:07:00,130 یہ ایک چھوٹا سا وڈمبنا ہے کہ اس کے لئے پاس ورڈ ہے، اگر آپ کو اس سے منسلک کرنے کی کوشش کریں کرنا چاہتے ہیں 124 00:07:00,130 --> 00:07:08,350 اور ہمیں معلوم ہے کہ اگر یہ بہتر نہیں ہے - - بہتر رفتار کے لئے 8 12345، تمام طریقہ ہے 125 00:07:08,350 --> 00:07:10,910 کیونکہ 8 5 سے زیادہ محفوظ ہے. 126 00:07:10,910 --> 00:07:16,910 لہذا اگر آپ کو پاس ورڈ وائی فائی کی ضرورت ہے، CS50 wirelessly یہاں مربوط، 12345678، 127 00:07:16,910 --> 00:07:20,380 اور CS50 پر عہدے کے بارے میں بات اگر آپ کے پاس ابھی تک وقفے وقفے سے رابطے کے مسائل ہیں، 128 00:07:20,380 --> 00:07:25,420 اور ہم اختیارات ہے کہ اس جگہ کے لئے پتہ رکھا جائے گا. ٹھیک ہے. 129 00:07:25,420 --> 00:07:32,230 خاص طور پر تم میں سے ان لوگوں کو جو پرستار ہر چیز ایپل کے لڑکے یا لڑکیاں ہیں تو ایک فوری جھلکی. 130 00:07:32,230 --> 00:07:37,460 کیا میں نے چند سال سے واپس کھودا اس فائل کو یہاں تھا، iUnlock.c، 131 00:07:37,460 --> 00:07:39,930 صرف کی قسم زیادہ مکمل اور زیادہ پیچیدہ بنانے کے لئے 132 00:07:39,930 --> 00:07:42,560 کچھ زیادہ بنیادی C پروگرام ہم لکھ رہا ہوں. 133 00:07:42,560 --> 00:07:46,910 تو میں نے اس فائل کو کھولا، iUnlock.c. یہ آج کے لئے لیکچرز کے صفحے پر دستیاب ہے. 134 00:07:46,910 --> 00:07:49,810 بائیں ہاتھ پر آپ کے افعال میں سے ایک لمبی فہرست نظر آتا ہے. 135 00:07:49,810 --> 00:07:53,230 تو فیلو جو اس نے لکھا کے افعال میں سے ایک بہت، صرف مرکزی سے زیادہ لکھا. 136 00:07:53,230 --> 00:07:57,340 انہوں نے لائبریریوں کے ایک مکمل جھوبڈ یہاں کیا کرتے تھے، اور اگر ہم طومار کر شروع کے ذریعے، 137 00:07:57,340 --> 00:08:04,890 یہ اصل میں ہے اصل فون کے لئے بہت پہلے کریک، مجھے یقین ہے، ہے. 138 00:08:04,890 --> 00:08:09,830 >> جو جب آپ اصل فون باگنی چاہتے تھے، AT & T سے untether کا مطلب ہے کہ 139 00:08:09,830 --> 00:08:13,710 اور اصل میں اس پر خصوصی سافٹ ویئر انسٹال کریں اور چیزیں کہ ایپل لوگوں کو کرنا نہیں چاہتے تھے، 140 00:08:13,710 --> 00:08:18,480 کسی کو معلوم کرنا کہ وہ کس طرح سافٹ ویئر کی خرابی کا استحصال کر سکتا ہے وقت لگا، 141 00:08:18,480 --> 00:08:22,690 - iUnlock.c غلطیوں، کیڑے ایپل سافٹ ویئر میں، اور اس طرح پیدا ہوا تھا 142 00:08:22,690 --> 00:08:26,760 کہ اگر آپ کو آپ کے کمپیوٹر پر مرتب کیا گیا اور ایک موبائل پر اسے نصب 143 00:08:26,760 --> 00:08:29,430 جو آپ کے کمپیوٹر کے ذریعے، کا کہنا ہے کہ، ایک USB کیبل سے منسلک کیا گیا تھا، 144 00:08:29,430 --> 00:08:32,450 یہ آپ کو آپ کے فون پر انتظامی یا جڑ استحقاق دے گی 145 00:08:32,450 --> 00:08:34,620 اور آپ کو بہت زیادہ جو کچھ بھی تم چاہتے ہو. 146 00:08:34,620 --> 00:08:36,400 اور اس طرح اس دلچسپ بلی اور ماؤس کھیل رہا ہے 147 00:08:36,400 --> 00:08:39,340 ایپل اور خاص طور پر دنیا کے باقی وہ کے درمیان بہت سے کمپنیوں کی طرح 148 00:08:39,340 --> 00:08:43,350 ان کی چیزیں نیچے تالا لگا تاکہ تم اس کے ساتھ ہی کیا جو وہ ارادہ رکھتے ہیں کر سکتے ہیں کرنے کی کوشش کریں. 149 00:08:43,350 --> 00:08:47,360 لیکن اس طرح لوگوں اور کم سطح کے تفصیلات کی تفہیم کا شکریہ - 150 00:08:47,360 --> 00:08:50,830 اور اس معاملے میں C پروگرامنگ - اور واقف تشکیل کی بہت 151 00:08:50,830 --> 00:08:55,280 کہ ہم کھیلنا شروع کر دیا ہے، تو آپ کو واقعی ہارڈ ویئر بیعانہ کر سکتے ہیں 152 00:08:55,280 --> 00:08:59,250 ایک انداز میں آپ کو دیکھ کر صحت مند اور کچھ کارپوریٹ ہستی ضروری نہیں ہے. 153 00:08:59,250 --> 00:09:01,600 تو مثال کے طور پر، مجھے پتہ نہیں یہ سب کیا کر رہی ہے، 154 00:09:01,600 --> 00:09:03,580 لیکن GetVersion بہت براہ راست آواز 155 00:09:03,580 --> 00:09:05,710 ہے اور ایسا لگتا ہے جیسے یہ ایک تقریب میں ہے کہ اس شخص نے لکھا ہے. 156 00:09:05,710 --> 00:09:09,250 یہ کچھ طرح کی ایک دلیل کے طور پر عددی لیتا ہے، کچھ بھی واپس نہیں کرتا ہے، 157 00:09:09,250 --> 00:09:13,710 لیکن لوپ کے لئے یہاں اور اگر حالت، حالت وقفے اگر لوپ ظاہر 158 00:09:13,710 --> 00:09:16,770 اور کسی نہ کسی طرح ورژن کی تعداد سے متعلق ہے، اور اگر ہم ذیل میں سکرال، 159 00:09:16,770 --> 00:09:19,650 اگرچہ ان مطلوبہ الفاظ میں سے ایک بہت کچھ کے نئے ہونے جا رہے ہیں. 160 00:09:19,650 --> 00:09:22,590 اور یہاں کے افعال میں سے ایک پوری بہت ہم نے کبھی نہیں دیکھا ہے اور کبھی نہیں دیکھ سکتا ہے 161 00:09:22,590 --> 00:09:24,350 سمسٹر کے دوران. 162 00:09:24,350 --> 00:09:29,160 >> دن کے آخر میں، یہ ایک ہی اصول اور منطق مندرجہ ذیل ہے کہ ہم کیا گیا ہے کے ساتھ کھیلنے کے ابھی تک. 163 00:09:29,160 --> 00:09:34,340 تو یہ اب تک بھی آپ کے فون 3s یا 4s یا جلد ہی 5s ان دنوں ٹوٹ پرانی ہے، 164 00:09:34,340 --> 00:09:38,830 لیکن معلوم ہے کہ یہ سب بہت اس دنیا سے حاصل کیا ہے کہ ہم میں dived ہے. 165 00:09:38,830 --> 00:09:42,280 چلو تھوڑا سا زیادہ سادہ مثال کے طور پر ایک نظر ڈالیں: 166 00:09:42,280 --> 00:09:46,260 اس میں سے ایک، صرف کچھ نحو کے ساتھ کرنے کو گرم اور بھی کچھ دیگر ڈیٹا کی قسم 167 00:09:46,260 --> 00:09:48,910 کہ ہم کے بارے میں بات کی ہے لیکن ہے C. میں واقعی نہیں دیکھا 168 00:09:48,910 --> 00:09:53,670 یہ ایک ملاقات کی positive1.c فائل ہے، اور سب سے اوپر تبصرے کے مطابق، 169 00:09:53,670 --> 00:09:56,070 یہ صرف کا مطالبہ ہے کہ ایک صارف کو ایک مثبت عدد فراہم. 170 00:09:56,070 --> 00:09:59,910 تو یہ کیا جبکہ ایک لوپ ہے، جو صارف انٹرایکٹو پروگراموں کے لئے بہت اچھا ہے اس کی ایک مثال ہے 171 00:09:59,910 --> 00:10:02,070 ، جہاں آپ صارف کو بتانے کی ضرورت ہے کچھ کرنا 172 00:10:02,070 --> 00:10:05,530 اور اگر وہ تعاون نہیں آپ کو ان میں چللاو یا ان کی ان پٹ کو مسترد کرتے ہیں. 173 00:10:05,530 --> 00:10:10,480 پوائنٹ میں کیس: میں لائنیں 24 کے ذریعے 19 کرنے جا رہا ہوں 174 00:10:10,480 --> 00:10:14,620 جب تک صارف نے مجھے نہیں ہے ایک مثبت عدد ہے. 175 00:10:14,620 --> 00:10:21,340 18 لائن پر یہ تفصیل، میں اس پورے looping کی تعمیر کے اوپر کیوں (ن) نے اعلان 176 00:10:21,340 --> 00:10:26,870 22 لائن کے ساتھ جہاں میں واقعی میں (ن) کو حاصل کرنے کے لئے دیکھ بھال کے خلاف ہے؟ جی ہاں. 177 00:10:26,870 --> 00:10:29,330 سکوپ [طالب علم. >> جی ہاں، تو گنجائش کے اس مسئلہ. 178 00:10:29,330 --> 00:10:31,770 اور عام آدمی کی شرائط میں، جو گنجائش سے رجوع کرتا ہے؟ 179 00:10:34,880 --> 00:10:41,560 جی ہاں. >> [اشراوی طالب علم کے جواب] >> آپ کو ایک زور کچھ بات کر سکتا ہوں؟ 180 00:10:41,560 --> 00:10:45,440 [طالب علم] تم کہاں اس متغیر تک رسائی حاصل کر سکتے ہیں. >> کامل. 181 00:10:45,440 --> 00:10:47,610 تم کہاں کسی خاص متغیر تک رسائی حاصل کر سکتے ہیں. 182 00:10:47,610 --> 00:10:50,990 اور عام طور پر، انگوٹھے کی حکمرانی ابھی تک رہا ہے کہ کچھ متغیر کی گنجائش 183 00:10:50,990 --> 00:10:56,140 سب سے حال ہی میں گھوبگھرالی منحنی خطوط وحدانی ہے کہ تم نے دیکھا ہے کی طرف سے وضاحت کی گئی ہے. 184 00:10:56,140 --> 00:11:03,070 >> اور تو اس صورت میں، اگر میں (ن) کو 22 لائن پر اعلان کی غلطی کی ہے اس لائن کام کریں گے. 185 00:11:03,070 --> 00:11:10,840 میں ایک int حاصل کرتے ہیں، اور میں 22 سطر میں اس متغیر (ن) میں ڈال دیں گے، 186 00:11:10,840 --> 00:11:17,060 لیکن جو کوڈ کے مطابق کوئی اندازہ نہیں ہے میں کس بارے میں بات کر رہا ہوں اب ہوگا؟ >> [طالب علم] 25. 187 00:11:17,060 --> 00:11:23,840 [Malan] 25، اور یہ 24 بدل جاتا ہے کے ساتھ ساتھ کیونکہ یہ اس کیس میں گھوبگھرالی منحنی خطوط وحدانی سے باہر آتا ہے. 188 00:11:23,840 --> 00:11:28,550 تو اذيت دينے والے صرف ایک تھوڑا سا ہے لیکن بہت آسانی سے محض متغیر اعلان کی طرف سے حل 189 00:11:28,550 --> 00:11:30,700 تقریب خود باہر. 190 00:11:30,700 --> 00:11:32,760 آج ہم بعد میں دیکھیں گے آپ کو مزید ایک قدم جا سکتے ہیں 191 00:11:32,760 --> 00:11:34,940 اور تم تھوڑا سست بھی ہو سکتا ہے. 192 00:11:34,940 --> 00:11:39,660 اور یہ عام طور پر سفارش کی گئی ہے نہیں، لیکن آپ کو سست بھی مل سکے 193 00:11:39,660 --> 00:11:44,150 اور عالمی سطح پر ایک متغیر ڈال، ایک تقریب کے، اندر بات نہیں، ایک لوپ کے اندر نہیں، 194 00:11:44,150 --> 00:11:49,800 لیکن فائل میں ہی، آپ کے افعال میں سے سب سے باہر لکھا، جیسا کہ میں نے 15 لائن پر یہاں کیا ہے. 195 00:11:49,800 --> 00:11:55,220 یہ عام طور وسلم frowned ہے، لیکن احساس ہوتا ہے یہ بعض اوقات دیگر مسائل کا حل ہے، 196 00:11:55,220 --> 00:11:56,910 جیسا کہ ہم آخر میں نظر آئے گا. 197 00:11:56,910 --> 00:11:59,500 تو اس طرح اب ہم اسے چھوڑ، لیکن چلو دیکھیں اگر ہم اس کو دوبارہ سے لکھنا کر سکتے ہیں کریں گے 198 00:11:59,500 --> 00:12:02,360 صرف خود تھوڑا مختلف کا اظہار کرتے ہوئے شروع کرنے کے لئے. 199 00:12:02,360 --> 00:12:05,550 ، صرف صاف ہو جائے، یہ پروگرام positive1 ہے. 200 00:12:05,550 --> 00:12:11,980 مجھے آگے یہاں جاؤ اور میرے ٹرمنل ونڈو میں positive1، درج کریں. 201 00:12:11,980 --> 00:12:15,080 ٹھیک سے آگاہ کریں. میں positive1 چلانے کے لئے، مارا درج کریں کی جا رہی ہوں. 202 00:12:15,080 --> 00:12:19,250 میں درخواست کرتا ہوں کہ تم نے مجھے ایک مثبت عدد صحیح دے. میں -1 کہیں گے. یہ کام نہیں کیا. 203 00:12:19,250 --> 00:12:22,340 0، 99. یہ کام کرنے لگتا ہے. 204 00:12:22,340 --> 00:12:25,310 ہو سکتا ہے کہ سب سے زیادہ سخت نہیں ٹیسٹ، لیکن کم از کم یہ ایک اچھا وویک چیک 205 00:12:25,310 --> 00:12:27,100 کہ ہم صحیح راستے پر ہیں. 206 00:12:27,100 --> 00:12:29,570 >> تو اب ہم آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور اس کا ورژن 2 کو کھولنے، 207 00:12:29,570 --> 00:12:32,800 اور کیا مختلف پہلے سے ہی ہے؟ 208 00:12:32,800 --> 00:12:39,030 یہ ایک ہی بات کو لاگو کرتی ہے، لیکن ہے کہ واضح طور پر مختلف اس وقت کے طور پر باہر سے کود ہے؟ 209 00:12:40,790 --> 00:12:47,090 سبز رنگ میں یہ bool. یہ سبز، اس bool، جس میں ایک ڈیٹا کی قسم ہے کے طور پر جانا جاتا ہے کے مطلوبہ الفاظ میں روشنی ڈالی ہے. 210 00:12:47,090 --> 00:12:50,510 یہ سی کے تمام ورژن میں نہیں آتی تعمیر 211 00:12:50,510 --> 00:12:52,650 آپ کو ایک مخصوص لائبریری کو شامل کرنے کی ضرورت ہے. 212 00:12:52,650 --> 00:12:56,460 ہمارے معاملے میں، میں CS50 لائبریری شامل ہیں تاکہ ہم bool پر رسائی حاصل ہے. 213 00:12:56,460 --> 00:12:59,860 لیکن 18 کی لائن میں، ہم بولین یہاں قدر کہا جاتا شکر گزار ہیں. 214 00:12:59,860 --> 00:13:02,190 میں یہ کچھ بلا سکتی تھی، لیکن میں اس کے شکر گزار کہا 215 00:13:02,190 --> 00:13:04,750 صرف کی قسم کچھ semantic مطلب تبلیغ. 216 00:13:04,750 --> 00:13:07,700 تو ابتدائی طور پر 18 لائن پر، میں بظاہر شکر گزار نہیں ہوں 217 00:13:07,700 --> 00:13:12,230 کیونکہ بولین شکر گزار قدر 18 سطر میں جھوٹے initialized ہے. 218 00:13:12,230 --> 00:13:16,500 اور پھر یہ لگتا ہے کہ میں 21 لائنوں میں یہاں 23 کے ذریعے کیا ہے 219 00:13:16,500 --> 00:13:19,200 ہے، میں صرف قسم میری منطق کو دوبارہ ہے. 220 00:13:19,200 --> 00:13:26,100 22 لائن میں تو کوئی فعل مختلف، لیکن اب میں چیک کرنے کے لیے اگر int صارف فراہم کی ہے 221 00:13:26,100 --> 00:13:31,360 0 سے بڑا ہے، تو میں صرف حقیقی کا شکر ادا کی قدر تبدیل کریں. 222 00:13:31,360 --> 00:13:35,590 اور مجھے ایسا کیوں کرتے ہیں؟ کیونکہ 25 سطر میں، بظاہر میں ایک شرط چیک کرنے کے لیے جا رہا ہوں. 223 00:13:35,590 --> 00:13:39,760 اس لوپ کو کیا جبکہ شکر گزار باطل ہے. 224 00:13:39,760 --> 00:13:42,960 لہذا میں 1 ورژن کے لئے ایک متبادل کے طور پر اس کی تجویز پیش کی 225 00:13:42,960 --> 00:13:47,050 کیونکہ اس میں کم از کم تھوڑا زیادہ بدیہی شاید ہے، اسے تھوڑا انگریزی میں زمین ہے. 226 00:13:47,050 --> 00:13:51,980 تو مندرجہ ذیل کرتے ہیں جبکہ آپ کے شکر گزار ہیں یا نہیں جبکہ شکر گزار باطل ہے. 227 00:13:51,980 --> 00:13:56,220 اور اس وقت بھی میں بظاہر یاد ہے صارف میں ٹائپ کی پرواہ نہیں کرتے 228 00:13:56,220 --> 00:14:00,050 نوٹس کیونکہ کوئی متغیر (ن)، تو اصل میں، وہاں ایک چھوٹی سی سفید جھوٹ ہے. 229 00:14:00,050 --> 00:14:03,290 >> فعل، پروگرام تھوڑا سا مختلف ہے، ایک بار ہم نے اس کے سب سے نیچے دیئے حاصل کرنے کے لئے 230 00:14:03,290 --> 00:14:04,960 کیونکہ مجھے یاد نہیں کیا (ن) ہے رہا ہوں. 231 00:14:04,960 --> 00:14:09,120 لیکن میں یہاں کا مظاہرہ کرنا چاہتے تھے بھی ہے کہ اگرچہ ہم نے GetInt دیکھا ہے 232 00:14:09,120 --> 00:14:13,780 اور کیا جا رہا ہے ایک دائیں ہاتھ کی طرف پر استعمال کیا جاتا ہے GetString علامت اس طرح اب تک برابر 233 00:14:13,780 --> 00:14:17,310 تاکہ ہم قدر، تکنیکی طور پر، جو سختی ضروری نہیں ہے یاد. 234 00:14:17,310 --> 00:14:20,290 اگر، جو بھی وجہ سے آپ کو صرف قیمت کو بچانے کے لئے کی پرواہ نہیں ہے کے لئے 235 00:14:20,290 --> 00:14:25,540 تم صرف قیمت چیک کرنے کے لیے، دیکھیں گے کہ ہم GetInt یہ صرف لکھ سکتے ہیں کرنا چاہتے ہیں، 236 00:14:25,540 --> 00:14:27,320 کھلی قوس، قوس. 237 00:14:27,320 --> 00:14:30,570 یہ فنکشن ایک قدر واپس جا رہا ہے، کے طور پر ہم کہہ رہے ہیں. 238 00:14:30,570 --> 00:14:32,220 کیا آپ اسے دوبارہ ایک int دینے جا رہا ہے. 239 00:14:32,220 --> 00:14:34,460 اور اگر ایسا ہے تو آپ کو ذہنی طور پر یہ کیا ہو رہا کے بارے میں سوچتے ہیں، 240 00:14:34,460 --> 00:14:38,190 GetInt جب میں 99 میں ٹائپ کریں، 99 نمبر واپس، 241 00:14:38,190 --> 00:14:41,840 اور تو conceptually، ایسا لگتا ہے جیسے میرا کوڈ اصل میں یہ تھے. 242 00:14:41,840 --> 00:14:45,950 تو اگر 99 یقینا 0 سے بڑا ہے، تو شکر گزار سچ ہو جاتا ہے، 243 00:14:45,950 --> 00:14:50,810 تو 25 لائن کا احساس اہ، ہم نے کیا ہے کیونکہ میں اب شکر گزار ہوں رہے ہیں، 244 00:14:50,810 --> 00:14:53,970 اور 26 سطر میں، ہم صرف، کا کہنا ہے کہ "مثبت عدد صحیح کے لئے شکریہ!" 245 00:14:53,970 --> 00:14:55,960 جو کچھ بھی یہ ہوا. 246 00:14:55,960 --> 00:14:59,140 اب معمولی syntactic چینی کرتے ہیں، تو بات کرنے کی. 247 00:14:59,140 --> 00:15:04,670 چلو دیکھتے ہیں اگر ہم نے اس تیسرے اور آخری ماڈل کے ساتھ positive3 میں 25 لائن کو صاف کر سکتے ہیں. 248 00:15:04,670 --> 00:15:13,600 >> فرق صرف اتنا ہے جو کوڈ کے مطابق دیکھا؟ >> [طالب علم] 25. >> [Malan] جی ہاں، 25. 249 00:15:13,600 --> 00:15:17,680 اور ہم نے یہ چال نہیں ہے ابھی تک دیکھا، لیکن ہم نے پیر کو فجائیہ نقطہ نظر تھا، 250 00:15:17,680 --> 00:15:21,070 جو کیا کرنا ہے؟ >> [طالب علم] نہیں. نہیں >> یا نفی. 251 00:15:21,070 --> 00:15:23,510 تو ایک بولین قدر اور اس کی قدر پلٹائیں. 252 00:15:23,510 --> 00:15:25,810 جھوٹے یہ سچ ہے کہ باطل ہو جاتا ہے، سچ ہو جاتا ہے. 253 00:15:25,810 --> 00:15:30,420 اس کے تو، میں تجویز کریں گے، یہاں تک کہ کوڈ لکھنے کی ایک چھوٹی سی زیادہ بدیہی طریقہ ہے 254 00:15:30,420 --> 00:15:33,430 کیونکہ میں اب بھی جھوٹے مشکور ابتدا، میں اب بھی مندرجہ ذیل کرتے ہیں، 255 00:15:33,430 --> 00:15:36,010 میں صحیح شکرگزار مقرر وقت آنے پر، 256 00:15:36,010 --> 00:15:40,880 لیکن اب تم واقعی یہ زبانی طور پر بائیں سے دائیں کوڈ کا ترجمہ کر سکتے ہیں، 257 00:15:40,880 --> 00:15:45,630 جبکہ (شکر گزار!)؛ کیونکہ دھماکے یا فجائیہ نقطہ نہیں تصور کرنا، 258 00:15:45,630 --> 00:15:47,580 تو جبکہ شکر گزار نہیں. 259 00:15:47,580 --> 00:15:49,900 تو پھر، ہم SE فی کوئی نئے متعارف کروایا نہیں ہے. 260 00:15:49,900 --> 00:15:53,730 ہم Booleans کے بارے میں واپس بات کی تھی جب ہم سکریچ کے ساتھ ادا کیا، 261 00:15:53,730 --> 00:15:56,720 لیکن اب احساس ہوتا ہے ہم نے بہت سے مختلف طریقوں سے ہماری کوڈ لکھنے شروع کر سکتے ہیں. 262 00:15:56,720 --> 00:16:01,060 تو خاص طور پر pset1 میں اگر آپ کو کچھ پروگرام کو لکھنے کا طریقہ جاننے کی جدوجہد کر طرح کی ہیں، 263 00:16:01,060 --> 00:16:04,340 مشکلات ہیں، آپ کو قسمت میں ہو کیونکہ وہاں کے حل کے کسی بھی تعداد میں ہو سکتا ہے 264 00:16:04,340 --> 00:16:06,110 کہ آپ صلی اللہ علیہ وسلم ہو سکتا ہے. 265 00:16:06,110 --> 00:16:10,500 مثال کے طور پر، یہ صرف پروگراموں میں سے بھی آسان 3 ہے. ٹھیک ہے. 266 00:16:10,500 --> 00:16:14,200 اور اب یاد پیر ہم واپسی اقدار کے ساتھ اس نوٹ پر چھوڑ دیا. 267 00:16:14,200 --> 00:16:18,450 تو ہم بہت ہی پہلی بار کے لئے ایک ایسا پروگرام ہے جو بنیادی ہی نہیں ہے نے لکھا؛ 268 00:16:18,450 --> 00:16:22,550 یہ بھی اس کی اپنی مرضی کے تقریب میں ہے کہ میں نے یہاں لکھا ہے. 269 00:16:22,550 --> 00:16:26,810 تو اوپر 31 میں 34 کے ذریعے ایک کیوب تقریب کو لاگو کیا ہے. 270 00:16:26,810 --> 00:16:30,240 یہ پیچیدہ نہیں ہے. یہ صرف ایک * ایک *. اس صورت میں ہے 271 00:16:30,240 --> 00:16:34,750 لیکن کیا اس کے بارے میں ضروری ہے وہ یہ ہے کہ میں ایک کی شکل میں ان پٹ لے جا رہا ہوں 272 00:16:34,750 --> 00:16:39,180 اور میں ایک * ایک * کی شکل میں پیداوار واپس آ رہا ہوں. 273 00:16:39,180 --> 00:16:43,560 تو اب میں صلاحیت ہے، بہت کچھ میں prinf صرف کے ساتھ کیا کرتے تھے جیسے 274 00:16:43,560 --> 00:16:47,240 کیوب تقریب کو فون کر کے اس تقریب کو فون کریں. 275 00:16:47,240 --> 00:16:51,970 >> اور کیوب تقریب کچھ ان پٹ لیتا ہے، اور کیوب کی تقریب کچھ پیداوار واپس. 276 00:16:51,970 --> 00:16:56,960 کے برعکس، printf صرف کچھ کیا. 277 00:16:56,960 --> 00:17:00,840 یہ کچھ ہے کہ ہم پرواہ واپس نہیں کیا، اگرچہ یہ ایک طرف ایک قدر واپس کرتا ہے؛ 278 00:17:00,840 --> 00:17:03,110 تم صرف عام طور پر اس کو نظر انداز کرتے ہیں. 279 00:17:03,110 --> 00:17:06,510 Printf کچھ میں نے کیا. یہ پردے پر پرنٹ کی ایک ضمنی اثر تھا. 280 00:17:06,510 --> 00:17:11,770 یہاں اس کے برعکس، ہم نے کیوب تقریب، جس میں اصل میں کچھ واپس ہے. 281 00:17:11,770 --> 00:17:15,520 تو جو لوگ اس سے واقف ہیں ان کے لئے، یہ ایک کافی براہ راست خیال ہے. 282 00:17:15,520 --> 00:17:19,640 لیکن جو لوگ آدانوں میں گزر رہا اور واپس نتائج حاصل کرنے کے اس خیال کے ساتھ کم واقف ہیں ان کے لئے، 283 00:17:19,640 --> 00:17:21,950 ہم صرف کچھ سپر سادہ کرنے کی کوشش ہے. 284 00:17:21,950 --> 00:17:25,490 آرام دہ اور پرسکون کسی مرحلے پر مختصر طور پر آ رہی ہے؟ 285 00:17:25,490 --> 00:17:28,040 تم نے تم پر ایک کیمرے کے ساتھ آرام دہ اور پرسکون کے ساتھ ہے. جی ہاں؟ ٹھیک ہے. 286 00:17:28,040 --> 00:17:31,240 آپ کا نام کیا ہے؟ >> [طالب علم] کین. >> کین. ٹھیک ہے. کین، پر آتے ہیں. 287 00:17:31,240 --> 00:17:35,050 کین قسم کی ایک تقریب یہاں ہونے جا رہا ہے. 288 00:17:35,050 --> 00:17:38,720 چلو، آگے بڑھو اور اس کے کیا. چلو، ایک چھوٹا سا پسند ہیں. 289 00:17:38,720 --> 00:17:42,260 آپ سے مل کر اچھا لگا. مرکز مرحلے میں آپ کا استقبال ہے. ٹھیک ہے. 290 00:17:42,260 --> 00:17:46,640 چلو اس بٹن کو یہاں مارا. ٹھیک ہے. 291 00:17:46,640 --> 00:17:49,820 تو یہاں آپ کو ایک جدید چاکبورڈ ہے، 292 00:17:49,820 --> 00:17:53,470 اور میں کیا ہوں اہم تقریب میں مثال کے طور پر ہے، 293 00:17:53,470 --> 00:17:56,460 اور میں نے اپنے ہاتھ میں ایک رکن نہیں ہے. 294 00:17:56,460 --> 00:17:59,710 >> ٹھیک ہے، میں نہیں کہہ سکتا ہے - میں واقعی میں نہیں کس طرح یاد ہے. 295 00:17:59,710 --> 00:18:02,480 میں اچھی کی لکھاوٹ واقعی نہیں ہے، 296 00:18:02,480 --> 00:18:05,520 اور اس لئے میں آپ کو میرے لئے سکرین پر کچھ کو پرنٹ کرنے کے لئے چاہتے ہیں. 297 00:18:05,520 --> 00:18:12,040 میں اہم پروگرام ہے رہا ہوں، اور میں آپ کو اس کا کہنا ہے کہ جا رہا ہوں 298 00:18:12,040 --> 00:18:16,720 میرے چکن شروع میں یہ لکھنے اور پھر آپ کو ان پٹ کو منظور کرتے ہوئے. 299 00:18:16,720 --> 00:18:20,400 تو پاگل ہے اگرچہ اس مشق ہے، کے افعال میں سے تصور اور ایک تقریب پر کال 300 00:18:20,400 --> 00:18:22,400 اور ایک تقریب واقعی فوڑے اس آرہے ہیں. 301 00:18:22,400 --> 00:18:26,260 میں اہم ہوں، میں صرف سکرین پر کچھ printf، اقتباس، unquote لکھا، 302 00:18:26,260 --> 00:18:29,110 میں نے یہ پروگرام چلا رہا ہوں، اور جیسے ہی printf کہا جاتا ہو جاتا ہے، 303 00:18:29,110 --> 00:18:32,880 یہ ایک بحث یا ایک ڈبل قیمت درج کرنے کے درمیان کبھی کبھی پیرامیٹر لیتا ہے. 304 00:18:32,880 --> 00:18:35,880 یہاں یہ دلیل ہے. میں کین پر گزر رہا ہوں. 305 00:18:35,880 --> 00:18:39,020 وہ ایک سیاہ باکس میں سے کچھ بڑی تعداد سال پہلے لکھا ہے 306 00:18:39,020 --> 00:18:41,510 کہ بظاہر صرف جانتا ہے کہ سکرین پر چیزوں کو کس طرح پرنٹ کرنے کے لئے ہے. 307 00:18:41,510 --> 00:18:43,150 تو پھانسی. 308 00:18:49,280 --> 00:18:51,280 یہ برا نہیں ہے. بہت اچھا ہے. 309 00:18:51,280 --> 00:18:55,510 تو اب کین قتل کیا جاتا ہے. کیا اس نے مجھ سے کچھ کے ہاتھ میں واپس کی ضرورت ہے؟ 310 00:18:55,510 --> 00:18:57,470 یہ نہیں ہے کہ ہم ابھی تک دیکھا ہے. 311 00:18:57,470 --> 00:19:00,460 ایک بار پھر، printf اصل میں ایک بڑی تعداد واپس کرتا ہے، لیکن ہم اب نظر انداز کرنے جا رہے ہیں 312 00:19:00,460 --> 00:19:03,470 کیونکہ ہم نے اسے کبھی استعمال نہیں کیا ہے. تو وہ کین کے لئے ہے. 313 00:19:03,470 --> 00:19:08,580 اور تو اب اہم پروگرام کا کنٹرول دوبارہ لیتا ہے 314 00:19:08,580 --> 00:19:11,060 کیونکہ کوڈ کے لائن printf، انہیں قابل عمل کیا جاتا ہے. 315 00:19:11,060 --> 00:19:14,050 اور ہم اپنے راستے کے بارے میں جانا، انہیں قابل عمل جو دوسرے لائنوں ہیں. 316 00:19:14,050 --> 00:19:17,320 تو اب ہم ایک تھوڑا سا مختلف مثال کے طور پر کرنے کی کوشش کریں. 317 00:19:17,320 --> 00:19:24,940 اس بار یہاں پہلے سکرین واضح، اور اس وقت ہم cubing تقریب کروں گا، 318 00:19:24,940 --> 00:19:27,080 لیکن اس وقت، میں ایک پیداوار کی قیمت کی توقع ہے. 319 00:19:27,080 --> 00:19:29,180 >> تو آگے بڑھو اور اس کے کیا. 320 00:19:29,180 --> 00:19:35,790 اب میں کوڈ کی ایک سطر ہے جو یہ کہتا ہے کہ ایکس ایکس کے کیوب ہو جاتا ہے ہے. 321 00:19:41,370 --> 00:19:46,370 کوڈ کے مطابق، یاد ہے، اس طرح لگ رہا ہے: X = کیوب (X)؛ 322 00:19:46,370 --> 00:19:50,930 تو یہ کس طرح کام کرنے جا رہا ہے؟ چلو آگے بڑھو اور آپ کو ایک سفید سکرین کو دوبارہ دے. 323 00:19:50,930 --> 00:19:54,070 اب میں نیچے X کی قدر لکھنے جا رہا ہوں، 324 00:19:54,070 --> 00:20:01,400 جس وقت میں اس وقت کا ہے، کا کہنا ہے کہ، 2 یہ اتنا آسان رکھنے کے لئے. 325 00:20:01,400 --> 00:20:06,150 میں 2 کی قدر، جو میری قیمت ایکس ہے ایک کاغذ کا ٹکڑا نیچے لکھا ہے. 326 00:20:06,150 --> 00:20:10,920 میں اس کین حوالے. >> اور میں صرف جواب لکھا؟ >> جی ہاں، صرف جواب لکھنا ہے. 327 00:20:12,760 --> 00:20:18,940 ٹھیک ہے. اور اب وہ مجھ سے کچھ واپس ہے. ٹھیک ہے. segue اچھا لگا. 328 00:20:18,940 --> 00:20:23,120 لہذا اب اس نے مجھے دیتا واپس اس کیس میں 8 کی قیمت، اور میں نے اس کے ساتھ کیا کرتے ہیں؟ 329 00:20:23,120 --> 00:20:28,250 اصل - چلو دیکھتے ہیں، یہ حق حاصل ہے. میں نے اس کے ساتھ کیا کرنے جا رہا ہوں؟ 330 00:20:28,250 --> 00:20:33,440 اب میں اس قیمت کو لینے کے لئے اور اصل میں یہ یاد میں ان اسی بٹس میں جمع کی جا رہی ہوں. 331 00:20:33,440 --> 00:20:35,170 نوٹس لیکن میں یہاں جدوجہد کر کے رہا ہوں. 332 00:20:35,170 --> 00:20:38,210 میں کچھ الجھن میں ہوں کیونکہ جہاں میں اصل میں X کی قدر کرتے ہیں لکھنے، 333 00:20:38,210 --> 00:20:43,150 کیونکہ جو میں نے ابھی کیا ہے وہ جسمانی طور پر ہاتھ کین کاغذ کا ایک ٹکڑا ہے جو 2 قدر تھا ہے، 334 00:20:43,150 --> 00:20:46,590 جس X تھا، اور یقینا، یہی ہے کیا ہوا ہے. 335 00:20:46,590 --> 00:20:50,210 تو یہ پتہ چلتا ہے کہ جب آپ تقریب کہتے ہیں اور آپ کو ایک بحث میں گزر 336 00:20:50,210 --> 00:20:53,290 ہیلو طرح، دنیا یا آپ 2 کی طرح بحث میں گزر 337 00:20:53,290 --> 00:20:57,110 عام طور پر، آپ کو اس دلیل کی ایک کاپی میں گزر رہے ہیں. 338 00:20:57,110 --> 00:21:00,730 اور اس طرح کے طور پر میں نمبر 2 یہاں لکھا اور کین کو اس کے حوالے کر دیا، 339 00:21:00,730 --> 00:21:04,720 اس کا مطلب یہ ہے کہ میں اب بھی 2 قدر کی ایک کاپی کو کہیں ہونا ضروری ہے 340 00:21:04,720 --> 00:21:08,890 کیونکہ یقینا، اب کہ میں واپس ہو گیا 8 قدر ہے، میں RAM میں واپس جانے کی ضرورت ہے 341 00:21:08,890 --> 00:21:12,130 اور اصل میں نیچے 8 لکھنے جہاں میں نے ایک بار نمبر 2. 342 00:21:12,130 --> 00:21:16,950 تو ضعف، میں گزر، لفظی، قدر کی ایک نقل کے اس تصور کو یاد ہے. 343 00:21:16,950 --> 00:21:20,780 >> کین ان کی بات، آپ کے وزٹرز کا ریکارڈ رکھا دیتا کچھ - 8 کی طرح اس معاملے میں ایک قدر - 344 00:21:20,780 --> 00:21:24,980 اور اس کے بعد میں اس کی قیمت کے ساتھ کچھ کرنا ہے اگر میں اس کے ارد گرد رہنا چاہتا ہوں. 345 00:21:24,980 --> 00:21:29,650 تو یہ سب واپس آنا بہت پہلے بھی واقف ہو گا. 346 00:21:29,650 --> 00:21:34,920 آپ اس ڈیمو کے لئے بہت بہت شکریہ، کین. [تعریف] 347 00:21:34,920 --> 00:21:36,920 بہت اچھا کام کیا ہے. 348 00:21:36,920 --> 00:21:42,690 چلو دیکھتے ہیں کہ کس طرح بالآخر بلا کہ ہم یہاں کیا کر رہے ہو تقریب میں سے کچھ سے متعلق ہیں. 349 00:21:42,690 --> 00:21:47,910 آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور ہمیں cubing مثال کے طور پر یہاں واپس لانے. 350 00:21:47,910 --> 00:21:53,300 اگر ہم واقعی اس کے لینے کے شروع کرنا چاہتے ہیں کہ نوٹس 351 00:21:53,300 --> 00:21:57,570 ہم حقیقت یہ ہے کہ تعداد X ہے کہ یہاں میں منظور کیا جا رہا ہے کے احساس کے لئے جا رہے ہیں 352 00:21:57,570 --> 00:22:01,530 کیا اصل میں کیا جا رہا ہے تقریب میں منظور سے مختلف ہے. 353 00:22:01,530 --> 00:22:05,880 تو پھر، کاپی کی طرف سے اس کے پاس صرف ایک لمحے میں بہت germane بننے جا رہا ہے. 354 00:22:05,880 --> 00:22:09,580 چلو کچھ جو حق ابھی تک بہت کام نہیں کرتا پر ایک نظر لے. 355 00:22:09,580 --> 00:22:13,250 میں آگے جانے کے لئے اور ایک تہائی چھوٹی گاڑی، مثال کے طور پر، جو فطرت کی طرف سے غلطی ہے کھولنے جا رہا ہوں، 356 00:22:13,250 --> 00:22:18,550 اور یہ buggy3 کہا جاتا ہے اور یہ ایک گماگمن تقریب نافذ. 357 00:22:18,550 --> 00:22:25,110 یہاں ہم ایک اہم تقریب ہے جو X اور Y منمانے 1 اور 2 initialized بالترتیب ہے. 358 00:22:25,110 --> 00:22:27,700 ہم GetInt استعمال کرتے ہیں، لیکن ہم صرف ایک سادہ ورزش کی ضرورت ہے کر سکتے ہیں، 359 00:22:27,700 --> 00:22:30,170 تو اس 1 اور 2 کے طور پر مشکل کوڈت ہے. 360 00:22:30,170 --> 00:22:35,340 21 لائنوں اور 22 میں، ہم بظاہر X اور Y، فی سطر 1 پرنٹ کریں. 361 00:22:35,340 --> 00:22:39,720 اس کے بعد 23 لائن پر، میں دعوی کرتے ہیں میں ان اقدار کو گماگمن رہا ہوں، ڈاٹ، ڈوٹ، ڈوٹ. 362 00:22:39,720 --> 00:22:44,170 میں بظاہر فون لائن میں ایک تقریب میں 24 نام نہاد سویپ 2 دلائل لیتا ہے. 363 00:22:44,170 --> 00:22:48,300 یہ مکمل طور پر legit کے لئے کام کرتا ہے 2 دلائل لینے کے لئے ہے. ہم یہ دیکھ چکے ہیں printf یہ پہلے سے ہی کرنا ہے. 364 00:22:48,300 --> 00:22:51,830 >> تو سویپ بظاہر X اور Y لیتا ہے، اور کے طور پر اس کا نام تجویز، 365 00:22:51,830 --> 00:22:54,670 مجھے امید ہے کہ یہ ان 2 اقدار تبادلہ ہو رہا ہے. 366 00:22:54,670 --> 00:23:00,090 تو پھر میں لائن پر دعوی کرتے ہیں 25 "تبدیل" اور میں X اور Y کو دوبارہ پرنٹ 367 00:23:00,090 --> 00:23:03,070 مفروضے کے تحت کہ وہ یقینا کیا گیا ہے تبدیل. 368 00:23:03,070 --> 00:23:06,080 لیکن اگر میں واقعی اس پروگرام کو چلانے کے - مجھے ایک ٹرمینل ونڈو کھولنے، 369 00:23:06,080 --> 00:23:09,860 مجھے buggy3 بنانے - جیسا کہ نام سے پتہ چلتا ہے، یہ اچھی طرح سے ختم کرنے کے لئے نہیں ہے 370 00:23:09,860 --> 00:23:15,770 کیونکہ Y جب میں دیکھیں گے کہ ایکس 1 ہے درج کریں مارا، 2، 371 00:23:15,770 --> 00:23:19,420 ابھی تک اور پروگرام کے اختتام پر، وہ اب بھی ہیں، حقیقت میں، وہی. 372 00:23:19,420 --> 00:23:22,960 تو مظاہرے ابھی کین کے ساتھ، جو اصل میں ہو رہا ہے کی بنیاد پر؟ 373 00:23:22,960 --> 00:23:28,710 چلو اس سویپ تقریب میں کودو. یہ انتہائی مختصر ہے. یہ صرف طویل عرصے سے کوڈ کا ایک چند لائنوں کے ہے. 374 00:23:28,710 --> 00:23:34,520 لیکن کیا سادہ کین کے ساتھ کو بتایا کہ یہاں کہانی کی بنیاد پر بنیادی مسئلہ ہے؟ 375 00:23:34,520 --> 00:23:36,670 سویپ ٹوٹ کیوں ہے؟ 376 00:23:36,670 --> 00:23:39,660 [طالب علم] آپ کو ایک کاپی، نہیں متغیر ذخیرہ کرنے کر رہے ہیں. 377 00:23:39,660 --> 00:23:43,980 بالکل. ہم ایک کاپی ذخیرہ کرنے رہے ہیں، خود متغیر نہیں ہے. 378 00:23:43,980 --> 00:23:47,170 دوسرے الفاظ میں، سویپ بظاہر 2 دلائل، ایک int لیتا ہے، 379 00:23:47,170 --> 00:23:49,370 اور یہ منمانے ایک بی اور کہا جاتا ہے، 380 00:23:49,370 --> 00:23:54,420 اور میں یہاں X اور Y، جو بالترتیب 1 اور 2 میں منظور کر لیا ہے، 381 00:23:54,420 --> 00:23:58,770 لیکن مجھے X میں لفظی نہیں گزر رہا ہوں، میں Y میں لفظی نہیں کر رہا ہوں گزر 382 00:23:58,770 --> 00:24:01,450 میں ایکس کی ایک کاپی اور Y کی ایک کاپی کو منظور کر رہا ہوں. 383 00:24:01,450 --> 00:24:04,510 یہ تقریبا جیسے آپ کاپی اور سویپ میں پیسٹ 384 00:24:04,510 --> 00:24:07,810 اقدار کہ آپ یہ اصل میں جوڑتوڑ کرنا چاہتے ہیں. 385 00:24:07,810 --> 00:24:14,480 تو اگر یہ بات ہے، جب میں پروگرام کے آغاز لائن قتل 35 تو 36 ہے، 386 00:24:14,480 --> 00:24:18,650 جب میں 37 لائن کہانی میں اس وقت ملتا ہے، کی قیمت کیا ہے؟ 387 00:24:21,040 --> 00:24:25,050 کہانی میں اس وقت، 37 لائن، جو اس وقت کی قیمت ہے؟ >> 1 [طالب علم. 388 00:24:25,050 --> 00:24:29,280 [Malan]، یہ صرف 1، ٹھیک ہو جائے گا، کیونکہ ایکس پہلی دلیل کے طور پر میں منظور کیا گیا تھا 389 00:24:29,280 --> 00:24:33,080 اور یہ تقریب صرف منمانے اپنی پہلی دلیل ایک کو بلا رہا ہے. 390 00:24:33,080 --> 00:24:38,200 اسی طرح دوسری دلیل Y ہے، اور یہ صرف منمانے دوسری دلیل ب ہے بلا ہے. 391 00:24:38,200 --> 00:24:40,990 >> یہ وجود میں ائی اصل میں کافی صرف وضاحت کی ہے. اس کے بارے میں سوچو. 392 00:24:40,990 --> 00:24:43,320 ہم میں سے کوئی بھی شخص جو printf لکھا سے ملاقات کی ہے، 393 00:24:43,320 --> 00:24:50,770 تو ضرور وہ کوئی اندازہ نہیں ہے جو ہمارے متغیر 30 سال بعد بلایا جا رہا ہے. 394 00:24:50,770 --> 00:24:56,650 تو آپ کیا کہتے ہیں افعال آپ لکھ رہے ہیں کہ میں متغیر کے درمیان ایک فرق ہے 395 00:24:56,650 --> 00:25:02,080 اور تم کیا کام کرتا ہے آپ کو بلا یا استعمال کر رہے ہیں میں متغیر کہتے ہیں. 396 00:25:02,080 --> 00:25:05,340 تو دوسرے الفاظ میں، میں میری متغیر X اور Y کے طور پر لکھا ہے، 397 00:25:05,340 --> 00:25:08,890 لیکن اگر کسی سویپ کی تقریب لکھا تھا، وہ یقینی طور پر معلوم نہیں کریں گے 398 00:25:08,890 --> 00:25:10,690 جو میرے متغیر بلایا جا رہا ہے، 399 00:25:10,690 --> 00:25:13,830 تو احساس ہوتا ہے کہ یہی وجہ ہے کہ آپ کے ناموں کی اس duality ہے. 400 00:25:13,830 --> 00:25:16,750 تکنیکی طور پر، میں اتفاق کی طرف سے یہ کر سکتا ہے، 401 00:25:16,750 --> 00:25:20,080 لیکن وہ اب بھی نقول کے طور پر کی جائے گی منظور. 402 00:25:20,080 --> 00:25:23,650 خوبصورت اگر یہ ایک خالص اتفاق ہو گا کہ وہ شخص جو سویپ لکھا 403 00:25:23,650 --> 00:25:26,150 تھا اسی کے نام کا استعمال کیا. 404 00:25:26,150 --> 00:25:32,370 ب تو کہانی میں اس وقت، 37 لائن، 1 ہے، 2 ہے، اور اب میں ان کے تبادلہ پر کارروائی. 405 00:25:32,370 --> 00:25:34,900 سب سے پہلے، مجھے اصل میں یہ بہت زیادہ صرف. 406 00:25:34,900 --> 00:25:36,690 مجھے نہیں پتہ ہے کہ کوڈ کا ان 3 لائنز کر رہے تھے. 407 00:25:36,690 --> 00:25:41,210 مجھے بس یہ کرتے ہیں: B = ایک، ایک = B؛ کیا ہے. 408 00:25:41,210 --> 00:25:44,690 اس وجہ سے ٹوٹا ہوا ہے، منطقی طور پر؟ 409 00:25:46,490 --> 00:25:48,900 یہ بدیہی چیز کی طرح ہے، ہے نا؟ 410 00:25:48,900 --> 00:25:52,560 ایک ہو جاتا ہے بستر اور بی تو ایک ہو جاتا ہے، 411 00:25:52,560 --> 00:25:57,730 لیکن مسئلہ یہ ہے کہ جیسے ہی 37 لائن executes، ب اور قدر کیا ہے؟ 412 00:25:57,730 --> 00:26:03,410 اسی، 1، کیونکہ آپ clobbered ہے، تو بات کرنے کے لئے، آپ B تبدیل ایک کے برابر ہے. 413 00:26:03,410 --> 00:26:08,890 تو ایک بار 37 لائن کو پھانسی دے دی ہے، یہ بہت اچھی بات ہے، اب آپ نمبر 1 کی 2 نقول ہیں 414 00:26:08,890 --> 00:26:13,350 اس تقریب کے اندر، تو جب آپ کو 38 سطر میں نے کہا ہے کہ ب =، 415 00:26:13,350 --> 00:26:17,640 آپ کو اس قسم کی مصیبت میں ہے کیونکہ آپ نے صرف 1 1 رہے ہیں بتائے رہے ہیں. 416 00:26:17,640 --> 00:26:20,580 آپ کی طرح کی قیمت کے بارے میں آپ دیکھ بھال کو کھو دیا ہے. 417 00:26:20,580 --> 00:26:23,220 تو اس کی اصل ورژن میں نوٹس، جو میں نے کیا ہے. 418 00:26:23,220 --> 00:26:26,850 بجائے میں کوڈ کا ایک تہائی لائن ہے کہ اس طرح دیکھا تھا. 419 00:26:26,850 --> 00:26:28,580 میں ایک عارضی متغیر کا اعلان. 420 00:26:28,580 --> 00:26:32,170 >> Tmp ایک عارضی متغیر کے لئے ایک بہت عام نام ہے، اور یہ ایک int ہے 421 00:26:32,170 --> 00:26:34,580 کیونکہ یہ میچ جو میں نے اس کی ایک کاپی بنانے کے لئے چاہتے ہیں ہے. 422 00:26:34,580 --> 00:26:39,770 میں tmp کے اندر کی کاپی ذخیرہ، تاکہ ایک بار 37 لائن کو پھانسی دے دی ہے، 423 00:26:39,770 --> 00:26:45,860 کی قیمت ہے - فوری وویک چیک - ب کی قیمت 1، 2، 424 00:26:45,860 --> 00:26:48,970 اور tmp کی قیمت بھی 1 ہے. 425 00:26:48,970 --> 00:26:52,060 تو اب میں 38 لائن پھانسی. 426 00:26:52,060 --> 00:27:00,540 ایک بار 38 لائن executes، ب کی قیمت پر لیتا ہے. اور بی 2 تھا، تو اب 2 ہے. 427 00:27:00,540 --> 00:27:05,210 ب تو کہانی میں اس وقت، 2 ہے، 2 ہے، اور tmp 1 ہے، 428 00:27:05,210 --> 00:27:11,060 تو اب منطقی طور پر، ہم ب میں صرف plop tmp قدر ہم نے کیا کر رہے ہیں کر سکتے ہیں. 429 00:27:11,060 --> 00:27:12,800 تو ہم نے اس مسئلہ کو حل کیا ہے. 430 00:27:12,800 --> 00:27:17,720 بدقسمتی سے، جب میں نے اس فارم میں اس پروگرام چلاتے ہیں، یہ کسی بھی اقدار کو اصل میں نہیں ہے تبادلہ. 431 00:27:17,720 --> 00:27:20,100 لیکن واضح، کیوں؟ 432 00:27:23,660 --> 00:27:26,450 میں صرف ایک لمحے سے پہلے منطقی مسئلہ مقرر کیا، 433 00:27:26,450 --> 00:27:31,020 لیکن پھر اگر میں اس پروگرام چلاتے ہیں، X اور Y کوئی تبدیلی نہیں رہیں گے 434 00:27:31,020 --> 00:27:33,310 پروگرام پر عملدرآمد کے اختتام کی طرف سے. 435 00:27:33,310 --> 00:27:37,220 [اشراوی طالب علم تبصرہ] >> ہم نے کچھ واپس نہیں کیا ہے تو، یہ سچ ہے. 436 00:27:37,220 --> 00:27:39,670 لیکن یہ بدل جاتا ہے وہاں ایک مسئلہ کے تھوڑا سا ہے کیونکہ ابھی تک، 437 00:27:39,670 --> 00:27:44,170 صرف ایک ہی چیز ہے ہم واپس کرنے کے قابل ہو گیا ہے ایک بات ہے، اور یہ سی کی پابندی ہے 438 00:27:44,170 --> 00:27:49,070 تم واقعی میں صرف ایک قدر واپس، جس میں کیس میں یہاں کی قسم پھنس گیا ہوں کر سکتے ہیں 439 00:27:49,070 --> 00:27:53,310 کیونکہ میں ایکس کی نئی قیمت واپس یا جا سکتا ہے، میں Y کی نئی قیمت واپس کر سکتا ہے، 440 00:27:53,310 --> 00:27:55,190 لیکن میں دونوں واپس کرنا چاہتے ہیں. 441 00:27:55,190 --> 00:27:58,650 تو یہاں آنے آسان حل نہیں ہے. 442 00:27:58,650 --> 00:28:01,710 لیکن مسئلہ بنیادی طور پر کیوں ہے؟ کیا ہم اصل میں تبدیل کر دیا ہے؟ 443 00:28:01,710 --> 00:28:04,190 [طالب علم] a اور b. >> a اور b. 444 00:28:04,190 --> 00:28:08,230 لیکن a اور b X اور Y، جس کا مطلب ہے کہ ہم صرف اس کام کا سب نے کی کاپیاں ہیں، 445 00:28:08,230 --> 00:28:11,650 ہم صرف 3 منٹ خرچ سویپ تقریب اور ان متغیرات میں سے 3 کے بارے میں بات کر رہے ہیں، 446 00:28:11,650 --> 00:28:15,420 اور یہ کہ تنہائی میں عظیم ہے، بالکل صحیح ہے، 447 00:28:15,420 --> 00:28:20,740 لیکن ایک اور ب کے دائرہ کار صرف ان لائنوں میں ہے. 448 00:28:20,740 --> 00:28:24,790 >> لہذا اگر آپ نے ابھی لوپ کے لئے ایک طرح کے اندر ایک عددی میں لوپ کے لئے اعلان 449 00:28:24,790 --> 00:28:28,760 اسی طرح، اگر آپ کو ایک تقریب کے a اور b کے اندر اعلان کر رہے ہیں کہ آپ نے لکھا ہے، 450 00:28:28,760 --> 00:28:33,320 جس سے وہ صرف اس تقریب کی درست اندر ہیں، جیسے ہی کے طور پر سویپ قتل کیا جاتا ہے کا مطلب ہے کہ 451 00:28:33,320 --> 00:28:38,470 اور ہم 24 سے اوپر 25 لائن سے چلے جاؤ، بالکل X اور Y کی گئی ہے تبدیل نہیں. 452 00:28:38,470 --> 00:28:42,790 تم نے صرف وقت کی ایک پوری بہت متغیر کی کاپیاں گماگمن برباد کیا. 453 00:28:42,790 --> 00:28:47,010 تو یہ پتہ چلا ہے کہ اس کا حل کیا واقعی غیر واضح ہے. 454 00:28:47,010 --> 00:28:50,670 یہ بہت اقدار کو واپس کرنے کے لئے کافی نہیں ہے کیونکہ ہم 1 قدر ہی واپس آ سکتے ہیں، 455 00:28:50,670 --> 00:28:53,470 اور میں واقعی میں ایک ہی وقت میں دونوں X اور Y تبادلہ چاہتے ہیں، 456 00:28:53,470 --> 00:28:55,210 تو ہم اس کے واپس آنے کی جا رہے ہیں. 457 00:28:55,210 --> 00:29:01,020 لیکن اب احساس ہوتا ہے کہ اس معاملے کو بنیادی حقیقت یہ ہے کہ a اور b کاپیاں ہیں سے حاصل کیا 458 00:29:01,020 --> 00:29:03,630 اور وہ ان کے اپنے دائرہ کار میں ہیں. 459 00:29:03,630 --> 00:29:05,050 کسی طرح سے اس کو حل کرنے کی کوشش کریں. 460 00:29:05,050 --> 00:29:11,250 مجھے اصل میں یہاں واپس سکرال کریں اور کھولو، ہے، اس کا ایک چوتھا مختلف، buggy4 کہہ دو. 461 00:29:11,250 --> 00:29:13,370 اس کے بارے میں کیا خیال ہے؟ 462 00:29:13,370 --> 00:29:17,810 یہ بھی اسی طرح لیکن آسان اس سے پہلے کہ ہم اس کو حل کرنے میں ایک کوشش کو دیکھنے کے لئے مسئلہ ہے. 463 00:29:17,810 --> 00:29:24,190 اس پروگرام اضافہ بھی کہا جاتا ہے، اور اس بظاہر 1 18 سطر میں ایک X عددی initializes. 464 00:29:24,190 --> 00:29:28,150 مجھے تو دعوی ہے X 1 ہے، میں تو "Incrementing ..." کا دعوی 465 00:29:28,150 --> 00:29:33,730 میں تو اضافہ کہتے ہیں، لیکن اس کے بعد لائنوں 22 اور 23 میں، میں دعوی ہے یہ incremented کیا گیا ہے، 466 00:29:33,730 --> 00:29:40,220 دعوی ہے X اب جو کچھ بھی ہے - 2، شاید - لیکن اس پروگرام چھوٹی گاڑی ہے. 467 00:29:40,220 --> 00:29:42,610 کیا مسئلہ ہے؟ 468 00:29:43,440 --> 00:29:50,160 جی ہاں. >> [اشراوی طالب علم کے جواب] بالکل. >> 469 00:29:50,160 --> 00:29:52,490 تو ایکس گیا ہے اعلان 18 لائن پر ظاہر ہے. 470 00:29:52,490 --> 00:29:54,700 یہ اہم گھوبگھرالی منحنی خطوط وحدانی کے اندر ہے. 471 00:29:54,700 --> 00:29:58,440 بہت آسان جواب یہ ہے کہ X یہاں موجود ہے، 472 00:29:58,440 --> 00:30:03,930 تو یہ 32 سطر میں موجود ہی نہیں ہے، اس پروگرام اصل میں بھی مرتب نہیں ہوں گے. 473 00:30:03,930 --> 00:30:07,940 سنکلک جب میں اس کوڈ کو مرتب کرنے کی کوشش کریں آپ کے وزٹرز کا ریکارڈ رکھا میں چللانا جا رہا ہے 474 00:30:07,940 --> 00:30:14,100 کچھ اگھوشیت شناخت کنندہ یا اس اثر سے کچھ کے بارے میں. اصل میں،،، کرنے کی کوشش کریں. 475 00:30:14,100 --> 00:30:18,470 یہ buggy4 بنانا ہے. وہاں ہے. 476 00:30:18,470 --> 00:30:22,110 اوپر 32 میں اگھوشیت شناخت کنندہ 'X' کا استعمال کریں. 477 00:30:22,110 --> 00:30:25,580 اور اصل میں، تو زیادہ واضح آج یہاں ہو سکتا ہے کہ یہ مفید ہے 478 00:30:25,580 --> 00:30:27,580 دفتری اوقات میں اور گھر میں. 479 00:30:27,580 --> 00:30:29,300 >> یاد رکھیں کہ یہ ایک cryptically لکھا تھوڑا ہے. 480 00:30:29,300 --> 00:30:37,270 لیکن حقیقت یہ ہے کہ بجنا ہے ہم پر چللایا، buggy4.c کہہ رہے: 32:5، اصل میں مفید ہے. 481 00:30:37,270 --> 00:30:42,050 اس کا مطلب یہ ہے کہ غلطی کردار 5 عہدے پر 32 لائن پر ہے. 482 00:30:42,050 --> 00:30:46,700 تو 1، 2، 3، 4، 5. یہ حقیقت میں ہے، جہاں مسئلہ ہے. 483 00:30:46,700 --> 00:30:49,790 اور بھی، بھی، دفتری اوقات میں اور گھر میں اس بات کو ذہن میں رکھنا، میں خوش یہاں ہوں. 484 00:30:49,790 --> 00:30:52,990 میں ایک غلطی ہے. یہ نسبتا آسان ہے طے کرنے جا رہا ہے. 485 00:30:52,990 --> 00:30:55,990 لیکن اگر آپ کے پاس زبردست خرابی کے پیغامات کی ایک پوری فل سکرین، 486 00:30:55,990 --> 00:31:00,330 پھر احساس کہ bottommost ایک اوپر ایک کی روگسوچک ہو سکتا ہے. 487 00:31:00,330 --> 00:31:03,450 تو ہمیشہ اوپر سے نیچے سے اپنے کیڑے کا پیچھا 488 00:31:03,450 --> 00:31:05,820 کیونکہ وہاں ایک گلبہار چین کا اثر ہو سکتا ہے 489 00:31:05,820 --> 00:31:09,240 کہ تجویز آپ کو راستہ مسائل سے آپ اصل میں کرتے ہیں ہے. 490 00:31:09,240 --> 00:31:15,150 تو ہم یہ کیسے ٹھیک اگر میرا مقصد X اضافہ کر سکتا ہے؟ >> [طالب علم] عالمی X بنائیں. 491 00:31:15,150 --> 00:31:17,060 ٹھیک ہے، تو ہم X عالمی کر سکتے ہیں. 492 00:31:17,060 --> 00:31:20,480 چلو شارٹ کٹ کہ میں پہلے کے بارے میں خبردار کیا ہے، لیکن heck، ہم صرف ایک فوری حل کی ضرورت ہے، 493 00:31:20,480 --> 00:31:25,730 تو صرف int X یہاں کہہ. X عالمی کرتا ہے. 494 00:31:25,730 --> 00:31:31,800 تو اب اہم ہے اس تک رسائی اور اضافہ اس تک رسائی ہے، 495 00:31:31,800 --> 00:31:34,110 اور اس طرح ہم آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور اب یہ تالیف. 496 00:31:34,110 --> 00:31:37,630 buggy4 بنائیں، درج کریں. اب مرتب لگتا ہے. 497 00:31:37,630 --> 00:31:41,230 آو buggy4 چلانے. اور یہ اصل میں کام کرنے لگتا ہے. 498 00:31:41,230 --> 00:31:45,150 یہ ان چیزوں کو کہ میں کہتا ہوں کہ کیا ہے میں سے ایک ہے، میں کے طور پر نہیں کرتے ہیں، 499 00:31:45,150 --> 00:31:47,010 کیونکہ جیسا کہ میں نے صرف یہاں کیا ہے، عام طور پر، 500 00:31:47,010 --> 00:31:50,440 ہمارے پروگرام بہت زیادہ دلچسپ اور اس سے بہت زیادہ حاصل کرنے کے لئے جا رہے ہیں، 501 00:31:50,440 --> 00:31:56,390 اور اگر آپ کی فائل کے سب سے اوپر دیئے گئے آپ کے زندگی کے مسائل کا حل صرف تمام متغیر ہے، ڈال 502 00:31:56,390 --> 00:31:59,690 بہت جلد پروگراموں horrifically مشکل کا انتظام کیا ملتا ہے. 503 00:31:59,690 --> 00:32:02,190 نئے متغیر کے نام سوچنا یہ مشکل ہو جاتا ہے، 504 00:32:02,190 --> 00:32:05,240 یہ مشکل ہو جاتا ہے اس کو سمجھنے کے لئے کیا متغیر کیا کر رہا ہے، 505 00:32:05,240 --> 00:32:08,460 اور عام طور پر، یہ ایک اچھا حل نہیں ہے. 506 00:32:08,460 --> 00:32:10,030 تو ایسا بہتر ہیں. 507 00:32:10,030 --> 00:32:12,160 ہم ایک عالمی متغیر کو یہاں استعمال نہیں کرنا چاہتے. 508 00:32:12,160 --> 00:32:16,240 >> میں ایکس اضافہ کرنا چاہتے ہیں، تو میں نے ظاہر کر سکتے - 509 00:32:16,240 --> 00:32:18,670 دن کے آخر میں، یہ بیوکوف کہانی کی طرح ہے کیونکہ ہم صرف ایسا - 510 00:32:18,670 --> 00:32:24,450 لیکن اگر میں اس آپریٹر کے بارے میں نہیں جانتے یا کیا میں نے یہ اہم میں ہی تبدیل کرنے کی اجازت نہیں کیا گیا تھا، 511 00:32:24,450 --> 00:32:30,730 اور کس طرح کین اس وقت یہاں میں نہیں کیوب پر عملدرآمد لیکن اضافہ کر سکتا ہے؟ 512 00:32:31,380 --> 00:32:33,190 میں اس بات کو یہاں کیسے تبدیل کروں؟ جی ہاں. 513 00:32:33,190 --> 00:32:38,480 [طالب علم] X میں درہ اور پھر لوٹ [اشراوی] >> ٹھیک ہے، اچھا ہے. 514 00:32:38,480 --> 00:32:41,900 تو میں نے X میں کیوں نہیں اور پھر گزر بجائے اسے واپس 515 00:32:41,900 --> 00:32:44,870 بس میں کیوں نہیں کرتے X 1 + واپس. 516 00:32:44,870 --> 00:32:47,710 ایک جوڑے چیزیں یہاں کو تبدیل کرنا ہوگا. میں صحیح راستے پر ہوں. 517 00:32:47,710 --> 00:32:49,770 اور کیا میں موافقت کی ضرورت ہے؟ کوئی اور. جی ہاں. 518 00:32:49,770 --> 00:32:51,740 [اشراوی طالب علم کے جواب] 519 00:32:51,740 --> 00:32:54,730 میں اضافہ کی واپسی کی قسم کو تبدیل کرنے کی ضرورت ہے کیونکہ یہ باطل نہیں ہے. 520 00:32:54,730 --> 00:32:57,780 صفر کا مطلب کچھ نہیں ہے واپس کیا جا رہا ہے، لیکن اب واضح طور پر یہ ہے، 521 00:32:57,780 --> 00:32:59,830 تو اس کی ضروریات کو تبدیل کرنے کی - >> [طالب علم] int. 522 00:32:59,830 --> 00:33:02,740 int کے مطابق جو کچھ بھی میں واقعی میں واپس آ رہا ہوں. 523 00:33:02,740 --> 00:33:05,180 اب کچھ اور اب بھی چھوٹی گاڑی یہاں ہے. جی ہاں. 524 00:33:05,180 --> 00:33:08,400 [اشراوی طالب علم کے جواب] >> [Malan] تو مجھے X اضافہ کرنے کی ضرورت ہے؟ 525 00:33:08,400 --> 00:33:12,080 [اشراوی طالب علم کے جواب] >> [Malan] آہ، تو میں ایکس کو منتقل کرنے کی ضرورت ہے. 526 00:33:12,080 --> 00:33:16,660 لہذا میں نے یہ یہاں کرنے کی ضرورت ہے. >> [اشراوی طالب علم تبصرہ] 527 00:33:16,660 --> 00:33:20,050 [Malan] تو پروٹوٹائپ، میں اس کو یہاں تبدیل کرنا ہوگا. 528 00:33:20,050 --> 00:33:22,930 تو یہ ایک int بننا ہے، یہ بن گیا ہے - 529 00:33:22,930 --> 00:33:25,620 ہمم، میں اصل میں ایک بگ ہے یہاں. میں کسی شخص کی یہ پہلی کو ٹھیک ہوں. 530 00:33:25,620 --> 00:33:29,590 یہ اصل میں کیا ہونا چاہئے؟ یہ ایک int کچھ مل گیا ہے. 531 00:33:29,590 --> 00:33:32,700 یہ x ہو، لیکن صاف صاف کر سکتے ہیں، اگر آپ کو آپ کے متغیر X کے سب بلا شروع، 532 00:33:32,700 --> 00:33:35,390 یہ کم سے کم واضح ہے جس جس حاصل کرنے کے لئے جا رہا ہے. 533 00:33:35,390 --> 00:33:39,560 >> تو صرف منمانے میرا مددگار افعال کے لئے ایک مختلف نام دینے کے کنونشن کا انتخاب 534 00:33:39,560 --> 00:33:41,940 افعال میں لکھ رہا ہوں. ہم نے اس کو ایک فون ہے، یا ہم یہ کہہ سکتے ہیں کریں گے - 535 00:33:41,940 --> 00:33:45,010 چلو اس نمبر پر فون بھی زیادہ واضح ہو. 536 00:33:45,010 --> 00:33:47,560 تو پھر میں واپس جو نمبر 1 کے علاوہ ہے، 537 00:33:47,560 --> 00:33:50,740 اور اب میں 1 دوسری چیز کو تبدیل کرنے اور یہاں ایک دوسرے کے یہاں بات ہے. 538 00:33:50,740 --> 00:33:54,350 میں 21 لائن پر پہلے تبدیل کیا ہے؟ >> [اشراوی طالب علم کے جواب] 539 00:33:54,350 --> 00:33:57,610 [Malan] میں یہ x تفویض ہے. میں صرف اضافہ نہیں (X) کال کر سکتے ہیں. 540 00:33:57,610 --> 00:34:01,960 میں بائیں ہاتھ پر X کی قدر تبدیل کرنے کے کی طرف سے جواب یاد کرنے کی ضرورت ہے. 541 00:34:01,960 --> 00:34:04,680 اور اگرچہ X اب یہ ہے کہ بائیں اور دائیں، مکمل طور پر ٹھیک ہے 542 00:34:04,680 --> 00:34:08,860 کیونکہ دائیں ہاتھ کی طرف سب سے پہلے پھانسی ہو جاتا ہے تو بات بائیں ہاتھ میں plopped ہو جاتا ہے - 543 00:34:08,860 --> 00:34:10,600 اس صورت میں ایکس. 544 00:34:10,600 --> 00:34:12,159 اور پھر آخر میں، یہ ایک آسان حل ہے. 545 00:34:12,159 --> 00:34:17,230 یہ صرف کیا نیچے ذیل ہے، int تعداد سے ملنے چاہئے. 546 00:34:17,230 --> 00:34:20,570 تو واقعی پاگل تقریب کے لئے تبدیلیوں کے پورے گچرچھی 547 00:34:20,570 --> 00:34:24,420 لیکن ہیں کہ ہم تیزی سے چاہتا ہوں کے نمائندے. 548 00:34:24,420 --> 00:34:27,090 تو buggy4 ہے. میں کہیں خراب ہے. 549 00:34:27,090 --> 00:34:30,139 اوہ، میرے خدا. 6 لائن ایک پروگرام میں پانچ غلطیوں. 550 00:34:30,139 --> 00:34:35,690 تو کیا 18 لائن پر غلط ہے، کردار 5؟ 551 00:34:35,690 --> 00:34:39,610 تو میں اس int، کا اعلان ہے. 552 00:34:39,610 --> 00:34:41,920 چلو دیکھتے ہیں. دوسرے کی غلطیوں کی ایک پوری چڑھانے ہیں. 553 00:34:41,920 --> 00:34:47,010 اوہ، میرے خدا - 19، 18، 21 - لیکن پھر، صرف سکرین واضح، کنٹرول L یہاں، 554 00:34:47,010 --> 00:34:49,380 اور بجنا rerun. 555 00:34:49,380 --> 00:34:51,340 لہذا 5 مسائل اصل میں صرف یہ ہے کہ 1 ہے. 556 00:34:51,340 --> 00:34:57,520 تو اب ہم buggy4 چلانے، درج کریں. واہ، X گیا ہے درست طریقے سے incremented. 557 00:34:57,520 --> 00:35:02,720 ٹھیک ہے. تعداد میں کس طرح اضافہ کرنے کے کوئی سوال؟ جی ہاں. 558 00:35:02,720 --> 00:35:09,870 [اشراوی طالب علم سوال] >> اچھا سوال ہے. 559 00:35:09,870 --> 00:35:14,220 یہ کس طرح ہے کہ میں ایکس نمبر پر اور پروگرام فوری طور پر پتہ چل جائے گا تبدیل کر سکتے ہیں؟ 560 00:35:14,220 --> 00:35:16,200 >> ایک بار پھر اس کا اس تجرید کے طور پر لگتا ہے. 561 00:35:16,200 --> 00:35:21,600 تو اگر میں اہم ہوں اور کین اضافہ ہے، واضح طور سے مجھے اس کی پرواہ نہیں کیا کین مطالبہ اس کے رکن ہیں. 562 00:35:21,600 --> 00:35:26,570 مجھے پرواہ نہیں کہ اس نے فون کچھ ہے کہ اس کی فعالیت کے اس پر عملدرآمد کے ساتھ کیا ہے. 563 00:35:26,570 --> 00:35:33,340 یہ ایک پر عملدرآمد کی تفصیل ہے کہ میں، مرکزی، کے بارے میں دیکھ بھال کرنے کی ضرورت نہیں ہے. 564 00:35:33,340 --> 00:35:38,250 اور اس طرح صرف یہ مسلسل تقریب کے اندر تبدیل - نمبر یہاں اور یہاں تعداد - 565 00:35:38,250 --> 00:35:40,960 یہ بہت لمبے وقت کے طور پر recompile لیتا ہے. 566 00:35:40,960 --> 00:35:44,180 اس طرح کی پسند ہے اگر آپ کو لگتا ہے کہ ہم میں سے کے بارے میں بہت سے، تم میں سے ان لوگوں کو ڈرائیور کے لائسنس کے ساتھ 567 00:35:44,180 --> 00:35:46,770 یا جو کارفرما ہے اگر آپ بھی ایک گاڑی میں کارفرما ہے، 568 00:35:46,770 --> 00:35:50,950 ہم میں سے سب سے زیادہ نہیں پتہ ہے کہ کس طرح ایک کار ہڈ کے نیچے کام کرتا ہے ہے. 569 00:35:50,950 --> 00:35:54,970 اور لفظی، اگر آپ کو ڈاکو، ہم میں سے سب سے زیادہ کھولتے ہیں - خود شامل ہیں - 570 00:35:54,970 --> 00:35:56,940 جا رہے ہو سچ میں پتہ ہے جو ہم دیکھ رہے ہیں نہیں، 571 00:35:56,940 --> 00:35:59,220 طرح کی طرح آپ کو یہ حق کی طرح سامان کے ساتھ اب محسوس ہو سکتا ہے. 572 00:35:59,220 --> 00:36:01,480 لیکن ہم دیکھ بھال کس طرح کار کام واقعی نہیں ہے، 573 00:36:01,480 --> 00:36:05,970 ہم اس کی پرواہ نہیں ہے کہ گاڑی کے اندر کی سلاخوں اور pistons اور کیبلز کے تمام 574 00:36:05,970 --> 00:36:08,160 کر رہے ہیں اصل میں کر رہی ہیں. 575 00:36:08,160 --> 00:36:12,770 پسٹن اس معاملے میں یہاں کوئی فرق نہیں پڑتا آپ کیا کہتے ہیں جیسے کچھ تو ہے. ایک ہی خیال ہے. 576 00:36:12,770 --> 00:36:25,300 جی ہاں. >> [اشراوی طالب علم سوال] 577 00:36:25,300 --> 00:36:29,180 اگر متغیر مساج پل کی استعمال پہلے ہیں، 578 00:36:29,180 --> 00:36:32,150 آپ، پروگرامر، انہیں ہر جگہ کو تبدیل کرنے کی ضرورت گے. 579 00:36:32,150 --> 00:36:36,600 یا آپ فائل مینو، لفظی، تو کرتے ہیں اور تلاش کریں، بدل سکتا ہے - اس طرح کچھ - 580 00:36:36,600 --> 00:36:39,170 لیکن آپ کو وہ تبدیلیاں خود بنانے کی ضرورت کے لئے جا رہے ہیں. 581 00:36:39,170 --> 00:36:47,450 تم مسلسل ہونا پڑے گا. >> [طالب علم.] اگر ایک سے زیادہ متغیر ہیں [اشراوی] 582 00:36:47,450 --> 00:36:53,100 یہاں کی طرح ایک خاص حکم، اگر یہ دوسرے نمبر int ہے؟ >> [طالب علم] صحیح. 583 00:36:53,100 --> 00:36:56,590 [Malan] جی ہاں. آرڈر فرق پڑتا ہے جب آپ تقریب کو بلا رہے ہیں. 584 00:36:56,590 --> 00:37:00,050 >> تو اگر میں اضافہ کچھ کوما کچھ کے ساتھ بلا رہے تھے یہاں، 585 00:37:00,050 --> 00:37:01,680 وہاں ایک براہ راست میپنگ ہے. 586 00:37:01,680 --> 00:37:05,690 پہلی متغیر، جو کچھ بھی کہتے ہیں، یہاں پہلی دلیل کی ایک نقل کی جاتی ہے. 587 00:37:05,690 --> 00:37:07,760 معاف کیجئے گا. یہ ایک خانے نہیں ہونا چاہئے. 588 00:37:07,760 --> 00:37:11,490 دوسرے کے ساتھ دلیل لائنوں. تو حکم، جی ہاں، معاملات. ٹھیک ہے. 589 00:37:11,490 --> 00:37:17,020 معاف کیجئے گا. میں زیادہ دیر تک وہاں حاصل کرنے کے لئے راستہ لیا. دیگر سوال؟ ٹھیک ہے. 590 00:37:17,020 --> 00:37:20,610 تو چلو دیکھتے ہیں، اگر ہم اصل میں یہاں کیا جا رہا ہے کی ایک تصویر پینٹ نہیں کر سکتے ہیں 591 00:37:20,610 --> 00:37:23,090 ہڈ کے نیچے، تو بات کرنے کی. 592 00:37:23,090 --> 00:37:26,640 یہ ایک مستطیل ہے کہ آپ کے کمپیوٹر کی میموری کی نمائندگی کر سکتے ہیں ہے. 593 00:37:26,640 --> 00:37:30,970 یہاں تک کہ اگر آپ کو کوئی اندازہ نہیں ہے میموری کس طرح کام کرتا ہے یا کس طرح RAM کام ہے، 594 00:37:30,970 --> 00:37:33,940 کم از کم یہ فرض ہے کہ تم ان دنوں اس کے bunches ہیں. 595 00:37:33,940 --> 00:37:36,280 تم اس کے میگا بائٹ ہے، آپ کو اس کی گیگا بائٹس ہے، 596 00:37:36,280 --> 00:37:40,870 اور ہم 0 ہفتے سے جانتے ہیں کہ صرف ایک بائٹ کیا ہے؟ >> [طالب علم] 8 بٹس. 597 00:37:40,870 --> 00:37:42,950 8 بٹس، ٹھیک ہے؟ تو 8 zeroes اور 1. 598 00:37:42,950 --> 00:37:45,880 تو اگر آپ کے کمپیوٹر RAM کے ایک ٹمٹم، RAM کے 2 gigs ان دنوں ہے، 599 00:37:45,880 --> 00:37:55,030 آپ میموری کا ایک ارب یا 2 ارب بائٹس یا 8 تقریبا ارب یا 16 ارب بٹس 600 00:37:55,030 --> 00:37:56,890 کے اندر اندر آپ کے کمپیوٹر کے. 601 00:37:56,890 --> 00:38:00,590 تھوڑا Wooly ولی مثال کے برعکس، یہ مقناطیسی ذرات نہیں ہے خاص طور پر اب. 602 00:38:00,590 --> 00:38:04,450 تیزی سے - لیپ ٹاپ میں کم از کم - یہ ٹھوس ریاست ڈرائیوز، SSDs ہے، 603 00:38:04,450 --> 00:38:08,580 کہ صرف کوئی منتقل پارٹس ہیں. یہ تمام الیکٹرانک ہے. یہ سب بجلی کی بنیاد پر ہے. 604 00:38:08,580 --> 00:38:14,060 تو صرف میموری کی 1 یا 2 گیگا کہ آپ کی نمائندگی کے طور پر اس مستطیل کے بارے میں سوچو. 605 00:38:14,060 --> 00:38:16,020 >> تو اس میموری کا ایک حصہ ہے. 606 00:38:16,020 --> 00:38:19,830 کمپیوٹر سائنس کی دنیا کی طرح تقسیم 607 00:38:19,830 --> 00:38:22,950 میموری کی مقدار مختلف چیزیں ہیں. 608 00:38:22,950 --> 00:38:27,190 مثال کے طور پر، اگر یہ آپ کے کمپیوٹر کی RAM ہے، جیسا کہ وہاں مستطیل کی طرف سے تجویز پیش کی ہے، 609 00:38:27,190 --> 00:38:31,130 یہ پتہ چلا ہے کہ کنونشن کی طرف سے، آپ کے RAM کے سب سے اوپر دیئے گئے، تو بات کرنے کی، 610 00:38:31,130 --> 00:38:33,660 عام طور پر ہے جو متن کے ٹکڑے بھی کہا جاتا ہے. 611 00:38:33,660 --> 00:38:36,740 وہ 0s اور 1s ہیں کہ آپ نے مرتب کیا ہے. 612 00:38:36,740 --> 00:38:39,020 تو جب ہم کیا a.out ہے میں ہڈ کے نیچے دیکھا ہے، 613 00:38:39,020 --> 00:38:41,980 ان تمام 0s اور 1s،، جب تم نے ایک پروگرام چلائیں 614 00:38:41,980 --> 00:38:46,290 ان 0s اور 1s کہا جاتا RAM کچھ میں آپ کی ہارڈ ڈرائیو سے بھری ہوئی ہیں، 615 00:38:46,290 --> 00:38:49,320 اور وہ RAM میں سب سے اوپر میں ڈال رہے ہیں. 616 00:38:49,320 --> 00:38:52,770 اس دوران، آپ دیگر چیزیں ہیں: ڈیٹا ابتدا، ڈیٹا uninitialize. 617 00:38:52,770 --> 00:38:57,510 میموری کا وہ 2 علاقے اس وقت عالمی متغیر، جو آپ اکثر استعمال نہیں کرتے کا حوالہ دیتے ہیں 618 00:38:57,510 --> 00:39:00,760 لیکن کبھی کبھی اگر آپ ایسا کرتے ہیں، انہوں نے وہاں ساتھ ساتھ ختم. 619 00:39:00,760 --> 00:39:04,260 ماحول متغیر، جو ہمارے پاس زیادہ وقت خرچ نہیں کریں گے، اس کے بعد کچھ دیگر چیزیں ہے 620 00:39:04,260 --> 00:39:06,860 لیکن پھر 2 اہم چیزیں سمسٹر بھر واپس آئے گا، 621 00:39:06,860 --> 00:39:08,550 اسٹیک اور ڈھیر. 622 00:39:08,550 --> 00:39:12,210 تو آپ کے کمپیوٹر کی میموری کا سب سے زیادہ محفوظ ہے جب ایک پروگرام چلا رہا ہے 623 00:39:12,210 --> 00:39:15,370 کسی چیز کے لئے اسٹیک کو فون کیا اور کچھ ڈھیر ملاقات کی. 624 00:39:15,370 --> 00:39:18,840 ہم آج ڈھیر کے بارے میں بات کرنے کے لئے نہیں جا رہے ہیں، لیکن ہم اسٹیک کے بارے میں بات کریں گے. 625 00:39:18,840 --> 00:39:24,600 اسٹیک Mather ہاؤس میں ڈائننگ ہال کھانے کی ٹرے کی بصری جادو مراد ہے 626 00:39:24,600 --> 00:39:28,110 یا، تم جہاں بھی ہو ہو جہاں ہر روز ڈائننگ ہال کے عملے نے انہیں صاف 627 00:39:28,110 --> 00:39:30,180 وہ ان کو منزل سے اوپر پر کتابیں رکھی، 628 00:39:30,180 --> 00:39:34,550 اور اسی طرح، کی یاد میں، وہاں ایک اسٹیک کچھ ڈال کے اس خیال ہے، 629 00:39:34,550 --> 00:39:36,860 ایک اسٹیک کچھ ڈال، ایک اسٹیک کچھ ڈال. 630 00:39:36,860 --> 00:39:38,240 اور کیا ہم اس سے کیا مطلب ہے؟ 631 00:39:38,240 --> 00:39:41,860 >> اس تصویر کا صرف کم نصف ہے، آپ کے کمپیوٹر کی RAM میں دو زوم، 632 00:39:41,860 --> 00:39:44,330 مندرجہ ذیل تجویز ہے. 633 00:39:44,330 --> 00:39:48,170 یہ پتہ چلا ہے کہ جب آپ a.out یا خوش طرح ایک پروگرام چلاتے ہیں - 634 00:39:48,170 --> 00:39:50,100 جو بھی پروگرام ہے کہ آپ نے لکھا ہے - 635 00:39:50,100 --> 00:39:54,020 پھر وہ 0s اور 1s آپ کی ہارڈ ڈرائیو، جو ذخیرہ طویل مدتی ہے سے بھری ہوئی ہیں، 636 00:39:54,020 --> 00:39:57,230 وہاں رہتا ہے اس وقت بھی جب آپ کو پلگ RAM میں بھری ہوئی ھیںچو. 637 00:39:57,230 --> 00:40:00,610 RAM ہارڈ ڈرائیوز سے تیز ہے - ہارڈ ڈرائیوز سے چھوٹا ہے - 638 00:40:00,610 --> 00:40:03,300 لیکن یہ پروگراموں جہاں رہتے ہیں جب تم ان سے چلا رہے ہیں. 639 00:40:03,300 --> 00:40:08,230 تو آپ ڈبل میک یا PC پر ایک پروگرام پر کلک کریں، یہ RAM میں ہارڈ ڈرائیو سے بھری ہوئی ہے. 640 00:40:08,230 --> 00:40:11,520 جیسے ہی یہ RAM، راستہ سب سے اوپر دیئے گئے 0s اور 1s جانے میں بھری ہوئی ہے، 641 00:40:11,520 --> 00:40:16,610 نام نہاد متن کے ٹکڑے، لیکن پھر جیسے ہی کے طور پر آپ کے پروگرام اصل میں شروع ہوتا ہے چل رہا ہے، 642 00:40:16,610 --> 00:40:21,360 مرکزی تقریب کہا جاتا ہے اور سب سے اہم، جیسا کہ ہم نے دیکھا ہے، اکثر مقامی متغیر ہے، 643 00:40:21,360 --> 00:40:24,870 ints اور ڈور اور حروف اور طرح کی ہے. 644 00:40:24,870 --> 00:40:29,180 تو اگر آپ کا پروگرام ہے کہ آپ نے لکھا ہے یا پروگرام ہے کہ آپ نے ڈبل کلک کیا ہے 645 00:40:29,180 --> 00:40:32,970 استعمال کیا کچھ متغیر کا اہم اندر 646 00:40:32,970 --> 00:40:37,240 وہ میموری کا اپنے اسٹیک کے سب سے نیچے دیئے گئے ختم، تو بات کرنے کی. 647 00:40:37,240 --> 00:40:39,410 مزید concretely، یہ اصل میں کیا مطلب ہے؟ 648 00:40:39,410 --> 00:40:48,450 یہ صرف ہے کہ اگر ہم آپ کے کمپیوٹر میں RAM کی بائٹس کی تعداد کو جا رہے تھے کا مطلب ہے کہ 649 00:40:48,450 --> 00:40:55,750 نوٹس کہ اس بائٹ 0 نمبر ہو سکتا ہے، یہ بائٹ نمبر 1، 2، 3، 4، 5، 6 ہو سکتا ہے، 650 00:40:55,750 --> 00:41:01,480 تمام 2 بلین تک جس طرح سے تمام طریقہ سب سے اوپر ہو جائے گا. 651 00:41:01,480 --> 00:41:05,880 تو دوسرے الفاظ میں، جب ہم بائٹس کی شرائط میں RAM یا میموری کے بارے میں بات کرتے ہیں، 652 00:41:05,880 --> 00:41:11,500 یہ صرف کا مطلب ہے کہ کسی نے فیصلہ کیا ہے کیا میموری کے ان حصوں میں سے ہر ایک کی تعداد. 653 00:41:11,500 --> 00:41:16,650 ، لہذا جب آپ ایک int کے لئے 32 بٹیں کی ضرورت ہے یا آپ کو چار کے لئے 8 بٹس کی ضرورت ہے 654 00:41:16,650 --> 00:41:18,840 وہ یاد میں جہاں تک آخر؟ 655 00:41:18,840 --> 00:41:22,350 >> Conceptually، وہ صرف اس چیز کے نیچے بلایا اسٹیک میں ختم. 656 00:41:22,350 --> 00:41:25,870 لیکن جو دلچسپ اب ہے جب اہم مطالبہ ایک تقریب - 657 00:41:25,870 --> 00:41:28,750 نامی FOO تقریب، صرف ایک صوابدیدی نام فرض - 658 00:41:28,750 --> 00:41:32,330 کیا ہوتا اہم ہے میموری کی یہ اسٹیک کے سب سے نیچے دیئے گئے ہے؛ 659 00:41:32,330 --> 00:41:35,680 FOO اب یاد میں مرکزی کے سب سے اوپر پر لگایا جاتا ہے. 660 00:41:35,680 --> 00:41:40,990 کسی بھی مقامی متغیر کہ FOO conceptually اہم لوگوں کے اوپر کی طرح ختم کر دیا ہے تو. 661 00:41:40,990 --> 00:41:47,070 FOO کو ایک دوسرے سے ملاقات کی بار ایک تقریب کہتے ہیں، اگر ان متغیرات یہاں ختم. 662 00:41:47,070 --> 00:41:50,120 اگر بار کچھ اور، یہاں، یہاں، یہاں کہتے ہیں. 663 00:41:50,120 --> 00:41:53,830 تو ایک پروگرام چلا رہا کرنے کے بارے میں دلچسپ کیا ہے یہ ہے کہ کے طور پر آپ کے افعال فون 664 00:41:53,830 --> 00:41:57,750 اور ان افعال افعال کو فون کریں اور ان افعال کے افعال کا فون، 665 00:41:57,750 --> 00:42:01,470 آپ کو یاد میں اس کے افعال میں سے اسٹیک تعمیر. 666 00:42:01,470 --> 00:42:06,890 اور صرف ایک تقریب کی واپسی میں ایک بار تم اس میموری کے واپس آنے شروع ہے. 667 00:42:06,890 --> 00:42:10,860 تو ایک کمپیوٹر پروگرام میں میموری سے باہر چلانے کا سب سے آسان کے طریقوں میں سے ایک 668 00:42:10,860 --> 00:42:14,360 افعال جو کبھی واپس لکھنے کے لئے ہے. 669 00:42:14,360 --> 00:42:18,900 تو مثال کے طور پر، جان بوجھ کر ایک چھوٹی گاڑی کے پروگرام کے ساتھ زیادہ سے زیادہ کا مظاہرہ. 670 00:42:18,900 --> 00:42:22,230 مجھے آگے بڑھو اور # شامل 671 00:42:22,230 --> 00:42:25,000 int اہم (باطل)، 672 00:42:25,000 --> 00:42:32,940 اور میں جبکہ (2> 1)، جو ہم پر شاید کبھی نہیں بدل جائے گی میں کیا کرنے جا رہا ہوں، 673 00:42:32,940 --> 00:42:37,560 اور اب آپ کے وزٹرز کا ریکارڈ رکھا آگے جا اور printf کرنا. 674 00:42:37,560 --> 00:42:40,700 اصل میں، یہ کم ضعف دلچسپ ہونے جا رہا ہے. چلو، ایسا. 675 00:42:40,700 --> 00:42:50,240 کے لئے int میں = 0، میں 0> - ہم اس غلطی - میں + +. 676 00:42:50,240 --> 00:42:52,720 اور printf یہاں نہیں ہے. پر عمل کیا میں تبلیغ کر رہا تھا. 677 00:42:52,720 --> 00:43:00,190 چلو یہاں ایک طریقہ ہے، باطل کورس، اور ہم میں int کہیں گے، 678 00:43:00,190 --> 00:43:06,830 اور پھر میں printf کہنا جا رہا ہوں - نہیں، چلو اس سے زیادہ دلچسپ بنانے کے لئے. 679 00:43:06,830 --> 00:43:15,790 چلو، اصل میں کچھ بھی نہیں پرنٹ. چلو ایسا کورس (). 680 00:43:15,790 --> 00:43:20,390 ٹھیک ہے. تو یہ چھوٹی گاڑی ہے کیونکہ کیوں؟ 681 00:43:20,390 --> 00:43:23,380 میں اس بنا رہا ہوں جیسا کہ میں جا رہا ہوں کیونکہ پروگرام دلچسپی کے کچھ اصل نہیں کرتی. 682 00:43:23,380 --> 00:43:25,320 >> لیکن اس کا مقصد نہیں ہے. 683 00:43:25,320 --> 00:43:29,630 مقصد یہ ہے کہ ایک پروگرام جن کی اہم تقریب کیا، بظاہر ہے کو لکھنے کے لئے ہے؟ 684 00:43:30,720 --> 00:43:32,860 خود کو کال کریں. اور اصل میں، ہم لوپ کی ضرورت نہیں ہے. 685 00:43:32,860 --> 00:43:37,200 چلو یہ بھی بہت واقعی بنیادی بگ کے نزدیک نہیں کھو آسان بنائیں. 686 00:43:37,200 --> 00:43:39,640 مین کالز کو کچھ کورس گانے کورس، 687 00:43:39,640 --> 00:43:41,440 تو میں پاگل نے کچھ کیا اور میں کورس کال کورس تھا 688 00:43:41,440 --> 00:43:43,760 کیونکہ میں فرض کیا گیا ہے یہ شاید کسی اور کو نافذ کرنے جا رہا تھا، 689 00:43:43,760 --> 00:43:47,210 اور اب یہ ابھی تک مرتب نہیں ہے. مجھے کیا کرنے کی ضرورت ہے؟ 690 00:43:47,210 --> 00:43:49,970 یاد میں پروٹوٹائپ کی ضرورت ہے. 691 00:43:49,970 --> 00:43:56,110 اس لئے میں یہاں باطل کورس کی ضرورت ہے (int میں)؛ 692 00:43:56,110 --> 00:43:59,210 لہذا اب اگر میں یہاں نیچے جاتے ہیں - اصل میں، بڑی ونڈو کا استعمال کریں. 693 00:43:59,210 --> 00:44:01,980 چلو آگے بڑھو اور کورس بنانا. 694 00:44:01,980 --> 00:44:06,490 چلو آگے بڑھو اور کورس بنانا. 695 00:44:06,490 --> 00:44:08,370 اگھوشیت شناخت کنندہ میں استعمال کریں. 696 00:44:08,370 --> 00:44:12,500 اوہ، یہ پاگل تھا. ہم دلیل کی ضرورت نہیں ہے. چلو ایسا کریں. 697 00:44:12,500 --> 00:44:16,370 میں چاہتا ہوں کہ ہم اس طرح شروع کیا تھا. یہ لکھنا بہت آسان پروگرام ہوتا ہے. 698 00:44:16,370 --> 00:44:25,590 آمدید. اب میرے ٹرمینل دریچہ جانا، بجنا rerun، اور ہم یہاں ہیں. 699 00:44:25,590 --> 00:44:28,460 وہ بہت تیز تھا. 700 00:44:28,460 --> 00:44:31,150 کیا اصل میں صرف ہوا ہے، لیکن؟ 701 00:44:31,150 --> 00:44:33,730 اچھا، اب میں پرنٹ لائن تاکہ ہم دیکھ سکتے ہیں کریں گے. 702 00:44:33,730 --> 00:44:43,490 مجھے printf کا کہنا ہے کہ ("میں یہاں ہوں") - کوئی متغیر نہیں. ہم نے اسے اس طرح چھوڑ دیں گے. 703 00:44:43,490 --> 00:44:47,480 مجھے rerun ہے. مجھے کورس rerun. 704 00:44:47,480 --> 00:44:57,380 اور ... پر آئے. جاری رکھتے ہیں. 705 00:44:57,380 --> 00:44:59,930 ایک طرف ایک کے طور پر، کیوں یہ ابھی تک گر کر تباہ ہو گیا ہے نہیں؟ 706 00:44:59,930 --> 00:45:02,080 انقطاع غلطی سپر روزہ پہلے ہوا. 707 00:45:02,080 --> 00:45:06,570 [اشراوی طالب علم کے جواب] بالکل. >> تو اس پرنٹ میں وقت لگتا ہے، ہے نا؟ 708 00:45:06,570 --> 00:45:08,610 یہ صرف کمپیوٹر حصہ پر زیادہ کام کرتا ہے. 709 00:45:08,610 --> 00:45:10,620 اور اس ہے: انقطاع غلطی ہے. 710 00:45:10,620 --> 00:45:12,340 >> تو توجہ صرف روزہ پروگراموں کو کس طرح چلاتے ہیں. 711 00:45:12,340 --> 00:45:14,130 اگر آپ کو کسی بھی چیز کی، سپر روزہ پرنٹ نہیں کر رہے ہیں. 712 00:45:14,130 --> 00:45:18,770 لیکن ہم ابھی تک اس انقطاع غلطی ہے کیونکہ جو کچھ ہو رہا تھا؟ 713 00:45:18,770 --> 00:45:21,210 اگر آپ کو لگتا ہے کہ کس طرح آپ کے کمپیوٹر کی میموری میں رکھی ہے، 714 00:45:21,210 --> 00:45:28,740 اس اہم ہوتا ہے، لیکن یہاں ہم صرف اس کورس کو فون، اور ہم اس کورس کو کہتے ہیں. 715 00:45:28,740 --> 00:45:34,550 اور اب اگر میں اپنے جمالیات حق ہے، یہ تو صرف کورس، کورس، کورس کہنا جا رہا ہے، 716 00:45:34,550 --> 00:45:40,550 کورس، کورس، کورس، کورس، اشتھاراتی nauseum، اور آخر میں کیا ہونے جا رہا ہے؟ 717 00:45:40,550 --> 00:45:45,630 اگر بڑی تصویر، لفظی، یہ ہے، کیا صرف conceptually ہوتا ہے؟ 718 00:45:46,520 --> 00:45:48,630 اسٹیک overruns ڈھیر. 719 00:45:48,630 --> 00:45:51,940 یا برا، آپ صرف متن طبقہ بھی شامل ہے، سب کچھ overrun، 720 00:45:51,940 --> 00:45:54,590 جو 0s اور 1s ہے جو آپ کے پروگرام کی نمائندگی کرتے ہیں. 721 00:45:54,590 --> 00:45:57,080 مختصر میں، یہ صرف سپر، سپر برا ہے. 722 00:45:57,080 --> 00:45:58,830 آپ کے پروگرام کے کنٹرول سے باہر spiraled ہے. 723 00:45:58,830 --> 00:46:01,220 آپ طرح زیادہ میموری سے آپ کا ارادہ کا استعمال کرتے ہوئے کر رہے ہیں 724 00:46:01,220 --> 00:46:03,960 تمام، اس کیس میں ایک احمقانہ غلطی کی وجہ سے 725 00:46:03,960 --> 00:46:08,040 یا اس کیس میں بہت جان بوجھ کر کیا ایک تقریب خود بلا رہا ہے. 726 00:46:08,040 --> 00:46:09,500 اب، یہ سب برا نہیں ہے. 727 00:46:09,500 --> 00:46:13,800 خود بلا افعال دراصل عظیم طاقت ہے جب آپ اسے درست طریقے سے استعمال کرتے ہیں. 728 00:46:13,800 --> 00:46:15,800 میں نے اسے صحیح طریقے سے استعمال نہیں کیا ہے یہاں. 729 00:46:15,800 --> 00:46:19,780 تو یہ سب برا نہیں ہے، لیکن حقیقت یہ ہے کہ میں نے اصل میں کبھی نہیں روکنے خود بلا 730 00:46:19,780 --> 00:46:23,520 اس پروگرام کے ایک بنیادی کمزوری ہے. 731 00:46:23,520 --> 00:46:26,400 تو ہم کہاں اس سب کے ساتھ جا رہے ہیں؟ کہ اصل میں کیا ہو رہا ہے؟ 732 00:46:26,400 --> 00:46:30,340 جب میں اضافہ کی تقریب کہتے ہیں جیسا کہ ہم ان مثالوں میں کیا کر رہے تھے، 733 00:46:30,340 --> 00:46:33,420 میں 1 کہ میں اندر سے گزر طرح ایک قدر ہے 734 00:46:33,420 --> 00:46:37,570 میں نمبر 1 کی ایک کاپی میں گزرتے ہیں، تو مندرجہ ذیل ہوتا ہے. 735 00:46:37,570 --> 00:46:44,240 چلو اضافہ مثال کے طور پر میں جانے کے لئے، یہاں اس آدمی کو. 736 00:46:44,240 --> 00:46:46,870 یہ اصل میں کیا ہو رہا ہے. 737 00:46:46,870 --> 00:46:53,400 جب میں اضافہ کہتے ہیں اور میں X میں گزرتے ہیں، pictorially، یہاں کیا ہو رہا ہے یہ ہے. 738 00:46:53,400 --> 00:46:59,520 >> اگر میں 1 کی قدر ذخیرہ ہے اور میں واقعی میں اضافہ کہتے ہیں، 739 00:46:59,520 --> 00:47:04,330 جو اب کورس کہا جاتا ہے - رکن آپ کے وزٹرز کا ریکارڈ رکھا پھینک آف ہے یہاں. 740 00:47:04,330 --> 00:47:09,760 چلو اس اضافہ کو کہتے ہیں، اور ہمیں پتہ نہیں کہ یہ اگلے تقریب ہو رہا ہے. 741 00:47:09,760 --> 00:47:14,840 تو کیا ہے اصل میں ہو رہا یہاں اہم ہے کہیں میں میموری کا ایک حصہ ہے 742 00:47:14,840 --> 00:47:17,000 جو نمبر 1 ذخیرہ کرنے ہے. 743 00:47:17,000 --> 00:47:19,380 جب میں اضافہ کہتے ہیں، میں میموری کا ایک حصہ کا استعمال کرتے ہوئے کر رہا ہوں، 744 00:47:19,380 --> 00:47:21,230 لیکن اب میں 1 کی کاپی ہے. 745 00:47:21,230 --> 00:47:26,660 جب میں اس قدر اضافہ، 2 بن جاتا ہے، 746 00:47:26,660 --> 00:47:30,560 لیکن پھر کیا اضافہ کی واپسی کے طور پر کے طور پر جلد ہی ہوتا ہے؟ 747 00:47:30,560 --> 00:47:33,630 یہ میموری صرف آپریٹنگ سسٹم پر واپس کے حوالے ہو جاتا ہے، 748 00:47:33,630 --> 00:47:37,450 جس کا مطلب ہے کہ تم نے کیا ہے مفید کچھ نہیں ہے. 749 00:47:37,450 --> 00:47:43,120 1 اصل اہم میں شامل کیا گیا تھا اب بھی اصل میں وہاں ہے. 750 00:47:43,120 --> 00:47:44,890 تو ہم کہاں اس کے ساتھ جا رہے ہیں؟ 751 00:47:44,890 --> 00:47:49,770 یہ پتہ چلا ہے کہ آپ کو یاد میں بائٹس کی اس ترتیب واپس واپس 752 00:47:49,770 --> 00:47:53,050 کہ آپ چیزیں ڈال، اور کر سکتے ہیں یہ پتہ چلا ہے کہ ہم نے پہلے سے ہی کچھ دیکھ لیا ہے 753 00:47:53,050 --> 00:47:55,390 کہ چیزیں پیچھے رکھ واپس، واپس کی حمایت شامل ہے. 754 00:47:55,390 --> 00:47:59,860 1 ہفتہ اور اب 2 ہفتے کی بنیاد پر سٹرنگ کیا ہے؟ 755 00:48:00,020 --> 00:48:01,980 یہ صرف حروف کا ایک مجموعہ ہے. 756 00:48:01,980 --> 00:48:04,310 تو یہ پتہ چلتا ہے جیسا کہ آپ کو یاد میں نمبر رکھ سکتے ہیں، 757 00:48:04,310 --> 00:48:06,990 اسی طرح آپ کو یاد میں حروف پر رکھ سکتے ہیں. 758 00:48:06,990 --> 00:48:10,530 اور ایک بار ہم نے یاد میں ڈال حروف واپس شروع واپس کی حمایت کی حمایت، 759 00:48:10,530 --> 00:48:13,620 یہ پتہ چلا ہے، چیزوں کی طرح لوپ یا دیر لوپ کے لئے آسان استعمال کرتے ہوئے کہ 760 00:48:13,620 --> 00:48:17,170 بائیں سے دائیں جانب ہم حروف سے زیادہ ایک تار میں iterate کر سکتے ہیں 761 00:48:17,170 --> 00:48:20,600 اور مختلف حروف میں ان سے مکمل طور پر مساج کرنا شروع - 762 00:48:20,600 --> 00:48:23,370 ب بن سکتا ہے، بی سی بن سکتا ہے - 763 00:48:23,370 --> 00:48:27,780 تاکہ آخر میں، ہم نے ایک انگریزی کی سزا ہے کہ اصل میں احساس کرتا ہے لے جا سکتے ہیں 764 00:48:27,780 --> 00:48:30,310 اور وہ ایک خط میں سے ہر ایک کو ایک وقت میں تبدیل 765 00:48:30,310 --> 00:48:34,400 ہمارے کمپیوٹر میموری کے ذریعے چلنے کی طرف سے بائیں سے دائیں اصل میں خفیہ. 766 00:48:34,400 --> 00:48:35,810 تو ہمارے یہاں پانچ منٹ کے وقفے لے 767 00:48:35,810 --> 00:48:40,730 اور جب ہم واپس آئے، ہم معلومات scrambling کے اس عمل کا آغاز کریں گے. 768 00:48:42,020 --> 00:48:43,520 >> ٹھیک ہے. 769 00:48:43,520 --> 00:48:48,070 اس سے پہلے کہ ہم کچھ crypto میں کودو اور ان چیزوں arrays کہا جاتا ہے، 770 00:48:48,070 --> 00:48:51,470 کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے کے ذہن میں کوئی سوالات کے لئے روکنے کے دو کیونکہ مجھے لگتا ہے کہ میں واقعی میں اس قسم کی muddled 771 00:48:51,470 --> 00:48:54,080 ان موضوعات میں سے کچھ. لہذا کو ٹھیک اب اگر ہم کر سکتے ہیں ہیں. 772 00:48:54,080 --> 00:48:58,700 ہم صرف واپسی اقدار کے بارے میں بات کی تھی، ہم نے دلائل کے بارے میں بات کی تھی، 773 00:48:58,700 --> 00:49:03,250 اور ہم اس تصور کے بارے میں بات کی، جو ہم ہفتوں میں واپس آنے آ جائیں گے، 774 00:49:03,250 --> 00:49:08,720 ان سجا دیئے ٹرے کی ایک پوری چڑھانے کے طور پر میموری دیکھنے، اس سے بات کرنے 775 00:49:08,720 --> 00:49:12,660 اپ نیچے، اس طرح سے کہ ہر ٹرے اسٹیک پر ڈال دیا ہو جاتا ہے 776 00:49:12,660 --> 00:49:16,530 ایک تقریب ہے کہ اس وقت کیا جا رہا ہے کہا جاتا ہے کی نمائندگی کرتا ہے. 777 00:49:17,900 --> 00:49:20,260 کوئی سوال؟ 778 00:49:20,260 --> 00:49:22,640 مجھے یہاں ایک سوال پوچھنا ہے. 779 00:49:22,640 --> 00:49:27,890 مجھے جو اس نے ہمارے پہلے Q & A. میں سے کچھ پہلے تھا اس کی پیٹھ کو آسان بنانے 780 00:49:27,890 --> 00:49:35,570 حقیقت یہ ہے کہ اضافہ اوپن خانے، int تعداد ہے، خانے بند - 781 00:49:35,570 --> 00:49:39,110 int تعداد کیا کی نمائندگی کرتا ہے؟ 782 00:49:39,110 --> 00:49:42,790 [طالب علم] دلیل ہے. >> دلیل ہے. ٹھیک ہے. لیکن ایک دلیل کیا ہے؟ 783 00:49:42,790 --> 00:49:46,370 [اشراوی طالب علم کے جواب] >> یہ کیا ہے؟ >> [طالب علم] کچھ ہے جو تم اندر سے گزر 784 00:49:46,370 --> 00:49:49,940 ٹھیک ہے، تو کچھ ہے جو تم اندر گزرتے ہیں اور عام طور پر، یہ صرف ان پٹ ہے. 785 00:49:49,940 --> 00:49:52,450 اگر آپ زندگی میں ایک تقریب اور ہے کہ تقریب کا مقصد لکھنے تھے 786 00:49:52,450 --> 00:49:55,770 کچھ تھوڑا سا مختلف ہر بار آپ اسے استعمال کرنا ہے، 787 00:49:55,770 --> 00:50:00,110 اس کے بعد کہ اس کے لئے بہت ہو صرف ایک ہی طریقہ لگتا ہے یہ ان پٹ کے ساتھ فراہم کرے گا 788 00:50:00,110 --> 00:50:03,510 تاکہ اس ان پٹ کے ساتھ کچھ مختلف ہر وقت کر سکتے ہیں. 789 00:50:03,510 --> 00:50:06,650 >> تو آپ کو دو چیزوں کے جب ایک تقریب ان پٹ لیتا ہے پر کی وضاحت کرنے کی ضرورت ہے. 790 00:50:06,650 --> 00:50:09,590 آپ کو وہ نام ہے جو کہ آپ اس ان پٹ پر دینے کے لئے چاہتے ہیں کی وضاحت کرنے کی ضرورت ہے 791 00:50:09,590 --> 00:50:12,700 خالصتا تاکہ آپ کو آپ اپنی سہولت کے لئے اس سے رجوع کر سکتے ہیں 792 00:50:12,700 --> 00:50:16,540 تقریب ہے کہ آپ اپنے آپ کو لکھنے، کے طور پر میں 32 سطر میں یہاں کیا کر رہے ہیں. 793 00:50:16,540 --> 00:50:20,800 لیکن تم نے بھی اس قسم کی وجہ سے سی ایک پروگرامنگ زبان ہے کی وضاحت کی ضرورت ہے 794 00:50:20,800 --> 00:50:25,940 یہ صرف کی ضرورت ہے کہ اگر آپ ایک متغیر کرنا چاہتے ہیں، تو آپ کے کمپیوٹر کو بتانے کے لئے ہے کہ اعداد و شمار کی قسم یہ ہے ہے، 795 00:50:25,940 --> 00:50:30,200 بڑے حصے میں تاکہ یہ جانتا ہے کہ کتنے بٹس کہ متغیر کے لئے مختص 796 00:50:30,200 --> 00:50:33,020 کیونکہ یہ 6 ہو سکتا ہے - معاف کرنا، یہ 6 نہیں کرے گا. 797 00:50:33,020 --> 00:50:37,080 یہ 16 ہو سکتا ہے، اس کے پاس 8 ہو سکتا ہے، یہ 32 ہو، یہاں تک کہ 64 کر سکتے ہیں، 798 00:50:37,080 --> 00:50:39,130 لیکن کمپیوٹر پر پتہ کی ضرورت ہے. 799 00:50:39,130 --> 00:50:43,180 اب بائیں ہاتھ پر int کے برعکس کیا، کی نمائندگی کرتا ہے؟ 800 00:50:46,350 --> 00:50:48,850 [اشراوی طالب علم کے جواب] >> یہ کیا ہے؟ تقریب کی >> [طالب علم] قسم ہے. 801 00:50:48,850 --> 00:50:53,610 ایک تقریب کی قسم، اور خاص طور پر، اس کی پیداوار کی قسم. ٹھیک ہے. 802 00:50:53,610 --> 00:50:57,380 تو قوسین میں بات جبکہ اس کی ان پٹ کی نمائندگی کرتا ہے، اگر کوئی ہے تو، 803 00:50:57,380 --> 00:50:59,660 بائیں بات اس کی پیداوار کی نمائندگی کرتا ہے. 804 00:50:59,660 --> 00:51:03,530 اور اس معاملے میں اضافہ بظاہر ایک int واپس، 805 00:51:03,530 --> 00:51:07,690 اور اس int اس تقریب کی واپسی کی قسم ہے. 806 00:51:07,690 --> 00:51:09,340 کیا اس سے فرق پڑتا ہے کی واپسی کا مطلب؟ 807 00:51:09,340 --> 00:51:15,090 لفظی، آپ کو مطلوبہ الفاظ کی واپسی کا استعمال کرتے ہیں اور اس کے بعد جو آپ کو واپس لوٹ رہے ہیں اگر 808 00:51:15,090 --> 00:51:18,600 مطلوبہ الفاظ کے دائیں جانب ایک عدد صحیح ہے، 809 00:51:18,600 --> 00:51:21,660 تو وہ جو ہم سے وعدہ کیا ہے اس کے ساتھ یقینا مطابق ہے. 810 00:51:21,660 --> 00:51:26,410 ہیلو دنیا - - آپ ایسا کچھ نہیں کر سکتا کیونکہ وہ ایک تار ہے. 811 00:51:26,410 --> 00:51:28,860 >> ظاہر ہے، یہ ایک عدد صحیح نہیں ہے. 812 00:51:28,860 --> 00:51:33,140 تو مختصر میں، بوجھ ہم پر واقعی ہے، پروگرامر، مخصوص ہونا 813 00:51:33,140 --> 00:51:37,770 جو ہم واپس لوٹنے رہے ہیں اور کے طور پر اس کے واپس لوٹنے کے بارے میں تو اصل میں جانا. 814 00:51:37,770 --> 00:51:43,440 یہاں سیاق و سباق اب یہ ہے کہ آپ کے کمپیوٹر کی میموری میں ایک گیگا بائٹ، 2 گیگا ہے - 815 00:51:43,440 --> 00:51:45,920 جو بھی - شاید یہ زیادہ ہے، شاید یہ کم ہے، 816 00:51:45,920 --> 00:51:49,050 لیکن کمپیوٹر کے مختلف حصوں ہونے کے طور پر دیکھتا ہے. 817 00:51:49,050 --> 00:51:51,200 کچھ اور کچھ وہاں نیچے جاتا ہے، وہاں جاتا ہے، 818 00:51:51,200 --> 00:51:54,290 مختلف چیزیں درمیان میں جاتا ہے، اور آج ہم صرف کہانی کہہ شروع، 819 00:51:54,290 --> 00:51:56,340 لیکن ہم اس سے زیادہ وقت واپس آ جائیں گے. 820 00:51:56,340 --> 00:51:59,980 اب کے لیے، میموری کا واحد ٹکڑا ہم واقعی پرواہ متن حصہ ہے 821 00:51:59,980 --> 00:52:03,360 کیونکہ یہ صرف 0s اور 1s بجنا ہے کہ کی نمائندگی کرتا ہے outputted ہے. 822 00:52:03,360 --> 00:52:06,050 تو جب تم a.out طرح کی بورڈ میں ایک کمانڈ چلائیں 823 00:52:06,050 --> 00:52:09,110 یا آپ میک OS یا ونڈوز پر ڈبل ایک آئکن پر کلک کریں، 824 00:52:09,110 --> 00:52:11,880 آپ کے پروگرام آپ کی ہارڈ ڈرائیو سے RAM میں بھری ہوئی ہے 825 00:52:11,880 --> 00:52:16,330 اور یہ آپ کے کمپیوٹر کے RAM کے سب سے اوپر دیئے گئے plopped ہے، تو بات کرنے کی. 826 00:52:16,330 --> 00:52:20,450 دریں اثناء، جیسا کہ آپ کے پروگرام چل رہا شروع ہوتا ہے اور بنیادی کہا جاتا ہو جاتا ہے 827 00:52:20,450 --> 00:52:23,640 پروگرام میں آپ نے لکھا ہے یا پروگرام مائیکروسافٹ یا ایپل نے لکھا، 828 00:52:23,640 --> 00:52:27,860 اس کے مقامی متغیرات میں سے کوئی آپ کے کمپیوٹر کی میموری کے سب سے نیچے دیئے گئے ذیل میں ختم. 829 00:52:27,860 --> 00:52:33,230 لیکن اہم کالز ایک اور تقریب ہے جو خود متغیر یا دلائل ہیں، اگر وہ اس سے اوپر ختم. 830 00:52:33,230 --> 00:52:36,680 اور اگر اس تقریب کو کچھ کہلاتا ہے، وہ اس کے اوپر اس کے اوپر ختم، اس کے اوپر ہے. 831 00:52:36,680 --> 00:52:41,460 >> ، اور صرف ایک بار ایک تقریب قتل کیا جاتا ہے، ٹرے کے اسٹیک، تو ہے بات کرنے کی 832 00:52:41,460 --> 00:52:43,240 کم اور کم حاصل کرنے کے لئے شروع. 833 00:52:43,240 --> 00:52:48,250 اور یہ وہی ہے جو اس کے بعد، ایک مختصر میں وضاحت کرتا ہے، کیوں جب آپ کیوب فون 834 00:52:48,250 --> 00:52:51,550 یا آپ اضافہ کہتے ہیں، تو آپ کو قدر کی ایک کاپی میں گزر رہے ہیں. 835 00:52:51,550 --> 00:52:55,520 اور اس کا کیا pictorially کا مطلب یہ ہے کہ آپ لفظی نمبر 1 لکھ رہے ہیں 836 00:52:55,520 --> 00:53:00,460 میموری کا ایک اور حصہ میں تبدیل کرنے، کہ اضافہ کی صورت میں 1 2 837 00:53:00,460 --> 00:53:04,820 یا ایک کیوب کے معاملے میں 8 اور پھر اس میموری کو دور پھینک 838 00:53:04,820 --> 00:53:09,140 جیسے ہی اضافہ یا کیوب تقریب کی واپسی کے طور پر. سوال. 839 00:53:09,140 --> 00:53:12,900 [طالب علم] عالمی متغیر کہاں محفوظ ہوتی ہیں؟ 840 00:53:12,900 --> 00:53:18,100 عالمی متغیر کیا اس وقت کہا جاتا initialized ڈیٹا یا غیر ابتدا شدہ ڈیٹا میں جمع کیے جاتے ہیں، 841 00:53:18,100 --> 00:53:21,920 اختلاف ہے، اگر آپ کو ایک عالمی متغیر ہے اور آپ نے اسے تفویض فوری طور پر ایک قیمت 842 00:53:21,920 --> 00:53:24,640 کے ساتھ سائن ان برابر ہے، یہ وہاں سب سے اوپر دیئے گئے ختم ہوتا ہے، 843 00:53:24,640 --> 00:53:29,200 اور اگر آپ نے ابھی int ایکس کا کہنا ہے کہ، کوئی قیمت نہیں کے ساتھ، یہ RAM میں ختم ہو جاتی ہے تھوڑا سا کم 844 00:53:29,200 --> 00:53:31,710 صرف کنونشن کی طرف سے. 845 00:53:31,710 --> 00:53:34,940 دیگر سوال؟ ٹھیک ہے. 846 00:53:34,940 --> 00:53:37,340 تو یہ تصویر واپس آنا کیونکہ ہم زیادہ طاقتور ملے گا 847 00:53:37,340 --> 00:53:39,170 ہم نے کمپیوٹر کے ساتھ کیا کر سکتے ہیں کے ساتھ، 848 00:53:39,170 --> 00:53:42,720 لیکن اب، خفیہ نگاری پر ایک مختصر تعارف ہے، 849 00:53:42,720 --> 00:53:46,080 خفیہ نگاری کی ایک مخصوص قسم کی ہے کہ دنیا کے مسائل کا حل نہیں ہے 850 00:53:46,080 --> 00:53:47,720 لیکن ان میں سے کچھ کو حل کرتا ہے. 851 00:53:47,720 --> 00:53:51,700 یہاں اس صورت میں، ہم نام خفیہ نگاری خفیہ کلید کچھ ہے. 852 00:53:51,700 --> 00:53:56,410 خفیہ نگاری خفیہ کلید ہے، جیسا کہ نام سے پتہ چلتا ہے، ایک راز سے اس کی سیکورٹی کو حاصل ہے. 853 00:53:56,410 --> 00:54:00,690 >> مثال کے طور پر، اگر آپ کو گریڈ اسکول میں واپس تھے اور آپ کو ایک چھوٹے سے رہسی محبت خط سے گزر رہے تھے 854 00:54:00,690 --> 00:54:04,850 لڑکا ہے یا لڑکی کرنے کے لئے آپ کو پر کچل رہے تھے، اگر آپ کو سامعین کے ذریعے نوٹ کو منتقل کرنا چاہتے تھے، 855 00:54:04,850 --> 00:54:08,380 آپ کو شاید اس طرح انگریزی میں ایک نوٹ لکھ نہیں یا جو بھی اپنے آبائی زبان ہے گی. 856 00:54:08,380 --> 00:54:13,340 بلکہ، آپ خفیہ یا تم نے انہیں ان دنوں صرف ایک متن پیغام بھیج سکتا ہے ہو سکتا ہے. 857 00:54:13,340 --> 00:54:15,460 لیکن آپ انہیں اصل میں کلاس بھر میں ایک نوٹ کے پاس ہو سکتا ہے. 858 00:54:15,460 --> 00:54:18,700 اور اس طرح میں یہ محفوظ کرنا ہے کہ اپنے دوستوں اور اساتذہ 859 00:54:18,700 --> 00:54:22,650 یہ معلوم نہیں ہے کہ آپ کیا لکھ رہے ہیں، آپ کو ایک منصفانہ سادہ الگورتھم کے ساتھ آ سکتا ہے، 860 00:54:22,650 --> 00:54:25,920 تم جوان اگرچہ ہو سکتا ہے، صرف الفاظ جدوجہد. 861 00:54:25,920 --> 00:54:28,130 تو آپ کو ایک لکھنے کی بجائے بی لکھ سکتا ہے، 862 00:54:28,130 --> 00:54:30,220 بجائے آپ بی سی کو لکھ سکتا ہے، 863 00:54:30,220 --> 00:54:32,140 بجائے آپ سی کے د لکھنے، اور وغیرہ ہو سکتا ہے. 864 00:54:32,140 --> 00:54:34,360 یا آپ ایک سے زیادہ بہتر ترجمہ کے ساتھ آ سکتا ہے 865 00:54:34,360 --> 00:54:36,720 مختلف خطوط خط. 866 00:54:36,720 --> 00:54:39,740 لیکن پکڑنے لڑکا ہے یا جن کیا آپ یہ معلومات بھیج رہے ہیں لڑکی ہے 867 00:54:39,740 --> 00:54:45,020 ضروریات کو کچھ ہے، ظاہر ہے پتہ ہے؟ >> [طالب علم] کیا آپ کو بھیج رہے ہیں. 868 00:54:45,020 --> 00:54:49,720 کیا تمہارا راز ایک اور بی اور سی اور کے D'کے درمیان تعریفیں کیا ہے کی طرح ہے،. 869 00:54:49,720 --> 00:54:54,650 کیا یہ صرف حروف میں سے ہر ایک 1 انہوں نے مزید کہا سے بی بی، سی ہے؟ 870 00:54:54,650 --> 00:54:56,670 یہ اس سے بھی زیادہ پیچیدہ ہے؟ 871 00:54:56,670 --> 00:55:01,540 >> تو آپ اور آپ کے چاہنے والوں کو یہ خفیہ معلومات فراہم کرنے کی ضرورت ہے، 872 00:55:01,540 --> 00:55:03,190 لیکن یہاں پکڑنے-22 کی طرح ہے. 873 00:55:03,190 --> 00:55:06,830 اگر یہ بہت ہی پہلی بار ہے آپ کو کلاس کے ذریعے اس محبت خط بھیج رہے ہیں، 874 00:55:06,830 --> 00:55:10,720 کہ لڑکا ہے یا لڑکی کا پتہ بھی کیا راز ہے کہ کس طرح چل رہا ہے؟ 875 00:55:10,720 --> 00:55:13,930 تو خفیہ کلید crypto دنیا کے مسائل کا حل نہیں ہے، 876 00:55:13,930 --> 00:55:16,320 اور وہاں اصل میں تعلق ہے کہ ہم سمسٹر آخر کی طرف واپس آ جائیں گے. 877 00:55:16,320 --> 00:55:25,110 اسی طرح ہم میں سے سب سے زیادہ جانتے ہیں کہ کسی جو مثال کے طور پر کام کرتا ہے، Amazon.com، نہیں، 878 00:55:25,110 --> 00:55:28,190 اور ابھی تک ہم میں سے بہت سے لوگ شاید Amazon.com میں سامان خریدا، 879 00:55:28,190 --> 00:55:31,990 اور ہم فرض ہے کہ ان ای کامرس لین دین محفوظ ہیں سکھایا گیا ہے. 880 00:55:31,990 --> 00:55:36,470 URL شاید کا کہنا ہے کہ HTTPS، شاید ایک پاگل سی پیڈلاک آئکن ہے کہیں، 881 00:55:36,470 --> 00:55:39,930 خفیہ نگاری کے کچھ قسم کی آپ کے کریڈٹ کارڈ کی معلومات کی حفاظت ہے 882 00:55:39,930 --> 00:55:42,160 آپ اور Amazon.com کے درمیان. 883 00:55:42,160 --> 00:55:45,430 اور اس کے باوجود اگر خفیہ نگاری شامل کچھ راز جاننے 884 00:55:45,430 --> 00:55:48,620 اور ابھی تک میں ایمیزون پر کسی کو معلوم نہیں ہے اور میں اس بات کو یقینی طور سے اہتمام کیا راز کسی بھی قسم کی ہے نہیں 885 00:55:48,620 --> 00:55:52,710 ایمیزون میں کسی کے ساتھ کس طرح میرے کمپیوٹر یا اپنے براؤزر کر رہی ہے؟ 886 00:55:52,710 --> 00:55:55,720 اس کا بدل جاتا ہے وہاں خفیہ نگاری کے دیگر اقسام کے مکمل طور پر ہے کہ اس مسئلہ کو حل. 887 00:55:55,720 --> 00:55:57,670 لیکن ایک کے سادہ پر ہم آج کے لئے توجہ مرکوز کریں گے، 888 00:55:57,670 --> 00:56:00,290 آپ کو پیشگی میں جہاں کا بندوبست کچھ رہسی کے بارے میں جاننا کر سکتے ہیں 889 00:56:00,290 --> 00:56:03,760 +1 یا ایک اور بی کے درمیان کچھ میپنگ کی طرح. 890 00:56:03,760 --> 00:56:05,840 اور خفیہ نگاری کے عمل عام طور پر شامل ہیں. 891 00:56:05,840 --> 00:56:08,620 آپ کو کچھ سادہ متن، بائیں میں دکھائے جانے والے تاثر ہے، 892 00:56:08,620 --> 00:56:12,930 آپ الگورتھم یا عمل کے کسی قسم کے ذریعے اس کی خفیہ کاری کے لئے اسے چلانے - 893 00:56:12,930 --> 00:56:15,100 ب ہو سکتا ہے کہ صرف ایک ب ہو جاتا ہے، سی ہو جاتی ہے - 894 00:56:15,100 --> 00:56:17,490 اور پھر آپ ciphertext کے ساتھ ختم. 895 00:56:17,490 --> 00:56:20,380 دریں اثنا، ایک بار آپ کے چاہنے والوں کی اس خفیہ نوٹ حاصل کرنے کے 896 00:56:20,380 --> 00:56:24,200 وہ یا تو وہ بےرمز یہ عام طور پر کی طرف سے اس الگورتھم کو تبدیل ہے 897 00:56:24,200 --> 00:56:27,190 تاکہ سادہ متن واپس حاصل کرنے کے لئے. 898 00:56:27,190 --> 00:56:28,960 اس کی جسمانی incarnations ہیں. 899 00:56:28,960 --> 00:56:31,680 >> مثال کے طور پر، یہ ایک چھوٹے سے رہسی کوٹواچک انگوٹی ہے، 900 00:56:31,680 --> 00:56:35,110 اور یہ احساس ہے کہ دو dials یہاں ہے میں ایک انگوٹی ہے. 901 00:56:35,110 --> 00:56:38,490 اس چیز سے باہر علاقے، Z ذریعے ایک خط ہے، 902 00:56:38,490 --> 00:56:40,340 اگرچہ وہ بے ترتیب ترتیب میں ہیں، 903 00:56:40,340 --> 00:56:42,880 اور اندر، اصل میں کچھ تعداد 904 00:56:42,880 --> 00:56:46,620 اس طرح ہے کہ اس قسم کی اس انگوٹی کے ساتھ باہر نہیں بلکہ باری اندر کر سکتے ہیں 905 00:56:46,620 --> 00:56:49,140 کے لئے حروف کے ساتھ تعداد لائن. 906 00:56:49,140 --> 00:56:53,020 نامی ایک کرسمس کہانی فلم سے، آپ کو اس چھوٹی سی Ralphie دیکھیں گے 907 00:56:53,020 --> 00:56:58,000 اعداد و شمار کیا لٹل یتیم کے اینی خفیہ پیغام اس سے تھا شوقین تھا 908 00:56:58,000 --> 00:57:02,570 نے عددی پیغامات کی شکل میں ایک سیریل کے باکس، مجھے لگتا ہے، آگاہ 909 00:57:02,570 --> 00:57:07,220 اور آپ کو تمام چھوٹی سی کارڈ جو اناج کے خانے میں آیا جمع تھا، 910 00:57:07,220 --> 00:57:09,770 آپ کو ان میں میل تھا، آپ خفیہ کوٹواچک کی انگوٹی واپس حاصل کرنے کے لئے تھا 911 00:57:09,770 --> 00:57:13,910 تاکہ آپ کو آخر میں اعداد و شمار کیا تعریفیں حروف اور اعداد کے درمیان ہے 912 00:57:13,910 --> 00:57:15,550 حروف یا حروف اور. 913 00:57:15,550 --> 00:57:19,520 ہم کس طرح کمپیوٹر میں عمل درآمد یا کی نمائندگی اس طرح کی چیزوں کے بارے میں جا سکتے ہیں؟ 914 00:57:19,520 --> 00:57:22,560 ہم تھوڑا flexibly پر خود کا اظہار کرنے کا ایک طریقہ کی ضرورت ہے 915 00:57:22,560 --> 00:57:25,080 سے ہمارے متغیر کو ابھی تک کی اجازت دی ہے. 916 00:57:25,080 --> 00:57:29,000 ہم ints تھا، ہے ہم نے حروف لیا ہے، ہم floats اور ڈبلز اور دیگر لیا ہے، 917 00:57:29,000 --> 00:57:34,200 لیکن ان میموری کی انفرادی ٹکڑے ٹکڑے ہیں جو ہمیں چیزوں کا اظہار نہیں دیتے ہیں 918 00:57:34,200 --> 00:57:36,440 الفاظ اور جملے اور جملے کی طرح. 919 00:57:36,440 --> 00:57:38,630 بے شک ہم ایسی چیزیں ڈور بلایا ہے، 920 00:57:38,630 --> 00:57:42,660 لیکن ہم سے وعدہ کرتا ہوں کہ یہ واقعی میں صرف CS50 لائبریری میں ایک آسان بنانے ہے 921 00:57:42,660 --> 00:57:45,540 کہ ہم چھیل واپس ارادہ کر رہے ہیں. 922 00:57:45,540 --> 00:57:47,500 اور اس لئے کہ یہاں کرنا شروع کر دیں. 923 00:57:47,500 --> 00:57:49,840 آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور ایک فائل کو کھولنے کے دو - 924 00:57:49,840 --> 00:57:54,100 ان فائلوں کی تمام دستیاب ہیں، ہمیشہ کی طرح، آن لائن - نام نہاد array.c 925 00:57:54,100 --> 00:57:58,960 ایک ڈور کوئی تعلق مسئلے کو حل کرنے کے لئے لیکن اس ایک تصویر یہاں پینٹ 926 00:57:58,960 --> 00:58:01,520 کس طرح ہم نے ملاقات کی ایک صف کچھ استعمال کر سکتے ہیں. 927 00:58:01,520 --> 00:58:04,050 >> ایک صف میں ایک ڈیٹا کی قسم ہے. 928 00:58:04,050 --> 00:58:10,730 یہ قسم کی متغیر کی ایک قسم ہے جو ایک سے زیادہ چھوٹے اعداد و شمار اقسام اس کے اندر ہے ہے 929 00:58:10,730 --> 00:58:12,680 واپس واپس، واپس واپس. 930 00:58:12,680 --> 00:58:16,980 تو مثال کے طور پر اگر ہم ایک چھوٹا سا پروگرام ہے کہ آپ کو آپ کے کوئز اوسط دیتا ہے لکھنا چاہتے تھے 931 00:58:16,980 --> 00:58:19,780 50 2 quizzes ہے جیسے ایک کورس کے لئے 932 00:58:19,780 --> 00:58:23,450 آپ کو یہ بھی گزشتہ ہفتے کے مال کی کچھ کی بنیاد پر پروگرام کو بہت آسانی سے لکھ سکتے تھے 933 00:58:23,450 --> 00:58:28,830 GetInt اور متغیرات میں سے ایک جوڑے کا استعمال کرتے ہوئے کی طرف سے: int quiz1، quiz2 int. 934 00:58:28,830 --> 00:58:30,550 اور یہ بہت سیدھا ہے. 935 00:58:30,550 --> 00:58:33,500 یہ شاید 10 ہے، کوڈ زیادہ سے زیادہ 20 لائنیں ایک پروگرام پر عمل درآمد 936 00:58:33,500 --> 00:58:38,940 2 کوئز سکور کے لیے صارف تو پوچھتے ہیں اور ان کی اوسط computes 937 00:58:38,940 --> 00:58:42,020 میں شامل ایک ساتھ مل کر، 2 کی طرف سے تقسیم، اور پھر نتائج چھپائی کی طرف سے. 938 00:58:42,020 --> 00:58:46,400 ہم یہ شاید بہت آسانی سے اب کئی منٹ میں سے کچھ کے بعد کر سکتے ہیں. 939 00:58:46,400 --> 00:58:49,450 لیکن مسئلہ یہ ہے کہ لگتا ہے کہ 50 تھا 3 quizzes یا 4 ہے. 940 00:58:49,450 --> 00:58:52,830 فرض کریں کہ آپ ایک کلاس ہے کہ ہفتہ وار تھا quizzes کے لئے ایک ہی پروگرام استعمال کرنے کے لئے کرنا چاہتا تھا. 941 00:58:52,830 --> 00:58:55,100 ایک کلاس ہے کہ ہفتہ وار quizzes ہے کے بارے میں سوچو. 942 00:58:55,100 --> 00:58:58,840 اگر ایک سمسٹر میں 16 یا تو ہفتوں ہے، اب آپ کو 16 متغیر ہے: 943 00:58:58,840 --> 00:59:03,030 int quiz1، int quiz2، int quiz3، quiz4 int. 944 00:59:03,030 --> 00:59:06,870 جیسے ہی تم اس فالتوپن کو دیکھ کر شروع، اس کوڈ کی کاپی اور چسپاں، 945 00:59:06,870 --> 00:59:09,810 تم چاہو وہاں ایک بہتر طریقے تھے شروع کر دینا چاہئے. 946 00:59:09,810 --> 00:59:13,610 اور شکر، arrays کے وجہ سے ہے. تو ایسا کرنے دو 947 00:59:13,610 --> 00:59:16,700 سب سے پہلے، مجھے ایک بہت ہی سادہ بات یہ ہے کہ ہم نے استعمال کیا ابھی تک نہیں کیا ہے متعارف کرانے، 948 00:59:16,700 --> 00:59:18,820 لیکن آپ کو یہ کوڈ میں کبھی کبھار نظر آئے گا. 949 00:59:18,820 --> 00:59:21,270 >> اس کا ہے جو عام طور پر کہا جاتا مسلسل ہے. 950 00:59:21,270 --> 00:59:24,410 تو اس بات کا احساس ہے کہ اس کی قیمت کبھی نہیں بدل میں مسلسل ہے. 951 00:59:24,410 --> 00:59:26,450 انسانی کنونشن جب ایک مسلسل پیدا 952 00:59:26,450 --> 00:59:30,420 تمام بڑے حروف تہجی کو صرف اس لئے ہے کہ یہ واقعی آپ کے کوڈ میں ہے استعمال کرنے کے لئے ہے، 953 00:59:30,420 --> 00:59:34,270 اور مخصوص مطلوبہ الفاظ کی ہے کہ آپ C میں استعمال کرتے ہیں # وضاحت ہے. 954 00:59:34,270 --> 00:59:39,970 تو ہم کا کہنا ہے کہ #، تو ایک خلا کی وضاحت، تو لفظ ہے کہ آپ کو مسلسل نام کے لئے استعمال کرنے کے لئے کرنا چاہتے ہیں 955 00:59:39,970 --> 00:59:41,730 اور اس کے بعد مسلسل کی قدر ہے. 956 00:59:41,730 --> 00:59:44,710 نوٹس یہ ایک متغیر کچھ بتائے سے مختلف ہے. 957 00:59:44,710 --> 00:59:46,430 کوئی برابر دستخط، کوئی نیم وقفہ نہیں ہے. 958 00:59:46,430 --> 00:59:49,140 یہ وہی ہے جو عام طور پر پریپروسیسر ہدایت کے طور پر نام سے جانا جاتا ہے، 959 00:59:49,140 --> 00:59:50,840 لیکن ہے کہ کسی دوسرے وقت پر. 960 00:59:50,840 --> 00:59:56,350 ابھی کے لئے، یہ ایک تبدیل کہا جاتا QUIZZES قدر پیدا 961 00:59:56,350 --> 00:59:58,290 جس کی اصل عددی قیمت 2 ہے. 962 00:59:58,290 --> 01:00:02,180 تو جہاں کہیں بھی آپ QUIZZES دیکھ، QUIZZES اس فائل کے دوران، QUIZZES 963 01:00:02,180 --> 01:00:04,230 کہ صرف 2 نمبر ہے. 964 01:00:04,230 --> 01:00:06,550 اگر میں مرکزی اب دیکھو، یہ کس طرح کام کرتا ہے کو دیکھنے کے. 965 01:00:06,550 --> 01:00:09,770 سب سے پہلے یہ تھوڑا خفیہ لگ رہا ہے، لیکن اس کی 1 ہفتہ سے ساری چیزیں ہے. 966 01:00:09,770 --> 01:00:12,210 گریڈ کے لئے صارف سے پوچھو. ہم اس کو کس طرح کرتے ہیں؟ 967 01:00:12,210 --> 01:00:17,350 22 لائن میں - یہ سچ رسیلی حصہ ہے - میں ایک فلوٹ کا اعلان 968 01:00:17,350 --> 01:00:23,240 لیکن صرف ایک فلوٹ نہیں. میں اعلان، بلکہ رہا ہوں، اقدار چل نقاط کی ایک صف ہے. 969 01:00:23,240 --> 01:00:27,700 یہ متغیر گریڈ کہا جاتا ہے، جیسا کہ یہاں تقاضا جا رہا ہے، 970 01:00:27,700 --> 01:00:31,420 لیکن نئے نحو کا واحد ٹکڑا تو یہ مربع بریکٹ ہیں. 971 01:00:31,420 --> 01:00:37,280 حقیقت یہ ہے کہ میں فلوٹ اور پھر گریڈ اوپن بریکٹ اور پھر ایک نمبر کا کہنا ہے کہ ہے - 972 01:00:37,280 --> 01:00:40,980 اگر یہ مسلسل جاری ہے، یہ ہم نے یہ کیا طرح ہے کا نوٹس - 973 01:00:40,980 --> 01:00:46,840 اس کا مطلب یہ ہے، "ارے، کمپیوٹر، مجھے 2 floats دے اور ہم مجموعی طور پر ان کے گریڈ کو فون کریں." 974 01:00:46,840 --> 01:00:51,780 >> یہ اس طرح ایک زیادہ تکاؤ عمل کے برعکس ہے: grade1 فلوٹ؛ 975 01:00:51,780 --> 01:00:54,580 grade2 فلوٹ، اور وغیرہ. 976 01:00:54,580 --> 01:00:58,310 تو ایک صف ہمیں اس خیال پر عمل در آمد کی بہت کم messily کی اجازت دیتا ہے لیکن، 977 01:00:58,310 --> 01:01:04,560 اس طرح کہ ہم کوڈ کے لائن 1 لکھنے کے بجائے، کا کہنا ہے کہ کر سکتے ہیں، سمسٹر 16 ہفتے کے لئے 16 میں. 978 01:01:04,560 --> 01:01:09,060 میں 2 کوڈ مشکل نہیں چاہتے تھے کیونکہ، اگر آپ اس کے بارے میں میں کیا سوچتے ہیں اب منطقی طور پر 979 01:01:09,060 --> 01:01:12,560 لگتا ہے کہ اگلے سال 3 CS50 تبدیلیاں بجائے quizzes 980 01:01:12,560 --> 01:01:15,010 اور میں یہاں 2 نمبر تھا، میں نے 2 نمبر یہاں تھا، 981 01:01:15,010 --> 01:01:17,210 میں نمبر 2 یہاں تھا، نمبر 2 یہاں. 982 01:01:17,210 --> 01:01:19,890 یہ بہت تکاؤ اور بہت آسان بگاڑ ہو جاتا ہے 983 01:01:19,890 --> 01:01:26,550 اور اتفاقی طور پر 3 سے 1 قدر تبدیل اور 2 میں سے کچھ دوسرے قدر یاد آتی ہے. 984 01:01:26,550 --> 01:01:30,660 تو میں بجائے خلاصہ دور جا رہا ہوں اور یہ مسلسل اس کا استعمال، 985 01:01:30,660 --> 01:01:32,520 کے طور پر اس کا نام تجویز ہے، کبھی نہیں بدل جاتا ہے. 986 01:01:32,520 --> 01:01:35,870 اور اب کوئی بات نہیں ہے کہ ہم مختلف ہیں اس سال یا آئندہ quizzes، 987 01:01:35,870 --> 01:01:39,380 میں صرف یہ ایک جگہ میں سب سے اوپر میں تبدیل ہے. 988 01:01:39,380 --> 01:01:41,230 تو یہ سب ایک مسلسل جاری ہے. 989 01:01:41,230 --> 01:01:47,100 دریں اثنا، نیا تصوراتی خصوصیت ایک صف کی ہے. 990 01:01:47,100 --> 01:01:55,030 تو مربع بریکٹ مجھے یہ بہت floats دے گا اور اس کی اجازت دیتا ہے آپ کے وزٹرز کا ریکارڈ رکھا اجتماعی انہیں گریڈ یہاں فون ہے. 991 01:01:55,030 --> 01:01:56,720 تو اب دیکھنے کی بات ہے کہ میں کیا کرنے جا رہا ہوں. 992 01:01:56,720 --> 01:01:59,220 یہاں 24 سطر میں لوپ کے لئے ایک آغاز ہے. 993 01:01:59,220 --> 01:02:03,380 >> یہ واقعی میں کچھ بھی نہیں پسند ہے. یہ صرف QUIZZES کا استعمال کرتے ہوئے مشکل کوڈت ایک بڑی تعداد کے بجائے. 994 01:02:03,380 --> 01:02:06,740 لیکن ذہنی گزشتہ ہفتے سے مختلف نہیں ہے. 995 01:02:06,740 --> 01:02:11,650 یہ صرف printf ہے، تو printf ("٪ د٪ # D کوئز:") 996 01:02:11,650 --> 01:02:16,670 کیونکہ میں صرف پرنٹ دینے کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے 2 نمبر 1 گئے تمام سوالات اور اس کے بعد 2 کا 2 چاہتے ہیں. 997 01:02:16,670 --> 01:02:18,480 تو یہ ایک خالصتا جمالیاتی بات ہے. 998 01:02:18,480 --> 01:02:21,000 لیکن دلچسپ حصہ اب 27 لائن میں ہے. 999 01:02:21,000 --> 01:02:27,840 میں چل نقاط ایک قدر کے ساتھ دو جگہ دار میں سے ایک میں بھرنے کے لئے 1000 01:02:27,840 --> 01:02:29,640 تم پھر سے مربع بریکٹ کا استعمال کریں. 1001 01:02:29,640 --> 01:02:35,170 اس صورت میں، میں نے میں کا استعمال کریں کیونکہ لوپ کے لئے اس قدر کیا برابر کے ساتھ شروع کیا ہے، بظاہر رہا ہوں؟ 1002 01:02:35,170 --> 01:02:36,670 0 [طالب علم]. >> [Malan] 0. 1003 01:02:36,670 --> 01:02:40,990 تو اس لوپ کے پہلے iteration ہے جیسے میں نے کوڈ میں یہ لکھا تھا، 1004 01:02:40,990 --> 01:02:46,310 لیکن اس لوپ کے دوسرے iteration پر ایسا ہے جیسے میں اپنے کوڈ میں یہ لکھا ہے. 1005 01:02:46,310 --> 01:02:49,970 لیکن حقیقت یہ ہے کہ میں ایک متغیر کا استعمال کرتے ہوئے کر رہا ہوں بہت اچھا ہے، کیونکہ جیسا کہ نام سے پتہ چلتا ہے، 1006 01:02:49,970 --> 01:02:52,600 ہر iteration پر اس قدر مختلف ہے، 1007 01:02:52,600 --> 01:02:55,900 تو میں اس صف ایک وقت میں بھرنے رہا ہوں ایک جگہ. 1008 01:02:55,900 --> 01:02:57,380 کیا اس صف کی طرح لگتی ہے؟ 1009 01:02:57,380 --> 01:03:01,570 میں سکرین پر سپر آسان مستطیل یہاں متوجہ وجہ سے پہلے اس وجہ سے تھا. 1010 01:03:01,570 --> 01:03:05,590 ایک صف میموری کا ایک حصہ میموری کا ایک حصہ کے بعد ہے 1011 01:03:05,590 --> 01:03:08,570 میموری کا ایک حصہ کی طرف سے کے بعد اور وغیرہ. 1012 01:03:08,570 --> 01:03:13,120 تو اگر میرا اس معاملے میں صف 2 سائز کے یہاں ہے، سب میں کر کی جائے گی 1013 01:03:13,120 --> 01:03:20,200 میرے کوئز اسکور میں ٹائپ کرکے یہاں اچھا لگتا ہے - میں اس پر 100 ہے اور تو مجھے اس پر 99 ایک ہے - 1014 01:03:20,200 --> 01:03:24,970 تو اس میموری بھی نہیں ہو سکتا ہے استعمال کیا جاتا ہے کیونکہ میں صرف کمپیوٹر سے پوچھا ہے 1015 01:03:24,970 --> 01:03:26,840 2 سائز کے ایک صف کے لئے. 1016 01:03:26,840 --> 01:03:28,600 وہ چوکوں اب بھی وہاں ہو، ہے نا؟ 1017 01:03:28,600 --> 01:03:32,670 آپ اب بھی رام کی 2 گیگا ہیں یہاں تک کہ اگر آپ صرف 2 floats کے بارے میں پوچھ رہے ہیں. 1018 01:03:32,670 --> 01:03:36,840 تو arrays کے پیچھے خیال ہے کہ کمپیوٹر میموری کا ایک حصہ لیتا ہے 1019 01:03:36,840 --> 01:03:41,340 اور پھر چھوٹے ٹکڑوں واپس apportions واپس، واپس واپس. 1020 01:03:41,340 --> 01:03:43,310 اور اس طرح ہے کہ ایک صف ہے. 1021 01:03:43,310 --> 01:03:47,350 >> یہ میموری کے اندر ایک ملحق حصہ ہے جس میں سے آپ کو چیزیں ڈال کر سکتے ہیں. 1022 01:03:47,350 --> 01:03:50,700 یہ تو صرف کچھ بورنگ ریاضی کرنا ہوتا ہے. 1023 01:03:50,700 --> 01:03:54,640 اگر میں یہاں نیچے سکرال، یہ وہ جگہ ہے جہاں تو میں صف پر iterate. 1024 01:03:54,640 --> 01:03:58,020 میں صف میں اقدار میں سے سب سے summation کے ساتھ آتے ہیں، 1025 01:03:58,020 --> 01:04:02,470 اور پھر میں گول تقریب یہاں کو استعمال کرتے ہوئے اصل میں QUIZZES سے تقسیم رقم کرنا ہے. 1026 01:04:02,470 --> 01:04:06,320 لیکن کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے اب کے لئے کافی ریاضی کی طرح کے طور پر اس میں اپنے ہاتھ لہر. 1027 01:04:06,320 --> 01:04:08,370 لیکن جو میرے لئے کر رہی ہے بالآخر اوسطا کمپیوٹنگ ہے. 1028 01:04:08,370 --> 01:04:13,580 تو پہلے کوئز کے علاوہ دوسری کوئز 2 سے تقسیم کیا اور پھر اسے ایک int کے طور پر پرنٹنگ باہر. 1029 01:04:13,580 --> 01:04:17,280 لیکن چلو اب نامی ایک مختلف string1 مثال کے طور پر منتقلی 1030 01:04:17,280 --> 01:04:20,700 جس میں ایک اسی طرح کی تصویر کا استعمال کرتے ہوئے کی ڈور پینٹ. 1031 01:04:20,700 --> 01:04:23,940 آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور صرف ایک لمحے کے لئے یہ آسان بنانے. 1032 01:04:23,940 --> 01:04:27,090 پوٹ کاری کو اب معاف کر دو. 1033 01:04:27,090 --> 01:04:30,870 اس مثال میں سے 19 کی لائن میں نوٹس، میں صارف کی طرف سے ایک تار ملتا ہے. 1034 01:04:30,870 --> 01:04:34,640 نوٹس لیکن کیا میں اگلے لائنوں میں 22 آگے کر رہا ہوں. 1035 01:04:34,640 --> 01:04:41,250 میں اصل میں میں سے iterating رہا ہوں - اور یہ ایک نئی چال ہے - strlen، سٹرنگ، کی حد کے ہے. 1036 01:04:41,250 --> 01:04:44,880 یہ کہ، اگر آپ اسے ایک تار پاس ایک تقریب ہے جو کہ C کے ساتھ آتا ہے ہے 1037 01:04:44,880 --> 01:04:47,730 یہ آپ کو بتاتا ہے اس سٹرنگ میں کتنے حروف ہیں. وہ سب ہے. 1038 01:04:47,730 --> 01:04:51,550 اور حقیقت یہ ہے کہ یہ تار کی لمبائی کی بجائے strlen ہے کیونکہ یہ زیادہ succinct ہے. 1039 01:04:51,550 --> 01:04:55,100 تیس سال پہلے، لوگوں، چیزوں اور succinctly ممکن لکھنا پسند، 1040 01:04:55,100 --> 01:04:57,630 تو ہم نے اس کنونشن کو یہاں رکھ دیا ہے. 1041 01:04:57,630 --> 01:05:00,660 میں + کا مطلب صرف + ہر iteration میں اضافہ. 1042 01:05:00,660 --> 01:05:02,990 اور اب اس نوٹس کے، جو واقعی دلچسپ ہے. 1043 01:05:02,990 --> 01:05:09,180 اوپر 24 میں، میں کہتا ہوں، "کمپیوٹر، مجھے ایک کردار دے، 8 بٹس، اور اسے سی کو فون کریں." 1044 01:05:09,180 --> 01:05:12,630 لیکن جو دائیں ہاتھ سے کہہ یہ کیا ہے؟ 1045 01:05:13,490 --> 01:05:16,530 انگریزی میں، اس کا کیا کی نمائندگی کرتا ہے؟ 1046 01:05:16,530 --> 01:05:18,730 [طالب علم] صف میں پہلی کردار. 1047 01:05:18,730 --> 01:05:20,790 بالکل. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے صف میں سب سے پہلے کردار دے دو. 1048 01:05:20,790 --> 01:05:24,090 یا، عام طور پر، کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے صف میں ith کردار دیتے ہیں. 1049 01:05:24,090 --> 01:05:26,100 احساس اور اب یہ ضروری ہے کہ، کمپیوٹر سائنسدانوں کے طور پر، 1050 01:05:26,100 --> 01:05:27,890 ہم اصل میں 0 سے گن رہے ہیں. 1051 01:05:27,890 --> 01:05:29,720 >> آپ صوابدید نہیں ہے ایسا کرنے شروع کرنے کے لئے. 1052 01:05:29,720 --> 01:05:34,160 اب آپ کو کمپیوٹر کی توقعات کے مطابق برتاؤ کرنے اور 0 سے شمار ہوگا 1053 01:05:34,160 --> 01:05:38,180 [0] کیونکہ ایک تار میں پہلی کردار کی جا رہی ہے، 1054 01:05:38,180 --> 01:05:42,150 [1] دوسری جا رہا ہے، [2]، تیسری، اور وغیرہ جا رہا ہے. 1055 01:05:42,150 --> 01:05:49,720 ، تو یہ پروگرام، اگر میں اسے مرتب، اس کو دوبارہ string1 ہے، تو string1 بنانے 1056 01:05:49,720 --> 01:05:54,670 اور اب میں میرے ٹرمنل ونڈو میں string1 چلائے گئے. 1057 01:05:54,670 --> 01:05:58,330 یہ ان پٹ کے لئے انتظار کر رہا ہے، تو میں ڈیوڈ میں ٹائپ کرنے کے لئے، درج کریں جا رہا ہوں، 1058 01:05:58,330 --> 01:06:02,540 اور اب یہ مختلف لائنوں پر داؤد پرنٹ کیونکہ نوٹس کہ میں کیا کر رہا ہوں. 1059 01:06:02,540 --> 01:06:05,820 میں ایک وقت میں ایک کردار چھپائی رہا ہوں. 1060 01:06:05,820 --> 01:06:10,100 ہم تفصیل میں جانا، اس پر آج نہیں کرے گا، لیکن مجھے یہ چیک پہلے ایک لمحے کے یہاں سے خارج کر دیا ہے. 1061 01:06:10,100 --> 01:06:15,480 یہ پتہ چلا ہے کہ اگر صارف ناجائز استعمال کر رہی ہے، معاندانہ، یا صرف الجھن میں، 1062 01:06:15,480 --> 01:06:20,210 آپ کو کچھ کی لمبائی کی ایک تار دینے کے لئے اصل میں ناکام کر سکتے ہیں. 1063 01:06:20,210 --> 01:06:22,860 اگر آپ نے کی بورڈ پر غلط کلید کو مارا، آپ کو کوئی تار دے سکتا ہے، 1064 01:06:22,860 --> 01:06:26,950 یا اگر آپ بدنیتی پر مبنی ہیں، تو آپ کو ایک مضمون کے ایک گیگا بائٹ کی مالیت میں پیسٹ کرنے کی کوشش کر سکتے ہیں 1065 01:06:26,950 --> 01:06:29,290 ، میں اس جملے کو بھرنے کے لئے، اور اگر کمپیوٹر میموری ختم 1066 01:06:29,290 --> 01:06:32,710 یہ پتہ چلا ہے کہ ہم واپس نامی اس خاص نل قیمت حاصل کرنے کے لئے جا رہے ہیں. 1067 01:06:32,710 --> 01:06:35,580 تو اب کے لئے، صرف یہ جانتے ہیں کہ اس خصوصی ملاقات کی نل قدر ہے 1068 01:06:35,580 --> 01:06:39,580 جو ہمیں چیک کرنے کے لیے جب ہم میموری سے باہر دوسری چیزوں کے درمیان ہیں، کی اجازت دے گا. 1069 01:06:39,580 --> 01:06:45,630 لیکن اگر میں کھول اب string2، یہاں ایک فرق محسوس کریں. 1070 01:06:45,630 --> 01:06:48,210 string2 کے ساتھ ایک فرق نوٹس 1071 01:06:48,210 --> 01:06:51,340 string2 کے ساتھ، لوپ کے لئے یہ تھوڑا مختلف ہے. 1072 01:06:51,340 --> 01:06:55,010 >> مجھے NULLs تاکہ ہم ان لوگوں کو کسی اور وقت کے بارے میں بات کر سکتے ہیں حذف. 1073 01:06:55,010 --> 01:06:57,800 لوپ کے لئے اس وقت کے بارے میں مختلف کیا ہے؟ 1074 01:06:59,620 --> 01:07:01,670 میں گزشتہ مثال کے طور پر واپس جا سکتے ہیں. 1075 01:07:01,670 --> 01:07:08,580 تو ورژن 2، 1 ورژن ہے. 1، 2. 1076 01:07:08,580 --> 01:07:11,980 1، 2. 1077 01:07:13,520 --> 01:07:16,660 strlen فون ہے کہاں؟ 1078 01:07:16,660 --> 01:07:18,860 یہ لوپ کے لئے سب سے پہلے حصے میں ہے. 1079 01:07:18,860 --> 01:07:21,830 میں نے یہ کیوں کر رہا ہوں کوئی خیال؟ جی ہاں. 1080 01:07:21,830 --> 01:07:24,560 [طالب علم] تو آپ کو تقریب ہر ایک وقت فون نہیں ہے. 1081 01:07:24,560 --> 01:07:26,440 [Malan] تو ہم FUNCTION کو کال نہیں ہر ایک وقت. بالکل. 1082 01:07:26,440 --> 01:07:28,300 loops کے لئے سے یاد ہے کہ وہ انتہائی سادہ ہیں 1083 01:07:28,300 --> 01:07:31,770 ایک بار آپ کی طرح سمجھتے ہیں کہ یہ ابتدا، حالت، اور اپ ڈیٹ ہے. 1084 01:07:31,770 --> 01:07:34,750 مسئلہ یہ ہے کہ حالت لوپ کے ہر iteration پر ہوتا ہے. 1085 01:07:34,750 --> 01:07:40,010 اور اس وجہ سے یہاں اس مثال میں، حقیقت یہ ہے کہ یہ میری شرط ہے کے بارے میں برا کیا ہے؟ 1086 01:07:40,010 --> 01:07:41,830 [طالب علم] آپ strlen بلا رہے ہیں. 1087 01:07:41,830 --> 01:07:44,340 [Malan] آپ strlen پھر بلا رہے ہیں اور بار بار. 1088 01:07:44,340 --> 01:07:47,410 کہ سٹرنگ کی طوالت لیکن ایک بار میں داؤد میں ٹائپ ہے، 5، 1089 01:07:47,410 --> 01:07:49,650 اور یہ لوپ کے ہر iteration پر تبدیل کرنے کے لئے نہیں ہے 1090 01:07:49,650 --> 01:07:51,670 کیونکہ اب بھی سٹرنگ D--V-D-. 1091 01:07:51,670 --> 01:07:55,320 تو یہ ایک تیزی سے اہم خیال کیا بننے جا رہی ہے میں ایک اشارہ ہے 1092 01:07:55,320 --> 01:08:00,410 ڈیزائن فیصلہ ہے جہاں صرف کمپیوٹر کے غیر ضروری کام کرتے ہیں کے طور پر جانا جاتا ہے. 1093 01:08:00,410 --> 01:08:03,920 >> بس کے طور پر سٹینڈرڈ ایڈیشن کا آپس میں ایک pset2 pset2 چوری چھپے پیش منظر 1094 01:08:03,920 --> 01:08:07,030 ہے، آپ اصل میں خفیہ کار کے کچھ نمبر پر عملدرآمد کو چیلنج کرنے والے 1095 01:08:07,030 --> 01:08:10,410 خفیہ کاری یلگوردمز کے کچھ نمبر، تاکہ تم خفیہ دونوں کر سکتے ہیں 1096 01:08:10,410 --> 01:08:13,840 اور بہت ایک Ralphie طرح بےرمز خفیہ پیغامات وہاں ضابطہ ربائی مکمل. 1097 01:08:13,840 --> 01:08:16,810 pset2 کے ہیکر ایڈیشن میں، ہم تھوڑا مزید جانے کے لئے جا رہے ہیں. 1098 01:08:16,810 --> 01:08:19,649 ہم ایک حقیقی کمپیوٹر سسٹم سے آپ کو ایک فائل کے ہاتھ میں جا رہے ہیں 1099 01:08:19,649 --> 01:08:23,479 ہے کہ صارف نام اور اصل مرموز پاس ورڈ کی ایک پوری چڑھانے پر مشتمل ہے، 1100 01:08:23,479 --> 01:08:26,939 اور ہیکر ایڈیشن کے لئے چیلنج ان کے پاس ورڈ کو ٹوٹ جا رہا ہے 1101 01:08:26,939 --> 01:08:33,200 اور اعداد و شمار کیا خفیہ نگاری یا کیا راز دراصل ان پاس ورڈ پیدا کرنے کے لئے استعمال کیا گیا. 1102 01:08:33,200 --> 01:08:36,109 اور ہم نے ایک نئی خصوصیت کا استعمال کرتے ہوئے سی کے کی طرف سے اس پر کرنے جا رہے ہیں 1103 01:08:36,109 --> 01:08:40,630 کہ میں آپ کے پاس صرف ایک ڈیمو دلائل کمانڈ لائن کے طور پر جانا جاتا دیں گے. 1104 01:08:40,630 --> 01:08:44,229 یہ پتہ چلتا ہے، جیسا کہ تم میں سے بعض کے حصے میں یا درسی کتابوں میں دیکھا جا سکتا ہے، 1105 01:08:44,229 --> 01:08:48,260 اہم قوسین میں صفر ہو ہمیشہ نہیں ہے. 1106 01:08:48,260 --> 01:08:52,430 یہ پتہ چلا ہے کہ اہم بھی اس طرح کر سکتے ہیں لکھا دو دلائل کے ساتھ، 1107 01:08:52,430 --> 01:08:56,870 argc اور argv، جہاں argc الفاظ کی تعداد ہے 1108 01:08:56,870 --> 01:09:00,020 ہے کہ آپ کو آپ کے کمانڈ لائن پر پروگرام کا نام کے بعد ٹائپ 1109 01:09:00,020 --> 01:09:03,420 اور argv اصل الفاظ ہیں. 1110 01:09:03,420 --> 01:09:07,540 اور کے طور پر مربع وہاں بریکٹ تجویز ہے، argv بظاہر ایک صف ہے. 1111 01:09:07,540 --> 01:09:12,210 یہ یاد میں ایک اسٹرنگ کے بعد ایک اسٹرنگ کے بعد ایک تار ہو رہا ہے. 1112 01:09:12,210 --> 01:09:16,010 >> تو جو ہم 2 pset کے ساتھ شروع کرنے کے لئے کے قابل ہو جائے کرنے کے لئے جا رہے ہیں کچھ اس طرح ہے. 1113 01:09:16,010 --> 01:09:21,350 اگر میں argv1، جس میں ایک مثال کے طور پر ہم نے پیر کو واپس آئے، اور اسے چلانے گے بناتے ہیں، 1114 01:09:21,350 --> 01:09:23,370 نوٹس کہ اس نے ابھی تک کچھ کرنا نہیں لگ رہا ہے. 1115 01:09:23,370 --> 01:09:25,490 یہ صرف اس کے اپنے نام پرنٹ. 1116 01:09:25,490 --> 01:09:31,479 لیکن اگر میں کہتا ہوں کہ الوداع کلاس، کا نوٹس کہ اس پروگرام بظاہر iterates 1117 01:09:31,479 --> 01:09:35,479 الفاظ ہے جو کہ آپ نے فوری طور پر ٹائپ کیا گیا ہے وہ یہ کہ یہ ہر ایک سے زیادہ ہے. 1118 01:09:35,479 --> 01:09:41,630 اور اس کا مطلب ہے جس کے ذریعے ہم الفاظ تک رسائی حاصل ہے کہ صارف کو فوری طور پر میں ٹائپ ہے 1119 01:09:41,630 --> 01:09:49,160 مرکزی تبدیل کرنے سے int اہم (باطل) سے اس ہفتے کے آخر میں شروع کرنے کے مرکزی (argc، argv) int کی طرف سے ہے 1120 01:09:49,160 --> 01:09:52,050 اور اس طرح دلائل کمانڈ لائن پیدا کیا جائے گا. 1121 01:09:52,050 --> 01:09:57,100 اور ایک بار تم اس میں واقعی بہتر ملے، آپ واقعی trippy پروگرام لکھنے کے قابل ہو جائے گا 1122 01:09:57,100 --> 01:09:59,610 جیسا کہ اس میں سے ایک، جس میں اوپر اور اس سے باہر جاتا ہے 1123 01:09:59,610 --> 01:10:03,940 فعالیت میں سے کچھ ہم اس طرح دور کیا ہے لیکن سب کو بہت طاقتور ہے. 1124 01:10:03,940 --> 01:10:08,950 >> تو ہم نے اس کے ساتھ سکرین پر چھوڑ دو، اور ہم نے تم سے پیر کو نظر آئے گا کریں گے. 1125 01:10:17,570 --> 01:10:20,000 >> [CS50.TV]