1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN: Dies ist das bequemer Schnitt 3 00:00:13,351 --> 00:00:16,309 aber das bedeutet nicht, dass, wenn Sie sich wie Sie nicht mehr bequem sind 4 00:00:16,309 --> 00:00:18,420 Sie werden die Dinge hier nicht zu erfahren. 5 00:00:18,420 --> 00:00:20,600 Also lasst uns loslegen. 6 00:00:20,600 --> 00:00:22,819 Haben Sie Dias haben gehen Sie rechts in die Dinge. 7 00:00:22,819 --> 00:00:24,360 Bin ich dabei, nur nehmen es jetzt? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Schalt Laptops. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: Sie wollen nicht stellen Sie sich vor, Rob? 12 00:00:32,950 --> 00:00:34,090 >> Rob Bowden: Oh, ich bin Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Das ist mein fünftes Jahr TF-ing CS50. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Ich bin Gabriel. 17 00:00:39,650 --> 00:00:41,610 Ich bin Kopf TF von CS50. 18 00:00:41,610 --> 00:00:44,009 Ich war TF im vergangenen Jahr und in diesem Jahr. 19 00:00:44,009 --> 00:00:46,675 ALLISON: Und ich bin Alison, und dies ist mein zweites Jahr TF-ing CS50. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> Rob Bowden: Okay, so Diese Sache auf der linken Seite, 22 00:00:50,825 --> 00:00:52,250 hoffentlich zuvor gesehen habe. 23 00:00:52,250 --> 00:00:54,112 Wenn nicht, weil Sie laden Sie es für sich selbst, 24 00:00:54,112 --> 00:00:55,570 Sie sollten es in der Vorlesung gesehen haben. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Das ist also der CS50-Appliance, und er habe ein wenig von einer Beschreibung davon 27 00:01:01,320 --> 00:01:01,880 in der Vorlesung. 28 00:01:01,880 --> 00:01:06,890 Aber im Grunde ist es nur, dass du sind ein Betriebs 29 00:01:06,890 --> 00:01:10,550 System innerhalb Ihres Betriebs System, so dass wir Ihnen 30 00:01:10,550 --> 00:01:12,540 Programme ohne sich Sorgen zu machen, oh das ist 31 00:01:12,540 --> 00:01:15,989 werde sowohl unter Windows arbeiten und Mac, oder wenn einige von euch 32 00:01:15,989 --> 00:01:17,280 sind bereits unter Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 Es ist nur zu vermuten, eine gemeinsame Spiel sein 35 00:01:20,240 --> 00:01:23,010 Feld, so hat jeder die gleiche genaue Umgebung. 36 00:01:23,010 --> 00:01:25,344 >> Also, wenn Sie nicht haben heruntergeladen dies bereits, 37 00:01:25,344 --> 00:01:28,510 sollten Sie es herunterladen, weil Sie gehen, um es für das Problem Set benötigen. 38 00:01:28,510 --> 00:01:32,335 Und es ist eine zwei Gigabyte herunterladen, so dass es eine Weile dauern könnte. 39 00:01:32,335 --> 00:01:33,780 Am Harvard, es wird schnell gehen. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 So CS50 Appliance. 42 00:01:37,440 --> 00:01:41,980 >> Jetzt am Anfang, wir sind zu gehen reden über nur ein Haufen von Befehlszeile 43 00:01:41,980 --> 00:01:46,880 Zeug, und so durch, dass ich meine Arbeit in diesem kleinen Umfeld hier. 44 00:01:46,880 --> 00:01:53,230 Und all die Dinge bemerken Ich hier richtig sagen jetzt 45 00:01:53,230 --> 00:01:56,900 gehen, um zu arbeiten, wenn Sie innerhalb von bist ein Terminal im Geräteinnern, 46 00:01:56,900 --> 00:02:00,790 oder wenn Sie im Inneren des sind die gedit Terminalfenster 47 00:02:00,790 --> 00:02:02,090 Innere des Gerätes. 48 00:02:02,090 --> 00:02:03,770 Also diese Umgebungen sind identisch. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Aber ich werde einen dritten Weg gehen. 51 00:02:07,270 --> 00:02:12,200 Und bemerken hier unten diese wenig IP-Adresse finden Sie hier. 52 00:02:12,200 --> 00:02:15,940 So müssen Sie nicht zu haben, dies zu tun, aber diese IP 53 00:02:15,940 --> 00:02:19,700 address-- jetzt, wenn I-- Ausnahme es ist von dieser Sache blockiert. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 OK, so dass die IP-Adresse über in einem Terminal 56 00:02:27,000 --> 00:02:31,090 hier-- so dass dieses Terminal über hier ist ein Terminal in meinem Mac. 57 00:02:31,090 --> 00:02:34,540 Das ist also in keiner Weise aktuell mit dem Gerät überhaupt verbunden. 58 00:02:34,540 --> 00:02:39,360 Und wenn Sie auf Windows, dann bist du gehen zu müssen, um etwas herunterzuladen 59 00:02:39,360 --> 00:02:44,430 speziell für diese, insbesondere Menschen neigen dazu verwenden Putty, P-U-T-T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Also, was ich tun werde, ist Typ SSH und dann die IP-Adresse. 61 00:02:50,700 --> 00:02:54,030 Nun, jharvard dama IP-Adresse. 62 00:02:54,030 --> 00:03:00,150 So 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Dieser beängstigende Nachricht ignorieren. 64 00:03:02,127 --> 00:03:02,710 Schreiben Sie einfach ja. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Dies ist CS50 in einer Box. 67 00:03:06,030 --> 00:03:07,460 Es fragt nach Ihrem Passwort. 68 00:03:07,460 --> 00:03:11,910 >> Und dies in einer Menge von diesen Zusammenhängen, wo es fragt nach dem Passwort, [unverständlich]. 69 00:03:11,910 --> 00:03:15,670 Wir haben eine Menge von Fragen, bei denen bekam es sagt, dass es eigentlich nicht tippen. 70 00:03:15,670 --> 00:03:20,011 Es muss nicht die Zeichen zeigen Ihnen das Passwort während der Eingabe, wenn überhaupt, 71 00:03:20,011 --> 00:03:23,010 ein Sicherheitsmerkmal, weil, wenn jemand über die Schulter schauen 72 00:03:23,010 --> 00:03:25,870 und sie Sterne Stern star star, dann sind sie 73 00:03:25,870 --> 00:03:28,640 wissen, dass Sie Ihr Passwort vergessen ist vier Zeichen. 74 00:03:28,640 --> 00:03:32,660 Also die Idee ist es fragt Sie nach Ihrem Passwort, geben. 75 00:03:32,660 --> 00:03:34,490 Es wird nicht zu zeigen Sie die Zeichen, 76 00:03:34,490 --> 00:03:36,090 aber es ist eigentlich akzeptieren. 77 00:03:36,090 --> 00:03:39,210 In diesem Fall, wann immer Sie eine Passwortabfrage überhaupt sehen 78 00:03:39,210 --> 00:03:42,280 Umgang mit dem Gerät, das Kennwort wird sich hochrot sein. 79 00:03:42,280 --> 00:03:43,270 So hochrot. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> Und jetzt hier Innere dieser Fenster, die in meinem Mac ist, 82 00:03:50,550 --> 00:03:54,120 Ich bin grundsätzlich mit exakt das gleiche Ansicht 83 00:03:54,120 --> 00:03:57,040 wie man innerhalb einer Terminal im Gerät. 84 00:03:57,040 --> 00:03:58,470 So müssen Sie nicht haben, um dies zu tun. 85 00:03:58,470 --> 00:04:01,300 Sie können alles, was Sie tun wollen im Geräteinnern. 86 00:04:01,300 --> 00:04:05,140 Ich fast nie wirklich tun nichts in das Gerät. 87 00:04:05,140 --> 00:04:09,440 Ich bin fast immer zu minimieren, dass und jetzt Ich arbeite SSH in das Gerät. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> Wenn überhaupt, wenn Sie haben einen langsameren Computer, 90 00:04:14,180 --> 00:04:15,820 Sie könnten einen Unterschied bemerken. 91 00:04:15,820 --> 00:04:18,839 Ich tue dies, weil ich es vorziehe Dieses Terminal-Fenster. 92 00:04:18,839 --> 00:04:20,881 Es hat einige Features wie Ich kann das Fenster teilen, 93 00:04:20,881 --> 00:04:22,672 und jetzt kann ich SSH durch das Gerät. 94 00:04:22,672 --> 00:04:24,105 Ich habe zwei SSH ist los auf einmal. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Wenn Ihr Computer ist besonders langsam und du bist in der Appliance arbeitet, 97 00:04:32,250 --> 00:04:35,200 und Sie erkennen, das ist wirklich laggy, was auch immer. 98 00:04:35,200 --> 00:04:38,220 Neigt viel schneller zu sein wenn Sie SSH-ed in. 99 00:04:38,220 --> 00:04:40,960 Aber sonst kann man so oder so zu arbeiten. 100 00:04:40,960 --> 00:04:42,388 >> PUBLIKUM: Was bedeutet SSH das? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> Rob Bowden: Sicheres Muscheln, so etwas? 103 00:04:47,479 --> 00:04:48,270 Was bedeutet SSH das? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: Secure Shell. 106 00:04:55,130 --> 00:04:56,463 ALLISON: Es ist nur Secure Shell. 107 00:04:56,463 --> 00:04:57,720 Rob Bowden: Secure Shell. 108 00:04:57,720 --> 00:05:03,700 Es ist ein Protokoll, das es Sie-- ein sicheres Protokoll, so verschlüsselt. 109 00:05:03,700 --> 00:05:06,850 Die Leute können nicht auf das Netzwerk schnüffeln und sehen, was Sie alles sagst 110 00:05:06,850 --> 00:05:08,120 Sie SSH-ed bist zu. 111 00:05:08,120 --> 00:05:12,900 Und in der Tat, in den alten Tage des CS50, so im Jahr 2009 112 00:05:12,900 --> 00:05:19,300 als ich noch ein Neuling, der Weg, Sie CS50 Problem Sets gearbeitet, 113 00:05:19,300 --> 00:05:22,490 war man SSH-ed auf einem Server dass wir gaben Ihnen den Zugriff auf, 114 00:05:22,490 --> 00:05:23,497 und Sie sind auf die dort arbeiteten. 115 00:05:23,497 --> 00:05:25,330 Also hast du nicht diese grafische Appliance. 116 00:05:25,330 --> 00:05:26,160 Sie haben nicht gedit. 117 00:05:26,160 --> 00:05:28,930 Sie haben nicht alle diese Dinge, die Sie könnten Punkt optisch und klicken. 118 00:05:28,930 --> 00:05:30,346 Man musste in dieser Schnittstelle arbeiten. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Ich bevorzuge in dieser Schnittstelle arbeiten. 121 00:05:33,716 --> 00:05:36,090 Also von dem, was wir gehen zu werden jetzt auf über gehen 122 00:05:36,090 --> 00:05:39,560 sind ein Haufen von der Befehle, die Sie sollten 123 00:05:39,560 --> 00:05:42,095 starten, um sich mit so vertraut Sie gehen in den Kurs. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 Und ehrlich gesagt, wenn Sie an sie gewöhnen, es 126 00:05:45,790 --> 00:05:48,220 so viel schneller arbeiten in diesem Umfeld 127 00:05:48,220 --> 00:05:53,690 als es ist, mit Sucher arbeiten, Ziehen und Klicken Dinge. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> So, hier sind wir. 130 00:05:57,210 --> 00:06:01,779 Jetzt muss ich nur SSH-ed in, und so Der Standard location-- Sie 131 00:06:01,779 --> 00:06:04,820 sah einige dieser Befehle in der Klasse, aber wir werden wieder gehen über alle von ihnen. 132 00:06:04,820 --> 00:06:08,060 Die Standardposition sind wir in das Home-Verzeichnis. 133 00:06:08,060 --> 00:06:11,520 Und Verzeichnis, nur ein anderes Wort für Ordner. 134 00:06:11,520 --> 00:06:13,310 So sind wir im Home-Verzeichnis. 135 00:06:13,310 --> 00:06:15,889 Typ LS, listen Sie die Dateien in diesem Verzeichnis. 136 00:06:15,889 --> 00:06:17,430 Offenbar ich eine blah.c zuvor erstellt. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 So haben wir eine Desktop-Verzeichnis. 139 00:06:20,472 --> 00:06:21,930 Sie bemerken das Syntax-Highlighting? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 Die hellblaue Markierung zeigt ein Verzeichnis und der geraden weißen 142 00:06:32,900 --> 00:06:34,380 zeigt nur eine einfache Datei. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 So gibt sein werden einige andere Farben, die Sie sehen. 145 00:06:37,690 --> 00:06:41,240 Eine ausführbare Datei ist wahrscheinlich grün oder so ähnlich zu sein. 146 00:06:41,240 --> 00:06:44,820 OK, so sind wir in der Home-Verzeichnis. 147 00:06:44,820 --> 00:06:48,970 >> Nun, wenn ich in eine andere zu gehen Verzeichnis, ist der Befehl cd ich will. 148 00:06:48,970 --> 00:06:52,720 So Verzeichnis zu wechseln, und dann geben Sie den Namen des Verzeichnisses 149 00:06:52,720 --> 00:06:54,020 dass Sie möchten, dass in zu gehen. 150 00:06:54,020 --> 00:06:55,780 Hier haben wir also vier Optionen. 151 00:06:55,780 --> 00:07:03,397 Ich kann in Downloads zu gehen, und jetzt sehen wir, hier hat es diese in Klammern aktualisiert 152 00:07:03,397 --> 00:07:04,480 sagen, ich bin in ~ / Downloads. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Also, was ist Tilde? 155 00:07:06,800 --> 00:07:10,640 Es ist eine Kurzform für Ihr Home-Verzeichnis. 156 00:07:10,640 --> 00:07:15,260 Also fast alles, was Sie tun müssen, ist zu gehen sein in Bezug auf Ihr Home-Verzeichnis, 157 00:07:15,260 --> 00:07:20,620 und PWD ist nur ein Befehl Ich in einem Jahr benutzen, wenn dass 158 00:07:20,620 --> 00:07:22,420 gerade druckt das aktuelle Verzeichnis. 159 00:07:22,420 --> 00:07:25,730 Und so können Sie hier sehen, dass ~ / Downloads wirklich behebt 160 00:07:25,730 --> 00:07:26,896 / home / jharvard / Downloads. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Also / home / jharvard ist mein Home-Verzeichnis. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> So können wir cd dot dot. 165 00:07:39,400 --> 00:07:47,800 Jetzt dot dot ist eine spezielle Verzeichnis, bezieht sich immer auf die ein Verzeichnis nach oben. 166 00:07:47,800 --> 00:07:51,730 Also, wenn ich in ~ / Downloads, dann cd dot dot wird mich bringen und Tilde. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Was denken wir cd dot dot wird mich jetzt bringen? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 Es wird mir zu / nach Hause zu bringen. 171 00:08:00,570 --> 00:08:04,450 So durch Arbeitsverzeichnis Druck Tilde Ich bin jetzt ein / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 ein Verzeichnis aus, dass, Jetzt heißt es hier / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Jetzt cd dot dot. 176 00:08:17,180 --> 00:08:20,910 Jetzt bin ich in das Root-Verzeichnis, und man kann es nicht wieder tun. 177 00:08:20,910 --> 00:08:23,340 Sie werden nur in dem zu bleiben Stammverzeichnis für immer. 178 00:08:23,340 --> 00:08:26,700 Das Root-Verzeichnis hat eine ganze Reihe von Dinge, die, wenn Sie wollen, zu schauen, 179 00:08:26,700 --> 00:08:27,410 Sie können. 180 00:08:27,410 --> 00:08:29,700 Zum Beispiel, wenn ich gehe in bin, dass enthält 181 00:08:29,700 --> 00:08:35,789 alle diese Binärdateien wie ls, und CD, und all diese Dinge. 182 00:08:35,789 --> 00:08:38,630 Also diese Befehle müssen existiert irgendwo im System, 183 00:08:38,630 --> 00:08:40,820 und es ist in der / bin. 184 00:08:40,820 --> 00:08:44,530 Aber fast alles, was Sie tun, ist gehen, um von Ihrem Home-Verzeichnis sein. 185 00:08:44,530 --> 00:08:49,490 Und cd ohne Argumente auch immer, man könnte sagen, cd ~, brauchen nicht zu. 186 00:08:49,490 --> 00:08:51,810 cd wird dich holen zurück zu Ihrem Home-Verzeichnis. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Eine letzte. 189 00:08:54,230 --> 00:09:00,200 cd - wird dich zurück zu bringen das letzte Verzeichnis, das Sie in waren. 190 00:09:00,200 --> 00:09:04,080 Also habe ich nur zweimal in Folge cd'd, so meine letzte Verzeichnis war das Home-Verzeichnis. 191 00:09:04,080 --> 00:09:11,520 Wenn ich nach bin Slash, und jetzt lass uns gehen und in Benutzer. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Nutzeranteil. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Lassen Sie uns auf Benutzer Aktien gehen. 196 00:09:15,940 --> 00:09:17,140 Jetzt bin ich nun in der Benutzeranteil. 197 00:09:17,140 --> 00:09:19,320 cd -, zurück in bin. 198 00:09:19,320 --> 00:09:22,980 Also das bekommt besonders nützlich wenn Sie have-- und es werde wechseln. 199 00:09:22,980 --> 00:09:25,660 Also Benutzer Aktie zurück bin, share bin. 200 00:09:25,660 --> 00:09:27,250 >> Also diese bekommt nützlich. 201 00:09:27,250 --> 00:09:33,150 Sie können sich finden, die viele, vielen, vielen verschachtelten Verzeichnissen. 202 00:09:33,150 --> 00:09:37,370 Und Sie etwas tun wollen ganz schnell in einem oberen Verzeichnis. 203 00:09:37,370 --> 00:09:40,330 Sie gelangen in diesem Verzeichnis, stellen Änderungen und solche Sachen, 204 00:09:40,330 --> 00:09:42,400 und jetzt Sie hinwollen zurück, wo Sie waren. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Ich bin immer frustriert wenn ich zufällig gehen 207 00:09:47,320 --> 00:09:49,630 zu diesem Verzeichnis I wollte zur Arbeit in zu tun. 208 00:09:49,630 --> 00:09:52,670 Ich bekomme immer frustriert, wenn ich tat in zwei Schritten statt einem Schritt, 209 00:09:52,670 --> 00:09:55,715 weil das bedeutet, dass die cd - wird in dieser Zwischenposition bringen 210 00:09:55,715 --> 00:09:57,010 statt, wo ich hin will. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> So sehen wir alle Listendateien. 213 00:10:01,450 --> 00:10:03,300 Wir wissen, wie man um so weit zu kommen. 214 00:10:03,300 --> 00:10:09,900 So, jetzt lassen Sie uns über das Editieren von Dateien zu sprechen. 215 00:10:09,900 --> 00:10:18,790 Also in diesem Kurs, du bist fast immer erwartet, dass gedit verwenden. 216 00:10:18,790 --> 00:10:24,410 Wenn Sie möchten, können Sie den nächsten Schritt machen und lernen Sie eine Befehlszeile Text 217 00:10:24,410 --> 00:10:25,240 Editor. 218 00:10:25,240 --> 00:10:27,560 So gibt es verschiedene Möglichkeiten. 219 00:10:27,560 --> 00:10:31,760 >> Und diejenigen, die wahrscheinlich gehen Sie relevant zu sein, 220 00:10:31,760 --> 00:10:35,340 Wir haben Nano, Vim und Emacs. 221 00:10:35,340 --> 00:10:40,196 Also Nano ist die Anfänger Befehlszeilentexteditor. 222 00:10:40,196 --> 00:10:42,985 So Nano gehen wir auf blah.c ich zuvor erstellt. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 Es ist nur diese Standard-C-Datei. 225 00:10:46,480 --> 00:10:51,540 Und Sie haben eine ganze Reihe von Sachen zu sehen Geschehen am unteren Rand des Bildschirms, 226 00:10:51,540 --> 00:10:54,100 und anscheinend blah.c enthält diese C-Code. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Also in diesem speziellen Editor was es am bottom-- sagen 229 00:11:00,330 --> 00:11:06,290 jetzt dieses Caret-Symbol, wir sehen diese ^ G ^ X, ^ O. 230 00:11:06,290 --> 00:11:10,310 So daß in fast allen Rahmen, die Sie sehen, 231 00:11:10,310 --> 00:11:13,530 Sie könnte das Caret-Symbol in sehen andere Orte online, auf Stack Overflow, 232 00:11:13,530 --> 00:11:14,450 so ähnlich. 233 00:11:14,450 --> 00:11:16,970 Es bezieht sich fast immer zu steuern. 234 00:11:16,970 --> 00:11:21,590 Also, um zu beenden ich tun möchte, Steuer X. Steuer X verlässt. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 Und ich kann meinen Pfeil benutzen Tasten zu bewegen. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Hinweis kann ich nicht zeigen und klicken leicht. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Sie müssen mit Ihrem Pfeil Tasten zu bewegen. 241 00:11:35,010 --> 00:11:36,950 Es könnte eine Einstellung sein zu zeigen und einrasten. 242 00:11:36,950 --> 00:11:40,000 >> Aber lassen Sie uns einige Änderungen vornehmen. 243 00:11:40,000 --> 00:11:42,100 Jetzt Kontrolle X zum Verlassen zu gehen. 244 00:11:42,100 --> 00:11:44,120 Es wird Veränderten Puffer speichern sagen. 245 00:11:44,120 --> 00:11:47,900 Nun ist die Eingabeaufforderung y für Ja, N für Nein. 246 00:11:47,900 --> 00:11:49,900 Steuer C abzubrechen. 247 00:11:49,900 --> 00:11:50,780 Ich werde einfach sagen, ja. 248 00:11:50,780 --> 00:11:51,709 Dateinamen, um zu schreiben. 249 00:11:51,709 --> 00:11:53,500 Der Standardwert ist die Datei dass es ohnehin schon ist. 250 00:11:53,500 --> 00:11:54,230 Drücken Sie Enter. 251 00:11:54,230 --> 00:11:54,740 Ok. 252 00:11:54,740 --> 00:11:58,580 Jetzt habe ich nur diese Datei bearbeitet, gespeichert, und sie geändert wird. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Also Nano ist der einfachste Texteditor gewöhnen. 255 00:12:03,000 --> 00:12:05,520 Die Alternativen sind Vim und Emacs. 256 00:12:05,520 --> 00:12:11,250 Das sind höhere Ebene Texteditoren dass eine sehr steile Lernkurve haben. 257 00:12:11,250 --> 00:12:13,740 Also meine persönliche Präferenz ist Vim. 258 00:12:13,740 --> 00:12:17,175 Und es hat eine Vielzahl von Optionen. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 Und sobald Sie gewöhnen um es zu, werden Sie nie 261 00:12:24,070 --> 00:12:26,900 möchte zu einem anderen gehen Texteditor, weil Sie gerade 262 00:12:26,900 --> 00:12:29,590 haben so viele Dinge Ihnen zur Verfügung in diesen, 263 00:12:29,590 --> 00:12:31,690 aber es hat eine wirklich braucht lange Zeit zu lernen. 264 00:12:31,690 --> 00:12:36,000 Also vielleicht wollen Sie nur zu zwingen jetzt selbst gebrauchte, um es zu bekommen, 265 00:12:36,000 --> 00:12:38,130 aber ich würde sagen, es ist es wert. 266 00:12:38,130 --> 00:12:39,660 Aber es ist schwer. 267 00:12:39,660 --> 00:12:41,220 >> Und dann Emacs. 268 00:12:41,220 --> 00:12:44,940 Ich habe immer in Emacs kämpfen, weil Ich weiß, wie man überhaupt nichts zu tun. 269 00:12:44,940 --> 00:12:47,755 Anscheinend Emacs ist standardmäßig nicht auf dem Gerät installiert. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Wir werden wahrscheinlich hinzufügen, dass als Standardinstallationen. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Sobald Sie eine der lernen Vim oder Emacs, gibt es 274 00:13:02,390 --> 00:13:04,810 keinen zwingenden Grund, jemals den anderen zu lernen, 275 00:13:04,810 --> 00:13:07,570 aber es ist ein ganz anderen Stil. 276 00:13:07,570 --> 00:13:10,460 OK das ist also der Bearbeitung von Text-Dateien. 277 00:13:10,460 --> 00:13:13,374 >> PUBLIKUM: Wenn Sie nicht weiterkamen in Vim gerade jetzt, wie kann wir-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> Rob Bowden: Es gibt mehrere Modi in Vim, 280 00:13:20,800 --> 00:13:23,770 und es gibt ganze Tutorials zu lernen Vim. 281 00:13:23,770 --> 00:13:27,390 Also, wenn Sie sich gerade befinden im Einfügemodus, um 282 00:13:27,390 --> 00:13:29,930 Sie Text eingeben können, die Sie geben die auf verschiedene Weise, 283 00:13:29,930 --> 00:13:31,610 Aber ich bin, wie Sie in den Einfügemodus zu bekommen. 284 00:13:31,610 --> 00:13:34,780 In oder aus irgendeinem speziellen bekommen Modus, der Sie sich befinden, nur Flucht. 285 00:13:34,780 --> 00:13:37,640 Und Sie bash Flucht zu bekommen aus jeder verschachtelten Modi Ihre in. 286 00:13:37,640 --> 00:13:40,360 Gerade so OK, jetzt bin ich wieder im Normalbetrieb. 287 00:13:40,360 --> 00:13:43,790 >> Und so im Normalbetrieb, ein Doppelpunkt. 288 00:13:43,790 --> 00:13:45,160 Sie sehen es an der Unterseite angezeigt. 289 00:13:45,160 --> 00:13:46,240 Und dann q. 290 00:13:46,240 --> 00:13:52,600 So q wird beendet, wenn Sie Änderungen vorgenommen haben, welche I-- habe ich Änderungen vorgenommen? 291 00:13:52,600 --> 00:13:54,180 Ich habe Veränderungen offenbar gemacht. 292 00:13:54,180 --> 00:13:57,264 Also, wenn Sie Änderungen vorgenommen haben, wird es sagen, Sie können ein Ausrufezeichen setzen. 293 00:13:57,264 --> 00:13:58,430 Ich werde, nennen es einen Knall. 294 00:13:58,430 --> 00:14:02,040 So kann man ein Verbot zu setzen gerade beenden ohne etwas zu tun, 295 00:14:02,040 --> 00:14:04,520 oder Colon wq wird gespeichert und beendet. 296 00:14:04,520 --> 00:14:06,580 So w im allgemeinen schreiben. 297 00:14:06,580 --> 00:14:08,300 So schreiben Sie die Datei. 298 00:14:08,300 --> 00:14:09,810 Ich kann schreiben und beenden. 299 00:14:09,810 --> 00:14:13,606 Oder Sie haben könnten qx slam, q Knall gerade 300 00:14:13,606 --> 00:14:16,230 um von dort unabhängig erhalten über alle Änderungen, die Sie vorgenommen haben. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Alles klar, so jetzt lassen Sie uns go-- wir können Dateien erstellen. 303 00:14:28,940 --> 00:14:30,890 Lassen Sie uns beginnen Entfernen von Dateien. 304 00:14:30,890 --> 00:14:35,450 Und ich werde nur in einem Wurf Schnell neuen Befehl, berühren Sie. 305 00:14:35,450 --> 00:14:38,200 So berühren foo. 306 00:14:38,200 --> 00:14:39,340 Touch-Leiste. 307 00:14:39,340 --> 00:14:40,220 Berühren baz. 308 00:14:40,220 --> 00:14:42,810 Wenn ich ls, jetzt sehen wir, dass diese Dateien existieren. 309 00:14:42,810 --> 00:14:44,315 Sie sind völlig leer. 310 00:14:44,315 --> 00:14:47,178 So touch ist nur eine einfache Weg von einem, [unverständlich]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Zwei, technisch einfach zu Staat es, aktualisiert es die Zeitstempel. 313 00:14:54,640 --> 00:14:58,470 Also jede Datei, die Sie erstellen, hat ein Zeitstempel zugeordnet. 314 00:14:58,470 --> 00:15:01,330 So baz erstellt wurde 14. September um 16.21 Uhr. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 Es ist jetzt 16.22 Uhr, also, wenn Ich wieder berühren baz wir 317 00:15:06,670 --> 00:15:11,420 sehen, dass baz war am kürzlich um 16:22 Uhr geändert. 318 00:15:11,420 --> 00:15:17,680 Aber sonst habe ich fast nie schauen Sie sich die Zeitstempel für Dateien. 319 00:15:17,680 --> 00:15:20,490 So touch, hier bin ich einfach mit es um ein paar schnelle Dateien erstellen. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Alles klar, so jetzt rm ist die Befehl, der wir hier zu kümmern. 322 00:15:27,400 --> 00:15:28,665 Und wir können boo rm. 323 00:15:28,665 --> 00:15:31,000 Sagen entfernen regelmäßige leere Datei boo. 324 00:15:31,000 --> 00:15:34,070 Und wir können geben y, und jetzt ist es entfernt. 325 00:15:34,070 --> 00:15:34,850 rm baz. 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 Entfernen Sie regelmäßig leere Datei baz und Typ n für nein. 328 00:15:38,620 --> 00:15:40,060 Jetzt ist es nicht entfernt. 329 00:15:40,060 --> 00:15:41,240 So Bar und Baz noch existieren. 330 00:15:41,240 --> 00:15:42,232 Foo ist weg. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: Halten reden. 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 Rob Bowden: Großartig. 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 Also das lästige Meldung Hier, nehmen Sie regelmäßig empty-- 336 00:15:50,370 --> 00:15:52,390 was machst du da unten? 337 00:15:52,390 --> 00:15:54,030 Entfernen Sie regelmäßig leere Datei. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Also, wenn wir nicht wollen, zu sein durch diese Nachricht gestört, 340 00:16:01,610 --> 00:16:05,340 Wir können in diesem -f werfen Flagge, und so, das ist Kraft. 341 00:16:05,340 --> 00:16:11,330 Und jetzt, wenn ich rm -f, es ist nicht zu gehen sagen Sie, diese Datei entfernen möchten. 342 00:16:11,330 --> 00:16:12,040 Es werde einfach tun. 343 00:16:12,040 --> 00:16:13,720 Und LS, ich sehe nicht, dort eine Bar mehr. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Nun, da ist ein potenziell gefährlichen Befehl. 346 00:16:18,021 --> 00:16:19,020 Es neigt dazu, nicht zu schlecht. 347 00:16:19,020 --> 00:16:22,240 Wir werden in einem zweiten zurückkommen, wie es bekommen kann wirklich gefährlich. 348 00:16:22,240 --> 00:16:28,740 Und lassen Sie uns etwas zu schaffen Temp-Verzeichnis. 349 00:16:28,740 --> 00:16:30,880 mkdir, ein anderer Befehl. 350 00:16:30,880 --> 00:16:34,880 So mkdir ist ein Befehl das macht ein Verzeichnis. 351 00:16:34,880 --> 00:16:40,650 Und nun ls wir sehen dieses schöne Licht blau hervorgehoben Temp-Verzeichnis. 352 00:16:40,650 --> 00:16:42,295 Ich kann CD in Temp. 353 00:16:42,295 --> 00:16:44,590 Und ich kann foo mkdir. 354 00:16:44,590 --> 00:16:46,330 cd in foo. mkdir bar. 355 00:16:46,330 --> 00:16:46,860 cd in bar. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> So sehen wir uns leicht bekommen kann in einige ziemlich tiefe Verschachtelung. 358 00:16:54,300 --> 00:16:56,385 Nun, wie kann ich ein Verzeichnis zu entfernen? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 rmdir. 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 Also, wenn ich einfach gerade versuchen, rm, wie wir mit einer normalen Datei, 363 00:17:03,540 --> 00:17:06,420 rm bar zu gehen sagen kann nicht bar zu entfernen. 364 00:17:06,420 --> 00:17:07,569 Es ist ein Verzeichnis. 365 00:17:07,569 --> 00:17:10,619 Es gibt einen speziellen Befehl für Löschen von Verzeichnissen, Art. 366 00:17:10,619 --> 00:17:12,900 So rmdir bar. 367 00:17:12,900 --> 00:17:13,710 Jetzt bar ist weg. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, so rmdir ich so ziemlich nie. 370 00:17:22,680 --> 00:17:32,220 Der Grund being-- jetzt uns gelassen machen eine reguläre Datei bar hier. 371 00:17:32,220 --> 00:17:34,780 So rmdir boo. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Fehler beim foo entfernen. 374 00:17:36,900 --> 00:17:38,420 Verzeichnis nicht leer. 375 00:17:38,420 --> 00:17:43,420 So können Sie nicht verwenden, entfernen dir für ein Verzeichnis, das die Dinge in sich hat. 376 00:17:43,420 --> 00:17:44,830 >> So haben Sie einige Optionen. 377 00:17:44,830 --> 00:17:49,780 Sie können in das Verzeichnis gehen, entfernen alles manuell, und dann kommen 378 00:17:49,780 --> 00:17:51,759 und rmdir das Verzeichnis. 379 00:17:51,759 --> 00:17:53,050 Das offensichtlich klingt ärgerlich. 380 00:17:53,050 --> 00:17:55,000 Was ist, wenn es Tausende von Dateien drin? 381 00:17:55,000 --> 00:17:58,119 Nun, Sie rm könnte *. 382 00:17:58,119 --> 00:17:59,410 Wir werden über * in einer zweiten zu sprechen. 383 00:17:59,410 --> 00:18:00,870 Im Grunde bedeutet es all die Dinge. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Aber noch besser, so rm -r. 386 00:18:05,470 --> 00:18:10,220 So rm -r-- in eine Menge von Kontexten bedeutet -r rekursiv, 387 00:18:10,220 --> 00:18:13,810 was wir darüber zu sprechen, was rekursives Mittel mehrere Wochen. 388 00:18:13,810 --> 00:18:18,630 Aber es bedeutet im Grunde Traverse die Gesamtheit dieses Verzeichnisses 389 00:18:18,630 --> 00:18:20,190 und entfernen Sie alles. 390 00:18:20,190 --> 00:18:24,420 >> So rm -r foo sagen wird Abstieg in das Verzeichnis foo? 391 00:18:24,420 --> 00:18:25,210 Ja. 392 00:18:25,210 --> 00:18:26,800 Entfernen Sie regelmäßig leere Datei foo / bar? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Ja. 395 00:18:28,540 --> 00:18:29,760 Entfernen Verzeichnis foo? 396 00:18:29,760 --> 00:18:30,260 Ja. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 So, jetzt foo und alles darin wurde entfernt. 399 00:18:35,020 --> 00:18:42,370 >> Nun, da besonders ärgerlich bekommen können when-- wir berühren 1, Touch 2, Touch 3. 400 00:18:42,370 --> 00:18:44,400 Könnte eine ganze Reihe von Dateien. 401 00:18:44,400 --> 00:18:49,060 Wenn ich wollte, ich könnte erstellen Tausende von Dateien in hier. 402 00:18:49,060 --> 00:18:53,340 Und rm -r foo wird als ziemlich nervig. 403 00:18:53,340 --> 00:18:55,374 Ja, ja, ja, ja, ja, ja. 404 00:18:55,374 --> 00:18:57,540 Mit viel mehr Dateien schnell sehen wie oft 405 00:18:57,540 --> 00:18:58,581 Ich müsste ja geben. 406 00:18:58,581 --> 00:19:02,265 Nun, wir gerade gesehen haben, bevor, wie wir können, des Müssens Typ Ja, -f loszuwerden. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 So mkdir foo cd foo Touch 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 OK, so rm -rf foo werde foo völlig blind zu entfernen. 411 00:19:17,190 --> 00:19:17,960 Kein Aufforderung. 412 00:19:17,960 --> 00:19:18,650 Nein nichts. 413 00:19:18,650 --> 00:19:20,040 Foo ist weg. 414 00:19:20,040 --> 00:19:23,830 >> Also ich neige dazu, dies zu nutzen Befehl die ganze Zeit. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Das heißt, es ist ein sehr gefährlich Befehl, 417 00:19:27,830 --> 00:19:33,240 denn wenn ich etwas zu tun Dazu wird es nicht aufgefordert. 418 00:19:33,240 --> 00:19:34,730 Es wird verschwunden sein. 419 00:19:34,730 --> 00:19:40,140 Und es passiert ziemlich häufig, und sogar in höheren Niveau CS Kurse. 420 00:19:40,140 --> 00:19:42,070 Manchmal werden wir sehen, etwas, wo jemand 421 00:19:42,070 --> 00:19:48,360 sagt, dass ich aus Versehen unsere RM RF-ed mein Zuhause Verzeichnis und alle meine P Satz ist weg. 422 00:19:48,360 --> 00:19:52,422 Und es ist verheerend, aber es gibt keine Mülleimer. 423 00:19:52,422 --> 00:19:54,380 Es gibt keinen, es gibt nichts für Sie abrufen. 424 00:19:54,380 --> 00:19:55,330 Es ist einfach weg. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Noch schlimmer wäre etwas wie rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Also wir gerade besprochen dass Root-Verzeichnis. 429 00:20:01,140 --> 00:20:03,095 Es hält alle der Dateien auf Ihrem System. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Dinge neigen ziemlich chaotisch zu bekommen wenn Sie Dinge wie ls entfernen, 432 00:20:07,380 --> 00:20:10,280 und CD, und alles von denen. 433 00:20:10,280 --> 00:20:15,467 >> PUBLIKUM: Was ist der Unterschied zwischen rm, RF und rm * 434 00:20:15,467 --> 00:20:16,300 Rob Bowden: Also rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: Frage war, was ist der Differenz zwischen rm, RF und rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> Rob Bowden: Also rm *. 439 00:20:25,950 --> 00:20:31,910 Sterne im Allgemeinen bedeutet, dass alle der Inhalt dieses Verzeichnisses. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Der Versuch, andere denken, Mittel für die Darstellung Stern. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Nun, Sterne tatsächlich allgemein bedeutet übereinstimmen jedes Muster. 444 00:20:44,780 --> 00:20:54,930 Also, wenn ich eine Datei namens dog1, Berühren dog2, berühren cat1, berühren cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 So ls * 1 wird sich cat1 drucken und dog1, weil dieser Stern gefüllt werden kann 447 00:21:02,110 --> 00:21:06,270 in with-- derjenige, dort zu sein braucht, aber Sterne kann entweder Katze oder Hund. 448 00:21:06,270 --> 00:21:07,247 Es ist ein Joker. 449 00:21:07,247 --> 00:21:08,580 Das ist das Wort, das ich mich für. 450 00:21:08,580 --> 00:21:09,120 Wild Card. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 Oder ich ls konnte Hund * und Ich lernte dog1 sehen dog2. 453 00:21:13,960 --> 00:21:16,870 Das sind also in dem die Dateien dass überein, dass bestimmte Muster. 454 00:21:16,870 --> 00:21:18,150 Sie können ls auf diese Weise verwenden. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * Sterne alles passt. 457 00:21:22,020 --> 00:21:25,710 Also es geht um alle drucken der Inhalt dieser Verzeichnis 458 00:21:25,710 --> 00:21:27,290 da alle von ihnen entsprechen. 459 00:21:27,290 --> 00:21:30,130 Es wird nicht, etwas zu drucken in der oberen Ebene Verzeichnissen. 460 00:21:30,130 --> 00:21:38,680 Wenn ich ein Unterverzeichnis, foo, und Berühren 1 2 3-- so jetzt, wenn rm * Stern, 461 00:21:38,680 --> 00:21:41,450 entfernen cat1, CAT2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 Kann foo nicht entfernen. 463 00:21:42,340 --> 00:21:43,090 Es ist ein Verzeichnis. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Also Sterne erweitert, um den ganzen Dateien in dem Verzeichnis. 466 00:21:50,340 --> 00:21:55,210 Also technisch rm * ist wie gesagt rm cat1, CAT2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Während rm -rf, technisch Sterne würden erreichen, was wir wollen, aber rm -rf-- 468 00:22:03,630 --> 00:22:06,090 wenn ich aus diesem gehen Verzeichnis rm -rf temp, 469 00:22:06,090 --> 00:22:08,890 das wird in Temp gehen und rekursiv alles entfernen. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Also Stern ist, dass getrennte dass wird nach-- so dieser Sache verstanden 472 00:22:21,060 --> 00:22:25,090 dass ich laufen in dieser Sache dass veranlasst mich für Befehle 473 00:22:25,090 --> 00:22:28,770 und dann Ausführen und Tun sie, ich nenne das meine Schale. 474 00:22:28,770 --> 00:22:31,930 Und so diese Schale ist selbst ein Programm. 475 00:22:31,930 --> 00:22:35,010 Und wenn ich wollte, ich konnte in / bin / bash ausgeführt. 476 00:22:35,010 --> 00:22:36,930 Die Schale wird als bash. 477 00:22:36,930 --> 00:22:39,340 Und nun etwas bemerken wir, hat sich leicht verändert, 478 00:22:39,340 --> 00:22:42,200 und das ist, weil meine Einstellungen für die Schale sind etwas anders. 479 00:22:42,200 --> 00:22:45,415 >> Aber jetzt bin ich technisch läuft eine Shell innerhalb meiner ursprünglichen Schale, 480 00:22:45,415 --> 00:22:49,570 und ich kann diese Shell verlassen, und jetzt Ich bin zurück zu meinem Top-Level-Shell. 481 00:22:49,570 --> 00:22:55,240 Der Zweck des Sagens dass ist-- den Stern. 482 00:22:55,240 --> 00:22:59,020 Also der Stern ist etwas von bash verstanden. 483 00:22:59,020 --> 00:23:04,260 So rm -rf ist -rf Flagge nur durch rm verstanden. 484 00:23:04,260 --> 00:23:06,380 Es weiß, dass, wenn Sie passieren eine -rf, dass Sie 485 00:23:06,380 --> 00:23:09,520 wollen, dass es rekursiv entfernen Alle Dateien ohne Nachfrage. 486 00:23:09,520 --> 00:23:13,960 Der Stern ist etwas verstanden von bash, dass, wenn Sie sagen rm *, 487 00:23:13,960 --> 00:23:16,890 bash ist nicht zu sagen, hey rm *, entfernen Stern. 488 00:23:16,890 --> 00:23:21,010 Bash wird rm zu sagen * entfernen cat1, CAT2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Es ist automatisch gehen zu erweitern Alle Dateien in dem Verzeichnis. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> Und in ähnlicher Weise ist eine weitere Tilde Symbol, das bash versteht. 492 00:23:33,140 --> 00:23:37,130 Wenn Sie sagen, cd ~ dehnt bash dass auf Ihrem Home-Verzeichnis. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Andere Fragen so weit? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 OK, so werden wir beginnen werde schnell. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> Tab Fertigstellung. 499 00:23:48,545 --> 00:23:49,670 Nur, um es dort zu werfen. 500 00:23:49,670 --> 00:23:51,530 Eine Menge Leute nicht weiß, das existiert. 501 00:23:51,530 --> 00:23:55,060 Also, wenn ich tippe cd dow, I wollen in Downloads gehen. 502 00:23:55,060 --> 00:23:56,700 Ich brauche nicht zu nloads geben. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Ich kann einfach auf Tab. 505 00:24:00,770 --> 00:24:03,794 So ist es anerkannt, dass Dow ist ein Präfix, 506 00:24:03,794 --> 00:24:05,710 nichts übereinstimmt sonst in diesem Verzeichnis 507 00:24:05,710 --> 00:24:07,520 so wird es, dass abzuschließen für Sie. 508 00:24:07,520 --> 00:24:08,610 Jetzt kann ich geben. 509 00:24:08,610 --> 00:24:10,110 >> Ich mache auch, dass rekursiv. 510 00:24:10,110 --> 00:24:11,205 So mkdir foo. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Lassen Sie uns in foo gehen. 513 00:24:13,300 --> 00:24:14,830 mkdir bar. 514 00:24:14,830 --> 00:24:17,345 Also zurück zu mir nach Hause Verzeichnis, kann ich Downloads informieren. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Jetzt Registerkarte wieder treffen, automatisch werde in foo zu füllen. 517 00:24:21,860 --> 00:24:22,880 Es ist das einzige Verzeichnis. 518 00:24:22,880 --> 00:24:25,340 Registerkarte Schlagen wieder automatisch werde in bar zu füllen. 519 00:24:25,340 --> 00:24:26,798 So, jetzt bin ich in (~ Downloads / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Also das Register Fertigstellung wann immer ich zu Bürozeiten, 522 00:24:31,692 --> 00:24:33,400 und ich stehe über jemandes Schulter, 523 00:24:33,400 --> 00:24:40,470 und sie werden rm D-O-W-N-L-O-A-D-S, ich sterbe. 524 00:24:40,470 --> 00:24:41,990 Nur Reiter, Reiter, Reiter, Reiter. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Also auf jeden Fall Registerkarte verwendet. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 Und in ähnlicher Weise und unten, eine Menge Leute 529 00:24:49,840 --> 00:24:51,930 nur, dass zu geschehen nie auf und ab schlagen. 530 00:24:51,930 --> 00:24:54,870 Es wird durch den früheren gehen Befehle, also wenn Sie gerade etwas lief, 531 00:24:54,870 --> 00:24:58,300 und man muss es wieder laufen lassen wollen, gerade halten, bis Sie sie zu bekommen. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 Ok. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> So schnell, einige andere Dinge. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Gehen wir zurück in die Temp. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Lassen Sie uns einige Dateien. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Also hier, ich bin nur werde Liste einige Worte. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 Hund, Katze, miau. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Lass uns Hund, Fische. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 So, jetzt rep ist ein sehr nützliche Befehle, die Sie 548 00:25:32,320 --> 00:25:37,820 verwenden, um ganz zu suchen Dateien für einen bestimmten Text, 549 00:25:37,820 --> 00:25:40,910 und technisch Sie wirklich tun können komplexe Ausdrücke dafür zu entsprechen. 550 00:25:40,910 --> 00:25:44,830 >> Also hier, wenn ich grep, und was will ich suchen? 551 00:25:44,830 --> 00:25:49,130 Sagen wir, ich bin auf der Suche nach Katzen und Ich möchte all diese Dateien zu suchen. 552 00:25:49,130 --> 00:25:50,650 Also, wie kann ich tun, alle diese Dateien? 553 00:25:50,650 --> 00:25:51,900 Stern. 554 00:25:51,900 --> 00:25:54,939 Also in der Datei ein, ich habe Katze. 555 00:25:54,939 --> 00:25:56,980 Ich wohl haben könnte nannte es etwas Besseres, 556 00:25:56,980 --> 00:25:59,063 denn das sieht aus wie Zeilennummern oder so etwas. 557 00:25:59,063 --> 00:26:01,590 Aber in der Datei, die ich habe eine Linie mit Katze. 558 00:26:01,590 --> 00:26:04,160 In der Datei zwei Ich habe eine Linie mit Katze. 559 00:26:04,160 --> 00:26:07,280 So, jetzt kann ich in Datei aussehen und siehe oh yeah, diese Datei hatten Katze. 560 00:26:07,280 --> 00:26:10,210 Unsere Datei drei war nicht abgestimmt weil Katze ist nicht drin. 561 00:26:10,210 --> 00:26:13,882 Ich kann für meow grep. 562 00:26:13,882 --> 00:26:14,840 Nur Datei zwei hat miauen. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Also das Kombinieren Sie, wieder, mit -r, die 565 00:26:20,640 --> 00:26:23,580 wie ich schon sagte Häufig bedeutet rekursiv. 566 00:26:23,580 --> 00:26:29,800 Und so kann ich bis hierher zu kommen, grep -r für jede Instanz von-- wir bearbeiten 567 00:26:29,800 --> 00:26:32,010 dieses nur um eine Katze in dort zu werfen. 568 00:26:32,010 --> 00:26:38,800 So grep -r für jede Instanz Katze in diesem Verzeichnis. 569 00:26:38,800 --> 00:26:41,600 Und es wird rekursiv Suche alle Unterverzeichnisse. 570 00:26:41,600 --> 00:26:43,940 So in baz, es gibt Katze. 571 00:26:43,940 --> 00:26:45,570 In temp / 2, es gibt Katze. 572 00:26:45,570 --> 00:26:47,960 Und in temp / 1 gibt es Katze. 573 00:26:47,960 --> 00:26:50,045 Also das ist die Suche innerhalb von Dateien. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Jetzt können Sie auch fündig. 576 00:26:55,090 --> 00:26:59,640 Und so finden, ist speziell über auf der Suche nach Dateien mit einem bestimmten Namen. 577 00:26:59,640 --> 00:27:02,490 Lassen Sie uns also etwas mehr. 578 00:27:02,490 --> 00:27:03,660 Lassen Sie uns in Downloads gehen. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Berühren dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Berühren cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Berühren Katze_Hund. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Berühren Catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Deshalb möchte ich alle zu finden Dateien mit Hund im Namen. 589 00:27:23,810 --> 00:27:28,060 So zu finden, und für die längste Zeit, die ich nie vergessen 590 00:27:28,060 --> 00:27:33,760 Wie finden arbeitete, bis ich endlich Lesen etwas, das es so deutlich gemacht. 591 00:27:33,760 --> 00:27:35,784 So finden, automatisch rekursiv. 592 00:27:35,784 --> 00:27:36,950 Sie brauchen nicht, um eine -r übergeben. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 So finden dot. 595 00:27:39,110 --> 00:27:40,750 Wir haben noch nicht über Punkt noch gesprochen. 596 00:27:40,750 --> 00:27:44,800 Während dot dot immer bedeutet ein Verzeichnis nach oben. 597 00:27:44,800 --> 00:27:46,960 Dot bedeutet immer das aktuelle Verzeichnis. 598 00:27:46,960 --> 00:27:51,390 So konnte ich -r dot in der RM Ebenso kann ich rm -rf *. 599 00:27:51,390 --> 00:27:53,140 Letztlich sie erreichen die gleiche Sache. 600 00:27:53,140 --> 00:27:56,040 rm -rf dot wird zu entfernen die gesamte aktuelle Verzeichnis. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> OK, das will ich nicht, um es zu tun. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Aber finden dot. 605 00:28:04,320 --> 00:28:07,920 So rekursiv durchsucht den aktuellen Verzeichnis, und jetzt ist alles 606 00:28:07,920 --> 00:28:14,125 danach sind ein Haufen von Flags, die Sie verwenden, um die Dinge aus dem Rück auszuschließen. 607 00:28:14,125 --> 00:28:17,250 So finden dot kehrt alles, was es kann aus dem aktuellen Verzeichnis zu finden. 608 00:28:17,250 --> 00:28:19,700 Das sind alle Dateien rekursiv suchen. 609 00:28:19,700 --> 00:28:21,250 Wir werden einige von denen in einem zweiten zu sehen. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Aber falls Sie sich fragen, wie ich tun daß, so Befehl K, zumindest 612 00:28:27,140 --> 00:28:29,660 in meinem Terminal im Mac löscht es. 613 00:28:29,660 --> 00:28:34,660 Control L Regel löscht es für jede Art von Endgerät. 614 00:28:34,660 --> 00:28:36,480 Sie können auch klar. 615 00:28:36,480 --> 00:28:38,410 Und wenn Sie jemals bekommen in eine seltsame scenario-- 616 00:28:38,410 --> 00:28:42,790 es ist mir ein paar passiert Zeit-- wo die Farben Ihrer Ansagen 617 00:28:42,790 --> 00:28:46,590 sind alle durcheinander, oder Sie sind nicht in der Lage, etwas zu sehen 618 00:28:46,590 --> 00:28:51,232 wird getippt, wenn du schreibst, denn manchmal wie Hintergrundfarbe festgelegt ist 619 00:28:51,232 --> 00:28:53,940 gleich der Vordergrundfarbe und jetzt können Sie nicht sehen können die Schriftarten. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 Reset ist etwas, das nur zurücksetzt Sie auf den Standard schwarzem Hintergrund, 622 00:28:59,830 --> 00:29:01,840 weiße Front, oder was auch immer Sie sie zu setzen. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Also, wo waren wir? 625 00:29:04,790 --> 00:29:05,930 Finden dot. 626 00:29:05,930 --> 00:29:09,360 So, jetzt alles, was diese Vergangenheit Punkt schränkt die Ergebnisse 627 00:29:09,360 --> 00:29:11,450 zu etwas, das entspricht die vorgegebenen Muster. 628 00:29:11,450 --> 00:29:16,110 So, hier will ich suchen alles mit dem Namen Katze. 629 00:29:16,110 --> 00:29:17,300 Ich habe nichts. 630 00:29:17,300 --> 00:29:18,390 Warum ist das der Fall? 631 00:29:18,390 --> 00:29:21,230 Nun, ich bin gerade auf der Suche nach etwas mit genau dem Namen Katze. 632 00:29:21,230 --> 00:29:25,150 Wenn ich etwas zu suchen Das hat einige Muster und cat-- 633 00:29:25,150 --> 00:29:28,890 die Zitate technisch nicht notwendig sind, aber ich bin sie dort zu werfen. 634 00:29:28,890 --> 00:29:32,720 So, jetzt Catcat da findet es das ist die einzige Sache, 635 00:29:32,720 --> 00:29:36,040 hat einige willkürliche Muster gefolgt von Katze. 636 00:29:36,040 --> 00:29:41,950 Ich kann cat * setzen, und jetzt finden Catcat, Katze_Hund, CAT2, 637 00:29:41,950 --> 00:29:45,245 denn das sind alles Dinge mit Katze am Anfang, gefolgt von etwas. 638 00:29:45,245 --> 00:29:46,120 Sie können dies zu kombinieren. 639 00:29:46,120 --> 00:29:50,480 Wenn Sie für alle C-Dateien gesucht werden soll dass Sie, die Sie tun können * .c. 640 00:29:50,480 --> 00:29:51,960 Wir haben hier blah.c. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Also das ist ein Recherchieren. 643 00:29:55,020 --> 00:29:55,770 Sie können zu suchen. 644 00:29:55,770 --> 00:29:58,270 Es hat eine ganze Reihe von Flaggen für weitere Einschränkungen. 645 00:29:58,270 --> 00:30:00,960 Und man auf sie, sagen wir mal -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 So veraltet. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, das ist nicht das, was ich will. 650 00:30:06,550 --> 00:30:07,730 Nicht -d. 651 00:30:07,730 --> 00:30:08,860 Geben Sie d. 652 00:30:08,860 --> 00:30:13,820 So finden dot - Art d. 653 00:30:13,820 --> 00:30:17,760 Also, was das gerade getan ist, ich bin auf der Suche für alle Dateien in dem aktuellen Verzeichnis 654 00:30:17,760 --> 00:30:21,680 mit A-- d steht für directory-- Verzeichnistyp. 655 00:30:21,680 --> 00:30:24,430 Dieser gibt alle Verzeichnisse im aktuellen Verzeichnis. 656 00:30:24,430 --> 00:30:27,670 Und Typ F ist alles regelmäßige Dateien, alle Nicht-Verzeichnisse. 657 00:30:27,670 --> 00:30:29,809 Also das ist nur ein Beispiel für andere Möglichkeiten, 658 00:30:29,809 --> 00:30:32,350 können die anderen Suche einzuschränken als nur der Name der Datei. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Es ist schon 30 Minuten. 661 00:30:35,570 --> 00:30:36,848 Immer noch. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Ich werde durch Wind. 663 00:30:38,132 --> 00:30:39,670 Es wird gut sein. 664 00:30:39,670 --> 00:30:41,460 >> Rob Bowden: Also einige andere Dinge. 665 00:30:41,460 --> 00:30:45,700 Jetzt schlagen, Ausrufezeichen. 666 00:30:45,700 --> 00:30:50,530 So dass in der Regel means-- gut, mal sehen, ein Beispiel. 667 00:30:50,530 --> 00:30:52,230 So! F, was ist das jetzt tun? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Nun, es scheint, haben wiederholt find dot -type f. 670 00:30:57,810 --> 00:30:59,240 Was! G? 671 00:30:59,240 --> 00:31:00,760 Das funktioniert einfach grep -r cat *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 So schlagen Sie verwenden können, zu wiederholen, ein vor kurzem getan Befehl. 674 00:31:05,720 --> 00:31:13,280 Also, wenn ich schreibe! Gre, es geht um erneut ausgeführt die Befehle, die mit GRE meisten begann 675 00:31:13,280 --> 00:31:14,060 vor kurzem. 676 00:31:14,060 --> 00:31:17,090 >> Und Sie können all dies zu sehen Befehle mit der Geschichte. 677 00:31:17,090 --> 00:31:17,880 Also Geschichte. 678 00:31:17,880 --> 00:31:19,630 Dies sind alles Befehle habe ich heute laufen. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 Und ja, es ist nicht wörtlich bis heute beschränkt, 681 00:31:23,130 --> 00:31:25,180 aber ich habe nur diese Gerät ab heute. 682 00:31:25,180 --> 00:31:28,730 Es ist Ihre Gesamtheit der Geschichte Ihrer Bash-Shell, 683 00:31:28,730 --> 00:31:30,433 außer es schneidet an einem gewissen Punkt. 684 00:31:30,433 --> 00:31:33,474 PUBLIKUM: Was passiert, wenn Sie tun, Geschichte [unverständlich] Befehl und ein Fehler 685 00:31:33,474 --> 00:31:35,430 im Ergebnis wird immer noch ausdrucken the-- 686 00:31:35,430 --> 00:31:44,110 >> Rob Bowden: Ja, wenn es eine Fehler in einem dieser commands-- 687 00:31:44,110 --> 00:31:48,090 so lassen Sie uns sagen, ist, dass ein Fehler Befehl nicht gefunden. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Noch wird in der Geschichte. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 In Ordnung. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Andere Fragen auf etwas? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Also das ist, Knall. 696 00:32:00,300 --> 00:32:04,230 >> Nun, wirklich nützlicher Befehl, Mann. 697 00:32:04,230 --> 00:32:07,750 Also, die Ihnen zugleich Handbuch für einen bestimmten Befehl. 698 00:32:07,750 --> 00:32:11,640 Also sagen wir mal man ls, so Dies zeigt mir ls. 699 00:32:11,640 --> 00:32:13,400 Es listet Verzeichnisinhalte. 700 00:32:13,400 --> 00:32:17,150 Und das ist, wo ich sehe, dass es sind diese verschiedenen Flaggen, die es gibt. 701 00:32:17,150 --> 00:32:21,340 So sehen wir, dass ls -l existiert wenn wir lesen, dass. ls -l 702 00:32:21,340 --> 00:32:26,150 gibt mir diese vollständige Auflistung der Verzeichnis mit der die Datei besitzt, 703 00:32:26,150 --> 00:32:29,750 die Größe der Datei, die das modifizierte Zeitstempel. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 So ls -a ist eine andere, die Sie vielleicht tatsächlich nutzen etwas häufiger. 706 00:32:34,980 --> 00:32:38,130 -al ist meine häufigste Flagge am vergangenen ls. 707 00:32:38,130 --> 00:32:42,520 >> So -a, feststellen, es gibt eine Menge mehr Dateien als nur ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 Was ist in der gemeinsam mit all diesen Dateien? 710 00:32:46,170 --> 00:32:47,790 Sie beginnen mit einem Punkt. 711 00:32:47,790 --> 00:32:54,710 Also das ist eine Konvention in Linux, dass Dateien, die mit einem Punkt beginnen, sind versteckt. 712 00:32:54,710 --> 00:32:58,330 Also es bedeutet nur, dass wenn wir nur geradeaus ls, 713 00:32:58,330 --> 00:33:04,170 oder wir suchen das Verzeichnis mit der Finder Äquivalent, oder der Windows 714 00:33:04,170 --> 00:33:07,250 Äquivalent Explorer, dass wir wollen nicht, diese Punkt-Dateien sehen. 715 00:33:07,250 --> 00:33:09,680 Sie belasten gerade die Sicht auf die Dinge. 716 00:33:09,680 --> 00:33:11,790 Also sie sind verborgen wenn Sie speziell 717 00:33:11,790 --> 00:33:14,250 fordert sie mit so etwas wie -a. 718 00:33:14,250 --> 00:33:18,920 So kann ich CD in .local, und ich sehe, , dass selbst ein Verzeichnis mit 719 00:33:18,920 --> 00:33:22,220 ein freigegebenes Verzeichnis, und Anwendungen und blah blah blah. 720 00:33:22,220 --> 00:33:24,520 So punktieren, Dateien sie nur versteckt. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> OK, so dass andere wichtige. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Ich habe ein paar ich überspringen kann. 725 00:33:32,000 --> 00:33:38,160 Lassen Sie uns einfach ganz schnell reden über die Dateiumleitung Dinge. 726 00:33:38,160 --> 00:33:43,020 So gibt es eine ganze komplexe Reihe Dinge, die Sie mit diesen zu tun, 727 00:33:43,020 --> 00:33:47,204 aber nur, um sie zu sehen, sagen wir mal, Echo. 728 00:33:47,204 --> 00:33:47,870 Ein anderer Befehl. 729 00:33:47,870 --> 00:33:48,920 Wirklich dumm Befehl. 730 00:33:48,920 --> 00:33:50,710 Denn es macht nicht drucken, was ich sage es. 731 00:33:50,710 --> 00:33:52,070 So echo hallo. 732 00:33:52,070 --> 00:33:53,850 Es ist einfach hallte hallo auf den Bildschirm. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Hallo Welt. 735 00:33:56,390 --> 00:33:57,890 Echoes Hallo Welt. 736 00:33:57,890 --> 00:34:02,650 >> So ein Befehl oder ein Symbol, dass bash versteht 737 00:34:02,650 --> 00:34:07,620 dies ist größer als Symbol und daß der Ausgang in einer Datei Symbol. 738 00:34:07,620 --> 00:34:10,940 Also, wenn ich Ausgangs dies foo, gibt es jetzt eine Datei 739 00:34:10,940 --> 00:34:15,100 genannt foo, Innenseite Das ist Hallo Welt. 740 00:34:15,100 --> 00:34:18,489 So bemerken, dass, wenn ich echo Hallo Welt Rohr in foo, 741 00:34:18,489 --> 00:34:19,980 es hat nicht echo Hallo Welt. 742 00:34:19,980 --> 00:34:22,630 Stattdessen wurde es in Datei foo setzen. 743 00:34:22,630 --> 00:34:25,340 Und ein anderer Befehl gerade um es auf dich werfen, Kat. 744 00:34:25,340 --> 00:34:29,191 Das ist eine einfache Möglichkeit, einfach komplett Liste der Inhalte der Datei 745 00:34:29,191 --> 00:34:31,440 so dass ich nicht zu öffnen einen Texteditor, um sie anzuzeigen. 746 00:34:31,440 --> 00:34:34,159 So wird der Inhalt des foo Datei sind Hallo Welt. 747 00:34:34,159 --> 00:34:38,460 Und ich konnte Katze blah.c, der Inhalt dieser. 748 00:34:38,460 --> 00:34:42,123 >> Auch dies sind Befehle, die, nicht erwarten, dass Sie habe sie alle auswendig. 749 00:34:42,123 --> 00:34:43,860 Die Idee ist, dass Sie sie gesehen haben. 750 00:34:43,860 --> 00:34:45,735 Vielleicht sind Sie gerade arbeiten etwas, und du bist 751 00:34:45,735 --> 00:34:47,230 wie ich bin krank von dem Öffnen dieser Datei. 752 00:34:47,230 --> 00:34:50,120 Ich wünschte, ich könnte nur schauen auf den Inhalt, sehr kurz. 753 00:34:50,120 --> 00:34:52,320 Sie könnten das tun, dann Blick zurück und oh sagen, ich 754 00:34:52,320 --> 00:34:55,250 erinnern etwas wie was existiert, und es ist Katze. 755 00:34:55,250 --> 00:35:00,630 >> So daß in einer Datei gehen. 756 00:35:00,630 --> 00:35:06,639 Jetzt gibt es wirklich keine gute Beispiel für das Lesen aus einer Datei ist leer. 757 00:35:06,639 --> 00:35:08,930 Was ist etwas, das dauert etwas von der Standard? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Alle einfachen Linux-Befehl? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Als wir um es zu bekommen, in ein paar Wochen alle piece-- gut, 762 00:35:16,970 --> 00:35:20,470 diese Woche Sie ein Stück, wo man Beginn der Einnahme von Eingaben des Benutzers. 763 00:35:20,470 --> 00:35:23,696 Und so in der Regel der Eingabe dass der Eingang an der Tastatur. 764 00:35:23,696 --> 00:35:25,570 Anstelle der Eingabe, dass Eingabe an der Tastatur, 765 00:35:25,570 --> 00:35:30,950 Sie können statt dessen Rohr aus einer Datei so dass, wenn Sie tun, Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 Rohr-in von einem bestimmten Datei und das wird die mario Programm auszuführen. 767 00:35:35,200 --> 00:35:37,300 Nicht erwartet Eingang an die Tastatur, sondern es ist 768 00:35:37,300 --> 00:35:39,650 gerade dabei, das zu lesen Zeilen aus dem foo Datei. 769 00:35:39,650 --> 00:35:45,230 >> Also größer als foo legt es in die foo-Datei, und weniger als foo 770 00:35:45,230 --> 00:35:50,170 nimmt Sachen aus dem foo-Datei und verwendet, die als Eingabe zu diesem Programm. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 Und nur um es zu sehen, konnten wir auch echo foo bar baz, und dann statt einer 773 00:36:00,630 --> 00:36:03,850 größer, machen wir zwei in foo. 774 00:36:03,850 --> 00:36:05,610 Was bedeutet das? 775 00:36:05,610 --> 00:36:07,180 Es hängt nur an der Datei. 776 00:36:07,180 --> 00:36:15,360 Anstatt also feststellen, wenn ich echo blah in foo und dann cat foo, es ist nur blah. 777 00:36:15,360 --> 00:36:18,285 Also, wenn Sie in eine Datei ausgegeben, es komplett überschreibt diese Datei. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Wenn Sie nur wollen, um anzufügen, Doppel [? Grader. ?] 780 00:36:22,740 --> 00:36:24,080 >> Und last ist Rohr. 781 00:36:24,080 --> 00:36:29,590 Rohr Ruft viel komplizierter, wo er die Ausgabe eines Befehls statt 782 00:36:29,590 --> 00:36:32,320 und speist sie in den nächsten Befehl. 783 00:36:32,320 --> 00:36:36,140 So einige gemeinsame Sache, Geschichte. 784 00:36:36,140 --> 00:36:37,920 Also, pfui, ich will nicht, dies zu betrachten. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Zeige mir alle Befehle in meiner Geschichte wo ich grep-ed für etwas. 787 00:36:44,485 --> 00:36:45,360 Nein, das ist verwirrend. 788 00:36:45,360 --> 00:36:50,360 Zeige mir alle Befehle, wo ich zu finden. 789 00:36:50,360 --> 00:36:52,360 Alle finden Befehle, die ich je fuhr. 790 00:36:52,360 --> 00:36:55,050 >> Also Geschichte. 791 00:36:55,050 --> 00:36:59,017 Jetzt Geschichte Ausgänge auf die Screen Diese Liste von Befehlen, 792 00:36:59,017 --> 00:37:00,850 aber ich will nicht Ausgangs es auf den Bildschirm. 793 00:37:00,850 --> 00:37:03,445 Stattdessen werde ich eine Pipe in grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Lassen Sie uns also grep für alle Instanzen Fund. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 So, jetzt anstelle von grep Mitnahmen der Eingang, statt von-- 798 00:37:17,000 --> 00:37:24,360 grep kann als input-- wir behandeln mit grep etwas anders hier. 799 00:37:24,360 --> 00:37:29,550 Also, anstatt sie einzutippen die Liste der Dinge, die wir für die Suche gesucht 800 00:37:29,550 --> 00:37:31,070 und sagte, grep nimmt als Eingabe. 801 00:37:31,070 --> 00:37:34,810 Wenn ich also nur grep finden, ist es wartet auf mich Dinge zu geben. 802 00:37:34,810 --> 00:37:37,661 Also Katze hallo zu finden. 803 00:37:37,661 --> 00:37:38,160 Hallo. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Suchen. 806 00:37:40,930 --> 00:37:43,670 Beachten Sie jedes Mal, wenn ich tippe finden er erkennt, dass ich tippte Fund. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Also statt dessen werden Suche Dateien gibt. 809 00:37:49,540 --> 00:37:53,930 >> Also Geschichte geht jetzt um Ausgabe einer Liste aller Befehle. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Wir setzen diesen Ausgang, und wir füttern es grep, 812 00:37:58,100 --> 00:38:00,180 und so ist es spuckt alle Instanzen Fund. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 Der Grund, warum ich sagte, es wäre verwirrend ist, wenn I-- es ist immer noch verwirrend. 815 00:38:05,570 --> 00:38:07,030 Wenn ich grep für grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Beachten Sie, es ist ja eigentlich schon immer zeigt den Befehl, den ich gerade 818 00:38:11,130 --> 00:38:15,280 lief, weil dieser Befehl selbst hat grep darin. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, also irgendwelche Fragen über alles? 821 00:38:20,674 --> 00:38:22,340 Und ich werde sie über an dieser Stelle zu übertragen. 822 00:38:22,340 --> 00:38:24,690 Hoffentlich ist dies ein schöner Übersicht aller Befehle 823 00:38:24,690 --> 00:38:30,100 dass Sie nicht brauchen, um haben gespeichert, aber diese bilden 824 00:38:30,100 --> 00:38:32,950 eine solide 95% von dem, was ich tun in der Befehlszeile. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 Denken Sie auch daran, dass die Kommandozeile selbst, ist bash eine Programmiersprache, 827 00:38:39,140 --> 00:38:43,070 und so, wenn Sie unten, um es zu, Sie Vielleicht möchten Sie wirklich komplexe Dinge zu tun. 828 00:38:43,070 --> 00:38:47,522 Und so Dinge wie hat Schleifen und ifs, und alle diejenigen, 829 00:38:47,522 --> 00:38:50,230 dass Sie sich daran zu gewöhnen sind mit Programmiersprachen. 830 00:38:50,230 --> 00:38:53,660 Aber das ist jenseits der Geltungsbereich dieses Abschnitts. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, so dass keine Fragen? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON: Keine? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Gehst du zu-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: Ich kann es tun auf meine, wenn Sie wollen. 837 00:39:01,158 --> 00:39:02,626 Wir können sehen, was passiert. 838 00:39:02,626 --> 00:39:03,750 Rob Bowden: Weg von Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Du bist ein harter Handlung zu folgen, Rob. 841 00:39:07,504 --> 00:39:08,920 Wollen Sie mir, mit Ihnen wechseln? 842 00:39:08,920 --> 00:39:10,246 Oder du hast, OK. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Ich werde versuchen, nicht ganz so lange da sein. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Lassen Sie uns, wenn dieser Wille zu sehen so funktionieren, wie ich es will. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Vielleicht? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Haha! 851 00:39:28,296 --> 00:39:28,796 Ja. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Also ich werde einfach sehr schnell gehen durch Variablen, Schleifen, Bedingungen, 854 00:39:34,066 --> 00:39:35,440 und ein wenig auf den Compiler. 855 00:39:35,440 --> 00:39:38,570 Wenn Sie Fragen zu haben zu jeder Zeit, aufhören, mich bitte. 856 00:39:38,570 --> 00:39:42,750 Diese Jungs werden mich daran zu erinnern, wiederholen Ihre Frage, falls ich vergesse, 857 00:39:42,750 --> 00:39:44,210 sollte aber nicht zu schlecht sein. 858 00:39:44,210 --> 00:39:45,850 >> So Variablen, yeah. 859 00:39:45,850 --> 00:39:48,060 Wir haben niemanden, der Ihre Scratch Stücke hier. 860 00:39:48,060 --> 00:39:50,440 Ich bin sicher, die meisten von euch, wenn Sie irgendeine Art von Spiel hatte 861 00:39:50,440 --> 00:39:53,810 dass Sie mit Scratch erstellt, musste man zu verfolgen, so etwas wie Gäste zu halten, 862 00:39:53,810 --> 00:39:55,870 oder Zeit, oder so ähnlich. 863 00:39:55,870 --> 00:39:58,080 Also diejenigen leuchtend orange Stücke, die wir dort zu sehen 864 00:39:58,080 --> 00:40:02,630 sind nur der Scratch Form Variablen, und Sie werden definitiv 865 00:40:02,630 --> 00:40:04,640 sein mit Variablen während Ihrer Programme. 866 00:40:04,640 --> 00:40:07,350 Wenn Sie sich nicht, ich bin nicht wirklich sicher, was du tust. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Aber wie auch immer, große Sache, Definition von Variablen. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Mit C hat jede Variable zu haben, erklärte ein Typ, 871 00:40:16,970 --> 00:40:22,090 so ich dir gegeben habe einen sehr allgemeinen eine an der Oberseite. 872 00:40:22,090 --> 00:40:24,045 So haben Sie Ihre eingeben und dann was auch immer 873 00:40:24,045 --> 00:40:25,420 Sie entscheiden, Ihre variable nennen. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Also in diesem Fall, Typ in Ihrer Variablenliste. 876 00:40:29,680 --> 00:40:31,400 >> Wir haben drei Beispiele. 877 00:40:31,400 --> 00:40:34,439 Char von einigen Grad, eines A, das, was 878 00:40:34,439 --> 00:40:36,230 Ich bin sicher, Sie alle wollen um in dieser Klasse zu bekommen. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 Sie können mehrere definieren Variablen in einer Zeile 881 00:40:40,670 --> 00:40:43,880 solange sie sind alle vom gleichen Typ, die unser zweites Beispiel gibt es 882 00:40:43,880 --> 00:40:46,409 wo Sie drei haben Variablen x, y und z. 883 00:40:46,409 --> 00:40:47,200 Sie sind alle Schwimmer. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 Und dann kann man auch in diesem letzten Beispiel mit int Punktzahl und Anzahl 886 00:40:53,250 --> 00:40:56,510 von Teams, können Sie initialisieren Sie recht. 887 00:40:56,510 --> 00:41:01,270 >> So in der Mitte beispielsweise, wo wir einfach nur Float von x, y und z, 888 00:41:01,270 --> 00:41:02,730 die sind noch nicht initialisiert. 889 00:41:02,730 --> 00:41:04,140 Sie haben keinen Wert. 890 00:41:04,140 --> 00:41:05,600 Oder sie haben Müll Werte. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 Und wenn Sie versuchen, und verwenden Sie sie, der Compiler auf Sie schreien. 893 00:41:10,790 --> 00:41:14,727 Sie müssen sowohl zu erklären und initialisieren Sie Ihre Variablen. 894 00:41:14,727 --> 00:41:16,310 Also in diesem letzten, wir machen beides. 895 00:41:16,310 --> 00:41:19,320 Wir Deklaration von Variablen der Partitur und die Anzahl der Teams, 896 00:41:19,320 --> 00:41:24,134 und wir sind der Initialisierung ihnen geben sie ihren Anfangswerten von 7 und 4 897 00:41:24,134 --> 00:41:24,675 jeweils. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Cool. 900 00:41:27,190 --> 00:41:28,550 Jeder gut? 901 00:41:28,550 --> 00:41:29,470 Genial. 902 00:41:29,470 --> 00:41:31,690 >> OK, so dass einige Konventionen. 903 00:41:31,690 --> 00:41:35,965 Wenn euch gelesen habe durch Style 50, diese 904 00:41:35,965 --> 00:41:39,510 gibt eben Dinge, wir würden für gefallen Sie in Ihrem Stil zu implementieren. 905 00:41:39,510 --> 00:41:41,230 So aussagekräftige Namen. 906 00:41:41,230 --> 00:41:45,700 Wenn Sie anrufen, die Dinge beginnen nur x, y und z, insbesondere 907 00:41:45,700 --> 00:41:47,902 wie Sie in längeren bekommen Programme, du bist 908 00:41:47,902 --> 00:41:49,610 wahrscheinlich zu Verwechseln Sie sich selbst und sein 909 00:41:49,610 --> 00:41:52,930 wie, was ist diese Variable, die sich auf. 910 00:41:52,930 --> 00:41:55,880 Ich habe keine Ahnung, was das bedeutet. 911 00:41:55,880 --> 00:41:59,280 >> Also, wenn es soll halten eine Punktzahl, nennen es punkten. 912 00:41:59,280 --> 00:42:05,720 Wenn es soll einige Antwort halten oder führen, geben Sie ihm einen Namen wie die. 913 00:42:05,720 --> 00:42:09,920 For-Schleifen, die wir bekommen in der nächsten Folie, 914 00:42:09,920 --> 00:42:12,985 Einzelbuchstaben-Variablen sind in Ordnung. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN: I, j und k sind nur Konventionen für for-Schleifen 917 00:42:18,449 --> 00:42:22,050 dass jeder von ihnen erwartet, i bezeichnet werden, j und k. 918 00:42:22,050 --> 00:42:26,890 Sie können anrufen them-- Ich sehe Reihe Spalte oder Zeile Anruf manchmal 919 00:42:26,890 --> 00:42:29,450 für zwei verschachtelten Schleifen und das ist auch irgendwie Standard. 920 00:42:29,450 --> 00:42:31,450 Aber i und j wird vollständig verstanden. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Ja, ich und j Sie sind total in Ordnung. 922 00:42:33,670 --> 00:42:36,250 Aus Gründen der Klarheit wie in einigen Ihrer P-Sets, 923 00:42:36,250 --> 00:42:39,745 könnte es sinnvoll, mehr haben beschreibenden Dinge in dort gerade 924 00:42:39,745 --> 00:42:40,920 Den Überblick zu behalten. 925 00:42:40,920 --> 00:42:45,100 Aber ich denke, i, j und k Ich denke die überwiegende Mehrheit von uns alle nutzen. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> Rob Bowden: Mit diesen Konventionen, also Stil wichtig ist. 928 00:42:50,340 --> 00:42:53,520 Es ist eine der vier Achsen auf dem Sie abgestuft sind, 929 00:42:53,520 --> 00:42:58,110 und es ist so leicht, einfach übergehen Ihr P am Ende eingestellt und stellen Sie sicher, 930 00:42:58,110 --> 00:42:59,770 dass es nicht stilistische Fehler. 931 00:42:59,770 --> 00:43:01,742 So stellen Sie sicher, dass Sie richtig Tab bist. 932 00:43:01,742 --> 00:43:03,200 Stellen Sie sicher, Ihre Variablen benannt sind. 933 00:43:03,200 --> 00:43:04,450 Kommentiere. 934 00:43:04,450 --> 00:43:06,677 Es ist sehr einfach, diese Punkte zu bekommen. 935 00:43:06,677 --> 00:43:09,510 Sie müssen nicht zu denken nichts, um diese Punkte zu bekommen. 936 00:43:09,510 --> 00:43:11,093 Sie müssen nicht, etwas herauszufinden. 937 00:43:11,093 --> 00:43:12,640 Es ist nur so dass es hübsch aussehen. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON: In der Tat haben wir haben Stil 50, die 939 00:43:14,850 --> 00:43:17,920 wird Ihnen sagen, wo Sie durcheinander bist up, wenn Sie durcheinander bist auf Stil 940 00:43:17,920 --> 00:43:21,180 und wird Ihnen genau sagen, was Sie reparieren müssen und wie Sie es beheben müssen. 941 00:43:21,180 --> 00:43:23,900 Es ist auch nur gut zu erwähnen, dass es natürlich Politik 942 00:43:23,900 --> 00:43:27,200 dass, wenn Sie im Büro sind Stunden und Ihr Code ist ein Chaos, 943 00:43:27,200 --> 00:43:30,200 können wir zurückgehen, um zu helfen Sie, bis er sieht schöner. 944 00:43:30,200 --> 00:43:34,310 So beginnen rechts, halten konsequenten Stil, 945 00:43:34,310 --> 00:43:37,100 du bist auch nur gehen, um Ihr Leben um einiges einfacher, wenn 946 00:43:37,100 --> 00:43:38,730 Sie versuchen, durch Debug gehen. 947 00:43:38,730 --> 00:43:41,510 Wenn Sie versuchen, herauszufinden, sind wo du verpasst eine geschweifte Klammer 948 00:43:41,510 --> 00:43:44,890 und sie sind alle über dem Platz, du bist gerade Ihre eigene Leben schwerer. 949 00:43:44,890 --> 00:43:47,217 So sei im Einklang mit Art. 950 00:43:47,217 --> 00:43:48,800 Ich verspreche, es wird Ihr Leben leichter machen. 951 00:43:48,800 --> 00:43:50,330 Sie macht unser Leben leichter. 952 00:43:50,330 --> 00:43:51,869 Jeder wird viel glücklicher sein. 953 00:43:51,869 --> 00:43:52,910 Und das ist, was Sie wollen. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: Ihre Klasse höher sein wird. 956 00:43:55,650 --> 00:43:56,858 ALLISON: Ja, und deine Klasse. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Wenn Ihr TF ist wie Sie, neigt günstig. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Alles klar, und dann einfach der zweite Punkt hier. 961 00:44:05,010 --> 00:44:06,300 Konsequente Initialisierungen. 962 00:44:06,300 --> 00:44:09,605 So wie wir sahen, die Sie deklarieren und initialisieren Dinge. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Mehrere Variablen in der gleichen Zeile. 965 00:44:13,180 --> 00:44:17,930 Eines, was wir möchten, dass Sie nicht zu tun ist, einige Variablen zu deklarieren 966 00:44:17,930 --> 00:44:21,360 und nicht auf der gleichen initialisieren Linie, die Sie anderen initialisiert. 967 00:44:21,360 --> 00:44:23,960 >> Also, falls die gemacht überhaupt keinen Sinn, 968 00:44:23,960 --> 00:44:29,050 Wir haben das Beispiel hier wo wir erklären ints 969 00:44:29,050 --> 00:44:31,180 in Variablen Quartalen Dimes und Pfennige, 970 00:44:31,180 --> 00:44:34,214 aber Quartalen und Pfennige haben keinen Anfangswert. 971 00:44:34,214 --> 00:44:36,630 Wir haben noch nicht initialisiert wurde, sondern direkt in der Mitte gibt es 972 00:44:36,630 --> 00:44:38,600 wir bereits initialisiert Groschen auf 0. 973 00:44:38,600 --> 00:44:41,650 Also entweder tun Viertel, Groschen, Pfennige. 974 00:44:41,650 --> 00:44:43,170 Oder wollen Quartalen gleich 0. 975 00:44:43,170 --> 00:44:43,930 Dimes gleich 0. 976 00:44:43,930 --> 00:44:46,810 Pennies gleich 0, oder was auch immer diese Anfangswerte sind. 977 00:44:46,810 --> 00:44:49,800 >> Große Sache mit Stil, im Einklang. 978 00:44:49,800 --> 00:44:51,050 Wenn Sie Zweifel haben, konsistent sein. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Aber folgen Sie unseren Styleguide zu. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Cool. 983 00:44:55,317 --> 00:44:56,150 Jeder gute da? 984 00:44:56,150 --> 00:44:57,566 >> PUBLIKUM: Wo ist der Style Guide? 985 00:44:57,566 --> 00:45:00,800 ALLISON: Der Styleguide ist on-- was ist die Website? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Ich denke, es ist manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: Style? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: Style. 990 00:45:06,390 --> 00:45:06,920 Yep. 991 00:45:06,920 --> 00:45:07,520 >> ALLISON: Ja. 992 00:45:07,520 --> 00:45:10,150 So hinterfragen, wo ist Stil 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Ja? 995 00:45:13,639 --> 00:45:16,880 >> PUBLIKUM: Wenn wir definieren Variablen ist es OK 996 00:45:16,880 --> 00:45:28,145 wenn wir wie [unverständlich] setzen wie int Punktzahl und dann int Ziel. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Also würden Sie sagen, jetzt haben wir bekam, um sie zusammen zu definieren? 999 00:45:35,100 --> 00:45:37,640 >> ALLISON: So hinterfragen, sollten Sie redundanten Code haben 1000 00:45:37,640 --> 00:45:40,940 wenn Sie definieren Variablen wie int Partitur und 1001 00:45:40,940 --> 00:45:43,239 in der nächsten Zeile int Spiel? 1002 00:45:43,239 --> 00:45:46,030 Rob Bowden: Es gibt auf jeden Fall Fälle, in denen redundante Code ist schlecht. 1003 00:45:46,030 --> 00:45:47,738 Ich würde es nicht als dass redundanten Code. 1004 00:45:47,738 --> 00:45:50,970 Ich fast nie erklären mehrere Variablen in der gleichen Zeile je. 1005 00:45:50,970 --> 00:45:53,736 Und wenn überhaupt, dann ist es, weil normalerweise lasse ich irgendeine Art von Kommentar 1006 00:45:53,736 --> 00:45:55,235 zu erklären, was die Variable ist für. 1007 00:45:55,235 --> 00:45:57,582 Also werde ich sagen, int Punktzahl Slash Schrägstrich. 1008 00:45:57,582 --> 00:45:59,350 Verfolgt was auch immer. 1009 00:45:59,350 --> 00:46:00,710 Insgesamt Slash Schrägstrich. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 So ist es viel gröberen auf diese Weise um sie alle auf der gleichen Linie setzen. 1012 00:46:06,455 --> 00:46:08,080 Ich kann nie legte sie auf der gleichen Linie. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: Ich fühle mich wie es ist persönliche Präferenz an dieser Stelle. 1014 00:46:10,580 --> 00:46:14,900 >> PUBLIKUM: Bedeutet das für zu gehen for-Schleifen und solche Sachen auch? 1015 00:46:14,900 --> 00:46:15,900 Rob Bowden: Wie innen? 1016 00:46:15,900 --> 00:46:18,282 Wie int i gleich 0 Komma Länge gleich so? 1017 00:46:18,282 --> 00:46:19,490 Dass Sie nicht die Wahl haben. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Mit for-Schleifen der Initialisierung part-- so könnte man nur gesehen haben 1020 00:46:25,910 --> 00:46:31,520 int i gleich 0 Semikolon i kleiner als was auch immer Semikolon i plus plus. 1021 00:46:31,520 --> 00:46:33,820 Das int i gleich 0 ist, technisch können Sie auch 1022 00:46:33,820 --> 00:46:35,770 tun, was wir zuvor gesehen mit dem Komma-Syntax. 1023 00:46:35,770 --> 00:46:39,790 int i gleich 0 Komma j gleich 3 Komma k gleich 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Du hast nicht die Wahl zu spalten dass bis in mehrere Zeilen, 1026 00:46:44,320 --> 00:46:46,530 und das ist Standard. 1027 00:46:46,530 --> 00:46:47,780 Sehen sie es ist in Ordnung. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 ALLISON: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Nun, bequeme segue in Schleifen. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Also ja, wir haben hier ein paar Beispiele von Loops, die euch in Scratch sah. 1033 00:46:58,980 --> 00:47:01,550 Und natürlich all diese kann nur in C neu erstellt werden 1034 00:47:01,550 --> 00:47:04,610 Und sie können Sie im Grunde einige Codeabschnitt wiederholen 1035 00:47:04,610 --> 00:47:06,740 bis eine bestimmte Bedingung erfüllt ist, auf die wir 1036 00:47:06,740 --> 00:47:09,198 bekommen in die rechte nach dem Gespräch über Schlaufen mit conditionals. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> So haben wir drei Haupttypen. 1039 00:47:12,570 --> 00:47:17,500 Denn während, und zu tun, während, die wir werden alle durch jetzt gehen. 1040 00:47:17,500 --> 00:47:18,860 Also erste ist für Schleifen. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Also aus irgendeinem Zustand, führen Sie diesen Code-Block. 1043 00:47:25,034 --> 00:47:27,200 Wir haben diese coolen kleinen Diagramm hier an der Unterseite. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Aber im Grunde sind Sie in haben Ihre für, das erste Zeile, 1046 00:47:32,310 --> 00:47:34,240 Sie zu gehen initialisieren Sie Ihre Variablen. 1047 00:47:34,240 --> 00:47:38,260 >> So wie wir gesprochen, i gleich 0 oder i gleich 10 ist. 1048 00:47:38,260 --> 00:47:40,010 Was immer Sie brauchen, dass variabel zu sein, es ist 1049 00:47:40,010 --> 00:47:43,970 werde es initialisiert werden, erklärt und bis zu einem gewissen Wert initialisiert. 1050 00:47:43,970 --> 00:47:46,760 Also dann haben wir einige Bedingung, dass los 1051 00:47:46,760 --> 00:47:48,900 sein Click variable gegen etwas. 1052 00:47:48,900 --> 00:47:55,220 So im Fall der typische Fall, wo vielleicht haben Sie diesen Codeabschnitt möchten 1053 00:47:55,220 --> 00:47:56,620 zu fünf Mal auszuführen. 1054 00:47:56,620 --> 00:48:02,380 Also müssten wir int i gleich 0 ist, und wir es haben wollen, wenn ich weniger als 5 ist. 1055 00:48:02,380 --> 00:48:04,940 Also diese Voraussetzung nur gehen, um zu überprüfen, dass jedes Mal. 1056 00:48:04,940 --> 00:48:07,120 Wenn diese Bedingung true ergibt, ist es 1057 00:48:07,120 --> 00:48:11,162 gehen, um den Code, das ist genau das laufen was dieser kleine Diagramm zeigt. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> Und so führt sie aus. 1060 00:48:13,639 --> 00:48:15,430 Es aktualisiert eine Variable, das ist, was wir sehen, 1061 00:48:15,430 --> 00:48:21,020 im letzten Teil der für Schleifeninitialisierung dort. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 So dass es dann einfach weiter, dies zu tun bis diese Bedingung nicht erfüllt ist, 1064 00:48:26,030 --> 00:48:28,010 und dann wird es zu verlassen die Schleife und weiter 1065 00:48:28,010 --> 00:48:29,960 Bewegen Sie sich mit dem Rest des Programms. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Jeder gute da? 1068 00:48:33,620 --> 00:48:34,440 Cool. 1069 00:48:34,440 --> 00:48:37,780 >> Also hier ist ein Beispiel, sehr ähnlich um etwas, das ich haben gerade darüber gesprochen. 1070 00:48:37,780 --> 00:48:42,030 Also wir drucken möchten gerade dies CS50 10 mal. 1071 00:48:42,030 --> 00:48:44,540 Sie sehen also, wir haben hier unsere für, und dann werden wir 1072 00:48:44,540 --> 00:48:47,450 initialisieren Sie die Variable i gleich 0 ist. 1073 00:48:47,450 --> 00:48:50,610 Unsere Bedingung ist die Überprüfung daß es weniger als 10 ist. 1074 00:48:50,610 --> 00:48:55,210 Also den Wert true, wenn wir zuerst zu starten, und aktualisiert dann unseren variablen 1075 00:48:55,210 --> 00:48:58,985 jedes Mal, wenn es tatsächlich ausführt und druckt das ist CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 Und wird nach 10-mal zu beenden. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Cool. 1080 00:49:04,070 --> 00:49:07,130 >> So, während Schleifen stehen an. 1081 00:49:07,130 --> 00:49:12,400 Und wie Sie hier sehen, haben wir nur einige während dieser Zustand- Frage? 1082 00:49:12,400 --> 00:49:15,238 >> PUBLIKUM: Wie kann ich springen eigentlich nur nicht eine Nummer, 1083 00:49:15,238 --> 00:49:19,030 aber zwei Zahlen [unverständlich] i plus plus plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: So war die Frage, wie kann man aktualisieren Sie Ihre Variable von mehr als einem 1085 00:49:23,390 --> 00:49:24,070 zu einem Zeitpunkt. 1086 00:49:24,070 --> 00:49:26,860 Also i plus Plus Update jedes Mal um eins. 1087 00:49:26,860 --> 00:49:32,310 Wenn Sie es durch aktualisieren wollte zwei, die Sie tun können i plus gleich 2. 1088 00:49:32,310 --> 00:49:34,526 >> Rob Bowden: Kennen Sie schon zzgl gleich in der Vorlesung noch nicht? 1089 00:49:34,526 --> 00:49:35,442 >> PUBLIKUM: [unverständlich]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: Es ist effektiv der Gleiche wie i gleich i plus 2. 1092 00:49:42,110 --> 00:49:46,130 Also es geht, es zu nehmen und aktualisieren Sie es durch zwei jeder Zeit. 1093 00:49:46,130 --> 00:49:49,432 Plus ist gleich ist nur etwas wir nennen syntaktischer Zucker. 1094 00:49:49,432 --> 00:49:52,390 Rob Bowden: Ja, die für vorhanden so ziemlich alle arithmetischen Operatoren. 1095 00:49:52,390 --> 00:49:55,830 Also ich mal gleich würde die Zahl verdoppeln. 1096 00:49:55,830 --> 00:50:02,590 j divide gleich 3 ist die gleiche als j gleich j geteilt durch 3. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: Oder minus gleich 2 wäre dekrementieren i durch zwei jeder Zeit. 1098 00:50:07,399 --> 00:50:08,565 Rob Bowden: Auch mod Gleichen. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Sie haben noch keine bitweise Operatoren gesehen, aber Caret gleich und das kaufmännische Und gleich, 1101 00:50:13,270 --> 00:50:14,560 alle, die vorhanden sind. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Also eine Menge Zeit, vor allem mit Ihrem ersten paar P-Sets, 1103 00:50:19,480 --> 00:50:22,527 Sie werden wahrscheinlich Erhöhen werden durch ein, so dass ich plus plus, j plus plus 1104 00:50:22,527 --> 00:50:24,610 Das sind alles Dinge wirst du um typischerweise mit. 1105 00:50:24,610 --> 00:50:28,240 Aber das Update Bedingung vollständig innerhalb Ihrer Kontrolle. 1106 00:50:28,240 --> 00:50:32,310 Sie können es gleichgültig mit welchen Schritten aktualisieren oder wie auch immer Sie sich entscheiden,. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Vielleicht sogar wollen, dass es sein eine Zufallszahl manchmal. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Aber ja, es gibt viele Dinge, die Sie mit der das kann. 1111 00:50:39,580 --> 00:50:41,280 Sie sind nicht zu i plus plus beschränkt. 1112 00:50:41,280 --> 00:50:44,400 >> Rob Bowden: Nur damit Sie wissen, dass es existiert, aber auch 1113 00:50:44,400 --> 00:50:46,960 existiert in einer anderen Form, plus plus i. 1114 00:50:46,960 --> 00:50:51,410 Also, wenn Sie zeitgleich online suchst und passieren zu sehen, plus plus i, 1115 00:50:51,410 --> 00:50:52,870 so ziemlich dasselbe bedeutet. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 ALLISON: Kühle. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Gut? 1120 00:50:56,740 --> 00:50:57,240 Genial. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 So, während Schleifen. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Sehr ähnlich. 1125 00:51:02,570 --> 00:51:03,737 Sie haben eine Bedingung. 1126 00:51:03,737 --> 00:51:05,820 Die wichtigste Sache zu bemerken Hier ist anstatt 1127 00:51:05,820 --> 00:51:08,540 drei verschiedene Teile einzurichten, haben wir eins. 1128 00:51:08,540 --> 00:51:11,090 Wir müssen nur eine Bedingung das ist überprüft. 1129 00:51:11,090 --> 00:51:14,920 Und in gleicher Weise, solange dass Bedingung true, 1130 00:51:14,920 --> 00:51:16,840 Ihren Code laufen soll. 1131 00:51:16,840 --> 00:51:18,870 Und wenn es falsch ist, es wird, verschieben beenden 1132 00:51:18,870 --> 00:51:21,930 auf den nächsten Teil des Programms. 1133 00:51:21,930 --> 00:51:25,780 Also das ist eine Art like-- was ein gutes Beispiel für die Überprüfung 1134 00:51:25,780 --> 00:51:27,215 für einige Normalzustand? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: Während wahr. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Sie könnten while true do. 1138 00:51:32,110 --> 00:51:33,510 Nun, 1 gleich 1 ist. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> Rob Bowden: Sie können tun while-- nur anstelle der Verwendung einer for-Schleife, 1141 00:51:37,642 --> 00:51:39,600 Sie können immer Code A for-Schleife in einer while-Schleife, 1142 00:51:39,600 --> 00:51:42,600 so i größer als 0 oder während ich weniger als 10. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> ALLISON: Awesome. 1145 00:51:46,010 --> 00:51:50,640 Und dann tun wir haben While-Schleifen, denen ist ideal für Benutzer-Validierung, wo 1146 00:51:50,640 --> 00:51:55,370 Sie etwas von erhalten möchten Ihre Benutzer sehen, ob es gültig ist, 1147 00:51:55,370 --> 00:51:57,060 und dann von dort aus weiter. 1148 00:51:57,060 --> 00:52:04,000 Damit wird eines der Dinge zu wissen, ist mit einem tun, während ist, dass es geht, um auszuführen, 1149 00:52:04,000 --> 00:52:08,000 und dann wird es erneut ausführen wenn diese Bedingung erfüllt ist. 1150 00:52:08,000 --> 00:52:11,240 >> So ist es wahrscheinlich der beste Weg, dies zu tun ist nur ein Beispiel zu sehen hier. 1151 00:52:11,240 --> 00:52:14,620 So wie ich gerade erwähnt, Benutzer Validierung ist wirklich useful-- 1152 00:52:14,620 --> 00:52:17,520 oder tun whiles sind wirklich Nützliche mit Benutzerüberprüfung. 1153 00:52:17,520 --> 00:52:19,730 So ist dies nur gehen erneut aufgefordert einige Benutzer 1154 00:52:19,730 --> 00:52:23,640 bis sie geben Sie eine positive Zahl, was nützlich für Ihre P-Set sein könnte 1155 00:52:23,640 --> 00:52:24,190 diese Woche. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 Und so in diesem Fall, wenn wir zunächst führen Sie dieses Programm, 1158 00:52:29,480 --> 00:52:32,260 es wird gedruckt geben Sie eine positive Zahl. 1159 00:52:32,260 --> 00:52:34,810 Es wird einige bekommen Eingabe von dem Benutzer, 1160 00:52:34,810 --> 00:52:38,320 und dann es geht um zu überprüfen, dass der Eingang gegenüber dem Zustand 1161 00:52:38,320 --> 00:52:39,500 dass Sie für sie eingerichtet haben. 1162 00:52:39,500 --> 00:52:41,030 >> Also in diesem Fall, es wird zu überprüfen. 1163 00:52:41,030 --> 00:52:44,190 Es wird gesagt, OK, ist unser Eingangs negativ, 1164 00:52:44,190 --> 00:52:47,175 oder ist er 0 oder negativ ist, welche unwirksam sein würde. 1165 00:52:47,175 --> 00:52:48,300 Also dann wäre es wieder prompt. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Question? 1168 00:52:50,780 --> 00:52:54,720 >> PUBLIKUM: Ist das derselbe dann als while-Schleife, wenn Sie nur diesen Code kopiert 1169 00:52:54,720 --> 00:52:56,680 und legte sie [unverständlich] while-Schleife? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> ALLISON: Also Frage war würde dies das gleiche wie gerade eine Weile 1172 00:53:05,160 --> 00:53:08,570 Schleife wenn wir nur Kopieren Sie die while-Schleife oben. 1173 00:53:08,570 --> 00:53:12,440 Also in diesem Fall, ist Ihre while-Schleife gehen, um den Zustand zunächst prüfen. 1174 00:53:12,440 --> 00:53:15,300 Also in diesem Fall, wenn wir versuchten als nur eine while-Schleife zu schreiben, 1175 00:53:15,300 --> 00:53:18,010 es wäre, während sagen Eingang ist kleiner als eins. 1176 00:53:18,010 --> 00:53:20,801 Aber wir haben nicht einen Eingang dafür. 1177 00:53:20,801 --> 00:53:24,238 >> PUBLIKUM: Wenn Sie [unverständlich] while-Schleife einschließlich diesen Code, 1178 00:53:24,238 --> 00:53:28,166 aber dann haben Sie den Code verkraftet über der while-Schleife auch. 1179 00:53:28,166 --> 00:53:31,052 Sie diesen Code hatte gerade [Unverständlich] while-Schleife. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Es wäre dasselbe, ja. 1181 00:53:32,760 --> 00:53:37,110 Sie haben also nur write-- könnte anstatt eine do-- ja. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Aber das ist eleganter. 1184 00:53:39,350 --> 00:53:41,020 ALLISON: Ja, das ist eleganter. 1185 00:53:41,020 --> 00:53:44,560 Sie können in Design und was nicht alles bekommen, aber ja, können Sie ganz tun. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 Noch Fragen? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK, cool. 1190 00:53:50,250 --> 00:53:55,540 >> Also haben wir eine Menge über Bedingungen gesprochen mit all diesen Schleifen, die wir haben, 1191 00:53:55,540 --> 00:53:58,615 so dass wir eigentlich immer in Bedingungen in Booleschen Ausdrücken. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Auch diese in C verwenden Sie, so nur irgendwie den Übergang 1194 00:54:03,440 --> 00:54:06,050 aus mehr grafische Oberfläche tatsächlich Codierung. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Cool, so groß ein, wenn. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 Grundsätzlich können wir nur vorstellen eine gewisse Logik in unser Programm und die Prüfung 1199 00:54:17,070 --> 00:54:17,790 sys Bedingungen. 1200 00:54:17,790 --> 00:54:22,150 Also in diesem Fall, OK, ist n größer als 0? 1201 00:54:22,150 --> 00:54:24,070 Ja, es ist, so können Sie diese ausführen kann. 1202 00:54:24,070 --> 00:54:28,060 Es ist nur die Überprüfung einige Bedingung, die Sie haben, 1203 00:54:28,060 --> 00:54:33,565 gesetzt, was ich denke, wir sind alle komfortabel mit Prüfbedingungen. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Cool. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Also, wenn sonst ist Ihre andere, Sie können sagen, OK, wenn das wahr ist, 1208 00:54:44,530 --> 00:54:46,150 tun dies als erstes. 1209 00:54:46,150 --> 00:54:48,720 Ansonsten möchte ich Sie Standard und etwas anderes tun. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Wie in diesem Fall können Sie entweder abholen ein positive Zahl oder eine negative Zahl. 1212 00:54:55,060 --> 00:54:56,500 Sie haben nur zwei Möglichkeiten. 1213 00:54:56,500 --> 00:54:59,550 Sie brauchen es, um unabhängig ausführen was Ihre Benutzereingaben. 1214 00:54:59,550 --> 00:55:02,920 So kann man wohl sagen, ist größer als 0? 1215 00:55:02,920 --> 00:55:03,480 Cool. 1216 00:55:03,480 --> 00:55:04,480 Drucken Sie eine positive Zahl. 1217 00:55:04,480 --> 00:55:06,153 Wenn es nicht, drucken Sie eine negative. 1218 00:55:06,153 --> 00:55:06,960 Jeder gut? 1219 00:55:06,960 --> 00:55:14,920 >> Und dann eine Sache zu erkennen ist dass, wenn die, wenn die Bedingung erfüllt ist, 1220 00:55:14,920 --> 00:55:16,650 die sonst nie auch auszuführen. 1221 00:55:16,650 --> 00:55:19,210 Nur einer von diesen wird führen zu einem Zeitpunkt. 1222 00:55:19,210 --> 00:55:20,410 Es ist also ein Kompromiss. 1223 00:55:20,410 --> 00:55:21,720 Sie erhalten nicht, beides zu haben. 1224 00:55:21,720 --> 00:55:23,566 Sie haben entweder die erste Bedingung. 1225 00:55:23,566 --> 00:55:25,440 Sie haben entweder die, wenn oder das andere, nicht beides. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Die dann Dinge machen noch komplizierter, 1228 00:55:28,890 --> 00:55:31,060 weil Sie, wenn tun können, anderes, und dann andere. 1229 00:55:31,060 --> 00:55:32,810 So dass in diesem Fall haben wir haben drei Bedingungen. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 Und wiederum, nur eine davon ist am Ende sich gerade ausgeführt wird. 1232 00:55:38,370 --> 00:55:41,030 So werden Sie vielleicht fragen Nun, was ist, wenn Sie 1233 00:55:41,030 --> 00:55:45,510 haben etwas, können zwei von diesen zu erfüllen. 1234 00:55:45,510 --> 00:55:49,520 Vielleicht, was Sie eingegeben sind erfüllt sowohl die Bedingung 1235 00:55:49,520 --> 00:55:51,811 denn wenn und die else if. 1236 00:55:51,811 --> 00:55:53,060 Einzige, was los zu laufen 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: Sobald er etwas findet dass sie die Bedingung für das trifft 1238 00:55:56,240 --> 00:55:59,790 true ergibt, ist das, was es wird laufen und sonst nichts. 1239 00:55:59,790 --> 00:56:04,440 Also, wenn Sie hatte, ist diese Zahl zwischen 0 und 5 für Ihre erste, 1240 00:56:04,440 --> 00:56:10,530 oder ist diese Zahl zwischen 3 und 5 für die anderen, wenn ein Teil, 1241 00:56:10,530 --> 00:56:15,550 und Eingabe der number-- Ich sagte, 0 und 5 und-- 4. 1242 00:56:15,550 --> 00:56:18,110 Es wird das erste treffen. 1243 00:56:18,110 --> 00:56:20,960 Es wird sagen, OK, diese Zahl liegt zwischen 0 und 5. 1244 00:56:20,960 --> 00:56:22,480 Ausführen und verlassen. 1245 00:56:22,480 --> 00:56:25,340 Es wird nie getroffen, dass zweite Option. 1246 00:56:25,340 --> 00:56:26,394 Cool? 1247 00:56:26,394 --> 00:56:27,250 Genial. 1248 00:56:27,250 --> 00:56:31,300 >> OK wir haben auch switch-Anweisungen, wenn Sie wollen noch mehr schreiben-- oder Entschuldigung zu bekommen, 1249 00:56:31,300 --> 00:56:31,965 Schalter ist der nächste. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Ich greife vor hier. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Auch mehrere, wenn Blöcke wo, wie ich gerade gesagt 1254 00:56:39,210 --> 00:56:45,600 ist, sobald Sie eine Bedingung zu finden das ist erfüllt und eine if else if else, 1255 00:56:45,600 --> 00:56:46,630 es hinterlässt. 1256 00:56:46,630 --> 00:56:49,560 Wenn Sie brauchen, um zu überprüfen, mehrere Dinge, du bist 1257 00:56:49,560 --> 00:56:53,000 werde, um dieses, weil verwenden möchten es wird jedes Mal hier überprüfen. 1258 00:56:53,000 --> 00:56:58,060 So wird dies durch und wenn ausführen es ist größer als oder gleich 90, 1259 00:56:58,060 --> 00:56:59,160 es geht um, dass zu drucken. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 Und es wird durchlaufen und überprüfen jeden einzelnen von diesen. 1262 00:57:03,600 --> 00:57:06,444 >> PUBLIKUM: Also das wäre mehr buggy als [unverständlich]. 1263 00:57:06,444 --> 00:57:07,735 Würde dies wie [unverständlich] sein? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: Die Frage ist wäre dies Buggy oder bedeutet das tun, was Sie wollen. 1266 00:57:15,740 --> 00:57:19,830 Es hängt wirklich davon ab, was Sie wollen aus Ihrem Programm. 1267 00:57:19,830 --> 00:57:22,291 >> PUBLIKUM: Ich meine, wie wenn du 90 in. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Wenn Sie setzen 90-- 1269 00:57:23,290 --> 00:57:24,206 PUBLIKUM: [unverständlich]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Du wirst zwei Dinge zu bekommen. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: Du wirst zwei Dinge zu bekommen. 1273 00:57:28,916 --> 00:57:29,420 Ja, zwei. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> Rob Bowden: Zwei? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: No. 1277 00:57:34,580 --> 00:57:35,288 >> Rob Bowden: Vier. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Wenn Sie setzen 90, es wird Ihnen sagen, bekam ein A finden Sie eine B bekam Sie eine C bekam, 1280 00:57:40,070 --> 00:57:40,545 Sie D. bekam 1281 00:57:40,545 --> 00:57:41,461 >> PUBLIKUM: [unverständlich]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Richtig. 1284 00:57:42,820 --> 00:57:44,778 So hängt ich auf, was Sie von dir will Programm. 1285 00:57:44,778 --> 00:57:47,050 Manchmal Sie brauchen überprüfen Sie mehrere Dinge. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Sie werden viel tiefer in das bekommen, was Gutes Design ist, wie Sie vorwärts gehen. 1288 00:57:55,270 --> 00:57:57,090 Die wichtige Sache zu bewusst ist, dass diese 1289 00:57:57,090 --> 00:58:01,090 wird alle vier Bedingungen hier überprüfen. 1290 00:58:01,090 --> 00:58:05,860 Wohingegen, wenn dies eine if else if sonst wenn sonst wäre es, dass die ersten Fall getroffen, 1291 00:58:05,860 --> 00:58:07,950 es wäre zu drucken Sie bekam ein A und durchgeführt werden. 1292 00:58:07,950 --> 00:58:10,250 >> Rob Bowden: Auch wenn wir beschlossen, dies zu ändern, wenn 1293 00:58:10,250 --> 00:58:13,880 und größer als oder gleich 90, wenn und größer oder gleich 80, 1294 00:58:13,880 --> 00:58:19,710 und weniger als oder gleich 89, wenn n größer als oder gleich 70, 1295 00:58:19,710 --> 00:58:23,830 und n kleiner oder gleich 79, so daß richtig sein wird. 1296 00:58:23,830 --> 00:58:27,190 Das wird das tun, was wir wollen, aber es immer noch überprüft jedes einzelne es. 1297 00:58:27,190 --> 00:58:34,050 >> Während also im ersten Fall, wenn wir Geben Sie 90 mit nur wenn else if else if, 1298 00:58:34,050 --> 00:58:37,300 und wir geben 90, dann es geht um zu korrigieren. 1299 00:58:37,300 --> 00:58:39,615 Es wird das erste Rückschlag ein, drucken Sie bekam ein A, 1300 00:58:39,615 --> 00:58:42,590 überspringen alles, weil es schon gefunden, die funktioniert. 1301 00:58:42,590 --> 00:58:46,360 In allen Fällen gegenseitig aus auf, wenn else if else if basiert. 1302 00:58:46,360 --> 00:58:48,630 So werde es die execute zuerst, wenn, dann ist es geschafft. 1303 00:58:48,630 --> 00:58:49,790 Es wird bis zum Ende zu gehen. 1304 00:58:49,790 --> 00:58:52,400 >> Wohingegen, wenn wir uns verändern dies zu sein, was ich war 1305 00:58:52,400 --> 00:58:54,204 verständlich mit weniger als oder gleich 89. 1306 00:58:54,204 --> 00:58:55,620 Es wird die erste zu überprüfen. 1307 00:58:55,620 --> 00:58:56,560 Es wird gedruckt. 1308 00:58:56,560 --> 00:58:58,010 Es wird die zweite überprüfen. 1309 00:58:58,010 --> 00:58:59,010 Es wird nicht zu drucken. 1310 00:58:59,010 --> 00:58:59,910 Überprüfen Sie die dritte. 1311 00:58:59,910 --> 00:59:00,620 Nicht Drucklegung. 1312 00:59:00,620 --> 00:59:01,495 Überprüfen Sie die vierte. 1313 00:59:01,495 --> 00:59:02,420 Jetzt Drucklegung. 1314 00:59:02,420 --> 00:59:05,380 Also in diesem Fall, die else if Version, da diese Fälle 1315 00:59:05,380 --> 00:59:09,120 sich gegenseitig ausschließen, ist es bessere Nutzung, wenn else if else if, 1316 00:59:09,120 --> 00:59:12,970 denn das ist zu haben, weniger Kontrollen der Bedingungen 1317 00:59:12,970 --> 00:59:14,750 als diese Version. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 ALLISON: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Also eine andere Sache, wir können zu tun ist, switch-Anweisungen. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Im Grunde eine switch-Anweisung nimmt in einigen Variablen, 1323 00:59:25,270 --> 00:59:28,780 in diesem Fall ist es n, und bestimmt, welcher Fall zur Ausführung. 1324 00:59:28,780 --> 00:59:33,106 So ist dies auch ein, wo Ihre Fälle sollte Art gegenseitig ausschließen. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 So dass in diesem Fall, wenn wir wir bekommen eine Eins, ist es 1327 00:59:37,940 --> 00:59:42,270 werde übereinstimmen was immer das variable-- unabhängig vom Wert von n 1328 00:59:42,270 --> 00:59:48,700 ist auf einen dieser Fälle so 1, 2, oder 3, und drucken Sie die entsprechende Zeile. 1329 00:59:48,700 --> 00:59:51,870 >> Und dann, wenn Sie sich hier bemerken, wir haben auch eine Standardeinstellung 1330 00:59:51,870 --> 00:59:54,670 was Sie denken kann der als anderes. 1331 00:59:54,670 --> 00:59:58,510 Also, wenn Sie eine andere Zahl abholen neben 1, 2 und 3 in diesem Fall 1332 00:59:58,510 --> 00:59:59,885 es nur geht ungültig zu drucken. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Die Entscheidung, wann ifs Vergleich verwenden wenn im Vergleich zu Switches elses wird 1335 01:00:08,390 --> 01:00:12,590 etwas zu sein, dass Sie Jungs siehe Planungs klug wie Sie anfangen zu schreiben 1336 01:00:12,590 --> 01:00:15,270 komplizierter Programme und es gibt keine festen Regeln 1337 01:00:15,270 --> 01:00:16,330 von wann sie zu verwenden. 1338 01:00:16,330 --> 01:00:17,890 Es hängt wirklich von Ihrem Kontext. 1339 01:00:17,890 --> 01:00:18,590 >> Rob Bowden: Und gerade um es dort zu werfen 1340 01:00:18,590 --> 01:00:20,131 da es bequemer Schnitt. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Schalter, neigen sie dazu, be-- so dass Sie beschränkt sind 1343 01:00:25,053 --> 01:00:27,430 in der Anzahl der Möglichkeiten, wie Sie sie verwenden können, weil ifs, 1344 01:00:27,430 --> 01:00:30,100 die Bedingung kann schön sein alles, was Sie wollen. 1345 01:00:30,100 --> 01:00:33,410 Mit schaltet die Fälle müssen Zahlen sein, 1346 01:00:33,410 --> 01:00:37,770 oder technisch können sie Zeichen sein, aber Zeichen, wie wir sehen werden, sind nur Zahlen. 1347 01:00:37,770 --> 01:00:44,250 Also müssen sie Zahlen, aber Schalter sein sind wirklich effizienter als wenn 1348 01:00:44,250 --> 01:00:50,060 else if else if, denn auch am Beispiel before-- gut, 1349 01:00:50,060 --> 01:00:51,486 die Note B. scheint gut. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Nun lassen Sie uns sagen hier, wir stattdessen tun dies als wenn else if else if-Szenario. 1352 01:00:57,080 --> 01:01:00,930 Also, wenn n gleich 1 entspricht, drucken Sie eine geringe Anzahl abgeholt. 1353 01:01:00,930 --> 01:01:04,490 Wenn sonst wenn n gleich gleich 2 ist, Sie eine mittlere Anzahl abgeholt. 1354 01:01:04,490 --> 01:01:06,550 Else if Gleichen gleich 3 ist, hoch. 1355 01:01:06,550 --> 01:01:08,060 Else ungültig. 1356 01:01:08,060 --> 01:01:09,820 >> Also lassen Sie uns sagen, dass war unser Szenario. 1357 01:01:09,820 --> 01:01:14,060 Also lassen Sie uns sagen, wir geben 4, so erwarten wir, ungültig. 1358 01:01:14,060 --> 01:01:17,410 Die Art und Weise, dass, wenn sonst, wenn sonst wenn Ansatz funktionieren wird ist 1359 01:01:17,410 --> 01:01:18,740 überprüft die erste Bedingung. 1360 01:01:18,740 --> 01:01:19,776 Es ist nicht zufrieden. 1361 01:01:19,776 --> 01:01:21,150 So prüfen wir die zweite Bedingung. 1362 01:01:21,150 --> 01:01:21,940 Es ist nicht zufrieden. 1363 01:01:21,940 --> 01:01:23,023 Überprüfen Sie die dritte Bedingung. 1364 01:01:23,023 --> 01:01:23,640 Nicht zufrieden. 1365 01:01:23,640 --> 01:01:26,650 So gehen wir in die andere und ausdrucken ungültig. 1366 01:01:26,650 --> 01:01:30,169 >> Die Art und Weise die Schaltwerke ist es kompiliert unten 1367 01:01:30,169 --> 01:01:31,960 in das, was wir gehen um eine Sprungtabelle aufrufen. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 Die Grundidee ist, dass, wenn Sie geben 4, 1370 01:01:37,120 --> 01:01:39,090 sie kann unmittelbar die Grund gehen. 1371 01:01:39,090 --> 01:01:41,460 Es muss nicht am Ich Fall 1 zu überprüfen? 1372 01:01:41,460 --> 01:01:42,350 Nö, das ist es nicht. 1373 01:01:42,350 --> 01:01:42,850 Fall 2? 1374 01:01:42,850 --> 01:01:43,240 Nope. 1375 01:01:43,240 --> 01:01:43,770 Fall 3? 1376 01:01:43,770 --> 01:01:44,270 Nope. 1377 01:01:44,270 --> 01:01:45,090 Default. 1378 01:01:45,090 --> 01:01:47,610 OK, dies muss in dem sein Ich möchten, und führen Sie dann das. 1379 01:01:47,610 --> 01:01:49,590 Nein, springt er sofort an den Standard. 1380 01:01:49,590 --> 01:01:51,900 Oder es gebe ich zwei, es ist sofort los, um zum 2 gehen 1381 01:01:51,900 --> 01:01:54,060 ohne dass durch Fall 1 gehen. 1382 01:01:54,060 --> 01:01:57,820 >> So in dieser Weise realistisch heutzutage das ist 1383 01:01:57,820 --> 01:02:00,250 nicht so viel von einem Effizienzgewinn. 1384 01:02:00,250 --> 01:02:02,880 Gewöhnlich Computern sind ziemlich schnell, und das ist nicht so toll. 1385 01:02:02,880 --> 01:02:07,270 Aber es der Fall ist, dass Switches sind schneller. 1386 01:02:07,270 --> 01:02:10,380 Wenn Sie versuchen wirklich zu optimieren, verwenden Sie einen Schalter. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> ALLISON: Kühle. 1389 01:02:12,710 --> 01:02:15,270 Und dann haben wir ternäre Operator. 1390 01:02:15,270 --> 01:02:19,470 Also ich weiß, dass ich bereits erwähnt das Wort syntaktischer Zucker. 1391 01:02:19,470 --> 01:02:24,160 So ist es nur Dinge, die Ihr Code viel prägnanter. 1392 01:02:24,160 --> 01:02:25,590 Also das ist einer jener Fälle. 1393 01:02:25,590 --> 01:02:31,430 >> So ternäre Operator ist Fragezeichen Doppelpunkt, wie wir in der Zeile String sehen 1394 01:02:31,430 --> 01:02:35,810 s gleich n größer als 100 Fragezeichen-Hochdick gering. 1395 01:02:35,810 --> 01:02:41,800 Also im Grunde, wie dies funktioniert, ist es die n größer als 100 ist eine Bedingung. 1396 01:02:41,800 --> 01:02:43,674 Also ich denke, es kann sinnvoll sein. 1397 01:02:43,674 --> 01:02:44,840 Es ist wie eine Frage zu stellen. 1398 01:02:44,840 --> 01:02:47,320 Es ist zu sagen oh, ist n größer als 100 ist. 1399 01:02:47,320 --> 01:02:48,340 Wer weiß? 1400 01:02:48,340 --> 01:02:50,750 Und falls die Auswertung wahr, es wird Ihnen 1401 01:02:50,750 --> 01:02:54,270 das erste, was ist dort aufgelistet, was hoch ist. 1402 01:02:54,270 --> 01:02:55,840 Ansonsten, es wird Sie günstig zu geben. 1403 01:02:55,840 --> 01:03:01,210 Also das ist nur eine wirklich einfache und effizienteste Weg, um wie ein, wenn anderes zu tun. 1404 01:03:01,210 --> 01:03:02,780 Das ist alles, das ist. 1405 01:03:02,780 --> 01:03:07,450 >> Und wenn wir, dies zu schreiben waren als wenn sonst bedingte, 1406 01:03:07,450 --> 01:03:12,480 es wäre, wenn n größer ist als 100, kehren hoch. 1407 01:03:12,480 --> 01:03:14,220 Else, zurückzukehren gering. 1408 01:03:14,220 --> 01:03:17,570 Dies ist nur ein sehr viel prägnante Art, es zu schreiben. 1409 01:03:17,570 --> 01:03:27,090 >> Rob Bowden: Also das besondere Beispiel wird, wenn Sie etwas zu tun 1410 01:03:27,090 --> 01:03:30,190 wie diese, ist dies die Muster wo ich ternären sehr häufig. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 So haben wir nicht über Umfang noch gesprochen, aber ich hasse es, string s Semikolon. 1413 01:03:35,460 --> 01:03:39,150 Wenn n größer als 100 ist, ist gleich s hoch. 1414 01:03:39,150 --> 01:03:40,660 Else, gleich s gering. 1415 01:03:40,660 --> 01:03:45,070 So dass Muster, die fünf Zeilen Code buchstäblich 100% der Zeit, 1416 01:03:45,070 --> 01:03:49,800 können in das, was übertragen werden war dort mit einem ternären. 1417 01:03:49,800 --> 01:03:52,340 Also das ternäre, eine Zeile Code. 1418 01:03:52,340 --> 01:03:54,640 Die if else, fünf. 1419 01:03:54,640 --> 01:03:56,910 Das ist ein Beispiel, das ich hinweisen aus jeder einzelne Zeit. 1420 01:03:56,910 --> 01:03:59,250 Dies würde großartiger Ort für einen ternären Operator. 1421 01:03:59,250 --> 01:04:00,647 Es ist so sauber. 1422 01:04:00,647 --> 01:04:01,980 Aber die Menschen neigen dazu, nie benutzen. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Nehmen Sie es weg Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: So, jetzt euch alle in der Vorlesung in dieser Woche gelernt 1426 01:04:11,110 --> 01:04:13,420 dass alles in einem Computer ist binär, nicht wahr? 1427 01:04:13,420 --> 01:04:14,570 Genau wie die Lampen hier. 1428 01:04:14,570 --> 01:04:16,492 Sie kann entweder ein- und ausgeschaltet. 1429 01:04:16,492 --> 01:04:18,450 Und alles, ich meine buchstäblich alles. 1430 01:04:18,450 --> 01:04:24,272 Einige Zahlen und Zeichen und Zeichenfolgen, und selbst der Code, den Sie schreiben, wenn 1431 01:04:24,272 --> 01:04:26,480 Es wird zu Maschine kompiliert Code und solche Sachen, 1432 01:04:26,480 --> 01:04:29,230 so dass es läuft alles auf 0 und 1 '. 1433 01:04:29,230 --> 01:04:34,540 >> Und so, wenn wir tun mit ganzen Zahlen, die 1434 01:04:34,540 --> 01:04:38,000 ist etwas, das technisch sehr ist einfach ist, sollten wir in der Lage, Dinge zu tun 1435 01:04:38,000 --> 01:04:40,630 wie das Hinzufügen von ihnen, das ist wahrscheinlich eine der einfachsten Dinge 1436 01:04:40,630 --> 01:04:42,300 Sie zwei ganze Zahlen tun können, oder? 1437 01:04:42,300 --> 01:04:47,410 So Addition und Subtraktion funktioniert wie es funktioniert dezimal, 1438 01:04:47,410 --> 01:04:50,780 Ausnahme hier ist es binäre, nicht wahr? 1439 01:04:50,780 --> 01:04:52,090 So ist es in der Basis zwei. 1440 01:04:52,090 --> 01:04:54,070 So fügen Sie 1 plus 1. 1441 01:04:54,070 --> 01:04:57,020 Das gibt 0 und 1 überträgt. 1442 01:04:57,020 --> 01:05:01,335 Und einfach weiter das tun, So, jetzt kommt die interessantere Frage. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Wir wissen, wie man alle vertreten positive ganze Zahlen in dem Computer, 1445 01:05:07,710 --> 01:05:09,870 aber wir machen dies eine Übung. 1446 01:05:09,870 --> 01:05:15,240 Pretend you guys 1960 oder sind alle etwas versuchen, einen Computer zu erstellen, 1447 01:05:15,240 --> 01:05:19,950 und man muss sich aus kommen, haben eine Art der Speicherung von minus 1, 1448 01:05:19,950 --> 01:05:22,554 zum Beispiel, oder abzüglich Integer für diese Angelegenheit. 1449 01:05:22,554 --> 01:05:23,470 Wie würden Sie das tun? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Irgendwelche Ideen? 1452 01:05:29,220 --> 01:05:31,302 Wirf alles auf mich. 1453 01:05:31,302 --> 01:05:32,264 Ja? 1454 01:05:32,264 --> 01:05:39,480 >> PUBLIKUM: [unverständlich] bezeichnen eine besondere, wenn Ihr [unverständlich]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: Sie können ein benennen Sonder Bit, das 0 oder 1 sein wird. 1456 01:05:42,590 --> 01:05:45,590 Nehmen wir an, ein, wenn es positive und 0, wenn es negativ ist. 1457 01:05:45,590 --> 01:05:48,171 Und dann wird der Rest der Bit- ist, nur um die Nummer zu speichern. 1458 01:05:48,171 --> 01:05:48,670 Cool. 1459 01:05:48,670 --> 01:05:49,990 Also das ist eine sehr gute Idee. 1460 01:05:49,990 --> 01:05:51,550 Wir haben, ich weiß nicht, 200. 1461 01:05:51,550 --> 01:05:54,720 Und wenn das erste Bit eingeschaltet ist, dann ist es plus 200. 1462 01:05:54,720 --> 01:05:57,270 Wenn es ausgeschaltet ist, ist es minus 200. 1463 01:05:57,270 --> 01:05:58,380 Cool. 1464 01:05:58,380 --> 01:06:01,350 >> Es gibt nur einen kleinen Problem dabei, 1465 01:06:01,350 --> 01:06:05,370 Das ist, wenn wir versuchen, die Dinge zusammenzufassen. 1466 01:06:05,370 --> 01:06:18,910 So vorstellen, die wir hier haben 11111 und wir Summieren dies mit 00.100 was auch immer. 1467 01:06:18,910 --> 01:06:21,630 Wenn diese beiden sind positiv, das ist in Ordnung. 1468 01:06:21,630 --> 01:06:24,470 Aber dann, wenn eine der sie ist negativ, wie 1469 01:06:24,470 --> 01:06:27,410 sagen wir mal, dass dieses bisschen hier ist derjenige, der verantwortlich ist 1470 01:06:27,410 --> 01:06:31,390 for-- Ich werde einen separate-- machen so ist dies ein Mittel, dass diese Zahl hier 1471 01:06:31,390 --> 01:06:31,970 ist positiv. 1472 01:06:31,970 --> 01:06:34,450 Dieses bedeutet, dass diese Nummer hier negativ ist, oder? 1473 01:06:34,450 --> 01:06:37,010 >> Aber wenn man dann werde sie zusammenfassen, können Sie 1474 01:06:37,010 --> 01:06:40,180 brauchen eine if-Anweisung sagen oh, wenn dies 0, 1475 01:06:40,180 --> 01:06:43,479 dann meine Summe wird etwas anderes, oder? 1476 01:06:43,479 --> 01:06:45,270 Also gibt es eine leicht mehr cleverer Weg, um zu tun 1477 01:06:45,270 --> 01:06:48,520 daß die Zweierkomplement genannt wird. 1478 01:06:48,520 --> 01:06:52,350 Also im Grunde, was wir tun wird definieren wir minus 1 1479 01:06:52,350 --> 01:06:57,250 um die Sache, dass, wenn fügen wir bis zu 1 gibt uns 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Lassen Sie mich wiederholen, dass. 1482 01:07:00,860 --> 01:07:03,280 Also lassen Sie uns sagen, dass dies hier ein. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Was ist die Sache, die natürlich im positiven ganzen Zahlen 1485 01:07:13,570 --> 01:07:15,570 derjenigen aufgenommen gibt uns 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 Was ist, wenn wir versuchen, es zu dieser Nummer hinzufügen? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Wir werden have-- OK, also fügen wir. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Wir werden 1 plus 1 haben 0 ist, und dann ist es vorbei führt. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 Und dann werden wir wieder 0 zu erhalten. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Ich bin verwirrt. 1496 01:07:48,820 --> 01:07:51,670 Und Sie gehen auf 0 zu bekommen sind und 0 und 0 und 0 und 0 und 0. 1497 01:07:51,670 --> 01:07:52,450 Viel 0en. 1498 01:07:52,450 --> 01:07:56,240 >> Im allerletzten ein, wir sind nicht werde es tragen über der Lage sein, 1499 01:07:56,240 --> 01:07:59,614 weil wir sagen, das wir nur den Umgang mit einem Byte, so dass nur 8 Bit. 1500 01:07:59,614 --> 01:08:02,780 Also, was der Computer tut standardmäßig nur vergisst, dass [unverständlich], 1501 01:08:02,780 --> 01:08:03,279 OK? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Also das ist, was man das Zweierkomplement. 1504 01:08:06,880 --> 01:08:15,180 Wir definieren einfach minus 1 bis das sein Sache hier, dass, wenn Sie, dass auf 1 hinzufügen 1505 01:08:15,180 --> 01:08:15,995 würde Ihnen 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 Und das ist ziemlich cool weil wir nicht wirklich 1508 01:08:20,180 --> 01:08:24,090 brauchen spät zu implementieren eine andere Art von Summen 1509 01:08:24,090 --> 01:08:26,590 je nachdem, ob das ist negative oder eine positive Zahl. 1510 01:08:26,590 --> 01:08:27,465 Ist das sinnvoll? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Also eine Sache, die wir tun, ein, um sich zu konvertieren 1513 01:08:32,370 --> 01:08:38,550 zwischen einem positiven und einem negativen Ganzzahl wird dann drehen wir alles, 1514 01:08:38,550 --> 01:08:40,930 und dann werden wir ein auf diese Zahl hinzuzufügen. 1515 01:08:40,930 --> 01:08:43,140 Wenn Sie versuchen, es selbst zu tun auf einem Stück Papier, 1516 01:08:43,140 --> 01:08:44,681 Sie gehen, um zu sehen, das macht Sinn. 1517 01:08:44,681 --> 01:08:51,000 Aber wenn ich diese Nummer nehmen hier, das ist fünf. 1518 01:08:51,000 --> 01:08:54,859 Also, wenn ich Flip alles hier, also 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Flip, Flip, Flip. 1521 01:08:57,830 --> 01:09:00,130 Und dann habe ich 1 hinzufügen, um es. 1522 01:09:00,130 --> 01:09:02,750 Ich werde genau minus 5 haben. 1523 01:09:02,750 --> 01:09:03,250 OK? 1524 01:09:03,250 --> 01:09:06,220 >> Dies macht Sinn, Art, denn wenn Sie versuchen, das mit der Anzahl Summe 1525 01:09:06,220 --> 01:09:10,229 dass wir vor, die was-- wir Flip dies erneut. 1526 01:09:10,229 --> 01:09:12,999 Es war 101 und viele 0en. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Wenn Sie versuchen, diese Add zwei Zahlen, 1529 01:09:15,670 --> 01:09:16,961 Sie gehen zu genau 0 haben. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 Ok. 1532 01:09:19,460 --> 01:09:19,884 Noch Fragen? 1533 01:09:19,884 --> 01:09:20,759 >> PUBLIKUM: [unverständlich] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: Was meinst du damit? 1536 01:09:27,280 --> 01:09:29,240 >> PUBLIKUM: Negative zu positive [unverständlich]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: Nein, Flip Sie und Sie ein immer hinzufügen. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Ja. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 OK, also Zeichen auch kodierte Binärdateien. 1542 01:09:39,680 --> 01:09:42,649 Wir haben ASCII-Tabelle, wie Sie sah auch in der Vorlesung, nicht wahr? 1543 01:09:42,649 --> 01:09:45,040 So ist es im Grunde ein Mapping der Dinge. 1544 01:09:45,040 --> 01:09:50,960 Und hier kann ich nicht genug betonen dass für einen Computer, ein 65 1545 01:09:50,960 --> 01:09:52,770 gibt buchstäblich dasselbe. 1546 01:09:52,770 --> 01:10:03,430 Also, wenn ich etwas schreiben wie char c gleich ein, konnte ich gleichzeitig 1547 01:10:03,430 --> 01:10:06,890 schreiben Sie einfach 65 hier, und es würde genau das gleiche sein, OK? 1548 01:10:06,890 --> 01:10:08,470 Es gibt keinen Unterschied. 1549 01:10:08,470 --> 01:10:12,420 >> Wir neigen in der Regel zu setzen Zeichen in Variablen des Typs. 1550 01:10:12,420 --> 01:10:16,770 Char, nicht weil sie im wesentlichen für das gemacht, sondern weil 1551 01:10:16,770 --> 01:10:18,050 menschlicher Konvention. 1552 01:10:18,050 --> 01:10:22,410 Aber man kann nur mit ganzen Zahlen umgehen anstelle von Variablen vom Typ char, 1553 01:10:22,410 --> 01:10:23,490 und alles wird gut. 1554 01:10:23,490 --> 01:10:28,410 Der einzige tatsächliche Unterschied zwischen einem char c und int i 1555 01:10:28,410 --> 01:10:31,960 ist, dass ein int hat vier Bytes in den meisten Systeme, während ein char hat ein Byte. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Sie sind im Wesentlichen die dasselbe in Bezug auf die Daten. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Also, was wird hier drucken? 1560 01:10:37,990 --> 01:10:43,780 Hier wir Drucken einer Ziffer mit printf mit einem Plus 1, und genau wie ganze Zahlen, 1561 01:10:43,780 --> 01:10:46,240 Zeichen können summiert werden, um Zeichen können auch zusammengefaßt werden. 1562 01:10:46,240 --> 01:10:47,890 Also das ist genau 65. 1563 01:10:47,890 --> 01:10:49,950 Also es geht um sein 66, und hier haben wir 1564 01:10:49,950 --> 01:10:56,860 65 plus wenig ein Minus großen A, was sein wird, weiß ich nicht wirklich wissen. 1565 01:10:56,860 --> 01:11:00,900 Aber es wird genau die Lücke zwischen den Großbuchstaben 1566 01:11:00,900 --> 01:11:07,800 und die kleineren Buchstaben, so wir werden klein ein, oder? 1567 01:11:07,800 --> 01:11:08,300 Ja. 1568 01:11:08,300 --> 01:11:11,740 Also das wird ein Druck Charakter, der genau ist dieses ein. 1569 01:11:11,740 --> 01:11:12,260 Gut? 1570 01:11:12,260 --> 01:11:12,860 Noch Fragen? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Hier haben wir eine Reihe von verschiedenen Typen für numerische Variablen. 1573 01:11:19,430 --> 01:11:20,620 Wir reden schon über int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Float ist nur ein Weg zu-- dies wirklich lustig, denn als ich zum ersten Mal gelernt 1576 01:11:27,760 --> 01:11:32,320 um in den Tag mit Programm wieder Python, das erste Programm, das ich je 1577 01:11:32,320 --> 01:11:37,480 versuchte zu schreiben, sah ich, dass es eine Art gerufen und ein Typ namens Schwimmer. 1578 01:11:37,480 --> 01:11:39,800 Und der Schwimmer war für alle reellen Zahlen. 1579 01:11:39,800 --> 01:11:43,290 Also fragte ich, warum sollte Ich je einen int verwenden dann? 1580 01:11:43,290 --> 01:11:45,590 Denn wenn ich alle verwenden reellen Zahlen mit einem Schwimmer, 1581 01:11:45,590 --> 01:11:47,120 Ich würde einfach aufhören mit ints, nicht wahr? 1582 01:11:47,120 --> 01:11:49,550 Weil reellen Zahlen sind ähnlich wie generische. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Es stellt sich heraus, dass dies in Computern nicht der Fall 1585 01:11:54,060 --> 01:11:58,480 weil sie im wesentlichen verschiedene Dinge. 1586 01:11:58,480 --> 01:12:01,470 Also Zahlen und Schwimmern, die Vorgänge, die Sie mit ihnen machen 1587 01:12:01,470 --> 01:12:04,739 sind wesentlich verschieden, weil der Art, dass sie gespeichert sind, OK? 1588 01:12:04,739 --> 01:12:07,280 Wir werden ein wenig sprechen bisschen mehr über die in einer Sekunde. 1589 01:12:07,280 --> 01:12:09,110 >> Also Doppel ist nur ein größeres Schwimmer. 1590 01:12:09,110 --> 01:12:12,830 In der Regel in den meisten Systemen ein Schwimmer ist vier Bytes, genau wie ein int. 1591 01:12:12,830 --> 01:12:15,440 Und ein Doppel acht Bytes. 1592 01:12:15,440 --> 01:12:21,450 Eine lange, lange ist eigentlich nur ein Symbol dass Sie anhängen zu einem Typ wie int. 1593 01:12:21,450 --> 01:12:24,040 Sie sagen, long long int wie diese. 1594 01:12:24,040 --> 01:12:28,550 Lange lange int x, um ihn zu verlängern. 1595 01:12:28,550 --> 01:12:32,310 Also in den meisten Systemen, das wird acht Bytes statt der üblichen vier. 1596 01:12:32,310 --> 01:12:35,620 Und man kann tatsächlich fallen die in, so kann es nur sagen, lange, lange, 1597 01:12:35,620 --> 01:12:37,240 und das funktioniert auch, OK? 1598 01:12:37,240 --> 01:12:42,850 Sie können auch andere Dinge, wie zu tun unsigned int oder wieder nur unsigned 1599 01:12:42,850 --> 01:12:43,680 würde auch funktionieren. 1600 01:12:43,680 --> 01:12:49,370 Und das würde x eine Variable sein wie alles positiv ist, 1601 01:12:49,370 --> 01:12:53,231 so kann man nicht wirklich negativ Zahlen in der Weise, dass wir hier oben sah. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Also folgende wunderbare Gleitkomma und Präzision. 1604 01:12:58,650 --> 01:13:01,890 Das ist einer der Gründe, warum Sie wollen ints statt Schwimmer zu verwenden, 1605 01:13:01,890 --> 01:13:04,370 weil ints zu 100% präzise, ​​richtig? 1606 01:13:04,370 --> 01:13:06,170 Es ist genau diese Zahl. 1607 01:13:06,170 --> 01:13:11,910 Für schwimmende Punkte, wenn Sie sagen Antwort gleich 1 über 10-- 1608 01:13:11,910 --> 01:13:14,690 Ich bin zufällig auf diese genauen haben Programm hier float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Die Drucke auf 20 Dezimalstellen. 1611 01:13:19,420 --> 01:13:23,270 1 geteilt durch 10, und Regel 0.1 ist, richtig? 1612 01:13:23,270 --> 01:13:27,910 Aber hier, wenn wir schweben und dann laufen wir, 1613 01:13:27,910 --> 01:13:30,320 wir sehen, dass es ist nicht genau 0,1. 1614 01:13:30,320 --> 01:13:33,570 Es ist 0.149 etwas. 1615 01:13:33,570 --> 01:13:35,570 >> Und warum ist das so? 1616 01:13:35,570 --> 01:13:40,390 Weil du nicht wirklich darstellen kann jeder einzige mögliche reelle Zahl im Speicher 1617 01:13:40,390 --> 01:13:42,730 weil es überabzählbar viele von ihnen. 1618 01:13:42,730 --> 01:13:48,360 Also sind wir technisch nur in der Lage, stellen eine begrenzte Menge davon 1619 01:13:48,360 --> 01:13:50,470 mit einer begrenzten Datenmenge. 1620 01:13:50,470 --> 01:13:52,050 Aber es ist wirklich interessant. 1621 01:13:52,050 --> 01:13:54,920 Jetzt Das wirft die Frage, wie man es 1622 01:13:54,920 --> 01:13:59,299 gehen zu repräsentieren dies mit Bits, oder? 1623 01:13:59,299 --> 01:14:00,340 Also, wie Schwimmer gespeichert? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Mit ganzen Zahlen war es leicht. 1626 01:14:03,730 --> 01:14:06,690 Aber mit Schwimmern Sie wollen um die Reichweite zu maximieren, 1627 01:14:06,690 --> 01:14:10,530 und Sie in der Lage sein zu vertreten sein wollen großer Zahl und sehr kleinen Zahlen wie 1628 01:14:10,530 --> 01:14:14,210 0.000001 gleichzeitig. 1629 01:14:14,210 --> 01:14:15,180 Also noch einmal, dasselbe Spiel. 1630 01:14:15,180 --> 01:14:20,470 Hat jemand eine Idee, wie wir konnten, gehen zu repräsentieren float in Erinnerung? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Wirf nichts. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Ja, bitte. 1635 01:14:30,856 --> 01:14:33,552 >> PUBLIKUM: [unverständlich], wie wenn es zwei ints und ein 1636 01:14:33,552 --> 01:14:36,890 wobei die [unverständlich] und ein Wesen alles nach dem Komma. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, cool. 1638 01:14:37,640 --> 01:14:40,300 Also zwei verschiedene Zahlen. 1639 01:14:40,300 --> 01:14:45,260 Sie können 12,45 haben, das ist also 12 und 45. 1640 01:14:45,260 --> 01:14:45,890 Nizza. 1641 01:14:45,890 --> 01:14:46,973 Was ehe du sagen? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 Die gleiche Sache? 1644 01:14:49,430 --> 01:14:49,930 Ja? 1645 01:14:49,930 --> 01:14:55,630 >> PUBLIKUM: [unverständlich] Notation Hier können Sie den zu trennen. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: Wissenschaftliche Notation, ja das ist in der Regel, was passiert. 1647 01:14:58,910 --> 01:15:01,350 So ist dies das sogenannte Mantisse. 1648 01:15:01,350 --> 01:15:06,490 Das ist, was ist eigentlich die Nummer, und der Exponent 1649 01:15:06,490 --> 01:15:08,780 ist nur, wo das Komma, oder? 1650 01:15:08,780 --> 01:15:13,720 Also das wird etwas sein der Form 1, 2, 3, 4, 5 mal 10 1651 01:15:13,720 --> 01:15:15,000 mit dem Minus-4. 1652 01:15:15,000 --> 01:15:17,800 Ich habe gerade dass-- ja klar, genau. 1653 01:15:17,800 --> 01:15:23,372 Und dann diese 10 hoch minus 4 gehen zu definieren, wo das Komma, OK? 1654 01:15:23,372 --> 01:15:24,330 In Brasilien verwenden wir Komma. 1655 01:15:24,330 --> 01:15:26,795 Hier können Jungs verwenden Sie einen Punkt. 1656 01:15:26,795 --> 01:15:27,640 So ein Punkt. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> Und das ist cool, denn dann können Sie konzentrieren viele Ihrer Bits auf dieser Kerl 1659 01:15:34,840 --> 01:15:40,863 Hier, auf der Mantisse und dann ist das gehen, um Ihre tatsächliche Präzision sein. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 Und Sie können dies entweder in Dezimal tun oder in dem binären System basiert. 1662 01:15:47,175 --> 01:15:49,781 Es gibt verschiedene Möglichkeiten, um dies zu implementieren. 1663 01:15:49,781 --> 01:15:50,280 Haben Sie Fragen? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Ja? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 PUBLIKUM: Wie viele Plätze nach dem Komma [unverständlich]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Das ist eine komplizierte Frage, weil es nie wirklich 100% präzise, 1670 01:16:12,610 --> 01:16:15,680 weil, wie Sie hier, für sehen einige Zahlen, es ist 100% genau. 1671 01:16:15,680 --> 01:16:20,350 Ich glaube, wenn wir 0,5 hier es wird zu 100% genau. 1672 01:16:20,350 --> 01:16:22,220 Es wird 0.500000 sein. 1673 01:16:22,220 --> 01:16:24,170 Also in diesem Fall, ist es perfekt. 1674 01:16:24,170 --> 01:16:27,330 Aber in anderen Fällen, es ist viel weniger perfekt. 1675 01:16:27,330 --> 01:16:35,010 Nach meiner Erfahrung, wie bis zu vier, fünf Nachkommastellen ist ziemlich präzise. 1676 01:16:35,010 --> 01:16:38,300 Wenn Sie einen doppelten nutzen zu können, um gehen sein Weg genauer als das, OK? 1677 01:16:38,300 --> 01:16:42,750 >> Rob Bowden: Also einfach zu werfen einige mehr Kontext bei Schwimmern, 1678 01:16:42,750 --> 01:16:46,320 Ich erinnere mich nie 100% wie das spec von Schwimmern tatsächlich funktioniert, 1679 01:16:46,320 --> 01:16:52,660 aber ich Sie immer daran denken, dass Schwimmer anfangen, chaotisch. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Also die Idee ist, dass, wenn Sie wirklich, wirklich großen Zahlen oder wirklich, wirklich 1682 01:17:00,930 --> 01:17:03,470 kleine Zahlen, beginnen wir immer schlimmer 1683 01:17:03,470 --> 01:17:05,860 bei differen zwischen zwei nahe schwimmt. 1684 01:17:05,860 --> 01:17:09,180 >> Also, wie Ich mag über ist glaube mit Gleitkomma-Ungenauigkeit, 1685 01:17:09,180 --> 01:17:11,890 gibt es zwei Schwimmern wenn ich versuche, sie zu spezifizieren 1686 01:17:11,890 --> 01:17:15,150 in C, obwohl sie sind verschiedene Zahlen, 1687 01:17:15,150 --> 01:17:17,340 sie gehen, um sein als die gleiche Zahl interpretiert, 1688 01:17:17,340 --> 01:17:19,006 denn wir können nicht anders speichern. 1689 01:17:19,006 --> 01:17:20,540 Wir müssen die gleichen Bits verwenden. 1690 01:17:20,540 --> 01:17:23,220 Und so, wenn wir zu bekommen wirklich, wirklich großen Zahlen, 1691 01:17:23,220 --> 01:17:28,460 reden wie 10 bis 300 oder etwas, ist es an diesem Punkt 1692 01:17:28,460 --> 01:17:33,240 dass 10 bis die 300 oder 5 mal 10 300 1693 01:17:33,240 --> 01:17:37,020 kann nicht unterschieden werden, 7 mal 10 300. 1694 01:17:37,020 --> 01:17:39,660 Also das ist ein ziemlich großer Unterschied zwischen den beiden Zahlen. 1695 01:17:39,660 --> 01:17:43,830 >> Aber dann, wenn Sie unten zu den normalen Bereich Dinge, 1696 01:17:43,830 --> 01:17:45,770 Sie neigen hübsch sein gut differen. 1697 01:17:45,770 --> 01:17:49,020 Und dann, wenn Sie unten wirklich klein, du bist auch immer wieder ziemlich schlecht. 1698 01:17:49,020 --> 01:17:52,529 So wie eine ganze Reihe von 0.0000, wird es ziemlich schlecht. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Ja, so eine kurze Notiz. 1700 01:17:53,820 --> 01:17:54,670 Dies nie tun. 1701 01:17:54,670 --> 01:17:57,590 Versuchen Sie nie, zu vergleichen Floats mit equals Gleichen 1702 01:17:57,590 --> 01:18:02,800 denn auch wenn sie fast das gleich, nahezu gleich ist nicht gleich. 1703 01:18:02,800 --> 01:18:06,360 Also, was Sie in der Regel tun, ist Ihnen zu subtrahieren sie nehmen den absoluten Wert, dass, 1704 01:18:06,360 --> 01:18:12,380 und sehen, ob das ist kleiner als 0,0001 oder so ähnlich, OK? 1705 01:18:12,380 --> 01:18:12,880 Und cool. 1706 01:18:12,880 --> 01:18:16,630 Ich kenne eine Menge Leute haben Einige Hintergrundinformationen in Java, 1707 01:18:16,630 --> 01:18:19,700 vor allem diejenigen, die tat AP Informatik, richtig? 1708 01:18:19,700 --> 01:18:23,630 Und Java ist eine Sprache dass vor allem auf Basis von C, 1709 01:18:23,630 --> 01:18:26,570 es hat ein paar sehr große Unterschiede. 1710 01:18:26,570 --> 01:18:31,430 Aber für Schleifen und ifs, und solche Sachen dass, sie sind alle die gleiche Syntax. 1711 01:18:31,430 --> 01:18:35,240 Ich habe ein paar Programme hier, um das zu zeigen. 1712 01:18:35,240 --> 01:18:37,050 >> So zum Beispiel, ein einfaches Hallo Welt. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Dies ist Hallo Welt in C, die Sie Jungs sind auf jeden Fall vertraut mit, 1715 01:18:46,600 --> 01:18:49,100 und dieses und dieses ist in Java. 1716 01:18:49,100 --> 01:18:53,100 Also in Java haben wir dieses public class, hallo Welt 1717 01:18:53,100 --> 01:18:57,050 und public static void Haupt und String args. 1718 01:18:57,050 --> 01:18:59,665 Die String args gehen in C sehr kurz erscheinen. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Aber lassen Sie uns noch nicht da zu gehen. 1721 01:19:01,990 --> 01:19:06,060 Im Moment haben wir Leere hier, was bedeutet, dass Haupt nicht nehmen keine Argumente. 1722 01:19:06,060 --> 01:19:09,220 Und dann haben wir System.out.println, ist das, und dass 1723 01:19:09,220 --> 01:19:11,140 Art des Ersatz für printf. 1724 01:19:11,140 --> 01:19:17,150 Hier haben wir nicht wirklich brauchen, den Backslash n, weil Druck ln tut das für Sie. 1725 01:19:17,150 --> 01:19:19,680 Es hängt den umgekehrten Schrägstrich n am Ende der Zeile. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Aber wenn Sie in zu gehen so etwas wie eine für Sie 1728 01:19:30,415 --> 01:19:32,590 kann sehen, dass sie so ziemlich dasselbe. 1729 01:19:32,590 --> 01:19:37,390 So Initialisierung und Zustand, und der Aktualisierungs 1730 01:19:37,390 --> 01:19:42,050 ist-- ich einen Raum verpasst hier-- sie so ziemlich dasselbe, außer Java 1731 01:19:42,050 --> 01:19:44,430 hat als einige hohe Zeug. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Hier können wir tun zzgl I und Java wird automatisch 1734 01:19:49,610 --> 01:19:52,730 machen dieses i hier, das ist eine ganze Zahl ist, in eine Zeichenkette, 1735 01:19:52,730 --> 01:19:55,200 und dann anhängen die zwei Strings zusammen. 1736 01:19:55,200 --> 01:19:57,570 Hier in C müssen wir tun, die &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 Die Linie hier, die für sieht genau das gleiche. 1739 01:20:18,170 --> 01:20:37,760 >> Und wenn wir uns, wenn der ifs auch sehen genau gleich aus, oder? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 So sind die wirklich großen Unterschiede sind in den Dingen, die Sie hier sehen. 1742 01:20:44,650 --> 01:20:47,530 Öffentliche statische, nichtig und dann öffentliche Klasse, wenn. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Also Java hat, was bezeichnet eine virtuelle Maschine. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 Und es ist sehr stark auf, was auf der Basis nennt die objektorientierte Programmierung, 1747 01:21:00,150 --> 01:21:04,120 das ist ein sehr, sehr verbreitet ist Paradigma für die Programmierung heutzutage. 1748 01:21:04,120 --> 01:21:10,870 Und diese Klasse ist, was Sie sehen, etwas von Objektorientierung, 1749 01:21:10,870 --> 01:21:14,214 ist eine Klasse, die Sie erstellen und dann können Objekte aus dieser Klasse abzuleiten. 1750 01:21:14,214 --> 01:21:16,380 Wir gehen nicht allzu sprechen viel darüber in CS50, 1751 01:21:16,380 --> 01:21:18,213 aber das ist auf jeden Fall etwas wirklich cool, 1752 01:21:18,213 --> 01:21:21,440 vor allem, wenn Sie in gehen wollen anspruchsvoller Web-Entwicklung 1753 01:21:21,440 --> 01:21:24,050 am Ende der Strecke, wie bitte Ihre Abschlussprojekt 1754 01:21:24,050 --> 01:21:26,430 und ein paar schöne Rahmen und so. 1755 01:21:26,430 --> 01:21:31,250 >> Also im Grunde die Idee ist, dass Sie nicht neu zu implementieren etwas wollen, 1756 01:21:31,250 --> 01:21:36,330 so dass Sie etwas, das ist zu schaffen sehr allgemein, wie die Form, 1757 01:21:36,330 --> 01:21:38,310 und dann können Sie zu erstellen verschiedene Formen von ihr, 1758 01:21:38,310 --> 01:21:40,240 und dann von jedem Diese Formen, erstellen Sie 1759 01:21:40,240 --> 01:21:45,110 einige weitere spezifische Formen in drei Dimensionen oder so ähnlich. 1760 01:21:45,110 --> 01:21:48,799 Und sie diese Hierarchie haben erben von den anderen, so 1761 01:21:48,799 --> 01:21:51,840 alle Funktionen und alle Variablen, die große Form hat hier, alle diese 1762 01:21:51,840 --> 01:21:54,110 gehen zu müssen, und alle von diesen sind zu gehen, und so weiter und so weiter haben. 1763 01:21:54,110 --> 01:21:55,640 Also das ist die Grundidee. 1764 01:21:55,640 --> 01:21:59,170 >> C nicht über das, aber C ++ hat diese Art von Funktion. 1765 01:21:59,170 --> 01:22:02,710 Und Java ist stark beeinflusst durch Objektorientierung, 1766 01:22:02,710 --> 01:22:05,310 also, warum Sie sehen Klasse die ganze Zeit hier. 1767 01:22:05,310 --> 01:22:10,790 Und die andere Sache ist Dieses Java Virtual Machine. 1768 01:22:10,790 --> 01:22:13,790 Also das, denke ich, ist eine sehr gute Idee. 1769 01:22:13,790 --> 01:22:17,020 Also, was die Leute, die erfunden java tat, ist 1770 01:22:17,020 --> 01:22:19,630 sie wollte nicht ihren Code zweimal kompilieren 1771 01:22:19,630 --> 01:22:23,990 wenn sie es in einer Windows laufen hatte, oder ein Mac oder Linux, so, was sie tun 1772 01:22:23,990 --> 01:22:26,740 wird sie buchstäblich laufen so etwas wie das Gerät, 1773 01:22:26,740 --> 01:22:29,630 aber Sie nicht wirklich sehen, es geschieht. 1774 01:22:29,630 --> 01:22:32,430 So dass sie eine virtuelle Maschine laufen Inneren des Computers, die 1775 01:22:32,430 --> 01:22:34,940 ist im Grunde wie ein Mini-Betriebssystem. 1776 01:22:34,940 --> 01:22:37,920 Und das Betriebs Zweck Systems im Leben 1777 01:22:37,920 --> 01:22:41,430 ist nur zu laufen, was Bytecode genannt. 1778 01:22:41,430 --> 01:22:47,411 >> Anstatt also in C, die Art und Weise würden wir kompilieren dies machen, wenn, und führen 1779 01:22:47,411 --> 01:22:47,910 ./if. 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 Ich habe das Backslash. 1782 01:22:55,290 --> 01:23:00,240 In Java, Sie als erstes tun würde Java C zu kompilieren, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 Es ist nicht C. Es ist dot java. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 Und dann haben Sie ausführen nicht ./. 1787 01:23:12,140 --> 01:23:15,440 Sie erhalten diese neue Datei if.class, aber man kann nicht wirklich 1788 01:23:15,440 --> 01:23:17,980 laufen if.class jetzt nur wie wir vorher. 1789 01:23:17,980 --> 01:23:19,440 Dies ist keine ausführbare Datei. 1790 01:23:19,440 --> 01:23:20,630 Sie haben zu laufen. 1791 01:23:20,630 --> 01:23:23,410 Sie haben, um es in füttern ein Programm namens Java, 1792 01:23:23,410 --> 01:23:28,260 und das Programm der virtuellen Maschine, Und dann musst du if.class oder wenn. 1793 01:23:28,260 --> 01:23:28,760 Ja. 1794 01:23:28,760 --> 01:23:30,890 Und dann funktioniert es. 1795 01:23:30,890 --> 01:23:33,740 OK, so ist dies Art der virtuellen Maschine geschieht. 1796 01:23:33,740 --> 01:23:37,700 C nicht, dass so, wenn ich setzen dieses Programm in einer Windows-Maschine, 1797 01:23:37,700 --> 01:23:40,516 es wäre nicht in C. Arbeit in Java es tut. 1798 01:23:40,516 --> 01:23:41,015 Haben Sie Fragen? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Cool. 1801 01:23:44,030 --> 01:23:47,160 Das ist, wenn für Superschnitt für heute. 1802 01:23:47,160 --> 01:23:49,462