1 00:00:00,000 --> 00:00:11,375 2 00:00:11,375 --> 00:00:14,430 >> DAVID MALAN: Dies ist CS50, und dies ist der Beginn einer Woche. 3 00:00:14,430 --> 00:00:17,930 Und was wir dachten, wir hätten tun müssen, ist nach hinten ziehen der Vorhang von einem Gerät, das viele 4 00:00:17,930 --> 00:00:20,970 von Ihnen haben wahrscheinlich vorbeigelaufen jetzt seit Jahren, aber vielleicht nie ganz 5 00:00:20,970 --> 00:00:22,280 bekannt, was es ist. 6 00:00:22,280 --> 00:00:26,000 So wird dieses Gerät wohl aussehen kennen die meisten von euch jetzt. 7 00:00:26,000 --> 00:00:32,972 >> [VIDEO PLAYBACK] 8 00:00:32,972 --> 00:00:36,150 >> -Ein Triumph der mathematischen und mechanische Fertigkeit ist diese große neue 9 00:00:36,150 --> 00:00:39,120 automatische Rechner an Harvard University. 10 00:00:39,120 --> 00:00:43,220 Komplizierte Probleme in Mathematik setzen durch die Maschine in verschlüsselter Form auf 11 00:00:43,220 --> 00:00:47,840 Band sind genau in einer Minute gelöst Bruchteil der Zeit, die erforderlich für 12 00:00:47,840 --> 00:00:49,090 menschlichen Berechnung. 13 00:00:49,090 --> 00:01:00,090 14 00:01:00,090 --> 00:01:04,080 >> Entwickelt, um alle Formen der Beschleunigung mathematischen und naturwissenschaftlichen Forschung, 15 00:01:04,080 --> 00:01:07,860 die riesigen mechanischen Gehirn arbeiten für die Vereinigten Staaten 16 00:01:07,860 --> 00:01:09,180 Kriegsmarine bis Ende des Krieges. 17 00:01:09,180 --> 00:01:18,180 18 00:01:18,180 --> 00:01:18,600 >> [END VIDEO PLAYBACK] 19 00:01:18,600 --> 00:01:21,980 >> DAVID MALAN: Also das ist, was Sie sehen in das Science Center, das ist, wo 20 00:01:21,980 --> 00:01:23,540 Diese Maschine ist nun untergebracht. 21 00:01:23,540 --> 00:01:25,910 Sie eigentlich nur einen Teil davon sehen. 22 00:01:25,910 --> 00:01:28,800 Nur ein Teil ist derzeit auf dem Display, und das ist ein Gerät namens 23 00:01:28,800 --> 00:01:31,970 Die Mark I, und es war im Wesentlichen wirklich eine riesige Rechner. 24 00:01:31,970 --> 00:01:36,250 Es wurde von der Mark II gelungen, und es ist aus der Mark II, dass wir tatsächlich 25 00:01:36,250 --> 00:01:39,210 bekommen ein bisschen Lexikon. 26 00:01:39,210 --> 00:01:43,780 >> Dies ist das erste registrierte Instanz etwas, das Sie sind dabei, alle werden 27 00:01:43,780 --> 00:01:45,860 allzu vertraut mit über die Laufe des Semesters - 28 00:01:45,860 --> 00:01:48,460 nämlich ein Fehler. 29 00:01:48,460 --> 00:01:52,030 So stellte sich heraus, an einem Punkt der Mark II Gerät funktionierte nicht 30 00:01:52,030 --> 00:01:55,930 richtig, und bei genauerem Hinsehen, es war in der Tat ein Problem - eine Motte - 31 00:01:55,930 --> 00:01:56,910 dass moth - 32 00:01:56,910 --> 00:01:57,610 innen. 33 00:01:57,610 --> 00:02:03,130 Und seitdem haben wir bezeichnet Fehler in Programmen wie Bugs. 34 00:02:03,130 --> 00:02:05,330 Also mehr dazu kommen. 35 00:02:05,330 --> 00:02:08,919 >> Apropos Video als auch, wenn Sie nicht bereits haben, wissen, dass CS50 ist 36 00:02:08,919 --> 00:02:09,669 offensichtlich gefilmt. 37 00:02:09,669 --> 00:02:13,330 Die Vorträge der Regel gehen gleich nach Klasse in eine Art Pre-Release 38 00:02:13,330 --> 00:02:17,240 unbearbeitete Format, und dann ein oder zwei Tage später, haben wir eine höhere Auflösung 39 00:02:17,240 --> 00:02:18,490 und höhere Qualität Version. 40 00:02:18,490 --> 00:02:21,800 Sie erinnern sich vielleicht Vanessa, die das hatte Vermögen des Spielens mit Google Glass, 41 00:02:21,800 --> 00:02:23,540 Ich erinnerte mich an die berechnen diese Zeit. 42 00:02:23,540 --> 00:02:26,450 Also, wenn Sie wollen, kommen nach dem Unterricht und spielen, sollten sie heute arbeiten. 43 00:02:26,450 --> 00:02:30,816 Und wenn Sie möchten, um zu sehen, was Vanessa sah den anderen Tag, was Sie sehen 44 00:02:30,816 --> 00:02:35,260 hier - lassen Sie mich die Lautstärke zu erhöhen hier auf meinem Laptop. 45 00:02:35,260 --> 00:02:35,690 >> [VIDEO PLAYBACK] 46 00:02:35,690 --> 00:02:37,620 >> -Lassen Sie mich diese Warteschlange ist oben. 47 00:02:37,620 --> 00:02:38,070 In Ordnung. 48 00:02:38,070 --> 00:02:40,930 So berühren diese. 49 00:02:40,930 --> 00:02:41,720 In Ordnung. 50 00:02:41,720 --> 00:02:43,470 OK, Glass. 51 00:02:43,470 --> 00:02:44,720 Aufnehmen eines Videos. 52 00:02:44,720 --> 00:02:47,240 53 00:02:47,240 --> 00:02:48,640 >> In Ordnung. 54 00:02:48,640 --> 00:02:50,446 Vanessa? 55 00:02:50,446 --> 00:02:50,870 >> [END VIDEO PLAYBACK] 56 00:02:50,870 --> 00:02:53,485 >> DAVID MALAN: All right, so der Grund dass es nicht für die meisten von euch bei der Arbeit 57 00:02:53,485 --> 00:02:56,540 das Ende der Klasse war, weil ich ging eine Stunde von diesem Datensatz 58 00:02:56,540 --> 00:02:59,505 Footage zeigte auf mich nach Ich setzte die Brille ab. 59 00:02:59,505 --> 00:03:04,010 Also heute, lasse ich sie weg, aber danke Sie Vanessa für die eine solche 60 00:03:04,010 --> 00:03:05,420 guter Sport. 61 00:03:05,420 --> 00:03:08,330 >> Inzwischen, ein paar Ankündigungen bevor wir heute vorantreiben. 62 00:03:08,330 --> 00:03:11,120 So eins, CS50 hat eine Tradition zu tun was wir können, um zu versuchen, eine sehr machen 63 00:03:11,120 --> 00:03:12,630 große Klasse fühlen kleiner. 64 00:03:12,630 --> 00:03:16,640 Und zu diesem Ende hin, die meisten jeden Freitag, sammeln wir in einem Restaurant in 65 00:03:16,640 --> 00:03:20,160 das Quadrat, Feuer und Eis, mit 30 oder 40 Ihre Klassenkameraden, mir einige der 66 00:03:20,160 --> 00:03:22,520 das Lehrpersonal, und wir haben eine sehr lockere Mittagessen. 67 00:03:22,520 --> 00:03:26,280 Wir laden oft Freunde aus der Industrie, Absolventen der Klasse, Alumni der 68 00:03:26,280 --> 00:03:30,340 college, wirklich nur zu plaudern jeder anderen auf, über das Leben zu sprechen, nachdem 69 00:03:30,340 --> 00:03:32,260 Hochschule, Leben in der Schule, und dergleichen. 70 00:03:32,260 --> 00:03:35,570 Also, wenn Sie möchten, in dieser teilnehmen erste derartige Mittagessen an diesem Freitag auf 71 00:03:35,570 --> 00:03:38,640 01.15, Kopf an, dass URL zu einem bestimmten Zeitpunkt. 72 00:03:38,640 --> 00:03:40,830 >> Der Platz ist begrenzt, so dass wir tun zuerst kommt, mahlt. 73 00:03:40,830 --> 00:03:43,880 Aber wir werden dies wieder tun auf einer wiederkehrenden Grundlage, so dass nicht zu machen, wenn Sie dies nicht tun 74 00:03:43,880 --> 00:03:45,800 es in diese erste Charge. 75 00:03:45,800 --> 00:03:48,960 >> Jetzt, im Hinblick auf die zur Verfügung gestellten Mittel curricular durch den Verlauf, 76 00:03:48,960 --> 00:03:51,500 gibt es eine ganze Reihe, und wenn Sie nicht zog der Kurs der Website 77 00:03:51,500 --> 00:03:54,310 bereits, insbesondere unter Vorträge, Sie werden feststellen, dass alles 78 00:03:54,310 --> 00:03:57,070 wir haben letzte Woche ist es, sowohl in Video-und eine Art 79 00:03:57,070 --> 00:03:58,435 elektronischer Form. 80 00:03:58,435 --> 00:04:01,210 Aber über die Videos, werden Sie feststellen, dass es jetzt Volltext 81 00:04:01,210 --> 00:04:03,290 Transkripte, beispielsweise jeder Vorlesung. 82 00:04:03,290 --> 00:04:08,260 >> Also, wenn wir tatsächlich zurück zu diesem Bildschirm hier mit Vanessa, und navigieren 83 00:04:08,260 --> 00:04:12,010 auf der unteren Ecke des Bildschirms, Sie werden es tatsächlich zu finden, nicht für 84 00:04:12,010 --> 00:04:15,060 Vortrag am Freitag, aber wenn wir gehen zurück zu Mittwoch, da diese Funktion nimmt ein 85 00:04:15,060 --> 00:04:17,870 wenigen Tagen werden Sie feststellen, dass Sie eigentlich hochziehen, zum Guten oder zum 86 00:04:17,870 --> 00:04:22,260 schlimmer, jedes Wort, dass ich oder ein Freiwilliger auf der Bühne sagte. 87 00:04:22,260 --> 00:04:23,270 Und mehr als das.. 88 00:04:23,270 --> 00:04:25,700 Sie können tatsächlich suchen, können Sie klicken Sie auf eines dieser Sätze, springen 89 00:04:25,700 --> 00:04:29,250 bis zu diesem Zeitpunkt in dem Video, alle auf und am Ende der Herstellung des Materials ganze 90 00:04:29,250 --> 00:04:30,620 mehr schiffbar. 91 00:04:30,620 --> 00:04:34,550 >> Aber wenn Sie lieber nicht folgen so detailliert, finden Sie, für 92 00:04:34,550 --> 00:04:39,710 Beispiel diese kleine Speisekarte für 1.5x Geschwindigkeit, 2x Geschwindigkeit oder i f ich schon 93 00:04:39,710 --> 00:04:42,100 sprechen zu schnell für Sie, 0,75 x Geschwindigkeit. 94 00:04:42,100 --> 00:04:45,190 So erkennen, all das ist verfügbar für Sie da. 95 00:04:45,190 --> 00:04:49,120 >> Aber darüber hinaus, für Vorträge, realisieren dass wir auch diese Ressourcen 96 00:04:49,120 --> 00:04:50,530 ebenfalls zur Verfügung. 97 00:04:50,530 --> 00:04:55,240 Slides, Beispiel-Code, alles, was ich tun auf der Bühne oder vor der Klasse, 98 00:04:55,240 --> 00:04:58,160 wir werden es so schreiben, dass man spielen kann entlang zu Hause oder im Sanders. 99 00:04:58,160 --> 00:05:01,280 Aber was wir auch dachten, dass wir dies tun Jahr erstmals auch 100 00:05:01,280 --> 00:05:04,240 bieten Ihnen Komplettlösungen dieser Beispiele. 101 00:05:04,240 --> 00:05:08,120 Zunehmend wie ich auf das reflektierte Wert von CS50 Vorlesungen habe ich begonnen 102 00:05:08,120 --> 00:05:11,450 in Frage zu stellen, wie nützlich es ist für euch dort zu sitzen, für mich stehen, um 103 00:05:11,450 --> 00:05:15,020 hier, und für mich, um zu Ihnen zu sprechen, insbesondere als das Material, das 104 00:05:15,020 --> 00:05:17,020 Beispiele, werden immer komplexer. 105 00:05:17,020 --> 00:05:20,790 Denn immer, nachdem eine gewisse Anzahl von Minuten wird jemand Zone aus, und 106 00:05:20,790 --> 00:05:24,310 dann sind Sie verpassen eine wichtige Erkenntnis von einigen Beispiel, und dann bist du im Wesentlichen 107 00:05:24,310 --> 00:05:27,720 weg für den verbleibenden Teil der Klasse, Das ist nicht die beste Verwendung von 108 00:05:27,720 --> 00:05:31,330 Ihre Zeit, oder, wirklich, unsere gemeinsam als eine Klasse. 109 00:05:31,330 --> 00:05:33,920 >> Und so, was wir dachten, wir würden versuchen zu tun, insbesondere für einige der mehr 110 00:05:33,920 --> 00:05:37,700 komplexere Beispiele, die ich nicht tun könnte Gerechtigkeit in der Klasse, dass wir vielleicht nicht 111 00:05:37,700 --> 00:05:41,560 Zeit für in der Klasse, oder Sie können nur Zone während, ist wir produzieren 112 00:05:41,560 --> 00:05:45,500 eine Reihe von Komplettlösungen von diesen Beispiele so, dass, wenn Sie gehen, für 113 00:05:45,500 --> 00:05:51,410 Beispiel letzten Freitag Videoseite hier unter Beispiele, wirst du sehen, dass 114 00:05:51,410 --> 00:05:54,050 für Freitag, gibt es jetzt diese Link zu Komplettlösungen. 115 00:05:54,050 --> 00:05:55,780 Und das Format dieser im Laufe der Zeit ändern. 116 00:05:55,780 --> 00:05:58,080 Denn jetzt sind wir mit einem einfachen YouTube Playlist. 117 00:05:58,080 --> 00:06:00,980 >> Aber was ich mit unseren Produktions-Team danach wurde durch jeden Fuß 118 00:06:00,980 --> 00:06:04,480 und jeder von diesen Beispielen wieder, hoffentlich Hinweis darauf in viel größeren 119 00:06:04,480 --> 00:06:07,550 Klarheit genau das, was die Imbissbuden sein könnte oder sollte von jedem sein. 120 00:06:07,550 --> 00:06:10,560 So finden Sie zum Beispiel von den letzten Woche alle Kratzer Beispiele 121 00:06:10,560 --> 00:06:12,950 wir gingen durch linear getan in dieser Art und Weise. 122 00:06:12,950 --> 00:06:15,840 So fühlen sich frei zu engagieren oder nicht greifen in diesem Material. 123 00:06:15,840 --> 00:06:19,140 Wirklich ein Thema dieser bestimmten Kurs ist, dass es wahrscheinlich mehr 124 00:06:19,140 --> 00:06:21,870 in der Art der Ressourcen, als Sie könnte absorbieren über 125 00:06:21,870 --> 00:06:23,260 der Verlauf eines Semesters. 126 00:06:23,260 --> 00:06:23,980 >> Aber das ist gewollt. 127 00:06:23,980 --> 00:06:26,990 Es soll so sein, dass Sie sich als einzelne Schüler können selbst auswählen 128 00:06:26,990 --> 00:06:28,070 basierend auf Ihrem Lernstil. 129 00:06:28,070 --> 00:06:29,790 Also, wenn Vorträge für Sie zu arbeiten, groß. 130 00:06:29,790 --> 00:06:31,090 Sofern Teile für Sie zu arbeiten, groß. 131 00:06:31,090 --> 00:06:32,930 Wenn Komplettlösungen arbeiten Sie besser, groß. 132 00:06:32,930 --> 00:06:36,980 Es ist wirklich an Ihnen zu entscheiden, welche Mittel am besten für Sie. 133 00:06:36,980 --> 00:06:40,380 >> Schließlich, dank Alumnus der Natürlich bieten wir auch eine kanonische 134 00:06:40,380 --> 00:06:41,890 Set von Schreiber Notizen. 135 00:06:41,890 --> 00:06:46,270 Also anstatt haben euch Köpfe in Vorträgen kritzeln unten 136 00:06:46,270 --> 00:06:49,880 Dinge, die kommen in der Klasse, wir, die Mitarbeiter, werden Sie mit dem, was wir bieten 137 00:06:49,880 --> 00:06:53,410 fühlen, sind eine kanonische Satz von Notizen befreien Sie von dieser Ablenkung, so dass 138 00:06:53,410 --> 00:06:57,150 Wenn Sie hier sind und führen, sind Sie wirklich mit, was los ist engagiert, 139 00:06:57,150 --> 00:07:00,110 mit Ihren Klassenkameraden tun auf Bühne, mit dem, was auf dem Bildschirm, 140 00:07:00,110 --> 00:07:03,570 und nicht einfach aufzuschreiben wörtlich was passiert ist gesagt worden sind. 141 00:07:03,570 --> 00:07:06,730 So erkennen alle diese Ressourcen stehen Ihnen zur Verfügung. 142 00:07:06,730 --> 00:07:09,210 >> Schnitte, in Antwort auf eine FAQ, beginnt an diesem Mittwoch. 143 00:07:09,210 --> 00:07:12,050 Wir im Wesentlichen erst nach den meisten warten andere Klassen sind fertig, so dass wir können 144 00:07:12,050 --> 00:07:14,420 Minimierung der Anzahl der Änderungen dass wir tun müssen. 145 00:07:14,420 --> 00:07:20,010 Aber kommen an diesem Wochenende, beginnend Sonntag wird eine einmalige Instanz sein 146 00:07:20,010 --> 00:07:21,360 was wir als Super Abschnitte. 147 00:07:21,360 --> 00:07:23,990 Diese werden für diejenigen, die nicht gefilmt werden besuchen, und im Wesentlichen die 148 00:07:23,990 --> 00:07:28,880 natürlich die Köpfe wird uns durch einige Fuß der C-Anteil des Kurses, 149 00:07:28,880 --> 00:07:32,330 zu einem Ende des Satzes ein Problem, das wird unsere erste C bezogen sein 150 00:07:32,330 --> 00:07:33,140 Problem-Set. 151 00:07:33,140 --> 00:07:36,240 Und diese wird nur optionale Abschnitte sein in Erwartung dessen, was wird 152 00:07:36,240 --> 00:07:40,010 werden wiederkehrende Abschnitte führte durch den Verlauf der 50 plus 153 00:07:40,010 --> 00:07:41,600 Teaching Fellows wöchentlich. 154 00:07:41,600 --> 00:07:45,130 Am Sonntag oder Montag oder Dienstag, wir haben 90 Minuten Abschnitte in einem sehr 155 00:07:45,130 --> 00:07:48,020 traditionellen Sinne, die werden Chancen für die Hände auf und mehr 156 00:07:48,020 --> 00:07:50,800 intime Überprüfung der Natürlich ist Material. 157 00:07:50,800 --> 00:07:53,820 >> Ohne weitere Umschweife, lassen Sie mich vorstellen des Kurses Köpfe, die sind 158 00:07:53,820 --> 00:07:57,380 hinter den Kulissen mit mir, was alles passieren. 159 00:07:57,380 --> 00:08:02,670 Wenn die hier heute könnte mit mir, Rob und Lauren und Joseph und Lucas, die alle 160 00:08:02,670 --> 00:08:05,770 von ihnen haben mit der seit natürlich für einige Zeit. 161 00:08:05,770 --> 00:08:08,450 RJ ist die dritte Mitglied unseres Teams. 162 00:08:08,450 --> 00:08:11,720 Er konnte heute nicht hier sein, aber er hat mich gebeten, ein Foto von ihm zu zeigen. 163 00:08:11,720 --> 00:08:14,600 Ich bin mir nicht sicher, ob er diese , aber da ist er. 164 00:08:14,600 --> 00:08:18,350 >> Und lassen Sie mich nur, dass das Team zu sagen hallo und stellen sich vor, so dass 165 00:08:18,350 --> 00:08:22,260 Sie bekommen, um sie als auch wissen, dass Ihr eigenen Unterricht Kerl dieser Begriff. 166 00:08:22,260 --> 00:08:23,490 >> LAUREN CARVALHO: Hallo. 167 00:08:23,490 --> 00:08:24,740 Mein Name ist Lauren Carvalho. 168 00:08:24,740 --> 00:08:26,900 Ich bin ein Bewohner Tutor in Leverett House. 169 00:08:26,900 --> 00:08:31,120 Ich bin auch super aufgeregt zu sein ein Kopf für CS50 TV in diesem Jahr. 170 00:08:31,120 --> 00:08:35,830 >> CS50 ist eine sehr anspruchsvolle Klasse sowie als eine sehr große Klasse, also, wenn Sie 171 00:08:35,830 --> 00:08:38,780 irgendwelche Bedenken haben, wenn Sie Lust haben Sie zurückfallen, dann zögern Sie 172 00:08:38,780 --> 00:08:43,840 erreichen, um jeden von uns an heads@cs50.het oder zu mir, wenn Sie möchten 173 00:08:43,840 --> 00:08:46,330 mag mit meinen goldenen spielen Retriever Welpen. 174 00:08:46,330 --> 00:08:48,060 Hier ist Lucas. 175 00:08:48,060 --> 00:08:48,560 >> LUCAS FREITAS: Hey, Jungs. 176 00:08:48,560 --> 00:08:49,330 Mein Name ist Lucas Freitas. 177 00:08:49,330 --> 00:08:51,880 Ich bin ein junior [unverständlich] 178 00:08:51,880 --> 00:08:53,630 Informatik und Linguistik. 179 00:08:53,630 --> 00:08:58,030 Ich bin eigentlich aus Brasilien, und ich habe auch realisieren Ostasienwissenschaften. 180 00:08:58,030 --> 00:09:00,740 Also, wenn Sie irgendwelche Fragen über Informatik oder Sprache oder 181 00:09:00,740 --> 00:09:01,870 nichts, lass es mich wissen. 182 00:09:01,870 --> 00:09:05,630 Oder CS50, vor allem. 183 00:09:05,630 --> 00:09:05,880 >> JOSEPH ONG: Hallo. 184 00:09:05,880 --> 00:09:06,265 Ich bin Joseph. 185 00:09:06,265 --> 00:09:11,360 Ich bin ein älterer Computer studieren Wissenschaft in Elliott House. 186 00:09:11,360 --> 00:09:13,500 Also, lasst uns sehen. 187 00:09:13,500 --> 00:09:16,530 Du wirst mir herumzutragen sehen eine dieser riesigen Kameras. 188 00:09:16,530 --> 00:09:21,110 Ich bin der ansässigen Mitarbeiter Fotografen für 50 als gut, und die Schüler oft 189 00:09:21,110 --> 00:09:25,140 manchmal verwechseln mich eine asiatische Touristen. 190 00:09:25,140 --> 00:09:29,220 >> Also, wenn du mich mit einer Kamera, nicht weglaufen. 191 00:09:29,220 --> 00:09:32,960 Nur lächeln und nicht schüchtern sein. 192 00:09:32,960 --> 00:09:34,870 Und ich hoffe, Sie genießen 50. 193 00:09:34,870 --> 00:09:38,690 Ich habe es sehr genossen, wenn ich es nahm, und das ist, warum ich für habe TFing worden 194 00:09:38,690 --> 00:09:41,164 diese drei Jahre. 195 00:09:41,164 --> 00:09:41,570 >> ROB BOWDEN: Hallo. 196 00:09:41,570 --> 00:09:42,550 Ich bin Rob. 197 00:09:42,550 --> 00:09:46,240 Dies ist mein viertes Semester mit CS50. 198 00:09:46,240 --> 00:09:47,430 Ich absolvierte im Mai. 199 00:09:47,430 --> 00:09:49,650 Ich war in Kirkland. 200 00:09:49,650 --> 00:09:53,670 Ich bin für dieses Semester aufgeregt, und ich hoffe, Sie sind es auch. 201 00:09:53,670 --> 00:09:56,650 >> DAVID MALAN: Vielen Dank an der diesjährigen Köpfe, und RJ als gut. 202 00:09:56,650 --> 00:09:59,910 203 00:09:59,910 --> 00:10:02,310 >> So ein paar abschließende Hinweise auf Ressourcen. 204 00:10:02,310 --> 00:10:04,090 Eins, setzen p 0 ist bereits. 205 00:10:04,090 --> 00:10:06,620 Dieses existiert nur in Standard- Ausgabe, die für die bestimmt ist 206 00:10:06,620 --> 00:10:07,610 Teilen der Klasse. 207 00:10:07,610 --> 00:10:10,940 Beginnend mit p Satz 1, wird es Hacker Ausgaben der meisten Problem-Sets, 208 00:10:10,940 --> 00:10:14,660 was wiederum deckt das Material mit ein bisschen mehr eine Herausforderung, während 209 00:10:14,660 --> 00:10:17,400 noch berühren auf einige aus den gleichen Themen. 210 00:10:17,400 --> 00:10:21,400 Nehmen Sie sich einen Blick auf die Kurs-Website für diese Spezifikation für p 0 set. 211 00:10:21,400 --> 00:10:25,140 >> Sprechstunde, wird auch in dieser Woche beginnen, heute, morgen, Mittwoch, 212 00:10:25,140 --> 00:10:27,670 und Donnerstag in den verschiedenen Einrichtungen Hallen auf dem Campus. 213 00:10:27,670 --> 00:10:32,140 Schauen Sie sich cs50.net/ohs für das Büro Stunden für den Kurs, und erkennen diese 214 00:10:32,140 --> 00:10:34,430 wird sehr lässig Gelegenheiten geben, bestimmt, zu Beginn der 215 00:10:34,430 --> 00:10:37,190 Semester, durch mit Ihrem kommen Laptop während der Gehirnentwicklung Pause. 216 00:10:37,190 --> 00:10:40,500 Bringen Sie ein paar Freunde zu unterhalten und die Natürlich die Transkriptionsfaktoren und CAs mit einem 217 00:10:40,500 --> 00:10:41,750 Fragen, die Sie haben könnten. 218 00:10:41,750 --> 00:10:45,320 >> Und ich kann nicht genug betonen, auch für Kratz-und Problem-Set 0, gibt 219 00:10:45,320 --> 00:10:47,110 wirklich keine dumme Frage. 220 00:10:47,110 --> 00:10:51,200 Es gibt keine Schüler zu unbequem Fragen zu stellen. 221 00:10:51,200 --> 00:10:53,940 Bitte zögern Sie nicht zu nutzen dieser Ressource. 222 00:10:53,940 --> 00:10:56,430 Es wird dort wiederkehrend sein während des Semesters, 223 00:10:56,430 --> 00:10:57,840 wie wird CS50 Diskutieren. 224 00:10:57,840 --> 00:11:00,900 Das ist der Weg der Online-Diskussion Foren auf dieser Adresse gibt. 225 00:11:00,900 --> 00:11:04,490 >> Was wir auch während der Vorträge ist zu tun überwachen auch diese, dank der 226 00:11:04,490 --> 00:11:05,580 Natürlich Lehre Team. 227 00:11:05,580 --> 00:11:08,390 Und so, wenn du eine Frage während Vortrag, weil ich etwas gesagt 228 00:11:08,390 --> 00:11:11,690 schlecht oder überhaupt nicht, mit allen Mitteln, fragen dass in Echtzeit, wenn Sie Ihre 229 00:11:11,690 --> 00:11:15,700 Laptop oder Handy auf der Website, und wir werden unser Bestes in Echtzeit zu tun 230 00:11:15,700 --> 00:11:17,410 zu antworten, dass. 231 00:11:17,410 --> 00:11:21,500 >> Gibt es irgendwelche Fragen zu CS 50? 232 00:11:21,500 --> 00:11:23,930 Dann, eines letzten Töne von mir. 233 00:11:23,930 --> 00:11:25,530 Das Problem der SAT UNSAT. 234 00:11:25,530 --> 00:11:28,550 Wie Sie Ihr Studium abzuschließen Karten, wenn Sie noch nicht erkennen, dass die 235 00:11:28,550 --> 00:11:32,360 übergreifende Vision von SAT UNSAT, für alle Studenten, ist wirklich 236 00:11:32,360 --> 00:11:36,350 um zu helfen, den Rand eines Kurses wie diese, so zu sprechen, so dass, wenn Sie 237 00:11:36,350 --> 00:11:40,510 finden sich spät in der Nacht, 02.00 Uhr, 03.00 Uhr, wirklich schlagen Sie Ihren Kopf gegen 238 00:11:40,510 --> 00:11:43,960 der Wand, wo Sie wissen, dass Sie 99% der der Weg dorthin zum Abschluss, aber Sie 239 00:11:43,960 --> 00:11:47,510 haben so viele andere Dinge zu tun, Ich denke, eine bessere Nutzung, oft von 240 00:11:47,510 --> 00:11:51,260 Schüler Zeit ist es in der Tat auf sich zu bewegen die anderen Dinge, so dass Sie 241 00:11:51,260 --> 00:11:52,780 optimieren Sie Ihre Zeit all around. 242 00:11:52,780 --> 00:11:56,950 Und SAT UNSAT ist einer der Mechanismen, über die Sie können Trost in der Tatsache, 243 00:11:56,950 --> 00:12:00,530 dass 99% der Weg dorthin ist noch verdammt gut. 244 00:12:00,530 --> 00:12:03,790 >> Ebenso auch, wenn Sie in den kommen Natürlich ohne vorherige Hintergrund oder 245 00:12:03,790 --> 00:12:07,960 nicht annähernd so viel, wie Sie Hintergrund denken, Ihre Klassenkameraden haben könnte, wahr 246 00:12:07,960 --> 00:12:13,210 oder falsch, zu realisieren, dass dies eine ist Gelegenheit, sich die Hände schmutzig 247 00:12:13,210 --> 00:12:16,590 mit dem Kurs, setzen Sie Ihre Zehen in die Wasser, so zu sprechen, so wie ich mich 248 00:12:16,590 --> 00:12:18,500 vor Jahren mit Pass / Fail. 249 00:12:18,500 --> 00:12:21,850 Wie ich letzte Woche sagte, hatte diesen Kurs wie andere, nicht zur Verfügung 250 00:12:21,850 --> 00:12:25,090 Pass / Fail zu der Zeit, hätte ich wahrscheinlich nicht haben jemals einen Fuß in abgestuften 251 00:12:25,090 --> 00:12:28,310 die Klasse, obwohl ich es tat, 5 Wochen später meine Meinung ändern, die Sie 252 00:12:28,310 --> 00:12:32,400 kann als gut, und über zu wechseln oder Brief abgestuften Status. 253 00:12:32,400 --> 00:12:32,990 >> In Ordnung. 254 00:12:32,990 --> 00:12:37,380 So sahen wir uns an Dinge wie diese auf Freitag, und wir sind sehr schnell gehen 255 00:12:37,380 --> 00:12:39,890 den Übergang zu etwas, das sieht eher kryptischen heute. 256 00:12:39,890 --> 00:12:42,300 Aber es ist dennoch die gleichen Grundgedanken. 257 00:12:42,300 --> 00:12:45,540 Was war der allgemeine Begriff, dass wir verwendet werden, um ein Puzzleteil beschreiben 258 00:12:45,540 --> 00:12:47,690 das sah aus wie das? 259 00:12:47,690 --> 00:12:48,510 >> So, ein Statement. 260 00:12:48,510 --> 00:12:50,020 Und Sie können diese einem Reihe von Dingen. 261 00:12:50,020 --> 00:12:51,870 Aber wir nennen es einfach ein Statement, und eine Erklärung 262 00:12:51,870 --> 00:12:53,200 sagt nur das Programm - 263 00:12:53,200 --> 00:12:55,290 oder im Falle von Scratch, das Sprite - 264 00:12:55,290 --> 00:12:56,520 etwas zu tun. 265 00:12:56,520 --> 00:12:58,430 Sag hallo in diesem Fall. 266 00:12:58,430 --> 00:13:01,450 >> So etwas haben wir Statt als was? 267 00:13:01,450 --> 00:13:03,560 Ja, so ein Boolescher Ausdruck. 268 00:13:03,560 --> 00:13:07,380 Ein boolescher Ausdruck ist nur etwas das ist wahr oder falsch, und so Kratzer 269 00:13:07,380 --> 00:13:10,530 zieht sie mit dieser Form, sondern auch mit einem Fragezeichen zu vermitteln die 270 00:13:10,530 --> 00:13:14,510 Idee, dass die Antwort auf diese Frage ist entweder wahr oder falsch, ja oder nein 271 00:13:14,510 --> 00:13:15,910 on, 1 oder 0 ist. 272 00:13:15,910 --> 00:13:19,290 >> Und wir nutzen diese Boolesche Ausdrücke innerhalb von Konstrukten wie diese, die 273 00:13:19,290 --> 00:13:21,010 riefen wir was? 274 00:13:21,010 --> 00:13:22,460 So, Bedingung oder Zweig. 275 00:13:22,460 --> 00:13:25,600 Und die Bedingung, die Sie hier sehen, in Scratch hat einen kleinen Platzhalter für ein 276 00:13:25,600 --> 00:13:28,260 Puzzleteil dieser Form, den Zweck von denen ist, so dass Sie 277 00:13:28,260 --> 00:13:32,670 ziehen Sie es und legen Sie es auf und dann diktieren zu dem Programm, wenn diese Boolean 278 00:13:32,670 --> 00:13:36,410 Ausdruck wahr ist, tun diesen Satz von Anweisungen, dieser Satz von Aussagen, 279 00:13:36,410 --> 00:13:39,320 sonst noch diese andere Gruppe von Anweisungen. 280 00:13:39,320 --> 00:13:41,270 >> Und erinnern, dass man Nest diese Dinge. 281 00:13:41,270 --> 00:13:44,170 Auch wenn es nicht viel Platz visuell in diesem Puzzle-Stück, Scratch 282 00:13:44,170 --> 00:13:47,820 wachsen und schrumpfen, um was auch immer passen Puzzleteile Sie per Drag & Drop in 283 00:13:47,820 --> 00:13:51,410 gibt, so können Sie dies tatsächlich Nest und haben eine Drei-Wege-Gabel in der Straße. 284 00:13:51,410 --> 00:13:53,870 Wenn else if, else. 285 00:13:53,870 --> 00:13:58,100 Und Sie können sogar darüber hinaus gehen, indem Verschachtelung weiter und weiter nach Bedarf. 286 00:13:58,100 --> 00:14:02,520 >> So schließlich sahen wir Konstrukte wie Diese, auch als eine Schleife bekannt. 287 00:14:02,520 --> 00:14:05,690 Und das ist nur etwas, das funktioniert etwas wieder und wieder und wieder. 288 00:14:05,690 --> 00:14:09,250 In diesem Fall kommt es auf eine endliche sein Anzahl der Male, aber wir haben auch 289 00:14:09,250 --> 00:14:12,890 ein Beispiel gesehen, wobei die Anzahl der Zeiten stammte aus einer variablen, also 290 00:14:12,890 --> 00:14:13,690 könnte sich ändern. 291 00:14:13,690 --> 00:14:16,910 Und wir sahen auch einen anderen Block insgesamt genannt ewig Block, 292 00:14:16,910 --> 00:14:19,590 erlaubt es uns, Schleife unendlich lang. 293 00:14:19,590 --> 00:14:23,300 >> So ein Konstrukt, das andere Scratch 2.0 hat - und diejenigen von euch mehr 294 00:14:23,300 --> 00:14:26,330 komfortabel mit vorheriger Hintergrund sind bereits gut vertraut mit dieser 295 00:14:26,330 --> 00:14:27,080 konstruieren - 296 00:14:27,080 --> 00:14:29,910 diese Dinge, die wir genannt, was? 297 00:14:29,910 --> 00:14:32,540 Also riefen wir diese Funktionen, sonst bekannt als Verfahren. 298 00:14:32,540 --> 00:14:35,030 Es gibt eine leichte semantische Unterschied, aber wir nennen sie nur Funktionen. 299 00:14:35,030 --> 00:14:39,950 >> Und eine Funktion, bei der Scratch, ist ein Brauch, dass Puzzleteil 300 00:14:39,950 --> 00:14:43,670 Sie selbst erstellen können, so dass Sie ein neues Puzzleteil, dass in diesem 301 00:14:43,670 --> 00:14:47,190 Fall würde man Husten werden, dass wird unter all den anderen 302 00:14:47,190 --> 00:14:48,730 verfügbar Puzzleteile in Scratch. 303 00:14:48,730 --> 00:14:52,010 Obwohl MIT nicht erfunden dieses Puzzleteil, das haben Sie. 304 00:14:52,010 --> 00:14:57,600 >> So eine Funktion ermöglicht es Ihnen, neue erstellen Verhalten, geben Sie ihm den Namen einer Funktion, und 305 00:14:57,600 --> 00:14:59,200 dann rufen Sie es, so zu sprechen. 306 00:14:59,200 --> 00:15:04,690 Wirklich verwenden Sie es in Programmen wieder und wieder ohne Wartezeit 307 00:15:04,690 --> 00:15:08,600 für jemanden wie MIT auf dem Weg zur erfinden neue Funktionalität von Scratch. 308 00:15:08,600 --> 00:15:12,460 Sie können selbst bauen diese Puzzle Stücke selbst, und dann wiederverwenden 309 00:15:12,460 --> 00:15:13,600 in eigene Programme. 310 00:15:13,600 --> 00:15:17,520 Und wir werden sehen, ein wiederkehrendes Beispiel der, dass heute und weiter. 311 00:15:17,520 --> 00:15:20,960 >> Also heute, Übergang wir jetzt etwas mehr geheimnisvoll. 312 00:15:20,960 --> 00:15:24,350 Aber am Ende des Tages etwas mehr kraftvoll und ausdrucksstark und mehr 313 00:15:24,350 --> 00:15:28,110 Vertreter der Weg, den wir bald auf alle Semester während einer Reihe 314 00:15:28,110 --> 00:15:28,800 von Sprachen - 315 00:15:28,800 --> 00:15:30,800 dass der Code oder Quelltext. 316 00:15:30,800 --> 00:15:34,720 Und Quellcode, es stellt sich heraus, ist nicht das, was ein Computer 317 00:15:34,720 --> 00:15:37,400 typischerweise tatsächlich läuft. 318 00:15:37,400 --> 00:15:39,860 Der Quellcode sieht wie folgt aus. 319 00:15:39,860 --> 00:15:43,010 >> So ist wiederum vielleicht die einfachste Programm können wir in eine schreiben 320 00:15:43,010 --> 00:15:46,670 Sprache namens C. Wir beginnen, necken diese auseinander dauerte nicht lange, und wenn 321 00:15:46,670 --> 00:15:49,260 diese wirklich wie griechische aussehen Ihnen jetzt, glaub mir. 322 00:15:49,260 --> 00:15:54,040 Innerhalb von nur ein oder zwei Wochen Zeit, dieses werden nur allzu vertraut und tatsächlich 323 00:15:54,040 --> 00:15:57,780 ganz repräsentativ für immer Komplexere Beispiele mit dem Sie 324 00:15:57,780 --> 00:15:59,870 auch mehr bequem. 325 00:15:59,870 --> 00:16:03,100 >> Aber man kann nicht nur laufen diese Art von Code in der Regel. 326 00:16:03,100 --> 00:16:06,750 Sie müssen es in etwas, das wiederum der Computer selbst versteht. 327 00:16:06,750 --> 00:16:09,840 Und so brauchen wir etwas werden wir einen Compiler aufrufen. 328 00:16:09,840 --> 00:16:13,910 Ein Compiler ist ein Programm, das dauert Quellcode, wie Sie gerade gesehen haben, wie 329 00:16:13,910 --> 00:16:17,680 Eingang, und es produziert Nullen und Wieder so ausgegeben, ansonsten 330 00:16:17,680 --> 00:16:19,210 bekannt als Objektcode. 331 00:16:19,210 --> 00:16:23,190 Und es ist diese, dass Nullen und Einsen könnte durchaus so aussehen, dass 332 00:16:23,190 --> 00:16:26,310 schließlich verstanden von Ihrem Mac oder PC. 333 00:16:26,310 --> 00:16:30,050 >> Wenn Sie jemals das Marketing gehört Ausdruck Intel Inside, dass nur 334 00:16:30,050 --> 00:16:32,800 bedeutet, dass eine Firma namens Intel hat die hergestellt 335 00:16:32,800 --> 00:16:34,130 Gehirne von Ihrem Computer - 336 00:16:34,130 --> 00:16:37,270 anders als CPU bezeichnet, Central Processing Unit - 337 00:16:37,270 --> 00:16:39,640 und das ist nur das, was versteht Muster 338 00:16:39,640 --> 00:16:40,880 von Nullen und Einsen. 339 00:16:40,880 --> 00:16:46,330 Und so durch die Umwandlung Quellcode in Objekt-Code durch diesen Prozess hier 340 00:16:46,330 --> 00:16:49,130 dass wir mit ein paar Befehlen tun in nur ein bisschen, sind Sie 341 00:16:49,130 --> 00:16:53,070 Erstellen Muster von Nullen und Einsen dass die Mitarbeiter bei Intel haben 342 00:16:53,070 --> 00:16:56,000 beschlossen repräsentieren bestimmte Aussagen. 343 00:16:56,000 --> 00:16:58,810 >> Nun, ich weiß nicht so recht, welche welches von nur einem Blick auf 344 00:16:58,810 --> 00:16:59,890 diese Nullen und Einsen. 345 00:16:59,890 --> 00:17:01,420 Die meisten Menschen in diesen Tagen nicht. 346 00:17:01,420 --> 00:17:04,900 Aber irgendwo in gibt es ein Muster von Nullen und Einsen, die das repräsentiert 347 00:17:04,900 --> 00:17:06,349 Anweisung PRINT. 348 00:17:06,349 --> 00:17:10,460 Irgendwo dort könnte ein anderer sein Satz von Nullen und Einsen, dass 349 00:17:10,460 --> 00:17:16,940 stellen den Begriff der Ewigkeit oder 10-mal wiederholen oder sogar miauen, wenn es 350 00:17:16,940 --> 00:17:20,000 tatsächlich ein Programm, das kann gehören einige Sounds. 351 00:17:20,000 --> 00:17:24,390 >> Also kurz gesagt, haben die Menschen gerade beschlossen, viel wie wir für ASCII - 352 00:17:24,390 --> 00:17:27,480 für die Buchstaben des Alphabets letzte Woche - Menschen haben sogar beschlossen, dass 353 00:17:27,480 --> 00:17:32,200 komplexere Muster von Nullen und Einsen repräsentieren komplexeres Verhalten 354 00:17:32,200 --> 00:17:35,650 wie Drucken oder sagen oder miauen. 355 00:17:35,650 --> 00:17:38,640 Und so für heute, und weitgehend Weiterreise in dem Semester, nehmen wir für 356 00:17:38,640 --> 00:17:41,820 selbstverständlich, dass jemand dachte, heraus, wie man das Mapping zu tun. 357 00:17:41,820 --> 00:17:45,560 Aber wir, im Einklang mit dieser Idee Schichtung auf der Arbeit von Menschen 358 00:17:45,560 --> 00:17:49,340 die bereits vor uns kommen, werden für nehmen gewährt die Tatsache, dass dies vor sich geht 359 00:17:49,340 --> 00:17:50,300 unter der Haube. 360 00:17:50,300 --> 00:17:53,840 Aber wir sind viel mehr daran interessiert, Gebäude Dinge, die mehr sind 361 00:17:53,840 --> 00:17:55,880 Interessantes auf der Spitze des ganzen. 362 00:17:55,880 --> 00:17:58,900 >> Und so in der Tat, das erste Programm, das wir schrieb im Scratch war super einfach 363 00:17:58,900 --> 00:18:00,600 ein, Hallo Welt. 364 00:18:00,600 --> 00:18:05,100 Und Sie können dies als das denken Hauptprogramm, das Scratch regelt 365 00:18:05,100 --> 00:18:07,280 Verhalten wie der am vergangenen Freitag. 366 00:18:07,280 --> 00:18:11,510 >> Heute werden wir anfangen zu übersetzen Scratch Puzzleteile in 367 00:18:11,510 --> 00:18:16,040 Source-Code in dieser Sprache genannt C so, dass etwas, das aussah wie diese auf 368 00:18:16,040 --> 00:18:20,230 Freitag, ab heute an ist nun wie folgt aussehen. 369 00:18:20,230 --> 00:18:21,860 Zugegeben mehr kryptisch. 370 00:18:21,860 --> 00:18:25,010 Es ist ziemlich störend und Art des Geistes betäubende, um alle Angebote zu sehen 371 00:18:25,010 --> 00:18:27,760 und die Semikolon und die Klammern und so weiter. 372 00:18:27,760 --> 00:18:32,350 >> Aber wenn Sie anfangen, etwas zu ignorieren, nicht verstehen, und wirklich aussehen 373 00:18:32,350 --> 00:18:35,960 auf das Wesen der weißen Text auf der Bildschirm, sicherlich sehen Sie, wie ich, 374 00:18:35,960 --> 00:18:40,360 "Hallo, Welt." Die Linien mit der lila Aussage bis oben, und es stellt sich 375 00:18:40,360 --> 00:18:44,790 darauf hin, dass das Schlüsselwort wichtigsten ist los Line-Up mit konzeptionell wenn grün 376 00:18:44,790 --> 00:18:46,350 Flagge geklickt. 377 00:18:46,350 --> 00:18:49,820 >> Also mit anderen Worten, während in Scratch, wir implementieren diese Hallo Welt Programm 378 00:18:49,820 --> 00:18:53,360 mit diesen zwei Puzzleteile, in C, werden wir es mit diesen implementieren 379 00:18:53,360 --> 00:18:55,510 vier etwas kryptischen Zeilen. 380 00:18:55,510 --> 00:18:58,130 Aber wie wir in diese tiefer tauchen, werden Sie , dass für jeden von denen 381 00:18:58,130 --> 00:19:02,730 weißen Zeichen auf dem Bildschirm tatsächlich hat einige erhebliche Bedeutung, 382 00:19:02,730 --> 00:19:05,880 und die meisten unserer Programme zu gehen schauen strukturell ganz dasselbe. 383 00:19:05,880 --> 00:19:08,980 So eine Aussage, klar zu sein, was sah aus wie "say Hallo Welt" auf 384 00:19:08,980 --> 00:19:12,020 Freitag wird zu Beginn der Suche mag dies am Montag. 385 00:19:12,020 --> 00:19:15,250 printf ("Hallo Welt"). 386 00:19:15,250 --> 00:19:17,700 Und es gibt einige seltsame Backslash n, es gibt Klammern, gibt es 387 00:19:17,700 --> 00:19:18,490 Semikolon. 388 00:19:18,490 --> 00:19:21,950 >> Aber am Ende des Tages, der Schlüssel Lieferservice heute ist, dass alles, was wir tun 389 00:19:21,950 --> 00:19:25,710 ist die Umsetzung Dinge aus Bild bilden Textform. 390 00:19:25,710 --> 00:19:28,820 So eine Schleife, die so aussah letzte Woche wird nun aussehen 391 00:19:28,820 --> 00:19:30,140 etwas wie dieses. 392 00:19:30,140 --> 00:19:33,020 >> Und lassen Sie mich lehnen, so wie in Scratch, gibt es verschiedene Möglichkeiten, um 393 00:19:33,020 --> 00:19:34,110 erreichen das gleiche Ziel. 394 00:19:34,110 --> 00:19:38,860 Same in C. Ich bin nicht die einzige, welche Sie Weg, Dinge zu tun, aber ein Weg, um 395 00:19:38,860 --> 00:19:43,230 Übersetzen Sie diese für immer blockieren einer Schleife in C. 396 00:19:43,230 --> 00:19:44,980 >> Dieser hier, 10-mal wiederholen. 397 00:19:44,980 --> 00:19:47,580 Diese wirklich Art von Kurven die dagegen das erste Mal, wenn Sie es sehen. 398 00:19:47,580 --> 00:19:49,860 Aber um das künftig zu implementieren, wir gehen auf eine Verwendung 399 00:19:49,860 --> 00:19:51,990 for-Schleife, so zu sprechen. 400 00:19:51,990 --> 00:19:56,150 Und klar, es gibt einige, die Syntax ist ein wenig komplex es mit I und 401 00:19:56,150 --> 00:19:59,740 gleich und 0, aber sobald wir in das tauchen heute an, du bist gerade dabei 402 00:19:59,740 --> 00:20:04,260 zu sehen, dass das ist alles einfach, wenn Sie einige Grundrechenarten, um uns von 0 erhalten 403 00:20:04,260 --> 00:20:07,720 auf bis zu 9 oder 10 in diesem Fall. 404 00:20:07,720 --> 00:20:11,570 >> Schließlich mit Variablen, werden Sie sich erinnern dass eine Variable ist ein Stück der Lagerung. 405 00:20:11,570 --> 00:20:14,290 Nun, was hatten wir auf der linken Seite gibt es letzten Woche wird ein wenig aussehen 406 00:20:14,290 --> 00:20:15,920 so etwas wie dies in dieser Woche. 407 00:20:15,920 --> 00:20:17,870 Aber noch einmal, sich mehr auf die kommen. 408 00:20:17,870 --> 00:20:20,700 >> Wir hatten Boolesche Ausdrücke, die letzte Woche sah wie folgt aus. 409 00:20:20,700 --> 00:20:23,370 Diese Woche weiter, sie zu gehen beginnen, ein wenig so aussehen. 410 00:20:23,370 --> 00:20:24,890 >> Und dieser ist eigentlich ein wenig beruhigend. 411 00:20:24,890 --> 00:20:27,680 Es ist eigentlich fast so einfach wie die grünen Blöcke. 412 00:20:27,680 --> 00:20:31,115 Aber hier haben wir wieder einige neue Syntax mit Et-Zeichen, aber Sie können 413 00:20:31,115 --> 00:20:35,390 vielleicht erraten, während im Scratch, Sie sagen A-N-D, offenbar in C, sind wir 414 00:20:35,390 --> 00:20:37,070 gehen zu sagen, kaufmännisches Und-Zeichen. 415 00:20:37,070 --> 00:20:39,650 Aber all dies wird natürlichen dauerte nicht lange. 416 00:20:39,650 --> 00:20:40,680 >> AGB. 417 00:20:40,680 --> 00:20:42,610 Letzte Woche sah es so aus Dieser auf der linken Seite. 418 00:20:42,610 --> 00:20:44,800 Diese Woche, auf der rechten Seite, ist es gehen, um so aussehen. 419 00:20:44,800 --> 00:20:48,560 Aber wieder ist der Schlüssel zum Mitnehmen hier, dass wie Sie sehen Dinge wie, dass auf 420 00:20:48,560 --> 00:20:51,950 das Recht, und vor allem, wenn weniger komfortabel, ist es irgendwie über Ihr 421 00:20:51,950 --> 00:20:54,950 Kopf, erhalten Sie ein wenig überwältigt, dass Ich habe wirklich keine Ahnung, wie ich konnte, 422 00:20:54,950 --> 00:20:58,420 möglicherweise kommen mit dass aus dem Nichts - 423 00:20:58,420 --> 00:20:59,500 kein Wortspiel beabsichtigt - 424 00:20:59,500 --> 00:21:05,300 nur erkennen, dass es wirklich das gleiche Idee, die wohl fühlte mich so viel mehr 425 00:21:05,300 --> 00:21:06,760 natürlich in der Vorwoche. 426 00:21:06,760 --> 00:21:10,960 Und selbst wenn Sie nicht in tauchten Problem Set 0, ich wage zu behaupten finden 427 00:21:10,960 --> 00:21:13,790 dass die Puzzleteile sind ziemlich intuitive oder zumindest 428 00:21:13,790 --> 00:21:16,050 sich so im Laufe der Zeit. 429 00:21:16,050 --> 00:21:16,990 >> Also lasst uns in. tauchen 430 00:21:16,990 --> 00:21:20,760 Lasst uns die Hände schmutzig hier mit diese ersten einfachen Programm. 431 00:21:20,760 --> 00:21:22,410 Und einfach ist natürlich relativ. 432 00:21:22,410 --> 00:21:25,190 Um dies zu tun, werde ich ändern Bildschirme zu diesem Gerät, das ich genannt 433 00:21:25,190 --> 00:21:26,150 CS50 Gerät. 434 00:21:26,150 --> 00:21:29,700 Das CS50 Gerät ist ein Stück Software, die in ein laufendes ist 435 00:21:29,700 --> 00:21:33,920 Fenster auf meinem Mac, und Sie können auch laufen es in einem Fenster innerhalb Ihres PC, dass 436 00:21:33,920 --> 00:21:38,720 ermöglicht es mir, exakt das gleiche haben Computer-Umgebung wie jedes TF, wie 437 00:21:38,720 --> 00:21:40,940 jeder CA, wie jeder Student in der Klasse. 438 00:21:40,940 --> 00:21:44,590 Da das Gerät CS50 ist buchstäblich ein anderes Betriebssystem 439 00:21:44,590 --> 00:21:45,410 Linux genannt - 440 00:21:45,410 --> 00:21:47,160 Fedora Linux speziell - 441 00:21:47,160 --> 00:21:51,320 und wir, das Personal, konfiguriert haben die Installation für diese 442 00:21:51,320 --> 00:21:55,200 Betriebssystem in der Weise, dass man, gibt es ein kleines Logo in der CS50 443 00:21:55,200 --> 00:21:59,240 Mitte, zwei, gibt es eine benutzerdefinierte Menü der Boden, und drei, pädagogisch, 444 00:21:59,240 --> 00:22:02,570 haben wir die Benutzeroberfläche vereinfacht viel wie möglich, so dass, wenn Sie 445 00:22:02,570 --> 00:22:05,540 ersten booten diese Sache auf eigene Faust Mac oder PC, haben Sie die gleichen 446 00:22:05,540 --> 00:22:08,280 Umwelt als jeder andere, und Sie haben alle Werkzeuge, die Sie brauchen 447 00:22:08,280 --> 00:22:11,390 für den Kurs ohne Abbildung herauszufinden, wie jeder installieren und 448 00:22:11,390 --> 00:22:13,280 jedes Werkzeug einzeln. 449 00:22:13,280 --> 00:22:15,840 >> So sieht das relativ wie Mac OS oder Windows. 450 00:22:15,840 --> 00:22:18,760 In der linken unteren Ecke, Sie Wesentlichen eine Start-Menü 451 00:22:18,760 --> 00:22:20,280 Arten, oder ein Apple-Menü. 452 00:22:20,280 --> 00:22:23,700 Und dann haben Sie, was wir vermuten, wird werden Ihre drei häufigsten Symbole. 453 00:22:23,700 --> 00:22:24,460 Eines ist Chrome. 454 00:22:24,460 --> 00:22:26,460 Es ist ein Browser nach innen des Gerätes. 455 00:22:26,460 --> 00:22:29,970 >> Zwei ist ein Programm namens gedit, welche sahen wir kurz letzte Woche, ist die 456 00:22:29,970 --> 00:22:31,310 nur ein grafischer Editor. 457 00:22:31,310 --> 00:22:35,350 Und drei ist ein Terminal-Programm, das ist ein Schwarz-Weiß-Fenster aus 458 00:22:35,350 --> 00:22:39,860 Vergangenheit, die uns mehr geben kann Arkan, aber mächtiger Befehle an 459 00:22:39,860 --> 00:22:40,660 unserer Tastatur. 460 00:22:40,660 --> 00:22:44,220 Also werde ich weitermachen und klicken Sie auf gedit, und seien Sie versichert, dass Problem 461 00:22:44,220 --> 00:22:48,520 Set 1, am Freitag freigegeben werden, wird gehen Sie durch all diese gleichen Schritte. 462 00:22:48,520 --> 00:22:51,730 >> Beachten Sie, dass ich eine ziemlich einfache haben Benutzeroberfläche mit drei Teilen. 463 00:22:51,730 --> 00:22:54,990 Auf der linken Seite habe ich einen großen, leeren Fenster mit dem Namen Source Code. 464 00:22:54,990 --> 00:22:58,930 Das ist, wo ich eine Zusammenfassung zu sehen bin von Code, die ich schreibe. 465 00:22:58,930 --> 00:23:01,990 Auf der rechten Seite habe ich eine große Registerkarte ist derzeit noch nicht gespeichert, und dass 466 00:23:01,990 --> 00:23:03,510 wo mein Code geht zu gehen. 467 00:23:03,510 --> 00:23:06,780 Und auf dem Boden, ich habe ein eingebettetes Terminal-Fenster, ein schwarz-weiß 468 00:23:06,780 --> 00:23:12,060 aufgefordert, an dem ich Befehle zu tippen zusammenzustellen und um meine Programme laufen - dass 469 00:23:12,060 --> 00:23:14,110 ist, zu machen und zu meiner Programme auszuführen. 470 00:23:14,110 --> 00:23:15,170 >> Also fangen wir einfach. 471 00:23:15,170 --> 00:23:17,700 Lassen Sie mich gehen Sie zu Datei, Speichern. 472 00:23:17,700 --> 00:23:20,530 Ich werde weitermachen und gehen in jharvard. 473 00:23:20,530 --> 00:23:24,320 Also das Gerät, unabhängig von dem, was Ihr Name ist, gehört zu einem Mann namens 474 00:23:24,320 --> 00:23:28,250 John Harvard, der ein Haus hat jharvard Verzeichnis innerhalb derer alle Ihre 475 00:23:28,250 --> 00:23:29,100 Dateien gehen wird. 476 00:23:29,100 --> 00:23:31,640 Es ist Ihre eigene Kopie von seinem Konto, so sind wir nicht alle teilen 477 00:23:31,640 --> 00:23:33,530 die gleiche Festplatte. 478 00:23:33,530 --> 00:23:35,580 Sie müssen nur die Illusion von John Harvard eigenen. 479 00:23:35,580 --> 00:23:38,350 >> Im Vorfeld habe ich eigentlich installiert Dropbox. 480 00:23:38,350 --> 00:23:42,600 Das Gerät kommt mit vorgefertigten Dropbox, so dass, wenn etwas schief geht 481 00:23:42,600 --> 00:23:45,950 während des Semesters, wenn Sie konfiguriert Ihr Gerät mit einem freien 482 00:23:45,950 --> 00:23:48,950 Dropbox-Konto, werden alle Ihre Dateien automatisch gesichert werden, so dass Sie 483 00:23:48,950 --> 00:23:50,430 kann sehr leicht wiederhergestellt werden können. 484 00:23:50,430 --> 00:23:53,980 Und ich werde in meine Dropbox gehen Verzeichnis, und es gibt schon los 485 00:23:53,980 --> 00:23:55,530 um ein paar andere Dinge dort zu sein. 486 00:23:55,530 --> 00:24:02,090 >> Aber ich werde weitermachen und gehen Sie auf Datei, Speichern. 487 00:24:02,090 --> 00:24:05,930 Ich werde in jharvard, Dropbox gehen, und hier, ich bin zu gehen 488 00:24:05,930 --> 00:24:10,590 gebe mein Programm eine super einfach Name, hello.c und dann speichern. 489 00:24:10,590 --> 00:24:11,810 Also ich habe jetzt die gleiche Schnittstelle. 490 00:24:11,810 --> 00:24:14,190 Das einzige, was sich geändert hat ist die Registerkarte up top. 491 00:24:14,190 --> 00:24:17,170 Also ich bin sehr schnell gehen, um neu dass das Programm von 492 00:24:17,170 --> 00:24:19,060 gleitet vor einem Augenblick. 493 00:24:19,060 --> 00:24:25,690 >> So in main (void), und dann printf, "Hallo, Welt", eine etwas kryptische 494 00:24:25,690 --> 00:24:29,920 Backslash n, nahe Zitat schließen Klammern, Semikolon, und 495 00:24:29,920 --> 00:24:32,030 dann Strg S zu speichern. 496 00:24:32,030 --> 00:24:34,860 Und als Hinweis beiseite, was gerade erschien hier in der oberen linken. 497 00:24:34,860 --> 00:24:37,490 Und dies ist nicht sinnvoll, heute, aber Nutzen sein wird im Laufe der Zeit. 498 00:24:37,490 --> 00:24:40,160 Sie müssen nur sehen, wieder eine Zusammenfassung der der Code, den du geschrieben hast. 499 00:24:40,160 --> 00:24:43,320 Und weil ich schrieb so etwas wie Hauptsache ist, warum das Wort tauchte wichtigsten 500 00:24:43,320 --> 00:24:44,030 da drüben. 501 00:24:44,030 --> 00:24:46,610 Aber zum größten Teil, wir brauche das nicht heute. 502 00:24:46,610 --> 00:24:51,130 >> Alles klar, so behaupte ich, dass dies mein ist erste Programm in einer Programmiersprache geschrieben 503 00:24:51,130 --> 00:24:54,620 Sprache namens C. Wir wissen von Freitag dass das, was dieses Ding ist zu tun 504 00:24:54,620 --> 00:24:58,450 sehr uninteressant, wenn ich laufen ist es nur anzuzeigen - 505 00:24:58,450 --> 00:25:01,270 mit anderen Worten, zu drucken, wie einem Computer Wissenschaftler sagen würde - 506 00:25:01,270 --> 00:25:03,310 Hello World auf dem Bildschirm. 507 00:25:03,310 --> 00:25:06,800 So, dies zu tun, werden Sie feststellen, dass ich nach unten gehen hier, um mein Terminal 508 00:25:06,800 --> 00:25:09,250 Fenster, und jetzt habe ich eine blinkende Eingabeaufforderung. 509 00:25:09,250 --> 00:25:15,480 Aber das ist jetzt eine Tastatur Version mein John Harvard Home-Verzeichnis. 510 00:25:15,480 --> 00:25:19,610 Es ist ein Weg, über die Tastatur auf meine Festplatte zu navigieren. 511 00:25:19,610 --> 00:25:25,380 >> So kann ich nicht wirklich geben wie ich es tat letzte Woche machen hallo, weil es 512 00:25:25,380 --> 00:25:27,230 gehen, um keine Regel sage Ziel machen - 513 00:25:27,230 --> 00:25:27,950 Irgendwas stimmt nicht. 514 00:25:27,950 --> 00:25:31,690 Ich weiß nicht so recht, was diese Nachricht Mittel, aber das ist, weil in der Standardeinstellung 515 00:25:31,690 --> 00:25:35,350 wenn dieser Schwarz-Weiß-Fenster geöffnet, ich bin innerhalb von John Harvard 516 00:25:35,350 --> 00:25:36,160 Home-Verzeichnis. 517 00:25:36,160 --> 00:25:39,180 Aber wo habe ich das Programm speichern? 518 00:25:39,180 --> 00:25:40,440 In meine Dropbox-Ordner. 519 00:25:40,440 --> 00:25:43,110 >> Jetzt haben wir alle aufgewachsen sind Computer, auf denen Sie klicken Sie einfach doppelt 520 00:25:43,110 --> 00:25:45,610 auf einem Ordner auf das Symbol, es eröffnet, und voila. 521 00:25:45,610 --> 00:25:48,280 Das ist, wo die Datei mit dem Namen hello.c wäre. 522 00:25:48,280 --> 00:25:49,470 Also in der Tat, lasst uns das tun. 523 00:25:49,470 --> 00:25:51,610 >> Lassen Sie mich gehen Sie vor und minimieren gedit wie würden Sie auf 524 00:25:51,610 --> 00:25:52,990 Windows oder Mac OS. 525 00:25:52,990 --> 00:25:56,160 Lassen Sie mich in die Startseite gehen Ordner oben links. 526 00:25:56,160 --> 00:25:57,620 Ich werde hier sehen Sie eine Reihe von Ordnern. 527 00:25:57,620 --> 00:25:58,870 Hier ist meine Dropbox-Ordner. 528 00:25:58,870 --> 00:26:00,770 Die Häkchen bedeutet, dass es gewesen ist synchronisiert. 529 00:26:00,770 --> 00:26:04,040 Und es gibt ein paar Dinge hier, aber feststellen, dass hello.c ist 530 00:26:04,040 --> 00:26:04,960 in der Tat recht. 531 00:26:04,960 --> 00:26:08,050 >> Und so in Mac OS oder Windows, in der Regel, Ich würde doppelklicken Sie, dass es eröffnet in 532 00:26:08,050 --> 00:26:10,220 unabhängig von Programm, und ich bin gut zu gehen. 533 00:26:10,220 --> 00:26:13,370 Aber jetzt, zumindest ab heute, wir brauchen, um einen Schritt zurück zu gehen, nur um 534 00:26:13,370 --> 00:26:16,960 Ihnen einige grundlegende Werkzeuge für Ihre Tool-Kit, mit dem, mehr zu tun 535 00:26:16,960 --> 00:26:18,980 mächtige Dinge vor lang. 536 00:26:18,980 --> 00:26:22,280 >> Also an dieser Eingabeaufforderung, muss ich das tun, Äquivalent Doppelklick die 537 00:26:22,280 --> 00:26:23,560 Dropbox-Ordner. 538 00:26:23,560 --> 00:26:29,900 Und um das zu tun, werde ich für CD geben Ändern Sie das Verzeichnis, Dropbox, geben. 539 00:26:29,900 --> 00:26:36,100 Und jetzt bemerken die Klammern an meinem sogenannte Eingabeaufforderung jetzt sagt, dass ich in mir 540 00:26:36,100 --> 00:26:38,470 Tilde, die kleine squiggly Symbol oben links 541 00:26:38,470 --> 00:26:40,860 meisten Tastaturen / Dropbox. 542 00:26:40,860 --> 00:26:45,200 Dies ist nur für Kurzschrift sagen Menschen, Sie sind jetzt in der 543 00:26:45,200 --> 00:26:48,650 das Dropbox-Ordner, als ob Sie hatte doppelt angeklickt. 544 00:26:48,650 --> 00:26:54,610 >> So jetzt, wenn ich voran gehen und geben Sie machen hallo, geben, sehe ich eine sehr kryptische 545 00:26:54,610 --> 00:26:57,450 Befehl, nicht aber eine Fehlermeldung, es scheint, und dann 546 00:26:57,450 --> 00:26:59,020 andere blinken prompt. 547 00:26:59,020 --> 00:27:04,470 Und wenn Sie sich erinnern, jemals so schnell am Freitag, taten wir dies. . / Hallo. 548 00:27:04,470 --> 00:27:10,000 >> Was Sie sind dabei, zu sehen, ist das Ergebnis meiner Ausführen dieses Programms oder in Mac 549 00:27:10,000 --> 00:27:14,310 OS und PC Begriffe, wenn ich in der Regel verdoppeln Klicken Sie auf ein Programm -. ein app 550 00:27:14,310 --> 00:27:17,620 Programm oder ein. exe, öffnet es ein Fenster und läuft. 551 00:27:17,620 --> 00:27:21,920 Tippen. / Hallo ist wie Doppel Sie ein Programm, um sie auszuführen, aber 552 00:27:21,920 --> 00:27:23,280 mit meiner Tastatur. 553 00:27:23,280 --> 00:27:25,410 >> Geben Sie, hallo Welt. 554 00:27:25,410 --> 00:27:26,150 Und das ist es. 555 00:27:26,150 --> 00:27:29,150 Also lasst uns necken diese auseinander, um so nicht zu viel wie griechische fühlen. 556 00:27:29,150 --> 00:27:31,370 >> So. / Bedeutet was? 557 00:27:31,370 --> 00:27:34,120 Wer schon einmal navigiert ist eine Tastatur Umgebung wie dieser, was ist dot 558 00:27:34,120 --> 00:27:36,690 gemeint? 559 00:27:36,690 --> 00:27:37,800 Das aktuelle Verzeichnis. 560 00:27:37,800 --> 00:27:41,320 >> So das aktuelle Verzeichnis ist nur ein Synonym für einen Ordner. 561 00:27:41,320 --> 00:27:46,230 So mit den Worten dot Schrägstrich, sage ich, suchen Sie nach einem Programm namens hallo in die 562 00:27:46,230 --> 00:27:47,250 aktuellen Verzeichnis - 563 00:27:47,250 --> 00:27:48,540 im aktuellen Ordner. 564 00:27:48,540 --> 00:27:50,480 In anderen Worten, meine Dropbox-Ordner. 565 00:27:50,480 --> 00:27:54,220 Und deshalb schlagende danach Enter eigentlich läuft das Programm. 566 00:27:54,220 --> 00:27:58,790 >> Wenn ich nun Typ LS, feststellen, dass ich sehe, alles in meine Dropbox-Ordner. 567 00:27:58,790 --> 00:28:02,000 Einführung.pdf, die Dropbox gibt Ihnen frei, meine Fotos 568 00:28:02,000 --> 00:28:05,450 Verzeichnis, ein öffentliches Verzeichnis, Ungespeicherte Dokument 1, die ich aus Versehen einen gemacht 569 00:28:05,450 --> 00:28:09,730 Vorhin foo.c, die ich vorhin heute, und dann zwei Linien - 570 00:28:09,730 --> 00:28:12,090 hello.c und hallo. 571 00:28:12,090 --> 00:28:17,280 >> Hello.c ist das Programm, das ich schrieb mit gedit, und was ist hallo in grün? 572 00:28:17,280 --> 00:28:20,920 573 00:28:20,920 --> 00:28:22,940 Die hallo in grün ist die ausführbare Datei. 574 00:28:22,940 --> 00:28:27,020 In anderen Worten, wenn ich lief diesen Befehl vor einem Augenblick - lass mich rollen 575 00:28:27,020 --> 00:28:28,040 zurück in der Zeit - 576 00:28:28,040 --> 00:28:32,400 wenn ich lief hallo, das ist die mittlere Stufe hier. 577 00:28:32,400 --> 00:28:34,410 Und es dauerte hello.c als Eingabe - 578 00:28:34,410 --> 00:28:39,910 AKA Quellcode - und es erzeugt ein Datei namens hallo als Ausgabe, die 579 00:28:39,910 --> 00:28:42,510 enthält alle diese Nullen und Einsen. 580 00:28:42,510 --> 00:28:47,640 Und deshalb, am Ende, ich kann tatsächlich einen Befehl ausführen, wie. / hallo. 581 00:28:47,640 --> 00:28:53,310 Wegen Intel Inside, mein Betriebssystem System, Linux, eröffnet diese Nullen 582 00:28:53,310 --> 00:28:55,820 und diejenigen, speist sie in die Gehirne von meinem Computer - 583 00:28:55,820 --> 00:28:56,580 die CPU - 584 00:28:56,580 --> 00:29:00,460 und dass die CPU weiß, oh, hier ist ein Muster von Nullen und Einsen, die sagt 585 00:29:00,460 --> 00:29:02,800 drucken Sie die folgende Sache auf dem Bildschirm. 586 00:29:02,800 --> 00:29:04,450 >> Was ist das Folgende? 587 00:29:04,450 --> 00:29:07,650 Zitat unquote, "Hallo Welt." 588 00:29:07,650 --> 00:29:12,100 >> Alles klar, also eine kurze Zusammenfassung einiger diese Befehle, so dass wir beginnen können, 589 00:29:12,100 --> 00:29:13,350 nehmen sie für selbstverständlich halten. 590 00:29:13,350 --> 00:29:15,550 Lassen Sie mich vor zu überspringen wo wir aufgehört haben. 591 00:29:15,550 --> 00:29:22,230 Und Sie werden sich erinnern, dass wir CD hatte im Rücken vor einem Augenblick zu beenden. 592 00:29:22,230 --> 00:29:24,880 Dies sind, ich wage zu sagen, für heutigen Zwecke - 593 00:29:24,880 --> 00:29:29,010 vielleicht diese Woche - die einzigen Befehle, die wir Möglicherweise müssen Sie in der Befehlszeile eingeben 594 00:29:29,010 --> 00:29:30,580 fordert neben machen. 595 00:29:30,580 --> 00:29:34,510 >> Also CD stand für was? 596 00:29:34,510 --> 00:29:35,180 Ändern Sie das Verzeichnis. 597 00:29:35,180 --> 00:29:38,010 Es ist nur das Äquivalent von Doppel- Klicken Sie auf einen Ordner. 598 00:29:38,010 --> 00:29:41,320 Und so nebenbei, wenn man verloren jemals in Ihrer 599 00:29:41,320 --> 00:29:43,430 Gerät, so dass Dropbox - 600 00:29:43,430 --> 00:29:45,420 Ich will zurück zu meinem jharvard Verzeichnis - 601 00:29:45,420 --> 00:29:50,490 wenn im Zweifel, CD, geben, mit keinen anderen Worte, und es nur Reißverschlüsse Sie zurück 602 00:29:50,490 --> 00:29:53,110 , wo Sie begonnen, die ist ein nettes kleines Kontextmenü. 603 00:29:53,110 --> 00:29:54,840 >> Alles in Ordnung, so dass nun weitere Befehle. 604 00:29:54,840 --> 00:29:55,660 LS. 605 00:29:55,660 --> 00:29:56,840 Ich tippte, dass vor einem Augenblick. 606 00:29:56,840 --> 00:29:59,500 Was denken Sie, LS steht für? 607 00:29:59,500 --> 00:30:00,470 >> So, Liste, nicht wahr? 608 00:30:00,470 --> 00:30:03,300 Zurück in den Tag, als die Menschen kamen mit diesen Befehlen sie 609 00:30:03,300 --> 00:30:07,180 versuchten, effizient zu sein und eher tippen L-I-S-T einzugeben, sie 610 00:30:07,180 --> 00:30:08,470 LS entschieden. 611 00:30:08,470 --> 00:30:09,080 Das ist in Ordnung. 612 00:30:09,080 --> 00:30:10,420 Es klingt wie genug Liste. 613 00:30:10,420 --> 00:30:13,870 Lasst uns einfach Typ LS geben, und dass listet die Dateien oder Ordner in meinem 614 00:30:13,870 --> 00:30:15,000 aktuellen Ordner. 615 00:30:15,000 --> 00:30:17,530 >> mkdir, können Sie wahrscheinlich erraten. 616 00:30:17,530 --> 00:30:18,440 Als Verzeichnis. 617 00:30:18,440 --> 00:30:22,010 So müssen Sie nicht bis zu einem gewissen Datei-Menü und wählen Neuer Ordner in diesem Umfeld. 618 00:30:22,010 --> 00:30:27,410 Vielmehr geben Sie den Befehl mkdir Raum und dann den Namen des Ordners 619 00:30:27,410 --> 00:30:29,850 dass Sie erstellen möchten, und es wird möglich. 620 00:30:29,850 --> 00:30:32,380 >> rm, können Sie wahrscheinlich erraten. 621 00:30:32,380 --> 00:30:33,480 Entfernen oder zu löschen. 622 00:30:33,480 --> 00:30:36,740 Also, wenn Sie eine Datei löschen möchten, müssen Sie sehen in dem Problem-Set, wie Sie 623 00:30:36,740 --> 00:30:37,240 dies tun können. 624 00:30:37,240 --> 00:30:39,510 Und rmdir, entfernen Verzeichnis. 625 00:30:39,510 --> 00:30:42,320 >> Also, noch einmal, ich werde dazu neigen, durch einige fliegen dieser Details, ein, weil 626 00:30:42,320 --> 00:30:46,010 sie sind nicht alle so viel Spaß zu verbringen Zeit auf, aber zwei werden wir Ihnen in 627 00:30:46,010 --> 00:30:48,720 viel näher in einem der Natürlich setzt das Problem, vor allem 628 00:30:48,720 --> 00:30:52,370 die Standard-Ausgaben, einem der Schritte die Sie benötigen, um so geben 629 00:30:52,370 --> 00:30:54,830 dass Sie mehr und mehr Bequeme mit diesen Dingen. 630 00:30:54,830 --> 00:30:57,430 >> Aber jetzt lassen Sie mich necken neben eine andere Sache. 631 00:30:57,430 --> 00:31:02,580 Wenn wir getippt hallo machen vor einem Augenblick, sahen wir eine kryptische Sequenz von Befehlen. 632 00:31:02,580 --> 00:31:04,805 Wir sahen wieder machen hallo. 633 00:31:04,805 --> 00:31:07,640 634 00:31:07,640 --> 00:31:08,520 OK, lasst uns dies tun. 635 00:31:08,520 --> 00:31:11,840 Ich war im Begriff, einen Fehler zu machen, aber [Unverständlich] nun zugeben, ich war dabei, 636 00:31:11,840 --> 00:31:14,400 und tun es bewusst. 637 00:31:14,400 --> 00:31:15,810 >> Was habe ich falsch gerade jetzt? 638 00:31:15,810 --> 00:31:18,680 639 00:31:18,680 --> 00:31:21,060 Ja, so bin ich nicht in der Dropbox Verzeichnis, weil ich vor einem Augenblick 640 00:31:21,060 --> 00:31:22,720 typisierte CD und einfach Enter drücken. 641 00:31:22,720 --> 00:31:25,480 Das erkennen Sie mich zurück, wo ich begann, was nicht, wo meine Datei 642 00:31:25,480 --> 00:31:31,720 ist, so dass ich wirklich brauchen, um CD Dropbox tun geben, und jetzt kann ich rm hallo tun 643 00:31:31,720 --> 00:31:34,060 geben, entfernen reguläre Datei hallo. 644 00:31:34,060 --> 00:31:35,200 Ich weiß nicht, warum es so kryptisch ist. 645 00:31:35,200 --> 00:31:37,600 Das bedeutet nur, sind Sie sicher, Sie wollen, um Hallo zu löschen? 646 00:31:37,600 --> 00:31:41,510 Sie können y für ja geben, geben, und jetzt ist es weg. 647 00:31:41,510 --> 00:31:46,010 >> Und wenn ich nun machen hallo wieder geben, ist es werde mein Objekt-Code neu zu erstellen, 648 00:31:46,010 --> 00:31:47,460 neu diese Nullen und Einsen. 649 00:31:47,460 --> 00:31:51,070 Aber was ist der Deal mit Diese sehr langen Befehl? 650 00:31:51,070 --> 00:31:53,960 Nun, wir werden diese auseinander zu necken es dauerte nicht lange, sondern machen - 651 00:31:53,960 --> 00:31:55,500 Ich erzählte ein bisschen von einem weißen Lüge vor - 652 00:31:55,500 --> 00:31:56,880 ist kein Compiler. 653 00:31:56,880 --> 00:32:00,350 Machen ist ein Programm, dass automatisch Zahlen heraus, wie man einen Lauf 654 00:32:00,350 --> 00:32:02,060 Compiler für Sie. 655 00:32:02,060 --> 00:32:07,490 >> So der Befehl, dass man wirklich sein sollte läuft um hello.c konvertieren 656 00:32:07,490 --> 00:32:11,240 in Hallo sieht tatsächlich ein wenig mehr davon. 657 00:32:11,240 --> 00:32:15,900 Und Gott bewahre, wir haben tatsächlich erinnern, jemals geben diese ganze 658 00:32:15,900 --> 00:32:17,280 Folge von Befehlen aus. 659 00:32:17,280 --> 00:32:21,360 Der Zweck machen im Leben ist, daran erinnern, dass Grad der Komplexität für 660 00:32:21,360 --> 00:32:24,470 uns und zu automatisieren, was sonst sehr mühsam Schritte. 661 00:32:24,470 --> 00:32:26,040 >> Aber ich kann ungefähre dass. 662 00:32:26,040 --> 00:32:29,960 So pro diesem kleinen Spickzettel hier, ich annähern kann, was das Kommando 663 00:32:29,960 --> 00:32:33,960 tun, indem Sie einfach Klang, das ist der Name des Compilers werden wir in 664 00:32:33,960 --> 00:32:35,170 Verwendung dieses Semester. 665 00:32:35,170 --> 00:32:38,500 Wenn jemand von euch schon einmal getan iOS Entwicklung für das iPhone oder iPad, 666 00:32:38,500 --> 00:32:42,930 Schall ist das Programm, das Sie verwendet haben innerhalb Xcode, um Ihren apps. 667 00:32:42,930 --> 00:32:46,360 Schall, obwohl, ist nur ein weiteres Programm dessen Namen wir können an der Eingabeaufforderung eingeben 668 00:32:46,360 --> 00:32:49,210 fordert, und durch die Einführung dieses jetzt, Ich kann etwas, das eine Einführung ist 669 00:32:49,210 --> 00:32:52,410 wenig repräsentativ von Befehlen zu kommen. 670 00:32:52,410 --> 00:32:53,910 Also lassen Sie mich dies manuell tun. 671 00:32:53,910 --> 00:32:59,240 >> So rm hallo, und jetzt feststellen, im Falle Ich, so wie ein Gesundheitscheck - 672 00:32:59,240 --> 00:33:03,180 . / Hallo, was denkst du ich sollte sehen, ob ich das tun? 673 00:33:03,180 --> 00:33:04,060 Irgendeine Art von Fehler. 674 00:33:04,060 --> 00:33:05,110 Keine solche Datei-Verzeichnis. 675 00:33:05,110 --> 00:33:06,740 Damit man ist eigentlich ziemlich direkt. 676 00:33:06,740 --> 00:33:08,110 >> So, jetzt lassen Sie mich klar auf den Bildschirm. 677 00:33:08,110 --> 00:33:11,370 Control S nur löscht den Bildschirm einige Ablenkungen zu entfernen. 678 00:33:11,370 --> 00:33:17,160 Und jetzt bin ich auf manuell gehen Typ Klang-o hallo hello.c. 679 00:33:17,160 --> 00:33:18,890 Was also ist das jetzt tun? 680 00:33:18,890 --> 00:33:23,820 Genau die gleiche Sache, die hat für uns, aber ich habe wegwerfen einige 681 00:33:23,820 --> 00:33:25,430 die überflüssigen Worte. 682 00:33:25,430 --> 00:33:28,570 >> Schall ist das Programm, um los ist nehmen. c-Datei als Eingabe und produzieren 683 00:33:28,570 --> 00:33:30,110 Nullen und Einsen als Ausgabe. 684 00:33:30,110 --> 00:33:35,120 Aber-o fortan nennen ein Schalter oder ein Flag. 685 00:33:35,120 --> 00:33:39,080 Dies ist nur Techie-Jargon zu sagen das ist ein Wort, das Sie bei einer Eingabeaufforderung eingeben 686 00:33:39,080 --> 00:33:42,590 dass irgendwie beeinflusst das Verhalten des Programms die Sie ausführen. 687 00:33:42,590 --> 00:33:47,180 So hat jemand möchte zu erraten was-o vermittelt? 688 00:33:47,180 --> 00:33:47,840 >> Output. 689 00:33:47,840 --> 00:33:52,670 Es ist einfach nur jemanden entschieden-o bedeutet Ausgang eine Datei namens hallo und nehmen so 690 00:33:52,670 --> 00:33:56,440 Eingang unabhängig das letzte Wort über die Prompt ist, hello.c, so dass, wenn ich getroffen 691 00:33:56,440 --> 00:33:58,930 Geben Sie jetzt scheint nichts zu passieren. 692 00:33:58,930 --> 00:34:02,010 Und seltsam genug, in dieser Welt der Programmierung, wenn nichts passiert, 693 00:34:02,010 --> 00:34:03,980 das ist wahrscheinlich eine gute Sache denn es gibt keine Fehler 694 00:34:03,980 --> 00:34:05,350 Meldung auf dem Bildschirm. 695 00:34:05,350 --> 00:34:07,190 Hallo, Enter. 696 00:34:07,190 --> 00:34:08,670 Mein Programm hat nun laufen. 697 00:34:08,670 --> 00:34:14,517 >> Aber ich kann dumme kleine Dinge wie diese. Klang-o, hihihi, hello.c, 698 00:34:14,517 --> 00:34:18,590 geben, und jetzt habe ich eine identische Programm namens hihihi. 699 00:34:18,590 --> 00:34:20,739 Es verhält sich das gleiche, aber der Name ist anders. 700 00:34:20,739 --> 00:34:23,360 >> Also das ist nur zu sagen, dass, wenn Sie das Verhalten eines beeinflussen 701 00:34:23,360 --> 00:34:25,909 Programm, wir zunehmend gehen sehen die Dinge genannt 702 00:34:25,909 --> 00:34:27,739 Befehlszeilenargumente. 703 00:34:27,739 --> 00:34:28,639 Dies ist eine Zeile. 704 00:34:28,639 --> 00:34:29,580 Du bist der Eingabe von Befehlen. 705 00:34:29,580 --> 00:34:30,969 Ergo, Befehlszeile. 706 00:34:30,969 --> 00:34:35,690 Und Befehlszeilenargumente sind nur Wörter oder kleine Stücke von Syntax, 707 00:34:35,690 --> 00:34:40,840 irgendwie Einfluss auf das Verhalten der Programme, die wir laufen. 708 00:34:40,840 --> 00:34:44,639 >> Na gut, das ist vielleicht der am meisten langweilig Programm können wir schreiben und zu sehen. 709 00:34:44,639 --> 00:34:46,670 Lassen Sie uns jetzt etwas tun mehr interessant. 710 00:34:46,670 --> 00:34:49,420 Lassen Sie mich gehen Sie vor und erstellen Sie eine neue Datei. 711 00:34:49,420 --> 00:34:53,139 Ich werde weitermachen und speichern Sie diese in John Harvard Home-Verzeichnis wie 712 00:34:53,139 --> 00:34:58,670 nennen wir es custom.c zu sein ein wenig benutzerdefiniertes Programm. 713 00:34:58,670 --> 00:35:01,920 Ich werde zum Vergrößern auf meine oben die Laschen hier und starten Sie erneut. 714 00:35:01,920 --> 00:35:03,730 >> Fügen Standard stdio.h. 715 00:35:03,730 --> 00:35:04,990 Mehr dazu in einem Moment. 716 00:35:04,990 --> 00:35:08,240 int main (void), mehr dass in einem Moment. 717 00:35:08,240 --> 00:35:09,490 printf ("Hallo, David"). 718 00:35:09,490 --> 00:35:12,810 719 00:35:12,810 --> 00:35:14,560 Viel interessanter, nicht wahr? 720 00:35:14,560 --> 00:35:20,690 >> So jetzt, wenn - nicht wegen meines Namens, nur weil es anders - 721 00:35:20,690 --> 00:35:24,950 machen Sie kundenspezifische geben. 722 00:35:24,950 --> 00:35:26,780 Individuelle, hallo, David. 723 00:35:26,780 --> 00:35:28,020 Aber auch dass ist auch eine Notlüge. 724 00:35:28,020 --> 00:35:30,850 Dieses Programm könnte genauso gut genannt werden david.c, weil es nicht Brauch 725 00:35:30,850 --> 00:35:31,880 Verhalten überhaupt. 726 00:35:31,880 --> 00:35:35,080 Wirklich, ich will ein Programm, das fragt der Benutzer für ihren Namen. 727 00:35:35,080 --> 00:35:36,320 >> Also, wie mache ich das? 728 00:35:36,320 --> 00:35:38,520 Nun, lassen Sie mich nach oben hier. 729 00:35:38,520 --> 00:35:42,960 Und bevor ich eine Aussage in Scratch, bevor ich printf, 730 00:35:42,960 --> 00:35:47,600 anders als eine Funktion bekannt, lassen Sie mich zuerst fragen den Benutzer nach bestimmten Eingängen. 731 00:35:47,600 --> 00:35:49,690 >> So, dies zu tun, muss ich tun ein paar Dinge. 732 00:35:49,690 --> 00:35:53,360 Einer, ich brauche einen Ort zum Speichern des Benutzers benennen, nachdem ich ihn fragte, habe oder 733 00:35:53,360 --> 00:35:54,510 sie dafür. 734 00:35:54,510 --> 00:36:00,120 Was Konstrukt muss ich wahrscheinlich verwenden einen Wert wie das speichern? 735 00:36:00,120 --> 00:36:00,910 Eine Variable. 736 00:36:00,910 --> 00:36:05,130 >> Also im Gegensatz zu Scratch, wo man gerade mal ein nettes Puzzle-Stück, hier müssen wir 737 00:36:05,130 --> 00:36:07,620 verwenden, offensichtlich, Worte uns ausdrücken. 738 00:36:07,620 --> 00:36:11,510 Und von nun an, wenn Sie wollen ein Wort oder eine Phrase, in der Programmierung, 739 00:36:11,510 --> 00:36:13,090 wir gehen zu nennen, dass ein String. 740 00:36:13,090 --> 00:36:14,990 So ein String ist ein Wort oder eine Phrase. 741 00:36:14,990 --> 00:36:18,170 Es ist eine Folge von null oder mehr Charaktere, mehr formal. 742 00:36:18,170 --> 00:36:22,520 >> Und wenn Sie wollen, wie eine Variable vorhanden sind, muss man sagen, mir eins. 743 00:36:22,520 --> 00:36:27,490 Und der Weg, auf dem Sie das tun, ist es, sagen string s Semikolon, wo s kann 744 00:36:27,490 --> 00:36:28,740 alles, was Sie wollen. 745 00:36:28,740 --> 00:36:30,510 In der Tat ist s ein wenig berauschend. 746 00:36:30,510 --> 00:36:33,250 Lassen Sie mich weiter und weiter gehen klar es nennen Namen. 747 00:36:33,250 --> 00:36:36,570 Gib mir einen String aufgerufen Namen. 748 00:36:36,570 --> 00:36:40,180 >> Aber jetzt, was ist die Person, die standardmäßig der Name? 749 00:36:40,180 --> 00:36:42,930 Nun, wenn der Mensch nicht alles geben in, natürlich, es geht 750 00:36:42,930 --> 00:36:44,310 bis kein Wert in Name sein. 751 00:36:44,310 --> 00:36:48,120 Und es stellt sich heraus, in C, wenn Sie nicht geben eine Variable ein Wert, ist es zu gehen 752 00:36:48,120 --> 00:36:49,180 haben eine Garbage Wert. 753 00:36:49,180 --> 00:36:51,650 Es könnte einige zufällige Nullen und diejenigen, so dass Sie nur gehen, um zu sehen 754 00:36:51,650 --> 00:36:54,570 Müll, wirklich, auf dem Bildschirm Wenn Sie versuchen, um es anzuzeigen. 755 00:36:54,570 --> 00:36:59,800 >> Aber ich kann sagen, dass durch die zu beheben, tatsächlich, Speicher im Inneren des Namens der 756 00:36:59,800 --> 00:37:01,400 nach Wert. 757 00:37:01,400 --> 00:37:09,240 Die Art und Weise das Speichern von Werten in Variablen wenn Sie einen variablen Namen auf die 758 00:37:09,240 --> 00:37:13,370 links, muss man irgendwie was Sie setzen wollen sie auf der rechten Seite zu speichern, und 759 00:37:13,370 --> 00:37:17,650 Die Syntax dafür ist los wie folgt sein. 760 00:37:17,650 --> 00:37:22,120 >> Wir haben das nicht gesehen, aber nehmen auf den Glauben für einen Moment, dass es 761 00:37:22,120 --> 00:37:26,270 existiert eine weitere Erklärung in der Welt dass ich werde wieder anrufen Funktion 762 00:37:26,270 --> 00:37:28,310 und diese Funktion ist genannt bekommen Zeichenfolge. 763 00:37:28,310 --> 00:37:29,670 Und das tut sie buchstäblich, dass. 764 00:37:29,670 --> 00:37:34,680 Irgendwie bekommt eine Folge von Zeichen aus dem menschlichen und dann 765 00:37:34,680 --> 00:37:36,380 tut etwas mit ihm. 766 00:37:36,380 --> 00:37:38,410 >> Und dies aussehen kryptische Syntax. 767 00:37:38,410 --> 00:37:40,880 Normalerweise, wenn Sie mit Gleichheitszeichen - Sie sind in der Welt der, sagen wir, 768 00:37:40,880 --> 00:37:43,740 Algebra, und du bist tatsächlich sagen x gleich 1 ist. 769 00:37:43,740 --> 00:37:46,570 Hier werden wir nicht sagen, dass Name entspricht den String. 770 00:37:46,570 --> 00:37:51,270 Wir sagen store in Namen, was auf der rechten Seite 771 00:37:51,270 --> 00:37:52,400 von, dass Gleichheitszeichen. 772 00:37:52,400 --> 00:37:55,030 Das Gleichheitszeichen steht der Zuweisungsoperator. 773 00:37:55,030 --> 00:37:58,240 Es ist die Syntax, setzen, was auf, sagt die rechte Seite innen, was 774 00:37:58,240 --> 00:37:59,090 auf der linken Seite. 775 00:37:59,090 --> 00:38:03,040 So bekommen String ist ein neues Stück Funktionen, die nicht nur 776 00:38:03,040 --> 00:38:03,670 etwas - 777 00:38:03,670 --> 00:38:05,000 fragt den Benutzer nach einer Zeichenkette - 778 00:38:05,000 --> 00:38:08,500 es gibt auch sie, so zu sprechen. 779 00:38:08,500 --> 00:38:10,690 >> Also mal sehen, was los ist hier geschehen. 780 00:38:10,690 --> 00:38:14,300 Ich werde jetzt nach vorne gehen und Verkleinern und ich werde ein paar bekommen 781 00:38:14,300 --> 00:38:15,780 Fehler an meinem prompt. 782 00:38:15,780 --> 00:38:18,750 Ich werde geben benutzerdefinierte machen, geben. 783 00:38:18,750 --> 00:38:19,230 Wow. 784 00:38:19,230 --> 00:38:20,500 Eine ganze Reihe von Fehlern. 785 00:38:20,500 --> 00:38:23,120 >> Alles klar, so ist dies Art von überwältigend, sicherlich auf den ersten, aber 786 00:38:23,120 --> 00:38:27,220 es stellt sich heraus, alle diese sehr zugegebenermaßen kryptischen Fehlermeldungen sind 787 00:38:27,220 --> 00:38:30,700 Bezugnahme auf einige Muster, die beginnen wir im Laufe der Zeit zu sehen. 788 00:38:30,700 --> 00:38:32,600 So werde ich dieses abzupfen, weil es zuerst. 789 00:38:32,600 --> 00:38:35,700 Die Verwendung von nicht deklarierter Bezeichner String. 790 00:38:35,700 --> 00:38:39,400 >> Das bedeutet nur, dass gedit oder Schall, in diesem Fall nicht weiß, 791 00:38:39,400 --> 00:38:40,780 was ich damit meine String. 792 00:38:40,780 --> 00:38:43,880 Und das ist, weil in C, die Programmierung Sprache, es gibt tatsächlich 793 00:38:43,880 --> 00:38:47,750 ist keine Variable vom Typ String. 794 00:38:47,750 --> 00:38:49,810 C nicht wissen, dass die Strings existieren. 795 00:38:49,810 --> 00:38:52,260 >> Aber wir, CS50 Personal, zu tun. 796 00:38:52,260 --> 00:38:57,080 Und so im Vorfeld der Klasse, wir erstellt eine Datei namens CS50.h. 797 00:38:57,080 --> 00:39:00,060 Und in dieser Datei - und mehr über die Syntax zu kommen - 798 00:39:00,060 --> 00:39:03,730 innerhalb dieser Datei ist eine Definition von dem, was ich gerade definiert 799 00:39:03,730 --> 00:39:05,340 verbal als String. 800 00:39:05,340 --> 00:39:09,100 So einfach durch den Abschluss dieses eine Zeile der Code in meinem Programm, ich bin jetzt 801 00:39:09,100 --> 00:39:14,620 Lehre und gedit machen und Schall alles, was wiederum ein String ist. 802 00:39:14,620 --> 00:39:15,475 >> Ich weiß nicht, wie bisher. 803 00:39:15,475 --> 00:39:17,110 In ein paar Wochen werden wir schälen zurück, dass Schicht. 804 00:39:17,110 --> 00:39:20,340 Aber jetzt wissen, dass dies lehrt der Compiler, was ein 805 00:39:20,340 --> 00:39:22,020 String tatsächlich ist. 806 00:39:22,020 --> 00:39:24,230 >> So, jetzt lassen Sie mich klar meine Terminal hier unten. 807 00:39:24,230 --> 00:39:28,530 Lassen Sie mich wieder zum Laufen zu bringen individuelle, und ich gelöst all diese Probleme. 808 00:39:28,530 --> 00:39:30,210 So auch dies wird werden ein immer wiederkehrendes Thema. 809 00:39:30,210 --> 00:39:34,190 Ich schrieb nur einen 9-Linien-Programm, und Ich hatte noch 18 Linien von Fehlern. 810 00:39:34,190 --> 00:39:35,650 Das ist irgendwie einschüchternd. 811 00:39:35,650 --> 00:39:39,260 Aber klar, dass sie oft solche Kaskade dass ein kleiner Fehler auslöst 812 00:39:39,260 --> 00:39:43,070 die Verwirrung für den Compiler und es sieht viel schlimmer aus als es ist. 813 00:39:43,070 --> 00:39:47,460 >> So, jetzt ein scharfsinniger Beobachter wissen dass ich immer einen String aus der 814 00:39:47,460 --> 00:39:51,460 Benutzer, aber ich bin nicht wirklich zu tun, was mit ihm? 815 00:39:51,460 --> 00:39:53,570 Ich bin eigentlich nicht tun etwas mit ihm. 816 00:39:53,570 --> 00:40:01,240 Also, wenn ich tatsächlich zum Ausführen von benutzerdefinierten wieder es wird einfach dasitzen. 817 00:40:01,240 --> 00:40:03,380 Was ist da los? 818 00:40:03,380 --> 00:40:07,990 Mein Programm scheint auf geklebt werden welche Linie, würden Sie sagen? 819 00:40:07,990 --> 00:40:09,860 >> So ist es tatsächlich auf Linie 7 stecken. 820 00:40:09,860 --> 00:40:13,600 Und wir haben das nicht gesehen, aber auf Linie 7, gibt es wieder das 821 00:40:13,600 --> 00:40:14,650 Anweisung, den String. 822 00:40:14,650 --> 00:40:15,930 Und es tut, was es sagt. 823 00:40:15,930 --> 00:40:18,480 Es wartet nun auf die menschliche um die Zeichenfolge zu nehmen. 824 00:40:18,480 --> 00:40:22,230 Das ist völlig intuitiv zu mir, der Mensch, denn ich habe nicht gesagt worden, 825 00:40:22,230 --> 00:40:23,040 was zu tun ist. 826 00:40:23,040 --> 00:40:27,320 >> Aber lassen Sie mich gehen auf den Glauben und lass es mich tun, als Rob sein. 827 00:40:27,320 --> 00:40:28,500 Enter. 828 00:40:28,500 --> 00:40:30,930 Das ist nicht das Programm, das ich gedacht. 829 00:40:30,930 --> 00:40:32,350 So haben wir unseren ersten Blog. 830 00:40:32,350 --> 00:40:34,390 >> Aber lassen Sie uns versuchen, durch die Vernunft warum dies der Fall ist. 831 00:40:34,390 --> 00:40:36,940 Zunächst lassen Sie mich dieses Problem beheben erste Problem. 832 00:40:36,940 --> 00:40:44,690 Lassen Sie mich hinzufügen hier eine Linie, die sagt printf, was ist Ihr Name? 833 00:40:44,690 --> 00:40:47,700 Lass uns einfach tun close Zitat schließen Klammer. 834 00:40:47,700 --> 00:40:51,350 >> Nun lassen Sie mich wieder das Programm auszuführen. 835 00:40:51,350 --> 00:40:51,760 Problem. 836 00:40:51,760 --> 00:40:54,690 Ich bin nicht zu sehen, dass. 837 00:40:54,690 --> 00:40:54,930 >> Richtig. 838 00:40:54,930 --> 00:40:55,990 Ich wusste nicht neu kompilieren. 839 00:40:55,990 --> 00:40:59,800 Also in einer Sprache wie C, da Sie den Quellcode ändern bedeutet nicht, 840 00:40:59,800 --> 00:41:03,170 dass Sie Ihre Objekt-Code geändert neue Objekt-Code zu generieren, 841 00:41:03,170 --> 00:41:04,330 neue Nullen und Einsen. 842 00:41:04,330 --> 00:41:05,590 Sie müssen neu kompilieren. 843 00:41:05,590 --> 00:41:10,300 Wenn ich jetzt wieder laufen individuelle, geben, ah, ein wenig klarer. 844 00:41:10,300 --> 00:41:11,890 Mein Name ist Rob. 845 00:41:11,890 --> 00:41:12,760 Noch Buggy. 846 00:41:12,760 --> 00:41:14,170 >> Und ich würde behaupten, es gibt ein paar Bugs jetzt. 847 00:41:14,170 --> 00:41:15,450 Das sieht einfach nur scheußlich, ehrlich gesagt. 848 00:41:15,450 --> 00:41:18,980 Wie, minimal, sollte ich einen Raum gibt, oder bewegen Sie den 849 00:41:18,980 --> 00:41:20,330 Cursor auf die neue Zeile. 850 00:41:20,330 --> 00:41:21,370 >> Und tatsächlich, neue Zeile. 851 00:41:21,370 --> 00:41:24,660 Das ist eine Art Schlüsselsatz ist hier, dass haben wir gesehen, aber nicht definiert. 852 00:41:24,660 --> 00:41:28,560 Die Art und Weise, in der Sie einen Text auf die nächste Zeile zu bewegen, 853 00:41:28,560 --> 00:41:29,480 Sie tun dies nicht. 854 00:41:29,480 --> 00:41:31,070 Dies wird an den Computer verwirrend. 855 00:41:31,070 --> 00:41:33,830 Das sieht aus wie zwei getrennte Leitungen Code, von denen keines 856 00:41:33,830 --> 00:41:35,010 ist vollkommen richtig. 857 00:41:35,010 --> 00:41:39,380 Sie haben stattdessen zu mehr expliziten und sagen, gib mir eine neue Linie, die wir 858 00:41:39,380 --> 00:41:41,810 stellen in c mit Backslash n. 859 00:41:41,810 --> 00:41:43,230 >> So gibt es ein paar solcher Zeichen. 860 00:41:43,230 --> 00:41:45,080 Backslash n wird fix, dass die Ästhetik. 861 00:41:45,080 --> 00:41:49,640 862 00:41:49,640 --> 00:41:50,870 Lassen Sie mich mein Programm kompilieren. 863 00:41:50,870 --> 00:41:52,300 Lassen Sie mich erneut ausführen mein Programm. 864 00:41:52,300 --> 00:41:53,520 >> Das sieht besser aus. 865 00:41:53,520 --> 00:41:56,960 Es ist immer noch ziemlich primitiv, aber es ist auch noch fehlerhaft. 866 00:41:56,960 --> 00:41:58,090 So gibt es eine - 867 00:41:58,090 --> 00:42:01,680 auch wenn Sie noch nie programmiert haben, Sie kann wohl noch eine Vermutung 868 00:42:01,680 --> 00:42:04,960 auf, warum dieses Programm noch fehlerhaft. 869 00:42:04,960 --> 00:42:08,540 Was brauche ich, um das zu tun Ich habe noch nicht fertig? 870 00:42:08,540 --> 00:42:10,450 >> Also muss ich eigentlich tun etwas mit Namen. 871 00:42:10,450 --> 00:42:14,190 Genau wie in dem Nichts, könnte man eigentlich eine Variable zuweisen wie n oder 872 00:42:14,190 --> 00:42:16,150 begegnen, wie wir zuletzt tat Woche - ein Wert. 873 00:42:16,150 --> 00:42:18,930 Aber wenn Sie nichts mit es ist nichts passiert. 874 00:42:18,930 --> 00:42:20,210 >> Alles klar, also lassen Sie beheben. 875 00:42:20,210 --> 00:42:23,670 Lassen Sie mich meine Variable geben dort und lass mich gehen hier unten. 876 00:42:23,670 --> 00:42:29,120 Lassen Sie mich neu kompilieren, lass mich re-run, Rob. 877 00:42:29,120 --> 00:42:30,540 Jetzt bin ich einfach nur ein Idiot, nicht wahr? 878 00:42:30,540 --> 00:42:33,280 >> Also das ist nicht wirklich immer mich nicht weiter. 879 00:42:33,280 --> 00:42:35,850 Aber das war eine ganz natürliche Instinkt, würde ich argumentieren, nicht wahr? 880 00:42:35,850 --> 00:42:39,340 Wenn die Variable heißt name, und ich wollen sie, dorthin zu gehen, warum ich nicht einfach 881 00:42:39,340 --> 00:42:40,200 Geben Sie es dort? 882 00:42:40,200 --> 00:42:42,210 >> Nun, natürlich haben wir Bislang unterscheiden 883 00:42:42,210 --> 00:42:44,070 zwischen dem, was ist ein String? 884 00:42:44,070 --> 00:42:47,060 Beachten Sie, dass Zitat unquote hier, hallo Name? 885 00:42:47,060 --> 00:42:48,960 Diese tatsächlich selbst ist eine Zeichenfolge. 886 00:42:48,960 --> 00:42:49,820 Es ist hart codiert. 887 00:42:49,820 --> 00:42:50,690 Es ist nicht von der menschlichen. 888 00:42:50,690 --> 00:42:54,020 Es ist von mir, der ursprüngliche Programmierer, aber es ist immer noch ein String. 889 00:42:54,020 --> 00:42:58,300 >> Also, wenn Sie buchstäblich schreiben N-A-M-E im Inneren einer Zeichenkette, was ist zu gehen 890 00:42:58,300 --> 00:42:59,120 gedruckt bekommen? 891 00:42:59,120 --> 00:43:03,660 Nun, N-A-M-E. Wir brauchen stattdessen printf sagen, nicht gedruckt 892 00:43:03,660 --> 00:43:04,870 aus buchstäblich nennen. 893 00:43:04,870 --> 00:43:06,680 Drucken Sie sich den Wert des Namens. 894 00:43:06,680 --> 00:43:08,410 >> Und um das zu tun, tun wir das folgende. 895 00:43:08,410 --> 00:43:09,800 Und dies ist nur eine menschliche Konvention. 896 00:43:09,800 --> 00:43:14,990 Wir sagen, anstatt% s, und dass steht für String. 897 00:43:14,990 --> 00:43:19,810 Und dann am Ende meiner engen Kursen, Ich werde ein Komma setzen und 898 00:43:19,810 --> 00:43:23,790 passieren ein zweites Argument in dieser Aussage. 899 00:43:23,790 --> 00:43:25,970 Ich werde dort Namen geben. 900 00:43:25,970 --> 00:43:27,960 >> So, jetzt bemerken wir eine leicht neue Syntax. 901 00:43:27,960 --> 00:43:32,320 Wir haben noch zwei Klammern und nun lassen Sie mich sagen, dass das Zeug 902 00:43:32,320 --> 00:43:36,830 Klammern stellt Argumente in einer Funktion - 903 00:43:36,830 --> 00:43:39,730 Eingänge, die irgendwie gehen , um sein Verhalten zu beeinflussen. 904 00:43:39,730 --> 00:43:43,010 So nach dieser Logik, wie viele Argumente bedeutet printf scheinen 905 00:43:43,010 --> 00:43:45,450 nehmen in diesem Moment? 906 00:43:45,450 --> 00:43:48,370 >> So scheint es zu nehmen zwei, und das ist in der Tat impliziert 907 00:43:48,370 --> 00:43:49,570 nach dem Komma hier. 908 00:43:49,570 --> 00:43:51,640 Also das ist ein Argument in Anführungszeichen. 909 00:43:51,640 --> 00:43:54,540 Auch wenn es ein Komma drin, alles ist in Anführungszeichen, was bedeutet, 910 00:43:54,540 --> 00:43:56,230 es ist eine lange Zeichenkette. 911 00:43:56,230 --> 00:43:58,280 Comma, variable Namen. 912 00:43:58,280 --> 00:44:00,680 >> So, jetzt lassen Sie mich zu verkleinern. 913 00:44:00,680 --> 00:44:02,240 Lassen Sie mich erneut ausführen. 914 00:44:02,240 --> 00:44:03,490 Rob. 915 00:44:03,490 --> 00:44:06,520 Verdammt, was habe ich falsch gemacht? 916 00:44:06,520 --> 00:44:07,920 >> Alles klar, so müssen Sie neu kompilieren. 917 00:44:07,920 --> 00:44:11,030 Also noch einmal, um eine einfache Fehler zu machen früh wieder und wieder. 918 00:44:11,030 --> 00:44:15,280 So, jetzt wieder laufen individuelle, Rob, geben, und voila. 919 00:44:15,280 --> 00:44:17,110 Wir haben jetzt ein benutzerdefiniertes Programm. 920 00:44:17,110 --> 00:44:21,660 >> So habe ich nun ein Programm, das mit ein paar Eigenschaften 921 00:44:21,660 --> 00:44:22,520 das sind erwähnenswert. 922 00:44:22,520 --> 00:44:27,850 One, ich bin mit CS50.h, sonst bekannt als der CS50-Bibliothek. 923 00:44:27,850 --> 00:44:33,050 Und innerhalb der CS50-Bibliothek sind Funktionen, die andere Leute geschrieben - 924 00:44:33,050 --> 00:44:33,980 nämlich das Personal - 925 00:44:33,980 --> 00:44:36,620 für Sie zu nutzen, und erhalten Saite ist einer von ihnen. 926 00:44:36,620 --> 00:44:41,310 >> Innerhalb der Linie 2 ist stdio.h, und warum ist das da? 927 00:44:41,310 --> 00:44:42,070 Nehmen Sie eine Vermutung. 928 00:44:42,070 --> 00:44:46,200 Was existiert innerhalb der Standard IO Elternteil? 929 00:44:46,200 --> 00:44:46,940 Printf. 930 00:44:46,940 --> 00:44:49,600 So printf, siehst du nicht, es überall sonst auf dem Bildschirm. 931 00:44:49,600 --> 00:44:51,870 Es muss mit der kommen Computer irgendwie. 932 00:44:51,870 --> 00:44:54,870 Wo kommt es her? 933 00:44:54,870 --> 00:44:57,660 Es ist in der - es erklärt, sozusagen von innen 934 00:44:57,660 --> 00:44:59,890 eine Datei namens stdio.h. 935 00:44:59,890 --> 00:45:02,670 >> Nun, für diese Dinge, wir kommen wieder schließlich, weil es ist ein bisschen 936 00:45:02,670 --> 00:45:03,930 störend für jetzt. 937 00:45:03,930 --> 00:45:05,490 Dies bezieht sich auf unsere Rückkehr Typ. 938 00:45:05,490 --> 00:45:07,660 Dies bezieht sich auf ein Argument. 939 00:45:07,660 --> 00:45:10,230 Aber für heute, wir konzentrieren nur hier auf diesen Linien. 940 00:45:10,230 --> 00:45:13,280 >> So string name, nur zur Erinnerung, was hat das für mich tun? 941 00:45:13,280 --> 00:45:16,940 942 00:45:16,940 --> 00:45:19,560 So ist es eine Variable deklariert vom Typ String. 943 00:45:19,560 --> 00:45:22,630 Also es soll für Wörter, nicht für Zahlen. 944 00:45:22,630 --> 00:45:25,530 Nur am Rande, wenn ich wollte es um eine Zahl sein, würde ich sagen 945 00:45:25,530 --> 00:45:26,560 etwas wie int. 946 00:45:26,560 --> 00:45:29,740 Wenn ich wollte eine Gleitkomma sein Wert, etwas mit einem Komma, 947 00:45:29,740 --> 00:45:30,600 Ich würde sagen, float. 948 00:45:30,600 --> 00:45:32,640 Aber für heute habe ich gerade gesagt String. 949 00:45:32,640 --> 00:45:35,940 >> Und ich habe diese Variable gegeben ein Name, der Name, aber ich konnte 950 00:45:35,940 --> 00:45:37,240 nannte sie haben nichts. 951 00:45:37,240 --> 00:45:39,340 In der Tat, ursprünglich, rief ich sie S. 952 00:45:39,340 --> 00:45:41,050 >> Das hier ist nur eine andere Aussage. 953 00:45:41,050 --> 00:45:44,170 Wie viele Argumente ist dies Aussage unter? 954 00:45:44,170 --> 00:45:47,890 So ist es nur unter eine, und dass ist einfach ein ästhetisches Detail 955 00:45:47,890 --> 00:45:49,610 Anzeige etwas auf der Bildschirm zu mir. 956 00:45:49,610 --> 00:45:54,750 Was ist dies für die Linie 8 zu tun in juristischer Hinsicht? 957 00:45:54,750 --> 00:45:57,320 >> Es wird ein Wert aus dem Benutzer - nämlich eine Zeichenfolge - 958 00:45:57,320 --> 00:45:58,770 und was macht er damit? 959 00:45:58,770 --> 00:46:02,450 Es ist im Wesentlichen der Übergabe an die Mann auf der linken Seite der 960 00:46:02,450 --> 00:46:07,100 Gleichheitszeichen, so dass in diesem Fall die Namen Variable kann tatsächlich zu speichern. 961 00:46:07,100 --> 00:46:10,020 >> Und dann ist ein weiterer printf Instanz einer Funktion. 962 00:46:10,020 --> 00:46:11,870 Und wir sagen, um eine Funktion aufzurufen. 963 00:46:11,870 --> 00:46:13,870 Um eine Funktion zu verwenden ist um eine Funktion aufzurufen. 964 00:46:13,870 --> 00:46:15,640 Dieses Ding offenbar nimmt zwei Argumente. 965 00:46:15,640 --> 00:46:18,100 Dieser, Komma, diese. 966 00:46:18,100 --> 00:46:20,910 >> Dieser selbst ist nur eine Zeichenfolge das enthält einen Platzhalter. 967 00:46:20,910 --> 00:46:23,860 % S Mittel setzen andere Zeichenfolge hier. 968 00:46:23,860 --> 00:46:27,360 Und so, indem sie Namen nach das Komma, das ist das Einfügen 969 00:46:27,360 --> 00:46:29,420 das Ding für mich. 970 00:46:29,420 --> 00:46:31,300 >> So kann ich noch andere Dinge zu tun. 971 00:46:31,300 --> 00:46:36,820 Lassen Sie mich nun voran gehen und noch ein bisschen ein dumme Programm, aber lassen Sie mich diese löschen, 972 00:46:36,820 --> 00:46:38,880 und lassen Sie mich eine Schleife. 973 00:46:38,880 --> 00:46:41,390 Während wahr. 974 00:46:41,390 --> 00:46:45,210 Das Symbol ist offensichtlich wahr immer geht um wahr zu sein. 975 00:46:45,210 --> 00:46:49,830 Also, welche Art von Schleife ich induzieren durch das Schreiben eine Zeile wie diese? 976 00:46:49,830 --> 00:46:51,070 >> So eine Endlosschleife, nicht wahr? 977 00:46:51,070 --> 00:46:52,090 Gerade während wahr. 978 00:46:52,090 --> 00:46:56,210 Es gibt keine Art, wie ich das Wort ändern kann wahr, etwas anderes zu sein, so ist dies 979 00:46:56,210 --> 00:46:57,310 nur ewig laufen. 980 00:46:57,310 --> 00:46:59,960 Also, wenn Sie jemals hatten eigentlich ein Programm in Ihrem Mac oder PC, scheint 981 00:46:59,960 --> 00:47:02,480 eingesperrt haben, oder es tut etwas, und etwas, und Sie müssen nur 982 00:47:02,480 --> 00:47:05,500 kann nicht die Sache, es sei denn, Sie beenden starten Sie Ihren Computer oder ziehen Sie die 983 00:47:05,500 --> 00:47:08,360 Task-Manager oder dergleichen, hier ist so ein Beispiel. 984 00:47:08,360 --> 00:47:14,340 >> Ich kann sagen: "Ich bin ein Buggy-Programm." Close quote schließen 985 00:47:14,340 --> 00:47:15,780 Klammern, Semikolon. 986 00:47:15,780 --> 00:47:17,010 Also noch einmal, bemerken die Muster. 987 00:47:17,010 --> 00:47:21,440 Auch wenn einige unserer Syntax ist neu, während das Schlüsselwort, das Schlüsselwort wahr, 988 00:47:21,440 --> 00:47:23,590 merke ich, haben die gleiche Art von geschweiften Klammern. 989 00:47:23,590 --> 00:47:25,890 Ich habe ein Semikolon und Klammern. 990 00:47:25,890 --> 00:47:28,000 >> So, jetzt lassen Sie uns fortfahren und kompilieren Sie diese. 991 00:47:28,000 --> 00:47:29,630 Gestalte individuelle, kundenspezifische. 992 00:47:29,630 --> 00:47:32,690 993 00:47:32,690 --> 00:47:36,660 Also an dieser Stelle, die Sie nicht brauchen, um Neustart Ihres Geräts, alles in Ordnung? 994 00:47:36,660 --> 00:47:39,925 So die einfache Lektion ist hier mit zwei Fingern, Steuerung C, 995 00:47:39,925 --> 00:47:41,230 wir beenden das Programm. 996 00:47:41,230 --> 00:47:45,430 Aber man kann genau sehen, warum dieses Ding wiederholte sich wieder und wieder. 997 00:47:45,430 --> 00:47:48,080 >> Ich kann etwas tun, ein wenig komplexer als Teaser. 998 00:47:48,080 --> 00:47:49,600 Ich werde weitermachen und folgendes sagen. 999 00:47:49,600 --> 00:47:55,210 Für int, die eine ganze Zahl ist, ich habe gerade ein generischer Name, den wir für die meisten 1000 00:47:55,210 --> 00:47:59,500 Variablen in der Programmierung, wenn Sie nur das Zählen, gleich 0 ist. 1001 00:47:59,500 --> 00:48:08,640 Lassen Sie mich gehen und sagen, während i ist, sagen wir mal, weniger als 100, i plus plus. 1002 00:48:08,640 --> 00:48:10,240 Wir werden an diese Syntax zurück, aber das bedeutet nur, 1003 00:48:10,240 --> 00:48:12,270 erhöht i wieder und wieder. 1004 00:48:12,270 --> 00:48:14,200 >> Und was will ich hier tun? 1005 00:48:14,200 --> 00:48:21,130 Printf: "Ich kann auf i zu zählen." Dies ist ein fehlerhaftes Programm. 1006 00:48:21,130 --> 00:48:22,450 Was habe ich eigentlich beabsichtigen hier? 1007 00:48:22,450 --> 00:48:25,220 1008 00:48:25,220 --> 00:48:30,940 >> Prozent nicht s, aber Sie würden nicht erraten diese. % D ist eine ganze Dezimalzahl. 1009 00:48:30,940 --> 00:48:32,720 Comma i. 1010 00:48:32,720 --> 00:48:34,340 Lassen Sie mich ein Rollback. 1011 00:48:34,340 --> 00:48:37,170 >> Lassen Sie mich nun mit make kompilieren. 1012 00:48:37,170 --> 00:48:39,280 Lassen Sie mich nun mit benutzerdefinierten erneut. 1013 00:48:39,280 --> 00:48:42,410 Ich kann wirklich verdammt schnell, wenn zählen Ich schreibe ein Programm wie dieses. 1014 00:48:42,410 --> 00:48:45,480 >> Nun wollen wir etwas tun, eine wenig unbeabsichtigt. 1015 00:48:45,480 --> 00:48:51,220 Wie wäre es wir dies tun, während ich größer oder gleich 0 ist. 1016 00:48:51,220 --> 00:48:53,630 Was das wohl zu induzieren? 1017 00:48:53,630 --> 00:49:01,030 So logisch, das ist nicht so klug, denn jetzt, wenn ich dies erneut, erzählen, 1018 00:49:01,030 --> 00:49:05,050 Ich kann jetzt wirklich zählt, wirklich hoch. 1019 00:49:05,050 --> 00:49:08,850 Leider etwa so hoch wie ich kann Zählung 4 Mrd., also das wird 1020 00:49:08,850 --> 00:49:10,140 eine Weile dauern. 1021 00:49:10,140 --> 00:49:13,440 >> Also, warum nicht verlassen wir dies als unsere Cliffhanger verspricht, dass auf 1022 00:49:13,440 --> 00:49:15,650 Mittwoch, werden wir sehen, ob dieses Programm durchgeführt wird. 1023 00:49:15,650 --> 00:49:19,260 Zwei werden wir Ihnen, wie Sie selbst schreib eine Funktion, so dass sehr 1024 00:49:19,260 --> 00:49:22,930 schnell, bis Mittwoch, werden wir, wie wir Übergang von Scratch in C, starten 1025 00:49:22,930 --> 00:49:25,880 Schreiben immer komplexer Programme, die viel zu tun, 1026 00:49:25,880 --> 00:49:27,070 viel mehr als dies. 1027 00:49:27,070 --> 00:49:28,766 Wir werden sehen uns dann. 1028 00:49:28,766 --> 00:49:31,580 >> [Applaus] 1029 00:49:31,580 --> 00:49:34,690 >> Sprecher 1: An der nächsten CS50, Puzzle Day war ein Erfolg. 1030 00:49:34,690 --> 00:49:39,690