[Musik spielt] DAVID MALAN: Alles klar. Willkommen zurück. Dies ist CS50, und dies ist One Week, Fortsetzung. So einer der Gründe, warum wir vorbeigekommen haben um Technologien wie Google Glass ist, dass sie mit zu kommen etwas bekannt als eine API, ein Application Programming Interface. Und was das bedeutet, ist, dass mit der richtigen Dateien und mit der richtigen Dokumentation, können Sie tatsächlich schreiben Software für noch Geräte wie diese. Und so, was wir im Sinn haben, in Richtung Semester Ende ist, wenn ein Projekt mit, sagen wir, Google Glass könnte Appell, wir werden sehen, was wir tun können in Bezug Einhaken Sie sich mit einigen Leihgerät Hardware sowie die öffentlich zugängliche API, so dass Sie tatsächlich beginnen die Erstellung von Software das läuft auf dem gleichen Google Glass. Ein weiteres Gerät, das wir gespielt haben mit der spät, dass wir dachten, vielleicht Spaß an Semester Ende ist dieses kleine Ding hier. Es heißt Leap Bewegung, und was du bist über zu sehen ist technisch eine Anzeige des Geräts, sondern es nicht auf das, was diese besondere sprechen Vorrichtung in der Lage ist. Und auch er kommt mit einem API via was können Sie Software zu schreiben steuern Sie Ihre eigenen Computer in einer Art und Weise ganz gerne dieses einminütigen Film hier. [VIDEO PLAYBACK] [END VIDEO PLAYBACK] So jetzt, geschieht dieses Gerät wie ein kleines USB umgesetzt werden Verbindungsstück, das Sie in Ihr stecken Computer, aber ich würde mich nicht wundern wenn es dauerte nicht lange haben wir diese Art von Technologien in die nächste Charge von PCs und Macs, so dass Sie in der Tat, mit ihm interagieren in eine Art und Weise wie die. In der Tat, was ich dachte, ich würde auch tun, ist Ich zog eine kleine Demonstration Programm, das kommt mit dieser Software. Also habe ich den kleinen Sensor setzen vor meinem Laptop. Und wie Sie sehen können, ist es bereits realisiert dass meine Hand ist da kontrollieren. Und all dies tut, ist Anwendung swimmingly kleine Dinge wie diese. Aber man kann sehen, dass in der Tat, Ich habe fünf Finger dort. Wenn es uns gelingt, es zu tun, alle 10, Sie können sich vorstellen, ein ordentliches Klavier Anwendung oder dergleichen. Also, wenn Sie möchten, kommen nach dem Unterricht heute und spielen mit, dass Nun, Sie sind zu begrüßen. Also mehr auf, dass auf Ende Semester. So ein paar administrative Ankündigungen. One, tun Abschnitt durch diesen Freitag am Mittag an cs60.net/section. Das URL ist auf dem Kurs der Homepage als gut. In der Zwischenzeit, obwohl, supersections wird erstmals an diesem Sonntag. Supersections sind eine einmalige Sache, denn es dauert einige Zeit, um uns zu arbeiten heraus, wer in welchem ​​Bereich und wo. So am kommenden Sonntag, werde da sein Abschnitt für diejenigen, weniger komfortabel, einem Abschnitt für diejenigen, komfortabler. Und diejenigen von euch, irgendwo in zwischen sind herzlich eingeladen, zu gehen oder beide oder keines von beiden. Beides wird gefilmt werden. Sie werden in einem größeren Auditorium sein als ein Abschnitt normalerweise wäre in. Aber das Ziel ist es, Sie mit ausstatten einige Komfort mit einem Problem stellen, mit C, mit dem CS50 Gerät, diesem Wochenende, noch bevor Sie Ihre formale Abschnitt Zuordnung. So treffen Sie Ihre TF und Ihr kleiner Gruppe von sectionmates in etwa eine Woche Zeit. Sprechstunde, inzwischen haben schon seit. Sie nutzen sie heute Abend oder morgen Abend, wenn Sie möchten. Problem set 0 ist am Freitag. Dies ist ein Tag später als die regulär geplanten Mittwoch. Aber mit Problem-Set 1, werden Sie sehen, dass es enthält einige Warm-up Übungen, mit denen Sie sich selbst Ihre verlängern Donnerstag Frist bis Freitag. Problem Satz 1, mittlerweile wird Debüt Auf dem Kurs der Website im kommenden Freitag, wenn Sie möchten, machen Sie es sich mit wie ich es einst spät Freitag Abend in Ihrem Zimmer. So cs50.net/appliance ist der Ort, wo können Sie das Gerät CS50 dass wir mit am Montag begonnen. Wir verwenden es ein bisschen mehr heute. Aber seien Sie versichert, dass das Problem 1 Spezifikation wird Sie durch gehen genau die Schritte, die Sie brauchen zu, dass zum Laufen zu bekommen. Also nicht zu tun, dass vor Sorgen Pset 1, wenn Sie lieber nicht. In Ordnung. So haben wir uns am Montag um Quellcode sondern im Rahmen einer neuen Programmiersprache, nämlich C und C, im Gegensatz zu Scratch, ist nicht grafisch. Es ist nicht Puzzleteile. Es ist mehr Englisch-ähnliche Syntax. Und es gibt ein paar Schritte beteiligt in tatsächlich ein Schreiben und Ausführen Programm in C, denn neben Quelle Code wie diesen, müssen Sie etwas rief ein Compiler. Und in juristischer Hinsicht, was ist ein Compiler für uns tun? Ja. STUDENT: Er wandelt den Code dass Sie 0 und 1 zu schreiben. DAVID MALAN: Good. So wandelt er den Code, schreiben wir 0 und 1. Er wandelt sogenannten Quellcode Objektcode, von denen die letztere sieht ein wenig etwas wie dieses. Und es ist Ihre CPU, die Gehirne Innenseite Ihrem Computer, dass aufgrund der Menschen, die diese Computer erstellt, wissen, was diese Sequenzen von 0 und 1 bedeuten. Vielleicht bedeutet es Druck. Vielleicht bedeutet es hinaus. Vielleicht bedeutet es Subtraktion. Vielleicht bedeutet es ein graphisches. Es gibt vordefinierte Bitmuster dass die Welt bedeuten, hat beschlossen, bestimmte Dinge. Aber zum größten Teil in diesem Kurs wir werden auf einer höheren Ebene zu arbeiten, und nehmen wir für selbstverständlich halten, dass es existiert Dinge wie Compiler, können machen unseren Quellcode Funktion in der Art, wie wir wollen. So schrieben wir das Programm erste letzte Woche und begann dann in den Hafen, so zu sprechen, C in der vergangenen Montag, war diese. Wenn grüne Flagge angeklickt, Hallo zu sagen. Dies war natürlich geschrieben in Scratch. Und ich behauptete, dass das Äquivalent Programm in C sah ein wenig etwas wie dieses. Also, was ich dachte, wir würden auf den ersten zu tun ist, lasst auseinanderzuhalten, was aussieht, auf den ersten Blick freilich als ziemlich obskuren Syntax, aber du wirst beginnen zu bemerken, Muster recht schnell. Was wir heute tun, ist auch liefern Sie mit einer psychischen Modell für einige kanonische, einige Standard-Konstrukte in der Programmierung. Und dann werden wir tatsächlich unsere Hände schmutzig mit einigen Beispielen als gut. Also für diejenigen unter Ihnen mehr Komfort, erkennen, dass in dieser Woche und dann im nächsten Woche kann sehr wohl ein bisschen Kritik sein. Aber vor allem, wenn der Hacker Ausgabe von Problem-Set 1 geht auf die Natürlich Webseite am Freitag, denke ich Sie werden feststellen, dass, auch wenn Sie ausfüllen einige Rohlinge in der nächsten Woche oder zwei, Sie beginnen immer mehr bekommen herausgefordert und Begegnung neue und neuere Sachen. Also lasst uns necken dieses Programm auseinander ein paar Zeilen zu einem Zeitpunkt. An der Spitze haben wir, was ist technisch genannt Präprozessordirektive. Dies ist nur eine Codezeile, sagt um den Inhalt einer Datei umfassen, genannt Standard I / N, Standard-Eingabe - oder, sorry, Standard-I / O, Standard Eingang / Ausgang,. h, innen von meinem eigenen Programm. Also mit anderen Worten, wenn ich dies schrieb Programm mit einem einfachen Text-Editor wie gedit, desto einfacher Äquivalent so etwas wie Microsoft Word, dass Anweisung # include stdio.h, ist nur gehen, um dem Compiler mitzuteilen, greifen die Inhalt dieser anderen Datei stdio.h, und fügen Sie sie hier genau richtig. Nun, warum mich das interessieren? Was haben wir den Anspruch innerhalb dieser Datei stdio.h genannt, die gespeichert irgendwo auf meiner Festplatte, oder in diesem Fall irgendwo in der CS50 Gerät? Jemand anderes hat es dort für mich. Aber was ist da drin? Ja, so ist es eine Erklärung der eine Funktion namens printf. So erinnert der printf Funktion, die Displays Wörter und Zeichen und Zahlen auf dem Bildschirm an meinem Bieten. Aber ich habe es nicht geschrieben. CS50 habe es nicht geschrieben. Jemand Jahren schrieb sie, und sie Wesentlichen gab uns das Rezept für sie in einer Datei namens stdio.h. So, dass erste Zeile gibt mir nur zugreifen Funktionen, dass jemand anderes schrieb Jahren unter was sind printf. Nun, die nächste Zeile Ich werde meine winken Hand, zumindest bis nächste Woche. Aber jetzt wissen, dass int main (void) ist im Wesentlichen das Äquivalent davon gelb Puzzleteil, wenn grüne Flagge angeklickt. Die Welt, vor Jahren entschieden, dass, wenn Sie schreiben ein Programm in die Sprache namens C, starten Sie Ihr Programm mit einer Linie das sieht so aus. In knapp einer Woche, werde es machen Sinn was int ist, was nichtig ist. Aber für jetzt, man denke nur an wie dieser gelbe Puzzleteil. Jetzt nächsten, haben wir eine geschweiften Klammer gefolgt von einem anderen in der Nähe geschweiften Klammer, sozusagen. Und wir werden sehen, diese ganzen Programme in C, sowie JavaScript und PHP. Und dies sind nur kapseln ähnliche Zeilen Code. Die offene geschweiften Klammer im Wesentlichen sagt, hier kommt ein Code. Und der geschlossenen geschweiften Klammer, das ist Winkel in die andere Richtung, so Mittel, das ist es für der entsprechende Code. So das saftige Linie in dieser ersten Programm ist das letzte, printf, quote-unquote, hallo Welt. Und ich habe das Ding zwischen Anführungszeichen, was beim letzten Mal? So ist es ein String. Und ein String ist nur der Technikfreak Ausdruck für eine Sequenz von Zeichen, ein Wort, eine Phrase. Schon ein einziger Brief konnte Doppel zitiert werden. Aber es ist eine Folge von null oder mehr Zeichen. Backslash-n, obwohl, sieht ein bisschen seltsam. Aber es bedeutete einfach etwas einfach an den Computer. Was ist Backslash-n? Neue Zeile. Also das ist nur die spezielle Abfolge von Zeichen, dass die Welt hat sich entschieden Mittel setzen einen Zeilenumbruch genau dort, weil der Compiler tatsächlich bekommen verwirrt, in der Regel, wenn Sie, sehr verständlicherweise, aber falsch, nur starten Enter drücken zu setzen neue Zeilen im Code. Sie müssen sich ein wenig mehr sein explizit mit Backslash-n. Und wir werden sehen, es gibt noch ein paar andere wie Muster für Sonderzeichen. Zum Beispiel, wenn Sie wollten lassen Sie Ihre Seele baumeln zu einer Ecke Fall nehme an, dass ich ein drucken wollte Anführungszeichen auf dem Bildschirm welchem ​​Grund auch immer, das würde scheinen ein wenig problematisch, nicht wahr? Denn wenn ich einen doppelten Anführungszeichen in die Mitte "Hallo, Welt", für was auch immer Grund ist, warum das so scheinen potenziell problematisch? Es bricht die Saite. Der Compiler ist nur ein Programm. Ein Programm wie ein Compiler ist gerade dabei Ihren Code oben nach unten gelesen, von links nach rechts. Und wenn sieht drei doppelte Anführungszeichen statt von zwei, es nicht zu wissen, wenn du meinst, dass das Ding auf der linken Seite sollte die Zeichenfolge, oder das, was zu sein das Recht oder die ganze Sache. Es ist eindeutig, und so, wie ein typischer Compiler tun würde, ist nur ausflippen, und geben Ihnen einige Fehlermeldung, und machen Sie mit dem Problem umzugehen. Also da Backslash-n bedeutet eine neue Linie, was würden Sie Ihrem Instinkt jetzt beginnen zu sein, wenn Sie gehören wollte etwas wie eine doppelte anomale zitieren innerhalb dieser sonst zitierten String? Backslash-Anführungszeichen. Und so sehen wir diese Art von Muster zu. Wenn Sie etwas ein wenig zu tun seltsam, werden Sie feststellen, dass die Lösungen oft folgen einem Muster, und der Backslash bezeichnet eine Escape-Sequenz. Und es bedeutet nur, etwas Besonderes die wir brauchen, um in eine repräsentieren anders. Was, wie stellst Du dar ein Backslash, gut, wir wieder darauf. Aber die Antwort ist auch tatsächlich ein wenig offensichtlich. So lasst uns nun vorstellen eine andere Programmierung Konstrukte Sie sah in Scratch. Wahrscheinlich haben Sie selbstverständlich bereits, wenn Sie bereits in tauchten Problem eingestellt 0. Aber lassen Sie uns jetzt vorstellen die Syntax in C für diese ansonsten recht intuitiv Ideen, zumindest einige von ihnen. Also diese Vorstellung von einer Bedingung oder ein Zweig, während wir vorher vertreten sie mit Code, sah wie dies auf der linken Seite in Scratch - wenn x kleiner als y, dann so sagen - Statt nun in C - lassen Sie mich schärfen in auf dem einfachsten Fall - wir einfach gehen zu sagen, wenn, öffnen Klammer, ist etwas wahr - ein Boolescher Ausdruck wird gehen wo ich gesagt habe, Zustand - schließende Klammer, dann mach dir was innerhalb dieser geschweiften Klammern. So auch hier, die geschweiften Klammern sind ein bisschen wie Scratch U-förmige Puzzleteile. Tun Sie, was ist innerhalb dieser geschweiften Klammern. In diesem Fall Slash. Und dies feststellen, ist eine vorausschauende Schrägstrich, nicht einen Backslash. Schrägstrich, Schrägstrich, für diejenigen, die bereits programmiert vor, bedeutet nur, - es ist nur ein Kommentar. Ein Kommentar ist nicht eine Zeile Code, per se. Es ist eine Reihe von Englisch, dass Sie die Mensch, haben sich auf die schriftliche vielleicht erinnern Sie etwas tun, um erklären Sie sich, um zu erklären, jemand anderes, was der Code tut. Es ist nur ein beschreibender Kommentar. Nun, natürlich, können wir eine Zwei-Wege- Gabel in der Straße nur durch diese Weise ein Drei-Wege-Gabel in der Straße, indem Sie diese, und wenn man auch in diesem Muster, können Sie vier-Wege, Fünf-Wege-, Sechs-Wege-Gabel in der Straße, wenn Sie behandeln müssen, in der Tat, dass viele Bedingungen. Und dann bemerken die Parallelität hier - if (Bedingung), else if (Bedingung), und das einzige, das ein wenig ist seltsam ist das letzte, das ist nur, dass andere. Aber auch dies ist identisch, konzeptionell, zu dem, was wir getan haben, bereits, obwohl die Syntax nehmen ein wenig gewöhnungsbedürftig. Nun wird in diesem Beispiel gibt es einige andere seltsame Syntax. Wir sehen printf wieder öffnende Klammer, und schließende Klammer. Und innerhalb der es eine Zeichenfolge in Anführungszeichen. Die Klammern im Rahmen von printf, auf der linken Seite gehen und rechts von dem, was? Was wollen wir beschreiben, zitiert String als allgemein? Also es ist ein Argument. Jedes Mal, wenn eine Funktion haben, wie printf und dann eine offene und eine paren close paren und etwas in es, ob es sich um einen String oder ein Integer, oder irgendetwas anderes, das Ding in zwischen diese Klammern heißt ein Argument. Und ein Argument nur beeinflusst das Verhalten der Funktion. In diesem Fall ist es ziemlich klar, wie. x