1 00:00:00,000 --> 00:00:12,410 >> [Musik spielt] 2 00:00:12,410 --> 00:00:12,830 >> DAVID MALAN: Alles klar. 3 00:00:12,830 --> 00:00:13,370 Willkommen zurück. 4 00:00:13,370 --> 00:00:16,510 Dies ist CS50, und dies ist One Week, Fortsetzung. 5 00:00:16,510 --> 00:00:20,050 So einer der Gründe, warum wir vorbeigekommen haben um Technologien wie 6 00:00:20,050 --> 00:00:24,120 Google Glass ist, dass sie mit zu kommen etwas bekannt als eine API, ein 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 Und was das bedeutet, ist, dass mit der richtigen Dateien und mit der richtigen 9 00:00:28,830 --> 00:00:32,850 Dokumentation, können Sie tatsächlich schreiben Software für noch Geräte wie diese. 10 00:00:32,850 --> 00:00:36,200 >> Und so, was wir im Sinn haben, in Richtung Semester Ende ist, wenn ein Projekt 11 00:00:36,200 --> 00:00:39,310 mit, sagen wir, Google Glass könnte Appell, wir werden sehen, was wir tun können in 12 00:00:39,310 --> 00:00:42,220 Bezug Einhaken Sie sich mit einigen Leihgerät Hardware sowie die 13 00:00:42,220 --> 00:00:46,500 öffentlich zugängliche API, so dass Sie tatsächlich beginnen die Erstellung von Software 14 00:00:46,500 --> 00:00:48,630 das läuft auf dem gleichen Google Glass. 15 00:00:48,630 --> 00:00:51,710 >> Ein weiteres Gerät, das wir gespielt haben mit der spät, dass wir dachten, vielleicht 16 00:00:51,710 --> 00:00:53,910 Spaß an Semester Ende ist dieses kleine Ding hier. 17 00:00:53,910 --> 00:00:56,860 Es heißt Leap Bewegung, und was du bist über zu sehen ist technisch eine 18 00:00:56,860 --> 00:01:00,280 Anzeige des Geräts, sondern es nicht auf das, was diese besondere sprechen 19 00:01:00,280 --> 00:01:01,240 Vorrichtung in der Lage ist. 20 00:01:01,240 --> 00:01:05,550 Und auch er kommt mit einem API via was können Sie Software zu schreiben 21 00:01:05,550 --> 00:01:10,545 steuern Sie Ihre eigenen Computer in einer Art und Weise ganz gerne dieses einminütigen Film hier. 22 00:01:10,545 --> 00:01:12,070 >> [VIDEO PLAYBACK] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [END VIDEO PLAYBACK] 25 00:02:08,590 --> 00:02:11,190 >> So jetzt, geschieht dieses Gerät wie ein kleines USB umgesetzt werden 26 00:02:11,190 --> 00:02:14,290 Verbindungsstück, das Sie in Ihr stecken Computer, aber ich würde mich nicht wundern 27 00:02:14,290 --> 00:02:17,930 wenn es dauerte nicht lange haben wir diese Art von Technologien in die nächste Charge von PCs 28 00:02:17,930 --> 00:02:20,510 und Macs, so dass Sie in der Tat, mit ihm interagieren in 29 00:02:20,510 --> 00:02:21,650 eine Art und Weise wie die. 30 00:02:21,650 --> 00:02:24,250 In der Tat, was ich dachte, ich würde auch tun, ist Ich zog eine kleine Demonstration 31 00:02:24,250 --> 00:02:25,860 Programm, das kommt mit dieser Software. 32 00:02:25,860 --> 00:02:28,700 Also habe ich den kleinen Sensor setzen vor meinem Laptop. 33 00:02:28,700 --> 00:02:32,420 >> Und wie Sie sehen können, ist es bereits realisiert dass meine Hand ist da 34 00:02:32,420 --> 00:02:33,400 kontrollieren. 35 00:02:33,400 --> 00:02:37,900 Und all dies tut, ist Anwendung swimmingly kleine Dinge wie diese. 36 00:02:37,900 --> 00:02:41,080 Aber man kann sehen, dass in der Tat, Ich habe fünf Finger dort. 37 00:02:41,080 --> 00:02:44,270 Wenn es uns gelingt, es zu tun, alle 10, Sie können sich vorstellen, ein ordentliches Klavier 38 00:02:44,270 --> 00:02:45,390 Anwendung oder dergleichen. 39 00:02:45,390 --> 00:02:47,820 Also, wenn Sie möchten, kommen nach dem Unterricht heute und spielen mit, dass 40 00:02:47,820 --> 00:02:49,720 Nun, Sie sind zu begrüßen. 41 00:02:49,720 --> 00:02:52,930 Also mehr auf, dass auf Ende Semester. 42 00:02:52,930 --> 00:02:54,420 >> So ein paar administrative Ankündigungen. 43 00:02:54,420 --> 00:02:58,690 One, tun Abschnitt durch diesen Freitag am Mittag an cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 Das URL ist auf dem Kurs der Homepage als gut. 45 00:03:01,260 --> 00:03:04,010 In der Zwischenzeit, obwohl, supersections wird erstmals an diesem Sonntag. 46 00:03:04,010 --> 00:03:07,800 Supersections sind eine einmalige Sache, denn es dauert einige Zeit, um uns zu arbeiten 47 00:03:07,800 --> 00:03:09,470 heraus, wer in welchem ​​Bereich und wo. 48 00:03:09,470 --> 00:03:12,280 >> So am kommenden Sonntag, werde da sein Abschnitt für diejenigen, weniger komfortabel, 49 00:03:12,280 --> 00:03:14,040 einem Abschnitt für diejenigen, komfortabler. 50 00:03:14,040 --> 00:03:16,110 Und diejenigen von euch, irgendwo in zwischen sind herzlich eingeladen, zu gehen 51 00:03:16,110 --> 00:03:17,850 oder beide oder keines von beiden. 52 00:03:17,850 --> 00:03:19,150 Beides wird gefilmt werden. 53 00:03:19,150 --> 00:03:22,740 Sie werden in einem größeren Auditorium sein als ein Abschnitt normalerweise wäre in. 54 00:03:22,740 --> 00:03:26,110 Aber das Ziel ist es, Sie mit ausstatten einige Komfort mit einem Problem stellen, 55 00:03:26,110 --> 00:03:29,910 mit C, mit dem CS50 Gerät, diesem Wochenende, noch bevor Sie Ihre 56 00:03:29,910 --> 00:03:31,050 formale Abschnitt Zuordnung. 57 00:03:31,050 --> 00:03:34,700 So treffen Sie Ihre TF und Ihr kleiner Gruppe von sectionmates in etwa 58 00:03:34,700 --> 00:03:36,350 eine Woche Zeit. 59 00:03:36,350 --> 00:03:38,200 >> Sprechstunde, inzwischen haben schon seit. 60 00:03:38,200 --> 00:03:41,020 Sie nutzen sie heute Abend oder morgen Abend, wenn Sie möchten. 61 00:03:41,020 --> 00:03:43,460 Problem set 0 ist am Freitag. 62 00:03:43,460 --> 00:03:46,680 Dies ist ein Tag später als die regulär geplanten Mittwoch. 63 00:03:46,680 --> 00:03:50,410 Aber mit Problem-Set 1, werden Sie sehen, dass es enthält einige Warm-up 64 00:03:50,410 --> 00:03:52,770 Übungen, mit denen Sie sich selbst Ihre verlängern 65 00:03:52,770 --> 00:03:54,660 Donnerstag Frist bis Freitag. 66 00:03:54,660 --> 00:03:58,410 Problem Satz 1, mittlerweile wird Debüt Auf dem Kurs der Website im kommenden 67 00:03:58,410 --> 00:04:02,000 Freitag, wenn Sie möchten, machen Sie es sich mit wie ich es einst spät 68 00:04:02,000 --> 00:04:04,370 Freitag Abend in Ihrem Zimmer. 69 00:04:04,370 --> 00:04:07,660 >> So cs50.net/appliance ist der Ort, wo können Sie das Gerät CS50 70 00:04:07,660 --> 00:04:09,040 dass wir mit am Montag begonnen. 71 00:04:09,040 --> 00:04:10,140 Wir verwenden es ein bisschen mehr heute. 72 00:04:10,140 --> 00:04:14,040 Aber seien Sie versichert, dass das Problem 1 Spezifikation wird Sie durch gehen 73 00:04:14,040 --> 00:04:16,490 genau die Schritte, die Sie brauchen zu, dass zum Laufen zu bekommen. 74 00:04:16,490 --> 00:04:22,120 Also nicht zu tun, dass vor Sorgen Pset 1, wenn Sie lieber nicht. 75 00:04:22,120 --> 00:04:22,660 >> In Ordnung. 76 00:04:22,660 --> 00:04:27,180 So haben wir uns am Montag um Quellcode sondern im Rahmen einer neuen 77 00:04:27,180 --> 00:04:30,895 Programmiersprache, nämlich C und C, im Gegensatz zu Scratch, ist nicht grafisch. 78 00:04:30,895 --> 00:04:32,270 Es ist nicht Puzzleteile. 79 00:04:32,270 --> 00:04:34,450 Es ist mehr Englisch-ähnliche Syntax. 80 00:04:34,450 --> 00:04:37,140 Und es gibt ein paar Schritte beteiligt in tatsächlich ein Schreiben und Ausführen 81 00:04:37,140 --> 00:04:41,650 Programm in C, denn neben Quelle Code wie diesen, müssen Sie etwas 82 00:04:41,650 --> 00:04:42,890 rief ein Compiler. 83 00:04:42,890 --> 00:04:46,682 Und in juristischer Hinsicht, was ist ein Compiler für uns tun? 84 00:04:46,682 --> 00:04:47,650 Ja. 85 00:04:47,650 --> 00:04:51,040 >> STUDENT: Er wandelt den Code dass Sie 0 und 1 zu schreiben. 86 00:04:51,040 --> 00:04:51,151 >> DAVID MALAN: Good. 87 00:04:51,151 --> 00:04:53,580 So wandelt er den Code, schreiben wir 0 und 1. 88 00:04:53,580 --> 00:04:57,730 Er wandelt sogenannten Quellcode Objektcode, von denen die letztere sieht 89 00:04:57,730 --> 00:04:59,140 ein wenig etwas wie dieses. 90 00:04:59,140 --> 00:05:02,860 Und es ist Ihre CPU, die Gehirne Innenseite Ihrem Computer, dass aufgrund der 91 00:05:02,860 --> 00:05:06,280 Menschen, die diese Computer erstellt, wissen, was diese Sequenzen 92 00:05:06,280 --> 00:05:07,460 von 0 und 1 bedeuten. 93 00:05:07,460 --> 00:05:08,640 >> Vielleicht bedeutet es Druck. 94 00:05:08,640 --> 00:05:10,265 Vielleicht bedeutet es hinaus. 95 00:05:10,265 --> 00:05:11,610 Vielleicht bedeutet es Subtraktion. 96 00:05:11,610 --> 00:05:13,350 Vielleicht bedeutet es ein graphisches. 97 00:05:13,350 --> 00:05:16,870 Es gibt vordefinierte Bitmuster dass die Welt bedeuten, hat beschlossen, 98 00:05:16,870 --> 00:05:17,700 bestimmte Dinge. 99 00:05:17,700 --> 00:05:20,760 Aber zum größten Teil in diesem Kurs wir werden auf einer höheren Ebene zu arbeiten, und 100 00:05:20,760 --> 00:05:24,180 nehmen wir für selbstverständlich halten, dass es existiert Dinge wie Compiler, können 101 00:05:24,180 --> 00:05:27,670 machen unseren Quellcode Funktion in der Art, wie wir wollen. 102 00:05:27,670 --> 00:05:31,660 >> So schrieben wir das Programm erste letzte Woche und begann dann in den Hafen, so zu 103 00:05:31,660 --> 00:05:33,920 sprechen, C in der vergangenen Montag, war diese. 104 00:05:33,920 --> 00:05:35,700 Wenn grüne Flagge angeklickt, Hallo zu sagen. 105 00:05:35,700 --> 00:05:37,430 Dies war natürlich geschrieben in Scratch. 106 00:05:37,430 --> 00:05:40,710 Und ich behauptete, dass das Äquivalent Programm in C sah ein wenig 107 00:05:40,710 --> 00:05:41,520 etwas wie dieses. 108 00:05:41,520 --> 00:05:45,050 >> Also, was ich dachte, wir würden auf den ersten zu tun ist, lasst auseinanderzuhalten, was aussieht, auf den ersten 109 00:05:45,050 --> 00:05:48,790 Blick freilich als ziemlich obskuren Syntax, aber du wirst beginnen zu bemerken, 110 00:05:48,790 --> 00:05:50,160 Muster recht schnell. 111 00:05:50,160 --> 00:05:53,770 Was wir heute tun, ist auch liefern Sie mit einer psychischen Modell für einige 112 00:05:53,770 --> 00:05:57,280 kanonische, einige Standard-Konstrukte in der Programmierung. 113 00:05:57,280 --> 00:06:00,420 Und dann werden wir tatsächlich unsere Hände schmutzig mit einigen Beispielen als gut. 114 00:06:00,420 --> 00:06:04,140 >> Also für diejenigen unter Ihnen mehr Komfort, erkennen, dass in dieser Woche und dann im nächsten 115 00:06:04,140 --> 00:06:05,940 Woche kann sehr wohl ein bisschen Kritik sein. 116 00:06:05,940 --> 00:06:08,810 Aber vor allem, wenn der Hacker Ausgabe von Problem-Set 1 geht auf die 117 00:06:08,810 --> 00:06:12,330 Natürlich Webseite am Freitag, denke ich Sie werden feststellen, dass, auch wenn Sie ausfüllen 118 00:06:12,330 --> 00:06:15,390 einige Rohlinge in der nächsten Woche oder zwei, Sie beginnen immer mehr bekommen 119 00:06:15,390 --> 00:06:18,410 herausgefordert und Begegnung neue und neuere Sachen. 120 00:06:18,410 --> 00:06:21,310 >> Also lasst uns necken dieses Programm auseinander ein paar Zeilen zu einem Zeitpunkt. 121 00:06:21,310 --> 00:06:24,140 An der Spitze haben wir, was ist technisch genannt 122 00:06:24,140 --> 00:06:25,950 Präprozessordirektive. 123 00:06:25,950 --> 00:06:30,510 Dies ist nur eine Codezeile, sagt um den Inhalt einer Datei umfassen, 124 00:06:30,510 --> 00:06:35,080 genannt Standard I / N, Standard-Eingabe - oder, sorry, Standard-I / O, Standard 125 00:06:35,080 --> 00:06:38,670 Eingang / Ausgang,. h, innen von meinem eigenen Programm. 126 00:06:38,670 --> 00:06:41,670 >> Also mit anderen Worten, wenn ich dies schrieb Programm mit einem einfachen Text-Editor wie 127 00:06:41,670 --> 00:06:45,260 gedit, desto einfacher Äquivalent so etwas wie Microsoft Word, dass 128 00:06:45,260 --> 00:06:50,970 Anweisung # include stdio.h, ist nur gehen, um dem Compiler mitzuteilen, greifen die 129 00:06:50,970 --> 00:06:56,080 Inhalt dieser anderen Datei stdio.h, und fügen Sie sie hier genau richtig. 130 00:06:56,080 --> 00:06:57,090 >> Nun, warum mich das interessieren? 131 00:06:57,090 --> 00:07:01,850 Was haben wir den Anspruch innerhalb dieser Datei stdio.h genannt, die gespeichert 132 00:07:01,850 --> 00:07:05,490 irgendwo auf meiner Festplatte, oder in diesem Fall irgendwo in der CS50 Gerät? 133 00:07:05,490 --> 00:07:06,635 Jemand anderes hat es dort für mich. 134 00:07:06,635 --> 00:07:09,910 Aber was ist da drin? 135 00:07:09,910 --> 00:07:13,020 >> Ja, so ist es eine Erklärung der eine Funktion namens printf. 136 00:07:13,020 --> 00:07:17,400 So erinnert der printf Funktion, die Displays Wörter und Zeichen und 137 00:07:17,400 --> 00:07:20,160 Zahlen auf dem Bildschirm an meinem Bieten. 138 00:07:20,160 --> 00:07:21,220 Aber ich habe es nicht geschrieben. 139 00:07:21,220 --> 00:07:22,230 CS50 habe es nicht geschrieben. 140 00:07:22,230 --> 00:07:26,990 Jemand Jahren schrieb sie, und sie Wesentlichen gab uns das Rezept für sie 141 00:07:26,990 --> 00:07:29,110 in einer Datei namens stdio.h. 142 00:07:29,110 --> 00:07:33,240 So, dass erste Zeile gibt mir nur zugreifen Funktionen, dass jemand anderes 143 00:07:33,240 --> 00:07:36,500 schrieb Jahren unter was sind printf. 144 00:07:36,500 --> 00:07:39,450 >> Nun, die nächste Zeile Ich werde meine winken Hand, zumindest bis nächste Woche. 145 00:07:39,450 --> 00:07:43,620 Aber jetzt wissen, dass int main (void) ist im Wesentlichen das Äquivalent davon 146 00:07:43,620 --> 00:07:46,310 gelb Puzzleteil, wenn grüne Flagge angeklickt. 147 00:07:46,310 --> 00:07:49,510 Die Welt, vor Jahren entschieden, dass, wenn Sie schreiben ein Programm in die 148 00:07:49,510 --> 00:07:53,150 Sprache namens C, starten Sie Ihr Programm mit einer Linie 149 00:07:53,150 --> 00:07:54,410 das sieht so aus. 150 00:07:54,410 --> 00:07:57,650 In knapp einer Woche, werde es machen Sinn was int ist, was nichtig ist. 151 00:07:57,650 --> 00:08:00,840 Aber für jetzt, man denke nur an wie dieser gelbe Puzzleteil. 152 00:08:00,840 --> 00:08:04,550 >> Jetzt nächsten, haben wir eine geschweiften Klammer gefolgt von einem anderen in der Nähe geschweiften Klammer, 153 00:08:04,550 --> 00:08:05,240 sozusagen. 154 00:08:05,240 --> 00:08:07,430 Und wir werden sehen, diese ganzen Programme in C, sowie 155 00:08:07,430 --> 00:08:08,930 JavaScript und PHP. 156 00:08:08,930 --> 00:08:11,345 Und dies sind nur kapseln ähnliche Zeilen Code. 157 00:08:11,345 --> 00:08:14,600 Die offene geschweiften Klammer im Wesentlichen sagt, hier kommt ein Code. 158 00:08:14,600 --> 00:08:17,590 Und der geschlossenen geschweiften Klammer, das ist Winkel in die andere Richtung, so 159 00:08:17,590 --> 00:08:19,920 Mittel, das ist es für der entsprechende Code. 160 00:08:19,920 --> 00:08:22,970 >> So das saftige Linie in dieser ersten Programm ist das letzte, printf, 161 00:08:22,970 --> 00:08:25,080 quote-unquote, hallo Welt. 162 00:08:25,080 --> 00:08:30,670 Und ich habe das Ding zwischen Anführungszeichen, was beim letzten Mal? 163 00:08:30,670 --> 00:08:31,285 So ist es ein String. 164 00:08:31,285 --> 00:08:35,309 Und ein String ist nur der Technikfreak Ausdruck für eine Sequenz von 165 00:08:35,309 --> 00:08:37,169 Zeichen, ein Wort, eine Phrase. 166 00:08:37,169 --> 00:08:39,380 Schon ein einziger Brief konnte Doppel zitiert werden. 167 00:08:39,380 --> 00:08:41,840 Aber es ist eine Folge von null oder mehr Zeichen. 168 00:08:41,840 --> 00:08:43,650 >> Backslash-n, obwohl, sieht ein bisschen seltsam. 169 00:08:43,650 --> 00:08:46,290 Aber es bedeutete einfach etwas einfach an den Computer. 170 00:08:46,290 --> 00:08:48,060 Was ist Backslash-n? 171 00:08:48,060 --> 00:08:48,570 Neue Zeile. 172 00:08:48,570 --> 00:08:52,490 Also das ist nur die spezielle Abfolge von Zeichen, dass die Welt hat sich entschieden 173 00:08:52,490 --> 00:08:56,880 Mittel setzen einen Zeilenumbruch genau dort, weil der Compiler tatsächlich bekommen 174 00:08:56,880 --> 00:09:02,280 verwirrt, in der Regel, wenn Sie, sehr verständlicherweise, aber falsch, nur 175 00:09:02,280 --> 00:09:04,570 starten Enter drücken zu setzen neue Zeilen im Code. 176 00:09:04,570 --> 00:09:07,150 Sie müssen sich ein wenig mehr sein explizit mit Backslash-n. 177 00:09:07,150 --> 00:09:10,540 >> Und wir werden sehen, es gibt noch ein paar andere wie Muster für Sonderzeichen. 178 00:09:10,540 --> 00:09:14,340 Zum Beispiel, wenn Sie wollten lassen Sie Ihre Seele baumeln zu einer Ecke Fall 179 00:09:14,340 --> 00:09:18,080 nehme an, dass ich ein drucken wollte Anführungszeichen auf dem Bildschirm 180 00:09:18,080 --> 00:09:21,840 welchem ​​Grund auch immer, das würde scheinen ein wenig problematisch, nicht wahr? 181 00:09:21,840 --> 00:09:24,990 Denn wenn ich einen doppelten Anführungszeichen in die Mitte "Hallo, Welt", für was auch immer 182 00:09:24,990 --> 00:09:30,120 Grund ist, warum das so scheinen potenziell problematisch? 183 00:09:30,120 --> 00:09:32,180 Es bricht die Saite. 184 00:09:32,180 --> 00:09:34,700 >> Der Compiler ist nur ein Programm. 185 00:09:34,700 --> 00:09:37,210 Ein Programm wie ein Compiler ist gerade dabei Ihren Code oben nach unten gelesen, 186 00:09:37,210 --> 00:09:37,990 von links nach rechts. 187 00:09:37,990 --> 00:09:41,850 Und wenn sieht drei doppelte Anführungszeichen statt von zwei, es nicht zu wissen, 188 00:09:41,850 --> 00:09:45,210 wenn du meinst, dass das Ding auf der linken Seite sollte die Zeichenfolge, oder das, was zu sein 189 00:09:45,210 --> 00:09:46,570 das Recht oder die ganze Sache. 190 00:09:46,570 --> 00:09:50,560 Es ist eindeutig, und so, wie ein typischer Compiler tun würde, ist nur ausflippen, 191 00:09:50,560 --> 00:09:53,710 und geben Ihnen einige Fehlermeldung, und machen Sie mit dem Problem umzugehen. 192 00:09:53,710 --> 00:09:58,120 >> Also da Backslash-n bedeutet eine neue Linie, was würden Sie Ihrem Instinkt jetzt 193 00:09:58,120 --> 00:10:02,610 beginnen zu sein, wenn Sie gehören wollte etwas wie eine doppelte anomale 194 00:10:02,610 --> 00:10:06,210 zitieren innerhalb dieser sonst zitierten String? 195 00:10:06,210 --> 00:10:07,640 Backslash-Anführungszeichen. 196 00:10:07,640 --> 00:10:09,630 Und so sehen wir diese Art von Muster zu. 197 00:10:09,630 --> 00:10:12,490 >> Wenn Sie etwas ein wenig zu tun seltsam, werden Sie feststellen, dass die 198 00:10:12,490 --> 00:10:15,060 Lösungen oft folgen einem Muster, und der Backslash 199 00:10:15,060 --> 00:10:17,150 bezeichnet eine Escape-Sequenz. 200 00:10:17,150 --> 00:10:20,320 Und es bedeutet nur, etwas Besonderes die wir brauchen, um in eine repräsentieren 201 00:10:20,320 --> 00:10:21,060 anders. 202 00:10:21,060 --> 00:10:23,830 Was, wie stellst Du dar ein Backslash, gut, wir 203 00:10:23,830 --> 00:10:24,550 wieder darauf. 204 00:10:24,550 --> 00:10:26,930 Aber die Antwort ist auch tatsächlich ein wenig offensichtlich. 205 00:10:26,930 --> 00:10:31,080 >> So lasst uns nun vorstellen eine andere Programmierung Konstrukte 206 00:10:31,080 --> 00:10:31,915 Sie sah in Scratch. 207 00:10:31,915 --> 00:10:34,790 Wahrscheinlich haben Sie selbstverständlich bereits, wenn Sie bereits in tauchten 208 00:10:34,790 --> 00:10:36,060 Problem eingestellt 0. 209 00:10:36,060 --> 00:10:40,950 Aber lassen Sie uns jetzt vorstellen die Syntax in C für diese ansonsten recht intuitiv 210 00:10:40,950 --> 00:10:42,300 Ideen, zumindest einige von ihnen. 211 00:10:42,300 --> 00:10:45,570 >> Also diese Vorstellung von einer Bedingung oder ein Zweig, während wir vorher 212 00:10:45,570 --> 00:10:49,330 vertreten sie mit Code, sah wie dies auf der linken Seite in Scratch - 213 00:10:49,330 --> 00:10:52,200 wenn x kleiner als y, dann so sagen - 214 00:10:52,200 --> 00:10:56,760 Statt nun in C - lassen Sie mich schärfen in auf dem einfachsten Fall - 215 00:10:56,760 --> 00:11:01,235 wir einfach gehen zu sagen, wenn, öffnen Klammer, ist etwas wahr - ein 216 00:11:01,235 --> 00:11:04,190 Boolescher Ausdruck wird gehen wo ich gesagt habe, Zustand - 217 00:11:04,190 --> 00:11:08,170 schließende Klammer, dann mach dir was innerhalb dieser geschweiften Klammern. 218 00:11:08,170 --> 00:11:11,020 >> So auch hier, die geschweiften Klammern sind ein bisschen wie Scratch 219 00:11:11,020 --> 00:11:12,460 U-förmige Puzzleteile. 220 00:11:12,460 --> 00:11:14,890 Tun Sie, was ist innerhalb dieser geschweiften Klammern. 221 00:11:14,890 --> 00:11:16,790 In diesem Fall Slash. 222 00:11:16,790 --> 00:11:19,720 Und dies feststellen, ist eine vorausschauende Schrägstrich, nicht einen Backslash. 223 00:11:19,720 --> 00:11:21,440 Schrägstrich, Schrägstrich, für diejenigen, die bereits programmiert 224 00:11:21,440 --> 00:11:23,370 vor, bedeutet nur, - 225 00:11:23,370 --> 00:11:24,190 es ist nur ein Kommentar. 226 00:11:24,190 --> 00:11:26,630 Ein Kommentar ist nicht eine Zeile Code, per se. 227 00:11:26,630 --> 00:11:30,200 Es ist eine Reihe von Englisch, dass Sie die Mensch, haben sich auf die schriftliche 228 00:11:30,200 --> 00:11:33,540 vielleicht erinnern Sie etwas tun, um erklären Sie sich, um zu erklären, 229 00:11:33,540 --> 00:11:35,260 jemand anderes, was der Code tut. 230 00:11:35,260 --> 00:11:37,050 Es ist nur ein beschreibender Kommentar. 231 00:11:37,050 --> 00:11:40,880 >> Nun, natürlich, können wir eine Zwei-Wege- Gabel in der Straße nur durch diese Weise ein 232 00:11:40,880 --> 00:11:43,930 Drei-Wege-Gabel in der Straße, indem Sie diese, und wenn man auch in diesem 233 00:11:43,930 --> 00:11:47,570 Muster, können Sie vier-Wege, Fünf-Wege-, Sechs-Wege-Gabel in der Straße, wenn 234 00:11:47,570 --> 00:11:50,150 Sie behandeln müssen, in der Tat, dass viele Bedingungen. 235 00:11:50,150 --> 00:11:52,010 Und dann bemerken die Parallelität hier - 236 00:11:52,010 --> 00:11:55,070 if (Bedingung), else if (Bedingung), und das einzige, das ein wenig ist 237 00:11:55,070 --> 00:11:58,010 seltsam ist das letzte, das ist nur, dass andere. 238 00:11:58,010 --> 00:12:01,170 Aber auch dies ist identisch, konzeptionell, zu dem, was wir getan haben, 239 00:12:01,170 --> 00:12:04,690 bereits, obwohl die Syntax nehmen ein wenig gewöhnungsbedürftig. 240 00:12:04,690 --> 00:12:07,730 >> Nun wird in diesem Beispiel gibt es einige andere seltsame Syntax. 241 00:12:07,730 --> 00:12:11,220 Wir sehen printf wieder öffnende Klammer, und schließende Klammer. 242 00:12:11,220 --> 00:12:13,190 Und innerhalb der es eine Zeichenfolge in Anführungszeichen. 243 00:12:13,190 --> 00:12:17,060 Die Klammern im Rahmen von printf, auf der linken Seite gehen 244 00:12:17,060 --> 00:12:18,160 und rechts von dem, was? 245 00:12:18,160 --> 00:12:22,190 Was wollen wir beschreiben, zitiert String als allgemein? 246 00:12:22,190 --> 00:12:23,320 >> Also es ist ein Argument. 247 00:12:23,320 --> 00:12:26,620 Jedes Mal, wenn eine Funktion haben, wie printf und dann eine offene und eine paren 248 00:12:26,620 --> 00:12:30,330 close paren und etwas in es, ob es sich um einen String oder ein 249 00:12:30,330 --> 00:12:34,420 Integer, oder irgendetwas anderes, das Ding in zwischen diese Klammern heißt 250 00:12:34,420 --> 00:12:35,110 ein Argument. 251 00:12:35,110 --> 00:12:37,910 >> Und ein Argument nur beeinflusst das Verhalten der Funktion. 252 00:12:37,910 --> 00:12:39,990 In diesem Fall ist es ziemlich klar, wie. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 Und printf zu gehen genau das ausdrucken. 255 00:12:47,720 --> 00:12:51,590 Da sicherlich die Person Jahren die umgesetzt printf hatte keine Ahnung 256 00:12:51,590 --> 00:12:55,000 was wir menschliche Nachfolger waren werde printf verwenden für. 257 00:12:55,000 --> 00:12:58,610 Also das ist, warum Argumente vorhanden sind, um beeinflussen das Verhalten nach einer Funktion der 258 00:12:58,610 --> 00:12:59,450 geschrieben. 259 00:12:59,450 --> 00:13:00,780 >> Jetzt, Boolean Ausdruck. 260 00:13:00,780 --> 00:13:02,470 Wir haben diese vor in Scratch gesehen. 261 00:13:02,470 --> 00:13:06,680 Es stellt sich heraus, in C können Sie auch "oder" sie zusammen, so zu sprechen. 262 00:13:06,680 --> 00:13:10,930 Zwei vertikale Balken bedeutet, dass dieser Block Code, dies tun, wird 263 00:13:10,930 --> 00:13:15,350 Ausführen, wenn die erste Bedingung erfüllt ist oder die zweite Bedingung erfüllt ist. 264 00:13:15,350 --> 00:13:17,710 Und auch wenn Sie nicht getan haben könnte dies in Scratch, konntest du ja 265 00:13:17,710 --> 00:13:20,580 tun dies in Scratch, und Sie können auch anders auszudrücken - 266 00:13:20,580 --> 00:13:25,300 wenn die erste Bedingung und die zweite Bedingung wahr sind, dann tun, was 267 00:13:25,300 --> 00:13:27,160 innerhalb der geschweiften Klammern. 268 00:13:27,160 --> 00:13:31,210 >> Und nur so nebenbei, der Grund ist es ein Doppel-Zeichen und ein Doppel- 269 00:13:31,210 --> 00:13:34,610 vertikalen Balken, werden wir schließlich sehen dass eine einzelne vertikale bar und 270 00:13:34,610 --> 00:13:38,710 einzigen kaufmännisches tatsächlich haben unterschiedliche Bedeutet in C. So jetzt, 271 00:13:38,710 --> 00:13:41,840 dass eine Verdopplung der Symbole ist beabsichtigt. 272 00:13:41,840 --> 00:13:45,070 >> Lassen Sie uns also vorstellen, kurz, diese etwas andere Syntax. 273 00:13:45,070 --> 00:13:48,940 Diese nicht ganz Übertrag auf Scratch, aber ich behaupte, dass ich es kann 274 00:13:48,940 --> 00:13:55,190 Umsetzung der Idee eines, wenn sonst, wenn sonst, wenn sonst, wenn else-Anweisung mit 275 00:13:55,190 --> 00:13:56,760 einen so genannten Switch-Anweisung. 276 00:13:56,760 --> 00:14:00,820 Und der einzige Grund, warum diese wirklich existiert wird Ihnen nur, den Programmierer, ein 277 00:14:00,820 --> 00:14:05,470 etwas anderen Weg zur Lösung einige Problem, obwohl es logisch 278 00:14:05,470 --> 00:14:07,340 nicht geben Ihnen alle neuen Funktionen. 279 00:14:07,340 --> 00:14:08,530 >> Damit meine ich dies. 280 00:14:08,530 --> 00:14:13,330 Wenn Sie sagen, Schalter, und dann ein Leerzeichen, und dann ein Paar von Klammern, innen 281 00:14:13,330 --> 00:14:14,570 davon geht ein Ausdruck - 282 00:14:14,570 --> 00:14:18,010 und dies könnte ein wenig nicht offensichtlich sein auf den ersten, aber dies ist kein Argument, 283 00:14:18,010 --> 00:14:20,680 technisch, weil Schalter ist keine Funktion. 284 00:14:20,680 --> 00:14:24,230 So jetzt einfach mal davon aus, dass wir mit Klammern in verschiedenen Orten 285 00:14:24,230 --> 00:14:25,250 aus verschiedenen Gründen. 286 00:14:25,250 --> 00:14:29,310 >> So schalten Sie Ausdruck bedeutet, ich kann legte eine Variable innerhalb derer 287 00:14:29,310 --> 00:14:31,350 Klammern sagt, wo es Ausdruck. 288 00:14:31,350 --> 00:14:33,090 Und dann, wenn die Variable - 289 00:14:33,090 --> 00:14:35,400 nehme an, es heißt x und es ist nur eine Zahl - 290 00:14:35,400 --> 00:14:38,900 Ich kann dann in meinem Schlitten aufzählen hier so etwas wie dieses. 291 00:14:38,900 --> 00:14:41,690 Wenn x ist mein variabel und I wollen, etwas zu tun, wenn x 292 00:14:41,690 --> 00:14:43,480 gleich 1 ist, kann ich das tun. 293 00:14:43,480 --> 00:14:46,660 >> Wenn ich stattdessen etwas tun wollen wenn x = 2 ist, kann ich das tun. 294 00:14:46,660 --> 00:14:50,390 Else, wenn ich etwas anderes zu tun ganz, ich kann eine Standard-Fall haben 295 00:14:50,390 --> 00:14:52,750 welchem ​​Fall ich diese andere Sache. 296 00:14:52,750 --> 00:14:58,730 Also in diesem Sinne, es ist äquivalent zu einem wenn x gleich 1 entspricht, else if else, 297 00:14:58,730 --> 00:15:01,150 aber ich erwähne das jetzt nur, weil wir sehen ihn wieder. 298 00:15:01,150 --> 00:15:03,720 Aber jetzt, weiß nur, dass es existiert. 299 00:15:03,720 --> 00:15:04,220 >> In Ordnung. 300 00:15:04,220 --> 00:15:07,660 Also diese letzten paar sind ein wenig mehr Komplex auf den ersten Blick, aber sie tun 301 00:15:07,660 --> 00:15:09,385 etwas ziemlich einfach. 302 00:15:09,385 --> 00:15:14,410 Eine for-Schleife in C ist ein Stück Code, dass nur etwas tut, wieder und 303 00:15:14,410 --> 00:15:15,330 wieder und wieder. 304 00:15:15,330 --> 00:15:17,590 Und das nur ärgerlich daran ist, das ist, dass es ein wenig kryptisch ist 305 00:15:17,590 --> 00:15:21,380 um sich in dieser zyklischen Ausdruck Muster, aber die Welt standardisiert 306 00:15:21,380 --> 00:15:22,450 die folgende Weise. 307 00:15:22,450 --> 00:15:25,760 >> Wenn Sie eine for-Schleife verwenden, haben Sie ein Paar Klammern wieder. 308 00:15:25,760 --> 00:15:27,570 Und beachten Sie die zwei Semikolons drin. 309 00:15:27,570 --> 00:15:34,380 Diese beiden Semikolon getrennte drei verschiedene Ausdrücke innerhalb der 310 00:15:34,380 --> 00:15:35,020 Klammern. 311 00:15:35,020 --> 00:15:37,170 Eine davon ist die sogenannte Initialisierungen. 312 00:15:37,170 --> 00:15:38,830 Eine davon ist die sogenannte Zustand. 313 00:15:38,830 --> 00:15:40,210 Und eine ist die sogenannte Updates. 314 00:15:40,210 --> 00:15:43,240 >> Sah in der abstrakten, ist dies komplett nicht offensichtlich, so schauen wir uns 315 00:15:43,240 --> 00:15:44,630 ein konkretes Beispiel. 316 00:15:44,630 --> 00:15:46,720 In Scratch hatten wir eine Wiederholung Block. 317 00:15:46,720 --> 00:15:50,670 Und dieser Satz sagte 10-mal wiederholen, sagen "Hallo, Welt." Lassen Sie mich dadurch für 318 00:15:50,670 --> 00:15:53,810 jetzt, und wir kommen zurück, um diese und auch dies bekommen mehr vertraut 319 00:15:53,810 --> 00:15:57,345 Sie dauerte nicht lange, das Äquivalent C Code könnte gesagt werden, dass dies - 320 00:15:57,345 --> 00:16:02,320 einer for-Anweisung und einen Raum, ein Paar Klammern, bemerken die Semikolons in 321 00:16:02,320 --> 00:16:05,730 Dort trennen die drei verschiedene Dinge, die Initialisierung, die 322 00:16:05,730 --> 00:16:07,320 Zustand, und das Update. 323 00:16:07,320 --> 00:16:08,840 >> Und nehmen Sie eine Vermutung, was der erste tut. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 In rauen juristischer Hinsicht, was ist dass dabei für uns, wahrscheinlich? 326 00:16:15,120 --> 00:16:15,590 Also ja. 327 00:16:15,590 --> 00:16:19,630 Es erklärt eine Variable namens i, und es ist was es ist, was Wert? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 So ist es die Schaffung einer Variable namens i, Speichern des Werts 0 in ihm. 330 00:16:24,280 --> 00:16:26,420 Das ist der sogenannte Initialisierung. 331 00:16:26,420 --> 00:16:29,360 >> Alles klar, jetzt habe ich behauptet, bevor dass die Mitte etwas, i 332 00:16:29,360 --> 00:16:31,760 <10, ist die Bedingung. 333 00:16:31,760 --> 00:16:32,730 Also, was ist zu tun? 334 00:16:32,730 --> 00:16:36,560 Nun, was die for-Schleife macht, wenn ein Programm mit einer for-Schleife ausgeführt wird, ist 335 00:16:36,560 --> 00:16:41,050 jedes Mal, wenn der Computer läuft durch diese Schleife von oben nach unten und von oben nach 336 00:16:41,050 --> 00:16:43,740 Boden, so wie du Jungs haben, wenn Zählen Sie sich und setzte sich, 337 00:16:43,740 --> 00:16:47,090 wieder und wieder und wieder, der Computer wird 338 00:16:47,090 --> 00:16:48,560 um diesen Zustand zu überprüfen. 339 00:16:48,560 --> 00:16:51,140 Und wenn ich weniger als 10, es werde es wieder tun. 340 00:16:51,140 --> 00:16:53,100 Wenn i kleiner als 10 ist, es werde es wieder tun. 341 00:16:53,100 --> 00:16:55,030 Wenn i kleiner als zehn, es werde es wieder tun. 342 00:16:55,030 --> 00:16:57,330 Also das scheint darauf hinzudeuten Hoffentlich ändert sich. 343 00:16:57,330 --> 00:16:59,010 Sonst hätten wir eine Endlosschleife. 344 00:16:59,010 --> 00:17:02,590 Und in der Tat, ist i verändert sich, weil die letzte, was nach dem Semikolon gibt 345 00:17:02,590 --> 00:17:05,569 ist die etwas kryptische Syntax der i + +. 346 00:17:05,569 --> 00:17:07,630 Aber diejenigen, die dies getan haben vor, das bedeutet nur, 347 00:17:07,630 --> 00:17:08,609 ganz einfach, was? 348 00:17:08,609 --> 00:17:09,730 >> SCHÜLER: [Zwischenschaltung VOICES]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID MALAN: In 1 bis i. 350 00:17:10,740 --> 00:17:11,819 Erhöhe i. 351 00:17:11,819 --> 00:17:13,910 So sahen wir eine Scratch Puzzle Stück für dass, eigentlich. 352 00:17:13,910 --> 00:17:18,230 Es sah nicht wie i + +, aber das aussehen Mittel, ganz einfach, erhöht die 353 00:17:18,230 --> 00:17:24,040 Wert i um 1 jedes Mal, wenn Sie dies tun. 354 00:17:24,040 --> 00:17:26,910 So wörtlich, beginnen Sie mit Initialisierung i auf 0 gesetzt. 355 00:17:26,910 --> 00:17:29,520 Dann überprüfen Sie Ihre Bedingung. 356 00:17:29,520 --> 00:17:31,070 0 ist, weniger als 10? 357 00:17:31,070 --> 00:17:31,730 Ja. 358 00:17:31,730 --> 00:17:32,910 Wir gehen durch die Schlaufe. 359 00:17:32,910 --> 00:17:35,150 >> Das nächste, was ich behaupten, die Computer- zu tun ist, es geht 360 00:17:35,150 --> 00:17:35,910 i zu erhöhen. 361 00:17:35,910 --> 00:17:37,080 Also habe ich jetzt 1. 362 00:17:37,080 --> 00:17:37,940 Er prüft den Zustand. 363 00:17:37,940 --> 00:17:39,290 Ist 1 weniger als 10? 364 00:17:39,290 --> 00:17:39,930 Natürlich. 365 00:17:39,930 --> 00:17:41,030 So macht es noch einmal. 366 00:17:41,030 --> 00:17:43,580 Dann Schritten i + + bis 2. 367 00:17:43,580 --> 00:17:44,610 Ist 2 weniger als 10? 368 00:17:44,610 --> 00:17:45,230 Ja. 369 00:17:45,230 --> 00:17:46,670 Und wieder und wieder und wieder. 370 00:17:46,670 --> 00:17:50,070 Und schließlich, wegen der Plus-Plussing, bekommen wir i gleich 10. 371 00:17:50,070 --> 00:17:51,675 Ist 10 kleiner als 10? 372 00:17:51,675 --> 00:17:52,990 Nun, offensichtlich nicht. 373 00:17:52,990 --> 00:17:55,320 Und das ist der Punkt, an dem die for-Schleife einfach aufhört. 374 00:17:55,320 --> 00:17:58,320 Und wenn Sie mehr Code auf dem Bildschirm unten, der Computer 375 00:17:58,320 --> 00:18:01,620 Erlöse, dass Code ausgeführt statt. 376 00:18:01,620 --> 00:18:05,380 >> Also noch einmal, auch wenn dies zu gehen schauen und fühlen sich ein wenig seltsam an 377 00:18:05,380 --> 00:18:07,830 erste, natürlich für diejenigen von Ihnen, habe noch nie programmiert, bevor es 378 00:18:07,830 --> 00:18:11,640 buchstäblich reduziert konzeptionell zu dem, was sonst ein sehr 379 00:18:11,640 --> 00:18:14,330 einfache Puzzle Stück in Scratch. 380 00:18:14,330 --> 00:18:19,130 >> Alles klar, habe ich versprochen, dass es würde werden andere Analoga in Scratch. 381 00:18:19,130 --> 00:18:20,060 Es ist das auch eine. 382 00:18:20,060 --> 00:18:21,700 Und wir sahen dieses letzte Mal kurz. 383 00:18:21,700 --> 00:18:23,530 Aber denken Sie daran die Ewigkeit blockieren in Scratch? 384 00:18:23,530 --> 00:18:25,490 Es ist einfach etwas tut, für immer? 385 00:18:25,490 --> 00:18:27,470 Ich behauptete, dass man umsetzen Man erhielt auf diese Weise. 386 00:18:27,470 --> 00:18:29,740 Und Sie können diese auch tatsächlich umzusetzen in einer Reihe von verschiedenen Möglichkeiten. 387 00:18:29,740 --> 00:18:34,260 >> Aber die while-Schleife ist nur eine andere Weg in C, sich auszudrücken. 388 00:18:34,260 --> 00:18:37,080 Am Ende des Tages können Sie dies nicht tun nichts mit einer while-Schleife, die Sie 389 00:18:37,080 --> 00:18:38,360 kann nicht mit einer for-Schleife. 390 00:18:38,360 --> 00:18:41,430 So sind sie am Ende der Tag funktional gleich. 391 00:18:41,430 --> 00:18:43,840 Aber es Ihnen ermöglicht, sich auszudrücken ein wenig anders in 392 00:18:43,840 --> 00:18:44,850 die folgende Weise. 393 00:18:44,850 --> 00:18:49,720 >> Mit der while-Schleife, es ist, was in Klammern, wieder ist geprüft und 394 00:18:49,720 --> 00:18:51,050 wieder und wieder. 395 00:18:51,050 --> 00:18:55,100 Und sobald dieser Ausdruck falsch ist, dann wird die Schleife stoppt die Ausführung, 396 00:18:55,100 --> 00:18:57,890 und der Computer zu Schritt laufen, was anderen Code, den Sie 397 00:18:57,890 --> 00:18:59,230 haben in Ihrer Datei. 398 00:18:59,230 --> 00:19:02,180 >> Aber was ist interessant, hier wird dass ich buchstäblich eingegeben wahr. 399 00:19:02,180 --> 00:19:06,680 Und wahr ist eine Art von booleschen Wert, ein Wert true oder false. 400 00:19:06,680 --> 00:19:09,750 So könnte wahr jemals false, wenn ich habe buchstäblich 401 00:19:09,750 --> 00:19:11,970 sie in mein Programm hart codiert? 402 00:19:11,970 --> 00:19:12,470 Also keine. 403 00:19:12,470 --> 00:19:13,730 Es ist ein wenig seltsam, dass ich dies tat. 404 00:19:13,730 --> 00:19:15,190 Aber wahr ist, wahr. 405 00:19:15,190 --> 00:19:16,320 Es gibt keine Plus-Plussing. 406 00:19:16,320 --> 00:19:17,820 Es gibt keine Verwendung von Variablen in hier. 407 00:19:17,820 --> 00:19:22,740 Also, weil ich hart codiert while true, diese Schleife wird immer bewerten 408 00:19:22,740 --> 00:19:24,090 wieder und wieder und wieder. 409 00:19:24,090 --> 00:19:27,660 >> So wie oft ist Hallo Welt gehen, um auf dem Bildschirm zu drucken? 410 00:19:27,660 --> 00:19:28,170 Immer. 411 00:19:28,170 --> 00:19:31,980 Eine unendliche Anzahl von Zeiten, bis das Batterie stirbt oder eine andere externe 412 00:19:31,980 --> 00:19:32,730 Ereignis eintritt. 413 00:19:32,730 --> 00:19:35,880 So ist dies wahrscheinlich nicht das beste Programm zu schreiben, denn wenn der Benutzer 414 00:19:35,880 --> 00:19:38,660 kann nie aufhören Ihr Programm, ist es was Sie vermutlich nicht gedacht. 415 00:19:38,660 --> 00:19:41,070 >> Aber manchmal, sollten Programme eine Endlosschleife. 416 00:19:41,070 --> 00:19:44,050 Zum Beispiel hat, wenn Ihr Computer ein Uhr auf, es wäre sicherlich 417 00:19:44,050 --> 00:19:48,130 schön, wenn Sie Ihre Uhr es hält, Aktualisierung sich immer, wenn auch einmal ein 418 00:19:48,130 --> 00:19:50,500 zweiten oder einmal pro Minute oder so ähnlich. 419 00:19:50,500 --> 00:19:53,690 Also auch Endlosschleifen haben ihren Platz. 420 00:19:53,690 --> 00:19:54,360 >> In Ordnung. 421 00:19:54,360 --> 00:19:55,190 Schließlich diese. 422 00:19:55,190 --> 00:19:57,770 Und dieses ist ein bisschen anders funktionell, und wir kommen zurück, um 423 00:19:57,770 --> 00:19:59,460 dies wahrscheinlich in Pset 1. 424 00:19:59,460 --> 00:20:02,370 Aber es gibt noch eine andere Art von Schleife genannt tun while-Schleife. 425 00:20:02,370 --> 00:20:07,100 Und der einzige Unterschied zwischen a do while-Schleife und, sagen wir, eine while-Schleife, 426 00:20:07,100 --> 00:20:11,120 ist, dass die Bedingung geprüft wird nicht bevor Sie den Code ausführen, aber nach 427 00:20:11,120 --> 00:20:12,080 Sie den Code auszuführen. 428 00:20:12,080 --> 00:20:15,380 Also an der Spitze für die während Schleife, während das tun, während 429 00:20:15,380 --> 00:20:16,560 prüft es an der Unterseite. 430 00:20:16,560 --> 00:20:21,370 >> Und das bedeutet nur, dass die while-Schleife wird in der Regel mehrere Male ausführen 431 00:20:21,370 --> 00:20:24,630 oder weniger oft als eine while-Schleife? 432 00:20:24,630 --> 00:20:30,810 Potenziell mehrmals, weil eine zu tun while-Schleife ist eindeutig sagen, dies zu tun, 433 00:20:30,810 --> 00:20:34,600 erst nach dem Punkt, den Sie überprüfen wenn die Bedingung in der 434 00:20:34,600 --> 00:20:35,980 Klammern ist wahr. 435 00:20:35,980 --> 00:20:37,940 >> Also werden wir dies wieder zu sehen wahrscheinlich in Pset 1. 436 00:20:37,940 --> 00:20:41,150 Wenn Sie schon immer einmal etwas zu tun mindestens einmal und dann vielleicht etwas mehr 437 00:20:41,150 --> 00:20:43,350 Zeiten, ist dies eine gute Konstrukt zu verwenden. 438 00:20:43,350 --> 00:20:46,970 Aber eine while-Schleife hingegen wird überprüfen Sie deren Zustand zuerst. 439 00:20:46,970 --> 00:20:50,660 Und das ist es for-Schleifen in C, weiß während, während, und for-Schleifen. 440 00:20:50,660 --> 00:20:54,700 Und wieder zuzuordnen sie ziemlich schön zurück zu verkratzen, außer man tut dies nicht 441 00:20:54,700 --> 00:20:57,350 ganz die gleiche analoge in Scratch. 442 00:20:57,350 --> 00:20:58,880 >> Nun, wie wäre es, jetzt, Variablen? 443 00:20:58,880 --> 00:21:02,600 Also das ist, wie ich eine Variable deklariert syntaktisch den anderen Tag. 444 00:21:02,600 --> 00:21:06,440 Ich hatte einen int, die ich nach eine ganze Zahl ist. 445 00:21:06,440 --> 00:21:09,690 Ich hatte dann eine Variable namens Zähler, und dann ein Semikolon. 446 00:21:09,690 --> 00:21:11,070 Also, was ist diese Codezeile tun? 447 00:21:11,070 --> 00:21:14,540 Dies ist ganz einfach erklärt eine Variable - 448 00:21:14,540 --> 00:21:17,940 das heißt, fragen Sie den Computer neu, gib mir einige Speicher, geben Sie mir einige Bits - in 449 00:21:17,940 --> 00:21:19,450 das kann ich speichern, was? 450 00:21:19,450 --> 00:21:20,300 Ein int. 451 00:21:20,300 --> 00:21:23,570 Und das Semikolon bedeutet nur, Ende Codezeile. 452 00:21:23,570 --> 00:21:25,500 >> Nun ist die zweite Zeile wahrscheinlich ziemlich erraten. 453 00:21:25,500 --> 00:21:29,710 Was ist counter = 0; tun? 454 00:21:29,710 --> 00:21:31,690 Es ist die Zuordnung 0 bis zu begegnen. 455 00:21:31,690 --> 00:21:33,470 Und dies ist die andere Sache das ist ein wenig ärgerlich 456 00:21:33,470 --> 00:21:34,540 im Vergleich zu, sagen wir, Algebra. 457 00:21:34,540 --> 00:21:39,110 Während in Algebra, bedeutet das Gleichheitszeichen gleich, hier in C, die gleich 458 00:21:39,110 --> 00:21:40,470 Zeichen bedeutet Zuordnung. 459 00:21:40,470 --> 00:21:45,380 So bedeutet es umzusetzen, was ist auf der rechten Seite in das, was ist auf der linken Seite. 460 00:21:45,380 --> 00:21:49,030 Und wir werden sehen, ein anderes Symbol, gleich gleich, wenn wir tatsächlich testen wollen 461 00:21:49,030 --> 00:21:50,570 für Qualität, etwas störend. 462 00:21:50,570 --> 00:21:52,590 >> Aber dies ist ein wenig ineffizient. 463 00:21:52,590 --> 00:21:55,090 Es ist eine Art ärgerlich, dass ich eine Variable deklarieren und 464 00:21:55,090 --> 00:21:56,110 dann geben sie einen Wert. 465 00:21:56,110 --> 00:21:59,380 So C tatsächlich lässt uns diese vereinfachen und tun es einfach alles auf einmal. 466 00:21:59,380 --> 00:22:01,330 Sie können die Variable deklarieren auf der linken Seite. 467 00:22:01,330 --> 00:22:04,590 Sie können immer noch die Zuordnung auf die nach rechts setzen, dass Gleichheitszeichen in 468 00:22:04,590 --> 00:22:05,030 die Mitte. 469 00:22:05,030 --> 00:22:08,740 So dass am Ende des Tages, sind diese beiden entspricht, aber dieses, ehrlich gesagt, 470 00:22:08,740 --> 00:22:11,840 ist wahrscheinlich die bessere Angewohnheit nur weil es ein bisschen weniger 471 00:22:11,840 --> 00:22:15,040 Code, ist es ein wenig leichter zu lesen, und es ist nur verschärft 472 00:22:15,040 --> 00:22:17,470 Ihr Code sozusagen. 473 00:22:17,470 --> 00:22:22,120 >> Haben Sie Fragen bisher auf den Schleifen, auf Variablen, über die Bedingungen, auf 474 00:22:22,120 --> 00:22:27,001 Booleans, entweder technisch oder konzeptionell? 475 00:22:27,001 --> 00:22:28,010 In Ordnung. 476 00:22:28,010 --> 00:22:30,690 So, jetzt diese nächste bekommt man ein wenig interessanter. 477 00:22:30,690 --> 00:22:34,790 Und das ist das Beispiel, das ich in Aufmachungen letzten Zeit, die gerade bildet eine Scratch Beispiel 478 00:22:34,790 --> 00:22:35,820 über den C. 479 00:22:35,820 --> 00:22:36,580 >> So eine Funktion. 480 00:22:36,580 --> 00:22:38,110 In juristischer Hinsicht ist, was eine Funktion? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Got mutiger zu sein mit Ihrer Antwort. 483 00:22:44,350 --> 00:22:45,020 Was ist eine Funktion? 484 00:22:45,020 --> 00:22:46,320 >> STUDENT: Hat etwas. 485 00:22:46,320 --> 00:22:46,780 >> DAVID MALAN: Was ist das? 486 00:22:46,780 --> 00:22:48,000 >> STUDENT: Hat etwas. 487 00:22:48,000 --> 00:22:48,710 >> DAVID MALAN: Hat etwas. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Wir beginnen dort. 490 00:22:49,590 --> 00:22:51,270 So eine Funktion etwas tut. 491 00:22:51,270 --> 00:22:55,160 So ist es ein Stück Code, das ist im Wesentlichen umgesetzt, dass an anderer Stelle 492 00:22:55,160 --> 00:22:56,620 tatsächlich etwas tut. 493 00:22:56,620 --> 00:23:00,180 Nun, was ist interessant, über eine Funktion ist, dass sie Eingabe nimmt, 494 00:23:00,180 --> 00:23:02,710 und es kann eine Ausgabe erzeugen. 495 00:23:02,710 --> 00:23:05,090 Und lasst uns tatsächlich ein Blick auf diese. 496 00:23:05,090 --> 00:23:09,030 >> Der Mann hinter dem Vorhang war Absicht vor einem Augenblick. 497 00:23:09,030 --> 00:23:10,320 Hier haben wir einen Tisch. 498 00:23:10,320 --> 00:23:13,010 Aber nehmen wir an, dass dies tatsächlich stellt eine große Kiste. 499 00:23:13,010 --> 00:23:14,940 Das ist also eine sogenannte Blackbox. 500 00:23:14,940 --> 00:23:19,800 Und im allgemeinen in der Konstruktion, in Computer Wissenschaft, black boxes beziehen sich nur auf 501 00:23:19,800 --> 00:23:22,510 Stücke von Funktionalität, dass jemand eingeführt hat, und du nicht 502 00:23:22,510 --> 00:23:26,140 unbedingt wissen, oder egal, wie es ist umgesetzt unter der Haube. 503 00:23:26,140 --> 00:23:28,960 Sie müssen nur darauf, dass diese schwarze Box, was wir jetzt beginnen Aufruf einer 504 00:23:28,960 --> 00:23:30,730 Funktion, etwas tut. 505 00:23:30,730 --> 00:23:34,710 >> So zum Beispiel, wenn diese Black Box die Bühne stellt hier printf ein 506 00:23:34,710 --> 00:23:38,040 Funktion, das weiß ich von den vorherigen Beispielen das printf nimmt eine oder mehrere 507 00:23:38,040 --> 00:23:40,910 Argumente und der erste der Argumente sollte ein String sein, wie 508 00:23:40,910 --> 00:23:44,780 "Hallo, Welt." Nun, wenn ich die Person bin, Schreiben Sie das Programm, und ich möchte 509 00:23:44,780 --> 00:23:50,460 zu verwenden printf, I, zum Beispiel, könnte nehmen Sie ein Stück weißes Papier hier und ein 510 00:23:50,460 --> 00:23:55,060 schwarzen Marker und schreibe darauf - 511 00:23:55,060 --> 00:23:56,580 Ich nicht existierenden "Welt" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> So nehme ich meine schwarzen Marker und ich werde schreiben, wie groß und leserlich wie möglich auf 514 00:24:04,220 --> 00:24:07,260 dieses Stück Papier, "Hallo, Welt" Und jetzt habe ich behaupten, dies ist mein Argument. 515 00:24:07,260 --> 00:24:09,740 Dies ist ein String vertreten mit ein Stück weißes Papier. 516 00:24:09,740 --> 00:24:13,030 Und mein Eingang jetzt auf die Funktion printf wird dies sein. 517 00:24:13,030 --> 00:24:18,250 Also ich bin printf Aufruf, vorbei dieses Argument als Eingabe zu. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> Und jetzt weiß ich nicht, wie die Person, die schrieb printf tat es vor Jahren, aber 520 00:24:26,740 --> 00:24:31,110 Ich weiß aus seiner Dokumentation, die wissen, ihren Zweck im Leben ist zu drucken, was ich 521 00:24:31,110 --> 00:24:34,410 bereitzustellen, um es als Eingabe. 522 00:24:34,410 --> 00:24:40,630 Und so, auch wenn diese Implementierung ist ohne mein Wissen 523 00:24:40,630 --> 00:24:44,170 unter der Haube, jetzt Ich sehe, oh, es gemacht wird. 524 00:24:44,170 --> 00:24:45,740 Es hat etwas gedruckt auf dem Bildschirm. 525 00:24:45,740 --> 00:24:49,070 Und jetzt das Programm steuern, wenn es waren mehr Zeilen Code, würde 526 00:24:49,070 --> 00:24:51,070 haben nun zu mir zurückgekehrt. 527 00:24:51,070 --> 00:24:52,290 Und so ist die Tatsache, dass Colton - 528 00:24:52,290 --> 00:24:55,370 segne sein Herz ist hier versteckt unter ein Tisch vor euch allen - 529 00:24:55,370 --> 00:24:59,530 ist gewollt, dass ich nicht weiß, und ich weiß nicht, wie printf ist 530 00:24:59,530 --> 00:25:00,100 umgesetzt. 531 00:25:00,100 --> 00:25:03,390 Ich weiß nur, wieder von seiner Dokumentation, was sie tut und wie ich 532 00:25:03,390 --> 00:25:05,040 meine Aufgabe, es zu benutzen. 533 00:25:05,040 --> 00:25:09,140 >> Nun, daran erinnern, dass printf bekommen konnte ein wenig anspruchsvoller. 534 00:25:09,140 --> 00:25:12,220 Auch hier sind wir nur darüber zu reden das Äquivalent Scratch Say Block. 535 00:25:12,220 --> 00:25:14,230 Aber ich habe auch diese letzte Zeit. 536 00:25:14,230 --> 00:25:17,270 Ich wollte meine hallo Programm machen ein wenig mehr Dynamik und das nicht nur hart 537 00:25:17,270 --> 00:25:19,740 Code etwas wie "Welt", und definitiv nicht schwer etwas Code 538 00:25:19,740 --> 00:25:22,520 willkürlich wie D-A-V-I-D in das Programm. 539 00:25:22,520 --> 00:25:27,510 Ich wollte die Benutzer für seine oder ihre fragen Namen, und dann tun Sie etwas mit 540 00:25:27,510 --> 00:25:29,720 dass Zeichenfolge, die sie bieten. 541 00:25:29,720 --> 00:25:32,690 >> Also gibt es etwas ein wenig anders hier. printf, vor einem Augenblick, 542 00:25:32,690 --> 00:25:35,860 hat in der Tat etwas zu tun, aber es hat nichts zurück zu mir. 543 00:25:35,860 --> 00:25:36,020 Right? 544 00:25:36,020 --> 00:25:38,910 Colton nicht gib mir alles zurück, kein Blatt Papier. 545 00:25:38,910 --> 00:25:40,320 Es war nur ein Nebeneffekt. 546 00:25:40,320 --> 00:25:44,510 Mein Bereitstellung "Hallo, Welt", wie ein Argument Colton in der Folge 547 00:25:44,510 --> 00:25:48,420 Nebenwirkung von einem Wort, ein paar Worte, auf dem Bildschirm erscheinen. 548 00:25:48,420 --> 00:25:51,350 >> getstring, obwohl, ist ein wenig unterschiedlich. getstring ist auch ein 549 00:25:51,350 --> 00:25:54,590 funktionieren, aber es gibt einen gewissen Wert. 550 00:25:54,590 --> 00:25:56,370 Es hat nicht nur eine ästhetischen Nebeneffekt. 551 00:25:56,370 --> 00:26:00,230 Tatsächlich gibt mir die Person, telefonisch oder über die Funktion, 552 00:26:00,230 --> 00:26:01,320 etwas zurück. 553 00:26:01,320 --> 00:26:05,740 Also in diesem Fall ist getstring genannt mit getstring offen 554 00:26:05,740 --> 00:26:07,510 paren, in der Nähe paren. 555 00:26:07,510 --> 00:26:11,370 Hat getstring daher nehmen alle Argumente oder Eingabe? 556 00:26:11,370 --> 00:26:12,340 Nein, es scheint nicht. 557 00:26:12,340 --> 00:26:14,460 Sein Ziel im Leben ist nur um einen String. 558 00:26:14,460 --> 00:26:16,910 Es braucht nicht näher als die. 559 00:26:16,910 --> 00:26:20,430 Also lass mich gehen und behaupten, dass, Auch dies ist nicht printf black box, 560 00:26:20,430 --> 00:26:25,160 aber getstring, und lassen Sie mich, die Person Schreiben dieses Programm, rufen Sie an oder verwenden 561 00:26:25,160 --> 00:26:29,720 GetString von nur schriftlich G-E-T-S-T-R-I-N-G, offene paren, in der Nähe 562 00:26:29,720 --> 00:26:32,170 paren, getstring. 563 00:26:32,170 --> 00:26:36,920 >> Nun, ich habe keine Ahnung, wie das Personal CS50 umgesetzt getstring, aber ich weiß, dass 564 00:26:36,920 --> 00:26:41,240 wenn ich lange genug warten, wird es tun, seine was unter der Haube, vielleicht mit 565 00:26:41,240 --> 00:26:44,940 einige Variablen, vielleicht mit einigen Bedingungen, vielleicht mit einigen Schleifen, 566 00:26:44,940 --> 00:26:48,170 vielleicht mit einigen Funktionen, vielleicht mit - 567 00:26:48,170 --> 00:26:52,290 nur versuchen, stall - vielleicht mit einige andere Programmiermöglichkeiten. 568 00:26:52,290 --> 00:26:55,350 Aber wenn ich lange genug warten - in der Realität in den Computer, so geschieht dies 569 00:26:55,350 --> 00:26:56,270 super schnell - 570 00:26:56,270 --> 00:26:59,910 wenn ich lange genug warten, wird diese Funktion getstring wird einen String zu erhalten 571 00:26:59,910 --> 00:27:04,060 von dem Benutzer, der vermutlich Eingabe wird es auf ihrer Tastatur und 572 00:27:04,060 --> 00:27:08,090 dann, wenn Sie getstring getan wird immer diese Zeichen vom Benutzer 573 00:27:08,090 --> 00:27:14,080 und speichert sie in einen String, dass Funktion, getstring, ist zu haben 574 00:27:14,080 --> 00:27:17,990 bereit für mich eine Ausgabe, die ich gehen, um durch das Abrufen 575 00:27:17,990 --> 00:27:19,470 Zuweisungsoperator. 576 00:27:19,470 --> 00:27:25,390 >> Und wenn ich gehe, in der Tat, in den Ausgang hier hat Obosi großzügig 577 00:27:25,390 --> 00:27:29,900 teilgenommen haben, ohne zu wissen, das in vorbestellen, indem er seinen Namen auf diese 578 00:27:29,900 --> 00:27:33,100 Variable, die repräsentiert ein String. 579 00:27:33,100 --> 00:27:35,640 Nun bedeutet der Zuweisungsoperator, auch obwohl dies vielleicht das Gefühl, ein wenig 580 00:27:35,640 --> 00:27:38,790 redundante, habe ich eigentlich tun müssen meine eigene Kopie davon zu machen. 581 00:27:38,790 --> 00:27:40,700 Da auf der linken Seite - hoppla! - 582 00:27:40,700 --> 00:27:45,760 bemerken, dass ich im Wesentlichen haben Zeichenfolge Namen auf der linken Seite. 583 00:27:45,760 --> 00:27:48,280 Also ich bin auch zu machen meine eigene Kopie davon. 584 00:27:48,280 --> 00:27:50,990 Und das ist ein bisschen wie ein Notlüge, weil wir in ein oder zwei Wochen sehen 585 00:27:50,990 --> 00:27:54,100 Zeit, die Saiten nicht wirklich was sie zu sein scheinen. 586 00:27:54,100 --> 00:27:56,700 >> Aber jetzt, hier ist der Rückgabewert. 587 00:27:56,700 --> 00:28:00,160 Hier ist meine eigene Kopie davon nach mit dem Zuweisungsoperator. 588 00:28:00,160 --> 00:28:01,790 Und nun, was will ich als nächstes tun? 589 00:28:01,790 --> 00:28:04,080 Wir haben jetzt die zweite von zwei Zeilen Code. 590 00:28:04,080 --> 00:28:05,640 So will ich nun printf nennen. 591 00:28:05,640 --> 00:28:08,500 Lassen Sie uns nun behaupten, dass die schwarze Box ist wieder da zu sein 592 00:28:08,500 --> 00:28:10,210 printf und nicht getstring. 593 00:28:10,210 --> 00:28:12,200 >> Printf diese Zeit zu gehen nehmen, wie viele Argumente? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 So betrachtet, ist es wie zwei. 596 00:28:16,770 --> 00:28:18,860 Es gibt zwei Kommata drin, aber einer jener Kommas, ist es 597 00:28:18,860 --> 00:28:20,220 innerhalb der Anführungszeichen. 598 00:28:20,220 --> 00:28:23,190 So das erste Argument ist buchstäblich werde das sein. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, Komma, Prozent s, Backslash-n. 600 00:28:31,850 --> 00:28:36,560 Und jetzt bin ich Bereitstellung nicht ein Argument, aber zwei Argumente an printf. 601 00:28:36,560 --> 00:28:39,530 >> Und was soll printf zu tun Diese beiden Eingänge passieren, nachdem ich sie in 602 00:28:39,530 --> 00:28:42,050 als Argumente? 603 00:28:42,050 --> 00:28:45,360 Es soll die zweite zu nehmen ihnen, die ich rief Namen, so dass die 604 00:28:45,360 --> 00:28:48,660 zweiten Zettel schrieb ich vor einem Augenblick nennt Namen. 605 00:28:48,660 --> 00:28:53,550 Es ist zum Anschluss des Wertes drinnen vor sich geht dieser Variablen in die Platzhalter 606 00:28:53,550 --> 00:28:58,310 % S, so dass wiederum in nur ein Augenblick Zeit werden wir sehen, eine Nebenwirkung von 607 00:28:58,310 --> 00:29:04,180 mit printf, genannt, wobei wir jetzt sehen nicht "Hallo, Welt", sondern "hallo, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> So ein großer Applaus sowohl von unsere Freiwilligen, von denen nur einer wusste 610 00:29:08,730 --> 00:29:12,010 dies geschehen würde. 611 00:29:12,010 --> 00:29:12,990 In Ordnung. 612 00:29:12,990 --> 00:29:16,480 Also, vielleicht, einfach wie das war, sicherlich, wenn Sie bereits vertraut 613 00:29:16,480 --> 00:29:20,190 mit solchen, hoffentlich werden Sie nie vergessen, dass insbesondere visuelle, wie 614 00:29:20,190 --> 00:29:21,220 Funktionen arbeiten. 615 00:29:21,220 --> 00:29:23,000 >> Es gibt also mehr als nur getstring. 616 00:29:23,000 --> 00:29:26,020 Innerhalb der CS50-Bibliothek gibt es eine ganze Reihe von Funktionen, von denen alle 617 00:29:26,020 --> 00:29:29,510 werden aktiviert, nur deutlich zu machen, schrieb, dass wir diese Funktionen. 618 00:29:29,510 --> 00:29:33,610 Typischerweise in C, fast jede andere Funktion Sie verwenden Kleinbuchstaben. 619 00:29:33,610 --> 00:29:36,190 Aber wir verwenden bewusst Großbuchstaben nur deutlich machen, dass diese 620 00:29:36,190 --> 00:29:39,880 Stützräder sind verstimmt, dass wir werden Verwendung nur für ein paar Wochen, dass 621 00:29:39,880 --> 00:29:42,890 vereinfachen den Prozess der Einführung Eingabe von dem Benutzer. 622 00:29:42,890 --> 00:29:46,740 >> Das CS50-Bibliothek tut nichts dass Sie sich nicht durch zu tun 623 00:29:46,740 --> 00:29:50,230 nur mit C-Code aus einer oldschool Lehrbuch. 624 00:29:50,230 --> 00:29:53,310 Aber noch einmal, wir nutzen sie als Training Räder von Sorten für nur ein paar 625 00:29:53,310 --> 00:29:57,250 Wochen, so dass wir loswerden können die Komplexität, dass Sie bald verstehen 626 00:29:57,250 --> 00:30:00,460 selbst etwas zu tun, als relativ einfach, da immer 627 00:30:00,460 --> 00:30:02,080 Eingabe von einem Benutzer. 628 00:30:02,080 --> 00:30:05,540 >> So wissen, dass Sie Zugang haben zu GetChar GetDouble - 629 00:30:05,540 --> 00:30:06,050 verdoppeln. 630 00:30:06,050 --> 00:30:07,050 Soundso - und dann GetFloat. 631 00:30:07,050 --> 00:30:07,600 Was ist ein Schwimmer? 632 00:30:07,600 --> 00:30:09,382 Beginnen wir dort. 633 00:30:09,382 --> 00:30:10,600 >> STUDENT: [unverständlich]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID MALAN: Yeah. 635 00:30:10,790 --> 00:30:12,120 Es ist eine Zahl mit einem Komma. 636 00:30:12,120 --> 00:30:15,930 Während also ein int eine ganze Zahl ist, die ist nur eine Nummer mit 0 bis 9, 637 00:30:15,930 --> 00:30:18,940 eine bestimmte Anzahl von Wiederholungen derselben, ein Schwimmer ist etwas 638 00:30:18,940 --> 00:30:20,100 mit einem Komma. 639 00:30:20,100 --> 00:30:26,090 Und ein Doppel, mittlerweile ist auch ein Zahl mit einer Dezimalstelle, aber mehr 640 00:30:26,090 --> 00:30:28,160 Zahlen nach dem Komma Punkt potentiell. 641 00:30:28,160 --> 00:30:30,040 >> So bekommen wir zurück zu dieser vor lang. 642 00:30:30,040 --> 00:30:34,560 Aber typischerweise jede dieser Arten von Daten, wobei jede dieser Arten von Variablen 643 00:30:34,560 --> 00:30:39,380 dass eine Bibliothek wie der unsrigen kann zurückkehren Sie verwenden eine unterschiedliche Anzahl von Bits 644 00:30:39,380 --> 00:30:40,290 Speicherung von Informationen. 645 00:30:40,290 --> 00:30:43,910 Typischerweise wird ein Char, das bedeutet nur, ein Zeichen, verwendet 8 Bit. 646 00:30:43,910 --> 00:30:47,490 Und das ist tatsächlich im Einklang mit unserer Byte von Freiwilligen, die letzte Woche 647 00:30:47,490 --> 00:30:50,410 kam und stellte eine ASCII-Zeichen in einer Zeit. 648 00:30:50,410 --> 00:30:51,850 So ein Char ist 8 Bit. 649 00:30:51,850 --> 00:30:54,430 >> Ein Schwimmer passiert zu sein 32 Bits, in der Regel. 650 00:30:54,430 --> 00:30:59,230 Und eine doppelte, wie Sie vielleicht erraten, ist tatsächlich 64 Bits, die gerade größer ist, 651 00:30:59,230 --> 00:31:01,360 das heißt, Sie können größere Zahlen oder mehr Präzision. 652 00:31:01,360 --> 00:31:03,000 Aber noch einmal, mehr dazu ein anderes Mal. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, inzwischen aber dummerweise genannt, ist eigentlich nur eine 654 00:31:06,550 --> 00:31:10,770 ganze Zahl, die doppelt so groß ist, doppelt so lange, möglicherweise als eine reguläre 655 00:31:10,770 --> 00:31:12,940 integer, 64 Bits anstelle von 32. 656 00:31:12,940 --> 00:31:14,560 Und wir GetString habe mit. 657 00:31:14,560 --> 00:31:18,870 >> Aber es stellt sich heraus, in der CS50-Bibliothek, welches umgesetzt wird, wie wir sehen werden, in 658 00:31:18,870 --> 00:31:23,560 die Form der beiden Dateien, von denen heißt cs50.h, hat noch zwei weitere 659 00:31:23,560 --> 00:31:24,770 Datentypen in ihm. 660 00:31:24,770 --> 00:31:29,700 Booleans nicht in C. Sie können existieren simulieren sie nur mit Hilfe von 0 und 1 661 00:31:29,700 --> 00:31:30,850 während Ihrer Programme. 662 00:31:30,850 --> 00:31:35,500 Aber wir in der CS50-Bibliothek erstellt haben die Symbole "wahr" und "falsch" 663 00:31:35,500 --> 00:31:38,580 zu 1 und 0 darstellen, so dass Sie nicht tun müssen hart Code etwas 664 00:31:38,580 --> 00:31:39,810 buchstäblich wie 1 und 0. 665 00:31:39,810 --> 00:31:40,980 Aber wir werden diejenigen wieder zu sehen. 666 00:31:40,980 --> 00:31:42,330 >> String, auch nicht vorhanden. 667 00:31:42,330 --> 00:31:44,520 Und deshalb habe ich erwähnt, es ist ein bisschen eine Notlüge für jetzt. 668 00:31:44,520 --> 00:31:46,660 Aber wir abziehen, dass Schicht vor lang. 669 00:31:46,660 --> 00:31:49,540 Aber jetzt ist ein String ein Folge von Zeichen. 670 00:31:49,540 --> 00:31:51,790 >> Inzwischen in C, Sie in der Tat haben unterschiedliche Datentypen. 671 00:31:51,790 --> 00:31:53,200 Beachten Sie sind Kleinbuchstaben. 672 00:31:53,200 --> 00:31:56,960 So sah die Funktionen, die Sie vor einem Augenblick werden die Funktionen von CS50, dass schriftliche 673 00:31:56,960 --> 00:32:02,310 wird Ihnen einen Wert zurück, der fällt in eine dieser Kategorien. 674 00:32:02,310 --> 00:32:06,730 >> Ein paar Spickzettel nur zu pflanzen der Samen hier. printf nicht nur 675 00:32:06,730 --> 00:32:08,600 nehmen% s als Platzhalter. 676 00:32:08,600 --> 00:32:13,490 Es dauert% d für Dezimalzahlen, oder% Ich würde so gut funktionieren. 677 00:32:13,490 --> 00:32:19,450 % F ist Fließkommawerte. % C ist für ein char, wenn Sie wollen einfach einstecken einem 678 00:32:19,450 --> 00:32:23,510 Zeichen in einem String vorformatiert wie wir getan haben, können Sie% c. 679 00:32:23,510 --> 00:32:28,490 >> Und dann, etwas störend,% lld ist für eine lange, lange Dezimalzahl, 680 00:32:28,490 --> 00:32:31,050 das bedeutet nur, wenn Sie einen wirklich brauchen große Zahl und Sie mit etwas 681 00:32:31,050 --> 00:32:35,450 rief ein langer, langer, die wir kommen Rücken an Rücken in einem pset, können Sie% lld zu bedienen 682 00:32:35,450 --> 00:32:40,700 printf sagen, Stecker in einem wirklich großen integer hier durch die zweite oder 683 00:32:40,700 --> 00:32:41,830 einige andere Argument. 684 00:32:41,830 --> 00:32:45,700 >> Und schließlich habe ich versprochen, dass es gibt ein paar andere Flucht 685 00:32:45,700 --> 00:32:47,670 Sequenzen, die printf unterstützt. 686 00:32:47,670 --> 00:32:49,160 Wir haben Backslash-n gesehen. 687 00:32:49,160 --> 00:32:50,510 Backslash-r können Sie sehen. 688 00:32:50,510 --> 00:32:51,780 Es ist eine Art von einem Old-School-Sache. 689 00:32:51,780 --> 00:32:55,920 Wenn Sie jemals eine echte Schreibmaschine Jahren vor und Sie zog an der Kurbel 690 00:32:55,920 --> 00:32:59,810 die nicht nur gedreht, um das Rad bewegen das Lineup, sondern auch bewegt die 691 00:32:59,810 --> 00:33:03,730 Ganze den ganzen Weg zurück über den die linke, gut, Backslash-r nur 692 00:33:03,730 --> 00:33:06,480 Wesentlichen bewegt sich der Cursor zurück zu Beginn der Zeile 693 00:33:06,480 --> 00:33:07,830 ohne es nach unten. 694 00:33:07,830 --> 00:33:09,780 Aber noch einmal, mehr dazu, vielleicht in der Zukunft. 695 00:33:09,780 --> 00:33:13,670 >> Backslash-Zitat, Backslash-Anführungszeichen, Backslash-Backslash ist die 696 00:33:13,670 --> 00:33:16,600 Lösung für das winzig kleine Rätsel Ich bereits angedeutet. 697 00:33:16,600 --> 00:33:18,920 Und Backslash-0 ist eigentlich sehr interessant. 698 00:33:18,920 --> 00:33:21,470 Aber kommen wir wieder zu dass vor lang. 699 00:33:21,470 --> 00:33:25,640 >> Also lassen Sie mich in zu gehen, jetzt, die CS50 Gerät, und lasst uns tatsächlich ein 700 00:33:25,640 --> 00:33:28,930 schnelle Aufwärmen mit einem der Beispiele wir haben bereits und dann auf sich zu bewegen 701 00:33:28,930 --> 00:33:31,160 etwas ein wenig komplizierter. 702 00:33:31,160 --> 00:33:34,980 Also, wenn ich mein Programm öffnen genannt gedit - 703 00:33:34,980 --> 00:33:36,840 dies ist meine grafischen Editor. 704 00:33:36,840 --> 00:33:38,460 Und ich kann das tun - 705 00:33:38,460 --> 00:33:39,820 Lassen Sie mich schließen, dass die Fenster dort - 706 00:33:39,820 --> 00:33:42,720 durch dieses Symbol hier unten, gedit, in der unteren linken 707 00:33:42,720 --> 00:33:44,170 Ecke neben dem Menü. 708 00:33:44,170 --> 00:33:48,670 >> Ich werde weitermachen und voranzutreiben, und Speichern Sie dieses Beispiel in, sagen wir, John 709 00:33:48,670 --> 00:33:49,660 Harvard-Ordner. 710 00:33:49,660 --> 00:33:52,690 John Harvard Ordner ist nur seine Heimat Verzeichnis, in dem alle seine Dateien leben 711 00:33:52,690 --> 00:33:53,340 standardmäßig. 712 00:33:53,340 --> 00:33:58,410 Und ich werde dies als sparen eine Datei namens hallo-0.C. 713 00:33:58,410 --> 00:34:01,260 Und ich habe diesen Namen gewählt, nur damit es Linie mit dem Beispielcode auf die 714 00:34:01,260 --> 00:34:04,210 Natürlich Webseite und in der YouTube-Videos online. 715 00:34:04,210 --> 00:34:06,320 >> So, jetzt werde ich damit beginnen, schreibe meine erste Programm. 716 00:34:06,320 --> 00:34:08,469 Lassen Sie mich in der Lesbarkeit vergrößern. 717 00:34:08,469 --> 00:34:12,760 Und ich werde weitermachen und sagen int Haupt Leere, die nur gefällt ist, dass 718 00:34:12,760 --> 00:34:14,900 gelb Puzzleteil, dass startet ein Programm. 719 00:34:14,900 --> 00:34:18,290 Ich habe in die Gewohnheit, auf das hinbekommen Jahren der Öffnung meiner geschweiften Klammer, dann 720 00:34:18,290 --> 00:34:22,000 auch schließen und dann geht zurück auf wo ich will meinen Code zu setzen, nur 721 00:34:22,000 --> 00:34:24,630 weil es mir hilft, halten alles ausgeglichen, zumal meine 722 00:34:24,630 --> 00:34:25,880 Programm wird lang. 723 00:34:25,880 --> 00:34:29,239 >> Und jetzt, hier, ich werde weitermachen und sagen, printf, zitieren unquote, 724 00:34:29,239 --> 00:34:34,330 Hallo Welt, Backslash-n, in der Nähe Zitat schließende Klammer, Semikolon. 725 00:34:34,330 --> 00:34:38,100 So bin ich nur wiederholen, was wir haben wurde für selbstverständlich bisher einnehmen. 726 00:34:38,100 --> 00:34:39,270 Jetzt werde ich zu verkleinern. 727 00:34:39,270 --> 00:34:43,030 >> Und das Terminal-Fenster hier unten, was darf ich in diesem schwarzen tun 728 00:34:43,030 --> 00:34:44,389 und weißen Fenster? 729 00:34:44,389 --> 00:34:46,977 Was kann ich verwenden sie? 730 00:34:46,977 --> 00:34:49,770 Also das ist, wo ich Befehle ausführen und wo kann ich kompilieren Dinge. 731 00:34:49,770 --> 00:34:50,620 Und ich werde es einfach zu halten. 732 00:34:50,620 --> 00:34:52,780 Ich werde ein Programm verwenden Stellen genannt, was nicht 733 00:34:52,780 --> 00:34:54,020 technisch ein Compiler. 734 00:34:54,020 --> 00:34:56,360 Die Compiler genannt Clang, aber kommen wir zurück zu, dass in einem 735 00:34:56,360 --> 00:34:57,190 oder zwei Wochen Zeit. 736 00:34:57,190 --> 00:35:03,410 >> Denn jetzt, ich bin gerade dabei, geben Sie machen hallo-0, aber diejenigen, die waren 737 00:35:03,410 --> 00:35:07,050 Vergleich in euren Köpfen, was ich gerade eingegeben, was ich sollte eingegeben haben kann 738 00:35:07,050 --> 00:35:10,180 bereits wissen, dass ich es tat etwas stimmt hier nicht. 739 00:35:10,180 --> 00:35:12,160 Nun, es gibt eindeutig einige Fehler. 740 00:35:12,160 --> 00:35:16,742 Bevor ich überhaupt an, was sie sind, jeden Look Gedanken darüber, was ich falsch gemacht haben? 741 00:35:16,742 --> 00:35:18,590 >> SCHÜLER: [Zwischenschaltung VOICES]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID MALAN: Yeah. 743 00:35:18,840 --> 00:35:20,640 Mir fehlt der Bibliothek Header-Datei. 744 00:35:20,640 --> 00:35:24,240 Jede dieser. H Dateien heißen Kopf Dateien, und sie kollektiv 745 00:35:24,240 --> 00:35:25,680 gehören Dinge genannt Bibliotheken. 746 00:35:25,680 --> 00:35:28,030 Bibliotheken sind nur Codeteile dass andere Menschen schrieb. 747 00:35:28,030 --> 00:35:32,140 Also die Standard [? i?] Bibliothek ist ein Sammlung von Dateien mit Code 748 00:35:32,140 --> 00:35:33,330 dass andere Menschen schrieb. 749 00:35:33,330 --> 00:35:34,820 >> So fehlt mir, dass. 750 00:35:34,820 --> 00:35:36,520 Warum bekomme ich einen Fehler entdeckt? 751 00:35:36,520 --> 00:35:40,840 Nun, lassen Sie mich zurück blättern in mein Terminal-Fenster hier. 752 00:35:40,840 --> 00:35:44,310 Und leider, in C, wie in einer Menge von Programmiersprachen, insbesondere 753 00:35:44,310 --> 00:35:47,830 wenn es ist alles neu für Sie, wird der Fehler Meldungen sind präzise, ​​aber sie sind auch 754 00:35:47,830 --> 00:35:48,620 recht kryptisch. 755 00:35:48,620 --> 00:35:51,720 Und der Fehler hier, in rot, ist "Implizit erklärt Library-Funktion 756 00:35:51,720 --> 00:35:57,660 printf mit Typ ", und dann rollt in die nächste Zeile, "int const char *, 757 00:35:57,660 --> 00:36:00,220 ... "Es wird wirklich überwältigend schnell. 758 00:36:00,220 --> 00:36:04,420 >> Aber was sollten Sie beginnen, zu tun ist, wenn wieder neu, um all dies, ist nur zu 759 00:36:04,420 --> 00:36:06,010 beginnen, um nach Schlüsselwörtern suchen. 760 00:36:06,010 --> 00:36:08,770 Klar, ich könnte nicht verstehen, die Hälfte von den Worten, ich bin einfach noch zu sehen. 761 00:36:08,770 --> 00:36:10,140 Sie werden aber in einer Woche. 762 00:36:10,140 --> 00:36:11,230 Aber ich sehe printf. 763 00:36:11,230 --> 00:36:14,310 Und das sollte beginnen, es dauerte nicht lange, bis Ihr Gedächtnis, ganz recht, printf. 764 00:36:14,310 --> 00:36:15,210 Irgendetwas stimmt nicht mit printf. 765 00:36:15,210 --> 00:36:16,580 Habe ich es buchstabieren falsch? 766 00:36:16,580 --> 00:36:18,130 Nein, ist es nicht so aussehen - oh. 767 00:36:18,130 --> 00:36:21,350 Ich kann es nicht benutzen, es sei denn ich unterrichte der Compiler, dass es existiert. 768 00:36:21,350 --> 00:36:25,220 Und so, wieder mit Ihrem Instinkt gehen, auch wenn Sie eigentlich gar nicht verstehen, 769 00:36:25,220 --> 00:36:26,510 die tatsächlichen Fehlermeldungen. 770 00:36:26,510 --> 00:36:30,240 >> Und in der Tat ist die Lösung hier nur sind sie am Anfang der Datei 771 00:36:30,240 --> 00:36:34,340 so, resaving meine Datei mit Strg-S oder das Menü Datei. 772 00:36:34,340 --> 00:36:36,730 Und wenn ich jetzt gehen wieder nach unten hier Ich werde diese zu löschen. 773 00:36:36,730 --> 00:36:39,150 Strg-L ist nur eine nette Weise , um den Bildschirm zu löschen. 774 00:36:39,150 --> 00:36:44,870 Und dann werde ich "make hallo 0 "eingeben, und jetzt sehe ich noch ein 775 00:36:44,870 --> 00:36:47,710 kryptische Sequenz von Symbolen, aber wir kommen darauf zurück. 776 00:36:47,710 --> 00:36:49,230 Das ist, was zu machen ist für Sie zu tun. 777 00:36:49,230 --> 00:36:52,590 Es ist die Automatisierung der Prozess der Übernahme ein ziemlich ärgerlich Befehl mit 778 00:36:52,590 --> 00:36:54,050 Schall, der eigentliche Compiler. 779 00:36:54,050 --> 00:36:57,460 Aber die Tatsache, dass ich keine Fehler bekommen bedeutet dass dieses Ding funktionieren sollte. 780 00:36:57,460 --> 00:37:00,630 >> Also ich gehe jetzt zu tun ist - lassen Sie mich wieder vergrößern - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 eingeben, und in der Tat, ich sehe "Hallo, Welt." So lasst uns nun zu verbessern 782 00:37:07,070 --> 00:37:12,105 dies jemals so etwas nur zu replizieren die Maßnahmen, die wir gedacht. 783 00:37:12,105 --> 00:37:15,370 Ich werde dies mit umbenennen Speichern unter, um hello1.c. 784 00:37:15,370 --> 00:37:20,300 Und jetzt werde ich eine Variable deklarieren nannte Namen, so string name, 785 00:37:20,300 --> 00:37:23,420 und ich werde es in der Put- Wert von quote-unquote 786 00:37:23,420 --> 00:37:27,030 D-A-V-I-D close-quote Semikolon. 787 00:37:27,030 --> 00:37:31,150 Und jetzt gehe ich auf "Welt" zu ersetzen mit welcher Platzhalter für einen String? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> Und nun sollte, wie viele Argumente printf die Zeit nehmen? 790 00:37:35,040 --> 00:37:35,700 Also zwei. 791 00:37:35,700 --> 00:37:37,090 Also gehe ich außerhalb der Anführungszeichen. 792 00:37:37,090 --> 00:37:39,330 Ich tippe "name" nach einem Komma. 793 00:37:39,330 --> 00:37:41,550 Doch ich habe etwas getan anderes falsch diesmal. 794 00:37:41,550 --> 00:37:43,940 Aber lassen Sie uns davon ausgehen, dass ich nicht erkennen, dass noch. 795 00:37:43,940 --> 00:37:44,910 Lassen Sie mich gehen hier oben. 796 00:37:44,910 --> 00:37:48,850 >> Und beachten Sie auch, ich bin immer ein wenig gelangweilt von Eingabe alle "hallo 0 machen" 797 00:37:48,850 --> 00:37:50,180 Zeit, "make" und all dies. 798 00:37:50,180 --> 00:37:53,270 Also, es stellt sich heraus, in Linus können oft traf den Pfeil nach oben auf Ihrem 799 00:37:53,270 --> 00:37:56,850 Tastatur, und man kann tatsächlich blättern durch alle Befehle, die ich habe 800 00:37:56,850 --> 00:37:58,830 ausgeführt vorherigen, nur jetzt. 801 00:37:58,830 --> 00:38:02,040 Also, wenn ich das tue, Up, Up, es machen hallo 0. 802 00:38:02,040 --> 00:38:02,610 Ich will nicht, dass. 803 00:38:02,610 --> 00:38:05,450 Ich möchte nur, dass zu ändern hallo 1 dieses Mal die Eingabetaste. 804 00:38:05,450 --> 00:38:07,620 Schließlich, das wird sparen Sie Zeit. 805 00:38:07,620 --> 00:38:08,150 >> In Ordnung. 806 00:38:08,150 --> 00:38:09,520 Leider gibt es ist ein Fehler aufgetreten. 807 00:38:09,520 --> 00:38:10,980 Also lassen Sie mich nach oben. 808 00:38:10,980 --> 00:38:13,120 Das sieht aus wie ich wirklich geschlachtet dieses Programm. 809 00:38:13,120 --> 00:38:16,530 Ich meine, mein Gott, es ist zwei Codezeilen, und seine 10 Linien von Fehlern. 810 00:38:16,530 --> 00:38:18,800 Aber an der Spitze einen ersten Blick. 811 00:38:18,800 --> 00:38:21,640 Die Verwendung von nicht deklarierter Bezeichner String. 812 00:38:21,640 --> 00:38:23,270 Habe ich meine Standard-I n? 813 00:38:23,270 --> 00:38:23,930 Nein habe ich nicht. 814 00:38:23,930 --> 00:38:24,940 Ich meinte String. 815 00:38:24,940 --> 00:38:29,390 >> Aber wo ist die String-Variable deklariert, dd wir sagen? 816 00:38:29,390 --> 00:38:30,730 So ist es in der CS50 die Bibliothek. 817 00:38:30,730 --> 00:38:33,740 So reicht es nicht, in dieser ersten paar Wochen, nur um zu verwenden 818 00:38:33,740 --> 00:38:34,860 Welche C gibt uns. 819 00:38:34,860 --> 00:38:38,120 Ich werde auch zu gehen hier oben, und ich könnte es oben oder unten setzen, aber ich werde 820 00:38:38,120 --> 00:38:40,340 nur halten sie alphabetisch um die Dinge ordentlich. 821 00:38:40,340 --> 00:38:43,470 Ich werde cs50.h gehören, was ist vorinstalliert für 822 00:38:43,470 --> 00:38:44,900 Sie auf dem CS50 Gerät. 823 00:38:44,900 --> 00:38:47,640 Und es ist Open Source, so dass auch Menschen im Internet kann es auf eigene verwenden 824 00:38:47,640 --> 00:38:48,450 eigenen Computer. 825 00:38:48,450 --> 00:38:50,700 Aber es kommt mit dem CS50 Gerät. 826 00:38:50,700 --> 00:38:55,320 >> So, jetzt lassen Sie mich zurückgehen und neu kompilieren hallo dies mit 1 zu machen. 827 00:38:55,320 --> 00:38:55,710 Verdammt. 828 00:38:55,710 --> 00:38:57,240 Noch ein weiterer Fehler. 829 00:38:57,240 --> 00:38:59,370 Lassen Sie mich scrollen bis zum ersten, though. 830 00:38:59,370 --> 00:39:00,630 Das hier ist ein wenig komplexer. 831 00:39:00,630 --> 00:39:03,830 Multi-Zeichenkonstante. 832 00:39:03,830 --> 00:39:04,890 Das ist nicht mir zu helfen. 833 00:39:04,890 --> 00:39:08,220 Aber beachten Sie, ist Schall zumindest ein wenig Bit anständig, wobei mit ein wenig 834 00:39:08,220 --> 00:39:11,890 grün Zirkumflexzeichen, es zu sagen Hier ist, wo ich es vermasselt. 835 00:39:11,890 --> 00:39:16,160 Warum ist es zeigt, mit diesem kleinen grünen Pfeil, der Apostroph nächsten 836 00:39:16,160 --> 00:39:18,290 meinen Namen? 837 00:39:18,290 --> 00:39:20,880 >> Also das ist eines der Dinge, die Sie gerade gewöhnungsbedürftig, vor allem wenn Sie waren 838 00:39:20,880 --> 00:39:23,980 Programmierung in Python oder JavaScript oder anderen Sprachen, in denen dieses Detail 839 00:39:23,980 --> 00:39:24,560 spielt keine Rolle. 840 00:39:24,560 --> 00:39:25,740 In C, macht das schon. 841 00:39:25,740 --> 00:39:29,520 Wenn Sie einen String deklarieren, ist die eine Folge von 0 oder mehr Zeichen, 842 00:39:29,520 --> 00:39:32,280 Sie müssen tatsächlich Anführungszeichen verwenden. 843 00:39:32,280 --> 00:39:36,670 Also habe ich tatsächlich benötigen, um diese wieder zu ändern Zitat zu öffnen, zu schließen Zitat, mit 844 00:39:36,670 --> 00:39:37,800 Anführungszeichen. 845 00:39:37,800 --> 00:39:41,610 Einfache Anführungszeichen haben ihren Platz, aber nur, wenn Sie mit einzelnen 846 00:39:41,610 --> 00:39:44,100 Zeichen, sondern mehr auf, dass eine andere Zeit. 847 00:39:44,100 --> 00:39:46,550 Denn jetzt, die doppelten Anführungszeichen erforderlich. 848 00:39:46,550 --> 00:39:50,460 >> So, jetzt lassen Sie mich zurück zu meinem Terminal Fenster, hallo 1 machen. 849 00:39:50,460 --> 00:39:51,450 Und wer ist zuversichtlich? 850 00:39:51,450 --> 00:39:53,800 Ist dieses Programm nun richtig zu kompilieren? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Also drei von uns denken, daß diese. 854 00:39:59,780 --> 00:40:00,280 In Ordnung. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 Und es tatsächlich tat. 857 00:40:02,440 --> 00:40:05,130 Also gibt es keine Fehler diesmal sogar wenn dieses Programm ist ein bisschen bekommen 858 00:40:05,130 --> 00:40:05,840 komplexer. 859 00:40:05,840 --> 00:40:10,110 Wenn ich jetzt tun dot Schrägstrich hallo 1, Enter, es geht zu sagen "hallo, David." 860 00:40:10,110 --> 00:40:11,750 >> Aber lassen Sie uns die dritte Iteration Aus diesem, wobei der 861 00:40:11,750 --> 00:40:13,380 Programm ist wirklich dynamisch. 862 00:40:13,380 --> 00:40:16,770 Lassen Sie mich gehen, und ändern Sie die Datei Namen, nur auf die Übereinstimmung mit der 863 00:40:16,770 --> 00:40:20,410 Dateien, die Sie zur Verfügung haben werde Sie danach online. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 Und jetzt werde ich gehen und nicht in speichern "David" hart codiert hier. 866 00:40:25,510 --> 00:40:28,826 Was könnte ich tun, um sehr einfach Verbesserung dieses Programm? 867 00:40:28,826 --> 00:40:30,520 >> Ich konnte rufen getstring. 868 00:40:30,520 --> 00:40:33,240 Es könnte ein wenig nicht offensichtlich, was sein zu geschehen, so werde ich 869 00:40:33,240 --> 00:40:38,470 tatsächlich fügen Sie eine weitere Zeile, printf, und sagen, Namen, Dickdarm, in der Nähe zitieren, nur 870 00:40:38,470 --> 00:40:40,790 um dem Benutzer eine schnelle auf dem Bildschirm. 871 00:40:40,790 --> 00:40:42,980 Und jetzt werde ich hier, und ich bin werde meine Tastenkombination verwenden. 872 00:40:42,980 --> 00:40:47,680 Ich werde gehen, Up, Up, und ändern hallo hallo 1 bis 2, Enter. 873 00:40:47,680 --> 00:40:49,260 Und Gott sei Dank, ich mache Fortschritte. 874 00:40:49,260 --> 00:40:52,720 >> Und jetzt bin ich nach oben gehen zu Punkt Schrägstrich hallo und 875 00:40:52,720 --> 00:40:54,690 ändern, dass bis 2, Enter. 876 00:40:54,690 --> 00:40:55,650 Und jetzt mein Programm - 877 00:40:55,650 --> 00:40:57,700 Ich werde es zu vergrößern - wird immer ein wenig schöner. 878 00:40:57,700 --> 00:41:02,190 Name sein wird, sagen wir Rob dieses Mal eingeben, hallo, Rob. 879 00:41:02,190 --> 00:41:03,260 Wir können es wieder tun. 880 00:41:03,260 --> 00:41:05,360 Name, Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Name, Joseph, Enter. 882 00:41:07,820 --> 00:41:11,596 Name, wollen wir versuchen, sein schwierig, die Eingabetaste. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 Es ist nicht wirklich ein Fehler. 885 00:41:14,680 --> 00:41:16,090 So ist es nur ein wenig hässlich. 886 00:41:16,090 --> 00:41:18,640 So könnten wir vielleicht dieses Problem lösen in der Zukunft, nicht jetzt. 887 00:41:18,640 --> 00:41:20,840 >> Aber wie würden Sie instinktiv gehen über die Adressierung 888 00:41:20,840 --> 00:41:21,990 dass besondere Herausforderung? 889 00:41:21,990 --> 00:41:23,710 Es sieht einfach dumm. 890 00:41:23,710 --> 00:41:27,320 Wie vermeiden Sie Dinge blöd? 891 00:41:27,320 --> 00:41:29,890 So konnten wir tun, OK, hörte ich ein paar Dinge, eine Bedingung und eine Schleife. 892 00:41:29,890 --> 00:41:33,340 Wir könnten, ein, eine Bedingung, um zu überprüfen, was ist die Länge der Zeichenfolge 893 00:41:33,340 --> 00:41:34,190 der Benutzer hat uns? 894 00:41:34,190 --> 00:41:37,100 Und wenn es 0 ist, ist es nur zu zitieren unquote, sie einfach Enter drücken, dann 895 00:41:37,100 --> 00:41:38,930 vielleicht sollte ich sie an zu schreien und fordert sie wieder. 896 00:41:38,930 --> 00:41:39,970 Aber wie wollen sie wieder eine Aufforderung? 897 00:41:39,970 --> 00:41:44,230 Nun, ich hörte auch Schleife, und ich konnte tun, dass wieder und wieder und wieder 898 00:41:44,230 --> 00:41:47,010 Aufforderung an den Benutzer für die gleiche Sache. 899 00:41:47,010 --> 00:41:48,880 >> Nun, lasst uns ein anderes Beispiel Verwendung einer anderen 900 00:41:48,880 --> 00:41:50,620 Funktion in der CS50-Bibliothek. 901 00:41:50,620 --> 00:41:52,330 Lassen Sie mich schließen Sie diese Datei. 902 00:41:52,330 --> 00:41:53,510 Lassen Sie mich ein neues erstellen. 903 00:41:53,510 --> 00:41:58,510 Und ich nenne es adder.c, nur weil es ist leicht, einfache arithmetische tun, 904 00:41:58,510 --> 00:42:00,890 auch wenn dies vollständig sein underwhelming mit dem, was Sie tun können 905 00:42:00,890 --> 00:42:02,250 mit jedem modernen Computer. 906 00:42:02,250 --> 00:42:03,750 >> Aber lassen Sie mich gehen und jetzt - 907 00:42:03,750 --> 00:42:10,680 Ich habe meine Lektion gelernt letzte Mal - gehören cs50.h, include stdio.h, int 908 00:42:10,680 --> 00:42:14,170 Haupt Leere, die für jetzt, ich werde einfach nehmen auf blindem Glauben, aber wir gehen davon aus, 909 00:42:14,170 --> 00:42:16,380 das wird verstehen, was das bedeutet, es dauerte nicht lange. 910 00:42:16,380 --> 00:42:21,030 Und ich werde etwas sagen wie "gib mir einen int." 911 00:42:21,030 --> 00:42:22,140 >> Und nun, wie bekomme ich einen int? 912 00:42:22,140 --> 00:42:26,820 Ich möchte schließlich eine Variable genannt x vom Typ int und 913 00:42:26,820 --> 00:42:29,240 verstaust eine ganze Zahl von dem Benutzer. 914 00:42:29,240 --> 00:42:29,970 Das war also ein Schluck. 915 00:42:29,970 --> 00:42:35,680 Aber wenn jemand zu schlagen, wie verkündige ich, eine ganze Zahl als x? 916 00:42:35,680 --> 00:42:36,310 Int x. 917 00:42:36,310 --> 00:42:37,430 >> Also es ist wirklich so einfach. 918 00:42:37,430 --> 00:42:38,240 Gib mir ein int. 919 00:42:38,240 --> 00:42:39,070 Nennen Sie es, x. 920 00:42:39,070 --> 00:42:40,580 Jetzt benutze ich den Zuweisungsoperator. 921 00:42:40,580 --> 00:42:43,400 Und wie komme ich aus dem Laden links einen Wert der Benutzer? 922 00:42:43,400 --> 00:42:47,310 Ich will nicht zu getstring nennen, offensichtlich, sondern getint. 923 00:42:47,310 --> 00:42:49,060 Alle Argumente? 924 00:42:49,060 --> 00:42:49,350 Nr. 925 00:42:49,350 --> 00:42:51,870 So ist es offen paren Nähe paren sofort, und dann ein 926 00:42:51,870 --> 00:42:53,440 Semikolon endet die Linie. 927 00:42:53,440 --> 00:42:54,930 >> Nun lassen Sie mich dies wieder tun. 928 00:42:54,930 --> 00:42:57,070 Gib mir noch int. 929 00:42:57,070 --> 00:43:01,850 Dieses Mal werde ich tun, int, lasst nennen es y, gleich getint. 930 00:43:01,850 --> 00:43:05,060 Und jetzt lassen Sie mich etwas tun, super-einfach wie einige math. 931 00:43:05,060 --> 00:43:14,340 So printf, ist die Summe der% d der Platzhalter für ein int. 932 00:43:14,340 --> 00:43:20,030 Und% d, Periode, Backslash-n. 933 00:43:20,030 --> 00:43:20,360 >> In Ordnung. 934 00:43:20,360 --> 00:43:21,670 Also das ist eigentlich nicht math. 935 00:43:21,670 --> 00:43:25,500 Aber wenn ich will, um die Summe von sagen zuzüglich dieser Wert entspricht dies 936 00:43:25,500 --> 00:43:29,320 anderer Wert, wie viele Argumente in Insgesamt sollte ich printf geben werden, 937 00:43:29,320 --> 00:43:30,520 letztlich? 938 00:43:30,520 --> 00:43:31,420 So vier, nicht wahr? 939 00:43:31,420 --> 00:43:33,790 Diese Saite und dann die drei Werte. 940 00:43:33,790 --> 00:43:37,560 Also x ist das erste was ich sein will gesteckt zunächst auf die% d. 941 00:43:37,560 --> 00:43:39,270 y wird der nächste sein. 942 00:43:39,270 --> 00:43:42,030 >> Und jetzt bin Art sagen wollen z, z, aber nicht vorhanden ist. 943 00:43:42,030 --> 00:43:43,190 Aber das ist keine große Sache. 944 00:43:43,190 --> 00:43:45,440 Denn was würden Sie tun instinktiv, vor allem, wenn Sie hatte eine 945 00:43:45,440 --> 00:43:47,820 Grafik-Taschenrechner, was Sie tippen? 946 00:43:47,820 --> 00:43:48,760 Wie wäre es mit x zuzüglich y? 947 00:43:48,760 --> 00:43:50,200 So ist es nicht eine tatsächliche Variable. 948 00:43:50,200 --> 00:43:51,820 Es ist nur die Summe von zwei anderen Variablen. 949 00:43:51,820 --> 00:43:53,170 Und das ist völlig legitim. 950 00:43:53,170 --> 00:43:56,630 C versteht sicherlich einfacher Arithmetik wie diese. 951 00:43:56,630 --> 00:43:58,450 >> Semikolon, zu speichern. 952 00:43:58,450 --> 00:44:02,080 Nun lassen Sie mich gehen hier und Geben Sie machen Addierer, Enter. 953 00:44:02,080 --> 00:44:04,100 Es ist kein Fehler, das ist also auch Fortschritte. 954 00:44:04,100 --> 00:44:04,890 Geben Addierer. 955 00:44:04,890 --> 00:44:07,100 Und noch ein Tastenkürzel, wenn Sie beginnen sich zu langweilen 956 00:44:07,100 --> 00:44:08,760 mit allen Befehlen - 957 00:44:08,760 --> 00:44:12,650 wenn Sie mit der Eingabe eines Befehls zu starten, wie dot Schrägstrich ad, und das ist, wo Ihre 958 00:44:12,650 --> 00:44:16,020 Langeweile schlägt in, Sie können in der Regel getroffen Tab, den Computer beenden die 959 00:44:16,020 --> 00:44:20,510 Rest der Begriff für Sie, wenn es nicht mehrdeutig, was nach Anzeige kommen. 960 00:44:20,510 --> 00:44:23,950 >> Also lass mich gehen jetzt und Sie drücken Sie die Eingabetaste. 961 00:44:23,950 --> 00:44:27,490 Gib mir ein int, 1, 2, und Gott sei Dank, es ist 3. 962 00:44:27,490 --> 00:44:29,900 Aber wie immer, Testen von Programmen sollte nicht zu verringern 963 00:44:29,900 --> 00:44:30,820 nur versuchen es einmal. 964 00:44:30,820 --> 00:44:35,560 Lassen Sie mich versuchen, eine Ecke Fall, wie negativ 1, gib mir 1, und dass man 965 00:44:35,560 --> 00:44:36,210 checkt auch. 966 00:44:36,210 --> 00:44:38,870 Und ich wollen wahrscheinlich etwas mehr tun strenge Tests, aber ich bin mir ziemlich 967 00:44:38,870 --> 00:44:40,630 komfortabel mit, wo das ist, an. 968 00:44:40,630 --> 00:44:43,110 >> Nun, jetzt versuchen wir ein anderes Programm dass dieses Mal verwendet ein 969 00:44:43,110 --> 00:44:44,620 etwas andere Syntax. 970 00:44:44,620 --> 00:44:46,100 Lassen Sie mich eine neue Datei erstellen. 971 00:44:46,100 --> 00:44:51,050 Ich rufe diese conditions0.c antreten mit einigen Beispiel-Code online. 972 00:44:51,050 --> 00:44:55,550 Und lassen Sie mich gehen Sie vor und tun gehören cs50.h gehören 973 00:44:55,550 --> 00:45:00,320 stdio.h, in Haupt-Leere - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Dort gehen wir. 976 00:45:01,850 --> 00:45:03,010 Wir haben unsere Standard Textvorschlag. 977 00:45:03,010 --> 00:45:08,170 >> Und dieses Mal werde ich printf sagen, "Ich möchte einen int, bitte", nur um 978 00:45:08,170 --> 00:45:10,030 machen die Eingabeaufforderung ein wenig mehr freundlich. 979 00:45:10,030 --> 00:45:11,620 Und jetzt will ich eine bekommen int von dem Benutzer. 980 00:45:11,620 --> 00:45:15,010 Ich werde es dieses Mal n nennen, nur weil n klingt wie Nummer. 981 00:45:15,010 --> 00:45:18,140 getint, und jetzt, was zu tun ist Ich möchte damit zu tun? 982 00:45:18,140 --> 00:45:21,640 Nun, wenn n - und ich werde es zu vergrößern - 983 00:45:21,640 --> 00:45:25,930 wenn n größer als 0 ist, möchte ich Folgendes tun - 984 00:45:25,930 --> 00:45:36,060 printf "Sie haben eine positive Zahl ist." Else, ich werde printf geben "Du 985 00:45:36,060 --> 00:45:37,870 nahm eine negative 986 00:45:37,870 --> 00:45:39,650 Nummer. "In Ordnung. 987 00:45:39,650 --> 00:45:44,410 Also das Programm, auch wenn ich es tat schnell, sieht rechts syntaktisch. 988 00:45:44,410 --> 00:45:45,010 Lassen Sie mich versuchen, diese. 989 00:45:45,010 --> 00:45:46,890 Als Bedingung 0. 990 00:45:46,890 --> 00:45:47,710 Scheint zu laufen. 991 00:45:47,710 --> 00:45:49,230 Zustand 0, geben. 992 00:45:49,230 --> 00:45:51,910 Lass es uns einen int von 50 Jahren. 993 00:45:51,910 --> 00:45:53,160 Ich nahm eine positive Zahl ist. 994 00:45:53,160 --> 00:45:54,230 Lassen Sie uns versuchen Sie es erneut. 995 00:45:54,230 --> 00:45:54,930 Zustand 0. 996 00:45:54,930 --> 00:45:56,260 Negative 50. 997 00:45:56,260 --> 00:45:57,290 Ich nahm eine negative Zahl ist. 998 00:45:57,290 --> 00:46:00,350 >> Aber jetzt lassen Sie mich holen, was wir halten Aufruf einer Ecke Fall ist die weitere 999 00:46:00,350 --> 00:46:04,702 ein interessanter Fall, dass Sie denken könnte Ihnen einige Mühe, 0. 1000 00:46:04,702 --> 00:46:07,940 Nun, ich bin mir ziemlich sicher, das ist eine der diese Ecke Fällen, in denen Null ist 1001 00:46:07,940 --> 00:46:12,330 weder positiv noch negativ, so meine Programm, wenn in syntaktisch 1002 00:46:12,330 --> 00:46:15,440 korrigieren - es kompiliert, es läuft - ist logisch nicht korrekt. 1003 00:46:15,440 --> 00:46:21,050 Also, was ist die einfache Lösung hier, wenn ich will zu erkennen, wenn ich n behandeln möchten 1004 00:46:21,050 --> 00:46:23,840 gleich 0 getrennt? 1005 00:46:23,840 --> 00:46:32,980 >> Also, wenn n gleich 0 ist, dann möchte ich sagen, etwas wie printf "Sie haben 0." 1006 00:46:32,980 --> 00:46:33,990 Lassen Sie mich versuchen, diese jetzt. 1007 00:46:33,990 --> 00:46:38,320 Lassen Sie mich wieder hier, deaktivieren meinem Fenster, und neu kompilieren. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Ein Fehler. 1010 00:46:39,770 --> 00:46:41,630 Aber ich glaube Sie überprüfen möchten wenn n gleich 0 ist. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Also noch einmal, andere dumme Sache zu gewöhnen, ist Gleichheitszeichen 1013 00:46:47,720 --> 00:46:48,910 der Zuweisungsoperator. 1014 00:46:48,910 --> 00:46:52,240 Also das ist eigentlich Fehler, daß technisch, obwohl der Compiler 1015 00:46:52,240 --> 00:46:56,450 schützte mich vor mir selbst, würden wir Kopieren technisch werden 0 in N, die 1016 00:46:56,450 --> 00:46:57,590 ist nicht das, was ich will. 1017 00:46:57,590 --> 00:47:00,950 Ich möchte für die Gleichstellung testen mit gleich gleich. 1018 00:47:00,950 --> 00:47:03,390 Und so, dass jetzt sein könnte meine bessere Lösung. 1019 00:47:03,390 --> 00:47:07,810 >> Lassen Sie mich tatsächlich speichern Sie diese als, sagen wir, Bedingungen1, um neue und verbesserte. 1020 00:47:07,810 --> 00:47:10,480 So jetzt, wenn ich diese neu zu kompilieren, es würde Bedingungen - 1021 00:47:10,480 --> 00:47:16,960 hoppla - machen Bedingungen1 dot Schrägstrich Bedingungen1, Enter, "Ich würde gerne einen int, 1022 00:47:16,960 --> 00:47:18,760 bitte. "ich werde gehen vor und geben 50. 1023 00:47:18,760 --> 00:47:19,660 Es ist immer noch gut. 1024 00:47:19,660 --> 00:47:21,200 Negative 50, immer noch gut. 1025 00:47:21,200 --> 00:47:24,920 0, und es in der Tat erkannt dass ich abgeholt 0. 1026 00:47:24,920 --> 00:47:28,200 >> So was kann ich nun tun mit diesem? 1027 00:47:28,200 --> 00:47:32,280 Nun, wir können sicherlich immer tun komplexe Dinge. 1028 00:47:32,280 --> 00:47:37,240 Aber was ich möchte vorschlagen, ist dass wir in diesem Sinne hier zu beenden. 1029 00:47:37,240 --> 00:47:41,680 Wenn wir ziehen diese, werden Sie sehen, vielleicht, ein Lieblings-Cartoon von Ihnen 1030 00:47:41,680 --> 00:47:43,326 bis heute könnten Sie nie verstanden haben. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 Und das ist über die Qualität des Lachens Sie sollten mit CS Witze zu bekommen. 1033 00:47:49,520 --> 00:47:51,060 Also das ist richtig. 1034 00:47:51,060 --> 00:47:54,900 >> Aber mehr zwingend, dachte ich, ich würde geben Sie uns ein kleiner Teaser für Samstag. 1035 00:47:54,900 --> 00:47:56,430 Also haben wir begonnen, mit Zahlen. 1036 00:47:56,430 --> 00:47:57,510 Wir haben zu Schwimmern bezeichnet. 1037 00:47:57,510 --> 00:48:00,120 Wir haben sogar den Doppel genannt, was wiederum Ihnen Zahlen 1038 00:48:00,120 --> 00:48:01,390 nach Dezimalstellen. 1039 00:48:01,390 --> 00:48:04,230 >> Aber es stellt sich heraus, dass die Schwimmer und Doppel-, und, wirklich, Computer, 1040 00:48:04,230 --> 00:48:08,470 grundsätzlich nicht ausdrücken können einige Werte genau. 1041 00:48:08,470 --> 00:48:12,840 Wir wissen aus der Mathe Klassen, dass man eine beliebige Anzahl von Nummern der 1042 00:48:12,840 --> 00:48:13,510 Komma. 1043 00:48:13,510 --> 00:48:16,460 Und Sie können sogar einen vertikalen Balken zu sagen, diese ewig so weitergehen. 1044 00:48:16,460 --> 00:48:18,810 >> Leider kann man nicht wirklich man das in einem Computer. 1045 00:48:18,810 --> 00:48:20,400 Und so Ecke Fällen ergeben. 1046 00:48:20,400 --> 00:48:23,120 Angenommen, du bist etwas finanzielle. 1047 00:48:23,120 --> 00:48:25,700 Du machst Mathematik mit Prozentsätzen, und 1048 00:48:25,700 --> 00:48:27,030 mit Dollar und Cent. 1049 00:48:27,030 --> 00:48:29,230 Und diese Cent nicht unbedingt Line-Up. 1050 00:48:29,230 --> 00:48:34,120 Nun stellt sich heraus, dass die Fraktionen von Pfennige kann beginnen zu addieren, wenn 1051 00:48:34,120 --> 00:48:37,250 modelliert mit einem Computersystem in einer Weise, dass geschickte 1052 00:48:37,250 --> 00:48:39,100 Menschen können die Vorteile. 1053 00:48:39,100 --> 00:48:42,650 >> Und diejenigen von euch, die nicht gesehen haben, würde ich möchte Ihnen einen 30-sekündigen Teaser 1054 00:48:42,650 --> 00:48:48,290 ein wunderbarer Film Office Space bekannt, das wird ein Bild malen eines 1055 00:48:48,290 --> 00:48:51,205 Problem werden wir angehen erste, was am Montag. 1056 00:48:51,205 --> 00:48:53,960 Wenn wir die Lautstärke zu erhöhen ein wenig, ich gebe Ihnen 30 1057 00:48:53,960 --> 00:48:55,495 Sekunden Bürofläche. 1058 00:48:55,495 --> 00:48:55,770 >> [VIDEO PLAYBACK] 1059 00:48:55,770 --> 00:48:59,000 >> -Ich meine, Sie, haben Sie nicht zeigen und erhalten Sie Ihren Job behalten. 1060 00:48:59,000 --> 00:49:00,620 >> -Eigentlich bin ich gefördert. 1061 00:49:00,620 --> 00:49:03,240 >> -Ich könnte einen Virus programmieren Das würde RIP, Ort abseits große Zeit. 1062 00:49:03,240 --> 00:49:04,430 >> -Nun, wie funktioniert es? 1063 00:49:04,430 --> 00:49:06,782 >> -Jedes Mal gibt es eine Bank-Transaktion wo Interesse berechnet, und 1064 00:49:06,782 --> 00:49:10,160 Tausende pro Tag, endet der Computer mit diesen Bruchteilen eines Cent. 1065 00:49:10,160 --> 00:49:12,030 >> -Aber ich werde nicht nichts illegal. 1066 00:49:12,030 --> 00:49:12,660 >> -Illegal? 1067 00:49:12,660 --> 00:49:15,075 Samir ist dies Amerika. 1068 00:49:15,075 --> 00:49:16,570 >> -Wir müssen auf Gott schwören. 1069 00:49:16,570 --> 00:49:19,070 >> -Wenn niemand weiß, über diese aber uns, alles in Ordnung? 1070 00:49:19,070 --> 00:49:21,920 Keine Familienmitglieder, keine Freundinnen, niemand. 1071 00:49:21,920 --> 00:49:22,700 >> -Natürlich. 1072 00:49:22,700 --> 00:49:23,320 >> -Einverstanden. 1073 00:49:23,320 --> 00:49:24,280 >> -Keine Sorge, man. 1074 00:49:24,280 --> 00:49:25,640 Ich werde es niemandem erzählen entweder. 1075 00:49:25,640 --> 00:49:26,504 >> [END VIDEO PLAYBACK] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID MALAN: Also das ist dann CS50, das war Office Space, und es werden alle 1077 00:49:30,030 --> 00:49:31,465 Sinn am Montag. 1078 00:49:31,465 --> 00:49:33,940 Wir sehen uns dann. 1079 00:49:33,940 --> 00:49:37,880 >> SPRECHER: Bei der nächsten CS50, Rob passt sich es aus dem 1080 00:49:37,880 --> 00:49:39,130 Harvard Speiseplan. 1081 00:49:39,130 --> 00:49:56,160