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 All възел се е вид структура на. 53 00:02:32,210 --> 00:02:36,090 Не забравяйте, че една структура на е, ако искате да се създаде определен вид променлива 54 00:02:36,090 --> 00:02:39,850 в С, който не вече съществува, вие, като програмист, 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 в действителност е бил създаден от нас, че не съществува в рамките на C по себе си. 58 00:02:50,770 --> 00:02:53,150 И така, че създадете такъв е, че трябва 59 00:02:53,150 --> 00:02:57,170 заглавната част на typedef структура на, което казва на компилатора, че съм 60 00:02:57,170 --> 00:02:59,640 за да се създаде структура на. 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 И тогава ние също ще са указател, наречена "Напред" 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 компилаторът знае, OK това е краят на моята структура на. 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 Може ли някой да види какъв е проблемът е ако бяхме първи сочен 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 Или пък, ако случайно сочен един 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 То също е много, аз мисля, CSC вид отношение. 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 >> OK, вие вероятно искат за да започне подготовка за работа 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 тази страница има връзка който казва: "За Quiz нула." 156 00:07:28,566 --> 00:07:29,440 Link ще ви отведе там. 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 до Z, отидете на Davies Auditorium. 163 00:07:47,500 --> 00:07:50,240 И това се отнася само за хората в секцията сряда. 164 00:07:50,240 --> 00:07:53,420 >> Ако сте като викторина на Четвъртък, отидете на SSS 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 ПРОФЕСОР: O до Я, ти започваш да отиде в залата Дейвис. 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 >> О, да, това си ти Криста. 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 Да, O до Я, ти започваш за да отидете на Davies 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 Къде, мисля, че това е като да се 01:00 02:15 в сряда и 2:30-3: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 >> OK, на всички въпроси, логистично по отношение на теста 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-- I, взети заедно някои проблеми практика 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 АУДИТОРИЯ: по-One. 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 ПРОФЕСОР: OK, така че викторина е предизвикателство. 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 Binary, като вие може да изземване, е база две. 291 00:13:09,070 --> 00:13:12,470 Decimal е основа 10, или това, което ние като хора обикновено интерпретират. 292 00:13:12,470 --> 00:13:17,120 Шестнадесетично е основа 16, която е равна на нула чрез девет както и чрез Е. 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 >> OK, нека го донесе инча 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 Totally OK толкова дълго, колкото имате представа за това как да отида за това. 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 >> АУДИТОРИЯ: Two до мощност нула, 12:58. 319 00:19:03,349 --> 00:19:04,140 ПРОФЕСОР: Точно така. 320 00:19:04,140 --> 00:19:04,640 Така. 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 >> АУДИТОРИЯ: Two, [недоловим] 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 Plus двама до петата, която е всичко, което е останало. 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 Good. 352 00:20:27,600 --> 00:20:30,044 Всеки, объркан за това как имаме, че или? 353 00:20:30,044 --> 00:20:31,960 Cool, ще имат отговори за следващия слайд. 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 И начина, по който направи това, събраха нагоре че половината и събраха до тази половина. 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 >> Така че това ще бъде F. One, един, един, един тук е също 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 Така че имате две до нулев, който е един. 393 00:22:50,792 --> 00:22:51,500 АУДИТОРИЯ: О, OK. 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 >> АУДИТОРИЯ: OK. 398 00:22:54,890 --> 00:22:55,830 >> ПРОФЕСОР: OK. 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 ПРОФЕСОР: Искам да кажа, че си събраха до използване на основния математика. 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 Това ще бъде нещо от нула до F. 414 00:23:33,270 --> 00:23:35,722 >> Тук също ще бъде нещо от нула до F. 415 00:23:35,722 --> 00:23:37,722 И тогава може просто да сложи тези две точно там. 416 00:23:37,722 --> 00:23:38,263 >> АУДИТОРИЯ: OK. 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 >> OK, всеки, който иска да получи това един изстрел? 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 Good. 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 Какъв номер е A съответства? 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 АУДИТОРИЯ: OK. 463 00:25:47,424 --> 00:25:48,240 Awesome. 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 ПРОФЕСОР: OK. 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 Така че от А до 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 >> АУДИТОРИЯ: Е, че когато сложите, че ФОРМАТ? 516 00:28:58,340 --> 00:28:59,131 >> ПРОФЕСОР: Точно така. 517 00:28:59,131 --> 00:29:01,780 Така ФОРМАТ, всеки път, вие вземат вход от потребителя 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 >> Така ФОРМАТ е функцията от които се нуждаем, за да получите достъп до 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 Имаме инт главната (празнотата), какво прави анулира тук да кажа тук, на третия ред? 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 Защо ние дори имаме инт главната? 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 >> OK, втора програма тук. 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 Но обясни защо тази програма мисли че един разделен на 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 >> A плувка по своята същност е неточно. 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 ID is-- Мисля, че това е 64-битов компютър. 610 00:33:33,480 --> 00:33:37,520 >> A плувка може да бъде представена само с ограничен размер на тези битове. 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 Appliance, която 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 Един наречени лидер и един нарича т. 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-- David любов да се използва за пример като майка, нали? 673 00:36:29,170 --> 00:36:37,890 Малки букви М-О-М за S, T се равнява на малки букви M-O-M. 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 OK, аз мисля, че ние сме добри. 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 и адреса, на който m. 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 >> Zee: Zee. 722 00:39:29,589 --> 00:39:32,130 ПРОФЕСОР: Да, и какво от това Zee препоръчва да работи абсолютно. 723 00:39:32,130 --> 00:39:32,629 Нали така? 724 00:39:32,629 --> 00:39:35,730 Бихме могли сочен показалеца и действително отида и достъп 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 >> Можем да кажем, OK, показалеца, дайте ми какво има вътре тук. 728 00:39:43,670 --> 00:39:44,960 Той ще се върне на m. 729 00:39:44,960 --> 00:39:47,168 И бих казал, показалеца, дайте ми какво има вътре тук. 730 00:39:47,168 --> 00:39:47,750 Връща m. 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 >> АУДИТОРИЯ: [недоловим] сочен това, можете просто сложи една звезда [недоловим] 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 се изпълнява за всеки отделен характер и в двете струни. 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 можете да направите, ако, звезда ите се равнява на звезда тон. 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 Не забравяйте, че David в клас споменато безплатно синтактична захар? 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 е дължината на низ, просто можете да 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 АУДИТОРИЯ: OK. 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 Good. 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 Така че можете да се предположи, че здравей ще бъде пет, Н-E-L-L-О. 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 Дали някой си спомня какво число препълване е? 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 >> АУДИТОРИЯ: Така че, предполагам, че се връща отрязване на примера по-рано. 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 >> И така, на теория, I може да излезе с редица 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 И така число преливане да е, ако се опитате да създадете цяло число, което е извън това, което 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 Ще се създаде функция, наречена инт strlen където 850 00:45:02,020 --> 00:45:08,436 а премине в, Чар звезда, или низ, указател към низ наречен лидер. 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 A линия, докато може да бъде много полезен тук. 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 Candy също ще бъде на разположение за викторината, мисля. 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 >> АУДИТОРИЯ: OK. 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 Първо, няма кой искате да кажете на ми какво означава, че инт? 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 The 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 АУДИТОРИЯ: String? 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 Style трябва да бъде добър. 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 Hint, това е много лесно. 934 00:52:08,633 --> 00:52:09,320 >> Да? 935 00:52:09,320 --> 00:52:11,920 >> АУДИТОРИЯ: Int, п е равно на нула. 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 >> Така че ние искаме да имаме първа брояч на тип инт. 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 >> OK, може би малко по-сложна Сега, как ще да го направи? 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 >> АУДИТОРИЯ: I. 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 >> АУДИТОРИЯ: За съжаление, аз го нарече аз. 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 би било Н-E-L-L-О наклонена черта нула, нали? 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 >> Null, всичко, което е средство, ако имате несъществуваща показалеца, на първо място, 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 >> Всеки OK с това? 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 Реално бихме могли също така да попитам ти пиша от А до 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 Ти просто обхождане чрез а ти обърне нещата. 1084 00:58:26,940 --> 00:58:30,190 Или разчитате или когато включите нещата по различен начин. 1085 00:58:30,190 --> 00:58:32,280 >> Бих suggest-- I не знам дали отиваме 1086 00:58:32,280 --> 00:58:39,080 да ви помоля да запомните какво капитал A или капитали Z, или малки букви A, или с малки букви 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 Като главни букви A, какво, 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 АУДИТОРИЯ: Cool. 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 Използвах п вместо брой, но, вие знам, каквото и да плува лодката си. 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 Така че всичко, което правя в моята основна функция създава число х е равно на 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 Totally глоба, ако не си прав. 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 Така че ние ще започне в инт основната нищожен, 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 х е равно на 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 Stack порасне, нали? 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 >> Така че тук, в размер на 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 >> Function. 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 Отиваме да се създаде друг променлива инт х е равно на 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 След това ние ще се отпечата от цялото число на х. 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 Отиваме да ФОРМАТ. 1264 01:06:46,350 --> 01:06:48,222 Какво е това х рамките главната? 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 >> Каква стойност е х сега? 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 Защото не забравяйте, в рамките на нашата функция, х е равно на 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 И тук х е равно на 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 Така например за линия, за инт аз равна на 0. 1301 01:08:25,950 --> 01:08:28,460 I е по-малко от, аз не знам, 10. 1302 01:08:28,460 --> 01:08:32,111 I плюс плюс. 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 Подобно на имот без референтен числа или нещо такова? 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 й, и да го правя каквото. 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 Уф! 1334 01:10:03,800 --> 01:10:05,470 Всеки OK за това? 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 >> Така че, Уважаеми Andi, виждам, мисля, нещо не е наред с моя компилатор. 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 >> Уважаеми Andi. 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 Поглед назад към слайдовете на разделите когато ние обхванати Merge подреди. 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 двоично търсене е п дневник на п. 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 Как да би Псевдокод кодират тези навън. 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 >> АУДИТОРИЯ: Трябва ли да знам как се кодира Merge подреди? 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 Но това не може да е невъзможно, ако ние ви помоля да използвате Псевдокод го. 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 >> Да, OK, още един. 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 Защо е поглед Selection sort-- в Избор sort-- всички Runtimes 1474 01:16:00,320 --> 01:16:02,060 се п квадрат. 1475 01:16:02,060 --> 01:16:06,714 Независимо от това как списъка въпрос за вие като, така че защо да е Selection 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 >> АУДИТОРИЯ: Защото Selection подреди всеки позиция или пространство в този малък масив 1483 01:16:38,084 --> 01:16:40,350 нещо, или нещо такова. 1484 01:16:40,350 --> 01:16:44,430 Така че дори и в най-добрия случай, дори да е перфектно подредени, 1485 01:16:44,430 --> 01:16:47,380 тя все още ще трябва да бъде като, OK, една. 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 OK, един е най-малката. 1489 01:16:51,249 --> 01:16:53,053 И след това тя отива отново и е като, OK, две 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 Когато за пръв път, можете да знам какво Selection сортиране 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 Как ще се отрази, че на автономна работа? 1511 01:17:37,240 --> 01:17:40,270 И тогава Selection подреди, ще забележите, че всъщност не е от значение. 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 >> АУДИТОРИЯ: Може ли да поговорим малко малко за побитовите оператори? 1528 01:18:19,720 --> 01:18:20,280 >> ПРОФЕСОР: Да. 1529 01:18:20,280 --> 01:18:22,446 Така че побитовите оператори са нещо, което най-вероятно 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 Побитова оператор, има пет от тях, нали? 1534 01:18:33,080 --> 01:18:41,370 >> Има това, което е х или функция, има амперсанд, който е и. 1535 01:18:41,370 --> 01:18:44,050 Тръба, която е Or. 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 Harvard тя обхваща в рамките на първите 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 ПРОФЕСОР: No. 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 >> Въпреки това, тъй като някои намеци и предложения, I 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 Ако някой иска да дойде и да поиска на TAS въпрос, ние ще бъдем там. 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 >> ПРОФЕСОР: No. 1570 01:20:04,580 --> 01:20:06,710 >> АУДИТОРИЯ: Трябва да се свържете отново го [недоловим]? 1571 01:20:06,710 --> 01:20:09,270 >> ПРОФЕСОР: Така че в общи линии структура на на един възел се, не забравяйте, 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