1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> SPRECHER: OK, ja, Sie werden es nicht glauben, aber letzte Woche, am Montag, in Pierce, ich 3 00:00:15,180 --> 00:00:16,090 war unten im Keller. 4 00:00:16,090 --> 00:00:17,010 Ich habe nie zu Pierce gehen. 5 00:00:17,010 --> 00:00:20,530 Und ich werde nie wieder zurück, weil Ich habe meine Sachen allein, 6 00:00:20,530 --> 00:00:23,950 wie, fünf Minuten und jemand stahl meinen Computer und meine 7 00:00:23,950 --> 00:00:26,050 Telefon aus meinem Rucksack. 8 00:00:26,050 --> 00:00:28,780 Was bedeutet, ich habe es zurück, und dann weniger als eine Woche später 9 00:00:28,780 --> 00:00:30,220 es wurde wieder gestohlen. 10 00:00:30,220 --> 00:00:31,570 >> Und dann stellte sich habe auf - 11 00:00:31,570 --> 00:00:34,540 Mein iPhone suchen weiter wenig hilfreich zu sein. 12 00:00:34,540 --> 00:00:37,340 Also habe ich weiter fördern Sie nicht, es zu benutzen. 13 00:00:37,340 --> 00:00:42,270 Es stellte sich auf einmal, und es war in MIT, wie 15 Minuten später, und die Person, 14 00:00:42,270 --> 00:00:45,770 nannte diese Telefonnummer, die zeigten, in meinem AT & T Anrufliste. 15 00:00:45,770 --> 00:00:48,830 >> Also ging ich online, genannt, dass Telefon Nummer, und es ging direkt in diese 16 00:00:48,830 --> 00:00:50,540 Anrufbeantworter in Spanisch. 17 00:00:50,540 --> 00:00:52,520 Und ich habe nicht davon gehört. 18 00:00:52,520 --> 00:00:54,800 Also musste ich einen neuen zu bekommen, Computer und Handy. 19 00:00:54,800 --> 00:00:55,150 Ich weiß. 20 00:00:55,150 --> 00:00:56,326 Ja. 21 00:00:56,326 --> 00:01:00,110 Aber wenn Sie wollen Jungs zu Chip in meinem Computer-Fonds nach diesem, das ist, warum 22 00:01:00,110 --> 00:01:01,030 Ich habe Ihnen hier gefragt. 23 00:01:01,030 --> 00:01:02,280 Nur ein Scherz. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Aber das war wirklich traurig und traumatisch. 26 00:01:07,420 --> 00:01:10,700 >> Aber es ist jetzt alles wieder, und das war, warum die p-Set 8 so lange gedauert hat, weil 27 00:01:10,700 --> 00:01:12,480 Ich habe keinen Computer. 28 00:01:12,480 --> 00:01:13,730 Und jemand hat es gestohlen. 29 00:01:13,730 --> 00:01:16,940 Und ich per E-Mail gefragt, ob sie Ihre Klasse würde p-8 gesetzt. 30 00:01:16,940 --> 00:01:18,790 Aber sie sagte nein. 31 00:01:18,790 --> 00:01:20,000 Und ich war wie, kann ich mein Computer wieder? 32 00:01:20,000 --> 00:01:21,270 Und sie sind wie, nein. 33 00:01:21,270 --> 00:01:22,130 Nur ein Scherz. 34 00:01:22,130 --> 00:01:22,930 >> OK. 35 00:01:22,930 --> 00:01:28,140 Dies ist unsere letzte Abschnitt, und ich habe ein paar - wir haben nur drei 36 00:01:28,140 --> 00:01:29,790 Dinge auf der Tagesordnung. 37 00:01:29,790 --> 00:01:31,330 Wir werden ein bisschen reden über die Q-Führer. 38 00:01:31,330 --> 00:01:33,900 Dann werden wir verbringen 15 Minuten an einem kühlen Demo. 39 00:01:33,900 --> 00:01:36,890 Dann sind wir alle werden sagen, Abschied von einander. 40 00:01:36,890 --> 00:01:41,460 Sie nicht wirklich brauchen Ihre Computer oder ein Stift oder Papier, um Notizen zu machen oder 41 00:01:41,460 --> 00:01:42,410 folgen. 42 00:01:42,410 --> 00:01:45,620 Also gehe ich davon aus, wenn Sie Ihren Computer up, dann sind Sie bei Facebook. 43 00:01:45,620 --> 00:01:46,530 Nur zu sagen. 44 00:01:46,530 --> 00:01:49,650 Es sei denn, Sie sind das Ausfüllen Q Führung, die erste ist. 45 00:01:49,650 --> 00:01:50,690 >> Der Q-Führung ist offen. 46 00:01:50,690 --> 00:01:53,520 Sie haben eine E-Mail an sich hatte. 47 00:01:53,520 --> 00:01:56,930 Sobald alle Q Zeug ist in der vorgelegten Ende des Jahres, bekomme ich all die 48 00:01:56,930 --> 00:02:03,710 Q Kommentare in Partituren von allen Wer wählt, mir Feedback zu geben. 49 00:02:03,710 --> 00:02:04,810 Und so, wenn Sie in der Q-go - 50 00:02:04,810 --> 00:02:07,440 Ich weiß nicht, ob Sie dies tun können, Jeff, weil Sie und Erweiterung Schüler. 51 00:02:07,440 --> 00:02:12,730 Aber wenn Sie gehen in der Q, wenn Sie nicht über es getan, holen Sie Ihre 52 00:02:12,730 --> 00:02:14,020 Lehrer, die David Malan ist. 53 00:02:14,020 --> 00:02:14,970 Sie müssen ihn tun. 54 00:02:14,970 --> 00:02:15,690 >> Und dann können Sie TFs holen. 55 00:02:15,690 --> 00:02:17,750 Und Sie können so viele wählen Transkriptionsfaktoren, wie Sie wollen. 56 00:02:17,750 --> 00:02:18,990 Aber es gibt 60 von uns. 57 00:02:18,990 --> 00:02:20,350 Sie müssen nicht alle holen. 58 00:02:20,350 --> 00:02:23,090 Sie können wählen Sie einfach mir, oder wählen Sie einfach ein paar andere Leute, wenn Sie wollen, um 59 00:02:23,090 --> 00:02:24,470 geben ihnen Rückmeldungen als gut. 60 00:02:24,470 --> 00:02:27,595 Und dann Partituren auf alle diese erhalten Sie verschiedenen Achsen, und dann verlassen können 61 00:02:27,595 --> 00:02:28,570 ihnen Feedback. 62 00:02:28,570 --> 00:02:31,520 >> Und dann, wie einen Monat später, Ich werde all das Feedback zu bekommen. 63 00:02:31,520 --> 00:02:34,570 Und genau wie die Rück Sie waren die mir während des Semesters, ich 64 00:02:34,570 --> 00:02:35,790 Lesen Sie alles. 65 00:02:35,790 --> 00:02:39,620 Und es ist wirklich hilfreich, und es hilft mich als Lehrer und als wachsen 66 00:02:39,620 --> 00:02:40,680 Einzel. 67 00:02:40,680 --> 00:02:43,360 Also, bitte, nehmen Sie sich Zeit, es zu tun. 68 00:02:43,360 --> 00:02:45,020 Wir sind nur hier sein für, wie, 30 Minuten. 69 00:02:45,020 --> 00:02:48,090 Also, wenn Sie wollen, am Ende dieser, um dauern fünf Minuten und füllen Sie einfach 70 00:02:48,090 --> 00:02:49,960 Q, denn es braucht nicht mehr Zeit als die. 71 00:02:49,960 --> 00:02:53,410 Das würde auch wunderbar sein, und Sie Ihre Noten bekommen wieder schneller, wenn 72 00:02:53,410 --> 00:02:54,620 Sie füllen das Q. 73 00:02:54,620 --> 00:02:56,580 >> So sind die meisten von Ihnen haben auch schon gemacht - 74 00:02:56,580 --> 00:02:58,240 oder nicht, über die Hälfte von euch haben, dass zuvor. 75 00:02:58,240 --> 00:03:00,060 Aber wenn Sie ein Neuling sind, das ist, was das ist. 76 00:03:00,060 --> 00:03:01,910 Es wird das gleiche für alle Klassen sein. 77 00:03:01,910 --> 00:03:02,270 Tun Sie es. 78 00:03:02,270 --> 00:03:02,900 Es dauert fünf Minuten. 79 00:03:02,900 --> 00:03:07,610 Aber auch, wenn man es ein bisschen schwer tun, das ist nicht das Schlimmste, was 80 00:03:07,610 --> 00:03:10,270 in der Welt, weil ich sicherlich nehmen sie ernst. 81 00:03:10,270 --> 00:03:13,000 >> Also, wenn Sie mir ein Smiley-Gesicht zu verlassen, Ich werde zu schätzen. 82 00:03:13,000 --> 00:03:17,550 Aber ich würde es auch begrüßen, wenn Sie hat mich mehr als ein Smiley-Gesicht. 83 00:03:17,550 --> 00:03:18,270 Aber es ist bis zu Ihnen. 84 00:03:18,270 --> 00:03:21,540 Ich kann Ihnen nicht sagen - oder wie ein großes Smiley Gesicht, mit einem Kapital D. Das wäre 85 00:03:21,540 --> 00:03:23,060 noch besser sein. 86 00:03:23,060 --> 00:03:27,860 >> OK, das ist alles, was ich für die Frage: Wenn Sie Fragen haben, können Sie fragen 87 00:03:27,860 --> 00:03:29,370 mir, aber ziemlich selbsterklärend. 88 00:03:29,370 --> 00:03:31,090 Nur, bitte, füllen es aus. 89 00:03:31,090 --> 00:03:34,390 Ich würde es wirklich schätzen, und es bedeutet mir sehr viel. 90 00:03:34,390 --> 00:03:38,910 >> OK, das ist, was wir ausgeben 15 Minuten durchlaufen. 91 00:03:38,910 --> 00:03:39,800 Ich werde Ihnen etwas Code zu zeigen. 92 00:03:39,800 --> 00:03:42,080 Ich denke, das ist wirklich cool, und das hat mir mehr 93 00:03:42,080 --> 00:03:43,810 in der Informatik angeregt wird. 94 00:03:43,810 --> 00:03:46,480 Also ich hoffe, es wird nicht die gleiche für Sie alle. 95 00:03:46,480 --> 00:03:51,760 >> Wir werden zu öffnen - und das Code werde ich Ihnen später zu senden. 96 00:03:51,760 --> 00:03:52,680 Aber wir sind gerade dabei zu öffnen - 97 00:03:52,680 --> 00:03:54,310 Ich bin in meinem Terminal - 98 00:03:54,310 --> 00:03:56,810 wir werden dieses Programm für genannt [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> Kann jeder lesen, dass, oder soll ich machen es größer? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 Kann mir jemand sagen, was dieser Code wird tun, wenn ich es laufen, oder, was das 103 00:04:13,040 --> 00:04:14,320 Programm machen wird, wenn ich es? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Avi,?] Was denken Sie, es geht zu tun? 106 00:04:32,400 --> 00:04:33,335 Fertig Kauen. 107 00:04:33,335 --> 00:04:35,033 Sie sollten nicht mit reden Ihr Mund offen. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> ZIELGRUPPE: Braucht es eine Reihe von Argumente finden Summe von ihnen zurück 110 00:04:42,860 --> 00:04:45,285 Summe, und drucken Sie es aus? 111 00:04:45,285 --> 00:04:53,045 Oder es dauert, in zwei Argumente, und dann tut es [unverständlich]. 112 00:04:53,045 --> 00:04:56,460 Und dann druckt er aus, was die Ergebnisse sind. 113 00:04:56,460 --> 00:04:58,100 >> SPRECHER: In der Nähe, ganz in der Nähe. 114 00:04:58,100 --> 00:04:59,840 Wer möchte hinzufügen [? welche Avi?] gesagt? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 Sie müssen dieses Programm geben keine Befehlszeilenargumente? 117 00:05:07,293 --> 00:05:09,145 >> ZIELGRUPPE: Nein 118 00:05:09,145 --> 00:05:09,610 >> SPRECHER: Nein 119 00:05:09,610 --> 00:05:11,250 Was passiert, wenn Sie nicht geben es keine Befehlszeilenargumente? 120 00:05:11,250 --> 00:05:12,500 Ich schreibe dot Strich MySum. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> ZIELGRUPPE: 1 plus 2 gleich 3 ist. 123 00:05:16,630 --> 00:05:17,250 >> Lautsprecher: 1 plus 2 gleich 3 ist. 124 00:05:17,250 --> 00:05:18,570 Und es wird, dass ausdrucken. 125 00:05:18,570 --> 00:05:19,450 Das ist genau richtig. 126 00:05:19,450 --> 00:05:21,370 Sie finden, dass die Druck f. Linie an der Unterseite. 127 00:05:21,370 --> 00:05:23,450 Es wird auszudrucken a, b, und dann die Summe von a und b. 128 00:05:23,450 --> 00:05:26,360 Und ich glaube, dass Sie davon ausgehen, dass Summe funktioniert ordnungsgemäß. 129 00:05:26,360 --> 00:05:28,120 Gute Annahme. 130 00:05:28,120 --> 00:05:32,250 >> OK, und was passiert, wenn ich geben, was Argument? 131 00:05:32,250 --> 00:05:33,010 [? Manu? ?] 132 00:05:33,010 --> 00:05:36,230 >> Zielgruppe: IT werde hinzufügen, was auch immer das erste Argument ist, b. 133 00:05:36,230 --> 00:05:37,150 Oder 2, sorry. 134 00:05:37,150 --> 00:05:38,480 >> SPRECHER: Richtig, 2. 135 00:05:38,480 --> 00:05:42,470 Weiß jemand, was strtol tut? 136 00:05:42,470 --> 00:05:43,960 Es ist im Grunde ATOI. 137 00:05:43,960 --> 00:05:47,240 Atoi ist eigentlich eine hübsche Version von - 138 00:05:47,240 --> 00:05:49,600 oder eine einfachere Version der strtol. 139 00:05:49,600 --> 00:05:51,790 Aber es nutzt eigentlich strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 Und ich fand heraus, dass, weil ich wollte so etwas wie atoi, und wenn ich dann 142 00:05:58,010 --> 00:06:01,110 atoi hat, las ich hier unten. 143 00:06:01,110 --> 00:06:04,380 Und ich fand "dieses Verhalten ist das gleiche wie "strtol. 144 00:06:04,380 --> 00:06:06,850 Es ist also im Grunde für ATOI alle Absichten und Zwecke. 145 00:06:06,850 --> 00:06:09,320 Und Sie sehen, ich null und 10 verwenden, auch. 146 00:06:09,320 --> 00:06:14,390 >> Diese können Sie tatsächlich einen String zu nehmen, und es in einer Reihe, und wählen Sie 147 00:06:14,390 --> 00:06:15,970 welche Basis Sie es tun wollen in. 148 00:06:15,970 --> 00:06:17,370 Das ist also Basis 10 finden Sie hier. 149 00:06:17,370 --> 00:06:20,455 Ich konnte für dezimal getan Basis zwei, Basis 16 für hexadezimal. 150 00:06:20,455 --> 00:06:22,090 Es ist ziemlich cool. 151 00:06:22,090 --> 00:06:25,860 Aber lange Rede kurzer Sinn, diese dauert zwei Zahlen und fügt sie zusammen. 152 00:06:25,860 --> 00:06:29,260 >> Also lassen Sie es laufen. 153 00:06:29,260 --> 00:06:32,560 Und Sie werden auch feststellen, es sind einige Dinge - 154 00:06:32,560 --> 00:06:37,830 so habe ich ein Makefile genau hier, und wenn du das öffnen, einige Dinge 155 00:06:37,830 --> 00:06:39,270 Sie werden bemerken, sind unterschiedlich. 156 00:06:39,270 --> 00:06:42,370 Insbesondere dieses Argument hier, werden Sie wahrscheinlich 157 00:06:42,370 --> 00:06:43,010 habe nicht gesehen, dass vor. 158 00:06:43,010 --> 00:06:45,770 Im Allgemeinen wir die Dinge zusammenzustellen strich Null, Null. 159 00:06:45,770 --> 00:06:51,500 Dash Null, Null, bedeutet das nicht tun keine Optimierungen, Compiler. 160 00:06:51,500 --> 00:06:54,950 Versuchen Sie nicht und machen Sie etwas Besonderes oder machen etwas schneller laufen, oder sich 161 00:06:54,950 --> 00:06:56,530 von Variablen, die notwendig sind, zu befreien. 162 00:06:56,530 --> 00:06:58,080 Sie diesen Code optimieren gar nicht, 163 00:06:58,080 --> 00:07:00,110 >> Ich bin für die Third-Level-fragen Optimierung. 164 00:07:00,110 --> 00:07:02,580 Also ich frage Compiler zu tun eine Menge von Optimierungen. 165 00:07:02,580 --> 00:07:05,870 Das können Sie im Makefile ändern, wenn Sie diesen Code haben, wenn Sie wollen, 166 00:07:05,870 --> 00:07:07,190 , verschiedene Sachen zu sehen. 167 00:07:07,190 --> 00:07:08,660 Welche werden wir in einem zweiten zu zeigen. 168 00:07:08,660 --> 00:07:12,080 So laufen wir meinen Summe 1 plus 2 plus 3. 169 00:07:12,080 --> 00:07:13,445 Jemand gab mir zwei Argumente. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> ZIELGRUPPE: 4 und 5. 172 00:07:18,210 --> 00:07:18,966 >> SPRECHER: 4 und 5. 173 00:07:18,966 --> 00:07:19,900 Danke. 174 00:07:19,900 --> 00:07:20,860 Große, es funktioniert. 175 00:07:20,860 --> 00:07:25,700 Was sind einige andere gute Argumente um zu versuchen, um sicherzustellen, dass das funktioniert? 176 00:07:25,700 --> 00:07:27,050 Anyone? 177 00:07:27,050 --> 00:07:27,430 >> ZIELGRUPPE: 0. 178 00:07:27,430 --> 00:07:29,210 >> SPRECHER: 0 und? 179 00:07:29,210 --> 00:07:31,010 >> ZIELGRUPPE: Negative 3. 180 00:07:31,010 --> 00:07:32,040 >> SPRECHER: Es funktioniert. 181 00:07:32,040 --> 00:07:33,670 Aber das waren gute Wahl. 182 00:07:33,670 --> 00:07:36,600 OK, also gehen wir zurück hier. 183 00:07:36,600 --> 00:07:38,540 Dies ist mysum.c. 184 00:07:38,540 --> 00:07:42,440 Sie werden feststellen, es gibt auch etwas, sumfunction.c genannt. 185 00:07:42,440 --> 00:07:48,110 Und das sagt, oh, da ist etwas in sumfunction.c definiert. 186 00:07:48,110 --> 00:07:51,480 Ich weiß nicht, diese Datei hier sind da brauche ich nicht zu. 187 00:07:51,480 --> 00:07:54,840 Aber ich verknüpfen, als ich zu kompilieren, was Sie bemerkt. 188 00:07:54,840 --> 00:07:57,380 >> Lassen Sie uns nach oben. 189 00:07:57,380 --> 00:08:02,880 Wir haben gesehen, wenn wir zusammengestellt MySum, rechts dort, in der binären wir aus verknüpften 190 00:08:02,880 --> 00:08:04,130 sumfunction.o. 191 00:08:04,130 --> 00:08:05,780 192 00:08:05,780 --> 00:08:08,470 Und ich habe die Header-Datei müssen nicht denn natürlich gibt es die 193 00:08:08,470 --> 00:08:09,240 Funktionsdeklaration. 194 00:08:09,240 --> 00:08:12,200 So scharf sind normalerweise nur Ausgänge in einer Funktionsdeklaration. 195 00:08:12,200 --> 00:08:13,730 Hier habe ich nur ihn gerade im Code. 196 00:08:13,730 --> 00:08:16,370 Und so habe ich tun müssen, ist Link in der binären, was ich tue. 197 00:08:16,370 --> 00:08:19,950 >> Alle Vermutungen für das, was ist in sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 Welche Code, den ich geschrieben habe in sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> ZIELGRUPPE: [unverständlich]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> SPRECHER: Alle Vermutungen? 203 00:08:30,630 --> 00:08:30,940 Ja? 204 00:08:30,940 --> 00:08:33,710 >> ZIELGRUPPE: Ich denke, definiert einige [unverständlich]. 205 00:08:33,710 --> 00:08:33,975 >> Lautsprecher: Ja. 206 00:08:33,975 --> 00:08:37,650 Also ich tun, Schreib int int Summe ein. 207 00:08:37,650 --> 00:08:41,120 Ich schreibe diese Zeile, und dann habe ich offen geschweifte Klammer, geschweifte Klammer geschlossen. 208 00:08:41,120 --> 00:08:46,160 Was denken Sie, ich schreibe im Inneren die geschweiften Klammern, innerhalb dieser Funktion? 209 00:08:46,160 --> 00:08:46,600 Ja? 210 00:08:46,600 --> 00:08:48,150 >> ZIELGRUPPE: Rückkehr gleich ein. 211 00:08:48,150 --> 00:08:50,010 >> Prozessor: Das ist eine wirklich gute Vermutung. 212 00:08:50,010 --> 00:08:51,720 Wer denkt [? Manu?] Richtig ist? 213 00:08:51,720 --> 00:08:54,122 Er sagt zurückgeben plus b. 214 00:08:54,122 --> 00:08:55,860 OK, nicht jeder. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 Sie, auch tun? 217 00:08:57,390 --> 00:09:00,430 Sie sicher? 218 00:09:00,430 --> 00:09:01,680 OK. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 Was? 221 00:09:10,050 --> 00:09:11,662 >> ZIELGRUPPE: Sie buchstabiert es falsch. 222 00:09:11,662 --> 00:09:13,000 >> SPRECHER: Nein, habe ich nicht. 223 00:09:13,000 --> 00:09:13,966 Ja, nur ein Scherz. 224 00:09:13,966 --> 00:09:15,300 Sie haben Recht. 225 00:09:15,300 --> 00:09:15,930 Das ist genau das, was es sagt. 226 00:09:15,930 --> 00:09:17,110 Es ist eine Rückkehr plus b. 227 00:09:17,110 --> 00:09:18,570 Das macht sehr viel Sinn. 228 00:09:18,570 --> 00:09:20,240 >> OK, gehen wir zurück hier. 229 00:09:20,240 --> 00:09:21,490 Wir sehen, wie der Header - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 das ist der Rückgabetyp. 232 00:09:25,660 --> 00:09:29,100 Denken Sie daran, wir haben an diesem Tag einen gesehen, der Rückgabetyp der Funktion, sondern geht 233 00:09:29,100 --> 00:09:30,160 vor dem Namen des int-Funktion. 234 00:09:30,160 --> 00:09:31,560 Hier habe ich int geschrieben. 235 00:09:31,560 --> 00:09:35,680 Was denken Sie, wird passieren, wenn in diesem Funktion, schreibe ich nicht int, aber 236 00:09:35,680 --> 00:09:38,270 Ich schreibe ohne Vorzeichen? 237 00:09:38,270 --> 00:09:41,050 Der Unterschied ist natürlich, ist, dass unsigned stellt nur positive 238 00:09:41,050 --> 00:09:43,620 Ganzzahlen und int kann positiv oder negativ. 239 00:09:43,620 --> 00:09:45,450 >> Also habe ich die Rückkehr verändert Typ dieser Funktion. 240 00:09:45,450 --> 00:09:49,370 Dieser Code stimmt nicht überein diese Rückkehr geben Sie hier. 241 00:09:49,370 --> 00:09:50,925 Was denken Sie, wird passieren, wenn ich kompilieren? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Sie sollten schreien mich an. 244 00:09:56,240 --> 00:09:57,700 Kein Geschrei. 245 00:09:57,700 --> 00:10:00,050 >> Was ist, wenn ich das Programm? 246 00:10:00,050 --> 00:10:05,810 Lassen Sie uns vor 0 negative tun 3, oder negativ ein. 247 00:10:05,810 --> 00:10:10,180 Es funktioniert immer noch, auch wenn ich sage, es ist eine Rückkehr unsigned integer. 248 00:10:10,180 --> 00:10:12,060 Offensichtlich ist es nicht der Rückkehr eine Ganzzahl ohne Vorzeichen. 249 00:10:12,060 --> 00:10:13,520 Es ist eine Rückkehr mit Vorzeichen. 250 00:10:13,520 --> 00:10:16,130 Es ist ein negativer Rücksendung. 251 00:10:16,130 --> 00:10:17,830 OK, das ist seltsam. 252 00:10:17,830 --> 00:10:27,030 >> Was ist, wenn ich in gehen hier und das tun? 253 00:10:27,030 --> 00:10:29,700 Also habe ich alles verändert von int in unsigniert. 254 00:10:29,700 --> 00:10:31,590 Es kann nur ganze Zahlen ohne Vorzeichen. 255 00:10:31,590 --> 00:10:33,840 Aber wir denken, es wird immer noch laufen? 256 00:10:33,840 --> 00:10:35,652 >> ZIELGRUPPE: Ja. 257 00:10:35,652 --> 00:10:37,270 >> SPRECHER: Es wird. 258 00:10:37,270 --> 00:10:39,410 Das ist verrückt. 259 00:10:39,410 --> 00:10:43,140 Und wir in einer eindeutig zugeordnet geben integer, können wir zwei signierte geben 260 00:10:43,140 --> 00:10:46,280 integer, es funktioniert immer noch. 261 00:10:46,280 --> 00:10:52,150 >> OK, irgendwelche Ideen, warum es immer noch funktioniert, oder was ist los? 262 00:10:52,150 --> 00:10:53,368 Ja, Jeff. 263 00:10:53,368 --> 00:10:56,296 >> ZIELGRUPPE: Es hat etwas zu tun mit der Optimierung, die Sie 264 00:10:56,296 --> 00:10:57,760 markiert. 265 00:10:57,760 --> 00:10:58,210 >> SPRECHER: Nein 266 00:10:58,210 --> 00:11:00,570 Wir könnten die Optimierung zu ändern, es würde immer noch funktionieren. 267 00:11:00,570 --> 00:11:02,240 Das kann ich für Sie tun, aber - 268 00:11:02,240 --> 00:11:02,930 >> ZIELGRUPPE: Ich werde Sie beim Wort zu nehmen. 269 00:11:02,930 --> 00:11:03,690 >> SPRECHER: Ja. 270 00:11:03,690 --> 00:11:09,690 Wenn Sie das Makefile hier öffnen, Ich habe die Optimierung. 271 00:11:09,690 --> 00:11:11,570 So können Sie Strich Null, Null tun können. 272 00:11:11,570 --> 00:11:12,820 Es wird immer noch funktionieren. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Andere Gedanken? 275 00:11:20,280 --> 00:11:22,600 >> Ihr seid alle erwartet, um zu arbeiten, so warum hast du erwarten, dass es funktioniert? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 Nein? 278 00:11:32,150 --> 00:11:33,660 Stille. 279 00:11:33,660 --> 00:11:34,910 OK. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 Ich habe bis sieben Sekunden warten, weil ich eine Frage. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Also das coole an C, und Sie haben Sie - wahrscheinlich erlebt 284 00:11:48,660 --> 00:11:50,260 vielleicht nicht, könnte dies ist das erste Mal. 285 00:11:50,260 --> 00:11:57,030 Aber wie Sie alle wissen, wenn ich schreibe etwas in C, ist es nicht wie sparen 286 00:11:57,030 --> 00:11:57,760 Diese auf dem Computer. 287 00:11:57,760 --> 00:11:59,440 Es ist, als Nullen und Einsen gespeichert. 288 00:11:59,440 --> 00:12:02,970 Es geht von C-Code zu Assembler-Code. 289 00:12:02,970 --> 00:12:09,460 >> Hat jemand Assembler-Code gesehen, Maschine Assembler-Code? 290 00:12:09,460 --> 00:12:10,630 Wir werden uns in einem zweiten zu suchen. 291 00:12:10,630 --> 00:12:12,040 Es geht von C-Code zu Assembler-Code. 292 00:12:12,040 --> 00:12:13,755 Und euch wissen, die Stufen der Zusammenstellung. 293 00:12:13,755 --> 00:12:17,410 Sie musste, dass für ein Quiz zu merken, und schreiben sie dann auf Quiz Null. 294 00:12:17,410 --> 00:12:18,240 Die meisten Menschen haben es falsch. 295 00:12:18,240 --> 00:12:19,760 Ich glaube, Sie Jungs genagelt. 296 00:12:19,760 --> 00:12:22,880 >> Aber, sind die beste Abschnitt euch für Tests, übrigens. 297 00:12:22,880 --> 00:12:25,210 Welche ist genial. 298 00:12:25,210 --> 00:12:25,910 Es wird nicht weh tun. 299 00:12:25,910 --> 00:12:26,900 Seien Sie nicht beunruhigt. 300 00:12:26,900 --> 00:12:28,800 Aber es ist wirklich cool. 301 00:12:28,800 --> 00:12:29,660 Gute Arbeit. 302 00:12:29,660 --> 00:12:32,870 >> So geht es um die Montage Sprache und dann geht es um Einsen und Nullen. 303 00:12:32,870 --> 00:12:35,500 Und die Einsen und Nullen auf die gespeicherte Computer an, und das ist, was gespeichert in 304 00:12:35,500 --> 00:12:38,340 die a.out-, oder in diesem Fall, die ausführbare Datei. 305 00:12:38,340 --> 00:12:41,040 Und der Computer läuft Einsen und Nullen. 306 00:12:41,040 --> 00:12:41,670 Right? 307 00:12:41,670 --> 00:12:43,890 Wir haben das vorher gelernt. 308 00:12:43,890 --> 00:12:47,490 >> Also die coole Sache ist, diese ohne Vorzeichen Idee, die Idee der Typen unsigned ints, 309 00:12:47,490 --> 00:12:50,490 et cetera, und so weiter ist, dass hier in der C-Sprache. 310 00:12:50,490 --> 00:12:51,110 Diejenigen existieren. 311 00:12:51,110 --> 00:12:53,770 Aber Typen nicht existieren bei Die Einsen und Nullen. 312 00:12:53,770 --> 00:12:57,110 Typen gar nicht wirklich existieren die Assembler-Ebene. 313 00:12:57,110 --> 00:13:00,075 Also das ist etwas, das in C existiert Welt, aber nicht in Computer vorhanden 314 00:13:00,075 --> 00:13:01,640 Welt-oder Prozessor-Welt. 315 00:13:01,640 --> 00:13:04,660 Das ist etwas, dass die C-Abstraktion Sprache ist enthalten, um unsere 316 00:13:04,660 --> 00:13:06,240 Leben leichter. 317 00:13:06,240 --> 00:13:09,990 >> So am Ende des Tages, ich schreiben kann viele verschiedene Dinge hier, und es 318 00:13:09,990 --> 00:13:10,700 nicht einen Unterschied machen. 319 00:13:10,700 --> 00:13:12,060 Weil das nur existiert in der C-Welt. 320 00:13:12,060 --> 00:13:14,100 Es ist nicht in die bestehen Einsen und Nullen Welt. 321 00:13:14,100 --> 00:13:17,310 Und unser Programm in der Ausführung Die Einsen und Nullen Welt. 322 00:13:17,310 --> 00:13:21,170 So ist Ihre Meinung klar noch nicht geblasen. 323 00:13:21,170 --> 00:13:22,740 Aber ich denke, das ist cool. 324 00:13:22,740 --> 00:13:23,530 Ja, Jeff. 325 00:13:23,530 --> 00:13:27,298 >> ZIELGRUPPE: Also, wenn statt der Dabei int, char tun Sie. 326 00:13:27,298 --> 00:13:27,770 Und Sie waren - 327 00:13:27,770 --> 00:13:29,311 >> SPRECHER: Wir tun es in einer Sekunde. 328 00:13:29,311 --> 00:13:32,583 >> ZIELGRUPPE: Denn dann erhalten Sie eine unsigned gehen von negativen 128 bis 329 00:13:32,583 --> 00:13:34,720 127 oder 0 bis 255. 330 00:13:34,720 --> 00:13:36,760 >> SPRECHER: So char ist problematisch. 331 00:13:36,760 --> 00:13:39,460 Weiß jemand, warum char wäre problematisch, und es tatsächlich würde 332 00:13:39,460 --> 00:13:42,930 Dinge ändern sich in die, die und Nullen Welt? 333 00:13:42,930 --> 00:13:44,370 >> ZIELGRUPPE: Aufgrund der Größe der Zeichen. 334 00:13:44,370 --> 00:13:46,200 >> SPRECHER: Größe der char 1 ist. 335 00:13:46,200 --> 00:13:48,260 So ist auch unsigned 4 Bytes. 336 00:13:48,260 --> 00:13:50,080 So würde char Dinge vermasseln. 337 00:13:50,080 --> 00:13:55,660 Aber was ist 4 Bytes, die ist auf ein char verwandt? 338 00:13:55,660 --> 00:13:57,820 Oder zumin fügt hinzu, dass eine zusätzliche - 339 00:13:57,820 --> 00:13:59,760 Sie können ein Zeichen mehr setzen nach char. 340 00:13:59,760 --> 00:14:00,200 >> ZIELGRUPPE: Char Stern. 341 00:14:00,200 --> 00:14:01,220 >> SPRECHER: Char Stern hat 4 Bytes. 342 00:14:01,220 --> 00:14:02,490 Lassen Sie uns also etwas tun, das ist ein Zeichen Stern. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Also das würde wahrscheinlich funktionieren, aber wir sind gehen, um etwas selbst zu tun 345 00:14:07,240 --> 00:14:09,710 verrückter als diese. 346 00:14:09,710 --> 00:14:10,960 Meiner Meinung nach, verrückter. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Ich habe jetzt eine Funktion, die zurückgibt geschrieben einen Zeiger, und es dauert eine 349 00:14:24,570 --> 00:14:29,480 Zeiger und ein Wert ohne Vorzeichen - wir werden Ändern Sie diese zurück zu int, so sind wir nicht 350 00:14:29,480 --> 00:14:31,250 zu viele Änderungen auf einmal. 351 00:14:31,250 --> 00:14:35,370 Und es wird ein Array namens a, Indizes hat in das Array und gibt die 352 00:14:35,370 --> 00:14:35,850 Adresse. 353 00:14:35,850 --> 00:14:37,470 Wir haben diese Operatoren gesehen. 354 00:14:37,470 --> 00:14:43,340 Das, was Sie denken, das wird zu tun, im Gegenzug, wenn ich es? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 Was denken Sie, es geht zu tun? 357 00:14:49,070 --> 00:14:50,320 Alle Vermutungen? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> ZIELGRUPPE: Segfault. 360 00:14:55,320 --> 00:14:55,600 >> SPRECHER: Was? 361 00:14:55,600 --> 00:14:56,660 SEGFAULT? 362 00:14:56,660 --> 00:14:58,520 Das ist eine gute Vermutung. 363 00:14:58,520 --> 00:14:59,430 Tom sagt das Gleiche. 364 00:14:59,430 --> 00:15:02,240 Alle anderen Vermutungen? 365 00:15:02,240 --> 00:15:05,260 >> Wer denkt, es wird das gleiche tun? 366 00:15:05,260 --> 00:15:06,510 Wer denkt, es wird abstürzt? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Sie tut das gleiche. 369 00:15:10,230 --> 00:15:11,880 Entschuldigung. 370 00:15:11,880 --> 00:15:13,860 >> Aber, natürlich, in 1 und 2 haben wir. 371 00:15:13,860 --> 00:15:16,470 Und die sind beide gültig, oder? 372 00:15:16,470 --> 00:15:19,420 Mal sehen, können wir auf dem Sprung zweiten Platz von einem Array. 373 00:15:19,420 --> 00:15:24,010 Aber was, wenn wir uns b eine negative Zahl? 374 00:15:24,010 --> 00:15:26,380 Das ist wahrscheinlich eine bessere Vermutung für etwas, Speicherzugriffsfehler. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 Es funktioniert immer noch. 377 00:15:32,260 --> 00:15:35,020 >> OK, das ist jetzt verrückt. 378 00:15:35,020 --> 00:15:38,350 Dies ist gleichermaßen gültig Summenfunktion. 379 00:15:38,350 --> 00:15:40,470 Dies macht das gleiche genaue Sache als Rück a und b. 380 00:15:40,470 --> 00:15:44,600 Kann jemand erklären, warum dies eine gute Sum-Funktion, oder warum das funktioniert? 381 00:15:44,600 --> 00:15:45,850 Was passiert hier? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 Warum funktioniert das genau das gleiche tun, etwas wie unsere alten Summenfunktion? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 was ist los? 386 00:15:58,155 --> 00:16:01,540 >> ZIELGRUPPE: Weil, wenn Sie ein a, die eine Adresse ist 387 00:16:01,540 --> 00:16:03,950 der Standort Speicher - 388 00:16:03,950 --> 00:16:07,910 und wenn du das kaufmännische tun, ist es geht an dieser Speicheradresse. 389 00:16:07,910 --> 00:16:13,610 Und wenn Sie gehen zu b, Art der du bist Bewegen Schritte von dieser Speicheradresse, 390 00:16:13,610 --> 00:16:15,550 Sie zurück sind, dass. 391 00:16:15,550 --> 00:16:20,083 Sie sind also tatsächlich, in der Tat, Zugabe von a und b [unverständlich]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 Wo sind Standardoperationen auf dieser Rückkehr? 394 00:16:26,222 --> 00:16:27,683 Wie, wo kommen die Klammern fallen? 395 00:16:27,683 --> 00:16:30,610 Ist die Rückkehr der Adresse auf ein vor oder nach [unverständlich]? 396 00:16:30,610 --> 00:16:32,380 >> SPRECHER: Es geht in den Index b - 397 00:16:32,380 --> 00:16:34,430 oder Index in eine - und dann Rückkehr die Adresse. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 OK, so hat jeder verstehen was [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 sagte, und erklärt, warum das funktioniert? 401 00:16:45,830 --> 00:16:49,430 Ich habe nicht das erste Mal, wenn jemand erklärte dies für mich. 402 00:16:49,430 --> 00:16:51,900 Würde jemand ein Bild gefallen , dies zu erklären? 403 00:16:51,900 --> 00:16:55,320 Wir werden, um ein Bild zu zeichnen, mit keine Marker, das ist toll. 404 00:16:55,320 --> 00:16:57,920 Gefunden einige. 405 00:16:57,920 --> 00:17:03,390 >> So haben wir ein Array, das ist eine Reihe von Boxen. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 Die erste ist ein Index 0, index 1, 2, 3, 4, Punkt, Punkt, Punkt. 408 00:17:13,710 --> 00:17:15,609 Ein typisches Array. 409 00:17:15,609 --> 00:17:19,540 Und zusätzlich zu den mit Indizes, sie haben alle Speicheradressen. 410 00:17:19,540 --> 00:17:30,190 Also lassen Sie geben diesem Speicheradresse 13, 14, 15, 16, 17, et cetera. 411 00:17:30,190 --> 00:17:32,490 Jeder ist hier so weit. 412 00:17:32,490 --> 00:17:35,810 >> So eine ist eine Adresse. 413 00:17:35,810 --> 00:17:38,850 Der Name eines Arrays, einer Zeiger dort gespeichert. 414 00:17:38,850 --> 00:17:42,730 Es ist ein Zeiger, es ist ein Speicher, zu dem Anfang des Arrays. 415 00:17:42,730 --> 00:17:45,910 Also, wenn dies der Array a würde ein Wert von 13 sein. 416 00:17:45,910 --> 00:17:49,110 Und, natürlich, die wir geben können ein beliebiger Wert wir wollen. 417 00:17:49,110 --> 00:17:52,450 Char Sterne ein, wir geben einen kann jeder Speicheradresse, die wir wollen. 418 00:17:52,450 --> 00:17:55,940 Wir können es 0, können wir es geben negativen 1 - minus 1 nicht vorhanden ist, 419 00:17:55,940 --> 00:17:58,820 so dass es wahrscheinlich problematisch, aber Sie sah, dass es immer noch funktioniert. 420 00:17:58,820 --> 00:18:03,070 Also haben wir eine beliebige Anzahl wollen wir geben können, jede Speicheradresse wir wollen. 421 00:18:03,070 --> 00:18:08,720 >> Dann, int b sagt, OK, gehen diese Nummer der die Schritte in das Array. 422 00:18:08,720 --> 00:18:13,150 So dass, wenn b gleich 2 ist, und a = 13, wir sind an der Speicheradresse 13. 423 00:18:13,150 --> 00:18:17,330 Und wir gehen in zwei Schritten, und so sind wir hier. 424 00:18:17,330 --> 00:18:21,150 Und das Und-Zeichen bedeutet Rück die Adresse von dieser Lage. 425 00:18:21,150 --> 00:18:23,990 Und die Adresse ist natürlich, 15. 426 00:18:23,990 --> 00:18:28,710 So bekommen wir 13 plus 2, oder a plus b, der 15 ist. 427 00:18:28,710 --> 00:18:29,590 >> Die Frage ist, obwohl - 428 00:18:29,590 --> 00:18:30,250 Es tut mir leid. 429 00:18:30,250 --> 00:18:34,324 Heißt das, dass Dinge zu klären für, warum das funktioniert? 430 00:18:34,324 --> 00:18:36,300 >> ZIELGRUPPE: Warum würde es funktionieren werde - 431 00:18:36,300 --> 00:18:38,770 so kann man ein Array und haben gehen Sie zu einem negativen Index? 432 00:18:38,770 --> 00:18:39,050 >> SPRECHER: Richtig. 433 00:18:39,050 --> 00:18:40,870 Also haben wir negative Zahlen, so das ist die - 434 00:18:40,870 --> 00:18:42,770 Macht das Sinn aber, erste, [? Avi,?] 435 00:18:42,770 --> 00:18:43,120 für Sie? 436 00:18:43,120 --> 00:18:48,840 >> ZIELGRUPPE: Ja, ich bin nur [Unverständlich], aber - 437 00:18:48,840 --> 00:18:50,440 >> SPRECHER: Ja, das würde 15 zurück. 438 00:18:50,440 --> 00:18:53,523 Wenn ein 13 war, und b 2 war, dies würde 15 zurück. 439 00:18:53,523 --> 00:18:58,160 >> ZIELGRUPPE: Also die Null Indizierung nicht ein Thema geworden, nicht wahr? 440 00:18:58,160 --> 00:19:00,160 Weil Sie von 0 in Bewegung sind. 441 00:19:00,160 --> 00:19:00,470 >> SPRECHER: Richtig. 442 00:19:00,470 --> 00:19:05,000 So können Sie sich bewegen - so, wenn b 0 war, Sie würden nicht überall bewegen. 443 00:19:05,000 --> 00:19:06,330 Und Sie würden nur wieder die Adresse - 444 00:19:06,330 --> 00:19:10,830 wenn b 0 war, ist das im wesentlichen Rückkehr die Adresse einer. 445 00:19:10,830 --> 00:19:13,960 Weitergabe in ein char-Sterne und die Rückkehr der Adresse a wird nur eine Rückkehr, 446 00:19:13,960 --> 00:19:15,860 Wesentlichen. 447 00:19:15,860 --> 00:19:18,280 >> OK, das ist die Frage, warum negative Zahlen zu arbeiten? 448 00:19:18,280 --> 00:19:21,670 Und das ist das wirklich coole an dies, denn dies sollte abstürzt. 449 00:19:21,670 --> 00:19:25,110 Und es abstürzt, würde, wenn wir tat so etwas. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Lassen Sie uns sagen, Int. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Also dieser Code sieht identisch und sollte identisch verhalten. 454 00:19:39,810 --> 00:19:44,550 Im Wesentlichen bedeutet, x eine Variable Müll, und so sollte dies identisch verhalten. 455 00:19:44,550 --> 00:19:46,370 >> Lassen Sie uns das - 456 00:19:46,370 --> 00:19:47,620 oops - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 in Stern. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 OK, wir sind schon immer Fehler hier weil es schon gehen, wütend zu sein 461 00:20:02,733 --> 00:20:04,610 mich an, weil es bereits weiß, was kommt. 462 00:20:04,610 --> 00:20:07,060 Insbesondere die zweite. 463 00:20:07,060 --> 00:20:09,800 Adresse von gestapelten Speicher zugeordnet mit einer lokalen Variablen. 464 00:20:09,800 --> 00:20:14,220 >> Im Wesentlichen werde ich nicht zu kompilieren das, und dann werde ich rückgängig machen 465 00:20:14,220 --> 00:20:14,920 was wir gerade getan. 466 00:20:14,920 --> 00:20:19,130 Aber weil wir eigentlich nie Zugriff auf, was auf dem Speicher 467 00:20:19,130 --> 00:20:21,930 Lage, es ist nicht zu abstürzt. 468 00:20:21,930 --> 00:20:26,450 Wir sind nie wirklich zu schauen, was ist in der zweiten Box oder was in jedem Feld 469 00:20:26,450 --> 00:20:28,340 dieses Arrays. 470 00:20:28,340 --> 00:20:30,980 Wir sind nur zu sagen, hier ist die Adresse der Sache, die wir suchen und 471 00:20:30,980 --> 00:20:32,410 bringe diese Adresse. 472 00:20:32,410 --> 00:20:35,700 Wir sind eigentlich nie gehen in die Array, um an dieser Stelle zu suchen. 473 00:20:35,700 --> 00:20:39,140 Und weil wir nie den Speicher zu berühren, wir nicht in Schwierigkeiten zu bringen. 474 00:20:39,140 --> 00:20:40,760 Wir bekommen nicht einen Speicherzugriffsfehler. 475 00:20:40,760 --> 00:20:46,225 >> Wenn wir versucht, wieder berühren, dass Speicher, berühren, was bei a oder b war - 476 00:20:46,225 --> 00:20:49,940 oder ein Bügel b, und unter der Annahme ein von 0 und - 477 00:20:49,940 --> 00:20:53,040 wenn eine 0 war, auch, das wäre schön sein schlecht, weil wir nicht gehen können 478 00:20:53,040 --> 00:20:54,090 Sie alle den Weg dorthin. 479 00:20:54,090 --> 00:20:58,250 Wenn A und B wurden beide 0, und wir versuchten berühren, was da war, dann würden wir 480 00:20:58,250 --> 00:20:59,110 in Schwierigkeiten. 481 00:20:59,110 --> 00:21:02,160 Aber wenn wir uns nicht berühren, was da ist, wir einfach die Adresse zurück, ist es 482 00:21:02,160 --> 00:21:08,300 eigentlich nicht zu abstürzt, weil es können Sie diese Operationen durchzuführen. 483 00:21:08,300 --> 00:21:11,920 Es wird nur sauer auf dich, und bekommt Super wütend, wenn Sie versuchen, und berühren 484 00:21:11,920 --> 00:21:15,740 die tatsächliche Speicher und zurück, was an dieser Speicherstelle. 485 00:21:15,740 --> 00:21:17,690 >> Heißt das Sinn? 486 00:21:17,690 --> 00:21:24,820 Das ist nur ein verrücktes Teil C. So, wir haben noch einen von diesen. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> Wer denkt, das ist cool? 489 00:21:29,700 --> 00:21:30,280 Mehr Menschen. 490 00:21:30,280 --> 00:21:31,070 Das ist gut. 491 00:21:31,070 --> 00:21:34,860 OK, das ist unsere letzte. 492 00:21:34,860 --> 00:21:37,314 Und ich möchte, dass Sie mir sagen, ob oder nicht, denke, das wird 493 00:21:37,314 --> 00:21:38,564 um exakt das gleiche zu tun. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Diese habe ich irgendwo aufgeschrieben. 496 00:22:07,390 --> 00:22:08,640 Ich bin nicht das Auswendiglernen ihnen. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> Mal sehen, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Also das ist ein Array, jetzt, keine Funktion. 500 00:22:46,670 --> 00:22:49,640 Und es ist ein Array, weil wir Platz Klammern, geschweifte Klammern nicht. 501 00:22:49,640 --> 00:22:52,360 Und es ist eine Reihe von welcher Art? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Jeder, hmm? 504 00:22:56,862 --> 00:22:57,694 >> ZIELGRUPPE: Die hexadezimale Zahlen? 505 00:22:57,694 --> 00:22:59,650 >> SPRECHER: Aber was ist das C-Typ? 506 00:22:59,650 --> 00:23:00,710 Sie alle haben hexadezimale Zahlen. 507 00:23:00,710 --> 00:23:01,960 Was ist in der C-Typ? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Es sagt Ihnen. 510 00:23:05,480 --> 00:23:07,350 >> ZIELGRUPPE: Es ist unsigned chars. 511 00:23:07,350 --> 00:23:09,170 >> SPRECHER: Richtig, unsigned chars. 512 00:23:09,170 --> 00:23:13,050 Und zwei hexadezimale Zahlen ist ein Byte. 513 00:23:13,050 --> 00:23:18,540 Das sind also 1, 2, 3, 4, 5, 6, 7, 8, 9 Bytes. 514 00:23:18,540 --> 00:23:21,360 Es gibt eine Reihe von 9 Byte. 515 00:23:21,360 --> 00:23:25,530 >> OK, werden Sie wahrscheinlich bereits wissen, die Antwort auf diese Frage. 516 00:23:25,530 --> 00:23:29,840 Aber was glauben Sie, wird passieren, wenn ich das? 517 00:23:29,840 --> 00:23:34,110 Ich sage noch einmal, in mysum.c, Ich erwarte eine Funktion 518 00:23:34,110 --> 00:23:36,280 das dauert zwei ganzen Zahlen. 519 00:23:36,280 --> 00:23:40,265 Und ich sagte, dass statt Summe ein Array von Zeichen. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 Was wird geschehen, wenn Ich laufen. / MySum und zu machen? 522 00:23:48,070 --> 00:23:53,230 >> Nun, zunächst wird wohl die meisten von euch einig, dass Hersteller - oh nein, nur ein Scherz. 523 00:23:53,230 --> 00:23:54,746 Was hab ich falsch gemacht? 524 00:23:54,746 --> 00:23:55,996 Uh oh. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 Das sollte geschweiften Klammern sein. 527 00:24:01,160 --> 00:24:02,790 Das ist, wie Sie ein Array zu initialisieren. 528 00:24:02,790 --> 00:24:04,040 Mein schlechtes. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Also bereits vor diesem Typen sahen wir sind eine C-Level-Abstraktion, nicht ein 531 00:24:11,670 --> 00:24:12,610 Computerebene Abstraktion. 532 00:24:12,610 --> 00:24:16,360 So sind die meisten von Ihnen wahrscheinlich erwartet, dass es zu machen, oder unter der Annahme, dass es zu machen. 533 00:24:16,360 --> 00:24:18,680 Aber was, wenn ich laufen. / MySum? 534 00:24:18,680 --> 00:24:19,930 Was wird passieren? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 Alle Vermutungen? 537 00:24:23,422 --> 00:24:25,270 >> ZIELGRUPPE: Es ist zu gehen drucken Sie ein Wort. 538 00:24:25,270 --> 00:24:26,310 >> SPRECHER: Es ist zu gehen drucken Sie ein Wort. 539 00:24:26,310 --> 00:24:29,335 Welches Wort? 540 00:24:29,335 --> 00:24:32,200 >> ZIELGRUPPE: [unverständlich]. 541 00:24:32,200 --> 00:24:33,240 >> SPRECHER: Alle anderen Vermutungen? 542 00:24:33,240 --> 00:24:34,000 OK, drucken Sie eine Phrase. 543 00:24:34,000 --> 00:24:35,130 Sie können jeden beliebigen Begriff zu haben. 544 00:24:35,130 --> 00:24:36,240 Das wird Ihrer Seite. 545 00:24:36,240 --> 00:24:38,480 Jeder, der eine andere Vermutung hat? 546 00:24:38,480 --> 00:24:39,730 Anna, was ist Ihre Vermutung? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> ZIELGRUPPE: Es wird ausgedruckt - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 zwei Buchstaben, oder [unverständlich] ein Brief. 551 00:24:49,480 --> 00:24:51,460 >> SPRECHER: Ein Brief. 552 00:24:51,460 --> 00:24:53,260 >> ZIELGRUPPE: Kann ich zählen, wie viele [unverständlich]? 553 00:24:53,260 --> 00:24:55,426 >> SPRECHER: Nine. 554 00:24:55,426 --> 00:24:56,640 Nun, ich werde es ausführen. 555 00:24:56,640 --> 00:24:58,650 Es tut exakt das gleiche Ding. 556 00:24:58,650 --> 00:25:00,190 Es addiert zwei Zahlen. 557 00:25:00,190 --> 00:25:02,740 Nun, lassen Sie passieren die zwei Argumente. 558 00:25:02,740 --> 00:25:03,710 Es dauert nicht Argumente. 559 00:25:03,710 --> 00:25:06,080 Also ich weiß nicht, wo sie konnte vielleicht bekommen diese Argumente. 560 00:25:06,080 --> 00:25:07,710 Aber lassen Sie uns bei 100 und 0 bestehen. 561 00:25:07,710 --> 00:25:09,200 Und es fügt 100 und 0. 562 00:25:09,200 --> 00:25:10,220 Das ist verrückt. 563 00:25:10,220 --> 00:25:12,280 Ich so zu denken. 564 00:25:12,280 --> 00:25:14,480 >> Negative 4, geht das auch. 565 00:25:14,480 --> 00:25:15,650 Sie können, was Sie wollen. 566 00:25:15,650 --> 00:25:17,920 Dies ist eine gleichermaßen gültige Summenfunktion. 567 00:25:17,920 --> 00:25:19,640 Dies ist eine Summenfunktion. 568 00:25:19,640 --> 00:25:21,510 Aber nein, sind Sie sagen, es ist ein Array von Bytes. 569 00:25:21,510 --> 00:25:23,570 Also, was ist denn hier los? 570 00:25:23,570 --> 00:25:27,240 >> Also, noch einmal, gehen wir zurück zu dieser Idee sagte, dass wir ganz am Anfang. 571 00:25:27,240 --> 00:25:32,050 Sie gehen von C-Level-Code, um die Montage Sprache, der Einsen und Nullen. 572 00:25:32,050 --> 00:25:33,050 Dies ist hexadezimal. 573 00:25:33,050 --> 00:25:35,780 Aber das ist wirklich nur eine viele Einsen und Nullen. 574 00:25:35,780 --> 00:25:39,230 Das sind 72 Einsen und Nullen, oder? 575 00:25:39,230 --> 00:25:40,550 72 Einsen und Nullen. 576 00:25:40,550 --> 00:25:42,160 9 Byte. 577 00:25:42,160 --> 00:25:43,740 Jedes Byte besteht aus 8 Bits. 578 00:25:43,740 --> 00:25:44,760 Jedes Bit eine Eins oder eine Null. 579 00:25:44,760 --> 00:25:45,920 So 72 Einsen oder Nullen. 580 00:25:45,920 --> 00:25:48,780 Ich habe nur geschrieben, sie wie diese - anstatt es zu schreiben wie viel 581 00:25:48,780 --> 00:25:49,730 Einsen und Nullen. 582 00:25:49,730 --> 00:25:53,560 >> Aber das wird von C-Ebene zu gehen Sprache bis hin zur Montage 583 00:25:53,560 --> 00:25:54,620 Sprache, der Code. 584 00:25:54,620 --> 00:25:59,020 Und das wird in Code zu drucken, irgendwo diese 72 Einsen und Nullen 585 00:25:59,020 --> 00:26:00,910 dass ich hier geschrieben habe. 586 00:26:00,910 --> 00:26:03,610 Also irgendwo, dass - 587 00:26:03,610 --> 00:26:04,850 Lassen Sie uns hier gehen - 588 00:26:04,850 --> 00:26:11,240 irgendwo in MySum, das Programm gibt sind diese 72 Einsen und Nullen, die ich habe 589 00:26:11,240 --> 00:26:14,930 geschrieben und gesagt, es zu schreiben. 590 00:26:14,930 --> 00:26:19,331 >> Nun, keine Vermutungen, was die 72 Einsen und Nullen das? 591 00:26:19,331 --> 00:26:21,240 >> ZIELGRUPPE: Wahrscheinlich die gleichen etwas wie ein plus b zurück. 592 00:26:21,240 --> 00:26:22,890 >> SPRECHER: Wahrscheinlich die gleichen etwas wie ein plus b zurück. 593 00:26:22,890 --> 00:26:23,730 Lassen Sie uns sicherstellen, dass. 594 00:26:23,730 --> 00:26:25,210 Lassen Sie uns herausfinden, wie ich das tat. 595 00:26:25,210 --> 00:26:31,840 >> Also, wenn Sie wieder hier zu gehen, sage ich Ihnen um diesen Befehl auszuführen, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Gehen wir ausführen. objdump - 598 00:26:36,230 --> 00:26:37,990 obj, zu entleeren. 599 00:26:37,990 --> 00:26:39,840 Im Grunde kann es mir geben was ich sehen will. 600 00:26:39,840 --> 00:26:40,840 Es kann mir die Assembler-Sprache zu geben. 601 00:26:40,840 --> 00:26:42,730 Es kann mir die Einsen und Nullen zu geben. 602 00:26:42,730 --> 00:26:43,840 Es hat eine Tonne von Fahnen. 603 00:26:43,840 --> 00:26:45,860 Das ist der, den wir gehen für jetzt. 604 00:26:45,860 --> 00:26:46,980 Punkt - 605 00:26:46,980 --> 00:26:48,810 wie Sie sehen in den Folien - 606 00:26:48,810 --> 00:26:53,840 Strich Kapital S sagt, durchsetzen, Source Code - 607 00:26:53,840 --> 00:26:58,410 Diese Zeile ist aus C - mit der Montage Code und mit den Nullen und Einsen. 608 00:26:58,410 --> 00:27:00,350 Und wir werden laufen es auf sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Denn es wird einfacher, zu sehen sein. 610 00:27:01,410 --> 00:27:02,670 Again - hmm? 611 00:27:02,670 --> 00:27:04,700 >> ZIELGRUPPE: Sie buchstabiert es falsch. 612 00:27:04,700 --> 00:27:05,930 >> SPRECHER: Aber ich bin eigentlich los um es für einen zweiten zu löschen. 613 00:27:05,930 --> 00:27:09,160 Ich bin zuerst zu öffnen nur sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> ZIELGRUPPE: Sie buchstabierte falsch das erste Mal. 615 00:27:11,170 --> 00:27:12,420 >> SPRECHER: Classic. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Sum - 618 00:27:15,480 --> 00:27:16,680 das ist ein hartes Wort, aber. 619 00:27:16,680 --> 00:27:19,050 Sie werden überrascht sein. 620 00:27:19,050 --> 00:27:21,560 OK, das ist so sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Ich konnte nicht einmal sagen. 623 00:27:26,220 --> 00:27:30,250 Es gibt eine Menge von Nullen, eindeutig viel von Nullen, und es gibt einige andere 624 00:27:30,250 --> 00:27:31,930 Sachen, die nicht ist Nullen. 625 00:27:31,930 --> 00:27:33,220 Aber meistens Nullen. 626 00:27:33,220 --> 00:27:35,120 Sieht so aus, es gibt einige Einsen. 627 00:27:35,120 --> 00:27:36,810 So klar, das ist schwer zu lesen. 628 00:27:36,810 --> 00:27:39,320 Das ist die binäre Sprache. 629 00:27:39,320 --> 00:27:40,710 >> Lassen Sie uns nun öffnen - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 was? 632 00:27:52,350 --> 00:27:53,600 Was mache ich falsch? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 Habe ich es richtig geschrieben? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 OK, das ist peinlich. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Ich brauche eine Sekunde, um herauszufinden heraus, was ich falsch mache. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Das ist ein Fehler. 641 00:28:49,310 --> 00:28:50,560 Das ist seltsam. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 Oh, das ist, warum. 644 00:29:01,800 --> 00:29:09,880 >> Ich werde gehen Sie zurück zu unserer ursprünglichen ein, so können wir bei der Suche 645 00:29:09,880 --> 00:29:10,560 Objekt-Code dafür. 646 00:29:10,560 --> 00:29:13,390 Denn es ist nicht wirklich zu alles sein, wenn wir einfach den 647 00:29:13,390 --> 00:29:14,640 Einsen und Nullen in. 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 Dort gehen wir. 650 00:29:30,200 --> 00:29:32,425 OK, also jeder kann das sehen. 651 00:29:32,425 --> 00:29:38,130 Diese Funktion, wie gesagt, löschte die C-Linie - 652 00:29:38,130 --> 00:29:39,060 Quellcode-Zeilen - 653 00:29:39,060 --> 00:29:41,000 mit einigen Montageanleitung. 654 00:29:41,000 --> 00:29:42,760 >> Hier ist unsere Quellcodezeile. 655 00:29:42,760 --> 00:29:44,910 Hier ist einer, hier ist eine andere. 656 00:29:44,910 --> 00:29:46,540 Hier ist die Montageanleitung. 657 00:29:46,540 --> 00:29:47,820 Das ist, wie sie aussehen. 658 00:29:47,820 --> 00:29:49,010 Montageanleitung - 659 00:29:49,010 --> 00:29:51,530 Sie mehr von diesen lernen können, wenn Sie nehmen CS anderen Klassen, aber sie sind 660 00:29:51,530 --> 00:29:53,500 in der Regel eine Anweisung. 661 00:29:53,500 --> 00:29:57,940 Und eine Quelle und ein Ziel. 662 00:29:57,940 --> 00:30:02,740 >> Und dann ist hier der binäre Code das entspricht dieser Versammlung 663 00:30:02,740 --> 00:30:04,940 Anleitung. 664 00:30:04,940 --> 00:30:09,760 So wie Sie sehen können, diese Summe-Funktion, am Ende des Tages, drei 665 00:30:09,760 --> 00:30:10,950 Montageanleitung. 666 00:30:10,950 --> 00:30:12,870 Nur drei. 667 00:30:12,870 --> 00:30:14,180 Eine mov - 668 00:30:14,180 --> 00:30:16,740 diesen m-o-v steht für ein Verschieben. 669 00:30:16,740 --> 00:30:17,780 Fügen Sie steht für Add. 670 00:30:17,780 --> 00:30:20,440 Und r-e-t steht für Return. 671 00:30:20,440 --> 00:30:22,540 So ein mov, ein Add, einer Rückkehr. 672 00:30:22,540 --> 00:30:27,970 Und diese hier sind die Nullen und diejenigen, die diesem Code entsprechen. 673 00:30:27,970 --> 00:30:31,100 >> Also diese Nullen und Einsen, wenn Sie wissen, die, Sie können einfach 674 00:30:31,100 --> 00:30:32,140 die gerade in. 675 00:30:32,140 --> 00:30:34,130 Und dann werde tun, die gleiche genaue Sache. 676 00:30:34,130 --> 00:30:37,260 Da am Ende des Tages, alle Sie ausführen ist eine lange Reihe von 677 00:30:37,260 --> 00:30:38,480 Nullen und Einsen. 678 00:30:38,480 --> 00:30:40,700 Und das ist, was der Code eigentlich ist. 679 00:30:40,700 --> 00:30:41,770 >> Und der Grund - 680 00:30:41,770 --> 00:30:43,680 lassen Sie uns eine Sache. 681 00:30:43,680 --> 00:30:45,440 Hatte ich das Makefile geöffnet? 682 00:30:45,440 --> 00:30:48,510 Also, wenn wir wieder nach Strich Null, Null hier oben - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 sorry, Kapital o-, Kapital- o Null, nicht Null, Null. 685 00:30:57,300 --> 00:31:01,810 Und wir haben zu machen, wäre es immer noch die gleiche Arbeit. 686 00:31:01,810 --> 00:31:05,420 Aber jetzt können Sie feststellen, dass es ein viel mehr Montageanleitung. 687 00:31:05,420 --> 00:31:09,090 Das ist, weil wieder fragte ich die Compiler, keine Optimierung zu tun. 688 00:31:09,090 --> 00:31:12,800 >> So konnte ich immer noch alle diese nehmen Nullen und Einsen, und werfen sie in, 689 00:31:12,800 --> 00:31:13,390 und das würde funktionieren. 690 00:31:13,390 --> 00:31:15,850 Ich habe gerade die Optimierungen, weil es ist ein bisschen einfacher, dann, 691 00:31:15,850 --> 00:31:17,310 um das Array zu schreiben. 692 00:31:17,310 --> 00:31:19,730 Aber das würde genauso gut funktionieren. 693 00:31:19,730 --> 00:31:24,460 >> OK, wir werden noch eine letzte Sache zu tun, weil ich denke, ist das coolste Teil. 694 00:31:24,460 --> 00:31:27,410 Auch wenn jeder ist eindeutig bereits geblasen und sprachlos. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 Unsere Gedanken sind durchgebrannt. 697 00:31:31,670 --> 00:31:32,920 [Unverständlich] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Also, diese sind aus einem anderen CS-Klasse, Das ist super interessant, 700 00:31:51,520 --> 00:31:52,970 dass ich genommen - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Ich sehr empfehlen Ihnen, es zu nehmen. 703 00:31:55,910 --> 00:31:58,990 Aber der interessante Teil über diese Tatsache, dass Dinge sind nur Nullen und Einsen, 704 00:31:58,990 --> 00:32:01,270 sind, dass alles Nullen und Einsen. 705 00:32:01,270 --> 00:32:05,330 >> So können Sie eine Datei, die hat nehmen die richtigen Nullen und Einsen Sie wollen 706 00:32:05,330 --> 00:32:10,390 irgendwo in ihm, und verwenden Sie diesen Abschnitt Nullen und Einsen als Summe-Funktion. 707 00:32:10,390 --> 00:32:11,480 >> Was mache ich damit? 708 00:32:11,480 --> 00:32:15,755 Ich meine, Sie können eine Bilddatei zu nehmen, dass die richtige Reihe von Nullen und 709 00:32:15,755 --> 00:32:17,120 diejenigen, die etwas zu drucken aus, um ein Bild. 710 00:32:17,120 --> 00:32:20,070 Und ein Programm könnte interpretieren, ist ein Bild, aber man kann es interpretieren, wenn 711 00:32:20,070 --> 00:32:22,040 Sie wollen, als eine Summe-Funktion. 712 00:32:22,040 --> 00:32:27,010 >> Also, wenn wir uns öffnen, denn wollte Beispiel für dieses Bild. 713 00:32:27,010 --> 00:32:37,440 Gehen wir, Hallo Kitty. 714 00:32:37,440 --> 00:32:38,810 Wunderbare kleine Bild. 715 00:32:38,810 --> 00:32:42,260 Es gibt hier das, dass die String von Nullen und Einsen. 716 00:32:42,260 --> 00:32:45,500 Diese 72 Nullen und Einsen gibt es in diesem Bild. 717 00:32:45,500 --> 00:32:47,695 >> Also, was ich tun kann, ist dann schreiben - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 Ich muss daran erinnern, wo sie sind. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Ich werde das zu finden in einer Sekunde. 722 00:32:55,720 --> 00:32:57,840 Aber wir tun - 723 00:32:57,840 --> 00:32:59,440 lassen Sie mich wissen, wo sie sind. 724 00:32:59,440 --> 00:33:00,020 Eine sek. 725 00:33:00,020 --> 00:33:01,270 Lassen Sie uns - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> ZIELGRUPPE: [unverständlich]. 728 00:33:07,240 --> 00:33:08,490 >> SPRECHER: Danke. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Also, wenn wir dieses Programm ausführen, das stattdessen liest eine Datei, dann geht es 731 00:33:28,740 --> 00:33:33,160 dieser Index in der Datei. 732 00:33:33,160 --> 00:33:35,500 Und dann wieder, genau wie MySum nimmt zwei Zahlen. 733 00:33:35,500 --> 00:33:41,410 Wir können Zahl exakt die gleichen wie hinzufügen wir waren, bevor Sie, was geht 734 00:33:41,410 --> 00:33:44,850 zeigen, wie die Tatsache, dass am Ende des Tages sind alle diese Dinge 735 00:33:44,850 --> 00:33:45,350 Nullen und Einsen. 736 00:33:45,350 --> 00:33:48,170 Und es ist einfach, wie Sie sich entscheiden um sie zu interpretieren. 737 00:33:48,170 --> 00:33:50,770 >> Und wenn Sie tatsächlich aussehen an diesem Bild - 738 00:33:50,770 --> 00:33:52,930 Lassen Sie uns ein wenig zu vergrößern. 739 00:33:52,930 --> 00:33:53,720 Kann jeder sehen? 740 00:33:53,720 --> 00:33:57,570 Sie werden sich hier bemerken, gibt es einige seltsame Fleck. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Lass uns gehen - das ist das Originalbild. 743 00:34:02,290 --> 00:34:04,540 Sie werden feststellen, hier gibt es keinen Fleck. 744 00:34:04,540 --> 00:34:08,420 Das ist der Code für die Summenfunktion, ist, dass kleiner Fleck recht. 745 00:34:08,420 --> 00:34:13,449 >> Und eigentlich wieder, wenn Sie mehr erfahren über diese, werden Sie feststellen, dass diese 746 00:34:13,449 --> 00:34:18,270 Hallo Kitty, die auch eine größere hat Fleck, hat Code, der über ein finden kann 747 00:34:18,270 --> 00:34:21,800 Computer, wenn es nicht geschützt entsprechend. 748 00:34:21,800 --> 00:34:23,920 So können Sie diese tatsächlich ausgeführt. 749 00:34:23,920 --> 00:34:25,380 Ich werde nicht, um es jetzt laufen. 750 00:34:25,380 --> 00:34:30,600 Aber man kann diese ausführen Hallo Kitty Bild, und es kann 751 00:34:30,600 --> 00:34:32,429 nehmen über Ihren Computer. 752 00:34:32,429 --> 00:34:35,159 >> Also das ist alles für die Demo. 753 00:34:35,159 --> 00:34:38,560 Hat jemand irgendwelche Fragen haben, Kommentare, Anliegen? 754 00:34:38,560 --> 00:34:39,515 Ich denke, das Zeug ist faszinierend. 755 00:34:39,515 --> 00:34:41,500 Es hat mich inspiriert, mehr zu erfahren. 756 00:34:41,500 --> 00:34:44,980 Ich empfehle, wenn Sie interessiert sind haupt auf CS, sprechen Sie mich an. 757 00:34:44,980 --> 00:34:50,250 Auch wenn ich ein Sozialstudien Concentrator, ich bin ein CS, sekundäre, so 758 00:34:50,250 --> 00:34:52,340 Ich weiß noch, ein wenig. 759 00:34:52,340 --> 00:34:53,810 Aber ich weiß, was sicherlich Klassen, die Sie nehmen sollten. 760 00:34:53,810 --> 00:34:57,940 Ich denke, es ist alles sehr interessant, und ich ermutige Sie, natürlich, um 761 00:34:57,940 --> 00:35:00,330 erfahren Sie mehr, wenn Sie interessiert sind. 762 00:35:00,330 --> 00:35:02,090 >> OK, ich habe eine letzte Sache. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Entschuldigung. 765 00:35:05,870 --> 00:35:06,460 Haben Sie Fragen? 766 00:35:06,460 --> 00:35:10,010 Ich habe nicht innehalten, um zu warten, ob jemand hatte keine Fragen darüber. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> Ist jemand sein wird ein CS-Konzentrator? 769 00:35:16,900 --> 00:35:18,580 Oder daran zu denken? 770 00:35:18,580 --> 00:35:20,730 Ein, zwei, drei, vier. 771 00:35:20,730 --> 00:35:21,620 One - nur einen. 772 00:35:21,620 --> 00:35:24,680 Anna ist die einzige Hand, ist autoritativ angehoben. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 OK, das ist cool. 775 00:35:29,390 --> 00:35:30,110 Assam, was werden Sie tun? 776 00:35:30,110 --> 00:35:33,220 >> ZIELGRUPPE: [unverständlich]. 777 00:35:33,220 --> 00:35:33,910 >> SPRECHER: Konstantin? 778 00:35:33,910 --> 00:35:34,990 >> ZIELGRUPPE: Physik. 779 00:35:34,990 --> 00:35:36,720 >> SPRECHER: Whoa, das ging schnell. 780 00:35:36,720 --> 00:35:40,770 Sie hatte eine schlechte Erfahrung in CS50? 781 00:35:40,770 --> 00:35:42,015 [Unverständlich], was werden Sie tun? 782 00:35:42,015 --> 00:35:42,980 >> ZIELGRUPPE: Ich habe keine Ahnung. 783 00:35:42,980 --> 00:35:43,924 >> SPRECHER: Curt? 784 00:35:43,924 --> 00:35:45,900 >> ZIELGRUPPE: Econ oder CS. 785 00:35:45,900 --> 00:35:46,910 >> SPRECHER: Econ oder CS. 786 00:35:46,910 --> 00:35:47,840 Tom? 787 00:35:47,840 --> 00:35:48,385 >> ZIELGRUPPE: Ich mache Stat. 788 00:35:48,385 --> 00:35:48,950 >> SPRECHER: Stat? 789 00:35:48,950 --> 00:35:50,100 OK. 790 00:35:50,100 --> 00:35:51,000 Was sind Sie? 791 00:35:51,000 --> 00:35:51,310 >> ZIELGRUPPE: Ich? 792 00:35:51,310 --> 00:35:51,750 >> SPRECHER: Ja. 793 00:35:51,750 --> 00:35:52,190 >> ZIELGRUPPE: Stat. 794 00:35:52,190 --> 00:35:52,520 >> SPRECHER: Stat. 795 00:35:52,520 --> 00:35:53,500 Oh, dort gehen Sie. 796 00:35:53,500 --> 00:35:55,200 Tom, sprechen Sie mit Alden. 797 00:35:55,200 --> 00:35:56,932 Emily, was sind Sie? 798 00:35:56,932 --> 00:35:57,396 >> ZIELGRUPPE: Biomedical - 799 00:35:57,396 --> 00:36:00,178 >> SPRECHER: Sind Sie in diesem Abschnitt? 800 00:36:00,178 --> 00:36:03,040 >> ZIELGRUPPE: Nein 801 00:36:03,040 --> 00:36:04,530 >> SPRECHER: OK, das ist Emily. 802 00:36:04,530 --> 00:36:05,670 Sie ist meine Freundin. 803 00:36:05,670 --> 00:36:10,080 Natürlich nicht so gut von einem Freund, denn sie gibt mir eine harte Zeit. 804 00:36:10,080 --> 00:36:13,223 Sie könnten netter zu mir sein vor aller, mein Schüler - 805 00:36:13,223 --> 00:36:14,580 >> ZIELGRUPPE: Ich mache Ihre Q Führer. 806 00:36:14,580 --> 00:36:14,870 >> SPRECHER: Wirklich? 807 00:36:14,870 --> 00:36:15,510 Uh oh. 808 00:36:15,510 --> 00:36:17,224 Okay, du bist unglaublich. 809 00:36:17,224 --> 00:36:19,380 Ich liebe dich so sehr. 810 00:36:19,380 --> 00:36:20,600 Oh Junge. 811 00:36:20,600 --> 00:36:28,320 >> Wie auch immer, ich, letzte Nacht, wie alles - 812 00:36:28,320 --> 00:36:32,220 Ich bin sicher, jeder scheint wirklich betonte, gerade jetzt. 813 00:36:32,220 --> 00:36:35,970 Ich weiß nicht, sind Neuling - sind euch gestresst fühlen? 814 00:36:35,970 --> 00:36:36,855 Ich fühle mich gestresst. 815 00:36:36,855 --> 00:36:37,980 Es war wie, Sie nach Hause gehen für Thanksgiving. 816 00:36:37,980 --> 00:36:40,660 Du bist wie, ich bin zu gehen all diese Dinge zu tun. 817 00:36:40,660 --> 00:36:41,530 >> ZIELGRUPPE: Es ist so anders. 818 00:36:41,530 --> 00:36:42,560 >> SPRECHER: Ja, und Sie kommen zurück. 819 00:36:42,560 --> 00:36:45,290 Jeff, Sie fühlen sich nicht so? 820 00:36:45,290 --> 00:36:46,610 >> ZIELGRUPPE: Ich dachte nur, Ich würde ein wenig zu tun. 821 00:36:46,610 --> 00:36:48,660 >> SPRECHER: OK, toll. 822 00:36:48,660 --> 00:36:51,650 So komme ich zurück, und ich habe nicht nichts getan. 823 00:36:51,650 --> 00:36:53,260 Und es ist alles super stressig. 824 00:36:53,260 --> 00:36:55,640 Und ich mache mir Sorgen, wirklich betrifft, darüber, ob oder nicht, ich bin 825 00:36:55,640 --> 00:36:57,380 gehen, um alles, was ich bis zum Ende. 826 00:36:57,380 --> 00:37:01,750 Aber letzte Nacht, ich war nicht gestresst, Ich war nur ein wenig traurig. 827 00:37:01,750 --> 00:37:04,520 Also in mein Tagebuch schrieb ich über was ich war traurig darüber. 828 00:37:04,520 --> 00:37:08,020 Und ich war traurig über diesen Abschnitt in dieser Klasse zu Ende. 829 00:37:08,020 --> 00:37:11,100 >> So war ich gerade dabei, für euch zu lesen ein kleiner Ausschnitt von meinem Tagebuch, 830 00:37:11,100 --> 00:37:12,950 von der letzten Nacht. 831 00:37:12,950 --> 00:37:17,400 Kann ich ein paar Servietten, einige Gewebe von Tom? 832 00:37:17,400 --> 00:37:18,040 Nein, ich werde weinen. 833 00:37:18,040 --> 00:37:19,720 Ich weine nicht. 834 00:37:19,720 --> 00:37:22,030 Nicht, dass man nicht weinen kann, Ich weiß nur nicht weinen. 835 00:37:22,030 --> 00:37:24,040 Ich weiß nicht einmal, ob meine Tränen Drüsen gearbeitet - Tränenkanäle. 836 00:37:24,040 --> 00:37:25,630 Ich habe nicht in eine lange Zeit geweint. 837 00:37:25,630 --> 00:37:26,510 >> ZIELGRUPPE: [unverständlich]. 838 00:37:26,510 --> 00:37:28,920 >> SPRECHER: OK, danke. 839 00:37:28,920 --> 00:37:30,070 OK, es ist ein wenig Vorwort - 840 00:37:30,070 --> 00:37:32,480 es gibt einige andere Teile von meinem Tagebuch Eintrag, weil ich versuche, jede Zeitschrift 841 00:37:32,480 --> 00:37:33,600 Nacht, bevor ich zu Bett. 842 00:37:33,600 --> 00:37:34,900 Ich empfehle Journaling. 843 00:37:34,900 --> 00:37:38,600 Es hilft Ihnen, die Dinge zu verarbeiten und auch sehr dankbar für den Tag. 844 00:37:38,600 --> 00:37:43,063 Und es macht es viel einfacher zu sehen wieder auf den Tag und erkennen, dass 845 00:37:43,063 --> 00:37:44,240 es gab eine Menge guter Dinge, die passiert ist. 846 00:37:44,240 --> 00:37:47,240 Auch wenn Sie das Gefühl, wirklich gestresst in der Nacht oder wirklich aufgeregt, oder 847 00:37:47,240 --> 00:37:49,022 wirklich traurig oder müde. 848 00:37:49,022 --> 00:37:50,272 >> Oh, mein Gott. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Ich weiß nicht einmal, ob es geschrieben, dass gut, weil ich nicht Korrektur gelesen. 851 00:37:54,400 --> 00:37:55,780 Aber wir werden es lesen. 852 00:37:55,780 --> 00:37:59,950 Ich normalerweise nicht lesen, meine Zeitschrift, offensichtlich. 853 00:37:59,950 --> 00:38:03,720 >> "Morgen werde ich meinen letzten lehren CS50 Abschnitt des Jahres. 854 00:38:03,720 --> 00:38:05,860 Es ist verrückt, wie schnell die Zeit vergeht. 855 00:38:05,860 --> 00:38:09,900 Doch, ich bin durch, wie unterschiedlich getroffen meine Erfahrung im Unterrichten war in diesem Jahr 856 00:38:09,900 --> 00:38:11,365 als wenn ich im zweiten Jahr. 857 00:38:11,365 --> 00:38:14,120 Für den Anfang, ich auf jeden Fall wissen, das Material besser. 858 00:38:14,120 --> 00:38:16,820 Aber nicht sagen, meine erste Kohorte von Studenten, dass. 859 00:38:16,820 --> 00:38:20,030 Noch wichtiger ist jedoch, erkannte ich, dass die Freude, die aus Stand kommt 860 00:38:20,030 --> 00:38:23,160 bis vor einem Raum, was beginnt als Fremde, aber endet als bei 861 00:38:23,160 --> 00:38:27,150 dest, Facebook-Freunde, nicht im ersten Jahr Zufall. 862 00:38:27,150 --> 00:38:29,970 Vielmehr ist es aus zu wissen, dass in einige kleine Weise, Sie helfen 863 00:38:29,970 --> 00:38:32,980 begabt, nachdenklich, entzückend, und leidenschaftliche Menschen lernen ein bisschen mehr 864 00:38:32,980 --> 00:38:34,750 über Informatik. 865 00:38:34,750 --> 00:38:37,480 >> Sie sind Verschiebung, dass die Glühbirne nur ein Bit im Sockel, so dass es in der Lage 866 00:38:37,480 --> 00:38:42,120 heller, als Sie zu leuchten, oder sie, könnte bei Semesterbeginn vorstellen können. 867 00:38:42,120 --> 00:38:45,390 Sie helfen drehen diejenigen runzelt die Stirn auf den Kopf nach unten und Fragen zu stellen, 868 00:38:45,390 --> 00:38:49,240 Unterstützung, aber immer noch erlauben, Studenten, sich auf ihre eigenen. 869 00:38:49,240 --> 00:38:52,190 >> Es ist sicherlich nicht übertrieben zu sagen, dass dieser Abschnitt ist mein Favorit 870 00:38:52,190 --> 00:38:53,190 Teil der Woche. 871 00:38:53,190 --> 00:38:57,930 Oder auch, dass ich zögere zu sagen, ist, dass allem, um 5:30 Uhr jede Woche, zu wissen, 872 00:38:57,930 --> 00:39:00,640 dass es dann viel zu lang sein bis wir uns wieder treffen. 873 00:39:00,640 --> 00:39:02,740 >> Doch, ich bin unglaublich dankbar, alle, die mir diese gegeben hat 874 00:39:02,740 --> 00:39:05,010 Gelegenheit, andere zurück zu geben. 875 00:39:05,010 --> 00:39:07,340 Um David, für seine Geduld und Vertrauen. 876 00:39:07,340 --> 00:39:11,040 Um die Film-und Produktionsteam, für macht mich freuen etwas respektabel. 877 00:39:11,040 --> 00:39:15,380 Und, am wichtigsten, zu meiner Studenten, ohne die würde ich keinen Grund zu haben, 878 00:39:15,380 --> 00:39:17,890 10 Stunden verbringen herauszufinden, die am besten Weg, um Zeiger zu ziehen, oder das Layout ein 879 00:39:17,890 --> 00:39:20,330 Tabelle von Delfinen, via JavaScript. 880 00:39:20,330 --> 00:39:22,620 Wie immer, es war ein Segen. " 881 00:39:22,620 --> 00:39:25,420 >> Also mit diesem, danke Jungs. 882 00:39:25,420 --> 00:39:29,000 Ich werde Sie alle auf dem CS50 Messe zu sehen, und der Hackathon, wenn du da bist. 883 00:39:29,000 --> 00:39:32,020 Und wenn Sie Fragen haben, werde ich bleiben herum, bis es nicht mehr. 884 00:39:32,020 --> 00:39:33,760 Aber ich danke euch für ein wunderbares Jahr. 885 00:39:33,760 --> 00:39:37,290 >> [Applaus] 886 00:39:37,290 --> 00:39:38,540 >> SPRECHER: Ich könnte weinen. 887 00:39:38,540 --> 00:39:40,800