1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [VIDEO PLAYBACK] 3 00:00:16,626 --> 00:00:19,410 >> -A Triumph der mathematischen und mechanische Fertigkeit 4 00:00:19,410 --> 00:00:23,270 ist diese große neue automatische Rechner an der Harvard University. 5 00:00:23,270 --> 00:00:27,140 Komplizierte Probleme in der Mathematik gesetzt durch die Maschine in codierter Form 6 00:00:27,140 --> 00:00:31,710 auf Band genau in a lösen winziger Bruchteil der Zeit benötigt, 7 00:00:31,710 --> 00:00:32,819 Menschenberechnung. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Entwickelt, um alle Formen von zu beschleunigen mathematische und wissenschaftliche Forschung, 10 00:00:48,220 --> 00:00:53,840 der riesige mechanische Gehirn wird für Arbeit der United States Navy, bis Kriegsende. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [END PLAYBACK] 13 00:01:06,570 --> 00:01:08,590 >> David J. MALAN: Dies ist CS50. 14 00:01:08,590 --> 00:01:10,590 Die Vergangenheit war ein magischer Ort, aber wenn Sie jemals 15 00:01:10,590 --> 00:01:13,366 fragte sich, was das Gerät in Harvard Science Center, 16 00:01:13,366 --> 00:01:16,150 es ist in der Tat ein Teil des Harvard Mark I, und es ist 17 00:01:16,150 --> 00:01:18,710 auf dem Display gibt jetzt in den letzten vielen Jahren. 18 00:01:18,710 --> 00:01:20,590 Und was werden Sie sehen, in Problemsatz eingebettet 19 00:01:20,590 --> 00:01:24,416 man ist ein Blick hinter die Kulissen an, was das Gerät hat, und tut, 20 00:01:24,416 --> 00:01:27,540 von Professor Harry Lewis, der in ist die Informatik-Abteilung hier. 21 00:01:27,540 --> 00:01:29,440 Also mehr dazu in nur ein bisschen. 22 00:01:29,440 --> 00:01:33,990 >> Heute beginnen wir den Übergang aus der vergangenen Woche, dies zu, 23 00:01:33,990 --> 00:01:37,290 und wir Erwähnung bringen der ein Foto hier 24 00:01:37,290 --> 00:01:38,630 Das ist eigentlich ziemlich berühmt. 25 00:01:38,630 --> 00:01:42,270 Wer weiß, was diese ist hier auf dem Bildschirm? 26 00:01:42,270 --> 00:01:43,880 Zumindest nach den Mythos. 27 00:01:43,880 --> 00:01:44,837 Ja. 28 00:01:44,837 --> 00:01:45,920 Publikum: Der erste Virus. 29 00:01:45,920 --> 00:01:49,570 David J. MALAN: So war es angeblich die tatsächliche erste Fehler in einem Computer. 30 00:01:49,570 --> 00:01:52,490 Jetzt in Wirklichkeit das Wort Fehler, für einen Fehler in einem Programm, 31 00:01:52,490 --> 00:01:55,250 hat bei uns für einige gewesen Zeit in der physischen Welt, 32 00:01:55,250 --> 00:01:58,190 und dies war einer der ersten, dokumentierten Zeiten, in denen jemand tatsächlich 33 00:01:58,190 --> 00:02:02,280 pflückte eine große Nachtfalter aus der Mark II-Computer, legen Sie sie in das Bindemittel, 34 00:02:02,280 --> 00:02:05,006 und dann nahm es als das erste bekannte Fehler 35 00:02:05,006 --> 00:02:06,630 zu haben, tatsächlich physisch gefunden worden. 36 00:02:06,630 --> 00:02:10,104 Also so eingegeben wurde , dass in der heutigen Überlieferung. 37 00:02:10,104 --> 00:02:12,020 Alles, was von den letzten Woche ist online verfügbar. 38 00:02:12,020 --> 00:02:14,840 Insbesondere Ressourcen, die Sie nicht unbedingt bemerken, vor allem 39 00:02:14,840 --> 00:02:15,881 wenn Sie hier kommen in Person. 40 00:02:15,881 --> 00:02:20,230 Damit wird eines der Lehr Burschen jeden Jahr macht eine kanonische Satz von Notizen, 41 00:02:20,230 --> 00:02:22,010 so dass Sie nicht halten müssen Ihren Kopf nach unten und versuchte, 42 00:02:22,010 --> 00:02:24,410 In den meisten etwas zu transkribieren das könnte hier in der Klasse passiert. 43 00:02:24,410 --> 00:02:25,940 So klar, dass diejenigen, sogenannte [? Scribd?] Notizen 44 00:02:25,940 --> 00:02:29,350 sind online, sicher die Rutschen und Source-Code, die wir in der Klasse. 45 00:02:29,350 --> 00:02:31,436 Wir machen Volltext-Transkripte ebenso verfügbar. 46 00:02:31,436 --> 00:02:34,310 Also, wenn Sie vage daran erinnern, einige Begriff, und wollen es schauen ein wenig 47 00:02:34,310 --> 00:02:37,280 leichter, erkennen, dass alle davon ist online durchsuchbar. 48 00:02:37,280 --> 00:02:38,930 Sowie Komplettlösungen als auch. 49 00:02:38,930 --> 00:02:42,710 In der Tat, heute beginnen wir zu sehen eine untere Level-Programmiersprache, 50 00:02:42,710 --> 00:02:45,290 bald die uns bekannt werden, als C, und es ist sehr einfach 51 00:02:45,290 --> 00:02:48,820 um nach wenigen Art verloren gehen Augenblicke Zeit, und dann eine Art Wunder, 52 00:02:48,820 --> 00:02:52,370 wie wir tatsächlich etwas mehr bekommen komplexeres Beispiel von der einfachsten. 53 00:02:52,370 --> 00:02:54,975 Und so erkennen wir werden cherry Abholung im Unterricht irgend 54 00:02:54,975 --> 00:02:57,850 der repräsentativen Beispiele, aber erkennen, dass so viel mehr ist auch 55 00:02:57,850 --> 00:03:01,140 online zur Verfügung, so dass Sie arbeiten können, durch sie in Ihrem eigenen Tempo, 56 00:03:01,140 --> 00:03:02,950 jedoch sind Sie am bequemsten ist. 57 00:03:02,950 --> 00:03:05,200 >> Aber wir aufgehört haben mit Programme, die gerade dieses waren. 58 00:03:05,200 --> 00:03:09,690 Also habe ich Sie auf die grüne Fahne, und was macht dieses Programm? 59 00:03:09,690 --> 00:03:10,710 Sagt, hallo, Welt. 60 00:03:10,710 --> 00:03:13,180 Es macht die Katze sagen hallo in seine kleine Welt 61 00:03:13,180 --> 00:03:15,990 auf der oberen linken Seite, der Benutzeroberfläche Scratch ist. 62 00:03:15,990 --> 00:03:18,810 Aber wir begannen zu präsentieren einige Begriffe in der vergangenen Woche. 63 00:03:18,810 --> 00:03:23,614 Und so, Dinge wie diese riefen wir was? 64 00:03:23,614 --> 00:03:25,280 Was könnte der Oberbegriff für das sein? 65 00:03:25,280 --> 00:03:26,266 Ja. 66 00:03:26,266 --> 00:03:28,210 Ein Verfahren oder eine Aussage. 67 00:03:28,210 --> 00:03:29,280 Sicher, es ist eine Aktion. 68 00:03:29,280 --> 00:03:30,140 Mach das. 69 00:03:30,140 --> 00:03:32,400 Und doch gab es andere Formen zu kratzen, 70 00:03:32,400 --> 00:03:35,360 Neben diesen sogenannten Anweisung, waren sie auch 71 00:03:35,360 --> 00:03:38,221 Dinge wie diese, die wir genannt, was? 72 00:03:38,221 --> 00:03:38,720 Ja. 73 00:03:38,720 --> 00:03:39,634 So eine Schleife. 74 00:03:39,634 --> 00:03:42,050 Und in diesem Fall, diese Sache Wiederholungen offensichtlich 10mal. 75 00:03:42,050 --> 00:03:43,040 Es gibt eine immer Block. 76 00:03:43,040 --> 00:03:44,164 Es gibt ein paar andere. 77 00:03:44,164 --> 00:03:48,309 Und heute werden wir sehen, wie man übersetzen dies zu einer modernen Welt, 78 00:03:48,309 --> 00:03:50,850 wenn man will, auch wenn es gehen, um auf den ersten Blick 79 00:03:50,850 --> 00:03:52,024 viel mehr arkane sein. 80 00:03:52,024 --> 00:03:53,190 Aber das waren ja Schleifen. 81 00:03:53,190 --> 00:03:56,182 Und dann Dinge wie wir Dieser, der diese Form hat, 82 00:03:56,182 --> 00:03:57,515 und im wesentlichen gestellte Fragen. 83 00:03:57,515 --> 00:03:58,890 Und wir diese als was bezeichnet? 84 00:03:58,890 --> 00:03:59,762 >> ZIELGRUPPE: Boolean Ausdruck. 85 00:03:59,762 --> 00:04:00,320 >> David J. MALAN: Ja. 86 00:04:00,320 --> 00:04:01,340 Boolean Ausdruck. 87 00:04:01,340 --> 00:04:04,502 Etwas, das entweder wahr oder ist falsch, ja oder nein, Eins oder Null, 88 00:04:04,502 --> 00:04:05,960 aber Sie, die Welt sehen möchten. 89 00:04:05,960 --> 00:04:08,335 Aber wir diejenigen, Boolean genannt Ausdrücke, und wir stecken Sie sie 90 00:04:08,335 --> 00:04:09,900 in Bedingungen oder Filialen. 91 00:04:09,900 --> 00:04:12,170 Und in der Welt Scratch, alles schön 92 00:04:12,170 --> 00:04:15,460 Verriegelungen in Bezug auf ihre Form, wenn es logisch sinnvoll, dies zu tun, 93 00:04:15,460 --> 00:04:18,490 aber Sie nicht haben, um zu einfach aufhören eine Sache tut bedingt, 94 00:04:18,490 --> 00:04:20,450 können Sie eine sprichwörtliche haben Gabel in der Straße 95 00:04:20,450 --> 00:04:24,040 und tun, entweder dies oder das, wenn die Bedingung erfüllt ist oder nicht. 96 00:04:24,040 --> 00:04:26,040 Und dann, wie Sie sehen werden, wenn Sie nicht bereits haben, 97 00:04:26,040 --> 00:04:27,480 Sie nisten auch diese Blöcke. 98 00:04:27,480 --> 00:04:32,110 So Scratch wächst, um die Formen zu füllen dass Sie vielleicht, um in sie einfügen, 99 00:04:32,110 --> 00:04:35,330 so dass Sie eigentlich zum Ausdruck bringen kann am jede Logik, die Sie vielleicht zu tun. 100 00:04:35,330 --> 00:04:38,220 >> Nun ein paar Worte der Mitteilung für hier und New Haven. 101 00:04:38,220 --> 00:04:39,370 So Schnitte beginnt heute. 102 00:04:39,370 --> 00:04:42,120 Die URL dieser ist auf den Verlauf der Website, für diejenigen, die nicht. 103 00:04:42,120 --> 00:04:43,970 Abschnitte wird eine sein, Gelegenheit, um zusammen zu bekommen 104 00:04:43,970 --> 00:04:46,553 in einer viel intimeren Umgebung als [? Sanders?] Ermöglicht es, 105 00:04:46,553 --> 00:04:50,347 mit 10 bis 20 Klassenkameraden mit einem Lehre Mitarbeiter an unterschiedlichen Spuren, 106 00:04:50,347 --> 00:04:51,930 und unterschiedlichem Tempo, wenn Sie dies wünschen. 107 00:04:51,930 --> 00:04:54,080 Tatsächlich sind die Kursangebote verschiedene Abschnitte 108 00:04:54,080 --> 00:04:57,340 für diejenigen, weniger komfortabel, mehr komfortabel und irgendwo dazwischen, 109 00:04:57,340 --> 00:04:59,860 und die Rolle des Faust ist es gibt keine formale Definition, 110 00:04:59,860 --> 00:05:04,600 aber wenn Sie weniger bequem sind, Sie Art von wissen. 111 00:05:04,600 --> 00:05:07,470 Sie sind ein bisschen über die unerschrockenen Vorstellung von einen Fuß vielleicht zurück 112 00:05:07,470 --> 00:05:10,130 im Klassenzimmer, oder zeigt bis zu einer zwischen Schnitt. 113 00:05:10,130 --> 00:05:12,770 Wenn Sie schon seit dem du gewesen Programmierung waren sechs Jahre alt war, komfortabler, 114 00:05:12,770 --> 00:05:13,400 vielleicht zu Ihnen. 115 00:05:13,400 --> 00:05:16,150 Und wenn es ein bisschen eine Wurf-up, das ist genau das, was die zwischen 116 00:05:16,150 --> 00:05:17,190 sein soll. 117 00:05:17,190 --> 00:05:18,410 >> Jetzt, in der Zwischenzeit für eine Klasse dieser Größe, 118 00:05:18,410 --> 00:05:21,326 es dauert uns einige Zeit in dem Kapitel jeder, deshalb haben wir so genannte, 119 00:05:21,326 --> 00:05:24,030 Super-Sektionen, kommen diese Wochenende und Anfang nächster Woche, 120 00:05:24,030 --> 00:05:26,570 so werfen Sie einen Blick auf der Website natürlich für diejenigen, die natürlich breit sind, 121 00:05:26,570 --> 00:05:28,610 und auch für diejenigen gefilmt sich nicht entscheiden kann ihnen. 122 00:05:28,610 --> 00:05:33,470 Und Abschnitte selbst beginnt in der dritten Woche des CS50 Null-Index. 123 00:05:33,470 --> 00:05:35,880 Problem Set 0 bereits auf der Website der natürlich. 124 00:05:35,880 --> 00:05:40,010 Und erkennen, dass Sie zu tun haben neun späten Tage in diesem Semester. 125 00:05:40,010 --> 00:05:43,240 Also das ist ein Upgrade von den letzten Jahr, als wir hatten fünf Tage zu spät. 126 00:05:43,240 --> 00:05:46,210 >> Also, wenn Sie sich fragen, Wir haben neun Problem Sets. 127 00:05:46,210 --> 00:05:53,200 Sie haben neun späten Tagen, von denen jeder Sie können nur ausgeben, eine pro Woche auf. 128 00:05:53,200 --> 00:05:56,089 Die effektiv macht alle das Problem stellt aufgrund Freitag, 129 00:05:56,089 --> 00:05:58,630 aber das Ziel ist, ein wenig setzen wenig psychologischen Druck 130 00:05:58,630 --> 00:06:01,100 auf die Sie versuchen, Dinge am Donnerstag, 131 00:06:01,100 --> 00:06:03,960 weil, wie Sie bald entdecken, zum Guten oder zum Schlechten, die meisten 132 00:06:03,960 --> 00:06:07,820 alles, was in der Software-Welt endet nehmen viel länger als Sie erwarten. 133 00:06:07,820 --> 00:06:10,620 So halten es für eine Art Gelegenheit, um zu helfen 134 00:06:10,620 --> 00:06:13,880 sich bis Donnerstag Ziel, aber trösten, dass, ja, 135 00:06:13,880 --> 00:06:14,950 alles ist auf Freitag. 136 00:06:14,950 --> 00:06:17,590 Und wenn man legt sie auf Donnerstag, das ist wunderbar. 137 00:06:17,590 --> 00:06:21,020 Es gibt keine Bonuspunkte oder Extra Kredit für die Einhaltung dieser Frist. 138 00:06:21,020 --> 00:06:23,250 Es soll nur eine Krücke sein. 139 00:06:23,250 --> 00:06:25,810 >> Und Sprechzeiten, sowohl Hier und in New Haven, 140 00:06:25,810 --> 00:06:28,840 in Person, wenn Sie möchten, Treffen mit einem unserer Kurse 141 00:06:28,840 --> 00:06:31,060 Lehre Stipendiaten und Zertifizierungsstellen für Unterstützung. 142 00:06:31,060 --> 00:06:31,640 >> Gut. 143 00:06:31,640 --> 00:06:33,110 So, jetzt lassen Sie uns dies realer. 144 00:06:33,110 --> 00:06:35,470 Und für einen Moment, es wird starten ein wenig mehr obskure, aber sehr 145 00:06:35,470 --> 00:06:37,310 schnell am Freitag und Nächste Woche werden wir in der 146 00:06:37,310 --> 00:06:41,230 in der Lage, so viel mehr zu tun, als wir konnten bisher im Scratch. 147 00:06:41,230 --> 00:06:44,350 So haben wir Code letzten Woche, wenn auch Sonderstempel. 148 00:06:44,350 --> 00:06:45,620 Es war Puzzleteile. 149 00:06:45,620 --> 00:06:48,800 Und wir formalisiert, dass es so genannte Quellcode, 150 00:06:48,800 --> 00:06:50,330 aber aussehen würde? 151 00:06:50,330 --> 00:06:52,550 Nun sah es ein wenig etwas wie das. 152 00:06:52,550 --> 00:06:55,410 Und, in der Tat nur auf Art necken, wo wir mit diesem zu gehen. 153 00:06:55,410 --> 00:06:57,800 Ich werde weitermachen und öffnen Sie ein Fenster, hier, 154 00:06:57,800 --> 00:06:59,810 und ich werde einfach Neuer Ordner auswählen. 155 00:06:59,810 --> 00:07:03,200 Und ich werde diese Datei speichern so etwas wie hallo Punkt c. 156 00:07:03,200 --> 00:07:05,700 Mehr zu diesem Wahl Wörter in nur einem Augenblick. 157 00:07:05,700 --> 00:07:08,630 Und so jemand gehen über ein Programm schreiben. 158 00:07:08,630 --> 00:07:13,990 Gehören Standard-I / O-Punkt h, int main Leere, und öffnen Sie dann geschweifte Klammer, in der Nähe 159 00:07:13,990 --> 00:07:19,430 geschweifte Klammer, printf hallo Komma Welt Backslash n, Semikolon, speichern, fertig. 160 00:07:19,430 --> 00:07:19,930 OK. 161 00:07:19,930 --> 00:07:21,670 Ich habe meine erste schriftliche Programm, aber es geht 162 00:07:21,670 --> 00:07:23,878 unglaublich überwältigt zu sein denn wenn ich tatsächlich 163 00:07:23,878 --> 00:07:27,352 führen Sie dieses Programm, natürlich, indem zunächst schriftlich stellen hallo, 164 00:07:27,352 --> 00:07:30,310 und dann dot Slash hallo, und wir schicken gehen Sie durch diese in viel mehr Details 165 00:07:30,310 --> 00:07:31,730 in einem Moment, das ist alles es tut. 166 00:07:31,730 --> 00:07:33,270 Nicht aufspringen keine Fenster. 167 00:07:33,270 --> 00:07:35,070 Es muss nicht alles tun, Besonders extravagant. 168 00:07:35,070 --> 00:07:38,830 Denn es macht nicht, was ich gesagt, dass es um zu tun, aber wie wir dazu kommen? 169 00:07:38,830 --> 00:07:40,560 Und wie kommen wir nach, dass zu bauen? 170 00:07:40,560 --> 00:07:43,430 Nun, lassen Sie führen ein paar unterschiedliche Konzepte hier. 171 00:07:43,430 --> 00:07:47,170 >> So eins, wir sind kurz vor dem Start mit einem Programm namens ein Compiler. 172 00:07:47,170 --> 00:07:51,470 Ein Compiler gibt es für Mac OS, Windows, Linux, eine beliebige Anzahl von Betriebssystemen, 173 00:07:51,470 --> 00:07:54,540 und wir werden in Kürze die Einführung Sie Umwelt, die wir verwenden werden, 174 00:07:54,540 --> 00:07:57,410 aber ein Compiler ist nur eine allgemeine Bezeichnung für ein Stück Software 175 00:07:57,410 --> 00:08:01,940 das dauert Quellcode und produziert Objektcode von ihm. 176 00:08:01,940 --> 00:08:03,940 Mit anderen Worten, wenn man haben als Eingabe Ihrer Quelle 177 00:08:03,940 --> 00:08:08,250 Code, so etwas wie das, was ich gerade eingegeben haben, letztlich produziert Objektcode. 178 00:08:08,250 --> 00:08:11,780 Und Objekt-Code ist wirklich nur eine andere Art zu sagen, es gibt 179 00:08:11,780 --> 00:08:12,926 Null ist und die eigene. 180 00:08:12,926 --> 00:08:14,800 Mit anderen Worten, Quelle Code, obwohl es 181 00:08:14,800 --> 00:08:17,240 gehen, um ein wenig obskur aussehen, und etwas weniger freundlich 182 00:08:17,240 --> 00:08:19,590 als Scratch auf den ersten Blick es ist wenigstens etwas 183 00:08:19,590 --> 00:08:21,120 dass wir Menschen verstehen kann. 184 00:08:21,120 --> 00:08:24,360 Es sieht und klingt wie Englisch, obwohl es sehr knapp. 185 00:08:24,360 --> 00:08:28,040 Bei der Programmplanung in Nullen und eigenen, als unsere Vorgänger zu tun hatte, 186 00:08:28,040 --> 00:08:30,920 vor ein paar Jahren, war nicht ein Besonders Spaß Herausforderung. 187 00:08:30,920 --> 00:08:33,710 Und doch ist es das, was die Computer immer noch versteht. 188 00:08:33,710 --> 00:08:37,010 So Compiler bringt uns aus Source-Code, Code zu widersprechen. 189 00:08:37,010 --> 00:08:39,860 Es ist wie das Öffnen einer Datei mit der Compiler und wenn Sie es speichern, 190 00:08:39,860 --> 00:08:41,419 Sie erhalten diese Nullen und Einsen. 191 00:08:41,419 --> 00:08:43,419 So werden wir sehen, wie zu tun dass in nur einem Augenblick. 192 00:08:43,419 --> 00:08:47,400 >> Aber lassen Sie uns nun versuchen, a zur Verfügung stellen Brücke zwischen der vergangenen Woche, und dies, 193 00:08:47,400 --> 00:08:50,660 so dass selbst wenn wir bekommen aufgehängt auf Dinge wie geschweiften Klammern, 194 00:08:50,660 --> 00:08:54,100 und Strichpunkte und Klammern, und alle diese gedanklich interessante 195 00:08:54,100 --> 00:08:57,620 Aspekte der Programmierung, die sehr verständlicherweise stolpern Menschen früh auf, 196 00:08:57,620 --> 00:09:00,930 erkennen, dass alle der Ideen Heute sind die gleichen wie zuletzt. 197 00:09:00,930 --> 00:09:03,975 Also endlich, dieses Beispiel haben wir gesehen, hier, Hallo Welt Programm. 198 00:09:03,975 --> 00:09:07,500 Nun, ab heute, wenn wir wollen, um das gleiche Programm zu implementieren, 199 00:09:07,500 --> 00:09:10,800 es geht um einen Blick wenig so etwas wie dieses. 200 00:09:10,800 --> 00:09:14,040 Und wir werden in Kürze welche int zu erklären, und die wichtigsten, und nichtig, und all das 201 00:09:14,040 --> 00:09:18,770 ist, aber zumindest ich hier sehe, schon die vertraute Hallo Welt. 202 00:09:18,770 --> 00:09:20,860 >> Inzwischen Dinge wie Funktion, sagen hallo, 203 00:09:20,860 --> 00:09:23,570 sehr einfach wird eine sein sehr einfache Anweisung wie folgt. 204 00:09:23,570 --> 00:09:26,930 Printf Hallo Welt, mit einigen zitiert, mit einem Backslash, 205 00:09:26,930 --> 00:09:29,780 mit einem Semikolon, aber mehr dazu kommen. 206 00:09:29,780 --> 00:09:34,066 Schleifen unterdessen ist dies eine Schleife, die, Natürlich sagt hallo Welt für immer, 207 00:09:34,066 --> 00:09:36,690 und dieser wird ein schauen wenig seltsamer als in der letzten, 208 00:09:36,690 --> 00:09:39,530 aber wenn ich etwas zu sagen wie, während wahr, ich 209 00:09:39,530 --> 00:09:44,050 kann dann ausdrucken Hallo Welt wieder und wieder und wieder und wieder. 210 00:09:44,050 --> 00:09:46,660 Und dann, wie Sie können Art der zu starten, hier zu folgern, 211 00:09:46,660 --> 00:09:49,070 diese Konvention der Verwendung geschweiften Klammern ist eine Art 212 00:09:49,070 --> 00:09:52,050 der wie die umfassende rückt Codezeile gibt. 213 00:09:52,050 --> 00:09:55,840 Die printf Zeile Code ähnlich wie die gelbe Puzzleteil oben. 214 00:09:55,840 --> 00:09:58,740 Also werden wir nicht ewig sagen, wir werden, während wahre sagen, 215 00:09:58,740 --> 00:10:01,020 aber wir werden sehen, warum das so ist nur ein bisschen. 216 00:10:01,020 --> 00:10:04,210 >> In der Zwischenzeit, wenn wir eine Schleife wie diese, wo man etwas eine endliche wiederholen 217 00:10:04,210 --> 00:10:07,730 Zahl mal auch, es ist dies eine gehen, um ein wenig dauern gewöhnungs 218 00:10:07,730 --> 00:10:12,820 zu, aber es wird für int sagen i erhält Null, i kleiner als 10, i ++, 219 00:10:12,820 --> 00:10:14,056 und dann printf erneut. 220 00:10:14,056 --> 00:10:15,430 Aber es geht um Muster zu sein. 221 00:10:15,430 --> 00:10:18,434 Und für diejenigen unter Ihnen kennen mit AP Informatik oder Java, 222 00:10:18,434 --> 00:10:21,100 oder eine beliebige Anzahl von anderen Sprachen, fast alle diese Konstrukte 223 00:10:21,100 --> 00:10:23,820 bisher sollte hauptsächlich bekannt vorkommen. 224 00:10:23,820 --> 00:10:24,680 >> So variabel. 225 00:10:24,680 --> 00:10:29,270 Also hier ist eine einfache Scratch Ausschnitt, setzt eine Variable Zähler auf Null, 226 00:10:29,270 --> 00:10:33,150 und dann für immer, sagt der Zähler, und dann wird der Zähler um eins ändert sie. 227 00:10:33,150 --> 00:10:37,030 So dass es beginnt mit null, und dann ein, zwei, drei. 228 00:10:37,030 --> 00:10:42,560 Nun, wie wir vielleicht vorstellen, dass in Diese neue Sprache ein wenig ähnlich? 229 00:10:42,560 --> 00:10:45,460 Int Zähler gleich Null, während die wahre, die 230 00:10:45,460 --> 00:10:48,100 ist, dass dieselbe Idee aus der Zeit vor etwas zu tun, für immer, 231 00:10:48,100 --> 00:10:49,530 und ich werde einfach printf. 232 00:10:49,530 --> 00:10:53,310 Und jetzt wird es ein wenig seltsam, Prozent i, aber dazu kommen, 233 00:10:53,310 --> 00:10:55,140 aber diese Ideen sind genau die gleichen. 234 00:10:55,140 --> 00:10:58,820 Wir haben gerade jetzt, um zu haften die Syntax, die der Computer 235 00:10:58,820 --> 00:11:00,010 gehen, um von uns zu verlangen. 236 00:11:00,010 --> 00:11:04,620 >> Boolescher Ausdruck, so etwas wie sx weniger als y oder x kleiner als y ist, 237 00:11:04,620 --> 00:11:06,354 und y kleiner als z ist. 238 00:11:06,354 --> 00:11:09,270 Es wird ein wenig etwas zu suchen wie diese, mit Klammern einfach 239 00:11:09,270 --> 00:11:13,020 wie in der Mathematik für eine gute Maßnahme, um nur sicherzustellen, dass die Reihenfolge der Operationen 240 00:11:13,020 --> 00:11:14,750 ist, wie wir beabsichtigen. 241 00:11:14,750 --> 00:11:15,600 Und nun, Bedingungen. 242 00:11:15,600 --> 00:11:21,220 Also, wenn x kleiner als y, sagen, x kleiner ist als y, sonst wenn x größer als y ist, 243 00:11:21,220 --> 00:11:26,020 sagen, x größer als y ist, ansonsten logischerweise, muss x gleich y ist. 244 00:11:26,020 --> 00:11:28,710 So könnten Sie implementieren so etwas wie dies im Scratch, 245 00:11:28,710 --> 00:11:31,230 oder Sie könnten zu implementieren es in dieser Syntax. 246 00:11:31,230 --> 00:11:35,090 Und wieder sind so eine Art die geschweiften Klammern als Puzzle geben uns die gleiche Form 247 00:11:35,090 --> 00:11:40,750 Stück, aber die Syntax ist nun, vielleicht beginnen, einige Muster zu folgen. 248 00:11:40,750 --> 00:11:42,910 >> Also, was hat dies uns hier? 249 00:11:42,910 --> 00:11:45,260 So sind wir damals in unserem Hauptprogramm. 250 00:11:45,260 --> 00:11:47,930 Lassen Sie uns eigentlich jetzt, tun Sie etwas mit ihm. 251 00:11:47,930 --> 00:11:50,660 Also in diesem allerersten Linie sehen wir scharf sind, 252 00:11:50,660 --> 00:11:53,160 Standard-I / O, Punkt H, und dann einige seltsame Winkel 253 00:11:53,160 --> 00:11:57,330 Klammern darunter. int main Leere, und dann printf Hallo Welt. 254 00:11:57,330 --> 00:11:58,200 Also nur einen Schritt. 255 00:11:58,200 --> 00:12:02,440 Jemand, der noch nie zuvor so programmiert ist, zumindest erklären eine dieser Linien. 256 00:12:02,440 --> 00:12:04,490 Verwenden vielleicht einige von Jargon der vergangenen Woche. 257 00:12:04,490 --> 00:12:06,942 Was ist printf, zum Beispiel? 258 00:12:06,942 --> 00:12:07,442 Ja. 259 00:12:07,442 --> 00:12:08,410 >> ZIELGRUPPE: [unverständlich] 260 00:12:08,410 --> 00:12:08,610 >> David J. MALAN: Ja. 261 00:12:08,610 --> 00:12:11,380 Es ist eine Funktion oder eine Aussage, von Terminologie in der vergangenen Woche. 262 00:12:11,380 --> 00:12:13,470 Und es ist ein Action- das ist etwas zu tun. 263 00:12:13,470 --> 00:12:15,855 Nun ist diese Funktion oder Diese Aussage, tut 264 00:12:15,855 --> 00:12:17,550 es scheint, irgendeine Art von Input zu nehmen? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 Und in welchem ​​Sinne es tut scheinen Eingang zu nehmen, wenn dies der Fall? 267 00:12:24,380 --> 00:12:26,180 Input, was mache ich damit? 268 00:12:26,180 --> 00:12:26,720 Ja. 269 00:12:26,720 --> 00:12:27,595 >> ZIELGRUPPE: [unverständlich] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 David J. MALAN: Ja. 272 00:12:31,440 --> 00:12:34,890 So Scratch ein paar Puzzleteile wo man sie parametrisieren. 273 00:12:34,890 --> 00:12:37,980 Man könnte sagen, die Wiederholungs zu blockieren, wie viele Male zu wiederholen, 274 00:12:37,980 --> 00:12:40,320 das war also ein Eingang Arten, und genau wie Scratch 275 00:12:40,320 --> 00:12:43,060 hatte einen kleinen weißen Platzhalter für die Nummer, die Sie eingeben würden, 276 00:12:43,060 --> 00:12:45,810 so zu tun, die wir in diesem Text Welt Klammern 277 00:12:45,810 --> 00:12:49,910 uns, dass die kreisförmige Form zu geben, in dem wir unsere Eingangsstecker. 278 00:12:49,910 --> 00:12:53,180 Schließlich Zehn Jahren wenn diese Sprache, die so genannte C, 279 00:12:53,180 --> 00:12:55,950 war niemand erfunden erwartet, es ist einer von uns, 280 00:12:55,950 --> 00:12:59,420 diese einige Jahre später, würden wir möchten eine Funktion, sagt hallo. 281 00:12:59,420 --> 00:12:59,920 Recht? 282 00:12:59,920 --> 00:13:02,880 Es wäre schön, wenn es eine Puzzle-Stück oder ein Schlüsselwörtern, 283 00:13:02,880 --> 00:13:05,502 dass heißt hallo, daß buchstäblich nur sagt hallo. 284 00:13:05,502 --> 00:13:06,460 Aber wir brauchen nicht, dass. 285 00:13:06,460 --> 00:13:09,320 Wir können etwas viel niedriger sind Ebene, wie eine generische Druck 286 00:13:09,320 --> 00:13:12,760 Befehl, die Eingabe nimmt, und druckt, was wir wollen. 287 00:13:12,760 --> 00:13:14,960 So bemerken nun das Muster dass beginnen zu entstehen. 288 00:13:14,960 --> 00:13:19,310 Offene paren, liegt in der Nähe paren offenbar umarmt den Eingang, 289 00:13:19,310 --> 00:13:21,770 und doppelklicken Sie dann sehe ich, zitiert an beiden Enden. 290 00:13:21,770 --> 00:13:25,110 Es gibt immer noch seltsam umgekehrten Schrägstrich n, aber hoffentlich Sie jetzt 291 00:13:25,110 --> 00:13:29,900 können Sie beginnen, zumindest, dass visualisieren printf nimmt in irgendeiner Form der Eingabe. 292 00:13:29,900 --> 00:13:31,850 Nicht so benutzerfreundlich wie Kratzer, aber es ist einfach 293 00:13:31,850 --> 00:13:34,920 wie mit in gewissen Wert es eingesteckt ist. 294 00:13:34,920 --> 00:13:38,306 >> So, jetzt wollen wir eigentlich tun Sie etwas mit diesem. 295 00:13:38,306 --> 00:13:40,930 So einige von euch vielleicht wissen, aus mit eingekauft die Klasse vor, 296 00:13:40,930 --> 00:13:42,638 unterhielt sich mit Freunden, dass für viele Jahre 297 00:13:42,638 --> 00:13:44,590 wir verwendet die so genannte das CS50-Appliance. 298 00:13:44,590 --> 00:13:49,160 Dies war ein Begriff für eine Technologie rief die virtuelle Maschine, die 299 00:13:49,160 --> 00:13:51,870 ist ein Stück Software, die Ihre Vorgänger würde downloaden off 300 00:13:51,870 --> 00:13:53,360 der Website natürlich kostenlos. 301 00:13:53,360 --> 00:13:56,550 Sie würden auch ein freies Stück downloaden Software namens Hypervisor, 302 00:13:56,550 --> 00:14:00,590 etwas namens wie VMware, oder VirtualBox, oder eine beliebige Anzahl 303 00:14:00,590 --> 00:14:04,450 von anderen Werkzeugen und auf ihrem Mac oder PC oder was auch immer Computer sie hatte im vergangenen Jahr 304 00:14:04,450 --> 00:14:06,620 und in den vergangenen Jahren, werden sie würde einen Doppelklick auf ein Icon 305 00:14:06,620 --> 00:14:08,860 diese Software ausführen genannt Hypervisor. 306 00:14:08,860 --> 00:14:12,220 Und dann innerhalb des Programms sie würden den CS50 Gerät zu öffnen. 307 00:14:12,220 --> 00:14:14,710 Und die Wirkung war, daß ob ein Vorgänger von Ihnen 308 00:14:14,710 --> 00:14:17,780 wurde Mac OS oder Laufen Fenster, er oder sie dann 309 00:14:17,780 --> 00:14:22,910 Anschließend musste ein neues Fenster auf ihre Bildschirm laufen CS50 Umwelt. 310 00:14:22,910 --> 00:14:27,370 So eine virtuelle Maschine können Sie eine laufen Betriebssystem innerhalb eines anderen, 311 00:14:27,370 --> 00:14:28,785 und das ist genau das, was wir getan haben. 312 00:14:28,785 --> 00:14:31,410 Während des größten Teils des Kurses wir verwenden Sie ein Betriebssystem namens 313 00:14:31,410 --> 00:14:34,070 Linux, speziell Ubuntu Linux, und das 314 00:14:34,070 --> 00:14:37,590 ist eine sehr schöne Art und Weise in den vergangenen Jahren von um sicherzustellen, dass alle im Verlauf 315 00:14:37,590 --> 00:14:38,840 nur hatte die gleiche Umgebung. 316 00:14:38,840 --> 00:14:41,339 Und Sie können jede Art der Verwertung Computer, die Sie wirklich wollen. 317 00:14:41,339 --> 00:14:43,930 Zu den Schattenseiten, obwohl, waren es war wie zwei Gigabyte 318 00:14:43,930 --> 00:14:45,480 um dieses Ding zu downloaden. 319 00:14:45,480 --> 00:14:50,310 Es hat nicht unbedingt Super funktionieren gut auf Menschen, deren Computer, die vielleicht nur 320 00:14:50,310 --> 00:14:54,570 hatte einen Gig oder so von RAM, oder nicht zu viele Gigahertz CPU-Geschwindigkeit, 321 00:14:54,570 --> 00:14:56,750 und so in diesem Jahr für Diese und andere Gründe, 322 00:14:56,750 --> 00:14:59,140 haben wir den Übergang an diese Umgebung. 323 00:14:59,140 --> 00:15:03,730 Die sogenannte IDE CS50, das ist basierend auf Open-Source-Software, 324 00:15:03,730 --> 00:15:07,380 und eine unterstützte Plattform dass eine Firma mit dem Namen Cloud9 325 00:15:07,380 --> 00:15:11,110 unterstützt in Europa, dass ermöglicht es uns, im Wesentlichen haben 326 00:15:11,110 --> 00:15:15,770 daß dieselbe Umgebung wie in vergangenen Jahren, aber in der sogenannten Wolke. 327 00:15:15,770 --> 00:15:17,532 >> Also, was ist die Cloud? 328 00:15:17,532 --> 00:15:20,480 Sie haben vermutlich geklickt das entsprechende Symbol auf Ihrem Mac oder PC. 329 00:15:20,480 --> 00:15:22,210 Was ist die Cloud? 330 00:15:22,210 --> 00:15:22,709 Ja? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Ein wenig lauter. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Ja. 335 00:15:31,010 --> 00:15:33,770 Es ist nur ein Haufen von Computern an anderer Stelle, dass die Daten zu speichern und ausführen 336 00:15:33,770 --> 00:15:34,880 Software und dergleichen. 337 00:15:34,880 --> 00:15:39,390 Also es ist wirklich nur auf das Wort de jure zu beschreiben [? mietbar?] 338 00:15:39,390 --> 00:15:40,930 Computer, die anderswo leben. 339 00:15:40,930 --> 00:15:42,810 , Dass Sie selbst, nicht unbedingt besitzen. 340 00:15:42,810 --> 00:15:45,256 Also, wenn Sie Ihre Daten oder Ihr Programme sind in der Wolke, 341 00:15:45,256 --> 00:15:47,630 es bedeutet nur, es ist auf jemand fremden Computern an anderer Stelle, 342 00:15:47,630 --> 00:15:50,510 und nicht, am ehesten auf, Ihre physische Laptop oder Desktop. 343 00:15:50,510 --> 00:15:52,990 Und so das ist, was CS50 IDE jetzt ist. 344 00:15:52,990 --> 00:15:55,670 >> Von nun an werden Sie zu einem gewissen gehen URL, die Sie einführen wird 345 00:15:55,670 --> 00:16:00,090 um, in Problem-Set 1, noch in diesem Woche, die dann, nach der Anmeldung 346 00:16:00,090 --> 00:16:01,480 geben Ihnen diese Umgebung. 347 00:16:01,480 --> 00:16:03,896 Und ähnlich wie Scratch hatte einen paar verschiedene Gremien mit, 348 00:16:03,896 --> 00:16:06,030 so auch CS50 IDE genau das haben. 349 00:16:06,030 --> 00:16:09,480 Auf der obersten linken Seite hier, du bist gehen, um eine vertraute Datei-Browser zu sehen. 350 00:16:09,480 --> 00:16:11,930 So eine der Dateien, die Sie in diesem Umfeld setzen 351 00:16:11,930 --> 00:16:13,346 sich nur noch dort aufgeführt werden. 352 00:16:13,346 --> 00:16:14,350 Dateien und Ordner. 353 00:16:14,350 --> 00:16:16,790 In der oberen rechten hier, Sie gehen zu einem Ort zu sehen 354 00:16:16,790 --> 00:16:18,420 wo Sie Ihren Code tatsächlich zu schreiben. 355 00:16:18,420 --> 00:16:21,860 Zunächst in C, später im Begriff in PHP und JavaScript, 356 00:16:21,860 --> 00:16:24,739 und vielleicht für die endgültige Projekte, Ruby oder Java oder Python 357 00:16:24,739 --> 00:16:27,280 oder eine beliebige Anzahl von Sprachen in dieser Umgebung nicht unterstützt. 358 00:16:27,280 --> 00:16:30,130 Es ist überhaupt nicht gebunden speziell CS50. 359 00:16:30,130 --> 00:16:33,390 >> Und dann in der unteren Ecke Hier besonders für die, bequemer, 360 00:16:33,390 --> 00:16:35,590 Sie etwas haben, rief ein Terminal-Fenster. 361 00:16:35,590 --> 00:16:38,770 Und das Terminal-Fenster erlaubt Sie, jeden Befehl auszuführen, die Sie 362 00:16:38,770 --> 00:16:40,860 möchte in diesem Cloud-Umgebung. 363 00:16:40,860 --> 00:16:42,860 Es ermöglicht Ihnen, zu installieren zusätzliche Software 364 00:16:42,860 --> 00:16:46,810 dass Sie möchten, weil Sie so genannte haben root oder Administrator-Rechten. 365 00:16:46,810 --> 00:16:49,930 In anderen Worten, auch wenn dies wird schließlich in der Cloud gehostet, 366 00:16:49,930 --> 00:16:52,400 und obwohl wir vereinfacht es in einem gewissen Ausmaß 367 00:16:52,400 --> 00:16:57,110 Standardmäßig ist buchstäblich die Einführung, Dank an Dan Armendariz und Dino, 368 00:16:57,110 --> 00:17:01,070 und Dan Bradley am CS50-Team über die vorbei an vielen Monaten eine weniger komfortabel 369 00:17:01,070 --> 00:17:05,140 Modus, die eine Menge der Häute zunächst verwirrend Ablenkungen. 370 00:17:05,140 --> 00:17:10,119 Alles, was existiert, um repräsentieren ein typisches Computersystem 371 00:17:10,119 --> 00:17:12,319 dass Sie vielleicht in der realen Welt zu verwenden. 372 00:17:12,319 --> 00:17:15,640 >> Also, was bedeutet das alles, und was können wir eigentlich damit zu tun? 373 00:17:15,640 --> 00:17:19,124 Lassen Sie tatsächlich nehmen Sie einen Blick auf ein Programm. 374 00:17:19,124 --> 00:17:21,290 Also werde ich zur Öffnung des tatsächliche Umgebung hier, 375 00:17:21,290 --> 00:17:23,894 das ist nur unsere Chrome Browser, die Firefox sein könnte, 376 00:17:23,894 --> 00:17:26,640 könnte Internet Explorer sein, oder ein anderer Browser als auch. 377 00:17:26,640 --> 00:17:28,400 Es ist voll hier für den Augenblick untersucht. 378 00:17:28,400 --> 00:17:31,580 Und ich möchte eigentlich necken auseinander, was dieses Programm war. 379 00:17:31,580 --> 00:17:36,170 Werfen wir also einen Blick, durch Vergrößern up top, was ich tat, und wie ich hierher gekommen. 380 00:17:36,170 --> 00:17:38,315 Also hier ist jene genauen elbe Codezeilen. 381 00:17:38,315 --> 00:17:40,440 Das ist also die Aussage, wie Sie bereits erwähnt. 382 00:17:40,440 --> 00:17:42,580 Die Funktion, sagt hallo. 383 00:17:42,580 --> 00:17:45,870 Die geschweiften Klammern, auf Reihenvier und Linie sechs, 384 00:17:45,870 --> 00:17:49,290 vermutlich Art umhüllen , dass Linie, um sie zu verbinden 385 00:17:49,290 --> 00:17:50,890 mit der Essenz meines Programms. 386 00:17:50,890 --> 00:17:54,890 So in der Tat, dieses Schlüsselwort Haupt, das ist, dort oben auf der Linie drei, 387 00:17:54,890 --> 00:17:59,450 Sie davon können als Äquivalent der, dass, wenn grüne Flagge geklickt haben, 388 00:17:59,450 --> 00:18:01,080 Block in Scratch. 389 00:18:01,080 --> 00:18:05,280 Also das ist alles, was wir hier haben, ist, wenn grüne Flagge geklickt, zu drucken oder zu sagen, 390 00:18:05,280 --> 00:18:06,700 Hallo Welt. 391 00:18:06,700 --> 00:18:11,210 >> Aber lassen Sie uns einen Vermutung, jetzt, was diese erste, mehr arkane Linie ist. 392 00:18:11,210 --> 00:18:15,100 Sharp gehören, geöffnet abgewinkelt Halterung, Standard-E / A-Punkt-h, 393 00:18:15,100 --> 00:18:17,320 schließen Winkelhalter. 394 00:18:17,320 --> 00:18:19,850 Was ist das vielleicht tun, vor allem wenn Sie programmiert haben 395 00:18:19,850 --> 00:18:21,390 bevor in einer anderen Sprache. 396 00:18:21,390 --> 00:18:21,890 Ja? 397 00:18:21,890 --> 00:18:22,765 >> ZIELGRUPPE: [unverständlich] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 David J. MALAN: Ja. 400 00:18:25,970 --> 00:18:26,470 Genau. 401 00:18:26,470 --> 00:18:29,455 Also das gibt Ihnen Zugang zu einem Bibliothek, so zu sprechen, von Funktionen. 402 00:18:29,455 --> 00:18:31,830 Und eine Bibliothek von Funktionen Funktionen, dass jemand anderes 403 00:18:31,830 --> 00:18:34,406 schrieb, entweder vor kurzem oder vor langer Zeit, so dass Sie 404 00:18:34,406 --> 00:18:35,780 müssen nicht das Rad neu erfinden. 405 00:18:35,780 --> 00:18:39,020 So tun wir nicht müssen wissen, im Jahr 2015, 406 00:18:39,020 --> 00:18:42,280 wie man Code, der Puts schreiben ein Charakter auf meinem Bildschirm. 407 00:18:42,280 --> 00:18:44,820 Jemand hat anderes dachte, dass mit der Funktion printf 408 00:18:44,820 --> 00:18:47,280 so dass ich der abstrakten sortieren weg von diesem, oder Schicht 409 00:18:47,280 --> 00:18:49,350 oben auf seine oder ihre Code, und jetzt nehmen Sie nur 410 00:18:49,350 --> 00:18:52,760 für selbstverständlich, dass jedes Programm schreibe ich etwas auf dem Bildschirm anzuzeigen. 411 00:18:52,760 --> 00:18:58,150 Also das erste Zeile gibt in Schritt eins beinhaltet die sogenannten Header-Datei 412 00:18:58,150 --> 00:18:59,980 für die Standardbibliothek. 413 00:18:59,980 --> 00:19:02,630 So sehen die Sprache in welche wir jetzt arbeiten 414 00:19:02,630 --> 00:19:05,010 hatte eine Standardbibliothek mit vielen Funktionen. 415 00:19:05,010 --> 00:19:07,240 Printf ist einer von ihnen, und dass erste Zeile des Codes 416 00:19:07,240 --> 00:19:10,040 bedeutet Zugang zu mir diese Funktionen, so daß ich 417 00:19:10,040 --> 00:19:12,300 müssen nicht das Rad neu zu erfinden. 418 00:19:12,300 --> 00:19:15,940 >> Lassen Sie uns jetzt auf den Grund zu gehen Fenster und genau das tun, was ich tat, bevor. 419 00:19:15,940 --> 00:19:18,520 Vorhin, als ich sausen durch den Code, 420 00:19:18,520 --> 00:19:24,540 Eingabe es zum ersten Mal, Ich sehr schnell eingegeben haben, stellen hallo. 421 00:19:24,540 --> 00:19:28,250 Was war das denn würden Sie raten? 422 00:19:28,250 --> 00:19:29,150 Was sollte ich tun? 423 00:19:29,150 --> 00:19:29,649 Ja? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Egal. 426 00:19:32,310 --> 00:19:32,970 Es ist in Ordnung. 427 00:19:32,970 --> 00:19:33,492 Ja. 428 00:19:33,492 --> 00:19:34,450 ZIELGRUPPE: Kompilieren es. 429 00:19:34,450 --> 00:19:34,700 David J. MALAN: Ja. 430 00:19:34,700 --> 00:19:35,770 Es war nur Kompilieren. 431 00:19:35,770 --> 00:19:36,270 Recht? 432 00:19:36,270 --> 00:19:39,280 Auch wenn dies völlig fremd , dann ist es ziemlich Englisch dergleichen. 433 00:19:39,280 --> 00:19:41,155 Es ist sicherlich nicht Nullen und diejenigen, so dass ich immer noch 434 00:19:41,155 --> 00:19:44,220 müssen Sie es durch dieses sogenannte laufen Programm, ein Compiler, das wird 435 00:19:44,220 --> 00:19:46,060 um es als Eingabe und erzeugen Ausgangs. 436 00:19:46,060 --> 00:19:48,270 Und zumindest für jetzt, in Diese Linux-Umgebung, 437 00:19:48,270 --> 00:19:51,030 dies ist jedoch keine notwendige Voraussetzung, dies ist nur, wo wir beginnen, 438 00:19:51,030 --> 00:19:53,960 Sie in der Regel interagieren Computer-Systeme wie diese 439 00:19:53,960 --> 00:19:55,770 durch einen sogenannten Befehlszeile. 440 00:19:55,770 --> 00:19:57,790 Also mit einem blink schnelle und Tastatur, 441 00:19:57,790 --> 00:20:01,630 und nicht so sehr der Maus, und nicht soviel Fenster und Symbole und Menüs, 442 00:20:01,630 --> 00:20:02,980 vielmehr ist alles textlichen. 443 00:20:02,980 --> 00:20:06,180 Und auch wenn sich das anfühlt, auf den ersten Blick vielleicht wie ein Schritt zurück, 444 00:20:06,180 --> 00:20:08,437 es ist eigentlich eine viel mehr kraftvoll und ausdrucksstark 445 00:20:08,437 --> 00:20:10,270 Steuern eines Computers vor allem, wie Sie, 446 00:20:10,270 --> 00:20:12,950 sich selbst, geworden komfortabel aus weniger. 447 00:20:12,950 --> 00:20:16,790 Es wird Ihnen zu erlauben, eine Menge tun, mehr Dinge, als genau das, was Microsoft 448 00:20:16,790 --> 00:20:20,390 oder Apple ermöglicht es Ihnen, mit zu tun ihre grafischen Betriebssystem. 449 00:20:20,390 --> 00:20:23,270 >> Also, wenn ich drücken Sie die Eingabetaste, jetzt, nichts passiert diesmal 450 00:20:23,270 --> 00:20:25,960 weil offenbar die Programm hallo ist up to date. 451 00:20:25,960 --> 00:20:28,250 Und was war der Befehl Ich lief danach? 452 00:20:28,250 --> 00:20:32,370 Dot Slash hallo und Hallo Welt. 453 00:20:32,370 --> 00:20:34,350 Werfen wir nun einen Schritt zurück für einen Moment. 454 00:20:34,350 --> 00:20:39,510 Es stellt sich heraus, dass hallo ist nur eine machen vereinfachte Möglichkeit der Zusammenstellung eines Programms. 455 00:20:39,510 --> 00:20:41,670 Lassen Sie uns einfach vorstellen ein Stück von Jargon, 456 00:20:41,670 --> 00:20:43,470 aber dann weg von ihm, da es nicht 457 00:20:43,470 --> 00:20:46,640 so interessant für heutige Zwecke. 458 00:20:46,640 --> 00:20:51,000 Der Compiler werden wir beginnen mit heißt Clang für die C-Sprache. 459 00:20:51,000 --> 00:20:54,280 Und das ist ein Programm, das gerade ausgeführt ist so wie wir es auf der Kommandozeile. 460 00:20:54,280 --> 00:20:56,580 Und so, wenn ich will Kompilieren eines Programms, das ich 461 00:20:56,580 --> 00:21:00,790 haben in einer Datei namens hallo dot geschrieben c, ich buchstäblich geben Sie einfach clang hallo c 462 00:21:00,790 --> 00:21:02,100 eingeben. 463 00:21:02,100 --> 00:21:04,880 >> Das Komische ist, aus historischen Gründen, 464 00:21:04,880 --> 00:21:07,750 wenn ich nicht angeben Name des Programms, 465 00:21:07,750 --> 00:21:11,690 dass ich ausgeben wollen, wenn ich nicht geben Sie einen Dateinamen für die Nullen 466 00:21:11,690 --> 00:21:14,990 und Einsen, eine sehr seltsame Vor Konvention verabschiedet wurde Jahre 467 00:21:14,990 --> 00:21:17,390 wo es fühlte sich ein bisschen eine gute Antwort zu der Zeit, 468 00:21:17,390 --> 00:21:21,650 und lassen Sie uns einfach willkürlich nennen erste Programm erarbeiten wir einen Punkt aus. 469 00:21:21,650 --> 00:21:22,900 A steht an erster Stelle im Alphabet. 470 00:21:22,900 --> 00:21:23,920 Aus, es ist der Ausgang. 471 00:21:23,920 --> 00:21:26,210 So werden wir das Programm aufrufen standardmäßig mit einem Punkt aus. 472 00:21:26,210 --> 00:21:29,550 Und das ist in Ordnung, weil, wenn ich will führen Sie das Programm in diesem Text auf der Basis 473 00:21:29,550 --> 00:21:33,590 Umwelt, ich geben dot Slash einen Punkt heraus zu gelangen. 474 00:21:33,590 --> 00:21:35,250 Und es wäre genau so, wie zuvor. 475 00:21:35,250 --> 00:21:36,880 Also mal sehen, dass wirklich schnell. 476 00:21:36,880 --> 00:21:40,370 >> Also, wenn ich wieder zu meinem Quellcode in CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 und ich stattdessen tun, clang hallo Bett c Geben Sie scheint Mitteilung nichts zu geschehen, 478 00:21:47,860 --> 00:21:49,790 aber fast immer Diese Linux-Umgebung, 479 00:21:49,790 --> 00:21:53,310 wenn nichts Schlimmes zu geschehen scheint, dass bedeutet etwas Gutes wirklich passiert ist. 480 00:21:53,310 --> 00:21:56,270 Wenn Sie einen Fehler nicht sehen, Nachricht, ist alles, wahrscheinlich auch. 481 00:21:56,270 --> 00:22:01,930 Und in der Tat, wenn ich jetzt tun dot Slash einen Punkt Sie geben, ich habe meine elbe Programm ausführen. 482 00:22:01,930 --> 00:22:04,610 Ich habe immer noch die hallo-Programm von früheren, weil in der Tat, es ist 483 00:22:04,610 --> 00:22:07,430 geht so viel schöner, nur um make anstelle des Erinnerns 484 00:22:07,430 --> 00:22:10,240 diese Beschwörungen Befehle, aber lassen Sie uns sehen, wie wir 485 00:22:10,240 --> 00:22:12,890 könnte auf diese zu verbessern, dennoch. 486 00:22:12,890 --> 00:22:15,340 >> So ist das der Befehl um den Code zu kompilieren. 487 00:22:15,340 --> 00:22:19,100 Dies ist der Befehl zu laufen der kompilierte Code danach. 488 00:22:19,100 --> 00:22:20,546 Wie kann ich einen Dateinamen angeben? 489 00:22:20,546 --> 00:22:22,670 Nun lassen Sie uns nur vorstellen ein weiteres Stück von Jargon. 490 00:22:22,670 --> 00:22:24,461 Wenn Sie in diese sind text-basierten Umgebung, 491 00:22:24,461 --> 00:22:27,400 Sie gehen zu wollen, um anzugeben sind Dinge genannt Befehlszeilenargumente. 492 00:22:27,400 --> 00:22:31,380 Das ist nur eine andere Art zu sagen, Mit anderen Worten an der Eingabeaufforderung, die 493 00:22:31,380 --> 00:22:33,860 zwicken das Verhalten unabhängig Programm Sie laufen. 494 00:22:33,860 --> 00:22:37,320 So speziell das Programm Ich bin Laufen, indem Sie den Namen Klang, 495 00:22:37,320 --> 00:22:38,504 ist das Programm namens Clang. 496 00:22:38,504 --> 00:22:40,920 Also das ist oder die alte Schule Äquivalent Doppelklick 497 00:22:40,920 --> 00:22:42,860 auf Microsoft Word oder irgendProgrammSymbol. 498 00:22:42,860 --> 00:22:46,360 Ich bin statt nur die Eingabe ihres Namens, aber in dieser Version des Befehls, 499 00:22:46,360 --> 00:22:51,334 Ich habe dann dash o Raum hallo hallo Raum dot c. 500 00:22:51,334 --> 00:22:53,500 Also selbst wenn Sie noch nie habe in dieser Welt gespielt, 501 00:22:53,500 --> 00:22:58,160 nehmen Sie nur eine Vermutung, was hat dash o hallo zu tun? 502 00:22:58,160 --> 00:23:00,620 Oder was sagt Klang, zu tun? 503 00:23:00,620 --> 00:23:01,386 Ja. 504 00:23:01,386 --> 00:23:02,455 >> ZIELGRUPPE: [unverständlich] 505 00:23:02,455 --> 00:23:03,330 David J. MALAN: Ja. 506 00:23:03,330 --> 00:23:08,614 Er setzt nur Ausgang der Datei zu sein hallo statt der dümmer ein Punkt heraus. 507 00:23:08,614 --> 00:23:09,780 Und in der Tat wollen wir versuchen dies. 508 00:23:09,780 --> 00:23:14,250 Also, wenn ich jetzt tun, erste Das machen wir, r m hallo. 509 00:23:14,250 --> 00:23:15,590 Das ist, zu entfernen. 510 00:23:15,590 --> 00:23:18,450 Und es geht um remove sagen reguläre Datei hallo, was 511 00:23:18,450 --> 00:23:22,210 unnötig obskur, aber es ist einfach Mitteln wollen Sie die Datei löschen möchten, 512 00:23:22,210 --> 00:23:23,230 und ich geben Sie y für yes. 513 00:23:23,230 --> 00:23:27,340 Und beachten Sie, wenn Sie oben blickte wurden verließ, kam es von dort zu verschwinden. 514 00:23:27,340 --> 00:23:32,180 Lassen Sie mich nun zu tun clang dash o, und Ich werde weitermachen und tun, hallo, 515 00:23:32,180 --> 00:23:34,890 in Großbuchstaben, hallo Punkt c. 516 00:23:34,890 --> 00:23:37,775 Nun, wenn ich tun dot Schrägstrich hallo, was würden Sie erwarten? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Vielleicht ist es Groß- und Kleinschreibung. 519 00:23:42,430 --> 00:23:43,070 Vielleicht ist es nicht. 520 00:23:43,070 --> 00:23:44,030 Mal sehen. 521 00:23:44,030 --> 00:23:45,230 Keine solche Datei oder Verzeichnis. 522 00:23:45,230 --> 00:23:47,438 Und wir können Art betrügen, indem gerade auf der Suche links oben. 523 00:23:47,438 --> 00:23:49,630 Was habe ich natürlich Speichern Sie das Programm als? 524 00:23:49,630 --> 00:23:51,070 All Caps hallo. 525 00:23:51,070 --> 00:23:53,020 So in der Tat, das ist los um einen Unterschied machen. 526 00:23:53,020 --> 00:23:54,540 So, jetzt Hallo Welt ist zurück. 527 00:23:54,540 --> 00:23:56,969 Nun, das ist alles schön und gut, und alle sehr geisttötende, 528 00:23:56,969 --> 00:23:59,760 um Art von get in diese festgefahren Details, aber sie zu verstehen 529 00:23:59,760 --> 00:24:00,500 ist gut. 530 00:24:00,500 --> 00:24:02,675 >> Eingabe Sie sich diese zunehmend langen Beschwörungen 531 00:24:02,675 --> 00:24:05,980 wird nicht besonders sein Spaß, so dass Menschen in der Welt 532 00:24:05,980 --> 00:24:08,260 erfand ein anderes Programm, vor ein paar Jahren, die so genannte 533 00:24:08,260 --> 00:24:12,190 machen, das ganz einfach ermöglicht es Ihnen, geben, 534 00:24:12,190 --> 00:24:14,530 der Name des Programms, Sie machen wollen, und stellen 535 00:24:14,530 --> 00:24:18,580 ist intelligent, dass es aussehen wird in der aktuelle Ordner, aka-Verzeichnis, 536 00:24:18,580 --> 00:24:21,440 und wenn Sie eine Datei haben genannt hallo Punkt c, 537 00:24:21,440 --> 00:24:25,800 das ist die Datei wird kompiliert für Sie in ein Programm namens hallo. 538 00:24:25,800 --> 00:24:29,950 Also ist es eine viel einfachere Möglichkeit, tun, die mehr kryptische Befehle 539 00:24:29,950 --> 00:24:30,800 dass wir nicht früher. 540 00:24:30,800 --> 00:24:34,080 Und wir haben vorkonfiguriert CS50 IDE zu wissen 541 00:24:34,080 --> 00:24:38,560 dass es Armaturenbrett o und einer Anzahl von zu tun andere Flaggen oder Kommandozeilen-Parameter, 542 00:24:38,560 --> 00:24:40,670 dass wir bald sehen. 543 00:24:40,670 --> 00:24:43,700 >> Aber lassen Sie uns jetzt tatsächlich tun etwas interessanter. 544 00:24:43,700 --> 00:24:46,950 Nur die Eingabe aus Hallo Welt alle die Zeit ist nicht so überzeugend. 545 00:24:46,950 --> 00:24:52,280 Lassen Sie mich also und ändern voran gehen dieses Programm und sagen: Hallo David. 546 00:24:52,280 --> 00:24:54,120 Jetzt werde ich hier unten zu gehen. 547 00:24:54,120 --> 00:24:57,360 Ich werde weitermachen und tun zu machen hallo. 548 00:24:57,360 --> 00:25:00,652 Und wieder jetzt Sie sehen, machen zeigt Ihnen die mehr 549 00:25:00,652 --> 00:25:03,360 Sequenz von Befehlen, dass es tun, weil wir vorkonfiguriert 550 00:25:03,360 --> 00:25:05,200 es auf diese Weise, aber wir müssen nicht jetzt Sorgen machen 551 00:25:05,200 --> 00:25:10,735 was es anderen, als es zu tun Kompilieren dot Slash hallo, hallo Welt. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Was ist falsch? 554 00:25:15,510 --> 00:25:16,177 Ja. 555 00:25:16,177 --> 00:25:17,370 >> ZIELGRUPPE: [unverständlich] 556 00:25:17,370 --> 00:25:18,203 >> David J. MALAN: Ja. 557 00:25:18,203 --> 00:25:19,600 Also, noobie Fehler. 558 00:25:19,600 --> 00:25:22,394 Ich stelle fest, das ist Super subtil, aber der Stern hier, in der Registerkarte, 559 00:25:22,394 --> 00:25:25,060 einfach bedeutet, dass Sie es nicht gespeichert haben, und Browser und andere Programme 560 00:25:25,060 --> 00:25:25,930 tun dies manchmal. 561 00:25:25,930 --> 00:25:27,939 So Steuer s oder Befehls s sollte es zu speichern. 562 00:25:27,939 --> 00:25:29,730 Nun lassen Sie mich gehen Sie vor und starten Sie das Programm. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Neu kompiliert. 565 00:25:34,260 --> 00:25:36,050 Rechts, so ist es ein mehrstufiges Verfahren. 566 00:25:36,050 --> 00:25:39,400 Keine davon ist besonders komplex, aber jedes Mal, wenn wir die Datei zu ändern, 567 00:25:39,400 --> 00:25:43,450 wir, um das resultierende ändern müssen Nullen und Einsen, und Punktstrich hallo. 568 00:25:43,450 --> 00:25:43,950 Wow. 569 00:25:43,950 --> 00:25:46,450 Also das ist sehr berauschend dass wir gerade aus diesem gedruckt. 570 00:25:46,450 --> 00:25:48,360 Lassen Sie uns die Dinge ein wenig mehr dynamisch, jetzt. 571 00:25:48,360 --> 00:25:52,280 >> Nun stellt sich heraus, die gerne Scratch, C unterstützt Variablen. 572 00:25:52,280 --> 00:25:54,790 Und es stellt sich heraus, wenn Sie wollen um eine Variable, die Geschäfte haben, 573 00:25:54,790 --> 00:25:57,300 keine Zahl, wie wir in der Regel haben mit Scratch, 574 00:25:57,300 --> 00:26:01,300 aber wie ein Wort oder eine Satz oder ein Name, die Sie 575 00:26:01,300 --> 00:26:04,837 können eine Variable angeben, vom Typ String sein. 576 00:26:04,837 --> 00:26:06,670 Also werden wir mehr sehen diese in nur einem Augenblick, 577 00:26:06,670 --> 00:26:09,090 Aber es zeigt sich, dass C und eine Menge von Sprachen, wie es, 578 00:26:09,090 --> 00:26:11,240 haben sehr spezifische Arten von Variablen. 579 00:26:11,240 --> 00:26:13,810 Es ist nicht gerade wie Algebra, wo Sie eine x, eine y und z zu bekommen 580 00:26:13,810 --> 00:26:16,940 und das sind nur immer Zahlen, in einer Programmiersprache 581 00:26:16,940 --> 00:26:20,030 Sie Nummern speichern kann, können Sie Speichern einzelner Zeichen, 582 00:26:20,030 --> 00:26:24,619 Sie ganze Wörter speichern könnte, könnten Sie speichern ganzen Bilder, ganze Sound-Dateien, 583 00:26:24,619 --> 00:26:25,160 und dergleichen. 584 00:26:25,160 --> 00:26:28,362 Also müssen wir was geben der Typ der Variable ist. 585 00:26:28,362 --> 00:26:31,570 Und durch Konvention werde ich rufe meine Variable s, nur weil es prägnant, 586 00:26:31,570 --> 00:26:33,510 und n steht für String. 587 00:26:33,510 --> 00:26:36,400 >> Und dann werde ich speichern innerhalb dieser Variablen, 588 00:26:36,400 --> 00:26:39,570 Genau wie bei Scratch wenn ich den Satz Block, 589 00:26:39,570 --> 00:26:41,950 Ich werde auf die Verwendung Zuweisungsoperator in C, 590 00:26:41,950 --> 00:26:45,290 die schön genug, ist die gleiche unterschreiben, aber das Gleichheitszeichen tut dies. 591 00:26:45,290 --> 00:26:53,220 Es bewegt sich etwas von rechts in die linke Seite des Ausdrucks. 592 00:26:53,220 --> 00:26:57,170 Also, was ich getan habe, um klar zu sein Linie fünf, wird Ich habe eine Variable deklariert. 593 00:26:57,170 --> 00:27:01,284 Ich habe den Computer gesagt, mir zu geben Speicher für eine Variable, rufen Sie es s, 594 00:27:01,284 --> 00:27:03,950 und im Voraus wissen, dass ich gehe zu werden, indem Sie eine Zeichenfolge in es. 595 00:27:03,950 --> 00:27:05,950 Und ein String ist nur eine Folge von Zeichen. 596 00:27:05,950 --> 00:27:09,190 Es ist ein Wort oder eine Phrase oder Absatz, aber es ist eine Folge von Zeichen. 597 00:27:09,190 --> 00:27:10,610 Es ist nicht Zahlen. 598 00:27:10,610 --> 00:27:13,800 Welche Zeichenfolge werde ich sein, Inbetriebnahme dieser Variablen? 599 00:27:13,800 --> 00:27:16,185 Nun, offenbar zitieren unquote "Hannah". 600 00:27:16,185 --> 00:27:17,810 Jetzt bemerken Sie das Muster, das ist im Entstehen. 601 00:27:17,810 --> 00:27:19,260 Es gibt einen linken Ausdruck. 602 00:27:19,260 --> 00:27:21,810 Es gibt eine rechte Ausdruck, durch das Gleichheitszeichen getrennt. 603 00:27:21,810 --> 00:27:24,390 Und nehmen Sie nur eine Vermutung, wenn unbekannte dennoch 604 00:27:24,390 --> 00:27:27,430 mit dem, was das Semikolon tut. 605 00:27:27,430 --> 00:27:28,865 Wie ist es wohl für uns tun? 606 00:27:28,865 --> 00:27:29,365 Ja? 607 00:27:29,365 --> 00:27:29,840 >> ZIELGRUPPE: [unverständlich] 608 00:27:29,840 --> 00:27:29,980 >> David J. MALAN: Ja. 609 00:27:29,980 --> 00:27:31,170 Es ist nur zur Einstellung der Linie. 610 00:27:31,170 --> 00:27:31,669 Recht? 611 00:27:31,669 --> 00:27:34,260 Die Computer will ganz offen sein sagte, wörtlich, was zu tun ist. 612 00:27:34,260 --> 00:27:36,343 Wie die Erdnussbutter und Geleesandwich Beispiel 613 00:27:36,343 --> 00:27:39,360 wenn Sie nicht angeben genau, was Sie wollen, 614 00:27:39,360 --> 00:27:42,190 es könnte ein Urteil oder Fehler gelassen werden. 615 00:27:42,190 --> 00:27:44,890 Das Semikolon bedeutet, das war es für diesen Befehl. 616 00:27:44,890 --> 00:27:48,310 Es ist als Super-präzise, ​​und es ist eine sehr einfache Sache zu gehen weg. 617 00:27:48,310 --> 00:27:52,240 So, jetzt dieses Programm nicht zu scheinen, werden anders verhalten, bis ich 618 00:27:52,240 --> 00:27:53,500 machen es mehr Dynamik. 619 00:27:53,500 --> 00:27:57,107 Also anstatt schwer kann meine eigene zu nennen, lassen Sie mich einen Platzhalterwert gesetzt. 620 00:27:57,107 --> 00:28:00,190 Und es stellt sich heraus, dass, und ich weiß, davon entfernt, die Dokumentation zu lesen, 621 00:28:00,190 --> 00:28:04,080 und verwendet die Funktion für die Jahre, dass printf wurde entwickelt, dynamisch zu sein. 622 00:28:04,080 --> 00:28:07,510 Sie müssen nicht im Voraus wissen, welche Wörter Sie in sie setzen möchten. 623 00:28:07,510 --> 00:28:11,290 Sie können stattdessen eine Platzhalter, wie Prozent s, die 624 00:28:11,290 --> 00:28:15,500 wird sich das sagen Computer, legen Sie eine Zeichenfolge hier. 625 00:28:15,500 --> 00:28:17,740 >> Welche Zeichenfolge wollen wir es setzen? 626 00:28:17,740 --> 00:28:22,430 Will sich heraus, dass zwischen diesen Klammern, die daran erinnern, abzugrenzen 627 00:28:22,430 --> 00:28:28,020 der Eingang zu einer Funktion, wenn Sie durch Kommata getrennte Liste von Dingen hier, 628 00:28:28,020 --> 00:28:31,790 wir tatsächlich in mehreren Durchgängen Eingänge zu einer Funktion. 629 00:28:31,790 --> 00:28:33,901 So genau wie einige Kratzer Blöcke, könnten Sie nicht 630 00:28:33,901 --> 00:28:36,150 haben mit ihnen gespielt Ihre Projekte noch nicht oder überhaupt, 631 00:28:36,150 --> 00:28:38,250 einige Kratzer Blöcke haben zwei Eingänge. 632 00:28:38,250 --> 00:28:41,220 Zwei weiße Kästen möglich Geben Sie Zahlen oder Wörter in. 633 00:28:41,220 --> 00:28:45,210 So hat zum C haben Funktionen wie printf, die zwei Eingänge erfolgen. 634 00:28:45,210 --> 00:28:48,050 Und wieder, dieses Komma wird trennen. 635 00:28:48,050 --> 00:28:51,070 So in Englisch, wieder, auch wenn Sie noch nie programmiert haben, 636 00:28:51,070 --> 00:28:55,320 Nach dieser Logik printf ist eine Funktion, nimmt zwei Eingänge, von denen einer 637 00:28:55,320 --> 00:28:58,810 ist ein Platzhalter, was würden Sie hoffen, printf wird sich mit diesem Eingang zu tun? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Es wird um Hallo zu sagen Hannah, hoffentlich. 640 00:29:03,220 --> 00:29:05,274 Also, dies müssen wir sie zu retten. 641 00:29:05,274 --> 00:29:06,190 Ich werde zu verkleinern. 642 00:29:06,190 --> 00:29:10,701 Ich werde hier wieder nach unten gehen und sagen zu machen hallo geben. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Irgendetwas stimmt nicht, und tatsächlich Das ist ziemlich überwältigend. 645 00:29:14,830 --> 00:29:18,400 Ich habe sechs Zeilen Code und wie 12 Zeilen von Fehlern. 646 00:29:18,400 --> 00:29:22,120 Also, freuen uns auf diese. 647 00:29:22,120 --> 00:29:24,260 Also, was ist denn hier los? 648 00:29:24,260 --> 00:29:27,370 So ist die beste Faustregel gilt hier, vor allem, wenn Sie beginnen bist, 649 00:29:27,370 --> 00:29:29,370 um nicht abgelenkt zu werden der Stoff an der Unterseite. 650 00:29:29,370 --> 00:29:31,220 In der Tat, ich ganz bewusst gerade oben gescrollt 651 00:29:31,220 --> 00:29:33,930 denn sehr oft ist ein Computer nicht allzu hellen eines Gerätes. 652 00:29:33,930 --> 00:29:35,054 Es wird verwirrt werden. 653 00:29:35,054 --> 00:29:37,220 Wenn es eine Sache, sieht, dass es nicht versteht, 654 00:29:37,220 --> 00:29:40,030 es könnte anderen verwechseln Zeilen Code als falsch, 655 00:29:40,030 --> 00:29:41,649 obwohl sie völlig in Ordnung. 656 00:29:41,649 --> 00:29:43,940 So will man immer arbeiten von oben nach unten durch die Fehler. 657 00:29:43,940 --> 00:29:47,850 Und zwar ist dies Super arkanen im Moment. 658 00:29:47,850 --> 00:29:50,830 >> Fehler, die Verwendung von nicht angemeldeter Bezeichnerstring. 659 00:29:50,830 --> 00:29:52,130 Habe ich meine, in Standard? 660 00:29:52,130 --> 00:29:53,720 Nein, ich meinte String. 661 00:29:53,720 --> 00:29:55,830 Und es zeigt auf, vielleicht ist es ein Tippfehler. 662 00:29:55,830 --> 00:30:00,570 So ähnlich wie, die Rechtschreibprüfung in einem sehr geeky Weise, aber der Grund hier 663 00:30:00,570 --> 00:30:02,840 und du wirst wissen nur durch die Praxis ist 664 00:30:02,840 --> 00:30:06,390 es stellt sich heraus, dass diese Zeichenfolge nicht in C gibt es in der Tat, C 665 00:30:06,390 --> 00:30:08,820 ist eine besonders alte Sprache, und es ist sehr niedrigen Niveau, 666 00:30:08,820 --> 00:30:11,361 und es nicht eine Menge von Funktionen dass Sie vielleicht aufgewachsen sind 667 00:30:11,361 --> 00:30:14,620 mit, wenn Sie in der Tat, programmiert in Java, wie einige von euch haben, 668 00:30:14,620 --> 00:30:16,980 aber Sie können es zu unterrichten, neue Dinge. 669 00:30:16,980 --> 00:30:20,900 Und in der Tat haben wir diese CS50 getan, auch wenn bis zum Ende des Semesters, 670 00:30:20,900 --> 00:30:23,512 alle diese Stützräder wird wurde abgenommen haben, 671 00:30:23,512 --> 00:30:25,220 was wir in diese zu tun ersten paar Wochen 672 00:30:25,220 --> 00:30:29,830 anfangs haben wir auch Sie sind CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Die eine Header-Datei. 674 00:30:31,230 --> 00:30:32,440 Mehr dazu in der Zukunft. 675 00:30:32,440 --> 00:30:36,430 >> Es ist eine Datei, die Funktionen enthält, dass wir für Sie geschrieben. 676 00:30:36,430 --> 00:30:39,180 Und unter diesen Funktionen ist Funktionen für das Erhalten Eingangs 677 00:30:39,180 --> 00:30:43,520 von dem Benutzer, die es geben könnte, und Zahlen und reelle Zahlen und mehr. 678 00:30:43,520 --> 00:30:45,550 Aber es hat auch ein paar Abkürzungen. 679 00:30:45,550 --> 00:30:48,200 Es definiert eine Boolean als Datentyp. 680 00:30:48,200 --> 00:30:50,340 C nicht wahr oder falsch. 681 00:30:50,340 --> 00:30:53,880 Aber wir können es den Begriff der wahr oder falsch durch diese Bibliothek. 682 00:30:53,880 --> 00:30:57,670 Und es ist auch nicht eine Zeichenfolge aufweisen in bis wir schließen diese Zeile gebaut. 683 00:30:57,670 --> 00:31:01,090 Also diese Codezeile teilt der Compiler, hey, Clang, schauen 684 00:31:01,090 --> 00:31:03,570 in dieser Datei für eine ganze Haufen von Code, CS50 685 00:31:03,570 --> 00:31:06,330 hat, so dass schriftliche jemand mit diesem Datei 686 00:31:06,330 --> 00:31:09,330 kann selbstverständlich der nehmen Funktionen haben sie aufgenommen. 687 00:31:09,330 --> 00:31:11,220 >> So, jetzt lass mich weitermachen und löschen Sie den Bildschirm, 688 00:31:11,220 --> 00:31:14,178 und wenn neugierig Ich sage nur, Steuer l jedes Mal, um den Bildschirm zu löschen, 689 00:31:14,178 --> 00:31:15,500 oder Sie können klare eingeben. 690 00:31:15,500 --> 00:31:19,220 Ich werde einfach weitermachen und jetzt Art machen hallo, und alles ist gut. 691 00:31:19,220 --> 00:31:22,550 Immer noch eine arkane Ausgang, aber es ist nicht eine fehlerhafte Nachricht. 692 00:31:22,550 --> 00:31:28,300 Wenn ich aber tue dot Slash hallo, und als beiseite, dot Schrägstrich für die meisten nicht vertraut. 693 00:31:28,300 --> 00:31:30,430 Es bedeutet nur, Punkt Mittel das aktuelle Verzeichnis. 694 00:31:30,430 --> 00:31:33,120 Also, wenn Sie überhaupt benutzt haben DOS oder Linux oder Unix 695 00:31:33,120 --> 00:31:35,410 Sie vielleicht etwas getan haben, wie cd Punkt Punkt, wo 696 00:31:35,410 --> 00:31:39,220 dot dot bedeutet rückwärts gehen in Zeit, oder gehen Sie zurück, oder höher 697 00:31:39,220 --> 00:31:40,370 in Ihrem Verzeichnis. 698 00:31:40,370 --> 00:31:43,090 Punkt bedeutet nur schauen in das aktuelle Verzeichnis. 699 00:31:43,090 --> 00:31:45,670 Ich möchte hallo, was hier ist. 700 00:31:45,670 --> 00:31:47,750 Und in der Tat, jetzt sagt hallo Hannah. 701 00:31:47,750 --> 00:31:51,120 Und wenn ich es wieder ändern, Maria, neu kompilieren 702 00:31:51,120 --> 00:31:55,650 es wäre hallo, dot Strich machen hallo, das Programm ständig ändert. 703 00:31:55,650 --> 00:31:58,060 >> Dies ist jedoch immer noch ein ziemlich dumm Programm. 704 00:31:58,060 --> 00:32:00,972 Wenn ich will, um dieses Programm zu versenden, oder geben Sie es an einen Freund, 705 00:32:00,972 --> 00:32:03,430 oder geben Sie es an Maria oder Hannah für diese Angelegenheit, das ist in Ordnung. 706 00:32:03,430 --> 00:32:07,300 Ich kann es für beide von ihnen anpassen, aber es wird nie dynamisch. 707 00:32:07,300 --> 00:32:10,870 Sie kann es nicht ändern, sobald es zusammengestellt nach unten in diesen Nullen und Einsen. 708 00:32:10,870 --> 00:32:12,350 Also, was wir etwas schlauer? 709 00:32:12,350 --> 00:32:17,100 Was, wenn anstelle des Festcodierung in den Programm-Namen dieser Person, 710 00:32:17,100 --> 00:32:20,890 was, wenn wir nur erhalten, die Zeichenfolge auf Anfrage? 711 00:32:20,890 --> 00:32:22,430 >> Also mit anderen Worten, lassen Sie mich dies zu tun. 712 00:32:22,430 --> 00:32:24,030 Ich werde dieses Programm neu zu kompilieren. 713 00:32:24,030 --> 00:32:25,710 Und lassen Sie mich heranzoomen unten jetzt. 714 00:32:25,710 --> 00:32:29,920 Machen Sie hallo dot Strich hallo. 715 00:32:29,920 --> 00:32:31,710 Jetzt nichts passiert. 716 00:32:31,710 --> 00:32:35,860 Können wir einen schnellen Freiwilligen erhalten , etwas zu bewirken? 717 00:32:35,860 --> 00:32:36,360 Komm auf. 718 00:32:36,360 --> 00:32:37,020 Wie heißen Sie? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> David J. MALAN: Pacho? 721 00:32:38,361 --> 00:32:39,609 Komm auf. 722 00:32:39,609 --> 00:32:42,150 Sobald Sie erhalten hier, das ist wird sehr berauschend, 723 00:32:42,150 --> 00:32:44,060 aber es ist interessant als ich Eingabe. 724 00:32:44,060 --> 00:32:49,007 Wenn Sie, gehen Sie vor und geben Sie möchten, dass Ihre Namen, machte ich dieses Programm nur für Sie. 725 00:32:49,007 --> 00:32:49,840 Geben Sie einfach Ihren Namen an. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Enter. 728 00:32:53,900 --> 00:32:54,489 Wunderbar. 729 00:32:54,489 --> 00:32:55,780 Also gut, ich danke Ihnen sehr. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Vielen Dank. 731 00:32:56,708 --> 00:32:57,636 >> David J. MALAN: OK. 732 00:32:57,636 --> 00:32:59,028 >> [Applaus] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> Das war sehr nett. 735 00:33:01,840 --> 00:33:03,145 Bitte schön. 736 00:33:03,145 --> 00:33:03,770 Was haben wir getan? 737 00:33:03,770 --> 00:33:05,930 So dass wir schließlich zumindest machte dieses Programm dynamisch. 738 00:33:05,930 --> 00:33:08,400 Jetzt ist es noch sicher von Entwurf nicht gerade berauschend, 739 00:33:08,400 --> 00:33:11,480 aber wir endlich die Möglichkeit haben, Jetzt Code im Voraus zu schreiben, viel 740 00:33:11,480 --> 00:33:13,770 wie die Autoren der printf, und dann dynamisch 741 00:33:13,770 --> 00:33:17,550 adapt auf der Eingangs wir sind auf der Basis übergeben, entweder durch den Programmierer, 742 00:33:17,550 --> 00:33:20,610 oder durch den Menschen, der wirklich ist Interaktion mit dem Programm. 743 00:33:20,610 --> 00:33:22,990 Lassen Sie uns also eigentlich nun versuchen um ein paar andere Konstrukte zu tun 744 00:33:22,990 --> 00:33:26,625 und sehen, ob wir die Programme nicht zu machen sich immer ausgefeilter. 745 00:33:26,625 --> 00:33:29,250 Lassen Sie uns also weiter und statt zu gehen Schreiben dieses von Grund auf, 746 00:33:29,250 --> 00:33:31,540 Ich werde in die heutige gehen Quellcode, und dies alles 747 00:33:31,540 --> 00:33:34,290 ist auf den Verlauf des zur Verfügung Website, und Sie ziehen kann 748 00:33:34,290 --> 00:33:36,590 in Ihrer eigenen Umgebung kommen Freitag einmal Problem 749 00:33:36,590 --> 00:33:38,506 Satz 1 gibt Ihnen das Anweisungen, oder Sie könnten 750 00:33:38,506 --> 00:33:41,200 tun Sie es in der Befehlszeile als gut, aber mehr, um in p kommen Satz 1. 751 00:33:41,200 --> 00:33:44,940 >> Lassen Sie uns sehen, was in diesem Programm hier genannt, Addierer Punkt c. 752 00:33:44,940 --> 00:33:47,970 Jetzt habe ich schon kommentiert , aber was ist neu? 753 00:33:47,970 --> 00:33:51,230 Auf den ersten Blick, was für Linie Code ist absolut neu? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Wahrscheinlich nicht grundlegend unbekannte jetzt. 756 00:33:56,780 --> 00:33:58,417 >> ZIELGRUPPE: [unverständlich] 757 00:33:58,417 --> 00:34:00,250 David J. MALAN: Ja, so int x gleich zu n. 758 00:34:00,250 --> 00:34:03,760 Wir haben noch nie etwas davon gesehen vor, aber int ist wahrscheinlich 759 00:34:03,760 --> 00:34:08,179 das Symbol für welche Art von Variable, [? aus?] Integer. 760 00:34:08,179 --> 00:34:09,040 So int für Integer. 761 00:34:09,040 --> 00:34:11,420 Es ist einfach nur mehr prägnant. x ist nur willkürlich. 762 00:34:11,420 --> 00:34:13,920 x und y und z sind noch ziemlich vernünftig für Zahlen, 763 00:34:13,920 --> 00:34:16,790 aber in der Regel werden wir also einmal verwenden unsere Programme immer komplexer. 764 00:34:16,790 --> 00:34:18,940 Holen int, natürlich, ähnlich wie get string, 765 00:34:18,940 --> 00:34:21,629 ist wahrscheinlich zu bekommen ein Int vom Benutzer, 766 00:34:21,629 --> 00:34:23,670 und dann werden wir zu gehen das Gleiche tun mit y. 767 00:34:23,670 --> 00:34:27,610 Und offensichtlich, obwohl dies letzte Zeile, 24, sieht aus komplexer, 768 00:34:27,610 --> 00:34:32,679 es geht um die Summe sagen und das ist, diese andere Sache. 769 00:34:32,679 --> 00:34:35,840 >> Und beachtet Prozent i wahrscheinlich bedeutet was? 770 00:34:35,840 --> 00:34:38,190 Welche Rolle spielt Prozent i offenbar zu dienen? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 Es ist nur Platzhalter. 773 00:34:41,719 --> 00:34:42,219 Recht? 774 00:34:42,219 --> 00:34:45,149 Prozent s war für Streichquartett, Prozent i ist für Integer. 775 00:34:45,149 --> 00:34:47,690 Es geht um Prozent f für Fließkommawert, der 776 00:34:47,690 --> 00:34:49,273 ist nur eine Zahl mit einem Dezimalpunkt. 777 00:34:49,273 --> 00:34:50,590 In anderen Worten, eine reelle Zahl ist. 778 00:34:50,590 --> 00:34:55,270 Lassen Sie uns also tatsächlich kompilieren diese programmieren ganz schnell und dies machen Addierer. 779 00:34:55,270 --> 00:34:57,962 Whoops. 780 00:34:57,962 --> 00:34:58,670 Gute Gelegenheit. 781 00:34:58,670 --> 00:35:02,970 So bemerken hier, die ganze Zeit über meinen Benutzer Namen für dieses Konto wird jharvard. 782 00:35:02,970 --> 00:35:06,620 Ich bin in CS50 IDE, aka IDE50. 783 00:35:06,620 --> 00:35:11,030 Und jetzt hier blau, ist eine Erwähnung, aber aus der Umgebung, von wo ich bin. 784 00:35:11,030 --> 00:35:16,050 Und in der Tat, wenn ich heran bis an die Spitze hier bemerken, dass ich eine IDE50 785 00:35:16,050 --> 00:35:19,490 und ich sehe, dieses Wort, wenn Sie Art drehen Sie den Kopf zur Seite, Arbeitsplatz. 786 00:35:19,490 --> 00:35:23,890 Kurz gesagt, die Tatsache, dass Ich sehe Tilde-Schrägstrich-Arbeitsbereich 787 00:35:23,890 --> 00:35:26,910 bedeutet, dass in diesem Text basierte Befehlsumgebung, 788 00:35:26,910 --> 00:35:32,300 Ich bin in das Textäquivalent Diese grafische Ordner hier oben. 789 00:35:32,300 --> 00:35:35,730 Also, wenn ich tun dot Schrägstrich Addierer, ist es keine Regel, die besagt 790 00:35:35,730 --> 00:35:37,372 Ziel Addierer Stopp zu machen. 791 00:35:37,372 --> 00:35:39,830 Ich weiß nicht, was das bedeutet, aber es ist schlecht aus irgendeinem Grund. 792 00:35:39,830 --> 00:35:43,310 Keine solche Datei oder Verzeichnis ist sogar noch deutlich. 793 00:35:43,310 --> 00:35:45,670 Wo ist es denn? 794 00:35:45,670 --> 00:35:47,820 Basierend auf, wo ich geklickt , um die Datei vorher zu öffnen. 795 00:35:47,820 --> 00:35:49,442 Wo könnte es sein? 796 00:35:49,442 --> 00:35:52,050 >> Es ist wahrscheinlich in Quelle ein w, für Mittwoch, 797 00:35:52,050 --> 00:35:53,960 und ich kann es sehen, in der Tat, wenn ich öffnen, dass bis. 798 00:35:53,960 --> 00:35:57,220 Es gibt Addierer Punkt c, aber in Diese textbasierte Umgebung, 799 00:35:57,220 --> 00:35:59,380 wieder, ich habe Super explizit zu sein. 800 00:35:59,380 --> 00:36:03,950 Wenn ich auf Verzeichnisse in ändern möchten Quelle einen Mittwoch, muss ich geben, 801 00:36:03,950 --> 00:36:07,210 cd Raum Quelle ein Mittwoch geben und jetzt 802 00:36:07,210 --> 00:36:09,810 meine Aufforderung Änderungen geben Sie mir einen visuellen Hinweis, dass 803 00:36:09,810 --> 00:36:12,330 Ich bin in der Tat an anderer Stelle in meiner Umgebung, 804 00:36:12,330 --> 00:36:15,710 aber jetzt kann ich dies machen Addierer, so scheint es, um zu arbeiten, 805 00:36:15,710 --> 00:36:18,190 dot Slash Addierer, geben Sie mir eine ganze Zahl. 806 00:36:18,190 --> 00:36:19,080 One. 807 00:36:19,080 --> 00:36:20,070 Zwei. 808 00:36:20,070 --> 00:36:21,630 Die Summe von eins und zwei ist drei. 809 00:36:21,630 --> 00:36:24,140 Aber wenn ich nicht mit, mal sehen, was zu bekommen int tut. 810 00:36:24,140 --> 00:36:25,200 Geben Sie mir eine ganze Zahl. 811 00:36:25,200 --> 00:36:26,590 Nein. 812 00:36:26,590 --> 00:36:27,350 Wiederholen. 813 00:36:27,350 --> 00:36:29,060 OK. 814 00:36:29,060 --> 00:36:30,520 Fein. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Gut. 818 00:36:33,010 --> 00:36:34,055 So ist es schließlich zusammenarbeitet. 819 00:36:34,055 --> 00:36:36,430 Und das ist, einige der Funktionalität, die diese Funktionen 820 00:36:36,430 --> 00:36:37,760 kann für Sie gebaut haben. 821 00:36:37,760 --> 00:36:43,330 >> So in der Umsetzung bekommen int, welche Programmier 822 00:36:43,330 --> 00:36:47,990 konstruieren, aus der vergangenen Woche ist wahrscheinlich in gibt, dieses Verhalten der Wiederholungs zwingen, 823 00:36:47,990 --> 00:36:49,962 wiederholen, wiederholen? 824 00:36:49,962 --> 00:36:51,670 Ja, es gibt wahrscheinlich eine Art Schleife. 825 00:36:51,670 --> 00:36:54,160 Es wird syntaktisch suchen verschieden von Blöcken Scratch ist, 826 00:36:54,160 --> 00:36:55,880 aber das ist in der Tat was innerhalb der Datei. 827 00:36:55,880 --> 00:36:58,505 Und in ein paar Wochen Zeit wir werden tatsächlich an der CS50-Bibliothek suchen 828 00:36:58,505 --> 00:37:02,000 , was drin ist, aber es gibt eine Schleife zur Einführung genau das. 829 00:37:02,000 --> 00:37:04,840 >> Wir spielen eine dumme kleine Spiel hier mit dieser Datei. 830 00:37:04,840 --> 00:37:06,550 Condition Zero Punkt c. 831 00:37:06,550 --> 00:37:08,960 Wir sind gerade dabei, in der Regel Zählen beginnen bei Null. 832 00:37:08,960 --> 00:37:11,220 Und ich halte Scrollen vorbei einige der Sachen oben. 833 00:37:11,220 --> 00:37:15,390 In blauer hier, mit allen abgegrenzt dieser Sterne und den Schrägstrichen, 834 00:37:15,390 --> 00:37:17,310 diejenigen von Ihnen, zu programmieren vor, was ist das? 835 00:37:17,310 --> 00:37:18,690 Warum müssen wir halten das Überspringen über sie? 836 00:37:18,690 --> 00:37:19,110 Was? 837 00:37:19,110 --> 00:37:19,490 >> ZIELGRUPPE: Es ist ein Kommentar. 838 00:37:19,490 --> 00:37:19,800 >> David J. MALAN: Ja. 839 00:37:19,800 --> 00:37:20,633 Es ist nur ein Kommentar. 840 00:37:20,633 --> 00:37:24,160 Dies ist ein Kommentar für den Menschen zu lesen, dass in unserem Fall, 841 00:37:24,160 --> 00:37:27,120 sagt uns, was der Name der Datei ist, wer es geschrieben hat, und was es tut, 842 00:37:27,120 --> 00:37:28,610 so dass Sie nicht haben, um den Code zu lesen 843 00:37:28,610 --> 00:37:30,110 zu wissen, was diese Datei geht. 844 00:37:30,110 --> 00:37:33,110 Es ist nur eine Beschreibung, aber funktional, es ist irrelevant. 845 00:37:33,110 --> 00:37:35,930 Und ich kann auch aus löschen meine Datei, und es hat keine Auswirkungen. 846 00:37:35,930 --> 00:37:38,740 Die saftigen Leitungen sind diese ersten beiden hier, jetzt. 847 00:37:38,740 --> 00:37:41,405 int main Leere ist das Äquivalent unserer, wenn grüne Flagge geklickt haben, 848 00:37:41,405 --> 00:37:44,030 also werden wir zu gehen, dass sein für heute, und wir werden wieder kommen, 849 00:37:44,030 --> 00:37:46,940 Schließlich, was int und nichtig sind, aber jetzt, 850 00:37:46,940 --> 00:37:49,500 bemerken, was ich getan habe, Auch hier können Sie auch, 851 00:37:49,500 --> 00:37:51,736 wenn Sie ein in Zeile haben kommentieren, wenn Sie 852 00:37:51,736 --> 00:37:54,670 ein Gedanke, die Sie teilen möchten über ein spezielles Codezeile, 853 00:37:54,670 --> 00:37:58,910 Convention in C ist es, Schrägstrich zu tun Schrägstrich, und dann ein paar knappen Worten, 854 00:37:58,910 --> 00:38:01,500 nicht eine volle Satz, in der Regel nicht ein Absatz, 855 00:38:01,500 --> 00:38:05,310 dass gerade erklärt Ihnen oder Ihrem TF oder anderen Nutzern oder Kollegen, 856 00:38:05,310 --> 00:38:06,990 was Ihr Code tut. 857 00:38:06,990 --> 00:38:10,150 Also anstatt lange suchen auf diese und leiten aus Linien 858 00:38:10,150 --> 00:38:12,550 neun und 10, was dies zu tun, im Einklang acht 859 00:38:12,550 --> 00:38:14,945 Ich gebe nur kommentieren bitten Sie den Benutzer für eine ganze Zahl, 860 00:38:14,945 --> 00:38:17,820 dann habe ich nicht zu hart zu denken, über das, was Linien neun und 10 sind. 861 00:38:17,820 --> 00:38:19,720 Ich weiß nur, dass das ist, was kollektiv sie tun. 862 00:38:19,720 --> 00:38:20,460 >> Wie? 863 00:38:20,460 --> 00:38:22,060 Nun, hier ist die Eingabeaufforderung. 864 00:38:22,060 --> 00:38:23,610 Hier ist das immer der int. 865 00:38:23,610 --> 00:38:25,984 Und auf der vorherigen basierend Verhalten, wie es scheint get int 866 00:38:25,984 --> 00:38:29,080 ist intelligent genug, um sicherzustellen, dass der menschliche kooperiert und gibt sie 867 00:38:29,080 --> 00:38:30,090 eine Ganzzahl. 868 00:38:30,090 --> 00:38:32,270 Aber jetzt sehen wir das. 869 00:38:32,270 --> 00:38:33,740 Und das erinnert an Scratch. 870 00:38:33,740 --> 00:38:36,140 Ich behauptete, dass ich Analysieren der Eingabe des Anwenders, 871 00:38:36,140 --> 00:38:39,050 aber etwas ungenau. 872 00:38:39,050 --> 00:38:43,200 Und das offenbar in C ist, wie wir zum Ausdruck bringen, wenn ein anderes, ein Zweig, 873 00:38:43,200 --> 00:38:46,320 eine Gabel in der Straße, aber ich sagen etwas ungenau. 874 00:38:46,320 --> 00:38:50,470 Was ist der Fehler in diesem Programm? 875 00:38:50,470 --> 00:38:51,610 Über weiter hinten? 876 00:38:51,610 --> 00:38:52,223 Ja. 877 00:38:52,223 --> 00:38:53,150 >> ZIELGRUPPE: [unverständlich] Null. 878 00:38:53,150 --> 00:38:54,025 >> David J. MALAN: Ja. 879 00:38:54,025 --> 00:38:57,630 Also, wenn ich geben Sie Null, laßt uns überlegen, genau das Fall oder eine Ecke Fall 880 00:38:57,630 --> 00:38:58,450 wenn du möchtest. 881 00:38:58,450 --> 00:39:02,790 Also, wenn ich geben Sie Null, die aus den Blöcke wird sich offenbar packen es? 882 00:39:02,790 --> 00:39:04,660 Die if oder anderes? 883 00:39:04,660 --> 00:39:07,340 Der andere, und es wird sagen: Sie nahm eine negative Zahl. 884 00:39:07,340 --> 00:39:10,476 Und in der Tat Null wird nicht zugelassen positiv oder negativ ist, 885 00:39:10,476 --> 00:39:11,850 und so, dass wäre falsch zu sein. 886 00:39:11,850 --> 00:39:12,930 Das wäre ein Fehler zu sein. 887 00:39:12,930 --> 00:39:14,580 Wie können wir dieses Problem beheben? 888 00:39:14,580 --> 00:39:16,360 Jemand, der noch nie zuvor programmiert wurde? 889 00:39:16,360 --> 00:39:16,570 Willst du-- 890 00:39:16,570 --> 00:39:17,480 >> ZIELGRUPPE: [unverständlich] 891 00:39:17,480 --> 00:39:17,990 >> David J. MALAN: Zurückziehen? 892 00:39:17,990 --> 00:39:18,570 >> ZIELGRUPPE: [unverständlich] 893 00:39:18,570 --> 00:39:18,930 >> David J. MALAN: Oh, haben Sie? 894 00:39:18,930 --> 00:39:20,350 Jemand, der noch nie zuvor programmiert wurde. 895 00:39:20,350 --> 00:39:21,750 Möchten Sie Ihr Glück beim versuchen Dazu im roten T-Shirt? 896 00:39:21,750 --> 00:39:22,600 Komm auf. 897 00:39:22,600 --> 00:39:25,320 Oh yeah, come on up, wenn Sie nichts dagegen haben. 898 00:39:25,320 --> 00:39:27,586 Deshalb sollten Sie nie mit so programmiert vor, was ist Ihr Name? 899 00:39:27,586 --> 00:39:28,210 LAUREN: Lauren. 900 00:39:28,210 --> 00:39:29,626 David J. MALAN: Lauren, alles in Ordnung. 901 00:39:29,626 --> 00:39:31,150 So beheben Sie diesen Fehler für uns. 902 00:39:31,150 --> 00:39:35,070 Sie haben nicht gesehen, C, vermutlich, und wahrscheinlich keine andere Sprache. 903 00:39:35,070 --> 00:39:38,380 So beheben Sie dieses Programm für uns. 904 00:39:38,380 --> 00:39:39,100 Schön, dich zu treffen. 905 00:39:39,100 --> 00:39:39,615 Kein Druck. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Ja. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> David J. MALAN: Aber auch wenn diese Glücksspiel nach Plan läuft, 909 00:39:46,270 --> 00:39:48,350 das Essen zum Mitnehmen Hier sein, nur einmal zu starten 910 00:39:48,350 --> 00:39:51,080 um Muster zu erkennen und folgern aus bestehenden Syntax 911 00:39:51,080 --> 00:39:55,420 Wie sonst können Sie zum Ausdruck bringen sich selbst, kein Wortspiel beabsichtigt, um 912 00:39:55,420 --> 00:39:58,410 einige zusätzliche Szenario zu erfassen. 913 00:39:58,410 --> 00:39:59,603 So wir sagen else if. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, gut. 916 00:40:05,230 --> 00:40:09,120 Und mit CS50 merken IDE und frankly-- IDE 917 00:40:09,120 --> 00:40:11,110 steht für Integrated Entwicklungsumgebung. 918 00:40:11,110 --> 00:40:14,110 Es ist nur eine andere Art zu sagen ein Programm, das Programm hilft. 919 00:40:14,110 --> 00:40:16,779 Es tut benutzerfreundliche Dinge wie wenn Sie eine Klammer eingeben, 920 00:40:16,779 --> 00:40:18,320 es gibt Ihnen automatisch die anderen. 921 00:40:18,320 --> 00:40:20,760 Die Vermutung ist, dass Sie schließlich werde zu geben möchten, 922 00:40:20,760 --> 00:40:22,400 und es tut es auch mit Zitaten. 923 00:40:22,400 --> 00:40:24,190 >> So Ich mag die Leitung 23. 924 00:40:24,190 --> 00:40:26,400 99% der Weg dorthin. 925 00:40:26,400 --> 00:40:29,920 Jemand möchte mit einer Spitze in Glockenspiel? 926 00:40:29,920 --> 00:40:31,420 Ich habe gehört, Semikolon aus dem Publikum. 927 00:40:31,420 --> 00:40:32,080 Gut. 928 00:40:32,080 --> 00:40:33,260 So dass vollendet, dass. 929 00:40:33,260 --> 00:40:37,930 Und jetzt, ich habe nur ein wenig Bestürzung mit der Linie 21. 930 00:40:37,930 --> 00:40:41,370 Wie wollen wir dies zum Ausdruck bringen? 931 00:40:41,370 --> 00:40:43,370 Welche Frage wollen wir zu fragen, denken Sie? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Also vorher fragten wir die Frage, wenn n größer als Null ist, dies zu tun. 934 00:40:50,330 --> 00:40:51,870 Else, das tun. 935 00:40:51,870 --> 00:40:54,317 Also müssen wir eine Auswahl Frage hier zu stellen. 936 00:40:54,317 --> 00:40:55,192 ZIELGRUPPE: [unverständlich] 937 00:40:55,192 --> 00:40:56,530 David J. MALAN: Good. 938 00:40:56,530 --> 00:40:58,290 Also, wenn n gleich Null ist. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Ausgezeichnet. 941 00:41:02,100 --> 00:41:03,080 Also lassen Sie uns hier anhalten. 942 00:41:03,080 --> 00:41:04,850 Vielen, vielen Dank für diese trotzen. 943 00:41:04,850 --> 00:41:10,890 Lassen Sie mich ein wenig wohlverdienten Ihnen Stress-Ball, vielleicht gibt. 944 00:41:10,890 --> 00:41:11,900 Also wir haben es fast geschafft. 945 00:41:11,900 --> 00:41:14,790 In der Tat, Lauren, wenn Sie nicht Geist, lassen Sie mich hier zu zwicken, 946 00:41:14,790 --> 00:41:17,850 nur im Einklang sogar sein was wir in Scratch sah, was 947 00:41:17,850 --> 00:41:21,080 will ich mich mit Linien zu tun 21 und 24, nur einmal auf der Basis 948 00:41:21,080 --> 00:41:23,290 wie wir taten dies im Scratch, vielleicht? 949 00:41:23,290 --> 00:41:24,230 >> ZIELGRUPPE: Move it up. 950 00:41:24,230 --> 00:41:25,605 >> David J. MALAN: Ja, verschieben Sie sie auf. 951 00:41:25,605 --> 00:41:30,260 Also die anderen Zustand, der dritte oder vierten oder fünften oder endgültige Zweig, 952 00:41:30,260 --> 00:41:34,100 sollte in der Tat danach kommen, und das ist nur durch Konvention, 953 00:41:34,100 --> 00:41:36,047 nur weil wenn man so will. 954 00:41:36,047 --> 00:41:37,380 Also ich tun müssen, um dieses zwicken zu machen. 955 00:41:37,380 --> 00:41:39,660 Und ich muss meine setzen geschweifte Klammer wieder hier. 956 00:41:39,660 --> 00:41:42,700 Und jetzt wird dieses Programm zu kompilieren. 957 00:41:42,700 --> 00:41:46,140 Wir sind so nah, aber es gibt ein sehr, sehr subtilen Bug. 958 00:41:46,140 --> 00:41:47,200 Mal sehen was passiert. 959 00:41:47,200 --> 00:41:49,660 >> Zunächst möchte ich voran gehen und zu verkleinern. 960 00:41:49,660 --> 00:41:53,405 Ich werde weitermachen und make Zustand Null. 961 00:41:53,405 --> 00:41:55,070 Oh, ich habe gelogen. 962 00:41:55,070 --> 00:41:58,760 Nun der Compiler eigentlich ziemlich smart. 963 00:41:58,760 --> 00:42:00,950 Und ich verstehe nicht wirklich, es ist Fehlermeldung. 964 00:42:00,950 --> 00:42:04,310 Verwenden des Ergebnisses einer Zuweisung als Bedingung ohne Klammern, 965 00:42:04,310 --> 00:42:05,740 ist offenbar schlecht. 966 00:42:05,740 --> 00:42:07,100 Aber was bedeutet das? 967 00:42:07,100 --> 00:42:10,860 >> Nun wieder auf der Suche nach Mustern in Code, den wir bisher gesehen haben, 968 00:42:10,860 --> 00:42:16,640 was ist die Leitung 17 tatsächlich tun, obwohl Lauren leicht bestimmt 969 00:42:16,640 --> 00:42:18,790 Andernfalls? 970 00:42:18,790 --> 00:42:19,290 Ja. 971 00:42:19,290 --> 00:42:21,565 >> ZIELGRUPPE: [unverständlich] 972 00:42:21,565 --> 00:42:22,440 David J. MALAN: Ja. 973 00:42:22,440 --> 00:42:26,610 Also denken Sie daran das Gleichheitszeichen, offenbar wie wir sie benutzt haben, bevor, ist nicht gleich. 974 00:42:26,610 --> 00:42:29,240 Seine Aufgabe, von rechts nach links. 975 00:42:29,240 --> 00:42:33,810 So Linie 17 in dem Moment ist ein Zustand, und es ist 976 00:42:33,810 --> 00:42:37,890 Ausführen von Code innerhalb der Klammern, aber wenn, dass Code ausgeführt wird, 977 00:42:37,890 --> 00:42:42,140 was mit dem Wert von Null vor? 978 00:42:42,140 --> 00:42:45,250 Was mit dem Wert von n vor? 979 00:42:45,250 --> 00:42:46,810 Zu Null. 980 00:42:46,810 --> 00:42:50,520 Also, wenn n ist immer Null, und wieder, nach der letzten Woche, 981 00:42:50,520 --> 00:42:54,690 wir in der Regel sagen, dass Null- ist falsch und eine wahr ist, 982 00:42:54,690 --> 00:42:57,410 oder ja ist eins und nicht Null ist. 983 00:42:57,410 --> 00:42:59,590 So wahr und falsch, eine und 0. 984 00:42:59,590 --> 00:43:06,090 Wenn n ab Zeile 17 hat angesichts der Wert 0, Null ist wahr? 985 00:43:06,090 --> 00:43:06,590 Nein. 986 00:43:06,590 --> 00:43:08,280 Per Definition Null ist falsch. 987 00:43:08,280 --> 00:43:10,860 Das ist die Konvention sind wir gehen, um vorwärts zu klammern. 988 00:43:10,860 --> 00:43:17,320 So wird Linien 18, 19, und 20 haupt jetzt gelten, logisch? 989 00:43:17,320 --> 00:43:18,320 Sie können nicht. 990 00:43:18,320 --> 00:43:21,640 Also die Frage gestellt, wir aber nicht ganz exakt, 991 00:43:21,640 --> 00:43:25,620 und Sie würden nicht wissen, es sei denn Sie es gesehen haben, die Lösung in C 992 00:43:25,620 --> 00:43:29,610 ist, wenn Sie zum Ausdruck bringen wollen, Gleichheit, sagen, Sie Gleichen gleich. 993 00:43:29,610 --> 00:43:33,140 So Gleichheitszeichen wurde bereits verwendet durch eine Übertragung von rechts nach links. 994 00:43:33,140 --> 00:43:35,110 Equals gleich Mittel entspricht. 995 00:43:35,110 --> 00:43:37,950 Und wenn Sie wirklich wollen Ihre Meinung gebogen werden, in JavaScript und PHP, 996 00:43:37,950 --> 00:43:40,490 es gibt gleich gleich equals, die bedeutet etwas ganz anderes, 997 00:43:40,490 --> 00:43:41,990 aber wir werden zu bekommen, dass es dauerte nicht lange. 998 00:43:41,990 --> 00:43:45,760 >> Also das ist eine einfache Lösung, aber erkennen, Super leicht, diesen Fehler zu machen, 999 00:43:45,760 --> 00:43:48,700 und dann wundern und Kampf für Minuten, wenn nicht Stunden, 1000 00:43:48,700 --> 00:43:51,490 Warum ist mein Code nicht Ausführen als ich vorhabe? 1001 00:43:51,490 --> 00:43:54,140 Es ist, weil Sie nicht sagen, es genau das, was Sie meinten. 1002 00:43:54,140 --> 00:43:56,450 Das war also fast perfekt war und es ist toll 1003 00:43:56,450 --> 00:44:00,760 dass wir in diesen beiden kleinen stolperte Dinge, denn jetzt, wenn wir sie zu beheben, 1004 00:44:00,760 --> 00:44:06,240 und ich machen Condition Zero dot Slash Zustand Null ist, 1005 00:44:06,240 --> 00:44:07,490 Ich möchte eine ganze Zahl bitte. 1006 00:44:07,490 --> 00:44:08,090 Mal sehen. 1007 00:44:08,090 --> 00:44:09,160 Nein. 1008 00:44:09,160 --> 00:44:10,740 Es wird mich zwingen, es zu tun. 1009 00:44:10,740 --> 00:44:11,990 So 42. 1010 00:44:11,990 --> 00:44:13,590 Ich entschied mich für eine positive Zahl. 1011 00:44:13,590 --> 00:44:16,470 So, jetzt muss ich beweisen, wie dieses Programm richtig? 1012 00:44:16,470 --> 00:44:19,990 Wenn Sie ein Mathematiker sind, können Sie nicht wirklich beweisen dies durch Versuch und Irrtum, 1013 00:44:19,990 --> 00:44:20,490 Recht? 1014 00:44:20,490 --> 00:44:23,180 Man kann nicht einfach Beweis durch Beispielsweise, aber zumindest 1015 00:44:23,180 --> 00:44:25,494 als Programmierer sind wir nicht werde versuchen, für jetzt beweisen, 1016 00:44:25,494 --> 00:44:27,660 dass dies tatsächlich richtig, aber ich wahrscheinlich 1017 00:44:27,660 --> 00:44:29,470 testen einige repräsentative Fälle. 1018 00:44:29,470 --> 00:44:31,070 >> Ich habe 42 getestet. 1019 00:44:31,070 --> 00:44:33,030 Ich konnte 43 zu testen. 1020 00:44:33,030 --> 00:44:34,910 Ich konnte 44 zu testen. 1021 00:44:34,910 --> 00:44:35,640 Test 45. 1022 00:44:35,640 --> 00:44:36,140 Recht? 1023 00:44:36,140 --> 00:44:37,860 Aber ich könnte dies eine wirklich lange Zeit zu tun. 1024 00:44:37,860 --> 00:44:39,925 Was wäre etwas mehr sein interessante Fälle zu versuchen? 1025 00:44:39,925 --> 00:44:41,050 ZIELGRUPPE: [unverständlich] Null. 1026 00:44:41,050 --> 00:44:41,740 David J. MALAN: Also Null. 1027 00:44:41,740 --> 00:44:42,297 Sicherlich. 1028 00:44:42,297 --> 00:44:44,880 Und gut, wir haben es dieses Mal bekam, dank neuer Code Lauren. 1029 00:44:44,880 --> 00:44:46,213 Was ist ein weiteres gutes Beispiel, um zu versuchen? 1030 00:44:46,213 --> 00:44:47,320 ZIELGRUPPE: negativ. 1031 00:44:47,320 --> 00:44:50,070 >> David J. MALAN: Negativ eins, und vielleicht etwas ein wenig größer, 1032 00:44:50,070 --> 00:44:52,617 so vielleicht negativen 42, aber im allgemeinen, wenn 1033 00:44:52,617 --> 00:44:54,450 Testen Ihrer Programme voran, du bist 1034 00:44:54,450 --> 00:44:56,325 gehen zu denken, zu wollen, zu sich selbst, wie das, was 1035 00:44:56,325 --> 00:44:58,050 sind die grundlegenden verschiedene Fälle. 1036 00:44:58,050 --> 00:45:01,720 Und ich wage zu behaupten, einen negativen Fall ein positiver Fall ist, und ein Null-Fall 1037 00:45:01,720 --> 00:45:03,365 ziemlich rundet diese heraus. 1038 00:45:03,365 --> 00:45:04,990 Lassen Sie uns an einer Variante dieses though. 1039 00:45:04,990 --> 00:45:06,930 AGB eins. 1040 00:45:06,930 --> 00:45:11,224 Das ist eine richtige Lösung hier, so dass Sie zwei und Online zu sehen, 1041 00:45:11,224 --> 00:45:13,390 wenn Sie durch die zu Fuß Komplettlösungen, wird in der Regel 1042 00:45:13,390 --> 00:45:18,090 erhöhen diese schrittweise bis wir genau das bekommen, den richtigen Ansatz. 1043 00:45:18,090 --> 00:45:20,070 Was ist, wenn wir uns fragen, wollte zwei Fragen auf einmal? 1044 00:45:20,070 --> 00:45:22,200 >> Lassen Sie mich eröffnen diese statt. 1045 00:45:22,200 --> 00:45:26,740 Nicht-Switch aus Gründen wir werden ein anderes Mal zu sehen. 1046 00:45:26,740 --> 00:45:29,610 Was ist neu syntaktisch hier? 1047 00:45:29,610 --> 00:45:32,760 Ich bin derzeit ein Spiel wo der Computer sagt 1048 00:45:32,760 --> 00:45:35,550 mir, gib mir eine ganze Zahl zwischen einem und 10, 1049 00:45:35,550 --> 00:45:37,180 und dann werde ich die Beurteilung der Benutzereingabe. 1050 00:45:37,180 --> 00:45:39,180 In Englisch, basierend auf der Code Sie hier sehen, 1051 00:45:39,180 --> 00:45:41,530 in blau, was dieses Programm zu tun? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 ZIELGRUPPE: [unverständlich] abgeholt eine große oder kleine Anzahl. 1054 00:45:46,380 --> 00:45:46,484 David J. MALAN: Ja. 1055 00:45:46,484 --> 00:45:49,450 Es ist nur, ob Spruch Ich entschied mich für einen großen oder mittleren, 1056 00:45:49,450 --> 00:45:53,900 oder geringe Anzahl an einem sehr basierten willkürliche Definition von kleinen, mittleren, 1057 00:45:53,900 --> 00:45:58,510 und hier groß, aber Ankündigung die Syntax, die neu ist ist dies. 1058 00:45:58,510 --> 00:46:02,340 Es gibt nicht weniger als int oder gleich unterschreiben, oder größer als oder gleich zu unterzeichnen, 1059 00:46:02,340 --> 00:46:05,430 wobei eine über der anderen, dass man kann wie Microsoft Word zum Ausdruck bringen in. 1060 00:46:05,430 --> 00:46:08,180 Also in einer Programmiersprache in der Regel nur zwei Zeichen zu tun, 1061 00:46:08,180 --> 00:46:09,450 einer nach dem anderen. 1062 00:46:09,450 --> 00:46:12,695 Und was diese wahrscheinlich nicht darstellen, Ampersand Ampersand. 1063 00:46:12,695 --> 00:46:13,570 ZIELGRUPPE: [unverständlich] 1064 00:46:13,570 --> 00:46:13,680 David J. MALAN: Ja. 1065 00:46:13,680 --> 00:46:16,910 Es bedeutet nur, und weil es stellt sich heraus, dass die Autoren der C 1066 00:46:16,910 --> 00:46:19,120 verwendet ein einzelnes Und-Zeichen, was Sie vielleicht denken 1067 00:46:19,120 --> 00:46:22,430 wäre perfekt für den Begriff der, und ist bereits aufgebraucht ist, 1068 00:46:22,430 --> 00:46:27,300 so Ampersand Ampersand tatsächlich erfasst den Fall, dass wir eigentlich wollen. 1069 00:46:27,300 --> 00:46:30,610 >> Also lassen Sie uns nun über zwei Dinge stolpern. 1070 00:46:30,610 --> 00:46:32,640 Lassen Sie mich gehen Sie vor und eröffnen ein. 1071 00:46:32,640 --> 00:46:36,590 Etwas, das ein wenig besorgniserregend ist. 1072 00:46:36,590 --> 00:46:37,970 Ungenauigkeit Punkt c. 1073 00:46:37,970 --> 00:46:40,260 Lassen Sie mich zwei Dinge hier vorstellen. 1074 00:46:40,260 --> 00:46:44,720 One, Bekanntmachung, die wir tun können, Mathe, als nach wie vor, wenn 1075 00:46:44,720 --> 00:46:47,797 wir taten Plus von zwei Zahlen, x und y. 1076 00:46:47,797 --> 00:46:49,380 Was ist das Programm offenbar gerade? 1077 00:46:49,380 --> 00:46:52,140 Ich habe es nicht kommentiert, und ich habe Prozent f eingeführt, 1078 00:46:52,140 --> 00:46:55,720 aber ich habe schnell gesagt habe Prozent f bedeutet, Floating-Point- 1079 00:46:55,720 --> 00:46:56,970 Wert, der reelle Zahl ist. 1080 00:46:56,970 --> 00:46:59,520 Etwas mit einer Dezimalstelle Punkt, der keine ganze Zahl ist. 1081 00:46:59,520 --> 00:47:02,270 Was denken Sie, ist dieses Programm versucht, mich auf dem Bildschirm zu zeigen? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Ja? 1084 00:47:06,050 --> 00:47:07,550 Publikum: Das Ergebnis einer über 10. 1085 00:47:07,550 --> 00:47:07,780 David J. MALAN: Ja. 1086 00:47:07,780 --> 00:47:09,680 Was ist das Ergebnis einer durch 10 geteilt. 1087 00:47:09,680 --> 00:47:12,721 Richtig, weil alle von Ihnen haben wahrscheinlich bis zu wissen, dass man über 10 gewachsen 1088 00:47:12,721 --> 00:47:14,502 ist was? 1089 00:47:14,502 --> 00:47:16,220 Ja, es ist nur 1/10 oder 0,1. 1090 00:47:16,220 --> 00:47:16,720 Recht? 1091 00:47:16,720 --> 00:47:19,010 Also mal sehen, was das eigentlich ist. 1092 00:47:19,010 --> 00:47:21,010 Also lassen Sie mich gehen Sie vor und speichern Sie diese. 1093 00:47:21,010 --> 00:47:21,970 Lassen Sie mich hier unten zu gehen. 1094 00:47:21,970 --> 00:47:26,360 Machen Ungenauigkeit dot Schrägstrich Ungenauigkeit und Hinweis Auch 1095 00:47:26,360 --> 00:47:29,380 in einer Linux-Umgebung, Sie dies nicht tun haben zu tippen Ungenauigkeit und nehmen Sie 1096 00:47:29,380 --> 00:47:30,010 den ganzen Tag. 1097 00:47:30,010 --> 00:47:32,910 Es in der Regel, wenn Sie Tab getroffen, es Ihr Gedanke für Sie fertig sind, 1098 00:47:32,910 --> 00:47:36,660 basierend auf den Worten, die sind im aktuellen Verzeichnis. 1099 00:47:36,660 --> 00:47:37,160 OK. 1100 00:47:37,160 --> 00:47:37,970 So dass Sie hatten Recht. 1101 00:47:37,970 --> 00:47:41,239 Eine durch 10 geteilt ist, in der Tat, 0.1. 1102 00:47:41,239 --> 00:47:42,280 Aber ich bin ein wenig neugierig. 1103 00:47:42,280 --> 00:47:44,196 Und es stellt sich heraus printf unterstützt einige Funktionen 1104 00:47:44,196 --> 00:47:48,700 wobei Sie mehr als geben Die Standardanzahl der Dezimalstellen. 1105 00:47:48,700 --> 00:47:52,140 Also, wenn ich 10 Dezimal sehen Punkten kann ich Prozent zu tun, 1106 00:47:52,140 --> 00:47:55,510 für das Platzhaltersymbol, dot 10 für, geben Sie mir 10 Dezimalstellen, 1107 00:47:55,510 --> 00:47:58,140 und dann noch Fließkomma Wert und, nebenbei, 1108 00:47:58,140 --> 00:48:01,550 was ist das Backslash-n anscheinend halten wir die Verwendung? 1109 00:48:01,550 --> 00:48:03,450 Es stellt sich heraus, es ist ein Symbol für eine neue Zeile. 1110 00:48:03,450 --> 00:48:05,970 Es ist die sehr explizit Weg zu sagen, an den Computer an, 1111 00:48:05,970 --> 00:48:08,759 bewegen Sie den Cursor auf die nächste Linie, nachdem Sie fertig sind. 1112 00:48:08,759 --> 00:48:10,800 Und wir werden sehen, was passiert, wenn wir das nicht tun. 1113 00:48:10,800 --> 00:48:12,430 >> Lassen Sie mich neu kompilieren zu machen Ungenauigkeit. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Jetzt dot Slash Ungenauigkeit. 1116 00:48:18,356 --> 00:48:18,930 OK. 1117 00:48:18,930 --> 00:48:19,780 Noch recht. 1118 00:48:19,780 --> 00:48:21,512 Eine durch 10 geteilt. 1119 00:48:21,512 --> 00:48:23,220 Jetzt bin ich immer ein wenig neugierig, though. 1120 00:48:23,220 --> 00:48:27,599 Was ist, wenn ich sehe 20 Dezimal weist darauf hin, neu kompilieren, rerun, 1121 00:48:27,599 --> 00:48:29,390 und als ein beiseite Geschwindigkeit, können Sie auch 1122 00:48:29,390 --> 00:48:31,800 Ihre Auf- und Abwärtspfeile, um blättern Sie durch Ihre Geschichte, 1123 00:48:31,800 --> 00:48:35,476 so dass Sie nicht haben, um zu halten Abtippen dieser Befehle eingeben. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Ich habe nicht erfahren, dass in der Grundschule. 1126 00:48:39,220 --> 00:48:43,260 In Ordnung, so lassen Sie mich zu sehen, wie 29 Stellen aus. 1127 00:48:43,260 --> 00:48:44,300 Vielleicht ist es nur ein Zufall. 1128 00:48:44,300 --> 00:48:46,907 Vielleicht mein Computer handeln seltsam. 1129 00:48:46,907 --> 00:48:47,990 Das ist nicht eine Sache, nicht wahr? 1130 00:48:47,990 --> 00:48:50,300 Es ist etwas, deterministisch zu tun. 1131 00:48:50,300 --> 00:48:53,410 So stellen Ungenauigkeit. 1132 00:48:53,410 --> 00:48:54,890 OK, das ist durcheinander. 1133 00:48:54,890 --> 00:48:57,620 Also, was ist hier los? 1134 00:48:57,620 --> 00:49:00,160 >> So scheinbar Ihrer Lehrer hat gelogen 1135 00:49:00,160 --> 00:49:03,900 um Ihnen all diese Zeit für aus Gründen, die wir in Kürze sehen. 1136 00:49:03,900 --> 00:49:05,569 Aber fangen wir mit einem anderen Programm zu beenden. 1137 00:49:05,569 --> 00:49:07,860 Dies ist ein wenig Programme jemand vor einigen Jahren schrieb, 1138 00:49:07,860 --> 00:49:08,990 und es ist eigentlich Teil eines Wettbewerbs. 1139 00:49:08,990 --> 00:49:11,198 Niemand wirklich schreibt Code wie diese, und wenn Sie das tun, 1140 00:49:11,198 --> 00:49:12,880 dies ist stilistisch ein Problem. 1141 00:49:12,880 --> 00:49:14,660 Aber die Leute tun dies für prahlen. 1142 00:49:14,660 --> 00:49:17,260 Um den verwirrendsten schreiben Suche Programm, das 1143 00:49:17,260 --> 00:49:19,110 dennoch tut etwas Interessantes. 1144 00:49:19,110 --> 00:49:23,930 Und der Hinweis Ich dachte, wir lassen Sie am heute vor Colton spielt uns hier draußen, 1145 00:49:23,930 --> 00:49:27,840 ist es, dieses Programm ausführen, die, auch in nur mit 1146 00:49:27,840 --> 00:49:31,450 C in diesem Text-basierte Umwelt, gibt uns diese. 1147 00:49:31,450 --> 00:49:32,264 Verdammt. 1148 00:49:32,264 --> 00:49:34,930 >> [Gelächter] 1149 00:49:34,930 --> 00:49:36,800 >> Stehen zu. 1150 00:49:36,800 --> 00:49:39,340 [Unverständlich] c Strich l m. 1151 00:49:39,340 --> 00:49:42,885 Du wirst die magische um zu sehen, Beschwörungsformel, die wir in Kürze sehen. 1152 00:49:42,885 --> 00:49:45,780 [Unverständlich] In Ordnung. 1153 00:49:45,780 --> 00:49:51,592 Und jetzt können Sie auch Dinge wie diese. 1154 00:49:51,592 --> 00:49:52,340 Das ist es. 1155 00:49:52,340 --> 00:49:56,410 Für CS50 wir werden Sie am Freitag zu sehen. 1156 00:49:56,410 --> 00:49:58,910 >> [Musikwiedergabe] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Applaus] 1159 00:52:41,440 --> 00:52:42,812