1 00:00:00,000 --> 00:00:03,353 >> [Musikwiedergabe] 2 00:00:03,353 --> 00:00:04,842 3 00:00:04,842 --> 00:00:06,050 DAVID MALAN: Hallo, alle zusammen. 4 00:00:06,050 --> 00:00:07,777 Dies ist der CS50 supersection. 5 00:00:07,777 --> 00:00:09,860 Zugeordnet Abschnitte werden nicht Start für eine weitere Woche. 6 00:00:09,860 --> 00:00:11,580 Und so heute, ich bin hier mit-- 7 00:00:11,580 --> 00:00:12,122 >> Maria: Maria. 8 00:00:12,122 --> 00:00:14,163 DAVID MALAN: --to tatsächlich einen Blick auf Problem 9 00:00:14,163 --> 00:00:16,110 set one, den Kurs der ersten Wochen des Materials, 10 00:00:16,110 --> 00:00:19,780 erhalten Sie mit CS50 IDE orientierten, ein bisschen von Linux, das Betriebssystem, ist 11 00:00:19,780 --> 00:00:22,290 auf IDE ausgeführt wird, sowie Blick auf einige der Übergangs 12 00:00:22,290 --> 00:00:25,730 von Grund auf neu zu C führender bis zu einem Problem eingestellt. 13 00:00:25,730 --> 00:00:28,340 >> So ohne weiteres, in einem Problem eingestellt, 14 00:00:28,340 --> 00:00:30,520 wirst du sein wirst In den CS50 IDE, eingeführt, 15 00:00:30,520 --> 00:00:33,230 ist diese web-basierte Programmierung Umwelt, die wir benutzen, um 16 00:00:33,230 --> 00:00:34,280 , Programme zu schreiben. 17 00:00:34,280 --> 00:00:37,280 Es ist so konzipiert, dass sehr freuen erinnert eines typischen Computer 18 00:00:37,280 --> 00:00:39,430 System ein Betriebs System namens Linux. 19 00:00:39,430 --> 00:00:42,440 Aber es ist in der sogenannten Cloud, die jeder in der Klasse bedeutet, 20 00:00:42,440 --> 00:00:45,100 kann tatsächlich seine eigene Rechnung und verwenden Sie es, wie gut. 21 00:00:45,100 --> 00:00:48,950 >> So dass die meisten von Ihnen wahrscheinlich noch nie benutzt eine Linux-Umgebung vor oder vielleicht 22 00:00:48,950 --> 00:00:50,447 auch ein Kommandozeilen-Umgebung. 23 00:00:50,447 --> 00:00:52,280 Und ein Befehlszeilen- Umgebung unterschiedlich ist. 24 00:00:52,280 --> 00:00:53,200 Es ist alles textlichen. 25 00:00:53,200 --> 00:00:54,730 Es ist alle Tastaturbefehle. 26 00:00:54,730 --> 00:00:59,480 Und es ist kein mousing, keine Symbole, keine Dialog-Fenster, keine Menüs. 27 00:00:59,480 --> 00:01:00,212 Es ist rein text. 28 00:01:00,212 --> 00:01:01,920 So auf den ersten, es Art der fühlt sich wie ein Schritt 29 00:01:01,920 --> 00:01:04,434 rückwärts in Bezug auf die Raffinesse. 30 00:01:04,434 --> 00:01:06,600 Aber es endet als eine Menge leistungsfähiger, natürlich, 31 00:01:06,600 --> 00:01:08,510 für Informatiker, letztendlich. 32 00:01:08,510 --> 00:01:09,540 >> Werfen wir also einen Blick. 33 00:01:09,540 --> 00:01:13,850 Hier bin ich am CS50.io, über die Sie in CS50 IDE anmelden können. 34 00:01:13,850 --> 00:01:17,414 Und ähnlich wie in Scratch, gibt es drei Hauptbereiche zu diesem Bildschirm. 35 00:01:17,414 --> 00:01:20,080 Also auf der linken Seite haben wir was wird die Datei-Browser. 36 00:01:20,080 --> 00:01:22,413 Und da ist dieser Ordner an Spitze, die jetzt leer 37 00:01:22,413 --> 00:01:24,690 da wurde ich von allen meinen befreien Dateien vor supersection. 38 00:01:24,690 --> 00:01:27,599 Und das ist, wo wir speichern C-Dateien, die wir schreiben. 39 00:01:27,599 --> 00:01:30,890 In der oberen rechten, haben wir einen Ort, an dem alle unsere Code geht um geschrieben zu werden. 40 00:01:30,890 --> 00:01:34,610 Und in der Tat, wenn ich auf dieses Plus, diese geht, mich zu wählen Sie Neue Datei. 41 00:01:34,610 --> 00:01:38,310 Und hier kann ich das Schreiben von C-Code oder zu starten, wirklich, eine beliebige Anzahl von anderen Sprachen. 42 00:01:38,310 --> 00:01:42,670 >> Und dann an der Unterseite, wo sie sagt jharvard @ ide50-- und verkaufen wird 43 00:01:42,670 --> 00:01:45,080 sagen, etwas ein wenig different-- was so genannt? 44 00:01:45,080 --> 00:01:48,644 45 00:01:48,644 --> 00:01:49,310 Terminal-Fenster. 46 00:01:49,310 --> 00:01:49,570 Ja. 47 00:01:49,570 --> 00:01:51,810 So kann das Terminalfenster ist die so genannte Befehlszeile 48 00:01:51,810 --> 00:01:55,540 Schnittstelle, über die Sie interagieren können mit dem darunterliegenden Betriebssystem. 49 00:01:55,540 --> 00:01:58,220 Und für jetzt, wir sind zu gehen machen sehr wenig Gebrauch von this-- 50 00:01:58,220 --> 00:02:01,170 nur um zu kompilieren, zu betrachten Fehlermeldungen, die wir sehen, 51 00:02:01,170 --> 00:02:02,347 und unsere Programme auszuführen. 52 00:02:02,347 --> 00:02:04,680 Aber letztlich werden wir um so viel mehr zu tun, als gut. 53 00:02:04,680 --> 00:02:07,490 Und Sie können auch Software installieren und verwalten Sie Ihren Arbeitsbereich 54 00:02:07,490 --> 00:02:09,066 innerhalb CS50 IDE, wie gut. 55 00:02:09,066 --> 00:02:10,440 Aber dazu ein anderes Mal. 56 00:02:10,440 --> 00:02:12,689 >> Also lassen Sie uns fortfahren und schreiben ein sehr einfaches Programm gerade 57 00:02:12,689 --> 00:02:15,064 durch ein Aufwärmen gehen hello.c, das ist vielleicht 58 00:02:15,064 --> 00:02:16,480 das einfachste Programm können wir schreiben. 59 00:02:16,480 --> 00:02:18,330 Ich habe schon einen neuen Tab geöffnet. 60 00:02:18,330 --> 00:02:24,310 Ich werde weitermachen und sagen, umfassen Standard io.h 61 00:02:24,310 --> 00:02:25,325 Dann int main (void). 62 00:02:25,325 --> 00:02:28,930 63 00:02:28,930 --> 00:02:35,200 Und dann printf ("Hallo, Welt" Backslash-n, in der Nähe Zitat, 64 00:02:35,200 --> 00:02:39,480 close Klammern und Strichpunkt. 65 00:02:39,480 --> 00:02:39,990 >> Gut. 66 00:02:39,990 --> 00:02:41,700 So, jetzt feststellen, mein Fenster ist unberechtigt. 67 00:02:41,700 --> 00:02:44,840 Also ich bin sehr schnell gehen hinauf auf Datei, Speichern. 68 00:02:44,840 --> 00:02:46,910 Und es ist wichtig, dass Ich nenne das nicht "Hallo." 69 00:02:46,910 --> 00:02:49,243 Also ein sehr häufiger Fehler, vor allem in Problem eingestellten, 70 00:02:49,243 --> 00:02:52,530 ist es, versehentlich rufen Sie einfach Ihre Programm "Wasser" oder "gierig" oder "Mario" 71 00:02:52,530 --> 00:02:53,890 oder "Kredit" oder dergleichen. 72 00:02:53,890 --> 00:02:55,970 Aber Sie wirklich wollen, um sicher, dass Sie die Dateierweiterung haben 73 00:02:55,970 --> 00:02:58,928 denn dies ist die einzige Möglichkeit, dass der Compiler und auch der Code-Editor 74 00:02:58,928 --> 00:03:00,710 weiß, dass Sie tatsächlich das Schreiben von C-Code. 75 00:03:00,710 --> 00:03:02,280 Also lassen Sie mich gehen Sie vor und klicken Sie auf Speichern. 76 00:03:02,280 --> 00:03:05,710 >> Und jetzt, auch, was CS50 IDE für uns getan wird, ist es auch 77 00:03:05,710 --> 00:03:07,120 Syntax-Hervorhebungen alles. 78 00:03:07,120 --> 00:03:08,822 So ist es machte alles sehr bunt. 79 00:03:08,822 --> 00:03:10,780 Und der ganze Zweck der das ist nicht funktionsfähig. 80 00:03:10,780 --> 00:03:14,290 Es ist nur meine Augen, um das Zeichnen konzeptionell unterschiedliche Stücke 81 00:03:14,290 --> 00:03:15,310 dieses Programms. 82 00:03:15,310 --> 00:03:17,570 Also lassen Sie uns fortfahren und übersetzen diese. 83 00:03:17,570 --> 00:03:19,490 Und ich kann dies zu kompilieren in einer Reihe von Möglichkeiten. 84 00:03:19,490 --> 00:03:22,010 Und in der ersten Woche, die Old-School-Art, wie wir taten 85 00:03:22,010 --> 00:03:26,250 es war buchstäblich in Befehls line-- "Klappern hello.c." 86 00:03:26,250 --> 00:03:27,596 Und dann traf ich ein. 87 00:03:27,596 --> 00:03:29,720 Und nichts scheint zu geschehen im Terminalfenster. 88 00:03:29,720 --> 00:03:32,654 Aber was tat Änderung in der IDE? 89 00:03:32,654 --> 00:03:35,320 Wo wiederum IDE bedeutet nur, Integrierte Entwicklungsumgebung. 90 00:03:35,320 --> 00:03:38,360 Es ist eine andere Art zu sagen Diese integrierte Entwicklung 91 00:03:38,360 --> 00:03:40,620 Umgebung für die Entwicklung von Software. 92 00:03:40,620 --> 00:03:42,477 Also, was haben in der Benutzeroberfläche ändern? 93 00:03:42,477 --> 00:03:44,310 Was fällt Ihnen auf das ist etwas anderes, Maria? 94 00:03:44,310 --> 00:03:47,100 >> Maria: Ich bemerkte etwas unter der IDE50 Ordner hier oben. 95 00:03:47,100 --> 00:03:47,850 >> DAVID MALAN: Ja. 96 00:03:47,850 --> 00:03:50,230 Also hier oben, nicht nur wir haben "hello.c." 97 00:03:50,230 --> 00:03:53,120 Wir haben auch "a.out", das ist, Art von einem stummen Namen für ein Programm. 98 00:03:53,120 --> 00:03:56,430 Aber in der Tat, es ist der Standardname für ein Programm, wenn Sie einfach Ihren Code zu kompilieren 99 00:03:56,430 --> 00:03:59,110 und der Compiler nicht sagen welche Datei ausgegeben. 100 00:03:59,110 --> 00:04:01,790 Also, wenn ich dies ausführen, I müssen die compiler-- sagen 101 00:04:01,790 --> 00:04:05,340 oder besser gesagt, ich brauche, um sagen Sie den Arbeitsbereich, den ich 102 00:04:05,340 --> 00:04:09,780 wollen das Programm die Ausführung von "a.out". 103 00:04:09,780 --> 00:04:10,550 Eintreten. 104 00:04:10,550 --> 00:04:12,474 Und es gibt "Hallo, Welt. "Jetzt ist die" ./ ". 105 00:04:12,474 --> 00:04:13,390 ist eigentlich wichtig. 106 00:04:13,390 --> 00:04:16,050 Auch wenn in der Regel nur wir schreiben die Namen von Befehlen, 107 00:04:16,050 --> 00:04:19,060 wenn es ein Programm, das Sie haben geschrieben, Sie wollen, um "./" sagen, 108 00:04:19,060 --> 00:04:22,460 weil das Linux explizit sagt, dass Sie ein Programm namens ausführen möchten 109 00:04:22,460 --> 00:04:26,930 "a.out", die in diesem, wo dot bedeutet dieses Verzeichnis, dass ich derzeit 110 00:04:26,930 --> 00:04:31,600 in, der zufällig genannte Arbeitsbereich "a.out. 111 00:04:31,600 --> 00:04:35,410 Denn wenn ich sagte nur "a.out" eingeben, Ich werde a.out Befehl nicht bekommen " 112 00:04:35,410 --> 00:04:38,035 gefunden ", weil der computer-- weil ich erfunden "a.out"; 113 00:04:38,035 --> 00:04:40,910 es hat nicht mit der computer-- kommen weiß nicht, wo es zu suchen, 114 00:04:40,910 --> 00:04:43,590 auch wenn es richtig ist unter die Nase, so zu sprechen. 115 00:04:43,590 --> 00:04:44,090 OK. 116 00:04:44,090 --> 00:04:49,910 So konnten wir dies ändern "Klang -o hallo hello.c" sein. 117 00:04:49,910 --> 00:04:53,030 Und wenn ich drücken Sie die Eingabetaste, welches Programm das wird ausgegeben für mich? 118 00:04:53,030 --> 00:04:55,710 Was ist der Name der Datei? 119 00:04:55,710 --> 00:04:57,500 Ja, auf der Rückseite. 120 00:04:57,500 --> 00:04:58,479 Stimmt. "Hallo." 121 00:04:58,479 --> 00:05:00,520 So "Hallo" sein wird, der Name des Programms, 122 00:05:00,520 --> 00:05:04,610 eine so genannte, weil wir verwendet haben Befehlszeilenargument, das nur 123 00:05:04,610 --> 00:05:08,120 beinhalten eine Veränderung des Verhaltens der Compiler tatsächlich ausgegeben 124 00:05:08,120 --> 00:05:09,450 einen bestimmten Dateinamen. 125 00:05:09,450 --> 00:05:12,400 Und in der Tat, wenn ich heran heraus und schauen Sie sich hier ein, 126 00:05:12,400 --> 00:05:17,430 jetzt habe ich nicht nur "a.out" und "hello.c", sondern auch "Hallo", als auch. 127 00:05:17,430 --> 00:05:22,410 So, jetzt kann ich tun "./hello," Enter. 128 00:05:22,410 --> 00:05:23,640 Und es gibt "Hallo, Welt." 129 00:05:23,640 --> 00:05:25,640 Aber lastly-- und dies wird nun die Konvention sein 130 00:05:25,640 --> 00:05:27,590 wir während der Verwendung Semester typically-- 131 00:05:27,590 --> 00:05:30,070 ist, können Sie auch einfach sagen, "zu machen hallo." 132 00:05:30,070 --> 00:05:33,370 Und in der Tat, es sagen, es ist bis auf dem neuesten Stand, da sie bereits vorhanden ist. 133 00:05:33,370 --> 00:05:37,860 Lassen Sie mich gehen Sie vor und nehmen Sie mit Die RM-Befehl, sowohl "a.out" - 134 00:05:37,860 --> 00:05:39,644 und sagen Sie "entfernen reguläre Datei a.out?" 135 00:05:39,644 --> 00:05:41,810 Das bedeutet nur, Sie sind sicher, dass Sie es wirklich löschen? 136 00:05:41,810 --> 00:05:42,880 Ich werde ja zu sagen. 137 00:05:42,880 --> 00:05:46,690 Und dann werde ich entfernen "Hallo", aber nicht "hello.c." 138 00:05:46,690 --> 00:05:49,920 Ich werde ausdrücklich auf "Ja" sagen, aber "y" ist ausreichend, wie gut. 139 00:05:49,920 --> 00:05:52,140 >> Und nun merken, wenn ich Geben ls-- die, Rückruf, 140 00:05:52,140 --> 00:05:55,540 bedeutet list-- alles listet der Dateien in meinem Ordner. 141 00:05:55,540 --> 00:05:57,850 Und in der Tat, wenn ich heran out und links oben schauen, 142 00:05:57,850 --> 00:05:59,730 sie bestätigt, dass was ist in diesem Ordner selbst 143 00:05:59,730 --> 00:06:04,990 obwohl es als IDE50 hier markiert und nicht die Arbeitsfläche, es ist nur "hello.c." 144 00:06:04,990 --> 00:06:09,152 So, jetzt hier unten, wenn ich weiß "machen hallo," Enter, 145 00:06:09,152 --> 00:06:12,360 jetzt sehe ich eine viel längere Befehl, sondern ein mehr anspruchsvolle Befehl, die gehen 146 00:06:12,360 --> 00:06:13,940 die in den kommenden Wochen zu sein. 147 00:06:13,940 --> 00:06:16,720 Und jetzt kann ich sagen "./hello." 148 00:06:16,720 --> 00:06:19,257 >> Werfen wir also einen kurzen Rundgang eine andere Linux-Befehle. 149 00:06:19,257 --> 00:06:21,840 Dann, warum nicht wir einen Schritt Rücken und tatsächlich an C aussehen 150 00:06:21,840 --> 00:06:25,020 in der Regel, den Übergang von Scratch nach C und dann mit einem Blick zu schließen 151 00:06:25,020 --> 00:06:27,305 beim ersten Problem in C eingestellt Ordnung. 152 00:06:27,305 --> 00:06:30,430 So werde ich voran und nur sauber gehen mein Arbeitsbereich mit gedrückter Ctrl-L nur 153 00:06:30,430 --> 00:06:31,429 um den Bildschirm ordentlich zu halten. 154 00:06:31,429 --> 00:06:33,520 Aber das hat keine funktionelle Auswirkungen auf andere Weise. 155 00:06:33,520 --> 00:06:35,820 >> Daran erinnern, dass wir gesehen haben, ein paar Befehle jetzt. 156 00:06:35,820 --> 00:06:39,900 Also haben wir clang gesehen, die in der Regel Sie müssen nicht mehr manuell durchführen. 157 00:06:39,900 --> 00:06:41,650 Wir werden stattdessen make. 158 00:06:41,650 --> 00:06:45,290 Aber wir sahen auch ls, was eine zeigt Liste der Dateien in meinem Verzeichnis. 159 00:06:45,290 --> 00:06:48,750 Und nun, was ist sind-- Es gibt zwei Dateien jetzt "Hallo" und "hello.c." 160 00:06:48,750 --> 00:06:52,240 Warum gibt es einen Stern oder ein Sternchen nach "Hallo"? 161 00:06:52,240 --> 00:06:54,900 Was hatte das zu bedeuten, der Basis auf das, was wir in der ersten Woche sah? 162 00:06:54,900 --> 00:06:58,852 163 00:06:58,852 --> 00:07:00,400 Was denken Sie? 164 00:07:00,400 --> 00:07:02,742 Was bedeutet die Sterne bedeuten? 165 00:07:02,742 --> 00:07:04,614 >> MARIA: For-- dem Programm "Hallo"? 166 00:07:04,614 --> 00:07:05,530 DAVID MALAN: "Hallo *". 167 00:07:05,530 --> 00:07:06,330 Ja. 168 00:07:06,330 --> 00:07:07,760 Oh ja? 169 00:07:07,760 --> 00:07:08,639 Oh, ausführbare Datei. 170 00:07:08,639 --> 00:07:09,180 Stimmt. 171 00:07:09,180 --> 00:07:10,890 So bedeutet das, dass "Hallo" ausführbar ist. 172 00:07:10,890 --> 00:07:13,430 So in der Tat, das ist, warum Was ich tun kann "./hello." 173 00:07:13,430 --> 00:07:13,930 Gut. 174 00:07:13,930 --> 00:07:15,179 Also, was kann ich sonst noch hier? 175 00:07:15,179 --> 00:07:17,290 Nun stellt sich heraus, ich kann auch Verzeichnisse erstellen. 176 00:07:17,290 --> 00:07:20,924 Also lassen Sie mich gehen Sie vor und erstellen, zum Beispiel ein Verzeichnis "pset1". 177 00:07:20,924 --> 00:07:23,590 Und das Problem gesetzt Spezifikation haben Sie genau dies zu tun, 178 00:07:23,590 --> 00:07:25,260 so müssen Sie nicht heute zu erinnern. 179 00:07:25,260 --> 00:07:27,340 Aber "mkdir pset1" scheint, um keine Auswirkungen. 180 00:07:27,340 --> 00:07:30,540 Aber noch einmal, keine Fehlermeldung ist in der Regel eine gute Sache. 181 00:07:30,540 --> 00:07:34,060 Also, wenn ich schreibe "ls" now-- ah, jetzt Ich habe eine ausführbare Datei mit dem Namen 182 00:07:34,060 --> 00:07:36,570 "Hallo", eine C-Datei namens "hello.c." 183 00:07:36,570 --> 00:07:40,860 Und dann der Schrägstrich, so zu sprechen, bedeutet, dass dies ein Verzeichnis. 184 00:07:40,860 --> 00:07:42,510 >> Also ja, jetzt will ich es zu öffnen. 185 00:07:42,510 --> 00:07:45,730 Und ich weiß nicht Doppelklick auf sie wie in einer GUI, grafische Umgebung. 186 00:07:45,730 --> 00:07:48,550 Ich stattdessen sagen: "cd pset1." 187 00:07:48,550 --> 00:07:49,640 Eintreten. 188 00:07:49,640 --> 00:07:53,100 Nichts Interessantes zu haben scheint, passiert, außer meinem kleinen Aufforderung 189 00:07:53,100 --> 00:07:57,300 hier-- dies Linux Weise der Erinnerung mir, wo ich bin, so was Ordner geöffnet ist. 190 00:07:57,300 --> 00:08:00,080 Es hat mir gerade erzählt explizit im Gegensatz zu graphisch. 191 00:08:00,080 --> 00:08:05,100 Und wenn ich "ls", warum muss ich ein weiteres zu sehen prompt sofort, denken Sie, 192 00:08:05,100 --> 00:08:07,269 wenn ich mich auch den Inhalt des pset1? 193 00:08:07,269 --> 00:08:09,310 MARIA: Sie haben wahrscheinlich nicht haben nichts drin. 194 00:08:09,310 --> 00:08:09,630 DAVID MALAN: Ja. 195 00:08:09,630 --> 00:08:11,510 Also haben wir nicht offensichtlich dort geschaffen nichts 196 00:08:11,510 --> 00:08:13,150 weil ich einfach das Verzeichnis erstellt. 197 00:08:13,150 --> 00:08:17,690 Nun, wenn ich wollte eine file-- für erstellen So konnte ich eine neue Datei erstellen. 198 00:08:17,690 --> 00:08:20,190 Und dann konnte ich zu gehen Speichern und speichern Sie sie als, 199 00:08:20,190 --> 00:08:23,090 wie, "mario.c", wenn Sie tun, die Standard-Ausgabe von einem pset. 200 00:08:23,090 --> 00:08:27,610 Und dann, wie jeden Mac oder PC, nur wählen Sie den Ordner "pset1, Speichern. 201 00:08:27,610 --> 00:08:28,740 Und nun die Datei leer ist. 202 00:08:28,740 --> 00:08:31,160 Aber lassen Sie uns heran wieder für eine Sekunde. 203 00:08:31,160 --> 00:08:32,470 Lass uns ls hier. 204 00:08:32,470 --> 00:08:34,470 Jetzt sehen wir, "mario.c". 205 00:08:34,470 --> 00:08:37,850 >> Also gibt es ein paar andere Befehle, sind es wert, wenn man bedenkt, über Zeit-- 206 00:08:37,850 --> 00:08:41,200 klar, oder Strg-L ist, was ich gewesen schlagen; mkdir wir gesehen haben; 207 00:08:41,200 --> 00:08:45,240 rm wir gesehen haben, als auch, was ist zum Entfernen oder Löschen einer Datei. 208 00:08:45,240 --> 00:08:49,310 Hüten Sie sich vor Sie also-- können, und wenn Sie schauen bei Online-Lernprogramme, werden Sie rm -rf 209 00:08:49,310 --> 00:08:52,630 ist eine sehr häufige Art zu sagen, löschen Sie einen Ordner, der Sachen in sich hat. 210 00:08:52,630 --> 00:08:54,280 Seien Sie einfach super, super vorsichtig. 211 00:08:54,280 --> 00:08:58,780 -rf bedeutet rekursiv löschen Sie, was es ist 212 00:08:58,780 --> 00:09:01,150 Sie versuchen, zu löschen sind und zwangsweise zu löschen. 213 00:09:01,150 --> 00:09:04,630 So rekursive Mittel, wenn es ein Verzeichnis mit ein Ordner mit einem Ordner mit einem Ordner, 214 00:09:04,630 --> 00:09:05,690 löschen Sie alle von ihnen. 215 00:09:05,690 --> 00:09:08,680 Und zwangsweise bedeutet, noch nicht einmal fragen mich, ja oder nein, ich bin sicher? 216 00:09:08,680 --> 00:09:11,960 Also ist es ein super gefährlichen Weg Löschen viele Sachen schnell. 217 00:09:11,960 --> 00:09:17,210 Aber beware-- zu oft tut ein unerschrockener Schüler versehentlich löschen, sagen wir, pset 218 00:09:17,210 --> 00:09:18,000 ein, zum Beispiel. 219 00:09:18,000 --> 00:09:19,833 >> MARIA: Und wenn sie nur -r zu tun, werden sie 220 00:09:19,833 --> 00:09:21,870 um sie über jede einzelne Datei zu fragen. 221 00:09:21,870 --> 00:09:22,790 >> DAVID MALAN: Welches ist mäßig ärgerlich. 222 00:09:22,790 --> 00:09:23,480 >> Maria: Ja. 223 00:09:23,480 --> 00:09:25,813 >> DAVID MALAN: Also das ist, warum so viele von uns, inklusive Selbst, 224 00:09:25,813 --> 00:09:27,070 bin in der Gewohnheit, mit -rf. 225 00:09:27,070 --> 00:09:27,861 Aber es ist gefährlich. 226 00:09:27,861 --> 00:09:29,010 So Käufer Vorsicht. 227 00:09:29,010 --> 00:09:31,050 Und dann ist mv Art interessanter benannt. 228 00:09:31,050 --> 00:09:33,600 Das ist also der Bewegungsbefehl, das fühlt sich ein bisschen komisch 229 00:09:33,600 --> 00:09:37,260 denn man kann in der Tat es verwenden, um Verschieben von Dateien von einem Ort zum anderen. 230 00:09:37,260 --> 00:09:39,970 Zum Beispiel: Angenommen, dass ich durcheinander. 231 00:09:39,970 --> 00:09:43,660 Nehmen wir an, dass ich erstellt eine neue Datei für die pset. 232 00:09:43,660 --> 00:09:46,320 Und ich sie gespeichert als "greedy.c." 233 00:09:46,320 --> 00:09:49,970 Aber angenommen, ich versehentlich speichern in IDE50-- so in meinem Arbeitsbereich selbst 234 00:09:49,970 --> 00:09:51,580 und nicht in pset1. 235 00:09:51,580 --> 00:09:53,960 >> Sie können so viel links oben zu sehen. 236 00:09:53,960 --> 00:09:55,284 Es gibt "greedy.c." 237 00:09:55,284 --> 00:09:56,450 Und es gibt ein paar Lösungen. 238 00:09:56,450 --> 00:09:58,324 Eines kann ich das verwenden Superbenutzerfreundlich 239 00:09:58,324 --> 00:09:59,740 nur Drag & Drop. 240 00:09:59,740 --> 00:10:01,910 Und das wäre wirklich dieses Problem zu beheben. 241 00:10:01,910 --> 00:10:04,967 Aber heute, wir versuchen, zu betrachten desto mehr obskure, aber leistungsstarke Möglichkeiten 242 00:10:04,967 --> 00:10:05,550 dies zu tun. 243 00:10:05,550 --> 00:10:07,880 Also lassen Sie mich nehmen "ls" in pset1. 244 00:10:07,880 --> 00:10:09,690 Und ich sehe nur "mario.c." 245 00:10:09,690 --> 00:10:13,450 Lassen Sie mich gehen Sie vor und tun "cd ..". 246 00:10:13,450 --> 00:10:15,320 Also CD wieder Verzeichnis wechseln. 247 00:10:15,320 --> 00:10:18,130 "..", Was bedeutet, obwohl? 248 00:10:18,130 --> 00:10:21,100 Zuletzt sagte ich "cd pset1 "in pset1 gehen. 249 00:10:21,100 --> 00:10:24,360 Also, wenn ich sage "cd ..", was bin ich? 250 00:10:24,360 --> 00:10:24,910 Rückwärts. 251 00:10:24,910 --> 00:10:25,150 Ja. 252 00:10:25,150 --> 00:10:26,750 >> So ist es mit dem so genannten Mutter gehen. 253 00:10:26,750 --> 00:10:29,730 Gehen Sie eine Ebene nach oben, wie Austritt aus einem Ordner. 254 00:10:29,730 --> 00:10:30,500 So ein. 255 00:10:30,500 --> 00:10:31,900 Und in der Tat, schauen, was es getan hat. 256 00:10:31,900 --> 00:10:37,070 Es hat mich einfach in Arbeitsbereich statt der in pset1, die im Arbeitsbereich ist. 257 00:10:37,070 --> 00:10:39,710 Und jetzt, wenn ich schreibe "ls", es gibt eine ganze Menge Zeug. 258 00:10:39,710 --> 00:10:41,650 In gibt es "greedy.c". 259 00:10:41,650 --> 00:10:48,720 So, jetzt lassen Sie mich mv wörtlich bewegen "greedy.c" in pset1. 260 00:10:48,720 --> 00:10:51,120 Und so viele Linux-Befehle arbeiten genau so. 261 00:10:51,120 --> 00:10:54,470 Sie nehmen keine Argumente, oder sie nehmen ein Argument, oder sie zwei Kommandozeile übernehmen 262 00:10:54,470 --> 00:10:55,449 Argumente und so weiter. 263 00:10:55,449 --> 00:10:57,240 Und in diesem Fall ist es wahrsten Sinne des Wortes zu tun, was 264 00:10:57,240 --> 00:11:01,670 es sagt, wenn auch succinctly-- bewegen greedy.c in pset1. 265 00:11:01,670 --> 00:11:02,310 Eintreten. 266 00:11:02,310 --> 00:11:03,310 Nichts scheint zu geschehen. 267 00:11:03,310 --> 00:11:06,180 Aber wenn ich wieder tun ein ls, gierig ist weg. 268 00:11:06,180 --> 00:11:12,437 Und wenn ich "cd pset1", ein, und klicken ls wieder, jetzt ist es an der richtigen Stelle. 269 00:11:12,437 --> 00:11:14,270 Nebenbei bemerkt, wenn beispiels einige reason-- insbesondere 270 00:11:14,270 --> 00:11:16,194 wenn Sie intermittierende Netzwerkkonnektivität 271 00:11:16,194 --> 00:11:18,360 oder du bist herum Campus mit Ihrem Laptop-Deckel 272 00:11:18,360 --> 00:11:20,180 geschlossen und öffnen Sie es bis immer Ihren Arbeitsbereich 273 00:11:20,180 --> 00:11:21,730 scheint etwas aus dem Takt, keine große Sache. 274 00:11:21,730 --> 00:11:23,646 Einfach laden Sie Ihre Browser Fenster, und es sollte 275 00:11:23,646 --> 00:11:26,339 Resync so daß die linken Datei-Browser sieht genau 276 00:11:26,339 --> 00:11:27,380 wie das Terminalfenster. 277 00:11:27,380 --> 00:11:27,921 Keine Sorgen machen. 278 00:11:27,921 --> 00:11:31,460 Im Zweifelsfall laden Sie die Seite, so dass solange Sie die Dateien bereits gespeichert haben. 279 00:11:31,460 --> 00:11:31,960 OK. 280 00:11:31,960 --> 00:11:34,710 So mv kann auch verwendet werden, um Dateien umzubenennen. 281 00:11:34,710 --> 00:11:36,760 Und lassen Sie uns einen Blick auf dieser letzte Befehl hier. 282 00:11:36,760 --> 00:11:39,950 So suppose-- und dies ist Super gemeinsamen, auch, frühzeitig zu erkennen. 283 00:11:39,950 --> 00:11:46,400 Einige Schüler eine Datei gelegentlich zu erstellen genannt, lassen Sie uns sagen--, was ein anderer? 284 00:11:46,400 --> 00:11:47,730 Wie "WATER.C." 285 00:11:47,730 --> 00:11:51,080 Also werde ich nur schreien, für keinen Grund, in Großbuchstaben. 286 00:11:51,080 --> 00:11:53,190 Aber dies ist nicht der richtigen Namen für die Datei 287 00:11:53,190 --> 00:11:56,660 wenn auch nur, weil unser Problem eingestellt Spezifikation nicht sagen 288 00:11:56,660 --> 00:11:59,430 um die Datei als Großbuchstaben speichern "WATER.C." 289 00:11:59,430 --> 00:12:01,320 Stattdessen erwarten wir "water.c" in Kleinbuchstaben. 290 00:12:01,320 --> 00:12:03,140 Und in der Tat ist dies problematisch, weil check50, 291 00:12:03,140 --> 00:12:04,370 ein Programm, du gehst um bei der Problem treffen 292 00:12:04,370 --> 00:12:07,350 Set eines, das automatisch prüft die Richtigkeit der Code 293 00:12:07,350 --> 00:12:11,615 wird sich auf Sie schreien, wenn es nicht kann finden "water.c" in Kleinbuchstaben. 294 00:12:11,615 --> 00:12:12,712 >> Also muss ich dieses Problem beheben. 295 00:12:12,712 --> 00:12:14,920 So viele verschiedene Möglichkeiten, dies zu tun, von denen die erste 296 00:12:14,920 --> 00:12:18,330 wäre die Strg- oder Rechtsklick- den Dateinamen und ändern Sie einfach umbenennen. 297 00:12:18,330 --> 00:12:19,740 Völlig in Ordnung, das zu tun. 298 00:12:19,740 --> 00:12:21,820 Aber noch einmal, heute, lassen Sie uns tun Sie es ein wenig schicker. 299 00:12:21,820 --> 00:12:26,680 Lassen Sie uns mv ändern "WATER.C" auf "water.c." 300 00:12:26,680 --> 00:12:30,690 So können Sie auch das erste Argument verwenden, um es in die zweite Argument umbenennen 301 00:12:30,690 --> 00:12:34,455 wenn das zweite Argument ist nicht, in der Tat, ein Ordner oder ein Verzeichnisname. 302 00:12:34,455 --> 00:12:35,120 >> Gut. 303 00:12:35,120 --> 00:12:39,560 Und schließlich, so bin ich ein wenig in trick-- Mein Arbeitsbereich-Verzeichnis im Moment. 304 00:12:39,560 --> 00:12:43,660 Wenn ich in pset eins zu bekommen, Ich kann auf jeden Fall geben Sie "cd pset1." 305 00:12:43,660 --> 00:12:47,260 Aber es ist so langweilig "pset1" eingeben oder längere Dateinamen oder Verzeichnisnamen 306 00:12:47,260 --> 00:12:47,980 immer noch. 307 00:12:47,980 --> 00:12:51,960 So sehr oft in Linux, was Sie tun können, ist die ersten Buchstaben "pse" 308 00:12:51,960 --> 00:12:56,100 und einfach nur langweilig wird, drücken Sie Tab, und lassen Sie der Computer figure it out für Sie. 309 00:12:56,100 --> 00:12:58,190 Super hilfsbereit, in diese Gewohnheit zu bekommen. 310 00:12:58,190 --> 00:13:01,079 Der einzige Haken ist, wenn Sie mehrere Dateien oder Ordner ab 311 00:13:01,079 --> 00:13:02,870 mit dem Buchstaben "P" oder "ps", haben Sie vielleicht 312 00:13:02,870 --> 00:13:05,525 ein paar mehr, bevor Sie den Typ Computer weiß, was zu tun ist. 313 00:13:05,525 --> 00:13:06,820 >> MARIA: Wir mögen Verknüpfungen. 314 00:13:06,820 --> 00:13:08,695 >> DAVID MALAN: Dieser Wille sparen Sie so viel Zeit. 315 00:13:08,695 --> 00:13:11,930 Und auch, wie gesagt in der Vorlesung, die Sie kann in der Geschichte blättern, nach oben und unten, 316 00:13:11,930 --> 00:13:15,461 zuletzt ausgeführten zu finden Befehle, wie gut. 317 00:13:15,461 --> 00:13:15,960 Gut. 318 00:13:15,960 --> 00:13:20,904 So, jetzt wollen wir unsere Aufmerksamkeit wieder um ein einfaches Programm, hallo Welt. 319 00:13:20,904 --> 00:13:22,195 So dass wir das genau kompiliert haben. 320 00:13:22,195 --> 00:13:24,050 Und nun, warum nehmen wir nicht ein Blick auf die Datentypen 321 00:13:24,050 --> 00:13:26,776 und dann den Übergang von einigen entsprechende Scratch Blöcke C 322 00:13:26,776 --> 00:13:27,400 MARIA: Awesome. 323 00:13:27,400 --> 00:13:30,031 Also jetzt, dass Sie begonnen haben Programme in C schreiben, 324 00:13:30,031 --> 00:13:32,530 werden wir zu sprechen beginnen zu den Datentypen und Variablen. 325 00:13:32,530 --> 00:13:37,570 So manche Datentypen, die Sie würde wissen wollen, ab sofort 326 00:13:37,570 --> 00:13:39,400 sind diejenigen, die sind blau markiert. 327 00:13:39,400 --> 00:13:42,420 So haben wir int ersten, das steht für Ganzzahl. 328 00:13:42,420 --> 00:13:46,075 Und das hält ganzen Zahlen, wie Sie Möglicherweise müssen guessed-- so 1, 2, 3, 329 00:13:46,075 --> 00:13:47,950 und beliebige andere ganze Zahlen dass Sie sich vorstellen können. 330 00:13:47,950 --> 00:13:48,730 >> DAVID MALAN: Und auch negativ. 331 00:13:48,730 --> 00:13:50,220 >> MARIA: Und auch negativen, yep. 332 00:13:50,220 --> 00:13:51,450 Und 0. 333 00:13:51,450 --> 00:13:54,250 Dann haben wir Schwimmern, die sind Gleitkommazahlen. 334 00:13:54,250 --> 00:13:58,360 Also das ist, alle reellen Zahlen dass haben Dezimalstellen. 335 00:13:58,360 --> 00:14:03,960 So 5.0, 5.2, und noch mehr Ziffern nach dem Komma, 336 00:14:03,960 --> 00:14:05,620 als auch, und auch negative. 337 00:14:05,620 --> 00:14:07,530 Dann haben wir char der ein Zeichen. 338 00:14:07,530 --> 00:14:10,240 Also ich denke, über die wir gesprochen Dieses in der Vorlesung heute. 339 00:14:10,240 --> 00:14:15,682 Aber wir haben Briefe, für example-- A, B, C-, die als char gespeichert werden können. 340 00:14:15,682 --> 00:14:18,390 Aber dann haben wir viel mehr Symbole dass als char gespeichert werden. 341 00:14:18,390 --> 00:14:22,380 Und diejenigen, werden als ASCII gespeichert. 342 00:14:22,380 --> 00:14:25,280 >> Und dann haben wir bool, die Booleans sind. 343 00:14:25,280 --> 00:14:29,067 Und diejenigen zu bewerten, um Richtig oder Falsche oder 1 bzw. 0 sind. 344 00:14:29,067 --> 00:14:31,650 DAVID MALAN: Und daran erinnern, dass bool kommt von der CS50-Bibliothek. 345 00:14:31,650 --> 00:14:33,300 So dass es nicht in die gebaut C, aber es ist super nützlich 346 00:14:33,300 --> 00:14:34,850 die Vorstellung von wahr und falsch haben. 347 00:14:34,850 --> 00:14:36,990 Und auch wenn Sie könnte Spaß Tatsache think--. 348 00:14:36,990 --> 00:14:43,700 Ein bool technisch braucht, wie viele Bits, wirklich, zu vertreten Wahre gegen falsch? 349 00:14:43,700 --> 00:14:47,910 Wie viele Bits glauben Sie, Sie müssten, maximal? 350 00:14:47,910 --> 00:14:48,790 Ja, nur eine. 351 00:14:48,790 --> 00:14:52,077 So stellt sich heraus, dass C kann Ihnen nicht nur ein bisschen. 352 00:14:52,077 --> 00:14:54,160 Die kleinste Maßeinheit Sie bekommen, ist acht. 353 00:14:54,160 --> 00:14:57,090 So ist es ein wenig verschwenderisch sie bist du Verwendung eines ganzen Byte oder acht Bits, 354 00:14:57,090 --> 00:14:58,340 Vertretungs Wahr oder Falsch. 355 00:14:58,340 --> 00:15:01,807 Aber das ist nur die Art, wie es ist in C von der CS50-Bibliothek implementiert. 356 00:15:01,807 --> 00:15:04,890 MARIA: Und dann die, die wir sind nicht darüber, wie umfangreich sprechen 357 00:15:04,890 --> 00:15:08,060 Recht now-- Doppel, das ist für größere schwimmt. 358 00:15:08,060 --> 00:15:09,811 Lang lang und kurz sind auch für ganze Zahlen sind. 359 00:15:09,811 --> 00:15:10,643 DAVID MALAN: In der Tat. 360 00:15:10,643 --> 00:15:13,190 In Hacker-Ausgabe von einem pset, wir tatsächlich nutzen long long. 361 00:15:13,190 --> 00:15:15,801 Aber für die Standard Edition, es sollte nicht notwendig sein. 362 00:15:15,801 --> 00:15:16,300 MARIA: Kühle. 363 00:15:16,300 --> 00:15:17,361 OK. 364 00:15:17,361 --> 00:15:20,110 So operators-- Sie sein sollte vermutlich vertraut mit den meisten von diesen. 365 00:15:20,110 --> 00:15:22,620 Außerdem +; Subtraktion, -. 366 00:15:22,620 --> 00:15:24,070 Zur Multiplikation, haben wir die *. 367 00:15:24,070 --> 00:15:25,900 Also nicht das X, die wir verwenden in der Regel. 368 00:15:25,900 --> 00:15:27,840 Abteilung, haben wir die umgekehrten Schrägstrich. 369 00:15:27,840 --> 00:15:31,380 Und Modulo ist unsere letzte Operator, werden wir zu jetzt zu sprechen. 370 00:15:31,380 --> 00:15:35,610 Es ist ein Operator, der uns erlaubt nehmen Sie den Rest einer Division. 371 00:15:35,610 --> 00:15:40,630 Wenn wir also 4% 2, 4 unterteilt von 2 2 mit einem Rest von 0. 372 00:15:40,630 --> 00:15:41,740 So 4% 2 0. 373 00:15:41,740 --> 00:15:42,950 4% 3 1 ist. 374 00:15:42,950 --> 00:15:44,870 4% 5 4 ist, wie Sie konnte ahnen,. 375 00:15:44,870 --> 00:15:48,860 Und denken Sie daran, wenn Sie alle diese Betreiber, die PEMDAS Regeln verwenden. 376 00:15:48,860 --> 00:15:54,060 >> DAVID MALAN: So klar zu sein, wenn Sie tun 4% 2, warum ist das 0, genau? 377 00:15:54,060 --> 00:15:57,480 >> MARIA: Weil 4 geteilt durch 2 2 mit einem Rest von 0. 378 00:15:57,480 --> 00:16:00,752 So Modulo gibt uns diesen Rest als zu dem Ergebnis der Teilung gegenüberliegt. 379 00:16:00,752 --> 00:16:02,960 DAVID MALAN: Und in der Tat, was wir diese hilfreich finden 380 00:16:02,960 --> 00:16:05,640 für die ist, dass in einigen Problemen das ist nicht unbedingt eine, 381 00:16:05,640 --> 00:16:08,040 Wenn Sie das haben wollen eine Beschränkung selbst 382 00:16:08,040 --> 00:16:10,720 auf einen Bereich von Zahlen, wie 0 durch etwas, 383 00:16:10,720 --> 00:16:13,904 Sie Modulo verwenden, um zu wickeln früher als wie die 2 Mrd. 384 00:16:13,904 --> 00:16:16,320 oder der 4 Milliarden Wert, wir in Vorlesung gesprochen. 385 00:16:16,320 --> 00:16:16,870 >> Maria: Ja. 386 00:16:16,870 --> 00:16:19,429 Und selbst in "gierigen" Wir könnten. 387 00:16:19,429 --> 00:16:21,345 DAVID MALAN: Ja, in Problem Set ein, wie gut. 388 00:16:21,345 --> 00:16:22,520 Maria: Ja, schön. 389 00:16:22,520 --> 00:16:24,340 DAVID MALAN: Guter Hinweis. 390 00:16:24,340 --> 00:16:25,750 MARIA: Es tut uns leid. 391 00:16:25,750 --> 00:16:28,590 Boolean expressions-- so für Boolesche Operatoren, 392 00:16:28,590 --> 00:16:31,770 werden wir über alle sprechen von diesen, die Sie hier sehen. 393 00:16:31,770 --> 00:16:35,310 So jetzt, zwei müssen wir Gleichheitszeichen für equals aufgeführt. 394 00:16:35,310 --> 00:16:38,650 So sind zum Vergleich. 395 00:16:38,650 --> 00:16:40,830 Bisher haben wir nur gesehen habe ein Gleichheitszeichen. 396 00:16:40,830 --> 00:16:44,870 Das ist, wenn wir ordnen ein Wert einer Variablen zu. 397 00:16:44,870 --> 00:16:50,160 Also, wenn wir gesehen haben, int n = 5, dann Wir haben 5 der Variablen n zugeordnet. 398 00:16:50,160 --> 00:16:55,600 Aber wenn wir == für verwenden möchten Vergleich, können wir, wenn n == 5 zu überprüfen. 399 00:16:55,600 --> 00:16:58,310 Und wenn n == 5, dann ist das wahr. 400 00:16:58,310 --> 00:17:01,950 >> So Boolesche Operatoren ermöglichen es uns, im Grunde, 401 00:17:01,950 --> 00:17:04,670 Boolesche bewerten Ausdrücke auf True oder False. 402 00:17:04,670 --> 00:17:07,819 Also nicht equals-- haben wir die Ausrufezeichen und Gleichen. 403 00:17:07,819 --> 00:17:14,240 So konnten wir auch prüfen, ob n nicht gleich 5-- so n! = 5. 404 00:17:14,240 --> 00:17:17,640 Kleiner als, kleiner als oder gleich, größer als, größer als oder gleich, 405 00:17:17,640 --> 00:17:20,720 und dann haben wir die logische UND und das logische ODER. 406 00:17:20,720 --> 00:17:24,060 Und diejenigen, ermöglichen es uns, zu bewerten mehreren Booleschen Ausdrücken zusammen 407 00:17:24,060 --> 00:17:27,930 im Grunde zusammen als kommen einen ganzen Boolean Ausdruck. 408 00:17:27,930 --> 00:17:34,970 Also, wenn wir wollen, um eine Reihe zu finden, sagen, die größer ist als 5, aber weniger als 15 409 00:17:34,970 --> 00:17:39,810 zur gleichen Zeit, möchten wir den Einsatz logischer AND-Operator, um zu sehen, wenn n 410 00:17:39,810 --> 00:17:42,937 größer als 5 && n weniger als 15. 411 00:17:42,937 --> 00:17:44,770 DAVID MALAN: Und hier, Auch ist es wirklich einfach 412 00:17:44,770 --> 00:17:47,290 früh versehentlich Verwenden Sie einfach ein einzelnes und-Zeichen 413 00:17:47,290 --> 00:17:48,572 oder eine einzelne vertikale Leiste. 414 00:17:48,572 --> 00:17:51,280 Und hoffentlich wird der Compiler schreien Sie, weil sie tatsächlich 415 00:17:51,280 --> 00:17:52,530 haben eine ganz andere Bedeutung. 416 00:17:52,530 --> 00:17:55,660 Für diejenigen, die neugierig, sie sind für bitweise Operationen verwendet wird, 417 00:17:55,660 --> 00:17:57,197 die auf einzelne Bits. 418 00:17:57,197 --> 00:17:58,780 Aber Sie wollen das Paar von ihnen hier. 419 00:17:58,780 --> 00:18:01,560 Und super wichtig ist, dass erste, das Gleichheitszeichen, 420 00:18:01,560 --> 00:18:05,270 dem die Gleichheitsoperator wie zu dem Zuweisungsoperator gegenüber. 421 00:18:05,270 --> 00:18:08,552 >> MARIA: Und der senkrechte Strich ist zwischen dem zu löschen und entfernt. 422 00:18:08,552 --> 00:18:09,260 DAVID MALAN: Ja. 423 00:18:09,260 --> 00:18:11,420 An einem typischen US-Tastatur. 424 00:18:11,420 --> 00:18:13,190 >> Maria: Ja. 425 00:18:13,190 --> 00:18:15,890 Lassen Sie uns also rechts in springen bedingte Anweisungen. 426 00:18:15,890 --> 00:18:18,300 In Scratch, haben Sie bereits gesehen, wahrscheinlich, 427 00:18:18,300 --> 00:18:22,730 if-Anweisungen, mit denen Sie überprüfen Sie, ob etwas wahr ist, dann 428 00:18:22,730 --> 00:18:23,660 etwas anderes tun. 429 00:18:23,660 --> 00:18:28,410 So können Sie gesucht haben könnte zu überprüfen, ob Ihre Sprite 430 00:18:28,410 --> 00:18:31,410 berührt einen anderen Sprite oder der Rand des Bildschirms. 431 00:18:31,410 --> 00:18:35,520 Und dann könnten Sie wollte haben beendet das Spiel oder etwas anderes tun. 432 00:18:35,520 --> 00:18:40,000 So der Syntax für die ist "if (Bedingung)." 433 00:18:40,000 --> 00:18:46,820 Also, wenn Ihr Sprite etwas zu berühren, dann tun, ist in geschweiften Klammern. 434 00:18:46,820 --> 00:18:48,980 >> Dann haben wir if-else-Anweisungen. 435 00:18:48,980 --> 00:18:54,080 Else ermöglicht es uns, etwas zu tun, wenn die Bedingung, dass wir 436 00:18:54,080 --> 00:18:55,870 überprüfen Sie in der Anfang ist nicht wahr. 437 00:18:55,870 --> 00:19:01,530 Also, wenn der Sprite Berühren der Grenz dies tun, sonst noch etwas anderes. 438 00:19:01,530 --> 00:19:04,030 So sonst etwas anderes zu tun. 439 00:19:04,030 --> 00:19:07,530 Dann haben wir ein kurzes Beispiel. 440 00:19:07,530 --> 00:19:11,551 Also, wenn (military_time <12), die wir wollen printf "Guten Morgen!" 441 00:19:11,551 --> 00:19:13,300 Sonst sind wir zu gehen printf "Guten Abend!" 442 00:19:13,300 --> 00:19:14,860 Basic-Beispiel. 443 00:19:14,860 --> 00:19:15,680 >> DAVID MALAN: Good. 444 00:19:15,680 --> 00:19:16,760 >> MARIA: Kühle. 445 00:19:16,760 --> 00:19:18,560 Jetzt haben wir also switch-Anweisungen. 446 00:19:18,560 --> 00:19:21,960 Schalten Aussagen können im Allgemeinen ermöglichen es uns, eine Menge von der gleichen Sache zu tun 447 00:19:21,960 --> 00:19:25,070 dass wir gerade sprachen etwa mit if-Anweisungen. 448 00:19:25,070 --> 00:19:29,440 Zum Beispiel, jetzt haben wir die allgemeine Form der switch-Anweisung 449 00:19:29,440 --> 00:19:33,870 dass ermöglicht es uns, nehmen eine Variable namens n 450 00:19:33,870 --> 00:19:37,670 und vergleichen Sie sie mit viel verschiedene Werte, die wir hier 451 00:19:37,670 --> 00:19:40,010 haben Constant1, constant2 genannt. 452 00:19:40,010 --> 00:19:41,150 Vielleicht müssen wir noch viel mehr. 453 00:19:41,150 --> 00:19:42,930 Und das sind Fälle genannt. 454 00:19:42,930 --> 00:19:46,280 >> Wenn wir also ein Schalter statement-- und das funktioniert 455 00:19:46,280 --> 00:19:50,580 nur für integers-- haben wir eine Variable in diesem Fall, dass n ist. 456 00:19:50,580 --> 00:19:53,840 Wenn die Variable n gleich wir constant1 457 00:19:53,840 --> 00:19:59,720 wird einige Code-Snippet ausführen oder etwas, das wir tun wollen. 458 00:19:59,720 --> 00:20:01,280 Und dann würden wir brechen. 459 00:20:01,280 --> 00:20:04,820 So ist die Pause bedeutet, dass die switch-Anweisung 460 00:20:04,820 --> 00:20:08,120 stoppt die Ausführung, wenn n gleich constant1, 461 00:20:08,120 --> 00:20:09,752 und dann das Programm wird fortgesetzt. 462 00:20:09,752 --> 00:20:11,835 Es wird von der Ausfahrt aus switch-Anweisung und es wird 463 00:20:11,835 --> 00:20:13,520 weiterhin etwas anderes zu tun. 464 00:20:13,520 --> 00:20:17,204 >> Wenn jedoch nicht gleich n Constant1, dann Fall für constant2 465 00:20:17,204 --> 00:20:17,870 wird geprüft. 466 00:20:17,870 --> 00:20:21,750 Also, wenn n gleich constant2, dass andere Code-Snippet wird ausgeführt. 467 00:20:21,750 --> 00:20:23,850 Und dann werden sie zu brechen wenn das gleich zu. 468 00:20:23,850 --> 00:20:27,580 Und dann können wir also-- nicht unbedingt, though-- einen Standardfall, 469 00:20:27,580 --> 00:20:32,290 was passiert, wenn n nicht gleich jedem der Fälle, die Sie aufgeführt haben. 470 00:20:32,290 --> 00:20:35,400 Und im Standardfall haben wir auch müssen nicht unbedingt eine Pause 471 00:20:35,400 --> 00:20:39,271 da der Switch-Anweisung wird wissen, dass es nach dem Standard enden muss 472 00:20:39,271 --> 00:20:40,270 Fall, wenn das der Fall ist. 473 00:20:40,270 --> 00:20:42,140 >> DAVID MALAN: Aber stilistisch, wir es immer drin. 474 00:20:42,140 --> 00:20:42,540 >> Maria: Ja. 475 00:20:42,540 --> 00:20:42,710 >> DAVID MALAN: Ja. 476 00:20:42,710 --> 00:20:44,750 So vor allem beim Start aus, vor allem, wenn unter den weniger 477 00:20:44,750 --> 00:20:47,458 komfortabel, würde ich persönlich nur empfehlen, mit den IFS-Stick 478 00:20:47,458 --> 00:20:51,564 und IFS-elses und if-else-if-elses usw., wenn nur 479 00:20:51,564 --> 00:20:53,480 weil sie ein wenig einfacher. 480 00:20:53,480 --> 00:20:56,142 Dies ist ein nettes Optimierung oder manchmal sogar ästhetisch es 481 00:20:56,142 --> 00:20:57,350 macht den Code besser lesbar. 482 00:20:57,350 --> 00:20:59,599 Und in der Tat wahrscheinlich Mitte des Semesters werden wir ein Problem zu sehen 483 00:20:59,599 --> 00:21:02,504 gesetzt, wo es sieht einfach besser aus und leichter für den Menschen gelesen 484 00:21:02,504 --> 00:21:03,670 durch Verwendung einer Switch-Anweisung. 485 00:21:03,670 --> 00:21:05,460 Aber keine Sorge zu zu früh, klammerte sich an diese. 486 00:21:05,460 --> 00:21:05,680 >> Maria: Ja. 487 00:21:05,680 --> 00:21:08,840 Wenn Sie haben eine Menge von if-Anweisungen, es könnte nur nicht sehr lesbar. 488 00:21:08,840 --> 00:21:10,965 Es ist vielleicht nicht sehr schnell sein für Sie, um durch sie zu gehen. 489 00:21:10,965 --> 00:21:13,230 So schalten Aussagen sehr nützlich sein, wie gut. 490 00:21:13,230 --> 00:21:17,900 Und auch nicht remember-- nicht vergessen, die Pausen in es gesetzt. 491 00:21:17,900 --> 00:21:20,330 >> DAVID MALAN: Kann mich nicht erinnern diese. 492 00:21:20,330 --> 00:21:24,890 >> MARIA: Denn dann könnten Sie fallen, durch von Fall zu Fall. 493 00:21:24,890 --> 00:21:27,930 Also lassen Sie uns sagen, dass bei Constant1 nicht über eine break-Anweisung in ihm. 494 00:21:27,930 --> 00:21:31,920 Dann könnten wir durchfallen Innengehäuse constant2. 495 00:21:31,920 --> 00:21:35,070 Und wir wollen nicht, dass, wenn zu tun wir haben bereits bei Constant1 erreicht 496 00:21:35,070 --> 00:21:37,830 und es ist gleich n ist. 497 00:21:37,830 --> 00:21:45,100 >> So, zum Beispiel, wenn wir eine Variable haben n, die eine Klassennummer enthält, 498 00:21:45,100 --> 00:21:48,990 und wir sehen, was die wollen, Klasse ist--, wenn n gleich 50, 499 00:21:48,990 --> 00:21:51,957 wir gehen zu drucken "CS50 ist Einführung in die Informatik I " 500 00:21:51,957 --> 00:21:53,040 Dann werden wir zu brechen. 501 00:21:53,040 --> 00:21:53,920 Das ist schon alles. 502 00:21:53,920 --> 00:21:55,950 Wenn jedoch gleich n bis 51, werden wir 503 00:21:55,950 --> 00:21:58,494 drucken "CS51 ist Einleitung in die Informatik II. " 504 00:21:58,494 --> 00:21:59,910 Dann wieder, wir werden zu brechen. 505 00:21:59,910 --> 00:22:05,080 Allerdings, wenn dann setzen wir 124, 61, jeder andere Zahl, die Sie vielleicht denken, 506 00:22:05,080 --> 00:22:06,890 oder das Programm wird nicht zu erkennen, dass. 507 00:22:06,890 --> 00:22:09,010 Also, es wird sagen: "Sorry, ich bin nicht vertraut mit dieser Klasse. " 508 00:22:09,010 --> 00:22:10,009 Und es geht um zu brechen. 509 00:22:10,009 --> 00:22:12,847 DAVID MALAN: Damit Sie wirklich sehen können, Die if, else if, else Idee hier. 510 00:22:12,847 --> 00:22:15,430 Es ist nur eine andere Syntax für genau die gleiche Idee zum Ausdruck bringen. 511 00:22:15,430 --> 00:22:17,690 >> MARIA: Genau. 512 00:22:17,690 --> 00:22:19,480 Jetzt haben wir unsere ternäre Operatoren. 513 00:22:19,480 --> 00:22:24,900 So ternäre Operatoren drei parts-- eine Bedingung, 514 00:22:24,900 --> 00:22:27,220 etwas zu tun, wenn die Bedingung wahr ist, 515 00:22:27,220 --> 00:22:29,730 und dann etwas zu tun wenn dieser Bedingung falsch ist. 516 00:22:29,730 --> 00:22:33,400 Sie sehen also, im Grunde, die Syntax, das hier. 517 00:22:33,400 --> 00:22:37,792 Wir haben die Fragezeichen, und dann the-- Wie nennen wir das? 518 00:22:37,792 --> 00:22:38,750 DAVID MALAN: Der Doppelpunkt. 519 00:22:38,750 --> 00:22:39,100 MARIA: Colon. 520 00:22:39,100 --> 00:22:39,599 Vielen Dank. 521 00:22:39,599 --> 00:22:41,880 Es tut uns leid. 522 00:22:41,880 --> 00:22:45,800 Also schauen wir uns an unserem Beispiel zu sehen, ob wir Sinn this-- machen 523 00:22:45,800 --> 00:22:47,840 class_num == 50. 524 00:22:47,840 --> 00:22:52,580 So, hier sehen wir unsere Boolean operator == dass die Variable class_num vergleicht 525 00:22:52,580 --> 00:22:53,100 bis 50. 526 00:22:53,100 --> 00:22:55,150 So class_num speichert eine ganze Zahl ist. 527 00:22:55,150 --> 00:22:58,180 Und wenn das ganze Zahl gleich 50, dann sind wir 528 00:22:58,180 --> 00:23:02,810 gehen zu speichern "David Malan" innerhalb des String-Professor. 529 00:23:02,810 --> 00:23:05,912 Wenn Klassennummer nicht gleich 50 ", nicht David Malan" 530 00:23:05,912 --> 00:23:07,120 wird sich der Professor sein. 531 00:23:07,120 --> 00:23:08,630 >> DAVID MALAN: Vielen Dank. 532 00:23:08,630 --> 00:23:12,110 Und so scheint dies entspricht Was, würden Sie sagen, auf den ersten Blick? 533 00:23:12,110 --> 00:23:17,930 534 00:23:17,930 --> 00:23:19,960 >> MARIA: Mir scheint es, wie if-else-Anweisungen. 535 00:23:19,960 --> 00:23:20,709 >> DAVID MALAN: Ja. 536 00:23:20,709 --> 00:23:24,020 Und in der Tat ist diese Art einer hübschen Motto, 537 00:23:24,020 --> 00:23:27,520 sozusagen für die Umsetzung genau die Logik der if-else 538 00:23:27,520 --> 00:23:29,010 aber alles auf einmal zu tun. 539 00:23:29,010 --> 00:23:29,860 >> MARIA: Genau. 540 00:23:29,860 --> 00:23:30,360 Ja. 541 00:23:30,360 --> 00:23:33,520 So if-else-Anweisungen könnte nehmen eine Menge Platz. 542 00:23:33,520 --> 00:23:36,283 Sie könnten zu lang sein, etwas so einfaches wie diese. 543 00:23:36,283 --> 00:23:38,350 Also das kann sehr sein prägnant und sehr nett. 544 00:23:38,350 --> 00:23:40,880 545 00:23:40,880 --> 00:23:46,820 So, jetzt sind wir in der Suche zu gehen etwas wieder und wieder ausgeführt wird, 546 00:23:46,820 --> 00:23:50,060 so das Prüfen auf das mehrfach konditionieren 547 00:23:50,060 --> 00:23:53,510 und dann weiter, etwas zu tun wobei die Bedingung wahr ist. 548 00:23:53,510 --> 00:23:56,740 So bringt uns diese schön in while-Schleifen. 549 00:23:56,740 --> 00:23:59,270 >> Auf der linken Seite haben wir unsere erste while-Schleife. 550 00:23:59,270 --> 00:24:03,840 So, während etwas wahr ist, etwas zu tun, wieder und wieder. 551 00:24:03,840 --> 00:24:08,850 So stellen Sie sicher zu bemerken, dass unsere Voraussetzung hier ist an der Spitze validiert. 552 00:24:08,850 --> 00:24:14,150 Während bei unserem zweiten loop-- wir nennen dass eine do-while loop-- wir etwas tun, 553 00:24:14,150 --> 00:24:15,890 dann überprüfen wir für einen Zustand. 554 00:24:15,890 --> 00:24:17,980 Und wenn dieser Bedingung weiterhin um wahr zu sein, 555 00:24:17,980 --> 00:24:20,150 wir zurückgehen und die Sache erneut. 556 00:24:20,150 --> 00:24:23,360 Der Hauptunterschied ist, wo die Bedingung für die überprüft. 557 00:24:23,360 --> 00:24:29,260 Und der Code kann nicht sein, ausgeführt, wenn die Bedingung nicht 558 00:24:29,260 --> 00:24:30,430 wahr mit der while-Schleife. 559 00:24:30,430 --> 00:24:33,050 Während bei der do-while- Loop, den Code müssen wir 560 00:24:33,050 --> 00:24:35,380 Das ist immer mindestens einmal ausgeführt wird. 561 00:24:35,380 --> 00:24:37,470 Und dann, während die Bedingung weiterhin um wahr zu sein, 562 00:24:37,470 --> 00:24:39,960 wir zurück zu gehen und durchlaufen wieder nach innen. 563 00:24:39,960 --> 00:24:43,625 Also, warum Sie denken, wir würden eine do-while-Schleife über eine while-Schleife? 564 00:24:43,625 --> 00:24:48,221 565 00:24:48,221 --> 00:24:48,720 Recht. 566 00:24:48,720 --> 00:24:52,600 Wenn wir also die Eingabeaufforderung möchten Benutzer für irgendeine Art von Eingabe, 567 00:24:52,600 --> 00:24:55,400 wenn wir sie fragen wollen , ihren Namen geben, 568 00:24:55,400 --> 00:24:57,342 wir wollen wenigstens einmal fragen. 569 00:24:57,342 --> 00:24:59,050 Und wenn sie geben dass Namen, wir sind nicht 570 00:24:59,050 --> 00:25:00,740 gehen, um sie erneut zu fragen weil wir bereits wissen. 571 00:25:00,740 --> 00:25:02,656 Aber wenn sie nicht eingeben ihren Namen, oder wenn sie 572 00:25:02,656 --> 00:25:05,787 geben Sie etwas, das ist offensichtlich nicht ein Name, 573 00:25:05,787 --> 00:25:08,120 wollen wir noch weiter fragen sie über die für ihren Namen. 574 00:25:08,120 --> 00:25:10,710 >> DAVID MALAN: Und in der Vorlesung wir eines hatten wie dies mit dem zu bekommen positive int 575 00:25:10,710 --> 00:25:13,550 Beispielsweise, wo es nichts zu überprüfen Sie zuerst, weil Sie nicht einmal 576 00:25:13,550 --> 00:25:14,190 bekommen einen int. 577 00:25:14,190 --> 00:25:16,680 So zu tun, wollen wir this-- erhalten eine int vom user-- 578 00:25:16,680 --> 00:25:18,860 dann überprüfen Sie es, vielleicht, wieder und wieder und wieder. 579 00:25:18,860 --> 00:25:21,030 >> MARIA: Genau. 580 00:25:21,030 --> 00:25:22,060 Für loops-- OK. 581 00:25:22,060 --> 00:25:25,842 Für Schleifen können es uns ermöglichen, fast zu tun genau dasselbe, wie gut. 582 00:25:25,842 --> 00:25:27,300 Es ist eigentlich genau dasselbe. 583 00:25:27,300 --> 00:25:30,190 Also es gibt nichts, Sie for-Schleifen tun können 584 00:25:30,190 --> 00:25:32,840 dass Sie nicht in der Lage sein, mit while-Schleifen zu tun. 585 00:25:32,840 --> 00:25:36,900 Aber für Schleifen mag ein wenig etwas mehr syntaktisch kompliziert 586 00:25:36,900 --> 00:25:39,730 weil sie drei Teile im Inneren, was 587 00:25:39,730 --> 00:25:42,990 vorher war nur die Zustand mit While-Schleifen. 588 00:25:42,990 --> 00:25:48,260 So ist der erste Teil, den Sie Meer, die links-die meisten, haben wir "int Zwerge = 0." 589 00:25:48,260 --> 00:25:51,490 Also das ist, wo wir initialisieren unseren variabel. 590 00:25:51,490 --> 00:25:55,210 >> Dann haben wir ein Semikolon und "Zwerge <7." 591 00:25:55,210 --> 00:25:57,100 Also das ist, wo sich Zustand tatsächlich ist. 592 00:25:57,100 --> 00:26:00,170 Also das ist, was wir hätten legen sich lediglich in der während loop-- 593 00:26:00,170 --> 00:26:01,880 ", während Zwerge <7." 594 00:26:01,880 --> 00:26:05,380 Hier, das geht in die Mitte unseres for-Schleife. 595 00:26:05,380 --> 00:26:07,190 So "dwaves <7." 596 00:26:07,190 --> 00:26:11,350 Und dann unsere letzte Teil ist "Zwerge ++" Das ist, wo wir unsere Variable aktualisieren. 597 00:26:11,350 --> 00:26:15,470 Also das Wichtigste zu erkennen, ist, dass diese 598 00:26:15,470 --> 00:26:22,010 wird sich durch diese for-Schleife gehen sieben Mal und führen siebenmal. 599 00:26:22,010 --> 00:26:24,020 So haben wir sieben Zwerge, und sie sind alle 600 00:26:24,020 --> 00:26:26,020 gehen zu sagen: "Ich bin hier, um Ihnen zu helfen, Snow White " 601 00:26:26,020 --> 00:26:28,860 weil sie bereit sind Schneewittchen helfen. 602 00:26:28,860 --> 00:26:33,600 >> Mit While-Schleifen, die wir getan haben würde die Initialisierung und Aktualisierung 603 00:26:33,600 --> 00:26:37,490 nicht im Zustand wieder, aber entweder vor oder innerhalb der while-Schleife 604 00:26:37,490 --> 00:26:40,210 um sicherzustellen, dass wir-- da Wir müssen immer die Teile. 605 00:26:40,210 --> 00:26:42,835 Also, um sicherzustellen, dass wir sie wären wir noch immer haben sie hinzugefügt 606 00:26:42,835 --> 00:26:44,580 auf, nur nicht in den Klammern. 607 00:26:44,580 --> 00:26:47,288 >> DAVID MALAN: Und so sieht es aus like-- in der Vorlesung, zum Beispiel, 608 00:26:47,288 --> 00:26:50,250 Ich fast immer, wie, i und n und ziemlich langweilig Variablen. 609 00:26:50,250 --> 00:26:53,050 Es sieht aus wie können Sie mehr verwenden schlaue Namen Variablen, auch. 610 00:26:53,050 --> 00:26:56,300 >> Maria: Ja, es ist eigentlich sehr schön um ein bisschen mehr beschreibenden Variablen verwenden 611 00:26:56,300 --> 00:26:59,400 weil vor allem, wenn jemand anders ist Lesen Ihres code-- vielleicht sind Sie Grader 612 00:26:59,400 --> 00:27:00,940 oder wenn Sie zusammen sind mit jemandem-- 613 00:27:00,940 --> 00:27:03,481 Sie sicherstellen, dass sie wollen zu verstehen, was du tust. 614 00:27:03,481 --> 00:27:05,750 615 00:27:05,750 --> 00:27:06,400 >> OK. 616 00:27:06,400 --> 00:27:11,435 Das ist also etwas sehr funky-- for-Schleife innerhalb einer for-Schleife. 617 00:27:11,435 --> 00:27:13,060 Ich weiß nicht, ob wir das schon gesehen habe. 618 00:27:13,060 --> 00:27:13,830 Wahrscheinlich nicht. 619 00:27:13,830 --> 00:27:17,750 Aber wir können tatsächlich this-- so Schleifen statt Schleifen. 620 00:27:17,750 --> 00:27:25,130 So hat jemand wollen vielleicht zu Fuß mich durch, was ist denn hier los? 621 00:27:25,130 --> 00:27:28,240 622 00:27:28,240 --> 00:27:29,490 DAVID MALAN: Ich werde einen Stich zu nehmen. 623 00:27:29,490 --> 00:27:29,970 MARIA: Kühle. 624 00:27:29,970 --> 00:27:30,636 DAVID MALAN: OK. 625 00:27:30,636 --> 00:27:34,690 Also, spoiler-- wir das Zeug drucken möchten das ist in der unteren rechten Ecke 626 00:27:34,690 --> 00:27:35,190 Dort. 627 00:27:35,190 --> 00:27:35,450 >> MARIA: Richtig. 628 00:27:35,450 --> 00:27:35,710 Ja ja. 629 00:27:35,710 --> 00:27:38,043 >> Nur so haben wir: DAVID MALAN bringe diese Beispielausgabe gibt. 630 00:27:38,043 --> 00:27:42,590 So kann ich aus dem ableiten, obersten Schleife, die Sie 631 00:27:42,590 --> 00:27:45,680 Iteration über die Zeilen äußersten Schleife, so zu sprechen. 632 00:27:45,680 --> 00:27:48,107 Und du bist Laufen Spalten mit der innersten Schleife. 633 00:27:48,107 --> 00:27:50,190 Und intuitiv, diese hoffentlich sinnvoll 634 00:27:50,190 --> 00:27:52,070 weil von der Natur der jedes Programm, das wir gesehen haben, 635 00:27:52,070 --> 00:27:55,570 vor, printf, die der ist Funktion verwenden wir letztlich 636 00:27:55,570 --> 00:27:58,190 hat die Fähigkeit, Dinge zu drucken aus im wesentlichen Zeile für Zeile. 637 00:27:58,190 --> 00:27:59,960 Wie, wenn Sie ausgegeben haben eine neue Linie, gibt es 638 00:27:59,960 --> 00:28:02,876 kein verdoppelt zurück und Druck etwas höher in dem Bildschirm zumindest 639 00:28:02,876 --> 00:28:04,530 nicht mit printf wie diese. 640 00:28:04,530 --> 00:28:07,750 >> Und so in diesem Zusammenhang macht es Sinne, dass die äußerste Schleife 641 00:28:07,750 --> 00:28:10,930 sollte an die Zeilen gemeint sein weil für jede gegebene Zeile, 642 00:28:10,930 --> 00:28:13,650 Sie gehen zu wollen, um gerade ausdrucken XXXXX, und dann 643 00:28:13,650 --> 00:28:15,520 gehen Sie in die nächste Zeile, XXXXX. 644 00:28:15,520 --> 00:28:17,317 So Reihen kommen zuerst. 645 00:28:17,317 --> 00:28:19,150 Und dann innerhalb jedes Reihe, Sie Spalten zu drucken. 646 00:28:19,150 --> 00:28:21,160 Wenn Sie versucht haben, es zu tun, die gegenüber, wäre es wahrscheinlich nicht 647 00:28:21,160 --> 00:28:21,690 kommen, wie Sie wollen. 648 00:28:21,690 --> 00:28:22,190 >> Maria: Ja. 649 00:28:22,190 --> 00:28:24,950 Wir konnten einfach nicht mehr zurück zu gehen die vorhergehende Zeile mit printf. 650 00:28:24,950 --> 00:28:27,658 >> DAVID MALAN: Und was ist interessant pro heutigen Chat über Umfang, 651 00:28:27,658 --> 00:28:31,600 eigentlich ist diese Zeile ist ein int das ist in der obersten Schleife deklariert. 652 00:28:31,600 --> 00:28:34,030 Aber beachten Sie, dass es noch Innenseite, sozusagen 653 00:28:34,030 --> 00:28:35,982 die geschweiften Klammern, dass unmittelbar folgen, 654 00:28:35,982 --> 00:28:38,440 auch wenn es technisch nicht innerhalb dieser geschweiften Klammern. 655 00:28:38,440 --> 00:28:41,750 So Zeile in Spielraum für die Gesamtheit der Code-Snippet, 656 00:28:41,750 --> 00:28:44,690 sowohl innerhalb des äußeren for-Schleife und Innenseite des inneren for-Schleife. 657 00:28:44,690 --> 00:28:48,050 Aber im Gegensatz dazu, wo ist Spalte im Umfang? 658 00:28:48,050 --> 00:28:49,810 Die Variable Spalte? 659 00:28:49,810 --> 00:28:51,310 Ja, nur in der Innenlooping. 660 00:28:51,310 --> 00:28:54,280 Und das ist in Ordnung, weil wir nicht zugreifen es außerhalb seiner geschweiften Klammern. 661 00:28:54,280 --> 00:28:57,280 Alles, was wir tun, ist Ausdruck einer neuen Linie ganz am Ende gibt. 662 00:28:57,280 --> 00:28:58,670 So dass in der Tat ist OK. 663 00:28:58,670 --> 00:29:03,740 >> So hat dies die Wirkung, sieht es so, tun drei Reihen und vier Spalten. 664 00:29:03,740 --> 00:29:04,370 >> MARIA: Richtig. 665 00:29:04,370 --> 00:29:06,270 So dass wir zuerst gehen durch unseren ersten Reihe. 666 00:29:06,270 --> 00:29:10,520 Und gerade in unserer ersten Reihe, wir tun das vier Spalten in der ersten Zeile. 667 00:29:10,520 --> 00:29:11,980 Also haben wir ausdrucken vier X. 668 00:29:11,980 --> 00:29:15,800 Und dann können wir das für die Schleife zu verlassen, da Wir haben bereits vier X gedruckt. 669 00:29:15,800 --> 00:29:17,100 Und wir drucken Sie eine neue Zeile. 670 00:29:17,100 --> 00:29:19,920 Und dann durch die wir gehen gleichen Prozess für zwei weitere Zeilen 671 00:29:19,920 --> 00:29:21,170 auf insgesamt drei machen. 672 00:29:21,170 --> 00:29:23,530 >> DAVID MALAN: Und es ist bemerkenswert, es ist nur ein Artefakt der Schriftart, die Tatsache, 673 00:29:23,530 --> 00:29:25,680 , dass der Beispielausgabe scheinen so viel größer, 674 00:29:25,680 --> 00:29:27,520 als ob es gibt noch mehr Zeilen als Spalten. 675 00:29:27,520 --> 00:29:29,824 Aber es ist nur, weil die X ist höher als breit ist. 676 00:29:29,824 --> 00:29:32,740 Das ist alles, was dort passiert ist, plus dem Leerraum zwischen den Zeilen. 677 00:29:32,740 --> 00:29:33,281 >> MARIA: Richtig. 678 00:29:33,281 --> 00:29:34,792 Cool. 679 00:29:34,792 --> 00:29:35,750 DAVID MALAN: Alles klar. 680 00:29:35,750 --> 00:29:39,830 So ein kurzer Blick auf Problem eingestellten, nehmen Sie alle mögliche Fragen, und dann vertagen? 681 00:29:39,830 --> 00:29:40,330 Gut. 682 00:29:40,330 --> 00:29:43,164 So in einem Problem eingestellt, gibt es drei Primär Herausforderungen letztlich. 683 00:29:43,164 --> 00:29:44,955 Aber zuerst, finden Sie dass das Problem eingestellt 684 00:29:44,955 --> 00:29:47,900 Spezifikation, wie bei vielen der psets diesem Herbst, wird Sie zu Fuß 685 00:29:47,900 --> 00:29:50,691 durch ein paar Aufwärmübungen, zeigen Sie ein paar Ressourcen 686 00:29:50,691 --> 00:29:52,440 dass Sie möglicherweise noch nicht gesehen haben. 687 00:29:52,440 --> 00:29:54,440 Beispielsweise CS50 hat eine Reihe von Kurzschlüssen, 688 00:29:54,440 --> 00:29:56,481 die Kurzvideos sind, nicht unähnlich, aber daß 689 00:29:56,481 --> 00:29:58,460 sind sehr Thema specific-- vielleicht fünf Minuten 690 00:29:58,460 --> 00:30:02,360 10 Minuten lang auf Schleifen oder auf Bedingungen oder auf Algorithmen 691 00:30:02,360 --> 00:30:04,125 oder höher auf mehr fortgeschrittene Themen, wie gut. 692 00:30:04,125 --> 00:30:06,000 Und wir in der Regel einbetten diejenigen in den problematischen 693 00:30:06,000 --> 00:30:07,950 Sätze so dass die Schüler eine Ressource mit dem 694 00:30:07,950 --> 00:30:10,840 Material, die möglicherweise zu überprüfen schon kommen in Vorlesung oder Abschnitt. 695 00:30:10,840 --> 00:30:13,220 Aber auf diese Weise ist es mehr konzentriert und mehr an ihren Fingerspitzen. 696 00:30:13,220 --> 00:30:15,928 >> Wir neigen auch dazu, in Problem einbetten setzt Dinge genannt Komplettlösungen. 697 00:30:15,928 --> 00:30:20,790 Also fast alle Beispiele, die ich tun, im Vortrag auf der Bühne hier haben wir auch 698 00:30:20,790 --> 00:30:24,565 haben vor der Kamera in Schuss voran eine langsamere, 699 00:30:24,565 --> 00:30:28,760 eine intime Komplettlösung von mir auf mein Laptop von diesem Code Zeile für Zeile 700 00:30:28,760 --> 00:30:31,427 so dass in der Klasse, werden wir oft überfliegen etwas oder jemand 701 00:30:31,427 --> 00:30:33,260 wird ein einzuwerfen Antwort auf eine Frage. 702 00:30:33,260 --> 00:30:35,820 Aber es muss nicht unbedingt sinken in für alle im Publikum. 703 00:30:35,820 --> 00:30:38,230 So werden Sie Code Komplettlösungen zu finden für die meisten Beispiele 704 00:30:38,230 --> 00:30:40,950 dass wir hier in der Vorlesung, so dass Sie durch sie in Ihrem eigenen Tempo zu gehen 705 00:30:40,950 --> 00:30:43,580 und Rücklauf oder der schnelle Vor- oder überspringen haupt, wenn Sie möchten. 706 00:30:43,580 --> 00:30:45,356 >> Oft gibt es ein paar Warm-up-Fragen, 707 00:30:45,356 --> 00:30:47,105 bitten Sie, Art verstärken diese Material 708 00:30:47,105 --> 00:30:50,250 und stellen Sie sicher, dass Sie vor der bequemen sind Sie fahren Sie mit dem Rest der pset. 709 00:30:50,250 --> 00:30:51,700 Und dann natürlich gibt es die pset sich. 710 00:30:51,700 --> 00:30:53,450 Und eines der Dinge, wir ganz bewusst 711 00:30:53,450 --> 00:30:57,202 do in CS50 ist fast jeder uninteressant oder intellektuell uninteressant 712 00:30:57,202 --> 00:30:58,910 mechanischer Schritt, haben Sie vielleicht zu tun 713 00:30:58,910 --> 00:31:00,519 ist fast immer sehr gut dokumentiert. 714 00:31:00,519 --> 00:31:03,560 Im Laufe des Begriffs, werden wir beginnen, mehr rhetorische Fragen zu stellen, 715 00:31:03,560 --> 00:31:06,187 wie erinnern, wie man dieses oder jenes zu tun? 716 00:31:06,187 --> 00:31:08,520 Aber im Allgemeinen, werden Sie feststellen dass das Problem Sets erhalten Sie 717 00:31:08,520 --> 00:31:10,269 durch die Mechanik von etwas, so dass 718 00:31:10,269 --> 00:31:14,160 die interessanten, intellektuellen Herausforderungen letztlich, Sie verließ die Schüler. 719 00:31:14,160 --> 00:31:17,390 >> Mit dieser sagte, Zamyla, dem wir gehalten Bezugnahme heute in Vortrag, 720 00:31:17,390 --> 00:31:20,190 ist einer unserer langjährigen Mitarbeiter Mitglied, hält auch Komplettlösungen 721 00:31:20,190 --> 00:31:24,520 auf bestimmte pset Probleme wie mario und gierig, wenn auch nicht in diesem Jahr zu wässern. 722 00:31:24,520 --> 00:31:26,540 Und es ist in jenen Komplettlösungen, dass sie oft 723 00:31:26,540 --> 00:31:29,450 bietet einige Tipps und Tricks für wie es weitergehen, nie sagen Sie 724 00:31:29,450 --> 00:31:31,810 genau das, was zu tun, aber rather-- wie ein Zustand, 725 00:31:31,810 --> 00:31:35,200 wenn Sie will-- geben Sie mindestens einen paar Ideen, so dass es bis zu Ihnen, 726 00:31:35,200 --> 00:31:37,830 letztlich zu entscheiden wie sich ihnen zu nähern. 727 00:31:37,830 --> 00:31:41,200 >> MARIA: eine hochrangige Art wie Verständnis der Logik, was 728 00:31:41,200 --> 00:31:42,220 wir fragen, was Sie tun. 729 00:31:42,220 --> 00:31:42,485 >> DAVID MALAN: Genau. 730 00:31:42,485 --> 00:31:44,190 Und in der Tat ist Zamyla Komplettlösungen gemeint sind 731 00:31:44,190 --> 00:31:46,190 häufig beantworten die fragte Frage, wo 732 00:31:46,190 --> 00:31:48,610 Ich begann zu tun, vor allem, wenn diese langen Spezifikationen sind 733 00:31:48,610 --> 00:31:51,960 etwas abschreckend gegebenen gesamten Text und Bilder, die sie haben in ihnen. 734 00:31:51,960 --> 00:31:54,890 >> So water.c, finden Sie nachdem Sie sie abgeschlossen haben, 735 00:31:54,890 --> 00:31:56,920 tatsächlich relativ unkompliziert. 736 00:31:56,920 --> 00:31:58,882 Absolut sind ein Haufen der Sie gehen zu schlagen 737 00:31:58,882 --> 00:32:01,840 Ihren Kopf gegen die Wand zu versuchen um herauszufinden, warum es nicht kompilieren 738 00:32:01,840 --> 00:32:03,450 oder warum es nicht ordnungsgemäß ausgeführt. 739 00:32:03,450 --> 00:32:05,040 Aber, sobald Sie fertig sind mit ihm und wenn man einmal 740 00:32:05,040 --> 00:32:07,620 verbrachte einige Zeit Ringen mit jeder der Probleme, die Sie haben konnten, 741 00:32:07,620 --> 00:32:09,490 Sie werden feststellen, dass es ein sehr kurzes Programm. 742 00:32:09,490 --> 00:32:11,770 Es kann in nur wenigen getan werden Codezeilen, von denen die meisten 743 00:32:11,770 --> 00:32:15,030 wir hier in der Vorlesung schon gesehen, wenn Sie montieren die richtigen Bausteine. 744 00:32:15,030 --> 00:32:16,810 >> Und wie wir vorschlagen hier, es geht zu fragen, 745 00:32:16,810 --> 00:32:22,250 Sie, wie viele Minuten angeben jemand unter der Dusche auf dem Campus. 746 00:32:22,250 --> 00:32:24,779 Wir geben Sie in das Problem stellen Sie die Geschwindigkeit der Strömung des Wassers 747 00:32:24,779 --> 00:32:27,320 in, wie, ein Low-Flow-Dusch Kopf, ähnlich wie die Seinfeld-Clip 748 00:32:27,320 --> 00:32:29,180 wir gestern gesehen oder das Gegenteil davon. 749 00:32:29,180 --> 00:32:30,971 Und dann müssen Sie nur noch um ein wenig Mathematik zu tun, 750 00:32:30,971 --> 00:32:34,710 really-- Arithmetik unter Verwendung von C zu sagen, uns, wie viele, etwa, Flaschen Wasser 751 00:32:34,710 --> 00:32:37,720 ist, dass gleich, wenn wir wobei eine n-Minuten-Dusche. 752 00:32:37,720 --> 00:32:41,389 >> Jetzt, im mario.c, das wird auf eine etwas längere Programm sein. 753 00:32:41,389 --> 00:32:42,930 Es ist immer noch nicht gehen, um diese lang sein. 754 00:32:42,930 --> 00:32:45,130 Nur ein paar Zeilen länger als water.c. 755 00:32:45,130 --> 00:32:48,230 Aber es wird Gelegenheit die alte Schule Mario neu 756 00:32:48,230 --> 00:32:50,670 Pyramide aus Super Mario Brüder oder ein Follow-on. 757 00:32:50,670 --> 00:32:53,510 Es wird nicht als hübscher aussehen oder so bunt wie, dass man dort. 758 00:32:53,510 --> 00:32:56,468 Wir sind gerade dabei, etwas Hashtags verwenden wie wir hier auf dem Bildschirm 759 00:32:56,468 --> 00:32:58,120 Verwendung von ASCII-Text. 760 00:32:58,120 --> 00:33:00,362 Aber es wird die gleiche Idee nähern. 761 00:33:00,362 --> 00:33:02,570 Und es wird eine sein, Übung, die auf den ersten Blick 762 00:33:02,570 --> 00:33:04,720 scheint ziemlich simple-- gerade drucken Sie eine einfache Pyramide. 763 00:33:04,720 --> 00:33:07,345 Aber es gibt ein paar Eigenschaften hier, die interessant sind. 764 00:33:07,345 --> 00:33:12,400 Beachten Sie, dass der äußerst rechten Rand die Pyramide hat eigentlich zwei Breite. 765 00:33:12,400 --> 00:33:14,570 Es gibt also zwei gleiche Höhe Säulen, die 766 00:33:14,570 --> 00:33:16,804 macht es erfordern ein wenig wenig Überlegung zu machen 767 00:33:16,804 --> 00:33:19,720 sicher, dass Sie genau das richtige, da um nur ein perfekt abgewinkelten gegen 768 00:33:19,720 --> 00:33:20,220 Leitung. 769 00:33:20,220 --> 00:33:23,340 Also das ist ein bisschen wie eine Ecke Fall aber passt das eigentliche Spiel. 770 00:33:23,340 --> 00:33:27,610 >> Und es ist auch auf den ersten nicht-offensichtliche Blick, wie man den Leerraum zu drucken. 771 00:33:27,610 --> 00:33:29,430 Also wenn ich mir die Beispielausgabe hier-- 772 00:33:29,430 --> 00:33:32,440 und es ist auch in der spec-- es Art sieht aus wie ein Rechteck, 773 00:33:32,440 --> 00:33:35,120 sondern eine Diagonale des Rechteck wurde abgehackt, 774 00:33:35,120 --> 00:33:37,320 und es ist nur Leerzeichen, so zu sprechen. 775 00:33:37,320 --> 00:33:40,100 Und so eine häufig gestellte Frage ist immer, gut, 776 00:33:40,100 --> 00:33:43,302 Wie kann ich die Hashtags bewegen nach rechts? 777 00:33:43,302 --> 00:33:44,760 Oder wie kann ich die Leerstellen zu drucken? 778 00:33:44,760 --> 00:33:46,860 Und es ist tatsächlich einfacher als die meisten Studenten denken. 779 00:33:46,860 --> 00:33:47,360 Recht? 780 00:33:47,360 --> 00:33:51,620 Sie können es visuell anzunähern, indem Sie gerade Drücken der Leertaste oder zweimal 781 00:33:51,620 --> 00:33:52,700 oder dreimal. 782 00:33:52,700 --> 00:33:56,260 >> Und so, obwohl wir fast mit printf immer ausdrucken, einen String oder ein int 783 00:33:56,260 --> 00:33:59,950 oder ein Wort wie "Hallo, Welt "oder eine Reihe von Wörtern, 784 00:33:59,950 --> 00:34:03,560 Sie auch einfach ausdrucken können Zitat, Raum, unquote. 785 00:34:03,560 --> 00:34:06,320 Und das wird tatsächlich geben Sie ein Leerzeichen gibt. 786 00:34:06,320 --> 00:34:08,330 So sollte man das im Hinterkopf und nicht overthink dies. 787 00:34:08,330 --> 00:34:10,570 Sie haben wirklich zu entscheiden, Zeile für Zeile für Zeile, 788 00:34:10,570 --> 00:34:14,280 nicht unähnlich Ihrem Beispiel ein Moment vor, wie viele von denen 789 00:34:14,280 --> 00:34:18,420 Spalten Leerzeichen und wie viele von ihnen sollten Hashtags werden. 790 00:34:18,420 --> 00:34:21,560 Es wird ein wenig Zeit zu nehmen, aber es ist letztlich ein Logik-Puzzle der Arten. 791 00:34:21,560 --> 00:34:22,060 >> Maria: Ja. 792 00:34:22,060 --> 00:34:25,060 Aber die Logik geht Zeile für Zeile wird sich hier sehr nützlich sein. 793 00:34:25,060 --> 00:34:25,810 DAVID MALAN: Ja. 794 00:34:25,810 --> 00:34:28,976 Ich denke, dass der Beispielcode Sie sogar gave-- obwohl es nicht ein komplettes Programm. 795 00:34:28,976 --> 00:34:34,247 Sie müssen noch int und Haupt und nichtig und # include stdio.h, 796 00:34:34,247 --> 00:34:35,580 eine Menge von dem Zeug, vom Vortrag. 797 00:34:35,580 --> 00:34:37,629 Aber die Bausteine scheint da zu sein. 798 00:34:37,629 --> 00:34:39,920 Und dann endlich ist etwas, ein wenig mehr algorithmischen. 799 00:34:39,920 --> 00:34:43,210 So stellt sich heraus, dass jederzeit gehen Sie in CVS oder einem Convenience-Store 800 00:34:43,210 --> 00:34:47,810 und jemand gibt dir bei der Kassierer Scheine oder Münzen als Wechselgeld, 801 00:34:47,810 --> 00:34:50,620 es stellt sich heraus, dass sie, die Menschen, ob sie es wissen oder nicht, 802 00:34:50,620 --> 00:34:53,300 Wahrscheinlich verwenden, was ist genannt Greedy-Algorithmus, 803 00:34:53,300 --> 00:34:58,170 wobei, wenn Sie schuldig sind, sagen, $ 21 in ändern, weil aus irgendeinem Grund 804 00:34:58,170 --> 00:35:01,580 Sie etwas sehr preiswert gekauft mit einem sehr großen Rechnung am CVS, 805 00:35:01,580 --> 00:35:05,910 es wäre wirklich ärgerlich, wenn die Kassiererin gab Ihnen 21 Einzel- oder, schlimmer noch 806 00:35:05,910 --> 00:35:07,629 doch, eine ganze Menge Münzen. 807 00:35:07,629 --> 00:35:10,670 Vielmehr, was eine vernünftige Person ist wahrscheinlich zu tun ist, sie gehen, 808 00:35:10,670 --> 00:35:14,224 zu schnappen Sie sich einen $ 20 und dann ein $ 1-Rechnung, und Hand, die Sie nur zwei Rechnungen in diesem Fall. 809 00:35:14,224 --> 00:35:17,390 MARIA: Und sie versuchen, zu minimieren, sind die Änderung, die sie geben zurück zu Ihnen. 810 00:35:17,390 --> 00:35:17,850 DAVID MALAN: Genau. 811 00:35:17,850 --> 00:35:19,540 Und gleichen Deal mit Münzen, wie gut. 812 00:35:19,540 --> 00:35:23,040 Wenn Sie schuldig sind, sagen, $ 0,50, hoffentlich haben Sie nicht wollen, 50 Pfennige. 813 00:35:23,040 --> 00:35:25,500 Sie möchten zwei statt Viertel, zum Beispiel. 814 00:35:25,500 --> 00:35:27,540 Nun bedeutet dies übernehmen dass die Kassiererin hat 815 00:35:27,540 --> 00:35:29,940 genug von jeder Konfession, dass er oder sie will, um Sie zu geben. 816 00:35:29,940 --> 00:35:32,148 Aber wir können Sie davon ausgehen, so weit in das Problem. 817 00:35:32,148 --> 00:35:35,590 Und das Ziel ist es letztendlich, um Implementierung in C-Code ein Greedy-Algorithmus. 818 00:35:35,590 --> 00:35:37,344 So dass der Benutzer berechtigt ist, zu geben, wie viel 819 00:35:37,344 --> 00:35:40,510 ändern er oder sie mit US-Dollar zu verdanken ist und Cent, eine Art von Gleitkomma- 820 00:35:40,510 --> 00:35:41,590 Wert wahrscheinlich. 821 00:35:41,590 --> 00:35:45,530 Und dann haben Sie die Mathematik zu tun zu haben und herauszufinden, algorithmisch, na ja, 822 00:35:45,530 --> 00:35:49,020 wie viele Münzen kann ich geben, Sie minimal, um Ihnen 823 00:35:49,020 --> 00:35:50,270 genau das Ausmaß der Veränderung. 824 00:35:50,270 --> 00:35:53,470 Aber es geht um eine sein paar knifflige Teile hier, nicht wahr? 825 00:35:53,470 --> 00:35:56,236 Als gäbe es das ganze Ungenauigkeit Thema. 826 00:35:56,236 --> 00:35:56,860 MARIA: Genau. 827 00:35:56,860 --> 00:35:59,114 So Floating-Point- Werte Ungenauigkeit. 828 00:35:59,114 --> 00:36:00,780 Haben wir darüber heute sprechen in Vorlesung? 829 00:36:00,780 --> 00:36:02,340 >> DAVID MALAN: Wir haben die zuletzt im Vortrag. 830 00:36:02,340 --> 00:36:03,506 Wir sprachen über Ungenauigkeit. 831 00:36:03,506 --> 00:36:08,840 Und Sie wollen nicht, um den Benutzer zu betrügen wie viel Veränderung, die er oder sie ist zu verdanken. 832 00:36:08,840 --> 00:36:11,290 Und so ist die Komplettlösung, in das Problem gesetzt Spezifikation 833 00:36:11,290 --> 00:36:15,990 darüber nachdenken, letztlich um wie Sie diese Ungenauigkeit abzuschwächen 834 00:36:15,990 --> 00:36:17,280 Fehler, die möglicherweise. 835 00:36:17,280 --> 00:36:21,050 Es ist vermeidbar, natürlich, für die Eingänge wir reden. 836 00:36:21,050 --> 00:36:23,590 Und in der Tat pennies-- vielleicht werden wir den Zamyla aufzuschieben, 837 00:36:23,590 --> 00:36:25,136 Ich denke, für die Tricks gibt. 838 00:36:25,136 --> 00:36:27,760 Also letztendlich, Sie finden werden Fortschreiten der Probleme in dieser Woche, 839 00:36:27,760 --> 00:36:30,700 von denen die erste ist ziemlich klein, dann mittel, dann ein wenig größer. 840 00:36:30,700 --> 00:36:33,200 Aber alle von ihnen nutzen das Gebäude Bausteine ​​aus der vergangenen Woche, 841 00:36:33,200 --> 00:36:35,280 von diesem supersection, Problem Set Spezifikation 842 00:36:35,280 --> 00:36:36,710 bringt Sie in unzähligen Ressourcen. 843 00:36:36,710 --> 00:36:41,000 Aber immer noch, wenn überhaupt zu kämpfen, besonders unter denen weniger komfortabel 844 00:36:41,000 --> 00:36:42,917 ohne vorherige Hintergrund, kommen zu Bürozeiten 845 00:36:42,917 --> 00:36:44,958 am Montag und Dienstag und Mittwoch und Donnerstag. 846 00:36:44,958 --> 00:36:46,950 Zum CS50 Diskutieren über der Kurs-Website, 847 00:36:46,950 --> 00:36:49,080 über die Sie unterhalten können mit Mitarbeitern und Klassenkameraden. 848 00:36:49,080 --> 00:36:51,670 >> Aber letztlich, ich denke, die beste Rat ist nur früh zu beginnen. 849 00:36:51,670 --> 00:36:54,711 Es ist nicht die Art von Klasse, die Sie sollte beginnen psets am Mittwoch, 850 00:36:54,711 --> 00:36:56,640 Nacht, oder noch schlimmer Donnerstag Abend. 851 00:36:56,640 --> 00:36:59,067 >> Maria: Meine beste Rat ist, bis Montag begonnen haben. 852 00:36:59,067 --> 00:36:59,900 DAVID MALAN: Montag. 853 00:36:59,900 --> 00:37:02,490 Also, wenn Sie nicht bereits-- nicht begonnen haben. 854 00:37:02,490 --> 00:37:04,732 Aber selbst wenn nicht Montag, dann am Dienstag. 855 00:37:04,732 --> 00:37:05,690 Je früher desto besser. 856 00:37:05,690 --> 00:37:08,605 Und das ist der Grund, warum die Natürlich hat so viele späten Tagen 857 00:37:08,605 --> 00:37:10,535 Sie ein bisschen ein zu geben psychologischen Druck 858 00:37:10,535 --> 00:37:13,684 um früher zu starten, aber immer noch lassen Dinge rutschen, wenn die Dinge länger dauern 859 00:37:13,684 --> 00:37:14,350 als Sie erwarten. 860 00:37:14,350 --> 00:37:17,950 >> MARIA: Und Sie, Gebrauch machen wollen, Bürozeiten so viel wie Sie können, auch. 861 00:37:17,950 --> 00:37:20,291 >> DAVID MALAN: Haben Sie Fragen? 862 00:37:20,291 --> 00:37:20,790 Gut. 863 00:37:20,790 --> 00:37:22,930 Nun, warum nicht wir hier zu vertagen? 864 00:37:22,930 --> 00:37:23,487