1 00:00:00,000 --> 00:00:02,700 [Powered by Google Translate] [Walkthrough - مسئلہ سیٹ 4] 2 00:00:02,700 --> 00:00:05,000 [Zamyla چان - ہارورڈ یونیورسٹی] 3 00:00:05,000 --> 00:00:07,340 یہ [CS50 ہے. CS50.TV] - 4 00:00:08,210 --> 00:00:11,670 ٹھیک ہے. ہیلو، سب لوگ، اور 4 Walkthrough کا استقبال ہے. 5 00:00:11,670 --> 00:00:14,270 >> آج ہمارے pset عدالتی ہے. 6 00:00:14,270 --> 00:00:18,080 عدالتی واقعی ایک تفریح ​​pset جو بٹ نقشہ فائلوں سے نمٹنے شامل ہے 7 00:00:18,080 --> 00:00:21,550 دریافت ہے جو ایک جرم کا ارتکاب کیا ہے. 8 00:00:21,550 --> 00:00:24,200 پھر ہم کچھ بٹ نقشہ فائلوں کا سائز تبدیل کرنے جا رہے ہیں، 9 00:00:24,200 --> 00:00:27,780 تو پھر ہم بھی کہا جاتا بازیافت واقعی مزہ حصہ کے ساتھ نمٹنے کے لئے جا رہے ہیں، 10 00:00:27,780 --> 00:00:31,160 جس میں ہم نے بنیادی طور پر ایک میموری کارڈ کے حوالے کر رہے ہیں 11 00:00:31,160 --> 00:00:34,350 جس میں کسی اتفاقی طور پر ان کی فائلوں کی تمام خارج کر دیا ہے، 12 00:00:34,350 --> 00:00:38,860 اور ہم ان فائلوں کی وصولی کے لئے کہا ہے. 13 00:00:38,860 --> 00:00:42,910 >> لیکن اس سے پہلے، اس سے پہلے کہ ہم pset میں ملتا ہے، میں واقعی میں صرف سب کو مبارک دینے کے لئے چاہتے ہیں. 14 00:00:42,910 --> 00:00:45,230 ہم اس کورس کی midpoint کے بارے میں ہیں. 15 00:00:45,230 --> 00:00:50,070 کوئز 0 ہمارے پیچھے ہے، اور ہم نے pset4 میں ہیں، تو بنیادی طور پر، ہم نے نصف ہیں. 16 00:00:50,070 --> 00:00:55,490 ہم نے ایک طویل راستہ طے اگر آپ اپنے psets، pset0 اور pset1 واپس نظر آئے ہے، 17 00:00:55,490 --> 00:00:57,300 تو اپنے آپ کو اس کے بارے میں مبارک باد دیتا ہوں، 18 00:00:57,300 --> 00:01:00,760 اور ہم نے کچھ بہت ہی مزہ چیزیں میں حاصل کرنے کے لئے جا رہے ہیں. 19 00:01:00,760 --> 00:01:07,070 >> تو، پھر، اس pset کے لئے ہماری آلات، sudo اپ ڈیٹ یم Y چلانے کے بجائے 20 00:01:07,070 --> 00:01:13,890 ہم صرف update50 چلانے کے قابل ہیں اگر آپ 17.3 ورژن اور اس سے اوپر کے آلے کے ہے. 21 00:01:13,890 --> 00:01:17,380 تو update50 چلانے کے لئے اس بات کا یقین ہو جائے - یہ ایک بہت آسان، کچھ کم حروف ہے - 22 00:01:17,380 --> 00:01:20,640 اس بات کا یقین کر لیں کہ آپ آلے کا تازہ ترین ورژن میں ہیں بنانے کے لئے. 23 00:01:20,640 --> 00:01:25,410 خاص طور پر اس update50 پر ضروری ہے جب ہم CS50 چیک کا استعمال کرتے ہوئے شروع. 24 00:01:25,410 --> 00:01:28,700 تو اس بات کا یقین کر لیں کہ آپ ایسا کر سکتے ہیں. 25 00:01:28,700 --> 00:01:30,760 >> اس pset کے لئے حصوں میں سے سب کے لئے، 26 00:01:30,760 --> 00:01:34,350 فائل ہم فائل آدانوں اور نتائج سے نمٹنے کے لئے جا رہے ہیں، I / O. 27 00:01:34,350 --> 00:01:38,140 ہم arrays سے نمٹنے کے پروگرام کی ایک بہت میں جا جا رہے ہیں 28 00:01:38,140 --> 00:01:40,350 فائلوں اور اس طرح چیزوں کی طرف اشارہ کرتے ہوئے، 29 00:01:40,350 --> 00:01:43,050 تو ہم اس بات کا یقین کر لیں کہ ہم واقعی واقف اور آرام دہ اور پرسکون ہو بنانا چاہتے ہیں 30 00:01:43,050 --> 00:01:47,990 فائلوں میں ان پٹ اور پیداوار کس طرح سے نمٹنے کے. 31 00:01:47,990 --> 00:01:52,080 >> اس pset کے لئے تقسیم کے کوڈ میں نامی copy.c فائل ہے، 32 00:01:52,080 --> 00:01:55,280 اور یہ کہ جو ہم تلاش کرنے کے لئے جا رہے ہیں واقعی ہمارے لئے مفید ہو جا رہا ہے 33 00:01:55,280 --> 00:02:00,340 کیونکہ ہم نے ختم کرنے کے لئے جا رہے ہیں میں copy.c فائل کاپی 34 00:02:00,340 --> 00:02:05,350 اور صرف یہ تبدیلی تھوڑا سا مسئلہ سیٹ کے پہلے 2 حصوں کو حاصل کرنے کے قابل ہو جائے. 35 00:02:05,350 --> 00:02:09,030 >> اور تو جیسا کہ میں نے پہلے کہا، ہم کے طور پر ساتھ ساتھ bitmaps JPEGs کے ساتھ نمٹنے کر رہے ہیں. 36 00:02:09,030 --> 00:02:13,170 تو واقعی میں کس طرح ان فائلوں کو منظم کر رہے ہیں کی ساخت کو سمجھنے، 37 00:02:13,170 --> 00:02:16,170 ہم 0s اور structs میں 1s کس طرح سچ میں ترجمہ کر سکتے 38 00:02:16,170 --> 00:02:19,040 اور چیزوں ہے کہ ہم واقعی تشریح سمجھتے ہیں اور میں ترمیم کر سکتے ہیں 39 00:02:19,040 --> 00:02:21,000 جو بہت ضروری ہو جائے گا، 40 00:02:21,000 --> 00:02:25,970 JPEG اور بٹ نقشہ فائلوں میں جا رہا ہے اور ان کی ساخت کو سمجھنے. 41 00:02:25,970 --> 00:02:30,780 >> Pset4، ہمیشہ کی طرح، سوالات کے ایک حصے کے ساتھ شروع ہوتا ہے. 42 00:02:30,780 --> 00:02:36,600 وہ فائل I / O کے ساتھ نمٹنے کے، اور آپ اس کے عادی. 43 00:02:36,600 --> 00:02:42,520 پھر حصہ 1 Whodunit ہے، جس میں آپ کو ایک بٹ نقشہ فائل دی کر رہے ہیں 44 00:02:42,520 --> 00:02:45,630 جو سرخ نقطوں کی طرح سب سے زیادہ طرح لگتا ہے. 45 00:02:45,630 --> 00:02:52,180 اور پھر بنیادی طور پر ہے کہ ہم کیا کرنے جا رہے ہیں اس فائل کو لے لو اور صرف تھوڑا سا ترمیم کریں 46 00:02:52,180 --> 00:02:54,010 ایک ورژن ہے کہ ہم پڑھ سکتے ہیں میں. 47 00:02:54,010 --> 00:02:56,000 بنیادی طور پر، ایک بار ہم ختم، ہم ایک ہی فائل پڑے گا، 48 00:02:56,000 --> 00:03:02,630 کے علاوہ ہم ان تمام لوگوں سرخ نقطے کی طرف سے پوشیدہ پوشیدہ پیغام کو دیکھنے کے لئے کے قابل ہو جائے گا. 49 00:03:02,630 --> 00:03:07,310 پھر اس کا سائز تبدیل ایک پروگرام ہے کہ ایک فائل دی ہے 50 00:03:07,310 --> 00:03:11,490 اور پھر فائل ہے کہ یہ نتائج کا نام دیا گیا اور پھر ایک نمبر دیا اور ساتھ ہی، 51 00:03:11,490 --> 00:03:16,850 کہ بٹ نقشہ اصل میں اس عددی قیمت کی طرف سے کا سائز تبدیل کریں گے. 52 00:03:16,850 --> 00:03:19,240 اس کے بعد آخر میں، ہم بازیافت pset ہے. 53 00:03:19,240 --> 00:03:24,160 ہم نے ایک میموری کارڈ دیا ہے اور کر رہے ہیں تو تصاویر میں سے سب کی وصولی کے لئے کی ضرورت 54 00:03:24,160 --> 00:03:25,920 ہیں جو اتفاقی طور پر خارج کر دیا گیا ہے، 55 00:03:25,920 --> 00:03:31,420 لیکن، ہم کے طور پر پتہ چل جائے گا، اور اصل میں نہیں خارج کر دیا فائل سے ہٹا دیا؛ 56 00:03:31,420 --> 00:03:38,470 ہم صرف کی قسم کھو دیا ہے جہاں وہ فائل میں تھے، لیکن ہم اس کی وصولی کے لئے جا رہے ہیں. 57 00:03:38,470 --> 00:03:44,950 >> بہت اچھا ہے. تو فائل میں جا I / O خاص طور پر، یہ کام کرتا ہے کہ آپ کا استعمال کیا جائے گا کی ایک پوری فہرست ہے. 58 00:03:44,950 --> 00:03:49,840 آپ نے پہلے ہی تھوڑا سا fopen کی بنیادی باتیں، fread، اور fwrite دیکھا ہے، 59 00:03:49,840 --> 00:03:54,350 لیکن ہم کسی فائل میں مزید نظر آتے جا رہے ہیں مجھے / ایسی fputc O افعال 60 00:03:54,350 --> 00:03:56,930 جس میں آپ ایک وقت میں صرف ایک کردار لکھنا، 61 00:03:56,930 --> 00:04:02,000 fseek، جہاں آپ قسم کی فائل پوزیشن کا مظہر فارورڈز اور پیچھے کی طرف منتقل 62 00:04:02,000 --> 00:04:05,770 اور پھر کچھ دیگر شامل ہیں. لیکن ہم pset کے دوران اس میں تھوڑی بعد چلے جائیں گے. 63 00:04:08,050 --> 00:04:13,100 >> تو سب سے پہلے، صرف فائل میں حاصل کرنے کے لئے I / O اس سے پہلے کہ ہم pset میں، 64 00:04:13,100 --> 00:04:19,860 فائل کو کھولنے کے لئے، مثال کے طور پر، جو تمہیں کیا کرنا ہے واقعی میں اس فائل پوائنٹر مقرر کیا گیا ہے. 65 00:04:19,860 --> 00:04:22,710 تو ہم نے ایک فائل * پوائنٹر ہے. 66 00:04:22,710 --> 00:04:27,140 اس صورت میں، میں نے اسے پوائنٹر میں ایک بلا وجہ سے ہے کہ میرے infile ہونے جا رہا ہے کر رہا ہوں. 67 00:04:27,140 --> 00:04:33,340 اور اس میں تقریب اور پھر fopen کی فائل کے نام کو استعمال کرنے کے لئے جا رہا ہوں 68 00:04:33,340 --> 00:04:36,360 اور پھر موڈ جس میں میں جا رہا ہوں فائل کے ساتھ نمٹنے کے لئے. 69 00:04:36,360 --> 00:04:42,080 تو اس معاملے میں پڑھنے کے لئے "R"، لکھنے کے لئے "W"، اور پھر appending کے لئے "ایک" ہے. 70 00:04:42,080 --> 00:04:44,270 مثال کے طور پر، جب آپ کو ایک infile کے ساتھ کام کر رہے ہو 71 00:04:44,270 --> 00:04:47,310 اور آپ کرنا چاہتے ہیں وہاں محفوظ کی بٹس اور بائٹس پڑھ ہے، 72 00:04:47,310 --> 00:04:50,420 تو آپ شاید اپنے موڈ کے طور پر "R" استعمال کرنا چاہتے ہیں کے لئے جا رہے ہیں. 73 00:04:50,420 --> 00:04:54,520 ، جب آپ اصل میں لکھنے کے لئے چاہتے ہیں، اس قسم کی ایک نئی فائل بنانے کے 74 00:04:54,520 --> 00:04:57,220 تو جو ہم کرنے جا رہے ہیں ہم نئی فائل کو کھولنے کے لئے جا رہے ہیں 75 00:04:57,220 --> 00:05:02,410 اور لکھنے کے لئے "W" موڈ کا استعمال کریں. 76 00:05:02,410 --> 00:05:07,540 >> تو پھر ساخت جب آپ اصل میں فائلوں میں پڑھ رہے ہیں، مندرجہ ذیل ہے. 77 00:05:07,540 --> 00:05:14,930 سب سے پہلے آپ struct جو بائٹس پر مشتمل گا کہ آپ پڑھ رہے ہو پوائنٹر بھی شامل ہیں. 78 00:05:14,930 --> 00:05:19,830 تو اس بائٹس جو آپ پڑھ رہے ہیں کے آخر محل وقوع کو ہونے جا رہا ہے. 79 00:05:19,830 --> 00:05:23,360 اس کے بعد آپ کے سائز کی نشاندہی کرنے جا رہے ہیں پسند، بنیادی طور پر کتنے بائٹس 80 00:05:23,360 --> 00:05:30,100 سائز آپ کے پروگرام فائل میں پڑھنا ہے، بنیادی طور پر ایک عنصر ہے، 81 00:05:30,100 --> 00:05:32,620 اور پھر آپ کی وضاحت کس طرح بہت سے عناصر پر آپ کو پڑھنے کے چاہتے ہیں کے لئے جا رہے ہیں. 82 00:05:32,620 --> 00:05:34,980 اور پھر آخر میں، آپ کو آپ کہاں سے پڑھ رہے ہیں جانتے ہیں کہ ہے، 83 00:05:34,980 --> 00:05:37,580 تاکہ تمہارے پوائنٹر ہونے جا رہا ہے. 84 00:05:37,580 --> 00:05:41,780 میں یہ رنگ کوڈت ہے کیونکہ fread بھی بہت fwrite اسی طرح، 85 00:05:41,780 --> 00:05:47,050 ، آپ کو اس بات کا یقین کر لیں کہ آپ کو حق کے لئے استعمال کرتے ہیں بنانے کے لئے چاہتے ہیں کے علاوہ 86 00:05:47,050 --> 00:05:51,960 اس بات کا یقین کر لیں کہ ہے کہ آپ اصل میں لکھ رہے ہیں یا درست فائل سے پڑھنے بنانے کے. 87 00:05:54,910 --> 00:05:58,610 >> تو پھر پہلے کی طرح، اگر ہم عناصر کے سائز کے طور پر ساتھ ساتھ عناصر کی تعداد میں ہیں، 88 00:05:58,610 --> 00:06:00,600 تو پھر ہم یہاں کھیلنے کے تھوڑا سا ہو سکتا ہے. 89 00:06:00,600 --> 00:06:06,810 کا کہنا ہے کہ میں ایک کتے struct ہے اور تو مجھے دو کتوں کو ایک وقت میں پڑھنا چاہتے ہیں. 90 00:06:06,810 --> 00:06:12,450 میں کیا کر سکتا ایک عنصر کے سائز کا کہنا ہے کہ ایک کتے کے سائز کی جا رہی ہے 91 00:06:12,450 --> 00:06:14,770 اور میں اصل میں ان میں سے دو کو پڑھنے جا رہا ہوں. 92 00:06:14,770 --> 00:06:18,290 متبادل طور پر، کہ میں کیا کر سکتا کا کہنا ہے کہ میں صرف ایک عنصر کو پڑھنے کے لئے جا رہا ہوں 93 00:06:18,290 --> 00:06:21,340 اور یہ کہ ایک عنصر دو کتوں کا سائز جا رہا ہے. 94 00:06:21,340 --> 00:06:24,320 تو یہ مطابق ہے کہ کس طرح آپ کو کھیل کے سائز اور تعداد کے ساتھ قسم کے ارد گرد بنا سکتے ہیں 95 00:06:24,320 --> 00:06:28,250 کیا آپ پر بدیہی ہے پر منحصر ہے. 96 00:06:28,250 --> 00:06:30,810 >> ٹھیک ہے. تو اب ہم تحریری فائلوں کو حاصل ہے. 97 00:06:30,810 --> 00:06:36,880 پہلی دلیل جب آپ ایک فائل کو لکھنے کے لئے کرنا چاہتے ہیں، اصل میں ہے جہاں آپ سے پڑھ رہے ہو. 98 00:06:36,880 --> 00:06:42,050 تو یہ بنیادی طور پر اعداد و شمار سے ہے کہ آپ کو فائل میں لکھنے کے لئے جا رہے ہیں، 99 00:06:42,050 --> 00:06:44,490 جو آخر میں باہر پوائنٹر ہے. 100 00:06:44,490 --> 00:06:47,670 تو جب آپ pset کے ساتھ کام کر رہے ہو، اس بات کا یقین کر لیں کہ آپ گھبرا نہ ہو. 101 00:06:47,670 --> 00:06:50,480 ہو سکتا ہے کہ پارٹی کی طرف سے کی تعریف کی طرف ہے. 102 00:06:50,480 --> 00:06:58,090 آپ تعریفیں دستی ھیںچو شخص کو ٹائپ کرکے تو کر سکتے ہیں اور fwrite، مثال کے طور پر، 103 00:06:58,090 --> 00:06:59,950 ٹرمینل میں یا آپ اس سلائڈ پر واپس رجوع کر سکتے ہیں 104 00:06:59,950 --> 00:07:03,570 اور اس بات کا یقین کر لیں کہ آپ صحیح استعمال کر رہے ہیں کر سکتے ہیں. 105 00:07:03,570 --> 00:07:08,700 تو پھر fwrite کے لئے، جب آپ کو ایک فائل ہے کہ آپ میں لکھنے کے لئے چاہتے ہیں، 106 00:07:08,700 --> 00:07:14,290 جو آخری دلیل ہونے جا رہا ہے اور ہے کہ اس فائل پوائنٹر ہونے جا رہا ہے. 107 00:07:14,290 --> 00:07:18,670 تو تو یہ ہے کہ ہم شاید ایک وقت میں لکھنے کئی بائٹس کے ساتھ کس طرح نمٹنے کے، 108 00:07:18,670 --> 00:07:21,820 لیکن اس کا کہنا ہے کہ آپ صرف صرف ایک کردار میں لکھنا چاہتا ہوں. 109 00:07:21,820 --> 00:07:25,940 جیسا کہ ہم اس مثال میں بعد میں دیکھیں گے، ہم bitmaps میں اس کا استعمال کرنا پڑے گا. 110 00:07:25,940 --> 00:07:32,180 اس کا ہے جب ہم fputc استعمال کر سکتے ہیں، بنیادی طور پر صرف ایک وقت میں ایک کردار تيل، chr 111 00:07:32,180 --> 00:07:37,050 فائل پوائنٹر میں اور یہ کہ ہماری وہاں پوائنٹر. 112 00:07:38,700 --> 00:07:41,560 تو پھر ہم یا جب ایک فائل میں لکھنے کی کوشش، 113 00:07:41,560 --> 00:07:44,690 فائل ہم کہاں ہیں ٹریک رکھ رہی ہے. 114 00:07:44,690 --> 00:07:47,810 تو یہ ایک قسم کا کرسر فائل پوزیشن کا مظہر ہے. 115 00:07:47,810 --> 00:07:54,330 اور اس طرح ہم یا ایک فائل میں جب بھی دوبارہ پڑھ لکھ، 116 00:07:54,330 --> 00:07:56,760 فائل اصل میں یاد ہے وہ کہاں ہے، 117 00:07:56,760 --> 00:07:59,270 اور تو اس جہاں کرسر سے جاری ہے. 118 00:07:59,270 --> 00:08:03,970 یہ فائدہ مند ہو جب آپ کرنا چاہتے ہیں، کا کہنا ہے کہ کر سکتے ہیں، ایک مخصوص رقم میں کچھ پڑھنا 119 00:08:03,970 --> 00:08:06,160 اور اس کے بعد مندرجہ ذیل رقم میں پڑھتے ہیں، 120 00:08:06,160 --> 00:08:10,700 لیکن کبھی کبھی ہم یا اصل میں جانے کے لئے ایک خاص حوالہ قیمت سے شروع کر سکتے ہیں. 121 00:08:10,700 --> 00:08:16,870 تو fseek تقریب، کیا اس سے فرق پڑتا ہے ہمیں ایک بات کا یقین فائل میں کرسر منتقل کرنے کے لئے کی اجازت دیتا ہے 122 00:08:16,870 --> 00:08:19,680 بائٹس کی ایک مخصوص تعداد ہے. 123 00:08:19,680 --> 00:08:24,260 اور اس وقت ہمیں کیا کرنا ہے جہاں حوالہ قیمت ہے کی وضاحت ہے. 124 00:08:24,260 --> 00:08:31,520 یا تو جہاں کرسر اس وقت سے آگے یا پیچھے منتقل، 125 00:08:31,520 --> 00:08:35,750 ہم وضاحت کر سکتے ہیں یا یہ کہ فائل کے شروع سے ہی بڑھنا چاہیے 126 00:08:35,750 --> 00:08:37,090 یا فائل کے آخر سے. 127 00:08:37,090 --> 00:08:41,230 اور اس لئے تم منفی یا مثبت اقدار میں رقم منتقل کر سکتی ہیں، 128 00:08:41,230 --> 00:08:44,960 اور قسم ہے کہ کرسر یا تو فارورڈز یا پیچھے کی طرف چلا جائے گا. 129 00:08:46,170 --> 00:08:51,920 >> اس سے پہلے کہ ہم دیگر psets میں ملتی ہے، فائل پر کوئی سوال I / O؟ 130 00:08:53,860 --> 00:08:59,990 ٹھیک ہے. جیسا کہ ہم زیادہ سے زیادہ مثال کے طور پر میں کرنے کے لئے، کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے سوالات کے لئے روکنے کے لئے آزاد محسوس کرتے ہیں. 131 00:08:59,990 --> 00:09:06,930 >> تو Whodunit میں، آپ کو ایک بٹ نقشہ سلائڈ پر یہ لال کی طرح فائل کے حوالے کر رہے ہیں، 132 00:09:06,930 --> 00:09:14,510 اور یہ اس طرح لگ رہا ہے - سرخ نقطوں کا ایک گروپ - اور تم سچ میں نہیں کیا لکھا ہے جانتے ہو. 133 00:09:14,510 --> 00:09:23,310 اگر آپ squint، آپ وسط کے اندر تھوڑا سا bluish رنگ دیکھنے کے لئے کرنے کے قابل ہو سکتا ہے. 134 00:09:23,310 --> 00:09:26,270 بنیادی طور پر، یہ ہے جہاں متن محفوظ ہے. 135 00:09:26,270 --> 00:09:30,270 ایک قتل ہوا تھا، اور ہم باہر تلاش کرنے کے لئے جو اس نے کیا کیا کرنے کی ضرورت ہے. 136 00:09:30,270 --> 00:09:36,760 کے لئے ایسا کرنے کے لئے، ہم ایک پڑھنے کے قابل کی شکل میں اس تصویر کو تبدیل کرنے کی قسم کی ضرورت ہے ہے. 137 00:09:36,760 --> 00:09:42,740 اگر تم لوگ کبھی بھی اس کا سامنا کرنا پڑا ہے، کبھی کبھی تھوڑا کٹس جائے گا 138 00:09:42,740 --> 00:09:48,510 آپ کے پاس ایک سرخ فلم کے ساتھ ایک میگنفائنگ گلاس کہاں ہوگا. کوئی ہے؟ جی ہاں. 139 00:09:48,510 --> 00:09:52,770 تو آپ کو اس طرح ہاتھ کچھ ہو جائے گا، آپ کو ایک میگنفائنگ گلاس ہوگا 140 00:09:52,770 --> 00:09:58,130 اس پر سرخ فلم کے ساتھ، آپ کو تصویر کے اوپر ڈال دیں گے، 141 00:09:58,130 --> 00:10:03,410 اور آپ کو پیغام اس میں پوشیدہ کے قابل ہو جائے گا. 142 00:10:03,410 --> 00:10:07,080 ہم سرخ فلم کے ساتھ ایک میگنفائنگ گلاس نہیں ہے، تو اس کے بجائے ہم قسم کی ہماری اپنی تخلیق کے لئے جا رہے ہیں 143 00:10:07,080 --> 00:10:09,060 اس pset میں. 144 00:10:09,060 --> 00:10:15,760 اور اس طرح صارف ان پٹ whodunit، تو اشارہ جا ہے، BMP، 145 00:10:15,760 --> 00:10:18,800 تاکہ infile، جو سرخ نقطہ پیغام ہے، 146 00:10:18,800 --> 00:10:23,550 اور اس کے بعد ان کا یہ کہنا verdict.bmp ہمارے outfile ہونے جا رہا ہے کر رہے ہیں. 147 00:10:23,550 --> 00:10:27,900 تو اس کا ایک اشارہ کی طرح ایک نئی بٹ نقشہ تصویر بنانے کے لئے جا رہا ہے 148 00:10:27,900 --> 00:10:32,600 صرف ایک پڑھنے کے قابل کی شکل میں ہم خفیہ پیغام کہاں دیکھ سکتے ہیں. 149 00:10:32,600 --> 00:10:37,550 >> چونکہ ہم ترمیم اور توڑ کسی قسم کی bitmaps سے نمٹنے جا رہے ہیں، 150 00:10:37,550 --> 00:10:42,400 ہم ان بٹ نقشہ فائلوں کی ساخت میں ڈوبکی کی طرح جا رہے ہیں. 151 00:10:42,400 --> 00:10:48,130 ہم درس میں یہ تھوڑا سا پر چلا گیا ہے، لیکن ان میں کچھ اور نظر آتے ہیں. 152 00:10:48,130 --> 00:10:51,740 Bitmaps بنیادی طور پر صرف بائٹس کی ایک انتظام 153 00:10:51,740 --> 00:10:55,790 ہم کہاں مخصوص ہے جس بائٹس کا مطلب کیا ہے. 154 00:10:55,790 --> 00:11:00,540 تو یہاں بٹ نقشہ تصویر کے نقشے کی طرح ہے 155 00:11:00,540 --> 00:11:08,550 کہہ رہے ہیں کہ یہ کچھ ہیڈر فائلوں کے ساتھ شروع ہوتا ہے، وہاں میں کچھ معلومات کے ساتھ شروع ہوتا ہے. 156 00:11:08,550 --> 00:11:16,540 تم نے دیکھا ہے کہ کے بارے میں بائٹ 14 نمبر پر سائز بٹ نقشہ نقش پر دلالت کرتا ہے، 157 00:11:16,540 --> 00:11:18,520 اور اس پر جاری ہے. 158 00:11:18,520 --> 00:11:23,810 لیکن پھر کیا ہم واقعی یہاں میں دلچسپی رکھتے ہیں بائٹ 54 نمبر کے ارد گرد شروع کر رہا ہے. 159 00:11:23,810 --> 00:11:26,060 ہم ان RGB triples ہے. 160 00:11:26,060 --> 00:11:30,760 کہ وہ کیا کرنے جا رہی ہے اصل پکسلز، رنگ اقدار پر مشتمل ہے. 161 00:11:30,760 --> 00:11:35,950 ہیڈر میں اوپر سب کچھ معلومات ہے 162 00:11:35,950 --> 00:11:41,240 تصویر، تصویر کی چوڑائی اور اونچائی کے سائز کے مطابق. 163 00:11:41,240 --> 00:11:44,930 جب ہم بھرتی میں پر جانے کے بعد ہم دیکھیں گے، کیوں تصویر کا سائز 164 00:11:44,930 --> 00:11:48,670 چوڑائی یا اونچائی سے مختلف ہو سکتا ہے. 165 00:11:48,670 --> 00:11:54,240 تو پھر ان کی نمائندگی کرنے کے - ان بٹ نقشہ تصاویر بائٹس کی انداز ہوتے ہیں - 166 00:11:54,240 --> 00:11:59,370 جو ہم کر سکتے ہیں، ٹھیک ہے کا کہنا ہے کہ ہے، اب مجھے یاد کرنے جا رہا ہوں کہ صفحہ 14، 167 00:11:59,370 --> 00:12:03,380 کہ جہاں کا سائز مثال کے طور پر ہے،، لیکن اس کی بجائے جو ہم اس کو آسان بنانے کے لئے کیا کرنے جا رہے ہیں 168 00:12:03,380 --> 00:12:06,020 ہے، یہ struct میں encapsulate ہے. 169 00:12:06,020 --> 00:12:08,880 اور اس طرح ہم دو ہمارے لئے بنائی گئی structs، BITMAPFILEHEADER 170 00:12:08,880 --> 00:12:10,440 اور BITMAPINFOHEADER 171 00:12:10,440 --> 00:12:14,840 اور اسی طرح جب بھی ہم اس فائل میں پڑھا، یہ ڈیفالٹ کی طرف سے ترتیب میں جا جا رہا ہے، 172 00:12:14,840 --> 00:12:22,360 اور اسی طرح اس کی ترتیب میں بھی ایسے biWidth اور biSize کے طور پر متغیر میں میں بھرنے جا رہا ہے. 173 00:12:25,270 --> 00:12:31,230 اور پھر آخر میں، ہر پکسل تین بائٹس کی طرف سے ظاہر کیا جاتا ہے. 174 00:12:31,230 --> 00:12:35,500 پہلے ایک پکسل میں نیلے رنگ کی رقم ہے، دوسری سبز رنگ کی رقم ہے، 175 00:12:35,500 --> 00:12:41,120 اور آخر میں سرخ، سرخ، جہاں 0 بنیادی طور پر نیلے یا کوئی سبز ہے کی رقم یا نہیں 176 00:12:41,120 --> 00:12:43,720 اور پھر FF زیادہ سے زیادہ قیمت ہے. 177 00:12:43,720 --> 00:12:46,800 یہ شش اعشاری اقدار ہیں. 178 00:12:46,800 --> 00:12:53,870 تو پھر اگر ہم ff0000 ہے، تو وہ نیلے رنگ کی زیادہ سے زیادہ رقم کے مساوی 179 00:12:53,870 --> 00:12:58,890 اور اس کے بعد سبز اور کوئی سرخ، تو کوئی ہے کہ ہمیں ایک نیلے پکسل دے گی. 180 00:12:58,890 --> 00:13:04,190 اس کے بعد اگر ہم نے بورڈ بھر FF تمام ہے، تو اس کا مطلب یہ ہے کہ ہم ایک سفید پکسل ہے. 181 00:13:04,190 --> 00:13:11,370 یہ عام طور پر برعکس کی طرح ہے جب ہم RGB کا کہنا ہے کہ. یہ اصل میں BGR جا رہا ہے. 182 00:13:12,750 --> 00:13:18,990 >> لہذا اگر ہم ایک بٹ نقشہ تصویر کے ایک مثال کے طور پر میں اصل میں نظر آئے - مجھے ایک یہاں ھیںچو. 183 00:13:31,560 --> 00:13:33,830 یہ ایک چھوٹا سا چھوٹا ہے. 184 00:13:39,890 --> 00:13:47,840 میں zooming رہا ہوں، اور ہم دیکھتے ہیں اس pixelated ہے کر سکتے ہیں. یہ رنگ کے بلاکس کی طرح لگ رہا ہے. 185 00:13:47,840 --> 00:13:50,110 آپ سفید بلاکس اور پھر سرخ رنگ کے بلاکس ہیں. 186 00:13:50,110 --> 00:13:53,700 اگر آپ مائیکروسافٹ پینٹ میں کھیلتے ہیں، آپ کو مثال کے طور پر اس طرح کچھ کر سکتا ہے 187 00:13:53,700 --> 00:13:58,960 بنیادی طور پر کی طرف سے ایک مخصوص ترتیب میں کچھ چوکوں تصویر. 188 00:13:58,960 --> 00:14:08,060 تو پھر بٹ نقشہ میں کیا اس ترجمہ یہ ہے کے طور پر مندرجہ ذیل ہے. 189 00:14:08,060 --> 00:14:15,710 یہاں ہم پہلے سفید پکسلز ہے، کہ تمام 6 F کی ہیں، اور اس کے بعد ہم نے سرخ رنگ کے پکسلز ہے، 190 00:14:15,710 --> 00:14:19,910 0000ff کی طرف سے دلالت کرتی ہے. 191 00:14:19,910 --> 00:14:27,940 اور اس بائٹس کہ ہم ترتیب کی طرف اشارہ کرتا ہے کہ کس طرح بٹ نقشہ تصویر دیکھنا ہو رہا ہے. 192 00:14:27,940 --> 00:14:32,230 تو جو میں نے یہاں کیا ہے صرف ان تمام بائٹس لکھا ہے اور سرخ رنگ میں تو رنگ 193 00:14:32,230 --> 00:14:37,550 اگر تاکہ تم قسم کی دیکھ سکتے ہیں، آپ کو تھوڑا سا squint، کس طرح اس طرح کی جذباتیہ کی طرف اشارہ کرتا ہے. 194 00:14:40,180 --> 00:14:46,390 >> جس طرح سے کہ بٹ نقشہ تصاویر کے کام میں ہے یہ گرڈ کے طور پر بنیادی طور پر کلپنا. 195 00:14:46,390 --> 00:14:54,940 اور اس ڈیفالٹ کی طرف سے، گرڈ کے ہر صف 4 بائٹس کی ایک سے زیادہ ہونا ضروری ہے. 196 00:15:00,520 --> 00:15:07,060 اگر ہم ایک بٹ نقشہ تصویر میں نظر آتے ہیں، تو آپ ہر قدر میں بھرنے کر رہے ہیں. 197 00:15:07,060 --> 00:15:17,370 مثال کے طور پر، آپ ایک سرخ ہے، یہاں ایک سبز ہو سکتا ہے، یہاں ایک نیلے رنگ، 198 00:15:17,370 --> 00:15:24,950 لیکن آپ اس بات کا یقین کر لیں کہ تصویر چار بائٹس کی ایک سے زیادہ کے ساتھ میں بھری ہوئی ہے بنانے کے لئے ہے. 199 00:15:24,950 --> 00:15:32,200 تو اگر میں اپنے تین بلاکس وسیع تصویر چاہتے ہیں، تو میں ایک خالی قدر کو ہوگا 200 00:15:32,200 --> 00:15:35,640 گزشتہ ایک میں اسے چار میں سے ایک سے زیادہ بنانے کے لئے. 201 00:15:35,640 --> 00:15:39,530 تو پھر میں کچھ ہے جو ہم بھرتی بلا رہے ہیں میں شامل کریں گے. 202 00:15:39,530 --> 00:15:43,750 میں صرف یہ ہے کہ ایک ایکس کے ساتھ اس بات کی نشاندہی کرنے کے لئے جا رہا ہوں. 203 00:15:44,920 --> 00:15:54,160 اب کا کہنا ہے کہ ہم مثال کے طور پر ایک تصویر ہے جو 7 پکسلز طویل ہے چاہتے ہیں. 204 00:15:54,160 --> 00:15:59,550 ہم 1، 2، 3، 4، 5، 6، 7، 205 00:16:04,750 --> 00:16:07,000 اور اس کے سب رنگ کے ساتھ بھری ہوئی ہے. 206 00:16:07,000 --> 00:16:10,620 جس طرح سے ہے کہ بٹ نقشہ تصاویر کام یہ ہے کہ ہم ایک 8th کی ضرورت ہے. 207 00:16:10,620 --> 00:16:12,460 فی الحال ہم 1، 2، 3، 4، 5، 6، 7 ہے. 208 00:16:12,460 --> 00:16:19,360 ہم نے درست طریقے سے پڑھنے کے لئے بٹ نقشہ تصویر کے لئے 8 خالی جگہوں کی ضرورت ہے. 209 00:16:19,360 --> 00:16:25,600 تو پھر ہمیں کیا کرنا ہے صرف بھرتی کے تھوڑا سا میں شامل ہے 210 00:16:25,600 --> 00:16:29,430 اس بات کا یقین کر لیں کہ widths کے تمام وردی ہیں 211 00:16:29,430 --> 00:16:34,260 اور یہ کہ widths کے تمام 4 میں سے ایک سے زیادہ ہیں. 212 00:16:42,110 --> 00:16:47,310 اور اس طرح میں نے پہلے اشارہ، ایک ایکس یا squiggly لائن کے طور پر بھرتی، 213 00:16:47,310 --> 00:16:53,880 لیکن اصل بٹ نقشہ تصاویر میں بھرتی ایک شش اعشاری 0 کی طرف سے نشاندہی کی جاتی ہے. 214 00:16:53,880 --> 00:16:57,340 تو جو کہ ایک اکیلا کردار، 0 ہو جائے گی. 215 00:16:58,980 --> 00:17:06,329 ہاتھ میں آ سکتا ہے xxd حکم ہے. 216 00:17:06,329 --> 00:17:11,220 کیا بات ہے اصل میں آپ کو دکھاتا ہے، اچھا لگتا ہے کہ میں کیا سمائلی کے ساتھ پہلے کی طرح 217 00:17:11,220 --> 00:17:15,630 میں اصل میں جب باہر طباعت ہر رنگ پکسل کے لئے میں کیا جائے گا 218 00:17:15,630 --> 00:17:21,800 اور پھر یہ رنگ کوڈت، جب آپ چلاتے ہیں مندرجہ ذیل حکم کے ساتھ xxd 219 00:17:21,800 --> 00:17:28,670 تو اسے باہر اصل میں پرنٹ کیا رنگ ان پکسلز کے لئے ہیں. 220 00:17:28,670 --> 00:17:33,810 تمہیں کیا کرنا ہے یہاں پر یہ ہے کہ میں اس بات کی نشاندہی 54 کی طرح، 221 00:17:33,810 --> 00:17:36,530 کا کہنا ہے کہ میں 54th بائٹ میں شروع کرنے جا رہا ہوں 222 00:17:36,530 --> 00:17:40,820 اس سے پہلے وجہ سے، یاد رکھیں اگر ہم bitmaps کا نقشہ کرنے کے لئے واپس کر رہے ہیں، 223 00:17:40,820 --> 00:17:42,690 کہ اس طرح تمام ہیڈر معلومات اور چیزوں ہے. 224 00:17:42,690 --> 00:17:46,280 لیکن کیا ہم واقعی پرواہ اصل پکسلز رنگ اس بات کی نشاندہی کی ہے. 225 00:17:46,280 --> 00:17:52,700 تو 54، اس پرچم میں انہوں نے مزید کہا کی طرف سے، تو ہم رنگ اقدار کو دیکھنے کے لئے کرنے کے قابل ہیں. 226 00:17:52,700 --> 00:17:56,020 اور اس طرح پیچیدہ جھنڈوں اور چیزوں کے بارے میں فکر نہ کرو. 227 00:17:56,020 --> 00:18:05,020 مسئلہ سیٹ رپورٹ میں، آپ کو کس طرح xxd پکسلز ظاہر کرنے کے لئے استعمال کرنے کے لئے ہدایات پر پڑے گا. 228 00:18:07,070 --> 00:18:15,590 تو اگر آپ کو یہاں دیکھ کر، اس کی طرح ایک سبز خانے میں، اس چھوٹی سی بات کی طرح لگ رہا ہے. 229 00:18:15,590 --> 00:18:23,610 میں بنیادی طور پر کوئی نیلے رنگ، سبز رنگ کی ایک بہت، اور کوئی سرخ کہا کہ ہے 00ff00 رنگ کوڈت. 230 00:18:23,610 --> 00:18:26,370 تو وہ سبز مساوی ہے. 231 00:18:26,370 --> 00:18:31,920 جیسا کہ آپ کو یہاں دیکھ کر، ہم نے ایک سبز مستطیل دیکھتے ہیں. 232 00:18:31,920 --> 00:18:36,660 یہ سبز مستطیل صرف 3 پکسلز تک چوڑا ہے، تو پھر ہمیں کیا کرنا ہے 233 00:18:36,660 --> 00:18:44,350 اس بات کا یقین کر لیں کہ کہ تصویر 4 وسیع ایک سے زیادہ ہے بنانا ہے اضافی بھرتی میں شامل ہے. 234 00:18:44,350 --> 00:18:49,460 اور تو اس طرح سے آپ ان 0s یہاں دیکھ. 235 00:18:49,460 --> 00:18:54,510 یہ اصل میں آپ کے کا سائز تبدیل pset کا نتیجہ ہو جائے گا، 236 00:18:54,510 --> 00:19:01,350 بنیادی طور پر چھوٹے بٹ نقشہ تو لینے اور 4 کی طرف سے وسیع ہے. 237 00:19:01,350 --> 00:19:09,380 اور اس طرح ہم دیکھتے ہیں وہ یہ ہے کہ اصل میں یہ تصویر 12 پکسلز تک چوڑا ہے، لیکن 12 4 میں سے ایک سے زیادہ ہے، 238 00:19:09,380 --> 00:19:12,940 اور ہم اصل میں آخر میں کوئی 0s نظر نہیں ہے کیونکہ ہم کسی کو شامل کرنے کی ضرورت نہیں ہے 239 00:19:12,940 --> 00:19:19,070 کیونکہ یہ مکمل طور پر padded ہے. کوئی جگہ نہیں ہے. 240 00:19:20,720 --> 00:19:23,470 >> ٹھیک ہے. بھرتی کے بارے میں کوئی بھی سوال ہے؟ 241 00:19:25,150 --> 00:19:27,460 ٹھیک ہے. ڈاؤن لوڈ، اتارنا. 242 00:19:27,460 --> 00:19:32,520 >> جیسا کہ میں نے پہلے کہا، bitmaps بائٹس کی ایک ہی تسلسل ہے. 243 00:19:32,520 --> 00:19:39,170 اور اس طرح ہم نے بجائے بالکل بائٹ کی تعداد جن میں سے ٹریک رکھنے کے لئے کی ضرورت ہے 244 00:19:39,170 --> 00:19:47,050 ایک مخصوص عنصر کے مساوی ہو، اور ہم اصل میں ایک struct کہ کی نمائندگی کرنے کی ہے. 245 00:19:47,050 --> 00:19:50,930 تو ہم نے ایک RGBTRIPLE struct ہے. 246 00:19:50,930 --> 00:19:54,590 جب بھی آپ کو ایک RGB ٹرپل کی ایک مثال کے طور پر ہے، 247 00:19:54,590 --> 00:20:00,970 کیونکہ یہ ایک قسم struct کی وضاحت، تو آپ rgbtBlue متغیر تک رسائی حاصل کر سکتے ہیں، 248 00:20:00,970 --> 00:20:09,520 اسی طرح سبز اور سرخ متغیر، جس سے یہ ثابت کتنا نیلے، سبز اور سرخ، 249 00:20:09,520 --> 00:20:11,580 بالترتیب، تم سے ہے. 250 00:20:11,580 --> 00:20:16,800 >> تو اگر ہم 0، سبز FF سیٹ نیلے رنگ متغیر مجموعہ ہے 251 00:20:16,800 --> 00:20:22,060 جو زیادہ سے زیادہ قیمت ہے جو آپ کر سکتے ہیں ہے، اور پھر سرخ رنگ متغیر 0 قائم کرنے، 252 00:20:22,060 --> 00:20:27,870 تو اس سے خاص طور پر RGB ٹرپل کس رنگ کی نمائندگی کریں گے؟ >> [طالب علم] گرین. 253 00:20:27,870 --> 00:20:29,150 گرین. بالکل. 254 00:20:29,150 --> 00:20:34,480 یہ مفید جاننا ہو رہا ہے کہ جب بھی آپ کو ایک RGB ٹرپل کی ایک مثال کے طور پر ہے 255 00:20:34,480 --> 00:20:41,340 نیلے، سبز اور سرخ - - الگ الگ آپ کو رنگ کی رقم اصل تک رسائی حاصل کر سکتے ہیں. 256 00:20:43,350 --> 00:20:54,900 >> اب جب کہ ہم اس کی ساخت کے بارے میں بات کی ہے، BMP فائل پر ایک نظر لے. 257 00:20:54,900 --> 00:20:57,870 یہ آپ کے لئے بنایا structs ہیں. 258 00:20:57,870 --> 00:21:01,820 یہاں ہم ایک BITMAPFILEHEADER struct ہے. 259 00:21:01,820 --> 00:21:07,610 دلچسپی کے سائز ہے. 260 00:21:07,610 --> 00:21:12,660 بعد، ہم نے معلومات کی ہیڈر، جو ہمیں چند چیزیں جو دلچسپ ہیں ہیں ہے، 261 00:21:12,660 --> 00:21:15,480 یعنی لوڈ، چوڑائی اور اونچائی. 262 00:21:15,480 --> 00:21:19,170 ، جیسا کہ ہم بعد میں جائیں گے، جب آپ کو فائل میں پڑھا 263 00:21:19,170 --> 00:21:25,500 کیونکہ ہم نے کے لئے مقرر ایک ہی ہے یہ خود کار طریقے سے پڑھتا ہے. 264 00:21:25,500 --> 00:21:31,990 تو biSize صحیح بائٹس کو شامل کریں جو تصویر کا اصل سائز کے مطابق کریں گے. 265 00:21:34,700 --> 00:21:40,500 اور پھر یہاں، آخر میں، جیسا کہ ہم کے بارے میں بات کی ہے، ہم RGBTRIPLE typedef struct ہے. 266 00:21:40,500 --> 00:21:46,840 ہم ایک rgbtBlue، گرین، اور ریڈ اس کے ساتھ منسلک ہے. 267 00:21:48,210 --> 00:21:49,340 >> بہت اچھا ہے. ٹھیک ہے. 268 00:21:49,340 --> 00:21:56,360 اب جب کہ ہم bitmaps تھوڑا سا سمجھ سمجھ، کہ ہم نے ایک فائل میں ہیڈر ہے 269 00:21:56,360 --> 00:22:00,790 اور اس کے ساتھ اور پھر اس کے بعد منسلک معلومات ہیڈر، ہم دلچسپ چیزیں ہیں 270 00:22:00,790 --> 00:22:05,110 رنگوں کا، اور وہ لوگ رنگ RGBTRIPLE structs کی طرف سے نمائندگی کر رہے ہیں، 271 00:22:05,110 --> 00:22:12,710 اور ان کے نتیجے میں، تین نیلے، سبز اور سرخ سے وابستہ اقدار ہے. 272 00:22:12,710 --> 00:22:17,270 >> تو اب، ہم خیال کے بارے میں تھوڑا سا بازیافت کی طرح کر سکتے ہیں. 273 00:22:17,270 --> 00:22:20,130 معاف کیجئے گا. Whodunit کے بارے میں سوچو. 274 00:22:20,130 --> 00:22:25,750 جب ہم اپنے سراگ فائل ہے، تو جو ہم کرنا چاہتے ہیں اس میں پکسل کی طرف سے پکسل پڑھ 275 00:22:25,750 --> 00:22:33,860 اور اس کے بعد کسی نہ کسی طرح ان پکسلز کو تبدیل کریں تاکہ ہم اسے ایک پڑھنے کے قابل کی شکل میں پیداوار کر سکتے ہیں. 276 00:22:33,860 --> 00:22:41,020 تو اس کی پیداوار پر، ہم verdict.bmp فائل میں پکسل پکسل لکھنے جا رہے ہیں. 277 00:22:41,020 --> 00:22:45,120 وہ بہت کچھ کرنا کی طرح ہے. ہم اس بات کا احساس ہے. 278 00:22:45,120 --> 00:22:49,860 تو جو ہم نے کیا ہے یہ ہے کہ ہم اصل کے ساتھ آپ نے فراہم کی copy.c. 279 00:22:49,860 --> 00:22:57,610 copy.c کرتا ہے بٹ نقشہ فائل کی ایک عین مطابق نقل کرتا ہے اور پھر اس کے نتائج. 280 00:22:57,610 --> 00:23:01,900 تو یہ پہلے سے ہی آپ کے لئے فائل کو کھولتا ہے، پکسل پکسل میں پڑھتا ہے، 281 00:23:01,900 --> 00:23:04,510 اور پھر یہ ایک آؤٹ پٹ فائل میں میں لکھتے ہیں. 282 00:23:04,510 --> 00:23:07,080 >> چلو، اس پر ایک نظر لے. 283 00:23:13,390 --> 00:23:18,290 یہ مناسب استعمال کو یقینی بنانے ہے، 284 00:23:18,290 --> 00:23:22,640 FILENAMES یہاں ہو رہا ہے. 285 00:23:22,640 --> 00:23:29,940 اس کا کیا ہے، یہ ان پٹ فائل کا تعین کرتا ہے جو ہم infile میں میں منظور ہے یہاں، 286 00:23:29,940 --> 00:23:34,750 جو ہماری دوسری دلیل کمانڈ لائن ہے. 287 00:23:34,750 --> 00:23:37,640 اس بات کا یقین کر لیں کہ ہم فائل کھول سکتے ہیں بنانے کے لئے چیک کرتا ہے. 288 00:23:38,960 --> 00:23:44,860 اس بات کا یقین کر لیں کہ ہم نے ایک نیا outfile یہاں کر سکتے ہیں بنانے کے لئے چیک کرتا ہے. 289 00:23:45,630 --> 00:23:53,270 تو پھر اس سے کیا یہ یہاں ہے، صرف بنیادی طور پر شروع سے بٹ نقشہ فائل میں پڑھنے شروع ہوتا ہے. 290 00:23:53,270 --> 00:23:56,700 آغاز، جیسا کہ ہم جانتے ہیں، BITMAPFILEHEADER پر مشتمل ہے، 291 00:23:56,700 --> 00:24:03,200 اور اس بٹس کے ان انداز BITMAPFILEHEADER میں براہ راست بھر جائے گا. 292 00:24:03,200 --> 00:24:07,940 تو ہم یہاں کہ BITMAPFILEHEADER BF کہہ رہا ہے - 293 00:24:07,940 --> 00:24:13,150 کہ ہماری قسم BITMAPFILEHEADER کے نئے متغیر ہے - 294 00:24:13,150 --> 00:24:22,560 جو ہم BF کے اندر ڈال پوائنٹر میں سے جو ہم نے پڑھا جا رہے ہیں، ہمارے infile ہے. 295 00:24:22,560 --> 00:24:23,970 ہم کس طرح زیادہ سے زیادہ پڑھ سکتا ہوں؟ 296 00:24:23,970 --> 00:24:32,160 ہم کتنے بائٹس ہم مکمل BITMAPFILEHEADER پر مشتمل کرنے کی ضرورت ہے پڑھا ہے. 297 00:24:32,160 --> 00:24:34,660 اسی طرح ہے کہ معلومات کے ہیڈر کے لئے ہے جو ہم کرتے ہیں. 298 00:24:34,660 --> 00:24:39,010 تو ہم infile میں ہماری فائل کے ساتھ جاری کر رہے ہیں، 299 00:24:39,010 --> 00:24:44,360 اور ہم نے ان کی بٹس اور بائٹس پڑھ رہے ہیں، اور ہم نے ان میں plugging کر رہے ہیں براہ راست 300 00:24:44,360 --> 00:24:47,880 متغیر ہے کہ ہم کر رہے ہیں ان کی مثالوں میں. 301 00:24:49,370 --> 00:24:53,800 یہاں ہم صرف اس بات کا یقین کر لیں کہ کہ بٹ نقشہ ایک بٹ نقشہ ہے بنا رہے ہیں. 302 00:24:57,670 --> 00:25:01,030 >> اب ہم ایک outfile ہے، ٹھیک ہے؟ 303 00:25:01,030 --> 00:25:04,420 تو کے طور پر یہ کھڑا ہے جب ہم نے اسے تخلیق، یہ بنیادی طور پر خالی ہے. 304 00:25:04,420 --> 00:25:07,710 تو ہم بنیادی طور پر شروع سے ایک نئی بٹ نقشہ بنانے کی ہے. 305 00:25:07,710 --> 00:25:12,280 ہم کیا کرتے ہیں ہے ہم اس بات کا یقین کر لیں کہ ہم فائل ہیڈر میں کاپی کرنے کے بنانے کے لئے ہے 306 00:25:12,280 --> 00:25:16,850 اور صرف infile کی طرح کی معلومات کے ہیڈر ہے. 307 00:25:16,850 --> 00:25:22,850 ہم کیا کرتے ہیں ہے ہم لکھ کریں - اور یاد رکھیں کہ BF متغیر ہے 308 00:25:22,850 --> 00:25:29,300 قسم BITMAPFILEHEADER، تو ہم کیا کرتے ہیں ہے، ہم صرف اس مواد کا استعمال 309 00:25:29,300 --> 00:25:34,980 outfile میں لکھنے کے لئے ہے. 310 00:25:36,550 --> 00:25:38,510 یہاں یاد ہے، ہم بھرتی کے بارے میں بات کی تھی، 311 00:25:38,510 --> 00:25:47,820 یہ ضروری ہے کہ کس طرح اس بات کا یقین کر لیں کہ کہ پکسلز کہ ہم وہ رقم ہے جو 4 میں سے ایک سے زیادہ ہے بنانے کے لئے. 312 00:25:47,820 --> 00:25:52,790 یہ ایک بہت مفید حساب آپ کتنا بھرتی ہے فارمولہ ہے 313 00:25:52,790 --> 00:25:57,670 آپ کی فائل کی چوڑائی کی دی. 314 00:25:57,670 --> 00:26:04,120 میں لوگ آپ کو یاد ہے کہ ہم copy.c میں بھرتی کے حساب کے لئے ایک فارمولا ہے کرنا چاہتے ہیں. 315 00:26:04,120 --> 00:26:07,970 ٹھیک ہے؟ تو سب کو وہ یاد ہے. بہت اچھا ہے. 316 00:26:07,970 --> 00:26:14,050 تو پھر کیا copy.c ہے اگلے ہے یہ ختم scanlines کے تمام iterates. 317 00:26:14,050 --> 00:26:23,730 پہلے یہ قطار کے ذریعے جاتا ہے اور پھر ہر ٹرپل ہے کہ وہ پڑھتا ذخیرہ 318 00:26:23,730 --> 00:26:26,920 اور پھر یہ outfile میں لکھتے ہیں. 319 00:26:26,920 --> 00:26:33,120 تو پھر ہم یہاں ایک وقت میں صرف ایک RGB ٹرپل پڑھ رہے ہو 320 00:26:33,120 --> 00:26:39,860 اور پھر outfile میں کہ اسی ٹرپل لگا. 321 00:26:41,120 --> 00:26:48,340 مشکل بات یہ ہے کہ بھرتی ایک RGB ٹرپل نہیں ہے، 322 00:26:48,340 --> 00:26:55,200 اور ہم صرف RGB triples کہ بھرتی رقم نہیں پڑھ سکتے ہیں. 323 00:26:55,200 --> 00:27:01,460 ہمیں کیا کرنا ہے اصل میں صرف ہماری فائل پوزیشن اشارہ ہے منتقل، ہمارے کرسر منتقل، 324 00:27:01,460 --> 00:27:06,840 تاکہ ہم تمام بھرتی کے دوران اگلی قطار میں ہیں پر کی طرح ہے. 325 00:27:06,840 --> 00:27:12,990 اور پھر اس کا کیا ہے کاپی آپ کو دکھاتا ہے کہ آپ کس طرح بھرتی شامل کرنا چاہتے ہیں کر سکتے ہیں. 326 00:27:12,990 --> 00:27:14,990 تو ہم کا حساب ہم کتنی بھرتی کی ضرورت ہے، 327 00:27:14,990 --> 00:27:18,220 تو اس کا مطلب ہے کہ ہم 0s کی بھرتی کی تعداد کی ضرورت ہے. 328 00:27:18,220 --> 00:27:24,510 اس کا کیا لوپ ہے جو ہمارے outfile میں 0s کی بھرتی نمبر کرتا ہے کے لئے ہے. 329 00:27:24,510 --> 00:27:31,170 اور پھر آخر میں، آپ دونوں فائلوں کو بند کریں. آپ کے ساتھ کے طور پر infile outfile بند کرو. 330 00:27:31,170 --> 00:27:34,870 >> تو اس copy.c کیسے کام کرتا ہے، 331 00:27:34,870 --> 00:27:37,430 اور یہ کہ بہت مفید ہو جا رہا ہے. 332 00:27:39,720 --> 00:27:43,750 صرف اصل میں براہ راست کاپی اور چسپاں کر کے بجائے 333 00:27:43,750 --> 00:27:46,800 یا صرف یہ دیکھ، اور جو کچھ بھی تم چاہتے ہو میں ٹائپ 334 00:27:46,800 --> 00:27:49,440 آپ کو ٹرمینل میں یہ کمانڈ پھانسی صرف یہ چاہتا ہوں ہو سکتا ہے، 335 00:27:49,440 --> 00:27:54,520 CP copy.c whodunit.c، جس سے ایک نئی فائل بنانے کے whodunit.c، 336 00:27:54,520 --> 00:27:58,330 ہے کہ عین مطابق اسی مواد کے طور پر نقل کرتا ہے پر مشتمل ہے. 337 00:27:58,330 --> 00:28:03,880 تو پھر ہم کیا کر سکتے ہیں کا استعمال کرتے ہوئے ہے کہ ایک فریم ورک کے طور پر جس میں ترمیم کی تعمیر ہے 338 00:28:03,880 --> 00:28:06,900 ہماری whodunit فائل کے لئے. 339 00:28:08,500 --> 00:28:14,670 >> یہ ہمارے ڈاس نے Whodunit کے لئے کرنا چاہتے ہیں، لیکن copy.c کیا کرتا 340 00:28:14,670 --> 00:28:16,730 اصل میں ہمارے لئے ان میں سے زیادہ تر کا خیال ہے. 341 00:28:16,730 --> 00:28:21,900 تو ہم سب اگلے کرنے کی ضرورت ہے پکسلز ضرورت کے مطابق تبدیل 342 00:28:21,900 --> 00:28:25,920 اصل میں فائل پڑھنے کے قابل ہے. 343 00:28:25,920 --> 00:28:32,960 ہے کہ، ایک دی ٹرپل پکسل کے لئے قسم RGBTRIPLE کی ایک مخصوص ویرئیےبل کے لئے اتنا یاد 344 00:28:32,960 --> 00:28:35,990 آپ کو نیلے، سبز اور سرخ اقدار تک رسائی حاصل کر سکتے ہیں. 345 00:28:35,990 --> 00:28:38,670 یہ ہاتھ میں آنے والا ہے، اور اگر آپ ان تک رسائی حاصل کر سکتے ہیں کیونکہ 346 00:28:38,670 --> 00:28:41,770 اس کا مطلب یہ ہے کہ آپ ان کو یہ بھی چیک کر سکتے ہیں، 347 00:28:41,770 --> 00:28:45,430 اور اس کا مطلب ہے کہ آپ انہیں بھی تبدیل کر سکتے ہیں. 348 00:28:45,430 --> 00:28:49,430 >> ، تو جب ہم ہمارے لال میگنفائنگ گلاس کی مثال کے طور پر واپس آ گیا 349 00:28:49,430 --> 00:28:53,390 بنیادی طور پر، یہ ہمارے لئے فلٹر کا ایک طرح کے طور پر کام کر رہا تھا. 350 00:28:53,390 --> 00:28:58,160 تو جو ہم کرنا چاہتے ہیں ہے ہم تمام triples کہ اندر آ رہے ہیں. فلٹر کرنا چاہتے ہیں 351 00:28:58,160 --> 00:29:01,240 ایسا کرنے کے لئے کئی مختلف طریقے ہیں. 352 00:29:01,240 --> 00:29:07,100 بنیادی طور پر آپ کے پاس، جو کچھ بھی قسم کی فلٹر کا آپ چاہتے ہیں کر سکتے ہیں. 353 00:29:07,100 --> 00:29:09,890 شاید آپ کو تمام سرخ پکسلز کو تبدیل کرنا چاہتے ہیں 354 00:29:09,890 --> 00:29:13,570 یا ہو سکتا ہے کہ آپ ایک مختلف رنگ ایک مختلف رنگ کے پکسل کو تبدیل کرنا چاہتے ہیں. 355 00:29:13,570 --> 00:29:15,400 یہ آپ پر منحصر ہے. 356 00:29:15,400 --> 00:29:19,580 یاد رکھیں کہ آپ چیک کرنے کے لیے کر سکتے ہیں کیا رنگ پکسل ہے 357 00:29:19,580 --> 00:29:23,000 اور پھر آپ اسے تبدیل بھی جیسا کہ آپ کے ذریعے جا رہے ہیں کر سکتے ہیں. 358 00:29:24,410 --> 00:29:26,420 >> ٹھیک ہے. تو اس Whodunit ہے. 359 00:29:26,420 --> 00:29:32,760 ایک بار جب آپ Whodunit چلاتے ہیں، آپ جانتے ہیں، جو جرم کے ارتکاب کا مجرم تھا گے. 360 00:29:32,760 --> 00:29:35,540 >> اب ہم نیا سائز کریں پر جانے کے لئے جا رہے ہیں. 361 00:29:35,540 --> 00:29:37,990 ہم اب بھی bitmaps کے ساتھ نمٹنے جا رہے ہیں. 362 00:29:37,990 --> 00:29:40,750 ہم کیا کر رہے ہیں کی جا رہی ہے اور ہم نے ایک ان پٹ بٹ نقشہ جا رہے ہیں 363 00:29:40,750 --> 00:29:45,890 اور اس کے بعد ہم نے ایک بڑی تعداد میں اور پاس تو ایک outfile بٹ نقشہ حاصل کرنے جا رہے ہیں 364 00:29:45,890 --> 00:29:51,380 کہ بنیادی طور پر جہاں ہمارے (ن) کی طرف سے چھوٹا infile ہے. 365 00:29:54,670 --> 00:30:01,450 کہہ دو کہ میری فائل میں صرف ایک پکسل بڑی تھی. 366 00:30:01,450 --> 00:30:09,100 پھر اگر میری ن 3 3، پیمائی تھا، تو میں بار پکسل ن نمبر دوبارہ کریں گے، 367 00:30:09,100 --> 00:30:14,410 تو 3 بار، اور پھر بھی اس کو نیچے 3 بار کرنا. 368 00:30:14,410 --> 00:30:17,840 تو تم دیکھو، میں اسے پیمائی عمودی طور پر کے طور پر کے طور پر اچھی طرح سے کر رہا ہوں افقی طور پر. 369 00:30:17,840 --> 00:30:19,680 >> اور پھر یہاں ایک مثال ہے. 370 00:30:19,680 --> 00:30:27,590 اگر آپ کے پاس (ن) = 2 ہے، آپ کو دیکھتے ہیں کہ پہلی نیلے پکسل دو بار 371 00:30:27,590 --> 00:30:30,930 افقی طور پر کے طور پر دو بار عمودی طور پر اچھی طرح سے. 372 00:30:30,930 --> 00:30:38,040 اور پھر اس پر جاری ہے، اور تم دونوں کی طرف سے ایک آپ کی اصل تصویر کے براہ راست پیمائی ہے. 373 00:30:40,920 --> 00:30:47,600 >> تو پھر اگر ہم اس کے لئے pseudocode تفصیل سے تھے، ہم فائل کو کھولنے کے لئے چاہتے ہیں. 374 00:30:47,600 --> 00:30:49,880 اور پھر یہ جان کر کہ اگر ہم یہاں واپس جانا 375 00:30:49,880 --> 00:30:54,540 ہم دیکھتے ہیں کہ outfile کے لئے چوڑائی infile کے لئے چوڑائی سے مختلف ہونے جا رہا ہے. 376 00:30:54,540 --> 00:30:56,130 اس کا کیا مطلب ہے؟ 377 00:30:56,130 --> 00:31:01,230 اس کا مطلب یہ ہے کہ کہ ہمارے ہیڈر کی معلومات کو تبدیل کرنے جا رہا ہے. 378 00:31:01,230 --> 00:31:03,790 اور اس طرح ہمیں کیا کرنا چاہیں گے ہے ہیڈر کی معلومات کی تازہ کاری، 379 00:31:03,790 --> 00:31:11,820 ، يہ علم ميں رہے کہ جب ہم نے فائلوں میں پڑھا اگر آپ copy.c فریم ورک پر کام کر رہے ہیں 380 00:31:11,820 --> 00:31:17,570 ہم نے پہلے سے ہی ایک متغیر کی طرف اشارہ کرتا ہے کہ کیا حجم ہے اور اس طرح چیزیں ہے. 381 00:31:17,570 --> 00:31:24,060 تو ایک بار ہے کہ تم کیا کرنا چاہتے ہو سکتا ہے ان مخصوص متغیر تبدیل ہے. 382 00:31:24,060 --> 00:31:29,380 یاد رکھیں، اگر آپ ایک struct ہے، کہ کس طرح آپ اس کے اندر اندر متغیر تک رسائی حاصل کریں. 383 00:31:29,380 --> 00:31:32,080 آپ کو نقطہ آپریٹر کا استعمال کرتے ہیں، ہے نا؟ 384 00:31:32,080 --> 00:31:36,420 تو اس کا استعمال کرتے ہوئے، آپ کو معلوم ہے کہ آپ کو ہیڈر کی معلومات کو تبدیل کرنے کی ضرورت ہو گی. 385 00:31:36,480 --> 00:31:41,030 تو یہاں صرف اصل عناصر ہیں جو آپ کی فائل میں تبدیل کرنے جا رہے ہیں کی ایک فہرست ہے. 386 00:31:41,030 --> 00:31:45,180 فائل کے سائز کو تبدیل کرنے، تصویر، کے ساتھ کے طور پر کی چوڑائی اور اونچائی کی جا رہی ہے. 387 00:31:45,180 --> 00:31:50,080 تو پھر bitmaps کا نقشہ واپس جا، 388 00:31:50,080 --> 00:31:57,730 میں دیکھو، چاہے وہ فائل ہیڈر یا معلومات ہیڈر ہے کہ وہ معلومات پر مشتمل ہے ہے 389 00:31:57,730 --> 00:32:00,920 اور پھر تبدیل ضرورت کے مطابق. 390 00:32:05,010 --> 00:32:12,470 ایک بار پھر، CP copy.c resize.c کا کہنا ہے کہ. 391 00:32:12,470 --> 00:32:19,270 اس کا مطلب یہ ہے کہ resize.c اب ہر وہ چیز جو کاپی کے اندر موجود ہے پر مشتمل ہے 392 00:32:19,270 --> 00:32:24,490 کیونکہ کاپی ہمیں پکسل کی طرف سے ہر scanline پکسل میں پڑھنے کا ایک طریقہ فراہم کرتا ہے. 393 00:32:24,490 --> 00:32:29,860 اب علاوہ، بجائے صرف اقدار کو تبدیل کرنے جیسے ہم Whodunit میں کیا تھا، 394 00:32:29,860 --> 00:32:37,980 جو ہم کرنا چاہتے ہیں ہے ہم ایک سے زیادہ پکسلز میں لکھنے کے لئے چاہتے ہیں 395 00:32:37,980 --> 00:32:43,580 جب تک کے طور پر ہمارے ن 1 سے بڑا ہے. 396 00:32:43,580 --> 00:32:47,110 >> تو کیا جو ہم کرنا چاہتے ہیں ہم اس کے (ن) کی طرف سے بڑھاتے افقی طور پر کرنا چاہتے ہیں، 397 00:32:47,110 --> 00:32:50,490 کے طور پر (ن) کی طرف سے کے طور پر یہ عمودی بڑھاتے. 398 00:32:50,490 --> 00:32:52,710 ہم یہ کیسے کر سکتا ہے؟ 399 00:32:52,710 --> 00:32:56,890 کا کہنا ہے کہ آپ کا (ن) 2 ہے اور آپ کو یہ دیا infile ہے. 400 00:32:56,890 --> 00:32:58,730 آپ کا کرسر پہلے ایک میں شروع کرنے جا رہا ہے، 401 00:32:58,730 --> 00:33:03,530 اور جو کچھ تم کرنا چاہتے ہو، اگر (ن) 2 ہے، آپ کو ان میں سے 2 میں پرنٹ کرنے کے لئے چاہتے ہیں. 402 00:33:03,530 --> 00:33:05,490 تو آپ کو ان میں سے 2 میں پرنٹ. 403 00:33:05,490 --> 00:33:10,830 اس کے بعد آپ کا کرسر اگلے پکسل، جو سرخ ایک ہے پر منتقل کرنے کے لئے کی جا رہی ہے، 404 00:33:10,830 --> 00:33:18,400 اور اس نے ان لال والوں میں 2 پر پرنٹ کرنے کے لئے، جو اس سے پہلے ہو چکا ہے پر یہ appending جا رہا ہے. 405 00:33:18,400 --> 00:33:26,280 پھر کرسر اگلے پکسل منتقل اور ان میں سے 2 میں اپنی طرف متوجہ کرے گا. 406 00:33:26,280 --> 00:33:37,180 اگر آپ copy.c فریم ورک، اس کا کیا واپس یہاں دیکھو 407 00:33:37,180 --> 00:33:42,830 ہے یہ ایک RGB ٹرپل نامی ایک نیا ٹرپل متغیر کی ایک نئی مثال کے طور پر پیدا. 408 00:33:42,830 --> 00:33:50,500 اور یہاں جب وہ اس میں لکھا ہے، infile 1 RGBTRIPLE سے پڑھتا 409 00:33:50,500 --> 00:33:53,470 اور یہ اس ٹرپل متغیر کی اندر ذخیرہ. 410 00:33:53,470 --> 00:33:57,590 تو آپ واقعی میں اس مخصوص پکسل کی نمائندگی متغیر ہے. 411 00:33:57,590 --> 00:34:05,290 پھر جب آپ لکھتے ہیں، تم کیا کرنا چاہتے ہو سکتا ہے میں لوپ کے لئے fwrite بیان encase ہے 412 00:34:05,290 --> 00:34:11,080 جو کئی بار کے طور پر ضرورت کے طور پر اپنے outfile میں لکھتے ہیں. 413 00:34:17,449 --> 00:34:20,100 یہ کافی آسان ہے. 414 00:34:20,200 --> 00:34:27,590 صرف بنیادی طور پر تحریری عمل N اسے افقی طور پر کی سطح کے لئے اوقات کی تعداد دہرائیں. 415 00:34:27,590 --> 00:34:32,969 >> لیکن اس وقت ہمیں یاد ہے کہ ہمارے بھرتی تبدیل کرنے جا رہا ہے. 416 00:34:47,350 --> 00:34:53,020 ماضی کہتے ہیں، ہم 3 کی لمبائی کی کچھ تھا. 417 00:34:53,020 --> 00:35:00,130 اس کے بعد ہم کتنا بھرتی میں شامل کریں گے؟ صرف ایک اور 4 میں سے ایک سے زیادہ بنانے کے لئے. 418 00:35:00,130 --> 00:35:10,480 لیکن اس کا کہنا ہے کہ ہم ن = 2 کی طرف سے اس مخصوص تصویر پیمائی کر رہے ہیں. 419 00:35:10,480 --> 00:35:16,300 تو پھر ہم آخر میں کتنے نیلے رنگ کے پکسلز ہوگا؟ ہم 6 ہوگا. 420 00:35:16,300 --> 00:35:21,470 1، 2، 3، 4، 5، 6. ٹھیک ہے. 421 00:35:21,470 --> 00:35:26,580 6 4 میں سے ایک سے زیادہ نہیں ہے. 4 کے قریبی ایک سے زیادہ کیا ہے؟ یہ 8 ہونے جا رہا ہے. 422 00:35:26,580 --> 00:35:33,200 تو ہم اصل میں بھرتی کے 2 حروف کو وہاں جا رہے ہیں. 423 00:35:33,200 --> 00:35:38,720 >> کیا کسی کو یاد رکھیں اگر ہم بھرتی کا حساب کرنے کے فارمولے ہے 424 00:35:38,720 --> 00:35:41,350 اور یہ کہ کہاں ہو سکتا ہے؟ 425 00:35:41,350 --> 00:35:45,160 [اشراوی طالب علم کے جواب] >> جی ہاں copy.c.، ٹھیک ہے. 426 00:35:45,160 --> 00:35:49,800 copy.c میں فارمولہ حساب آپ کتنا بھرتی ہے 427 00:35:49,800 --> 00:35:53,810 بٹ نقشہ تصویر کے ایک خاص چوڑائی دیا. 428 00:35:53,810 --> 00:36:02,950 تو پھر چل رہا ہے مفید ہو جب آپ کی ایک مخصوص مقدار میں بھرتی میں شامل کرنے کی ضرورت 429 00:36:02,950 --> 00:36:06,160 اصل میں باہر اعداد و شمار کتنا بھرتی آپ کو شامل کرنے کی ضرورت ہے. 430 00:36:10,820 --> 00:36:15,850 لیکن ایک نوٹ، اگرچہ یہ ہے کہ آپ کو اس بات کا یقین کر لیں کہ آپ صحیح سائز کا استعمال کرتے ہوئے کر رہے ہیں کرنا چاہتے ہیں. 431 00:36:15,850 --> 00:36:21,410 ہوشیار رہو کیونکہ آپ بنیادی طور پر دو بٹ ​​نقشہ تصاویر کے ساتھ نمٹنے جا رہے ہیں. 432 00:36:21,410 --> 00:36:23,410 آپ کو اس بات کا یقین کر لیں کہ آپ صحیح استعمال کر رہے ہیں کرنا چاہتے ہیں. 433 00:36:23,410 --> 00:36:26,820 جب آپ outfile کے لئے بھرتی حساب کر رہے ہیں، آپ outfile کی چوڑائی کو استعمال کرنے کے لئے چاہتے ہیں 434 00:36:26,820 --> 00:36:29,860 اور پچھلے ایک کی چوڑائی نہیں. 435 00:36:29,860 --> 00:36:37,240 >> بہت اچھا ہے. اس طرح کی ایک پوری بٹ نقشہ نقش افقی طور پر ھیںچ کی دیکھ بھال کرتا ہے. 436 00:36:37,240 --> 00:36:41,290 لیکن اصل میں جو ہم کرنا چاہتے ہیں اس کے ساتھ عمودی بڑھاتے. 437 00:36:41,290 --> 00:36:48,760 یہ تھوڑا سا trickier کیونکہ جب تم میں سے کسی ایک کو ہم ایک قطار کاپی ختم کر دیا ہے جا رہا ہے 438 00:36:48,760 --> 00:36:51,580 اور اس صف لکھنے، ہمارے کرسر کے آخر میں ہونے جا رہا ہے. 439 00:36:51,580 --> 00:36:56,210 تو اگر ہم بار دوبارہ پڑھیں، تو یہ صرف اگلی لائن میں پڑھنا ہو رہا ہے. 440 00:36:56,210 --> 00:37:03,660 تو جو ہم کرنا چاہتے ہیں کی قسم ان قطاروں کو دوبارہ کاپی کا کوئی راستہ تلاش 441 00:37:03,660 --> 00:37:12,500 یا اس صف لینے اور پھر اسے دوبارہ دوبارہ لکھ قسم. 442 00:37:14,380 --> 00:37:17,940 جیسا کہ میں نے قسم alluded، ایسا کرنے کے لئے کئی مختلف طریقے ہیں. 443 00:37:17,940 --> 00:37:23,040 آپ کیا کر سکتے ہیں ہے جیسا کہ آپ کے ذریعے جا رہے ہیں اور خاص scanline کے ذریعے پڑھنے 444 00:37:23,040 --> 00:37:28,560 اور ضرورت کے مطابق اسے تبدیل کرنے پر، تو سٹور کی طرح ایک صف میں ان پکسلز کے سب. 445 00:37:28,560 --> 00:37:36,350 پھر اس کے بعد تم پر میں جانتا ہوں کہ آپ کو اس صف پر دوبارہ پرنٹ کی ضرورت ہو گی، 446 00:37:36,350 --> 00:37:39,830 اور اسی طرح آپ کو اس صف ایسا استعمال کر سکتے ہیں. 447 00:37:39,830 --> 00:37:44,500 ایسا کرنے کا ایک اور طریقہ ہے تم نیچے ایک صف کاپی کر سکتے، 448 00:37:44,500 --> 00:37:47,950 سمجھنے کی کوشش کرتا ہے کہ آپ پھر سے کاپی کرنے کے لئے کی ضرورت ہے، تو اصل میں آپ کا کرسر کو منتقل کریں، 449 00:37:47,950 --> 00:37:50,950 اور یہ کہ طریقہ fseek کا استعمال کرتے ہوئے کیا جا رہا ہے. 450 00:37:50,950 --> 00:37:56,410 آپ منتقل آپ کا کرسر پورے راستے واپس اور پھر سکتا ہے کاپی کے عمل کو دوبارہ. 451 00:37:56,410 --> 00:38:03,960 >> لہذا اگر ہمارے پیمائی نمبر (ن) ہے، تو پھر کس طرح کئی بار ہمیں واپس جانا ہوگا 452 00:38:03,960 --> 00:38:10,500 اور ایک لائن کو دوبارہ سے لکھنا ہے؟ >> [طالب علم] N - 1. >> جی ہاں، کامل. N - 1. 453 00:38:10,500 --> 00:38:14,390 ہم نے یہ کیا ایک بار پہلے سے ہی ہے، تو ہم واپس عمل کا دوبارہ کرنا چاہیں گے 454 00:38:14,390 --> 00:38:17,460 N - 1 بار رقم. 455 00:38:22,730 --> 00:38:25,860 ٹھیک ہے. تو وہاں آپ کو آپ کے بازسائز تقریب ہے. 456 00:38:25,860 --> 00:38:34,360 >> اب ہم ایک بہت مزہ حصہ، میرا پسندیدہ pset ہے، جو بازیافت حاصل کرنے کے لئے کر سکتے ہیں. 457 00:38:34,360 --> 00:38:39,580 bitmaps کے بجائے، اس وقت ہم JPEGs کے ساتھ کام کر رہے ہو. 458 00:38:39,580 --> 00:38:43,370 دراصل ہم کو صرف JPEGs کی فائل نہیں کر رہے ہیں، 459 00:38:43,370 --> 00:38:46,600 ہم بنیادی طور پر خام میموری کارڈ فارمیٹ دے رہے ہیں. 460 00:38:46,600 --> 00:38:51,790 اور اس طرح یہ شروع میں معلومات اور ردی کی ٹوکری کی اقدار کے تھوڑا سا پر مشتمل ہوتی ہے، 461 00:38:51,790 --> 00:38:57,240 اور پھر یہ شروع ہوتا ہے اور یہ JPEG فائلوں کا ایک گروپ ہے. 462 00:38:57,240 --> 00:39:03,430 تاہم، ہم نے ایک کارڈ کے حوالے کیا ہے جہاں ہم تصاویر کو خارج کر دیا ہے رہے ہیں؛ 463 00:39:03,430 --> 00:39:08,300 بنیادی طور پر، ہم بھول گئے ہو جہاں تصاویر کارڈ کے اندر اندر واقع ہیں ہے. 464 00:39:08,300 --> 00:39:12,770 تو میں بازیافت ہمارا کام اس کارڈ فارمیٹ کے ذریعے جانا ہے 465 00:39:12,770 --> 00:39:16,500 اور وہ تصویریں دوبارہ تلاش کریں. 466 00:39:16,500 --> 00:39:23,990 >> خوش قسمتی، JPEG فائلوں اور کارڈ فائل کی ساخت تھوڑا مددگار ہے. 467 00:39:23,990 --> 00:39:28,850 یہ یقینی طور پر تھوڑا سا trickier ہو سکتا تھا اگر یہ اس مخصوص شکل میں نہیں تھے. 468 00:39:28,850 --> 00:39:40,160 ہر JPEG فائل اصل میں دو ممکنہ انداز، مندرجہ بالا کے ساتھ شروع ہوتا ہے. 469 00:39:40,160 --> 00:39:42,970 بنیادی طور پر، جب بھی آپ کو ایک نیا JPEG فائل ہے، 470 00:39:42,970 --> 00:39:52,720 یہ یا تو ترتیب ffd8 ffe0 یا دوسرے، ffe1 ffd8 کے ساتھ شروع ہوتا ہے. 471 00:39:52,720 --> 00:39:59,530 ایک اور مفید جاننے کی بات یہ ہے کہ JPEGs contiguously جمع کیے جاتے ہیں. 472 00:39:59,530 --> 00:40:03,380 تو جب بھی ایک JPEG فائل ختم ہو جاتا ہے، دوسرے ایک شروع ہوتا ہے. 473 00:40:03,380 --> 00:40:07,070 تو وہاں اقدار کے درمیان کسی بھی قسم کی نہیں ہے. 474 00:40:07,070 --> 00:40:15,510 ایک بار جب آپ نے ایک JPEG کے آغاز کو مارا، اگر آپ کے پاس پہلے سے ہی کیا گیا ہے JPEG پڑھنے، 475 00:40:15,510 --> 00:40:21,800 آپ کو معلوم ہے کہ آپ نے پچھلے اور اگلے ایک کے آغاز کے اختتام متاثر کیا ہے. 476 00:40:21,800 --> 00:40:25,890 >> یہ دیکھ طرح کرنے کے لئے، میں نے ایک یوجنابدق کیا. 477 00:40:25,890 --> 00:40:36,910 JPEGs کے بارے میں ایک اور بات یہ ہے کہ ہم ایک وقت میں 512 بائٹس کے انداز میں انہیں پڑھ سکتے ہیں، 478 00:40:36,910 --> 00:40:39,380 اسی طرح کارڈ کے آغاز کے ساتھ. 479 00:40:39,380 --> 00:40:43,370 ہم نے ہر ایک بائٹ کی جانچ پڑتال اس لیے کہ دودھ کی جائے گی کی ضرورت نہیں ہے. 480 00:40:43,370 --> 00:40:48,200 تو بجائے، جو ہم کر سکتے ہیں اصل میں صرف ایک وقت میں 512 بائٹس میں پڑھنے 481 00:40:48,200 --> 00:40:54,700 اور اس کے بعد، ان چھوٹے تھوڑا سلائسین میں ان لوگوں کے درمیان میں کی جانچ پڑتال کرنے کے بجائے 482 00:40:54,700 --> 00:40:58,640 ہم 512 بائٹس کے آغاز چیک کرنے کے لیے کر سکتے ہیں. 483 00:40:58,640 --> 00:41:02,570 بنیادی طور پر، اس تصویر میں، جو تم دیکھتے ہو کارڈ کے شروع میں سب سے پہلے ہے، 484 00:41:02,570 --> 00:41:08,700 آپ کے پاس وہ اقدار ہیں جو واقعی اصل JPEGs خود متعلقہ نہیں ہیں. 485 00:41:08,700 --> 00:41:15,830 لیکن اس وقت میں نے ایک JPEG کے لئے دو شروع انداز میں سے ایک کی نشاندہی کرنے کا ایک ستارہ ہے. 486 00:41:15,830 --> 00:41:19,910 تو جب بھی آپ کو ایک ستارہ کو دیکھتے ہیں، تو آپ کو معلوم ہے کہ آپ کو ایک JPEG فائل ہے. 487 00:41:19,910 --> 00:41:25,030 اور پھر ہر JPEG فائل 512 بائٹس میں سے کچھ ایک سے زیادہ بننے جا رہا ہے 488 00:41:25,030 --> 00:41:27,880 لیکن اس کے ساتھ ایک سے زیادہ ضروری نہیں. 489 00:41:27,880 --> 00:41:32,050 جس طرح سے ہے کہ آپ کو معلوم ہے کہ آپ کو کسی دوسرے JPEG متاثر ہے ہے اگر آپ کو ایک اور ستارہ مارا، 490 00:41:32,050 --> 00:41:39,090 بائٹس کی ایک اور شروع ترتیب. 491 00:41:39,090 --> 00:41:43,330 تو کیا آپ یہاں ہے آپ کو سرخ JPEG فائل جاری ہے جب تک کہ آپ ایک ستارہ کو مارا، 492 00:41:43,330 --> 00:41:45,150 جس میں ایک نیا رنگ کی طرف سے نشاندہی کی جاتی ہے. 493 00:41:45,150 --> 00:41:48,510 تم اور پھر آپ کو ایک اور ستارہ مارا جاری رکھیں، آپ کو کسی دوسرے JPEG مارا، 494 00:41:48,510 --> 00:41:50,590 تم نے آخر تک تمام طرح جاری ہے. 495 00:41:50,590 --> 00:41:53,180 تم سے آخری تصویر میں ہو، ایک گلابی. 496 00:41:53,180 --> 00:41:58,220 آپ آخر تک جاتے ہیں جب تک آپ فائل کردار کے آخر مارا. 497 00:41:58,220 --> 00:42:00,820 یہ بہت مفید ہو جا رہا ہے. 498 00:42:00,820 --> 00:42:03,170 >> چند اہم takeaways یہاں: 499 00:42:03,170 --> 00:42:06,670 کارڈ فائل JPEG کے ساتھ نہیں شروع ہوتا ہے، 500 00:42:06,670 --> 00:42:13,350 لیکن ایک بار JPEG شروع ہوتا ہے، JPEGs کے تمام پارٹی کی طرف سے ایک دوسرے کی طرف جمع کیے جاتے ہیں. 501 00:42:17,520 --> 00:42:20,420 >> بازیافت کے لئے کچھ pseudocode. 502 00:42:20,420 --> 00:42:22,570 سب سے پہلے، ہم ہماری کارڈ کی فائل کو کھولنے کے لئے جا رہے ہیں، 503 00:42:22,570 --> 00:42:27,500 اور یہ کہ ہماری فائل I / O افعال کا استعمال کرتے ہوئے کیا جا رہا ہے. 504 00:42:27,500 --> 00:42:32,430 ہم مندرجہ ذیل عمل جب تک ہم فائل کے آخر تک پہنچ چکے دہرانے جا رہے ہیں. 505 00:42:32,430 --> 00:42:36,450 ہم ایک وقت میں 512 بائٹس پڑھنے جا رہے ہیں. 506 00:42:36,450 --> 00:42:39,180 اور کیا میں یہاں کہا ہے ہم یہ بفر میں ذخیرہ کرنے جا رہے ہیں، 507 00:42:39,180 --> 00:42:46,230 بنیادی طور پر ان 512 بائٹس پر منعقد جب تک ہم جانتے ہیں کہ بالکل وہی جو ان کے ساتھ کیا کرنا ہے. 508 00:42:46,230 --> 00:42:50,300 تو کیا جو ہم کرنا چاہتے ہیں ہم چیک کرنے کے لیے ہے کہ ہم نے ایک ستارہ یا نہ مارو ہے کرنا چاہتے ہیں. 509 00:42:50,300 --> 00:42:57,960 ، اگر ہم ایک ستارہ کو مارا ہے، اگر ہم شروع انداز میں سے ایک مارا ہے 510 00:42:57,960 --> 00:42:59,980 تو ہم جانتے ہیں کہ ہم نے ایک نیا JPEG فائل متاثر کیا ہے. 511 00:42:59,980 --> 00:43:08,860 ہم کیا کرنا چاہتے ہیں کریں گے ہم ہمارے pset4 ڈائریکٹری میں ایک نئی فائل بنانے کے لئے چاہتے ہیں کے لئے جا رہے ہیں 512 00:43:08,860 --> 00:43:14,480 وہ فائل کرنا جاری ہے. 513 00:43:14,480 --> 00:43:18,220 بلکہ، اگر ہم نے پہلے سے ہی کرنے سے پہلے ایک JPEG ہے بنا دیا، 514 00:43:18,220 --> 00:43:25,620 تو ہم نے اس فائل کو ختم کرنے کے لئے اور pset4 فولڈر میں دھکا کرنا چاہتے ہیں، 515 00:43:25,620 --> 00:43:29,780 ہم کہاں ہے وہ فائل محفوظ کریں گے، اگر ہم وضاحت نہیں ہے کہ ہم اس JPEG فائل کو ختم کر دیا ہے، کیونکہ 516 00:43:29,780 --> 00:43:37,290 تو ہم نے ایک indeterminate رقم بنیادی طور پر پڑے گا. JPEGs کبھی نہیں ختم ہو جائے گی. 517 00:43:37,290 --> 00:43:40,840 تو ہم اس بات کا یقین کر لیں کہ جب ہم ایک JPEG فائل میں پڑھ رہے ہیں اور کہ لکھنے بنانے کے لئے چاہتے ہیں، 518 00:43:40,840 --> 00:43:46,590 ہم خاص طور پر اگلے ایک کو کھولنے کے لئے کہ بند کرنا چاہتے ہیں. 519 00:43:46,590 --> 00:43:48,430 ہم نے کئی چیزوں چیک کرنے کے لیے کرنا چاہتے ہیں کریں گے. 520 00:43:48,430 --> 00:43:52,880 ہم چیک کرنے کے لیے چاہتے ہیں کہ ہم اپنے بفر کے ساتھ ایک نئی JPEG کے آغاز میں ہو 521 00:43:52,880 --> 00:43:56,780 اور اگر ہم پہلے سے ہی ایک JPEG سے پہلے مل گیا ہے 522 00:43:56,780 --> 00:44:03,930 اس لیے کہ وہ اپنے عمل کو تھوڑا سا بدل جائے گی. 523 00:44:03,930 --> 00:44:07,880 تو پھر اس کے بعد آپ کو تمام طرح کے ذریعے جاؤ اور تم نے فائل کے آخر مارا، 524 00:44:07,880 --> 00:44:11,570 تو کیا آپ کرنا چاہیں گے آپ کو تمام فائلیں اس وقت کھلی رہتی ہے کو بند کرنا چاہتے ہیں کریں گے. 525 00:44:11,570 --> 00:44:14,100 یہ آخری JPEG فائل ہے جو آپ نے شاید ہو جائے گا، 526 00:44:14,100 --> 00:44:18,930 کارڈ فائل کے طور پر کہ آپ کو ہے سے نمٹنے کے. 527 00:44:21,940 --> 00:44:28,670 >> آخری رکاوٹ ہے کہ ہم سے نمٹنے کے لئے کی ضرورت ہے ہے ہے کہ اصل میں ایک JPEG فائل کو بنانے کے لئے 528 00:44:28,670 --> 00:44:31,950 اور کس طرح اصل فولڈر میں دھکا. 529 00:44:33,650 --> 00:44:39,850 pset کی ضرورت ہے کہ ہر JPEG کہ آپ محسوس مندرجہ ذیل کی شکل میں، 530 00:44:39,850 --> 00:44:43,990 آپ سے نمبر کہاں ہے فوٹو. 531 00:44:43,990 --> 00:44:50,750 نمبر، یہاں تک کہ اگر یہ 0 ہے، ہم اسے 000.jpg کہتے ہیں. 532 00:44:50,750 --> 00:44:55,730 آپ کو اپنے پروگرام میں جب بھی ایک JPEG تلاش 533 00:44:55,730 --> 00:44:58,040 آپ کو یہ حکم ہے کہ یہ ملا ہے میں NAME چاہتے ہیں جا رہے ہیں. 534 00:44:58,040 --> 00:44:59,700 اس کا کیا مطلب ہے؟ 535 00:44:59,700 --> 00:45:03,530 ہم قسم کے کرنے کی ضرورت ہے کتنے ہم نے محسوس کیا ہے کا ٹریک رکھنے کے 536 00:45:03,530 --> 00:45:08,680 اور ہر JPEG کی تعداد کیا ہونا چاہئے. 537 00:45:08,680 --> 00:45:13,800 یہاں ہم sprintf تقریب کے فائدہ اٹھانے کے لئے جا رہے ہیں. 538 00:45:13,800 --> 00:45:17,480 اسی طرح کے printf، جس سے ٹرمینل میں پرنٹ قسم ایک قدر، 539 00:45:17,480 --> 00:45:23,910 sprintf فولڈر میں فائل پرنٹ. 540 00:45:23,910 --> 00:45:30,870 اور تو کیا ایسا اگر میں sprintf عنوان، تھا، اور پھر وہاں سٹرنگ، 541 00:45:30,870 --> 00:45:36,660 اسے باہر 2.jpg پرنٹ گی. 542 00:45:36,660 --> 00:45:41,020 یہ سمجھتے ہوئے کہ میں نے اپنی فائلوں کو درست طریقے سے بند کر دیا ہے، 543 00:45:41,020 --> 00:45:47,210 جو فائل ہے کہ میں گیا تھا لکھنے پر مشتمل گے. 544 00:45:47,210 --> 00:45:50,320 لیکن ایک بات یہ ہے کہ کوڈ ہے کہ میں یہاں ہے 545 00:45:50,320 --> 00:45:53,360 ہے بہت کیا pset کی ضرورت ہے مکمل نہیں ہے. 546 00:45:53,360 --> 00:46:02,410 pset کی ضرورت ہے کہ دوسرے JPEG فائل بجائے صرف 2 002 کا نام دیا جائے کیا جانا چاہئے. 547 00:46:02,410 --> 00:46:09,160 تو جب آپ کا نام پرنٹ، تو شاید آپ پلیس ہولڈر تھوڑا تبدیل کرنا چاہتے ہیں کر سکتے ہیں. 548 00:46:09,160 --> 00:46:18,140 >> کسی کو یاد ہے کہ ہم کس طرح اضافی خالی جگہوں کے لئے کی اجازت دیتے ہیں جب ہم کچھ پرنٹ؟ 549 00:46:18,140 --> 00:46:22,530 جی ہاں. >> [طالب علم] آپ فیصد کی علامت اور 2 کے درمیان 3 ایک رکھ دیا. >> جی ہاں، کامل. 550 00:46:22,530 --> 00:46:25,610 آپ کو اس کیس میں ایک 3 ڈال کیونکہ ہم نے 3 کے لئے جگہ کرنا چاہتے ہیں کریں گے. 551 00:46:25,610 --> 00:46:32,590 ٪ 3D آپ کو شاید کے بجائے 002.jpg 2 دے گی. 552 00:46:32,590 --> 00:46:40,120 پہلی دلیل sprintf تقریب میں اصل میں ایک چار صف ہے، 553 00:46:40,120 --> 00:46:42,520 جو ہم پہلے ڈور کے طور پر جانتے تھے. 554 00:46:42,520 --> 00:46:50,700 وہ، ایک عارضی ذخیرہ کی طرح کی قسم، کے نتیجے میں سٹرنگ محفوظ ہیں. 555 00:46:50,700 --> 00:46:54,950 تم سچ میں نہیں ہو گا اس کے ساتھ نمٹنے کے، لیکن آپ اس کو شامل کرنے کے لئے کی ضرورت ہے. 556 00:46:54,950 --> 00:47:00,710 >> ، یہ جانتے ہوئے کہ ہر فائل کے نام نمبر، جس میں تین حروف لیتا ہے 557 00:47:00,710 --> 00:47:06,770 اور پھر فوٹو، اس صف کب تک. ہونا چاہئے؟ 558 00:47:09,070 --> 00:47:14,310 ایک نمبر پھینک دیں. عنوان میں نام میں کتنے حروف ہیں؟ 559 00:47:18,090 --> 00:47:26,320 تو 3 hashtags، مدت، فوٹو ہے. >> [طالب علم] 7. 7. >> نہیں. 560 00:47:26,320 --> 00:47:32,000 ہم 8 چاہتے کیونکہ ہم شہوت انگیز null ٹرمنیٹر کے لئے کے طور پر اجازت دینا چاہتے ہیں کر رہے ہیں. 561 00:47:45,340 --> 00:47:49,730 >> آخر میں، صرف عمل ہے جو آپ کے لئے بازیافت کر کریں گے اپنی طرف متوجہ کرنے کے لئے، 562 00:47:49,730 --> 00:47:55,420 کیا آپ کچھ ابتدا کی معلومات ہے. 563 00:47:55,420 --> 00:48:02,460 آپ جاری رکھیں جب تک کہ آپ ایک JPEG فائل کے آغاز ملے، 564 00:48:02,460 --> 00:48:07,900 اور یہ کہ کسی بھی دو شروع انداز میں سے ایک ہو سکتا ہے. 565 00:48:07,900 --> 00:48:12,510 آپ پڑھ رکھو. ہر یہاں سلیش 512 بائٹس کی نمائندگی کرتا ہے. 566 00:48:12,510 --> 00:48:22,630 آپ کو پڑھنے پر رکھنے کے لئے، جب تک آپ کو ایک دوسرا شروع ترتیب کا سامنا پڑھنے رکھنا. 567 00:48:22,630 --> 00:48:29,790 ایک بار جب آپ یہ ہے کہ، آپ کو موجودہ JPEG ختم - اس معاملے میں، یہ سرخ ایک ہے، 568 00:48:29,790 --> 00:48:31,030 تو تم اس کو ختم کرنے کے لئے چاہتے ہیں. 569 00:48:31,030 --> 00:48:35,540 تم کہ اپنے pset4 فولڈر میں sprintf نام کرنا چاہتے ہیں، 570 00:48:35,540 --> 00:48:41,580 تو آپ کو ایک نیا JPEG اور کھولنے کی تو پڑھنے پر رکھنا چاہتے ہیں 571 00:48:41,580 --> 00:48:46,370 جب تک کہ آپ اگلے سامنا. 572 00:48:46,370 --> 00:48:49,040 پڑھنے پر رکھیں، پڑھنے پر رکھنا، 573 00:48:49,040 --> 00:48:56,290 اور پھر آخر میں، آخر میں، آپ کو فائل کے آخر تک پہنچنے کے لئے جا رہے ہیں، 574 00:48:56,290 --> 00:49:00,360 اور تم آخری JPEG بند کرنا چاہتے ہیں کہ آپ کے ساتھ کام کر رہے تھے گے، 575 00:49:00,360 --> 00:49:08,380 sprintf کہ اپنے pset4 فولڈر میں تصویروں کے تمام ہے کہ آپ نے ملا کیا ہے اور اس کے بعد نظر آئے. 576 00:49:08,380 --> 00:49:12,050 وہ تصویریں اصل CS50 عملے کی تصاویر ہیں، 577 00:49:12,050 --> 00:49:16,430 تو یہ وہ جگہ ہے جہاں pset بونس مذاق حصہ میں آتا ہے 578 00:49:16,430 --> 00:49:26,310 یہ ہے کہ آپ کو آپ کے حصے میں مقابلہ تصاویر میں TFs تلاش کر رہے ہیں 579 00:49:26,310 --> 00:49:34,610 ان کے ساتھ تصاویر لے ثابت اور یہ کہ آپ pset کیا ہے 580 00:49:34,610 --> 00:49:37,030 اور آپ دیکھ جس میں عملے کے ارکان کے تصویروں میں ہیں کر سکتے ہیں. 581 00:49:37,030 --> 00:49:41,510 تو آپ عملے کے ساتھ تصاویر لے لو. کبھی کبھی آپ کو ان کا پیچھا کرنا پڑے گا. 582 00:49:41,510 --> 00:49:44,680 شاید ان میں سے کچھ تم سے دور چلانے کی کوشش کریں گے. 583 00:49:44,680 --> 00:49:47,320 آپ ان کے ساتھ تصاویر لے لو. 584 00:49:47,320 --> 00:49:51,190 یہ جاری ہے. اس کی وجہ سے نہیں ہے جب pset کی وجہ سے ہے. 585 00:49:51,190 --> 00:49:53,340 رپورٹ میں ڈیڈ لائن کا اعلان کیا جائے گا. 586 00:49:53,340 --> 00:49:58,060 آپ کے سیکشن کے ساتھ مل کر اس کے بعد، جو بھی سیکشن میں سب سے زیادہ تصویریں لگتا ہے 587 00:49:58,060 --> 00:50:04,430 سب سے زیادہ عملے کے ارکان کے ساتھ ایک بہت خوفناک انعام حاصل کریں گے. 588 00:50:04,430 --> 00:50:08,890 یہ حاصل کرنے کے لئے حوصلہ افزائی کی ہے آپ pset4 جتنی جلد ممکن ہو ختم 589 00:50:08,890 --> 00:50:10,820 کیونکہ تو آپ کے کاروبار کے لئے حاصل کر سکتے ہیں 590 00:50:10,820 --> 00:50:14,570 تمام مختلف CS50 عملے کے ارکان کے نیچے شکار ہے. 591 00:50:14,570 --> 00:50:17,500 یہ لازمی نہیں ہے، اگرچہ، تو ایک بار جب آپ تصاویر حاصل کریں، 592 00:50:17,500 --> 00:50:20,310 تو آپ pset4 کے ساتھ ختم کر رہے ہیں. 593 00:50:20,310 --> 00:50:23,970 >> اور میں 4 Walkthrough کے ساتھ ختم کر رہا ہوں، تو آپ کو آنے کے لئے شکریہ. 594 00:50:23,970 --> 00:50:29,330 عدالتی کے ساتھ گڈ لک. [تعریف] 595 00:50:29,330 --> 00:50:31,000 [CS50.TV]