1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> JASON HIRSCHHORN: خوش آمدید، هر کس، به هفته 6. 3 00:00:09,840 --> 00:00:14,790 خوشحالم که همه شما را مشاهده زنده ام و به خوبی بعد از امتحان 0، زیرا من می دانم که 4 00:00:14,790 --> 00:00:15,810 کمی خشن بود. 5 00:00:15,810 --> 00:00:18,370 اما خوشبختانه، همه شما انجام باور نکردنی خوب. 6 00:00:18,370 --> 00:00:21,680 و به طوری که فوق العاده است. 7 00:00:21,680 --> 00:00:25,840 اگر شما در بخش من هستی، من بیشتر داده ام از شما به آزمونها خود را در حال حاضر. 8 00:00:25,840 --> 00:00:28,050 >> زن و شوهر از شما، من ملاقات بعد از کلاس. 9 00:00:28,050 --> 00:00:32,360 و اگر شما یک دانش آموز گسترش و هستیم شما امتحان خود را دریافت نکرده اند به عقب 10 00:00:32,360 --> 00:00:35,490 در عین حال، TF شما است احتمالا کار بر روی آن و درجه بندی آن، و آن را به عقب بر گردیم 11 00:00:35,490 --> 00:00:36,490 به شما در مدت کوتاهی. 12 00:00:36,490 --> 00:00:39,650 بنابراین دانش آموزان برنامه افزودنی من که تماشای در حال حاضر - امیدوارم زندگی می کنند - 13 00:00:39,650 --> 00:00:42,880 من امتحان خود را دریافت کنید مدت کوتاهی نیز هست. 14 00:00:42,880 --> 00:00:45,670 >> دستور کار ما امروز به شرح زیر است. 15 00:00:45,670 --> 00:00:50,170 اول، ما قصد داریم به برخی از به منابع که CS50 فراهم می کند به شما. 16 00:00:50,170 --> 00:00:54,590 ما قصد داریم تا بیش از امتحان 0 به بعد، و من به هر گونه سوال شما پاسخ کسی 17 00:00:54,590 --> 00:00:57,360 دارد در مورد مشکل خاصی. 18 00:00:57,360 --> 00:01:02,050 و پس از آن، ما خواهد بود بیش از رفتن فایل I / O و مشکل تنظیم 5. 19 00:01:02,050 --> 00:01:07,360 این دو مبحث گذشته خواهد شد تا بخش عمده ای از بخش امروز. 20 00:01:07,360 --> 00:01:11,680 >> من به این لیست هر هفته به عنوان قرار داده تا یادآوری به همه شما، اما هسته 21 00:01:11,680 --> 00:01:14,650 بخش ما فقط 90 دقیقه - ما قادر به پوشش همه چیز را که من 22 00:01:14,650 --> 00:01:16,280 دوست دارم برای پوشش برای شما بچه ها. 23 00:01:16,280 --> 00:01:21,170 ولی ما یک تن از منابع شما را به منظور جلب به عنوان شما را بشناسند 24 00:01:21,170 --> 00:01:24,000 مواد و کار را از طریق مشکل شما مجموعه. 25 00:01:24,000 --> 00:01:30,810 >> یادآور می شود که من آنلاین متن جعبه، برای شما راه اندازی را پر کنید اگر شما 26 00:01:30,810 --> 00:01:33,250 هر گونه بازخورد برای من، هر دو مثبت و 27 00:01:33,250 --> 00:01:35,180 سازنده، در مورد بخش. 28 00:01:35,180 --> 00:01:38,600 این URL واقع شده است حق را در اینجا. 29 00:01:38,600 --> 00:01:43,250 پس لطفا، لحظه ای اگر شما هر گونه بازخورد، چه در بخش، 30 00:01:43,250 --> 00:01:48,030 و یا پس از آن، یا بعد از ویدیوی شما را تماشا آنلاین، به من بازخورد شما. 31 00:01:48,030 --> 00:01:52,100 من واقعا هیچ و همه آن را قدردانی میکنیم. 32 00:01:52,100 --> 00:01:55,730 >> پس من با ام مکالمات کوچک با تعداد زیادی از من 33 00:01:55,730 --> 00:01:59,350 دانش آموزان در طول هفته - به من دست آزمونها به عقب، صحبت کردن در مورد 34 00:01:59,350 --> 00:02:01,480 البته، دیدن شما چگونه در حال انجام. 35 00:02:01,480 --> 00:02:05,120 و یک موضوع تا به تا بیش از آمده و بیش از در صحبت کردن در مورد - در 36 00:02:05,120 --> 00:02:05,660 خاص - 37 00:02:05,660 --> 00:02:07,710 مشکل مجموعه. 38 00:02:07,710 --> 00:02:13,090 و من که موضوع را بسته بندی در هیئت مدیره در حال حاضر. 39 00:02:13,090 --> 00:02:16,630 >> اساسا، یک تفاوت وجود دارد بین چرخش در چیزی است که 40 00:02:16,630 --> 00:02:19,590 درست و کاری را انجام داده است که به خوبی انجام می شود. 41 00:02:19,590 --> 00:02:22,920 اکثر مردم انجام شده است فوق العاده از نظر صحت - 42 00:02:22,920 --> 00:02:25,460 5 و یا 4 در همه psets. 43 00:02:25,460 --> 00:02:27,930 اکثر مردم در حال گرفتن تمام کسانی که از زمان. 44 00:02:27,930 --> 00:02:31,150 >> با این حال، فقط به خاطر شما انجام داده ام درست به این معنا نیست که شما 45 00:02:31,150 --> 00:02:34,450 انجام چیزی به عنوان زیبایی، و یا کارآمد، و یا به عنوان پاک که شما 46 00:02:34,450 --> 00:02:35,270 می تواند آن را انجام می شود. 47 00:02:35,270 --> 00:02:36,790 و این چیزی است که طراحی است - 48 00:02:36,790 --> 00:02:39,230 و به درجه، سبک کمتر - 49 00:02:39,230 --> 00:02:40,450 محور هستند. 50 00:02:40,450 --> 00:02:45,130 بنابراین من از همه شما هل دادن هستم، و دیگر TFS در حال هل دادن شما بچه ها، نه تنها به نوبه خود 51 00:02:45,130 --> 00:02:48,320 در چیزهایی که درست است، اما به نوبه خود در چیزهایی که به خوبی رمزی. 52 00:02:48,320 --> 00:02:53,060 >> انجام نشده غیر ضروری را برای حلقه ها، متغیرهای اگر محاسبه مجدد ندارد 53 00:02:53,060 --> 00:02:53,800 شما لازم نیست. 54 00:02:53,800 --> 00:02:58,520 به عنوان مثال، به دنبال بازگشت به مشکل تنظیم 4 هنگام قرار دادن آجر در 55 00:02:58,520 --> 00:03:03,070 صفحه نمایش، در هر سطر - هر آجر در ردیف داده شده است، همان مختصات y - 56 00:03:03,070 --> 00:03:04,390 همان ارتفاع هماهنگ می کند. 57 00:03:04,390 --> 00:03:07,930 >> به طوری که مختصات y به نیاز ندارد در داخل کشور محاسبه 58 00:03:07,930 --> 00:03:11,070 تو در تو حلقه For که شما به احتمال زیاد مورد استفاده قرار برای قرار دادن آن آجر بر روی صفحه نمایش. 59 00:03:11,070 --> 00:03:14,030 تنها نیاز به هر محاسبه می شود زمانی که شما روشن یک ردیف، و یا 60 00:03:14,030 --> 00:03:15,200 منتقل کردن یک ردیف. 61 00:03:15,200 --> 00:03:19,760 بنابراین می گویند اگر 10 آجر در یک وجود دارد ردیف، هر آجر می توانید همان 62 00:03:19,760 --> 00:03:22,260 مختصات y، و مختصات y فقط می توانید محاسبه می شود 63 00:03:22,260 --> 00:03:23,550 برای یک بار همه از آن. 64 00:03:23,550 --> 00:03:27,810 >> این کار نیاز به محاسبه توان 10 بار، و نه که نیاز به محاسبه 65 00:03:27,810 --> 00:03:30,220 به در واقعی اتفاق می افتد فراخوانی تابع - 66 00:03:30,220 --> 00:03:33,020 جدید فراخوانی تابع gracked. 67 00:03:33,020 --> 00:03:37,820 بنابراین اگر که کمی گیج کننده بود شما، عام تر، چیزهایی که 68 00:03:37,820 --> 00:03:40,730 لازم نیست هر بار تنها اتفاق می افتد شما را از طریق یک حلقه FOR رفتن نیست باید باشد 69 00:03:40,730 --> 00:03:42,900 قرار دادن در داخل حلقه FOR و نباید رخ می دهد هر بار که شما به 70 00:03:42,900 --> 00:03:44,080 از طریق حلقه FOR. 71 00:03:44,080 --> 00:03:49,270 >> یکی دیگر از مثال طراحی خوب دیدیم در هفته 3 15، شما می توانید نگه دارید 72 00:03:49,270 --> 00:03:50,500 آهنگ از صفر است. 73 00:03:50,500 --> 00:03:53,600 بنابراین، هنگامی که شما مقداردهی اولیه هیئت مدیره، شما صرفه جویی - در یک متغیر جهانی، شاید - 74 00:03:53,600 --> 00:03:56,140 x و y مختصات از صفر است. 75 00:03:56,140 --> 00:03:57,520 و پس از آن هر زمان که شما - 76 00:03:57,520 --> 00:04:00,310 در تابع حرکت خود را، هر زمان که شما را یک حرکت موفقیت آمیز، شما به روز رسانی 77 00:04:00,310 --> 00:04:02,040 محل صفر است. 78 00:04:02,040 --> 00:04:06,240 >> که شما را از نیاز به صرفه جویی در تو در تو FOR حلقه را از طریق نگاه 79 00:04:06,240 --> 00:04:10,700 هیئت مدیره در هر زمان در تابع حرکت خود را و پیدا کردن صفر، و یا پیدا کردن کاشی، 80 00:04:10,700 --> 00:04:12,460 و سپس به بررسی آنچه که در کنار آن. 81 00:04:12,460 --> 00:04:16,329 در عوض، شما باید محل صفر است، شما می توانید فقط، نگاه بالا به زیر، 82 00:04:16,329 --> 00:04:21,160 و به چپ و راست از آن، برای پیدا کردن کاشی تو به دنبال. 83 00:04:21,160 --> 00:04:24,970 >> بنابراین در شرایط از برنامه های ما نوشتن، آنها هرگز به اندازه کافی بزرگ هستند 84 00:04:24,970 --> 00:04:28,580 که برخی از این تصمیم گیری های طراحی واقعا به مانع خود را 85 00:04:28,580 --> 00:04:31,670 برنامه، و یا آن را آهسته تر اجرا شود، و یا شاید حتی از حافظه اجرا شود. 86 00:04:31,670 --> 00:04:35,030 اما ما هنوز شما هل دادن بچه ها برای نوشتن به عنوان ظریف و 87 00:04:35,030 --> 00:04:36,450 کد کارآمد که ممکن است. 88 00:04:36,450 --> 00:04:39,910 >> بنابراین اگر شما در انجام پایان دادن به نوشتن چیز که به طور قابل توجهی بزرگتر 89 00:04:39,910 --> 00:04:44,660 دامنه، آنها را با خوب نوشته شده است طراحی علاوه بر درست بودن. 90 00:04:44,660 --> 00:04:46,300 بنابراین تعدادی از شما آورده است که از. 91 00:04:46,300 --> 00:04:48,560 این چیزی است که ما به دنبال این - چیزی است که ما قصد داریم به ادامه 92 00:04:48,560 --> 00:04:49,840 بچه ها در فشار شما. 93 00:04:49,840 --> 00:04:52,460 >> اگر تا به حال هر گونه سوال در مورد داشته طراحی برنامه های خود را، احساس رایگان 94 00:04:52,460 --> 00:04:56,870 برای رسیدن به من، و من خوشحال هستم راه رفتن را از طریق برنامه خود را با شما، 95 00:04:56,870 --> 00:05:01,320 و اشاره به برخی از طرح تصمیم گیری های شما ساخته شده است، و برخی از شما را 96 00:05:01,320 --> 00:05:06,240 پیشنهادات در مورد چگونگی ساخت حتی تصمیم گیری های طراحی بهتر است. 97 00:05:06,240 --> 00:05:08,870 >> بنابراین ما در حال به حرکت در تاریخ به صحبت کردن در مورد امتحان 0. 98 00:05:08,870 --> 00:05:11,300 قبل از ما انجام این کار، کسی هر گونه سوال در مورد آنچه 99 00:05:11,300 --> 00:05:14,252 I تحت پوشش تا کنون؟ 100 00:05:14,252 --> 00:05:21,500 >> [سر و صدا سر و صدا] 101 00:05:21,500 --> 00:05:22,750 >> JASON HIRSCHHORN: هفت ثانیه صورت گرفت. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 اجازه دهید در مورد امتحان 0 بحث کمی. 104 00:05:24,970 --> 00:05:26,700 بسیاری از شما امتحان خود را به عقب 0 است. 105 00:05:26,700 --> 00:05:29,820 اگر اینکار را نکنید، امیدوارم شما آن را به یاد داشته باشید کمی. 106 00:05:29,820 --> 00:05:34,770 اما اگر شما امتحان 0، پس از آن گرفته شده همچنین دسترسی به PDF آنلاین در داشته باشد 107 00:05:34,770 --> 00:05:35,890 راه حل های نمونه. 108 00:05:35,890 --> 00:05:39,480 >> آیا هر کسی هر گونه سوال قبل ما به مواد هفته در مورد پرش 109 00:05:39,480 --> 00:05:41,520 مشکل خاصی در امتحان 0 - 110 00:05:41,520 --> 00:05:44,630 چرا جواب این است آنچه در آن است؟ 111 00:05:44,630 --> 00:05:47,255 آیا کسی در مورد هر چیزی اشتباه گرفته؟ 112 00:05:47,255 --> 00:05:50,230 حتی اگر شما این مشکل را درست کردم، اما فقط می خواهم به توضیح آن را کمی 113 00:05:50,230 --> 00:05:52,640 بیشتر، من خوشحال بودم که این کار را در حال حاضر. 114 00:05:52,640 --> 00:05:57,800 >> بنابراین من به شما بچه ها خواسته اند تا آمده آماده شده با برخی از 115 00:05:57,800 --> 00:05:59,440 افکار در مورد امتحان 0. 116 00:05:59,440 --> 00:06:02,660 پس چه کسی می خواهم تا ما را آغاز شده با یک سوال و یا 117 00:06:02,660 --> 00:06:04,655 در مورد امتحان 0 نظر؟ 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [سر و صدا PAPER] 120 00:06:10,410 --> 00:06:11,470 >> JASON HIRSCHHORN: هر کسی نیست کاملا انجام داد. 121 00:06:11,470 --> 00:06:12,720 بنابراین من می دانم که [می خندد] 122 00:06:12,720 --> 00:06:15,950 باید برخی از سوالات وجود دارد در مورد امتحان 0. 123 00:06:15,950 --> 00:06:27,940 124 00:06:27,940 --> 00:06:28,590 OK. 125 00:06:28,590 --> 00:06:29,210 بله. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA: شماره 10. 128 00:06:30,520 --> 00:06:33,560 >> JASON HIRSCHHORN: شماره 10. 129 00:06:33,560 --> 00:06:35,400 کدام یک عدد 10 بود؟ 130 00:06:35,400 --> 00:06:35,840 >> OMPICA: - 131 00:06:35,840 --> 00:06:36,420 >> JASON HIRSCHHORN: I haven't - 132 00:06:36,420 --> 00:06:37,670 >> OMPICA: شامل - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> JASON HIRSCHHORN: شماره 10 هشت بود برای من - نوشتن هشت به من؟ 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: آره. 136 00:06:42,980 --> 00:06:43,630 >> JASON HIRSCHHORN: OK. 137 00:06:43,630 --> 00:06:47,390 بنابراین یکی دیگر از سوال شما می تواند داشته باشد خواسته بود من از پیش آگاهانه؟ 138 00:06:47,390 --> 00:06:48,630 پاسخ مثبت است. 139 00:06:48,630 --> 00:06:52,060 در بخش قبل از مسابقه، از او خواستم شما بچه ها به کد هر دو پوند و 140 00:06:52,060 --> 00:06:52,980 هشت به من. 141 00:06:52,980 --> 00:06:54,770 هر دوی آنها به اتفاق افتاد در مسابقه ظاهر می شود. 142 00:06:54,770 --> 00:06:57,510 پس امیدوارم، شما پرداخت می شود با توجه به که. 143 00:06:57,510 --> 00:07:02,520 >> و اگر شما تا به حال، پس از آن شما را مجبور احتمالا به خوبی در آن دو انجام می شود. 144 00:07:02,520 --> 00:07:06,030 اما هشت به من، ما در واقع کد آن را در کلاس، اما، دوباره، 145 00:07:06,030 --> 00:07:07,500 در مسابقه پرسید. 146 00:07:07,500 --> 00:07:13,270 بنابراین چند چیز را به توجه داشته باشید که برنامه نویسی هشت به من. 147 00:07:13,270 --> 00:07:17,320 اولین چیزی که، در هر سوال، بود که شما نیاز به چک کردن رشته 148 00:07:17,320 --> 00:07:20,300 به تهی برابر بود. 149 00:07:20,300 --> 00:07:28,060 >> زن و شوهر از مردم سعی در بررسی بعد در در این برنامه اگر S براکت من بود - 150 00:07:28,060 --> 00:07:30,940 بنابراین یک کاراکتر خاص در آن رشته - به تهی برابر بود. 151 00:07:30,940 --> 00:07:35,600 اما به یاد داشته باشید، که تهی است که در اصل - آن را خوب به از فکر می کنم 152 00:07:35,600 --> 00:07:39,100 null به عنوان یک اشاره گر صفر - یک اشاره گر به صفر - 153 00:07:39,100 --> 00:07:40,920 جایی در حافظه که در آن شما هرگز نمی تواند دسترسی پیدا کنید. 154 00:07:40,920 --> 00:07:44,730 >> بنابراین اگر چیزی به تهی برابر است، شما می دانم که آن را مقدار دهی اولیه نشده است، 155 00:07:44,730 --> 00:07:46,430 و یا هیچ چیز وجود دارد وجود دارد. 156 00:07:46,430 --> 00:07:50,950 بنابراین یک ستاره کاراکتر است، ها براکت من یک کاراکتر است. 157 00:07:50,950 --> 00:07:57,410 پس از آن را حس می کند برای مقایسه به تهی، اما براکت ندارد و من تهی. 158 00:07:57,410 --> 00:07:59,390 اما باز هم - به طوری که اولین چیزی بود که شما قرار بود به انجام - 159 00:07:59,390 --> 00:08:03,510 بررسی کنید تا مطمئن شوید که شما در واقع یک رشته واقعی است. 160 00:08:03,510 --> 00:08:08,020 >> بعد، شما می خواهید از طریق هر کاراکتر در رشته. 161 00:08:08,020 --> 00:08:12,500 و به طوری که می خواهم یک علامت کوچکتر باشد من، به عنوان مثال، اگر من تکرارکننده شما است. 162 00:08:12,500 --> 00:08:17,250 و که شخصیت، و دریافت ارزش واقعی آن است. 163 00:08:17,250 --> 00:08:21,800 شما آن را به عنوان یک کاراکتر ذخیره شده، اما مقدار ASCII برای صفر - 164 00:08:21,800 --> 00:08:23,010 صفر به عنوان یک شخصیت - 165 00:08:23,010 --> 00:08:25,450 در واقع عدد صحیح صفر نیست. 166 00:08:25,450 --> 00:08:28,700 برخی از آن تعداد دیگر که شما می توانید در نگاه کردن در جدول ASCII. 167 00:08:28,700 --> 00:08:30,790 >> پس یک راه برای اصلاح آن - احتمالا بهترین راه برای اصلاح 168 00:08:30,790 --> 00:08:33,760 که - از آن تفریق ارزش شخصیت - 169 00:08:33,760 --> 00:08:35,140 صفر به عنوان یک شخصیت. 170 00:08:35,140 --> 00:08:38,490 بنابراین منهای نقل قول تنها، صفر، یکی دیگر از نقل قول تنها. 171 00:08:38,490 --> 00:08:44,620 هر شماره شما را که خواهد شد به عنوان یک کاراکتر، و آن را برابر 172 00:08:44,620 --> 00:08:46,720 تعداد به عنوان یک عدد صحیح واقعی. 173 00:08:46,720 --> 00:08:50,300 >> و این بسیار شبیه به روش بسیاری از مردم در زمان 174 00:08:50,300 --> 00:08:52,800 مشکل تنظیم 2، با سزار و Viginere - 175 00:08:52,800 --> 00:08:55,160 آن رمز، هنگامی که شما آنها چرخش شدند. 176 00:08:55,160 --> 00:08:59,210 بنابراین پس از شما آن را به عنوان یک عدد از صفر تا نه، پس از آن - بسته به نوع 177 00:08:59,210 --> 00:09:02,750 جایی که آن را در تعداد نهایی می رود - شما نیاز به آن را چند برابر 178 00:09:02,750 --> 00:09:04,120 با قدرت 10. 179 00:09:04,120 --> 00:09:07,340 >> برخی از افراد از پشت به نقل مکان کرد جلو، و ضرب فرد 180 00:09:07,340 --> 00:09:08,940 شماره های قدرت 10. 181 00:09:08,940 --> 00:09:11,160 برخی از افراد از نقل مکان کرد جلو به عقب - 182 00:09:11,160 --> 00:09:14,430 و به همین ترتیب در زمان بالاترین اولین سفارش اعداد - 183 00:09:14,430 --> 00:09:18,190 و کسانی که در صرفه جویی متغیر شمارنده جهانی است. 184 00:09:18,190 --> 00:09:20,880 و پس از آن در هر زمان از طریق FOR حلقه، چند برابر است که غول های جهانی 185 00:09:20,880 --> 00:09:25,640 متغیر شمارنده 10، به فضا برای کاراکتر بعدی. 186 00:09:25,640 --> 00:09:28,750 >> به طوری که کمی گیج کننده بدون بود من نوشتن در هیئت مدیره. 187 00:09:28,750 --> 00:09:31,550 اما راه حل نمونه در دسترس شما است. 188 00:09:31,550 --> 00:09:32,870 اما آن چیز بزرگ بودند ما به دنبال. 189 00:09:32,870 --> 00:09:36,400 همچنین چک کنید تا مطمئن شوید که هر شخصیت در واقع یک بود 190 00:09:36,400 --> 00:09:39,780 شخصیت بین صفر و نه، و نه برخی از شخصیت های دیگر، مانند A، 191 00:09:39,780 --> 00:09:41,160 به عنوان مثال. 192 00:09:41,160 --> 00:09:43,150 >> آن چیزهایی که ما به دنبال بود در این سوال. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 آیا این پاسخ به سوال شما؟ 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: آره. 196 00:09:49,320 --> 00:09:50,240 >> JASON HIRSCHHORN: OK. 197 00:09:50,240 --> 00:09:53,940 آیا هر گونه سؤال دیگر وجود دارد در مورد امتحان 0؟ 198 00:09:53,940 --> 00:09:55,440 چه در مورد تدوین؟ 199 00:09:55,440 --> 00:09:56,740 همه کامپایل درست است؟ 200 00:09:56,740 --> 00:09:58,370 شماره 201 00:09:58,370 --> 00:09:58,840 بودند وجود دارد - 202 00:09:58,840 --> 00:10:01,010 [می خندد] 203 00:10:01,010 --> 00:10:03,265 هر گونه سؤال در مورد فرآیند کامپایل؟ 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 وای. 206 00:10:06,966 --> 00:10:11,090 >> [سر و صدا PAPER] 207 00:10:11,090 --> 00:10:11,520 >> JASON HIRSCHHORN: بله. 208 00:10:11,520 --> 00:10:11,700 مایکل. 209 00:10:11,700 --> 00:10:14,140 >> MICHAEL از: آیا شماره 7 - تصادفی؟ 210 00:10:14,140 --> 00:10:16,500 >> JASON HIRSCHHORN: شماره 7. 211 00:10:16,500 --> 00:10:20,670 شماره 7 دریافت یک عدد صحیح تصادفی بود. 212 00:10:20,670 --> 00:10:21,110 عالی. 213 00:10:21,110 --> 00:10:25,630 بنابراین یک عدد صحیح به شما داده می و عدد صحیح ب، و شما می خواهید یک تصادفی 214 00:10:25,630 --> 00:10:28,710 عدد صحیح بین a و b. 215 00:10:28,710 --> 00:10:31,740 ما در واقع می تواند ارسال این یکی در هیئت مدیره، چرا که این یک 216 00:10:31,740 --> 00:10:33,320 یک خط کد بود - 217 00:10:33,320 --> 00:10:34,390 یک راه برای انجام این کار. 218 00:10:34,390 --> 00:10:37,810 >> بنابراین ما drand به عنوان یک داده شده عملکرد ما می تواند استفاده کنید. 219 00:10:37,810 --> 00:10:38,820 و چه drand - 220 00:10:38,820 --> 00:10:40,290 با فرض آن کاشته شده است - 221 00:10:40,290 --> 00:10:42,316 چه drand بازگشت؟ 222 00:10:42,316 --> 00:10:44,840 >> MICHAEL: یک شناور بین 0.0 و 1.0. 223 00:10:44,840 --> 00:10:45,530 >> JASON HIRSCHHORN: A تعداد - آره. 224 00:10:45,530 --> 00:10:47,910 یک عدد بین 0 و 1. 225 00:10:47,910 --> 00:10:51,760 و به این ترتیب ما ب و. 226 00:10:51,760 --> 00:10:55,480 و پس از آن ما باید عدد تصادفی ما بین 0 و 1 توسط drand به ما داده شده است. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 برخی از افراد تلاش برای قرار دادن ب یا ب منفی ، و یا چیزی در داخل آن 229 00:11:06,630 --> 00:11:07,960 پرانتز. 230 00:11:07,960 --> 00:11:11,210 این بدان معنی است که آنها آرگومان این تابع. 231 00:11:11,210 --> 00:11:13,450 >> drand هیچ استدلال را ندارد - مانند getString می کند 232 00:11:13,450 --> 00:11:14,330 هر گونه استدلال را ندارد. 233 00:11:14,330 --> 00:11:16,600 پس از آن فقط پرانتز باز، بسته پرانتز - و این، خود، است 234 00:11:16,600 --> 00:11:17,330 فراخوانی تابع است. 235 00:11:17,330 --> 00:11:19,770 و این به شما می دهد تعداد بین 0 و 1. 236 00:11:19,770 --> 00:11:22,820 البته، ما یک طیف وسیعی که اعداد را می شوید می شود 237 00:11:22,820 --> 00:11:28,470 >> می گویند، اگر ب 10 است و 5 است، ما واقعا می خواهید یک تعداد با طیف وسیعی از 5. 238 00:11:28,470 --> 00:11:36,940 بنابراین چیزی که بعد از ما باید انجام دهیم این است ضرب این محدوده ب منهای یک. 239 00:11:36,940 --> 00:11:40,380 بنابراین با این فرض که ضرب. 240 00:11:40,380 --> 00:11:42,590 و این هم به ما تعدادی را در محدوده داده شده است. 241 00:11:42,590 --> 00:11:46,610 و آن محدوده خاص تفاوت بین ب منهای یک. 242 00:11:46,610 --> 00:11:50,030 >> و در نهایت، که شما فقط آن را از را - می گویند محدوده بین ب منهای یک 243 00:11:50,030 --> 00:11:52,520 5، که به ما می دهد عدد از 0 تا 5. 244 00:11:52,520 --> 00:11:56,000 اما اگر در واقع 5، ما نیاز به افزایش این محدوده تا جایی که آن را 245 00:11:56,000 --> 00:12:01,380 در واقع تصور می شود، با اضافه کردن. 246 00:12:01,380 --> 00:12:02,580 به طوری که سمت راست منطق می شود. 247 00:12:02,580 --> 00:12:03,745 و پس از آن، به شما یکی دیگر از سوال؟ 248 00:12:03,745 --> 00:12:04,547 >> MICHAEL: شماره 249 00:12:04,547 --> 00:12:06,010 من فقط احساس می کنید واقعا گنگ در حال حاضر. 250 00:12:06,010 --> 00:12:06,405 [می خندد] 251 00:12:06,405 --> 00:12:06,730 >> JASON HIRSCHHORN: شماره 252 00:12:06,730 --> 00:12:08,640 آیا احساس واقعا گنگ. 253 00:12:08,640 --> 00:12:10,560 تعدادی از مردم تلاش با این سوال. 254 00:12:10,560 --> 00:12:13,920 و سپس، سوال دیگر این است که، drand، به شما گفت، شما می دهد شناور - 255 00:12:13,920 --> 00:12:14,940 شناور بر می گرداند. 256 00:12:14,940 --> 00:12:18,020 اما این عملکرد در واقع خواسته برای یک عدد صحیح می شود برگشت. 257 00:12:18,020 --> 00:12:23,700 >> شما لازم نیست به بازیگران این صراحت به یک عدد صحیح، چرا که این 258 00:12:23,700 --> 00:12:29,090 عملیات آن را به عنوان تمام درمان شناور - به عنوان یک عدد ممیز شناور. 259 00:12:29,090 --> 00:12:31,570 مثل این - حتی اگر این یک عدد صحیح، این اراده است 260 00:12:31,570 --> 00:12:32,890 به درستی ضرب. 261 00:12:32,890 --> 00:12:34,000 همه ضرب کار می کنند. 262 00:12:34,000 --> 00:12:35,060 شما لازم نیست به آن رای دادند در اینجا. 263 00:12:35,060 --> 00:12:36,480 در واقع، شما باید آن را به بازیگران نیست. 264 00:12:36,480 --> 00:12:37,310 >> که - 265 00:12:37,310 --> 00:12:40,750 اگر شما می توانید تعداد بازیگران که بین 0 و 1 - 266 00:12:40,750 --> 00:12:42,680 یک عدد تصادفی، یک نقطه شناور - 267 00:12:42,680 --> 00:12:47,850 سپس آن را یا فقط 0 یا 1 خواهد بود، بنابراین شما همه که دقت شما از دست بدهند. 268 00:12:47,850 --> 00:12:50,120 اما در پایان، هنگامی که شما بازگشت، آن را به طور خودکار می شود 269 00:12:50,120 --> 00:12:51,620 به عنوان یک عدد صحیح ارسال می شود. 270 00:12:51,620 --> 00:12:56,870 بنابراین شما لازم نیست که برای انجام این کار که ریخته گری خودتان. 271 00:12:56,870 --> 00:13:00,810 >> پس این پاسخ به بود این سوال، شماره 7. 272 00:13:00,810 --> 00:13:02,190 هر گونه سؤال دیگر در امتحان 0؟ 273 00:13:02,190 --> 00:13:03,300 آره، آنی. 274 00:13:03,300 --> 00:13:05,050 >> ANNIE: چه زمانی استفاده از بازگشتی ما - 275 00:13:05,050 --> 00:13:07,850 هنگامی که ما استفاده از حلقه های تکرار شونده؟ 276 00:13:07,850 --> 00:13:10,210 >> JASON HIRSCHHORN: هنگامی که استفاده می کنید بازگشتی - بنابراین به طور کلی، 277 00:13:10,210 --> 00:13:14,110 جوانب مثبت و منفی از بازگشت در مقابل یک روش تکرار شونده. 278 00:13:14,110 --> 00:13:17,110 آیا می توانم هر کسی ارائه یک حرفه و یا باهم؟ 279 00:13:17,110 --> 00:13:19,460 لطفا؟ 280 00:13:19,460 --> 00:13:20,140 آیا می توانم هر کسی. 281 00:13:20,140 --> 00:13:22,526 چه کسی می تواند یک حرفه یا یک کنترل را ارائه می دهند؟ 282 00:13:22,526 --> 00:13:26,963 >> [سر و صدا PAPER] 283 00:13:26,963 --> 00:13:29,730 >> STUDENT 1: بازگشتی کمتر است برنامه نویسی - تایپ کمتر؟ 284 00:13:29,730 --> 00:13:33,170 >> JASON HIRSCHHORN: بنابراین به طور کلی، بازگشت به ویژه، یک تابع - 285 00:13:33,170 --> 00:13:35,750 و یا یک الگوریتم مانند ادغام مرتب سازی بر اساس - که خود آشنایی 286 00:13:35,750 --> 00:13:37,300 به روش بازگشتی - 287 00:13:37,300 --> 00:13:40,710 ممکن است ساده تر به کد به صورت بازگشتی. 288 00:13:40,710 --> 00:13:43,940 و فقط حس را برای انجام آن به صورت بازگشتی. 289 00:13:43,940 --> 00:13:46,230 به طوری که می شود یک حرفه ای را به بازگشت. 290 00:13:46,230 --> 00:13:46,610 دیگران؟ 291 00:13:46,610 --> 00:13:47,467 آره؟ 292 00:13:47,467 --> 00:13:49,240 >> STUDENT 2: باهم به بازگشت - 293 00:13:49,240 --> 00:13:50,940 با استفاده از حافظه بیشتر. 294 00:13:50,940 --> 00:13:52,200 >> JASON HIRSCHHORN: پس دقیقا درست است. 295 00:13:52,200 --> 00:13:55,720 تابع بازگشتی را حفظ خواهد کرد با اضافه کردن پشته فریم به پشته. 296 00:13:55,720 --> 00:13:59,690 بنابراین اگر شما در بسیاری از عامل اعداد و باید به این 297 00:13:59,690 --> 00:14:02,560 عمل به مقدار زیادی، و سپس شما قطعا خواهد شد حافظه بیشتر، در حالی که 298 00:14:02,560 --> 00:14:05,810 یک روش تکرار شونده تنها یک قرار داده خواهد شد پشته قاب بر روی پشته، به دلیل 299 00:14:05,810 --> 00:14:08,420 آن همه در درون یک تابع اتفاق می افتد. 300 00:14:08,420 --> 00:14:11,010 >> هر جوانب مثبت و منفی دیگر؟ 301 00:14:11,010 --> 00:14:11,500 آره. 302 00:14:11,500 --> 00:14:12,550 >> STUDENT 3: مزایا را برای بازگشت. 303 00:14:12,550 --> 00:14:15,950 شما لازم نیست برای تعیین در پیش چند بار 304 00:14:15,950 --> 00:14:17,660 کد مجبور به تکرار شود. 305 00:14:17,660 --> 00:14:22,810 شما می توانید یک شماره از پیش تعیین شده از بار که شما مجبور به تکرار، و سپس 306 00:14:22,810 --> 00:14:26,420 بازگشت بهتر است، چرا که آن است که در نتیجه طول می کشد. 307 00:14:26,420 --> 00:14:27,780 >> JASON HIRSCHHORN: من فکر می کنم که درست است. 308 00:14:27,780 --> 00:14:30,770 اما من در هر دو مورد فکر می کنم شما هرگز - 309 00:14:30,770 --> 00:14:33,290 شما احتمالا برخی از ورودی از کاربر. 310 00:14:33,290 --> 00:14:35,990 یا این عملکرد برخی از ورودی که تعیین کنید که چگونه چند بار آن را 311 00:14:35,990 --> 00:14:36,730 باید اجرا شود. 312 00:14:36,730 --> 00:14:39,520 بنابراین به طور کلی، شما می توانید کد سخت نیست - حتی در یک روش تکرار شونده - چگونه 313 00:14:39,520 --> 00:14:40,940 چند بار که حلقه باید اجرا شود. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> آیا دیگر شما شما فکر کردن در مورد، آنی؟ 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 بنابراین کسانی که احتمالا دو - 318 00:14:51,650 --> 00:14:54,370 بزرگترین طرفدار و بزرگترین باهم به بازگشتی در مقابل 319 00:14:54,370 --> 00:14:57,080 یک روش تکرار شونده. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 هر چیز دیگری در امتحان 0؟ 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> بیایید در حرکت می کند. 324 00:15:09,920 --> 00:15:15,260 فایل I / O. است کوتاه فوق العاده وجود دارد این هفته در فایل I / O که امیدوارم 325 00:15:15,260 --> 00:15:19,270 شما چند تماشا کرده ام بار، و تحسین. 326 00:15:19,270 --> 00:15:22,910 مقدار زیادی از کار را که کرد، و من شنیده ام این است دیوانه مفید باشد. 327 00:15:22,910 --> 00:15:25,740 من همچنین شامل لینک در این اسلاید، در مورد شما نداشته اند 328 00:15:25,740 --> 00:15:29,160 فرصتی برای تماشای آن را 10 بار. 329 00:15:29,160 --> 00:15:35,280 >> بنابراین، ما می رویم به طور خلاصه در طول بروید گام اصلی برای باز کردن و کار 330 00:15:35,280 --> 00:15:38,400 با فایل های، و پس از آن ما می رویم به شیرجه رفتن به یک مشکل برنامه نویسی قبل 331 00:15:38,400 --> 00:15:40,400 بررسی مجموعه ای مشکل است. 332 00:15:40,400 --> 00:15:44,330 بنابراین دوباره، من قصد دارم برای قرار دادن این در صفحه نمایش، اما من قصد دارم برای صحبت 333 00:15:44,330 --> 00:15:47,630 فقط یک دقیقه در مورد آنچه ما انجام در اینجا با فایل I/O-- 334 00:15:47,630 --> 00:15:49,090 به چه معنا است؟ 335 00:15:49,090 --> 00:15:55,280 >> این بدان معناست که ما می توانیم ایجاد ما برنامه ها، و پس از آن برنامه های ما 336 00:15:55,280 --> 00:16:00,370 خروج، و ساخته شده است هیچ تاثیری در جهان خارج از برنامه ما. 337 00:16:00,370 --> 00:16:04,630 اما زمانی که ما شروع به کار با فایل ها - هر دو آنها را به خواندن در و ایجاد 338 00:16:04,630 --> 00:16:10,460 آنها را - ما می توانیم برخی اثر در داشته باشد جهان خارج از برنامه ما. 339 00:16:10,460 --> 00:16:15,440 >> درست مثل اگر مایکروسافت ورد بود قادر به هر گونه اسناد ورد، پس از آن 340 00:16:15,440 --> 00:16:18,710 یک بار مایکروسافت ورد ترک، همه خود را کار می رفته است، و آن را 341 00:16:18,710 --> 00:16:19,740 واقعا بی فایده است. 342 00:16:19,740 --> 00:16:23,620 ما در نهایت می خواهم که قادر به ارسال برنامه های است که می تواند تحت تاثیر قرار 343 00:16:23,620 --> 00:16:31,350 جهان اطراف آنها، هر دو با در نظر گرفتن در ورودی های پیچیده - از نظر فایل ها و 344 00:16:31,350 --> 00:16:37,080 از طریق فایل، و نیز جالب ایجاد و خروجی فوتی و فوری - 345 00:16:37,080 --> 00:16:39,520 از نظر نوع مختلف از فایل های. 346 00:16:39,520 --> 00:16:43,730 >> بنابراین به همین دلیل است که ما شروع به یاد بگیرند که چگونه برای کار با فایل. 347 00:16:43,730 --> 00:16:47,080 بیشتر به طور خاص، چه ما انجام می دهیم به شرح زیر است. 348 00:16:47,080 --> 00:16:47,680 این بسیار ساده است. 349 00:16:47,680 --> 00:16:51,530 تنها چند گام وجود دارد، و آنها در اینجا در این کد ذکر شده است. 350 00:16:51,530 --> 00:16:55,130 بنابراین ما قصد داریم از طریق رفتن این خط کد به خط. 351 00:16:55,130 --> 00:16:57,630 >> اول، شما می بینید برجسته - 352 00:16:57,630 --> 00:17:01,330 هنگامی که شما در حال کار با فایل، بدون در نظر گرفتن نوع فایل در آن است، 353 00:17:01,330 --> 00:17:02,670 شما نیاز به آن را باز کنید. 354 00:17:02,670 --> 00:17:05,130 و این است که با یک تماس به fopen - 355 00:17:05,130 --> 00:17:05,950 حق در اینجا. 356 00:17:05,950 --> 00:17:07,980 شما شامل نام فایل. 357 00:17:07,980 --> 00:17:11,930 اگر این فایل را در دایرکتوری شما نیست، و یا پوشه ای که این برنامه 358 00:17:11,930 --> 00:17:15,910 زندگی، پس شما نیز باید شامل یک مسیر به جایی که فایل است. 359 00:17:15,910 --> 00:17:19,099 >> ما قصد داریم فرض کنیم که این فایل با نام "text.txt" - 360 00:17:19,099 --> 00:17:24,220 یک سند متنی ساده - است در همان پوشه به عنوان این برنامه است. 361 00:17:24,220 --> 00:17:26,859 به طوری که دیگر چیزی برای نگه داشتن در ذهن - که اگر شما می خواهید برای باز کردن فایل 362 00:17:26,859 --> 00:17:30,050 در جایی دیگر، شما در واقع نیاز شامل محل آن است. 363 00:17:30,050 --> 00:17:33,520 >> دوم، شما می توانید یک آرگومان به تصویب fopen، و این چیزی است که می خواهید انجام دهید 364 00:17:33,520 --> 00:17:34,620 با فایل. 365 00:17:34,620 --> 00:17:38,450 سه استدلال اصلی که وجود دارد شما در حال رفتن برای تصویب به fopen. 366 00:17:38,450 --> 00:17:40,060 چه کسی می تواند به من آن سه را؟ 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 چه کسی می تواند به من یکی از آنها را؟ 369 00:17:47,130 --> 00:17:48,130 بله. 370 00:17:48,130 --> 00:17:50,010 >> STUDENT 4: نام فایل؟ 371 00:17:50,010 --> 00:17:50,440 >> JASON HIRSCHHORN: متاسفم. 372 00:17:50,440 --> 00:17:55,490 سه استدلال اصلی شما می توانید عبور به عنوان آرگومان دوم به fopen. 373 00:17:55,490 --> 00:17:57,060 حق با شماست - نام فایل آرگومان اول است. 374 00:17:57,060 --> 00:18:01,620 اما دلیل دوم به fopen است به طور کلی سه رشته، و - بله. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> ALEJA: A برای اضافه نماییم. 377 00:18:03,490 --> 00:18:06,840 >> JASON HIRSCHHORN: A، اگر شما می خواهید اضافه به یک فایل که در حال حاضر وجود دارد. 378 00:18:06,840 --> 00:18:07,810 >> STUDENT 5: R برای خواندن. 379 00:18:07,810 --> 00:18:09,930 >> JASON HIRSCHHORN: R، اگر شما می خواهید از یک فایل خوانده شوند. 380 00:18:09,930 --> 00:18:10,670 >> STUDENT 6: W برای نوشتن. 381 00:18:10,670 --> 00:18:12,840 >> JASON HIRSCHHORN: و W، اگر شما می خواهم برای نوشتن به یک فایل. 382 00:18:12,840 --> 00:18:17,570 بنابراین در این مورد، ما در حال نوشتن به فایل، بنابراین ما باید عرض. 383 00:18:17,570 --> 00:18:22,360 شما آن را باز کنید، شما نیز باید برای نجات فایل در جایی، و این با 384 00:18:22,360 --> 00:18:26,000 کد را به سمت چپ عملگر انتساب - 385 00:18:26,000 --> 00:18:31,220 من ایجاد یک اشاره گر به یک فایل نامیده می شود، در این مورد، فایل. 386 00:18:31,220 --> 00:18:36,070 >> ما می خواهیم نیست که نگران باشید که چه این همه کلاه چیزی FILE است. 387 00:18:36,070 --> 00:18:40,600 کافی است گفته شود، آن است که طولانی جریان از صفر و آنهایی که. 388 00:18:40,600 --> 00:18:44,970 و این که چگونه ما می رویم به عمل به آن و درک آن. 389 00:18:44,970 --> 00:18:47,300 >> چیزی که بعد از ما باید انجام دهیم - و این فوق العاده مهم - 390 00:18:47,300 --> 00:18:49,070 هر زمان که شما باز کردن یک فایل - 391 00:18:49,070 --> 00:18:54,250 در واقع، هر زمان که شما malloc تماس بگیرید، برای به عنوان مثال، و برخی از حافظه و سعی کنید 392 00:18:54,250 --> 00:18:57,980 و ذخیره آن در یک اشاره گر، شما همیشه می خواهم به بررسی کنید تا مطمئن شوید که که 393 00:18:57,980 --> 00:19:00,230 تابع نمی گرداند تهی. 394 00:19:00,230 --> 00:19:05,230 >> بنابراین در این مورد، ما در حال بررسی را به مطمئن باشید که ما در واقع باز 395 00:19:05,230 --> 00:19:10,230 فایل به درستی، و در آنجا بود هیچ خطا در برنامه ما. 396 00:19:10,230 --> 00:19:15,160 بعد، زمانی که ما بررسی کرده تا مطمئن شوید که ما یک فایل کار می کند، ما می توانیم 397 00:19:15,160 --> 00:19:18,520 ارسال به، و یا خواندن از، و یا الحاق به فایل. 398 00:19:18,520 --> 00:19:24,270 در این مورد، من به سادگی چاپ یک خط به این فایل. 399 00:19:24,270 --> 00:19:25,450 >> چگونه من می دانم که؟ 400 00:19:25,450 --> 00:19:27,990 خوب، من با استفاده از این تابع نام fprintf. 401 00:19:27,990 --> 00:19:30,970 همه توابع شما با استفاده از در هنگام نوشتن به، و یا خواندن از و یا 402 00:19:30,970 --> 00:19:34,950 دستکاری فایل های مشابه خواهد بود توابع را ندیده اید، اما 403 00:19:34,950 --> 00:19:38,420 شروع با حرف F، ایستاده برای فایل. 404 00:19:38,420 --> 00:19:43,440 و fprintf، بر خلاف چاپ معمولی ما برنامه، طول می کشد یک آرگومان های اضافی، 405 00:19:43,440 --> 00:19:47,800 و این که فایل است که در آن شما چاپ شود این خط به. 406 00:19:47,800 --> 00:19:50,640 >> من هیچ چیز نیست که حق ohai. 407 00:19:50,640 --> 00:19:52,860 من سوم ندارد آرگومان چون printf - 408 00:19:52,860 --> 00:19:57,030 و یا آرگومان دوم به چون printf، استدلال سوم به fprintf، چون من 409 00:19:57,030 --> 00:19:59,480 هیچ متغیرهایی را ندارید. 410 00:19:59,480 --> 00:20:01,070 من از جمله هر متغیر نیست. 411 00:20:01,070 --> 00:20:06,070 اما باز هم، fprintf و تمام این فایل توابع است که با فایل کار 412 00:20:06,070 --> 00:20:09,820 به طور کلی نیاز به رفتن به فایل که بر روی آنها در حال فعالیت. 413 00:20:09,820 --> 00:20:15,960 >> در نهایت، آخرین چیزی که مهم است به انجام دهید این است برای بستن فایل، درست مثل 414 00:20:15,960 --> 00:20:19,530 با - هر زمان که ما چیزی malloc، ما می خواهیم برای آزادی چیزی، تا مبادا ما 415 00:20:19,530 --> 00:20:22,730 یک نشت حافظه - ما می خواهیم بستن پرونده ما. 416 00:20:22,730 --> 00:20:28,180 اگر این برنامه را بدون بستن خارج فایل، شانس هستند چیزی را به 417 00:20:28,180 --> 00:20:30,050 اشتباه، به خصوص اگر آن را یک فایل کوچک بود. 418 00:20:30,050 --> 00:20:35,020 >> اما آن را قطعا به سبک برنامه نویسی خوب و تمرین برای همیشه فایل خود را ببندید 419 00:20:35,020 --> 00:20:38,050 زمانی که شما با استفاده از آن به پایان رسید. 420 00:20:38,050 --> 00:20:43,630 به طوری که اصول اولیه فایل I / O. است شما احتمالا دیده می شود که قبل از، و یا 421 00:20:43,630 --> 00:20:45,710 آن را در آن کوتاه فوق العاده تماشا. 422 00:20:45,710 --> 00:20:48,410 آیا هر کسی هر گونه سوال، قبل از ما به برخی از برنامه نویسی عمل به 423 00:20:48,410 --> 00:20:51,800 مشکلات، در مورد فایل I / O یا مراحل من فقط بر رفت؟ 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [تایپ SOUNDS] 426 00:21:03,162 --> 00:21:04,150 >> JASON HIRSCHHORN: آیا شما یک سوال، AVI؟ 427 00:21:04,150 --> 00:21:04,660 >> AVI: شماره 428 00:21:04,660 --> 00:21:04,740 >> JASON HIRSCHHORN: OK. 429 00:21:04,740 --> 00:21:06,746 من قصد دارم به دیگر صبر کنید هفت ثانیه صورت گرفت. 430 00:21:06,746 --> 00:21:07,590 [می خندد] 431 00:21:07,590 --> 00:21:08,620 این نکته واقعا خوب است. 432 00:21:08,620 --> 00:21:10,750 شما بچه ها فقط دوست ندارم پرسیدن سوال. 433 00:21:10,750 --> 00:21:11,660 این خوب است. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 بنابراین اولین مشکل عمل ما است، ما رفتن به تکراری عملکرد 436 00:21:17,620 --> 00:21:22,330 یک ابزار خط فرمان است که شما احتمالا استفاده قبل از - کپی - 437 00:21:22,330 --> 00:21:23,500 ابزار کپی کنید. 438 00:21:23,500 --> 00:21:28,050 اگر شما CP را تایپ کنید و سپس تصویب آن دو استدلال به ترمینال خود را، شما می توانید 439 00:21:28,050 --> 00:21:28,980 کپی کردن یک فایل. 440 00:21:28,980 --> 00:21:31,220 و این چیزی است که ما می رویم برای نوشتن در حال حاضر. 441 00:21:31,220 --> 00:21:35,830 >> پس باز هم مطالعه کردن از این اسلاید، من می خواهم شما به یک برنامه بنویسید که طول می کشد 442 00:21:35,830 --> 00:21:38,130 دو و فقط دو خط فرمان استدلال - 443 00:21:38,130 --> 00:21:40,750 یک فایل منبع و فایل مقصد - 444 00:21:40,750 --> 00:21:44,590 و کپی از محتویات منبع فایل به فایل قسمت 445 00:21:44,590 --> 00:21:46,960 یک بایت در یک زمان. 446 00:21:46,960 --> 00:21:48,510 به طوری که زیاده از حد است. 447 00:21:48,510 --> 00:21:52,200 >> باز هم، یک روش خوب این است که به رفتن نیست مستقیما به کد C، اما 448 00:21:52,200 --> 00:21:54,280 شکستن آن را به یک زن و شوهر از مراحل. 449 00:21:54,280 --> 00:21:58,400 اول، فکر می کنم در مورد منطق - دقیقا آنچه که از شما می خواهم به انجام - 450 00:21:58,400 --> 00:22:00,620 و درک همه از گام برای رسیدن به این مشکل است. 451 00:22:00,620 --> 00:22:04,410 نه در C، فقط در برخی شبه، و یا حتی یک مدل ذهنی از 452 00:22:04,410 --> 00:22:06,030 چه خبر است. 453 00:22:06,030 --> 00:22:10,050 >> بعد، وقتی شبه پایین، درک چگونگی شبه 454 00:22:10,050 --> 00:22:14,600 نقشه ها بر روی ابزار و چیزهایی که ما کرده ایم طرز استفاده از در C. 455 00:22:14,600 --> 00:22:19,070 >> و در نهایت، هنگامی که شما تمام است که با هم، شما می توانید مشکل کد. 456 00:22:19,070 --> 00:22:23,370 نگاهی به 5 تا 10 دقیقه به کار بر روی این مشکل است. 457 00:22:23,370 --> 00:22:25,800 من دستورالعمل را قرار داده را به بالا و در یک ثانیه. 458 00:22:25,800 --> 00:22:27,990 و پس از آن ما قصد داریم تا بیش از شبه، و کد 459 00:22:27,990 --> 00:22:29,230 آن را به عنوان یک گروه زندگی می کنند. 460 00:22:29,230 --> 00:22:31,640 >> اگر شما هر گونه سوال در حالی که شما کار بر روی این، تمایل به افزایش 461 00:22:31,640 --> 00:22:34,260 دست خود را، و من خواهد آمد در اطراف و آنها را پاسخ دهد. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> STUDENT 7: آیا من می توانم کش رفتن یک تکه کاغذ؟ 464 00:22:39,330 --> 00:22:41,537 >> JASON HIRSCHHORN: چه خبر؟ 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [تایپ SOUNDS] 467 00:26:48,043 --> 00:26:48,730 >> JASON HIRSCHHORN: OK. 468 00:26:48,730 --> 00:26:51,710 اجازه دهید در طول شبه اول، و سپس من شما را زن و شوهر بیشتر را 469 00:26:51,710 --> 00:26:52,960 دقیقه به پایان برنامه نویسی. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> چه کسی می خواهم به من شروع کردن با خط اول 472 00:26:58,650 --> 00:27:00,030 شبه برای این تابع؟ 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> STUDENT 8: چک کنید تا مطمئن شوید که شما دو فایل داده شد. 475 00:27:05,740 --> 00:27:06,990 >> JASON HIRSCHHORN: OK. 476 00:27:06,990 --> 00:27:21,270 477 00:27:21,270 --> 00:27:22,990 و اگر ما نیست؟ 478 00:27:22,990 --> 00:27:25,974 >> STUDENT 8: من می خواهم 0 بازگشت. 479 00:27:25,974 --> 00:27:27,872 >> JASON HIRSCHHORN: باید به بازگشت ما 0؟ 480 00:27:27,872 --> 00:27:30,182 >> STUDENT 8: بازگشت - 481 00:27:30,182 --> 00:27:30,650 نبلرس. 482 00:27:30,650 --> 00:27:30,850 متأسفم. 483 00:27:30,850 --> 00:27:31,210 >> JASON HIRSCHHORN: آره. 484 00:27:31,210 --> 00:27:32,710 احتمالا نه 0. 485 00:27:32,710 --> 00:27:34,680 از آنجا که 0 به معنی همه چیز خوب بود. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 به طوری که اولین خط است از شبه. 488 00:27:36,730 --> 00:27:38,715 چه کسی خط دوم از شبه؟ 489 00:27:38,715 --> 00:27:40,630 >> STUDENT 9: هر دو فایل باز؟ 490 00:27:40,630 --> 00:27:41,880 >> JASON HIRSCHHORN: باز کردن هر دو فایل. 491 00:27:41,880 --> 00:27:49,970 492 00:27:49,970 --> 00:27:50,920 OK؟ 493 00:27:50,920 --> 00:27:52,850 >> STUDENT 10: بررسی کنید ببینید در صورتی که فایل NULL است؟ 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> JASON HIRSCHHORN: چک کنید تا مطمئن مطمئن باشید نه NULL می باشد. 496 00:28:12,580 --> 00:28:15,800 همانطور که به کنار - 497 00:28:15,800 --> 00:28:17,540 بریده بریده 0 - 498 00:28:17,540 --> 00:28:18,887 NULL است؟ 499 00:28:18,887 --> 00:28:20,080 >> STUDENT 11: شماره 500 00:28:20,080 --> 00:28:21,190 >> JASON HIRSCHHORN: به NULL نیست. 501 00:28:21,190 --> 00:28:23,400 است که نابودگر NULL نامیده می شود. 502 00:28:23,400 --> 00:28:25,580 این در واقع تنها با یک ل نوشته. 503 00:28:25,580 --> 00:28:28,580 بنابراین چک کردن چیزی در برابر آن - که در واقع یک شخصیت - 504 00:28:28,580 --> 00:28:31,710 بنابراین چک کردن چیزی در برابر آن است نه همان چک کنید تا از در 505 00:28:31,710 --> 00:28:32,690 برابر با NULL. 506 00:28:32,690 --> 00:28:34,100 >> و برخی از مردم - 507 00:28:34,100 --> 00:28:36,040 در آزمونها و مشکل خود را مجموعه - کردم 508 00:28:36,040 --> 00:28:36,890 دو تا از آن اشتباه گرفته شود. 509 00:28:36,890 --> 00:28:38,830 اما دو نفر از کسانی که می در واقع متفاوت است. 510 00:28:38,830 --> 00:28:40,220 یکی به پایان می رسد یک رشته - 511 00:28:40,220 --> 00:28:43,210 یک اشاره گر به 0 است. 512 00:28:43,210 --> 00:28:46,490 >> STUDENT 12: چرا نمی خواهد شما برای بررسی مطمئن شوید که فایل ها NULL نمی 513 00:28:46,490 --> 00:28:48,670 قبل از شما آنها را باز کنید؟ 514 00:28:48,670 --> 00:28:54,772 >> موجب صرفه جویی در پس باز: JASON HIRSCHHORN چیزی که در فایل. 515 00:28:54,772 --> 00:28:57,780 و اگر شما بروید به اینجا - 516 00:28:57,780 --> 00:28:59,520 بنابراین این خط - fopen - 517 00:28:59,520 --> 00:29:05,300 به شما یک آدرس و ذخیره را آن آدرس را در فایل اگر آن کار می کند. 518 00:29:05,300 --> 00:29:07,650 اگر آن کار نمی کند، آن را به خواهد NULL ذخیره - 519 00:29:07,650 --> 00:29:08,020 >> STUDENT 12: اوه. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 به شما کردم. 522 00:29:08,500 --> 00:29:09,050 >> JASON HIRSCHHORN: در فایل. 523 00:29:09,050 --> 00:29:11,990 بنابراین شما می توانید برای NULL بررسی قبل از شما آنها را باز کرده اید. 524 00:29:11,990 --> 00:29:13,520 NULL به معنی چیزی نبود به درستی کار می کنند. 525 00:29:13,520 --> 00:29:18,030 526 00:29:18,030 --> 00:29:18,740 OK. 527 00:29:18,740 --> 00:29:22,590 بنابراین بررسی کنید تا مطمئن شوید نه است؟ 528 00:29:22,590 --> 00:29:23,200 و یا هستند؟ 529 00:29:23,200 --> 00:29:23,770 چه فکر می کنم ما؟ 530 00:29:23,770 --> 00:29:24,310 ما به سراغ آن میرویم. 531 00:29:24,310 --> 00:29:24,520 >> STUDENT 13: آیا. 532 00:29:24,520 --> 00:29:25,020 >> JASON HIRSCHHORN: آیا؟ 533 00:29:25,020 --> 00:29:25,930 نه است؟ 534 00:29:25,930 --> 00:29:26,350 >> STUDENT 13: آیا. 535 00:29:26,350 --> 00:29:26,390 >> JASON HIRSCHHORN: OK. 536 00:29:26,390 --> 00:29:28,510 ما به نظر می رسد به برخی از اتفاق نظر بر روی آن. 537 00:29:28,510 --> 00:29:30,520 نه NULL است. 538 00:29:30,520 --> 00:29:32,250 OK، خط بعدی از شبه. 539 00:29:32,250 --> 00:29:33,600 چه کسی به من داده نشده است یک خط رتبهدهی نشده است؟ 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 ما برای شما صبر کنید. 542 00:29:38,295 --> 00:29:39,020 آره. 543 00:29:39,020 --> 00:29:40,895 >> STUDENT 14: شما باید به عنوان خوانده شده از فایل اول؟ 544 00:29:40,895 --> 00:29:42,290 >> JASON HIRSCHHORN: OK. 545 00:29:42,290 --> 00:29:46,240 >> STUDENT 14: یا ما با استفاده از fscanf و یا چیزی شبیه به آن فایل برای اولین بار؟ 546 00:29:46,240 --> 00:29:50,650 >> JASON HIRSCHHORN: بنابراین ما به خواهید خواندن از فایل اول و - 547 00:29:50,650 --> 00:29:51,900 اجازه دهید که این حق در اینجا. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 دفعات بازدید از فایل منبع. 550 00:30:01,880 --> 00:30:05,370 و پس از آن، ما چه چیزی داریم پس ما انجام می دهیم از فایل منبع به عنوان خوانده شده؟ 551 00:30:05,370 --> 00:30:06,620 شخص دیگری؟ 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> STUDENT 15: نوشتن به فایل قسمت را؟ 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> JASON HIRSCHHORN: ما به نوشتن فایل مقصد، و - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 چه چیز دیگری گم می کنیم؟ 558 00:30:30,030 --> 00:30:32,460 کسی دیگری که به من داده نشده است خط از کد رتبهدهی نشده است - از شبه. 559 00:30:32,460 --> 00:30:33,510 آره. 560 00:30:33,510 --> 00:30:36,540 >> STUDENT 16: شاید شما همیشه می توانید چک کنید آیا چیزی برای خواندن وجود دارد، 561 00:30:36,540 --> 00:30:37,970 مثل خط بعدی؟ 562 00:30:37,970 --> 00:30:39,550 که شبیه به خط بعدی می باشد، ببینید که اگر آن وجود دارد. 563 00:30:39,550 --> 00:30:40,660 >> [ELECTRONIC BEEP] 564 00:30:40,660 --> 00:30:41,095 >> JASON HIRSCHHORN: اوه. 565 00:30:41,095 --> 00:30:43,120 این نرم افزار یادداشتهای روزانه من است. 566 00:30:43,120 --> 00:30:43,580 آره؟ 567 00:30:43,580 --> 00:30:44,960 >> STUDENT 16: آره. 568 00:30:44,960 --> 00:30:48,940 >> JASON HIRSCHHORN: پس بدهد آن را به من یک بار. 569 00:30:48,940 --> 00:30:51,640 >> STUDENT 16: بررسی کنید که آیا وجود دارد هنوز هم یک خط بعدی از 570 00:30:51,640 --> 00:30:52,920 فایل منبع به عنوان خوانده شده. 571 00:30:52,920 --> 00:30:53,500 >> JASON HIRSCHHORN: OK. 572 00:30:53,500 --> 00:30:56,060 بنابراین ما خطوط خواندن نیست - بایت را مطالعه اینجا - 573 00:30:56,060 --> 00:30:57,590 اما شما درست است. 574 00:30:57,590 --> 00:31:00,040 ما می خواهیم به خواندن و نوشتن تا می بایت بیشتر وجود دارد. 575 00:31:00,040 --> 00:31:11,430 576 00:31:11,430 --> 00:31:11,735 OK. 577 00:31:11,735 --> 00:31:16,940 و به این ترتیب این واقعا باید فاصله دار است کمی، چرا که آنها در زیر وجود دارد. 578 00:31:16,940 --> 00:31:17,470 درست است؟ 579 00:31:17,470 --> 00:31:20,620 تا زمانی که ما از کلمه در ادامه متن هستید، ما قصد داریم به خواندن از فایل منبع و ارسال 580 00:31:20,620 --> 00:31:22,160 به فایل مقصد. 581 00:31:22,160 --> 00:31:24,510 >> و پس از آن، آنچه که گذشته خط شبه؟ 582 00:31:24,510 --> 00:31:26,380 کسی که داده نشده است به من چیزی نشده است. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> STUDENT 17: بستن فایل؟ 585 00:31:30,260 --> 00:31:31,510 >> JASON HIRSCHHORN: دقیقا. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 بستن فایل های. 588 00:31:37,450 --> 00:31:38,400 بنابراین شبه ما وجود دارد. 589 00:31:38,400 --> 00:31:41,870 من قصد دارم برای قرار دادن شبه به نرمافزاری gedit، و در چند دقیقه ما 590 00:31:41,870 --> 00:31:44,626 این با هم کد. 591 00:31:44,626 --> 00:33:55,280 592 00:33:55,280 --> 00:33:56,000 >> OK. 593 00:33:56,000 --> 00:33:58,290 اجازه دهید ما را به عنوان یک گروه آغاز شده است. 594 00:33:58,290 --> 00:33:59,940 Nishant، من فایل جدید من. 595 00:33:59,940 --> 00:34:01,130 من فقط این رو باز کردم. 596 00:34:01,130 --> 00:34:01,880 سند بدون عنوان 1. 597 00:34:01,880 --> 00:34:05,490 اولین چیزی که من باید انجام دهید چیست؟ 598 00:34:05,490 --> 00:34:07,040 >> NISHANT: شامل کتابخانه ها دارد؟ 599 00:34:07,040 --> 00:34:08,219 >> JASON HIRSCHHORN: OK. 600 00:34:08,219 --> 00:34:11,070 چه کتابخانه ها دارد؟ 601 00:34:11,070 --> 00:34:17,570 >> NISHANT: Stdio.h، stdlib.h، به اعتقاد من؟ 602 00:34:17,570 --> 00:34:18,000 >> JASON HIRSCHHORN: OK. 603 00:34:18,000 --> 00:34:21,592 stdlib برای چیست؟ 604 00:34:21,592 --> 00:34:23,010 >> NISHANT: من را فراموش کرده. 605 00:34:23,010 --> 00:34:23,219 >> JASON HIRSCHHORN: OK. 606 00:34:23,219 --> 00:34:24,179 بنابراین شامل stdio. 607 00:34:24,179 --> 00:34:28,630 من حتی قبل از اینکه باید چه کار شروع من برنامه نویسی؟ 608 00:34:28,630 --> 00:34:29,710 >> NISHANT: نوشتن یک ضربه سر؟ 609 00:34:29,710 --> 00:34:31,830 >> JASON HIRSCHHORN: چگونه آن رنگ را دریافت کنم؟ 610 00:34:31,830 --> 00:34:34,060 >> [INTERPOSING صداهای] 611 00:34:34,060 --> 00:34:35,040 >> NISHANT: چگونه می توانم آن را به شما رنگ؟ 612 00:34:35,040 --> 00:34:38,060 >> JASON HIRSCHHORN: چگونه آیا رنگ من برنامه نویسی؟ 613 00:34:38,060 --> 00:34:38,570 >> NISHANT: من نمی دانم. 614 00:34:38,570 --> 00:34:38,830 آه. 615 00:34:38,830 --> 00:34:39,389 ذخیره کنید. 616 00:34:39,389 --> 00:34:39,929 >> JASON HIRSCHHORN: ذخیره. 617 00:34:39,929 --> 00:34:40,270 بله. 618 00:34:40,270 --> 00:34:41,760 من باید آن را به عنوان یک ج را نجات دهد. 619 00:34:41,760 --> 00:34:46,239 پس از آن بر روی دسکتاپ به عنوان cp.c. نجات 620 00:34:46,239 --> 00:34:47,280 شیرین. 621 00:34:47,280 --> 00:34:51,199 و اگر من می خواهم به سبک کامل امتیاز، باید چه کار کنم 622 00:34:51,199 --> 00:34:53,085 شامل در بالای؟ 623 00:34:53,085 --> 00:34:58,390 >> NISHANT: شما می توانید نام خود، نام ارسال از برنامه و هدف 624 00:34:58,390 --> 00:34:59,640 از برنامه و همچنین؟ 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> JASON HIRSCHHORN: به نظر می رسد خوب است. 627 00:35:10,040 --> 00:35:10,470 عالی. 628 00:35:10,470 --> 00:35:12,940 بنابراین شما ما را به کمال را شروع کرده است. 629 00:35:12,940 --> 00:35:13,720 # شامل - 630 00:35:13,720 --> 00:35:15,365 ما نیز به شما ارسال - 631 00:35:15,365 --> 00:35:30,050 632 00:35:30,050 --> 00:35:30,870 OK. 633 00:35:30,870 --> 00:35:33,520 بنابراین من فکر می کنم من همه را به رفتن. 634 00:35:33,520 --> 00:35:38,003 چه کسی اولین خط از کد را برای من - و یا در اولین خط کد است که 635 00:35:38,003 --> 00:35:41,280 آن را به برآورده اول ما اظهار نظر در شبه؟ 636 00:35:41,280 --> 00:35:41,985 شما. 637 00:35:41,985 --> 00:35:48,780 >> STUDENT 18: باید آن را از نوع int است تعداد آنها، و سپس کاراکتر * argv؟ 638 00:35:48,780 --> 00:35:49,490 >> JASON HIRSCHHORN: من فکر می کنم حق با شماست. 639 00:35:49,490 --> 00:35:56,270 اجازه دهید آن را تغییر دهید به اعضای هیات تحریریه اصلی، پرانتز باز، argc هوشمند، کاما، کاراکتر * argv؟ 640 00:35:56,270 --> 00:35:57,150 که می خواهم؟ 641 00:35:57,150 --> 00:35:57,410 >> STUDENT 18: براکت. 642 00:35:57,410 --> 00:35:58,260 >> JASON HIRSCHHORN: براکت. 643 00:35:58,260 --> 00:35:59,860 براکت باز، براکت نزدیک، پدر و مادر نزدیک است. 644 00:35:59,860 --> 00:36:00,240 کامل. 645 00:36:00,240 --> 00:36:02,160 در حال حاضر من می تواند استدلال خط فرمان است. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 اطمینان از ما با توجه به در حال دو فایل. 648 00:36:04,250 --> 00:36:07,905 شما می توانید به من که نیز هست. 649 00:36:07,905 --> 00:36:09,180 >> STUDENT 18: اگر تعداد آنها - 650 00:36:09,180 --> 00:36:11,060 این یک برابر نیست 3. 651 00:36:11,060 --> 00:36:14,360 >> JASON HIRSCHHORN: اگر پرانتز باز تعداد آنها برابر نیست 3؟ 652 00:36:14,360 --> 00:36:16,970 >> STUDENT 18: آره، تو بازگشت 1 و یا هر چیزی. 653 00:36:16,970 --> 00:36:17,460 >> JASON HIRSCHHORN: متاسفم. 654 00:36:17,460 --> 00:36:19,120 >> STUDENT 18: بازگشت 1 و یا هر چیزی. 655 00:36:19,120 --> 00:36:20,270 >> JASON HIRSCHHORN: بازگشت 1. 656 00:36:20,270 --> 00:36:22,230 OK؟ 657 00:36:22,230 --> 00:36:22,970 بزرگ. 658 00:36:22,970 --> 00:36:24,290 هر دو فایل را باز کنید. 659 00:36:24,290 --> 00:36:26,160 چه کسی می تواند به من کمک کند هر دو فایل را باز کنید؟ 660 00:36:26,160 --> 00:36:28,125 چه کسی به من کد داده نشده است؟ 661 00:36:28,125 --> 00:36:31,510 662 00:36:31,510 --> 00:36:32,320 کورت؟ 663 00:36:32,320 --> 00:36:36,145 >> کورت: پس همه کلاه منبع ستاره F-I-L-E. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> JASON HIRSCHHORN: من قصد دارم را از حروف صدادار است. 666 00:36:40,920 --> 00:36:41,570 کسانی که سرد هستند. 667 00:36:41,570 --> 00:36:42,716 آن را مانند وبلاگ Tumblr است. 668 00:36:42,716 --> 00:36:44,610 >> STUDENT 18: برابر fopen - 669 00:36:44,610 --> 00:36:46,612 >> JASON HIRSCHHORN: برابر fopen؟ 670 00:36:46,612 --> 00:36:49,870 >> STUDENT 18: پرانتز باز، argv را، براکت باز. 671 00:36:49,870 --> 00:36:50,055 >> JASON HIRSCHHORN: صبر کنید. 672 00:36:50,055 --> 00:36:50,240 متأسفم. 673 00:36:50,240 --> 00:36:51,050 پرانتز باز. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> STUDENT 18: آره. 676 00:36:53,080 --> 00:36:55,110 و argv زیر 1. 677 00:36:55,110 --> 00:36:55,860 >> JASON HIRSCHHORN: زیر 1؟ 678 00:36:55,860 --> 00:36:56,140 >> STUDENT 18: آره. 679 00:36:56,140 --> 00:36:58,540 و argv براکت باز 1 - 680 00:36:58,540 --> 00:36:59,730 بله. 681 00:36:59,730 --> 00:37:06,470 و پس از آن با کاما از هم، و سپس باز دو نقل قول، R، دو نقل قول، 682 00:37:06,470 --> 00:37:08,250 پرانتز بسته، نقطه و ویرگول بدین. 683 00:37:08,250 --> 00:37:09,450 >> JASON HIRSCHHORN: شیرین. 684 00:37:09,450 --> 00:37:10,950 و آنچه در مورد یکی دیگر؟ 685 00:37:10,950 --> 00:37:16,030 >> STUDENT 18: خیلی مشابه است، اما به جای از S-R-C، شما می خواهم آن را به D-S-T تماس بگیرید. 686 00:37:16,030 --> 00:37:17,060 >> JASON HIRSCHHORN: دیگه! 687 00:37:17,060 --> 00:37:17,772 من دوست دارم که. 688 00:37:17,772 --> 00:37:20,010 >> STUDENT 18: فقط D-S-T. آره. 689 00:37:20,010 --> 00:37:23,057 و پس از آن و argv، براکت باز، 2. 690 00:37:23,057 --> 00:37:23,200 آره. 691 00:37:23,200 --> 00:37:26,720 و پس از آن عرض به جای R. 692 00:37:26,720 --> 00:37:27,620 آره. 693 00:37:27,620 --> 00:37:29,630 >> JASON HIRSCHHORN: بزرگ. 694 00:37:29,630 --> 00:37:31,360 زن و شوهر بعد از خط. 695 00:37:31,360 --> 00:37:34,040 همچنین، اگر کسی چیزهایی برای اضافه کردن به خطوط است که ما انجام داده ایم، در صورت تمایل به 696 00:37:34,040 --> 00:37:35,690 اضافه کردن آن نیز هست. 697 00:37:35,690 --> 00:37:37,520 بررسی کنید تا مطمئن شوید نه NULL است. 698 00:37:37,520 --> 00:37:41,450 چه کسی می تواند به من کد من نیاز به دادن راضی است که خط از شبه؟ 699 00:37:41,450 --> 00:37:44,430 700 00:37:44,430 --> 00:37:45,870 آرچر. 701 00:37:45,870 --> 00:37:58,645 >> ARCHER: اگر SRC برابر برابر NULL یا DST برابر برابر 702 00:37:58,645 --> 00:38:04,590 NULL، و سپس شما بازگشت - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> JASON HIRSCHHORN: چه؟ 705 00:38:07,976 --> 00:38:08,890 >> ARCHER: بازگشت 2؟ 706 00:38:08,890 --> 00:38:09,760 >> JASON HIRSCHHORN: بازگشت 2. 707 00:38:09,760 --> 00:38:14,400 بنابراین اگر SRC پرانتز باز برابر است با برابر با NULL، و یا - 708 00:38:14,400 --> 00:38:15,590 هر آنچه که thing's - لوله؟ 709 00:38:15,590 --> 00:38:16,346 لوله؟ 710 00:38:16,346 --> 00:38:17,140 ما آن را لوله تماس بگیرید. 711 00:38:17,140 --> 00:38:22,340 لوله، لوله، DST برابر برابر NULL، بازگشت 2. 712 00:38:22,340 --> 00:38:23,900 OK؟ 713 00:38:23,900 --> 00:38:26,060 تا زمانی که ما از بایت هستید - 714 00:38:26,060 --> 00:38:29,820 ما مرتب کردن بر اساس بیش از این مرحله از قلم بخش شبه به رفتن به اینجا. 715 00:38:29,820 --> 00:38:31,970 >> اما تا زمانی که ما از بایت هستید - چه چیزی است که صدا مانند؟ 716 00:38:31,970 --> 00:38:34,680 چه نوع ساختار C - 717 00:38:34,680 --> 00:38:36,160 اما من ساختار کلمه استفاده نمی کند، از آنجا که ما در حال رفتن به شروع به استفاده از 718 00:38:36,160 --> 00:38:37,350 که در سایر موارد - 719 00:38:37,350 --> 00:38:39,495 اما ابزار C است که صدا مانند؟ 720 00:38:39,495 --> 00:38:39,970 >> STUDENT 19: A حلقه. 721 00:38:39,970 --> 00:38:40,980 >> JASON HIRSCHHORN: A حلقه. 722 00:38:40,980 --> 00:38:43,060 به نظر می رسد حلقه. 723 00:38:43,060 --> 00:38:49,670 پس چه کسی می تواند به من خط اول را کد حلقه در اینجا؟ 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 شما همچنین می توانید انتخاب کنید که چه نوع از حلقه شما می خواهید، اگر شما به من بدهد 726 00:39:01,980 --> 00:39:03,215 این خط از کد. 727 00:39:03,215 --> 00:39:04,150 سه نوع وجود دارد. 728 00:39:04,150 --> 00:39:06,530 شما دریافت می کنید انتخاب کنید. 729 00:39:06,530 --> 00:39:08,080 من یکی از آن نشان می دهد. 730 00:39:08,080 --> 00:39:08,410 AVI. 731 00:39:08,410 --> 00:39:09,230 کدام یک را می خواهید؟ 732 00:39:09,230 --> 00:39:09,960 >> AVI: FOR. 733 00:39:09,960 --> 00:39:11,460 >> JASON HIRSCHHORN: FOR. 734 00:39:11,460 --> 00:39:15,180 >> AVI: اعضای هیات من برابر صفر است. 735 00:39:15,180 --> 00:39:17,360 >> JASON HIRSCHHORN: OK. 736 00:39:17,360 --> 00:39:18,570 >> AVI: این بخش من مطمئن هستم که در مورد نیستم. 737 00:39:18,570 --> 00:39:29,080 اما من کمتر از اندازه است منبع ستاره؟ 738 00:39:29,080 --> 00:39:31,128 خیلی مطمئن نیستم. 739 00:39:31,128 --> 00:39:32,580 >> JASON HIRSCHHORN: OK. 740 00:39:32,580 --> 00:39:35,870 >> AVI: از آنجا که شما می خواهید اندازه از فایل، درست است؟ 741 00:39:35,870 --> 00:39:41,090 >> JASON HIRSCHHORN: پس این احتمالا نمی خواهد اندازه واقعی به ما 742 00:39:41,090 --> 00:39:43,010 فایل به بایت. 743 00:39:43,010 --> 00:39:47,680 پس چرا کار می کنیم؟ 744 00:39:47,680 --> 00:39:48,810 نوع دیگری از حلقه چیست؟ 745 00:39:48,810 --> 00:39:50,180 یا اینکه ما باید با حلقه FOR چوب؟ 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> STUDENT 20: آیا می توانید یک حلقه WHILE؟ 748 00:39:57,900 --> 00:40:01,350 و پس از آن، آنچه را که می خواهم انجام you'd است - 749 00:40:01,350 --> 00:40:03,930 چرا که * کاراکتر برای فایل. 750 00:40:03,930 --> 00:40:07,950 بنابراین اگر ما فقط حفظ افزایش است که تا زمانی که ما می خواهم شخصیت NULL در پیدا کردن 751 00:40:07,950 --> 00:40:08,500 در پایان آن؟ 752 00:40:08,500 --> 00:40:11,130 یا نه، این است که چگونه فایل کار می کند؟ 753 00:40:11,130 --> 00:40:14,300 >> JASON HIRSCHHORN: بنابراین ما می توانیم نگه دارید افزایش کاراکتر * 754 00:40:14,300 --> 00:40:16,340 تا زمانی که ما پیدا NULL - 755 00:40:16,340 --> 00:40:18,580 >> STUDENT 20: اساسا ادامه دهم شخصیت های شخصیت تا زمانی که ما آمار 756 00:40:18,580 --> 00:40:21,250 در پایان فایل. 757 00:40:21,250 --> 00:40:21,600 >> JASON HIRSCHHORN: بله. 758 00:40:21,600 --> 00:40:22,560 بنابراین این چیزی است که ما می خواهیم انجام دهیم. 759 00:40:22,560 --> 00:40:24,545 ما می خواهیم برای حفظ خواندن، شخصیت با شخصیت، تا زمانی که ما برای به دست آوردن 760 00:40:24,545 --> 00:40:25,080 در پایان فایل. 761 00:40:25,080 --> 00:40:25,375 >> STUDENT 20: آره. 762 00:40:25,375 --> 00:40:25,860 یافتن - 763 00:40:25,860 --> 00:40:28,540 چه پایان و یا علامت توقف است در پایان یک فایل متنی. 764 00:40:28,540 --> 00:40:28,620 >> JASON HIRSCHHORN: OK. 765 00:40:28,620 --> 00:40:30,140 بنابراین، هنگامی که ما به انتهای فایل دریافت کنید - چگونه ما می دانیم که ما رسیده ایم 766 00:40:30,140 --> 00:40:33,200 پایان یک فایل؟ 767 00:40:33,200 --> 00:40:34,710 اگر من خواستار - 768 00:40:34,710 --> 00:40:35,910 پس بیایید قدم به عقب. 769 00:40:35,910 --> 00:40:37,550 یک تابع چیست؟ 770 00:40:37,550 --> 00:40:39,360 اجازه دهید به این خط راست صفحه بروید. 771 00:40:39,360 --> 00:40:40,630 دفعات بازدید از فایل منبع. 772 00:40:40,630 --> 00:40:41,880 چه کسی می تواند به من که خط از کد را؟ 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> STUDENT 21: Fscanf؟ 775 00:40:47,590 --> 00:40:49,110 >> JASON HIRSCHHORN: Fscanf. 776 00:40:49,110 --> 00:40:49,510 OK. 777 00:40:49,510 --> 00:40:52,240 چه می شود اگر من می خواهم به عنوان خوانده شده، بسیار به طور خاص، یک بایت؟ 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> STUDENT 21: من نمی دانم. 780 00:40:56,860 --> 00:40:57,110 >> JASON HIRSCHHORN: OK. 781 00:40:57,110 --> 00:40:59,380 حتی ساده تر از fscanf - چه شده است - 782 00:40:59,380 --> 00:41:01,890 من می خواهم از یک فایل منبع به عنوان خوانده شده؟ 783 00:41:01,890 --> 00:41:03,720 خوانده شده از یک فایل منبع. 784 00:41:03,720 --> 00:41:04,850 یک تابع چیست - آره. 785 00:41:04,850 --> 00:41:05,380 >> STUDENT 22: این از fread است؟ 786 00:41:05,380 --> 00:41:06,070 >> JASON HIRSCHHORN: از fread. 787 00:41:06,070 --> 00:41:07,550 من فکر می کنم اجازه دهید با چوب که در حال حاضر. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 چه نوع از استدلال می کند از fread می برد؟ 790 00:41:13,650 --> 00:41:17,410 >> STUDENT 22: احتمالا نوع فایل، و پس از آن محل در فایل؟ 791 00:41:17,410 --> 00:41:19,550 >> JASON HIRSCHHORN: چه می توانید در اینجا نوع I به شکل از چه نوع استدلال 792 00:41:19,550 --> 00:41:20,950 از fread طول می کشد؟ 793 00:41:20,950 --> 00:41:23,710 >> دانش آموزان متعدد: انسان از fread. 794 00:41:23,710 --> 00:41:24,740 >> JASON HIRSCHHORN: مرد از fread و fwrite. 795 00:41:24,740 --> 00:41:25,980 به نظر می رسد مانند آنها آویزان از با هم. 796 00:41:25,980 --> 00:41:29,589 پس از fread که چگونه بسیاری از استدلال ها طول می کشد؟ 797 00:41:29,589 --> 00:41:30,920 >> STUDENT 23: چهار. 798 00:41:30,920 --> 00:41:32,690 >> JASON HIRSCHHORN: طول می کشد چهار استدلال. 799 00:41:32,690 --> 00:41:41,100 طول می کشد تا یک اشاره گر، اندازه، و چیزی است که عجیب و غریب، و برخی از فایل. 800 00:41:41,100 --> 00:41:42,000 OK؟ 801 00:41:42,000 --> 00:41:43,990 بیایید در مورد آن خوانده شده در اینجا ببینید. 802 00:41:43,990 --> 00:41:49,370 "تابع از fread بار خوانده شده N memb عناصر داده، بایت هر اندازه 803 00:41:49,370 --> 00:41:53,840 طولانی، از جریان با اشاره به توسط جریان، ذخیره سازی آنها را در محل 804 00:41:53,840 --> 00:41:56,170 داده های اشاره گر. " 805 00:41:56,170 --> 00:41:57,960 >> بنابراین چهار استدلال. 806 00:41:57,960 --> 00:42:04,510 چرا من فقط کپی این، و آن را در اینجا وارد کنید. 807 00:42:04,510 --> 00:42:10,060 808 00:42:10,060 --> 00:42:10,770 OK. 809 00:42:10,770 --> 00:42:13,673 پس چه کسی می تواند شروع به پر کردن این استدلال برای من؟ 810 00:42:13,673 --> 00:42:15,840 AVI. 811 00:42:15,840 --> 00:42:17,720 >> AVI: نگاهی از درجه اعتبار ساقط. 812 00:42:17,720 --> 00:42:20,530 با قرار دادن فقط SRC. 813 00:42:20,530 --> 00:42:23,142 نگاهی از اشاره گر و ستاره. 814 00:42:23,142 --> 00:42:26,102 SRC قرار دهید. 815 00:42:26,102 --> 00:42:27,050 پس از آن - 816 00:42:27,050 --> 00:42:28,500 >> JASON HIRSCHHORN: من می خواهم برای متوقف کردن شما وجود دارد، چرا که اشتباه است. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 شما راست با SRC است، اما SRC که در آن باید برود؟ 819 00:42:34,710 --> 00:42:35,960 >> [INTERPOSING صداهای] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> JASON HIRSCHHORN: باید بیش از اینجا. 822 00:42:41,610 --> 00:42:43,790 این SRC است - SRC ما یک نوع است. 823 00:42:43,790 --> 00:42:44,610 اجازه دهید در اینجا. 824 00:42:44,610 --> 00:42:49,610 این است که برای یک نوع FILE * درخواست ما در واقع معمولا آنها را مانند که ببینید. 825 00:42:49,610 --> 00:42:57,630 پس این است که برای یک آرگومان از درخواست نوع فایل * به نام جریان است که SRC. 826 00:42:57,630 --> 00:42:58,480 OK؟ 827 00:42:58,480 --> 00:43:00,410 >> چه اندازه از کارها را انجام ما می خواهیم به عنوان خوانده شده؟ 828 00:43:00,410 --> 00:43:03,340 من این در به توضیحات مشکل است. 829 00:43:03,340 --> 00:43:04,370 >> STUDENT 24: یک بایت در یک زمان. 830 00:43:04,370 --> 00:43:05,340 >> JASON HIRSCHHORN: یک بایت. 831 00:43:05,340 --> 00:43:08,205 یک بایت چقدر است؟ 832 00:43:08,205 --> 00:43:11,642 اندازه آن در بایت است، چه خوب، می تواند من را به سمت راست وجود دارد؟ 833 00:43:11,642 --> 00:43:12,910 >> STUDENT 25: یک. 834 00:43:12,910 --> 00:43:14,730 >> JASON HIRSCHHORN: یک. 835 00:43:14,730 --> 00:43:17,020 راست. 836 00:43:17,020 --> 00:43:19,940 اندازه آن در واحد بایت است، بنابراین 1 1 بایت است. 837 00:43:19,940 --> 00:43:22,284 چگونه بسیاری از من می خواهم به خواندن در یک زمان. 838 00:43:22,284 --> 00:43:23,520 >> STUDENT 26: یکی؟ 839 00:43:23,520 --> 00:43:24,270 >> JASON HIRSCHHORN: یک چیز. 840 00:43:24,270 --> 00:43:28,540 من می خواهم به عنوان خوانده شده یک چیز از اندازه 1، یک گاز در یک زمان. 841 00:43:28,540 --> 00:43:32,110 و در جایی که انجام این کار را من، یک بار من آن را بخوانید؟ 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> STUDENT 27: مقصد؟ 844 00:43:36,510 --> 00:43:39,270 >> JASON HIRSCHHORN: بنابراین من نمی توانم قرار داده آن را مستقیما به مقصد. 845 00:43:39,270 --> 00:43:40,800 >> STUDENT 28: شما تو قرار داده است آن را به یک اشاره گر سوم؟ 846 00:43:40,800 --> 00:43:41,780 >> STUDENT 27: به مقصد. 847 00:43:41,780 --> 00:43:42,270 >> JASON HIRSCHHORN: OK. 848 00:43:42,270 --> 00:43:42,630 آره. 849 00:43:42,630 --> 00:43:46,820 >> STUDENT 29: شما می توانید چیزی به اعلام به عنوان یک ذخیره سازی موقت قبل از آن عمل می کنند. 850 00:43:46,820 --> 00:43:47,350 >> JASON HIRSCHHORN: OK. 851 00:43:47,350 --> 00:43:50,080 به من بده که. 852 00:43:50,080 --> 00:43:53,930 >> STUDENT 29: فایل دیگر اشاره گر، شاید؟ 853 00:43:53,930 --> 00:43:54,220 >> JASON HIRSCHHORN: OK. 854 00:43:54,220 --> 00:43:55,585 بنابراین این ستاره از درجه اعتبار ساقط است - 855 00:43:55,585 --> 00:43:57,750 آن یک ستاره از نوع درجه اعتبار ساقط است، بنابراین آن را نمی کند باید یک اشاره گر فایل. 856 00:43:57,750 --> 00:44:02,520 و اگر من خواندن یک بایت، که در آن می تواند یک جای خوب 857 00:44:02,520 --> 00:44:03,850 برای ذخیره یک بایت؟ 858 00:44:03,850 --> 00:44:04,660 >> STUDENT 29: یک آرایه؟ 859 00:44:04,660 --> 00:44:05,770 >> JASON HIRSCHHORN: یک آرایه. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 و چه چیز دیگری چیزی است که است فقط به اندازه یک بایت؟ 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> STUDENT 30: A * کاراکتر؟ 864 00:44:18,060 --> 00:44:18,530 >> STUDENT 29: آره. 865 00:44:18,530 --> 00:44:19,880 >> JASON HIRSCHHORN: A کاراکتر * است یک بایت نیست. 866 00:44:19,880 --> 00:44:20,440 >> STUDENT 29: A کاراکتر. 867 00:44:20,440 --> 00:44:21,810 >> JASON HIRSCHHORN: A کاراکتر یک بایت است. 868 00:44:21,810 --> 00:44:22,920 درست است؟ 869 00:44:22,920 --> 00:44:26,740 بنابراین اجازه دهید این بافر تماس بگیرید عمومی نام مورد استفاده برای این چیزها را به ذخیره 870 00:44:26,740 --> 00:44:27,910 چیزی به طور موقت. 871 00:44:27,910 --> 00:44:30,880 بنابراین من ایجاد یک بافر شده است. 872 00:44:30,880 --> 00:44:31,150 درست است؟ 873 00:44:31,150 --> 00:44:32,990 اما آن را از درجه اعتبار ساقط *. 874 00:44:32,990 --> 00:44:38,660 شاید حق با شما باشد، که آن را باید یک بافر و اندازه 0 باشد. 875 00:44:38,660 --> 00:44:41,070 بنابراین این فروشگاه یک - 876 00:44:41,070 --> 00:44:41,280 سمت راست. 877 00:44:41,280 --> 00:44:43,560 >> از آنجا که این حق در اینجا - کاراکتر بافر یک شخصیت است، اما 878 00:44:43,560 --> 00:44:45,110 این طول می کشد خالی * - 879 00:44:45,110 --> 00:44:45,870 یک اشاره گر. 880 00:44:45,870 --> 00:44:50,640 بنابراین من می تواند این کار را انجام و در حال حاضر بافر یک اشاره گر است. 881 00:44:50,640 --> 00:44:53,214 چه چیز دیگری می توانم انجام دهم؟ 882 00:44:53,214 --> 00:44:55,775 >> STUDENT 31: قرار دادن یک ستاره بعدی به char. 883 00:44:55,775 --> 00:44:58,380 >> JASON HIRSCHHORN: من می توانم ایجاد شده آن را به کاراکتر *. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 چیز دیگری که می تواند انجام دهد چیست؟ 886 00:45:03,131 --> 00:45:04,050 یا اجازه دهید با این یکی بروید. 887 00:45:04,050 --> 00:45:05,740 * کاراکتر بافر، چه خوب، من در قرار داده که اینجا هستید؟ 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> STUDENT 31: بافر. 890 00:45:09,310 --> 00:45:10,560 >> JASON HIRSCHHORN: بافر. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 بافر یک اشاره گر به کاراکتر است. 893 00:45:14,500 --> 00:45:19,480 و در آن مکان، ما در حال دادن یک بایت از چیزی است که ما را خوانده ام. 894 00:45:19,480 --> 00:45:19,980 آره. 895 00:45:19,980 --> 00:45:20,700 AVI. 896 00:45:20,700 --> 00:45:21,230 >> AVI: فقط یک سوال. 897 00:45:21,230 --> 00:45:24,440 آیا می خواهید به malloc بافر؟ 898 00:45:24,440 --> 00:45:25,930 >> JASON HIRSCHHORN: چه کسی می تواند پاسخ به این سوال؟ 899 00:45:25,930 --> 00:45:30,210 >> STUDENT 32: خب، این کار واقعا نقطه به نقطه هر چیزی در حال حاضر، پس - 900 00:45:30,210 --> 00:45:32,610 >> JASON HIRSCHHORN: اما انجام ما می خواهیم به آن malloc؟ 901 00:45:32,610 --> 00:45:35,600 >> STUDENT 32: اگر شما این کار را انجام داد که راه، من حدس می زنم، بله، چون شما می خواهم نیاز 902 00:45:35,600 --> 00:45:36,990 برخی از مکان آن را به نقطه را به. 903 00:45:36,990 --> 00:45:38,350 >> JASON HIRSCHHORN: آیا ما باید آن را malloc؟ 904 00:45:38,350 --> 00:45:40,580 >> STUDENT 33: اگر شما به استفاده از آن در خارج از حلقه. 905 00:45:40,580 --> 00:45:42,524 >> JASON HIRSCHHORN: آیا ما به رفتن استفاده از آن در خارج از حلقه؟ 906 00:45:42,524 --> 00:45:44,392 >> STUDENT 34: بله. 907 00:45:44,392 --> 00:45:44,860 >> STUDENT 35: صبر کن. 908 00:45:44,860 --> 00:45:46,980 آیا ما می خواهیم آن را اعلام در حلقه به فراتر از آن؟ 909 00:45:46,980 --> 00:45:50,100 >> JASON HIRSCHHORN: بنابراین من حدس می زنم ما برخی از شبه حلقه WHILE در اینجا که ما هستیم 910 00:45:50,100 --> 00:45:51,950 تلاش برای کشف کردن، که ما به بدست نشده است. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 ما لازم نیست به آن malloc. 913 00:45:56,010 --> 00:45:59,310 ما در اصلی در حال انجام است، آن را تنها رفتن است که در داخل این حلقه استفاده می شود. 914 00:45:59,310 --> 00:46:00,540 این کار نیاز به وجود خارج از این. 915 00:46:00,540 --> 00:46:02,340 >> بنابراین می توان آن را یک متغیر محلی است. 916 00:46:02,340 --> 00:46:03,925 شما باید یک اشاره گر به یک متغیر محلی است. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> STUDENT 36: اما این درست نیست با اشاره به هر چیزی. 919 00:46:09,590 --> 00:46:11,540 >> JASON HIRSCHHORN: نه، این طور نیست مقدار دهی اولیه به هر چیزی. 920 00:46:11,540 --> 00:46:12,790 اما ما قصد داریم به استفاده از آن را نیز. 921 00:46:12,790 --> 00:46:15,300 ما قصد داریم برای قرار دادن چیزی در این اولین بار است که ما از آن استفاده کنید. 922 00:46:15,300 --> 00:46:16,580 به طوری که OK به نظر می رسد. 923 00:46:16,580 --> 00:46:17,780 بنابراین ما malloc در اینجا لازم نیست. 924 00:46:17,780 --> 00:46:19,360 و من فکر می کنم آن را OK به عنوان است. 925 00:46:19,360 --> 00:46:24,350 926 00:46:24,350 --> 00:46:25,790 OK. 927 00:46:25,790 --> 00:46:27,190 ما خط از fread. 928 00:46:27,190 --> 00:46:28,490 اجازه دهید در خط بعدی. 929 00:46:28,490 --> 00:46:32,984 >> اگر ما می خواهیم برای نوشتن به یک فایل، چه است یک تابع خوب برای استفاده به انجام این کار؟ 930 00:46:32,984 --> 00:46:33,770 >> STUDENT 37: Fwrite؟ 931 00:46:33,770 --> 00:46:35,140 >> STUDENT 38: Fprintf؟ 932 00:46:35,140 --> 00:46:36,010 >> JASON HIRSCHHORN: Fprintf است. 933 00:46:36,010 --> 00:46:37,260 یکی دیگر چیست؟ 934 00:46:37,260 --> 00:46:37,680 >> STUDENT 39: Fwrite. 935 00:46:37,680 --> 00:46:38,510 >> JASON HIRSCHHORN: Fwrite. 936 00:46:38,510 --> 00:46:41,250 و برای اهداف ما، fwrite، که ما آن را در اینجا دیدم، است 937 00:46:41,250 --> 00:46:42,500 احتمالا انتخاب بهتر است. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 این متد چهار پارامتر دارد نیز هست. 940 00:46:53,950 --> 00:46:57,570 Nishant، می تواند به شما بدهد من استدلال؟ 941 00:46:57,570 --> 00:47:00,570 >> NISHANT: رفتن یکی از اولین را به بافر فقط. 942 00:47:00,570 --> 00:47:02,210 >> JASON HIRSCHHORN: OK. 943 00:47:02,210 --> 00:47:06,752 >> NISHANT: دومین فرد فقط برای رفتن به 1. 944 00:47:06,752 --> 00:47:09,510 یک سوم خواهد بود 1. 945 00:47:09,510 --> 00:47:11,470 و یک چهارم است برای رفتن به DST. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> JASON HIRSCHHORN: آیا کسی داشته هر گونه سوال در مورد این خط؟ 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 که به نظر می رسد خوب است. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 بنابراین در حال حاضر آن را مانند یک چیز ما به نظر می رسد از دست رفته - در واقع، اجازه دهید ارسال 952 00:47:34,250 --> 00:47:35,090 این خط گذشته است. 953 00:47:35,090 --> 00:47:36,300 بستن فایل های. 954 00:47:36,300 --> 00:47:38,880 چه کسی می تواند ما را تا پایان نوشتن این دو خط آخر؟ 955 00:47:38,880 --> 00:47:39,120 بله. 956 00:47:39,120 --> 00:47:39,850 با عرض پوزش، چیزی است که نام خود را؟ 957 00:47:39,850 --> 00:47:40,580 >> لوسی: لوسی. 958 00:47:40,580 --> 00:47:41,580 >> JASON HIRSCHHORN: لوسی. 959 00:47:41,580 --> 00:47:47,560 >> لوسی: SRC Fclose و پس از آن قسمت fclose. 960 00:47:47,560 --> 00:47:52,430 >> JASON HIRSCHHORN: Fclose، پرانتز باز، SRC، پرانتز بسته، نقطه و ویرگول بدین. 961 00:47:52,430 --> 00:47:53,680 و fclose - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 آره؟ 964 00:47:58,090 --> 00:48:01,710 >> لوسی: پرانتز باز، DST و پس از آن نقطه و ویرگول. 965 00:48:01,710 --> 00:48:02,520 >> JASON HIRSCHHORN: بزرگ. 966 00:48:02,520 --> 00:48:04,338 و آنچه که باید در پایان شامل I؟ 967 00:48:04,338 --> 00:48:05,210 >> لوسی: بازگشت 0. 968 00:48:05,210 --> 00:48:05,570 >> JASON HIRSCHHORN: بازگشت 0. 969 00:48:05,570 --> 00:48:06,820 آیا من به؟ 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 فقط یک سوال. 972 00:48:12,590 --> 00:48:14,957 آیا ما باید شامل بازگشت 0؟ 973 00:48:14,957 --> 00:48:16,240 >> دانش آموزان متعدد: شماره 974 00:48:16,240 --> 00:48:16,430 >> JASON HIRSCHHORN: شماره 975 00:48:16,430 --> 00:48:18,090 بخش اصلی آن را به طور خودکار اگر شما به پایان گرفتن. 976 00:48:18,090 --> 00:48:20,580 اما من فکر می کنم آن را به خوبی شامل آن صراحت. 977 00:48:20,580 --> 00:48:23,860 به ویژه هنگامی که ما در حال بازگشت دیگر چیزهایی که در طول برنامه. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 این چیزی است که ما در حال از دست رفته - 980 00:48:26,230 --> 00:48:28,520 در حالی که چه؟ 981 00:48:28,520 --> 00:48:31,630 چه کسی می تواند از برخی فکر می کنم - 982 00:48:31,630 --> 00:48:35,240 تا به برخی از چیزی که همه چیز می تواند در آن وجود دارد بروید؟ 983 00:48:35,240 --> 00:48:37,350 حتی اگر آن را فقط در برخی از شبه مانند زبان؟ 984 00:48:37,350 --> 00:48:41,330 >> چه هستند که ما واقعا - چه می خواهیم تا برای رفتن؟ 985 00:48:41,330 --> 00:48:41,980 آره، لوسی. 986 00:48:41,980 --> 00:48:43,240 >> لوسی: در انتهای فایل. 987 00:48:43,240 --> 00:48:44,990 >> JASON HIRSCHHORN: در انتهای فایل. 988 00:48:44,990 --> 00:48:49,280 بنابراین چه چیزی شما را با انتهای فایل چیست؟ 989 00:48:49,280 --> 00:48:50,955 >> لوسی: هنگامی که شما در رسیدن به پایان فایل، متوقف شود. 990 00:48:50,955 --> 00:48:51,240 >> JASON HIRSCHHORN: OK. 991 00:48:51,240 --> 00:48:53,460 بنابراین زمانی که ما رسیدن به انتهای فایل. 992 00:48:53,460 --> 00:48:56,893 چگونه ما می دانیم زمانی که ما رسیده ایم در پایان فایل؟ 993 00:48:56,893 --> 00:48:59,900 >> STUDENT 40: من فکر می کنم بافر خواهد شد به NULL تنظیم شده است. 994 00:48:59,900 --> 00:49:01,885 >> STUDENT 41: بافر اعلام شده است در داخل حلقه. 995 00:49:01,885 --> 00:49:03,670 >> JASON HIRSCHHORN: پس شما فکر می کنم بافر به NULL تنظیم شده است. 996 00:49:03,670 --> 00:49:05,850 چرا بافر تنظیم شود به NULL؟ 997 00:49:05,850 --> 00:49:10,420 >> STUDENT 40: از آنجا که در زمانی که شما از fread، شما در حال تلاش برای قرار دادن 998 00:49:10,420 --> 00:49:13,528 هیچ چیز به بافر شده است. 999 00:49:13,528 --> 00:49:13,980 >> JASON HIRSCHHORN: OK. 1000 00:49:13,980 --> 00:49:15,550 بنابراین شما فکر از fread - 1001 00:49:15,550 --> 00:49:19,000 زمانی که ما به پایان رسیده ام فایل، چیزی است که از fread کاری انجام دهید؟ 1002 00:49:19,000 --> 00:49:21,230 من فکر می کنم که سوال ما باید به شکل از. 1003 00:49:21,230 --> 00:49:21,960 چه از fread انجام دهید؟ 1004 00:49:21,960 --> 00:49:25,640 آیا این NULL در بافر قرار داده، و یا کاری می کند چیز دیگری است؟ 1005 00:49:25,640 --> 00:49:27,510 چگونه می توانیم چهره ای از آنچه در آن می کند؟ 1006 00:49:27,510 --> 00:49:28,190 >> STUDENT 42: مرد. 1007 00:49:28,190 --> 00:49:28,810 >> JASON HIRSCHHORN: مرد. 1008 00:49:28,810 --> 00:49:32,280 پس بیایید اینجا. 1009 00:49:32,280 --> 00:49:34,000 بازگشت ارزش. 1010 00:49:34,000 --> 00:49:39,620 در موفقیت، از fread و fwrite بازگشت تعداد آیتم های خوانده شده و یا نوشته شده است. 1011 00:49:39,620 --> 00:49:43,700 این تعداد برابر با تعداد بایت انتقال تنها زمانی که اندازه 1 است. 1012 00:49:43,700 --> 00:49:47,780 اگر خطا رخ می دهد، و یا پایان فایل رسیده است، مقدار برگردانده شده است 1013 00:49:47,780 --> 00:49:51,490 تعداد آیتم کوتاه و یا 0. 1014 00:49:51,490 --> 00:49:57,860 >> بنابراین برای اهداف ما، اگر رسد از fread در پایان فایل، و بار خوانده شده از 1015 00:49:57,860 --> 00:50:02,100 در انتهای فایل، هیچ چیز سمت چپ وجود دارد به خواندن، چه چیزی را به بازگشت؟ 1016 00:50:02,100 --> 00:50:03,290 >> STUDENT 43: صفر؟ 1017 00:50:03,290 --> 00:50:04,540 >> JASON HIRSCHHORN: چه؟ 1018 00:50:04,540 --> 00:50:05,300 >> STUDENT 43: صفر؟ 1019 00:50:05,300 --> 00:50:05,690 >> JASON HIRSCHHORN: صفر. 1020 00:50:05,690 --> 00:50:06,940 آن را به بازگشت به صفر. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 بنابراین ما می دانیم که از fread، زمانی که ما کرده ایم به انتهای فایل است، رفتن 1023 00:50:13,010 --> 00:50:13,690 به صفر بازگشت. 1024 00:50:13,690 --> 00:50:17,460 چگونه می توان استفاده می کنیم که به نفع ما؟ 1025 00:50:17,460 --> 00:50:21,733 >> AVI: شما می توانید یک متغیر در خارج از اعلام از حلقه به نام چک. 1026 00:50:21,733 --> 00:50:27,040 اگر چک برابر - 1027 00:50:27,040 --> 00:50:28,190 در حال حاضر - یک. 1028 00:50:28,190 --> 00:50:28,920 >> JASON HIRSCHHORN: OK. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: و پس از آن شما می توانید یک IF قرار داده بیانیه درست بعد از fread و گفت اگر 1030 00:50:38,050 --> 00:50:42,600 از fread برابر با صفر - 1031 00:50:42,600 --> 00:50:43,850 هیچ. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> JASON HIRSCHHORN: چه کسی می توانید AVI را کمک کند؟ 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: ارزش چیست توسط از fread می گردد؟ 1036 00:50:52,410 --> 00:50:54,060 >> JASON HIRSCHHORN: ما فقط بیش از آن رفت. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: چگونه می توانم آن را به شما نشان می دهد؟ 1038 00:50:55,450 --> 00:50:57,190 >> JASON HIRSCHHORN: بنابراین آن را می گرداند - اجازه دهید نگاه کردن در اینجا - آن را می گرداند 1039 00:50:57,190 --> 00:50:59,340 size_t، که اساسا یک عدد صحیح. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 بنابراین آن را می گرداند یک عدد صحیح. 1042 00:51:03,410 --> 00:51:05,160 و در مورد ما، آن را بازگشت 1 یا 0 - 1043 00:51:05,160 --> 00:51:08,760 1 اگر آن را به عنوان خوانده شده یک چیز - یک بایت، و 0 اگر ما به پایان رسیده ایم. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 بنابراین اگر از fread - 1046 00:51:16,450 --> 00:51:16,855 آره؟ 1047 00:51:16,855 --> 00:51:20,330 >> STUDENT 45: آیا می توانم شما فقط با قرار دادن کامل fread (بافر، 1، 1، SRC) به 1048 00:51:20,330 --> 00:51:21,660 در حالی که حلقه؟ 1049 00:51:21,660 --> 00:51:26,510 >> JASON HIRSCHHORN: پس شما پیشنهاد انجام این کار وجود دارد؟ 1050 00:51:26,510 --> 00:51:27,600 >> [INTERPOSING صداهای] 1051 00:51:27,600 --> 00:51:29,520 >> JASON HIRSCHHORN: صبر. 1052 00:51:29,520 --> 00:51:30,885 بنابراین ما در حال رهایی از آن. 1053 00:51:30,885 --> 00:51:33,300 بنابراین شما پیشنهاد دادن به از fread وجود دارد؟ 1054 00:51:33,300 --> 00:51:35,457 چه باید همچنین حرکت اگر شما می خواهید به انجام این کار؟ 1055 00:51:35,457 --> 00:51:36,740 >> STUDENT 45: بافر خارج. 1056 00:51:36,740 --> 00:51:38,110 >> JASON HIRSCHHORN: ما باید همچنین این حرکت را اینجا ببینید. 1057 00:51:38,110 --> 00:51:41,700 >> STUDENT 45: اما این کار را به طور مداوم حرکت آن را به جلو؟ 1058 00:51:41,700 --> 00:51:42,950 >> [INTERPOSING صداهای] 1059 00:51:42,950 --> 00:51:46,540 1060 00:51:46,540 --> 00:51:47,470 >> JASON HIRSCHHORN: OK. 1061 00:51:47,470 --> 00:51:50,570 بنابراین این چیزی است که Okshar ارائه شده است. 1062 00:51:50,570 --> 00:51:51,930 ما ایجاد بافر است. 1063 00:51:51,930 --> 00:51:57,020 ما از fread WHILE، پس ما fwrite. 1064 00:51:57,020 --> 00:51:59,760 افکار در این؟ 1065 00:51:59,760 --> 00:52:04,050 >> STUDENT 46: فقط سوال من این است، که آن را در واقع از fread فرمان اجرا؟ 1066 00:52:04,050 --> 00:52:06,175 >> JASON HIRSCHHORN: سؤال بسیار خوبی است. 1067 00:52:06,175 --> 00:52:11,050 وقتی که شما با قرار دادن یک فراخوانی تابع در داخل از یک بیماری، می کند که 1068 00:52:11,050 --> 00:52:12,300 فراخوانی تابع اجرا؟ 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 ما نمونه هایی از این دیده ام قبل از. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 درست است؟ 1073 00:52:25,660 --> 00:52:26,125 >> STUDENT 46: OK. 1074 00:52:26,125 --> 00:52:26,590 آره. 1075 00:52:26,590 --> 00:52:30,140 پس از آن اجرا کند. 1076 00:52:30,140 --> 00:52:31,790 >> JASON HIRSCHHORN: ما همه چیز را دیده ام مانند که قبل، که در آن ما 1077 00:52:31,790 --> 00:52:33,550 فراخوانی تابع در داخل یک وضعیت. 1078 00:52:33,550 --> 00:52:35,540 آیا این فراخوانی تابع اجرا؟ 1079 00:52:35,540 --> 00:52:36,350 بله. 1080 00:52:36,350 --> 00:52:37,410 بنابراین پاسخ مثبت است. 1081 00:52:37,410 --> 00:52:41,010 این فراخوانی تابع اجرا خواهد شد. 1082 00:52:41,010 --> 00:52:42,418 اما باز هم، آن چیزی است که ما می خواهیم؟ 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> یکی از راه های ما می تواند شکل چیست اگر آن چیزی است که ما می خواهیم؟ 1085 00:52:52,204 --> 00:52:53,470 >> دانش آموزان چندگانه: راه اندازی کنید؟ 1086 00:52:53,470 --> 00:52:54,460 >> JASON HIRSCHHORN: ما می توانیم آن را اجرا کنید. 1087 00:52:54,460 --> 00:52:57,500 اما قبل از انجام این کار، ما می تواند همچنین از طریق این دلیل. 1088 00:52:57,500 --> 00:52:57,920 اگر - 1089 00:52:57,920 --> 00:53:01,920 می گویند ما یک بایت در ما فایل، ما را به اینجا، 1090 00:53:01,920 --> 00:53:02,660 ما این کد را دریافت کنید. 1091 00:53:02,660 --> 00:53:03,620 این اجرا خواهد شد. 1092 00:53:03,620 --> 00:53:07,780 از fread خواهد یک بایت بازگشت و ذخیره آن را در بافر شده است. 1093 00:53:07,780 --> 00:53:11,290 و این تا 1، ارزیابی، درست است، پس از او باز می گردد 1. 1094 00:53:11,290 --> 00:53:12,640 >> بنابراین در حالی که 1. 1095 00:53:12,640 --> 00:53:15,325 آیا معنی این کد در داخل حلقه WHILE اجرا خواهد شد؟ 1096 00:53:15,325 --> 00:53:15,453 >> STUDENT 47: آره. 1097 00:53:15,453 --> 00:53:16,040 این درست است. 1098 00:53:16,040 --> 00:53:16,290 >> JASON HIRSCHHORN: بله. 1099 00:53:16,290 --> 00:53:17,490 1 درست است. 1100 00:53:17,490 --> 00:53:18,240 این 0 نیست. 1101 00:53:18,240 --> 00:53:20,360 بنابراین کد داخل در اینجا اجرا خواهد شد. 1102 00:53:20,360 --> 00:53:22,300 بنابراین ما ارسال شده است. 1103 00:53:22,300 --> 00:53:25,340 ما به این حرکت خط یک بار دیگر. 1104 00:53:25,340 --> 00:53:26,850 در حال حاضر ما - 1105 00:53:26,850 --> 00:53:28,550 ما در پایان از فایل های ما است. 1106 00:53:28,550 --> 00:53:30,980 ما را از انتهای فایل ما به عنوان خوانده شده، از آنجا که ما تنها یک بایت در آن بود. 1107 00:53:30,980 --> 00:53:34,270 >> از fread می گرداند 0، فروشگاه ها چیزی در بافر شده است. 1108 00:53:34,270 --> 00:53:35,890 من صادقانه نمی دانم چه آن را در RAM ذخیره می کند. 1109 00:53:35,890 --> 00:53:38,380 ما احتمالا می تواند نگاه کردن برای دیدن آنچه آن را ندارد. 1110 00:53:38,380 --> 00:53:40,130 که من صادقانه نمی دانم. 1111 00:53:40,130 --> 00:53:43,090 ما نمی دانیم، که مراقبت چه آن را در بافر ذخیره؟ 1112 00:53:43,090 --> 00:53:44,010 اما آن را نشانی از بازگشت 0. 1113 00:53:44,010 --> 00:53:45,440 و در حالی که خواهد 0 اجرا؟ 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> WHILE 0 نمی اجرا خواهد شد. 1116 00:53:51,180 --> 00:53:54,030 پس ما در اینجا به شما حرکت کردن. 1117 00:53:54,030 --> 00:53:58,870 بنابراین اجازه دهید یک نمایش از دست اگر این کد ما باید اجرا شود، و یا اگر ما است 1118 00:53:58,870 --> 00:54:00,140 اول باید تغییرات را انجام دهد. 1119 00:54:00,140 --> 00:54:02,180 بنابراین اگر شما فکر می کنم - شما را مجبور به رای دادن. 1120 00:54:02,180 --> 00:54:06,885 اگر شما فکر می کنم ما باید این کد را اجرا کنید به عنوان است، لطفا دست خود را بالا می برد. 1121 00:54:06,885 --> 00:54:12,440 1122 00:54:12,440 --> 00:54:13,400 >> OK. 1123 00:54:13,400 --> 00:54:14,315 وجود دارد یک - 1124 00:54:14,315 --> 00:54:17,260 آیا شما یک سوال، نگرانی؟ 1125 00:54:17,260 --> 00:54:18,080 آره. 1126 00:54:18,080 --> 00:54:21,240 >> STUDENT 48: بعد از ما حرکت بافر خارج از حلقه، ما 1127 00:54:21,240 --> 00:54:22,670 باید آن را malloc؟ 1128 00:54:22,670 --> 00:54:23,310 >> JASON HIRSCHHORN: سؤال بسیار خوبی است. 1129 00:54:23,310 --> 00:54:26,670 پس از ما حرکت بافر در خارج از حلقه، آیا ما باید آن را malloc؟ 1130 00:54:26,670 --> 00:54:28,400 این سوال دامنه است. 1131 00:54:28,400 --> 00:54:32,130 اگر ما مقدار دهی اولیه بافر خارج از این حلقه، آن را به وجود 1132 00:54:32,130 --> 00:54:33,534 داخل حلقه؟ 1133 00:54:33,534 --> 00:54:35,230 >> دانش آموزان متعدد: بله. 1134 00:54:35,230 --> 00:54:35,580 >> JASON HIRSCHHORN: بله. 1135 00:54:35,580 --> 00:54:40,100 دامنه آن را پوشش می دهد در داخل حلقه، و، در واقع، هر چیزی در زیر آن را در داخل 1136 00:54:40,100 --> 00:54:42,460 از این کد، از جمله همه چیز در داخل در اینجا. 1137 00:54:42,460 --> 00:54:43,930 بنابراین ما نیازی به آن malloc. 1138 00:54:43,930 --> 00:54:47,766 این یک متغیر محلی دامنه آن است، و هنوز هم شامل حلقه. 1139 00:54:47,766 --> 00:54:49,540 >> STUDENT 49: آیا لازم است که رایگان است؟ 1140 00:54:49,540 --> 00:54:51,770 >> JASON HIRSCHHORN: آیا ما نیاز به بافر آزاد؟ 1141 00:54:51,770 --> 00:54:53,860 >> STUDENT 49: آره، اگر ما malloc نیست. 1142 00:54:53,860 --> 00:54:55,750 >> JASON HIRSCHHORN: آیا ما نیاز به بافر آزاد؟ 1143 00:54:55,750 --> 00:54:57,160 ما نمی کنند. 1144 00:54:57,160 --> 00:55:01,280 باز هم، آن را به یک متغیر محلی است، بنابراین ما لازم نیست که آن را آزاد کند. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 بیایید ببینید چه اتفاقی می افتد. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 پس از آن آماده سازی نشده است. 1149 00:55:18,220 --> 00:55:20,830 این چه چیزی بود که مارکوس که قبلا ارائه شده است. 1150 00:55:20,830 --> 00:55:25,340 پس ما که خطا، بافر متغیر است مقدار دهی نکردن وقتی که در اینجا استفاده می شود. 1151 00:55:25,340 --> 00:55:26,590 >> چگونه می توان ثابت؟ 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> STUDENT 50: Malloc آن؟ 1154 00:55:30,960 --> 00:55:31,770 >> STUDENT 51: برابر NULL؟ 1155 00:55:31,770 --> 00:55:33,000 >> STUDENT 52: بگو بافر برابر با NULL. 1156 00:55:33,000 --> 00:55:34,250 >> JASON HIRSCHHORN: OK. 1157 00:55:34,250 --> 00:55:40,040 1158 00:55:40,040 --> 00:55:40,770 به نظر می رسد خوب است. 1159 00:55:40,770 --> 00:55:42,410 ما در حال حاضر آن را داشته باشد. 1160 00:55:42,410 --> 00:55:45,630 اجازه دهید چیزی را امتحان کنید کپی ایجاد کنید. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 بنابراین ما باید فایل متنی است. 1163 00:56:10,490 --> 00:56:11,740 چگونه می توان این برنامه را اجرا می کنیم؟ 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 آره. 1166 00:56:15,472 --> 00:56:22,230 >> STUDENT 53: شما می توانید نقطه انجام بریده بریده CP، test.txt. 1167 00:56:22,230 --> 00:56:25,140 و سپس شما می توانید یک فایل دیگر نام که آن را به ذخیره کنند. 1168 00:56:25,140 --> 00:56:25,510 >> JASON HIRSCHHORN: OK. 1169 00:56:25,510 --> 00:56:27,380 ما آن را out.txt تماس بگیرید. 1170 00:56:27,380 --> 00:56:28,630 دانلود؟ 1171 00:56:28,630 --> 00:56:31,700 1172 00:56:31,700 --> 00:56:34,320 گسل SEG. 1173 00:56:34,320 --> 00:56:35,570 افکار در گسل SEG؟ 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 این فوق العاده است. 1176 00:56:41,390 --> 00:56:45,040 چگونه می توانم پیدا کنیم که در آن گسل SEG است؟ 1177 00:56:45,040 --> 00:56:45,680 چه؟ 1178 00:56:45,680 --> 00:56:45,990 >> STUDENT 54: GDB. 1179 00:56:45,990 --> 00:56:47,240 >> JASON HIRSCHHORN: GDB. 1180 00:56:47,240 --> 00:56:51,400 1181 00:56:51,400 --> 00:56:55,300 ما اجرا از gdb با نوشتن از gdb نقطه اسلش، نام برنامه ما. 1182 00:56:55,300 --> 00:56:57,020 بدون آرگومان خط فرمان وجود دارد. 1183 00:56:57,020 --> 00:56:59,570 ما قصد داریم به مجموعه نقطه انفصال در اصلی. 1184 00:56:59,570 --> 00:57:02,190 اگر من می خواهم برای شروع از gdb، چه می توانم بکنم؟ 1185 00:57:02,190 --> 00:57:02,730 >> STUDENT 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> JASON HIRSCHHORN: R. و پس از آن چه؟ 1187 00:57:08,910 --> 00:57:09,400 >> STUDENT 55: استدلال؟ 1188 00:57:09,400 --> 00:57:10,650 >> JASON HIRSCHHORN: سپس آرگومان خط فرمان. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 اجازه دهید از طریق راه رفتن. 1191 00:57:17,120 --> 00:57:19,090 N است فقط به من گرفتن خط به خط. 1192 00:57:19,090 --> 00:57:21,450 من قصد دارم تا زمانی که I گسل SEG من دریافت کنید. 1193 00:57:21,450 --> 00:57:22,700 تقصیر SEG من وجود دارد. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 به نظر می رسد از fread ایجاد می شود گسل SEG من. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 من می دانم که از fread ناشی از گسل SEG من، زیرا که بود 1198 00:57:32,770 --> 00:57:34,950 خط ما فقط اجرا. 1199 00:57:34,950 --> 00:57:36,530 >> و تنها چیزی که بود اتفاق می افتد که در خط - 1200 00:57:36,530 --> 00:57:37,520 دو چیز اتفاق می افتد شده است. 1201 00:57:37,520 --> 00:57:40,610 از fread بود، و پس از آن ما بود انجام برخی از چک کردن WHILE. 1202 00:57:40,610 --> 00:57:44,820 من حاضر به شرط بندی هستم که WHILE چک کردن باعث خطا SEG من نیست. 1203 00:57:44,820 --> 00:57:46,950 به احتمال زیاد، از fread بود باعث خطا SEG من. 1204 00:57:46,950 --> 00:57:49,260 من هم چیزی در اینجا، memcopy را ببینید. 1205 00:57:49,260 --> 00:57:50,500 >> کپی حافظه. 1206 00:57:50,500 --> 00:57:53,820 به نظر می رسد در حال حرکت حافظه از یک مکان به مکان دیگر. 1207 00:57:53,820 --> 00:57:56,890 به نظر می رسد چیزی است که اتفاق می افتد در از fread، شاید برخی از حافظه 1208 00:57:56,890 --> 00:57:58,910 حرکت از اینجا به اینجا. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 اجازه دهید از طریق این دوباره. 1211 00:58:03,860 --> 00:58:06,900 چگونه می توانم آن را شروع کنم بیش از و آن را اجرا کنید دوباره؟ 1212 00:58:06,900 --> 00:58:08,092 آره. 1213 00:58:08,092 --> 00:58:15,140 >> STUDENT 56: آیا شما نیاز به قرار دادن یک علامت قبل از بافر؟ 1214 00:58:15,140 --> 00:58:17,800 >> JASON HIRSCHHORN: پس از کاراکتر & قبل بافر به من آدرس بدهد 1215 00:58:17,800 --> 00:58:22,330 بافر است، که یک کاراکتر *. 1216 00:58:22,330 --> 00:58:25,250 اجازه دهید از طریق این یک بار اجرا شود. 1217 00:58:25,250 --> 00:58:28,248 چگونه می توانم از طریق آن یک بار دیگر اجرا کنید؟ 1218 00:58:28,248 --> 00:58:29,210 >> STUDENT 57: آیا می توانید فقط نوع اجرای دوباره؟ 1219 00:58:29,210 --> 00:58:32,050 >> JASON HIRSCHHORN: فقط دراز دوباره تایپ کنید. 1220 00:58:32,050 --> 00:58:33,415 بنابراین ما قصد داریم تا نه اجرای این خط. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 بنابراین بافر یک اشاره گر NULL است. 1223 00:58:39,240 --> 00:58:40,490 درست است؟ 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 این است که اشاره به - اجازه دهید را ببینید. 1226 00:58:47,060 --> 00:58:48,500 اگر ما به ما - 1227 00:58:48,500 --> 00:58:50,430 رسم یک تصویر سریع از این. 1228 00:58:50,430 --> 00:58:53,500 همه می بینند اگر من ارسال بیش از اینجا؟ 1229 00:58:53,500 --> 00:59:02,890 >> بنابراین در پشته، ما باید محلی متغیر و آن را به بافر نامیده می شود، و 1230 00:59:02,890 --> 00:59:08,230 آن را به یک اشاره گر به کاراکتر است. 1231 00:59:08,230 --> 00:59:10,325 چه آدرسی که در این کاراکتر؟ 1232 00:59:10,325 --> 00:59:12,550 >> STUDENT 58: خانه 0X0. 1233 00:59:12,550 --> 00:59:13,400 >> JASON HIRSCHHORN: راست. 1234 00:59:13,400 --> 00:59:14,200 این چیزی است که این است. 1235 00:59:14,200 --> 00:59:17,600 در اینجا، در داخل بافر است، خانه 0X0 ذخیره می شود. 1236 00:59:17,600 --> 00:59:20,480 این چیزی است که ما - راه اندازی ما در حال حاضر. 1237 00:59:20,480 --> 00:59:27,540 بنابراین این خط، از fread، چیزی قرار می دهد از منبع که در آن؟ 1238 00:59:27,540 --> 00:59:30,560 به این جعبه و یا از این کادر؟ 1239 00:59:30,560 --> 00:59:31,060 کدام جعبه؟ 1240 00:59:31,060 --> 00:59:33,290 جعبه یا جعبه سمت راست را به سمت چپ؟ 1241 00:59:33,290 --> 00:59:34,750 این جعبه سمت راست. 1242 00:59:34,750 --> 00:59:38,440 >> این زیر اشاره گر، و آن را در اینجا. 1243 00:59:38,440 --> 00:59:42,620 هنگامی که ما سعی و حافظه تماس در محل 0، چه چیزی ما را دریافت کنید؟ 1244 00:59:42,620 --> 00:59:45,050 گسل تقسیم بندی. 1245 00:59:45,050 --> 00:59:46,550 که خطای ما در حال حاضر است. 1246 00:59:46,550 --> 00:59:46,970 آره. 1247 00:59:46,970 --> 00:59:48,410 >> STUDENT 59: آیا شما ندارد برای قرار دادن بافر ستاره؟ 1248 00:59:48,410 --> 00:59:49,180 یا نه؟ 1249 00:59:49,180 --> 00:59:50,050 برای از fread؟ 1250 00:59:50,050 --> 00:59:51,450 >> JASON HIRSCHHORN: پس از fread یک اشاره گر می گیرد. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 پس از آن در بافر عبور می کند. 1253 00:59:55,900 --> 00:59:58,980 و سپس آن را د مرجع آن را در جایی در داخل از fread. 1254 00:59:58,980 --> 01:00:00,700 اما باز هم، ما دیدیم، آن را به اشاره گر. 1255 01:00:00,700 --> 01:00:02,560 ما نیازی به تصویب آن بافر ستاره. 1256 01:00:02,560 --> 01:00:05,350 این امر می تواند به عبور آن را به هر آنچه را در اینجا. 1257 01:00:05,350 --> 01:00:07,980 و این احتمالا به ما خطا را زیرا ما د اشاره به آن. 1258 01:00:07,980 --> 01:00:08,150 >> درست است؟ 1259 01:00:08,150 --> 01:00:10,690 هنگامی که ما د مرجع این اشاره گر، هنگامی که ما سعی می کنیم برای دسترسی به این محل، 1260 01:00:10,690 --> 01:00:13,140 ما در حال گرفتن یک خطا - گسل تقسیم بندی ما. 1261 01:00:13,140 --> 01:00:15,800 بنابراین - 1262 01:00:15,800 --> 01:00:16,690 اوه. 1263 01:00:16,690 --> 01:00:19,090 ما قصد داریم به ترک خارج از GDB. 1264 01:00:19,090 --> 01:00:20,160 خط ما - 1265 01:00:20,160 --> 01:00:22,990 مشکل ما - راست است در اینجا در این خط. 1266 01:00:22,990 --> 01:00:26,410 و این یک مشکل است زیرا از این خط. 1267 01:00:26,410 --> 01:00:31,780 >> چگونه می توان از ایجاد یک جعبه است که در از fread قابل دسترسی است. 1268 01:00:31,780 --> 01:00:31,980 درست است؟ 1269 01:00:31,980 --> 01:00:35,190 ما نیاز به ایجاد یک جعبه است که یکی بایت های بزرگ، به اندازه یک کاراکتر. 1270 01:00:35,190 --> 01:00:38,590 اما ما نیاز داریم که جعبه به در دسترس زمانی که این تابع اجرا می کند. 1271 01:00:38,590 --> 01:00:39,390 بنابراین که در آن - 1272 01:00:39,390 --> 01:00:39,640 آره. 1273 01:00:39,640 --> 01:00:40,440 هر گونه ایده ها؟ 1274 01:00:40,440 --> 01:00:43,615 >> STUDENT 60: فقط آن را به عنوان مجموعه هر کاراکتر تصادفی. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 فقط می توانم برابر بافر کاراکتر شخصیت. 1277 01:00:51,640 --> 01:00:53,795 و سپس، هنگامی که شما بافر وجود دارد - 1278 01:00:53,795 --> 01:00:54,110 >> JASON HIRSCHHORN: صبر کنید. 1279 01:00:54,110 --> 01:00:55,110 چهار بافر؟ 1280 01:00:55,110 --> 01:00:55,880 بنابراین هیچ ستاره ای؟ 1281 01:00:55,880 --> 01:00:56,390 >> STUDENT 60: آره. 1282 01:00:56,390 --> 01:00:58,560 نگاهی از ستاره. 1283 01:00:58,560 --> 01:01:00,690 برابر با یک کاراکتر تصادفی. 1284 01:01:00,690 --> 01:01:01,460 >> JASON HIRSCHHORN: OK. 1285 01:01:01,460 --> 01:01:02,420 بنابراین من یکی به من بدهید. 1286 01:01:02,420 --> 01:01:03,170 >> STUDENT 60: مانند یا چیزی. 1287 01:01:03,170 --> 01:01:06,160 و پس از آن زمانی که شما به بافر داشته باشد وجود دارد، شما با استفاده از - 1288 01:01:06,160 --> 01:01:06,420 >> STUDENT 61: ستاره؟ 1289 01:01:06,420 --> 01:01:07,650 اوه، نه، آن & را داشتند. 1290 01:01:07,650 --> 01:01:09,000 >> STUDENT 60: استفاده از آن & را داشتند. 1291 01:01:09,000 --> 01:01:09,470 >> JASON HIRSCHHORN: OK. 1292 01:01:09,470 --> 01:01:11,320 و آنچه در مورد در fwrite؟ 1293 01:01:11,320 --> 01:01:14,150 >> STUDENT 60: دوباره استفاده از آن & را داشتند. 1294 01:01:14,150 --> 01:01:14,320 >> JASON HIRSCHHORN: بسیار خوب. 1295 01:01:14,320 --> 01:01:20,970 پس نظر شما این است که ما ایجاد یک کاراکتر و چیزی را در آن، و پس از آن 1296 01:01:20,970 --> 01:01:22,612 ارسال به کاراکتر. 1297 01:01:22,612 --> 01:01:23,760 >> STUDENT 60: آره. 1298 01:01:23,760 --> 01:01:25,916 >> JASON HIRSCHHORN: چه مردم فکر می کنم؟ 1299 01:01:25,916 --> 01:01:27,770 >> STUDENT 62: این پیچیده. 1300 01:01:27,770 --> 01:01:28,460 >> JASON HIRSCHHORN: OK. 1301 01:01:28,460 --> 01:01:29,760 اجازه دهید آن را بیرون کشید. 1302 01:01:29,760 --> 01:01:35,720 بنابراین این زمان، من قصد دارم به رسم این در قرمز بر روی پشته در اینجا، و پس از آن ما 1303 01:01:35,720 --> 01:01:36,410 باید - 1304 01:01:36,410 --> 01:01:36,822 اوه اوه! 1305 01:01:36,822 --> 01:01:38,060 متأسفم. 1306 01:01:38,060 --> 01:01:45,930 بنابراین این زمان ما چیزی به نام بافر، و آن را در پشته است. 1307 01:01:45,930 --> 01:01:48,430 درست است؟ 1308 01:01:48,430 --> 01:01:51,520 و ما در حال صرفه جویی در آن، در ابتدا. 1309 01:01:51,520 --> 01:01:53,830 >> سپس ما تماس ما را از fread. 1310 01:01:53,830 --> 01:02:01,300 چه از fread می کند است که طول می کشد یک بایت از فایل و ما آن را در جایی. 1311 01:02:01,300 --> 01:02:04,570 این، آن را در هر چیزی که در اشاره به. 1312 01:02:04,570 --> 01:02:09,130 خب، قبل از ما به این آدرس به حال - 1313 01:02:09,130 --> 01:02:10,250 خانه 0X0. 1314 01:02:10,250 --> 01:02:13,349 در حال حاضر چه آدرس داریم؟ 1315 01:02:13,349 --> 01:02:14,650 >> STUDENT 63: هر چه بافر آدرس است. 1316 01:02:14,650 --> 01:02:15,970 >> JASON HIRSCHHORN: هر چه بافر آدرس است. 1317 01:02:15,970 --> 01:02:22,370 آن را احتمالا برای رفتن به چیزی شبیه به آن. 1318 01:02:22,370 --> 01:02:26,950 احتمالا رفتن به با ب شروع و جمعه، و پس از آن شش دیگر 1319 01:02:26,950 --> 01:02:27,970 رقم تولید کنید. 1320 01:02:27,970 --> 01:02:28,480 مهم نیست. 1321 01:02:28,480 --> 01:02:29,470 آدرس. 1322 01:02:29,470 --> 01:02:31,410 و ما در حال عبور است که آدرس شوید 1323 01:02:31,410 --> 01:02:34,790 >> و ما قصد داریم برای قرار دادن یک ما چیزی که بایت در آن آدرس. 1324 01:02:34,790 --> 01:02:38,470 بنابراین ما قصد داریم برای قرار دادن یک ما چیزی که بایت در داخل در اینجا. 1325 01:02:38,470 --> 01:02:40,800 و پس از آن ما قصد داریم از ارسال آنچه که تا کنون در داخل در اینجا. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 آیا هر کسی هر گونه سوال در مورد آن؟ 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 چه کسی فکر می کند این کد کار خواهد کرد؟ 1330 01:02:54,690 --> 01:02:56,020 >> بالا بردن دست خود را اگر شما فکر می کنم این کد کار خواهد کرد. 1331 01:02:56,020 --> 01:02:57,270 شما را به یک موضع. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 و کسی که فکر می کند این کد کار نخواهد کرد؟ 1334 01:03:02,500 --> 01:03:04,610 بالا بردن دست خود را. 1335 01:03:04,610 --> 01:03:06,750 هر کسی دیگری باید باشد بالا بردن دست خود را. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 مایکل، جایی که شما ایستاده است؟ 1338 01:03:09,390 --> 01:03:10,680 >> MICHAEL: من نمی تواند تصمیم بگیرد. 1339 01:03:10,680 --> 01:03:12,070 نوع در وسط. 1340 01:03:12,070 --> 01:03:12,736 >> JASON HIRSCHHORN: تو در وسط. 1341 01:03:12,736 --> 01:03:13,092 انتخاب یکی. 1342 01:03:13,092 --> 01:03:14,400 >> MICHAEL: من ایمان دارند و می گویند که این کار می کنند. 1343 01:03:14,400 --> 01:03:14,660 >> JASON HIRSCHHORN: OK. 1344 01:03:14,660 --> 01:03:16,047 شما ایمان داشته و می گویند کار می کند؟ 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 چه اتفاقی افتاد؟ 1347 01:03:27,020 --> 01:03:28,270 >> [INTERPOSING صداهای] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> JASON HIRSCHHORN: بدون خطا SEG. 1350 01:03:35,950 --> 01:03:40,320 چگونه می توانید بررسی کنید که ما برای دیدن اگر دو چیز با هم برابر هستند؟ 1351 01:03:40,320 --> 01:03:42,060 دو فایل با هم برابر هستند. 1352 01:03:42,060 --> 01:03:43,300 >> STUDENT 64: قدیمیتر. 1353 01:03:43,300 --> 01:03:45,490 >> JASON HIRSCHHORN: قدیمیتر. 1354 01:03:45,490 --> 01:03:51,630 چک تفاوت برای تفاوت بین دو فایل، و اگر آن را می گرداند 1355 01:03:51,630 --> 01:03:52,890 هیچ چیز، آنها یکسان است. 1356 01:03:52,890 --> 01:03:59,030 و اگر ما باز کردن، ما فایل های ما است. 1357 01:03:59,030 --> 01:04:00,490 به طوری که راه حل درست بود. 1358 01:04:00,490 --> 01:04:01,780 اجازه دهید نگاهی به آن یک بار. 1359 01:04:01,780 --> 01:04:04,080 ما در واقع حتی نمی نیاز به مقداردهی اولیه آن. 1360 01:04:04,080 --> 01:04:05,520 >> این احتمالا نگاه کمی پاک کننده اگر شما قرار داده نشده 1361 01:04:05,520 --> 01:04:07,680 چیزی تصادفی در آن وجود دارد. 1362 01:04:07,680 --> 01:04:13,070 نقطه است، شما نیاز به ایجاد برخی از فضا برای ذخیره چیزی از 1363 01:04:13,070 --> 01:04:15,530 از fread و چیزی را از fwrite. 1364 01:04:15,530 --> 01:04:18,400 و چیزی که تا به حال به هر دو محلی متغیر در پشته - شما 1365 01:04:18,400 --> 01:04:19,890 می تواند برخی از فضای malloc'd ام. 1366 01:04:19,890 --> 01:04:23,030 >> پس ما در واقع می تواند داشته باشد malloc نوشته شده است در اینجا، و 1367 01:04:23,030 --> 01:04:25,420 که کار کرده اند. 1368 01:04:25,420 --> 01:04:28,660 و سپس ما را ذخیره سازی شده است چیزهایی که ما در جایی در پشته. 1369 01:04:28,660 --> 01:04:31,940 اما این است که در واقع، احتمالا، راه حل زیبا ترین. 1370 01:04:31,940 --> 01:04:34,490 فقط برخی از فضای در پشته ایجاد برای این چیزها به رفتن. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> من دو نظر دیگر داشته باشد. 1373 01:04:38,990 --> 01:04:44,650 اگر شما را به نوبه خود در این، و سپس بر روی این گل، نظر من 1374 01:04:44,650 --> 01:04:47,400 خواهد بود به شرح زیر است. 1375 01:04:47,400 --> 01:04:54,300 این 1 در اینجا، به من، نگاه مانند اعداد سحر و جادو. 1376 01:04:54,300 --> 01:04:56,860 این 1، در شرایط از fread، را حس می کند. 1377 01:04:56,860 --> 01:04:59,580 که تعدادی از چیزهایی است به خواندن و نوشتن. 1378 01:04:59,580 --> 01:05:03,740 >> اما این حق در اینجا باید احتمالا چیز دیگری باشد. 1379 01:05:03,740 --> 01:05:05,180 پس چه یک راه حل است؟ 1380 01:05:05,180 --> 01:05:06,545 >> STUDENT 65: اندازه بایت. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> JASON HIRSCHHORN: که می خواهم؟ 1383 01:05:11,080 --> 01:05:13,130 >> STUDENT 65: اندازه کاراکتر. 1384 01:05:13,130 --> 01:05:13,820 >> JASON HIRSCHHORN: اندازه کاراکتر. 1385 01:05:13,820 --> 01:05:15,290 آره، بایت است یک نوع نیست. 1386 01:05:15,290 --> 01:05:16,320 بنابراین اندازه آثار کاراکتر. 1387 01:05:16,320 --> 01:05:30,270 ما می توانیم در بالای داشته باشد، کد ما، # تعریف شده است. 1388 01:05:30,270 --> 01:05:33,410 به نام چیزی BYTE و این واقعا یک کاراکتر. 1389 01:05:33,410 --> 01:05:37,675 در واقع، یک روش حتی بهتر ممکن است این بوده است - 1390 01:05:37,675 --> 01:05:39,391 UINT. 1391 01:05:39,391 --> 01:05:40,780 کسی می داند چه چیزی است؟ 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> متأسفم. 1394 01:05:44,840 --> 01:05:46,090 من آن را به عقب. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 صبر کن، نه. 1397 01:05:52,200 --> 01:05:53,450 که راه آن را به؟ 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 کسی می داند چه چیزی است؟ 1400 01:05:59,660 --> 01:06:00,950 آره. 1401 01:06:00,950 --> 01:06:05,650 >> STUDENT 67: قرار است برای کمک به استانداردسازی در سراسر سیستم چیزهایی که 1402 01:06:05,650 --> 01:06:08,760 دارند - مانند اعداد صحیح بدون علامت که 8 بایت؟ 1403 01:06:08,760 --> 01:06:11,785 >> JASON HIRSCHHORN: که دقیقا درست است. 1404 01:06:11,785 --> 01:06:14,310 در ماشین های مختلف، به اندازه یک کاراکتر - 1405 01:06:14,310 --> 01:06:15,180 معمولا یک کاراکتر. 1406 01:06:15,180 --> 01:06:16,100 کاراکتر معمولا یک بایت. 1407 01:06:16,100 --> 01:06:19,590 اما به اندازه انواع داده های دیگر اندازه های مختلف بر روی یک ماشین 32 بیتی 1408 01:06:19,590 --> 01:06:21,370 در مقابل یک ماشین 64 بیتی. 1409 01:06:21,370 --> 01:06:25,180 uint8_t همیشه 8 بیت - 1410 01:06:25,180 --> 01:06:27,210 همیشه یک بایت. 1411 01:06:27,210 --> 01:06:29,580 >> و من باید شامل است که استاندارد هدر فایل بین المللی. 1412 01:06:29,580 --> 01:06:35,040 بنابراین در حال حاضر، این احتمالا بوده است بهترین راه برای ارسال این کد. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 بنابراین من می توانید از اعداد سحر و جادو خلاص شوید. 1415 01:06:41,450 --> 01:06:44,690 و من هم منطقی تر دارند نوع برای بافر شده است. 1416 01:06:44,690 --> 01:06:49,450 این است که به سادگی یک کاراکتر نیست، آن یک بایت است، که همان چیزی است که ما انتظار داریم آن را به. 1417 01:06:49,450 --> 01:06:53,400 >> و در اینجا، ما در واقع کمی قوی تر بوده است. 1418 01:06:53,400 --> 01:06:55,190 ما در حال آن که خواستار یک کاراکتر، - 1419 01:06:55,190 --> 01:06:58,630 شاید، که می داند - می تواند متفاوت اندازه در دستگاه های مختلف. 1420 01:06:58,630 --> 01:07:02,025 ما در واقع گفت: این دقیقا همان یک بایت، همیشه، بدون توجه به آنچه. 1421 01:07:02,025 --> 01:07:05,810 و اگر ما در اینجا نگاه، ما را CP. 1422 01:07:05,810 --> 01:07:08,340 آه، آه. 1423 01:07:08,340 --> 01:07:09,590 چه اتفاقی افتاد؟ 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> STUDENT 68: این ممکن است روشن شود. 1426 01:07:16,170 --> 01:07:17,880 >> JASON HIRSCHHORN: چه؟ 1427 01:07:17,880 --> 01:07:19,130 >> STUDENT 69: آیا آن؟ 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> STUDENT 70: شما نمی به عنوان یک نوع تعریف آن است. 1430 01:07:25,080 --> 01:07:28,684 >> STUDENT 71: اما باید در استاندارد تعریف شده است. 1431 01:07:28,684 --> 01:07:29,934 >> STUDENT 72: چه خبر است؟ 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> STUDENT 73: باید تعریف شود همه کلاه؟ 1434 01:07:40,210 --> 01:07:41,370 >> JASON HIRSCHHORN: بنابراین نه # تعریف کنیم. 1435 01:07:41,370 --> 01:07:45,490 در واقع، در این مورد، من هستم رفتن به استفاده از typedef. 1436 01:07:45,490 --> 01:07:48,590 از آنجا که ما در حال استفاده از آن به عنوان یک نوع در یک مکان. 1437 01:07:48,590 --> 01:07:51,990 بنابراین در این مورد، ما در واقع می خواهم به typedef مانند ما در حال چاپ یک نوع جدید 1438 01:07:51,990 --> 01:07:54,490 بایت، و آن است که، در اصل، این. 1439 01:07:54,490 --> 01:07:56,590 این کمی متفاوت از # تعریف کنیم. 1440 01:07:56,590 --> 01:08:02,740 >> و اکنون، کد ما کاملا کار می کند. 1441 01:08:02,740 --> 01:08:05,230 پس، دوباره، # تعریف چیزی است که طول می کشد، آن را جایگزین همه جا 1442 01:08:05,230 --> 01:08:06,780 با چیز دیگر. 1443 01:08:06,780 --> 01:08:07,920 این فقط یک کلان است - 1444 01:08:07,920 --> 01:08:09,420 تند نویسی می توانید از اعداد سحر و جادو خلاص شوید. 1445 01:08:09,420 --> 01:08:11,360 اما در این مورد، از آنجا که ما هستیم با استفاده از آن به عنوان یک نوع - 1446 01:08:11,360 --> 01:08:12,180 حق در اینجا - 1447 01:08:12,180 --> 01:08:19,880 به منظور برای که به کار، ما نیاز به typedef هر بایت است. 1448 01:08:19,880 --> 01:08:21,840 >> و ما آن را در تعریف حق در اینجا. 1449 01:08:21,840 --> 01:08:24,750 این یک ساختار نیست، آن را در واقع فقط یک عدد صحیح بدون علامت. 1450 01:08:24,750 --> 01:08:27,680 این یک بایت طول دارد. 1451 01:08:27,680 --> 01:08:31,910 این کد به صورت آنلاین در دسترس خواهد بود، و همه شما باید آن را در حال حاضر داشته باشد. 1452 01:08:31,910 --> 01:08:33,830 >> بنابراین ما باید - 1453 01:08:33,830 --> 01:08:34,250 کامل - 1454 01:08:34,250 --> 01:08:41,359 در دقیقه 13 ترک به مشکل بیش از مجموعه ای 5. 1455 01:08:41,359 --> 01:08:44,270 من می خواهم از طریق copy.c راه رفتن با هم، و پس از آن ما به طور خلاصه صحبت 1456 01:08:44,270 --> 01:08:47,120 در مورد بخش های دیگر از مشکل تنظیم شده است. 1457 01:08:47,120 --> 01:08:48,899 بنابراین، اجازه دهید بالا بکشد copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 و نکته جالب است، ما در واقع در حال حاضر نوشته شده است بسیاری از این کد. 1460 01:09:08,810 --> 01:09:11,180 >> کد ما به معنای واقعی کلمه نوشتم فقط از اینجا آمد وقتی که من بود 1461 01:09:11,180 --> 01:09:13,120 نوشتن این در خود من. 1462 01:09:13,120 --> 01:09:16,990 اما این copy.c است، پایه و اساس تشکیل برای دو بخش اول 1463 01:09:16,990 --> 01:09:22,340 مشکل را برای whodunit.c، که شما نیاز به ارسال و resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c، که سومین و آخرین بخشی از مشکل است، نه 1465 01:09:27,050 --> 01:09:29,529 بر مبنای این فایل. 1466 01:09:29,529 --> 01:09:32,200 >> شما نیاز به رفتن به ارسال آن فایل، ما به شما یک قالب برای آن را 1467 01:09:32,200 --> 01:09:34,620 فایل، اما هیچ چیز برای انجام این کار با copy.c. 1468 01:09:34,620 --> 01:09:38,675 اما از آنجا که copy.c پایه و اساس است دو قسمت اول، ما قصد داریم 1469 01:09:38,675 --> 01:09:42,000 تا از طریق آن راه رفتن در حال حاضر، بنابراین شما حس خوبی از آنچه آن را ندارد. 1470 01:09:42,000 --> 01:09:43,640 >> و نظر به برخی از آن دور. 1471 01:09:43,640 --> 01:09:45,120 ما در حال حاضر نوشته شده است برخی از این. 1472 01:09:45,120 --> 01:09:49,220 اول، ما مطمئن شوید ما سه بحث. 1473 01:09:49,220 --> 01:09:50,560 بعد، ما به خاطر سپردن نام فایل. 1474 01:09:50,560 --> 01:09:52,960 بنابراین ما این مرحله را از قلم وقتی که ما رمزی چیزی که ما - 1475 01:09:52,960 --> 01:09:54,700 هنگامی که CP است. 1476 01:09:54,700 --> 01:09:56,750 اما در اینجا، آنها در حال ساخت آن را کمی پاک کن. 1477 01:09:56,750 --> 01:09:59,350 >> آنها در حال چک کردن مطمئن شوید هر دو فایل های خوبی هستند، در 1478 01:09:59,350 --> 01:10:00,450 علاوه بر باز کردن آنها. 1479 01:10:00,450 --> 01:10:04,760 ما نوشت: تمام این کد فقط در حال حاضر، پس من هستم نمی پردازد در این کد. 1480 01:10:04,760 --> 01:10:09,670 بعدی برخی از چیزهایی که خاص است انواع فایل های ما استفاده می کنیم که 1481 01:10:09,670 --> 01:10:12,240 فایل های بیت مپ می باشد. 1482 01:10:12,240 --> 01:10:15,660 فایل های بیت مپ برخی از ابرداده مرتبط با آنها. 1483 01:10:15,660 --> 01:10:20,190 >> بنابراین زن و شوهر اول از بایت در مورد فایل به شما بگویم. 1484 01:10:20,190 --> 01:10:23,460 آنها رنگ نمی پیکسل در تصویر. 1485 01:10:23,460 --> 01:10:25,120 آنها شما را در مورد فایل بگویید. 1486 01:10:25,120 --> 01:10:28,220 و اگر شما را از طریق مجموعه ای مشکل به عنوان خوانده شده، شما اطلاعات بیشتری را باید 1487 01:10:28,220 --> 01:10:33,100 در چه نوع از سازه های ابرداده با بیت مپ ها گنجانده شده است. 1488 01:10:33,100 --> 01:10:39,350 >> اما به همین دلیل است که ما اولین بار از این مجموعه ای از - این کد را در اینجا ببینید. 1489 01:10:39,350 --> 01:10:42,490 ما در حال خواندن ابرداده - 1490 01:10:42,490 --> 01:10:45,800 دو قطعه از ابرداده - فایل هدر و هدر اطلاعات. 1491 01:10:45,800 --> 01:10:51,030 و ما در حال بررسی برخی از بخش های آن را به مطمئن شوید که یک فایل بیت مپ درست است 1492 01:10:51,030 --> 01:10:52,420 قبل از ادامه. 1493 01:10:52,420 --> 01:10:55,470 >> و دوباره، این اطلاعات ما لازم نیست برای رفتن به در حال حاضر. 1494 01:10:55,470 --> 01:10:57,720 اگر شما را از طریق مجموعه ای مشکل به عنوان خوانده شده، شما این را درک کنید. 1495 01:10:57,720 --> 01:11:01,370 داستان کوتاه مدت، این ها فقط گفت، این یک فایل بیت مپ است، و 1496 01:11:01,370 --> 01:11:02,810 تایید که. 1497 01:11:02,810 --> 01:11:05,180 >> بعد، ما در حال نوشتن آن به فایل از. 1498 01:11:05,180 --> 01:11:05,660 ما می بینیم که در اینجا. 1499 01:11:05,660 --> 01:11:06,910 ما در حال نوشتن را به اشاره گر است. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 بعد، ما در حال تعیین لایه. 1502 01:11:11,320 --> 01:11:15,240 بنابراین دوباره، به عنوان خاص با است یک فایل بیت مپ، برخی از خطوط شامل 1503 01:11:15,240 --> 01:11:16,840 بالشتک در پایان. 1504 01:11:16,840 --> 01:11:19,000 و اگر شما را از طریق مجموعه ای مشکل به عنوان خوانده شده، شما بیشتر در مورد لایه یاد بگیرند. 1505 01:11:19,000 --> 01:11:22,330 این فرمول برای پیدا کردن لایه است. 1506 01:11:22,330 --> 01:11:23,610 >> مهم است به یاد داشته باشید - 1507 01:11:23,610 --> 01:11:29,720 زمانی که شما به اندازه یک بیت مپ را تغییر دهید فایل، تغییر لایه. 1508 01:11:29,720 --> 01:11:31,970 وقتی که شما تغییر اندازه یک فایل، تغییر لایه. 1509 01:11:31,970 --> 01:11:34,310 هیچ وقت برای رفتن به بیشتر از 3 - 1510 01:11:34,310 --> 01:11:36,510 آن خواهید بود 0 تا 3، فراگیر. 1511 01:11:36,510 --> 01:11:38,930 اما وقتی که شما تغییر اندازه چیزی، تغییرات لایه. 1512 01:11:38,930 --> 01:11:47,100 >> اگر من فقط یک پیکسل در آن ردیف، من نیاز به سه بایت از بالشتک، به دلیل 1513 01:11:47,100 --> 01:11:51,190 هر سطر را به تقسیم عددی بر مضرب چهار بایت در یک فایل بیت مپ. 1514 01:11:51,190 --> 01:11:56,120 اما اگر آن را دو برابر I، از یک پیکسل به به دو پیکسل، که هر کدام، 1515 01:11:56,120 --> 01:11:59,510 اجازه دهید بگویم، این است که یک بایت، پس من باید دو بایت از لایه را 1516 01:11:59,510 --> 01:12:00,970 که به چهار برابر است. 1517 01:12:00,970 --> 01:12:04,200 >> بنابراین، هنگامی که به اندازه چیزی را تغییر دهم، من نیاز به تغییر مقدار 1518 01:12:04,200 --> 01:12:06,551 از پد من. 1519 01:12:06,551 --> 01:12:08,100 آیا این حس برای همه؟ 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 بعد، ما بیش از هر سطر تکرار، و یا از طریق تمام ردیف. 1522 01:12:18,720 --> 01:12:21,400 و سپس ما را از طریق تکرار هر ستون در هر سطر. 1523 01:12:21,400 --> 01:12:25,330 ما در حال درمان این بیت مپ مانند یک شبکه، مانند ما در درمان ام 1524 01:12:25,330 --> 01:12:26,490 هیئت مدیره در 15. 1525 01:12:26,490 --> 01:12:29,200 >> مثل ما تحت درمان آجر در زمانی که ما آنها را بر روی صفحه نمایش چاپ شده است. 1526 01:12:29,200 --> 01:12:31,350 شبکه ای از سطر و ستون. 1527 01:12:31,350 --> 01:12:32,350 پس از آن - ما این را دیدم. 1528 01:12:32,350 --> 01:12:33,840 ما در واقع فقط این کد می شود. 1529 01:12:33,840 --> 01:12:35,780 ما برخی از ذخیره سازی موقت ایجاد شده است. 1530 01:12:35,780 --> 01:12:38,710 ما در آن وجود دارد به عنوان خوانده شده، و پس از آن ما آن را ارسال کنید. 1531 01:12:38,710 --> 01:12:42,680 این دقیقا همان چیزی است که ما فقط. 1532 01:12:42,680 --> 01:12:46,760 >> بعد، به خاطر من گفت: هر خط در برخی از بالشتک به پایان می رسد، ما 1533 01:12:46,760 --> 01:12:48,260 جست و خیز بیش از آن بالشتک - 1534 01:12:48,260 --> 01:12:51,000 بالشتک های قدیمی. 1535 01:12:51,000 --> 01:12:52,630 و بعد ما آن را اضافه به عقب. 1536 01:12:52,630 --> 01:12:55,140 در این مورد، ما در حال ایجاد فایل های مشابه. 1537 01:12:55,140 --> 01:12:56,180 ما فقط آن را کپی. 1538 01:12:56,180 --> 01:12:57,700 بنابراین این خط از نوع احمقانه است. 1539 01:12:57,700 --> 01:12:59,660 ما می تواند به معنای واقعی کلمه فقط قرار دادن بالشتک شوید 1540 01:12:59,660 --> 01:13:04,290 >> اما اگر شما تغییر اندازه فایل، آیا شما هنوز هم می خواهید این خط؟ 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 بنابراین اگر ما به اندازه یک فایل را تغییر دهید، ما هنوز هم می خواهید به جست و خیز 1543 01:13:11,560 --> 01:13:12,810 بر روی لایه های قدیمی؟ 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> STUDENT 74: بله. 1546 01:13:15,970 --> 01:13:17,090 >> JASON HIRSCHHORN: پس ما انجام دهد. 1547 01:13:17,090 --> 01:13:19,290 از آنجا که این، دوباره، معاملات با فایل منبع. 1548 01:13:19,290 --> 01:13:21,570 ما در مورد لایه مهم نیست از فایل منبع. 1549 01:13:21,570 --> 01:13:23,410 ما می خواهیم برای رفتن به خط بعدی. 1550 01:13:23,410 --> 01:13:28,850 اما ما به سادگی به عقب قرار داده نشده مقدار قدیمی از لایه. 1551 01:13:28,850 --> 01:13:31,540 ما نیاز به قرار دادن پشت مقدار جدید از لایه. 1552 01:13:31,540 --> 01:13:35,810 >> بنابراین، هنگامی که ما در حال تغییر به اندازه یک فایل، ما هنوز هم می خواهید به جست و خیز بیش از 1553 01:13:35,810 --> 01:13:38,270 لایه گذاری را در فایل های قدیمی - چه ما در خواندن از. 1554 01:13:38,270 --> 01:13:40,370 اما آنچه که ما در حال نوشتن به، ما قصد داریم به نیاز به قرار دادن برخی از مختلف 1555 01:13:40,370 --> 01:13:41,890 تعداد لایه که ایم. 1556 01:13:41,890 --> 01:13:42,780 آره. 1557 01:13:42,780 --> 01:13:44,550 >> STUDENT 75: منظور از این دو خطوط مهم نیست، درست است؟ 1558 01:13:44,550 --> 01:13:46,160 از آنجا که شما در حال دست زدن به فایل های مختلف. 1559 01:13:46,160 --> 01:13:46,620 >> JASON HIRSCHHORN: دقیقا. 1560 01:13:46,620 --> 01:13:48,220 منظور از این دو خط مهم نیست. 1561 01:13:48,220 --> 01:13:49,790 ما در نوشتن این خط. 1562 01:13:49,790 --> 01:13:51,430 این است که در اینجا برای فایل ما در حال نوشتن به. 1563 01:13:51,430 --> 01:13:54,370 این مهم است، بنابراین ما دریافت کنید مقدار مناسب از پد. 1564 01:13:54,370 --> 01:13:57,560 این است برای مقابله با فایل در. 1565 01:13:57,560 --> 01:13:58,560 ما می خواهیم به جست و خیز راست بر روی پد. 1566 01:13:58,560 --> 01:13:59,470 >> ما نمی خواهیم به عنوان خوانده شده - 1567 01:13:59,470 --> 01:14:01,500 اگر ما در حال خواندن یک بایت را در یک زمان، ما در مورد آن کلمه در ادامه متن بالشتک اهمیتی نمی دهند. 1568 01:14:01,500 --> 01:14:04,070 ما می خواهیم به حرکت می کند به خط بعدی. 1569 01:14:04,070 --> 01:14:11,800 در نهایت درست مثل لوسی برای ما داد، ما فایل را ببندید و بازگشت 0. 1570 01:14:11,800 --> 01:14:13,890 بنابراین این copy.c. است 1571 01:14:13,890 --> 01:14:17,850 و ما در واقع نوشته است - ما را صرف بیشتر بخش نوشتن این، در اصل. 1572 01:14:17,850 --> 01:14:18,740 >> شما این ساخته شده است. 1573 01:14:18,740 --> 01:14:22,440 پس امیدوارم شما یک حس خوب از چه خبر است در اینجا. 1574 01:14:22,440 --> 01:14:25,890 تفاوت بزرگ، صادقانه، فقط این بخش برای اولین بار است که با معاملات 1575 01:14:25,890 --> 01:14:29,970 خصوصیات فایل های بیت مپ. 1576 01:14:29,970 --> 01:14:33,570 بنابراین من به عنوان اسلاید بعدی من، ما چه باید انجام دهید؟ 1577 01:14:33,570 --> 01:14:35,510 خوب، اجازه دهید در مورد رمان پلیسی فکر می کنم. 1578 01:14:35,510 --> 01:14:38,080 >> و برای کسی که خواندن از طریق مشکل تعیین می کنند، چه کار می کنیم 1579 01:14:38,080 --> 01:14:41,410 نیاز به انجام در رمان پلیسی؟ 1580 01:14:41,410 --> 01:14:42,080 به سادگی. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> ALEJA: آیا می توانم شما را از بخش از هر پیکسل است که نشان دهنده قرمز. 1583 01:14:48,570 --> 01:14:49,730 و پس از آن - 1584 01:14:49,730 --> 01:14:50,730 نوع؟ 1585 01:14:50,730 --> 01:14:51,860 >> JASON HIRSCHHORN: OK. 1586 01:14:51,860 --> 01:14:54,460 بنابراین از بخشی از هر پیکسل است که نشان دهنده قرمز. 1587 01:14:54,460 --> 01:14:57,234 که نزدیک، اما نه همه آن. 1588 01:14:57,234 --> 01:14:59,780 >> STUDENT 76: خوب، وجود دارد راه های مختلفی برای انجام این کار. 1589 01:14:59,780 --> 01:14:59,870 >> JASON HIRSCHHORN: OK. 1590 01:14:59,870 --> 01:15:03,070 من یک راه را به من بدهید. 1591 01:15:03,070 --> 01:15:08,240 >> STUDENT 76: نگاهی از تمام قرمز، و پس از آن تاکید بر آبی و سبز می باشد. 1592 01:15:08,240 --> 01:15:10,010 >> JASON HIRSCHHORN: OK. 1593 01:15:10,010 --> 01:15:11,830 بنابراین با توجه به هر دو این روش - 1594 01:15:11,830 --> 01:15:15,210 آن را برای تلفن های موبایل مانند ما آن را یک پیکسل، آن را تا به سطح قرمز، آبی و سبز می باشد. 1595 01:15:15,210 --> 01:15:19,350 ما می خواهیم برای تغییر سطح نسبی قرمز، آبی، و سبز، بسته به 1596 01:15:19,350 --> 01:15:20,740 در آن پیکسل. 1597 01:15:20,740 --> 01:15:28,380 که در آن در این کد باید تغییر ما نسبت به رنگ قرمز، آبی و سبز 1598 01:15:28,380 --> 01:15:29,720 سطح یک پیکسل داده شده است. 1599 01:15:29,720 --> 01:15:30,600 بعد از ما آن را خوانده ام - 1600 01:15:30,600 --> 01:15:32,520 قبل از ما آن را بنویسید؟ 1601 01:15:32,520 --> 01:15:34,564 من شماره خط را. 1602 01:15:34,564 --> 01:15:35,950 >> دانش آموزان چندگانه: 83. 1603 01:15:35,950 --> 01:15:37,320 >> JASON HIRSCHHORN: 83. 1604 01:15:37,320 --> 01:15:38,570 بنابراین در اینجا ببینید. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 برای رمان پلیسی، کد شما نیاز به نوشتن باید همه به سمت راست وجود دارد. 1607 01:15:45,710 --> 01:15:47,640 و این تنها کد است شما نیاز به نوشتن. 1608 01:15:47,640 --> 01:15:51,520 از آنجا که، مثل ما شنیده، همه شما نیاز به انجام است تغییر این آبی نسبی، 1609 01:15:51,520 --> 01:15:54,420 سطح قرمز و سبز از هر پیکسل است. 1610 01:15:54,420 --> 01:15:58,250 >> شما آن را در به عنوان خوانده شده ام، و در حال حاضر شما رفتن به آن ارسال شده است. 1611 01:15:58,250 --> 01:16:03,100 چگونه می توانم - اگر من این چیزی که به نام سه، حق در اینجا، و آن را از 1612 01:16:03,100 --> 01:16:04,570 نوع RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 خوب، اگر ما در bmp.h نگاه کرد، چه RGBTRIPLE است؟ 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> STUDENT 77: این یک ساختار است. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> JASON HIRSCHHORN: RGBTRIPLE یک ساختار است. 1618 01:16:18,900 --> 01:16:22,330 ما می بینیم که حق را در اینجا. 1619 01:16:22,330 --> 01:16:26,600 و به این ترتیب اگر من به دسترسی می خواستم، می گویند، سطح قرمز از ساختار، چگونه می توانم انجام 1620 01:16:26,600 --> 01:16:30,005 سطح قرمز از این ساختار دسترسی پیدا کنم؟ 1621 01:16:30,005 --> 01:16:37,280 >> [CLASS سوفل] 1622 01:16:37,280 --> 01:16:38,530 >> STUDENT 78: RGBTRIPLE.rgbtred؟ 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> JASON HIRSCHHORN: آیا این درست است؟ 1625 01:16:48,856 --> 01:16:53,040 >> STUDENT 79: باید سه برابر شود نقطه، به جای RGBTRIPLE نقطه؟ 1626 01:16:53,040 --> 01:16:54,120 >> JASON HIRSCHHORN: سه. 1627 01:16:54,120 --> 01:16:56,700 سه متغیر محلی است، بنابراین در اینجا، هیچ اشاره گر در اینجا وجود دارد. 1628 01:16:56,700 --> 01:16:58,400 بنابراین ما فقط استفاده از نماد نقطه. 1629 01:16:58,400 --> 01:17:00,480 این به من سطح قرمز را. 1630 01:17:00,480 --> 01:17:06,180 اگر من می خواهم به آن را تغییر دهید، من فقط تنظیم آن را به چیزی متفاوت برابر است. 1631 01:17:06,180 --> 01:17:13,190 پس دوباره، این خط از کد دسترسی این متغیر در داخل این ساختار، و 1632 01:17:13,190 --> 01:17:15,070 ما می توانیم آن را به چیز جدیدی را تنظیم کنید. 1633 01:17:15,070 --> 01:17:20,040 >> بنابراین برای رمان پلیسی، دوباره، این است که، در واقع، آنچه که ما باید انجام دهیم. 1634 01:17:20,040 --> 01:17:21,170 بسیار ساده است. 1635 01:17:21,170 --> 01:17:25,020 فقط برخی از سطوح نسبی تغییر، و این جایی است که که کد می رود. 1636 01:17:25,020 --> 01:17:27,720 تغییر اندازه، از سوی دیگر، است که کمی سختتر. 1637 01:17:27,720 --> 01:17:30,900 در واقع، تغییر اندازه است، احتمالا ترین قسمت از این مشکل تنظیم شده است. 1638 01:17:30,900 --> 01:17:32,720 ما سه دقیقه به بیش از آن. 1639 01:17:32,720 --> 01:17:34,910 >> اما باز هم، ما در حال حاضر نوشته شده است بسیاری از این کد، به طوری که ما 1640 01:17:34,910 --> 01:17:36,500 باید بسیار آشنا باشد. 1641 01:17:36,500 --> 01:17:40,750 بعضی از چیزهایی که ما می خواهیم انجام دهیم در چیست تغییر اندازه، اگر شما بیش خوانده ام 1642 01:17:40,750 --> 01:17:43,470 مشکل است؟ 1643 01:17:43,470 --> 01:17:45,290 اگر شما آنها را به من بدهد، ما می تواند در مورد آنها صحبت کنید. 1644 01:17:45,290 --> 01:17:47,340 بعضی از چیزهایی که ما می خواهیم انجام دهیم چیست؟ 1645 01:17:47,340 --> 01:17:47,970 >> STUDENT 80: عمودی - 1646 01:17:47,970 --> 01:17:52,360 بنابراین شما باید به صورت افقی آن را تغییر اندازه، اما به صورت عمودی آن را تغییر اندازه و همچنین؟ 1647 01:17:52,360 --> 01:17:58,475 >> JASON HIRSCHHORN: بنابراین اگر ما داده شده است در حال پیکسل، و ما می خواهیم آن را تغییر اندازه توسط 1648 01:17:58,475 --> 01:18:03,460 دو عامل، در حال حاضر نیاز به تغییر اندازه به صورت افقی و تغییر اندازه 1649 01:18:03,460 --> 01:18:05,220 به صورت عمودی. 1650 01:18:05,220 --> 01:18:06,640 آیا این را حس؟ 1651 01:18:06,640 --> 01:18:07,060 آره. 1652 01:18:07,060 --> 01:18:09,300 به طوری که احتمالا این بزرگترین چالش. 1653 01:18:09,300 --> 01:18:10,430 و ما در مورد که در یک ثانیه صحبت کنید. 1654 01:18:10,430 --> 01:18:11,065 آره. 1655 01:18:11,065 --> 01:18:15,270 >> STUDENT 81: راه من از آن فکر شما لازم بود آن را چاپ کنید - 1656 01:18:15,270 --> 01:18:15,490 >> JASON HIRSCHHORN: صبر کنید. 1657 01:18:15,490 --> 01:18:17,580 آیا به ما بگویید که چه چیزی شما را انجام داد. 1658 01:18:17,580 --> 01:18:20,620 ما قصد داریم به بحث در منطق. 1659 01:18:20,620 --> 01:18:21,870 >> STUDENT 81: OK. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 چه سوال بود؟ 1662 01:18:27,410 --> 01:18:28,892 >> JASON HIRSCHHORN: شما فقط دست خود را مطرح کرد. 1663 01:18:28,892 --> 01:18:31,600 هیچ سوال وجود دارد. 1664 01:18:31,600 --> 01:18:32,520 اجازه بدهید من آن را در حال حاضر. 1665 01:18:32,520 --> 01:18:34,560 اجازه بدهید من این را به طور خلاصه مورد بحث. 1666 01:18:34,560 --> 01:18:38,400 پس ما یک پیکسل، ما به خواهید تکرار آن، هر دو به صورت افقی و 1667 01:18:38,400 --> 01:18:39,360 به صورت عمودی. 1668 01:18:39,360 --> 01:18:48,920 بنابراین ایده آل چیزی است که ما در اینجا انجام دهید این است، ما خوانده شده در پیکسل ما، ما آن را ارسال 1669 01:18:48,920 --> 01:18:51,690 با این حال بسیاری از بار. 1670 01:18:51,690 --> 01:18:54,720 >> اما پس از آن ما باید فوت و فن ما در اینجا، به دلیل پس از آن ما می خواهیم به جست و خیز به 1671 01:18:54,720 --> 01:18:57,660 خط بعدی و ارسال آن را در ابتدای خط بعدی. 1672 01:18:57,660 --> 01:19:02,960 بنابراین اگر ما می خواهیم به تکرار هر دو افقی و عمودی، چه است 1673 01:19:02,960 --> 01:19:05,050 یک راه خوب برای انجام این کار - 1674 01:19:05,050 --> 01:19:06,780 خوب اگر به انجام این کار؟ 1675 01:19:06,780 --> 01:19:11,950 بنابراین ما لازم نیست به طور مداوم به دنبال در سراسر فایل های ما به جای چیز. 1676 01:19:11,950 --> 01:19:14,360 >> این سوال ممکن است ساخته شده حس، اما من فکر می کنم 1677 01:19:14,360 --> 01:19:15,800 در پاسخ به آن کمک خواهد کرد. 1678 01:19:15,800 --> 01:19:17,210 >> STUDENT 82: ایجاد یک آرایه؟ 1679 01:19:17,210 --> 01:19:20,090 >> JASON HIRSCHHORN: بنابراین اجازه دهید فکر می کنم هر یک از فایل به عنوان یک ردیف. 1680 01:19:20,090 --> 01:19:22,550 اجازه دهید از نظر ردیف فکر می کنم. 1681 01:19:22,550 --> 01:19:26,670 اگر ما سطر اول ما را از کوچک ما عکس، ما می توانیم که ردیف را 1682 01:19:26,670 --> 01:19:30,640 به یک ردیف بزرگ از یک تصویر بزرگ، و پس از آن تکرار همان ردیف با این حال 1683 01:19:30,640 --> 01:19:34,250 چند بار به آن نیاز دارد به تکرار، به جای رفتن پیکسل به پیکسل 1684 01:19:34,250 --> 01:19:37,260 که گیج کننده است زمانی که می شود برخورد با فایل. 1685 01:19:37,260 --> 01:19:38,730 >> از آنجا که اگر ما تا به حال - 1686 01:19:38,730 --> 01:19:41,260 I مقدار فضای خالی دارم. 1687 01:19:41,260 --> 01:19:46,490 اگر این فایل ما است، و ما باید که یک پیکسل وجود دارد، و ما می خواهیم آن را 1688 01:19:46,490 --> 01:19:49,840 سمت راست وجود دارد، ما هنوز هم برخی از چیزهایی که دارند که نیاز به بیش از وجود دارد که ما 1689 01:19:49,840 --> 01:19:51,450 نوشتن و ایجاد فایل جدید ما - 1690 01:19:51,450 --> 01:19:53,250 فایل ما که دو بار به عنوان بزرگ است. 1691 01:19:53,250 --> 01:19:56,820 >> اما این واقعا سخت با توابع فایل به جست و خیز در اطراف به خط جدید 1692 01:19:56,820 --> 01:20:00,260 مانند آن، و سپس به اینجا بروید و همه چیز را در وجود دارد. 1693 01:20:00,260 --> 01:20:04,500 این تقریبا غیر ممکن است برای انجام کاری مانند آن، اگر آن را حس می کند. 1694 01:20:04,500 --> 01:20:10,180 بنابراین اگر ما از نظر ردیف فکر، ما می توانیم را ردیف ما، و سپس قرار دادن آن - 1695 01:20:10,180 --> 01:20:11,720 تکرار ردیف به صورت عمودی. 1696 01:20:11,720 --> 01:20:15,860 >> و این که ما چگونه با تغییر اندازه برخورد به صورت عمودی به جای افقی. 1697 01:20:15,860 --> 01:20:18,810 این نوع از سریع بود، و کمی گیج کننده است. 1698 01:20:18,810 --> 01:20:22,375 متاسفانه در زمان ما است. 1699 01:20:22,375 --> 01:20:27,340 من در خارج برای کسانی از شما خواهد ایستاد در اینجا سوال در مورد که 1700 01:20:27,340 --> 01:20:30,500 مجموعه ای مشکل، از جمله بهبود می یابند. 1701 01:20:30,500 --> 01:20:32,320 >> بنابراین اجازه دهید در حال حاضر موکول. 1702 01:20:32,320 --> 01:20:34,480 و دوباره، اگر شما هر گونه سوال، ما در خارج می تواند به چت. 1703 01:20:34,480 --> 01:20:38,294