[Powered by Google Translate] [Walkthrough - تنظیم سوال 4] [Zamyla چان - دانشگاه هاروارد [این CS50 است. - CS50.TV] بسیار خوب. خوش آمدید، هر کس، و به Walkthrough 4 خوش آمدید. امروز pset ما قانونی است. پزشکی قانونی pset واقعا سرگرم کننده است که شامل خرید و فروش با فایل های بیت مپ برای کشف که مرتکب جرم و جنایت. آنگاه ما در حال رفتن به تغییر اندازه برخی از فایل های بیت مپ، پس از آن ما در حال رفتن به مقابله با بخش واقعا سرگرم کننده به نام بازیابی، که در آن ما اساسا به دست کارت حافظه که در آن کسی به طور تصادفی حذف تمام فایل های خود را، و ما برای بازیابی آن فایل است. اما در ابتدا، قبل از اینکه ما به pset، من واقعا تبریک به همه می خواهم. ما در نقطه میانی این دوره است. امتحان است 0 پشت سر ما، و ما در pset4 هستید، بنابراین اساسا، ما در نیمه راه است. ما راه درازی را اگر شما نگاه به psets خود، pset0 و pset1، بنابراین خود را در مورد آن تبریک می گویم. و ما قصد داریم به برخی از مسائل واقعا سرگرم کننده است. بنابراین جعبه ابزار ما برای این pset، دوباره، به جای یام کنید: sudo-Y به روز رسانی در حال اجرا، ما قادر به اجرا update50 اگر شما در نسخه 17.3 و بالاتر از دستگاه هستید. بنابراین مطمئن شوید که برای اجرای update50 - آن را زیادی آسان تر، چند کاراکتر کمتر - مطمئن شوید که شما در آخرین نسخه از دستگاه هستید. به خصوص این مهم است که به update50 زمانی که ما شروع به استفاده از CS50 ورود. بنابراین مطمئن شوید که شما انجام این کار را. برای همه بخش برای این pset، ما در حال رفتن به خرید و فروش با ورودی و خروجی فایل، فایل I / O. ما در حال رفتن به رفتن بیش از بسیاری از برنامه هایی که با آرایه های مقابله با اشاره به فایل ها و چیزهایی شبیه به آن، بنابراین ما می خواهیم مطمئن شوید که ما که واقعا آشنا و راحت خرید و فروش چگونه به ورودی و خروجی را به فایل. در کد توزیع برای این pset یک فایل به نام copy.c و این چیزی است که ما قصد داریم برای پیدا کردن واقعا برای ما مفید خواهد بود از آنجا که ما در حال رفتن برای پایان دادن به در واقع کپی کردن فایل copy.c و فقط آن را تغییر کمی به قادر به دستیابی به 2 قسمت اول از مجموعه مشکل است. و به این ترتیب پس از آن به عنوان اشاره کردم، ما در حال برخورد با مپ و همچنین عکس JPEG. بنابراین واقعا درک ساختار این فایل ها را سازماندهی، چگونه ما واقعا می تواند 0s و 1S به ساختمانها ترجمه و چیزهایی است که ما در واقع می تواند درک و تفسیر و ویرایش خواهد بود که واقعا مهم است، پس رفتن به JPEG و فایل های بیت مپ و درک ساختار آنها است. Pset4، به طور معمول، با یک بخش از سوالات شروع می شود. کسانی که به مقابله با فایل های I / O و شما به آن عادت کرده اند. سپس قسمت 1، داستان پلیسی است، که در آن شما در حال با توجه به یک فایل بیت مپ که به نظر می رسد نوع مانند نقطه قرمز بیش از همه. و پس از آن اساسا چیزی است که ما قصد انجام است که این فایل و فقط کمی آن را ویرایش کنید به نسخه ای که ما قادر به خواندن. اساسا، هنگامی که ما به پایان برسد، ما به همان فایل، به جز ما قادر خواهید بود برای دیدن پیام های مخفی توسط تمام کسانی که نقطه قرمز. سپس تغییر اندازه یک برنامه است که با توجه به یک فایل است و پس از آن با توجه به نام فایل است که آن را در خروجی و سپس با توجه به تعداد و همچنین، در واقع که بیت مپ است که مقدار صحیح آن، اندازه آن را تغییر. سپس در نهایت، ما باید بازیابی pset. ما داده می شود یک کارت حافظه است و پس از آن برای بازیابی تمام عکس ها که به طور تصادفی پاک شده اند. اما، همانطور که ما باید یاد بگیرند، در واقع نه حذف شده و حذف از فایل؛ ما فقط از نوع از دست داده است که آنها را در فایل بود، اما ما قصد داریم برای بازیابی آن. بزرگ است. بنابراین رفتن به فایل های I / O به طور خاص، این یک لیست کامل از توابع است که شما با استفاده از. شما در حال حاضر دیده می شود کمی اصول fopen، fread، و fwrite، اما ما قصد داریم که به دنبال بیشتر به برخی از فایل I / O مانند fputc، که در آن شما فقط یکی از شخصیت ها را در یک زمان ارسال، به fseek، جایی که شما نوع از حرکت نشانگر موقعیت فایل ها به جلو و عقب، و پس از آن برخی از دیگران است. اما ما خواهید به آن بروید و کمی بعد در طول pset. بنابراین، فقط به فایل I / O قبل از اینکه ما به pset، برای باز کردن یک فایل، برای مثال، آنچه که شما باید انجام دهید این است در واقع اشاره گر به آن فایل است. بنابراین ما باید یک فایل اشاره گر *. در این مورد، من خواستار آن در اشاره گر که به دلیل رفتن به infile من. و بنابراین من قصد دارم برای استفاده از تابع fopen و پس از آن نام فایل و پس از آن حالت که در آن من می خواهم به خرید و فروش با فایل. بنابراین "R" در این مورد برای خواندن، "W" برای نوشتن، و سپس "A" برای الحاق وجود دارد. به عنوان مثال، هنگامی که شما در حال خرید و فروش با infile و همه شما می خواهید برای انجام این کار این است که خواندن بیت و بایت ذخیره می شود وجود دارد، و سپس شما احتمالا مایل به استفاده از "R" را به عنوان حالت شما. هنگامی که شما می خواهید به نوشتن در واقع، نوعی از ایجاد یک فایل جدید، پس از آن چه ما قصد داریم برای انجام این کار این است که ما قصد داریم برای باز کردن فایل جدید و با استفاده از حالت "W" برای نوشتن. بنابراین پس از آن زمانی که شما در واقع به فایل خواندن، ساختار به شرح زیر است. در ابتدا شما شامل اشاره گر به ساختار است که کلمه در ادامه متن است که شما در حال خواندن داشته باشد. به طوری که برای رفتن به محل پایان کلمه در ادامه متن است که شما در حال خواندن است. شما سپس رفتن به نشان می دهد که اندازه، مانند اساسا چند بایت برنامه شما برای خواندن فایل، اندازه اساسا یک عنصر است، و سپس شما را در حال رفتن به مشخص کنید که چگونه بسیاری از عناصر که می خواهید به خواندن. و پس از آن در نهایت، شما باید بدانید که در آن شما در حال خواندن از، به طوری که رفتن به اشاره گر خود را در. من رنگی، اما به دلیل fread است نیز بسیار شبیه به fwrite، به جز شما می خواهید مطمئن شوید که شما با استفاده از راست، مطمئن شوید که شما در واقع به نوشتن یا خواندن از فایل راست. بنابراین پس از آن به عنوان قبل از، اگر ما به اندازه این عنصر همچنین به عنوان تعدادی از عناصر، پس از آن ما می توانیم در سراسر بازی در اینجا یک کمی. بگویم که یک ساختار سگ و بنابراین پس از آن من می خواهم به خواندن دو سگ در یک زمان. چیزی که من می تواند انجام دهد این است که می گویند به اندازه یک عنصر است برای رفتن به اندازه یک سگ و من قصد دارم به دو نفر از آنها در واقع خواندن. روش دیگر، آنچه که من می تواند انجام دهد این است که می گویند من فقط رفتن به خواندن یک عنصر و این که یک عنصر به اندازه دو سگ. به طوری که شبیه شما می توانید نوع بازی در اطراف با اندازه و تعداد بسته بر روی چه چیزی بیشتر در شهودی به شما. بسیار خوب. بنابراین در حال حاضر ما به فایل های نوشتن. هنگامی که شما می خواهید برای نوشتن یک فایل، بحث اول است که در واقع که در آن شما در حال خواندن از. به طوری که اساسا داده هایی را که می خواهید به فایل ارسال است که اشاره گر در پایان. بنابراین، هنگامی که شما در حال خرید و فروش با pset، مطمئن شوید که شما اشتباه است. شاید طرف تعاریف در کنار داشته باشد. شما می توانید تعاریف کشیدن در کتابچه راهنمای کاربر با تایپ کردن مرد و پس از آن، به عنوان مثال fwrite، در ترمینال، یا شما می توانید مراجعه کنید به این اسلاید و مطمئن شوید که شما با استفاده از یک حق است. تا دوباره، fwrite، هنگامی که شما یک فایل را که شما می خواهید برای نوشتن به، که رفتن به استدلال گذشته و این که برای رفتن به یک اشاره گر به آن فایل است. بنابراین پس از آن که چگونه ما با شاید نوشتن بایت های مختلف در یک زمان، اما می گویند که شما می خواهید فقط فقط در یک شخصیت واحد ارسال. همانطور که بعدا خواهید دید که در این مثال در مپ ما باید به استفاده از آن. زمانی که ما می توانیم با استفاده از fputc، اساسا فقط با قرار دادن یکی از شخصیت ها در یک زمان، CHR، اشاره گر به اشاره گر فایل، و این خارج از ما وجود دارد. بنابراین پس از آن هر زمان که ما به دنبال و یا نوشتن در یک فایل، فایل پیگیری ما در آن هستیم. پس از آن یک نوع اشاره گر، نشانگر موقعیت فایل است. و تا هر زمان که ما نوشتن و یا خواندن دوباره به یک فایل، فایل در واقع به یاد می آورد که در آن است، و پس از آن از جایی که مکان نما است همچنان ادامه دارد. این می تواند مفید هنگامی که شما می خواهید، می گویند، خواندن در یک مقدار مشخصی برای انجام کاری و سپس در مقدار زیر به عنوان خوانده شده اما گاهی اوقات ممکن است بخواهید برای رفتن به عقب و یا در واقع شروع از یک مقدار مرجع خاص. پس تابع fseek، آنچه در آن می کند، اجازه می دهد تا ما را به حرکت مکان نما در یک فایل خاص تعداد خاصی از کلمه در ادامه متن. و سپس آنچه که ما باید انجام دهیم این است که مشخص کنید که در آن مقدار مرجع است. بنابراین یا از آن حرکت به جلو یا رو به عقب از جایی که مکان نما در حال حاضر، یا ما می توانید مشخص کنید که فقط باید از حرکت در ابتدا از فایل و یا از انتهای فایل. و بنابراین شما می توانید در ارزش های منفی و یا مثبت به مقدار عبور و این نوع از حرکت مکان نما یا جلو و یا عقب. قبل از اینکه ما به psets دیگر، هر گونه سوال در مورد فایل I / O؟ باشه. همانطور که ما به مثالهای بیشتر، احساس رایگان به من برای متوقف کردن سوالات. بنابراین در داستان پلیسی، شما دست به یک فایل بیت مپ شبیه به این یکی رنگ قرمز بر روی اسلاید و آن را مانند این به نظر می رسد - یک دسته از نقاط قرمز - و شما واقعا نمی دانند چه چیزی نوشته شده است. اگر شما چپ نگاه کردن، شما ممکن است قادر به دیدن اندکی رنگ مایل به آبی در داخل وسط. اساسا، در آنجا بود که از متن ذخیره شده است. قتل بود که اتفاق افتاده است وجود دارد، و ما باید برای پیدا کردن که آن را انجام داد. به منظور انجام این کار، ما نیاز به نوعی این تصویر را به فرمت قابل خواندن تبدیل. اگر شما بچه ها همیشه مواجه می شوند، گاهی اوقات می تواند وجود داشته باشد کیت کوچک که در آن شما می توانید از یک ذره بین با یک فیلم قرمز داشته باشد. هر کس؟ آره. بنابراین شما چیزی دست شبیه به این خواهد بود، شما می توانید یک شیشه بزرگ داشته باشید. با فیلم قرمز بیش از آن، شما می توانید آن را بر روی تصویر قرار دهید، و شما قادر خواهد بود برای دیدن این پیام پنهان در آن. ما ذره با فیلم قرمز را ندارد، بنابراین به جای ما در حال رفتن به نوع خود را ایجاد ما در این pset. و به این ترتیب کاربر رفتن به رمان پلیسی ورودی، پس از آن نشانه، BMP، به طوری که infile، این پیام نقطه قرمز، و سپس به آنها گفت: verdict.bmp رفتن به outfile ما. پس از آن برای ایجاد یک تصویر بیت مپ جدید شبیه به یک سرنخ به جز در یک فرمت قابل خواندن است که در آن ما می توانیم پیام پنهان را ببینید. از آنجا که ما در حال رفتن به خرید و فروش با ویرایش و دستکاری مپ برخی از مرتب کردن بر اساس: ما قصد داریم به نوع شیرجه به ساختار این فایل بیت مپ. ما بیش از این بیت کمی در سخنرانی رفت، اما بیایید نگاهی به برخی از آنها بیشتر است. مپ اساسا فقط ترتیب کلمه در ادامه متن جایی که ما کرده ایم مشخص شده که بایت آنچه. بنابراین در اینجا این است که به نوعی مانند یک نقشه از تصویر بیت مپ و گفت که آن را با برخی از فایل هدر شروع می شود، شروع می شود با برخی از اطلاعات در آن وجود دارد. شما می بینید که در مورد تعداد بایت 14 اندازه از تصویر بیت مپ نشان داده شده، و از آن همچنان ادامه دارد. اما پس از آن چیزی است که ما واقعا علاقه مند در اینجا این است که به شروع اطراف شماره BYTE 54. ما باید این سه RGB. آنچه که به انجام است که شامل پیکسل های واقعی، مقدار رنگ. همه چیز در بالا که در هدر برخی از اطلاعات است مربوط به اندازه تصویر، عرض تصویر و ارتفاع است. هنگامی که ما را به بالشتک به بعد، خواهیم دید که چرا اندازه تصویر از عرض یا ارتفاع ممکن است متفاوت باشد. پس از آن برای نشان دادن این - این تصاویر بیت مپ، دنباله ای از بایت - آنچه که ما می توانیم انجام دهیم این است می گویند بسیار خوب، من قصد دارم به خاطر داشته باشید که در اول 14، که که در آن اندازه است، به عنوان مثال، اما در عوض چیزی است که ما قصد داریم برای انجام این کار به آسانتر کردن این امر است که آن را در محفظهای قرار دادن در یک ساختار است. و بنابراین ما باید دو ساختمانها ساخته شده است برای ما، یک BITMAPFILEHEADER و BITMAPINFOHEADER، و بنابراین، هر زمان که به آن فایل، به طور پیش فرض آن را به رفتن به رفتن به منظور و بنابراین در آن را نیز به پر کردن به متغیرهایی مانند biWidth و biSize. و سپس در نهایت، هر پیکسل توسط سه کلمه در ادامه متن نشان داده شده است. اول این است که مقدار آبی در پیکسل، دوم میزان سبز است، و در نهایت، مقدار رنگ قرمز، که در آن 0 است اساسا هیچ آبی یا سبز و یا بدون قرمز و سپس FF به حداکثر ارزش افزوده است. این مقادیر هگزادسیمال است. پس اگر ما FF0000، پس از آن که مربوط به حداکثر مقدار آبی و پس از آن هیچ سبز و نه قرمز، به طوری که پس از آن خواهد بود که ما یک پیکسل آبی به من بدهید. پس اگر همه ما FF را در سراسر هیئت مدیره، پس از آن که این بدان معنی است که ما باید یک پیکسل سفید می باشد. این نوع از مخالف به طور معمول این است که وقتی می گوییم RGB می باشد. در واقع رفتن BGR. بنابراین اگر ما در واقع به عنوان مثال یک تصویر بیت مپ - بهتر است یک جلو و من اینجا. این کوچک کم است. من زوم کردن در، و ما می توانیم آن را pixelated. مانند بلوک های رنگ به نظر می رسد. شما باید بلوک های سفید و پس از آن بلوک قرمز است. اگر شما در رنگ مایکروسافت بازی، به عنوان مثال، شما می توانید چیزی شبیه به آن را توسط اساسا فقط نقاشی مربع خاصی در یک نظم خاص است. بنابراین پس از این ترجمه به بیت مپ به شرح زیر است. در اینجا ما باید پیکسل اول سفید، که تمام 6 اف، و پس از آن دارای پیکسل های قرمز، نشان داده شده توسط 0000ff. و به این ترتیب دنباله ای از بایت ها است که ما نشان می دهد که چگونه تصویر بیت مپ است رفتن به نگاهی. پس آنچه که من انجام داده ام در اینجا فقط نوشته شده است از تمام کسانی که بایت و سپس به رنگ قرمز به طوری که شما از نوع مشاهده می کنید، اگر شما چپ کمی، چگونه است که نوع نشان می دهد یک صورت خندان. راه که تصاویر بیت مپ کار این است که من آن را پیش بینی اساسا به عنوان یک شبکه. و به این ترتیب به طور پیش فرض، هر ردیف از شبکه است که باید مضربی از 4 بایت است. اگر ما در یک تصویر بیت مپ نگاه کنید، شما در حال پر کردن در هر مقدار. به عنوان مثال، شما ممکن است یک قرمز در اینجا، سبز، آبی در اینجا، اما شما باید مطمئن شوید که تصویر در با چند چهار بایت پر. پس اگر من می خواهم تصویر من به عرض سه بلوک، پس از آن من خواهد بود که برای قرار دادن یک مقدار خالی در یکی از آخرین، آن را به مضربی از چهار است. بنابراین پس از آن من می خواهم در چیزی است که ما خواستار بالشتک اضافه کنید. من فقط رفتن وجود دارد که با X نشان می دهد. اکنون می گویند ما می خواهیم یک تصویر است که 7 پیکسل طولانی، به عنوان مثال. ما 1، 2، 3، 4، 5، 6، 7، و همه که با رنگ پر شده است. راهی که تصاویر بیت مپ کار این است که ما نیاز به 8 می باشد. در حال حاضر ما باید 1، 2، 3، 4، 5، 6، 7. ما باید 8 فاصله ها را برای تصویر بیت مپ به خواندن به درستی. بنابراین پس از آنچه ما باید انجام دهیم این است فقط در یک بیت از بالشتک اضافه کنید مطمئن شوید که تمام عرض یکسان و این که تمام عرض مضربی از 4 است. و بنابراین من قبلا نشان داد، بالشتک به عنوان یک X یا یک خط پرپیچ وتاب ولول خور، اما در بیت مپ تصاویر واقعی بالشتک توسط یک 0 هگزادسیمال نشان داده شده است. به طوری که می تواند یک شخصیت واحد، 0. چه چیزی ممکن است می آیند در دستی فرمان xxd است. چه میکند در واقع به شما نشان می دهد، دوست دارم شبیه به آنچه که من قبل از اینکه با لبخند زمانی که من در واقع چاپ کردن آنچه که هر یک از رنگ پیکسل و سپس آن را رنگ کد گذاری، زمانی که شما با دستورات زیر اجرا xxd سپس آن را در واقع از چاپ رنگ آن پیکسل است. چیزی که شما باید انجام دهید این است در اینجا به من نشان می دهد، مانند S-54 می گوید که من قصد دارم در بایت 54 شروع چرا که قبل از آن، به یاد داشته باشید اگر ما نگاه به نقشه مپ که تمام اطلاعات مربوط به هدر و چیزهایی مثل آن. اما آنچه که ما واقعا در مورد مراقبت از پیکسل های واقعی است که نشان می دهد رنگ است. بنابراین با اضافه کردن در آن پرچم،-S 54، پس از آن ما قادر به دیدن ارزشهای رنگ. و در مورد پرچم های پیچیده و چیزهایی مانند که نگران نباشید. در تنظیمات مشکل مجموعه، به شما جهت در مورد چگونگی استفاده از xxd به نمایش پیکسل داشته باشد. بنابراین اگر شما در اینجا، آن را به نوعی به نظر می رسد مانند یک جعبه سبز، این چیز کوچک. من 00ff00 گفت: اساسا هیچ آبی، بسیاری از سبز و نه قرمز رنگی است. به طوری که مربوط به رنگ سبز است. همانطور که می بینید در اینجا، ما یک مستطیل سبز است. این مستطیل سبز عرض تنها 3 پیکسل است، به طوری که پس از آن چیزی است که ما را مجبور به انجام مطمئن شوید که تصویر مختلف از 4 گسترده است اضافه کردن در بالشتک اضافی. و پس از این که شما چگونه این 0s و در اینجا است. این در واقع نتیجه از pset را تغییر اندازه دهید، اساسا در نظر گرفتن بیت مپ کوچک و سپس گسترش آن را توسط 4. و بنابراین، آنچه ما می بینیم این است که در واقع این تصویر 12 پیکسل گسترده است، اما 12 است که مضربی از 4 و ما در واقع هیچ 0s و در پایان نمی بینم چرا که ما نیاز به اضافه کردن هر چرا که آن را به طور کامل خالی می باشند. این اتاق هیچ بیشتر ندارد. باشه. هرگونه سوال در مورد بالشتک؟ باشه. دانلود. همانطور که پیشتر نیز اشاره شد، این مپ فقط دنباله ای از بایت ها است. و بنابراین، آنچه که ما باید به جای نیاز به پیگیری که دقیقا تعداد بایت مربوط به یک عنصر خاص، ما در واقع ایجاد یک ساختار برای نشان دادن که. بنابراین آنچه که ما باید ساختار RGBTRIPLE است. هر زمان که شما یک نمونه از یک سه گانه RGB، دلیل این است که یک نوع تعریف ساختار، سپس شما می توانید متغیر rgbtBlue دسترسی داشته باشید. به همین ترتیب متغیر های سبز و قرمز است، که نشان می دهد چه مقدار آبی، سبز، و قرمز، به ترتیب، به شما داشته باشد. بنابراین اگر ما مجموعه ای متغیر آبی تا 0، سبز به FF، که حداکثر ارزش شما می توانید، و سپس متغیر قرمز مجموعه را به 0، سپس این سه گانه خاص RGB چه رنگی را نشان می دهد؟ >> [دانشجو] سبز. سبز است. دقیقا. رفتن به مفید باشد به دانستن است که هر زمان که شما یک نمونه از یک سه گانه RGB، آبی، سبز، و قرمز - - به طور جداگانه شما در واقع می توانید میزان رنگ دسترسی داشته باشید. حالا که ما در مورد ساختار آن صحبت کردیم، اجازه دهید یک نگاهی به فایل BMP. این ساختمانها ساخته شده را برای شما می باشد. در اینجا ما باید یک ساختار BITMAPFILEHEADER. از علاقه به اندازه. بعدها، در حال حاضر اطلاعات هدر، است که چند چیز که جالب به ما، یعنی به اندازه، عرض، و ارتفاع. همانطور که خواهیم به بعد، هنگامی که شما به فایل خواندن، آن را به طور خودکار در چرا که ایم مجموعه به همان خوانده شده. بنابراین biSize کلمه در ادامه متن سمت راست که مربوط به اندازه واقعی تصویر را داشته باشد. و سپس در اینجا، در نهایت، به عنوان مورد صحبت کرده ایم، ما ساختار RGBTRIPLE typedef. ما rgbtBlue، سبز، و قرمز در ارتباط با آن است. بزرگ است. باشه. حالا که ما را در درک مپ کمی درک کنند که ما باید هدر فایل و هدر اطلاعات مرتبط با آن و پس از آن، ما باید چیزهای جالب از رنگ ها، و کسانی که رنگ توسط ساختمانها RGBTRIPLE نشان داده شده است، و کسانی که، به نوبه خود، دارای سه مقدار مربوط به آبی، سبز و قرمز است. بنابراین در حال حاضر، ما می توانیم نوع فکر می کنم در مورد بازیابی کمی است. متأسفم. فکر می کنم در مورد رمان پلیسی. هنگامی که ما فایل سرنخ ما، پس از آن چیزی که ما می خواهیم انجام دهیم این است که به آن پیکسل با پیکسل و پس از آن به نحوی از این پیکسل به طوری که ما می توانیم آن را به یک فرمت قابل خواندن خروجی را تغییر دهید. و تا به آن خروجی، ما در حال رفتن به نوشتن پیکسل به پیکسل را در فایل verdict.bmp. این نوع از حد زیادی به کار است. ما درک میکنیم که. بنابراین آنچه که ما انجام داده ایم این است که ما در واقع شما با ارائه copy.c. چه copy.c می کند فقط باعث می شود یک کپی دقیق از یک فایل بیت مپ داده شده و سپس خروجی آن است. بنابراین در حال حاضر این فایل را برای شما باز می شود، می خواند در پیکسل به پیکسل، و پس از آن می نویسد: به یک فایل خروجی می باشد. بیایید نگاهی به آن. این است که اطمینان از استفاده مناسب، نام فایل اینجا کلیک کنید. چه می کند این است که آن را از فایل ورودی را به آنچه که ما در infile منتقل اینجا، که استدلال دوم در خط فرمان ما است. بررسی می کند تا مطمئن شوید که ما می توانیم باز کردن فایل. بررسی می کند تا مطمئن شوید که ما می توانیم outfile جدید اینجا زا کلیک کنید. پس چه می کند در اینجا، آن را فقط اساسا شروع به خواندن در فایل های بیت مپ از ابتدا. همانطور که می دانیم، در آغاز، شامل از BITMAPFILEHEADER، و به همین ترتیب کسانی که توالی از بیت ها به طور مستقیم در BITMAPFILEHEADER را پر کنید. بنابراین چه چیزی ما را در اینجا می گوید که BF BITMAPFILEHEADER - که متغیر جدید از نوع BITMAPFILEHEADER - ما در حال رفتن به داخل BF قرار داده است آنچه که ما را از اشاره گر خواندن، که infile ما است. تا چه حد می خوانیم؟ ما در چند بایت است که ما نیاز داریم که شامل تمام BITMAPFILEHEADER خوانده می شود. به همین ترتیب، این چیزی است که ما انجام می دهیم برای اطلاعات هدر. بنابراین ما در حال ادامه همراه فایل ما در infile و ما در حال خواندن این بیت و بایت، و ما آنها را متصل به طور مستقیم در به این نمونه از متغیر است که ما در حال ساخت است. در اینجا ما فقط مطمئن شوید که تصویر بیت مپ است. در حال حاضر ما outfile، درست است؟ بنابراین به عنوان آن می ایستد وقتی که آن را ایجاد می کنیم، آن را اساسا خالی است. بنابراین ما باید اساسا ایجاد یک بیت مپ جدید، از ابتدا. آنچه ما انجام می دهیم این است که ما باید تا مطمئن شوید که ما در هدر فایل را کپی کنید و هدر اطلاعات درست مثل infile دارد. آنچه ما انجام می دهیم این است که ما نوشتن - و به یاد داشته باشید که BF متغیر BITMAPFILEHEADER نوع، بنابراین آنچه که ما انجام می دهیم این است که ما فقط استفاده از آن محتوا برای نوشتن به outfile. در اینجا، به یاد داشته باشید که ما در مورد بالشتک صحبت، چگونه این مهم است که مطمئن شوید که مقدار پیکسل است که ما باید مضربی از 4 است. این یک فرمول بسیار مفید برای محاسبه چقدر بالشتک شما است با توجه به عرض فایل خود را. من می خواهم به شما بچه ها را به یاد داشته باشید که به در copy.c ما یک فرمول برای محاسبه بالشتک. باشه؟ بنابراین هر کس به یاد داشته باشید که. بزرگ است. تا پس از آن چه copy.c بعدی این است که آن را تکرار بیش از همه از scanlines. آن را از طریق ردیف اول و پس از آن ذخیره هر سه گانه است که آن را می خواند و پس از آن می نویسد: به outfile. بنابراین پس از آن در اینجا ما در حال خواندن تنها یک RGB سه گانه در یک زمان و پس از آن قرار دادن که سه گانه را به outfile. بخشی از مشکل این است که بالشتک سه گانه RGB، و بنابراین ما فقط نمی تواند خواندن که مقدار بالشتک سه RGB. آنچه ما باید انجام دهیم در واقع فقط فایل شاخص و موقعیت ما، حرکت حرکت مکان نما، به نوع پرش بیش از همه بالشتک به طوری که ما در ردیف بعدی هستیم. و پس از آن چه می کند این را کپی کنید و به شما نشان می دهد که چگونه شما ممکن است بخواهید برای اضافه کردن بالشتک. بنابراین ما از محاسبه چقدر بالشتک ما نیاز داریم، به طوری که بدان معنی است که ما نیاز به شماره بالشتک 0s و. چه می کند این است که یک حلقه قرار می دهد که تعداد بالشتک 0s و به outfile ما. و سپس در نهایت، هر دو فایل به شما نزدیک است. infile و همچنین outfile نزدیک شما. به طوری که چگونه copy.c با این نسخهها کار، و این بسیار مفید خواهد بود. در عوض فقط در واقع، به طور مستقیم کپی کردن و چسباندن آن یا فقط به دنبال آن و تایپ کردن در هر آنچه شما می خواهید، شما فقط ممکن است این دستور را در ترمینال اجرا کنید، CP copy.c whodunit.c است، که به یک فایل جدید ایجاد whodunit.c، که شامل محتوای دقیق همان کپی می کند. تا پس از آن چیزی است که ما می توانیم انجام شده است استفاده از آن به عنوان یک چارچوب که بر اساس آن برای ساخت و ویرایش برای فایل فیلمپلیسی ما. اینها ما را به-DOS برای رمان پلیسی انجام دهد، اما چه copy.c می کند است که در واقع طول می کشد مراقبت از بسیاری از آنها را برای ما می باشد. بنابراین همه ما باید انجام دهیم بعدی تغییر پیکسل را به عنوان مورد نیاز است در واقع به فایل قابل خواندن است. به یاد داشته باشید که برای یک پیکسل سه گانه، برای یک متغیر RGBTRIPLE نوع، شما می توانید ارزش های آبی، سبز، و قرمز دسترسی داشته باشید. که برای آمدن به در دستی به دلیل اگر شما می توانید به آنها دسترسی داشته باشید، که بدان معنی است که شما نیز می توانید آنها را چک کنید، و این بدان معناست که شما همچنین می توانید آنها را تغییر دهید. بنابراین، هنگامی که ما رفت و برگشت به عنوان مثال بزرگنمایی شیشه ای قرمز، در واقع، این اقدام به عنوان یک نوع از فیلتر برای ما بود. بنابراین آنچه که ما می خواهیم انجام دهیم این است که ما می خواهیم برای فیلتر کردن تمام سه که می آیند شوید. چندین راه مختلف برای انجام این کار وجود دارد. در واقع، شما می توانید هر نوع فیلتر شما می خواهید. شاید شما می خواهید به تغییر تمام پیکسل های قرمز یا شاید شما می خواهید به تغییر یک پیکسل و رنگ های مختلف به رنگ های مختلف است. که تا به شما. به یاد داشته باشید که شما می توانید بررسی کنید چه رنگی پیکسل است و پس از آن شما همچنین می توانید آن را به عنوان شما را از طریق رفتن را تغییر دهید. باشه. به طوری که داستان پلیسی است. هنگامی که شما اجرا از داستان پلیسی، شما بدانید که مقصر از جرم بود. در حال حاضر ما قصد داریم برای رفتن به تغییر اندازه. ما قصد داریم تا هنوز هم در برخورد با مپ. آنچه ما قصد انجام این است که ما در حال رفتن به بیت مپ ورودی و پس از آن ما قصد داریم تا در شماره منتقل می کند و سپس یک بیت مپ outfile که در آن است که اساسا infile مدرج شده توسط N. می گویند فایل من فقط یک پیکسل بزرگ بود. سپس اگر n من 3، پوسته پوسته شدن های 3 بود، پس از آن من خواهد بود که پیکسل و N تعداد بار تکرار، SO 3 بار، و پس از آن نیز آن را در مقیاس و 3 بار به عنوان. بنابراین می بینید من آن را پوسته پوسته شدن به صورت عمودی و همچنین به صورت افقی است. و سپس در اینجا یک مثال است. اگر n = 2 باشد، شما می بینید که پیکسل آبی دو بار تکرار وجود دارد و دو بار به صورت عمودی به صورت افقی به عنوان خوب. و پس از آن همچنان ادامه دارد، و به همین ترتیب شما یک پوسته پوسته شدن مستقیم از تصویر اصلی خود را با دو. پس اگر ما به جزئیات این شبه بودند، ما می خواهم برای باز کردن فایل. و سپس دانستن اینکه اگر ما به عقب در اینجا، ما می بینیم که عرض outfile است برای رفتن به متفاوت تر از عرض infile. به چه معنا است؟ این بدان معنی است که اطلاعات هدر ما این است که رفتن به تغییر است. و بنابراین، آنچه که ما می خواهید برای انجام شده است به روز رسانی اطلاعات هدر، دانستن این است که هنگامی که ما در فایل ها اگر شما در چارچوب copy.c، ما در حال حاضر یک متغیر است که نشان می دهد چه اندازه است و چیزهایی مانند که. بنابراین در هنگامی که شما را از آن، چیزی است که شما ممکن است بخواهید برای انجام این کار این است که تغییر آن متغیرهای خاص. به یاد داشته باشید، اگر شما دارای یک ساختار، متغیرهای که در آن شما دسترسی به. شما با استفاده از عملگر نقطه، درست است؟ سپس با استفاده از آن، شما می دانید که شما نیاز به اطلاعات هدر را تغییر دهید. بنابراین در اینجا فقط یک لیست از عناصر واقعی که می رویم به تغییر در فایل شما است. حجم فایل برای رفتن به تغییر، تصویر، و همچنین به عنوان عرض و ارتفاع است. بنابراین پس از آن قصد بازگشت به نقشه مپ، نگاه کنید که آیا آن را به هدر فایل یا هدر اطلاعات که شامل اطلاعات و در صورت نیاز تغییر دهید. دوباره، می گویند CP copy.c resize.c. این بدان معناست که، resize.c در حال حاضر شامل همه چیز است که در داخل نسخه موجود چون نسخه را فراهم می کند با ما راه خواندن به هر پیکسل scanline پیکسل است. جز در حال حاضر، به جای فقط تغییر ارزش ها مانند ما در داستان پلیسی، آنچه ما می خواهیم انجام دهیم این است که ما می خواهیم به نوشتن در پیکسل های مختلف تا زمانی که N ما این است که بیشتر از 1 است. پس آنچه که ما می خواهیم انجام دهیم این است که ما می خواهیم به آن کشش افقی توسط N، و همچنین آن را به صورت عمودی توسط N کشش. چگونه ممکن است این را ما انجام می دهیم؟ N 2 است و شما این infile داده شده است. اشاره گر خود را در حال رفتن به در یکی از اولین شروع، و آنچه که شما می خواهید به انجام اگر n 2 است، شما می خواهید به 2 از آنها نسخه قابل چاپ. بنابراین شما در 2 از آن را چاپ کنید. سپس اشاره گر خود را برای حرکت به پیکسل بعدی، که یکی قرمز، و آن را برای چاپ کردن 2 کسانی که از آنهایی که قرمز، اضافه آن را بر روی آنچه که آن را انجام داده قبل از. سپس مکان نما را به پیکسل بعدی حرکت می کند و قرعه کشی در 2 از آن. اگر شما نگاه به چارچوب copy.c، چه می کند این حق در اینجا است آن را ایجاد یک نمونه جدید از سه گانه RGB، یک متغیر جدید به نام سه گانه است. و در اینجا وقتی که آن را به آن می خواند، آن را از infile 1 RGBTRIPLE خوانده شده در آن فروشگاه و به داخل آن متغیر سه گانه است. پس شما در واقع یک متغیر به نمایندگی که پیکسل خاص. پس زمانی که تو می نویسم، چیزی که شما ممکن است بخواهید برای انجام روکش بیانیه fwrite به حلقه که در آن می نویسد: به outfile خود را به عنوان هر چند بار که مورد نیاز است. این به اندازه کافی ساده است. اساسا فرایند نوشتن و N تعداد بار آن را در مقیاس به صورت افقی تکرار. اما پس از آن ما باید به خاطر داشته باشید که بالشتک ما این است که رفتن به تغییر است. پیش از این، می گویند ما تا به حال چیزی در طول 3. پس ما فقط در چه مقدار از بالشتک اضافه کنید؟ فقط یک آن را به مضربی از 4 است. اما می گویند که ما در حال پوسته پوسته شدن این تصویر خاص توسط N = 2. بنابراین پس از آن که چگونه بسیاری از پیکسل آبی که ما در پایان؟ ما می خواهیم 6. 1، 2، 3، 4، 5، 6. بسیار خوب. 6 مضربی از 4 است. نزدیکترین مضربی از 4 چه خبر؟ که رفتن تا 8. پس ما در واقع رفتن به 2 کاراکتر از بالشتک وجود دارد. آیا کسی به یاد داشته باشید اگر ما یک فرمول برای محاسبه پد و جایی است که ممکن است باشد؟ [پاسخ دانش آموز نامفهوم] >> آره، copy.c. راست. یک فرمول در copy.c به محاسبه چقدر بالشتک شما وجود دارد با توجه به عرض خاصی از تصویر بیت مپ. بنابراین پس از آن که رفتن به تواند مفید باشد که شما نیاز دارید را در یک مقدار مشخصی از بالشتک اضافه کنید به واقع از شکل چقدر بالشتک است که شما نیاز به اضافه کردن. اما توجه داشته باشید، این است که شما می خواهید مطمئن شوید که شما با استفاده از اندازه درست است. فقط مراقب باشید زیرا شما اساسا برای رفتن به خرید و فروش با دو تصویر بیت مپ. شما می خواهید مطمئن شوید که شما با استفاده از یک حق. هنگامی که شما در حال محاسبه بالشتک برای outfile، شما می خواهید به استفاده از عرض outfile و عرض از قبل نیست. بزرگ است. این نوع از طول می کشد مراقبت از کشش کل یک تصویر بیت مپ به صورت افقی می باشد. اما آنچه ما می خواهیم انجام دهیم این است که در واقع آن را به صورت عمودی و همچنین کشش. این است که برای رفتن به یک کمی سختتر است زیرا زمانی که ما کرده ایم به پایان رسید کپی کردن یک ردیف و نوشتن این سطر، مکان نما به ما این است که در پایان می شود. بنابراین اگر ما دوباره، و سپس آن را فقط به خواندن به خط بعدی. بنابراین آنچه که ما می خواهیم انجام دهیم این است که به نوعی برخی از راه کپی کردن آن ردیف را دوباره یا فقط نوع مصرف آن سطر و پس از آن بازنویسی دوباره آن را. همانطور که من به نوعی اشاره به راه های مختلفی برای انجام این کار وجود دارد. آنچه شما می توانید انجام دهید این است که شما در حال رفتن را از طریق خواندن و از طریق scanline خاص و تغییر آن در صورت لزوم، پس از آن نوع از فروشگاه همه از این پیکسل ها در یک آرایه. سپس بعد از آن بر شما می دانم که شما نیاز به نسخه قابل چاپ کردن که آرایه دوباره، و بنابراین شما فقط می توانید که آرایه برای انجام این کار استفاده کنید. یکی دیگر از راه برای انجام آن است که شما می توانید از کپی کردن یک ردیف، درک کنند که شما نیاز به کپی که دوباره، پس در واقع مکان نما را حرکت می کند، و این که می شود با استفاده از روش fseek. شما می توانید حرکت مکان نما خود را تمام راه بازگشت و پس از آن روند کپی را مجددا تکرار کنید. بنابراین اگر تعداد پوسته پوسته شدن ما این است که N، پس از آن چند بار ما باید به عقب برگردید و بازنویسی یک خط؟ >> [دانشجوی] n - 1. >> آره، کامل است. n - 1. ما از آن انجام شود که در حال حاضر، به طوری که پس از آن ما می خواهید از رفتن فرایند برگشت به تکرار n - 1 مقدار از زمان. باشه. بنابراین تابع را تغییر اندازه دهید به شما داشته باشد. در حال حاضر ما می توانیم به بخش واقعا سرگرم کننده، pset مورد علاقه من است، که بازیابی کنید. به جای مپ، این زمان ما در حال برخورد با عکس JPEG. ما در واقع فقط از یک فایل عکس JPEG داده نشده است، ما اساسا خام فرمت کارت حافظه داده شده است. و بنابراین این شامل یک بیت از اطلاعات و ارزش زباله در آغاز، و پس از آن شروع می شود و آن را به یک دسته از فایل های JPEG است. با این حال، ما در حال دست یک کارت که در آن ما را حذف کردهاید و عکس؛ اساسا، ما را فراموش کرده ام که در آن عکس ها در درون کارت قرار گرفته است. پس وظیفه ما در بازیابی است را از طریق این فرمت کارت و پیدا کردن دوباره آن تصاویر. خوشبختانه، ساختار فایل های JPEG و فایل کارت کمی مفید است. این قطعا می توانست کمی سختتر اگر آن را در این قالب خاص نمی شد. هر فایل JPEG در واقع با دو توالی ممکن است، ذکر شده در بالا شروع می شود. در واقع، هر زمان که شما یک فایل جدید JPEG، آن را با هر دو دنباله ffd8 ffe0 یا یکی دیگر، ffd8 ffe1 شروع می شود. چیز دیگری که مفید به دانستن این است که عکس JPEG ذخیره می شوند متوالی است. بنابراین هر زمان که یک فایل JPEG به پایان می رسد، یکی دیگر شروع می شود. بنابراین از هر نوع در میان ارزش ها وجود دارد وجود ندارد. هنگامی که شما شروع JPEG، اگر شما در حال حاضر به خواندن JPEG، شما می دانید که شما ضربه در پایان از قبل و از آغاز یک بعدی است. به نوع تجسم این، من یک طرح کلی است. چیز دیگری که در مورد عکس JPEG این است که ما می توانیم آنها را در دنباله از 512 کلمه در ادامه متن در یک زمان به عنوان خوانده شده به همین ترتیب با شروع از کارت. ما لازم نیست که برای هر بایت منفرد بررسی به این دلیل است که می خورد. بنابراین به جای آن، چیزی است که ما می توانیم انجام دهیم این است که در واقع فقط مطالعه در 512 کلمه در ادامه متن در یک زمان و پس از آن، به جای چک کردن در میان کسانی که در آن برش کوچک، ما فقط می تواند آغاز از 512 کلمه در ادامه متن را بررسی کنید. اساسا، در این تصویر چه می بینید در آغاز از کارت، شما باید ارزش هایی که واقعا مربوط به عکس JPEG واقعی خود نیست. اما پس از آن چه که من یک ستاره به نشان می دهد یکی از دو دنباله برای شروع JPEG است. بنابراین، هر زمان که شما می بینید یک ستاره، شما می دانید که شما یک فایل JPEG. و سپس هر فایل JPEG است برای رفتن به برخی از متعدد از 512 کلمه در ادامه متن اما نه لزوما چندگانه است. راه که شما می دانید که شما ضربه دیگری JPEG است اگر شما یکی دیگر از ستاره، یکی دیگر از دنباله شروع از کلمه در ادامه متن. پس آنچه که شما باید در اینجا این است که شما باید فایل JPEG قرمز همچنان ادامه دارد تا زمانی که شما ضربه ستاره، است که با یک رنگ جدید نشان داده شده است. شما ادامه دهد و پس از آن شما یک ستاره، شما یکی دیگر از JPEG، شما تمام راه را تا پایان ادامه خواهد داد. شما در آخرین تصویر اینجا هستیم، یکی صورتی. شما به پایان تا زمانی که شما به پایان رسید از شخصیت های فایل. این امر می تواند واقعا مفید است. چند takeaways اصلی در اینجا: فایل کارت با JPEG شروع نشد، اما یک بار JPEG شروع می شود، همه از عکس JPEG در کنار هم به یک دیگر ذخیره می شود. برخی از شبه برای بازیابی. اول، ما قصد داریم برای باز کردن فایل کارت، و این با استفاده از فایل های I / O توابع. ما قصد داریم به تکرار مراحل زیر را تا به انتهای فایل رسیده ایم. ما در حال رفتن به خواندن 512 کلمه در ادامه متن در یک زمان. و آنچه من گفتم در اینجا این است که ما در حال رفتن به آن را در یک بافر ذخیره، بنابراین اساسا نگه دارید به این 512 کلمه در ادامه متن تا زمانی که ما می دانیم که دقیقا چه چیزی را با آنها انجام دهد. پس آنچه که ما می خواهیم انجام دهیم این است که ما می خواهیم برای بررسی اینکه آیا یک ستاره یا نه ایم ضربه می باشد. اگر ما از ضربه ستاره، اگر ما از ضربه به یکی از توالی شروع، پس از آن ما می دانیم که ما ضربه جدید فایل JPEG. چیزی که ما می خواهید برای انجام این کار این است که ما در حال رفتن به خواهید برای ایجاد یک فایل جدید در دایرکتوری pset4 ما به ادامه ساخت که فایل. اما همچنین، اگر ما قبلا JPEG قبل ساخته شده است، پس از آن ما می خواهیم برای پایان دادن به این فایل و فشار آن را به پوشه pset4، که در آن ما باید آن فایل ذخیره می شود، زیرا اگر ما مشخص نیست که ما به پایان رسید که فایل JPEG، سپس ما اساسا به مقدار نامحدود داشته باشد. عکس JPEG هرگز به پایان خواهد رسید. بنابراین ما می خواهیم مطمئن شوید که هنگامی که ما در حال خواندن را به یک فایل JPEG و نوشتن که، ما می خواهیم نزدیک است که به طور خاص به منظور باز کردن بعدی. ما می خواهید به بررسی چند چیز است. ما می خواهیم برای بررسی اینکه آیا ما در آغاز JPEG جدید با بافر ما هستیم و همچنین اگر ما در حال حاضر پیدا کرده اند JPEG قبل چرا که روند خود را کمی تغییر دهید. سپس بعد از اینکه شما را از طریق تمام راه بروید و به شما ضربه انتهای فایل، پس از آن چه شما می خواهید برای انجام این کار این است که شما می خواهید برای بستن همه فایل هایی که در حال حاضر باز است. که احتمالا آخرین فایل های JPEG است که شما را، و همچنین به عنوان فایل کارت که شما خرید و فروش شده است. تاریخ و زمان آخرین مانع که ما باید برای مقابله با این است که چگونه در واقع به ایجاد یک فایل JPEG و چگونه می توان به واقع آن را با فشار به پوشه. pset مستلزم آن است که هر JPEG است که شما را در فرمت های زیر می باشد. که در آن شما باید تعداد. JPG. تعداد، حتی اگر آن را به 0، ما آن را 000.jpg. هر زمان که شما پیدا کردن یک JPEG در برنامه شما، شما قصد دارید که می خواهید آن را در نظم که در آن پیدا می شود، نام. این به چه معنی؟ ما به نوع نیاز به پیگیری که چگونه بسیاری از ما پیدا کرده ام و چه تعداد از هر JPEG باید باشد. در اینجا ما قصد داریم را به استفاده از تابع sprintf. مشابه printf، که فقط نوع از چاپ یک مقدار را به ترمینال، sprintf چاپ فایل را به پوشه. و بنابراین، آنچه این را انجام دهد اگر من تا به حال sprintf، عنوان، و پس از آن رشته وجود دارد. نسخه قابل چاپ کردن آن را 2.JPG. با فرض این که من بسته فایل های من به درستی، که به فایل شامل اطلاعاتی است که من نوشتن بود. اما یک چیز این است که کدی که من آن را در اینجا نه کاملا ارضا چه pset نیاز. pset مستلزم آن است که فایل های JPEG دوم باید با نام 002 به جای فقط 2. بنابراین، هنگامی که شما نسخه قابل چاپ کردن نام، و سپس شاید شما ممکن است بخواهید که حفره یا سوراخ برای تغییر کمی است. آیا کسی به یاد داشته باشید که ما چگونه برای فضاهای اضافی اجازه می دهد هنگامی که ما چیزی چاپ؟ آره. >> [دانشجو] 3 را بین علامت درصد و 2 قرار داده است. >> آره، کامل است. شما 3 در این مورد چون ما می خواهیم فضا برای 3 قرار داده است. 3D٪ احتمالا به شما خواهد داد 002.jpg به جای 2. اولین آرگومان به تابع sprintf است که در واقع یک آرایه کاراکتر، که ما قبلا به عنوان رشته دانست. کسانی که اراده، نوع بیشتر شبیه ذخیره سازی موقت، فقط رشته حاصل را ذخیره کنید. شما واقعا نمی تواند برای مقابله با این، اما شما نیاز به آن را شامل است. با آگاهی از این که هر نام فایل شماره، که طول می کشد تا سه حرف دارد، و پس از آن. JPG، چه مدت باید این آرایه می شود؟ بیرون انداختن یک عدد است. چگونه بسیاری از شخصیت های این عنوان، به نام؟ بنابراین 3 hashtags، دوره، JPG وجود دارد. >> [دانشجو] 7. >> 7. نه کاملا. ما در حال رفتن به خواهید 8 چرا که ما می خواهیم برای نابودگر تهی اجازه می دهد و همچنین. در نهایت، فقط به منظور جلب روند که شما برای انجام بازیابی، شما برخی از اطلاعات آغاز. شما ادامه خواهد داد تا زمانی که شما شروع به یک فایل JPEG، و است که می تواند به صورت یکی از دو توالی شروع. ادامه مطلب را بخوانید. هر علامت ممیز در اینجا نشان دهنده 512 کلمه در ادامه متن. شما در خواندن نگه دارید، نگه داشتن در خواندن تا زمانی که دیگر دنباله شروع شما روبرو می شوند. هنگامی که شما که، شما را تا پایان JPEG کنونی - در این مورد، آن را به یکی از قرمز، بنابراین شما می خواهید برای پایان دادن به آن است. شما به sprintf نام آن به پوشه pset4 شما می خواهید، پس از آن شما می خواهید برای باز کردن یک JPEG و پس از آن به خاطر خواندن تا در کنار شما روبرو می شوند. به خاطر خواندن، نگه داشتن در خواندن، و پس از آن در نهایت، در نهایت، شما در حال رفتن برای رسیدن به انتهای فایل، و به همین ترتیب شما می خواهید برای بستن آخرین JPEG است که شما کار با، sprintf که به پوشه pset4 خود را، و پس از آن در تمام تصاویری که شما بدست. این تصاویر در واقع تصاویر CS50 کارکنان، و پس از این است که در آن بخش های سرگرم کننده جایزه از pset می آید این است که شما در حال رقابت در بخش های خود را برای پیدا کردن TFS در تصاویر و گرفتن عکس با آنها ثابت کند که شما انجام داده ام pset و بنابراین شما می توانید ببینید که اعضای هیات در تصاویر هستند. پس ورود شما را با کارکنان است. گاهی اوقات شما باید آنها را تعقیب می کرد. احتمالا برخی از آنها سعی خواهد کرد که برای اجرا از شما دور است. عکس شما را با آنها. این در حال انجام است. این دلیل نیست که به pset است که به علت است. مهلت خواهد شد در مشخصات اعلام شده است. سپس همراه با بخش خود را، هر کدام بخش تصاویر طول می کشد با اکثر اعضای هیات برنده یک جایزه بسیار عالی. این نوع انگیزه ای برای دریافت pset4 خود را به پایان رسید در اسرع وقت زیرا در این صورت شما می توانید به کسب و کار شکار کردن همه اعضای هیات CS50. که اجباری نیست، هر چند، به طوری که پس از آن که تصاویر شما می توانید، سپس شما با pset4 به پایان رسید. و من با Walkthrough 4 به پایان رسید، به طوری که شما از همه برای آینده است. موفق باشید با پزشکی قانونی. [تشویق حضار] [CS50.TV]