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