1 00:00:00,000 --> 00:00:02,970 >> [موسیقی بجانے] 2 00:00:02,970 --> 00:00:14,355 3 00:00:14,355 --> 00:00:15,700 >> DAVID J. MALAN: ٹھیک ہے. 4 00:00:15,700 --> 00:00:18,832 یہ CS50 ہے اور یہ ہے ہفتہ 2 کا آغاز ہے. 5 00:00:18,832 --> 00:00:21,040 اور تم اس سے زیادہ یاد کریں گے گزشتہ چند ہفتوں کے، 6 00:00:21,040 --> 00:00:24,490 ہم کمپیوٹر متعارف کروا دیا گیا ہے سائنس اور، کے نتیجے میں، پروگراموں. 7 00:00:24,490 --> 00:00:27,640 >> اور ہم نے کی راہ کی طرف سے کہانی شروع کر دیا سکریچ، جو کہ گرافیکل زبان 8 00:00:27,640 --> 00:00:28,990 ایم ائی ٹی کی میڈیا لیب سے. 9 00:00:28,990 --> 00:00:30,780 اور پھر سب سے حال ہی میں، گزشتہ ہفتے، ہم نے کیا 10 00:00:30,780 --> 00:00:34,450 ایک higher-- ایک متعارف کرانے نچلے درجے زبان پر جانا 11 00:00:34,450 --> 00:00:36,770 C، خالصتا ٹیکسٹ کا ہے کہ کچھ کے طور پر. 12 00:00:36,770 --> 00:00:39,440 اور، یقینا، پچھلی بار ہم نے کہ تناظر میں جائزہ لیا 13 00:00:39,440 --> 00:00:40,450 تصورات کی ایک بڑی تعداد. 14 00:00:40,450 --> 00:00:43,010 >> یہ، یاد، بہت تھا پہلا پروگرام ہم پر نظر ڈالی. 15 00:00:43,010 --> 00:00:45,710 اور اس پروگرام، بہت صرف، پرنٹ، "ہیلو، دنیا." 16 00:00:45,710 --> 00:00:47,730 لیکن اتنا زیادہ نہیں ہے بظاہر ماجک پر جا رہا. 17 00:00:47,730 --> 00:00:51,460 اس # شامل نہیں ہے ان زاویہ بریکٹ کے ساتھ. 18 00:00:51,460 --> 00:00:52,170 INT ہے. 19 00:00:52,170 --> 00:00:53,020 (باطل) ہے. 20 00:00:53,020 --> 00:00:56,330 قوسین، گھوبگھرالی منحنی خطوط وحدانی ہے، سیمی کولون، اور اتنا زیادہ. 21 00:00:56,330 --> 00:00:58,480 >> اور اگر ایسا ہے، یاد ہے کہ ہم نے شروع سے متعارف کرایا 22 00:00:58,480 --> 00:01:02,110 تاکہ ہم، مثالی طور پر، ماضی دیکھ سکتے تھے کہ نحوی، واقعی نہیں ہے کہ چیزیں 23 00:01:02,110 --> 00:01:04,590 تمام ہے کہ ذہنی دلچسپ لیکن ابتدائی تاریخ 24 00:01:04,590 --> 00:01:07,700 ، بالکل، تھوڑا سا مشکل ہے آپ کے دماغ کے ارد گرد لپیٹ. 25 00:01:07,700 --> 00:01:10,860 اور، یقینا، سب سے زیادہ عام میں سے ایک ایک پروگرامنگ کی کلاس میں جلد چیزیں، 26 00:01:10,860 --> 00:01:13,443 خاص طور پر ان کم کے لئے آرام دہ اور پرسکون، کی طرف سے مایوس کرنے کے لئے ہے 27 00:01:13,443 --> 00:01:17,460 اور بعض نحوی طرف فسل گیا غلطیاں، منطقی غلطیوں کا ذکر کرنا نہیں. 28 00:01:17,460 --> 00:01:19,800 اور ہمارے مقاصد کے درمیان اتنی آج، اصل میں، گے 29 00:01:19,800 --> 00:01:23,280 کچھ کے ساتھ آپ کو لیس کرنے کی ہو کس طرح کے لئے مسائل کو حل کرنے کی تکنیک 30 00:01:23,280 --> 00:01:26,705 بہتر مسائل خود حل کرنے کے ٹھیک کرنا کی شکل میں. 31 00:01:26,705 --> 00:01:29,330 اور تم بھی، یاد کریں گے، کہ ماحول ہم متعارف کرایا 32 00:01:29,330 --> 00:01:31,780 آخری بار CS50 IDE بلایا گیا تھا. 33 00:01:31,780 --> 00:01:34,850 یہ ویب کی بنیاد پر سافٹ ویئر ہے کہ آپ کلاؤڈ میں پروگرام کی اجازت دیتا، 34 00:01:34,850 --> 00:01:38,450 کے تمام رکھتے ہوئے، تو بات کرنے کے لئے اپنے ، ایک دوسرے کے ساتھ فائلوں کے طور پر ہم آج پھر کرے گا. 35 00:01:38,450 --> 00:01:41,480 اور یہ کہ ہم کو یاد یہاں ان موضوعات پر نظرثانی، 36 00:01:41,480 --> 00:01:44,480 ان کے درمیان کام کرتا ہے، اور loops، اور متغیر، اور بولین اظہار، 37 00:01:44,480 --> 00:01:45,110 اور شرائط. 38 00:01:45,110 --> 00:01:49,190 اور اصل میں ایک سے زیادہ چند کہ ہم سکریچ کی دنیا سے ترجمہ 39 00:01:49,190 --> 00:01:50,800 C. کی دنیا 40 00:01:50,800 --> 00:01:53,220 >> لیکن بنیادی عمارت بلاکس، تو بات کرنے 41 00:01:53,220 --> 00:01:55,150 واقعی اب بھی وہی گزشتہ ہفتے تھے. 42 00:01:55,150 --> 00:01:57,900 ایک سچ تو یہ ہے، ہم واقعی صرف پڑا مختلف پہیلی ٹکڑا، اگر آپ. 43 00:01:57,900 --> 00:02:00,300 کہ جامنی رنگ کے بجائے بلاک کے بچانے کے، ہم اس کی بجائے 44 00:02:00,300 --> 00:02:02,940 ہے جو printf کا تھا، C میں اس تقریب ہے کہ 45 00:02:02,940 --> 00:02:05,890 تم سے کچھ پرنٹ کرنے کے لئے کی اجازت دیتا ہے اور سکرین پر اس کی شکل. 46 00:02:05,890 --> 00:02:07,950 CS50 ہم متعارف کرایا لائبریری، جہاں آپ 47 00:02:07,950 --> 00:02:11,420 آپ کو ضائع کرنے get_char میں اب ہے، اور get_int، اور get_string، 48 00:02:11,420 --> 00:02:14,610 اور کے طور پر چند دیگر افعال ٹھیک ہے، جس کے ذریعے آپ کو ان پٹ حاصل کر سکتے ہیں 49 00:02:14,610 --> 00:02:16,260 صارف کے اپنے کی بورڈ سے. 50 00:02:16,260 --> 00:02:20,640 اور ہم بھی چیزوں پر ایک نظر لیا these- bool کے، اور چار کی طرح، 51 00:02:20,640 --> 00:02:22,490 اور ڈبل، فلوٹ، INT، long_long سٹرنگ. 52 00:02:22,490 --> 00:02:25,170 اور سی میں بھی دیگر ڈیٹا کی اقسام وہاں ہے 53 00:02:25,170 --> 00:02:28,560 >> دوسرے لفظوں، آپ کا اعلان کرتے وقت میں ایک متغیر کچھ قدر ذخیرہ کرنے کے لئے، 54 00:02:28,560 --> 00:02:32,600 یا آپ کو ایک تقریب کو لاگو کرتے وقت کہ کچھ قدر واپس، 55 00:02:32,600 --> 00:02:35,290 تم کیا وضاحت کر سکتے ہیں قیمت ہے کہ جس قسم. 56 00:02:35,290 --> 00:02:37,310 ایک کی طرح، یہ ایک تار ہے حروف کی ترتیب کے؟ 57 00:02:37,310 --> 00:02:39,490 ایک عددی طرح، یہ ایک نمبر ہے؟ 58 00:02:39,490 --> 00:02:41,390 یہ ایک چل نقاط ہے قدر، یا جیسے؟ 59 00:02:41,390 --> 00:02:46,180 لہذا سی میں، سکریچ برعکس، ہم اصل اعداد و شمار کو کس قسم کی وضاحت کرنے کے لئے شروع کر دیا 60 00:02:46,180 --> 00:02:48,330 واپس لوٹنے یا استعمال کر رہے تھے. 61 00:02:48,330 --> 00:02:51,910 >> لیکن، کورس کے، ہم بھی اس سے ٹکرا گئے کمپیوٹنگ کے کچھ بنیادی حدود. 62 00:02:51,910 --> 00:02:54,100 اور خاص طور پر، اس زبان C، یادآوری 63 00:02:54,100 --> 00:02:57,070 ہم پر ایک نظر لیا ہے کہ عددی اتپرواہ، حقیقت 64 00:02:57,070 --> 00:03:00,460 آپ کو صرف ایک ہے کہ اگر میموری کی محدود رقم 65 00:03:00,460 --> 00:03:04,600 یا، خاص طور پر، ایک محدود تعداد بٹس کی، آپ کو صرف اتنا زیادہ اعتماد کر سکتے ہیں. 66 00:03:04,600 --> 00:03:08,460 اور اس طرح ہم یہاں اس مثال میں دیکھا جس کے تحت ایک ہوائی جہاز میں ایک کاؤنٹر،، 67 00:03:08,460 --> 00:03:13,510 اصل میں، کافی وقت تک چل رہا ہے تو کرے اتپرواہ اور ایک سافٹ ویئر کے نتیجے 68 00:03:13,510 --> 00:03:15,560 ایک حقیقی جسمانی ممکنہ خرابی. 69 00:03:15,560 --> 00:03:18,600 >> ہم نے بھی سچل کی طرف دیکھا نقطہ گئی imprecision، حقیقت 70 00:03:18,600 --> 00:03:22,280 کہ صرف ایک محدود تعداد کے ساتھ بٹس کی، جو 32 یا 64 ہے یا نہیں، 71 00:03:22,280 --> 00:03:27,330 آپ صرف اتنے سارے نمبرز وضاحت کر سکتے ہیں ایک اعشاریہ کے بعد جس کے بعد آپ 72 00:03:27,330 --> 00:03:29,110 imprecise حاصل کرنے کے لئے شروع. 73 00:03:29,110 --> 00:03:32,360 تو مثال کے طور، میں ایک تہائی یہاں دنیا، ہماری انسانی دنیا میں، 74 00:03:32,360 --> 00:03:35,360 جانتے ہیں کہ ہم صرف ایک لامحدود تعداد ہے دشملو نقطہ کے بعد 3S کی. 75 00:03:35,360 --> 00:03:38,820 لیکن ایک کمپیوٹر ضروری نہیں کر سکتے ہیں اعداد کی ایک لامحدود تعداد کی نمائندگی کرتے ہیں 76 00:03:38,820 --> 00:03:42,590 آپ کو صرف اجازت دیتے ہیں تو اس میں کچھ معلومات کی محدود رقم. 77 00:03:42,590 --> 00:03:45,900 >> تو نہ صرف ہم نے تم کو لیس کیا شرائط میں زیادہ سے زیادہ طاقت کے ساتھ 78 00:03:45,900 --> 00:03:49,280 آپ کو اپنے آپ کا اظہار ہو سکتا ہے کہ کس طرح پروگرامنگ کے لحاظ سے ایک کی بورڈ، 79 00:03:49,280 --> 00:03:51,430 ہم بھی محدود کیا آپ اصل میں کیا کر سکتے ہیں. 80 00:03:51,430 --> 00:03:55,790 اور بے شک، کیڑے اور غلطیوں سکتے مسائل کے ان قسم سے پیدا ہو. 81 00:03:55,790 --> 00:03:59,900 اور یقینا، موضوعات میں آج ٹھیک کرنا جیسے موضوعات جا رہے ہیں 82 00:03:59,900 --> 00:04:03,699 اور اصل میں ہڈ کے نیچے دیکھ چیزیں متعارف کرایا گیا ہے کہ کس طرح گزشتہ ہفتے اوپر 83 00:04:03,699 --> 00:04:05,490 اصل میں لاگو کیا جاتا ہے آپ بہتر ہے تاکہ 84 00:04:05,490 --> 00:04:10,530 سمجھنے دونوں کی صلاحیتوں اور C. طرح ایک زبان کی حدود 85 00:04:10,530 --> 00:04:14,770 >> اور حقیقت میں، ہم واپس چھیل لیں گے تہوں آنکڑا ڈھانچہ کی آسان کی، 86 00:04:14,770 --> 00:04:17,756 ایک صف کہا جاتا ہے کچھ، جس سکریچ ایک فون کرنے کے لئے ہوتا ہے "فہرست". 87 00:04:17,756 --> 00:04:19,589 یہ تھوڑا سا ہے اس تناظر میں مختلف. 88 00:04:19,589 --> 00:04:23,340 اور پھر ہم بھی میں سے ایک ملواتا ہوں ہمارے ڈومین کے مخصوص مسائل کے پہلے 89 00:04:23,340 --> 00:04:26,790 CS50 میں، کی دنیا خفیہ نگاری، دوڑ دھوپ کا فن 90 00:04:26,790 --> 00:04:29,650 یا اس معلومات کے ciphering میں آپ کو خفیہ پیغامات بھیج سکتے ہیں 91 00:04:29,650 --> 00:04:34,520 اور خفیہ پیغامات کو وضاحت دو افراد، اور بی کے درمیان 92 00:04:34,520 --> 00:04:37,490 >> تو ہم نے اس سے پہلے منتقلی کہ نئی دنیا میں، 93 00:04:37,490 --> 00:04:42,059 چلو کچھ کے ساتھ آپ کو لیس کرنے کی کوشش کرتے ہیں جس کے ساتھ تکنیک آپ کو ختم کر سکتے 94 00:04:42,059 --> 00:04:43,850 یا کم از کم کچھ کو کم محرومیوں کا 95 00:04:43,850 --> 00:04:46,630 آپ کو شاید سامنا ہوا ہے کہ صرف گزشتہ ہفتے کے دوران. 96 00:04:46,630 --> 00:04:50,830 سچ تو یہ ہے، آپ کے آگے کے کچھ such-- رہے ہیں C. اور مشکلات میں آپ کی پہلی مسائل، ہیں 97 00:04:50,830 --> 00:04:54,010 آپ میری طرح ہیں تو سب سے پہلے وقت آپ کو ایک پروگرام سے ٹائپ کرنے کی کوشش کریں، 98 00:04:54,010 --> 00:04:57,330 آپ کو منطقی سوچ بھی اگر پروگرام، بہت آسان ہے 99 00:04:57,330 --> 00:05:01,200 آپ کو بہت اچھی طرح سے ایک دیوار مارا، اور ہو سکتا ہے سنکلک تعاون کرنے نہیں جا رہا ہے. 100 00:05:01,200 --> 00:05:03,940 بنائیں یا بجنا نہیں جا رہا ہے اصل میں آپ کی بولی کے عمل کرنے کے لئے. 101 00:05:03,940 --> 00:05:05,450 >> اور یہی وجہ ہے کہ ہو سکتا ہے؟ 102 00:05:05,450 --> 00:05:07,950 ویسے،، کے طور پر ایک نظر ڈالیں ہیں شاید، ایک سادہ پروگرام ہے. 103 00:05:07,950 --> 00:05:11,190 میں آگے بڑھو اور میں اس کو بچانے کے لئے جا رہا ہوں ایک فائل کو جان بوجھ کر buggy0.c بلایا، 104 00:05:11,190 --> 00:05:13,590 کیونکہ میں نے یہ جانتے ایڈوانس میں ناقص ہونے کے. 105 00:05:13,590 --> 00:05:17,400 لیکن میں یہ ہے کہ اگر اس کا احساس نہیں ہو سکتا پہلی یا دوسری یا تیسری پروگرام ہے 106 00:05:17,400 --> 00:05:18,830 کہ میں واقعی اپنے آپ کو بنا رہا ہوں. 107 00:05:18,830 --> 00:05:23,820 تو میں نے آگے جانے کے لئے جا رہا ہوں اور ٹائپ، int اہم (باطل). 108 00:05:23,820 --> 00:05:28,130 اور پھر میری گھوبگھرالی منحنی خطوط وحدانی کے اندر، ایک بہت واقف ( "ہیلو، world-- 109 00:05:28,130 --> 00:05:30,980 الٹا سلیش، N ") - اور ایک نیم بڑی آنت. 110 00:05:30,980 --> 00:05:32,360 >> میں نے فائل محفوظ کر لیا ہے. 111 00:05:32,360 --> 00:05:34,850 اب میں نیچے جانے کے لئے جا رہا ہوں میرے ٹرمنل ونڈو پر 112 00:05:34,850 --> 00:05:40,340 اور قسم کا میک buggy0، کیونکہ، ایک بار پھر، آج کی فائل کے نام buggy0.c ہے. 113 00:05:40,340 --> 00:05:43,660 تو میں نے، buggy0 دکھانے درج ٹائپ. 114 00:05:43,660 --> 00:05:48,200 >> اور، اوہ، ارے، پچھلی بار سے یاد کوئی خرابی کے پیغامات کہ ایک اچھی بات ہے. 115 00:05:48,200 --> 00:05:49,740 لہذا کوئی پیداوار ایک اچھی بات ہے. 116 00:05:49,740 --> 00:05:52,920 لیکن یہاں میں واضح طور پر ہے غلطیوں کی کچھ تعداد. 117 00:05:52,920 --> 00:05:56,470 >> پیداوار کی پہلی لائن تو buggy0 دکھانے ٹائپ کرنے کے بعد، یاد، 118 00:05:56,470 --> 00:05:59,540 بجنا کی منصفانہ شبدبہل پیداوار ہے. 119 00:05:59,540 --> 00:06:02,067 ہڈ کے نیچے، CS50 IDE ترتیب دیا گیا ہے 120 00:06:02,067 --> 00:06:04,150 کی ایک پوری چڑھانے استعمال کرنے کے لئے اس سنکلک ساتھ اختیارات 121 00:06:04,150 --> 00:06:05,941 تاکہ آپ کی ضرورت نہیں ہے ان کے بارے میں سوچنے کے لئے. 122 00:06:05,941 --> 00:06:08,840 اور یہ کہ تمام ہے کہ پہلی سطر ہے اسباب بجنا کے ساتھ شروع ہوتا ہے کہ. 123 00:06:08,840 --> 00:06:11,720 >> لیکن اس کے بعد، مسائل ان کے ظہور بنانے کے لئے شروع. 124 00:06:11,720 --> 00:06:17,390 لائن 3، کردار پر Buggy0.c 5، ایک بڑا، سرخ خامی ہے. 125 00:06:17,390 --> 00:06:18,380 وہ کیا ہے؟ 126 00:06:18,380 --> 00:06:23,562 لپیٹ لائبریری تقریب اعلان ساتھ قسم int (CONST چار * printf کے، 127 00:06:23,562 --> 00:06:26,050 ...) [کے Werror]. 128 00:06:26,050 --> 00:06:28,379 میں نے بہت جلد اس کا مطلب، بہت جادو ہو جاتا ہے. 129 00:06:28,379 --> 00:06:30,170 اور بیشک، میں سب سے پہلے نظر، ہم نہیں کریں گے 130 00:06:30,170 --> 00:06:32,380 آپ کو سمجھنے کی امید رکھتے ہیں اس پیغام کے مکمل. 131 00:06:32,380 --> 00:06:34,213 اور اس لئے سبق میں سے ایک آج ہو رہا ہے کے لئے 132 00:06:34,213 --> 00:06:36,919 محسوس کرنے کی کوشش کرنے کے لئے ہو پیٹرن، یا اسی طرح کی چیزیں، 133 00:06:36,919 --> 00:06:38,960 غلطیوں کی آپ کو ہو سکتا ماضی میں سامنا. 134 00:06:38,960 --> 00:06:41,335 تو چلو صرف علاوہ چڑھاو دو ان الفاظ واقف ہیں کہ دیکھو. 135 00:06:41,335 --> 00:06:44,290 بڑی، سرخ غلطی کو واضح طور پر ہے کسی چیز کا علامتی غلط ہونے. 136 00:06:44,290 --> 00:06:47,940 >> لپیٹ اعلان لائبریری تقریب printf کے. 137 00:06:47,940 --> 00:06:51,680 تو میں نے کافی سمجھ نہ بھی ہو تو کیا لپیٹ لائبریری تقریب اعلان 138 00:06:51,680 --> 00:06:54,900 اسباب، یقینا مسئلہ کسی نہ کسی طرح printf کے سے متعلق ہے. 139 00:06:54,900 --> 00:06:59,130 اور اس مسئلے کا ذریعہ یہ اعلان کے ساتھ کیا ہے. 140 00:06:59,130 --> 00:07:02,440 >> اعلان ایک تقریب ہے پہلی مرتبہ یہ ذکر. 141 00:07:02,440 --> 00:07:06,210 اور ہم اصطلاحات گزشتہ ہفتے کا استعمال کیا ایک تقریب کے پروٹوٹائپ اعلان کی، 142 00:07:06,210 --> 00:07:11,860 یا تو کے سب سے اوپر ایک لائن کے ساتھ آپ کے اپنی فائل یا ایک نام نہاد ہیڈر فائل میں. 143 00:07:11,860 --> 00:07:15,300 اور کیا میں فائل ہم کہتے ہیں کیا گزشتہ ہفتے printf کا اقتباس ہے کہ، 144 00:07:15,300 --> 00:07:17,080 unquote جو، کا اعلان کر دیا؟ 145 00:07:17,080 --> 00:07:20,950 کیا فائل میں اس کے پروٹوٹائپ ہے؟ 146 00:07:20,950 --> 00:07:24,640 >> اگر تو آپ کو سب سے پہلی بات مجھے یاد، ٹائپ، تقریبا ہر پروگرام آخری بار 147 00:07:24,640 --> 00:07:30,790 اور اتفاقی طور پر ایک لمحے قبل شروع کیا myself-- ٹائپنگ اس میں سے ایک یہاں تھا 148 00:07:30,790 --> 00:07:38,630 hash-- # شامل 00:07:41,860 اب میں یہ فائل محفوظ ہے تو، میں جا رہا ہوں آگے بڑھو اور میری سکرین صاف کرنے کے، 150 00:07:41,860 --> 00:07:44,740 آپ ٹائپ کر کے ایسا کر سکتے ہیں جس میں صاف، یا آپ کو، کنٹرول L پکڑ سکتا 151 00:07:44,740 --> 00:07:47,680 صرف آپ کے ٹرمنل ونڈو کو صاف کرنے صرف کچھ بے ترتیبی کو ختم کرنے کی. 152 00:07:47,680 --> 00:07:51,370 >> میں آگے جانے کے لئے جا رہا ہوں اور دوبارہ ٹائپ میک buggy0، درج. 153 00:07:51,370 --> 00:07:53,790 اور voila، میں اب بھی اس دیکھیں بجنا سے طویل کمانڈ، 154 00:07:53,790 --> 00:07:55,470 لیکن کوئی غلطی پیغام اس وقت وہاں ہے. 155 00:07:55,470 --> 00:07:58,800 اور یقینا، میں نے ./buggy0 کرتے ہیں تو، صرف گزشتہ بار کی طرح، 156 00:07:58,800 --> 00:08:01,860 جہاں ڈاٹ اس کا مطلب ڈائرکٹری، سلیش صرف، کا مطلب ہے کہ 157 00:08:01,860 --> 00:08:05,040 یہاں پروگرام کا نام آتا ہے اور پروگرام کے اس نام، buggy0 ہے 158 00:08:05,040 --> 00:08:07,340 ، درج کریں "ہیلو، دنیا." 159 00:08:07,340 --> 00:08:09,440 >> اب، آپ کو کس طرح کو ہو سکتا ہے اس حل خفیہ معلومات کے 160 00:08:09,440 --> 00:08:12,017 بغیر ضروری کئی کے طور پر الفاظ کو تسلیم 161 00:08:12,017 --> 00:08:14,350 میں نے کے طور پر، یقینی طور پر، ہونے اس نے اتنے سالوں کے لئے کیا کیا؟ 162 00:08:14,350 --> 00:08:18,720 ویسے، سب سے پہلے مسئلہ فی کا احساس سیٹ، ہم ایک کمانڈ لئے آپ کو متعارف 163 00:08:18,720 --> 00:08:21,175 CS50 اپنے عملے ہے کہ کہا جاتا help50 لکھا. 164 00:08:21,175 --> 00:08:24,300 اور یقینا، C کے لئے تصریح کرتا ہے مسئلہ اس کا استعمال کرنے کے لئے کس طرح کے طور پر مقرر. 165 00:08:24,300 --> 00:08:27,210 >> لیکن help50 بنیادی طور پر ہے ایک پروگرام ہے کہ CS50 کا عملہ 166 00:08:27,210 --> 00:08:30,850 کہ اجازت دیتا لکھا آپ کو چلانے کے ایک کمانڈ یا، ایک پروگرام چلائیں 167 00:08:30,850 --> 00:08:36,169 اور آپ کو نہ سمجھتے ہوں تو اس کی پیداوار،، help50 کے لیے اپنی پیداوار کو منتقل کرنے کی 168 00:08:36,169 --> 00:08:38,890 سافٹ ویئر کے جس موڑ پر کورس کے عملے نے لکھا ہے کہ 169 00:08:38,890 --> 00:08:42,429 آپ کے پروگرام کی پیداوار میں نظر آئے گا لائن کی طرف سے لائن، کردار کی طرف سے کردار. 170 00:08:42,429 --> 00:08:46,000 اور اگر ہم، عملے، کو تسلیم خرابی کا پیغام آپ کا سامنا کر رہے ہیں کہ، 171 00:08:46,000 --> 00:08:50,580 ہم نے کچھ کے ساتھ آپ کو اکسانے کی کوشش کریں گے کچھ مشورہ کے ساتھ بیان بازی سوال،، 172 00:08:50,580 --> 00:08:54,890 ایک TF یا ایک CA یا اپنے جیسے بہت کچھ دفتر کے اوقات میں ذاتی طور پر کریں گے. 173 00:08:54,890 --> 00:08:58,320 >> آپ ایسا نہیں کرتے تو help50 کرنے کے لئے نظر ضروری نہیں کہ ایک مسئلہ کو تسلیم. 174 00:08:58,320 --> 00:09:00,790 لیکن یہ پر انحصار نہیں کرتے ایک بیساکھی کے طور پر بہت زیادہ. 175 00:09:00,790 --> 00:09:03,990 یقینی طور پر سمجھنے کی کوشش کریں اس کے پیداوار اور پھر اس سے سیکھنا 176 00:09:03,990 --> 00:09:07,571 لہذا صرف ایک یا دو بار تم کرتے ہو کبھی کسی خاص غلطی کے لئے help50 چلانے 177 00:09:07,571 --> 00:09:08,070 پیغام. 178 00:09:08,070 --> 00:09:10,660 اس کے بعد، آپ کو ہونا چاہئے بہتر اپنے آپ کو لیس 179 00:09:10,660 --> 00:09:13,180 کیا یہ اصل میں ہے پتہ کرنے کے لئے. 180 00:09:13,180 --> 00:09:14,350 >> چلو یہاں ایک دوسرے کا کرتے ہیں. 181 00:09:14,350 --> 00:09:20,410 مجھے آگے بڑھو، اور دوسرے میں دو فائل ہم اس buggy1.c کے فون کروں گا. 182 00:09:20,410 --> 00:09:23,110 اور اس فائل میں میں ہوں deliberately-- کے لئے جا 183 00:09:23,110 --> 00:09:26,330 لیکن میں ایسا نہیں کرتے کہ دکھاوا سمجھنے میں کیا غلطی ہوئی ہے. 184 00:09:26,330 --> 00:09:31,420 >> میں آگے بڑھو اور اس کے کیا کرنے جا رہا ہوں # شامل، کے بعد سے میں نے 185 00:09:31,420 --> 00:09:33,660 ایک لمحے سے پہلے اپنا سبق سیکھا. 186 00:09:33,660 --> 00:09:36,220 int اہم (باطل)، کے طور پر پہلے. 187 00:09:36,220 --> 00:09:40,880 اور پھر یہاں میں جا رہا ہوں سٹرنگ کرنا - get_string. 188 00:09:40,880 --> 00:09:43,770 اور آخری وقت سے یاد ہے کہ اس کا مطلب ہے، ارے، کمپیوٹر، 189 00:09:43,770 --> 00:09:48,280 مجھے، ایک متغیر دے جو کی کال، اور اس متغیر ایک تار کی قسم کی بنانے 190 00:09:48,280 --> 00:09:50,150 تاکہ میں اس میں ایک یا ایک سے زیادہ الفاظ کے محفوظ کر سکتے. 191 00:09:50,150 --> 00:09:52,191 >> اور پھر دائیں ہاتھ پر برابر علامت کے ضمنی 192 00:09:52,191 --> 00:09:54,980 ایک ہے جو، get_string جاتا ہے CS50 لائبریری میں تقریب 193 00:09:54,980 --> 00:09:55,980 کہ بالکل اس کرتا ہے. 194 00:09:55,980 --> 00:09:59,740 یہ ایک تقریب اور ہو جاتا ہے تو بائیں ہاتھ کو اس کا حق سے. 195 00:09:59,740 --> 00:10:02,670 تو یہ برابر علامت کا مطلب یہ نہیں "برابر" کے طور پر ہم نے ریاضی میں سوچ سکتا ہے. 196 00:10:02,670 --> 00:10:04,750 اس سے دائیں سے بائیں سے اسائنمنٹ کا مطلب ہے. 197 00:10:04,750 --> 00:10:09,640 تو اس کا مطلب، سے سٹرنگ لے صارف اور ایس کے اندر یہ ذخیرہ. 198 00:10:09,640 --> 00:10:10,460 >> اب اس کا استعمال کرتے ہیں. 199 00:10:10,460 --> 00:10:13,820 مجھے ایک دوسرے کے طور پر اب اور آگے چلتے ہیں لکیر، مجھے آگے بڑھو اور "ہیلو" کہنے دو - 200 00:10:13,820 --> 00:10:19,330 نہیں "دنیا،" لیکن "ہیلو،٪ s-- جس میں ہمارے پلیس ہولڈر، کوما کی ہے، 201 00:10:19,330 --> 00:10:22,030 جو ہمارے متغیر ہے، اور پھر ایک نیم بڑی آنت. 202 00:10:22,030 --> 00:10:26,070 تو میں بہت زیادہ بگاڑ نہیں کیا تو یہاں، یہ درست کوڈ کی طرح لگتا ہے. 203 00:10:26,070 --> 00:10:28,090 >> اور میرے instincts اب اسے مرتب کرنے کے لئے ہیں. 204 00:10:28,090 --> 00:10:30,400 فائل کی buggy1.c کے کہا جاتا ہے. 205 00:10:30,400 --> 00:10:33,770 تو میں نے، buggy1 بنا درج کرنے جا رہا ہوں. 206 00:10:33,770 --> 00:10:36,377 اور خوفناک-یہ، نہیں ہے تو پہلے سے بھی زیادہ غلطیاں. 207 00:10:36,377 --> 00:10:38,210 میرا مطلب ہے، وہاں زیادہ ہے خرابی کے پیغامات یہ کرے گا 208 00:10:38,210 --> 00:10:40,400 اس پروگرام میں اصل لائنوں کے مقابلے میں لگ رہے ہو. 209 00:10:40,400 --> 00:10:42,730 >> لیکن takeaway ہے یہاں، ہے آپ ابیبھوت رہے یہاں تک کہ اگر 210 00:10:42,730 --> 00:10:45,040 دو یا تین یا کے ساتھ چار مزید خرابی کے پیغامات، 211 00:10:45,040 --> 00:10:48,340 بہت پر ہمیشہ توجہ مرکوز ان پیغامات کے پہلے. 212 00:10:48,340 --> 00:10:52,220 سب سے ضروری ایک کو دیکھ کر، بیک اپ کے طور طومار کر کی ضرورت ہو جائے. 213 00:10:52,220 --> 00:10:53,930 تو یہاں میں میک چلانے buggy1 ٹائپ. 214 00:10:53,930 --> 00:10:55,700 یہاں کے طور پر توقع ہے کہ بجنا پیداوار ہے. 215 00:10:55,700 --> 00:10:57,290 >> اور یہاں پہلے سرخ خامی ہے. 216 00:10:57,290 --> 00:11:02,370 اگھوشیت شناخت کنندہ کا استعمال سٹرنگ، I میں معیاری مطلب تھا؟ 217 00:11:02,370 --> 00:11:04,260 لہذا سٹینڈرڈ میں ہے اصل میں کچھ اور. 218 00:11:04,260 --> 00:11:06,240 یہ صارف کے سے مراد کی بورڈ، بنیادی طور پر. 219 00:11:06,240 --> 00:11:08,080 >> لیکن میرا یہ مطلب نہیں ہے. 220 00:11:08,080 --> 00:11:11,770 میں سٹرنگ کا مطلب، اور میں get_string مراد. 221 00:11:11,770 --> 00:11:16,200 تو یہ کیا ہے جو میں اس وقت کیا کرنے کو بھول گئے؟ 222 00:11:16,200 --> 00:11:20,230 کیا اس وقت لاپتہ ہے؟ 223 00:11:20,230 --> 00:11:23,600 میں نے اپنی # شامل ہے، اتنے میں printf تک رسائی حاصل ہے. 224 00:11:23,600 --> 00:11:26,090 >> لیکن میں کیا ضرورت نہیں ہے ابھی تک تک رسائی؟ 225 00:11:26,090 --> 00:11:29,420 ویسے، صرف گزشتہ بار کی طرح، I سنکلک بتانے کی ضرورت 226 00:11:29,420 --> 00:11:31,691 ان افعال کیا ہیں بجنا. 227 00:11:31,691 --> 00:11:33,940 Get_string نہیں آتی C. کے ساتھ اور خاص طور پر، یہ 228 00:11:33,940 --> 00:11:38,160 میں نہیں آتی ، فائل ہیڈر. 229 00:11:38,160 --> 00:11:40,770 اس کے بجائے میں آتا ہے کچھ کے عملے نے لکھا، 230 00:11:40,770 --> 00:11:44,176 جس میں ایک مختلف فائل ہے نام لیکن aptly نام. 231 00:11:44,176 --> 00:11:46,990 232 00:11:46,990 --> 00:11:50,861 >> تو بس ایک ہی لائن میں شامل کرکے آخری وقت سے code-- یاد کے 233 00:11:50,861 --> 00:11:53,610 جب بجنا چلاتی ہے، جو ہو رہا ہے نیچے تک میرا کوڈ سب کو دیکھنے کے لئے، 234 00:11:53,610 --> 00:11:54,193 بائیں سے دائیں. 235 00:11:54,193 --> 00:11:57,200 یہ محسوس کرنے کے لئے جا رہا ہے اوہ، آپ چاہتے ہیں. 236 00:11:57,200 --> 00:11:59,900 مجھے جانے اور اس کو تلاش کرتے ہیں، اسے سرور پر ہے جہاں کہیں بھی، 237 00:11:59,900 --> 00:12:03,090 کاپی اور پیسٹ، بنیادی طور پر، اپنی خود کی فائل کے سب میں 238 00:12:03,090 --> 00:12:06,820 تو کہانی میں اس وقت کہ، لائن 1، پروگرام کے باقی 239 00:12:06,820 --> 00:12:11,651 ، یقینا، کے افعال میں سے کوئی بھی استعمال کر سکتے ہیں اس میں، ان کے درمیان get_string. 240 00:12:11,651 --> 00:12:13,650 تو میں نے نظر انداز کرنے جا رہا ہوں ان غلطیوں میں سے باقی، 241 00:12:13,650 --> 00:12:17,190 میں کیونکہ، بے شک، کہ صرف شبہ سب سے پہلے ایک اصل بات. 242 00:12:17,190 --> 00:12:20,780 اور میں، آگے اور دوبارہچلانے جانے کے لئے جا رہا ہوں میری فائل کو بچانے کے بعد buggy1 بنا. 243 00:12:20,780 --> 00:12:22,580 اور voila، جو کام بھی کرتے تھے. 244 00:12:22,580 --> 00:12:29,200 اور میں ./buggy1 کرتے ہیں اور اگر، میں ٹائپ مثال کے طور پر، کیا Zamyla، اب میں ہیلو، ملے گا 245 00:12:29,200 --> 00:12:32,000 کیا Zamyla، بجائے ہیلو دنیا. 246 00:12:32,000 --> 00:12:32,550 >> بالکل ٹھیک. 247 00:12:32,550 --> 00:12:35,890 تو یہاں takeaways میں پھر جانا ہے، ایک، جتنا آپ کر سکتے ہیں جیسا بیننا کرنے کی کوشش کریں 248 00:12:35,890 --> 00:12:39,140 اکیلے خرابی کے پیغامات سے، تلاش شناخت کے قابل الفاظ میں سے کچھ میں. 249 00:12:39,140 --> 00:12:43,070 کہ مانع، فی help50 کا استعمال مسئلہ سیٹ تصریح. 250 00:12:43,070 --> 00:12:46,500 لیکن اس کو چھوڑ کر، بھی، ہمیشہ نظر آئے سب کی خرابی پر صرف، کم از کم 251 00:12:46,500 --> 00:12:50,051 ابتدائی طور پر، کو دیکھنے کے لئے کیا معلومات یہ اصل میں برآمد ہو سکتا ہے. 252 00:12:50,051 --> 00:12:52,300 لیکن یہ بدل جاتا ہے وہاں اس سے بھی زیادہ فعالیت بنایا 253 00:12:52,300 --> 00:12:55,030 CS50 لائبریری میں مدد کرنے کے لئے سمسٹر میں ابتدائی پر آپ 254 00:12:55,030 --> 00:12:57,580 اور پروگرامنگ میں جلد پتہ لگا کہ کیا غلط ہو رہا ہے. 255 00:12:57,580 --> 00:12:59,840 لہذا یہاں کی ایک اور مثال دیتے. 256 00:12:59,840 --> 00:13:04,350 I، جس میں اس buggy2 فون کرنے جا رہا ہوں، ایک بار پھر، باہر ناقص ہونے کے لئے جا رہی ہے 257 00:13:04,350 --> 00:13:05,650 ڈیزائن کی طرف سے شہر کے دروازے، کے. 258 00:13:05,650 --> 00:13:09,980 >> اور میں آگے جانے کے لئے جا رہا ہوں اور # شامل. 259 00:13:09,980 --> 00:13:12,580 اور پھر میں نے int اہم (باطل) میں کیا کرنے جا رہا ہوں. 260 00:13:12,580 --> 00:13:14,840 اور پھر میں لوپ کے لئے ایک کرنے جا رہا ہوں. 261 00:13:14,840 --> 00:13:16,690 کے لئے ہے (int _ 0. 262 00:13:16,690 --> 00:13:18,750 میں سے کم یا 10 کے برابر ہے. 263 00:13:18,750 --> 00:13:24,260 میں + +، اور پھر گھوبگھرالی منحنی خطوط وحدانی میں، میں جا رہا ہوں یہاں صرف ایک ہیش ٹیگ علامت باہر پرنٹ کرنے کے 264 00:13:24,260 --> 00:13:25,920 اور ایک نئی سطر کردار. 265 00:13:25,920 --> 00:13:29,220 >> اس کے ساتھ اپنے ارادے تو پروگرام بہت آسانی ہے 266 00:13:29,220 --> 00:13:33,150 10 بار iterate کرنے اور ہر iteration پر 267 00:13:33,150 --> 00:13:35,260 اس لوپ کے ہر بار کی سائیکل کے ذریعے، 268 00:13:35,260 --> 00:13:37,660 ایک hashtag باہر پرنٹ، ایک hashtag، ایک hashtag. 269 00:13:37,660 --> 00:13:40,480 میں کیونکہ ایک فی لائن وہاں نئی ​​لائن ہے. 270 00:13:40,480 --> 00:13:42,787 اور اس کے لئے یاد کرتے ہیں گزشتہ ہفتے فی لوپ، 271 00:13:42,787 --> 00:13:44,620 اور آپ کو زیادہ ملے گا نحو سے واقف 272 00:13:44,620 --> 00:13:47,170 پریکٹس کے ساتھ اس کا استعمال کر کے طویل عرصے سے پہلے اس نے مجھے دیتا ہے 273 00:13:47,170 --> 00:13:49,740 ایک متغیر میں بلایا اور یہ 0 سے تعین کرتا ہے. 274 00:13:49,740 --> 00:13:52,650 >> یہ میں پر ہے increments 1 کی طرف سے ہر iteration. 275 00:13:52,650 --> 00:13:54,940 تو میں نے 3 2 میں سے 1 کو جاتا ہے. 276 00:13:54,940 --> 00:13:57,690 اور پھر اس حالت میں سیمی کولون کے درمیان درمیان 277 00:13:57,690 --> 00:14:03,010 بنانے کے لئے ہر iteration پر چیک کیا جاتا ہے یقین ہے کہ ہم حد کے اندر اندر اب بھی ہیں کہ. 278 00:14:03,010 --> 00:14:06,830 لہذا میں 10 بار iterate کرنا چاہتے ہیں، تو میں نے پاس چھانٹیں کا بہت intuitively پر صرف 279 00:14:06,830 --> 00:14:09,070 وہاں میرا پابند بالائی طور پر 10 ڈال. 280 00:14:09,070 --> 00:14:14,310 >> اور ابھی تک، میں نے اس کو چلانے کے بعد جب، میک کے ساتھ اس کی تالیف buggy2-- 281 00:14:14,310 --> 00:14:15,440 اور یہ ٹھیک مرتب کرتا. 282 00:14:15,440 --> 00:14:17,980 تو میں نے ایک کی ضرورت نہیں ہے نحو کی خرابی اس وقت. 283 00:14:17,980 --> 00:14:20,940 اب مجھے آگے جانے دو اور buggy2 چلانے، درج. 284 00:14:20,940 --> 00:14:22,620 اور اب تک سکرال. 285 00:14:22,620 --> 00:14:24,890 اور مجھ میں اضافہ کر دیں ونڈو کا سائز. 286 00:14:24,890 --> 00:14:33,720 >> مجھے ہے لگ رہے ہو 1، 2، 3، 4، 5، 6، 7، 8، 9، 10، 11. 287 00:14:33,720 --> 00:14:38,891 تو وہاں اگرچہ، 11 hashtags کے مطابق ہے میں واضح طور پر اس لوپ کے اندر 10 ڈال. 288 00:14:38,891 --> 00:14:42,140 اب، تم میں سے بعض کو فوری طور پر نظر آ سکتے ہیں کیا غلطی کو کیونکہ، بے شک، یہ وہ جگہ ہے 289 00:14:42,140 --> 00:14:43,720 بنانے کے لئے ایک بہت مشکل غلطی نہیں ہے. 290 00:14:43,720 --> 00:14:46,070 لیکن یہ بہت عام ہے پر بہت جلد بنا دیا. 291 00:14:46,070 --> 00:14:49,820 >> اگر میں باہر کی طرف اشارہ کرنا چاہتے ہیں، اگرچہ، ، کس طرح میں نے یہ پتہ لگا سکتا ہے؟ 292 00:14:49,820 --> 00:14:52,300 ٹھیک ہے، یہ پتہ چلا ہے کہ CS50 لائبریری آتا 293 00:14:52,300 --> 00:14:55,380 نہ صرف get_string اور get_int ساتھ اور get_float اور دیگر افعال. 294 00:14:55,380 --> 00:14:59,980 یہ بھی ایک خصوصی تقریب کے ساتھ آتا ہے کہا جاتا eprintf، یا، کی خرابی printf کے. 295 00:14:59,980 --> 00:15:03,270 اور اسے بنانے کے لئے مکمل طور پر موجود ہے یہ آپ کے لئے تھوڑا سا آسان 296 00:15:03,270 --> 00:15:06,310 صرف اپنے کوڈ کو ٹھیک کرنا کب سکرین پر ایک غلطی پیغام کو پرنٹ 297 00:15:06,310 --> 00:15:07,850 اور جانتے ہیں کہ یہ کہاں سے آیا. 298 00:15:07,850 --> 00:15:11,000 >> تو مثال کے طور، ایک بات میں شاید کیا اس تقریب کے ساتھ this-- ہے یہاں کیا 299 00:15:11,000 --> 00:15:20,230 eprintf، اور پھر میں نے آگے جانے کے لئے جا رہا ہوں اور اب میں فیصد ہے میں، الٹا سلیش، ن کہتے ہیں. 300 00:15:20,230 --> 00:15:22,330 اور میں میں کی قدر میں پلگ کرنے کے لئے جا رہا ہوں. 301 00:15:22,330 --> 00:15:25,400 اور اپ کے سب سے اوپر، اس کی وجہ سے ، CS50 لائبریری میں ہے 302 00:15:25,400 --> 00:15:27,580 میں آگے جانے کے لئے جا رہا ہوں اور میں شامل 303 00:15:27,580 --> 00:15:29,169 تو میں نے اس تقریب تک رسائی حاصل ہے. 304 00:15:29,169 --> 00:15:31,460 لیکن غور کریں کیا لائن 9 کر کیا جائے گا سمجھا جاتا ہے. 305 00:15:31,460 --> 00:15:32,670 میں نے آخر میں اس کو حذف کرنے جا رہا ہوں. 306 00:15:32,670 --> 00:15:34,670 یہ کوئی تعلق نہیں ہے میری اولین اور بنیادی مقصد کے ساتھ. 307 00:15:34,670 --> 00:15:39,090 لیکن eprintf، غلطی printf کے، صرف مراد ہے مجھے کچھ تشخیصی معلومات دینے کے لئے. 308 00:15:39,090 --> 00:15:42,460 میں نے اپنے پروگرام چلاتے ہیں، میں چاہتا ہوں عارضی طور پر سکرین پر اس کو دیکھنے کے 309 00:15:42,460 --> 00:15:44,550 کے ساتھ ساتھ صرف سمجھنے کی کیا ہو رہا ہے. 310 00:15:44,550 --> 00:15:47,330 >> اور، یقینا، پر ہر یہاں لکیر سے 9 تکرار 311 00:15:47,330 --> 00:15:49,260 میں دیکھنا چاہتی ہوں، میں کی قدر کیا ہے؟ 312 00:15:49,260 --> 00:15:50,290 میں کی قدر کیا ہے؟ 313 00:15:50,290 --> 00:15:51,280 میں کی قدر کیا ہے؟ 314 00:15:51,280 --> 00:15:55,650 اور، امید ہے کہ، میں صرف کرنا چاہئے اس پیغام، بھی، 10 بار دیکھیں. 315 00:15:55,650 --> 00:15:57,780 >> تو مجھے آگے بڑھو اور میرے پروگرام recompile، 316 00:15:57,780 --> 00:15:59,905 میں کسی بھی وقت کیا کرنا ہے کے طور پر میں نے ایک تبدیلی. ./buggy2. 317 00:15:59,905 --> 00:16:02,680 318 00:16:02,680 --> 00:16:03,640 اور now-- OK. 319 00:16:03,640 --> 00:16:04,820 زیادہ چل رہا ایک بہت ہے. 320 00:16:04,820 --> 00:16:07,610 تو مجھے میں سکرال اس سے بھی بڑی کھڑکی. 321 00:16:07,610 --> 00:16:10,190 >> اور تم میں سے ہر ایک کو نظر آئے گا کہ ہیش ٹیگز اب بھی پرنٹنگ ہے. 322 00:16:10,190 --> 00:16:15,270 لیکن درمیان میں ان میں سے ہر اب یہ ہے مندرجہ ذیل کے طور پر تشخیص کی پیداوار فارمیٹ کیا. 323 00:16:15,270 --> 00:16:17,960 یہاں اپنے پروگرام کا نام buggy2 ہے. 324 00:16:17,960 --> 00:16:20,432 فائل کا نام buggy2.c ہے. 325 00:16:20,432 --> 00:16:24,080 لائن نمبر ہے جس سے اس چھپا تھا لکیر 9 ہے. 326 00:16:24,080 --> 00:16:27,500 اور پھر اس کے دائیں کرنے کے لئے ہے غلطی پیغام میں امید کر رہا ہوں کہ. 327 00:16:27,500 --> 00:16:30,701 >> اور اچھا یہ ہے کہ کے بارے میں کیا ہے اب میں ضروری نہیں کہ شمار کرنے کی ضرورت نہیں ہے 328 00:16:30,701 --> 00:16:32,200 میرے سر میں اگر میرا پروگرام کر رہا ہے. 329 00:16:32,200 --> 00:16:34,240 میں پر دیکھ سکتے ہیں کہ پہلے iteration میں ہے 0، 330 00:16:34,240 --> 00:16:39,420 تو 1، پھر 2، پھر 3، پھر 4، پھر 5 اور پھر 6، پھر 7، پھر 8، پھر 9 تب، 331 00:16:39,420 --> 00:16:40,980 10. 332 00:16:40,980 --> 00:16:42,050 تو ایک منٹ انتظار کرو. 333 00:16:42,050 --> 00:16:43,740 یہاں کیا ہو رہا ہے؟ 334 00:16:43,740 --> 00:16:48,190 میں اب بھی گنتی کرنے لگتے ہیں کے طور پر 10 تک ارادہ. 335 00:16:48,190 --> 00:16:50,550 >> لیکن میں کہاں سے شروع کیا؟ 336 00:16:50,550 --> 00:16:53,240 0، 1، 2، 3، 4، 5، 6، 7، 8، 9 | 10. 337 00:16:53,240 --> 00:16:58,040 پس 0، 1، 2، 3، 4، 5، 6، 7، 8، 9، 10-- کی 11th انگلی 338 00:16:58,040 --> 00:16:59,990 مسئلے کی نشاندہی ہے. 339 00:16:59,990 --> 00:17:02,850 میں شمار ہے لگ رہے ہو غلط طریقے سے میرے لوپ میں. 340 00:17:02,850 --> 00:17:06,599 10 تکرار جانے کی بجائے، I، 0 سے شروع ہوں 341 00:17:06,599 --> 00:17:09,550 مجھے اور 10 کے ذریعے ختم ہونے والے ہوں. 342 00:17:09,550 --> 00:17:12,030 لیکن کیونکہ، ایک کمپیوٹر کی طرح، I، 0 میں گنتی شروع کر رہا ہوں 343 00:17:12,030 --> 00:17:15,250 I تک گنتی کی جانی چاہئے کرنے کے لئے، لیکن کے ذریعے نہیں، 10. 344 00:17:15,250 --> 00:17:18,510 >> اور اس طرح طے کر، میں نے آخر یہاں احساس ہوا، دو چیزوں میں سے ایک ہے. 345 00:17:18,510 --> 00:17:22,430 میں نے بہت صرف کہہ سکتے سے بھی کم 10 تک شمار. 346 00:17:22,430 --> 00:17:27,260 پس 0، 1، 2، 3، 4، 5، 6، 7، 8، 9، جس میں کچھ شک نہیں کہ ہے، درست، 347 00:17:27,260 --> 00:17:28,900 یہاں تک کہ یہ ایک چھوٹی سی غلط لگتا ہے اگرچہ. 348 00:17:28,900 --> 00:17:35,070 یا پھر میں ایسا کر سکتا ہے سے زیادہ یا برابر بھی کم 9 تک، جب تک میں 0 میں شروع کے طور پر. 349 00:17:35,070 --> 00:17:40,056 یا اگر آپ واقعی ہے کہ پسند نہیں ہے تو، آپ کو 10 شمار لیکن اس کی 1 میں شروع کر سکتے ہیں. 350 00:17:40,056 --> 00:17:41,680 لیکن پھر، یہ صرف نہیں ہے کہ عام ہے. 351 00:17:41,680 --> 00:17:43,977 پروگرامنگ سہی میں Scratch-- میں اتنا نہیں 352 00:17:43,977 --> 00:17:45,810 لیکن میں پروگرامنگ میں C اور دیگر زبانوں میں، 353 00:17:45,810 --> 00:17:47,670 جاوا اسکرپٹ اور جیسی ازگر اور دوسروں، یہ ہے 354 00:17:47,670 --> 00:17:49,880 کے لئے صرف بہت عام ہمارے بائنری کی بحث 355 00:17:49,880 --> 00:17:53,450 بس گنتی شروع کرنے کے لئے آپ کر سکتے ہیں سب سے کم تعداد، 0 ہے جو. 356 00:17:53,450 --> 00:17:53,950 بالکل ٹھیک. 357 00:17:53,950 --> 00:17:55,160 تو ہے کہ eprintf ہے. 358 00:17:55,160 --> 00:17:58,600 اور پھر، اب میں نے سوچا ہے کہ میری مسئلہ، اور میں 0 سے واپس جانے کے لئے جا رہا ہوں 359 00:17:58,600 --> 00:18:01,470 سے بھی کم 10، میں جا رہا ہوں میں جاؤ اور eprintf حذف کرنا. 360 00:18:01,470 --> 00:18:04,580 >> جب میں اسے نہیں ہونا چاہئے میرا کوڈ جہاز یا اپنے کوڈ کو جمع کرانے 361 00:18:04,580 --> 00:18:05,800 ورنہ کسی کو دکھانا. 362 00:18:05,800 --> 00:18:07,980 یہ واقعی صرف کا مطلب ہے عارضی طور پر استعمال کیا جائے گا. 363 00:18:07,980 --> 00:18:11,650 لیکن اب میں اس طے کر دی اس کے ساتھ ساتھ خاص طور پر مسئلہ. 364 00:18:11,650 --> 00:18:16,780 >> ٹھیک ہے، یہاں ایک اور مثال دیتے میں نے مندرجہ ذیل کے طور کوڑا لئے جا رہا ہوں کہ. 365 00:18:16,780 --> 00:18:22,850 میں آگے جانے کے لئے جا رہا ہوں اور # شامل. $ 50 366 00:18:22,850 --> 00:18:25,580 اور میں آگے جانے کے لئے جا رہا ہوں اور # شامل. 367 00:18:25,580 --> 00:18:29,030 >> اور مجھے بچانے کے لئے جا رہا ہوں buggy3.c طور پر اس فائل. 368 00:18:29,030 --> 00:18:31,740 اور میں آگے جانے کے لئے جا رہا ہوں اور اعلان int اہم (باطل). 369 00:18:31,740 --> 00:18:34,186 اور پھر وہاں کے اندر I میں int کرنے جا رہا ہوں _ - 370 00:18:34,186 --> 00:18:36,435 میں نے ایک پروگرام کو لاگو کرنے کے لئے چاہتے ہیں ایک get_negative_int ساتھ. 371 00:18:36,435 --> 00:18:39,146 372 00:18:39,146 --> 00:18:40,770 یہ ایک تقریب ابھی تک موجود ہے کہ نہیں ہے. 373 00:18:40,770 --> 00:18:42,870 تو ہم کو لاگو کرنے کے لئے جا رہے ہیں یہ صرف ایک لمحے میں. 374 00:18:42,870 --> 00:18:45,541 لیکن ہم کیوں دیکھنے کے لئے جا رہے ہیں یہ سب سے پہلے پاس پر چھوٹی گاڑی ہے. 375 00:18:45,541 --> 00:18:47,290 اور میں ہو گیا ہے ایک بار صارف کی طرف سے ایک int، 376 00:18:47,290 --> 00:18:53,365 میں نے ابھی ابھی میں نے پرنٹ کرنے کے لئے جا رہا ہوں ایک منفی ہے عددی، الٹا سلیش، ن، کوما، میں نے. 377 00:18:53,365 --> 00:18:55,240 دوسرے الفاظ میں، تمام میں ایسا کرنے کے لئے اس پروگرام چاہتے ہیں 378 00:18:55,240 --> 00:18:58,000 سے ایک منفی int حاصل کیا جاتا ہے صارف اور پھر باہر پرنٹ 379 00:18:58,000 --> 00:18:59,980 کہ فلاں فلاں منفی int ہے. 380 00:18:59,980 --> 00:19:02,080 >> اب میں اس تقریب کو لاگو کرنے کی ضرورت ہے. 381 00:19:02,080 --> 00:19:05,740 تو بعد میری فائل میں، میں جا رہا ہوں آگے اور نام سے ایک تقریب کا اعلان 382 00:19:05,740 --> 00:19:10,670 get_negative_int (باطل) - اور ہم کر لیں گے اس لائن کو دوبارہ کا مطلب کیا کے پاس واپس آئے 383 00:19:10,670 --> 00:19:18,790 ایک لمحے int ن میں؛ do-- کرو مندرجہ ذیل printf کا (ن) ہے :. 384 00:19:18,790 --> 00:19:26,210 ، get_int - اور پھر میں ن کرنے جا رہا ہوں اور یہ دیر ن 0 سے بڑا ہے ایسا. 385 00:19:26,210 --> 00:19:28,310 اور پھر این کو واپس؛ 386 00:19:28,310 --> 00:19:31,730 >> تو میں کیا چل رہا ایک بہت ہے اس کے سوا کسی کی جن میں سے ہم نے نہیں کیا 387 00:19:31,730 --> 00:19:33,710 کم از کم کچھ دیر کے آخری ہفتے میں نظر آتے ہیں،. 388 00:19:33,710 --> 00:19:36,980 تو اوپر 10 یہاں پر میں نے اعلان کیا ہے ایک get_negative_int ملاقات کی تقریب، 389 00:19:36,980 --> 00:19:39,620 اور میں ان (باطل) کو رکھا ہے، قوسین، وجہ یہ کیا جا رہا ہے 390 00:19:39,620 --> 00:19:40,950 ایک ان پٹ نہیں لے کرتا ہے. 391 00:19:40,950 --> 00:19:42,910 میں نے کچھ بھی نہیں گزر رہا ہوں اس تقریب کے لیے. 392 00:19:42,910 --> 00:19:44,690 میں نے صرف اس سے کچھ واپس ہو رہی ہوں. 393 00:19:44,690 --> 00:19:47,270 >> اور میں کیا کیا امید کر رہا ہوں واپس حاصل ایک عدد صحیح ہے. 394 00:19:47,270 --> 00:19:50,040 میں کوئی ڈیٹا کی قسم ہے C negative_int بلایا. 395 00:19:50,040 --> 00:19:52,880 یہ صرف int ہے، تو یہ جا رہا ہے اس بات کا یقین کرنے کے لئے ہمیں پر ہونا 396 00:19:52,880 --> 00:19:55,340 کہ اصل میں ہے کہ قیمت واپس نہیں کیا صرف ایک int ہے 397 00:19:55,340 --> 00:19:56,380 لیکن یہ بھی منفی ہے. 398 00:19:56,380 --> 00:20:02,150 >> 12 لائن پر میں ایک متغیر اعلان کر رہا ہوں (ن) اور قسم int بنانے بلایا. 399 00:20:02,150 --> 00:20:07,500 اور پھر 13 میں 18 کے ذریعے میں ہوں کچھ کر کچھ سچ ہے جبکہ. 400 00:20:07,500 --> 00:20:11,040 میں آگے اور پرنٹنگ جا رہا ہوں (ن) ہے، بڑی آنت، اور اس کے بعد ایک کی جگہ، 401 00:20:11,040 --> 00:20:12,800 صارف کے لئے ایک فوری طور پر کی طرح. 402 00:20:12,800 --> 00:20:16,410 >> میں نے تو get_int بلا رہا ہوں اور اس کے نام نہاد واپسی کی قیمت ذخیرہ کرنے 403 00:20:16,410 --> 00:20:18,130 اس متغیر (ن) میں. 404 00:20:18,130 --> 00:20:22,600 لیکن میں کر رکھنے کے لئے جا رہا ہوں یہ بات این 0 سے بڑا ہے. 405 00:20:22,600 --> 00:20:27,960 دوسرے الفاظ میں، صارف مجھے ایک دیتا ہے تو int اور اس نمبر 0 سے بڑا ہے، 406 00:20:27,960 --> 00:20:31,180 لہذا، مثبت، میں جا رہا ہوں صرف صارف کی reprompting ہے رکھنے، 407 00:20:31,180 --> 00:20:37,160 انہیں مجبور کر، reprompting ہے رکھنے تعاون اور مجھے ایک منفی INT دے. 408 00:20:37,160 --> 00:20:41,640 >> اور ایک بار این اصل negative-- ہے صارف فرض آخر اقسام -50، 409 00:20:41,640 --> 00:20:46,710 پھر اس جبکہ لوپ درست نہیں ہے -50 0 سے بڑا نہیں ہے کیونکہ. 410 00:20:46,710 --> 00:20:51,140 تو ہم اس سے باہر کو توڑنے لوپ منطقی طور پر اور (ن) کو واپس. 411 00:20:51,140 --> 00:20:53,520 >> لیکن دوسری نہیں ہے بات یہ ہے کہ مجھے کیا کرنا ہے. 412 00:20:53,520 --> 00:20:56,190 اور میں تو صرف یہ کر سکتے ہیں کاپی اور چسپاں کر 413 00:20:56,190 --> 00:20:58,540 فائل کے سب سے اوپر کے کوڈ کا ایک لائن. 414 00:20:58,540 --> 00:21:01,630 I، بجنا سکھانے کی ضرورت یا بجنا کے لئے وعدہ، 415 00:21:01,630 --> 00:21:04,630 واضح طور پر میں چاہتا ہوں کہ، بے شک، جاؤ اور عمل درآمد 416 00:21:04,630 --> 00:21:06,020 اس تقریب get_negative_int. 417 00:21:06,020 --> 00:21:07,674 یہ صرف فائل میں کم ہو سکتا ہے. 418 00:21:07,674 --> 00:21:09,840 ایک بار پھر، یاد ہے کہ بجنا ، سب سے نیچے کے لئے چیزیں پڑھتا 419 00:21:09,840 --> 00:21:12,330 بائیں سے دائیں، تاکہ تم نہیں کر سکتے اگر بجنا ایک تقریب کہتے 420 00:21:12,330 --> 00:21:15,330 پتہ نہیں ہے اس کا کوئی وجود کرنے جا رہا ہے. 421 00:21:15,330 --> 00:21:18,430 >> اب بدقسمتی سے، اس پروگرام، کے طور پر آپ کے کچھ محسوس کیا ہے ہو سکتا ہے، 422 00:21:18,430 --> 00:21:19,590 پہلے سے ہی چھوٹی گاڑی ہے. 423 00:21:19,590 --> 00:21:21,400 مجھے آگے بڑھو اور buggy3 کہا بنانے کے ہیں. 424 00:21:21,400 --> 00:21:26,904 لہذا میرا مسئلہ اب نہیں ہے، یہ، آگاہ کریں ایک نحوی خامی، ایک ٹیکسٹ غلطی کی طرح، 425 00:21:26,904 --> 00:21:29,570 یہ اصل میں ایک منطقی ہونے جا رہا ہے کہ میں نے جان بوجھ کر ہے کی خرابی 426 00:21:29,570 --> 00:21:32,450 کے لئے ایک موقع کے طور پر بنایا کیا ہو رہا ہے کے ذریعے قدم. 427 00:21:32,450 --> 00:21:35,540 >> میں آگے جانے کے لئے جا رہا ہوں اب اور buggy3 کہا چلانے. 428 00:21:35,540 --> 00:21:37,490 اور میں جا رہا ہوں آگے اور نہ تعاون. 429 00:21:37,490 --> 00:21:39,494 میں نے اسے 1 نمبر دینے جا رہا ہوں. 430 00:21:39,494 --> 00:21:41,410 اس سے اسے پسند نہیں کیا، لہذا اس سے مجھے ایک بار پھر فورا ہی ہے. 431 00:21:41,410 --> 00:21:42,147 >> کس طرح کے بارے میں 2؟ 432 00:21:42,147 --> 00:21:43,021 3؟ 433 00:21:43,021 --> 00:21:43,520 50؟ 434 00:21:43,520 --> 00:21:44,740 ان لوگوں میں سے کوئی بھی کام کر رہے ہیں. 435 00:21:44,740 --> 00:21:46,890 گانے -50 کے بارے میں؟ 436 00:21:46,890 --> 00:21:48,560 اور پروگرام کام کرنے لگتا ہے. 437 00:21:48,560 --> 00:21:49,970 >> مجھے اسے ایک بار اور کوشش کرتے ہیں. 438 00:21:49,970 --> 00:21:53,400 مجھے کوشش -1 دو، کام کرنے لگتا ہے. 439 00:21:53,400 --> 00:21:56,380 مجھے کوشش -2 دو، کام کرنے لگتا ہے. 440 00:21:56,380 --> 00:21:59,640 مجھے کوشش کرنے دو 0. 441 00:21:59,640 --> 00:22:01,684 ہہ، جو کہ غلط ہے. 442 00:22:01,684 --> 00:22:03,350 اب، ہم یہاں ایک چھوٹا سا pedantic ہو رہے ہو. 443 00:22:03,350 --> 00:22:07,090 لیکن یہ بات یقینا، صورت کہ 0 نہ تو مثبت اور نہ ہی منفی ہے. 444 00:22:07,090 --> 00:22:11,150 اور اس طرح یہ حقیقت ہے میرا پروگرام یہ ہے کہ ، کہہ رہے ہیں کہ 0 منفی عدد صحیح ہے 445 00:22:11,150 --> 00:22:12,820 کہ تکنیکی اعتبار سے درست نہیں ہے. 446 00:22:12,820 --> 00:22:15,180 >> اب، یہ ایسا کیوں کر رہا ہے؟ 447 00:22:15,180 --> 00:22:16,270 ویسے، یہ واضح ہو سکتا ہے. 448 00:22:16,270 --> 00:22:18,110 اور، یقینا، پروگرام ہے کافی آسان ہونا مراد 449 00:22:18,110 --> 00:22:19,670 تو ہم دریافت کے لئے کچھ ہے. 450 00:22:19,670 --> 00:22:25,870 >> لیکن ایک تیسری ٹھیک کرنا متعارف کرانے تکنیک یہاں debug50 بلایا. 451 00:22:25,870 --> 00:22:27,750 تو یہ ایک پروگرام ہے ہم صرف پیدا کیا ہے کہ 452 00:22:27,750 --> 00:22:30,770 اس سال کہا جاتا debug50 کہ آپ کو اجازت دے گا 453 00:22:30,770 --> 00:22:34,130 ایک بلٹ میں کہا جاتا ہے استعمال کرنے کے لئے CS50 IDE میں گرافیکل ٹھیک کرنے والا کھولتا. 454 00:22:34,130 --> 00:22:38,400 اور اگر ایک ٹھیک کرنے والا کھولتا صرف ایک پروگرام ہے کہ عام طور پر آپ کو آپ کے پروگرام کو چلانے کی اجازت دیتا ہے 455 00:22:38,400 --> 00:22:44,050 لیکن قدم، لائن کی طرف سے قدم بہ قدم لائن کی طرف سے لائن کی طرف سے، روک، poking ہے 456 00:22:44,050 --> 00:22:47,626 کے ارد گرد، متغیر کی طرف دیکھ کہ اتنی پروگرام صرف آپ ماضی اڑا نہیں ہے 457 00:22:47,626 --> 00:22:49,750 اور فوری طور پر کچھ پرنٹ یا کچھ پرنٹ نہیں. 458 00:22:49,750 --> 00:22:53,250 اس میں، آپ کو ایک موقع فراہم کرتا ہے انسانی رفتار، اس کے ساتھ بات چیت کے لئے. 459 00:22:53,250 --> 00:22:55,470 >> اور ایسا کرنے کے لئے، آپ کو بس مندرجہ ذیل کام کریں. 460 00:22:55,470 --> 00:22:58,479 اپنا کوڈ تالیف کے بعد، جو میں نے پہلے ہی کیا، buggy3 کہا، 461 00:22:58,479 --> 00:23:00,020 تم آگے بڑھو اور debug50 ./buggy چلانے. 462 00:23:00,020 --> 00:23:03,460 463 00:23:03,460 --> 00:23:06,760 بہت پسند help50 آپ چلاتے ہیں help50 اور پھر کمانڈ، 464 00:23:06,760 --> 00:23:10,120 debug50 آپ debug50 ختم ہو گیا ہے اور تو کمانڈ کے نام. 465 00:23:10,120 --> 00:23:14,440 >> اب میری سکرین پر کیا ہوتا ہے دیکھتے ہیں، خاص طور پر دائیں ہاتھ کی طرف پر. 466 00:23:14,440 --> 00:23:19,400 میں چلائیں، کی تمام مارا اچانک اس دائیں ہاتھ کے پینل 467 00:23:19,400 --> 00:23:20,419 سکرین پر کھولتا ہے. 468 00:23:20,419 --> 00:23:22,210 اور جا ایک بہت ہے پہلی نظر میں تاریخ. 469 00:23:22,210 --> 00:23:25,110 لیکن وہاں بھی نہیں ہے ابھی تک کے بارے میں فکر کے لئے بہت کچھ. 470 00:23:25,110 --> 00:23:28,570 >> یہ مجھے سب کچھ دکھا رہا ہے کہ اپنے پروگرام کے اندر کیا ہو رہا ہے 471 00:23:28,570 --> 00:23:31,130 ٹھیک ہے اب اور ان کے ذریعے بٹن کے اوپر اس کے بعد ہے 472 00:23:31,130 --> 00:23:35,910 مجھے میرا کوڈ کے ذریعے قدم رکھنے کی اجازت دی بالآخر قدم کی طرف سے قدم بہ قدم. 473 00:23:35,910 --> 00:23:37,140 لیکن نہ صرف ابھی تک. 474 00:23:37,140 --> 00:23:38,060 کیا ہوتا نوٹس. 475 00:23:38,060 --> 00:23:40,600 میرے ٹرمنل ونڈو میں، میں (ن) کے لئے حوصلہ افزائی کی جا رہی ہوں. 476 00:23:40,600 --> 00:23:44,560 اور میں آگے جانے کے لئے جا رہا ہوں اور اس وقت اور -1 میں ٹائپ تعاون. 477 00:23:44,560 --> 00:23:48,770 اور اگرچہ ایک چھوٹی سی ہیں cryptically، -1 ایک منفی عدد صحیح، توقع کے مطابق ہے. 478 00:23:48,770 --> 00:23:52,020 >> اور پھر بچے کے ساتھ باہر ہو اسٹیٹس 0 GDBserver باہر نکلنے. 479 00:23:52,020 --> 00:23:55,180 GDB، GNU ٹھیک کرنے والا کھولتا، اور نام ہے بنیادی سافٹ ویئر کی 480 00:23:55,180 --> 00:23:56,620 کہ یہ ٹھیک کرنے والا کھولتا لاگو کرتی ہے. 481 00:23:56,620 --> 00:24:00,500 لیکن یہ سب واقعی مطلب، ٹھیک کرنے والا کھولتا میرے پروگرام چھوڑ کر چلے گئے ہیں کیونکہ 482 00:24:00,500 --> 00:24:01,710 اور سب کچھ ٹھیک تھا. 483 00:24:01,710 --> 00:24:06,020 میں واقعی اپنے پروگرام ڈیبگ کرنا چاہتے ہیں تو، I، اس preemptively debug50 بتانا ہے 484 00:24:06,020 --> 00:24:08,920 جہاں میں شروع کرنے کے لئے چاہتے ہیں میرا کوڈ کے ذریعے نکلنے؟ 485 00:24:08,920 --> 00:24:11,750 >> اور شاید آسان ترین طریقہ مندرجہ ذیل کے طور یہ ہے کہ ایسا کرنے کی. 486 00:24:11,750 --> 00:24:15,300 میں نے اوپر ہوور تو یہاں میری ایڈیٹر کی گٹر، 487 00:24:15,300 --> 00:24:19,090 تو واقعی صرف یہاں سائڈبار میں، لائن نمبر کے بائیں، 488 00:24:19,090 --> 00:24:21,870 نوٹس ہے کہ میں نے صرف پر کلک کریں تو ایک بار، میں نے تھوڑا سرخ نقطہ ڈال. 489 00:24:21,870 --> 00:24:24,460 اور اس چھوٹی سی سرخ ڈاٹ، ایک سٹاپ نشانی کی طرح، جس کا مطلب ہے، ارے، 490 00:24:24,460 --> 00:24:29,430 debug50، میری کوڈ کے توقف پر عملدرآمد وہیں میں نے اس پروگرام چلاتے ہیں. 491 00:24:29,430 --> 00:24:30,260 >> تو یہ کرتے ہیں. 492 00:24:30,260 --> 00:24:37,340 مجھے آگے بڑھو اور اپنے پروگرام کو چلانے دوبارہ debug50 ./buggy3 ساتھ، درج. 493 00:24:37,340 --> 00:24:40,110 اور اب، نوٹس، کچھ نہ کچھ مختلف ہوا ہے. 494 00:24:40,110 --> 00:24:42,440 میں نے حوصلہ افزائی کی جا رہی نہیں کر رہا ہوں ابھی تک میرے ٹرمنل ونڈو میں 495 00:24:42,440 --> 00:24:45,430 کسی چیز کے لئے، کیونکہ میں نہیں ہے میرے پروگرام میں ابھی تک موجود ہو گیا. 496 00:24:45,430 --> 00:24:47,950 8 لائن پر کہ نوٹس اب روشنی ڈالی ہے، 497 00:24:47,950 --> 00:24:51,720 اور ایک چھوٹا سا تیر کا نشان میں موجود ہے بائیں کہاوت، آپ کو یہاں روک دیئے گئے ہیں. 498 00:24:51,720 --> 00:24:55,030 کوڈ، سطر کی یہ لائن 8، ابھی تک سزائے موت نہیں دی. 499 00:24:55,030 --> 00:24:58,940 >> اور کیا میں نظر آتے ہیں تو، میں جاننا ہے دائیں ہاتھ کی طرف یہاں پر، 500 00:24:58,940 --> 00:25:03,530 میں ایک مقامی ہے کہ متعلقہ متغیر، اس معنی میں مقامی 501 00:25:03,530 --> 00:25:05,450 کہ یہ موجودہ تقریب کے اندر ہے. 502 00:25:05,450 --> 00:25:08,920 اور اس کی قیمت، بظاہر ڈیفالٹ کی طرف سے، اور اس طرح کی سہولت، 0 ہے. 503 00:25:08,920 --> 00:25:10,260 لیکن میں 0 ٹائپ نہیں کیا. 504 00:25:10,260 --> 00:25:13,410 یہ صرف ہونا ہوتا ہے اس کی اس وقت طے شدہ قیمت. 505 00:25:13,410 --> 00:25:15,490 >> تو مجھے آگے بڑھو اور اب یہ کرتے ہیں. 506 00:25:15,490 --> 00:25:18,680 مجھ سے آگے اور پر جانے دو سب ٹھیک ہے یہاں، میں ہوں 507 00:25:18,680 --> 00:25:20,970 آگے جانے کے لئے جا رہا ہے اور یہ پہلا آئیکن پر کلک کریں جس 508 00:25:20,970 --> 00:25:25,360 جس پر قدم پر نہیں ہے کا مطلب کا مطلب یہ لیکن کوڈ کے اس لائن پر قدم، 509 00:25:25,360 --> 00:25:27,770 راستے میں اسے عملی جامہ. 510 00:25:27,770 --> 00:25:30,710 >> اور اب،، محسوس میری فوری طور پر صرف تبدیل کر دیا گیا. 511 00:25:30,710 --> 00:25:31,380 ایسا کیوں ہے؟ 512 00:25:31,380 --> 00:25:33,639 I debug50 بتا دیا، کوڈ کے اس لائن کو چلانے کے. 513 00:25:33,639 --> 00:25:34,930 کوڈ کے اس لائن کیا کرتا ہے؟ 514 00:25:34,930 --> 00:25:35,960 ایک int کے لئے مجھے اشارہ. 515 00:25:35,960 --> 00:25:36,460 ٹھیک ہے. 516 00:25:36,460 --> 00:25:37,400 مجھ سے تعاون کرتے ہیں. 517 00:25:37,400 --> 00:25:41,340 اب مجھے آگے بڑھو اور ٹائپ -1، درج کریں. 518 00:25:41,340 --> 00:25:42,920 اور اب کیا بدل گیا ہے محسوس کریں. 519 00:25:42,920 --> 00:25:46,060 دائیں ہاتھ کی طرف، میرے مقامی متغیر میں 520 00:25:46,060 --> 00:25:48,200 ہونے -1 اب کے طور پر نشاندہی کی جاتی ہے. 521 00:25:48,200 --> 00:25:49,810 اور اس قسم int کے اب بھی ہے. 522 00:25:49,810 --> 00:25:53,102 >> اور نوٹس، بھی، میرا نام نہاد اسٹیک کو فون، میں کہاں موقوف کیا؟ 523 00:25:53,102 --> 00:25:54,810 ہم کے بارے میں مزید بات کریں گے مستقبل میں اس. 524 00:25:54,810 --> 00:25:58,620 لیکن کال اسٹیک صرف سے مراد کیا افعال حرکت میں ہیں. 525 00:25:58,620 --> 00:26:00,040 ٹھیک ہے اب یہ صرف اہم ہے. 526 00:26:00,040 --> 00:26:03,590 اور اب صرف مقامی متغیر 1 کی قیمت کے ساتھ میں ہے. 527 00:26:03,590 --> 00:26:09,840 >> اور میں نے آخر اس لائن پر قدم جب یہاں، سب سے اوپر دائیں ہے کہ اسی کا آئکن کے ساتھ، 528 00:26:09,840 --> 00:26:11,410 -1 ایک منفی عدد صحیح ہے. 529 00:26:11,410 --> 00:26:13,580 اب یہ ہے کہ گھوبگھرالی تسمہ سے زیادہ روک کر رہا ہے. 530 00:26:13,580 --> 00:26:14,740 چلو اس کا اپنا کام کرتے ہیں کی اجازت دینا. 531 00:26:14,740 --> 00:26:17,300 میں نے اس لائن کو، اور voila پر قدم. 532 00:26:17,300 --> 00:26:20,240 >> لہذا تمام نہیں اس بہت روشن کیں، 533 00:26:20,240 --> 00:26:23,550 لیکن یہ میرے موقوف دیا اور منطقی طور پر کے ذریعے لگتا ہے 534 00:26:23,550 --> 00:26:24,870 اس پروگرام کیا کر رہا ہے. 535 00:26:24,870 --> 00:26:26,890 لیکن یہ غلط معاملہ نہیں تھا. 536 00:26:26,890 --> 00:26:28,510 مندرجہ ذیل کے طور چلو پھر یہ کرتے ہیں. 537 00:26:28,510 --> 00:26:31,340 >> میں نے اس کے توڑ مقام کو چھوڑنے کے لئے جا رہا ہوں سرخ نقطہ کے ساتھ 8 لائن پر. 538 00:26:31,340 --> 00:26:32,830 I debug50 rerun کرنے جا رہا ہوں. 539 00:26:32,830 --> 00:26:34,400 یہ خود کار طریقے سے یہاں روک دیا گیا ہے. 540 00:26:34,400 --> 00:26:37,660 لیکن اس وقت، بجائے اس لائن پر قدم رکھ، 541 00:26:37,660 --> 00:26:42,290 مجھے اصل کے اندر چلتے ہیں get_negative_int اور اعداد و شمار، 542 00:26:42,290 --> 00:26:45,530 کیوں یہ ایک درست جواب کے طور پر قبول کیا جاتا ہے 0؟ 543 00:26:45,530 --> 00:26:47,990 >> اس سے زائد مرحلہ پر کلک کرنے کے بجائے. 544 00:26:47,990 --> 00:26:50,630 میں آگے جانے کے لئے جا رہا ہوں اور میں قدم پر کلک کریں. 545 00:26:50,630 --> 00:26:54,030 اور 8 لائن ہے کہ محسوس کریں اب اچانک اب روشنی ڈالی 546 00:26:54,030 --> 00:26:56,900 لائن 17 بن جاتا ہے. 547 00:26:56,900 --> 00:26:59,947 >> اب، یہ ٹھیک کرنے والا کھولتا ہے کہ نہیں ہے لائنوں 14 اور 15 اور 16 کو نظر انداز کردیا گیا ہے. 548 00:26:59,947 --> 00:27:01,780 یہ صرف کچھ بھی نہیں ہے ہے وہاں آپ کو دکھانے کے لئے. 549 00:27:01,780 --> 00:27:04,050 وہ صرف متغیر کا اعلان کر رہے ہیں، اور پھر وہاں کے کلام کرو 550 00:27:04,050 --> 00:27:05,390 اور پھر ایک کھلی گھوبگھرالی تسمہ. 551 00:27:05,390 --> 00:27:09,227 ہے کہ صرف فعال کی لکیر رسیلی واقعی یہاں اس میں سے ایک، 17 ہے. 552 00:27:09,227 --> 00:27:11,060 ہم کہاں گیا ہے اور وہ ہے خود کار طریقے سے روک دیا گیا. 553 00:27:11,060 --> 00:27:13,870 >> تو printf ( "n.is:") ؛، تاکہ جو ابھی تک نہیں ہوا ہے. 554 00:27:13,870 --> 00:27:18,250 تو آگے بڑھو اور قدم پر کلک کریں. 555 00:27:18,250 --> 00:27:20,326 اب میری فوری طور پر، بے شک، کرنے کے لئے تبدیل ( "ن ہے:"). 556 00:27:20,326 --> 00:27:22,450 اب، get_int میں نہیں جا رہا ہوں میں قدم رکھ پریشان کرنے کے لئے، 557 00:27:22,450 --> 00:27:24,750 اس تقریب تھا کیونکہ لائبریری میں CS50 کی طرف سے بنایا. 558 00:27:24,750 --> 00:27:25,750 یہ شاید صحیح ہے. 559 00:27:25,750 --> 00:27:28,440 >> تو میں نے آگے جانے کے لئے جا رہا ہوں اور چھانٹیں کے دے کر تعاون کریں 560 00:27:28,440 --> 00:27:30,590 ایک int، لیکن ایک منفی INT. 561 00:27:30,590 --> 00:27:32,870 تو مجھے آگے بڑھو اور ہٹ 0 بتائیں. 562 00:27:32,870 --> 00:27:39,460 اور اب کیا یہاں کیا ہوتا جب میں نیچے حاصل 21 لائن کے لئے؟ 563 00:27:39,460 --> 00:27:40,890 میں نے پھر اعادہ نہیں کیا ہے. 564 00:27:40,890 --> 00:27:43,320 میں نے اس لوپ میں پھنس جائے لگتا نہیں ہے. 565 00:27:43,320 --> 00:27:45,990 دوسرے الفاظ میں، یہ پیلے رنگ بار، کے ارد گرد جا نہیں رکھ کیا 566 00:27:45,990 --> 00:27:47,130 اور ارد گرد، اور ارد گرد. 567 00:27:47,130 --> 00:27:48,340 >> اب، یہ کیوں ہے؟ 568 00:27:48,340 --> 00:27:49,920 ویسے، ن، ابھی کیا (ن) ہے؟ 569 00:27:49,920 --> 00:27:53,280 میں نے مقامی میں دیکھ سکتے ہیں ٹھیک کرنے والا کھولتا میں متغیر. 570 00:27:53,280 --> 00:27:53,816 ن 0 ہے. 571 00:27:53,816 --> 00:27:55,190 ٹھیک ہے، میری حالت کیا تھی؟ 572 00:27:55,190 --> 00:27:58,700 >> 20-- لائن 20، اچھی طرح، 0 0 سے بڑا ہے. 573 00:27:58,700 --> 00:27:59,500 یہ سچ نہیں ہے. 574 00:27:59,500 --> 00:28:01,020 0 0 سے بڑا نہیں ہے. 575 00:28:01,020 --> 00:28:02,820 اور اس طرح میں اس سے باہر توڑ دیا. 576 00:28:02,820 --> 00:28:06,370 >> اور تو ہے کہ کیوں لائن پر ہے 21، میں واقعی میں جاری ہے تو، 577 00:28:06,370 --> 00:28:10,370 میں نے بھی، واپس کرنے کے لئے جا رہا ہوں 0 میں نے مسترد کر 0 ہونا چاہئے تھا، اگرچہ 578 00:28:10,370 --> 00:28:12,484 کے طور پر نہیں اصل وجہ منفی. 579 00:28:12,484 --> 00:28:14,650 تو اب، میں واقعی میں بھی نہیں ٹھیک کرنے والا کھولتا کی پرواہ. 580 00:28:14,650 --> 00:28:16,900 یہ، میں نے کرنے کی ضرورت نہیں کیا گیا کیا چل رہا ہے معلوم ہے. 581 00:28:16,900 --> 00:28:19,233 >> تو میں نے آگے جانے کے لئے جا رہا ہوں اور صرف کھیل کے بٹن پر کلک کریں، 582 00:28:19,233 --> 00:28:20,240 اور اس کے ختم تک کی اجازت نہیں. 583 00:28:20,240 --> 00:28:23,440 اب، میں اس بات کا احساس کر لیا ہے میری بگ سطر 20 پر بظاہر ہے. 584 00:28:23,440 --> 00:28:25,160 یہ میری منطقی خامی ہے. 585 00:28:25,160 --> 00:28:28,100 >> اور تو کیا مجھے چاہتے ہو اس کو تبدیل کرنے کے لئے کیا ہے؟ 586 00:28:28,100 --> 00:28:32,500 مسئلہ یہ ہے کہ میں نہیں ہوں تو پکڑنے 0، یہ صرف ایک منطقی غلطی ہے. 587 00:28:32,500 --> 00:28:35,910 (ن) ہے، جبکہ اور میں کہہ سکتے سے زیادہ یا 0 کے برابر، 588 00:28:35,910 --> 00:28:38,330 بار بار صارف نے فورا رکھنے. 589 00:28:38,330 --> 00:28:41,050 >> لہذا، ایک بار پھر، سادہ غلطی، شاید جب تم نے مجھے دیکھا بھی واضح 590 00:28:41,050 --> 00:28:42,410 صرف چند منٹ پہلے یہ لکھ. 591 00:28:42,410 --> 00:28:44,570 لیکن یہاں takeaway ہے ہے ڈبگ 50 کے ساتھ کہ، 592 00:28:44,570 --> 00:28:46,850 اور ٹھیک کرنا کے ساتھ سافٹ ویئر کے زیادہ عام طور پر، 593 00:28:46,850 --> 00:28:51,370 آپ کے لئے اس نئے پایا طاقت ہے اپنا خود کا کوڈ ذریعے چل، نظر آتے ہیں 594 00:28:51,370 --> 00:28:55,590 کہ دائیں ہاتھ کے پینل کے ذریعے کیا آپ کے متغیر اقدار ہیں. 595 00:28:55,590 --> 00:28:57,700 تو آپ کو لازمی طور پر ایسا نہیں کرتے کسی چیز کو استعمال کرنا ہے 596 00:28:57,700 --> 00:29:00,630 جیسے آپ کو ان اقدار پرنٹ کرنے eprintf. 597 00:29:00,630 --> 00:29:04,430 تم واقعی میں انہیں دیکھ سکتے ہیں ضعف کی سکرین پر. 598 00:29:04,430 --> 00:29:08,920 >> اب، اس کے پرے، یہ نوٹنگ کے قابل ہے ہے کہ ایک اور تکنیک ہے کہ وہاں 599 00:29:08,920 --> 00:29:09,890 اصل سپر عام. 600 00:29:09,890 --> 00:29:13,120 اور تم یہ کیوں تھوڑا تعجب ہو سکتا ہے یہاں آدمی کو اسٹیج پر بیٹھے کیا گیا ہے. 601 00:29:13,120 --> 00:29:16,490 تو عام طور پر، اس ٹیکنالوجی موجود ہے ربڑ کی بتھ ٹھیک کرنا کے طور پر جانا، 602 00:29:16,490 --> 00:29:18,786 جو واقعی صرف ایک ہے حقیقت یہ ہے کہ عہد نامہ 603 00:29:18,786 --> 00:29:20,660 اکثر جب پروگرامرز کوڈ لکھ رہے ہیں، 604 00:29:20,660 --> 00:29:22,650 وہ ضروری نہیں ہیں دوسروں کے ساتھ تعاون، 605 00:29:22,650 --> 00:29:24,030 یا ایک مشترکہ ماحول میں کام. 606 00:29:24,030 --> 00:29:25,050 >> وہ گھر پر قسم کی ہو. 607 00:29:25,050 --> 00:29:25,910 شاید یہ رات کو دیر ہو چکی ہے. 608 00:29:25,910 --> 00:29:28,190 وہ جاننے کی کوشش کر رہے ہیں ان کے کوڈ میں کچھ مسئلے باہر. 609 00:29:28,190 --> 00:29:29,330 اور انہوں نے صرف اسے دیکھ کر نہیں کر رہے ہیں. 610 00:29:29,330 --> 00:29:30,329 >> اور کوئی روممیٹ نہیں ہے. 611 00:29:30,329 --> 00:29:31,250 کوئی TF ہے. 612 00:29:31,250 --> 00:29:32,680 کے ارد گرد کوئی CA نہیں ہے. 613 00:29:32,680 --> 00:29:36,440 وہ ان کی شیلف پر ہے تمام اس چھوٹی سی ربڑ ducky ہے. 614 00:29:36,440 --> 00:29:39,030 >> اور اس لئے ربڑ کی بتھ ٹھیک کرنا صرف اس دعوت ہے 615 00:29:39,030 --> 00:29:42,780 طور پر پاگل کچھ سوچنا ، ایک حقیقی مخلوق کے طور پر اس کے طور پر 616 00:29:42,780 --> 00:29:46,940 اور اصل میں آپ کے کوڈ کے ذریعے چلنے زبانی طور پر اس اچیتن اعتراض کرنے. 617 00:29:46,940 --> 00:29:49,230 لہذا، اگر یہ میری مثال ہے یہاں 618 00:29:49,230 --> 00:29:52,470 اور یہ کہ اس سے قبل یاد کرتے ہیں مسئلہ، یہ تھا 619 00:29:52,470 --> 00:29:58,140 میں نے کوڈ کی اس پہلی سطر حذف کرتے ہیں تو اور میں آگے بڑھو اور ایک بار پھر چھوٹی گاڑی 0 بنانے، 620 00:29:58,140 --> 00:30:01,220 میں نے ان کو یاد تھا کہ یہاں خرابی کے پیغامات. 621 00:30:01,220 --> 00:30:05,997 تو یہاں خیال، اگرچہ میں مضحکہ خیز اس وقت محسوس عوامی طور پر یہ کر رہے، 622 00:30:05,997 --> 00:30:06,580 اس غلطی کی ہے. 623 00:30:06,580 --> 00:30:10,910 >> ٹھیک ہے، تو میرا مسئلہ یہ ہے کہ میں ہے ہے لپیٹ ایک لائبریری تقریب کا اعلان کر دیا. 624 00:30:10,910 --> 00:30:12,610 اور یہ کہ لائبریری تقریب printf کا ہے. 625 00:30:12,610 --> 00:30:15,290 OK اعلان، اعلان prototypes کی یاد دلاتی ہے. 626 00:30:15,290 --> 00:30:18,930 >> کہ میں واقعی کرنے کی ضرورت ہے کا مطلب ہے کہ پیشگی سنکلک بتا کیا 627 00:30:18,930 --> 00:30:19,980 تقریب کی طرح لگتا ہے. 628 00:30:19,980 --> 00:30:20,930 ذرا رکو. 629 00:30:20,930 --> 00:30:23,580 میں معیاری io.h. نہیں تھا 630 00:30:23,580 --> 00:30:24,530 بہت بہت شکریہ. 631 00:30:24,530 --> 00:30:27,330 >> آپ of-- تو صرف اس عمل اصل میں ایک بطخ کے پاس کرنے کی ضرورت نہیں. 632 00:30:27,330 --> 00:30:29,819 مگر چلنے کے اس خیال آپ کے اپنے کوڈ کے ذریعے اپنے آپ کو 633 00:30:29,819 --> 00:30:31,610 لہذا آپ کو اس سے بھی سنا ہے کہ اپنے آپ کو، تو آپ کو اس 634 00:30:31,610 --> 00:30:35,620 آپ کے اپنے میں بھول چوک کا احساس ریمارکس، عام طور پر خیال ہے. 635 00:30:35,620 --> 00:30:38,910 >> اور، شاید زیادہ منطقی طور پر، نہیں تو کہ نہیں لیکن زیادہ ملوث ساتھ زیادہ سے زیادہ 636 00:30:38,910 --> 00:30:44,220 مثال ہم صرف چھوٹی گاڑی 3.c میں کیا تھا، آپ اس کے ذریعے اپنے آپ چل سکتا ہے 637 00:30:44,220 --> 00:30:45,310 کے طور پر مندرجہ ذیل ہے. 638 00:30:45,310 --> 00:30:49,190 تو ٹھیک ہے، ربڑ Ducky کی، DDB، اگر آپ. 639 00:30:49,190 --> 00:30:52,350 یہاں ہم اپنے اہم تقریب میں ہے، میں منفی int حاصل بلا رہا ہوں. 640 00:30:52,350 --> 00:30:54,660 >> اور میں نے واپسی کی قیمت ہو رہا ہوں. 641 00:30:54,660 --> 00:31:00,410 میں نے بائیں ہاتھ کی طرف پر ذخیرہ کرنے کر رہا ہوں ایک متغیر میں 8 لائن پر مجھے بلایا. 642 00:31:00,410 --> 00:31:02,380 ٹھیک ہے، لیکن انتظار، کس طرح کہ قیمت حاصل؟ 643 00:31:02,380 --> 00:31:04,130 مجھ لائن 12 میں تقریب بھی جائزہ لیں. 644 00:31:04,130 --> 00:31:05,760 >> لائن 12 میں، ہم منفی int حاصل ہے. 645 00:31:05,760 --> 00:31:08,190 کوئی بھی آدانوں لے نہیں ہے، ، ایک int واپس کرتا ہے OK. 646 00:31:08,190 --> 00:31:10,929 میں نے 14 ایک متغیر (ن) پر اعلان. 647 00:31:10,929 --> 00:31:12,220 اس سے ایک عددی ذخیرہ کرنے کے لئے جا رہا ہے. 648 00:31:12,220 --> 00:31:13,760 یہی تو میں چاہتا ہوں. 649 00:31:13,760 --> 00:31:18,480 >> ن دو is-- جبکہ تو مندرجہ ذیل کام کریں مجھ سے طے کر میں نے پہلے ہی بنا دیا کیا رد. 650 00:31:18,480 --> 00:31:22,710 ن سے بڑا ہے جبکہ سو 0، (ن) ہے باہر پرنٹ، OK. 651 00:31:22,710 --> 00:31:25,170 اور پھر int ن میں ذخیرہ حاصل کال. 652 00:31:25,170 --> 00:31:30,160 (ن) ہے، تو 0 اور پھر چیک، این not-- وہاں ہے ہے. 653 00:31:30,160 --> 00:31:31,910 لہذا، ایک بار پھر، آپ ایسا نہیں کرتے اصل بتھ ضرورت. 654 00:31:31,910 --> 00:31:35,650 لیکن صرف اپنے آپ کے ذریعے چلنے ایک دانشورانہ مشق کے طور پر آپ کے کوڈ 655 00:31:35,650 --> 00:31:37,720 اکثر آپ کی مدد کرے گا کیا ہو رہا ہے کا احساس، 656 00:31:37,720 --> 00:31:41,170 صرف کچھ کرنے کی مخالفت کے طور اس طرح، اسکرین گھور، 657 00:31:41,170 --> 00:31:43,720 اور اپنے آپ کے ذریعے بات نہیں ایمانداری سے نہیں ہے جس سے یہ، 658 00:31:43,720 --> 00:31:46,270 تقریبا ایک مؤثر ٹیکنالوجی کے طور پر. 659 00:31:46,270 --> 00:31:48,620 تو وہاں آپ کے پاس یہ ایک مختلف تراکیب کی تعداد 660 00:31:48,620 --> 00:31:52,102 اصل میں آپ کے کوڈ ٹھیک کرنا کے لئے اور، نقص جن میں سے سب 661 00:31:52,102 --> 00:31:54,810 آپ کی ٹول کٹ میں اوزار ہونا چاہئے ، یہ ہے کہ آپ رات کو دیر نہیں ہو تا 662 00:31:54,810 --> 00:31:57,660 خاص طور پر، آپ کو کھانے میں ہیں ہال، یا دفتری اوقات میں، 663 00:31:57,660 --> 00:32:00,368 کے خلاف اپنے سر پیٹنے دیوار، کچھ مسئلہ کو حل کرنے کی کوشش کر. 664 00:32:00,368 --> 00:32:02,020 سافٹ ویئر کے اوزار موجود ہیں کہ احساس. 665 00:32:02,020 --> 00:32:03,720 ربڑ کی بتھ کے اوزار ہیں. 666 00:32:03,720 --> 00:32:09,630 اور ایک پورے عملے وہاں ہے ایک ہاتھ قرضے دینے کے لئے انتظار کر رہے ہیں کی حمایت کرتے ہیں. 667 00:32:09,630 --> 00:32:13,120 >> تو اب، مسئلہ پر ایک لفظ سیٹ، اور ہم آپ کے لئے امید کر رہے ہیں پر 668 00:32:13,120 --> 00:32:15,620 ان میں سے باہر حاصل، اور کس طرح ہم جائزہ لینے کے بارے میں جانا. 669 00:32:15,620 --> 00:32:17,680 کورس کے نصاب کے مطابق، CS50 کی مسئلہ سیٹ 670 00:32:17,680 --> 00:32:22,320 چار بنیادی محور پر اندازہ کیا جاتا ہے، لہذا، دائرہ کار speak-- کرنے، درست، ڈیزائن، 671 00:32:22,320 --> 00:32:23,060 اور سٹائل. 672 00:32:23,060 --> 00:32:25,910 اور گنجائش میں کس قدر سے مراد ٹکڑا آپ کو کاٹ لیا کیا ہے؟ 673 00:32:25,910 --> 00:32:28,080 تم کس طرح ایک مسئلہ کی زیادہ کوشش کی ہے؟ 674 00:32:28,080 --> 00:32:30,110 ممکن کوشش کی کیا سطح آپ ظاہر کر دیا ہے؟ 675 00:32:30,110 --> 00:32:35,750 >> درست، ہے کے طور پر پروگرام کام کرتا ہے یہ CS50 ہے تفصیلات کے مطابق کرنا ہے 676 00:32:35,750 --> 00:32:38,640 آپ بعض آدانوں فراہم جب یا کچھ خاص نتائج واپس آ رہا؟ 677 00:32:38,640 --> 00:32:41,130 ڈیزائن ان میں سے اکثر ساپیکش ہے. 678 00:32:41,130 --> 00:32:43,360 اور یہ ایک ہے کہ مرضی ہے سیکھنے کے لئے سب سے طویل لے 679 00:32:43,360 --> 00:32:47,220 اور سب سے طویل میں، سکھانے کے لئے اب تک یہ فوڑے کے طور پر، 680 00:32:47,220 --> 00:32:49,530 آپ کے کوڈ کو کتنی اچھی طرح لکھا ہے؟ 681 00:32:49,530 --> 00:32:52,920 >> یہ صرف صحیح پرنٹ کرنے کے لئے ایک بات ہے نتائج یا دائیں اقدار کو واپس. 682 00:32:52,920 --> 00:32:55,400 لیکن آپ کے یہ کام کر رہے ہیں مؤثر طریقے سے ممکن ہو سکے کے طور پر؟ 683 00:32:55,400 --> 00:32:58,210 آپ اسے تقسیم کر رہے ہیں اور فتح، یا بائنری 684 00:32:58,210 --> 00:33:01,500 ہم جلد ہی دیکھیں گے کے طور پر ہم نے کیا ہے کہ تلاش دو ہفتے پہلے فون بک کے ساتھ؟ 685 00:33:01,500 --> 00:33:04,670 کو حل کرنے کے بہتر طریقے ہیں مسئلہ آپ اس وقت یہاں ہے کے مقابلے میں؟ 686 00:33:04,670 --> 00:33:06,380 یہ بہتر ڈیزائن کے لئے ایک موقع ہے. 687 00:33:06,380 --> 00:33:08,530 >> اور پھر کس طرح style-- خوبصورت آپ کے کوڈ ہے؟ 688 00:33:08,530 --> 00:33:12,370 تمہیں پتہ ہے میں خوبصورت ہوں کہ محسوس کریں گے میرا کوڈ پوٹ کاری کے بارے میں خاص طور پر، 689 00:33:12,370 --> 00:33:15,300 اور یقین ہے کہ میری متغیر بنانے معقول حد نامزد کر رہے ہیں. ن، 690 00:33:15,300 --> 00:33:19,660 جبکہ مختصر، ایک کے لئے ایک اچھا نام ہے نمبر، ایک گنتی عددی کے لئے، میں، 691 00:33:19,660 --> 00:33:20,727 ایک سٹرنگ کے لئے ایس. 692 00:33:20,727 --> 00:33:22,560 اور ہم اب بھی ہو سکتا ہے متغیر کے نام طرز. 693 00:33:22,560 --> 00:33:25,500 انداز صرف کس طرح اچھا ہے اپنا کوڈ نظر آئے ہے؟ 694 00:33:25,500 --> 00:33:26,600 اور یہ کہ کس طرح پڑھنے کے قابل ہے؟ 695 00:33:26,600 --> 00:33:29,650 >> اور وقت کے ساتھ، کیا آپ کے TAS اور کی TFs کورس میں کیا کریں گے 696 00:33:29,650 --> 00:33:31,870 اس کے ساتھ آپ کو فراہم کیا جاتا ہے گتاتمک رائے کی قسم 697 00:33:31,870 --> 00:33:34,330 آپ بہتر ہو تا کہ ان لوگوں کے مختلف پہلوؤں پر. 698 00:33:34,330 --> 00:33:37,510 اور ہم کس طرح کی شرائط میں ، ان میں سے ہر ایک محور کا اندازہ 699 00:33:37,510 --> 00:33:40,080 یہ بہت کم کے ساتھ عام طور پر ہے بالٹیاں آپ نے پہلے ہی، عام طور پر، 700 00:33:40,080 --> 00:33:41,680 آپ کیا کر رہے ہیں کس طرح کا احساس حاصل. 701 00:33:41,680 --> 00:33:45,680 اور، یقینا، آپ پر ایک سکور حاصل کرتے ہیں تو ان لوگوں axes-- درست، ڈیزائن کے کسی بھی 702 00:33:45,680 --> 00:33:49,659 اور سٹائل especially-- اس نمبر عام طور پر 1 اور 5 کے درمیان ہو گا. 703 00:33:49,659 --> 00:33:52,450 اور، لفظی، آپ کو ہو رہی ہے تو سمسٹر کے آغاز میں 3، 704 00:33:52,450 --> 00:33:53,977 یہ ایک بہت اچھی بات ہے. 705 00:33:53,977 --> 00:33:55,810 یہ اب بھی وہاں ہے کا مطلب بہتری کی گنجائش، 706 00:33:55,810 --> 00:33:58,490 تم میں کے لئے امید کریں گے جس پہلی بار کے لئے ایک کلاس لینے. 707 00:33:58,490 --> 00:34:01,820 چھت کی کچھ تھوڑا سا امید نہیں ہے جس سے آپ تک پہنچنے کے خواہشمند رہے ہیں. 708 00:34:01,820 --> 00:34:03,970 اور اس طرح 3 پر ہو رہی ہے جلد ٹکڑے ٹکڑے، 709 00:34:03,970 --> 00:34:06,550 اگر نہیں کچھ 2 کی اور 4 کی، ، واقعی ایک اچھی بات ہے،. 710 00:34:06,550 --> 00:34:08,880 اس کی حد کے اندر اندر ٹھیک ہے، ساتھ ساتھ توقعات کے اندر اندر. 711 00:34:08,880 --> 00:34:11,421 >> اور اپنی عقل دوڑ رہا ہے، تو انتظار کرو ایک منٹ، پانچ میں سے تین باہر. 712 00:34:11,421 --> 00:34:12,620 یہ واقعی 10 کا ایک 6 باہر ہے. 713 00:34:12,620 --> 00:34:13,560 یہی وجہ ہے کہ 60 فی صد ہے. 714 00:34:13,560 --> 00:34:14,830 ایک F. ہے کہ میرے خدا، 715 00:34:14,830 --> 00:34:15,870 >> یہ نہیں ہے. 716 00:34:15,870 --> 00:34:17,600 یہ، حقیقت میں، نہیں ہے کہ. 717 00:34:17,600 --> 00:34:22,710 بلکہ، یہ بہتر بنانے کے لئے ایک موقع ہے سمسٹر کے دوران. 718 00:34:22,710 --> 00:34:25,580 اور آپ کو کچھ حاصل کر رہے ہیں تو poors، ان کا موقع ہیں 719 00:34:25,580 --> 00:34:29,199 دفتر کے اوقات کا فائدہ اٹھا کر، یقینی طور پر حصوں اور دیگر وسائل. 720 00:34:29,199 --> 00:34:32,840 >> اتارنا، واقعی، ایک موقع ہے آپ کو صرف کس حد تک ہے میں فخر کرنے کے 721 00:34:32,840 --> 00:34:34,520 سمسٹر کے دوران آئے. 722 00:34:34,520 --> 00:34:38,199 تو احساس کرتے، تو کچھ بھی نہیں ورنہ، تین اچھی ہے. 723 00:34:38,199 --> 00:34:40,179 اور یہ وقت کے ساتھ ترقی کے لئے کمرے کی اجازت دیتا ہے. 724 00:34:40,179 --> 00:34:43,090 >> ان لوگوں کے محور ہیں کس طرح بارت، حقیقت پسندانہ تم ہو 725 00:34:43,090 --> 00:34:46,745 ہو رہی ہے اپنے وقت کے سب سے زیادہ خرچ کرنے کے لئے جا کام پر چیزیں، صحیح چھوڑ دو. 726 00:34:46,745 --> 00:34:49,120 اور اس لئے درست کرنے کے لئے جاتا ساتھ کے طور پر، سب سے زیادہ بارت جائے 727 00:34:49,120 --> 00:34:51,360 تینوں میں سے اس ضربی عنصر. 728 00:34:51,360 --> 00:34:54,659 ڈیزائن، یہ بھی ضروری ہے لیکن آپ کو ضروری نہیں ہے کہ کچھ 729 00:34:54,659 --> 00:34:58,220 پر ان لوگوں گھنٹے کے تمام خرچ چیزیں صرف کام کرنے کے لئے حاصل کرنے کی کوشش. 730 00:34:58,220 --> 00:35:00,019 >> اور اس طرح یہ بارت ہے زیادہ ہلکے سے ایک چھوٹا سا. 731 00:35:00,019 --> 00:35:01,560 اور پھر طرز از کم بارت ہے. 732 00:35:01,560 --> 00:35:03,710 یہاں تک کہ یہ کم نہیں ہے اگرچہ بنیادی اہمیت کا حامل، 733 00:35:03,710 --> 00:35:05,990 یہ صرف، شاید، حق سب سے آسان چیز، 734 00:35:05,990 --> 00:35:08,440 ترجمہ ہم نقل لیکچر اور سیکشن میں ایسا، 735 00:35:08,440 --> 00:35:11,080 اچھی طرح چیزوں کے ساتھ پوٹ دار، اور تبصرہ، 736 00:35:11,080 --> 00:35:14,320 اور تو آگے سب سے آسان کے درمیان ہے باتیں کرتے ہیں اور حق حاصل کرنے کے. 737 00:35:14,320 --> 00:35:16,960 تو جیسا کہ، اس بات کا احساس ان نکات ہیں کہ 738 00:35:16,960 --> 00:35:19,000 کہ سمجھنے کے لئے نسبتا آسان ہے. 739 00:35:19,000 --> 00:35:22,360 >> اور اب ایک لفظ پر تعلیمی ایمانداری this--. 740 00:35:22,360 --> 00:35:25,150 کورس کے مطابق تو نصاب، آپ دیکھیں گے 741 00:35:25,150 --> 00:35:27,630 کورس کی ہے کہ کافی اس کے ارد گرد کی زبان کا سا. 742 00:35:27,630 --> 00:35:31,380 اور ظاہر ہے مسئلہ لیتا ہے بہت سنجیدگی علمی دیانت داری. 743 00:35:31,380 --> 00:35:33,450 >> ہم امتیاز ہے، بہتر کے لئے یا برے کے لئے، 744 00:35:33,450 --> 00:35:36,570 بھیجی سے ہر سال زیادہ تادیبی کارروائی کے لئے کے طالب علموں 745 00:35:36,570 --> 00:35:39,670 کسی دوسرے کے سب سے زیادہ سے کورس کے، کہ میں جانتی ہوں. 746 00:35:39,670 --> 00:35:42,580 یہ ضروری نہیں ہے حقیقت کی نشاندہی 747 00:35:42,580 --> 00:35:46,340 CS طالب علموں، یا CS50 طالب علموں، ہو کوئی کم اپنے ہم جماعتوں کے مقابلے میں ایماندار. 748 00:35:46,340 --> 00:35:49,090 لیکن حقیقت یہ ہے کہ میں اس دنیا، الیکٹرانک، ہم صرف 749 00:35:49,090 --> 00:35:50,990 ٹیکنالوجیکل ہے اس کا پتہ لگانے کے اسباب. 750 00:35:50,990 --> 00:35:53,360 >> اس لئے ہمارے لئے اہم ہے کلاس کے اس پار جانبداری 751 00:35:53,360 --> 00:35:58,550 اس کا پتہ لگانے کے، اور بلند ہم کرتے ہیں کہ ہم چیزوں کو دیکھتے ہیں تو مسئلہ. 752 00:35:58,550 --> 00:36:01,980 اور صرف ایک تصویر پینٹ کرنے، اور واقعی میں اس کے سنک کی طرح کچھ مدد کرنے کے لئے، 753 00:36:01,980 --> 00:36:04,600 ان کی تعداد میں ہیں گزشتہ 10 سال کے دوران طالب علموں کو 754 00:36:04,600 --> 00:36:07,610 کچھ میں ملوث کیا گیا ہے کہ تعلیمی ایمانداری کے اس طرح کے مسائل، 755 00:36:07,610 --> 00:36:10,990 کچھ 32 طلباء کے ساتھ زوال 2015، جس 756 00:36:10,990 --> 00:36:13,760 ہم لیتے ہیں یہ کہنا ہے معاملہ بہت سنجیدگی سے. 757 00:36:13,760 --> 00:36:18,380 اور، بالآخر، ان کی تعداد تحریر، سب سے زیادہ حال ہی میں، کے بارے میں 3٪، 4 فیصد یا اس 758 00:36:18,380 --> 00:36:19,120 کلاس کے. 759 00:36:19,120 --> 00:36:25,220 >> طالب علموں کی سپر اکثریت کے لئے تو ایسا لگتا ہے کہ لائنز واضح ہیں. 760 00:36:25,220 --> 00:36:27,940 لیکن میں یہ رہتے ہو کوئی بات، خاص طور پر دیر سے 761 00:36:27,940 --> 00:36:32,080 رات کے وقت کے ساتھ جدوجہد کر جب ایک مسئلہ سیٹ کا کوئی حل، 762 00:36:32,080 --> 00:36:34,830 میکانزم نے اپنے آپ کو بہتر حاصل کرنے کے لئے 763 00:36:34,830 --> 00:36:37,870 تم سے زیادہ حمایت کر سکتے ہیں لگتا ہے کہ، یہاں تک کہ وقت. 764 00:36:37,870 --> 00:36:40,514 ہم وصول کریں جب کہ اس کا احساس طالب علم گذارشات، ہم کراس 765 00:36:40,514 --> 00:36:43,430 اس سال ہر جمع کرانے کا موازنہ گزشتہ سال ہر جمع کرانے کے خلاف، 766 00:36:43,430 --> 00:36:47,590 2007 سے ہر جمع کرانے کے خلاف، اور، کی طرف دیکھ کے طور پر ساتھ ساتھ، کے بعد سے، 767 00:36:47,590 --> 00:36:49,931 کوڈ رپاجٹری آن لائن، مباحثے فورمس، کام سائٹس. 768 00:36:49,931 --> 00:36:51,806 اور ہم نے اس کا ذکر، واقعی خاطر سب، 769 00:36:51,806 --> 00:36:56,040 مکمل انکشاف کے، کہ اگر کسی اور آن لائن تلاش کر سکتے ہیں، 770 00:36:56,040 --> 00:36:57,880 یقینی طور پر، تو ہم نے کورس کر سکتے ہیں. 771 00:36:57,880 --> 00:37:00,100 لیکن، واقعی، روح کورس فوڑے کے 772 00:37:00,100 --> 00:37:01,650 نصاب میں اس شق کے لیے. 773 00:37:01,650 --> 00:37:03,670 یہ واقعی صرف، مناسب ہونا ہے. 774 00:37:03,670 --> 00:37:06,680 >> اور یہ کہ کی وضاحت کرنا پڑا تو ہم نے صرف تھوڑا سا زیادہ زبان کے ساتھ، 775 00:37:06,680 --> 00:37:09,770 احساس ہے کہ سب کا نچوڑ آپ کو اس کورس میں جمع کرائیں کہ کام 776 00:37:09,770 --> 00:37:10,954 اپنا خود کا ہونا ضروری ہے. 777 00:37:10,954 --> 00:37:13,870 لیکن اس کے اندر اندر، یقینی طور پر موجود ہیں مواقع، اور حوصلہ افزائی، 778 00:37:13,870 --> 00:37:17,300 اور کرنے کے لئے تبدیل کرنے میں تدریسی قدر اپنے آپ others-- TFS، سی اے ایس، 779 00:37:17,300 --> 00:37:20,760 TAS، اور کلاس میں دوسروں، کی حمایت کے لئے، اکیلے دوستوں بتائیں 780 00:37:20,760 --> 00:37:23,547 اور کمرے میں رہتے مطالعہ کیا ہے جو اس سے پہلے CS اور پروگرامنگ کی. 781 00:37:23,547 --> 00:37:25,130 اور تو اس کے لئے ایک الاؤنس ہے. 782 00:37:25,130 --> 00:37:28,180 اور انگوٹھے کا عام اصول this-- جب مدد کے لئے پوچھ رہا ہے، 783 00:37:28,180 --> 00:37:31,470 تم نے دوسروں کو اپنا کوڈ دکھائے جا سکتے ہیں، لیکن آپ ان کو دیکھنے نہیں کر سکتے. 784 00:37:31,470 --> 00:37:34,880 لہذا اگر آپ کو دفتری اوقات میں ہیں یہاں تک کہ اگر، یا D ہال، ورنہ کہیں میں 785 00:37:34,880 --> 00:37:37,450 کچھ سیٹوں پر کام کر رہے، ایک دوست، کے ساتھ کام جس 786 00:37:37,450 --> 00:37:40,160 میں، مکمل طور پر ٹھیک ہے آپ کے کام کے دن کے آخر 787 00:37:40,160 --> 00:37:43,034 بالآخر ہر ایک سے تعلق رکھتے ہیں چاہئے تم میں سے بالترتیب، اور نہ 788 00:37:43,034 --> 00:37:45,700 کچھ مشترکہ کوشش ہو، حتمی منصوبے جہاں کے لئے سوائے 789 00:37:45,700 --> 00:37:47,410 اس کی اجازت اور حوصلہ افزائی کی ہے. 790 00:37:47,410 --> 00:37:49,830 >> اگر آپ اس بات کا احساس کچھ کے ساتھ جدوجہد 791 00:37:49,830 --> 00:37:52,520 اور اپنے دوست صرف ہوتا پھر اس میں بہتر بننے کی، 792 00:37:52,520 --> 00:37:55,130 یا تم سے اس مسئلہ میں بہتر، یا دور آگے آپ کے مقابلے میں تھوڑا، 793 00:37:55,130 --> 00:37:57,330 تبدیل کرنے کے لئے مکمل طور پر مناسب ہے آپ کے دوست کے لئے اور، کا کہنا ہے کہ ارے، 794 00:37:57,330 --> 00:38:00,480 آپ یہاں اپنے کوڈ کو دیکھ سکتا ہوں، مجھے بتا مدد کر میرا مسئلہ کیا ہے؟ 795 00:38:00,480 --> 00:38:03,760 اور، امید ہے کہ، میں تعلیمی قدر کی دلچسپی 796 00:38:03,760 --> 00:38:07,040 اس دوست نہیں صرف کرتا ہے ، کا کہنا ہے کہ اوہ، ایسا، بلکہ، 797 00:38:07,040 --> 00:38:09,917 کیا آپ کو لائن پر یاد کر رہے ہیں 6، یا اس طرح کچھ؟ 798 00:38:09,917 --> 00:38:12,000 لیکن حل نہیں ہے آپ کے لئے اگلے کے دوست کے لئے 799 00:38:12,000 --> 00:38:15,617 کہنے کے لئے، اوہ، ٹھیک ہے، یہاں، مجھے ھیںچو اس اپ، اور آپ کو اپنی حل دکھائیں. 800 00:38:15,617 --> 00:38:16,450 تو یہ لکیر ہے. 801 00:38:16,450 --> 00:38:18,670 تم آپ کے کوڈ کو ظاہر دوسروں، لیکن آپ نہیں کرسکتے ہیں 802 00:38:18,670 --> 00:38:22,350 ، ان کو دیکھنے دوسرے سے مشروط کورس کے نصاب میں رکاوٹوں. 803 00:38:22,350 --> 00:38:24,760 >> تو ذہن اس میں رہتے ہو افسوس کی شق نام نہاد 804 00:38:24,760 --> 00:38:27,560 اس کے ساتھ ساتھ کورس نصاب میں، کہ آپ کو کچھ کا ارتکاب کریں تو یہ کہ 805 00:38:27,560 --> 00:38:30,476 مناسب نہیں ہے، لیکن اسے لانے کے کورس کے سر کی توجہ 806 00:38:30,476 --> 00:38:34,240 72 گھنٹے کے اندر، کورس مقامی پابندیاں عائد ہو سکتی ہے کہ 807 00:38:34,240 --> 00:38:37,380 ایک غیر اطمینان بخش شامل ہو سکتے ہیں یا جمع کرائی کام کے لئے میں ناکامی کے گریڈ. 808 00:38:37,380 --> 00:38:41,410 لیکن کورس کی طرف رجوع نہیں کریں گے کی مزید تادیبی کارروائی کے لئے کوئی فرق، 809 00:38:41,410 --> 00:38:43,010 بار بار کی کارروائیوں کے مقدمات میں سوائے. 810 00:38:43,010 --> 00:38:46,632 دوسرے الفاظ میں، اگر آپ ایسا کرتے کچھ بنانے بیوکوف، خاص طور پر رات کو دیر سے، فیصلے 811 00:38:46,632 --> 00:38:49,340 کہ اگلی صبح یا دو دن بعد میں، آپ جاگ اور احساس، 812 00:38:49,340 --> 00:38:50,870 میں کیا سوچ رہا تھا؟ 813 00:38:50,870 --> 00:38:53,890 آپ ایک دکان ہے CS50 میں کیا اس مسئلہ فکسنگ کے لئے 814 00:38:53,890 --> 00:38:57,170 اور یہ تک مالک، تاکہ ہم نصف آپ سے ملنے اور نمٹنے گا 815 00:38:57,170 --> 00:39:01,500 کہ دونوں ہے جو ایک معاملے میں کے ساتھ تعلیمی اور آپ کے لئے قابل قدر، 816 00:39:01,500 --> 00:39:04,200 لیکن پھر بھی کسی طرح سے تادیبی. 817 00:39:04,200 --> 00:39:08,590 اور اب، اس سے دور کنارے لینے کے لئے،. 818 00:39:08,590 --> 00:39:10,570 >> [ویڈیو پلے بیک] 819 00:39:10,570 --> 00:39:13,540 >> [موسیقی بجانے] 820 00:39:13,540 --> 00:39:58,090 821 00:39:58,090 --> 00:39:58,866 >> [END پلے بیک] 822 00:39:58,866 --> 00:40:00,490 DAVID J. MALAN: ٹھیک ہے، ہم واپس آ گئے ہیں. 823 00:40:00,490 --> 00:40:03,680 اور اب ہم میں سے ایک کی طرف دیکھو ہماری حقیقی دنیا ڈومینز کے پہلے 824 00:40:03,680 --> 00:40:08,720 CS50 میں، خفیہ نگاری کا فن، بھیجنا اور وصول کرنے کا فن 825 00:40:08,720 --> 00:40:11,840 خفیہ پیغامات، مرموز اگر آپ کے پیغامات، 826 00:40:11,840 --> 00:40:17,060 اگر آپ کے پاس ہے کہ صرف ہے deciphered کیا جا سکتا کچھ اہم جزو مرسل ہے کہ 827 00:40:17,060 --> 00:40:18,030 اس کے ساتھ ساتھ. 828 00:40:18,030 --> 00:40:22,120 ہم لے لیں گے تو اس کی حوصلہ افزائی کرنے یہاں اس بات پر نظر ڈالیں، 829 00:40:22,120 --> 00:40:26,750 جس میں ایک کی ایک مثال ہے خفیہ کوٹواچک کی انگوٹی ہے کہ 830 00:40:26,750 --> 00:40:34,042 یہ اعداد و شمار کرنے کے لئے میں استعمال کیا جا سکتا کیا ایک خفیہ پیغام اصل میں ہے. 831 00:40:34,042 --> 00:40:35,750 سچ تو یہ ہے، پیٹھ میں گریڈ اسکول میں دن، 832 00:40:35,750 --> 00:40:38,787 اگر آپ کبھی خفیہ پیغامات بھیجے تو کچھ دوست یا کلاس میں کچھ چاہنے والوں، 833 00:40:38,787 --> 00:40:40,620 آپ نے سوچا کہ ہو سکتا ہے آپ کو ہوشیار ہونے کی وجہ سے کر رہے تھے 834 00:40:40,620 --> 00:40:46,530 کی طرف سے کاغذ کو تبدیل کرنے کی آپ ٹکڑے پر، کی طرح، ایک بی، اور بی سی پر، اور سی ڈی، 835 00:40:46,530 --> 00:40:47,590 علی هذا القیاس. 836 00:40:47,590 --> 00:40:50,300 لیکن آپ کو اصل میں خفیہ کاری کر رہے تھے آپ کی معلومات، یہاں تک کہ 837 00:40:50,300 --> 00:40:53,300 یہ ایک چھوٹی سی معمولی تھا، نہیں تھا کہ مشکل کا احساس کرنے کے اساتذہ کے لئے، 838 00:40:53,300 --> 00:40:55,675 ساتھ ساتھ، آپ کو صرف کو تبدیل کرتے ہیں بی اے اور سی بی، 839 00:40:55,675 --> 00:40:57,550 آپ اصل میں یہ اعداد و شمار پیغام کیا تھا، 840 00:40:57,550 --> 00:40:59,700 لیکن آپ کی معلومات کو ciphering میں تھے. 841 00:40:59,700 --> 00:41:03,420 >> آپ کو صرف یہ کر رہے تھے بس، یہاں Ralphie طرح زیادہ سے زیادہ 842 00:41:03,420 --> 00:41:07,934 ادا کرتا ہے کہ ایک مشہور فلم میں بہت زیادہ اشتھاراتی nauseum ہر موسم سرما. 843 00:41:07,934 --> 00:41:08,600 [ویڈیو پلے بیک] 844 00:41:08,600 --> 00:41:11,180 یہ سب اس کے لئے جانا جاتا آرہے رالف پارکر اس طرح ہے 845 00:41:11,180 --> 00:41:14,070 لٹل کے ایک رکن مقرر یتیم بچوں اینی خفیہ سرکل 846 00:41:14,070 --> 00:41:17,700 اور تمام اعزازات کا حقدار ہے اور فوائد (مذہب) پر واقع ہونے. 847 00:41:17,700 --> 00:41:24,340 >> -Signed، لٹل یتیم بچوں اینی، انسداد دستخط کئے سیاہی میں پیری آندری،. 848 00:41:24,340 --> 00:41:27,160 اعزاز اور فوائد، پہلے سے ہی نو سال کی عمر میں. 849 00:41:27,160 --> 00:41:30,490 850 00:41:30,490 --> 00:41:31,825 >> [چللا] 851 00:41:31,825 --> 00:41:33,750 852 00:41:33,750 --> 00:41:34,250 -چلو بھئی. 853 00:41:34,250 --> 00:41:35,210 چلو اس کا ساتھ ملے ہیں. 854 00:41:35,210 --> 00:41:39,530 میں نے سب جاز کی ضرورت نہیں ہے اسمگلروں اور قزاقوں کے بارے میں. 855 00:41:39,530 --> 00:41:41,660 >> کے لئے مدد کل رات اختتامی ساہسک 856 00:41:41,660 --> 00:41:43,880 سیاہ سمندری ڈاکو جہاز کے. 857 00:41:43,880 --> 00:41:46,650 اب، اس کے لئے وقت ہو گیا ہے ینی کے خفیہ پیغام 858 00:41:46,650 --> 00:41:49,840 خفیہ سرکل آپ کے ارکان کے لئے. 859 00:41:49,840 --> 00:41:53,570 یاد رکھیں، بچوں، صرف اراکین ینی کے خفیہ سرکل کے 860 00:41:53,570 --> 00:41:56,140 ینی کے خفیہ پیغام وضاحت کر سکتے ہیں. 861 00:41:56,140 --> 00:42:00,340 >> یاد رکھیں، ینی آپ پر منحصر ہے. 862 00:42:00,340 --> 00:42:02,880 B2 کے لئے آپ کے پنوں پر مقرر کریں. 863 00:42:02,880 --> 00:42:05,230 یہاں پیغام ہے. 864 00:42:05,230 --> 00:42:06,090 12، 11-- 865 00:42:06,090 --> 00:42:10,250 >> -میں میں اپنے ابتدائی خفیہ میٹنگ میں ہوں،. 866 00:42:10,250 --> 00:42:13,890 >> -14، 11، 18، 16. 867 00:42:13,890 --> 00:42:15,780 >> -Pierre آواز آج رات عظیم میں تھا. 868 00:42:15,780 --> 00:42:19,000 میں سمجھتا ہوں کہ آج رات کے بتا سکتا ہوں پیغام بہت ضروری تھا. 869 00:42:19,000 --> 00:42:22,694 >> -3، 25، کہ ایک پیغام ہے ینی خود سے. 870 00:42:22,694 --> 00:42:23,860 یاد رکھیں، کسی کو مت بتانا. 871 00:42:23,860 --> 00:42:28,760 872 00:42:28,760 --> 00:42:32,930 >> -90 سیکنڈ بعد، میں صرف میں ہوں گھر میں کمرہ جہاں نو کے ایک لڑکے 873 00:42:32,930 --> 00:42:37,040 پرائیویسی اور وضاحت کرنا میں بیٹھ سکتا ہے. 874 00:42:37,040 --> 00:42:39,730 آہا، B! 875 00:42:39,730 --> 00:42:42,360 میں نے اگلے، E. کے لئے گئے تھے 876 00:42:42,360 --> 00:42:44,520 >> پہلا لفظ ہے. 877 00:42:44,520 --> 00:42:49,032 S، جو اب آسان آ رہا تھا، U، 25-- 878 00:42:49,032 --> 00:42:51,733 >> اوہ، سے Ralphie چلو،، مجھے جانا ہے! 879 00:42:51,733 --> 00:42:53,688 >> دائیں نیچے -I'll، ما! 880 00:42:53,688 --> 00:42:54,188 جی whiz ہے! 881 00:42:54,188 --> 00:42:58,116 882 00:42:58,116 --> 00:43:04,060 >> -T، O، ضروریات کو کس بات کا یقین ہو اس بات کا یقین؟ 883 00:43:04,060 --> 00:43:05,970 لٹل یتیم کیا تھا ینی کہنا چاہ؟ 884 00:43:05,970 --> 00:43:07,264 کیا اس بات کا یقین؟ 885 00:43:07,264 --> 00:43:09,634 >> -Ralphie، اینڈی گیا ہے جاؤ، آپ مہربانی کرکے باہر آ جائے گی؟ 886 00:43:09,634 --> 00:43:10,480 >> -ٹھیک ہے، ماں! 887 00:43:10,480 --> 00:43:12,880 میں نے صحیح سے باہر ہو جائے گا! 888 00:43:12,880 --> 00:43:14,550 >> میں قریب ہو رہا کیا گیا تھا. 889 00:43:14,550 --> 00:43:16,620 کشیدگی خوفناک تھا. 890 00:43:16,620 --> 00:43:17,720 وہ کیا تھا؟ 891 00:43:17,720 --> 00:43:20,170 سیارے کی قسمت توازن میں پھانسی پر لٹکا سکتے. 892 00:43:20,170 --> 00:43:20,670 >> -Ralphie! 893 00:43:20,670 --> 00:43:23,170 اینڈی جانا! 894 00:43:23,170 --> 00:43:26,890 >> بلند آواز سے رونے کے لئے، صحیح باہر ہو -I'll! 895 00:43:26,890 --> 00:43:32,680 >> وہاں -تقریبا، میری انگلیاں اڑ گئے، میرے دماغ اسٹیل کے نیٹ ورک تھا، ہر تاکنا vibrated کے. 896 00:43:32,680 --> 00:43:37,198 یہ جی ہاں، ہاں، ہاں، تقریبا واضح تھا. 897 00:43:37,198 --> 00:43:43,091 >> آپ Ovaltine پینے کے لئے اس بات کا یقین ہونے. 898 00:43:43,091 --> 00:43:43,590 Ovaltine؟ 899 00:43:43,590 --> 00:43:48,160 900 00:43:48,160 --> 00:43:49,430 A کے crummy تجارتی؟ 901 00:43:49,430 --> 00:43:53,046 902 00:43:53,046 --> 00:43:54,227 کتیا کا بیٹا. 903 00:43:54,227 --> 00:43:54,810 [END پلے بیک] 904 00:43:54,810 --> 00:43:57,390 DAVID J. MALAN: ٹھیک ہے، تو کہ ایک بہت طویل راستہ تھا 905 00:43:57,390 --> 00:44:00,660 خفیہ نگاری متعارف کرانے کے، اور بھی ovaltine. 906 00:44:00,660 --> 00:44:04,470 اصل میں، اس کی عمر کے اشتہار سے یہاں، ovaltine اتنا اچھا کیوں ہے؟ 907 00:44:04,470 --> 00:44:09,470 یہ پکا ہوا کے ایک توجہ نکالنے ہے جو malt، خالص کریمی گائے کے دودھ، 908 00:44:09,470 --> 00:44:14,360 اور خاص طور پر ایک دوسرے کے ساتھ، کوکو تیار کی گئی قدرتی phosphatides کے اور وٹامن کے ساتھ. 909 00:44:14,360 --> 00:44:18,240 یہ مزید کے ساتھ قلعہ بند کر رہا ہے اضافی وٹامن بی اور ڈی، یم. 910 00:44:18,240 --> 00:44:21,600 اور تم اب بھی،، اسے حاصل کر سکتے بظاہر ایمیزون پر، ہم یہاں کیا کے طور پر. 911 00:44:21,600 --> 00:44:24,810 >> لیکن حوصلہ افزائی یہاں میں تھا ، خفیہ نگاری متعارف کرانے خاص طور پر 912 00:44:24,810 --> 00:44:28,340 نام سے جانا جاتا خفیہ نگاری کی ایک قسم خفیہ کلید خفیہ نگاری کے طور پر. 913 00:44:28,340 --> 00:44:34,284 اور نام، پوری پتہ چلتا ہے ایک خفیہ کلید خفیہ نظام کی حفاظت، 914 00:44:34,284 --> 00:44:36,200 ، ایک طریقہ کار اگر آپ صرف دوڑ دھوپ کے لئے 915 00:44:36,200 --> 00:44:40,960 دو افراد کے درمیان معلومات، ہے صرف مرسل اور صرف وصول کنندہ 916 00:44:40,960 --> 00:44:46,980 ایک خفیہ چابی کچھ قدر جانتے ہیں، کچھ خفیہ جملہ، کچھ خفیہ نمبر، کہ 917 00:44:46,980 --> 00:44:50,660 ان دونوں کو خفیہ کرنے کے لئے کی اجازت دیتا ہے اور معلومات بےرمز. 918 00:44:50,660 --> 00:44:53,470 اور خفیہ نگاری، واقعی، صرف اس ہفتے 0 سے ہے. 919 00:44:53,470 --> 00:44:56,715 >> یہ جہاں آدانوں وہاں ایک مسئلہ ہے، انگریزی میں اصل پیغام کی طرح 920 00:44:56,715 --> 00:44:59,340 یا جو کچھ بھی زبان آپ کو اس کے کلاس میں کسی کو بھیجنا چاہتے ہیں، 921 00:44:59,340 --> 00:45:00,580 یا انٹرنیٹ کے اس پار. 922 00:45:00,580 --> 00:45:03,840 کچھ پیداوار، جس جا رہا ہے وہاں ہے scrambled کے پیغام کو ہونے کے لئے آپ کو اس کے 923 00:45:03,840 --> 00:45:05,250 وصول کنندہ موصول کرنا چاہتے ہیں. 924 00:45:05,250 --> 00:45:07,405 اور اگر میں کسی کو مشرق، اسے بھی حاصل کرتا ہے 925 00:45:07,405 --> 00:45:09,780 آپ کے لئے انہیں نہیں کرنا چاہتا ضروری نہیں کہ یہ بےرمز کرنے کے قابل ہو، 926 00:45:09,780 --> 00:45:12,840 اس کے اندر کی وجہ بلیک باکس، یا الگورتھم، 927 00:45:12,840 --> 00:45:17,650 کچھ طریقہ کار، قدم کی طرف سے کچھ قدم ہے کہ ان پٹ لینے کے لئے دی گئی ہدایات پر، 928 00:45:17,650 --> 00:45:20,710 اور میں تبدیل پیداوار، امید ہے کہ ایک محفوظ طریقے سے. 929 00:45:20,710 --> 00:45:23,640 >> کچھ اور، اصل میں، وہاں ہے اس دنیا میں ذخیرہ الفاظ کے طور پر مندرجہ ذیل ہے. 930 00:45:23,640 --> 00:45:26,100 سادہ متن لفظ ایک ہے کمپیوٹر سائنسدان گے 931 00:45:26,100 --> 00:45:28,449 ان پٹ کو بیان کرنے کے لیے استعمال کرتے ہیں پیغام، انگریزی کی طرح 932 00:45:28,449 --> 00:45:31,240 یا جو کچھ بھی زبان آپ اصل کچھ دیگر انسانی کے لئے بھیجنا چاہتے ہیں. 933 00:45:31,240 --> 00:45:35,450 اور پھر ciphertext کے جدوجہد ہے enciphered کرنے، یا مرموز، 934 00:45:35,450 --> 00:45:36,520 ورژن اسکی. 935 00:45:36,520 --> 00:45:38,750 >> لیکن یہاں ایک دیگر اجزا موجود ہے. 936 00:45:38,750 --> 00:45:43,200 کرنے کے لئے ایک دوسرے ان پٹ نہیں ہے خفیہ کلید خفیہ نگاری. 937 00:45:43,200 --> 00:45:45,200 اور یہ کہ چابی خود ہے، جس میں عام طور پر، ہے، 938 00:45:45,200 --> 00:45:48,930 ہم دیکھیں گے کے طور پر، ایک بڑی تعداد، یا خط، یا لفظ، جو بھی 939 00:45:48,930 --> 00:45:51,980 الگورتھم یہ اصل میں ہے توقع رکھتا ہے. 940 00:45:51,980 --> 00:45:53,870 >> اور تم معلومات کس بےرمز کرتے ہیں؟ 941 00:45:53,870 --> 00:45:55,110 تم اسے کس طرح سلجھائیں کرتے ہیں؟ 942 00:45:55,110 --> 00:45:57,950 ویسے، آپ کو صرف ریورس اخراج اور آدانوں. 943 00:45:57,950 --> 00:46:00,900 >> دوسرے الفاظ میں کسی نے ایک بار، آپ خفیہ کردہ پیغام، وصول کرتا 944 00:46:00,900 --> 00:46:03,740 وہ یا وہ بس ہے کہ ایک ہی چابی کو جاننے کی. 945 00:46:03,740 --> 00:46:05,700 انہوں ciphertext کے موصول ہوئی ہے. 946 00:46:05,700 --> 00:46:09,530 اور ان دونوں plugging کی طرف سے خفیہ نظام میں آدانوں، 947 00:46:09,530 --> 00:46:14,260 الگورتھم، یہ بلیک باکس، باہر اصل سادہ متن آنا چاہئے. 948 00:46:14,260 --> 00:46:17,830 اور تو ہے کہ بہت ہی اعلی سطح ہے کیا خفیہ نگاری اصل میں ہے کے نقطہ نظر 949 00:46:17,830 --> 00:46:18,590 سب کے بارے میں. 950 00:46:18,590 --> 00:46:20,030 >> تو وہاں حاصل کرنے کی اجازت. 951 00:46:20,030 --> 00:46:22,700 اب نیچے نظر کرتے ہیں کسی چیز کے ڈاکو 952 00:46:22,700 --> 00:46:26,000 حاصل کی جاچکی کے لئے ہم لے جا رہا ہوں گزشتہ ہفتے، اور اس کے لئے اس سیشن 953 00:46:26,000 --> 00:46:27,629 سٹرنگ یہاں. 954 00:46:27,629 --> 00:46:30,295 دن کے آخر میں ایک سٹرنگ صرف حروف کا ایک تسلسل ہے. 955 00:46:30,295 --> 00:46:33,610 >> یہ خوش دنیا ہو، یا ہو سکتا ہے ہیلو کیا Zamyla، یا جو کچھ بھی. 956 00:46:33,610 --> 00:46:37,050 لیکن اس کا کیا مطلب ہے حروف کی ترتیب ہو جائے؟ 957 00:46:37,050 --> 00:46:41,520 سچ تو یہ ہے، CS50 لائبریری دیتا ہے ہمارے سٹرنگ کے نام سے ایک ڈیٹا کی قسم. 958 00:46:41,520 --> 00:46:45,140 >> لیکن کوئی اصل نہیں ہے سی میں ایک تار کے طور پر ایسی چیز 959 00:46:45,140 --> 00:46:49,450 یہ واقعی میں سے صرف ایک ہی تسلسل ہے کردار، کردار، کردار، 960 00:46:49,450 --> 00:46:52,180 کردار، واپس، کرنے، واپس کرنے کے لئے واپس، اس کے اندر واپس کرنے کے لئے واپس کرنے کے لئے 961 00:46:52,180 --> 00:46:54,650 آپ کے کمپیوٹر کی میموری، یا RAM کی. 962 00:46:54,650 --> 00:46:58,940 اور ہم میں ہے کہ میں گہری نظر کروں گا مستقبل ہم میموری خود پر نظر ڈالیں تو، 963 00:46:58,940 --> 00:47:02,030 اور استعمال، اور دھمکیوں ملوث ہیں. 964 00:47:02,030 --> 00:47:04,100 >> لیکن سٹرنگ کیا Zamyla پر غور کرتے ہیں. 965 00:47:04,100 --> 00:47:07,480 کا تو صرف نام یہاں انسانی، کیا Zamyla، 966 00:47:07,480 --> 00:47:12,030 اس کی ایک ہی تسلسل ہے حروف، Z-A-M-Y-L-A. 967 00:47:12,030 --> 00:47:16,020 اور اب فرض کرتے ہیں کہ کیا Zamyla کا نام ایک کمپیوٹر کے اندر ذخیرہ کیا جا رہا ہے 968 00:47:16,020 --> 00:47:16,880 پروگرام. 969 00:47:16,880 --> 00:47:20,830 >> ٹھیک ہے، یہ ہمیں چاہئے کہ وجہ سے کھڑا ہے ان حروف کو دیکھنے کے لئے کے قابل ہو جائے 970 00:47:20,830 --> 00:47:21,590 انفرادی طور پر. 971 00:47:21,590 --> 00:47:24,710 تو میں صرف ایک چھوٹا سا اپنی طرف متوجہ کرنے کے لئے جا رہا ہوں یہاں کیا Zamyla کا نام ارد گرد کے باکس. 972 00:47:24,710 --> 00:47:31,580 اور یہ سی میں معاملہ ہے جب تم نے اس Zamyla-- اور شاید کی طرح، ایک تار ہے 973 00:47:31,580 --> 00:47:34,940 اس سٹرنگ سے واپس آ گیا ہے، حاصل سٹرنگ طرح ایک تقریب، 974 00:47:34,940 --> 00:47:38,540 آپ اصل میں جوڑتوڑ کر سکتے ہیں کردار کی طرف سے اس کے کردار. 975 00:47:38,540 --> 00:47:42,070 >> اب، اس کے لئے germane ہے ہاتھ میں، کیونکہ گفتگو 976 00:47:42,070 --> 00:47:46,420 خفیہ نگاری میں آپ کو تبدیل کرنا چاہتے ہیں A B کرنے کے لئے، اور B C کرنے کے لئے، اور ڈی سی، 977 00:47:46,420 --> 00:47:49,650 اور تو آگے، آپ کے قابل ہونے کی ضرورت ہے انفرادی حروف کو دیکھنے کے لئے 978 00:47:49,650 --> 00:47:50,190 ایک تار میں. 979 00:47:50,190 --> 00:47:52,695 آپ کو تبدیل کرنے کے قابل ہو جائے کرنے کی ضرورت ہے کچھ اور، A سے Z 980 00:47:52,695 --> 00:47:55,280 کچھ اور، M کرنے ورنہ، اور اسی طرح کی کوئی چیز. 981 00:47:55,280 --> 00:47:58,000 اور اس طرح ہم ایک طریقہ کی ضرورت، پروگرام، تاکہ 982 00:47:58,000 --> 00:48:03,020 ، بات کرنے کے لئے C میں تبدیل کرنے کے قابل ہو جائے کرنے کے اور انفرادی خطوط میں نظر آتے ہیں. 983 00:48:03,020 --> 00:48:05,690 مندرجہ ذیل کے طور پر اور ہم ایسا کر سکتے ہیں. 984 00:48:05,690 --> 00:48:08,340 >> مجھے CS50 IDE میں واپس سربراہ چلتے ہیں. 985 00:48:08,340 --> 00:48:11,130 اور مجھے آگے جانے دو اور ایک نئی فائل بنانے 986 00:48:11,130 --> 00:48:16,134 کہ میں اس وقت string0 بلاتا ہوں، ہماری پہلی مثال کے طور پر، سی ڈاٹ. 987 00:48:16,134 --> 00:48:18,300 اور میں آگے جانے کے لئے جا رہا ہوں اور مندرجہ ذیل کے طور پر اس کی تحریک دیں. 988 00:48:18,300 --> 00:48:22,870 >> تو cs50.h شامل ہیں، اور پھر معیاری io.h شامل، 989 00:48:22,870 --> 00:48:25,990 جس میں تقریبا ہمیشہ کے لئے جا رہا ہوں کم از کم، میری پروگراموں میں استعمال کیا جائے 990 00:48:25,990 --> 00:48:26,780 ابتدائی طور پر. 991 00:48:26,780 --> 00:48:32,180 اہم باطل int کی، اور پھر یہاں ہوں ڈور کیا کرنے جا تار حاصل ہو جاتا ہے. 992 00:48:32,180 --> 00:48:35,260 اور پھر میں جا رہا ہوں آگے بڑھو اور اس کے کیا. 993 00:48:35,260 --> 00:48:37,460 میں آگے جانے کے لئے چاہتے ہیں اور، وویک چیک کے طور پر، 994 00:48:37,460 --> 00:48:43,607 صرف اتنا کہنا، ہیلو، فیصد ے، نیم بڑی آنت، سٹرنگ 0 ہوتا ہے. 995 00:48:43,607 --> 00:48:44,690 افوہ، میں یہاں کیا کیا؟ 996 00:48:44,690 --> 00:48:45,930 اوہ، میں نے اس میں پلگ نہیں کیا. 997 00:48:45,930 --> 00:48:48,120 تو سبق، معلوم ہوا ہے کہ جان بوجھ کر نہیں کیا گیا تھا. 998 00:48:48,120 --> 00:48:52,480 >> تو غلطی، زیادہ فیصد اعداد و شمار کے دلائل سے زیادہ تبادلوں کو. 999 00:48:52,480 --> 00:48:54,940 اور اس میں، کہاں ہے لکیر 7-- ٹھیک ہے، تو میں نے کیا، 1000 00:48:54,940 --> 00:48:56,690 unquote جو اقتباس، کہ ہے printf کے کرنے کے لئے میری سٹرنگ. 1001 00:48:56,690 --> 00:48:58,151 میں نے ایک فیصد کی علامت ہے مل گیا ہے. 1002 00:48:58,151 --> 00:48:59,650 لیکن میں دوسری دلیل یاد آ رہی ہے. 1003 00:48:59,650 --> 00:49:03,190 >> I کوما ایس، یاد آ رہی ہے جس میں میں نے پچھلے مثالوں میں ضرورت تھی. 1004 00:49:03,190 --> 00:49:06,650 لہذا ایک اچھا موقع کو ٹھیک کرنے ایک اور غلطی، اتفاقی طور پر. 1005 00:49:06,650 --> 00:49:09,950 اور اب مجھے چلانے کے کیا Zamyla میں string0، قسم. 1006 00:49:09,950 --> 00:49:10,970 ہیلو، OK کیا Zamyla. 1007 00:49:10,970 --> 00:49:14,144 >> تو ہم نے اس پروگرام کی اس قسم کو چلائے گئے اب چند مختلف اوقات. 1008 00:49:14,144 --> 00:49:16,310 لیکن کچھ کرنے دو اس وقت تھوڑا مختلف. 1009 00:49:16,310 --> 00:49:19,450 اس کی بجائے صرف کیا Zamyla کی پرنٹنگ کے printf کے ساتھ باہر پورے نام، 1010 00:49:19,450 --> 00:49:21,350 کے کردار کی طرف سے اس کردار کو کرنے دو. 1011 00:49:21,350 --> 00:49:22,700 >> میں لوپ کے لئے ایک استعمال کرنے کے لئے جا رہا ہوں. 1012 00:49:22,700 --> 00:49:26,160 اور میں اپنے آپ کو دینے کے لئے جا رہا ہوں ایک گنتی متغیر، میں نے بلایا. 1013 00:49:26,160 --> 00:49:33,530 اور میں iterating کو رکھنے کے لئے جا رہا ہوں، تو جب تک میں ے کی لمبائی سے بھی کم ہے کے طور پر. 1014 00:49:33,530 --> 00:49:35,930 >> یہ پتہ چلا ہے، ہم نے نہیں کیا یہ آخری وقت کرتے ہیں، 1015 00:49:35,930 --> 00:49:39,100 کہ سی ایک کے ساتھ آتا ہے تقریب سٹرلنگ بلایا. 1016 00:49:39,100 --> 00:49:42,690 دن میں واپس، اور میں جنرل اب بھی افعال پر عمل درآمد کرتے وقت، 1017 00:49:42,690 --> 00:49:45,405 انسان اکثر بہت منتخب کریں گے succinct کے ناموں آواز کی اس طرح 1018 00:49:45,405 --> 00:49:48,280 آپ کیا چاہتے ہیں، یہ ہے کہ اگرچہ طرح چند سر یا حروف لاپتہ. 1019 00:49:48,280 --> 00:49:50,660 لہذا سٹرلنگ ہے ایک تقریب کے نام کہ 1020 00:49:50,660 --> 00:49:53,880 کے درمیان ایک دلیل لیتا ہے قوسین ایک تار ہونا چاہئے. 1021 00:49:53,880 --> 00:49:56,910 اور یہ صرف ایک عددی واپس، کہ سٹرنگ کی لمبائی. 1022 00:49:56,910 --> 00:50:00,580 >> 7 لائن پر لوپ کے لئے یہ کتنا ہو رہا ہے میں نے برابر میں 0 گنتی شروع کرنے کے لئے. 1023 00:50:00,580 --> 00:50:02,530 یہ اضافہ کرنے جا رہا ہے ہر iteration پر مجھے 1024 00:50:02,530 --> 00:50:04,350 1 کی طرف سے، ہم چند بار کر رہا ہوں کے طور پر. 1025 00:50:04,350 --> 00:50:06,780 لیکن یہ صرف کیا جا رہا ہے یہ نقطہ تک 1026 00:50:06,780 --> 00:50:09,660 میں لمبائی ہے جب سٹرنگ خود کی. 1027 00:50:09,660 --> 00:50:14,520 >> تو یہ بالآخر، کا ایک طریقہ ہے، کرداروں پر iterating 1028 00:50:14,520 --> 00:50:17,430 تار میں کے طور پر مندرجہ ذیل. 1029 00:50:17,430 --> 00:50:20,670 میں نے ایک باہر پرنٹ کرنے کے لئے نہیں جا رہا ہوں پورے سٹرنگ، لیکن فیصد C، 1030 00:50:20,670 --> 00:50:22,860 ایک کردار ایک نئی سطر کے بعد کیا. 1031 00:50:22,860 --> 00:50:24,880 اور پھر میں جا رہا ہوں آگے بڑھو، اور مجھے اس کی ضرورت 1032 00:50:24,880 --> 00:50:29,080 میں پرنٹ کرنا چاہتے ہیں کہنے کے لئے ے کی ith کردار. 1033 00:50:29,080 --> 00:50:33,450 >> میں متغیر کی طرف اشارہ کرتا ہے اگر تو سٹرنگ، جہاں کی انڈیکس 1034 00:50:33,450 --> 00:50:37,230 آپ اس میں، میں نے کرنے کے قابل ہونے کی ضرورت ہے کر رہے ہیں مجھ ے کے ith کردار دے، کہتے ہیں. 1035 00:50:37,230 --> 00:50:40,390 اور C کرنے کا ایک طریقہ ہے مربع بریکٹ کے ساتھ اس. 1036 00:50:40,390 --> 00:50:43,679 آپ کو صرف کے نام کا کہنا ہے کہ سٹرنگ، اس معاملے میں کی ہے جس میں. 1037 00:50:43,679 --> 00:50:46,970 تو پھر تم مربع بریکٹ، جو ہیں کا استعمال کرتے ہیں عام طور پر صرف آپ کی واپسی یا درج مندرجہ بالا 1038 00:50:46,970 --> 00:50:48,110 کی بورڈ پر کلید. 1039 00:50:48,110 --> 00:50:52,410 اور پھر آپ کے انڈیکس ڈال آپ کو پرنٹ کرنا چاہتے ہیں کہ کردار. 1040 00:50:52,410 --> 00:50:55,960 تو انڈیکس ایک ہونے جا رہا ہے نمبر کا 0، یا 1، یا 2، یا 3، یا ڈاٹ، 1041 00:50:55,960 --> 00:50:57,590 ڈوٹ، ڈوٹ، کچھ دوسرے نمبر. 1042 00:50:57,590 --> 00:51:00,920 >> اور ہم یقینی بنائیں کہ یہ جا رہا ہے کہ ، صحیح تعداد ہو کیونکہ میں 1043 00:51:00,920 --> 00:51:02,360 0 میں گنتی شروع. 1044 00:51:02,360 --> 00:51:07,020 اور ڈیفالٹ کی طرف، سب سے پہلے کردار ایک تار میں کنونشن 0 کی طرف سے ہے. 1045 00:51:07,020 --> 00:51:09,230 اور دوسرا کردار بریکٹ 1 ہے. 1046 00:51:09,230 --> 00:51:11,120 اور تیسرا کردار بریکٹ 2 ہے. 1047 00:51:11,120 --> 00:51:13,630 اور تم بھی جانے کے لئے نہیں کرنا چاہتے اب تک، لیکن ہم ہیں کیونکہ نہیں ہوں گے 1048 00:51:13,630 --> 00:51:17,780 صرف یہ کہ جب تک میں اضافہ کرنے کے لئے جا تار کی لمبائی کے برابر ہے. 1049 00:51:17,780 --> 00:51:20,210 اور جس موڑ پر، لوپ کے لئے اس کو روک دے گا. 1050 00:51:20,210 --> 00:51:25,550 >> تو مجھے آگے بڑھو اور اس کو بچانے کے پروگرام، اور رن سٹرنگ 0 بنانے. 1051 00:51:25,550 --> 00:51:28,400 لیکن میں مصیبت. 1052 00:51:28,400 --> 00:51:35,390 لپیٹ لائبریری تقریب اعلان قسم طرح ساتھ سٹرلنگ اور اب such--، 1053 00:51:35,390 --> 00:51:36,430 اس واقف لگتا. 1054 00:51:36,430 --> 00:51:37,440 لیکن یہ printf نہیں ہے. 1055 00:51:37,440 --> 00:51:38,540 اور یہ تار حاصل نہیں ہے. 1056 00:51:38,540 --> 00:51:40,480 >> میں اندر بگاڑ نہیں تھا اسی طرح سے اس وقت. 1057 00:51:40,480 --> 00:51:45,100 لیکن نیچے ایک چھوٹا سا یہاں نیچے نوٹس اس کے علاوہ، ہیڈر string.h کے شامل ہیں، 1058 00:51:45,100 --> 00:51:47,210 واضح طور پر فراہم کرتے ہیں سٹرلنگ لئے ڈیکلریشن. 1059 00:51:47,210 --> 00:51:48,820 تو اصل میں وہاں ایک اشارہ ہے. 1060 00:51:48,820 --> 00:51:51,670 >> اور یقینا یہ پتہ چلتا ہے ایک اور ہیڈر فائل موجود ہے 1061 00:51:51,670 --> 00:51:53,970 ہم نے استعمال نہیں کیا ہے کہ کلاس میں ابھی تک، یہ بلکہ ہے 1062 00:51:53,970 --> 00:51:56,480 آپ ان لوگوں میں شامل آپ کے لئے، کہا جاتا string.h کو. 1063 00:51:56,480 --> 00:52:00,930 اور وہ فائل، string.h کے میں سٹرلنگ قرار دے دیا ہے. 1064 00:52:00,930 --> 00:52:05,220 تو مجھے آگے بڑھو اور اس کو بچانے کے، سٹرنگ بنانے 1065 00:52:05,220 --> 00:52:08,040 0-- اچھا، کوئی خرابی کے پیغامات اس وقت. 1066 00:52:08,040 --> 00:52:12,290 >> ./string0 کیا Zamyla، اور I، درج کریں مارا والا ہوں 1067 00:52:12,290 --> 00:52:16,710 جس میں نقطہ GetString کے لئے جا رہی ہے سٹرنگ واپس کرنے، ے میں ڈال. 1068 00:52:16,710 --> 00:52:21,890 لوپ کے لئے iterate کرنے جا رہا ہے پھر اس ایک وقت میں سے زیادہ S کے کرداروں میں سے ایک، 1069 00:52:21,890 --> 00:52:28,420 اور ان کو ایک لائن میں ایک پرنٹ، کیونکہ میں نے آخر میں ہے کہ (ن) تھا. 1070 00:52:28,420 --> 00:52:34,530 تو میں نے الٹا سلیش ترک کر سکتا ہے N، اور پھر صرف کیا Zamyla تمام پرنٹ 1071 00:52:34,530 --> 00:52:37,460 ایک ہی لائن میں، مؤثر طریقے reimplementing 1072 00:52:37,460 --> 00:52:38,999 printf کے، جس میں تمام کہ مفید نہیں ہے. 1073 00:52:38,999 --> 00:52:40,540 لیکن اس معاملے میں، میں نے کر دیا ہے نہیں. 1074 00:52:40,540 --> 00:52:43,610 میں نے اصل میں ایک چھپی ہوئی کیا ہے ایک وقت میں کردار، فی سطر ایک، 1075 00:52:43,610 --> 00:52:45,400 تو ہم اصل اثر دیکھتے ہیں کہ. 1076 00:52:45,400 --> 00:52:46,900 >> لیکن میں یہاں ایک بات نوٹ کرنا چاہئے. 1077 00:52:46,900 --> 00:52:48,930 اور ہم واپس آ جائیں گے ایک مستقبل ہفتے میں یہ. 1078 00:52:48,930 --> 00:52:52,650 یہ اس کہ باہر کر دیتا کوڈ ممکنہ طور پر چھوٹی گاڑی ہے. 1079 00:52:52,650 --> 00:52:56,560 >> واضح رہے کہ حاصل سٹرنگ باہر کر دیتا ہے اور زندگی میں کچھ دیگر افعال 1080 00:52:56,560 --> 00:53:00,280 ضروری نہیں کہ ہمیشہ ایسا نہیں کرتے آپ توقع کر رہے ہیں کیا واپس آ جائیں. 1081 00:53:00,280 --> 00:53:03,010 ہم نے گزشتہ کلاس سے جانتے یہ حاصل ہے کہ میں وقت 1082 00:53:03,010 --> 00:53:04,960 سٹرنگ ایک تار واپس کرنے کی توقع کی جاتی ہے. 1083 00:53:04,960 --> 00:53:09,900 لیکن کیا اس طرح باہر صارف اقسام تو ایک طویل لفظ، یا پیراگراف، یا مضمون 1084 00:53:09,900 --> 00:53:13,010 صرف کافی نہیں ہے کہ وہاں کمپیوٹر میں میموری فٹ ہونے کے لئے. 1085 00:53:13,010 --> 00:53:15,410 >> کی طرح، کیا کچھ ہو جاتا ہے تو ہڈ کے نیچے غلط؟ 1086 00:53:15,410 --> 00:53:18,400 یہ اکثر ایسا نہیں ہو سکتا لیکن یہ ایک بار ہو سکتا ہے 1087 00:53:18,400 --> 00:53:21,520 تھوڑی دیر میں، بہت بہت کم ہے. 1088 00:53:21,520 --> 00:53:25,460 چنانچہ جب حاصل سٹرنگ باہر کر دیتا ہے اور اس طرح کے افعال ضروری نہیں کہ ایسا 1089 00:53:25,460 --> 00:53:26,380 ہمیشہ ڈور واپس. 1090 00:53:26,380 --> 00:53:30,680 انہوں نے کچھ غلط قدر واپس کر سکتے ہیں، کچھ پرہری قدر تو بات کرنے 1091 00:53:30,680 --> 00:53:32,612 کہ اشارہ کرتا ہے کچھ غلط چلا گیا ہے. 1092 00:53:32,612 --> 00:53:35,320 اور اگر تم صرف اس سے پتہ چلے گا اب یہ کلاس میں سیکھا ہے، 1093 00:53:35,320 --> 00:53:37,700 یا کچھ مزید دستاویزات پڑھ کر. 1094 00:53:37,700 --> 00:53:43,120 واضح رہے کہ حاصل سٹرنگ باہر کر دیتا ہے شہوت انگیز null کے نام سے ایک قدر واپس کر سکتے ہیں. 1095 00:53:43,120 --> 00:53:46,220 شہوت انگیز null ایک خاص قدر ہے کہ ہم کریں گے ایک مستقبل ہفتے میں پر واپس آنا. 1096 00:53:46,220 --> 00:53:50,420 لیکن اب کے لئے، صرف میں چاہتا ہوں کہ اگر جانتے آگے بڑھنے میں بہت مناسب ہونے کا 1097 00:53:50,420 --> 00:53:52,650 حاصل سٹرنگ کا استعمال کرتے ہوئے، میں نے صرف اسے فون نہیں کرنا چاہئے، 1098 00:53:52,650 --> 00:53:56,870 اور آنکھ بند کر کے اس کی واپسی قیمت کا استعمال، بھروسہ کرنے یہ ایک تار ہے. 1099 00:53:56,870 --> 00:53:59,420 >> میں نے پہلی، کہنا چاہئے ارے، صرف، ایک منٹ انتظار کرو 1100 00:53:59,420 --> 00:54:03,380 ے برابر نہیں کرتا ہے تو آگے بڑھنے کے شہوت انگیز null، جہاں کالعدم، دوبارہ، 1101 00:54:03,380 --> 00:54:04,660 صرف کچھ خاص قدر ہے. 1102 00:54:04,660 --> 00:54:07,770 اور یہ صرف خصوصی قیمت ہے آپ کو حاصل سٹرنگ کے بارے میں فکر کرنے کی ضرورت ہے. 1103 00:54:07,770 --> 00:54:10,900 سٹرنگ یا تو جا رہا ہے حاصل کریں ایک تار یا شہوت انگیز null واپس کرنے. 1104 00:54:10,900 --> 00:54:17,219 >> اور یہ فجائیہ نقطہ برابر دستخط آپ کو شاید ریاضی کلاس سے معلوم ہو سکتا ہے 1105 00:54:17,219 --> 00:54:20,510 آپ کے ساتھ ایک برابر علامت کو اپنی طرف متوجہ کر سکتے ہیں کہ اس کے ذریعے ایک لکیر کے برابر نہیں اس بات کی نشاندہی کرنے کے لئے. 1106 00:54:20,510 --> 00:54:23,135 یہ عام طور پر ایک کردار نہیں ہے آپ اپنے کی بورڈ پر ٹائپ کر سکتے ہیں. 1107 00:54:23,135 --> 00:54:26,480 اور اس طرح سب سے زیادہ پروگرامنگ زبانوں میں، آپ کے برابر نہیں کہنا چاہتا ہوں جب، 1108 00:54:26,480 --> 00:54:29,160 اگر آپ کو ایک فجائیہ نقطہ کا استعمال، دوسری صورت میں دھماکے کی آواز کے طور پر جانا. 1109 00:54:29,160 --> 00:54:33,180 تو آپ کو بنگ، برابر کہتے ہو منطقی طور پر، برابر نہیں کا مطلب ہے. 1110 00:54:33,180 --> 00:54:38,060 یہ ایک بڑا وہاں نہیں ہے صرف کی طرح ہے مقابلے، یا اس کے برابر، یا سے کم 1111 00:54:38,060 --> 00:54:41,270 یا برابر اپنے کی بورڈ پر کلید کے لیے کہ کسی ایک علامت میں یہ سب کرتا ہے. 1112 00:54:41,270 --> 00:54:44,020 تو یہ کیوں ہے، ماضی مثالوں میں، کیا تم چاہو اوپن بریکٹ کیا، اور اس کے بعد 1113 00:54:44,020 --> 00:54:48,670 ایک برابر علامت، کے لئے کیا کرنے یا اس سے زیادہ،، کا کہنا ہے کہ مقابلے میں کم. 1114 00:54:48,670 --> 00:54:49,910 >> لہذا takeaway ہے یہاں کیا ہے؟ 1115 00:54:49,910 --> 00:54:53,880 یہ بس اب کا ایک طریقہ ہے اس نحو متعارف کرانے، اس خصوصیت، 1116 00:54:53,880 --> 00:54:57,390 فرد پر iterating ایک سٹرنگ میں حروف. 1117 00:54:57,390 --> 00:55:00,260 اور صرف ان لوگوں مربع طرح بریکٹ، آپ کو ان پر حاصل کرنے کے لئے کی اجازت دیتے ہیں 1118 00:55:00,260 --> 00:55:03,790 کے طور پر ان مربع بریکٹ غور قسم یہ بنیادی اشارہ 1119 00:55:03,790 --> 00:55:06,040 ڈیزائن، جس کے تحت ہر ایک تار کے اندر کردار 1120 00:55:06,040 --> 00:55:10,180 قسم کے نیچے کہیں میں boxed جاتا ہے آپ کے کمپیوٹر کی میموری میں ڈاکو. 1121 00:55:10,180 --> 00:55:12,340 >> لیکن اس کی ایک مختلف بنانے کے لئے ہیں. 1122 00:55:12,340 --> 00:55:14,880 یہ اس کہ باہر کر دیتا پروگرام درست ہے. 1123 00:55:14,880 --> 00:55:18,810 CS50 کی محور فی پس جائزہ لینے کے لئے کوڈ، اب یہ درست ہے. 1124 00:55:18,810 --> 00:55:22,959 خاص طور پر اب کہ میں نے کے لئے جانچ پڑتال کر رہا ہوں شہوت انگیز null، اس پروگرام کریش نہیں کرنا چاہئے. 1125 00:55:22,959 --> 00:55:24,500 اور میں صرف تجربے سے جانتے ہیں کہ. 1126 00:55:24,500 --> 00:55:28,040 لیکن اس کے اور کچھ نہیں ہے ہم واقعی غلط کر سکتے ہیں. 1127 00:55:28,040 --> 00:55:31,860 لیکن یہ بہت، اچھی طرح سے ڈیزائن نہیں ہے کیونکہ بنیادی باتیں کرنے کے لئے واپس جانے دو. 1128 00:55:31,860 --> 00:55:34,450 >> سب سے پہلے، principles-- لوپ کے لئے ایک کیا کرتا ہے؟ 1129 00:55:34,450 --> 00:55:36,290 لوپ کے لئے ایک تین باتیں کرتا ہے. 1130 00:55:36,290 --> 00:55:39,340 یہ کچھ initializes ہے قدر، تم سے یہ پوچھنا ہے تو. 1131 00:55:39,340 --> 00:55:41,770 یہ ایک شرط چیک کرتا ہے. 1132 00:55:41,770 --> 00:55:45,380 اور پھر بعد ہر iteration کے، ہر ایک سائیکل کے بعد، 1133 00:55:45,380 --> 00:55:49,330 یہ کچھ ہے increments قدر، یا اقدار، یہاں. 1134 00:55:49,330 --> 00:55:50,600 >> تو اس کا کیا مطلب ہے؟ 1135 00:55:50,600 --> 00:55:52,940 ہم میں 0 ابتدا. 1136 00:55:52,940 --> 00:55:58,610 ہم چیک کریں اور بنانے یقین ہے کہ میں بھی کم ہے ے کی لمبائی، Z-A-M-Y-L-A ہے جو، 1137 00:55:58,610 --> 00:55:59,900 اتنی کم 6 ہے جو. 1138 00:55:59,900 --> 00:56:02,590 اور، یقینا، 0 کم 6 کے طور پر. 1139 00:56:02,590 --> 00:56:05,580 >> ہم کیا Zamyla کے نام سے Z باہر پرنٹ. 1140 00:56:05,580 --> 00:56:08,080 پھر ہم 0 سے 1 تک میں اضافہ. 1141 00:56:08,080 --> 00:56:11,290 پھر ہم نے، چیک 1 کم ہے ے کی لمبائی سے؟ 1142 00:56:11,290 --> 00:56:13,270 ے کی لمبائی 6 ہے. 1143 00:56:13,270 --> 00:56:13,950 جی ہاں، یہ ہے. 1144 00:56:13,950 --> 00:56:16,880 >> تو ہم کیا Zamyla کا نام، ZA میں ایک پرنٹ. 1145 00:56:16,880 --> 00:56:20,090 ہم میں سے 0، 1، 2 کرنے کے اضافہ. 1146 00:56:20,090 --> 00:56:23,720 پھر ہم نے، چیک کے مقابلے میں 2 کم ہے کیا Zamyla کے نام کی لمبائی. 1147 00:56:23,720 --> 00:56:25,380 6- تا 2 کم 6 ہے. 1148 00:56:25,380 --> 00:56:30,460 جی ہاں، میں M اب کو پرنٹ کریں کیا Zamyla کا نام، تیسرا کردار. 1149 00:56:30,460 --> 00:56:34,110 >> اہم یہاں ہر ایک پر یہ ہے کہ کہانی کا تکرار، میں کر رہا ہوں، 1150 00:56:34,110 --> 00:56:37,810 میں کیا Zamyla کی لمبائی سے بھی کم ہے؟ 1151 00:56:37,810 --> 00:56:40,350 لیکن پکڑنے ہے کہ اسٹرلنگ ایک جائیداد نہیں ہے. 1152 00:56:40,350 --> 00:56:43,100 آپ کے وہ لوگ ہیں جنہوں نے پروگرام کیا اعلی درجے کا Java یا دیگر زبانوں میں اس سے پہلے 1153 00:56:43,100 --> 00:56:46,310 ایک تار ہے کی طوالت معلوم ہو سکتا ہے ایک پراپرٹی، صرف کچھ صرف قدر پڑھ. 1154 00:56:46,310 --> 00:56:50,220 >> اس معاملے میں C میں، یہ ہے کہ اگر لفظی ہے کہ ایک تقریب 1155 00:56:50,220 --> 00:56:53,520 کی تعداد کے حساب ہر بار کیا Zamyla میں حروف 1156 00:56:53,520 --> 00:56:54,740 ہم اس تقریب کو فون. 1157 00:56:54,740 --> 00:56:58,500 ہر بار جب آپ کو استعمال کرنے کے لئے کمپیوٹر سے پوچھیں سٹرلنگ، یہ، کیا Zamyla پر ایک نظر لے جا رہا ہے 1158 00:56:58,500 --> 00:57:01,960 اور کہہ Z-A-M-Y-L-A، 6. 1159 00:57:01,960 --> 00:57:02,962 اور یہ 6 لوٹتا. 1160 00:57:02,962 --> 00:57:04,920 اگلی بار جب آپ کو فون لوپ کے لئے اس کے اندر، 1161 00:57:04,920 --> 00:57:08,610 یہ کیا Zamyla کو دیکھنے کے لئے جا رہا ہے ایک بار پھر، کا کہنا ہے کہ Z-A-M-Y-L-A، 6. 1162 00:57:08,610 --> 00:57:10,320 اور اس کو واپس کرنے کے لئے 6 ہو رہا ہے. 1163 00:57:10,320 --> 00:57:12,980 تو یہ ڈیزائن کے بارے میں بیوکوف کیا ہے؟ 1164 00:57:12,980 --> 00:57:17,700 >> کیوں میرا کوڈ نہیں ایک سے باہر 5 کے 5 ہے حق اب ڈیزائن کے لئے، تو بات کرنے کے لئے؟ 1165 00:57:17,700 --> 00:57:20,600 ٹھیک ہے، میں پوچھ رہا ہوں ایک بیکار میں سوال. 1166 00:57:20,600 --> 00:57:23,030 مجھے ضرورت سے زیادہ میں زیادہ کام کر رہا ہوں. 1167 00:57:23,030 --> 00:57:25,370 >> تو اگرچہ اس سوال کا جواب ہاں میں ہوں، درست ہے 1168 00:57:25,370 --> 00:57:29,560 کمپیوٹر سے پوچھ، کیا ہے کیا Zamyla کی طوالت دوبارہ، 1169 00:57:29,560 --> 00:57:31,380 اور ایک بار پھر، اور پھر سے، اور پھر سے؟ 1170 00:57:31,380 --> 00:57:33,980 اور یہ کہ جواب ہے کبھی نہیں تبدیل کرنے جا رہا. 1171 00:57:33,980 --> 00:57:35,900 یہ ہمیشہ 6 ہو رہا ہے. 1172 00:57:35,900 --> 00:57:39,730 >> لہذا اس سے بہتر حل اس کے اگلے ورژن ہو گا. 1173 00:57:39,730 --> 00:57:43,390 مجھے آگے چلتے ہیں اور ایک میں ڈال دیا string1.c بلایا علیحدہ فائل، 1174 00:57:43,390 --> 00:57:44,990 صرف اسے الگ رکھنے کے لئے. 1175 00:57:44,990 --> 00:57:47,260 اور اس کے لئے ایک میں پتہ چلا لوپ، آپ اصل میں کر سکتے ہیں 1176 00:57:47,260 --> 00:57:50,210 ایک بار میں ایک سے زیادہ متغیر کا اعلان. 1177 00:57:50,210 --> 00:57:53,460 >> تو میں میں رکھنے اور 0 سے اسے قائم کرنے جا رہا ہوں. 1178 00:57:53,460 --> 00:57:56,190 لیکن میں یہ بھی جا رہا ہوں ایک کوما شامل، اور کہتے ہیں، 1179 00:57:56,190 --> 00:58:01,050 مجھے جن ن نامی ایک متغیر، دے قدر ے کی سٹرنگ کی لمبائی کے برابر ہے. 1180 00:58:01,050 --> 00:58:09,410 اور اب، براہ مہربانی میری حالت بنانے اتنی دیر میں (ن) سے بھی کم ہے کے طور پر. 1181 00:58:09,410 --> 00:58:14,140 >> تو اس طرح میں، منطق ہے دن کے آخر میں ایک جیسی. 1182 00:58:14,140 --> 00:58:18,280 لیکن مجھے یاد کر رہی ہوں 6 قیمت، اس معاملے میں. 1183 00:58:18,280 --> 00:58:19,780 کیا Zamyla کے نام کی لمبائی کیا ہے؟ 1184 00:58:19,780 --> 00:58:20,860 اور مجھے ن میں ڈال رہا ہوں. 1185 00:58:20,860 --> 00:58:23,050 >> اور میں اب بھی کر رہا ہوں. شرط ہر بار. 1186 00:58:23,050 --> 00:58:24,300 0 6 سے کم ہے؟ 1187 00:58:24,300 --> 00:58:25,600 1 6 سے کم ہے؟ 1188 00:58:25,600 --> 00:58:28,600 6 کے مقابلے میں 2 سے کم، اور تو آگے ہے؟ 1189 00:58:28,600 --> 00:58:31,914 >> لیکن میں کمپیوٹر نہیں پوچھ رہا ہوں پھر، اور پھر، کیا ہے 1190 00:58:31,914 --> 00:58:33,080 کیا Zamyla کے نام کی لمبائی؟ 1191 00:58:33,080 --> 00:58:34,320 کیا Zamyla کے نام کی لمبائی کیا ہے؟ 1192 00:58:34,320 --> 00:58:35,986 اس کیا Zamyla کے نام کی لمبائی کیا ہے؟ 1193 00:58:35,986 --> 00:58:40,440 میں لفظی یاد کر رہا ہوں کہ پہلا اور صرف اس دوسرے متغیر (ن) میں جواب دے. 1194 00:58:40,440 --> 00:58:45,280 تو یہ اب نہ صرف ہو جائے گا صحیح، لیکن یہ بھی اچھی طرح سے ڈیزائن. 1195 00:58:45,280 --> 00:58:46,670 >> اب، سٹائل کے بارے میں کیا؟ 1196 00:58:46,670 --> 00:58:48,866 میں نے اپنی متغیر کا نام ہے بہت اچھی، میں کہیں گے. 1197 00:58:48,866 --> 00:58:50,240 وہ ابھی سپر succinct کے ہیں. 1198 00:58:50,240 --> 00:58:52,090 اور یہ کہ مکمل طور پر ٹھیک ہے. 1199 00:58:52,090 --> 00:58:55,120 >> آپ کو صرف ایک ہے تو ایک پروگرام میں سٹرنگ، 1200 00:58:55,120 --> 00:58:56,860 آپ کے طور پر اچھی طرح سے اس سٹرنگ کے لئے S فون کر سکتے ہیں. 1201 00:58:56,860 --> 00:58:59,370 آپ کو صرف ایک متغیر ہے تو ایک پروگرام میں حساب کے لئے، 1202 00:58:59,370 --> 00:59:00,710 آپ کے ساتھ ساتھ یہ میں نے فون کر سکتے ہیں. 1203 00:59:00,710 --> 00:59:03,500 آپ کو ایک کی لمبائی ہے تو، ن اس کے ساتھ ساتھ سپر عام ہے. 1204 00:59:03,500 --> 00:59:05,800 لیکن میں اپنے کوڈ کے کسی بھی تبصرہ نہیں کیا ہے. 1205 00:59:05,800 --> 00:59:09,200 >> I reader-- مطلع نہیں کیا ہے کہ میری TF، یا TA ہے کہ آیا، 1206 00:59:09,200 --> 00:59:12,460 یا صرف سمجھا جاتا ہے colleague-- اس پروگرام میں کیا چل رہا کیا جائے گا. 1207 00:59:12,460 --> 00:59:15,760 اور اتنا اچھا سٹائل حاصل کرنے کے لئے، میں کرنا چاہتا ہوں گے کیا 1208 00:59:15,760 --> 00:59:24,580 this-- کچھ ہے جیسے ان پٹ کے لئے صارف سے پوچھو. 1209 00:59:24,580 --> 00:59:26,670 اور اگر میں دوبارہ سے لکھنا کر سکتے تھے طریقوں میں سے اس سے کسی بھی تعداد. 1210 00:59:26,670 --> 00:59:35,630 >> اس بات کا یقین حاصل کرنے کے اس بات کا یقین s-- سٹرنگ ایک تار واپس آئے. 1211 00:59:35,630 --> 00:59:40,280 اور پھر یہاں میں اور یہ شاید ہے سب سے اہم comment-- میں iterate 1212 00:59:40,280 --> 00:59:44,450 ایک وقت میں سے ایک کے کرداروں کے دوران. 1213 00:59:44,450 --> 00:59:47,060 اور میں نے کسی کو استعمال کر سکتا ہے انگریزی زبان کے انتخاب 1214 00:59:47,060 --> 00:59:49,650 یہاں ہر بیان کرنے کے لیے کوڈ کے ان حصوں میں سے. 1215 00:59:49,650 --> 00:59:52,740 >> میں نے ایک ڈال نہیں ہے کہ نوٹس کوڈ کی ہر لائن پر تبصرہ، 1216 00:59:52,740 --> 00:59:55,690 واقعی دلچسپ پر صرف پیاروں، اپنے پیاروں کہ 1217 00:59:55,690 --> 00:59:59,460 کچھ معنی ہے کہ میں شاید کیا کسی کو سپر واضح بنانا چاہتے ہیں 1218 00:59:59,460 --> 01:00:00,460 میرا کوڈ پڑھنے. 1219 01:00:00,460 --> 01:00:02,920 اور تم کیوں بلا رہے ہیں سٹرنگ ان پٹ کے لئے صارف سے پوچھنا؟ 1220 01:00:02,920 --> 01:00:05,450 یہاں تک کہ کسی ایک ضروری نہیں ہے تمام ہے کہ وضاحتی. 1221 01:00:05,450 --> 01:00:09,340 لیکن یہ ایک کہانی بتا مدد ملتی ہے کیونکہ کہانی میں دوسری لائن کر رہا ہے، براہ کرم یقینی بنائیں 1222 01:00:09,340 --> 01:00:10,740 تار حاصل ایک تار واپس آئے. 1223 01:00:10,740 --> 01:00:14,260 >> اور کہانی میں تیسری لائن، ہے ایک ہے میں حروف پر iterate 1224 01:00:14,260 --> 01:00:15,380 ایک وقت میں. 1225 01:00:15,380 --> 01:00:17,920 اور اب صرف اچھا اقدام کے لئے، میں آگے بڑھو اور شامل کرنے کے لئے جا رہا ہوں 1226 01:00:17,920 --> 01:00:24,560 ایک اور تبصرہ یہ کہ صرف ے پرنٹ کردار میں ویں کہتی. 1227 01:00:24,560 --> 01:00:26,520 اب، کیا میں نے کیا دن کے آخر میں؟ 1228 01:00:26,520 --> 01:00:29,190 >> میں نے کچھ انگریزی شامل کر لیا ہے تبصروں کی شکل میں الفاظ. 1229 01:00:29,190 --> 01:00:32,700 سلیش سلیش علامت کا مطلب ہے، ارے، کمپیوٹر میں اس انسان کے لئے ہے، 1230 01:00:32,700 --> 01:00:33,820 آپ کے لئے نہیں ہے، کمپیوٹر. 1231 01:00:33,820 --> 01:00:35,119 سو انہوں نے منطقی طور پر نظر انداز کر رہے ہیں. 1232 01:00:35,119 --> 01:00:35,910 وہ صرف وہاں ہیں. 1233 01:00:35,910 --> 01:00:39,830 >> اور، یقینا، CS50 IDE ان کے طور پر ظاہر کرتا ہے بال سفید ہو جانا، مفید، لیکن اہم نہیں ہونے کے طور پر 1234 01:00:39,830 --> 01:00:41,000 پروگرام کے لئے. 1235 01:00:41,000 --> 01:00:42,570 اب آپ کیا کر سکتے ہیں نوٹس. 1236 01:00:42,570 --> 01:00:44,950 آپ C جانتے چاہے پروگرامنگ یا نہیں، آپ 1237 01:00:44,950 --> 01:00:47,722 صرف اس کو واپس کھڑے کر سکتے ہیں پروگرام، اور تبصرے ملائی. 1238 01:00:47,722 --> 01:00:50,180 ان پٹ کے لئے صارف سے پوچھو، بات کو یقینی بنانے سٹرنگ ایک تار واپس آئے حاصل، 1239 01:00:50,180 --> 01:00:53,009 ے میں حروف پر iterate ایک وقت میں ایک، کردار کو پرنٹ 1240 01:00:53,009 --> 01:00:55,550 کردار میں ویں s-- میں آپ ایسا نہیں کرتے یہاں تک کہ کوڈ میں نظر ہے 1241 01:00:55,550 --> 01:00:57,270 اس پروگرام کیا کرتا ہے کو سمجھنے کے لئے. 1242 01:00:57,270 --> 01:01:00,280 اور ابھی تک، بہتر، آپ اپنے آپ کو نظر آتے ہیں تو ایک یا دو ہفتے میں اس پروگرام میں، 1243 01:01:00,280 --> 01:01:02,280 یا ایک ماہ، یا ایک سال، تم بھی ضرورت نہیں ہے 1244 01:01:02,280 --> 01:01:04,420 کوڈ گھورتے، یاد کرنے کی کوشش، 1245 01:01:04,420 --> 01:01:06,630 جو میں نے اس کوڈ کے ساتھ کرنے کی کوشش کر رہا تھا؟ 1246 01:01:06,630 --> 01:01:07,770 >> تم نے اپنے آپ سے کہا ہے. 1247 01:01:07,770 --> 01:01:11,660 آپ خود ہی بیان کر دیا ہے، یا کسی ساتھی، یا ٹی اے، یا TF. 1248 01:01:11,660 --> 01:01:14,860 اور اس طرح یہ اب ہو گی درست، اور اچھا ڈیزائن، 1249 01:01:14,860 --> 01:01:18,210 اور بالآخر اچھا سٹائل کے ساتھ ساتھ. 1250 01:01:18,210 --> 01:01:19,990 تو ذہن میں رکھنے کی ہے. 1251 01:01:19,990 --> 01:01:22,200 >> تو دوسرے ایک ہے بات یہ ہے کہ میں یہاں کیا کرنے جا رہا ہوں 1252 01:01:22,200 --> 01:01:28,240 کہ اب بالکل وہی جو ہے ظاہر کر سکتے ہیں ہڈ کے نیچے جا رہا. 1253 01:01:28,240 --> 01:01:30,390 تو یہ خصوصیت ہے C، اور دوسری زبانوں میں، 1254 01:01:30,390 --> 01:01:33,010 کہا جاتا typecasting سے کہ یا تو لپیٹ 1255 01:01:33,010 --> 01:01:37,250 یا واضح طور پر آپ کو تبدیل کرنے کی اجازت دیتا دوسرے ایک ڈیٹا کی قسم سے. 1256 01:01:37,250 --> 01:01:39,800 ہم اتنے دوچار کر دیا گیا ہے ڈور کے ساتھ جہاں تک آج. 1257 01:01:39,800 --> 01:01:41,250 >> اور ڈور حروف ہیں. 1258 01:01:41,250 --> 01:01:44,910 لیکن ہفتے سے یاد 0، حروف کیا ہیں؟ 1259 01:01:44,910 --> 01:01:49,334 حروف صرف ایک تجرید ہیں اعداد دشملو تعداد کے اوپر، 1260 01:01:49,334 --> 01:01:52,500 اور دشملو تعداد واقعی صرف ایک ہیں بائنری تعداد کے اوپر تجرید، 1261 01:01:52,500 --> 01:01:53,720 ہم اس کی وضاحت کے طور پر. 1262 01:01:53,720 --> 01:01:55,540 >> لہذا حروف کے نمبر ہیں. 1263 01:01:55,540 --> 01:01:58,410 اور اعداد حروف ہیں، صرف سیاق و سباق پر منحصر ہے. 1264 01:01:58,410 --> 01:02:01,250 اور یہ کہ اندر باہر کر دیتا ہے ایک کمپیوٹر پروگرام کی، 1265 01:02:01,250 --> 01:02:06,830 کیا آپ دیکھنا چاہتا ہوں کہ کس طرح کی وضاحت کر سکتے اس پروگرام کے اندر بٹس پر؟ 1266 01:02:06,830 --> 01:02:10,400 >> 0 ہفتے ہم نے اس سے یادآوری ASCII، جس میں صرف اس کوڈ آن ہے 1267 01:02:10,400 --> 01:02:11,620 نمبرز پر تعریفیں حروف. 1268 01:02:11,620 --> 01:02:13,660 اور ہم نے کہا، دارالحکومت ایک 65 ہے. 1269 01:02:13,660 --> 01:02:15,860 کیپٹل بی 66 ہے، اور تو آگے. 1270 01:02:15,860 --> 01:02:20,500 >> اور نوٹس، ہم بنیادی طور پر حروف پر ہے یہاں اوپر والی لائن، C انہیں فون کرے گا کے طور پر، 1271 01:02:20,500 --> 01:02:23,400 حروف، اور اس کے بعد دوسری صف پر ints کے. 1272 01:02:23,400 --> 01:02:28,180 اور یہ آپ کو تبدیل کر سکتے ہیں باہر کر دیتا ہے بغیر کسی رکاوٹ عام طور پر دو، کے درمیان. 1273 01:02:28,180 --> 01:02:30,042 اور ہم ایسا کرنا چاہتے ہیں تو اس نے جان بوجھ کر، ہم 1274 01:02:30,042 --> 01:02:31,750 سے نمٹنے کے لئے چاہتے ہیں کر سکتے کچھ اس طرح. 1275 01:02:31,750 --> 01:02:33,590 >> ہم تبدیل کرنے کے لئے چاہتے ہیں کر سکتے کم کرنے کے لئے اوپری کیس 1276 01:02:33,590 --> 01:02:35,330 کیس، یا اوپری کیس میں کم کیس. 1277 01:02:35,330 --> 01:02:38,000 اور یہ بدل جاتا ہے وہاں یہاں اصل میں ایک پیٹرن 1278 01:02:38,000 --> 01:02:39,900 ہم صرف ایک لمحے میں گلے لگانے کر سکتے ہیں. 1279 01:02:39,900 --> 01:02:44,120 لیکن ایک سب سے پہلے نظر آتے ہیں واضح طور پر یہ کر کے مثال. 1280 01:02:44,120 --> 01:02:46,340 >> میں CS50 IDE میں واپس جانے کے لئے جا رہا ہوں. 1281 01:02:46,340 --> 01:02:50,640 میں نے ایک پیدا کرنے کے لئے جا رہا ہوں فائل کی ASCII 0.c. بلایا 1282 01:02:50,640 --> 01:02:55,960 اور میں آگے جانے کے لئے اور شامل کرنے کے لئے جا رہا ہوں میری سب سے اوپر معیار io.h، int اہم باطل 1283 01:02:55,960 --> 01:02:57,370 میری تقریب کے سب سے اوپر. 1284 01:02:57,370 --> 01:03:02,700 اور پھر میں کیا کرنے جا رہا ہوں لوپ کے لئے ایک مندرجہ ذیل میں برابر سے، 1285 01:03:02,700 --> 01:03:04,610 کی، کا کہنا ہے کہ 65 دو. 1286 01:03:04,610 --> 01:03:10,460 >> اور پھر میں سے کم ہونے جا رہا ہے حروف تہجی میں 65، اس کے علاوہ 26 حروف. 1287 01:03:10,460 --> 01:03:12,640 تو میں نے کمپیوٹر دونگا وہاں میرے لئے ریاضی کا کام. 1288 01:03:12,640 --> 01:03:15,100 اور پھر اس لوپ کے اندر، کیا میں پرنٹ کرنے کے لئے جا رہا ہوں؟ 1289 01:03:15,100 --> 01:03:19,230 >> ٪ ج٪ میں (ن) الٹا سلیش ہے. 1290 01:03:19,230 --> 01:03:21,290 اور اب میں دو اقدار میں ہونا چاہتے. 1291 01:03:21,290 --> 01:03:24,530 میں نے عارضی طور پر سوال ڈال دیا ہے سوال مدعو کرنے کے لئے وہاں کا پرتیک. 1292 01:03:24,530 --> 01:03:29,940 >> میں نے آگے 65 سے iterate کرنا چاہتے ہیں حروف تہجی کے 26 حروف کے لئے، 1293 01:03:29,940 --> 01:03:35,190 ہر iteration پر باہر پرنٹ ہے کہ کردار کی اٹوٹ برابر. 1294 01:03:35,190 --> 01:03:38,299 دوسرے الفاظ میں، میں چاہتا ہوں سے زیادہ 26 اعداد پرنٹنگ iterate کے 1295 01:03:38,299 --> 01:03:41,590 ASCII کردار کیا ہے، خط، اور اسی نمبر is-- کیا 1296 01:03:41,590 --> 01:03:44,650 واقعی صرف تخلیق اس سلائڈ سے چارٹ. 1297 01:03:44,650 --> 01:03:47,010 تو ان سوالیہ نشان کیا ہونا چاہئے؟ 1298 01:03:47,010 --> 01:03:51,760 >> ٹھیک ہے، یہ دوسری پتہ چلا ہے کہ ایک صرف متغیر میں ہونا چاہئے. 1299 01:03:51,760 --> 01:03:53,860 میں نے ایک بڑی تعداد کے طور پر اس کو دیکھنے کے لئے چاہتے ہیں. 1300 01:03:53,860 --> 01:03:58,920 اور مشرق دلیل یہاں، میں نے کمپیوٹر کو بتا سکتے ہیں 1301 01:03:58,920 --> 01:04:03,470 اس عددی کے علاج کے لئے میں نے ایک کردار کے طور پر، تو کے طور پر 1302 01:04:03,470 --> 01:04:05,880 فیصد سی کے لئے یہاں یہ متبادل 1303 01:04:05,880 --> 01:04:07,990 >> دوسرے الفاظ میں، تو مجھے، انسانی پروگرامر، جانتے 1304 01:04:07,990 --> 01:04:09,865 یہ صرف نمبرز ہیں دن کے آخر میں. 1305 01:04:09,865 --> 01:04:12,500 اور میں 65 کو چاہئے کہ پتہ کچھ کردار نقشہ. 1306 01:04:12,500 --> 01:04:15,310 اس لحاظ سے واضح کاسٹ کے ساتھ، ایک خانے کے ساتھ، 1307 01:04:15,310 --> 01:04:18,840 آپ کرنا چاہتے ہیں ڈیٹا کی قسم کا نام میں تبدیل، اور ایک بند قوسین، 1308 01:04:18,840 --> 01:04:21,200 آپ بتا سکتے ہیں کمپیوٹر، ارے، کمپیوٹر، 1309 01:04:21,200 --> 01:04:24,130 ایک چار لیے اس عددی تبدیل. 1310 01:04:24,130 --> 01:04:26,250 >> تو میں نے اس کو چلانے کے جب پروگرام مرتب کرنے کے بعد، 1311 01:04:26,250 --> 01:04:29,740 کی میں ASCII 0 دکھانے get-- ہے دیکھتے ہیں. 1312 01:04:29,740 --> 01:04:33,020 یہ خوفناک، میں نے غلط ہے یہاں کیا کیا؟ 1313 01:04:33,020 --> 01:04:35,884 اگھوشیت شناخت کنندہ کے استعمال، ٹھیک ہے، جان بوجھ کر نہیں، 1314 01:04:35,884 --> 01:04:37,800 لیکن چلو دیکھتے ہیں اگر ہم نہیں کر سکتے اس کے ذریعے وجہ. 1315 01:04:37,800 --> 01:04:41,220 >> تو لائن تو میں نہیں مل سکا five-- بہت دور کو screwing سے پہلے. 1316 01:04:41,220 --> 01:04:42,140 ٹھیک ہے. 1317 01:04:42,140 --> 01:04:46,560 اس بلاگ کے بارے لائن 5 کے برابر ہے 65-- میں دیکھتا. 1318 01:04:46,560 --> 01:04:50,130 لہذا C میں یاد رکھیں، کچھ کے برعکس آپ پہلے پروگرامنگ ہے تو زبانوں 1319 01:04:50,130 --> 01:04:52,190 تجربے، آپ کو کرنا پڑے کمپیوٹر بتانے کے لئے، 1320 01:04:52,190 --> 01:04:55,040 سکریچ برعکس، کیا متغیر کی قسم یہ ہے. 1321 01:04:55,040 --> 01:04:56,860 >> اور میں یہاں ایک اہم فقرہ بھول گیا. 1322 01:04:56,860 --> 01:04:59,200 لائن پانچ میں، میں نے استعمال کرنا شروع کر دیا ہے. 1323 01:04:59,200 --> 01:05:01,560 لیکن میں C بتایا ہے کیا ڈیٹا کی قسم یہ ہے. 1324 01:05:01,560 --> 01:05:04,570 تو میں یہاں میں جانے کے لئے جا رہا ہوں اور ، کا کہنا ہے آہ، یہ ایک عدد صحیح بناتے. 1325 01:05:04,570 --> 01:05:07,050 >> اب میں آگے بڑھو اور recompile کرنے جا رہا ہوں. 1326 01:05:07,050 --> 01:05:08,080 کہ مقررہ. 1327 01:05:08,080 --> 01:05:12,660 ./ascii0 درج، اس قسم کا اچھا ہے. 1328 01:05:12,660 --> 01:05:15,360 نہ صرف یہ کرنے کے لئے سپر تیز ہے ، کمپیوٹر سے یہ سوال پوچھنا 1329 01:05:15,360 --> 01:05:18,885 بلکہ ایک سلائڈ پر اسے تلاش کر کے مقابلے میں، یہ فی لائن طباعت، ایک 65 ہے، 1330 01:05:18,885 --> 01:05:24,860 B میں اس وقت سے down-- 66، تمام طریقہ ہے ، حروف Z کے لیے اس کے 26 لئے اوقات ہی کیا 1331 01:05:24,860 --> 01:05:25,630 جس میں 90 ہے. 1332 01:05:25,630 --> 01:05:27,790 اور، اصل میں، تھوڑا سا زیادہ ذہین گے 1333 01:05:27,790 --> 01:05:31,030 میرے لئے کیا گیا ہے انحصار نہیں کمپیوٹر پر 26 کو شامل کرنے کی. 1334 01:05:31,030 --> 01:05:34,060 میں نے ابھی کیا کیا جا سکتا 90 اس کے ساتھ ساتھ، اتنی دیر تک 1335 01:05:34,060 --> 01:05:37,390 میں نے دو بار ایک ہی غلطی نہیں کرتے کے طور پر. 1336 01:05:37,390 --> 01:05:41,880 I ذریعے جانا چاہتے ہیں Z، بس چپ نہیں Y کے ذریعے. 1337 01:05:41,880 --> 01:05:44,000 >> تو ہے کہ ایک واضح کاسٹ ہے. 1338 01:05:44,000 --> 01:05:47,860 یہ اس کہ باہر کر دیتا بھی ضروری نہیں ہے. 1339 01:05:47,860 --> 01:05:52,480 مجھے آگے بڑھو اور اس rerun ہیں سنکلک، اور دوبارہچلانے ASCII 0. 1340 01:05:52,480 --> 01:05:54,940 یہ پتہ چلا ہے C بہت ہوشیار ہے. 1341 01:05:54,940 --> 01:05:57,150 >> اور printf، خاص طور پر، بہت ہوشیار ہے. 1342 01:05:57,150 --> 01:06:01,260 آپ کو صرف دو مرتبہ ایک میں گزرتے ہیں دونوں جگہ دار کے لئے، printf کے 1343 01:06:01,260 --> 01:06:04,510 ، احساس کریں گے اوہ، ٹھیک ہے، میں آپ کو معلوم ہے مجھے ایک کچھ بڑی تعداد integer-- دی، 1344 01:06:04,510 --> 01:06:06,380 65، یا 90، یا جو کچھ بھی طرح. 1345 01:06:06,380 --> 01:06:10,170 لیکن میں آپ کو مجھ سے چاہتے ہیں کہ دیکھیں ایک کردار کی طرح ہے کہ نمبر کی شکل. 1346 01:06:10,170 --> 01:06:16,460 اور اس طرح printf کے لپیٹ ڈال سکتا کے ساتھ ساتھ آپ کے لئے ایک چار int کی. 1347 01:06:16,460 --> 01:06:19,360 تو یہ بالکل ایک مسئلہ نہیں ہے. 1348 01:06:19,360 --> 01:06:23,100 >> لیکن، محسوس کیونکہ اس تلیتا کے ہم اصل میں اس کے ساتھ ساتھ یہ کر سکتے ہیں. 1349 01:06:23,100 --> 01:06:26,520 مجھے آگے بڑھو اور ایک بنا دو this-- ASCII 1.c. کے دیگر ورژن 1350 01:06:26,520 --> 01:06:31,800 اور بجائے اس پر iterating integers کے، واقعی آپ کے دماغ اڑا سکتے ہیں 1351 01:06:31,800 --> 01:06:33,610 کرداروں پر iterating کر. 1352 01:06:33,610 --> 01:06:37,660 ایک چار سی دارالحکومت A ہو جاتا ہے تو، میں نے آگے بڑھو اور ایسا کرنا چاہتے ہیں، 1353 01:06:37,660 --> 01:06:41,740 اتنی دیر C سے کم یا برابر ہے کے طور پر دارالحکومت Z. اور ہر iteration پر 1354 01:06:41,740 --> 01:06:45,690 میں نے C اضافہ کرنا چاہتے ہیں، میں کر سکتا ہوں اب یہاں میرے printf کے مطابق 1355 01:06:45,690 --> 01:06:51,320 کہہ دو فیصد C ہے فیصد میں پھر، کوما C. 1356 01:06:51,320 --> 01:06:57,200 >> اور اب، میں دوسری سمت میں جا سکتے ہیں، واضح طور پر کردار کاسٹنگ 1357 01:06:57,200 --> 01:06:58,500 ایک عددی. 1358 01:06:58,500 --> 01:07:00,560 لہذا، ایک بار پھر، کہ کیوں آپ ایسا کریں گے؟ 1359 01:07:00,560 --> 01:07:03,830 اس کے الگ الگ کرنے کیلئے ایک چھوٹا سا عجیب ہے کرداروں کے لحاظ سے شمار کریں. 1360 01:07:03,830 --> 01:07:07,430 >> لیکن اگر آپ کو کیا سمجھ میں ہڈ کے نیچے جا رہا، 1361 01:07:07,430 --> 01:07:08,430 کوئی جادو واقعی بات ہے. 1362 01:07:08,430 --> 01:07:13,060 تم صرف کہہ رہے ہیں، ارے، کمپیوٹر دے مجھے پروپوزل کی گذارش چار کے سی نامی ایک متغیر. 1363 01:07:13,060 --> 01:07:16,520 دارالحکومت A. اس کی ابتدا اور ایک کی قیمت درج معاملہ محسوس. 1364 01:07:16,520 --> 01:07:19,580 >> C کے کرداروں کے طور پر، سے یاد گزشتہ ہفتے، آپ کو ایک کی قیمت درج کا استعمال. 1365 01:07:19,580 --> 01:07:23,720 ڈور کے لئے، الفاظ کے لئے، مفید، آپ ڈبل قیمت درج کرنے کا استعمال کرتے ہیں. 1366 01:07:23,720 --> 01:07:27,210 OK، کمپیوٹر، یہی کیا کرو تاکہ، کردار کے طور پر طویل عرصے سے کم ہے 1367 01:07:27,210 --> 01:07:28,050 یا Z کے برابر. 1368 01:07:28,050 --> 01:07:32,640 اور میں اپنے ASCII ٹیبل سے جانتے ہیں کہ تمام ان ASCII کوڈ کے ملحق ہیں. 1369 01:07:32,640 --> 01:07:33,400 >> کوئی فرق نہیں ہے. 1370 01:07:33,400 --> 01:07:36,737 تو یہ صرف ایک Z کے ذریعے ہے، ایک کی تعداد میں ہر طرف سے الگ. 1371 01:07:36,737 --> 01:07:38,820 اور پھر میں اضافہ کر سکتے ہیں ایک چار، میں واقعی چاہتے ہیں تو. 1372 01:07:38,820 --> 01:07:40,390 دن کے آخر میں، یہ صرف ایک نمبر ہے. 1373 01:07:40,390 --> 01:07:41,030 مجھے یہ معلوم ہے. 1374 01:07:41,030 --> 01:07:43,670 تو میں صرف اس کے لئے 1 کا اضافہ کرنے کے لئے یہ سمجھتے سکتا. 1375 01:07:43,670 --> 01:07:46,940 >> اور پھر اس وقت، میں نے سی پرنٹ، اور پھر اٹوٹ برابر. 1376 01:07:46,940 --> 01:07:50,170 اور میں یہ بھی واضح کی کاسٹ کی ضرورت نہیں ہے. 1377 01:07:50,170 --> 01:07:52,680 میں printf اور دو کر سکتے ہیں کمپیوٹر کے اعداد و شمار چیزیں، 1378 01:07:52,680 --> 01:07:57,300 تاکہ اب میں چلاتے ہیں ، Ascii1./ascii1 بنانے 1379 01:07:57,300 --> 01:08:01,520 مجھے اچھی طرح بالکل وہی بات ہو جاؤ. 1380 01:08:01,520 --> 01:08:04,530 >> بیکار پروگرام، کوئی نہیں اگرچہ اسکا سافٹ ویئر لکھنے کے لئے جا رہا ہے 1381 01:08:04,530 --> 01:08:07,549 پتہ کرنے کے لئے، وہ کیا تھا A کرنے کے لئے نقشے ہیں یا یا نمبر، B، Z؟ 1382 01:08:07,549 --> 01:08:10,340 آپ کو صرف یہ گوگل میں جا رہے ہیں، یا یہ اوپر دیکھو آن لائن، یا یہ اوپر دیکھو 1383 01:08:10,340 --> 01:08:11,650 ایک سلائڈ، یا جیسے پر. 1384 01:08:11,650 --> 01:08:13,520 تو جہاں یہ اصل میں مفید حاصل کرتا ہے؟ 1385 01:08:13,520 --> 01:08:15,960 >> ٹھیک ہے، کہ کی بات سلائڈ، وہاں کے نوٹس 1386 01:08:15,960 --> 01:08:20,890 بڑے کے درمیان یہاں ایک حقیقی پیٹرن اور چھوٹے حادثاتی نہیں تھا. 1387 01:08:20,890 --> 01:08:23,760 نوٹس کہ دارالحکومت A 65. 1388 01:08:23,760 --> 01:08:25,830 چھوٹے ایک 97 ہے. 1389 01:08:25,830 --> 01:08:29,649 اور کس حد تک دور ایک کم کیس ہے؟ 1390 01:08:29,649 --> 01:08:32,649 >> تو 65 سے 97 سے کتنے قدم کے فاصلے پر ہے؟ 1391 01:08:32,649 --> 01:08:36,210 چنانچہ 97 مائنس 65 32 ہے. 1392 01:08:36,210 --> 01:08:37,910 تو دارالحکومت میں 65 ہے. 1393 01:08:37,910 --> 01:08:39,939 آپ کو اس کے لئے 32 شامل کریں، آپ کو ایک چھوٹے ملتا. 1394 01:08:39,939 --> 01:08:43,729 اور، مساوانہ، آپ 32 منہا تو، آپ کو دارالحکومت پر واپس حاصل A-- B کے ساتھ اسی 1395 01:08:43,729 --> 01:08:46,380 چھوٹی سی بی کے لئے، چھوٹی سی کے لئے بڑی سی. 1396 01:08:46,380 --> 01:08:50,670 >> ان کمیوں میں سے سب 32 کے علاوہ ہیں. 1397 01:08:50,670 --> 01:08:54,450 اب، اس کے لئے ہمیں اجازت دینے کے لئے لگ رہے ہو گے مائیکروسافٹ ورڈ کی طرح کچھ کرنا، 1398 01:08:54,450 --> 01:08:57,729 یا Google Docs، جہاں آپ کو نمایاں ہر چیز کو منتخب کر سکتے ہیں اور پھر کہتے ہیں، 1399 01:08:57,729 --> 01:09:00,520 چھوٹے کے لئے تمام تبدیل کرنے، یا اپر کیس میں تمام تبدیل، 1400 01:09:00,520 --> 01:09:03,840 یا صرف پہلا لفظ کو تبدیل اوپری کیس کے لئے ایک سزا کی. 1401 01:09:03,840 --> 01:09:07,390 ہم اصل میں کچھ کر سکتے ہیں خود کو اس طرح. 1402 01:09:07,390 --> 01:09:12,645 >> مجھے آگے چلتے ہیں اور ایک فائل کو بچانے کے یہاں 0.c. استفادہ بلایا 1403 01:09:12,645 --> 01:09:15,770 اور آگے بڑھو اور ایک پروگرام کوڑا دو کہ بالکل کے طور پر مندرجہ ذیل ہے کہ کرتا ہے. 1404 01:09:15,770 --> 01:09:18,460 تو CS50 لائبریری شامل. 1405 01:09:18,460 --> 01:09:21,430 اور معیاری I / O شامل. 1406 01:09:21,430 --> 01:09:22,787 >> اور میں اس کو جلد ہی آ رہا ہے پتہ ہے. 1407 01:09:22,787 --> 01:09:24,870 تو میں نے اس میں ڈال کرنے جا رہا ہوں وہاں پہلے سے ہی، string.h کے، 1408 01:09:24,870 --> 01:09:26,960 تو میں تک رسائی حاصل ہے سٹرلنگ کی طرح باتیں، 1409 01:09:26,960 --> 01:09:29,620 اور پھر ہمیشہ کی طرح، اہم باطل int کی. 1410 01:09:29,620 --> 01:09:33,420 اور پھر میں نے آگے جانے کے لئے جا رہا ہوں اور ڈور ایسا سٹرنگ حاصل ہو جاتا ہے، 1411 01:09:33,420 --> 01:09:35,032 صرف صارف سے ایک تار حاصل کرنے کے لئے. 1412 01:09:35,032 --> 01:09:36,740 اور پھر میں جا رہا ہوں میرے وویک چیک کرتے. 1413 01:09:36,740 --> 01:09:40,510 اسٹرنگ برابر شہوت انگیز null نہیں ہوتا، پھر اس کے آگے بڑھنے کے لئے محفوظ ہے. 1414 01:09:40,510 --> 01:09:42,000 اور مجھے کیا کرنا چاہتے ہیں؟ 1415 01:09:42,000 --> 01:09:48,700 I، میں نے کے برابر ہے 0 سے iterate کرنے جا رہا ہوں اور ن ے کی سٹرنگ کی لمبائی تک. 1416 01:09:48,700 --> 01:09:51,899 >> اور میں اتنی دیر کے طور پر ایسا کرنے جا رہا ہوں میں (ن) سے بھی کم ہے، اور میں پلس پلس. 1417 01:09:51,899 --> 01:09:55,060 اب تک، میں واقعی میں صرف ہوں آگے سے خیالات قرض. 1418 01:09:55,060 --> 01:09:57,010 اور اب میں ایک شاخ کے متعارف کرانے کے لئے جا رہا ہوں. 1419 01:09:57,010 --> 01:09:59,635 >> تو سکریچ، جہاں میں واپس لگتا ہم، راستے میں ان لوگوں فورکس تھا 1420 01:09:59,635 --> 01:10:05,110 اور گزشتہ ہفتے سی میں میں کرنے جا رہا ہوں ، اس کا کہنا ہے کہ اگر ایس کردار میں ویں 1421 01:10:05,110 --> 01:10:09,250 ہے یا اس سے زیادہ کیس ایک کم کے برابر، 1422 01:10:09,250 --> 01:10:13,340 and-- شروع میں آپ لفظی گے ، اور، لیکن C میں آپ ایمپرسینڈ کہنا 1423 01:10:13,340 --> 01:10:19,830 ampersand-- اور S میں کردار میں ویں سے کم یا کیس Z کو کم کرنے کے برابر ہے، 1424 01:10:19,830 --> 01:10:21,780 کی دلچسپ کچھ کرتے ہیں. 1425 01:10:21,780 --> 01:10:27,020 اصل میں ایک کو پرنٹ کریں کوئی NEWLINE ساتھ کردار 1426 01:10:27,020 --> 01:10:31,760 اس سٹرنگ میں کردار ہے، تار میں کردار میں ویں. 1427 01:10:31,760 --> 01:10:37,420 >> لیکن چلو آگے بڑھو اور اس سے 32 منہا. 1428 01:10:37,420 --> 01:10:42,120 ورنہ تو میں کردار سٹرنگ ہم دیکھ رہے ہیں کہ 1429 01:10:42,120 --> 01:10:45,950 تھوڑا ایک کے درمیان نہیں ہے اور تھوڑا Z، آگے بڑھو 1430 01:10:45,950 --> 01:10:48,610 اور صرف کی قیمتوں میں استحکام اسے باہر پرنٹ. 1431 01:10:48,610 --> 01:10:50,840 تو ہم نے متعارف کرایا ہے اس نتھی سنکیتن 1432 01:10:50,840 --> 01:10:53,560 ہمارے ڈور میں حاصل کرنے کے لئے میں ویں سٹرنگ میں کردار. 1433 01:10:53,560 --> 01:10:57,520 >> میں نے کچھ مشروط منطق شامل کیا ہے جیسے گزشتہ ہفتے کے ہفتے میں ایک، جہاں میں شروع 1434 01:10:57,520 --> 01:10:59,880 میں صرف اپنے بنیادی استعمال کر رہا ہوں کیا ہے کی تفہیم 1435 01:10:59,880 --> 01:11:01,130 ہڈ کے نیچے جا رہا. 1436 01:11:01,130 --> 01:11:04,190 ے کی میں ویں کردار ہے ایک سے زیادہ یا برابر؟ 1437 01:11:04,190 --> 01:11:08,290 کی طرح، یہ، 97، یا 98 ہے یا 99، اور تو آگے؟ 1438 01:11:08,290 --> 01:11:11,940 >> لیکن یہ بھی سے کم یا برابر ہے چھوٹے Z کی قدر کرنے کے لئے؟ 1439 01:11:11,940 --> 01:11:16,210 اور اگر ایسا ہے تو، کیا اس لائن مطلب ہے؟ 1440 01:11:16,210 --> 01:11:20,250 14، اس طرح کی ہے پورا خیال کے جراثیم، 1441 01:11:20,250 --> 01:11:23,840 کی طرف سے حرف کو فائدہ بس تفریق کو اس سے 32، 1442 01:11:23,840 --> 01:11:29,370 اس معاملے میں، میں جانتا ہوں کہ اس کی وجہ سے فی، چارٹ، میرا نمبر نمائندگی کر رہے ہیں کہ کس طرح. 1443 01:11:29,370 --> 01:11:33,925 تو آگے بڑھو اور اس کو چلانے، 0.c استفادہ تالیف کے بعد، 1444 01:11:33,925 --> 01:11:36,210 اور رن استفادہ 0. 1445 01:11:36,210 --> 01:11:40,300 >> کی طرح کچھ میں ٹائپ چلو تمام چھوٹے کیا Zamyla درج. 1446 01:11:40,300 --> 01:11:42,780 اور اب ہم تمام بڑے میں کیا Zamyla ہے. 1447 01:11:42,780 --> 01:11:45,050 کے تمام چھوٹے روب میں ٹائپ کریں. 1448 01:11:45,050 --> 01:11:46,674 کے تمام چھوٹے جیسن کوشش کرتے ہیں. 1449 01:11:46,674 --> 01:11:48,590 اور ہم ہو رہی رکھنے کے مجبور کر کیپٹلائزیشن. 1450 01:11:48,590 --> 01:11:50,960 ایک معمولی مسئلے سے نہیں ہے کہ میں نوعیت کا اندازہ نہیں تھا. 1451 01:11:50,960 --> 01:11:54,050 میری نئی فوری طور پر ختم کیا جاتا نوٹس ان کے نام کے طور پر ایک ہی لائن پر، 1452 01:11:54,050 --> 01:11:55,520 جس میں ایک چھوٹا سا گندا محسوس ہوتا ہے. 1453 01:11:55,520 --> 01:11:59,170 >> تو میں یہاں جانے کے لئے جا رہا ہوں، اور اصل میں اس پروگرام کے آخر میں 1454 01:11:59,170 --> 01:12:02,110 ایک newline کردار باہر پرنٹ. 1455 01:12:02,110 --> 01:12:03,160 وہ سب ہے. 1456 01:12:03,160 --> 01:12:06,120 printf کے ساتھ، آپ کو کرنے کی ضرورت نہیں متغیر یا فارمیٹ کوڈ میں منتقل. 1457 01:12:06,120 --> 01:12:08,460 آپ لفظی صرف پرنٹ کر سکتے ہیں ایک newline طرح کچھ. 1458 01:12:08,460 --> 01:12:13,529 >> تو آگے بڑھو اور کرنے دو دوبارہ 0 فائدہ، یہ ہے rerun، کیا Zamyla. 1459 01:12:13,529 --> 01:12:14,820 اور اب یہ ایک چھوٹا سا خوبصورت ہے. 1460 01:12:14,820 --> 01:12:17,274 ابھی، میری فوری طور اس کی اپنی نئی لائن پر ہے. 1461 01:12:17,274 --> 01:12:18,440 تو ہے کہ سب ٹھیک ہے اور اچھا ہے. 1462 01:12:18,440 --> 01:12:19,910 تو یہ ایک اچھی مثال ہے. 1463 01:12:19,910 --> 01:12:22,700 لیکن مجھے یہ بھی ضروری نہیں کہ ایسا نہیں کرتے مشکل کوڈ 32 کرنے کی ضرورت ہے. 1464 01:12:22,700 --> 01:12:23,350 آپ کو پتہ ہے؟ 1465 01:12:23,350 --> 01:12:26,350 میں نے کبھی ایسا نہیں کرتے say-- سکتا ہے یاد کیا فرق ہے. 1466 01:12:26,350 --> 01:12:29,330 >> لیکن میں جانتا ہوں کہ اگر میں ایک کم کیس خط ہے، 1467 01:12:29,330 --> 01:12:34,430 میں بنیادی طور پر بند کر منہا کرنا چاہتے ہیں جو کچھ فاصلے بہت کم درمیان ہے 1468 01:12:34,430 --> 01:12:39,160 ایک اور بڑا ایک، میں نے وہ فرض کیونکہ اگر دیگر حروف کی سب ایک جیسے ہیں 1469 01:12:39,160 --> 01:12:41,045 کہ کام کیا حاصل کرنا چاہئے. 1470 01:12:41,045 --> 01:12:42,670 لیکن ایسا کرنے کی بجائے، آپ کو معلوم ہے؟ 1471 01:12:42,670 --> 01:12:44,240 اب بھی ایک اور راستہ نہیں ہے. 1472 01:12:44,240 --> 01:12:48,090 >> میں تھے تو کہ 1.c-- فائدہ ہے تو ایک علیحدہ فائل میں ڈال کرنے کے لئے. 1473 01:12:48,090 --> 01:12:51,030 مندرجہ ذیل کے طور کی 2.c استفادہ کرتے ہیں. 1474 01:12:51,030 --> 01:12:53,060 مجھے سچ میں یہاں اس کو صاف کرنے جا رہا ہوں. 1475 01:12:53,060 --> 01:12:57,420 اور بجائے اس کے بھی کرنے کے لئے جانتے ہیں یا ان لوگوں کو کم سطح کی پرواہ 1476 01:12:57,420 --> 01:13:01,090 عملدرآمد کی تفصیلات، میں بجائے ہوں صرف ایک کردار کو پرنٹ کرنے کے لئے جا، 1477 01:13:01,090 --> 01:13:04,610 اقتباس unquote، فیصد C، اور پھر ایک تقریب کہتے ہیں کہ 1478 01:13:04,610 --> 01:13:09,950 کہ ایک دلیل لیتا موجود، جس میں ایک کردار، اس طرح ہے. 1479 01:13:09,950 --> 01:13:12,630 >> وہاں ہے C میں پتہ چلا، ایک اور تقریب کال 1480 01:13:12,630 --> 01:13:15,550 ، اوپری کرنے کے لئے جو اس کے نام کے طور پر اس سے پتہ چلتا ایک کردار لیتا ہے 1481 01:13:15,550 --> 01:13:19,350 اور اس کے اوپری کیس سے یہ بناتا ہے برابر، اور پھر اس کی واپسی 1482 01:13:19,350 --> 01:13:21,410 تاکہ printf کے وہاں میں پلگ کر سکتے ہیں. 1483 01:13:21,410 --> 01:13:25,484 اور اس لئے یہ کرنے کی، اگرچہ، میں ایک نے دوسرے کی فائل کو متعارف کرانے کی ضرورت ہے. 1484 01:13:25,484 --> 01:13:28,400 ایک اور فائل موجود ہے باہر بدل جاتا ہے آپ کو صرف کلاس سے پتہ چلے گا کہ، 1485 01:13:28,400 --> 01:13:33,020 ایک نصابی کتاب یا، یا ایک آن لائن ریفرنس، کہا جاتا C type.h. 1486 01:13:33,020 --> 01:13:38,570 >> میں نے اپنی ہیڈر درمیان تک کا اضافہ تو اگر فائلوں، اور اب دوبارہ مرتب-، اس پروگرام 1487 01:13:38,570 --> 01:13:43,040 capitalize2، درج ./capitalize2. 1488 01:13:43,040 --> 01:13:46,690 کے تمام میں کیا Zamyla میں ٹائپ کریں چھوٹے، اب بھی اسی طرح کام کرتا ہے. 1489 01:13:46,690 --> 01:13:48,040 لیکن تم کیا جانتے ہو؟ 1490 01:13:48,040 --> 01:13:55,590 یہ اوپری چلا کہ باہر کر دیتا ہے کچھ دیگر فعالیت ہے. 1491 01:13:55,590 --> 01:13:58,410 >> اور مجھے اس کو متعارف کرانے کمانڈ، کی طرح تھا awkwardly 1492 01:13:58,410 --> 01:14:00,250 کا نام دیا، لیکن دستی کے لئے انسان. 1493 01:14:00,250 --> 01:14:03,960 یہ، کہ سب سے زیادہ لینکس کمپیوٹرز باہر کر دیتا ہے ہم لینکس آپریٹنگ یہاں استعمال کر رہے ہیں کے طور پر 1494 01:14:03,960 --> 01:14:06,270 system-- ایک کمانڈ ہے جس کا کہنا نامی آدمی،، 1495 01:14:06,270 --> 01:14:08,530 ارے، کمپیوٹر، مجھے دے کمپیوٹر کی دستی. 1496 01:14:08,530 --> 01:14:10,680 آپ کیا کرنا چاہتے ہیں کہ دستی میں نظر آتے ہیں؟ 1497 01:14:10,680 --> 01:14:13,840 >> میں نے تقریب کو دیکھنا چاہتا ہوں اوپری کے لئے بلایا، درج. 1498 01:14:13,840 --> 01:14:16,070 اور یہ تھوڑا خفیہ ہے کبھی کبھی پڑھنے کے لئے. 1499 01:14:16,070 --> 01:14:18,780 لیکن ہم میں ہیں محسوس لینکس پروگرامر کی دستی. 1500 01:14:18,780 --> 01:14:19,530 اور یہ تمام متن ہے. 1501 01:14:19,530 --> 01:14:21,905 اور نہیں ہے کہ محسوس کریں یہاں تقریب کے نام. 1502 01:14:21,905 --> 01:14:25,030 اس سے یہ کہا جاتا ایک کزن ہے باہر کر دیتا ہے برعکس کرتا ہے جس کو کم کرنے،. 1503 01:14:25,030 --> 01:14:29,710 اور خلاصہ کے تحت نوٹس، اس کا استعمال کرنے آدمی صفحہ تقریب، تو بات کرنے کی، 1504 01:14:29,710 --> 01:14:32,220 مجھے کہ میں کہہ رہا ہے سی type.h. شامل کرنے کی ضرورت 1505 01:14:32,220 --> 01:14:33,630 اور میں نے پریکٹس سے پتہ تھا کہ. 1506 01:14:33,630 --> 01:14:36,210 >> یہاں، یہ مجھے دو دکھا رہا ہے تقریب کے لئے prototypes کی، 1507 01:14:36,210 --> 01:14:39,070 تا کہ میں نے کبھی اس کا استعمال کرنا چاہتے ہیں تو میرے خیال میں وہ ان پٹ کے طور پر لے کیا پتہ، 1508 01:14:39,070 --> 01:14:40,652 اور وہ پیداوار کے طور پر واپس آ جائیں کیا. 1509 01:14:40,652 --> 01:14:42,360 اور پھر میں نے پڑھا تو تفصیل، میں دیکھ رہا ہوں 1510 01:14:42,360 --> 01:14:44,820 مزید تفصیل سے کیا تقریب کرتا ہے. 1511 01:14:44,820 --> 01:14:48,100 لیکن زیادہ اہم بات، اگر I، واپسی قیمت کے تحت دیکھیں 1512 01:14:48,100 --> 01:14:51,710 اس کا کہنا ہے قیمت واپس ہے تبدیل خط کی کہ، 1513 01:14:51,710 --> 01:14:57,880 یا C، اصل ان پٹ، تو تبادلوں ممکن نہیں تھا. 1514 01:14:57,880 --> 01:15:01,992 >> دوسرے الفاظ میں، اوپری کوشش گا اوپری کیس کو ایک خط میں تبدیل کرنے کی. 1515 01:15:01,992 --> 01:15:03,450 اور اگر ایسا ہے تو، اسے واپس جا رہا ہے. 1516 01:15:03,450 --> 01:15:07,010 لیکن کچھ reason-- لئے یہ کر سکتے ہیں تو شاید یہ پہلے سے ہی اوپری کیس ہے، 1517 01:15:07,010 --> 01:15:09,550 شاید یہ ایک فجائیہ نقطہ ہے یا کسی دوسرے punctuation-- 1518 01:15:09,550 --> 01:15:12,200 یہ صرف جا رہا ہے اصل C واپس، 1519 01:15:12,200 --> 01:15:17,340 جو میں نے اپنے کوڈ بنانے کر سکتے ہیں بہتر مندرجہ ذیل کے طور پر ڈیزائن. 1520 01:15:17,340 --> 01:15:20,580 >> I میں سے سب کی ضرورت نہیں ہے کوڈ کے ان خوفناک لائنوں. 1521 01:15:20,580 --> 01:15:22,610 میں نے لائنوں کی تمام صرف روشنی ڈالی 1522 01:15:22,610 --> 01:15:28,700 صرف ایک سادہ سا میں منہدم کیا جائے لکیر، this-- printf کا فیصد ہے جو 1523 01:15:28,700 --> 01:15:33,510 اوپری کی بریکٹ میں سی. 1524 01:15:33,510 --> 01:15:36,090 اور یہ ایک ہو جائے گا بہتر ڈیزائن کی مثال. 1525 01:15:36,090 --> 01:15:40,040 >> کیوں 7 یا 8 لائنوں میں لاگو کوڈ کے، جو کچھ بھی میں نے صرف تھا 1526 01:15:40,040 --> 01:15:44,960 آپ اس کے بجائے گر سکتا ہے جب، خارج کر دیا اس منطق اور فیصلہ سازی کے تمام 1527 01:15:44,960 --> 01:15:49,620 ایک ایک سطر، 13، میں ہے کہ ایک لائبریری پر انحصار کرتا ہے تقریب 1528 01:15:49,620 --> 01:15:53,430 ایک تقریب C کے ساتھ آتا ہے، لیکن ہے کہ آپ کو ایسا کرنے کے لئے چاہتے ہیں بالکل وہی جو کرتا ہے. 1529 01:15:53,430 --> 01:15:55,295 اور، واضح طور سے، یہاں تک کہ اگر یہ سی کے ساتھ نہیں آیا تھا، 1530 01:15:55,295 --> 01:15:58,880 آپ، یہ اپنے آپ کو عمل درآمد کر سکتے طور ہم منفی int حاصل کے ساتھ، دیکھا ہے 1531 01:15:58,880 --> 01:16:01,700 اور مثبت INT گزشتہ ہفتے اس کے ساتھ ساتھ حاصل. 1532 01:16:01,700 --> 01:16:03,470 >> یہ کوڈ اب بہت زیادہ پڑھنے کے قابل ہے. 1533 01:16:03,470 --> 01:16:06,670 اور، یقینا، ہم اپ سکرال، کتنی زیادہ کمپیکٹ نظر آتے ہیں 1534 01:16:06,670 --> 01:16:08,360 اپنے پروگرام کے اس ورژن ہے. 1535 01:16:08,360 --> 01:16:11,230 یہ، اب تھوڑا سا سب سے بھاری ہے کے ساتھ ان تمام پر مشتمل. 1536 01:16:11,230 --> 01:16:14,380 لیکن اس کی وجہ سے اب میں کھڑا ہوں، ٹھیک ہے پروگرامرز کے کندھوں پر 1537 01:16:14,380 --> 01:16:15,300 مجھ سے پہلے. 1538 01:16:15,300 --> 01:16:18,440 اور یہ جو جو تھا واقعی اوپری کرنے کے لئے لاگو 1539 01:16:18,440 --> 01:16:21,470 زیادہ کی طرح میرا ایک کام کیا، جس نے لاگو سٹرلنگ واقعی 1540 01:16:21,470 --> 01:16:24,790 کچھ وقت پہلے میرا ایک کام کیا. 1541 01:16:24,790 --> 01:16:26,970 اور اس طرح اب ہم ایک ہے بہتر ڈیزائن پروگرام 1542 01:16:26,970 --> 01:16:31,680 کہ عین مطابق ایک ہی منطق کو لاگو کرتی ہے. 1543 01:16:31,680 --> 01:16:35,580 >> سٹرلنگ کی بات کرتے ہوئے، دو مجھے آگے بڑھو اور اس کے کیا. 1544 01:16:35,580 --> 01:16:38,320 مجھے آگے بڑھو اور کو بچانے کے ہیں stirling.c طور پر اس فائل. 1545 01:16:38,320 --> 01:16:43,255 اور یہ پتہ چلا، ہم واپس چھیل کر سکتے ہیں خوبصورت بس اب ایک دوسرے پرت. 1546 01:16:43,255 --> 01:16:45,630 میں آگے اور کوڑا جانے کے لئے جا رہا ہوں اہم میں ایک اور پروگرام 1547 01:16:45,630 --> 01:16:49,759 یہاں محض-اوزار دوبارہ کہ سٹرنگ کی لمبائی مندرجہ ذیل کے طور. 1548 01:16:49,759 --> 01:16:52,300 تو یہاں کے کوڈ کا ایک لائن ہے کہ مجھے صارف سے ایک تار ہو جاتا ہے. 1549 01:16:52,300 --> 01:16:53,910 ہم بار بار یہ استعمال کرتے ہوئے رکھنے. 1550 01:16:53,910 --> 01:16:58,900 مجھے خود نامی ایک متغیر دے دو ایک نمبر ذخیرہ ہے کہ قسم int ن. 1551 01:16:58,900 --> 01:17:02,490 >> اور مجھے آگے بڑھو اور مندرجہ ذیل کی منطق کرتے. 1552 01:17:02,490 --> 01:17:15,610 ے میں ن ویں کردار کرتا ہے جبکہ برابر الٹا سلیش 0، آگے بڑھو 1553 01:17:15,610 --> 01:17:17,930 اور (ن) اضافہ. 1554 01:17:17,930 --> 01:17:23,506 اور پھر printf کے فیصد میں ن باہر پرنٹ. 1555 01:17:23,506 --> 01:17:29,200 مجھے یقین ہے کہ اس پروگرام کو یہاں کا دعوی، سٹرنگ کی لمبائی بلا کے بغیر، 1556 01:17:29,200 --> 01:17:31,150 ایک تار کی لمبائی باہر کے اعدادوشمار. 1557 01:17:31,150 --> 01:17:34,600 >> اور جادو مکمل طور پر ہے 8 لائن میں محفوظ 1558 01:17:34,600 --> 01:17:39,830 یہاں نئے نحو کی طرح لگتا ہے کے ساتھ، اس الٹا سلیش ایک کی قیمت درج ہیں 0. 1559 01:17:39,830 --> 01:17:41,360 لیکن ایسا کیوں ہے؟ 1560 01:17:41,360 --> 01:17:44,100 ویسے، کیا گیا ہے، اس کے بارے میں غور اس سب کے لئے وقت. 1561 01:17:44,100 --> 01:17:47,990 >> اور جب ایک ایک طرف میں بھول سے پہلے، اس بات کا احساس بھی، اس آدمی کے صفحات کے علاوہ میں 1562 01:17:47,990 --> 01:17:50,920 کہ ایک عام کے ساتھ آئے CS50 IDE کی طرح لینکس نظام، 1563 01:17:50,920 --> 01:17:53,770 اس بات کا احساس ہے کہ ہم، کورس کے عملے، بھی ہے 1564 01:17:53,770 --> 01:17:56,030 ایک ویب سائٹ کے ورژن بنایا نامی یہ ایک ہی خیال کے 1565 01:17:56,030 --> 01:17:59,940 ہے جس reference.cs50.net، وہی آدمی کے صفحات کے سب، 1566 01:17:59,940 --> 01:18:02,020 کہ اسی میں سے سب دستاویزی، کے طور پر بھی 1567 01:18:02,020 --> 01:18:05,730 اجازت دیتا ہے کہ سب سے اوپر ایک چھوٹا سا باکس آپ کو کافی کی تمام تبدیل کرنے کے لئے 1568 01:18:05,730 --> 01:18:09,025 کم آرام میں جادو زبان موڈ، جہاں ہم، تدریسی عملے، 1569 01:18:09,025 --> 01:18:12,150 سے گزری اور آسان بنانے کی کوشش کی ہے چیزیں رکھنے کی زبان میں سے کچھ 1570 01:18:12,150 --> 01:18:14,830 خیالات پر توجہ مرکوز، اور نہ تکنیکی کے کچھ. 1571 01:18:14,830 --> 01:18:20,070 تو ذہن میں رکھنا، reference.cs50.net اس کے ساتھ ساتھ ایک اور وسائل کے طور پر. 1572 01:18:20,070 --> 01:18:23,800 >> لیکن کیوں سٹرنگ کی لمبائی کے کام میں کرتا ہے جس طرح میں نے ایک لمحے پہلے مجوزہ؟ 1573 01:18:23,800 --> 01:18:25,160 یہاں پھر کیا Zamyla کا نام ہے. 1574 01:18:25,160 --> 01:18:27,690 اور یہاں کیا Zamyla کا نام ہے ، میں boxed میں کر رکھنے کے طور پر، 1575 01:18:27,690 --> 01:18:31,360 یہ کیا جا رہا ہے کی ایک تصویر پینٹ کرنے کے لئے، واقعی، صرف حروف کا ایک تسلسل. 1576 01:18:31,360 --> 01:18:34,260 لیکن کیا Zamyla موجود نہیں ہے ایک پروگرام میں تنہائی میں. 1577 01:18:34,260 --> 01:18:37,420 >> آپ لکھتے ہیں اور ایک پروگرام چلاتے ہیں، آپ اپنے میک یا اپنے کمپیوٹر استعمال کر رہے ہیں 1578 01:18:37,420 --> 01:18:40,010 میموری، یا RAM کے طور پر تو بات کرنے کی. 1579 01:18:40,010 --> 01:18:42,620 اور آپ سوچ سکتے ہیں ہونے کے طور پر آپ کے کمپیوٹر 1580 01:18:42,620 --> 01:18:44,730 ان دنوں میموری کے گیگا بائٹس کے بہت سے. 1581 01:18:44,730 --> 01:18:47,700 اور ایک ٹمٹم، اربوں کا مطلب بائٹس کی اتنی کروڑوں. 1582 01:18:47,700 --> 01:18:48,910 >> لیکن وقت میں ماضی کی اجازت. 1583 01:18:48,910 --> 01:18:51,530 اور ہم استعمال کر رہے ہیں کہ فرض ایک بہت پرانے کمپیوٹر ہے کہ 1584 01:18:51,530 --> 01:18:55,150 صرف میموری کی 32 بائٹس ہے. 1585 01:18:55,150 --> 01:18:59,310 میں کر سکتا ہوں، میرے کمپیوٹر کی سکرین پر، مندرجہ ذیل کے طور پر صرف اس کو اپنی طرف متوجہ. 1586 01:18:59,310 --> 01:19:05,240 >> میں نے صرف کہ کہہ سکتے ہیں میرے کمپیوٹر اس میموری کے تمام ہے. 1587 01:19:05,240 --> 01:19:08,830 اور یہ، میموری کا ایک چھڑی کی طرح ہے تو اگر آپ کو ہماری تصویر آخری بار سے یاد. 1588 01:19:08,830 --> 01:19:11,670 اور میں صرف تقسیم تو کافی دور میں یہ، 1589 01:19:11,670 --> 01:19:15,040 میں نے 32 بائٹس ہے کا دعوی ہے کہ سکرین پر میموری کی. 1590 01:19:15,040 --> 01:19:18,239 >> صرف اب، حقیقت میں، میں کر سکتا ہوں یہاں اس کی سکرین پر اب تک اپنی طرف متوجہ. 1591 01:19:18,239 --> 01:19:20,280 تو میں نے آگے جانے کے لئے جا رہا ہوں اور صرف کنونشن کی طرف سے، 1592 01:19:20,280 --> 01:19:24,050 ایک کے طور پر اپنے کمپیوٹر کی میموری کو اپنی طرف متوجہ گرڈ، نہ صرف کے طور پر ایک سے براہ راست لائن. 1593 01:19:24,050 --> 01:19:28,190 خاص طور پر، اب میں اس کا دعوی اس گرڈ، اس 8 کی طرف سے 4 گرڈ، 1594 01:19:28,190 --> 01:19:31,800 صرف تمام 32 بائٹس کی نمائندگی کرتا ہے میرے میک میں دستیاب میموری کی، 1595 01:19:31,800 --> 01:19:33,030 یا میرے کمپیوٹر میں دستیاب. 1596 01:19:33,030 --> 01:19:34,780 اور انہوں ریپنگ رہے پر دو لائنیں، صرف 1597 01:19:34,780 --> 01:19:38,030 اس کی سکرین پر زیادہ فٹ بیٹھتا ہے کیونکہ. 1598 01:19:38,030 --> 01:19:40,800 لیکن یہ پہلی بائٹ ہے. 1599 01:19:40,800 --> 01:19:41,990 یہ دوسرا بائٹ ہے. 1600 01:19:41,990 --> 01:19:43,300 یہ تیسری بائٹ ہے. 1601 01:19:43,300 --> 01:19:45,310 >> اور یہ 32nd بائٹ ہے. 1602 01:19:45,310 --> 01:19:52,910 یا، ہم نے ایک کمپیوٹر کی طرح سوچتے ہیں سائنسدان، اس بائٹ 0، 1، 2، 3، 31 ہے. 1603 01:19:52,910 --> 01:19:55,950 تو آپ کو 31 0 ہے، تو آپ 0 سے گنتی شروع. 1604 01:19:55,950 --> 01:19:59,830 >> ہم نے ایک پروگرام کا استعمال تو کالز سٹرنگ حاصل ہے کہ، 1605 01:19:59,830 --> 01:20:05,280 اور ہم انسانی کی طرف سے ایک تار حاصل ، جیسا کہ میں نے کیا Zamyla بلایا تھا Z-A-M-Y-L-A، 1606 01:20:05,280 --> 01:20:09,430 کس طرح میں دنیا کرتی ہے کمپیوٹر رکھیں ٹریک جس بائٹ کی، 1607 01:20:09,430 --> 01:20:12,230 میموری کی جس حصہ، جس سٹرنگ سے تعلق رکھتا ہے؟ 1608 01:20:12,230 --> 01:20:16,270 دوسرے الفاظ میں، ہم پر کارروائی تو کمپیوٹر میں ایک اور نام ٹائپ کریں، 1609 01:20:16,270 --> 01:20:19,890 اس سے Andi کی طرح، بلا سٹرنگ دوسری دفعہ ہو جاؤ، 1610 01:20:19,890 --> 01:20:23,030 A-N-D-I میں ختم کرنے کے لئے ہے کمپیوٹر کی میموری کے ساتھ ساتھ. 1611 01:20:23,030 --> 01:20:23,850 لیکن کس طرح؟ 1612 01:20:23,850 --> 01:20:29,700 >> ویسے، اس کے نیچے کہ باہر کر دیتا ڈاکو، ڈور ذخیرہ کرنے پر جو C کرتا 1613 01:20:29,700 --> 01:20:35,080 انسانی اقسام میں، یا یہ کہ کچھ دوسرے ذرائع سے آ، یہ ہے 1614 01:20:35,080 --> 01:20:39,190 کے ساتھ ان کے اختتام کا بیان ایک خصوصی character-- الٹا سلیش 1615 01:20:39,190 --> 01:20:44,750 0، صرف ایک خاص طریقہ ہے جس میں کے کہہ ایک قطار میں 80 بٹس. 1616 01:20:44,750 --> 01:20:47,950 >> لہذا A-- اس نمبر 97 یادآوری ہے. 1617 01:20:47,950 --> 01:20:51,770 چنانچہ 8 بٹس کے کچھ پیٹرن دشملو تعداد 97 کی نمائندگی کرتا ہے. 1618 01:20:51,770 --> 01:20:58,070 یہ الٹا سلیش 0 لفظی نمبر ہے 0، a.k.a. میں nul، N-U-L، پہلے کے برعکس، 1619 01:20:58,070 --> 01:20:59,630 N-U-L-L، ہم کے بارے میں بات کی تھی جس میں. 1620 01:20:59,630 --> 01:21:05,700 لیکن اب کے لئے، صرف اتنا معلوم ہے کہ یہ اس الٹا سلیش 0 ایک قطار میں صرف 80 بٹس ہے. 1621 01:21:05,700 --> 01:21:09,810 >> اور اس میں صرف اس لائن ہے بائیں سے کچھ کہے کہ ریت 1622 01:21:09,810 --> 01:21:12,610 ایک سٹرنگ، یا ایک ڈیٹا کی قسم سے تعلق رکھتا ہے. 1623 01:21:12,610 --> 01:21:15,480 اور حق کے لئے کچھ بھی کچھ اور سے تعلق رکھتا ہے. 1624 01:21:15,480 --> 01:21:17,440 Andi کی کا نام، اس دوران، جس میں صرف ضعف 1625 01:21:17,440 --> 01:21:21,310 دوسری لائن پر لپیٹ کے لئے ہوتا ہے، لیکن یہ صرف ایک جمالیاتی تفصیل ہے، 1626 01:21:21,310 --> 01:21:23,990 اسی طرح میں nul ختم کیا جاتا ہے. 1627 01:21:23,990 --> 01:21:29,290 >> یہ ایک A-N-D-I حروف کی ایک تار ہے علاوہ ایک پانچویں سیکرٹ کردار، 1628 01:21:29,290 --> 01:21:33,560 تمام 0 بٹس، صرف درمیان حد فاصل ہے کہ Andi کی اشیاء کے نام کے آخر کے طور پر بھی. 1629 01:21:33,560 --> 01:21:37,120 اور ہم نے فون تو سٹرنگ تیسری بار حاصل کمپیوٹر میں طرح ایک تار حاصل کرنے کے لئے 1630 01:21:37,120 --> 01:21:44,210 ماریا، M-A-R-I-A، اسی طرح ماریا کی ہے نام میں nul الٹا سلیش 0 ساتھ ختم. 1631 01:21:44,210 --> 01:21:47,170 >> یہ بنیادی طور پر مختلف ہے کس طرح سے ایک کمپیوٹر عام طور پر کرے گا 1632 01:21:47,170 --> 01:21:51,850 ایک عددی، یا فلوٹ، یا دیگر ذخیرہ اب بھی ڈیٹا کی اقسام، کیونکہ یاد آوری، 1633 01:21:51,850 --> 01:21:57,420 عام طور پر ایک عددی 32 بٹس ہے، یا 4 بائٹس، یا شاید بھی 64 بٹس، 1634 01:21:57,420 --> 01:21:59,100 یا آٹھ بائٹس. 1635 01:21:59,100 --> 01:22:02,620 لیکن ایک کمپیوٹر میں کئی primitives میں ایک پروگرامنگ زبان میں 1636 01:22:02,620 --> 01:22:05,550 کی ایک مقررہ تعداد ہے hood-- نیچے بائٹس 1637 01:22:05,550 --> 01:22:08,100 ہو سکتا ہے 1، ہو سکتا ہے 2، شاید 4، شاید 8. 1638 01:22:08,100 --> 01:22:13,250 >> لیکن ڈور، ڈیزائن کی طرف سے، ایک ہونا کرداروں میں متحرک تعداد. 1639 01:22:13,250 --> 01:22:16,980 آپ کو پیشگی میں پتہ نہیں ہے، جب تک Z-A-M-Y-L-A میں انسانی اقسام، 1640 01:22:16,980 --> 01:22:21,400 یا ایم-اے-R-I-A، یا A-N-D-I. تم نہیں جانتے کتنی بار صارف مارا جا رہا ہے 1641 01:22:21,400 --> 01:22:22,070 کی بورڈ. 1642 01:22:22,070 --> 01:22:26,490 لہذا، اگر آپ نہیں جانتے کہ کس طرح ایڈوانس میں بہت سے حروف 1643 01:22:26,490 --> 01:22:27,540 کی آپ کو ضرورت کے لئے جا رہے. 1644 01:22:27,540 --> 01:22:31,840 >> اور اس طرح سی صرف کی قسم کی ایک طرح چھوڑ دیتا ہے ہڈ کے نیچے سے رہسی breadcrumb کی 1645 01:22:31,840 --> 01:22:32,960 تار کے آخر میں. 1646 01:22:32,960 --> 01:22:39,280 یاد میں Z-A-M-Y-L-A کے محفوظ کرنے کے بعد، یہ بھی صرف برابر رکھتا ہے 1647 01:22:39,280 --> 01:22:40,210 ایک مدت کے. 1648 01:22:40,210 --> 01:22:45,060 ایک جملے کے آخر میں، یہ 80 بٹیں رکھتا، تو کے طور پر 1649 01:22:45,060 --> 01:22:49,120 جہاں یاد کرنے کیا Zamyla شروع ہوتا ہے اور ختم ہو جاتی ہے. 1650 01:22:49,120 --> 01:22:51,490 >> تو کیا تعلق ہے، پھر، اس پروگرام کے لئے کس طرح؟ 1651 01:22:51,490 --> 01:22:55,190 یہاں اس پروگرام، سٹرلنگ، صرف ایک طریقہ کار ہے 1652 01:22:55,190 --> 01:22:57,970 ایک تار حاصل کرنے کے لئے صارف کی طرف سے، 6 لائن. 1653 01:22:57,970 --> 01:23:01,160 سطر 7، میں ایک متغیر کا اعلان این بلایا اور یہ 0 کے برابر مقرر. 1654 01:23:01,160 --> 01:23:08,680 >> اور پھر 8 لائن میں، میں نے صرف پوچھا سوال، ن ویں کردار ہے جبکہ 1655 01:23:08,680 --> 01:23:12,120 برابر تمام 0 bits-- دوسرے الفاظ میں، ایسا نہیں ہوتا 1656 01:23:12,120 --> 01:23:14,500 برابر اس خصوصی کردار، الٹا سلیش 0، جس 1657 01:23:14,500 --> 01:23:18,470 صرف اس خاص میں nul character-- تھا آگے بڑھو اور صرف (ن) اضافہ. 1658 01:23:18,470 --> 01:23:21,460 >> اور یہ کر رکھنے، اور رکھنے کے یہ کام کر رہے، اور یہ کر رکھنے. 1659 01:23:21,460 --> 01:23:23,430 اور اس لئے بھی میں اگرچہ ہم نے استعمال کیا ہے ماضی، 1660 01:23:23,430 --> 01:23:25,181 یہ بالکل ٹھیک ہے semantically بنانا ناقابل استعمال کرنے کے لئے، 1661 01:23:25,181 --> 01:23:27,430 آپ کو صرف کرنے کی کوشش کر رہے ہیں اگر جان بوجھ کر اس وقت شمار، 1662 01:23:27,430 --> 01:23:28,720 اور صرف ن نام دینا چاہتے. 1663 01:23:28,720 --> 01:23:34,720 تو یہ صرف سوال پوچھ رکھتا ہے، تمام 0s ے کی ن ویں کردار ہے؟ 1664 01:23:34,720 --> 01:23:38,470 اگر نہیں تو، اگلی نظر کی طرف دیکھتے ہیں، ، اگلے کرنے کے لئے نظر آتے ہیں اگلے کرنے کے لئے نظر آتے ہیں، 1665 01:23:38,470 --> 01:23:39,460 اگلے کرنے کے لئے لگ رہے ہو. 1666 01:23:39,460 --> 01:23:45,540 >> لیکن جیسے ہی آپ الٹا سلیش 0 دیکھ کے طور پر، اس loop-- لکیر 9 11-- ذریعے روکتا ہے. 1667 01:23:45,540 --> 01:23:49,640 تم، جبکہ لوپ سے باہر کو توڑنے اس متغیر (ن) کے اندر چھوڑنے سے 1668 01:23:49,640 --> 01:23:54,530 کی تمام کی کل شمار STRING نے آپ کو دیکھا تھا میں حروف، 1669 01:23:54,530 --> 01:23:55,660 اس طرح یہ باہر پرنٹ. 1670 01:23:55,660 --> 01:23:56,760 تو اس کی کوشش کرتے ہیں. 1671 01:23:56,760 --> 01:23:59,500 >> بغیر، اور مجھے آگے جانے دو سٹرلنگ تقریب کا استعمال کرتے ہوئے، 1672 01:23:59,500 --> 01:24:04,240 لیکن صرف میرے اپنے مقامی ورژن استعمال یہاں سٹرلنگ بلایا، مجھے آگے جانے دو 1673 01:24:04,240 --> 01:24:07,700 اور رن سٹرلنگ، کچھ میں قسم کیا Zamyla، جو میں نے پہلے ہی پتہ طرح 1674 01:24:07,700 --> 01:24:08,670 چھ حروف ہے. 1675 01:24:08,670 --> 01:24:10,080 یہ کام کرتا ہے تو دیکھتے ہیں. 1676 01:24:10,080 --> 01:24:10,920 بے شک، یہ چھ ہے. 1677 01:24:10,920 --> 01:24:15,257 روب کے ساتھ کوشش کرتے ہیں، تین حروف، تین حروف کے ساتھ ساتھ، اور تو آگے. 1678 01:24:15,257 --> 01:24:17,340 تو یہ ہو رہا ہے کہ تمام ہے ہڈ کے نیچے. 1679 01:24:17,340 --> 01:24:19,548 اور کنکشن کو نوٹس، پھر، پہلے ہفتے کے ساتھ 1680 01:24:19,548 --> 01:24:22,370 کلاس کی، ہم کے بارے میں بات کہاں تجرید کی طرح کچھ، 1681 01:24:22,370 --> 01:24:26,960 جس خیالات کا صرف اس layering کی ہے، یا پیچیدگی، بنیادی اصولوں میں سے سب سے اوپر پر. 1682 01:24:26,960 --> 01:24:30,710 یہاں، ہم قسم کے لئے تلاش کر رہے ہیں سٹرلنگ کی ہڈ کے نیچے، 1683 01:24:30,710 --> 01:24:33,510 تو بات کرنے کے جاننے کی، یہ کس طرح لاگو کیا جائے گا؟ 1684 01:24:33,510 --> 01:24:35,232 >> اور ہم اسے خود کو دوبارہ نافذ کر سکتے. 1685 01:24:35,232 --> 01:24:37,440 لیکن ہم پھر کبھی نہیں جا رہے ہیں سٹرلنگ دوبارہ عمل درآمد. 1686 01:24:37,440 --> 01:24:39,780 ہم صرف کرنے جا رہے ہیں ترتیب میں اسٹرلنگ کا استعمال 1687 01:24:39,780 --> 01:24:42,100 اصل میں کچھ ڈور کی لمبائی حاصل کرنے کے لئے. 1688 01:24:42,100 --> 01:24:44,200 >> لیکن کوئی جادو نہیں ہے ہڈ کے نیچے. 1689 01:24:44,200 --> 01:24:46,716 نیچے کہ اگر تم جانتے ہو ڈاکو، ایک تار 1690 01:24:46,716 --> 01:24:48,090 صرف حروف کا ایک تسلسل ہے. 1691 01:24:48,090 --> 01:24:51,090 اور حروف کی اس ترتیب تمام عددی خطاب کیا جا سکتا 1692 01:24:51,090 --> 01:24:53,330 0 بریکٹ، بریکٹ کے ساتھ 1، بریکٹ 2، اور تم 1693 01:24:53,330 --> 01:24:57,420 کہ ایک تار کے آخر میں ایک ہے میں جاننا خصوصی کردار، آپ پتہ کر سکتے ہیں 1694 01:24:57,420 --> 01:25:01,710 ایک میں سب سے زیادہ کچھ بھی کرنے کے لئے کس طرح پروگرام، سب اس کی وجہ یہ فوڑے 1695 01:25:01,710 --> 01:25:03,400 پڑھنے اور میموری لکھ رہا ہے. 1696 01:25:03,400 --> 01:25:06,130 وہ تبدیل کرنے اور تلاش کر، ہے میموری پر، یا چیزوں کو منتقل کی 1697 01:25:06,130 --> 01:25:10,940 میموری میں کے ارد گرد، پرنٹنگ چیزیں سکرین، اور تو آگے پر. 1698 01:25:10,940 --> 01:25:14,800 >> تو اب اس نئی استعمال کرتے ہیں اصل ڈور کس کی تفہیم 1699 01:25:14,800 --> 01:25:17,910 ہڈ کے نیچے ہیں، اور چھیل واپس ایک دوسرے پرت 1700 01:25:17,910 --> 01:25:20,080 اب تک ہم نے کیا ہے کہ یکسر نظر انداز کر دیا گیا. 1701 01:25:20,080 --> 01:25:22,650 خاص طور پر، کسی بھی وقت میں ہم نے ایک پروگرام کو لاگو کیا ہے، 1702 01:25:22,650 --> 01:25:25,930 ہم کوڈ کے اس لائن کو لیا ہے اوپر کے قریب اہم اعلان. 1703 01:25:25,930 --> 01:25:27,810 اور ہم int اہم باطل مخصوص ہے. 1704 01:25:27,810 --> 01:25:31,240 >> اور قوسین کے اندر کہ باطل کہ اہم یہ سب وقت کہہ دیا گیا ہے 1705 01:25:31,240 --> 01:25:33,440 خود میں کوئی بحث نہیں کرتا. 1706 01:25:33,440 --> 01:25:36,210 کوئی ان پٹ اہم ہے صارف کی طرف سے حاصل کرنے کے لئے جا 1707 01:25:36,210 --> 01:25:39,020 کچھ دوسرے سے آنا ہوگا طریقہ کار، طرح حاصل INT، 1708 01:25:39,020 --> 01:25:42,040 یا فلوٹ حاصل، یا تار حاصل، یا کسی دوسرے کی تقریب. 1709 01:25:42,040 --> 01:25:44,710 لیکن یہ پتہ چلا ہے کہ آپ کو ایک پروگرام لکھنے جب، 1710 01:25:44,710 --> 01:25:47,690 آپ اصل میں وضاحت کر سکتے ہیں اس پروگرام گا کہ 1711 01:25:47,690 --> 01:25:51,730 انسانی سے آدانوں لے کمانڈ لائن میں ہی. 1712 01:25:51,730 --> 01:25:56,310 >> دوسرے الفاظ میں، اگرچہ ہم اس طرح اب تک ہیلو خوش صرف چل رہا ہے 1713 01:25:56,310 --> 01:26:00,312 یا اسی طرح کے پروگراموں، میں سے سب ہم استعمال کر رہا ہوں کہ دوسرے پروگراموں، 1714 01:26:00,312 --> 01:26:02,770 ہم نے خود نہیں لکھا تھا کہ، لے جاتے رہے ہیں، ایسا لگتا ہے، 1715 01:26:02,770 --> 01:26:05,210 کمانڈ لائن کے دلائل بنا پسند چیزوں کے. 1716 01:26:05,210 --> 01:26:07,450 آپ میک طرح کچھ کہہ، اور پھر ایک دوسرا لفظ. 1717 01:26:07,450 --> 01:26:10,950 یا بجنا، آپ کو تو بجنا کہتے ہیں، اور ایک دوسرا لفظ، ایک فائل کے نام. 1718 01:26:10,950 --> 01:26:14,410 >> یا اس سے بھی RM یا CP، کے طور پر آپ کو شاید یہ دیکھا یا پہلے سے ہی استعمال کیا ہے 1719 01:26:14,410 --> 01:26:15,880 خارج یا فائلوں کی کاپی کرنے کے لئے. 1720 01:26:15,880 --> 01:26:18,920 ان لوگوں کے تمام نام نہاد لے کمانڈ لائن کے دلائل 1721 01:26:18,920 --> 01:26:21,130 ٹرمینل فوری طور پر اضافی الفاظ. 1722 01:26:21,130 --> 01:26:23,260 لیکن اب تک، ہم نے خود نہیں کھایا ہے 1723 01:26:23,260 --> 01:26:27,080 سے ان پٹ لینے کے اس لگژری صارف جب وہ اصل چلتا 1724 01:26:27,080 --> 01:26:29,120 کمانڈ لائن پر پروگرام خود. 1725 01:26:29,120 --> 01:26:33,710 >> لیکن ہم اس کی طرف سے دوبارہ اعلان کیا کر سکتے ہیں مرکزی آگے بڑھنے، ہونے کے طور پر نہیں 1726 01:26:33,710 --> 01:26:36,750 قوسین میں صفر، لیکن ان دو دلائل 1727 01:26:36,750 --> 01:26:40,600 پہلی ایک عددی instead--، اور دوسری کوئی چیز 1728 01:26:40,600 --> 01:26:44,170 نیا، کچھ ہے کہ ہم کو فون کرنے جا رہے ہیں ایک صف، روح میں اسی طرح کچھ 1729 01:26:44,170 --> 01:26:49,220 ہم ایک فہرست کے طور پر شروع میں دیکھا اس کے لئے، لیکن ڈور کی ایک صف، ہم جلد ہی دیکھیں گے کے طور پر. 1730 01:26:49,220 --> 01:26:51,790 لیکن کی طرف سے اس کو دیکھتے ہیں مثال کے، ہم اس سے پہلے 1731 01:26:51,790 --> 01:26:53,690 ممتاز کا مطلب ہے کہ بالکل وہی جو. 1732 01:26:53,690 --> 01:26:56,520 >> میں CS50 IDE میں جانے تو یہاں، میں آگے چلا گیا ہے 1733 01:26:56,520 --> 01:27:01,840 اور نامی ایک فائل میں اعلان مندرجہ ذیل سانچے argv0.c. 1734 01:27:01,840 --> 01:27:04,120 اور صرف ایک ہی چیز کو نوٹس کہ اب تک مختلف ہے 1735 01:27:04,120 --> 01:27:08,570 میں int باطل تبدیل کر دیا جاتا ہے کہ جہاں argc سٹرنگ، اوپن بریکٹ ہے argv بند کریں 1736 01:27:08,570 --> 01:27:09,070 بریکٹ. 1737 01:27:09,070 --> 01:27:11,730 اور اب کے لئے نوٹس، وہاں ہے ان لوگوں کو بریکٹ کے اندر کچھ بھی نہیں. 1738 01:27:11,730 --> 01:27:12,620 >> کوئی نمبر نہیں ہے. 1739 01:27:12,620 --> 01:27:15,070 اور، نہیں میں نہیں ہے یا ن، یا کسی بھی دوسرے خط. 1740 01:27:15,070 --> 01:27:17,010 میں نے صرف استعمال کر رہا ہوں اب کے لئے مربع بریکٹ، 1741 01:27:17,010 --> 01:27:19,510 وجوہات کی بنا پر ہم آ جائیں گے پاس واپس صرف ایک لمحے میں. 1742 01:27:19,510 --> 01:27:21,330 >> اور اب جو میں کرنے جا رہا ہوں یہ ہے. 1743 01:27:21,330 --> 01:27:26,680 برابر کے argc برابر تو 2-- اور یہ کہ برابر برابر یاد کرتے ہیں 1744 01:27:26,680 --> 01:27:30,040 مساوات آپریٹر موازنہ کیا جاتا ہے بائیں اور مساوات کے لئے صحیح. 1745 01:27:30,040 --> 01:27:31,790 یہ اسائنمنٹ نہیں ہے آپریٹر، ہے جو 1746 01:27:31,790 --> 01:27:36,510 جس کا مطلب نقل واحد برابر علامت، دائیں سے کچھ قدر سے بائیں. 1747 01:27:36,510 --> 01:27:42,840 >> جہاں argc 2 برابر برابر تو، میں چاہتا ہوں کہہ دو، printf کے، ہیلو، فیصد، نئی لائن، 1748 01:27:42,840 --> 01:27:47,340 اور پھر in-- پلگ اور یہاں کیا نیا ہے وجوہات کے لئے چال ہے argv بریکٹ 1، 1749 01:27:47,340 --> 01:27:48,840 ہم واپس کرنے کے لئے ایک لمحے میں آ جائیں گے کہ. 1750 01:27:48,840 --> 01:27:52,110 جہاں argc نہیں ہوتا اگر اور برابر 2، تمہیں معلوم ہے؟ 1751 01:27:52,110 --> 01:27:57,400 ، چلو بس آگے بڑھو اور ہمیشہ کی طرح، تعداد کے طور پر باہر ہیلو کوئی متبادل کے ساتھ دنیا. 1752 01:27:57,400 --> 01:28:02,710 >> تو یہ محسوس ہوتا ہے کہ argc، جس پر اگر ، دلیل شمار کے لئے کھڑا 2 برابر، 1753 01:28:02,710 --> 01:28:04,740 میں باہر پرنٹ کرنے کے لئے جا رہا ہوں ہیلو کچھ نہ کچھ. 1754 01:28:04,740 --> 01:28:07,560 دوسری صورت میں، ڈیفالٹ کی طرف سے، میں ہوں ہیلو دنیا پرنٹ کرنے کے لئے کی جا رہی. 1755 01:28:07,560 --> 01:28:08,770 تو اس کا کیا مطلب ہے؟ 1756 01:28:08,770 --> 01:28:15,550 >> ویسے، مجھے آگے بڑھو اور محفوظ کرنے دیں اس فائل، اور پھر argv0 کروں، 1757 01:28:15,550 --> 01:28:18,940 اور پھر ./argv0، درج. 1758 01:28:18,940 --> 01:28:20,300 اور یہ دنیا ہیلو کا کہنا ہے کہ. 1759 01:28:20,300 --> 01:28:21,260 اب، یہ کیوں ہے؟ 1760 01:28:21,260 --> 01:28:24,730 >> ٹھیک ہے، یہ کسی بھی وقت آپ کو باہر کر دیتا ہے کمانڈ لائن پر ایک پروگرام چلاتے ہیں، 1761 01:28:24,730 --> 01:28:29,570 آپ میں بھرنے کر رہے ہیں کیا ہم کریں گے عام طور پر ایک دلیل ویکٹر فون کریں. 1762 01:28:29,570 --> 01:28:33,100 دوسرے الفاظ، خود کار طریقے سے کمپیوٹر، آپریٹنگ سسٹم، 1763 01:28:33,100 --> 01:28:38,340 آپ کے پروگرام کے حوالے کی جا رہی ہے خود الفاظ کی سب کی ایک فہرست 1764 01:28:38,340 --> 01:28:40,850 انسانی میں ٹائپ فوری طور پر، کی صورت میں آپ 1765 01:28:40,850 --> 01:28:43,790 پروگرامر کرنا چاہتا ہوں کہ معلومات کے ساتھ کچھ. 1766 01:28:43,790 --> 01:28:48,540 اور اس معاملے میں، صرف لفظ میں نے فوری طور پر ٹائپ کیا ہے ./argv0 ہے. 1767 01:28:48,540 --> 01:28:55,420 >> اور تو ہے کہ دلائل کی تعداد میرے پروگرام میں منظور کیا جا رہا ہے صرف ایک ہے. 1768 01:28:55,420 --> 01:28:58,880 دوسرے الفاظ میں، دلیل شمار، دوسری صورت میں argc کے طور پر جانا 1769 01:28:58,880 --> 01:29:00,970 یہاں ایک عددی طور پر، صرف ایک ہے. 1770 01:29:00,970 --> 01:29:03,000 ایک، کورس کے، برابر دو نہیں کرتا. 1771 01:29:03,000 --> 01:29:05,980 اور اس طرح یہ پرنٹس کیا، ہیلو دنیا ہے. 1772 01:29:05,980 --> 01:29:08,170 >> لیکن مجھے یہ کہیں لے. 1773 01:29:08,170 --> 01:29:09,930 تو میں کہوں گا argv0. 1774 01:29:09,930 --> 01:29:12,740 اور پھر کس طرح ماریا کے بارے میں؟ 1775 01:29:12,740 --> 01:29:14,990 اور پھر درج کریں مارا. 1776 01:29:14,990 --> 01:29:18,020 >> اور جادوئی یہاں کیا ہوتا ہے محسوس کریں. 1777 01:29:18,020 --> 01:29:22,640 اب، اس کے بجائے ہیلو دنیا کی، میرے پاس ہے اس پروگرام کے رویے کو تبدیل کر دیا 1778 01:29:22,640 --> 01:29:26,310 حاصل سے نہیں کی ان پٹ لے کر سٹرنگ یا کسی دوسرے کی تقریب، 1779 01:29:26,310 --> 01:29:30,570 لیکن، بظاہر، میرے حکم سے خود، میں اصل میں ٹائپ کیا. 1780 01:29:30,570 --> 01:29:35,720 اور میں کی طرف سے پھر یہ کھیل کھیل سکتے مثال کے طور پر، لیے Stelios کرنے کے لئے اسے تبدیل کرنے کے. 1781 01:29:35,720 --> 01:29:38,400 >> اور اب میں اب بھی ایک اور نام دیکھ. 1782 01:29:38,400 --> 01:29:40,540 اور یہاں، میں نے سے Andi کہہ سکتا. 1783 01:29:40,540 --> 01:29:42,137 اور مجھے کیا Zamyla کہہ سکتا. 1784 01:29:42,137 --> 01:29:45,220 اور ہم، دن بھر یہ کھیل کھیل سکتے صرف مختلف اقدار میں plugging، 1785 01:29:45,220 --> 01:29:49,550 اتنی دیر میں بالکل فراہم کرنے کے طور فوری طور پر میں دو الفاظ، 1786 01:29:49,550 --> 01:29:52,260 اس طرح کے argc، میری دلیل شمار ہے کہ، 2 ہے. 1787 01:29:52,260 --> 01:29:57,240 >> مجھے نام میں پلگ ہے کہ دیکھتے ہو printf کے، یہاں یہ شرط فی؟ 1788 01:29:57,240 --> 01:30:00,550 تو کیا اب ہم رکھتے دکھائی ابیوینجک صلاحیت 1789 01:30:00,550 --> 01:30:04,410 ایک اور میکانزم سے ان پٹ لینے کے، نام نہاد کمانڈ لائن سے، 1790 01:30:04,410 --> 01:30:07,000 بلکہ انتظار کرنے کے مقابلے صارف کا پروگرام چلتا ہے جب تک، 1791 01:30:07,000 --> 01:30:10,220 اور پھر اس کے یا اس کو فوری طور پر حاصل سٹرنگ کی طرح کچھ کا استعمال کرتے ہوئے. 1792 01:30:10,220 --> 01:30:11,230 >> تو یہ کیا ہے؟ 1793 01:30:11,230 --> 01:30:15,010 جہاں argc، پھر، صرف ایک عدد صحیح ہے، words-- دلائل کی تعداد 1794 01:30:15,010 --> 01:30:18,540 کہ میں فراہم صارف فوری طور پر، ٹرمنل ونڈو میں، 1795 01:30:18,540 --> 01:30:20,110 پروگرام کا نام بھی شامل ہے. 1796 01:30:20,110 --> 01:30:23,340 لہذا ہمارے ./argv0 مؤثر طریقے سے، ہے، پروگرام کا نام، 1797 01:30:23,340 --> 01:30:24,520 یا کس طرح میں نے پروگرام کو چلانے کے. 1798 01:30:24,520 --> 01:30:25,810 >> کہ ایک لفظ کے طور پر ہوگا. 1799 01:30:25,810 --> 01:30:27,080 تو argc 1 ہو جائے گا. 1800 01:30:27,080 --> 01:30:29,750 لیکن میں لیے Stelios جب لکھنا، یا Andi کی، یا کیا Zamyla، یا ماریا، 1801 01:30:29,750 --> 01:30:31,660 مطلب یہ ہے کہ دلیل شمار دو ہے. 1802 01:30:31,660 --> 01:30:33,910 اور اس طرح اب میں منظور دو الفاظ نہیں ہے. 1803 01:30:33,910 --> 01:30:36,070 >> اور نوٹس، ہم اس منطق جاری رکھ سکتے ہیں. 1804 01:30:36,070 --> 01:30:39,050 میں اصل میں کہتے ہیں ZAMYLA چان کی طرح کچھ، 1805 01:30:39,050 --> 01:30:42,200 ایک مکمل نام، اس طرح گزر کل میں تین دلائل، 1806 01:30:42,200 --> 01:30:47,410 اب یہ ڈیفالٹ دوبارہ کہتی ہے، کیونکہ، کورس کے، 3 برابر 2 کرتا ہے. 1807 01:30:47,410 --> 01:30:54,080 >> اور اس طرح اس طرح میں، میرے پاس ھیں ہے argv اس نئی دلیل کے ذریعے رسائی 1808 01:30:54,080 --> 01:30:56,080 ہم تکنیکی طور پر کر سکتے تھے کہ ہم چاہتے ہیں کسی بھی چیز کو فون. 1809 01:30:56,080 --> 01:30:58,940 لیکن کنونشن کی طرف سے، یہ ہے ہے argv اور argc، بالترتیب. 1810 01:30:58,940 --> 01:31:04,470 ہے argv، دلیل ویکٹر، قسم ہے ایک پروگرامنگ کے لئے ایک متبادل کے 1811 01:31:04,470 --> 01:31:07,140 C میں خصوصیت ایک صف بلایا. 1812 01:31:07,140 --> 01:31:14,410 >> ایک صف اسی طرح کی اقدار کی ایک فہرست ہے واپس، واپس کرنے کے لئے واپس کرنے کے لئے واپس کرنے کے لئے. 1813 01:31:14,410 --> 01:31:17,810 دوسرے الفاظ میں، اگر ایک یہیں پر میں ہے RAM، اگلے ایک حق یہ کرنے کے لئے اگلے ہے، 1814 01:31:17,810 --> 01:31:18,800 اور صحیح اس کے آگے. 1815 01:31:18,800 --> 01:31:20,101 وہ سب جگہ پر نہیں ہیں. 1816 01:31:20,101 --> 01:31:23,100 اور یہ کہ مؤخر الذکر کے منظر نامے، جہاں چیزیں تمام میموری میں جگہ ختم ہو گئے ہیں، 1817 01:31:23,100 --> 01:31:25,082 اصل میں ایک طاقتور خصوصیت ہو سکتا ہے. 1818 01:31:25,082 --> 01:31:28,040 لیکن ہم جب ہم اس پر واپس آ جائیں گے اچھے ڈیٹا ڈھانچے کے بارے میں بات. 1819 01:31:28,040 --> 01:31:32,260 ابھی کے لئے، ایک صف صرف ایک ہے ملحق میموری کا حصہ، 1820 01:31:32,260 --> 01:31:36,520 میں سے ہر ایک جس کے عناصر ہیں واپس، واپس کرنے کے لئے، واپس کرنے کے لئے، واپس کرنے کے لئے، 1821 01:31:36,520 --> 01:31:38,050 اور عام طور پر ایک ہی قسم. 1822 01:31:38,050 --> 01:31:42,630 >> تو آپ کو ایک کی طرف سے، کے بارے میں کیا سوچتے ہیں لمحے پہلے، ایک تار کیا ہے؟ 1823 01:31:42,630 --> 01:31:50,460 ویسے، ایک سٹرنگ، کیا Zamyla طرح، Z-A-M-Y-L-A، تکنیکی طور پر، ہے، 1824 01:31:50,460 --> 01:31:51,400 صرف ایک سرنی. 1825 01:31:51,400 --> 01:31:53,700 یہ حروف کی ایک سرنی ہے. 1826 01:31:53,700 --> 01:31:59,250 >> اور اس طرح ہم واقعی اس، کے طور پر اپنی طرف متوجہ تو میں ، میموری کا ایک حصہ کے طور پر، پہلے ہی کیا 1827 01:31:59,250 --> 01:32:04,510 یہ ان کا ہے کہ ہر ایک کا پتہ چلتا ہے حروف ایک بائٹ تک لے جاتا ہے. 1828 01:32:04,510 --> 01:32:07,630 اور پھر یہ کہ خاص نہیں ہے سینٹینل کردار، الٹا سلیش 0، 1829 01:32:07,630 --> 01:32:12,360 یا تمام آٹھ 0 بٹس، کہ اس سٹرنگ کے اختتام کے درمیان حد فاصل. 1830 01:32:12,360 --> 01:32:15,090 تو ایک تار، بدل جاتا ہے باہر،، unquote جو سٹرنگ اقتباس 1831 01:32:15,090 --> 01:32:20,580 chara-- کے صرف ایک صف ہے ایک حقیقی ڈیٹا کی قسم ہونے حروف 1832 01:32:20,580 --> 01:32:24,560 >> اور اب argv، meanwhile-- کے پروگرام پر واپس چلتے ہیں. 1833 01:32:24,560 --> 01:32:29,582 ہے argv، ہم لفظ نظر اگرچہ سٹرنگ یہاں، ایک تار کا بھی نہیں ہے. 1834 01:32:29,582 --> 01:32:33,640 ہے argv، دلیل ویکٹر، ڈور کی ایک صف ہے. 1835 01:32:33,640 --> 01:32:37,620 >> تم میں سے ایک صف ہو سکتا ہے تو صرف کے طور پر حروف، آپ کو اعلی سطح ہے کر سکتے ہیں، 1836 01:32:37,620 --> 01:32:46,279 strings-- کی ایک سرنی لہذا، مثال کے طور پر، میں نے ایک لمحے پہلے ٹائپ جب ./argv0 1837 01:32:46,279 --> 01:33:00,150 argv0، خلائی Z-A-M-Y-L-A، میں نے اس کا دعوی کیا ہے argv، نے اسے ./argv0 میں دو ڈور تھی 1838 01:33:00,150 --> 01:33:03,185 اور Z-A-M-Y-L-A. میں دوسرے الفاظ، جہاں argc 2 تھا. 1839 01:33:03,185 --> 01:33:03,980 ایسا کیوں ہے؟ 1840 01:33:03,980 --> 01:33:08,370 >> ویسے، مؤثر طریقے سے، کیا جا رہا ہے پر ہے ان ڈور میں سے ہر ایک یہ کہ 1841 01:33:08,370 --> 01:33:13,990 ، کورس کے کرداروں میں سے ایک صف ہے، پہلے کی طرح، جن میں سے ہر ایک کے حروف 1842 01:33:13,990 --> 01:33:15,670 ایک بائٹ تک لے جاتا ہے. 1843 01:33:15,670 --> 01:33:19,720 اور اصل 0 الجھانے نہیں ہے 0 ساتھ پروگرام کے نام پر، 1844 01:33:19,720 --> 01:33:22,040 جس کا مطلب ہے تمام 80 بٹس. 1845 01:33:22,040 --> 01:33:27,140 اور کیا Zamyla، دریں اثنا، اب بھی ہے بھی حروف کی ایک سرنی. 1846 01:33:27,140 --> 01:33:31,450 >> دن کے آخر میں تو، یہ واقعی ہڈ کے نیچے اس طرح لگ رہا. 1847 01:33:31,450 --> 01:33:38,800 لیکن کس طرح اہم نوعیت کی طرف سے، ہے argv کام کرتا ہے، مجھے اس کی سب کو لپیٹ کرنے کی اجازت دیتا 1848 01:33:38,800 --> 01:33:44,810 ، اگر آپ، ایک بڑی سرنی میں اپ ہم تھوڑا سا زیادہ کے آسان بنانے کے ہیں، کہ 1849 01:33:44,810 --> 01:33:48,180 تصویر کی طرح اور ایسا نہیں کرتے لگتا ہے کیا کافی وہاں کو پیمانے کے اسے اپنی طرف متوجہ، 1850 01:33:48,180 --> 01:33:56,720 اس صف سب سے پہلے صرف 2 سائز کے ہے، ایک تار پر مشتمل ہے جس کے عنصر، 1851 01:33:56,720 --> 01:33:59,230 دوسرا عنصر جس میں ایک سٹرنگ پر مشتمل. 1852 01:33:59,230 --> 01:34:01,687 اگر آپ اور، کے نتیجے میں، قسم میں سے ہر ایک پر میں زوم 1853 01:34:01,687 --> 01:34:03,770 وہ ڈور، کی آپ کو کیا ہڈ کے نیچے دیکھیں 1854 01:34:03,770 --> 01:34:07,190 ہر ایک سٹرنگ صرف ہے کہ ہے حروف کی ایک سرنی. 1855 01:34:07,190 --> 01:34:11,680 >> اب، صرف ڈور کے ساتھ کے طور پر، ہم تک رسائی حاصل کرنے کے قابل تھے 1856 01:34:11,680 --> 01:34:15,260 ایک تار میں کردار میں ویں کرنا کہ مربع بریکٹ سنکیتن کا استعمال کرتے ہوئے. 1857 01:34:15,260 --> 01:34:17,320 اسی طرح، arrays کے ساتھ عام طور پر، ہم کر سکتے ہیں 1858 01:34:17,320 --> 01:34:22,700 حاصل کرنے کے لئے مربع بریکٹ سنکیتن کا استعمال ایک صف میں Strings کی کسی بھی تعداد میں؟ 1859 01:34:22,700 --> 01:34:25,100 مثال کے طور پر، مجھے دو آگے بڑھو اور اس کے کیا. 1860 01:34:25,100 --> 01:34:32,420 >> مجھے آگے بڑھو اور argv1.c تخلیق کرتے ہیں، جس میں ایک چھوٹا سا مختلف اس وقت ہے. 1861 01:34:32,420 --> 01:34:35,635 اس کے بجائے argc2 کے لئے جانچ پڑتال کی، میں بجائے ایسا کرنے کے لئے جا رہا ہوں. 1862 01:34:35,635 --> 01:34:41,270 int میں 0 حاصل کے لیے، میں بھی کم ہے argc کے مقابلے میں، میں پلس پلس، 1863 01:34:41,270 --> 01:34:47,920 اور پھر اس کے اندر باہر پرنٹ، فیصد ے، نئی لائن، اور اس کے بعد 1864 01:34:47,920 --> 01:34:50,740 ہے argv بریکٹ میں. 1865 01:34:50,740 --> 01:34:55,220 >> تو دوسرے الفاظ میں، میں نے کے ساتھ نمٹنے نہیں کر رہا ہوں اس وقت انفرادی حروف. 1866 01:34:55,220 --> 01:35:00,190 ہے argv، ان خالی مربع طرف سے تقاضا طور نام ہے argv کے دائیں منحنی خطوط وحدانی، 1867 01:35:00,190 --> 01:35:03,320 ہے argv ڈور کی ایک صف ہے کا مطلب ہے. 1868 01:35:03,320 --> 01:35:04,870 اور argc صرف ایک int ہے. 1869 01:35:04,870 --> 01:35:08,800 >> یہاں یہ لائن، 6، ہے سیٹ کہ میں 0 کے برابر. 1870 01:35:08,800 --> 01:35:11,980 ، تک تمام راستہ کوڈ لیکن جہاں argc، بھی شامل نہیں. 1871 01:35:11,980 --> 01:35:14,010 اور پھر ہر iteration پر، ایک تار باہر پرنٹ. 1872 01:35:14,010 --> 01:35:14,800 کیا سٹرنگ؟ 1873 01:35:14,800 --> 01:35:17,270 >> argv میں میں ویں سٹرنگ. 1874 01:35:17,270 --> 01:35:19,530 تو جبکہ میں تھا اس سے پہلے مربع بریکٹ کا استعمال کرتے ہوئے 1875 01:35:19,530 --> 01:35:22,180 سنکیتن پر ith میں حاصل کرنے کے لئے ایک تار میں کردار، ابھی 1876 01:35:22,180 --> 01:35:27,240 I مربع بریکٹ سنکیتن استعمال کر رہا ہوں ایک صف میں ith STRING پر حاصل کرنے کے لئے. 1877 01:35:27,240 --> 01:35:30,310 تو یہ ایک پرت کی طرح ہے مندرجہ بالا، تصوراتی. 1878 01:35:30,310 --> 01:35:35,390 >> اور اس طرح اس کے بارے میں صاف کیا ہے اب پروگرام، I argv1 مرتب تو، 1879 01:35:35,390 --> 01:35:42,067 اور پھر ./argv1 کرتے، اور پھر ٹائپ کریں FOO بار باز کی طرح کچھ میں، 1880 01:35:42,067 --> 01:35:45,400 جس میں تین ڈیفالٹ الفاظ ہیں کہ ایک ہیں کمپیوٹر سائنسدان کسی بھی وقت کے لئے پہنچ جاتا 1881 01:35:45,400 --> 01:35:51,010 وہ کچھ پلیس ہولڈر الفاظ کی ضرورت ہے، اور Enter دبائیں، ان الفاظ میں سے ہر ایک، 1882 01:35:51,010 --> 01:35:54,980 پروگرام کا نام، سمیت ، سب سے پہلے مقام پر ہے argv میں ہے 1883 01:35:54,980 --> 01:35:58,320 ختم ہو جاتی ہے ایک وقت میں ایک چھپی ہوئی کیا جا رہا ہے. 1884 01:35:58,320 --> 01:36:05,290 اور میں نے اس کو تبدیل، اور میں کہتا ہوں کہ اگر argv1 ZAMYLA چان کی طرح کچھ، 1885 01:36:05,290 --> 01:36:08,800 ہم ان تینوں کو حاصل argv0 ہے جس کے الفاظ،، 1886 01:36:08,800 --> 01:36:14,400 argv1، argv2، اس میں کیونکہ کیس کے argc، شمار، 3 ہے. 1887 01:36:14,400 --> 01:36:20,020 >> لیکن کیا صاف ہے آپ سمجھ تو ہے کہ ہے argv، ڈور کے صرف ایک صف ہے 1888 01:36:20,020 --> 01:36:24,910 اور آپ کو ایک تار ہے کہ سمجھ حروف کی ایک صف ہے، 1889 01:36:24,910 --> 01:36:29,470 ہم اصل میں اس قسم کی استعمال کر سکتے ہیں مربع بریکٹ سنکیتن ایک سے زیادہ بار 1890 01:36:29,470 --> 01:36:33,320 ایک تار منتخب کرنے کے لئے، اور پھر منتخب کریں سٹرنگ کے اندر ایک کردار، 1891 01:36:33,320 --> 01:36:35,730 میں مندرجہ ذیل گہرے طور ڈائیونگ. 1892 01:36:35,730 --> 01:36:40,100 اس مثال میں، مجھے جانے دو آگے اور اس argv2.c فون کریں. 1893 01:36:40,100 --> 01:36:43,920 1894 01:36:43,920 --> 01:36:50,180 اور اس مثال میں، مجھے آگے جانے دو اور میں حاصل INT 0 لئے مندرجہ ذیل کروں، 1895 01:36:50,180 --> 01:36:53,286 میں argc کے مقابلے میں کم ہے، میں کے علاوہ پلس، پہلے کی طرح. 1896 01:36:53,286 --> 01:36:55,910 تو دوسرے words-- اور اب اس میں کافی پیچیدہ ہو رہی ہے. 1897 01:36:55,910 --> 01:36:59,940 پھر میں کہنے جا رہا ہوں argv میں ڈور پر iterate، 1898 01:36:59,940 --> 01:37:01,294 اپنے آپ کو ایک تبصرہ کے طور پر. 1899 01:37:01,294 --> 01:37:03,960 اور پھر میں نے ایک کی ضرورت کے لئے جا رہا ہوں ، لوپ کے لئے اندر در اندر شاید آپ جس 1900 01:37:03,960 --> 01:37:06,290 کیا کیا، یا سمجھا ، کر شروع میں جہاں، 1901 01:37:06,290 --> 01:37:08,600 میرے کہنے کا مجھے int-- جا رہا ہوں پھر میں استعمال کرنے کے لئے نہیں جا رہا، 1902 01:37:08,600 --> 01:37:12,590 کیونکہ میں سائے کے لئے نہیں کرنا چاہتے ہیں، یا چھانٹیں کے موجودہ میں ادلیکھت. 1903 01:37:12,590 --> 01:37:15,780 >> I، کرنے، کے بجائے، J کہنا جا رہا ہوں، کیونکہ کہ میں بعد متغیر میرے جانے ہے، 1904 01:37:15,780 --> 01:37:18,590 جب میں نے صرف کے لئے کوشش کر رہا ہوں سادہ تعداد شمار. 1905 01:37:18,590 --> 01:37:28,850 جے ہو جاتا ہے 0-- اور بھی، N، میں جا رہا ہے ، ہے argv بریکٹ میں کی سخت لمبائی حاصل 1906 01:37:28,850 --> 01:37:36,030 اتنی دیر J میٹر سے بھی کم ہے کے طور پر، J پلس پلس، مندرجہ ذیل کام کریں. 1907 01:37:36,030 --> 01:37:37,500 اور یہاں دلچسپ حصہ ہے. 1908 01:37:37,500 --> 01:37:46,330 >> ایک کردار اور ایک نئی سطر باہر پرنٹ، ہے argv بریکٹ میں، بریکٹ J میں plugging. 1909 01:37:46,330 --> 01:37:47,940 ٹھیک ہے، تو نے مجھے یہاں کچھ تبصرے شامل ہیں. 1910 01:37:47,940 --> 01:37:54,820 کرداروں پر iterate موجودہ تار میں، 1911 01:37:54,820 --> 01:38:02,290 میں میں ویں سٹرنگ پرنٹ J-ویں کردار. 1912 01:38:02,290 --> 01:38:04,630 تو اب، چلو غور کرتے ہیں ان تبصرے کا کیا مطلب. 1913 01:38:04,630 --> 01:38:06,750 >> ڈور پر iterate argv-- میں کتنے 1914 01:38:06,750 --> 01:38:09,300 ڈور، argv میں ہیں جو ایک صف ہے؟ 1915 01:38:09,300 --> 01:38:13,420 argc کے بہت سے، تو میں iterating رہا ہوں اس میں جہاں argc تک برابر 0. 1916 01:38:13,420 --> 01:38:20,020 دریں اثنا، کتنے حروف argv میں میں ویں تار میں ہیں؟ 1917 01:38:20,020 --> 01:38:22,880 >> ویسے، اس کا جواب حاصل کرنے کے لئے، میں نے صرف سٹرنگ کی لمبائی کو فون 1918 01:38:22,880 --> 01:38:26,810 موجودہ سٹرنگ میں دیکھ بھال پر ہے argv بریکٹ میں ہے جس کے بارے میں. 1919 01:38:26,810 --> 01:38:30,090 اور میں عارضی طور پر کہ ذخیرہ کرنے کے لئے جا رہا ہوں قدر (ن) میں، صرف کیشنگ کے مقاصد کے لئے، 1920 01:38:30,090 --> 01:38:31,590 کارکردگی کے لئے یہ یاد رکھنا. 1921 01:38:31,590 --> 01:38:36,330 اور پھر میں، 0 کے لئے J ابتدا جا رہا ہوں جے این سے بھی کم ہے جب تک جا رکھنے، 1922 01:38:36,330 --> 01:38:38,430 اور ہر iteration اضافہ J پر. 1923 01:38:38,430 --> 01:38:41,030 >> اور پھر یہاں، فی 12 لائن پر میرا تبصرہ، 1924 01:38:41,030 --> 01:38:43,390 ایک کردار کو پرنٹ، ایک نئی سطر کے بعد کیا، 1925 01:38:43,390 --> 01:38:48,140 خاص طور پر ہے argv بریکٹ مجھے میں ویں سٹرنگ دیتا ہے 1926 01:38:48,140 --> 01:38:51,690 argv-- تو سب سے پہلے لفظ میں، دوسرا لفظ، تیسرا لفظ، جو کچھ بھی. 1927 01:38:51,690 --> 01:38:57,370 گہرے اور پھر جے dives کے، اور ہو جاتا ہے مجھے اس لفظ کی J-ویں کردار. 1928 01:38:57,370 --> 01:39:02,200 اور اگر ایسا ہے، اثر میں، آپ کا علاج کر سکتے ہیں ہے argv ایک کثیر جہتی کے طور پر، 1929 01:39:02,200 --> 01:39:06,050 ایک دو جہتی، صف کے طور پر، جس کے تحت دکھاوی کے ہر لفظ قسم 1930 01:39:06,050 --> 01:39:08,580 آپ کے دماغ کی میں اس طرح آنکھ، اور ہر کردار 1931 01:39:08,580 --> 01:39:10,930 قسم کے میں مشتمل ہے ایک کالم، اگر اس کی مدد کرتا ہے. 1932 01:39:10,930 --> 01:39:13,260 >> حقیقت میں، ہم جب چڑھاو اس کے علاوہ مستقبل ہفتوں میں، 1933 01:39:13,260 --> 01:39:15,580 یہ ایک چھوٹا سا ہونے جا رہا ہے اس سے بھی زیادہ بہتر. 1934 01:39:15,580 --> 01:39:17,800 لیکن اگر تم واقعی کر سکتے ہیں اب کے لئے، اس کے بارے میں سوچنا، 1935 01:39:17,800 --> 01:39:22,110 صرف اس دو جہتی کے طور پر صف، جس کے تحت ایک اس کی سطح 1936 01:39:22,110 --> 01:39:23,260 ڈور کی تمام ہے. 1937 01:39:23,260 --> 01:39:26,760 اور پھر آپ گہری، آپ میں گوتا لگا تو انفرادی حروف کو حاصل کر سکتے ہیں 1938 01:39:26,760 --> 01:39:29,600 یہاں اس سنکیتن کا استعمال کرتے ہوئے کی طرف سے اس میں. 1939 01:39:29,600 --> 01:39:31,620 >> لہذا خالص اثر کیا ہے؟ 1940 01:39:31,620 --> 01:39:34,970 مجھے آگے جانے دو اور argv2-- رفو اس کے بنانے کے. 1941 01:39:34,970 --> 01:39:36,210 میں یہاں ایک غلطی کی. 1942 01:39:36,210 --> 01:39:40,160 لپیٹ اعلان لائبریری تقریب سٹرلنگ. 1943 01:39:40,160 --> 01:39:42,190 تو یہ ہر وقت، یہ ہے شاید مناسب 1944 01:39:42,190 --> 01:39:45,130 ہم قسم کی ختم کر رہے ہیں کہ بالکل ہم کہاں شروع کیا. 1945 01:39:45,130 --> 01:39:48,160 >> I، مصیبت لپیٹ اعلان لائبریری تقریب سٹرلنگ. 1946 01:39:48,160 --> 01:39:48,987 OK، ایک منٹ انتظار کرو. 1947 01:39:48,987 --> 01:39:51,070 مجھے وہ یاد، خاص طور پر چونکہ یہ یہیں ہے. 1948 01:39:51,070 --> 01:39:54,490 I میں string.h کے شامل کرنے کی ضرورت پروگرام کے اس ورژن. 1949 01:39:54,490 --> 01:40:00,050 >> مجھے آگے بڑھو اور شامل ہیں string.h کے، نجات، آگے بڑھو 1950 01:40:00,050 --> 01:40:04,460 اور argv2 تو recompile. 1951 01:40:04,460 --> 01:40:08,390 اور اب، ہم یہاں جانا، argv2، درج. 1952 01:40:08,390 --> 01:40:10,590 اور یہ چھوٹا ہے اگرچہ پہلی نظر میں خفیہ، 1953 01:40:10,590 --> 01:40:15,690 نوٹس کہ، بے شک، کیا چھپا ہوا ہے ڈاٹ argv2 ہے. 1954 01:40:15,690 --> 01:40:19,970 >> لیکن میں بعد کچھ الفاظ ٹائپ کریں تو فوری طور پر، argv2 ZAMYLA چان کی طرح، 1955 01:40:19,970 --> 01:40:22,560 بھی ایک چھوٹی سی، درج پہلی نظر میں خفیہ. 1956 01:40:22,560 --> 01:40:30,540 لیکن ہم واپس سکرال، ./argv2 Z-A-M-Y-L-A C-H-A-N. 1957 01:40:30,540 --> 01:40:32,190 تو ہم ہر لفظ پر اعادہ کیا ہے. 1958 01:40:32,190 --> 01:40:37,770 اور، کے نتیجے میں، ہم سے زیادہ اعادہ کیا ہے ایک لفظ کے اندر اندر ہر کردار. 1959 01:40:37,770 --> 01:40:40,040 >> اب، اس کے سب کے بعد، احساس ہے کہ 1960 01:40:40,040 --> 01:40:43,120 ایک نے دوسرے کو تفصیل ہم اس قسم رہا ہوں کے اس پورے وقت کو نظر انداز. 1961 01:40:43,120 --> 01:40:46,180 ہم صرف الگ چھیڑا کیا مرکزی کے آدانوں ہو سکتا ہے؟ 1962 01:40:46,180 --> 01:40:47,780 کیا مین کی پیداوار کے بارے میں؟ 1963 01:40:47,780 --> 01:40:50,540 >> اس وقت کے تمام، ہم کیا گیا ہے صرف کاپی اور چسپاں 1964 01:40:50,540 --> 01:40:53,870 مرکزی کے سامنے لفظ INT، جیسا کہ آپ دیکھ سکتے ہو آن لائن اگرچہ، 1965 01:40:53,870 --> 01:40:58,340 کبھی کبھی پرانے ورژن میں غلط طریقے سے C اور compilers کی، وہ باطل کا کہنا ہے کہ، 1966 01:40:58,340 --> 01:40:59,410 یا کچھ بھی نہیں. 1967 01:40:59,410 --> 01:41:01,580 لیکن، واقعی، کے لئے ورژن C کی ہم استعمال کر رہے ہیں کہ، 1968 01:41:01,580 --> 01:41:06,180 C 11، یا 2011، کا احساس کہ یہ INT ہونا چاہئے. 1969 01:41:06,180 --> 01:41:09,300 اور یہ تو ہونا چاہئے باطل یا argc اور argv کے یہاں. 1970 01:41:09,300 --> 01:41:10,790 >> لیکن کیوں int اہم؟ 1971 01:41:10,790 --> 01:41:12,480 یہ اصل میں کیا واپس آ رہا ہے؟ 1972 01:41:12,480 --> 01:41:16,280 ٹھیک ہے، یہ، اس وقت کے سب باہر کر دیتا ہے کسی بھی وقت آپ کو ایک پروگرام مین لکھا ہے 1973 01:41:16,280 --> 01:41:18,440 ہمیشہ کچھ واپس آ رہا ہے. 1974 01:41:18,440 --> 01:41:19,960 لیکن یہ تو چپکے سے کر رہا ہے. 1975 01:41:19,960 --> 01:41:23,350 >> ایک ایسی چیز ہے INT، لکیر کے طور پر 5 سے پتہ چلتا ہے. 1976 01:41:23,350 --> 01:41:24,225 لیکن کیا INT؟ 1977 01:41:24,225 --> 01:41:26,100 ٹھیک ہے، یہ وہاں ہے پروگرامنگ میں کنونشن، 1978 01:41:26,100 --> 01:41:29,790 کچھ بھی نہیں ہے تو جس کے تحت غلط چلا گیا اور سب کچھ ٹھیک ہے، 1979 01:41:29,790 --> 01:41:34,250 پروگرام اور افعال عام طور پر واپس لوٹنے کے لئے کسی حد تک counterintuitively-- 1980 01:41:34,250 --> 01:41:35,230 0. 1981 01:41:35,230 --> 01:41:38,070 0 عام طور پر سب کچھ ٹھیک ہے ابیوینجک ہے. 1982 01:41:38,070 --> 01:41:40,610 آپ سوچ تو اگرچہ بہت سے سیاق و سباق میں اس کو جھوٹے جو، 1983 01:41:40,610 --> 01:41:42,930 یہ اصل میں عام طور پر ایک اچھی بات کا مطلب 1984 01:41:42,930 --> 01:41:49,560 >> دریں اثنا، ایک پروگرام آنے کی صورت میں 1، یا منفی 1، یا 5، یا منفی 42، 1985 01:41:49,560 --> 01:41:52,941 یا کسی بھی غیر 0 قدر، کہ عام طور پر ابیوینجک 1986 01:41:52,941 --> 01:41:54,190 کہ کچھ غلط چلا گیا ہے. 1987 01:41:54,190 --> 01:41:56,700 سچ تو یہ ہے، آپ کے اپنے میک یا پی سی پر، آپ اصل میں دیکھا ہے ہو سکتا 1988 01:41:56,700 --> 01:42:01,050 ایک غلطی پیغام، جس کے تحت یہ کچھ نہ کچھ، کی خرابی کا کہنا ہے کہ 1989 01:42:01,050 --> 01:42:04,940 کوڈ منفی 42، یا غلطی کا کوڈ 23، یا اس طرح کچھ. 1990 01:42:04,940 --> 01:42:08,980 یہ تعداد عام طور پر صرف ایک اشارہ ہے پروگرامر، یا کمپنی کو 1991 01:42:08,980 --> 01:42:11,174 اس سافٹ ویئر بنایا، کیا، غلط اور کیوں چلا گیا 1992 01:42:11,174 --> 01:42:13,590 وہ کے ذریعے دیکھ سکتے ہیں تاکہ ان دستاویزات یا کوڈ، 1993 01:42:13,590 --> 01:42:15,465 اور یہ جاننے میں کیا خرابی کا اصل مطلب. 1994 01:42:15,465 --> 01:42:18,400 یہ عام طور پر نہیں ہے ہمیں فائدہ صارفین کو ختم. 1995 01:42:18,400 --> 01:42:20,550 >> لیکن اہم ریٹرن 0، سب کچھ ٹھیک ہے جب. 1996 01:42:20,550 --> 01:42:23,770 اور تم وضاحت نہیں کرتے تو مرکزی واپس آ جانا چاہئے کیا، 1997 01:42:23,770 --> 01:42:26,950 یہ صرف خود کار طریقے سے کرے گا آپ کے لیے 0 واپس آ جائیں. 1998 01:42:26,950 --> 01:42:30,870 لیکن کچھ واپس لوٹنے ورنہ اصل میں مفید ہے. 1999 01:42:30,870 --> 01:42:34,660 >> یہ آخری پروگرام میں، مجھے دو آگے بڑھو اور اس exit.c کو فون، 2000 01:42:34,660 --> 01:42:38,630 اور آج کے کے آخری متعارف کرانے موضوع کی درجہ بندی، ایک غلطی کوڈ کے طور پر جانا. 2001 01:42:38,630 --> 01:42:42,930 مجھے آگے بڑھو اور شامل ہیں ہماری واقف فائلوں اوپر، int اہم کروں. 2002 01:42:42,930 --> 01:42:49,500 اور اس بار،، کی argc int ہے کرنے دو سٹرنگ argv، اور میرے بریکٹ کے ساتھ 2003 01:42:49,500 --> 01:42:50,836 جو صف میں ہے کہ مطلب یہ. 2004 01:42:50,836 --> 01:42:52,460 اور پھر مجھے صرف ایک وویک چیک کرتے ہیں. 2005 01:42:52,460 --> 01:42:56,640 اس بار، argc کے نہیں ہے تو برابر 2، پھر تم کیا جانتے ہو؟ 2006 01:42:56,640 --> 01:42:57,520 اسے بھول جاؤ. 2007 01:42:57,520 --> 01:43:03,170 میں نے ایسا کرنے جا رہا ہوں، ارے، صارف، آپ کو کمانڈ لائن کی دلیل لاپتہ ہیں 2008 01:43:03,170 --> 01:43:04,210 الٹا سلیش (ن). 2009 01:43:04,210 --> 01:43:05,230 >> اور پھر یہ کہ یہ ہے. 2010 01:43:05,230 --> 01:43:06,130 میں نے باہر نکلنے کے لئے چاہتے ہیں. 2011 01:43:06,130 --> 01:43:11,030 میں نے اس preemptively کرنے جا رہا ہوں، اور وقت سے پہلے واقعی، واپسی 2012 01:43:11,030 --> 01:43:12,810 نمبر 1 علاوہ کسی اور چیز. 2013 01:43:12,810 --> 01:43:15,360 پہلی کے لئے قیمت پر جاؤ ہو سکتا ہے کہ غلطی 1 ہے. 2014 01:43:15,360 --> 01:43:17,860 تم کسی دوسرے غلط ہے تو ہو سکتا ہے کہ اس صورت حال، 2015 01:43:17,860 --> 01:43:21,390 آپ واپسی 2 کہنا یا واپسی 3 سکتا ہے، یا شاید بھی منفی 1 یا منفی 2. 2016 01:43:21,390 --> 01:43:23,750 >> یہ صرف وہاں سے نکلنے کوڈ ہیں ہیں ہیں، عام طور پر، 2017 01:43:23,750 --> 01:43:27,770 صرف پروگرامر کے لئے مفید ہے، یا کمپنی کے سافٹ ویئر کی ترسیل کر رہا ہے کہ. 2018 01:43:27,770 --> 01:43:30,500 لیکن حقیقت یہ ہے کہ 0 نہیں اہم کیا ہے. 2019 01:43:30,500 --> 01:43:34,310 لہذا اس پروگرام میں، تو میں چاہتا ہوں اس بات کی ضمانت ہے کہ یہ پروگرام صرف 2020 01:43:34,310 --> 01:43:38,190 صارف مجھے فراہم کرتا ہے تو کام کرتا ہے دو میں سے ایک دلیل شمار کے ساتھ، 2021 01:43:38,190 --> 01:43:42,880 پروگرام کا نام، اور کچھ دیگر لفظ، میں، مندرجہ ذیل کے طور پر زیادہ سے زیادہ نفاذ کر سکتے ہیں 2022 01:43:42,880 --> 01:43:46,110 printf کے یہ کہنے کے ساتھ صارف کو چللاو، لاپتہ کمانڈ لائن کی دلیل، 2023 01:43:46,110 --> 01:43:46,970 1 واپس آ جائیں. 2024 01:43:46,970 --> 01:43:49,940 یہ صرف فوری طور پر ہو جائے گا پروگرام چھوڑ. 2025 01:43:49,940 --> 01:43:55,840 >> argc کے برابر ہے صرف اس صورت میں 2 ہم نیچے اترو گے یہاں، میں کہنے جا رہا ہوں جس موڑ پر، 2026 01:43:55,840 --> 01:44:00,410 ہیلو فیصد ے، الٹا سلیش (ن)، argv1. 2027 01:44:00,410 --> 01:44:03,827 دوسرے الفاظ میں، میں ہوں ہے argv 0 کے بعد نہیں جا رہا، 2028 01:44:03,827 --> 01:44:05,410 جس میں پروگرام کے صرف نام ہے. 2029 01:44:05,410 --> 01:44:09,450 I، ہیلو پرنٹ کرنا، کوما چاہتے دوسرا لفظ انسانی ٹائپ. 2030 01:44:09,450 --> 01:44:12,580 اور اس معاملے پر میں 13، سب کچھ ٹھیک ہے. 2031 01:44:12,580 --> 01:44:15,920 >> میں جانتا ہوں کہ argc 2 ہے منطقی طور پر اس پروگرام سے. 2032 01:44:15,920 --> 01:44:17,770 میں آگے بڑھو اور واپسی 0 جا رہا ہوں. 2033 01:44:17,770 --> 01:44:21,230 ایک ایک طرف کے طور پر، اس بات کو ذہن میں رکھیں کہ اس کے ساتھ ساتھ سکریچ میں سچ ہے. 2034 01:44:21,230 --> 01:44:24,760 >> منطقی طور پر، میں یہ کر سکتا تھا اور ان لائنوں کیپسول کاری 2035 01:44:24,760 --> 01:44:27,020 یہاں اس کسی شق میں کوڈ کا. 2036 01:44:27,020 --> 01:44:29,420 لیکن اس طرح کی ہے بیکار میں میری کوڈ پوٹ کاری. 2037 01:44:29,420 --> 01:44:31,800 اور میں سپر بنانا چاہتے ہیں واضح کوئی فرق نہیں پڑتا کہ، 2038 01:44:31,800 --> 01:44:34,670 ڈیفالٹ کی طرف سے، ہیلو کچھ، طباعت ہو جائے گا 2039 01:44:34,670 --> 01:44:36,050 صارف تعاون جب تک. 2040 01:44:36,050 --> 01:44:39,360 >> تاکہ اس کا استعمال بہت عام ہے ایک شرط، صرف ایک ہے تو، 2041 01:44:39,360 --> 01:44:41,870 کچھ غلط پکڑنے کے لئے صورت حال، اور پھر باہر نکلیں. 2042 01:44:41,870 --> 01:44:45,690 اور پھر، اتنی دیر میں ہے ساتھ ساتھ، کسی اور ایک بھی نہیں، 2043 01:44:45,690 --> 01:44:48,060 لیکن صرف کوڈ ہے اس کے باہر، یہ بات ہے کیونکہ اگر 2044 01:44:48,060 --> 01:44:51,060 اس میں برابر خاص معاملے، منطقی طور پر. 2045 01:44:51,060 --> 01:44:54,480 لہذا میں، واپس آ رہا ہوں 0 صرف کرنے کے واضح طور پر نشاندہی سب کچھ ٹھیک ہے. 2046 01:44:54,480 --> 01:44:58,480 >> میں واپسی 0 لپ تو، یہ کرے گا خود کار طریقے سے میرے لئے فرض کیا جا. 2047 01:44:58,480 --> 01:45:00,890 لیکن اب میں واپس آ رہا ہوں کہ کم از کم اس معاملے میں ایک، 2048 01:45:00,890 --> 01:45:04,940 مجھے اچھا اقدام کے لئے، کرنے کے لئے جا رہا ہوں اور وضاحت، اس کیس میں 0 واپس. 2049 01:45:04,940 --> 01:45:09,690 تو اب مجھے آگے جانا ہے اور وہاں سے نکلنے کے بنانے، جس میں صرف چھوڑنے کے لئے ایک کامل segue کا ہے. 2050 01:45:09,690 --> 01:45:14,401 >> لیکن وہاں سے نکلنے بنانے کے، اور مجھے جانے دو آگے اور ./exit کرتے، درج. 2051 01:45:14,401 --> 01:45:16,900 اور پروگرام، مجھ پر چللایا کمانڈ لائن کی دلیل لاپتہ. 2052 01:45:16,900 --> 01:45:18,120 OK، مجھ سے تعاون کرتے ہیں. 2053 01:45:18,120 --> 01:45:23,810 >> مجھے اس کی بجائے ./exit کرنے دو، ڈیوڈ، درج. 2054 01:45:23,810 --> 01:45:25,190 اور اب یہ کہتا ہے، ہیلو ڈیوڈ. 2055 01:45:25,190 --> 01:45:27,300 اور آپ کو عام طور پر اس کو دیکھ نہیں کریں گے. 2056 01:45:27,300 --> 01:45:30,650 >> لیکن یہ ایک نہیں ہے کہ باہر کر دیتا ہے لینکس میں خاص طریقے اصل کو دیکھنے کے لئے 2057 01:45:30,650 --> 01:45:34,470 کیا وہاں سے نکلنے کے کوڈ کے ساتھ ایک پروگرام سے خارج ہوگئے. 2058 01:45:34,470 --> 01:45:37,184 کبھی کبھی ایک گرافیکل میں میک OS یا ونڈوز کی طرح دنیا، 2059 01:45:37,184 --> 01:45:40,100 آپ کو صرف ان کی تعداد جب ایک دیکھیں خرابی کا پیغام کی سکرین پر ٹمٹمانے 2060 01:45:40,100 --> 01:45:41,940 اور پروگرامر تم نے اس تعداد ظاہر کرتا ہے. 2061 01:45:41,940 --> 01:45:44,773 لیکن ہم کیا غلطی کو دیکھنا چاہتے ہیں تو پیغام ہم یہ یہاں کیا کر سکتے ہیں، ہے 2062 01:45:44,773 --> 01:45:48,100 تاکہ ./exit، درج، تعداد کمانڈ لائن کی دلیل لاپتہ. 2063 01:45:48,100 --> 01:45:54,590 >> اب میں گونج $ ؟، ایسا کرتے ہیں جس میں مضحکہ خیز خفیہ لگ. 2064 01:45:54,590 --> 01:45:56,590 لیکن $؟ 2065 01:45:56,590 --> 01:45:59,220 جادو منتر ہے کہ، کا کہنا ہے کہ ارے، کمپیوٹر، 2066 01:45:59,220 --> 01:46:01,900 مجھے بتاو کہ کیا پچھلے پروگرام کی رخصتی کوڈ تھی. 2067 01:46:01,900 --> 01:46:03,410 اور میں درج کریں مارا. 2068 01:46:03,410 --> 01:46:07,520 I، 1 دیکھتے ہیں کہ کیونکہ جو میں نے واپس کرنے کے لئے میرا بنیادی تقریب بتایا. 2069 01:46:07,520 --> 01:46:12,310 >> دریں اثنا، میں داؤد ./exit کرتے ہیں تو، اور Enter دبائیں، میں دیکھ رہا ہوں، ہیلو ڈیوڈ. 2070 01:46:12,310 --> 01:46:16,800 اور اب میں گونج $ ایسا کرتے ہیں؟، میں 0 ہیلو دیکھیں. 2071 01:46:16,800 --> 01:46:19,080 اور اس طرح یہ اصل میں لونگا قیمتی معلومات ہونا 2072 01:46:19,080 --> 01:46:23,420 ٹھیک کرنے والا کھولتا کے تناظر، نہیں تو میں زیادہ سے زیادہ یہ ہے کہ آپ، انسانی، دیکھ بھال کریں گے. 2073 01:46:23,420 --> 01:46:26,060 لیکن ٹھیک کرنے والا کھولتا اور دیگر پروگرام ہم اس سمسٹر کا استعمال کریں گے 2074 01:46:26,060 --> 01:46:29,420 اکثر یہ تعداد میں نظر آئے گا، اس طرح کی چھپا ہے، اگرچہ 2075 01:46:29,420 --> 01:46:32,780 آپ، پر اس کے لئے نظر آتے ہیں، جب تک کہ اس بات کا تعین کرتے ہیں یا نہیں ایک پروگرام کا 2076 01:46:32,780 --> 01:46:37,050 پھانسی کی سزا درست ہے یا غلط تھا. 2077 01:46:37,050 --> 01:46:40,450 >> اور تو ہے کہ ہمیں لاتا ہے اس، دن کے آخر میں. 2078 01:46:40,450 --> 01:46:43,917 آج ہم دیکھ کر شروع کر دیا ٹھیک کرنا، اور کورس میں باری میں 2079 01:46:43,917 --> 01:46:46,750 خود، اور پھر زیادہ دلچسپ بات یہ ہے، تکنیکی طور پر ہڈ کے نیچے 2080 01:46:46,750 --> 01:46:49,490 کیا میں ڈور جن میں سے آخری، ہیں ہفتے ہم صرف کی جاچکی کے لئے لے گئے، 2081 01:46:49,490 --> 01:46:51,900 اور یقینی طور پر ان کے لے گئے کے شروع میں عطا کی. 2082 01:46:51,900 --> 01:46:56,040 >> پھر ہم کس طرح رسائی حاصل کرسکتے ہیں کی طرف دیکھا ایک تار میں انفرادی حروف، 2083 01:46:56,040 --> 01:47:00,310 اور پھر دوبارہ ایک اعلی سطح لیا کس طرح well-- کی طرف دیکھ چیزوں کو دیکھو، 2084 01:47:00,310 --> 01:47:04,226 ہم انفرادی میں حاصل کرنا چاہتے ہیں تو ساخت کی طرح ایک فہرست میں عناصر، 2085 01:47:04,226 --> 01:47:05,850 ہم ایک سے زیادہ ڈور کے ساتھ نہیں کر سکتے ہیں؟ 2086 01:47:05,850 --> 01:47:08,050 اور ہم کمانڈ لائن کے دلائل کے ساتھ کر سکتے. 2087 01:47:08,050 --> 01:47:12,800 لیکن یہاں صرف خانوں کی تصویر اس عام خیال کی demonstrative ہے 2088 01:47:12,800 --> 01:47:14,451 ایک صف، یا ایک فہرست، یا ایک ویکٹر کی. 2089 01:47:14,451 --> 01:47:16,450 اور پر منحصر ہے سیاق و سباق، ان الفاظ میں سے سب 2090 01:47:16,450 --> 01:47:17,880 تھوڑا سا مختلف چیزوں کا مطلب. 2091 01:47:17,880 --> 01:47:20,060 لہذا سی میں، ہم صرف جا رہے ہیں ایک سرنی کے بارے میں بات کرنے کے لئے. 2092 01:47:20,060 --> 01:47:23,840 اور ایک صف ایک حصہ ہے میموری کی، جن میں سے ہر ایک ہے 2093 01:47:23,840 --> 01:47:27,720 عناصر، واپس، ملحق ہیں واپس کرنے کے لئے واپس کرنے کے لئے واپس کرنے کے لئے. 2094 01:47:27,720 --> 01:47:31,970 >> اور ان عناصر کو عام طور پر، کر رہے ہیں، ایک ہی ڈیٹا کی قسم کے، کردار، 2095 01:47:31,970 --> 01:47:35,966 کردار، کردار، کردار، یا سٹرنگ، سٹرنگ، سٹرنگ، سٹرنگ، یا INT، 2096 01:47:35,966 --> 01:47:38,600 INT، INT، جو کچھ بھی ہے ہم دکان کے لئے کوشش کر رہے ہیں. 2097 01:47:38,600 --> 01:47:42,540 لیکن دن کے اختتام پر، یہ ہے کیا یہ تصوراتی کی طرح لگتا ہے. 2098 01:47:42,540 --> 01:47:44,530 آپ لے رہے ہیں آپ کمپیوٹر کی میموری یا رام. 2099 01:47:44,530 --> 01:47:48,590 اور تم نے اسے باہر carving رہے شناختی درجے خانوں، جن میں سے سب 2100 01:47:48,590 --> 01:47:50,920 کرنے کے لئے واپس کرنے کے لئے، واپس آ گئے ہیں واپس، اس طرح میں واپس کرنے کے لئے. 2101 01:47:50,920 --> 01:47:53,200 >> اور کے بارے میں اچھی کیا ہے اس خیال، اور حقیقت 2102 01:47:53,200 --> 01:47:58,580 ہم اس طرح کی اقدار کا اظہار کر سکتے ہیں کہ ہمارے اعداد و شمار کے ڈھانچے کی پہلی کے ساتھ 2103 01:47:58,580 --> 01:48:02,520 کلاس میں، مطلب ہے کہ ہم شروع کر سکتے ہیں کوڈ کے ساتھ مسائل حل کرنے کی 2104 01:48:02,520 --> 01:48:04,079 اس ہفتے 0 میں اتنی intuitively پر آیا. 2105 01:48:04,079 --> 01:48:05,870 آپ کے فون کو یاد کریں گے بک مثال، جہاں 2106 01:48:05,870 --> 01:48:09,110 ہم نے ایک تقسیم کا استعمال کیا اور فتح یا ایک بائنری تلاش الگورتھم، 2107 01:48:09,110 --> 01:48:13,220 ایک پوری ذریعے sift نام اور تعداد کے گروپ. 2108 01:48:13,220 --> 01:48:18,220 لیکن ہم، فرض، یاد ہے کہ فون بک پہلے ہی کے مطابق کیا گیا 2109 01:48:18,220 --> 01:48:21,630 میں کسی اور ہی کہہ دیا تھا کہ out-- ناموں کی ایک فہرست دی سوچا 2110 01:48:21,630 --> 01:48:24,430 اور ان کو alphabetize کے لئے کس طرح اعداد. 2111 01:48:24,430 --> 01:48:26,950 اور اب جب C میں ہم، بھی، کی صلاحیت ہے 2112 01:48:26,950 --> 01:48:30,290 ، چیزیں ڈال کرنے کے لئے نہیں جسمانی طور پر ایک فون کی کتاب میں 2113 01:48:30,290 --> 01:48:34,220 لیکن عملی طور پر ایک کمپیوٹر کی دہائی میں میموری، ہم قابل آئندہ ہفتے ہوں گے 2114 01:48:34,220 --> 01:48:38,470 پہلی this-- دوبارہ متعارف کرانے کے لئے ایک صف میں ہمارے ڈیٹا ڈھانچے کی 2115 01:48:38,470 --> 01:48:43,530 لیکن زیادہ اہم بات، اصل کمپیوٹر سائنس یلگوردمز لاگو 2116 01:48:43,530 --> 01:48:47,720 کوڈ میں، جس کے ساتھ ہم محفوظ کر سکتے ہیں اس طرح کے ڈھانچے میں ڈیٹا، 2117 01:48:47,720 --> 01:48:50,730 اور پھر یہ جوڑتوڑ کرنے کے لئے شروع، اور اصل میں اس کے ساتھ مسائل حل کرنے کے لئے، 2118 01:48:50,730 --> 01:48:53,570 اور اس کے اوپر تعمیر کرنے کے لئے، بالآخر، C میں پروگرام، 2119 01:48:53,570 --> 01:48:56,730 ازگر میں، جاوا سکرپٹ میں، SQL کے ساتھ ڈیٹا بیس querying؟ 2120 01:48:56,730 --> 01:48:59,980 >> اور ہم نے ان میں ہے کہ تمام کو دیکھ لیں گے interlock کے مختلف خیالات. 2121 01:48:59,980 --> 01:49:04,100 لیکن اب کے لئے، کہ یاد آج ہم تعارف کرایا کہ ڈومین 2122 01:49:04,100 --> 01:49:06,920 اس بات کو یہاں تھا، اور خفیہ نگاری کی دنیا. 2123 01:49:06,920 --> 01:49:11,200 اور اگلے مسائل آپ خود کے درمیان حل کیا جائے گا خفیہ نگاری کا فن ہے، 2124 01:49:11,200 --> 01:49:13,630 دوڑ دھوپ اور ڈی دوڑ دھوپ معلومات، اور ciphering 2125 01:49:13,630 --> 01:49:15,930 اور متن deciphering کے، اور بالآخر سنبھالنے 2126 01:49:15,930 --> 01:49:18,970 اب آپ کو معلوم ہے کہ کیا ہڈ کے نیچے ہے 2127 01:49:18,970 --> 01:49:21,860 تا کہ آپ دیکھ یا وصول کریں جب اس طرح سے ایک پیغام ہے، آپ 2128 01:49:21,860 --> 01:49:24,060 یہ اپنے آپ کو سمجھنے کر سکتے ہیں. 2129 01:49:24,060 --> 01:49:26,740 یہ سب، اور مزید اگلی بار. 2130 01:49:26,740 --> 01:49:29,890 2131 01:49:29,890 --> 01:49:30,790 >> [ویڈیو پلے بیک] 2132 01:49:30,790 --> 01:49:32,970 >> -Mover ابھی آیا. 2133 01:49:32,970 --> 01:49:35,146 مجھے پیغام لکھنے کے لیے جا رہا ہوں اپنے کالج کے پروفیسر. 2134 01:49:35,146 --> 01:49:37,611 جی ہاں. 2135 01:49:37,611 --> 01:49:40,080 ہیلو. 2136 01:49:40,080 --> 01:49:40,660 یہ تم ہو. 2137 01:49:40,660 --> 01:49:44,125 2138 01:49:44,125 --> 01:49:45,110 ٹھہرو! 2139 01:49:45,110 --> 01:49:45,610 ڈیوڈ. 2140 01:49:45,610 --> 01:49:53,936 2141 01:49:53,936 --> 01:49:56,060 میں نے صرف جاننے کی کوشش کر رہا ہوں تمہیں کیا ہوا ہے باہر. 2142 01:49:56,060 --> 01:49:58,130 براہ مہربانی، کچھ بھی مدد کر سکتا ہے. 2143 01:49:58,130 --> 01:50:05,020 2144 01:50:05,020 --> 01:50:08,354 تم نے اس کالج کے تھے روممیٹ، تم نہیں تھے؟ 2145 01:50:08,354 --> 01:50:10,770 تم نے اس کے ساتھ تھے جب وہ CS50 منصوبے ختم؟ 2146 01:50:10,770 --> 01:50:13,770 2147 01:50:13,770 --> 01:50:15,765 >> [موسیقی بجانے] 2148 01:50:15,765 --> 01:50:32,110 2149 01:50:32,110 --> 01:50:33,150 >> یعنی CS50 تھا. 2150 01:50:33,150 --> 01:50:42,690 2151 01:50:42,690 --> 01:50:44,770 >> میں اس جگہ سے محبت کرتا ہوں. 2152 01:50:44,770 --> 01:50:45,854 >> -کھاؤ. 2153 01:50:45,854 --> 01:50:47,020 ہم کاروبار کے باہر جا رہے ہیں. 2154 01:50:47,020 --> 01:50:52,120 2155 01:50:52,120 --> 01:50:53,970 >> [END پلے بیک]