1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> PROFESSOR: Also der Tagesordnung diese Woche nicht so viel Zeug. 3 00:00:09,790 --> 00:00:12,801 Aber hoffentlich sehr, sehr hilfreich und für euch in dieser Woche relevant. 4 00:00:12,801 --> 00:00:15,550 Aber wir werden vielleicht 15 zu verbringen, 20 Minuten mal eben schnell im Gespräch 5 00:00:15,550 --> 00:00:17,370 über Link-Liste. 6 00:00:17,370 --> 00:00:19,694 Linklisten sind los bei dem Quiz abgedeckt werden. 7 00:00:19,694 --> 00:00:22,610 Also vielleicht wäre es sehr hilfreich ein wenig über, was das ist zu lernen. 8 00:00:22,610 --> 00:00:25,210 >> Wir werden die überwiegende verbringen Mehrheit der heutigen Abschnitt 9 00:00:25,210 --> 00:00:27,640 gehen über Quiz Null Praxis Probleme. 10 00:00:27,640 --> 00:00:30,970 Und dann werden wir vielleicht 20, nur 30 Minuten zu retten am Ende für alle offenen Fragen 11 00:00:30,970 --> 00:00:32,850 jemand hat. 12 00:00:32,850 --> 00:00:34,610 >> Und dann wird der letzte fünf Minuten werde ich 13 00:00:34,610 --> 00:00:36,467 , eine Pumpe von Sprache für das Quiz zu geben. 14 00:00:36,467 --> 00:00:38,050 Ihr seid alle wollen hier dafür. 15 00:00:38,050 --> 00:00:39,591 Denn es geht um eine gute Zeit zu sein. 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> In Ordnung, so dass einige Material auf Link-Liste. 18 00:00:49,230 --> 00:00:52,620 Wie sie in der Regel strukturiert ist Sie haben eine so genannte Knoten, nicht wahr? 19 00:00:52,620 --> 00:00:54,870 Sie haben diese Dinge genannt Knoten, die Strukturen sind. 20 00:00:54,870 --> 00:00:57,360 Ich werde über die Erstellung gehen ein Knoten in der nächsten Folie. 21 00:00:57,360 --> 00:01:00,680 Aber im Wesentlichen aller gelinkten Listen sind Daten, 22 00:01:00,680 --> 00:01:03,340 hat zusammen über Zeiger aufgereiht worden. 23 00:01:03,340 --> 00:01:09,110 >> Und so der Vorteil, den wir haben, der Verwendung einer verknüpften Liste über, 24 00:01:09,110 --> 00:01:11,280 vielleicht, wie ein Array ist die Tatsache, dass in einem Array 25 00:01:11,280 --> 00:01:15,000 Sie einen zusammenhängenden Block von benötigen Speicher alle an der gleichen Stelle, einer 26 00:01:15,000 --> 00:01:16,870 nach dem anderen, in der Lage sein, daß zu haben. 27 00:01:16,870 --> 00:01:20,200 Während eine verknüpfte Liste, könnten Sie zufällige kleine Stücke von Speicher 28 00:01:20,200 --> 00:01:23,020 aller Computer durch Zeiger aneinandergereiht. 29 00:01:23,020 --> 00:01:26,270 >> Und auf diese Weise können Zugang zu Informationen 30 00:01:26,270 --> 00:01:28,610 das kommt einer nach dem anderen, nach dem anderen 31 00:01:28,610 --> 00:01:32,720 ohne dass nur ein großes Stück Speicher in Ihrem Computer irgendwo. 32 00:01:32,720 --> 00:01:35,910 Und so ist dies eines der wichtigsten Gründe, warum verwenden wir Link-Liste. 33 00:01:35,910 --> 00:01:40,300 >> Zweitens ist es sehr einfach, dynamisch Größe des Link-Liste, weil in der Anordnung, 34 00:01:40,300 --> 00:01:44,720 wenn Sie erklären, ein Array, Sie haben einen bestimmten Sollwert. 35 00:01:44,720 --> 00:01:47,340 Sagen wir, ich wollte zu erstellen ein Array von 10 Zahlen. 36 00:01:47,340 --> 00:01:49,970 Erstelle ich ein Array von 10 ganzen Zahlen, und das ist es. 37 00:01:49,970 --> 00:01:50,580 Es ist 10. 38 00:01:50,580 --> 00:01:52,038 Ich weiß nicht, was ich danach machen. 39 00:01:52,038 --> 00:01:53,680 Wenn ich wollte, um es 11 zu machen, kann es nicht tun. 40 00:01:53,680 --> 00:01:55,710 Wenn ich möchte es 9 zu machen, kann es nicht tun. 41 00:01:55,710 --> 00:01:59,910 >> Während in einer Linkliste, die Sie hinzufügen können, und löschen und einfügen wo immer Sie wollen. 42 00:01:59,910 --> 00:02:04,940 Sie können dynamisch die Größe Ihrer strukturieren, hier, ihr Datenstruktur. 43 00:02:04,940 --> 00:02:08,370 Und das gibt uns eine Menge Weitere zusätzliche Flexibilität 44 00:02:08,370 --> 00:02:11,320 dass wir nicht in der Regel haben mit Arrays. 45 00:02:11,320 --> 00:02:15,210 >> Jeder verwirrt auf dem Grund Struktur, wie eine Link-Liste ist 46 00:02:15,210 --> 00:02:17,930 oder warum wir auf eine über ein Array verwenden? 47 00:02:17,930 --> 00:02:20,330 Ja, wir gehen über im Detail wie man tatsächlich erstellen Sie eine. 48 00:02:20,330 --> 00:02:24,121 Aber das ist nur eine Art das allgemeine Gefühl gerade jetzt. 49 00:02:24,121 --> 00:02:24,620 Cool. 50 00:02:24,620 --> 00:02:28,770 Und so Arrays aneinandergereiht dieser schönen kleinen Dinge 51 00:02:28,770 --> 00:02:29,960 Knoten genannt. 52 00:02:29,960 --> 00:02:32,210 Alle ein Knoten ist eine Art von Struktur. 53 00:02:32,210 --> 00:02:36,090 Denken Sie daran, eine Struktur ist, wenn man wollte um eine bestimmte Art von Variable zu erstellen 54 00:02:36,090 --> 00:02:39,850 in C, die nicht bereits tut vorhanden sind, die Sie, als Programmierer, 55 00:02:39,850 --> 00:02:42,030 kann tatsächlich zu erstellen, dass Sie sich. 56 00:02:42,030 --> 00:02:46,540 >> Usw. Diese Art der Daten Struktur wird als ein Knotenpunkt, 57 00:02:46,540 --> 00:02:50,770 tatsächlich von uns erstellt wurden, dass nicht innerhalb von C auf eigene existieren. 58 00:02:50,770 --> 00:02:53,150 Und die Art und Weise, dass Sie erstellen eine ist Sie 59 00:02:53,150 --> 00:02:57,170 der Header typedef struct, der der Compiler Ich bin erzählt 60 00:02:57,170 --> 00:02:59,640 etwa um eine Struktur zu schaffen. 61 00:02:59,640 --> 00:03:00,830 >> Wir werden mit dem Namen "Knoten". 62 00:03:00,830 --> 00:03:03,350 Und im Inneren wir gehen um eine Variable in erklären, 63 00:03:03,350 --> 00:03:05,060 die gehen, um einen Wert zu speichern. 64 00:03:05,060 --> 00:03:09,320 Und dann sind wir auch gehen, um haben ein Zeiger namens "next" 65 00:03:09,320 --> 00:03:12,090 , der auf die nächste Knoten in der Linkliste. 66 00:03:12,090 --> 00:03:14,730 Und dann haben Sie, dass Schluss nur um wieder wiederholenden Knoten so 67 00:03:14,730 --> 00:03:17,490 Der Compiler weiß, OK das ist das Ende meiner struct. 68 00:03:17,490 --> 00:03:22,540 >> Und so auf diese Weise können wir Art der Schaffung eines niedlichen kleinen Array 69 00:03:22,540 --> 00:03:25,450 Art der Sache mit einem Wert und mit einem Zeiger. 70 00:03:25,450 --> 00:03:27,757 Und Sie können sie alle zu verbinden zusammen mit diesen Zeigern. 71 00:03:27,757 --> 00:03:30,090 So dass sie alle Art sein in einer Kette aneinander. 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> Cool. 74 00:03:34,162 --> 00:03:35,453 Können Sie hören, dass ein bisschen besser? 75 00:03:35,453 --> 00:03:36,140 >> ZIELGRUPPE: Ja. 76 00:03:36,140 --> 00:03:38,540 >> PROFESSOR: Alles klar. 77 00:03:38,540 --> 00:03:44,280 So ist die Art und Weise, wie ihr Jungs sehen können, eine typische Link-Liste ist so strukturiert, 78 00:03:44,280 --> 00:03:45,500 wird Ihnen einen Vorsprung haben. 79 00:03:45,500 --> 00:03:49,460 Sie haben die Hauptwert, der nicht von jeder anderen Zeiger gezeigt. 80 00:03:49,460 --> 00:03:53,177 Aber es geht um zu zeigen, oder Verweis, ein anderer Knoten. 81 00:03:53,177 --> 00:03:56,510 Der Knoten nach wird sich der Referenz Knoten danach, und so weiter und so fort 82 00:03:56,510 --> 00:03:59,170 bis Sie schließlich getroffen das Ende der Linkliste. 83 00:03:59,170 --> 00:04:00,980 Und Sie werden nicht einen Zeiger haben dort. 84 00:04:00,980 --> 00:04:04,659 >> Und so denken wie an einer Kette oder sogar wenn einer von euch Jungs gemacht, ich weiß es nicht, 85 00:04:04,659 --> 00:04:06,450 wie mit Fruit Loops als du klein warst. 86 00:04:06,450 --> 00:04:08,590 Sie würden sie aneinanderreihen und tragen Sie sie um den Hals. 87 00:04:08,590 --> 00:04:09,840 Denke, es ist genau dasselbe. 88 00:04:09,840 --> 00:04:12,964 Sie haben diese kleinen Dinge, die Sie können aneinander, dass Punkt zu einem 89 00:04:12,964 --> 00:04:15,291 danach, auf die nacheinander , und so weiter und so fort 90 00:04:15,291 --> 00:04:17,040 bis Sie eine Kette einer Datenstruktur, 91 00:04:17,040 --> 00:04:21,190 dass Sie verwenden können, wie Sie wollen. 92 00:04:21,190 --> 00:04:27,370 >> So ist die Art und Weise, dass diese würden wir typischerweise einfügen oder löschen 93 00:04:27,370 --> 00:04:30,020 jeder Knoten über einen Link Liste ist sehr unterschiedlich 94 00:04:30,020 --> 00:04:31,970 Je nachdem, wo dieser Knoten. 95 00:04:31,970 --> 00:04:34,880 So, zum Beispiel, weil Zeiger sind immer 96 00:04:34,880 --> 00:04:38,645 deutete auf einen bestimmten Wert, wenn Sie Löschen oder Einfügen eines Knotens, 97 00:04:38,645 --> 00:04:41,770 Sie sicherstellen, dass der Zeiger möchten ist alles deutete auf die richtigen Dinge. 98 00:04:41,770 --> 00:04:46,200 >> Also, wenn Sie wollen möglicherweise einfügen ein neuer Knoten mit dem Wert eines 99 00:04:46,200 --> 00:04:48,379 in einem sortierten Link Liste, wissen wir alle hier, 100 00:04:48,379 --> 00:04:51,170 von dem Bild, das los ist gehen zwischen Kopf und zwei, oder? 101 00:04:51,170 --> 00:04:52,620 Weil man passt genau dort. 102 00:04:52,620 --> 00:04:59,060 Aber die Art, wie wir das tun würde ist durch erste Dereferenzierung des Zeigers 103 00:04:59,060 --> 00:05:02,160 von Kopf und Senden, dass zu eins. 104 00:05:02,160 --> 00:05:05,040 >> Aber wir in ein Problem, kommen hierher. 105 00:05:05,040 --> 00:05:08,280 Kann jemand sehen, was das Problem ist, wenn wir zum ersten dereferenzieren 106 00:05:08,280 --> 00:05:10,090 der Zeiger vom Kopf bis zu einem? 107 00:05:10,090 --> 00:05:14,202 Welches Problem könnten wir in, wenn wir versuchen laufen um dies an der Vorderseite der unser Angebot hinzufügen? 108 00:05:14,202 --> 00:05:15,409 >> ZIELGRUPPE: [unverständlich] 109 00:05:15,409 --> 00:05:16,200 PROFESSOR: Genau. 110 00:05:16,200 --> 00:05:20,000 Hier haben wir also einen Zeiger, der war einmal zeigt vom Kopf bis zu zwei. 111 00:05:20,000 --> 00:05:23,120 Aber wenn Sie loswerden, dass Zeiger, es zeigen Ihnen, eine, 112 00:05:23,120 --> 00:05:26,500 wir haben jetzt keine Ahnung, wohin sie gehen, um zwei zu finden. 113 00:05:26,500 --> 00:05:29,850 Denn wie ich schon sagte, du musst ein riesigen Teil des Speichers in Ihrem Computer. 114 00:05:29,850 --> 00:05:31,860 Alle diese Knoten könnten zufällig verteilt sein 115 00:05:31,860 --> 00:05:33,350 an jedem Ort in Ihrem Computer. 116 00:05:33,350 --> 00:05:36,140 Und Sie nicht wissen, wie über die Suche nach, dass zu gehen. 117 00:05:36,140 --> 00:05:40,420 >> Und so müssen Sie Zeiger haben zeigt an alle Knoten am Ende. 118 00:05:40,420 --> 00:05:42,420 Oder, wenn Sie versehentlich Dereferenzierung eines 119 00:05:42,420 --> 00:05:44,485 ohne vorher Zuordnung ein Wert zuerst, du bist 120 00:05:44,485 --> 00:05:47,410 gerade dabei, zu verlieren alles danach. 121 00:05:47,410 --> 00:05:49,720 >> Also, was wir zu gehen zu tun ist, müssen Sie zunächst würde 122 00:05:49,720 --> 00:05:53,270 wollen, um einen Zeiger zu erstellen auf der Knoten, die Sie einfügen möchten. 123 00:05:53,270 --> 00:05:55,270 Verweisen Sie auf, wo Sie möchte es zum Einfügen, 124 00:05:55,270 --> 00:05:59,410 und dann danach können konnte den Kopf zurück, um einen Punkt. 125 00:05:59,410 --> 00:06:02,800 >> Heißt das sinnvoll sein, alle hier? 126 00:06:02,800 --> 00:06:03,346 Groß. 127 00:06:03,346 --> 00:06:04,720 Betrachten Sie es als wie eine Kette. 128 00:06:04,720 --> 00:06:07,420 Wenn Sie eine Kette hinzu, es ist eine Art intuitive 129 00:06:07,420 --> 00:06:10,742 wie Sie möchten, dass zum Einfügen gehen. 130 00:06:10,742 --> 00:06:15,274 >> OK, damit ist eigentlich viel kürzer als ich dachte, es wäre, 131 00:06:15,274 --> 00:06:16,690 ein Fünf-Minuten spiel auf Linklisten. 132 00:06:16,690 --> 00:06:19,960 Nur damit Sie Jungs haben die Grundidee, was das ist. 133 00:06:19,960 --> 00:06:23,580 >> Hier haben wir die Tagesordnung für Quiz-Null. 134 00:06:23,580 --> 00:06:24,895 Lassen Sie sich diese einschüchtern. 135 00:06:24,895 --> 00:06:26,270 Ich weiß, es gibt eine Menge von Informationen. 136 00:06:26,270 --> 00:06:27,580 Es sieht sehr beängstigend. 137 00:06:27,580 --> 00:06:33,130 Es ist auch eine Menge, ich denke, CSC Art von Begriffen. 138 00:06:33,130 --> 00:06:37,440 Dinge wie hexadezimale Zeichenfolgen, Zeiger und dynamische Speicherzuordnungen 139 00:06:37,440 --> 00:06:40,120 sind sehr beängstigend klingende Begriffe. 140 00:06:40,120 --> 00:06:42,700 >> Aber wir werden, sie zu brechen unten, machen Sie einige Übungsaufgaben 141 00:06:42,700 --> 00:06:44,980 so dass euch alle sind bereit für diesen Test. 142 00:06:44,980 --> 00:06:47,104 Wie von euch viele haben bereits begonnen zu studieren? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> OK, Sie wollen Jungs wahrscheinlich Zum Anfang Erste Schritte 145 00:06:53,670 --> 00:06:56,480 auf, dass, weil das Quiz ist morgen. 146 00:06:56,480 --> 00:06:58,739 Oder Donnerstag für einige von euch. 147 00:06:58,739 --> 00:07:01,030 Ja, also werden wir zu gehen, über einige der Praxis Probleme. 148 00:07:01,030 --> 00:07:04,600 Wenn euch alle wollen zu nehmen aus einem Blatt Papier, einen Bleistift. 149 00:07:04,600 --> 00:07:07,310 Wir werden nur verbringen den überwiegende Mehrheit der heutigen Abschnitt 150 00:07:07,310 --> 00:07:11,590 gehen über einige der, dass, so dass Sie Jungs haben eine Idee von dem, was auf dem Quiz zu erwarten. 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> OK. 153 00:07:16,890 --> 00:07:19,730 Ein paar logistische Details als auch, für alle, 154 00:07:19,730 --> 00:07:25,120 die sich nicht auf diesen Link dort gewesen, wenn Sie gehen, um cs50.yale.edu, auf der Vorderseite 155 00:07:25,120 --> 00:07:28,566 Diese Seite gibt es einen Link das sagt "Über Quiz Null." 156 00:07:28,566 --> 00:07:29,440 Link führt Sie dort. 157 00:07:29,440 --> 00:07:31,065 Wenn Sie noch nicht gelesen haben, lesen Sie es bitte. 158 00:07:31,065 --> 00:07:34,470 Denn es sagt Ihnen wirklich wichtig Informationen zum Quiz. 159 00:07:34,470 --> 00:07:37,410 >> Ich werde diesen Eintrag von herausziehen dass, nur weil, körperlich, 160 00:07:37,410 --> 00:07:40,200 wenn euch die nicht wissen, wo zu gehen, werden wir Probleme haben. 161 00:07:40,200 --> 00:07:44,220 Und so, wenn Ihre letzten in Bezug mit A N ist, gehen Sie zu dem Gesetz Schulaula. 162 00:07:44,220 --> 00:07:47,500 Und wenn Ihre letzten beginnt mit P bis Z, gehen Sie zu Davies Auditorium. 163 00:07:47,500 --> 00:07:50,240 Und dies gilt nur für Menschen in der Mittwoch-Sektion. 164 00:07:50,240 --> 00:07:53,420 >> Wenn Sie die Einnahme des Quiz sind Donnerstag, den SSS 114 gehen Sie 165 00:07:53,420 --> 00:07:55,078 wo Ihr Vortrag in der Regel ist. 166 00:07:55,078 --> 00:07:55,953 ZIELGRUPPE: [unverständlich] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 PROFESSOR: O bis Z, Sie gehen um zum Davies Hörsaal zu gehen. 169 00:08:01,940 --> 00:08:03,273 Ich werde das zu ändern, oder? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> Oh, ja, man muss nur automatisch scheitern. 172 00:08:09,698 --> 00:08:11,753 >> Oh ja, dass Sie Christa. 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 Ja, mein schlechtes. 175 00:08:16,030 --> 00:08:17,610 Yep, O bis Z, Sie gehen Zu Davies Auditorim gehen. 176 00:08:17,610 --> 00:08:19,140 Ich werde dieses Problem beheben, wenn ich hochladen. 177 00:08:19,140 --> 00:08:20,320 Ja. 178 00:08:20,320 --> 00:08:22,160 >> Und dann auch etwas, wichtig zu beachten 179 00:08:22,160 --> 00:08:25,290 ist, dass Mittwoch, wenn Sie offiziell sind in der Mittwoch-Abschnitt eingeschrieben, 180 00:08:25,290 --> 00:08:26,832 Sie müssen Ihre Quiz am Mittwoch. 181 00:08:26,832 --> 00:08:29,706 Und wenn Sie am Donnerstag eingeschrieben sind, Sie müssen Ihre Quiz Donnerstag statt. 182 00:08:29,706 --> 00:08:31,000 Und es ist während der Unterrichtszeit. 183 00:08:31,000 --> 00:08:35,970 Wo, ich denke, es ist wie 1:00 bis 02.15 Uhr am Mittwoch und von 2.30 bis 03.45 Uhr 184 00:08:35,970 --> 00:08:37,220 an Donnerstagen. 185 00:08:37,220 --> 00:08:41,710 >> Wenn Sie eine unversöhnliche Konflikte, Deans Ausreden sind die einzige Sache, 186 00:08:41,710 --> 00:08:43,030 Leider können wir zu nehmen. 187 00:08:43,030 --> 00:08:45,560 Da mussten wir ein überwiegende Mehrheit der Anfragen 188 00:08:45,560 --> 00:08:47,970 um von Mittwoch auf Donnerstag zu wechseln. 189 00:08:47,970 --> 00:08:51,265 Die wir nicht, es sei denn zu ehren wir fordern Sie eine Dekans. 190 00:08:51,265 --> 00:08:52,650 >> OK. 191 00:08:52,650 --> 00:08:57,000 Also, bevor wir auf ein begonnen paar der Praxis Probleme, 192 00:08:57,000 --> 00:09:00,540 Ich werde einfach zu übergehen Andys hilfreiche Tipps für den Erfolg. 193 00:09:00,540 --> 00:09:04,140 Ihr Jungs, wenn Sie studieren, die Sie wirklich wollen üben das Schreiben von Code mit der Hand. 194 00:09:04,140 --> 00:09:07,050 Das erste Mal, dass ich nahm einen CS-Quiz, hatte ich nicht 195 00:09:07,050 --> 00:09:09,960 Praxis Schreiben von Code von Hand vor und es war extrem 196 00:09:09,960 --> 00:09:11,890 schockierend, wie schwierig es war. 197 00:09:11,890 --> 00:09:16,125 >> Wenn euch nicht in das zu bekommen Gewohnheit Eingabe alles, 198 00:09:16,125 --> 00:09:20,260 kommt es ganz natürlich sein in der Lage, automatisch vervollständigt haben 199 00:09:20,260 --> 00:09:22,015 Klammern und Semikolons gibt. 200 00:09:22,015 --> 00:09:23,890 Wenn Sie schreiben es heraus von Hand, manchmal ist es 201 00:09:23,890 --> 00:09:27,100 sehr, sehr einfach, ein Semikolon vergessen haben, oder vergessen, eine Klammer zu schließen, 202 00:09:27,100 --> 00:09:30,970 oder vergessen, einen Doppelpunkt zu schließen, oder etwas ähnliches. 203 00:09:30,970 --> 00:09:34,322 >> Also, wenn Sie Code schreiben, mit der Hand, es ist ein ganz anderes Gefühl. 204 00:09:34,322 --> 00:09:37,280 So euch, wenn Sie gerade arbeiten einige der Praxis Probleme, 205 00:09:37,280 --> 00:09:38,904 es wäre gut, wirklich heute praktizieren. 206 00:09:38,904 --> 00:09:41,770 Oder morgen, ich nehme an, wenn Sie sie das Quiz am Donnerstag. 207 00:09:41,770 --> 00:09:45,280 >> Zweitens haben wir die letzte, wie, 8 Jahre im Wert von Praxis 208 00:09:45,280 --> 00:09:47,070 Quiz online. 209 00:09:47,070 --> 00:09:50,759 Die diesjährige Quiz wird wahrscheinlich sehr, sehr ähnlich zu allen von ihnen. 210 00:09:50,759 --> 00:09:51,800 Sie sind alle sehr ähnlich. 211 00:09:51,800 --> 00:09:54,220 Sie Art von in der get Stil der Art der Fragen, 212 00:09:54,220 --> 00:09:57,250 dass wir fragen, die Art der Funktionen, die wir werden es schreiben, in, 213 00:09:57,250 --> 00:09:58,580 et cetera, et cetera. 214 00:09:58,580 --> 00:10:01,980 >> So nehmen Sie die Praxis Quiz, vor allem unter Zeitdruck. 215 00:10:01,980 --> 00:10:05,390 75 Minuten zu tun, das Quiz ist nicht viel Zeit in Anspruch. 216 00:10:05,390 --> 00:10:07,254 Es ist sehr, sehr lange. 217 00:10:07,254 --> 00:10:09,670 Und so ihr Jungs wirklich wollen um sicherzustellen, dass Sie Jungs sind 218 00:10:09,670 --> 00:10:11,990 in der Gewohnheit des Schreibens Code von Hand schnell. 219 00:10:11,990 --> 00:10:15,070 Weil Sie nicht wollen, dass die erste Zeit, um ein Quiz dieser Länge zu sehen 220 00:10:15,070 --> 00:10:16,560 auf Ihrem Quiz. 221 00:10:16,560 --> 00:10:20,540 You guys sicherstellen möchten, wirklich dass Sie vorher üben. 222 00:10:20,540 --> 00:10:24,550 >> Viertens, um die überprüfen möchten Sie Vorlesung und Abschnitt gleitet. 223 00:10:24,550 --> 00:10:25,980 Sie verfügen nicht über die Dinge zu merken. 224 00:10:25,980 --> 00:10:30,430 Eigentlich ist jeder darf ein ein weißes Blatt Papier Notizen, 225 00:10:30,430 --> 00:10:31,090 vorne und hinten. 226 00:10:31,090 --> 00:10:32,920 You guys kann schreiben oder zu schreiben. 227 00:10:32,920 --> 00:10:37,070 Wenn Sie feststellen, dass Sie merken alles, legte sie auf diesem Blatt. 228 00:10:37,070 --> 00:10:40,810 >> Ich garantiere Ihnen, Sie wollen nicht, um in der Mitte dieses Quiz stecken 229 00:10:40,810 --> 00:10:43,890 Wesen wie, oh yeah, was ist das Laufzeit dieser Art gegenüber dieser Art. 230 00:10:43,890 --> 00:10:46,490 Setzen Sie ihn einfach nach unten und kopieren Sie sie direkt von Ihrem Notizblatt. 231 00:10:46,490 --> 00:10:50,420 Dann sind Sie eigentlich nur verwenden, können Sie Ihre Gehirn, um über die Probleme zu denken 232 00:10:50,420 --> 00:10:52,190 anstatt Fakten zu erinnern. 233 00:10:52,190 --> 00:10:55,250 Und so wirklich nutzen einer Nische Details 234 00:10:55,250 --> 00:11:00,140 dass Sie denken, Sie speichern müssen, plop es auf den Berichtsbogen. 235 00:11:00,140 --> 00:11:02,680 >> OK, alle mögliche Fragen logistisch in Bezug auf die Quiz- 236 00:11:02,680 --> 00:11:05,510 bevor wir einige Quiz-Aufgaben zu üben? 237 00:11:05,510 --> 00:11:06,416 Ja? 238 00:11:06,416 --> 00:11:10,040 >> Publikum: Ich habe nicht die Chance hatten bei dem Quiz aussehen [unverständlich] 239 00:11:10,040 --> 00:11:11,757 aber ist es sein wird Anwendung vor allem, 240 00:11:11,757 --> 00:11:14,090 oder wird auch sein wird, wie, Wissensfragen? 241 00:11:14,090 --> 00:11:14,940 >> PROFESSOR: Es ist eine Menge. 242 00:11:14,940 --> 00:11:16,731 Also, die Art und Weise, dass ich würde das Quiz beschrieben 243 00:11:16,731 --> 00:11:18,810 ist-- I zusammengestellt einige Übungsaufgaben 244 00:11:18,810 --> 00:11:20,960 dass ich zog aus allen Quiz. 245 00:11:20,960 --> 00:11:25,210 Aber du wirst sehen, dass es zwei Haupt Arten von Fragen werden wir Sie fragen. 246 00:11:25,210 --> 00:11:28,750 >> Eines ist ein sehr niedriges Niveau Detail Zeug. 247 00:11:28,750 --> 00:11:31,720 Registrieren Sie ein kleines Stück Code geben und zu sagen, gibt es hier ein Fehler? 248 00:11:31,720 --> 00:11:33,110 Was würden Sie werden den Druck hier? 249 00:11:33,110 --> 00:11:35,980 Was wird dieser Code zu produzieren, und so weiter. 250 00:11:35,980 --> 00:11:38,710 So sehr niedrigen Niveau Informationen befinden. 251 00:11:38,710 --> 00:11:42,700 >> Und auf der anderen Seite, wir haben sehr hohe wissensbasierte Fragen. 252 00:11:42,700 --> 00:11:45,190 Können Sie erklären, was die Unterschied zwischen einer binären Suche 253 00:11:45,190 --> 00:11:46,148 und eine lineare Suche ist? 254 00:11:46,148 --> 00:11:48,500 Warum sollten wir wollen verwenden einen über den anderen? 255 00:11:48,500 --> 00:11:49,960 Vielleicht, was ist GDB? 256 00:11:49,960 --> 00:11:51,560 Warum wollen wir den GDB benutzen? 257 00:11:51,560 --> 00:11:54,590 Höhere Ebene, grund Verständnis Fragen. 258 00:11:54,590 --> 00:11:58,240 So finden Sie eine Mischung aus zu sehen die zwei von ihnen auf Ihrem Quiz. 259 00:11:58,240 --> 00:12:01,462 >> Sonst noch etwas, bevor wir Kopf gerade in sie? 260 00:12:01,462 --> 00:12:02,879 OK. 261 00:12:02,879 --> 00:12:03,670 ZIELGRUPPE: One more. 262 00:12:03,670 --> 00:12:04,030 PROFESSOR: Oh, noch. 263 00:12:04,030 --> 00:12:04,340 Es tut uns leid. 264 00:12:04,340 --> 00:12:05,631 >> Publikum: Ja, es ist alles in Ordnung. 265 00:12:05,631 --> 00:12:10,140 Sie sagen also 75 Minuten ist zu kurz ist, wie es ist unwahrscheinlich, 266 00:12:10,140 --> 00:12:11,640 dass wir fertig? 267 00:12:11,640 --> 00:12:13,571 Oder, wie, 75 Minuten Genau so viel Zeit 268 00:12:13,571 --> 00:12:15,700 wie wir es brauchen, wenn wir entsprechend vorbereitet? 269 00:12:15,700 --> 00:12:17,450 PROFESSOR: OK, so dass die Quiz ist eine Herausforderung. 270 00:12:17,450 --> 00:12:19,550 Es ist definitiv eine Herausforderung. 271 00:12:19,550 --> 00:12:21,092 Sie werden sich auf die Zeit knapp. 272 00:12:21,092 --> 00:12:24,341 Du bist wahrscheinlich zu schlagen, wie 10, 15 Minuten, um zu gehen, und zu sein wie sie, scheiße. 273 00:12:24,341 --> 00:12:25,520 Ich habe so viel zu tun. 274 00:12:25,520 --> 00:12:26,520 Und das ist völlig in Ordnung. 275 00:12:26,520 --> 00:12:28,740 Jeder wird die gleiche Weise fühlen. 276 00:12:28,740 --> 00:12:31,074 >> Seien Sie sehr bewusst, Wie viel Zeit hast du. 277 00:12:31,074 --> 00:12:33,490 Und damit ist, warum ich sage euch: Jungs die Praxis Quiz. 278 00:12:33,490 --> 00:12:36,672 Weil sie wirklich gibt ein großes Gefühl von dem, was das Quiz wird wohl sein wird. 279 00:12:36,672 --> 00:12:39,130 Also, wenn Sie sich als in der Lage, die Praxis beendet 280 00:12:39,130 --> 00:12:41,671 Quiz in einer guten Menge an Zeit, können Sie sich auch im Schneckentempo, 281 00:12:41,671 --> 00:12:45,695 dann werden Sie ein Problem nicht am Mittwoch oder Donnerstag. 282 00:12:45,695 --> 00:12:46,575 >> Cool. 283 00:12:46,575 --> 00:12:49,200 Also, wenn jeder wants-- Ich denke, haben die meisten Menschen Papierbögen 284 00:12:49,200 --> 00:12:49,810 out bereits. 285 00:12:49,810 --> 00:12:52,604 Ich werde im Wesentlichen nur geben Ihnen Beispiele von Fragen, 286 00:12:52,604 --> 00:12:54,520 geben euch, wie ein einige Minuten, um sie zu tun. 287 00:12:54,520 --> 00:12:59,610 Und wir gehen über als Klasse was die Antworten darauf sind. 288 00:12:59,610 --> 00:13:02,860 >> Also das ist ein sehr typisches Anfang Frage wir werden 289 00:13:02,860 --> 00:13:06,720 Sie bitten, nur das Umwandeln Zahlen zwischen verschiedenen Basen. 290 00:13:06,720 --> 00:13:09,070 Binary, wie euch kann Rückruf ist Basis zwei. 291 00:13:09,070 --> 00:13:12,470 Dezimal ist Basis 10, oder das, was wir wie die Menschen in der Regel zu interpretieren. 292 00:13:12,470 --> 00:13:17,120 Hexadezimal ist Basis 16, die Null ist durch neun sowie A bis F 293 00:13:17,120 --> 00:13:19,990 >> Es gibt also vier Zahlen bin ich fragt euch, hier zu konvertieren. 294 00:13:19,990 --> 00:13:23,909 Ich gebe Sie, drei bis vier Minuten durch, wie denken, 295 00:13:23,909 --> 00:13:25,200 würden wir über die Lösung dieses zu gehen. 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> ZIELGRUPPE: Dürfen wir Taschenrechner? 298 00:13:35,710 --> 00:13:37,630 >> PROFESSOR: Sie werden nicht müssen Rechner, yeah. 299 00:13:37,630 --> 00:13:42,420 Ich denke, Grund Außerdem denke ich, ist alle ihr Jungs werden aufgefordert, zu tun. 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> Und nur damit ich irgendwie einen Sinn der, wenn alle fertig ist, sehen Sie, 302 00:14:45,070 --> 00:14:47,429 Welle, weiß ich nicht, lächeln, glücklich aus, wenn Sie fertig sind. 303 00:14:47,429 --> 00:14:47,929 Ja. 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 Vielleicht noch ein paar Minuten. 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> OK, lass uns bringen sie in. 308 00:18:29,600 --> 00:18:31,580 Ich bin absichtlich werde geben euch weniger Zeit 309 00:18:31,580 --> 00:18:33,760 als Sie wahrscheinlich benötigen, um tun einige dieser Probleme, 310 00:18:33,760 --> 00:18:37,124 einfach deshalb, weil ich will, um sicherzustellen, dass wir bekommen durch ein Bündel von Problemen. 311 00:18:37,124 --> 00:18:39,290 Also keine Sorgen, wenn Sie nicht eine Chance haben, zu beenden. 312 00:18:39,290 --> 00:18:43,770 Völlig in Ordnung, solange Sie eine Idee, wie um dies zu realisieren. 313 00:18:43,770 --> 00:18:45,850 Lassen Sie uns also gehen Sie voran und tun Sie der Erste. 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> Also zuerst, hat jemand will mir sagen, in binärer, was zu tun jeder dieser Ziffern 316 00:18:57,870 --> 00:19:00,484 stellen hinsichtlich ihrer Werte? 317 00:19:00,484 --> 00:19:01,250 Ja? 318 00:19:01,250 --> 00:19:03,349 >> ZIELGRUPPE: Zwei um die Strom Null, zwei zu eins. 319 00:19:03,349 --> 00:19:04,140 PROFESSOR: Genau. 320 00:19:04,140 --> 00:19:04,640 Also. 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> Richtig, also in der Regel wenn wir in der Basis 10 sind 323 00:19:16,430 --> 00:19:20,580 Alle diese stellen sind, wie, 10 an der Basis von Null, oder? 324 00:19:20,580 --> 00:19:21,810 Das ist Ihre eigenen Platz. 325 00:19:21,810 --> 00:19:24,520 Alle Ihren Platz 10 ist ist 10 hoch von einem. 326 00:19:24,520 --> 00:19:26,600 Sie 100 Platz 10 zu der Potenz von zwei. 327 00:19:26,600 --> 00:19:29,570 >> Was auch immer Sie in Basis wird sind mit der genau dasselbe zu tun, 328 00:19:29,570 --> 00:19:31,480 nur mit einer anderen Basis. 329 00:19:31,480 --> 00:19:34,130 So binär, ist alles, was Basis zwei. 330 00:19:34,130 --> 00:19:37,110 Du wirst all das zu konvertieren Ziffern in zwei, um was auch immer Macht 331 00:19:37,110 --> 00:19:38,190 dieser Ziffer. 332 00:19:38,190 --> 00:19:41,450 Und so in diesem Sinne haben wir kann eine einfachere Möglichkeit haben 333 00:19:41,450 --> 00:19:43,800 in der Lage zu addieren oder Zusammenfassend alle Zahlen in Ordnung 334 00:19:43,800 --> 00:19:46,010 in Basis 10 konvertieren. 335 00:19:46,010 --> 00:19:50,362 >> So Will jemand mir sagen, was das Antwort auf die erste in den Basis-Zehn? 336 00:19:50,362 --> 00:19:51,674 >> ZIELGRUPPE: Zwei, [unverständlich] 337 00:19:51,674 --> 00:19:52,340 PROFESSOR: Ja. 338 00:19:52,340 --> 00:19:53,230 ZIELGRUPPE: 42. 339 00:19:53,230 --> 00:19:56,560 PROFESSOR: 42, dort gehen Sie. 340 00:19:56,560 --> 00:20:00,660 So ist die Art, wie wir diese Antwort bekam, war von Dabei zwei ersten, die zwei ist. 341 00:20:00,660 --> 00:20:02,760 Plus zwei der dritte, der acht ist. 342 00:20:02,760 --> 00:20:07,590 Plus zwei auf die fünfte, die ist das, was übrig bleibt. 343 00:20:07,590 --> 00:20:09,390 Sie summieren sie auf und es ist 42. 344 00:20:09,390 --> 00:20:12,000 >> Ist jemand verwirrt darüber, wie wir das verstanden? 345 00:20:12,000 --> 00:20:15,630 So Grund Darüber, wie Ich sagte, Sie sollten in Ordnung sein. 346 00:20:15,630 --> 00:20:17,410 Wenn nicht, gut, können wir das auch zu praktizieren. 347 00:20:17,410 --> 00:20:18,720 Aber das ist in Ordnung. 348 00:20:18,720 --> 00:20:20,560 Cool. 349 00:20:20,560 --> 00:20:25,570 >> Will jemand mir die geben Antwort auf die zweite man als gut? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 Gut. 352 00:20:27,600 --> 00:20:30,044 Jeder verwirrt darüber, wie wir haben, dass entweder? 353 00:20:30,044 --> 00:20:31,960 Cool, ich werde das haben Antworten auf der nächsten Folie. 354 00:20:31,960 --> 00:20:34,440 Also keine Sorgen, wenn Sie müssen Sie es notieren. 355 00:20:34,440 --> 00:20:38,860 >> OK, also hexadezimal ist ein bisschen schwieriger. 356 00:20:38,860 --> 00:20:41,840 aber ich werde euch zeigen, eine Abkürzung für, wie es geht. 357 00:20:41,840 --> 00:20:44,800 So hexadezimal, wie Sie denken Sie daran, alle es ist 16. 358 00:20:44,800 --> 00:20:48,920 Und weil wir als Menschen nicht wirklich haben 16 Zahlen zu vertreten, dass, 359 00:20:48,920 --> 00:20:56,940 Wir gehen von null bis neun, die unsere erste 10 Werte, und dann tun wir A bis F, 360 00:20:56,940 --> 00:20:58,630 Welches sind die nächsten sechs Werte. 361 00:20:58,630 --> 00:21:03,040 >> Und so ist die einfachste Art, aus gehen beliebige binäre Zahl zu hexadezimale 362 00:21:03,040 --> 00:21:05,350 ist, sie bis in zwei Hälften brechen. 363 00:21:05,350 --> 00:21:10,042 Und so jede binäre Zahl wir geben müssen Sie wahrscheinlich acht Ziffern. 364 00:21:10,042 --> 00:21:11,750 Sie können einfach zu brechen sie in der Mitte. 365 00:21:11,750 --> 00:21:17,460 >> So ist der erste one-- ein ein, eine eins, eins, eins, eins ein. 366 00:21:17,460 --> 00:21:21,340 Art denken, es auf, Sie wissen, ziehen ein Schrägstrich oder ein Komma dazwischen. 367 00:21:21,340 --> 00:21:23,800 Und Sie nur umwandeln kann direkt unabhängig 368 00:21:23,800 --> 00:21:26,670 dies ist auf die erste Anzahl der hexadezimal, 369 00:21:26,670 --> 00:21:29,880 und was hier ist, das zweite von hexadezimal. 370 00:21:29,880 --> 00:21:37,584 >> Also denken Sie daran gängigen Notationen, was hexadezimale Werte mit zu beginnen? 371 00:21:37,584 --> 00:21:38,460 >> ZIELGRUPPE: Null. 372 00:21:38,460 --> 00:21:39,270 >> PROFESSOR: 0x. 373 00:21:39,270 --> 00:21:45,210 Damit wir wissen, dass jedes Mal, bitten wir Sie, um eine beliebige Anzahl in hexadezimal konvertieren, 374 00:21:45,210 --> 00:21:48,230 oder jedes Mal, wenn Sie irgendeine sehen Nummer, die mit 0X beginnt, 375 00:21:48,230 --> 00:21:50,230 Sie wissen, dass es ein hexadezimaler Wert ist. 376 00:21:50,230 --> 00:21:54,160 >> Und dann wirst du dazu aufgefordert werden, sind bestimmen, was diese beiden Ziffern sind. 377 00:21:54,160 --> 00:21:59,690 Und die Art, wie Sie das tun, tallying dass die Hälfte und Auszählung up, dass die Hälfte. 378 00:21:59,690 --> 00:22:02,870 So dass in diesem Beispiel, was wäre eins, eins, eins, eins zu sein? 379 00:22:02,870 --> 00:22:04,890 Welchen Wert wäre das? 380 00:22:04,890 --> 00:22:06,040 Das wäre F sein, oder? 381 00:22:06,040 --> 00:22:08,050 Das würde 15 sein. 382 00:22:08,050 --> 00:22:11,780 >> So würde das F. Eine zu sein, eins, eins, eins ist auch hier 383 00:22:11,780 --> 00:22:21,270 F. Also eins, eins, eins, eins, eins, eins, eins, einen hexadezimal, allem ist es ist 0xFF. 384 00:22:21,270 --> 00:22:25,350 Da dieser die Hälfte vertreten F, den Wert 15, 385 00:22:25,350 --> 00:22:27,331 und das Halb vertreten F, der Wert 15. 386 00:22:27,331 --> 00:22:29,456 Denn denken Sie daran, wir sind Zählen von null bis neun. 387 00:22:29,456 --> 00:22:35,290 A ist wie 10, B ist wie 11, F 15. 388 00:22:35,290 --> 00:22:41,690 >> Macht das Sinn für jedermann, wie wir von binären muss hexadezimal? 389 00:22:41,690 --> 00:22:44,595 >> Publikum: Und so, wie Sie auf uns 15 von der einen, eins, eins, eins? 390 00:22:44,595 --> 00:22:46,220 PROFESSOR: Ja, das ist binär, nicht wahr? 391 00:22:46,220 --> 00:22:48,090 Stellen Sie sich dies nur eine binäre Zahl. 392 00:22:48,090 --> 00:22:50,792 So können Sie zwei, die haben nullten, was man ist. 393 00:22:50,792 --> 00:22:51,500 ZIELGRUPPE: Oh, OK. 394 00:22:51,500 --> 00:22:51,670 So dass Sie nur insgesamt it out. 395 00:22:51,670 --> 00:22:52,670 >> PROFESSOR: Ja, und dann Sie gerade total, dass aus. 396 00:22:52,670 --> 00:22:53,380 Das ist alles, es ist. 397 00:22:53,380 --> 00:22:54,890 >> ZIELGRUPPE: OK. 398 00:22:54,890 --> 00:22:55,830 >> PROFESSOR: OK. 399 00:22:55,830 --> 00:23:00,740 >> Publikum: So können Sie aus binären gehen auf Hexadezimal Dezimal? 400 00:23:00,740 --> 00:23:04,590 >> PROFESSOR: Das ist das einfachste Weg, dies zu tun, ja. 401 00:23:04,590 --> 00:23:11,390 Du wirst doch nicht um, weil dezimal Dezimal nur über Null bis Neun. 402 00:23:11,390 --> 00:23:13,410 Wir sind nur Art von Aufteilen diese in zwei. 403 00:23:13,410 --> 00:23:15,201 >> ZIELGRUPPE: [unverständlich] mit Dezimalstelle zu finden 404 00:23:15,201 --> 00:23:17,809 was es passt bis zu hexadezimal. 405 00:23:17,809 --> 00:23:20,100 PROFESSOR: Ich meine, du bist tallying mit Grundrechenarten. 406 00:23:20,100 --> 00:23:20,725 ZIELGRUPPE: Ja. 407 00:23:20,725 --> 00:23:22,300 PROFESSOR: Ja, ziemlich viel. 408 00:23:22,300 --> 00:23:23,630 Es ist ein wenig verwirrend. 409 00:23:23,630 --> 00:23:26,410 Aber genau wissen, dass Sie kann aufzuteilen unabhängig 410 00:23:26,410 --> 00:23:28,160 Dieser Wert wird in nur Hälften. 411 00:23:28,160 --> 00:23:29,570 Schauen Sie, was ist das in binärer? 412 00:23:29,570 --> 00:23:30,610 Welche Zahl ist das? 413 00:23:30,610 --> 00:23:33,270 Es wird etwas von Null bis F. 414 00:23:33,270 --> 00:23:35,722 >> Hier wird auch sein wird etwas von Null bis F. 415 00:23:35,722 --> 00:23:37,722 Und dann Sie können einfach die beiden recht. 416 00:23:37,722 --> 00:23:38,263 >> ZIELGRUPPE: OK. 417 00:23:38,263 --> 00:23:38,910 PROFESSOR: Yep. 418 00:23:38,910 --> 00:23:39,410 OK. 419 00:23:39,410 --> 00:23:42,320 So euch zu wollen versuchen Sie die nächste man dann? 420 00:23:42,320 --> 00:23:49,601 Null, eins, null eins, eins, null, eine Null. 421 00:23:49,601 --> 00:23:52,350 Ich werde euch wie 30 Sekunden zu geben, da Sie wahrscheinlich nicht wissen, 422 00:23:52,350 --> 00:23:53,850 der Trick, wie man diese vorher zu tun. 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> OK, jeder will diesen einen Schuss zu bekommen? 425 00:24:27,381 --> 00:24:28,774 >> 0x5A. 426 00:24:28,774 --> 00:24:29,440 PROFESSOR: 0x5A. 427 00:24:29,440 --> 00:24:30,470 5a. 428 00:24:30,470 --> 00:24:31,340 Gut. 429 00:24:31,340 --> 00:24:37,050 Also das hier würde be-- Sie wollen um uns zu sagen, wie Sie das verstanden? 430 00:24:37,050 --> 00:24:38,920 Erstens: Wie kamen Sie auf die fünf? 431 00:24:38,920 --> 00:24:42,030 >> ZIELGRUPPE: Weil Null, eins, null, eins ist fünf. 432 00:24:42,030 --> 00:24:45,170 >> PROFESSOR: Hat jeder verstehen, warum null, eins, null, eins ist fünf? 433 00:24:45,170 --> 00:24:46,260 Sie haben einen hier. 434 00:24:46,260 --> 00:24:48,010 Sie haben nichts in zwei auf den ersten. 435 00:24:48,010 --> 00:24:50,300 In zwei zu der zweiten Sie Konto haben, das vier ist. 436 00:24:50,300 --> 00:24:52,600 So können Sie die vier plus hinzufügen derjenige, haben Sie fünf. 437 00:24:52,600 --> 00:24:53,600 Jeder gut? 438 00:24:53,600 --> 00:24:54,100 OK. 439 00:24:54,100 --> 00:24:56,570 Und dann, was das sein und warum? 440 00:24:56,570 --> 00:24:58,350 Welche Nummer hat A entsprechen? 441 00:24:58,350 --> 00:24:59,350 >> ZIELGRUPPE: 10. 442 00:24:59,350 --> 00:25:00,976 >> PROFESSOR: Und was dies in der Basis zwei? 443 00:25:00,976 --> 00:25:01,850 ZIELGRUPPE: [unverständlich] 444 00:25:01,850 --> 00:25:03,010 PROFESSOR: Genau. 445 00:25:03,010 --> 00:25:06,370 Also das zweite Wert wäre hier 0x5A sein. 446 00:25:06,370 --> 00:25:08,410 >> Jeder gut, wie man konvertieren? 447 00:25:08,410 --> 00:25:10,770 Es ist viel einfacher, als Sie denken, es ist. 448 00:25:10,770 --> 00:25:13,330 Ich will einfach nur, um sicherzustellen, Sie hilfreiche Tipps, wissen, 449 00:25:13,330 --> 00:25:14,950 und Tricks, wie Sie das tun. 450 00:25:14,950 --> 00:25:18,432 >> Publikum: Warum können Sie einfach gespalten es in der Mitte wie das? 451 00:25:18,432 --> 00:25:21,390 Genau wie, OK, ich werde nur zu sein kümmern uns um diese ersten [unverständlich]? 452 00:25:21,390 --> 00:25:24,240 >> PROFESSOR: Denn das ist eigentlich das Weg Hexadezimalwerte sind vertreten. 453 00:25:24,240 --> 00:25:26,890 0X, die eigentlich bedeutet, nichts anderes, als sage Ihnen, 454 00:25:26,890 --> 00:25:28,710 dass es eine Hexadezimalzahl. 455 00:25:28,710 --> 00:25:31,580 Und das stellt immer die ersten vier Ziffern. 456 00:25:31,580 --> 00:25:34,330 Und das stellt immer die letzten vier Ziffern. 457 00:25:34,330 --> 00:25:37,835 Und so sind diese beiden Stellen nur entsprechen unterschiedlichen Bits. 458 00:25:37,835 --> 00:25:39,200 >> Publikum: So werden wir always-- 459 00:25:39,200 --> 00:25:41,830 >> PROFESSOR: Du bist immer werde acht Bits Wert zu erhalten. 460 00:25:41,830 --> 00:25:44,580 >> Publikum: Ist das nur wie ein Ding hier, oder dass eine Sache der ganzen? 461 00:25:44,580 --> 00:25:46,883 PROFESSOR: Das ist nur ein was in Computern, yep. 462 00:25:46,883 --> 00:25:47,424 ZIELGRUPPE: OK. 463 00:25:47,424 --> 00:25:48,240 Eindrucksvoll. 464 00:25:48,240 --> 00:25:51,290 >> PROFESSOR: Auch so in diesem Beispiel wir von binären konvertiert zu Dezimal, 465 00:25:51,290 --> 00:25:53,290 und von binär in hexadezimal. 466 00:25:53,290 --> 00:25:56,610 Sie Jungs wollen auch sicherstellen, dass Sie Praxis gehen die andere Weise herum. 467 00:25:56,610 --> 00:26:03,370 Also, wenn ich Ihnen 0xFF, könnten Sie zu ziehen, dass in der Zweiheit, nicht wahr? 468 00:26:03,370 --> 00:26:06,820 >> Sie konvertiert F in binäre, das ist eins, eins, eins, eins, 469 00:26:06,820 --> 00:26:09,380 F umzuwandeln, um binäre, die ist eines, eins, eins, eins. 470 00:26:09,380 --> 00:26:11,310 >> So können wir Sie bitten, zu tun umgekehrt. 471 00:26:11,310 --> 00:26:14,817 So dezimal binär oder hexadezimal binär. 472 00:26:14,817 --> 00:26:16,650 Also Sie machen wollen dass Sie wissen, in beide Richtungen. 473 00:26:16,650 --> 00:26:19,371 Wir werden wahrscheinlich fragen Sie ein Kombination der beiden. 474 00:26:19,371 --> 00:26:20,660 >> Ja, eine Frage haben Sie? 475 00:26:20,660 --> 00:26:22,724 Ich kann see-- du gut bist? 476 00:26:22,724 --> 00:26:23,348 ZIELGRUPPE: Ja. 477 00:26:23,348 --> 00:26:24,560 PROFESSOR: OK. 478 00:26:24,560 --> 00:26:26,101 Bin ich gut, diese zu löschen? 479 00:26:26,101 --> 00:26:26,600 Groß. 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> In Ordnung, so Antworten sind hier, wenn jemand ist neugierig, später und verwirrt. 482 00:26:40,437 --> 00:26:41,844 OK. 483 00:26:41,844 --> 00:26:46,070 >> ZIELGRUPPE: Spielt es eine Rolle, wenn wir unsere Briefe in der Hauptstadt oder Kleinbuchstaben? 484 00:26:46,070 --> 00:26:50,360 >> PROFESSOR: Sie tut, weil hexadezimal, durch Konvention, 485 00:26:50,360 --> 00:26:52,840 alle Zeichen sind Großbuchstaben. 486 00:26:52,840 --> 00:26:54,650 So A bis F sind gehen Groß sein. 487 00:26:54,650 --> 00:26:58,660 Wenn Sie einen Kleinbuchstaben a, weiß ich nicht, wenn wir unbedingt kennzeichnen wäre es falsch. 488 00:26:58,660 --> 00:27:00,679 Aber theoretisch, das ist technisch nicht 489 00:27:00,679 --> 00:27:01,970 wie du sollst es haben. 490 00:27:01,970 --> 00:27:03,303 So sollten sie alle Großbuchstaben geschrieben werden. 491 00:27:03,303 --> 00:27:05,910 Ja, gute Frage. 492 00:27:05,910 --> 00:27:07,780 >> OK. 493 00:27:07,780 --> 00:27:08,790 Zur zweiten Frage. 494 00:27:08,790 --> 00:27:12,750 Betrachten Sie dieses schöne Programm finden Sie hier. 495 00:27:12,750 --> 00:27:15,180 Ich werde die Frage zu stellen, Ich komme wieder diese. 496 00:27:15,180 --> 00:27:23,170 >> Also, erstens, was innerhalb von Standard- io.h das ist von Interesse für das Programm? 497 00:27:23,170 --> 00:27:26,640 Zweitens, was nichtig macht bedeuten im Einklang drei? 498 00:27:26,640 --> 00:27:30,572 Und drittens, was bedeutet der Rückkehr von Null Haupt, als Reihensechs, in der Regel bedeuten? 499 00:27:30,572 --> 00:27:33,280 Wenn Sie Jungs wollen diejenigen zu schreiben nach unten, da ich wieder wechseln 500 00:27:33,280 --> 00:27:36,810 auf den Objektträger nur so können Sie sehen, Code. 501 00:27:36,810 --> 00:27:40,400 Dies ist ein Beispiel, wie, vielleicht ein höhere Frage, wo wir Sie bitten, 502 00:27:40,400 --> 00:27:42,435 was die Dinge bedeuten, in einem Programm. 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> Jeder gut für mich, gehen Sie zurück zu der Folie? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 OK COOL. 507 00:27:54,361 --> 00:27:57,610 Also werde ich euch gefällt vielleicht drei geben Minuten, um an diesem einen ganz schnell zu suchen. 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> OK, also das hier ist wie ziemlich einfach, konzeptionell. 510 00:28:44,140 --> 00:28:49,280 Will jemand mir sagen, was zunächst innerhalb von Hash einschließlich 511 00:28:49,280 --> 00:28:52,630 unsere Standard io.h Bibliotheksdatei? 512 00:28:52,630 --> 00:28:55,510 Warum brauchen wir diese Bibliothek für dieses Programm enthalten? 513 00:28:55,510 --> 00:28:56,930 Was hier brauchen wir sie für? 514 00:28:56,930 --> 00:28:56,980 >> Ja? 515 00:28:56,980 --> 00:28:58,340 >> ZIELGRUPPE: Ist, dass, wenn Ihnen die printf setzen? 516 00:28:58,340 --> 00:28:59,131 >> PROFESSOR: Genau. 517 00:28:59,131 --> 00:29:01,780 So printf, jedes Mal, wenn Sie nehmen eine Eingabe von dem Benutzer 518 00:29:01,780 --> 00:29:04,140 und Print etwas auf den Bildschirm, das ist, 519 00:29:04,140 --> 00:29:05,600 die Standard-Eingabe, Ausgabe-Bibliothek. 520 00:29:05,600 --> 00:29:07,170 Denken Sie daran, dass der Eingang way--, ausgegeben. 521 00:29:07,170 --> 00:29:08,430 >> Muss ich eine Ausgabe? 522 00:29:08,430 --> 00:29:09,207 Ja. 523 00:29:09,207 --> 00:29:12,040 Also ich weiß, dass ich immer zu brauchen die standardize i.o Bibliothek. 524 00:29:12,040 --> 00:29:16,400 >> So ist die Funktion printf durch die wir benötigen, um Zugriff 525 00:29:16,400 --> 00:29:19,370 und hashtag gehören die Standard i.o Bibliothek. 526 00:29:19,370 --> 00:29:20,280 OK. 527 00:29:20,280 --> 00:29:22,660 >> Zweitens ist es was nichtig zu bedeuten? 528 00:29:22,660 --> 00:29:26,970 Wir haben die int main (void), was bedeutet nichtig hier meine, hier auf Linie drei? 529 00:29:26,970 --> 00:29:28,080 Ja, in den Rücken. 530 00:29:28,080 --> 00:29:29,020 >> ZIELGRUPPE: [unverständlich] 531 00:29:29,020 --> 00:29:29,920 >> PROFESSOR: Genau. 532 00:29:29,920 --> 00:29:33,320 Also denken Sie daran, die wir gelernt haben beginnend mit unseren pset 533 00:29:33,320 --> 00:29:35,360 dass Sie tatsächlich geben Befehlszeile 534 00:29:35,360 --> 00:29:39,010 Argumente, die Ihr Programm, dass Sie Hauptfunktion, nimmt, wie Sie, der Benutzer, 535 00:29:39,010 --> 00:29:39,650 nennen. 536 00:29:39,650 --> 00:29:42,650 Wenn wir Leere, bedeutet, dass, dass Sie könnte einfach das Programm direkt ausführen 537 00:29:42,650 --> 00:29:44,680 ohne Befehlszeilenargumente. 538 00:29:44,680 --> 00:29:46,160 Jeder klar auf, dass? 539 00:29:46,160 --> 00:29:46,660 OK. 540 00:29:46,660 --> 00:29:52,850 >> Und schließlich, warum wir die Mühe machen diese Rückkehr Null Sache hier? 541 00:29:52,850 --> 00:29:54,740 Warum haben wir sogar eine int main? 542 00:29:54,740 --> 00:29:57,330 Warum können wir nicht einfach nur void main nichtig? 543 00:29:57,330 --> 00:29:59,216 Ja? 544 00:29:59,216 --> 00:30:01,590 ZIELGRUPPE: Just so dass wir achten Sie darauf, dass das Programm 545 00:30:01,590 --> 00:30:04,247 erfolgreich verlassen, wie um, wenn sie nummeriert wurde gegenüber. 546 00:30:04,247 --> 00:30:06,580 Und wir würden wissen, dass das ist, eine andere Art von Fehler. 547 00:30:06,580 --> 00:30:07,621 >> PROFESSOR: Ja, genau. 548 00:30:07,621 --> 00:30:10,670 Dies ist nur eine sehr konventionelle Sache, die wir tun, 549 00:30:10,670 --> 00:30:13,840 das ist nur am Ende des Ihr Programm, nur um sicherzugehen 550 00:30:13,840 --> 00:30:15,830 dass Ihre Hauptfunktion korrekt läuft, 551 00:30:15,830 --> 00:30:17,940 wir wollen immer Rück Null zu tun. 552 00:30:17,940 --> 00:30:21,160 Auch wenn wir unbedingt nicht, dass überall gedruckt. 553 00:30:21,160 --> 00:30:25,092 >> Denn als Programmierer, wissen Sie, wenn Du verschiedene Zeilen Code haben 554 00:30:25,092 --> 00:30:27,050 und Sie nicht wissen, wo diese sind falsch läuft, 555 00:30:27,050 --> 00:30:30,240 und wenn ein Fehler passiert, du willst stellen Sie sicher, dass Sie diese Fehlermeldung erhalten. 556 00:30:30,240 --> 00:30:33,240 Und so in der Regel, wenn etwas schief falschen wir eine Rendite von einem müssen nur 557 00:30:33,240 --> 00:30:34,669 um sicherzustellen, dass wir wissen, dass es ist. 558 00:30:34,669 --> 00:30:36,460 Also, wenn Sie eine Rückkehr zu sehen Null, die in der Regel 559 00:30:36,460 --> 00:30:38,293 bedeutet, dass Ihr Programm ist erfolgreich ausgeführt. 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 Gut? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 Cool. 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> OK, zweite Programm hier. 566 00:30:52,680 --> 00:30:54,827 Bedenken Sie, dass. 567 00:30:54,827 --> 00:30:56,910 Und wenn euch sehen, ein schweben, kann wahrscheinlich euch 568 00:30:56,910 --> 00:31:00,810 haben eine gute Idee von dem, was Ich bin, Ihnen zu fragen. 569 00:31:00,810 --> 00:31:05,200 >> So, wenn dieses Programm führt, wie Sie sehen können, 570 00:31:05,200 --> 00:31:09,330 Ich bin über die Vereinbarkeit eines Schwimmers in meine Hauptaufgabe. 571 00:31:09,330 --> 00:31:13,470 Ich nannte sie "zu beantworten," und ich bin Einstellung dass gleich eins geteilt durch 10. 572 00:31:13,470 --> 00:31:17,860 Ich auszudrucken, um eine Dezimalstelle, dass float. 573 00:31:17,860 --> 00:31:19,880 Und dann werde ich zurückkehren Null. 574 00:31:19,880 --> 00:31:24,470 >> Also, wenn die Ausführung des Programms, denke, jetzt zurück zu gierig, 575 00:31:24,470 --> 00:31:26,550 Dieses Programm druckt 0.0. 576 00:31:26,550 --> 00:31:29,993 Wie wir alle wissen, hoffentlich wir alle weiß, eines geteilt durch 10 ist kein 0.00, 577 00:31:29,993 --> 00:31:32,350 es ist 0,1. 578 00:31:32,350 --> 00:31:37,810 Aber zu erklären, warum dieses Programm denkt, dass 1 geteilt durch 10 Drucke bis 0,1 andere 579 00:31:37,810 --> 00:31:39,504 0,1? 580 00:31:39,504 --> 00:31:42,545 Ich werde euch vielleicht wie 30 geben Sekunden, um mal eben schnell darüber nachdenken 581 00:31:42,545 --> 00:31:43,878 und ich werde wieder zu dem Programm zu gehen. 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> OK. 584 00:32:20,290 --> 00:32:22,205 Wer will ihm eine Chance zu geben? 585 00:32:22,205 --> 00:32:24,330 In drei Sätzen oder weniger, denn in der Regel sind wir 586 00:32:24,330 --> 00:32:27,650 gehen, um alle Antworten zu beschränken In den drei Sätzen oder weniger 587 00:32:27,650 --> 00:32:31,130 so dass Sie nicht nur erbrechen müssen zufällige Dinge auf Ihren Quiz. 588 00:32:31,130 --> 00:32:32,740 >> Ja, machen Sie eine Aufnahme. 589 00:32:32,740 --> 00:32:36,390 >> ZIELGRUPPE: Also ich denke, es gibt diese Ding namens, wie, [unverständlich] 590 00:32:36,390 --> 00:32:42,320 So könnte es sein, zum Beispiel, Es könnte sein, wie, 0,09, 591 00:32:42,320 --> 00:32:47,250 dass dort, wo Sie den ersten ausdrucken stellige, wäre es auf 0,0 sein? 592 00:32:47,250 --> 00:32:49,100 >> PROFESSOR: Schließen, nicht ganz. 593 00:32:49,100 --> 00:32:49,810 Christa? 594 00:32:49,810 --> 00:32:51,770 >> Publikum: Du Teilung ein und 10, und sie sind beide Zahlen. 595 00:32:51,770 --> 00:32:54,610 Und so ist die Art und Weise, dass es geht zu speichern ist als Integer. 596 00:32:54,610 --> 00:32:56,480 Und so ist die nächste ganze Zahl würde 0.0 sein. 597 00:32:56,480 --> 00:32:57,471 Und damit ist 0,1. 598 00:32:57,471 --> 00:32:58,970 PROFESSOR: Ja, das ist wirklich gut. 599 00:32:58,970 --> 00:33:00,040 Das ist die richtige Antwort. 600 00:33:00,040 --> 00:33:03,597 Das ist also ein sehr verwirrend Konzept für viele Kinder. 601 00:33:03,597 --> 00:33:06,680 Und ich sicherstellen, dass wirklich wollen dies ist in jedermanns Kopf verstärkt. 602 00:33:06,680 --> 00:33:10,090 >> Also, was wir als schwimm Punkt Ungenauigkeit, 603 00:33:10,090 --> 00:33:12,800 wo der Grund, warum viele Ihrer Programme in gierigen 604 00:33:12,800 --> 00:33:17,010 zunächst nicht funktionieren, weil Sie vergaßen, Ihre variable gegossen. 605 00:33:17,010 --> 00:33:19,370 Also, was, sagte Christa war ganz richtig. 606 00:33:19,370 --> 00:33:21,990 >> Ein Schwimmer ist von Natur aus ungenau. 607 00:33:21,990 --> 00:33:26,400 Weil in einem Computer, nicht wahr, wir haben eine endliche Menge von Speicherbits 608 00:33:26,400 --> 00:33:28,480 wir verwenden, um Zahlen darzustellen. 609 00:33:28,480 --> 00:33:33,480 So, zum Beispiel in diesem CS50 ID ist-- Ich denke, es ist ein 64-Bit-Computer. 610 00:33:33,480 --> 00:33:37,520 >> Ein Schwimmer kann nur dargestellt werden durch eine endliche Menge dieser Bits. 611 00:33:37,520 --> 00:33:42,260 Und so 0,1 mit unendlichen Nullen, dass war 0,1 ist, nicht wahr? 612 00:33:42,260 --> 00:33:45,450 Aber wir können nicht wirklich speichern diese Zahl in unserem Computer. 613 00:33:45,450 --> 00:33:47,810 Wir haben einfach nicht genügend Speicher, um dies zu tun. 614 00:33:47,810 --> 00:33:52,340 >> Und so ist die nächste Angleichung der was im Speicher gespeichert ist eigentlich 615 00:33:52,340 --> 00:33:55,390 so etwas wie 0.000 etwas, etwas, etwas, etwas. 616 00:33:55,390 --> 00:34:01,240 Die, sobald Sie abschneiden es, rundet auf 0,0. 617 00:34:01,240 --> 00:34:05,640 >> Und so dieses Beispiel ist nur eines dass zeigt viele Fragen 618 00:34:05,640 --> 00:34:08,469 wir haben, wenn wir versucht, falsch Mathematik zu tun 619 00:34:08,469 --> 00:34:11,000 ohne Casting als eine andere Ganzzahl. 620 00:34:11,000 --> 00:34:14,870 Also einfach vorsichtig sein, dass dies geschieht zu sein. 621 00:34:14,870 --> 00:34:18,239 >> Auf Quiz, wenn wir geben Ihnen eine Codeblock und es ist wie, 622 00:34:18,239 --> 00:34:19,510 was druckt am Ende? 623 00:34:19,510 --> 00:34:24,096 Und wenn es einige zufällige Wert, den Sie Männer sollten wissen, warum das passiert. 624 00:34:24,096 --> 00:34:24,909 Ja? 625 00:34:24,909 --> 00:34:27,926 >> ZIELGRUPPE: Truncate wird loszuwerden alles, was nach einem bestimmten Punkt? 626 00:34:27,926 --> 00:34:28,513 [UNVERSTÄNDLICH] 627 00:34:28,513 --> 00:34:30,929 PROFESSOR: Ja, also eigentlich dies ist ein wirklich schlechtes Beispiel, 628 00:34:30,929 --> 00:34:37,870 denn was auch immer tatsächlich 0,100 würden bis zu 0,1 abschneiden. 629 00:34:37,870 --> 00:34:41,389 Aber wenn Sie waren zu es-- laufen Ich weiß nicht erinnern sie sich, weil sie im letzten Jahr 630 00:34:41,389 --> 00:34:42,830 lief sie auf ein anderes Programm. 631 00:34:42,830 --> 00:34:45,300 Sie liefen sie in der so genannten das CS50-Appliance, die 632 00:34:45,300 --> 00:34:46,389 unterscheidet sich von der Identifikation. 633 00:34:46,389 --> 00:34:48,520 Das war ein 32-Bit-System, denke ich. 634 00:34:48,520 --> 00:34:50,290 Und so gab es verschiedene Zahlen. 635 00:34:50,290 --> 00:34:53,330 >> Aber im Grunde, weiß nur, dass das gesamte Konzept der Kürzung 636 00:34:53,330 --> 00:34:54,815 und wie er gerade schneidet Sachen weg. 637 00:34:54,815 --> 00:34:55,690 Und so, wenn es rounds-- 638 00:34:55,690 --> 00:34:56,300 >> ZIELGRUPPE: Ohne Rundung. 639 00:34:56,300 --> 00:34:57,370 >> PROFESSOR: Genau. 640 00:34:57,370 --> 00:34:57,870 Ja. 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 Cool. 643 00:35:04,380 --> 00:35:05,250 >> Hallo, in den Rücken. 644 00:35:05,250 --> 00:35:07,634 Wir gehen nur über einige Quiz-Fragen zu beantworten. 645 00:35:07,634 --> 00:35:08,430 >> Gut. 646 00:35:08,430 --> 00:35:10,150 So betrachten Sie hier ein anderes Programm. 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 Ich werde euch zu geben, ein paar Minuten, um darüber zu lesen. 649 00:35:15,380 --> 00:35:18,588 Dies ist etwas, das für eine sehr war vor kurzem, dass ich denke, blies eine Menge von euch 650 00:35:18,588 --> 00:35:19,142 Jungs, die Geister. 651 00:35:19,142 --> 00:35:21,100 Aber wir sprechen durch das wieder gerade 652 00:35:21,100 --> 00:35:24,152 sicherstellen, dass Sie verstehen Sie sie vollständig. 653 00:35:24,152 --> 00:35:24,652 OK. 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 OK. 656 00:35:41,780 --> 00:35:44,342 Wer mehr Zeit brauchen, um lesen Sie diese Codes? 657 00:35:44,342 --> 00:35:45,650 OK. 658 00:35:45,650 --> 00:35:50,630 >> So scheint es mir, dass in diesem Programm bin ich 659 00:35:50,630 --> 00:35:53,460 Erstellen von zwei Strings mit Hilfe GetString. 660 00:35:53,460 --> 00:35:55,180 Man nannte s und eine namens t. 661 00:35:55,180 --> 00:35:58,680 Und wenn sie gleich sind gleich zueinander sind, 662 00:35:58,680 --> 00:36:00,880 es sollte Sie drucken " Geben Sie dasselbe. " 663 00:36:00,880 --> 00:36:04,170 >> Aber elsewise, wäre es zu drucken, "Du typisierte verschiedene Dinge ", nicht wahr? 664 00:36:04,170 --> 00:36:05,990 Scheint sehr, sehr einfach. 665 00:36:05,990 --> 00:36:08,720 Aber, aber, wenn ich tatsächlich versuchen, dieses Programm zu schreiben, 666 00:36:08,720 --> 00:36:12,230 es scheint, dass auch dann, wenn I Eingangs genau die gleichen Saiten, 667 00:36:12,230 --> 00:36:15,490 es immer noch druckt: "Sie typisierte verschiedene Dinge! " 668 00:36:15,490 --> 00:36:18,020 Will jemand ein nehmen Schuss auf, warum dieses Programm immer 669 00:36:18,020 --> 00:36:20,370 reagiert, dass die Eingänge unterschiedlich sind, sogar 670 00:36:20,370 --> 00:36:22,090 wenn die Worte selbst sind alle gleich? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> Also, wenn ich David Liebe input-- um ein Beispiel wie Mama benutzen, oder? 673 00:36:29,170 --> 00:36:37,890 Kleinbuchstaben M-O-M für S, T gleich Kleinbuchstaben M-O-M. 674 00:36:37,890 --> 00:36:40,340 Wenn ich lief dies durch dass Code, warum sollte es 675 00:36:40,340 --> 00:36:44,180 ausdrucken "Sie verschiedene Dinge eingegeben?" 676 00:36:44,180 --> 00:36:46,336 >> Wer mehr braucht Zeit, um darüber nachzudenken? 677 00:36:46,336 --> 00:36:47,294 OK, ich denke, wir sind gut. 678 00:36:47,294 --> 00:36:48,716 Ja? 679 00:36:48,716 --> 00:36:53,930 >> ZIELGRUPPE: OK, also ist es etwas über wo es im Speicher abgelegt, nicht wahr? 680 00:36:53,930 --> 00:36:54,890 >> PROFESSOR: Yep. 681 00:36:54,890 --> 00:37:00,400 >> ZIELGRUPPE: Wo es heißt, wenn diese String s an Speicher gespeichert spot-- 682 00:37:00,400 --> 00:37:01,689 Ich erfinden this-- Null ist. 683 00:37:01,689 --> 00:37:02,355 PROFESSOR: Sicher. 684 00:37:02,355 --> 00:37:05,290 Publikum: Und String t wird bei Speicher Ort gespeichert sind, 685 00:37:05,290 --> 00:37:11,000 wie, 167, und dann Null ist nicht gleich 167. 686 00:37:11,000 --> 00:37:12,610 >> PROFESSOR: Genau. 687 00:37:12,610 --> 00:37:18,350 OK, so erinnern diese unglaubliche Offenbarung für euch haben wir erklärt, 688 00:37:18,350 --> 00:37:21,530 in der vergangenen Woche, dass Saiten nicht wirklich existieren? 689 00:37:21,530 --> 00:37:25,380 Wenn wir etwas schaffen genannt String sind wir in der Realität 690 00:37:25,380 --> 00:37:29,330 Erstellen von etwas namens char Sterne. 691 00:37:29,330 --> 00:37:34,470 Die alle ist es ein Zeiger auf eine Schnur oder ein Array von Zeichen. 692 00:37:34,470 --> 00:37:39,480 >> Und so dass in diesem Beispiel, wenn I waren die Eingabe M-O-M die Art und Weise 693 00:37:39,480 --> 00:37:49,350 dass mein Computer würde zu speichern ist innerhalb des Speichers umgekehrten Schrägstrich Null, oder? 694 00:37:49,350 --> 00:37:53,180 Diese vier Zeichen, Zeichen, irgendwo gespeichert werden. 695 00:37:53,180 --> 00:37:59,290 >> Und dann diese vier Zeichen Backslash Null, 696 00:37:59,290 --> 00:38:01,275 werden irgendwo anders gespeichert, nicht wahr? 697 00:38:01,275 --> 00:38:04,685 Ich habe keine Ahnung, wo die Adressen sind, sie sind irgendwo in meinem Computer. 698 00:38:04,685 --> 00:38:07,080 Aber ich weiß nicht genau, wo sie sind. 699 00:38:07,080 --> 00:38:10,170 >> Wenn ich eine Zeichenfolge s, all das ist wirklich 700 00:38:10,170 --> 00:38:15,550 ist ein Zeiger auf die Start dieser Zeichenfolge. 701 00:38:15,550 --> 00:38:21,130 Und wenn ich dieses t Wert zu schaffen, all das ist ein Zeiger auf sich hier anmelden. 702 00:38:21,130 --> 00:38:23,980 Und so, wenn Sie versuchen, gleichzusetzen und überprüfen 703 00:38:23,980 --> 00:38:27,710 um zu sehen, wenn s equals gleich T ist, der Computer 704 00:38:27,710 --> 00:38:31,635 ist eigentlich nur der Rückkehr in Sie die Adresse dieses m 705 00:38:31,635 --> 00:38:33,390 und die Adresse dieser m. 706 00:38:33,390 --> 00:38:36,230 Und weil sie zwei separate Teile von Daten 707 00:38:36,230 --> 00:38:38,750 , die in zwei verschiedenen gespeicherten Adressen in Ihrem Computer, 708 00:38:38,750 --> 00:38:41,750 Ihr Computer wird nie erkennen sie als gleich. 709 00:38:41,750 --> 00:38:43,500 Will jemand geben einen Schuss auf das, was wir 710 00:38:43,500 --> 00:38:46,900 zu tun haben würde, wenn wir korrigieren wollte dies und haben eine richtige laufende Programm 711 00:38:46,900 --> 00:38:49,360 statt? 712 00:38:49,360 --> 00:38:52,070 Denken Sie, dass für ein paar Sekunden. 713 00:38:52,070 --> 00:38:54,929 Was brauchen wir, um zu ändern, dieses Porgramm Funktionsweise 714 00:38:54,929 --> 00:38:56,220 die Art, wie wir sie zu funktionieren soll? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> Ja, möchte einen Stich an es dauern? 717 00:39:18,918 --> 00:39:24,082 >> ZIELGRUPPE: Können wir versuchen, das dereferenzieren Zeiger und überprüfen Sie durch das Array? 718 00:39:24,082 --> 00:39:25,540 PROFESSOR: Das ist eine Möglichkeit, es zu tun. 719 00:39:25,540 --> 00:39:27,880 Also, was ist Ihr Name? 720 00:39:27,880 --> 00:39:29,010 Es tut mir leid, erinnern mich. 721 00:39:29,010 --> 00:39:29,589 >> Zee: Zee. 722 00:39:29,589 --> 00:39:32,130 PROFESSOR: Ja, so was Zee vorgeschlagen würde es absolut zu arbeiten. 723 00:39:32,130 --> 00:39:32,629 Recht? 724 00:39:32,629 --> 00:39:35,730 Wir könnten den Zeiger dereferenzieren und tatsächlich gehen und Zugang 725 00:39:35,730 --> 00:39:38,460 Die physikalischen Daten in der hier. 726 00:39:38,460 --> 00:39:40,300 Und wir vergleichen können der gesamte Bildschirm. 727 00:39:40,300 --> 00:39:43,670 >> Wir können sagen, OK, Zeiger, gib mir, was hier drin ist. 728 00:39:43,670 --> 00:39:44,960 Es wäre eine m zurück. 729 00:39:44,960 --> 00:39:47,168 Und ich würde sagen, zeiger, gib mir, was hier drin ist. 730 00:39:47,168 --> 00:39:47,750 Liefert ein m. 731 00:39:47,750 --> 00:39:48,410 Geben die Spiel? 732 00:39:48,410 --> 00:39:49,410 Ja. 733 00:39:49,410 --> 00:39:50,340 Dann gehen wir weiter. 734 00:39:50,340 --> 00:39:54,240 >> Wir halten die Überprüfung der gesamten zwei Streicher ganzen Weg bis zum Ende 735 00:39:54,240 --> 00:39:56,635 und sehen, ob diejenigen, gleich sind, Wenn alle Werte gleich sind. 736 00:39:56,635 --> 00:39:59,680 Und wenn alle Werte gleich sind, dann wissen wir, die Saiten sind wahr. 737 00:39:59,680 --> 00:40:01,600 Absolut, das ist, wie wir es tun? 738 00:40:01,600 --> 00:40:03,930 >> Hat jemand über irgendetwas davon verwirrt? 739 00:40:03,930 --> 00:40:06,970 Das gesamte Konzept der, wie Saiten sind wirklich nur Hinweise, 740 00:40:06,970 --> 00:40:08,440 und wie sie nicht wirklich existieren? 741 00:40:08,440 --> 00:40:10,480 Und warum wir Fehler erhalten die Art, wie wir es bekommen? 742 00:40:10,480 --> 00:40:15,070 Weil ich garantiere euch, Zeiger und String-Zuweisung und Speicher 743 00:40:15,070 --> 00:40:16,470 gehen zu kommen. 744 00:40:16,470 --> 00:40:17,410 >> Ja? 745 00:40:17,410 --> 00:40:21,072 >> ZIELGRUPPE: [unverständlich] dereferenzieren es, setzt man einen Stern [unverständlich] 746 00:40:21,072 --> 00:40:21,780 PROFESSOR: Richtig. 747 00:40:21,780 --> 00:40:28,430 Also, um einen Zeiger mittels derererence um an diese Adresse des Zeigers gehen 748 00:40:28,430 --> 00:40:30,390 und erhalten die Daten den Wert gibt. 749 00:40:30,390 --> 00:40:32,700 Und die Art und Weise zu tun, die Sterne-Zeiger. 750 00:40:32,700 --> 00:40:34,262 Verwechseln Sie nicht, dass. 751 00:40:34,262 --> 00:40:35,186 >> ZIELGRUPPE: [unverständlich]. 752 00:40:35,186 --> 00:40:35,852 >> PROFESSOR: Ja. 753 00:40:35,852 --> 00:40:39,750 Publikum: Sie haben also nur schreiben kann wenn Sterne s gleich equals Sterne t. 754 00:40:39,750 --> 00:40:40,630 >> PROFESSOR: Nun, nein. 755 00:40:40,630 --> 00:40:40,960 Nein. 756 00:40:40,960 --> 00:40:41,640 >> ZIELGRUPPE: Das ist nicht gut genug, nicht wahr? 757 00:40:41,640 --> 00:40:43,760 >> PROFESSOR: Es ist nicht, weil Sie nur die Überprüfung der ersten Buchstaben. 758 00:40:43,760 --> 00:40:46,010 Du bist wahrscheinlich zu brauchen eine Art einer Schleife, 759 00:40:46,010 --> 00:40:49,055 durchläuft jedes einzelne Zeichen in beiden Zeichenketten. 760 00:40:49,055 --> 00:40:49,837 Ja. 761 00:40:49,837 --> 00:40:52,920 Also, wenn Sie nur überprüfen, wollte wenn sie mit der gleichen Sache begann, 762 00:40:52,920 --> 00:40:58,220 Sie, wenn, Sterne tun können s gleich star t. 763 00:40:58,220 --> 00:41:01,300 Dann wissen Sie, dass sie zumindest mit dem gleichen Zeichen begonnen. 764 00:41:01,300 --> 00:41:01,952 >> Ja? 765 00:41:01,952 --> 00:41:04,056 >> ZIELGRUPPE: Also der Weg Sie, das wäre 766 00:41:04,056 --> 00:41:06,064 wie eine for-Schleife oder Zeiger eingebettet? 767 00:41:06,064 --> 00:41:06,730 PROFESSOR: Ja. 768 00:41:06,730 --> 00:41:08,170 Ziemlich genau einer for-Schleife. 769 00:41:08,170 --> 00:41:12,430 Denken Sie daran, David in der Klasse genannt die freie syntaktischer Zucker? 770 00:41:12,430 --> 00:41:17,690 Und er diese sehr hatten Verwirrende der Sterne t 771 00:41:17,690 --> 00:41:22,030 plus eins, wo es zu integrieren wäre durch und es den Zeiger zu bewegen? 772 00:41:22,030 --> 00:41:29,910 Die einfacheren Weg, dies zu tun dies ist nur von t i. 773 00:41:29,910 --> 00:41:31,090 >> So ist es nur ein Array. 774 00:41:31,090 --> 00:41:34,630 Die Art und Weise, dass Sie ein für müssten Schleife, die von Null bis i lief, wobei 775 00:41:34,630 --> 00:41:36,580 i ist die Länge der string, könnten Sie einfach 776 00:41:36,580 --> 00:41:39,510 schreiben, dass zu tun, anstatt die Ganzes Zeiger, eine Referenz Sache. 777 00:41:39,510 --> 00:41:43,510 So sind diese Dinge genau Gegenwert in Ihrem Computer. 778 00:41:43,510 --> 00:41:45,905 >> Ihr Jungs wahrscheinlich nicht müssen wissen, dass, 779 00:41:45,905 --> 00:41:48,280 aber es ist gut, um nur irgendwie haben auf der Rückseite Ihres Geistes. 780 00:41:48,280 --> 00:41:52,630 Genau wissen, dass der Computer erkennt unterschiedliche Codeblöcke 781 00:41:52,630 --> 00:41:53,890 als die gleiche Sache. 782 00:41:53,890 --> 00:41:57,510 Da es sich nur weit mehr Nutzer freundlich es für uns zu präsentieren, wie es ist 783 00:41:57,510 --> 00:41:58,150 eine Abfolge. 784 00:41:58,150 --> 00:42:00,990 Es ist nur einfacher. 785 00:42:00,990 --> 00:42:02,719 >> Publikum: So verwenden strlen zu mögen, get-- 786 00:42:02,719 --> 00:42:03,385 PROFESSOR: Ja. 787 00:42:03,385 --> 00:42:03,926 ZIELGRUPPE: OK. 788 00:42:03,926 --> 00:42:05,940 PROFESSOR: Sie könnten strlen verwenden oder, wenn man 789 00:42:05,940 --> 00:42:10,420 hatte nicht strlen können Sie einfach tun up bis Sie auf Backslash Null für beide. 790 00:42:10,420 --> 00:42:11,568 Entweder funktionieren würde. 791 00:42:11,568 --> 00:42:12,068 Ja. 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 Publikum: So ist es zu dereferenzieren jeden einzelnes Zeichen, wenn wir tatsächlich waren 794 00:42:17,996 --> 00:42:21,044 Schreiben Sie diesen Code, die wir konnte nur tun, t Klammern i 795 00:42:21,044 --> 00:42:22,460 gerne mit dem Stern vor ihm? 796 00:42:22,460 --> 00:42:27,700 >> PROFESSOR: Ja, gleich equals s Halterung i, und dann in Bewegung zu halten i 797 00:42:27,700 --> 00:42:29,790 nach unten, bis Sie das Ende getroffen. 798 00:42:29,790 --> 00:42:31,286 Ja, das ist, was Sie tun würden. 799 00:42:31,286 --> 00:42:33,660 Und ich werde tatsächlich einen nächsten Beispiel wenn wir tatsächlich 800 00:42:33,660 --> 00:42:36,740 schreiben strlen, so dass Sie Jungs Art von zu bekommen, um ein wenig zu spielen, um mit ihm. 801 00:42:36,740 --> 00:42:43,567 >> So wird schnell klar, nur auf Speicher, Streicher, Zeiger, Qualität-Adressen? 802 00:42:43,567 --> 00:42:46,650 Einige höhere Konzepte, die Sie wird sicher Notwendigkeit, auf die Quiz-weiß 803 00:42:46,650 --> 00:42:48,928 Morgen. 804 00:42:48,928 --> 00:42:49,904 >> Gut. 805 00:42:49,904 --> 00:42:50,404 Gut. 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 Ja. 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 OK, so eine Sache, die wir uns auch fragen, Sie, wie wir jedes Jahr an einem Quiz, ist, 810 00:43:04,180 --> 00:43:08,340 nehme an, dass Sie vergessen haben (die Wir scheinen zu vergessen, die jährlich zu tun) 811 00:43:08,340 --> 00:43:10,810 , in der Header-Datei strlen deklariert. 812 00:43:10,810 --> 00:43:13,860 Und so müssen wir es uns selbst neu zu schreiben. 813 00:43:13,860 --> 00:43:16,350 >> Hier eine Liste der Richtlinien dass wir Ihnen präsentieren 814 00:43:16,350 --> 00:43:20,660 Jungs, wo man davon ausgehen, dass s der String nicht null sein. 815 00:43:20,660 --> 00:43:23,830 Sie können davon ausgehen, dass s werden mit einem Backslash Null beendet. 816 00:43:23,830 --> 00:43:26,670 Damit Sie wissen, das ist, was es wird mit beenden. 817 00:43:26,670 --> 00:43:29,500 >> Und, zum Beispiel, dass die Länge hallo würde fünf sein. 818 00:43:29,500 --> 00:43:32,890 So kann man davon ausgehen, dass hallo fünf, H-E-L-L-O sein. 819 00:43:32,890 --> 00:43:35,890 Sie müssen nicht davon ausgehen, dass die backside Null-Konten für die Länge. 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> Das letzte, was hier nicht Sorgen um Integer-Überlauf. 822 00:43:42,300 --> 00:43:45,270 Erinnert sich noch jemand Integer-Überlauf, was ist? 823 00:43:45,270 --> 00:43:48,041 >> ZIELGRUPPE: geht über die Länge der [unverständlich]. 824 00:43:48,041 --> 00:43:50,740 >> PROFESSOR: Ja, können Sie erklären, ein bisschen, was bedeutet das? 825 00:43:50,740 --> 00:43:55,330 >> ZIELGRUPPE: Also, ich denke, es geht zurück um das Abschneiden Beispiel früher. 826 00:43:55,330 --> 00:43:58,380 Aber wenn Sie nur so viele Zahlen daß jenseits der Anzahl von Bits gehen 827 00:43:58,380 --> 00:44:01,409 dass Sie tatsächlich zuweisen dass es nur irgendwie abgeschnitten. 828 00:44:01,409 --> 00:44:04,242 PROFESSOR: Ja, so auf einem typischen Computer, wie viele Bits haben wir? 829 00:44:04,242 --> 00:44:05,306 ZIELGRUPPE: 32? 830 00:44:05,306 --> 00:44:06,430 PROFESSOR: Ja, 32, rechts. 831 00:44:06,430 --> 00:44:10,030 Und damit ist, was, vier Milliarden, zwei Milliarden? 832 00:44:10,030 --> 00:44:13,579 Vier Milliarden, bis zu vier Milliarden positive ganze Zahlen sind, nicht wahr? 833 00:44:13,579 --> 00:44:15,370 Zwei Milliarden negativ, zwei Milliarden positiv, 834 00:44:15,370 --> 00:44:16,900 hängt davon ab, wie Sie es wollen. 835 00:44:16,900 --> 00:44:21,470 >> Und so im Grunde wir haben können genug, ganze Zahlen, die gehen kann 836 00:44:21,470 --> 00:44:25,800 zwei zur 31. minus 1, oder? 837 00:44:25,800 --> 00:44:27,980 Denn sobald wir traf zwei zur 32., wissen wir nicht 838 00:44:27,980 --> 00:44:30,040 so viel Speicher in unserem Computer. 839 00:44:30,040 --> 00:44:32,310 >> Und so theoretisch I könnte mit einer Reihe 840 00:44:32,310 --> 00:44:34,560 das heißt, wie zwei der 46.. 841 00:44:34,560 --> 00:44:38,040 Es ist eine riesige-ass-Nummer, aber Theoretisch könnte man. 842 00:44:38,040 --> 00:44:42,730 Und so Integer-Überlauf ist, wenn Sie versuchen, eine ganze Zahl, die über das hinausgeht 843 00:44:42,730 --> 00:44:44,790 Computer speichern kann. 844 00:44:44,790 --> 00:44:46,590 >> Und so euch für dieses Beispiel nicht über 845 00:44:46,590 --> 00:44:51,330 über uns zu geben Ihnen eine riesige Sorgen Zeichenfolge, die beiden zu den 32. Zeichen ist 846 00:44:51,330 --> 00:44:51,830 lange. 847 00:44:51,830 --> 00:44:54,010 Das wäre wirklich zu verstehen. 848 00:44:54,010 --> 00:44:59,430 >> Also gut, ich werde einfach zu geben, euch die Grundstruktur dieser. 849 00:44:59,430 --> 00:45:02,020 Du wirst ein erstellen Funktion namens int strlen, wo 850 00:45:02,020 --> 00:45:08,436 Ein Pass in ein char Sterne, oder String, Zeiger auf den String s genannt. 851 00:45:08,436 --> 00:45:10,820 >> In Ordnung, jeder Kopie, die nach unten. 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 Cool. 854 00:45:14,850 --> 00:45:17,020 Oops-- anderen Weg. 855 00:45:17,020 --> 00:45:21,360 >> Also das ist eine Art, wie ein härter Stück Problem, 856 00:45:21,360 --> 00:45:25,320 also werde ich euch vielleicht fünf zu geben 6 Minuten, um Art von Brainstorming 857 00:45:25,320 --> 00:45:27,478 und schreiben Sie diese Funktion aus. 858 00:45:27,478 --> 00:45:29,710 >> Publikum: Wir tun nicht Konto nach [unverständlich], 859 00:45:29,710 --> 00:45:30,200 wir haben nicht den Integer benutzen? 860 00:45:30,200 --> 00:45:31,241 >> PROFESSOR: Nein, haben Sie nicht. 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 Ich werde euch einen Hinweis geben. 863 00:48:06,930 --> 00:48:12,325 Eine while-Schleife kann hier sehr hilfreich sein. 864 00:48:12,325 --> 00:48:12,825 Ja. 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 Hier ist, 867 00:48:45,495 --> 00:48:45,995 Süßigkeiten. 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 Süßigkeit wird ebenfalls verfügbar sein für das Quiz, denke ich. 870 00:48:53,410 --> 00:48:55,315 So euch alle sein morgen gezuckert. 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 Kann ich-- Sie es bekommen. 873 00:49:02,962 --> 00:49:03,718 >> ZIELGRUPPE: OK. 874 00:49:03,718 --> 00:49:04,384 PROFESSOR: Ja. 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> Vielleicht 30 Sekunden oder so. 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> Na gut, wenn Sie nicht gemacht, keine Sorgen. 879 00:50:07,340 --> 00:50:08,810 Wir werden durch diese zusammen bewegen. 880 00:50:08,810 --> 00:50:09,310 OK. 881 00:50:09,310 --> 00:50:13,800 Also bin ich nur das Layout geht das Grundstruktur für diese Funktion hier. 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 Zuerst hat jemand erzählen will mir, was dass int bedeutet? 885 00:50:23,460 --> 00:50:25,160 Wir müssen in dieser Funktion haben. 886 00:50:25,160 --> 00:50:26,709 >> ZIELGRUPPE: strlen [unverständlich]. 887 00:50:26,709 --> 00:50:27,500 PROFESSOR: Genau. 888 00:50:27,500 --> 00:50:31,140 Also, was hier passiert, wir brauchen, um eine ganze Zahl zurück. 889 00:50:31,140 --> 00:50:36,367 Und wie in den angegebenen spec, um return-- wollen wir 890 00:50:36,367 --> 00:50:37,700 Go for it Jungs, einfach weiter. 891 00:50:37,700 --> 00:50:40,480 Es ist alles gut. 892 00:50:40,480 --> 00:50:42,960 Essen Sie alles, damit ich nicht haben um es zurücknehmen, eigentlich. 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 Die int bedeutet nur, dass Sie gehen, um eine ganze Zahl zurückkehren. 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> Was ist das char-Sterne-s? 897 00:50:57,106 --> 00:50:58,640 Was bedeutet das? 898 00:50:58,640 --> 00:51:00,879 >> Publikum: Wie, was eingegeben in. 899 00:51:00,879 --> 00:51:01,670 PROFESSOR: Genau. 900 00:51:01,670 --> 00:51:04,142 Und was ist fast die Gleiche wie char Sterne? 901 00:51:04,142 --> 00:51:04,850 ZIELGRUPPE: String? 902 00:51:04,850 --> 00:51:05,641 PROFESSOR: Genau. 903 00:51:05,641 --> 00:51:09,080 Also alles, was wir tun, ist geben dies ein Zeiger auf eine Zeichenkette. 904 00:51:09,080 --> 00:51:09,580 OK. 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 Cool. 907 00:51:13,360 --> 00:51:16,650 >> Vergessen Sie auch nicht, wenn wir vergessen um Ihnen diese Klammern, 908 00:51:16,650 --> 00:51:18,330 vergessen Sie nicht, um sie selbst zu schreiben. 909 00:51:18,330 --> 00:51:20,720 Denn theoretisch, ist Ihr Code falsch, wenn Sie vergessen, sie zu schreiben. 910 00:51:20,720 --> 00:51:21,803 Nur immer darauf achten. 911 00:51:21,803 --> 00:51:23,750 Wie, kleinen Dinge dass Sie nicht bemerken, 912 00:51:23,750 --> 00:51:26,917 wenn Sie auf Ihrem Laptop programmieren sind, weil Sie Ihren Laptop bedeutet es für Sie? 913 00:51:26,917 --> 00:51:28,624 Vergessen Sie nicht, wenn Sie schreiben von Hand. 914 00:51:28,624 --> 00:51:29,170 Ja? 915 00:51:29,170 --> 00:51:30,954 >> ZIELGRUPPE: Aber wie falsch sind? 916 00:51:30,954 --> 00:51:33,190 Wie, bekommen wir das ganze Problem nicht in Ordnung? 917 00:51:33,190 --> 00:51:34,190 >> PROFESSOR: Nein, nein. 918 00:51:34,190 --> 00:51:34,860 Mach dir keine Sorgen. 919 00:51:34,860 --> 00:51:39,270 Es ist eigentlich theoretisch möglich damit Sie die volle Punktzahl auf eine Frage erhalten 920 00:51:39,270 --> 00:51:41,980 auch dann, wenn Ihr Code nie im wirklichen Leben laufen. 921 00:51:41,980 --> 00:51:46,052 Ich schlage vor, Sie versuchen Sie nicht, um dies zuzulassen. 922 00:51:46,052 --> 00:51:48,260 Zum Beispiel, wenn alles das ist hier richtig ist, 923 00:51:48,260 --> 00:51:51,850 aber Sie einen Doppelpunkt oder eine Klammer vergessen haben, Ihr Code wird nicht wirklich laufen. 924 00:51:51,850 --> 00:51:53,740 Aber wir können barmherzig sein. 925 00:51:53,740 --> 00:51:54,394 >> Ja? 926 00:51:54,394 --> 00:51:56,050 >> Publikum: Sie haben, um Kommentar auf unserer Handschrift? 927 00:51:56,050 --> 00:51:57,758 >> PROFESSOR: Nein, nein, nein, Sorgen darüber. 928 00:51:57,758 --> 00:51:58,440 Kein kommentieren. 929 00:51:58,440 --> 00:51:59,400 Stil sollte gut sein. 930 00:51:59,400 --> 00:52:01,470 Wie, nicht smush weiß alles in einer Zeile. 931 00:52:01,470 --> 00:52:04,580 Wir werden nicht glücklich sein, mit, wenn Sie das tun. 932 00:52:04,580 --> 00:52:07,250 >> Will jemand geben Sie mir die erste Zeile? 933 00:52:07,250 --> 00:52:08,633 Hinweis, es ist sehr einfach. 934 00:52:08,633 --> 00:52:09,320 >> Ja? 935 00:52:09,320 --> 00:52:11,920 >> ZIELGRUPPE: Int, n gleich Null ist. 936 00:52:11,920 --> 00:52:13,734 Gerade Zähler gesetzt. 937 00:52:13,734 --> 00:52:15,900 PROFESSOR: So wollen wir einige Art von einem Zähler, nicht wahr? 938 00:52:15,900 --> 00:52:19,780 Ich bin gerade dabei, es zu nennen "count" aus Gründen der Lesbarkeit. 939 00:52:19,780 --> 00:52:21,265 Was wollen wir, um es gleich eingestellt? 940 00:52:21,265 --> 00:52:21,890 >> ZIELGRUPPE: Null. 941 00:52:21,890 --> 00:52:23,840 PROFESSOR: Yep. 942 00:52:23,840 --> 00:52:24,340 Semikolon. 943 00:52:24,340 --> 00:52:26,250 Es ist auch sehr seltsam Zeichnung Semikolons. 944 00:52:26,250 --> 00:52:28,870 Nur die Praxis zu tun. 945 00:52:28,870 --> 00:52:31,990 >> Deshalb wollen wir zuerst ein Zähler vom Typ int. 946 00:52:31,990 --> 00:52:35,360 Weil wir zu zählen, wie wollen viele Zeichen oder Buchstaben sind 947 00:52:35,360 --> 00:52:36,780 in diesem String, oder? 948 00:52:36,780 --> 00:52:38,330 Sehr einfache erste Schritt. 949 00:52:38,330 --> 00:52:42,140 >> OK, vielleicht ein wenig komplexer Jetzt, wie sollen wir tun? 950 00:52:42,140 --> 00:52:45,400 Will jemand geben Sie mir die Codezeile 951 00:52:45,400 --> 00:52:48,450 dass möglicherweise in Lage, Schleife helfen durch was auch immer das ist? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> Ja, tapfere Seele in den Rücken? 954 00:52:56,900 --> 00:53:06,832 >> ZIELGRUPPE: OK, also, während Punkt Sternchen, die ja, Star des s, 955 00:53:06,832 --> 00:53:09,465 ist ungleich Null, so etwas zu tun? 956 00:53:09,465 --> 00:53:11,090 PROFESSOR: Das ist wirklich sehr, sehr nahe. 957 00:53:11,090 --> 00:53:11,835 Ganz in der Nähe. 958 00:53:11,835 --> 00:53:13,710 Also werde ich zur Adresse zwei Dinge, mit denen. 959 00:53:13,710 --> 00:53:18,240 Zunächst einmal, es ist nicht genau Null. 960 00:53:18,240 --> 00:53:20,110 Was ist es? 961 00:53:20,110 --> 00:53:22,550 Es ist das Nullabschlusszeichen, was umgekehrten Schrägstrich Null. 962 00:53:22,550 --> 00:53:24,960 So dass sie in verschiedenen bist Hinblick darauf, wie sie gespeichert sind. 963 00:53:24,960 --> 00:53:26,270 So sind Sie ganz in der Nähe. 964 00:53:26,270 --> 00:53:30,330 >> Und zweitens, die wir nicht wollen nur bewegen Sie den Mauszeiger. 965 00:53:30,330 --> 00:53:32,320 Wir wollen eigentlich Zugriff auf die Werte, nicht wahr? 966 00:53:32,320 --> 00:53:34,050 Und so, wie tun wir das? 967 00:53:34,050 --> 00:53:34,550 Sehr leicht. 968 00:53:34,550 --> 00:53:36,841 Sie nicht über Zeiger zu denken, nicht um Erinnerungen zu denken. 969 00:53:36,841 --> 00:53:38,525 Gehen Sie zurück zu der zweiten Woche dieses Kurses. 970 00:53:38,525 --> 00:53:39,555 >> ZIELGRUPPE: [unverständlich]. 971 00:53:39,555 --> 00:53:40,680 PROFESSOR: Ab, schon vergessen? 972 00:53:40,680 --> 00:53:41,400 Was sind Zeichenfolgen? 973 00:53:41,400 --> 00:53:42,650 Wie werden sie gespeichert? 974 00:53:42,650 --> 00:53:43,300 >> ZIELGRUPPE: Sie erhöht. 975 00:53:43,300 --> 00:53:43,810 >> PROFESSOR: Sie werden angehoben. 976 00:53:43,810 --> 00:53:45,550 Wie können wir also zugreifen jeder Charakter im Inneren? 977 00:53:45,550 --> 00:53:46,466 >> ZIELGRUPPE: [unverständlich]. 978 00:53:46,466 --> 00:53:47,530 PROFESSOR: Genau. 979 00:53:47,530 --> 00:53:53,195 So while--, was geht hier drinnen? 980 00:53:53,195 --> 00:53:54,940 S - 981 00:53:54,940 --> 00:53:55,920 >> ZIELGRUPPE: I. 982 00:53:55,920 --> 00:53:58,216 >> PROFESSOR: Oh, i nicht vorhanden ist, oder? 983 00:53:58,216 --> 00:53:59,620 >> ZIELGRUPPE: Oh, zu zählen? 984 00:53:59,620 --> 00:54:01,640 >> PROFESSOR: Wir können einfach benutzen Zahl, können wir nicht? 985 00:54:01,640 --> 00:54:03,050 >> ZIELGRUPPE: Sorry, ich rief sie i. 986 00:54:03,050 --> 00:54:04,341 >> PROFESSOR: Ja, es ist alles gut. 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 Wir haben eine variable hier oben, das ist bereits als unsere Gegen erklärt worden. 989 00:54:10,760 --> 00:54:13,650 Also, warum wir nicht einfach verwenden, dass um durch die while-Schleife zu bewegen? 990 00:54:13,650 --> 00:54:15,230 Ist das sinnvoll? 991 00:54:15,230 --> 00:54:20,864 >> So, während s von count-- Möchte jemand mir geben, was danach passiert hier? 992 00:54:20,864 --> 00:54:22,030 Publikum: Es ist nicht gleich. 993 00:54:22,030 --> 00:54:23,405 PROFESSOR: ist nicht gleich, nicht wahr? 994 00:54:23,405 --> 00:54:26,200 Es ist der Knall ist gleich, Ausrufezeichen entspricht, 995 00:54:26,200 --> 00:54:28,500 was auch immer euch zu wollen nennen Sie es nicht equal-- 996 00:54:28,500 --> 00:54:29,496 >> ZIELGRUPPE: [unverständlich]. 997 00:54:29,496 --> 00:54:30,990 >> PROFESSOR: Ja. 998 00:54:30,990 --> 00:54:37,110 Denken Sie daran, Apostroph ist ein char, doppelte Anführungszeichen für einen String. 999 00:54:37,110 --> 00:54:38,630 Seien Sie vorsichtig, wenn mit ihnen. 1000 00:54:38,630 --> 00:54:42,430 Also, wenn wir durch suchen das Array, das letzte Zeichen, 1001 00:54:42,430 --> 00:54:46,420 Wir wissen, dass wir nicht wollen, es umgekehrten Schrägstrich Null sein. 1002 00:54:46,420 --> 00:54:47,340 >> So, während. 1003 00:54:47,340 --> 00:54:48,840 Wir sind nicht am Ende der Kette. 1004 00:54:48,840 --> 00:54:52,335 Was wollen wir nach innen zu tun? 1005 00:54:52,335 --> 00:54:55,269 >> Publikum: Wir wollen, um das Add Gegen so zählt plus plus? 1006 00:54:55,269 --> 00:54:56,060 PROFESSOR: Genau. 1007 00:54:56,060 --> 00:55:03,064 Also hier werden wir zu tun zählen, zählen plus plus. 1008 00:55:03,064 --> 00:55:03,980 Vermissen Sie eine weitere Zeile. 1009 00:55:03,980 --> 00:55:05,090 Wir sind fast da. 1010 00:55:05,090 --> 00:55:07,398 Was sollen wir zu vergessen, zu tun? 1011 00:55:07,398 --> 00:55:08,770 >> ZIELGRUPPE: Rückkehr Null? 1012 00:55:08,770 --> 00:55:10,820 >> PROFESSOR: Sie wollen zurückkehren Null? 1013 00:55:10,820 --> 00:55:12,962 >> ZIELGRUPPE: Nein, der Rückkehr in strlen. 1014 00:55:12,962 --> 00:55:13,511 Warte ab. 1015 00:55:13,511 --> 00:55:14,760 PROFESSOR: Welche gespeichert ist? 1016 00:55:14,760 --> 00:55:15,090 ZIELGRUPPE: Count. 1017 00:55:15,090 --> 00:55:15,589 Graf. 1018 00:55:15,589 --> 00:55:17,150 PROFESSOR: Genau. 1019 00:55:17,150 --> 00:55:20,760 Also hier werden wir Zahl zurück. 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> Denn das, was wir sind denn hier ultimately-- 1022 00:55:25,380 --> 00:55:29,780 wir haben eine Zählervariable, die ist gehen, um über unser String zu erhöhen. 1023 00:55:29,780 --> 00:55:33,050 Wir werden weitermachen, behalten gehen, um und um in dieser Schleife. 1024 00:55:33,050 --> 00:55:37,700 Und während wir uns nicht auf das Ende dieses String, der das Nullabschluss ist. 1025 00:55:37,700 --> 00:55:40,410 >> Und jedes Mal, wenn wir durchmachen es, fügen wir zu unserem Gegen bist. 1026 00:55:40,410 --> 00:55:42,640 Und wir werden weiter gehen zusammen in diesem Array. 1027 00:55:42,640 --> 00:55:44,880 Und am Ende, wenn wir traf das Nullabschlusszeichen, 1028 00:55:44,880 --> 00:55:48,469 wir wissen, oh, wir können brechen, geben Sie den Zählerstand. 1029 00:55:48,469 --> 00:55:49,260 Wir haben unsere strlen. 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> Hat jeder zu erhalten, wie Dies wurde umgesetzt? 1032 00:55:56,400 --> 00:55:58,830 Während loops-- ich weiß, haben wir nicht zu viel mit ihnen gemacht, 1033 00:55:58,830 --> 00:56:01,240 aber sie sind in der Regel sehr, sehr nützlich, wenn Sie 1034 00:56:01,240 --> 00:56:05,390 weiß nicht, was Sie zu stoppen sind Bedingung unbedingt sein muss. 1035 00:56:05,390 --> 00:56:06,220 >> Frage? 1036 00:56:06,220 --> 00:56:10,080 >> ZIELGRUPPE: Können wir schreiben null an der während Zustand? 1037 00:56:10,080 --> 00:56:10,940 >> PROFESSOR: Während? 1038 00:56:10,940 --> 00:56:15,304 Ja, so in diesem Problem, das ich Sie musste Jungs nehmen an, dass s nicht null sein. 1039 00:56:15,304 --> 00:56:17,220 Denn denken Sie daran, Theoretisch, wenn ich dir gegeben habe 1040 00:56:17,220 --> 00:56:21,180 ein Zeiger, der zu groß war Speicher, es würde Ihnen die Null, oder? 1041 00:56:21,180 --> 00:56:23,770 Was die Betriebs Das ist, System tun würde. 1042 00:56:23,770 --> 00:56:26,960 >> Also, wenn ich es dir nicht gesagt, anzunehmen, s wäre null, müssen Sie überprüfen. 1043 00:56:26,960 --> 00:56:32,050 Also hier, was Sie tun würden, wenn s ist gleich ist gleich null, zurück ein. 1044 00:56:32,050 --> 00:56:33,028 So ähnlich. 1045 00:56:33,028 --> 00:56:34,153 ZIELGRUPPE: [unverständlich] Null. 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 PROFESSOR: OK, ich werde sagen, warum wir das nicht können. 1048 00:56:39,370 --> 00:56:43,357 Da erinnere mich in Erinnerung, rechts, hier. 1049 00:56:43,357 --> 00:56:43,940 Wir werden hier zu gehen. 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> Sie haben riesigen Blöcken bekam Speicher alle mit Gittern 1052 00:56:54,090 --> 00:56:56,680 diesem Speicher unterschiedliche Werte, nicht wahr? 1053 00:56:56,680 --> 00:57:00,110 Und so alle ein String ist-- für Beispielsweise, wenn wir die Eingangs hallo, 1054 00:57:00,110 --> 00:57:05,490 es wäre H-E-L-L-O sein kann Backslash Null, oder? 1055 00:57:05,490 --> 00:57:09,570 Und dann, wer weiß, wie zufällige Dinge, die in hier, nachdem sie sind. 1056 00:57:09,570 --> 00:57:11,220 >> Wir wissen nicht wirklich, was da ist. 1057 00:57:11,220 --> 00:57:13,350 Und so, wenn Sie tun es anstelle von umgekehrten Schrägstrich Null, 1058 00:57:13,350 --> 00:57:15,590 null ist, kann es nicht null sein. 1059 00:57:15,590 --> 00:57:17,680 Weil es nur bedeuten kann einige zufällige anderem 1060 00:57:17,680 --> 00:57:19,270 die nicht in Ihrem String gehören. 1061 00:57:19,270 --> 00:57:23,219 Und so ist die Art, wie wir wissen, immer, ein String endet, ist mit einem Backslash Null. 1062 00:57:23,219 --> 00:57:25,760 Und damit ist immer, wie wir zu überprüfen, um das Ende eines Strings zu sehen. 1063 00:57:25,760 --> 00:57:30,820 >> Null, all das bedeutet ist, wenn Sie ein nicht existierender Zeiger zuallererst 1064 00:57:30,820 --> 00:57:36,160 oder wenn Ihr Speicher ist nur so groß, dass Sie können sie nicht zurückkehren, dann würde es null sein. 1065 00:57:36,160 --> 00:57:40,150 So sehr vorsichtig sein, wenn differen der Unterschied zwischen null 1066 00:57:40,150 --> 00:57:42,130 und die umgekehrten Schrägstrich Null. 1067 00:57:42,130 --> 00:57:43,670 Ja. 1068 00:57:43,670 --> 00:57:46,886 >> Jeder OK mit diesem? 1069 00:57:46,886 --> 00:57:48,150 OK. 1070 00:57:48,150 --> 00:57:50,440 >> Also musste ich euch strlen heraus zu schreiben. 1071 00:57:50,440 --> 00:57:53,790 Führbar könnten wir auch fragen, die Sie schreiben aus A bis I, denken Sie daran, dass "Atwoa" 1072 00:57:53,790 --> 00:57:55,400 oder was auch immer euch es nennen wollen? 1073 00:57:55,400 --> 00:57:58,010 Dass in Funktion Vigenere und Caesar, daß 1074 00:57:58,010 --> 00:58:00,900 Wandelt eine ASCII-Wert in eine Ganz? 1075 00:58:00,900 --> 00:58:04,360 Das hat auch bis auf letzten Quiz kommen Funktionsumfang haben wir Sie gebeten, zu schreiben. 1076 00:58:04,360 --> 00:58:08,280 >> So ziemlich jede Funktion dass Sie verwendet haben und 1077 00:58:08,280 --> 00:58:11,660 sehr einfach, sich selbst zu schreiben, Sensoren wie niedriger ist, 1078 00:58:11,660 --> 00:58:14,620 ist Ober, zu senken, um obere. 1079 00:58:14,620 --> 00:58:17,964 Funktionen, die zu konvertieren wäre ein Zeichenfolge aus Kleinbuchstaben in Großbuchstaben. 1080 00:58:17,964 --> 00:58:19,380 Wir alle wissen, wie das zu tun, nicht wahr? 1081 00:58:19,380 --> 00:58:21,100 Es ist ziemlich einfach. 1082 00:58:21,100 --> 00:58:24,770 Ich will nur sicherstellen, dass Sie can-- es ist das gleiche Denkprozess. 1083 00:58:24,770 --> 00:58:26,940 Sie durchlaufen gerade und biegen Sie die Dinge. 1084 00:58:26,940 --> 00:58:30,190 Entweder zu zählen oder, wenn Sie die Dinge sich anders. 1085 00:58:30,190 --> 00:58:32,280 >> Ich würde suggest-- I weiß nicht, ob wir gehen 1086 00:58:32,280 --> 00:58:39,080 Sie fragen sich zu merken, welche Kapital A oder Kapital Z, oder Kleinbuchstaben A oder Klein 1087 00:58:39,080 --> 00:58:42,640 z werden in ASCII, aber ich würde vorschlagen vielleicht in Fall schriftlich mit, dass 1088 00:58:42,640 --> 00:58:44,124 wir tun. 1089 00:58:44,124 --> 00:58:45,540 Nur damit Sie Jungs haben eine Referenz. 1090 00:58:45,540 --> 00:58:47,180 Wie Großbuchstaben A, was, 197? 1091 00:58:47,180 --> 00:58:51,320 Und dann in Kleinbuchstaben ist wie 50 etwas. 1092 00:58:51,320 --> 00:58:52,492 65, yeah, dort gehen Sie. 1093 00:58:52,492 --> 00:58:54,950 Also einfach ziemlich viel wissen, das Unterschied zwischen ihnen ist 32. 1094 00:58:54,950 --> 00:58:57,670 Das ist ziemlich wichtig. 1095 00:58:57,670 --> 00:58:58,170 Ja. 1096 00:58:58,170 --> 00:59:01,445 Bin ich gut auf diesem? 1097 00:59:01,445 --> 00:59:01,945 OK. 1098 00:59:01,945 --> 00:59:03,109 >> Publikum: Wir könnten theoretisch schreiben Sie einige 1099 00:59:03,109 --> 00:59:04,410 davon fallen als auch auf unserer little-- 1100 00:59:04,410 --> 00:59:07,035 >> PROFESSOR: Sie theoretisch konnte einfach kopieren Sie die Funktion unten. 1101 00:59:07,035 --> 00:59:08,482 Das ist richtig. 1102 00:59:08,482 --> 00:59:11,080 >> ZIELGRUPPE: Nicht [unverständlich]. 1103 00:59:11,080 --> 00:59:12,720 >> PROFESSOR: Sie Jungs haben ein Blatt. 1104 00:59:12,720 --> 00:59:14,194 Ihr habt eine Notiz Blatt. 1105 00:59:14,194 --> 00:59:14,860 Sie können es geben. 1106 00:59:14,860 --> 00:59:15,490 Sie können es zu schreiben. 1107 00:59:15,490 --> 00:59:17,031 Sie können tun, was Sie wollen mit ihm. 1108 00:59:17,031 --> 00:59:18,530 Ja. 1109 00:59:18,530 --> 00:59:21,406 Theoretisch, wenn Sie wollen, gehen Sie für. 1110 00:59:21,406 --> 00:59:23,338 >> ZIELGRUPPE: [unverständlich] aber wir haben nicht wirklich 1111 00:59:23,338 --> 00:59:25,994 unbedingt erinnern der Wert ist, können wir einfach 1112 00:59:25,994 --> 00:59:28,914 verwenden Sie die zum oberen oder zum Unterfunktion, nicht wahr? 1113 00:59:28,914 --> 00:59:29,580 PROFESSOR: Ja. 1114 00:59:29,580 --> 00:59:32,740 Aber wenn wir eine Frage gab dir das sagt zu schreiben, um obere, 1115 00:59:32,740 --> 00:59:34,350 dann würden Sie brauchen, um es zu schreiben. 1116 00:59:34,350 --> 00:59:38,150 So euch kann, dass Sie davon ausgehen, Jungs haben Zugriff auf alle Funktionen, 1117 00:59:38,150 --> 00:59:41,523 aber wenn Sie den oberen oder verwenden möchten niedriger, was man muss auch tun? 1118 00:59:41,523 --> 00:59:43,840 >> ZIELGRUPPE: [unverständlich] benutzen CS50 [unverständlich] 1119 00:59:43,840 --> 00:59:44,840 >> PROFESSOR: Ist es CS50.h? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 Seien Sie vorsichtig, da. 1122 00:59:48,310 --> 00:59:50,640 >> So zum oberen, zu senken, ist Ober, ist geringer, 1123 00:59:50,640 --> 00:59:52,990 Funktionen, beinhalten String-Manipulation sind 1124 00:59:52,990 --> 00:59:55,490 alle entweder innerhalb der Ascii oder innerhalb der Mathematik-Bibliothek 1125 00:59:55,490 --> 00:59:57,350 oder innerhalb der String-Bibliothek. 1126 00:59:57,350 --> 01:00:00,290 Also, wenn Sie Kerle verwenden Sie diese Funktionen, seien Sie vorsichtig daran zu erinnern, 1127 01:00:00,290 --> 01:00:01,451 , dass die Header enthalten. 1128 01:00:01,451 --> 01:00:03,950 So vielleicht auch etwas, das Sie wollen in Ihrem Blatt umfassen, 1129 01:00:03,950 --> 01:00:04,892 was sind die Kopfzeile? 1130 01:00:04,892 --> 01:00:06,600 Was sind die Bibliotheken Sie habe mit? 1131 01:00:06,600 --> 01:00:08,550 Welche Funktionen sind innerhalb dieser Bibliotheken? 1132 01:00:08,550 --> 01:00:09,230 Es ist wichtig. 1133 01:00:09,230 --> 01:00:10,420 >> Ja? 1134 01:00:10,420 --> 01:00:12,570 >> ZIELGRUPPE: Könnten wir nur cop und tun hashtag 1135 01:00:12,570 --> 01:00:14,955 durch die absolut jeder Buchstabe in dem wir je 1136 01:00:14,955 --> 01:00:17,340 wie auf alle Fragen gesehen? 1137 01:00:17,340 --> 01:00:18,320 >> PROFESSOR: Sie konnte. 1138 01:00:18,320 --> 01:00:20,361 Ich weiß nicht, wie glücklich wir werden in die Besoldungsgruppe sein 1139 01:00:20,361 --> 01:00:25,090 dass quiz, wenn jeder Teil des Codes ist doppelt so lang, wie es sein muss. 1140 01:00:25,090 --> 01:00:27,200 Ich weiß es nicht, wir könnten nehmen Sie einen Punkt für Stil. 1141 01:00:27,200 --> 01:00:28,790 Aber theoretisch Ihren Code wäre richtig. 1142 01:00:28,790 --> 01:00:30,915 Euch könnte cop out und nur enthalten alles, was. 1143 01:00:30,915 --> 01:00:32,044 Das ist auch in Ordnung, yeah. 1144 01:00:32,044 --> 01:00:32,960 ZIELGRUPPE: [unverständlich]. 1145 01:00:32,960 --> 01:00:33,270 PROFESSOR: Ja. 1146 01:00:33,270 --> 01:00:34,900 Ich würde vorschlagen, nicht zu tun, dass, obwohl. 1147 01:00:34,900 --> 01:00:35,505 Ja. 1148 01:00:35,505 --> 01:00:36,130 ZIELGRUPPE: Kühle. 1149 01:00:36,130 --> 01:00:36,620 PROFESSOR: Gute Frage. 1150 01:00:36,620 --> 01:00:37,480 Publikum: So, das schlimmste Szenario. 1151 01:00:37,480 --> 01:00:38,563 PROFESSOR: Der schlimmste Fall. 1152 01:00:38,563 --> 01:00:40,350 Wenn Sie völlig vergessen, Sie konnten das tun. 1153 01:00:40,350 --> 01:00:40,850 Ja. 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> Yep, ist der Code recht. 1156 01:00:45,400 --> 01:00:49,176 Früher habe ich n anstelle der Zählung aber, Sie wissen, was auch immer Ihr Boot schwimmt. 1157 01:00:49,176 --> 01:00:51,092 ZIELGRUPPE: Warten Sie, so dass wir müsste nicht Hashtag 1158 01:00:51,092 --> 01:00:53,460 gehören, weil wir beginnend an der int? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> PROFESSOR: Ja, ich habe angenommen, dass wurden wir gebeten, die Funktion zu schreiben. 1161 01:00:59,924 --> 01:01:02,340 Wenn Sie sicher sein wollen, können Sie könnte wahrscheinlich hat es dort. 1162 01:01:02,340 --> 01:01:05,650 Aber ich habe nicht die Mühe, ja. 1163 01:01:05,650 --> 01:01:09,919 >> Ich weiß nicht einmal, wenn Sie muss jede Bibliothek für diese. 1164 01:01:09,919 --> 01:01:12,710 Da Sie nicht wirklich Druck aus nichts oder etwas, nicht wahr? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 Ja, ich weiß nicht, ob Sie brauchen eine Bibliothek. 1167 01:01:19,568 --> 01:01:22,400 >> OK. 1168 01:01:22,400 --> 01:01:26,020 Dies ist auch ein wenig entlang die Zeilen von Speichermanipulation. 1169 01:01:26,020 --> 01:01:27,400 Diese Art von etwas schwierig. 1170 01:01:27,400 --> 01:01:28,960 Denk darüber nach. 1171 01:01:28,960 --> 01:01:30,580 Sie haben eine Funktion namens func. 1172 01:01:30,580 --> 01:01:33,570 Ich könnte es genannt haben was auch immer, aber ich wählen, um es func zu nennen. 1173 01:01:33,570 --> 01:01:36,000 Ich habe es über meinem Haupt. 1174 01:01:36,000 --> 01:01:39,790 Denken Sie daran, Sie haben wollen eine Funktion nach Ihrem Haupt, 1175 01:01:39,790 --> 01:01:42,370 Sie sicherstellen, dass Sie wollen, umfassen den Prototyp der Spitze. 1176 01:01:42,370 --> 01:01:45,750 >> Aber in diesem Fall ist es so kurz war daß ich fühlte, dass ich konnte einfach 1177 01:01:45,750 --> 01:01:47,260 schließen sie oben auf dem Haupt. 1178 01:01:47,260 --> 01:01:51,170 Ich brauchte nicht um den Prototyp zu haben, weil es oben schon geschrieben. 1179 01:01:51,170 --> 01:01:55,430 Also alles, was ich in meinem Hauptfunktion zu tun schafft ganze Zahl x gleich 10 ist. 1180 01:01:55,430 --> 01:02:00,490 Ich rufe meine func Funktion, und dann Druck bis etwas. 1181 01:02:00,490 --> 01:02:02,840 >> Und dann ist das eigentlich welche func tut. 1182 01:02:02,840 --> 01:02:04,340 Ihr Jungs wollen durch diese denken. 1183 01:02:04,340 --> 01:02:05,423 Denn es ist ein bisschen schwierig. 1184 01:02:05,423 --> 01:02:07,220 Es ist sehr, sehr schwierig, eigentlich. 1185 01:02:07,220 --> 01:02:09,549 Denken Sie über, was diese Programm wäre Ausgeben. 1186 01:02:09,549 --> 01:02:10,840 Ich gebe Ihnen Jungs zwei Minuten. 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> Gute Gespräche? 1189 01:03:37,891 --> 01:03:38,853 >> ZIELGRUPPE: Ja. 1190 01:03:38,853 --> 01:03:39,815 >> PROFESSOR: Ja. 1191 01:03:39,815 --> 01:03:42,220 In Ordnung, das ist so tricky für einen Grund. 1192 01:03:42,220 --> 01:03:44,845 Und deshalb wollte ich bringen dies um alle Blicke auf sich. 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 Will jemand mir geben ein Vorschlag, ein Versuch? 1195 01:03:51,147 --> 01:03:52,230 Was würde das ausdrucken? 1196 01:03:52,230 --> 01:03:53,930 Völlig in Ordnung, wenn Sie sich irren. 1197 01:03:53,930 --> 01:03:55,619 Ja? 1198 01:03:55,619 --> 01:03:59,483 >> Publikum: Ich denke, es ist 100 und dann 10 auf zwei getrennten Leitungen. 1199 01:03:59,483 --> 01:04:00,940 >> PROFESSOR: Und ein 10? 1200 01:04:00,940 --> 01:04:03,154 Hat jemand irgendwelche anderen Vermutungen? 1201 01:04:03,154 --> 01:04:04,150 Ja? 1202 01:04:04,150 --> 01:04:09,040 >> ZIELGRUPPE: Vielleicht nur 10, weil func wird nichts zurückkehrt? 1203 01:04:09,040 --> 01:04:11,610 >> PROFESSOR: OK, so dass wir haben Vermutung Nummer eins 1204 01:04:11,610 --> 01:04:14,990 ist, dass Vermutung Nummer zwei ist gerade dabei, aus 10 zu drucken. 1205 01:04:14,990 --> 01:04:17,623 Hat jemand irgendwelche anderen Vermutungen? 1206 01:04:17,623 --> 01:04:19,654 OK. 1207 01:04:19,654 --> 01:04:21,070 Also lassen Sie uns gehen durch diese, nicht wahr? 1208 01:04:21,070 --> 01:04:23,903 Immer, wenn Sie ein Stück Code zu bekommen, nicht nur es zu betrachten und werden wie, 1209 01:04:23,903 --> 01:04:25,060 Ah, das ist so viel Zeug! 1210 01:04:25,060 --> 01:04:26,460 Ich bin so verwirrt! 1211 01:04:26,460 --> 01:04:28,220 Wie, beruhigen Sie sich nach unten. 1212 01:04:28,220 --> 01:04:31,602 Genau wissen, dass Sie konnte einfach schauen Sie durch Code Zeile für Zeile. 1213 01:04:31,602 --> 01:04:32,310 Das ist alles, es ist. 1214 01:04:32,310 --> 01:04:33,840 Es ist wie ein Buch zu lesen. 1215 01:04:33,840 --> 01:04:38,000 >> Also mit einer beliebigen Funktion, wir beginnen immer am wichtigsten. 1216 01:04:38,000 --> 01:04:40,860 So dass wir zu gehen beginnen bei int main Leere, 1217 01:04:40,860 --> 01:04:43,010 sogar das Programm bereits heruntergekommen, nicht wahr? 1218 01:04:43,010 --> 01:04:45,070 Beginnen Sie an im Haupt nichtig. 1219 01:04:45,070 --> 01:04:48,030 Int x gleich 10 ist. 1220 01:04:48,030 --> 01:04:50,400 >> Also werde ich diese löschen. 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 Ich gehe, um den Speicher zu zeichnen, nur damit du Jungs können Art zu sehen, was passiert. 1223 01:04:58,470 --> 01:05:02,190 >> Denken Sie daran, hier unten haben wir unsere Stack? 1224 01:05:02,190 --> 01:05:05,810 Hier oben haben wir unsere Haufen irgendwo hier oben. 1225 01:05:05,810 --> 01:05:07,470 Stapel wächst, nicht wahr? 1226 01:05:07,470 --> 01:05:10,150 Und innerhalb des Stapels, müssen Sie Netzfunktion sowie 1227 01:05:10,150 --> 01:05:12,230 alle Netz lokalen Variablen. 1228 01:05:12,230 --> 01:05:14,310 >> Also hier, int x gleich 10. 1229 01:05:14,310 --> 01:05:17,670 In unserem Hauptfunktion sind wir Erstellen einer Variable namens x. 1230 01:05:17,670 --> 01:05:20,590 Wir setzen, dass gleich 10. 1231 01:05:20,590 --> 01:05:24,200 Hier finden Sie einige x hast, und du bist Einstellung, die in Höhe von 10, rechts, 1232 01:05:24,200 --> 01:05:25,400 im Haupt. 1233 01:05:25,400 --> 01:05:27,430 Jeder gut? 1234 01:05:27,430 --> 01:05:28,070 >> Funktion. 1235 01:05:28,070 --> 01:05:30,330 So, jetzt, in unserem Haupt Funktion, wir fordern 1236 01:05:30,330 --> 01:05:31,810 die Funktion, die wir oben geschrieben habe. 1237 01:05:31,810 --> 01:05:34,550 Also werden wir jetzt geben Sie die zweite Funktion. 1238 01:05:34,550 --> 01:05:40,120 Wir werden zu einem anderen erstellen Variable int x = 100. 1239 01:05:40,120 --> 01:05:42,410 Was hier geschieht in dem Stapel? 1240 01:05:42,410 --> 01:05:46,980 Was passiert, wenn Sie anrufen ein Funktion, die neue Variablen erstellt? 1241 01:05:46,980 --> 01:05:50,038 Was hier passiert, bei dem Stapel? 1242 01:05:50,038 --> 01:05:52,134 >> ZIELGRUPPE: [unverständlich] Pfähle auf? 1243 01:05:52,134 --> 01:05:52,800 PROFESSOR: Ja. 1244 01:05:52,800 --> 01:05:54,050 So ist es eigentlich eine Kopie. 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 Und es Art von Pfählen an der Spitze. 1247 01:05:57,740 --> 01:06:00,700 Denken Sie an die stack-- ein Stapel Bücher, einen Stapel von etwas. 1248 01:06:00,700 --> 01:06:06,520 Piles auf, zuerst im letzten out, last in, first out. 1249 01:06:06,520 --> 01:06:08,471 >> Also, es wird ein x Sie hier erstellen. 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> Das wird haben Alle funcs Variablen. 1252 01:06:14,450 --> 01:06:14,950 Groß. 1253 01:06:14,950 --> 01:06:20,980 So, jetzt haben wir zwei verschiedene x, wonach sind zwei sehr verschiedene Dinge. 1254 01:06:20,980 --> 01:06:24,470 Dann werden wir zu drucken aus dem ganze Zahl von x. 1255 01:06:24,470 --> 01:06:26,430 Also lassen Sie ausdrucken 100, oder? 1256 01:06:26,430 --> 01:06:29,389 Denn hier ist es 100. 1257 01:06:29,389 --> 01:06:31,680 Also das ist das erste, was , dass es geht, um auszudrucken. 1258 01:06:31,680 --> 01:06:35,710 Da diese Funktion nichts zurückgibt, jetzt, dass Funktion, die Linie in Haupt 1259 01:06:35,710 --> 01:06:37,070 erledigt. 1260 01:06:37,070 --> 01:06:39,160 Jeder gut mit mir so weit? 1261 01:06:39,160 --> 01:06:43,034 >> So sind wir nun durch zwei von der drei Linien unserer Hauptfunktion. 1262 01:06:43,034 --> 01:06:44,450 Jetzt sind wir auf die dritte Zeile gehen. 1263 01:06:44,450 --> 01:06:46,350 Wir werden printf. 1264 01:06:46,350 --> 01:06:48,222 Was ist das x im Haupt? 1265 01:06:48,222 --> 01:06:49,263 Was soll das darstellen? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> Welchen Wert x ist jetzt? 1268 01:06:54,280 --> 01:06:55,220 >> ZIELGRUPPE: 100. 1269 01:06:55,220 --> 01:06:56,799 >> PROFESSOR: Es ist 100? 1270 01:06:56,799 --> 01:06:57,590 ZIELGRUPPE: Noch 10. 1271 01:06:57,590 --> 01:06:58,878 PROFESSOR: Noch 10. 1272 01:06:58,878 --> 01:07:00,870 Ja. 1273 01:07:00,870 --> 01:07:06,810 Denn denken Sie daran, innerhalb von unsere func, x gleich 100. 1274 01:07:06,810 --> 01:07:09,690 Aber wenn wir wieder zurück unsere Hauptaufgabe, 1275 01:07:09,690 --> 01:07:12,440 diese Variable wird in eine gespeicherte anderen Ort auf unserem Stack. 1276 01:07:12,440 --> 01:07:16,250 >> So, jetzt müssen wir wieder auf dem Sprung Hauptstapel, Netz lokalen Variablen. 1277 01:07:16,250 --> 01:07:18,460 Und hier x gleich 10 ist. 1278 01:07:18,460 --> 01:07:20,300 Und so werden wir aus 10 zu drucken. 1279 01:07:20,300 --> 01:07:22,530 >> So war sie absolut Recht. 1280 01:07:22,530 --> 01:07:25,053 Wir werden das haben Leistung von 100 und 10. 1281 01:07:25,053 --> 01:07:25,553 Ja? 1282 01:07:25,553 --> 01:07:28,700 Publikum: Wenn Sie malloc, ist es die Heap oder der Stapel, die [unverständlich] ist? 1283 01:07:28,700 --> 01:07:31,950 PROFESSOR: Wenn Sie malloc, Sie nehmen Speicher aus dem Heap sind 1284 01:07:31,950 --> 01:07:32,830 und verteilenden. 1285 01:07:32,830 --> 01:07:34,950 So dass Sie nicht haben, mit Zohan an irgendetwas davon. 1286 01:07:34,950 --> 01:07:38,100 Also ich denke, das größere Lieferservice Hier ist die so genannte Umfang. 1287 01:07:38,100 --> 01:07:39,650 >> Für diejenigen unter Ihnen, die sich waren die Überprüfung Sitzung gestern Abend, 1288 01:07:39,650 --> 01:07:41,080 wir unterhielten uns kurz darüber. 1289 01:07:41,080 --> 01:07:45,380 Scope definiert, wie und Wenn Ihre Variablen existieren. 1290 01:07:45,380 --> 01:07:48,050 Oder innerhalb, was Rahmen tun Sie Ihre Variablen existieren. 1291 01:07:48,050 --> 01:07:51,690 >> So ziemlich die Faustregel in der Regel ist Ihr variables--, wenn Sie sie erstellen 1292 01:07:51,690 --> 01:07:56,660 in geschweiften braces-- sie existieren Nur innerhalb dieser geschweiften Klammern. 1293 01:07:56,660 --> 01:08:00,312 >> So zum Beispiel in unserer Funktion func finden Sie diese beiden Klammern. 1294 01:08:00,312 --> 01:08:02,020 Wenn Sie erstellen etwas nach innen von ihm, 1295 01:08:02,020 --> 01:08:06,500 Chancen sind alles, was Sie tun, ist die Schaffung eines Stapels und Speichern, dass es. 1296 01:08:06,500 --> 01:08:07,430 Das Gleiche gilt im Haupt. 1297 01:08:07,430 --> 01:08:09,950 Das ist nur im Inneren des Haupt gespeichert. 1298 01:08:09,950 --> 01:08:13,560 >> Auch Sie wollen sehr, sehr vorsichtig hier. 1299 01:08:13,560 --> 01:08:18,310 Da Rahmen verleiht auch sich verschiedene Beispiele. 1300 01:08:18,310 --> 01:08:25,950 So zum Beispiel ein für Schleife für int i gleich 0 ist. 1301 01:08:25,950 --> 01:08:28,460 Ich weniger als, ich weiß nicht, 10. 1302 01:08:28,460 --> 01:08:32,111 I plus plus. 1303 01:08:32,111 --> 01:08:34,560 Und Sie Code innerhalb der es hast, nicht wahr? 1304 01:08:34,560 --> 01:08:38,830 >> Woher kommt diese Variable, i, eigentlich nur existieren? 1305 01:08:38,830 --> 01:08:40,510 Nur innerhalb Ihres for-Schleife. 1306 01:08:40,510 --> 01:08:43,640 Also ich wette, viele von euch Jungs haben wahrscheinlich begegnet diesen Fehler, wenn 1307 01:08:43,640 --> 01:08:45,930 Sie Programme zu tun in Ihrem psets. 1308 01:08:45,930 --> 01:08:49,990 Wie viele von euch haben versucht, ich benutze außerhalb einer for-Schleife und hatte einen Fehler entdeckt? 1309 01:08:49,990 --> 01:08:53,310 Wie einer nicht referenzierten Integer oder etwas ähnliches? 1310 01:08:53,310 --> 01:08:56,069 >> Der Grund, warum das passiert Denn hier sind Sie 1311 01:08:56,069 --> 01:08:59,109 etwas zu schaffen, dass nur existiert in Ihrem for-Schleife. 1312 01:08:59,109 --> 01:09:01,972 Und wenn Sie versuchen, es zu benutzen, tut mir nicht tatsächlich außerhalb von ihm existiert. 1313 01:09:01,972 --> 01:09:04,930 Also im Grunde ein Computer sagen, ich weiß nicht, was du redest. 1314 01:09:04,930 --> 01:09:08,689 Alles was ich weiß ist, dass ein i war Hier, aber jetzt nicht mehr. 1315 01:09:08,689 --> 01:09:12,580 >> Also, wenn ich einen erstellen for-Schleife im Inneren, nicht wahr? 1316 01:09:12,580 --> 01:09:19,080 Und ich werde zu einem anderen zu schaffen, wie int j, und haben es zu tun, was auch immer. 1317 01:09:19,080 --> 01:09:23,689 Und Sie haben ein Code innerhalb der haben dass Schleife, j gibt es nur hier. 1318 01:09:23,689 --> 01:09:26,029 Aber das existiert auch im i. 1319 01:09:26,029 --> 01:09:29,310 Und so j existiert nur innerhalb dieser for-Schleife, 1320 01:09:29,310 --> 01:09:33,850 wohin i existiert in der ganzen Sache. 1321 01:09:33,850 --> 01:09:34,500 >> Jeder klar? 1322 01:09:34,500 --> 01:09:37,416 Das Gleiche gilt für bedingte Anweisungen wenn Sie etwas erstellen möchten. 1323 01:09:37,416 --> 01:09:40,390 Das Gleiche gilt für while-Schleifen, wenn Sie etwas erstellen möchten. 1324 01:09:40,390 --> 01:09:42,390 Das ist etwas, zu sein sehr, sehr vorsichtig. 1325 01:09:42,390 --> 01:09:45,681 Also das war eine wirklich gute Problem in der Sinne, dass es zwei Dinge gezeigt. 1326 01:09:45,681 --> 01:09:47,160 Es zeigte erste, Umfang. 1327 01:09:47,160 --> 01:09:49,550 Und es zeigte auch die Speicherzuweisung. 1328 01:09:49,550 --> 01:09:54,130 Weil ihr Jungs sollten wissen, dass Funktionen wachsen nach oben im Stapel. 1329 01:09:54,130 --> 01:09:56,710 Und dass, wenn Sie anrufen Funktionen, die Sie erstellen 1330 01:09:56,710 --> 01:09:59,060 im wesentlichen ein neuer Stapel an Speicher. 1331 01:09:59,060 --> 01:10:02,100 Das ist sehr verschieden von was Ihr Netz-Speicher ist. 1332 01:10:02,100 --> 01:10:03,300 Ja. 1333 01:10:03,300 --> 01:10:03,800 Puh! 1334 01:10:03,800 --> 01:10:05,470 Jeder OK dazu? 1335 01:10:05,470 --> 01:10:06,750 Das war verwirrend. 1336 01:10:06,750 --> 01:10:09,380 Sehr gute Themen über zu gehen, weil Sie wahrscheinlich 1337 01:10:09,380 --> 01:10:12,255 geht etwas schwierig zu bekommen Dinge wie, dass auf dem Quiz. 1338 01:10:12,255 --> 01:10:13,350 Ja. 1339 01:10:13,350 --> 01:10:13,850 Cool. 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 Ich werde setzen Sie 100 auf der einen Leitung und 10 auf der anderen. 1342 01:10:18,430 --> 01:10:21,468 Ja, sehr gut. 1343 01:10:21,468 --> 01:10:26,350 >> OK, jetzt euch erhalten die Möglichkeit, die Reisebüros zu sein. 1344 01:10:26,350 --> 01:10:30,600 Sie erhalten zu beantworten alle die schöne E-Mails, die ich manchmal. 1345 01:10:30,600 --> 01:10:34,290 >> Also, liebe Andi, ich sehe, ich glaube, so etwas ist falsch mit meinem Compiler. 1346 01:10:34,290 --> 01:10:37,910 Ich bin mir sicher, dass mein Code korrekt ist, aber ich erhalte immer einen Segmentation Fault 1347 01:10:37,910 --> 01:10:39,074 jedes Mal wenn ich laufen. 1348 01:10:39,074 --> 01:10:39,740 Was ist los? 1349 01:10:39,740 --> 01:10:42,844 Bitte helfen Sie, viel Liebe. 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> Wenn Sie Jungs haben so etwas wie dass wie würden Sie reagieren? 1352 01:10:49,410 --> 01:10:51,860 Dies sind tatsächlich sehr häufig Fragen wir werden Sie fragen. 1353 01:10:51,860 --> 01:10:54,090 Ist, wenn, wir geben Ihnen eine Szenario wir uns geben, werde 1354 01:10:54,090 --> 01:10:56,350 Ihre beste Vermutung auf, was los ist. 1355 01:10:56,350 --> 01:11:00,710 Wer noch einen Stich an, was los ist? 1356 01:11:00,710 --> 01:11:02,654 Ja? 1357 01:11:02,654 --> 01:11:06,056 >> ZIELGRUPPE: Vielleicht dereferenziert die null, so etwas wie die Zeiger 1358 01:11:06,056 --> 01:11:08,924 wird auf etwas null zeigt. 1359 01:11:08,924 --> 01:11:11,590 PROFESSOR: Ja, das wäre ein sein Beispiel, wenn das passieren würde. 1360 01:11:11,590 --> 01:11:14,467 Aber was ist das größere Bild von dem, was ist denn hier los? 1361 01:11:14,467 --> 01:11:17,050 Publikum: Ist es Sie versuchen, auf den Speicher zuzugreifen, dass Sie nicht 1362 01:11:17,050 --> 01:11:18,175 soll den Zugang zu haben? 1363 01:11:18,175 --> 01:11:19,200 PROFESSOR: Genau. 1364 01:11:19,200 --> 01:11:24,800 Also denken Sie an eine seg Fehler, ein Off Grenzen, eingeschränkten Bereich im Speicher 1365 01:11:24,800 --> 01:11:27,780 dass Sie sollten nicht berühren. 1366 01:11:27,780 --> 01:11:31,670 >> So ziemlich genau, wenn Sie versuchen, wie beispiels index--, 1367 01:11:31,670 --> 01:11:34,110 Sie erklärte, habe ein Array von null bis neun. 1368 01:11:34,110 --> 01:11:37,360 Aber Sie versuchen, die 10. zu berühren Wert, haben Sie keinen Zugriff auf das. 1369 01:11:37,360 --> 01:11:38,694 Weil Sie es nicht erklärt haben. 1370 01:11:38,694 --> 01:11:40,943 Und damit Ihr Computer wird an, dass wie sein aussehen, 1371 01:11:40,943 --> 01:11:43,440 uh oh, Sie versuchen zu gehen außerhalb der Grenzen eines Index. 1372 01:11:43,440 --> 01:11:45,270 Ich werde dir geben einen Segmentation Fault. 1373 01:11:45,270 --> 01:11:46,590 >> Denken Sie an, wie Segment, nicht wahr? 1374 01:11:46,590 --> 01:11:49,665 Ein zusätzliches Segment, ist die Schuld wenn Sie versuchen, etwas zu brechen 1375 01:11:49,665 --> 01:11:50,790 und Sie sollten nicht da sein. 1376 01:11:50,790 --> 01:11:53,660 Segmentation fault ist zu jeder Zeit Sie versuchen, Dinge zu berühren 1377 01:11:53,660 --> 01:11:54,970 dass Sie sollten nicht berühren. 1378 01:11:54,970 --> 01:11:56,815 >> So bekanntesten Beispiele sind ein Index. 1379 01:11:56,815 --> 01:11:58,940 Natürlich, wenn Sie versuchen, zu berühren, das war null, 1380 01:11:58,940 --> 01:12:00,220 das würde auch so gut funktionieren. 1381 01:12:00,220 --> 01:12:02,300 Wenn Sie den Mauszeiger versuchte, Berühren Sie Dinge, die sich nicht berühren sollte, 1382 01:12:02,300 --> 01:12:03,730 das könnte auch so gut funktionieren. 1383 01:12:03,730 --> 01:12:07,120 Am typischsten du wirst Dies in einem Array. 1384 01:12:07,120 --> 01:12:07,740 Jeder gut? 1385 01:12:07,740 --> 01:12:10,374 >> ZIELGRUPPE: Also, wenn Sie wollen, zum 10. Punkt zugreifen 1386 01:12:10,374 --> 01:12:12,290 und es gibt nur eine Grenze neun oder so etwas. 1387 01:12:12,290 --> 01:12:13,160 >> PROFESSOR: Ja, genau. 1388 01:12:13,160 --> 01:12:13,660 Ziemlich. 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 Cool. 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> Liebe Andi. 1393 01:12:19,920 --> 01:12:23,440 So dass wir diese wunderbare habe Dinge genannt Sorten. 1394 01:12:23,440 --> 01:12:25,472 Wenn Merge sort-- wie wir Säge Beispiel, wenn 1395 01:12:25,472 --> 01:12:27,180 David tat die ganze Ding in class--, warum, 1396 01:12:27,180 --> 01:12:29,760 wenn es so viel schneller als keines der anderen Art, 1397 01:12:29,760 --> 01:12:33,310 warum haben wir einmal die Mühe zu wissen eine der anderen Arten? 1398 01:12:33,310 --> 01:12:35,100 >> Was ist diese Frage wirklich fragen Sie? 1399 01:12:35,100 --> 01:12:36,659 Was ist in der Drei word-- 1400 01:12:36,659 --> 01:12:37,950 Publikum: Was ist der Trade-off? 1401 01:12:37,950 --> 01:12:38,530 PROFESSOR: Genau. 1402 01:12:38,530 --> 01:12:39,946 Das ist, was die Frage bittet. 1403 01:12:39,946 --> 01:12:43,682 Was ist der Trade-off zwischen Merge sort Verse anderer Art? 1404 01:12:43,682 --> 01:12:45,850 >> ZIELGRUPPE: Nimmt Speicher, oder? 1405 01:12:45,850 --> 01:12:47,720 >> PROFESSOR: Sie benötigen zu erklären, dass ein bisschen mehr? 1406 01:12:47,720 --> 01:12:49,490 Lassen Sie uns zunächst erklären, Merge Speicher. 1407 01:12:49,490 --> 01:12:50,970 Wie funktioniert Merge sort zu arbeiten? 1408 01:12:50,970 --> 01:12:55,220 >> Publikum: So funktioniert es durch Dividieren alles in Halb 1409 01:12:55,220 --> 01:13:00,660 und dann zusammen setzen sie und Neuzuweisung es in Ordnung ist, 1410 01:13:00,660 --> 01:13:02,862 wie jedes Mal, wenn Sie verschmelzen die Sätze. 1411 01:13:02,862 --> 01:13:03,820 PROFESSOR: Ziemlich viel. 1412 01:13:03,820 --> 01:13:06,861 So kann ich diese herauszuziehen, aber es wäre nehmen Sie mir fünf Minuten, um es herauszuziehen. 1413 01:13:06,861 --> 01:13:10,220 Blicken zurück auf den Abschnitt Dias wo wir abgedeckt Merge sort. 1414 01:13:10,220 --> 01:13:10,790 Genau. 1415 01:13:10,790 --> 01:13:13,406 >> So ist die Art und Weise Merge sort Werke ist es Dinge, teilt in der Hälfte, 1416 01:13:13,406 --> 01:13:15,780 und dann sieht es gerade am ersten Werte aller von ihnen 1417 01:13:15,780 --> 01:13:17,000 und sortiert nur das. 1418 01:13:17,000 --> 01:13:20,364 Kontinuierlich schafft neue Arrays und rückt die Dinge mehr und mehr um. 1419 01:13:20,364 --> 01:13:23,030 Während also das ist wirklich, wirklich schnell, weil it's-- Sie wissen, 1420 01:13:23,030 --> 01:13:25,380 eine binäre Suche ist n log n. 1421 01:13:25,380 --> 01:13:27,880 Sie erstellen so viele verschiedenen Arrays, die Sie 1422 01:13:27,880 --> 01:13:29,700 mit eine riesige Menge an Speicher. 1423 01:13:29,700 --> 01:13:33,080 Und so, während es ist schneller, der Trade-off hier ist, dass Sie mehr Speicher sind. 1424 01:13:33,080 --> 01:13:38,490 >> Und so, Hauch, sortiert und Suchanfragen wurden mehr in diesem Jahr eine Menge abgedeckt 1425 01:13:38,490 --> 01:13:41,610 als sie es in früheren Jahren gewesen. 1426 01:13:41,610 --> 01:13:45,100 Ihr solltet das sehen entsprechend am Quiz reflektiert. 1427 01:13:45,100 --> 01:13:49,160 Ich würde auf jeden Fall verbringen Sie Zeit gehen über das, was all die verschiedenen Arten 1428 01:13:49,160 --> 01:13:52,320 sind, wie binäre Suche, wie lineare Suche Arbeit. 1429 01:13:52,320 --> 01:13:54,750 Wie Sie vielleicht Pseudo Code diejenigen heraus. 1430 01:13:54,750 --> 01:13:55,950 Was sind die Laufzeiten? 1431 01:13:55,950 --> 01:13:59,210 So etwas wie Laufzeiten ist sehr einfach, auf ein Notenblatt notieren, 1432 01:13:59,210 --> 01:13:59,710 Recht? 1433 01:13:59,710 --> 01:14:01,420 >> Es ist wirklich schwer, wenn Sie in der Mitte der Test 1434 01:14:01,420 --> 01:14:02,390 und Sie haben, um das herauszufinden. 1435 01:14:02,390 --> 01:14:03,160 Kopieren Sie es nach unten. 1436 01:14:03,160 --> 01:14:05,550 Ich garantiere Ihnen, Sie gehen zu müssen, um das zu wissen. 1437 01:14:05,550 --> 01:14:06,860 Was sind die Zielkonflikte? 1438 01:14:06,860 --> 01:14:10,064 Worst case, best-Case-Szenarien für alle von ihnen, sehr kennenzulernen. 1439 01:14:10,064 --> 01:14:10,564 Ja? 1440 01:14:10,564 --> 01:14:12,730 >> Publikum: Müssen wir wissen, wie man Merge Bankleitzahl? 1441 01:14:12,730 --> 01:14:15,470 Wie, müssen wir erinnere mich an die rekursive? 1442 01:14:15,470 --> 01:14:18,950 >> PROFESSOR: Ich bezweifle es stark, gerade weil es wie ziemlich kompliziert. 1443 01:14:18,950 --> 01:14:22,282 Aber es kann nicht durchführbar sein, wenn wir bitten Sie, Pseudo es verwenden aus. 1444 01:14:22,282 --> 01:14:22,781 Ja. 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> Yep, OK, eine weitere. 1447 01:14:29,170 --> 01:14:31,387 Dies kann bis in gekommen sind Sie letzte Stück in ein wenig. 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 Ja? 1450 01:14:43,090 --> 01:14:44,930 Haben alle das gehört? 1451 01:14:44,930 --> 01:14:48,360 >> OK, so ziemlich der erste alle, welche Art von Programm, 1452 01:14:48,360 --> 01:14:51,000 würde Ihnen eine Ausgabe wie diese? 1453 01:14:51,000 --> 01:14:54,350 Denken Sie daran, wir werden Sie aufgefordert, zu lernen, Diese neue Art von Debugging-Tool? 1454 01:14:54,350 --> 01:14:57,340 Wie hieß es? 1455 01:14:57,340 --> 01:14:59,460 Valgrind, rechts 1456 01:14:59,460 --> 01:15:02,600 >> Es war ein Programm, in dem Sie könnte so nennen 1457 01:15:02,600 --> 01:15:05,940 verfolgen alle die Speicher Sie Verwendung in Ihrem Programm und los war. 1458 01:15:05,940 --> 01:15:11,090 Also, wenn Sie etwas haben, wie, auf jeden Fall verloren, 40 Bytes in einem Block. 1459 01:15:11,090 --> 01:15:14,870 Wahrscheinlich sind Sie nicht Erinnern, um es zu befreien. 1460 01:15:14,870 --> 01:15:18,710 Denn wenn Sie mit Byte Speicher sind, das bedeutet, Sie haben, dass der Speicher zugegriffen wird, 1461 01:15:18,710 --> 01:15:20,240 aber Sie sind nicht in der Lage, frei zu haben. 1462 01:15:20,240 --> 01:15:21,948 Also Sie machen wollen sicher, dass Sie auch 1463 01:15:21,948 --> 01:15:31,420 Verwendung versenden-- das ist eine function-- alle frei 1464 01:15:31,420 --> 01:15:34,930 des Speichers durch malloc neu zugeordnet. 1465 01:15:34,930 --> 01:15:35,500 >> Cool. 1466 01:15:35,500 --> 01:15:37,140 Also dieser Folie, werde ich es haben bis. 1467 01:15:37,140 --> 01:15:41,050 Es ist überall in vielen Vorträge, in einer Menge von Abschnitt gleitet. 1468 01:15:41,050 --> 01:15:44,254 Sie wollen sicherstellen, wirklich Sie wissen nur, all dies. 1469 01:15:44,254 --> 01:15:47,170 Entweder in Ihrem Notizblatt oder wenn Sie möchte es zu merken, können Sie. 1470 01:15:47,170 --> 01:15:48,836 Das ist wirklich, wirklich, wirklich wichtig. 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> Auch eine sehr gute Frage, die wir stellen. 1473 01:15:56,890 --> 01:16:00,320 Warum ist Selection sort-- Blick auf Auswahl sort-- alle Laufzeiten 1474 01:16:00,320 --> 01:16:02,060 sind n quadriert. 1475 01:16:02,060 --> 01:16:06,714 Unabhängig davon, wie die Liste kommt Sie so, also warum ist Selection sort-- 1476 01:16:06,714 --> 01:16:08,630 Ich gebe Ihnen Kerle 30 Sekunde darüber nachdenken. 1477 01:16:08,630 --> 01:16:10,700 Da ist es irgendwie verwirrend. 1478 01:16:10,700 --> 01:16:12,710 Es beinhaltet einige begriffliche Denken. 1479 01:16:12,710 --> 01:16:16,470 Warum sollten die Laufzeiten der gleiche sein an sowohl die schlechtesten und besten Case-Szenarien? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> Ja? 1482 01:16:30,000 --> 01:16:38,084 >> Publikum: Da Auswahl Sortiert jeweils Position oder Platz in diesem kleinen Array 1483 01:16:38,084 --> 01:16:40,350 Ding oder was auch immer. 1484 01:16:40,350 --> 01:16:44,430 Also selbst im besten Fall, auch wenn es perfekt sortiert, 1485 01:16:44,430 --> 01:16:47,380 es wäre immer noch wie, OK, sein. 1486 01:16:47,380 --> 01:16:49,000 In meinem ersten Platz, den ich eine haben. 1487 01:16:49,000 --> 01:16:50,250 Und durch alle von ihnen zu gehen. 1488 01:16:50,250 --> 01:16:51,249 OK, ist einer der kleinsten. 1489 01:16:51,249 --> 01:16:53,053 Und dann geht es wieder und ist wie, OK, zwei 1490 01:16:53,053 --> 01:16:54,594 ist der kleinste aller Dinge. 1491 01:16:54,594 --> 01:16:56,804 Aber es muss noch überprüfen jede und jeder. 1492 01:16:56,804 --> 01:16:57,470 PROFESSOR: Ja. 1493 01:16:57,470 --> 01:17:00,490 So zum Beispiel, sagen wir einfach, Wir haben eine Liste, bereits sortiert, 1494 01:17:00,490 --> 01:17:03,390 ein Array 4.59. 1495 01:17:03,390 --> 01:17:07,100 Die Art und Weise, dass Selection Art ist, dass es durch geht, ist es diese beiden überprüft. 1496 01:17:07,100 --> 01:17:08,234 Dann überprüft er die beiden. 1497 01:17:08,234 --> 01:17:09,650 Und dann überprüft, und es überprüft. 1498 01:17:09,650 --> 01:17:13,285 Es hält die Überprüfung alle von ihnen, unabhängig davon, ob oder nicht 1499 01:17:13,285 --> 01:17:14,160 es ist eigentlich sortiert. 1500 01:17:14,160 --> 01:17:16,450 Denn das ist einfach die Art, wie die Art funktioniert. 1501 01:17:16,450 --> 01:17:19,530 >> Und so ist diese Frage ein bisschen wie eine konzeptionelle Frage, wir bitten. 1502 01:17:19,530 --> 01:17:21,430 Wo ersten, die Sie wissen, was Auswahl Sortiert 1503 01:17:21,430 --> 01:17:23,304 ist, rechts, zu können um die Frage zu beantworten. 1504 01:17:23,304 --> 01:17:26,200 Sie müssen in der Lage sein zu verstehen konzeptionell, was los ist. 1505 01:17:26,200 --> 01:17:30,760 Und dann kann man es anwenden und denken, OK lassen Sie uns einfach vorstellen schlimmsten Fall. 1506 01:17:30,760 --> 01:17:32,230 Sie sind alle in absteigender Reihenfolge. 1507 01:17:32,230 --> 01:17:33,290 Wie würde das beeinflusst? 1508 01:17:33,290 --> 01:17:34,650 >> Was, wenn es aufsteigender Reihenfolge? 1509 01:17:34,650 --> 01:17:35,640 Wenn es bereits sortiert? 1510 01:17:35,640 --> 01:17:37,240 Wie würde das die Laufzeiten auswirken? 1511 01:17:37,240 --> 01:17:40,270 Und dann Selection Art, werden Sie feststellen, dass es nicht wirklich wichtig. 1512 01:17:40,270 --> 01:17:43,500 Weil Sie die Überprüfung sind alle Werte unabhängig davon, was passiert. 1513 01:17:43,500 --> 01:17:45,810 >> Und so gut, Dinge zu erinnern. 1514 01:17:45,810 --> 01:17:50,290 Warum manche Arten unterscheiden sich von anderen und wie man am besten und den schlimmsten Fall 1515 01:17:50,290 --> 01:17:52,740 würden alle von ihnen beeinflussen. 1516 01:17:52,740 --> 01:17:56,700 >> Ich werde wirklich in Art getroffen denn das wird auf dem Quiz können. 1517 01:17:56,700 --> 01:17:57,199 Ja. 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 OK. 1520 01:18:01,320 --> 01:18:05,590 Es gibt 6 Minuten verlassen. 1521 01:18:05,590 --> 01:18:09,880 Ich kann drei Minuten Fragen. 1522 01:18:09,880 --> 01:18:12,290 Ich kann auch hängen, um für wie 20 Minuten nach Abschnitt 1523 01:18:12,290 --> 01:18:13,850 Wenn Sie Fragen und bitten möchten. 1524 01:18:13,850 --> 01:18:16,330 Hat jemand einfach nur wirklich kurz Fragen oder konzeptionelle Fragen 1525 01:18:16,330 --> 01:18:17,360 sie sind unklar, gerade jetzt? 1526 01:18:17,360 --> 01:18:17,832 Ja? 1527 01:18:17,832 --> 01:18:19,720 >> ZIELGRUPPE: Können Sie ein wenig sprechen Bit zu Bit-Operatoren? 1528 01:18:19,720 --> 01:18:20,280 >> PROFESSOR: Ja. 1529 01:18:20,280 --> 01:18:22,446 So Bit-Operatoren sind etwas, das Sie wahrscheinlich 1530 01:18:22,446 --> 01:18:24,170 vielleicht wollen einfach nur auf Ihrem Blatt setzen. 1531 01:18:24,170 --> 01:18:27,540 So quickly-- ich nicht will zu viel in die Tiefe gehen 1532 01:18:27,540 --> 01:18:31,164 weil Harvard, in ihrer Bewertung Sitzung, überdachte es ziemlich gut. 1533 01:18:31,164 --> 01:18:33,080 Bit-Operatoren, da ist fünf von ihnen, nicht wahr? 1534 01:18:33,080 --> 01:18:41,370 >> Es ist das, das x oder eine Funktion ist, gibt es Et-Zeichen, was ist das und. 1535 01:18:41,370 --> 01:18:44,050 Rohr, das das oder ist. 1536 01:18:44,050 --> 01:18:46,790 Und dann haben Sie die beiden haben verschiedene Arten von Verschiebungen. 1537 01:18:46,790 --> 01:18:50,610 >> Wenn ich Ihnen zwei Werte, wenn Ich gebe Ihnen, wie, eins und eins. 1538 01:18:50,610 --> 01:18:52,390 Was würde das zu beurteilen? 1539 01:18:52,390 --> 01:18:55,490 Wenn ich dir wahr und wahr, wahr ist? 1540 01:18:55,490 --> 01:18:56,930 Was ist wahr oder falsch? 1541 01:18:56,930 --> 01:18:57,830 Immer noch wahr, oder? 1542 01:18:57,830 --> 01:18:59,762 Da gibt es eine oder. 1543 01:18:59,762 --> 01:19:01,220 Wir werden höchstwahrscheinlich die Zahlen. 1544 01:19:01,220 --> 01:19:03,780 Also denken Sie daran, eins gleich wahr, gleich Null ist falsch. 1545 01:19:03,780 --> 01:19:07,407 Und wir könnte Ihnen diese Dinge und bitten Sie, uns zu sagen, was passiert. 1546 01:19:07,407 --> 01:19:10,240 Harvard deckt sie innerhalb der ersten 10 Minuten nach ihrer Studie Sitzung 1547 01:19:10,240 --> 01:19:11,230 wirklich, wirklich gut. 1548 01:19:11,230 --> 01:19:14,260 So euch machen wollen sicher, Sie blicken auf das. 1549 01:19:14,260 --> 01:19:16,387 >> ZIELGRUPPE: Ist pisa5 gehen auf das Quiz sein? 1550 01:19:16,387 --> 01:19:16,970 PROFESSOR: Nein 1551 01:19:16,970 --> 01:19:18,240 Noch nicht einmal an pisa5 schauen jetzt. 1552 01:19:18,240 --> 01:19:18,810 Es ist schwer. 1553 01:19:18,810 --> 01:19:22,830 Nur nicht einmal die Mühe Blick auf pisa5. 1554 01:19:22,830 --> 01:19:25,665 >> Da jedoch einige Hinweise und Anregungen, I 1555 01:19:25,665 --> 01:19:28,320 würde vorschlagen, Sie pisa5 starten sobald das Quiz ist vorbei. 1556 01:19:28,320 --> 01:19:30,319 Dies wird das härteste sein Woche, aber dann ihr Jungs 1557 01:19:30,319 --> 01:19:34,590 wird es auf den Hügeln weitergegeben von sanften grünen und Welpen, 1558 01:19:34,590 --> 01:19:36,115 und es ist in Ordnung. 1559 01:19:36,115 --> 01:19:39,810 >> Diese Klasse erhält signifikante einfacher nach dem fünften psoll. 1560 01:19:39,810 --> 01:19:41,560 ZIELGRUPPE: Bürozeiten sind Sonntag, Montag? 1561 01:19:41,560 --> 01:19:44,260 PROFESSOR: Ja, so wird der Bürozeiten der Sonntag auf Montag für die pset. 1562 01:19:44,260 --> 01:19:47,009 Öffnungszeiten heute Abend im wesentlichen wird nur eine Bewertung für das Quiz zu sein. 1563 01:19:47,009 --> 01:19:50,350 Wenn jemand zu kommen und fragen will, TAS eine Frage, wir werden da sein. 1564 01:19:50,350 --> 01:19:53,220 >> Ich werde vielleicht noch eine Frage zu nehmen wenn jemand eine Frage? 1565 01:19:53,220 --> 01:19:53,809 Ja? 1566 01:19:53,809 --> 01:19:55,850 Publikum: Wenn man Definition von Knoten, [unverständlich] 1567 01:19:55,850 --> 01:20:00,700 wenn Sie als nächstes sagen Knoten Sterne und dann, hat der Computer automatisch 1568 01:20:00,700 --> 01:20:03,610 zu verstehen, dass Sie die sich auf einem anderen Zeiger? 1569 01:20:03,610 --> 01:20:04,580 >> PROFESSOR: Nein 1570 01:20:04,580 --> 01:20:06,710 >> Publikum: Sie müssen relink es [unverständlich]? 1571 01:20:06,710 --> 01:20:09,270 >> PROFESSOR: Also im Grunde die Struktur eines Knotens ist, denken Sie daran, 1572 01:20:09,270 --> 01:20:12,620 es ist wie Sie den Knoten zu erstellen und dann haben Sie einen Zeiger namens nächsten. 1573 01:20:12,620 --> 01:20:14,630 Alles, was Sie tun, ist mit der Struktur gibt. 1574 01:20:14,630 --> 01:20:16,387 Sie müssen zuweisen dass irgendwo Zeiger. 1575 01:20:16,387 --> 01:20:18,470 Also die Rechner nicht wissen, was es noch zu tun. 1576 01:20:18,470 --> 01:20:20,250 Sie müssen tatsächlich zuweisen, wenn Sie erstellen Ihre verknüpften Liste. 1577 01:20:20,250 --> 01:20:22,170 Und das ist, was in erster Linie PSET 5 eingeschaltet. 1578 01:20:22,170 --> 01:20:24,106 Also keine Sorgen über jeder, dass gerade jetzt. 1579 01:20:24,106 --> 01:20:26,380 >> Publikum: So haben wir nicht brauchen, konzentrieren sich zu sehr auf die Link-Liste, nur 1580 01:20:26,380 --> 01:20:27,440 der allgemeine Begriff? 1581 01:20:27,440 --> 01:20:30,980 >> PROFESSOR: Just so ziemlich Stacks, Warteschlangen, Linklisten, Bäume, Hash-Tabellen. 1582 01:20:30,980 --> 01:20:33,639 Gerade in der Lage sein zu wissen, was sie sind. 1583 01:20:33,639 --> 01:20:35,680 Wir gehen nicht zu fragen, Sie etwas Bestimmtes gefallen 1584 01:20:35,680 --> 01:20:39,300 denn wir haben nicht wirklich getan ein pset, dass die Abdeckungen von alledem noch. 1585 01:20:39,300 --> 01:20:45,540 >> So in den letzten zwei Minuten vor Ich Ihnen frei, diesen Test zu töten. 1586 01:20:45,540 --> 01:20:49,370 Ziemlich viel, wie, denken Sie, wie weit euch in dieser Klasse kommen. 1587 01:20:49,370 --> 01:20:52,820 >> Ich erinnere mich, als zwei Wochen dieser Klasse, einige von euch 1588 01:20:52,820 --> 01:20:55,720 für drei Stunden schriftlich Wasser. 1589 01:20:55,720 --> 01:20:57,970 Wie lange würde es dauern, Jungs, um Wasser jetzt schreiben? 1590 01:20:57,970 --> 01:20:59,670 30 Sekunden, vielleicht? 1591 01:20:59,670 --> 01:21:01,810 Denken Sie darüber nach, wie viel euch gelernt habe. 1592 01:21:01,810 --> 01:21:04,320 CS ist ein wirklich, wirklich hart Thema. 1593 01:21:04,320 --> 01:21:06,190 Es gibt keinen Zweifel, dass. 1594 01:21:06,190 --> 01:21:09,160 Es ist schwer, das ist, warum niemand studiert es. 1595 01:21:09,160 --> 01:21:10,730 Es ist nur schwer. 1596 01:21:10,730 --> 01:21:11,650 Und es ist vollkommen in Ordnung. 1597 01:21:11,650 --> 01:21:14,150 >> Und ich bin wirklich stolz darauf, dass jeder hat es das machte weit. 1598 01:21:14,150 --> 01:21:16,380 Psets sind nicht einfach. 1599 01:21:16,380 --> 01:21:17,790 Sie nehmen eine Menge Zeit. 1600 01:21:17,790 --> 01:21:22,580 Ihr Jungs, ich werde nie zu fragen, die Sie schreiben das Spiel von 15 oder Vigenere auf der pset. 1601 01:21:22,580 --> 01:21:24,160 Keine Notwendigkeit, nur ausflippen darüber. 1602 01:21:24,160 --> 01:21:28,080 Alles, was wir hier testen ist zu bewerten, Ihre konzeptionellen Kenntnisse sowie 1603 01:21:28,080 --> 01:21:31,524 wie einige Ihrer grundlegenden Fertigkeiten der Codierung. 1604 01:21:31,524 --> 01:21:33,440 Der Test ist so ausgelegt wirklich eine Herausforderung. 1605 01:21:33,440 --> 01:21:36,180 Wie es ausgelegt ist für Sie nicht bekommen 100. 1606 01:21:36,180 --> 01:21:39,880 Es ist auch für Sie wahrscheinlich konzipiert nicht in der Lage, in 75 Minuten zu beenden. 1607 01:21:39,880 --> 01:21:41,995 Und das ist völlig in Ordnung. 1608 01:21:41,995 --> 01:21:42,870 Ich bin ein Student mich. 1609 01:21:42,870 --> 01:21:45,960 Ich weiß, ich hasse es, wenn ich zu Fuß aus einem Quiz, wie, scheiße sein. 1610 01:21:45,960 --> 01:21:47,044 Das war wirklich hart. 1611 01:21:47,044 --> 01:21:49,460 Wahrscheinlich, was zu gehen happen-- und das ist völlig in Ordnung, 1612 01:21:49,460 --> 01:21:50,751 Ich jetzt sage euch. 1613 01:21:50,751 --> 01:21:53,190 Die Mittel, über diese Dinge sind nicht hoch überhaupt. 1614 01:21:53,190 --> 01:21:55,360 >> Und für diejenigen unter Ihnen, habe immer, wie, 1615 01:21:55,360 --> 01:21:57,870 dritt auf Ihr Problem-Sets, das bedeutet nicht, du bist 1616 01:21:57,870 --> 01:21:59,536 gehen zu 60 Prozent in dieser Klasse zu bekommen. 1617 01:21:59,536 --> 01:22:01,440 Wenn Sie auf die zu 60% Quiz, das nicht 1618 01:22:01,440 --> 01:22:03,330 bedeutet, du bist zu gehen einen D in dieser Klasse. 1619 01:22:03,330 --> 01:22:05,740 Wir sehen, vor allem ich, für diejenigen unter Ihnen, in meinem Abschnitt, 1620 01:22:05,740 --> 01:22:07,406 Ich sehe, wie sehr euch alle arbeiten. 1621 01:22:07,406 --> 01:22:09,190 Und ich im Auge behalten, dass. 1622 01:22:09,190 --> 01:22:11,420 >> Ihr seid in Ordnung sein wird. 1623 01:22:11,420 --> 01:22:14,580 Es gibt keine institutionelle Gedächtnis Glück am Ende des Semesters. 1624 01:22:14,580 --> 01:22:16,840 Da alle Harvard Kinder erzählen ihre Freunde, oh, alles wird gut. 1625 01:22:16,840 --> 01:22:18,381 Niemand wird sagen euch, dass hier. 1626 01:22:18,381 --> 01:22:20,950 So, ich muss Ihnen sagen, dass Sie hier, Jungs. 1627 01:22:20,950 --> 01:22:22,280 >> Ihr seid in Ordnung sein wird. 1628 01:22:22,280 --> 01:22:24,080 Ich bin so stolz auf euch alle Jungs. 1629 01:22:24,080 --> 01:22:25,680 Der Test wird schwer sein. 1630 01:22:25,680 --> 01:22:28,140 Studieren Sie für sie, und danach einfach wegwerfen. 1631 01:22:28,140 --> 01:22:31,280 Machen Sie sich bereit, neue Dinge zu lernen. 1632 01:22:31,280 --> 01:22:33,990 Und essen Süßigkeiten. 1633 01:22:33,990 --> 01:22:35,940 Wir haben haben viele Süßigkeiten. 1634 01:22:35,940 --> 01:22:37,760 >> Sorgen für eine gemütliche Nachtruhe. 1635 01:22:37,760 --> 01:22:40,420 Nicht nicht schlafen, weil das wäre wirklich schlimm sein. 1636 01:22:40,420 --> 01:22:41,490 CS ist eine Menge von Logik. 1637 01:22:41,490 --> 01:22:44,960 Wenn Sie nicht schlafen, man kann nicht funktionieren, und Ihr Gehirn kann nicht funktionieren. 1638 01:22:44,960 --> 01:22:48,780 Und ich werde hier für die nächsten 20 sein Minuten, wenn jemand will, zu hängen, um. 1639 01:22:48,780 --> 01:22:51,150 Ihr Jungs gehen, um es zu töten. 1640 01:22:51,150 --> 01:22:53,000 Viel Glück. 1641 01:22:53,000 --> 01:22:55,663