[Musik zu spielen] DAVID MALAN: Okay das ist CS50 und dies ist das Ende der ersten Woche. So würde Ich mag meinen ehemaligen vorstellen advisee, Andel Duff, der nicht nur macht iPhone 5 steht, sowie diese Rednerpult, er macht auch Autos. ANSEL DUFF: Wie läuft es, alle? Ich möchte Ihnen nur sagen, ein wenig wenig über die Formula SAE, von denen ich bin der Kapitän. Es ist ein MIT-Team. Ich möchte Ihnen nur sagen, Jungs ein wenig über sie und hoffentlich ein gewisses Interesse zu generieren. Also lassen Sie mich nur durch einen Lauf paar Dinge über unser Team. So dass wir komplett sind Schüler laufen, wobei alle Mitglieder des Design, Simulation, Test und Hersteller ein Subsystem des Fahrzeugs. Wir haben unsere eigene Werkstatt und Garagen, und N52-- oder Leid, N51--, die die gleichen Gebäude ist wie der MIT Science Museum. Und wir sind das Volk dass das Auto zu fahren. Es gibt einen nationalen Wettbewerb zu Beginn des Sommers, und dann gibt es kleinere Schießen Wettbewerbe während des ganzen Jahres. Und dann tun wir Fahrertraining Tage, um neue Mitglieder kennen. Unser Build Tage sind auf Samstags von 11.00 bis 20.00 Uhr. Mittag-und Abendessen kümmern der, von Bertucci und Beantown jeweils. Wir haben eine wöchentliche Besprechung und Seminar, das für Kurs Kredit ist. Das ist neu ab diesem Semester, und es wird auch für das nächste Semester, so können Sie überqueren-REG dafür. Und dann haben wir die Ausgestaltung, Shop, und CAD-Tage während der Woche, Erwägung, dass Mitglieder wird unabhängig CAD-Teile, Auftragsbestand und so weiter. Also für elektrische Technik an der Team wir haben unsere Zugkraft, Hochspannungssystem, die bei einer Nenn läuft 300 Volt, die beinhaltet Motoren, Motorregler, und Akku-Packs. Dann haben wir eine geringe Spannungssystem, das läuft bei 12 Volt, die umfasst Kontrollen können Knoten, die das Gehirn Box, und das Armaturenbrett. So weit CS geht, tun wir haben Website-Pflege , die wir brauchen für Veranstaltungen gemacht, Mitgliedschaft Änderungen, neue Bilder und PR-Material. Und dann haben wir Code, dass die Kontrollen Auto für unsere Traktionskontrolle, Launch Steuer, Bindestrich Kontrolle, Torque Vectoring, und regenerative Bremssysteme, die laufen typischerweise in MATLAB, Simulink und LabView. Ihnen sagen, ein wenig über das Auto. So ist es etwa 500 Pfund. Es ist zu 85 Kilowatt Regeln beschränkt. Es verfügt über 2 207 Motoren EMRAX in der zurück, eine für jedes Hinterrad. Es hat maßgeschneiderte Akku-Packs von Prismatic A123 Pouch-Zellen, in Höhe von 300 Volt und 5,6 Kilowattstunden. Und es ist mit Direktantrieb ein 2,64-1 Antriebsverhältnis. Hier sind einige Bilder, die wir nahm es an Wettbewerb. Hier ist der Rücken, die Nase Kegel, und hier sind die Motoren, diese großen schwarzen Scheiben unter der manus et mens. Hier ist eine Folie, die ich gezogen aus unserem Wettbewerb Schema. Und das ist nur unser Auto im Vergleich zu einem Paar von im Handel erhältlichen Autos, KTM X-BOW, wie die, Ariel Atom und Caterha M 7-280. Wenn Sie mit Preis vertraut sind, Leistung ziehen Gewicht, Dollar pro PS, Dollar pro Drehmoment, und unser Auto bläst sie alle aus dem Wasser. Wenn Sie irgendwelche Fragen haben, notieren Sie diese E-Mail-Adresse ein. Schießen Sie uns eine E-Mail an fsae@mit.edu. Wir freuen uns, darüber zu sprechen alles, was Sie möchten. Harvard-Studenten sind freundlich der Minderheit im Team. Wenn Sie Fragen zu bitte tun Sie uns eine E-Mail zu schießen, glücklich zu reden, und ich werde über David den Kopf zurück. Danke. Ich schätze es, Jungs. [Applaus] DAVID MALAN: Ansel verbrachte den Sommer Zusammenarbeit mit uns hier auf dem Campus in CS50 in diesem Sommer. Und neben der Arbeit an Dinge wie die binären Glühbirnen, er eigentlich wirklich eröffnet unseren eyes-- und Mine in particular-- zu dem, was wirklich der Kreuzung der nicht von Hardware und Software sein kann. In der Tat eine Menge Dinge, die er nur tourte Sie durch sind letztlich erstellt zunächst in Software, und dann letztendlich hergestellt in der realen Welt in der Hardware. Also, wenn Sie interessiert sind Erkundung dieser Kreuzung, vielleicht nehmen diese Gruppe. Jetzt unterdessen die von Ihnen die Fans der Technik sind, und Apple-Produkte in insbesondere wissen, dass es waren ein paar Ankündigungen gestern. Aber wir dachten, wir würden zeigen Sie eine, die herauskamen ein paar Tage vor, dass Sie vielleicht nicht gesehen haben. JORGEN EGHAMMER: Sie wissen, einmal in eine Weile etwas kommt daher, dass ändert die Art, wie wir leben. Ein Gerät so einfach und intuitiv Verwendung es fühlt sich fast vertraut. Einführung 2015 IKEA Katalog ein. Es ist nicht ein Buch oder digitale ein E-Book, ist es ein Buch-Buch. Das erste, was zu beachten ist, nicht Kabel, nicht einmal ein Netzkabel. IKEA Katalog 2015 kommt voll aufgeladen ist, und die Lebensdauer der Batterie ist ewig. Die Schnittstelle ist 7,5 8 Zoll, kann aber auf 15 bis 8 cm zu erweitern. Die Navigation ist in taktile Touch-basierte Technologie, die Sie tatsächlich fühlen. Inhalt wird vor-installiert über 328 High-Definition-Seiten inspirierende Einrichtungsideen. Mit dem Surfen zu beginnen, berühren Sie einfach und ziehen. Rechts nach links, um vorwärts zu bewegen, von links nach rechts, um rückwärts zu bewegen. Beachten Sie etwas anderes? Das ist richtig. Keine Verzögerung. Jeder Kristall klar Seite Belastungen sofort, egal wie schnell man scrollen. Wenn Sie möchten, um einen schnellen Überblick zu bekommen, halten Sie es einfach in der Handfläche, und mit nur Daumen, Geschwindigkeit den Inhalt zu durchsuchen. Wenn Sie etwas finden, das Sie speichern möchten für später, können Sie einfach bookmarken. Und selbst wenn Sie die Anwendung schließen, finden Sie leicht das Lesezeichen wieder. Amazing. [Gelächter] [Applaus] Also das bringt uns zu das Ende der Woche ein. Ein paar Ankündigungen jetzt. So Schnitte ist jetzt im Gange. Gehen Sie zu dieser URL hier irgendwann zwischen heute und Freitag mittags tatsächlich angeben, ob Sie unter denen, weniger komfortabel, mehr komfortabel, oder irgendwo dazwischen. Dies ist typischerweise eine von denen Dinge, die Sie nur irgendwie kennen. Und in der Tat diejenigen, die weniger sind komfortable wahrscheinlich wissen, wie viel, diejenigen von Ihnen, die mehr sind komfortable wissen so viel, und wieder, wenn Sie sich nicht ganz sicher sind, welche dieser Eimer Sie fallen in sind Sie wahrscheinlich irgendwo dazwischen. Aber seien Sie versichert, Sie tauschen können nach ein paar Wochen, wenn es sein muss. In der Zwischenzeit für die kommende Woche wir nicht per se Abschnitte beginnen, aber super Abschnitte, die sind offen für alle Studenten. Am kommenden Sonntag an einem Ort zu auf der Kurs-Website bekannt gegeben wir haben eine für Die weniger komfortabel, sowie eine für diejenigen, komfortabler. Und diejenigen, irgendwo zwischen können wählen, welche der beiden, oder beides, wenn Sie möchten, um Sit-in auf. Und der Fokus von denen, schließlich auf C, auf die wir setzen unsere Gespräch von heute. Problem Satz 0 ist mittlerweile hoffentlich in Ihren Händen. Offiziell morgen fällig, Donnerstag, am Mittag. Es sei denn, Sie Bargeld in einem Ihre 5 Tage zu spät, was es bringen würde bis Freitag Mittag. Problem 1 gesetzt wird mittlerweile auf der Website der Kurs gebucht. Und dies wird unsere erste sein Vorstoß als eine Klasse in C Und das Problem wird eingestellt spec Sie zu Fuß durch eine Menge von der Mechanik, was wir begannen zu reden am Montag, und wir werden weiter reden heute. C, Linux, das CS50 Gerät, das alles werden Sie in der Spezifikation zu erwarten. Bürozeiten mittlerweile im Gange sind, in der Bachelor-Speisesaal. Kopf dieser URL hier, um das zu sehen Zeitplan für heute Abend und morgen, wenn Sie möchten, um teilzunehmen. Fragen inzwischen so, dass Sie Gelegenheit haben, Fragen zu stellen asynchron, 24/7, erkennen Sie nicht auf Abschnitte beschränkt und Büro Stunden, sondern eher dieses Tool hier, CS50 Diskutieren unter dieser URL wird der Kurs online sein Bulletin Board Software, über die Sie können Fragen stellen Klassenkameraden und auch Personal. Also denken Sie daran, dass der Ressourcen als gut. Mittlerweile zur Tradition startet an diesem Freitag. Wie Sie aus erblickt haben letzten Mittwoch Teaser-Video, wir eine Tradition die meisten haben Jeden Freitag während der Vorlesungszeit von unter etwa 50 Studenten und Mitarbeiter zu einem lokalen Restaurant Feuer und Eis, an dem wir sind typischerweise von einigen Alumni verbunden oder Freunden aus der Industrie allgemein streben zu machen, eine große Klasse fühlen kleiner. Also ist es eine völlig zwangloses Mittagessen. Ein paar von uns, die Mitarbeiter besonders, nach Jerusalem zu spielen und mit den Schülern über die Chat- 50, das Leben außerhalb von 50, Leben in der Zukunft, die reale Welt, Ich freue mich über Arbeitsmöglichkeiten im Gespräch mit Freunden in der Industrie. Also, wenn Sie möchten, sich uns anzu an diesem Freitag, den Kopf zu dieser URL hier. Der Platz ist begrenzt, aber wir werden dies tun wiederkehrend während der Laufzeit. Kopf da, um cs50.harvard.edu/rsvp. Und wenn Sie nicht bekommen, in dieses Mal keine Sorgen machen. Wir werden es wieder tun, in Die kommenden Wochen auch. Also das ist das Bild, wir letzte Woche gemalt, und Sie haben wahrscheinlich gewesen Einstieg in so weit. Aber lassen Sie uns versuchen, dies jetzt zu verbinden zu dem, was wir heute tun und weiter. Könnte ich einen Freiwilligen? Alles klar, oder mehrere. Wie wäre es hier auf der Ende, in der blauen Hemd. Komm up, was ist Ihr Name? ALANA: Alana. DAVID MALAN: Alana. So Alana, für nur ein moment-- nice to meet Sie-- wird sich die Rolle zu spielen dieser Funktion hier. Die lila Block wir haben genannt bisher eine Funktion. Also, was ich werde gehen vor und bieten hier Alana ist ein wenig Namensschild, damit klar, welche Rolle Sie spielen. So werdet ihr das sagen wir stehen. Wenn Sie weitermachen und das rechne möchten. Und wir sind zu gehen halten diese super einfach. Wenn das Ziel bei der Hand ist einfach Jetzt, mit Alana zu implementieren, diese so genannte Block sagen, hier ist, wie es funktionieren wird. Ich have-- nennen wir es ein Argument oder Parameter, es ist wirklich nur ein leeres Blatt Papier. Und es ist weiß bis Art erinnert werden der White-Box, in die Sie können Wörter zu schreiben. Inzwischen werde ich hier. Ich werde weitermachen und schreiben H-E-L-L-O Komma Welt. Und jetzt habe ich, wie der Programmierer sagen, nicht eigentlich wissen, wie man etwas zu sagen. Ich kann mit den Worten kommen, aber ich nicht unbedingt wissen, wie ich mich ausdrücken mündlich oder auf dem Bildschirm. Und so, was ich tun müssen, ist dieses Stück nehmen Funktionalität, deren input-- oder Argumente, wie wir es nennen, Ich habe auf diesem Stück geschrieben paper-- und ich werde es auszulagern. Und in der Tat, das ist die Rolle, die Funktionen in einer Programmiersprache spielen können. So etwas wie das Wort Block kann ausgelagert werden an jemanden, der wirklich weiß, was sie oder er spricht. Also, wenn Sie über Schritt hier nur für einen Moment, Ich werde diesen Eingang passieren Alana, und bitten Sie, diese Eingabe zu sagen. ALANA: Hallo, Welt. DAVID MALAN: Das ist es. So daß es eine Funktion ist. Jetzt können wir es ein wenig mehr zu nehmen, können wir einen Schritt nach vorne hier nehmen. Denn das war klar berauschend. Also lassen Sie uns nun zu wandeln diese etwas ein wenig anspruchsvoller. Also das ist natürlich unsere C-Version. So, jetzt, wenn Sie das machen wollen One aus, dass Namensschild ab, und lassen Sie uns Ihnen einen neuen Namen setzen. Aber im Grunde sind Sie die gleiche Rolle spielen, es passiert einfach so zu printf jetzt genannt werden. Die Geschichte ist natürlich, werde wahrscheinlich BE-- ebenso ist underwhelming-- gehen, die folgenden werden. Sie sind nun die Funktion printf. Ich bin der Anrufer oder die Programmierer, der will um auf den Schultern stehen Menschen in der Vergangenheit, wie Sie, , die bereits herausgefunden haben, wie , tatsächlich etwas zu notieren. Und so dieses Mal, eher als, sagen wir es tatsächlich nutzen unsere Bildschirm hier. Also, wenn Sie möchten, um Schritt hier, ich werde wieder diese als Pass Eingang zu meinem printf Freund. Wenn Sie könnten weitermachen und drucken, die auf dem Bildschirm, einfach durch Ziehen mit der Finger auf den schwarzen Bildschirm. Ausgezeichnet. Alles in Ordnung, so viel Spannung für wie das im Begriff war, spielen. So, jetzt nehmen die Dinge einen lassen letzte Kerbe, wenn wir könnten, wie folgt. Also das ist ein C-Programm wie wir das letzte Mal gesagt. Und dies nur tut, was Sie getan haben, ist es druckt auf den Bildschirm, hallo, Welt. Auch wenn es eindeutig viel von störenden Zeug da oben. Aber lassen Sie uns die Dinge noch ein Stück und Einführung dieser Version, die daran erinnern, war die dritte Version, die wir landeten mit letzten Mal. Und jetzt gibt es deutlich zwei Verwendungen von printf. Es gibt 2 Anrufe zu Alana in diesem Fall für printf, aber es gibt auch ein Aufruf zu einer anderen Funktion. Was ist in der Funktion deutlich, dass? Getstring. Können wir noch einen Freiwilligen? OK, kommen Sie auf. Wie heißen Sie? Javier: Javier. DAVID MALAN: Javier, komm auf. So Javier hat die Aufgabe, auf dieses Stück Papier. Die werde ich allgemein s nennen. Nun ist dies eine Variable, es ist vom Typ string, als stillschweigend durch diese zweite Linie in der Mitte gibt. Und ich möchte, dass Sie gehen, mir einen String. Insbesondere Kopf nach unten auf das Orchester Abschnitt und mir den Namen einer Person, und wieder mit einer variablen enthält diesen Wert. Es kann jemand, den Sie wollen. Auf geht's. Alles in Ordnung, ist Javier Schreiben Sie sich den Namen. In Ordnung. Wir alle können sich wahrscheinlich vorstellen, wie das wird spielen. Wir vielleicht herumzureiten der Punkt, von dem, was eine Funktion tut, aber trotzdem danke Ihnen sehr. Javier hat so diese Zeichenfolge zurückgegeben hier, die nicht ganz sehen können, Jonathan ist der String dass wir bekommen habe. So, jetzt, was ich eigentlich vor sich geht zu bieten, obwohl Alana ist etwas, das ein wenig anders. Da in dieser Version von der Programm, zuerst gibt es Ihren Namen. So sehr der erste Argument Ich muss Alana bieten mit sein wird buchstäblich Ihren Namen. Alles klar, so einfach ist das Ich würde dies übergeben können. Und wie ich schreiben, bis die nächste Argument, wenn Sie wollen, gehen Sie vor und schreiben Sie diese auf dem Board, lassen Sie uns weitermachen und tun das letzte Beispiel hier zu machen zu löschen, was letztlich etwas geschehen. So geben Sie Ihren Namen, schreiben Sie es nach oben wenn Sie nichts dagegen haben, gerade so, dass Wir haben Platz für eine zweite Linie. Weil das letzte, was ich werde Bisher bieten Ihnen nicht ein, aber zwei Blatt Papier. In Ordnung. H-E-L-L-O Komma und dann eine Leerzeile. Also, was ich bin zu Alana jetzt Hand ist etwas, das ein wenig anders. Sie ist nicht nur immer diese, wo Lücke ausfüllen stellt dass percent-- was war der Platzhalter wir habe mit? Ja, so s Prozent. Inzwischen werde ich weitergeben sie in einem zweiten Argument, das ist genau das, was Javier von Jonathan abgerufen. Also lassen Sie mich Ihnen diese beiden. Wenn Sie möchten, um, gehen Sie vor und drucken, die Wirkung. Was letztlich passiert jetzt ist, Alana wieder spielt die Rolle der printf. Javier spielte die Rolle der GetString. So dass Ihre Erinnerung sein. Und schließlich, was passiert, trotz Diese hello-- yep voran und Komma gehen. ALANA: Habe ich erhalten diese noch nicht oder nicht? DAVID MALAN: Yep, Sie erhielt sie beide auf einmal. Also die Idee ist, dass Sie können jetzt drehen Sie die Seite , um den zweiten Griff der beiden Eingänge. So ist dies nur nach Hause zu den Hammer zeigen, dass, während Alana ausgeführt diese grüne Linie hier, und dann Javier tat dies für uns und für mich etwas zurück wir s nennen, aber es war wirklich nur, dass Zettel von seiner eigenen. Und jetzt Alana hat diese dritte Zeile getan. Und auch wenn das alles sieht so unglaublich kryptische vielleicht auf den ersten Blick, es ist wirklich ist so einfach wie die. Vorbei Eingänge herum, immer Ausgänge, entweder körperlich etwas zurückreicht, oder sehen eine Nebenwirkung wie diese. Etwas visuell geschrieben auf dem Bildschirm. Also lassen Sie uns weitermachen und danke Alana und Javier, wer unten war hier für bei uns hier oben. [Applaus] So, jetzt nehmen wir für selbstverständlich, wie einfach all das auch sein mag. Und lassen Sie uns gehen, um tatsächlich etwas tun, in eigentlichen Code. So auf dem Bildschirm hier ist ein Screenshot des sogenannten CS50 Gerät. Und wenn Sie musste, wie ein 02.00 am Mittwoch Nachmittag, erklären zu einem gewissen Freund was der CS50 Gerät, wie würden Sie es in einem Satz beschreiben? Jeder Satz? Ja? STUDENT: Es ist wie ein Programm das macht jeden Computer laufen mit dem gleichen System. DAVID MALAN: Gut! Es ist ein Programm, das alle ermöglicht Computer mit dem gleichen System ausgeführt werden. Es ist eine Art der eigenen Kopie eines Betriebs System, das passiert, aufgerufen werden Ubuntu Linux. Und es läuft effektiv innerhalb von ein Fenster auf dem eigenen Mac oder PC, so daß auf diese Weise direkt aus der Gate in Woche 1, jeder hier in der Klasse Zugriff auf die gleichen Werkzeuge, die gleiche Konfiguration, und es gibt keine Lernkurve spezifischen auf einem Mac oder PC im Besonderen. Jetzt eröffneten wir auf, im Inneren des CS50 Gerät am Montag, den dieses Programm hier. Es passiert gedit aufgerufen werden. Aber das ist wirklich nur ein grafischer Editor. Es ist so etwas wie Notepad oder Text Bearbeiten Sie auf Windows-oder Mac OS sind. Und ich vorgeschlagen, dass es wirklich drei wichtige Teile zu diesem Bildschirm. Die Oberseite ist, wo Sie würde Ihr Code zu schreiben. Und das ist, wo wir viel von verbrachten unsere drei Beispiele am Montag im Vortrag. Der Boden genannt wir, was, Dieser schwarze Fenster, ja? STUDENT: Compiler? DAVID MALAN: Compiler wir durch das Fenster zugänglich. Aber im Allgemeinen. Ja, es war nur ein Terminal-Fenster. Dies ist eine uralte Begriff, der nur beschreibt im Wesentlichen ein Blinken Aufforderung, dass vor Jahren verwendet, um auf sein einem dieser großen CRT-Monitore Stil. Aber heutzutage ist es Art von virtuellen in Software. Und die Terminal-Fenster Lassen Sie uns uns Befehle eingeben. Es ist eine Art der vereinfachten Version der Benutzerschnittstelle oder Benutzeroberfläche. Es ist nicht eine graphische Benutzerschnittstelle oder GUI, es ist eine textbasierte Schnittstelle oder eine Befehlszeilenschnittstelle. Und in der Tat, das ist, wo letztlich Ich war in der Lage, einen Code zu schreiben. Einmal hatte ich einen Code geschrieben, obwohl, daran erinnern, dass ich diesen Befehl. Und wie es der Name Art der sagt, diese ermöglicht es mir, eine zu machen Programm namens Hallo. Aber was war es wirklich tun? Nun Make nahm meine Eingang, mein Quellcode, und deren Umwandlung, was letztlich? Objektcode. Und Objekt-Code ist nur eine Phantasie Art zu sagen, Nullen und Einsen. Und dann, wenn ich wollte , um das Objekt-Code auszuführen, Ich wollte einmal als Eingangs diejenigen weitergeben Nullen und Einsen in meinen Computer Gehirn, die sogenannte CPU oder eine zentrale Verarbeitungseinheit, Ich musste das Programm auszuführen. Aber es war nicht ganz einfach am Montag, als nur einen Doppelklick auf eine Symbol. Was stattdessen musste ich zu tun, um ein Programm zu starten? Was war das zweite Befehl? Ich höre ein wenig Schrägstriche? Ja, ja? STUDENT: Dot Schrägstrich und Name des Programms. DAVID MALAN: Genau. Punkt Schrägstrich und den Namen des Programms. Nun, was hatte das zu bedeuten? Nun ist nur ein Punkt obskuren Weg sagen aktuellen Verzeichnis. Was auch immer Sie sind in Ordner ist wie verwiesen, wird als Punkt dargestellt. Der Schrägstrich ist genau das, was Sie gesehen haben Mac OS und Windows für die Jahre, es ist ein Trennzeichen zwischen einem Verzeichnis oder den Ordner und der Rest von rund Namen. In Windows kommt es vor, zu gehen nach hinten, in Linux und Mac OS geschieht es, um vorwärts zu gehen. Aber es ist nur das Trenn, so ist es nur eine uninteressante syntaktischen Detail. Das saftige Teil ist natürlich der Name des Programms, hallo. Und das ist, was machen für uns geschaffen. Es ausgegeben, dass die Datei für uns. Aber wie haben wir zu diesem Punkt? Lassen Sie uns nun fragen, die Frage, was wirklich war denn hier los, zumindest bei Bezug auf einige dieser Syntax? Also in einem Satz oder so, wie haben wir wegzuerklären Diese erste Zeile, die ist grün markiert? Was war das erste Zeile zu tun, in Bezug auf mein Programm? Ja? STUDENT: [unverständlich]. DAVID MALAN: Sag es noch einmal? STUDENT: Inklusive und Herunterladen Vergangenheit Funktionen [unverständlich]. DAVID MALAN: Gut. Einschließlich, werde ich nicht sagen, Herunterladen, aber lassen Sie uns sagen einschließlich der Funktionen, die Menschen haben in der Vergangenheit geschrieben. Und diese Funktionen implementiert sind irgendwo in meinem Computer. Jemand schrieb eine Datei vor Jahren, und diese Datei ist irgendwo in der CS50 Appliance oder auf meiner Festplatte im Allgemeinen. Und so wird diese Leitung Wesentlichen sagen, gehen finden diese Datei, Standard-I / O Punkt h und Kopie und ihre Inhalte einfügen hier auf der Spitze meiner Datei so dass ich nicht zu haben, zu tun, dass ich mich manuell. Und unter den saftigsten Stücke innerhalb von dass wir behauptet Datei war, welche Funktion? Welche Funktion haben wir gesagt erklärt wurde oder in Standard-I / O dot h genannten höchstwahrscheinlich? Printf, oder? Wir haben nicht auf printf schreiben Montag, es ist nur existierte. Ähnlich wie Alana kam gerade auf die Bühne und sie gerade existierte und wusste, wie man zeichnet etwas auf dem Bildschirm, so hat printf seit vielen Jahren existieren. Und so ist dies, wie wir darauf zugreifen. Nun, wenn wir hier auf zu bewegen, Haupt wurde analog wir sagte zu dem Puzzle-Stück aufgerufen, wenn grüne Flagge angeklickt in der Welt der Scratch. Es ist nur eine Art der Standardnamen, die den Menschen entschieden würde der Betreiber Standardeingangspunkt zu einem Programm. Das Stück Programmcode dass zuerst ausgeführt wird. Inzwischen sind diese geschweiften Klammern Art, wie die gebogene Form einer Menge von diesen gelben kratz Stück. Sie kapseln Art eine ganze Menge von Anweisungen zusammen. So ist es nur irgendwie zusammenhält einige verwandte Funktionalität. printf natürlich ist eine Funktion, druckt den Bildschirm, wie wir gerade getan. Was ist mit den Klammern? Wie würden Sie define-- Auch wenn Sie noch nie programmiert, sondern nur auf der Grundlage jetzt auf eine zunehmende hoffentlich Intuition, was werden die Klammern zu tun, dass wir hier? Oder was sind sie umgebenden? Ja? STUDENT: Sie sagen, was Sie gehen mit printf drucken. DAVID MALAN: Ja, sie sagen, was Sie gehen mit printf drucken. Oder allgemeiner sind sie umgibt die Eingaben an die Funktion. So können Sie fast denken können dieser Klammern als wie der Metall Clip auf dieser Zwischenablage. Es ist, was hält, es ist, was verwendet werden soll, um Argumente liefern in die Funktion, die in Dieser Fall wird als printf. Also in der Regel fast jeder Zeit, die wir eine Funktion aufrufen, werden wir ein Paar Klammern sehen. Vielleicht mit etwas in ihm, wie jetzt, vielleicht auch gar nichts drin. Aber das ist, wo Sie setzen würde die Eingänge oder sogenannte Argumente einer Funktion. Hier ist eine solche Argumentation. Ich habe alles markiert zwischen den Anführungszeichen, denn es stellt sich heraus, in dieser Sprache aufgerufen C, wenn Sie darstellen wollen eine string--, dass ist ein Wort oder eine Phrase oder sogar ein paragraph-- müssen Sie umgeben sie mit Anführungszeichen. Nicht einfache Anführungszeichen, doppelte Anführungszeichen. Und das ist genau das, was ich hier getan. Inzwischen gibt es eine funky Symbol gegen Ende da. Der Backslash n. Was haben wir sagen, dass vertreten? Ja? STUDENT: Eine neue Linie. DAVID MALAN: Neue Linie. Richtig, Sie nicht tun Allgemeinen drücken Sie Enter, wenn Sie wollen das Programm ausspucken eine neue Zeile. Vielmehr Sie es ausdrücklich sagen, mit dieser zugegebenermaßen obskuren Stück der Syntax, Backslash n, dass Sie wollen eine neue Linie, um dorthin zu gehen. Schließlich wird das Semikolon. Wir haben nicht wirklich sprechen zu viel über diese, und bei weitem das wird der Fluch der einige sein Ihre Existenz für das erste Problem gesetzt, wenn Sie gerade nicht erkannt Sie etwas vergessen haben, wie dumm wie ein Semikolon. Und in der Regel setzen sie es wird das Problem zu beheben. Aber was ist es zu tun für uns, würden Sie sagen? STUDENT: [unverständlich]. DAVID MALAN: Sorry? STUDENT: [unverständlich]. DAVID MALAN: Schlichten eine Erklärung ab. Es ist irgendwie wie der Punkt am das Ende einer englischen Satz, während in dieser Sprache C es endet eine Erklärung ab. Eine Anweisung der Programmierung Code, den Sie möchte nur sagen, Ich bin damit fertig. Jetzt feststellen, dass es der einzige hier. So dass Sie nicht wollen, bekommen in eine Angewohnheit, ein Semikolon nach jedem geschlossenen Klammer. Zum Beispiel gibt es keine neben nichtig, und wir werden kommen zurück in die Zukunft in welchem ​​Leere bedeutet. Aber in diesem Fall Ihre printf ist eine Funktion oder eine Aussage verwendet wird, und so wollen wir das haben Endstation am Ende davon. Und ich bin absichtlich Kommissionierung auf C. Und ehrlich gesagt eine Menge von Sprachen wie C, C ++ Java, JavaScript, und eine beliebige Anzahl von andere Sprachen sind eine Menge von diesen Art der syntaktischen Details. Das ist sicherlich, wenn Sie neu sind Programmierung kann wirklich stolpern Sie. Und Sie werden, merken Sie sich meine Worten, einige von Ihnen werden haben diese Erfahrung in der Bürozeiten oder am späten in der Nacht arbeiten auf einigen p-Set, wo Ihre verdammte Programm einfach nicht kompilieren, es nicht läuft, haben Sie keine Ahnung, was falsch ist, es scheint völlig logisch richtig für Sie. Und es ist, weil Sie vergessen etwas wie das Schlagen ein Semikolon am Ende der Zeile etwas. Aber das sind die Art von Dingen sind Sie werde sofort sehen lernen. Und in der Tat sind die Dinge, dass der CA und TF haben Art geschult worden, um zu sehen viel schneller als Sie. Und so ist das nur zu sagen, wie Sie Tauchen Sie ein in Problem-Set 1 vor allem, nicht frustriert von diesem Zeug. Sobald Sie Art akklimatisieren für die Welt, die Sie beginnen die Dinge zu sehen, die Sie nicht sehen auf den ersten Blick diese erste Woche. So Quellcode ist so etwas. Wir wollen es in geben die sogenannte Compiler. Und das Compiler wir sagten, liefert Ausgangs als Objektcode bekannt ist, die sogenannte Nullen und Einsen. Aber von dort, was bedeutet das für uns? Nun, es gibt uns diese Muster. Und wieder Ihren Computer, Ihre Intel inside, versteht diese Muster von Nullen und Einsen. Und manchmal auch die Muster eine tatsächliche Dezimalzahl wie wir gesehen haben in der vergangenen Woche, manchmal es stellt einen Brief wie wir sahen, in der vergangenen Woche, manchmal stellt es eine Anweisung, wie Druck etwas auf den Bildschirm. So printf für instance-- sondern lassen Sie mich zurückzuspulen. Wir haben seit der Einnahme gewährt dass diese Nullen und Einsen durch diesen Befehl make produziert. Aber machen Sie nicht einen Compiler. Machen, ist nicht das Ding in der Mitte das ist die Herstellung der Nullen und Einsen. Vielmehr machen, ist nur ein sehr bequem benannt Programm, dessen Zweck im Leben Wesentlichen um herauszufinden wie Sie Ihr Programm kompilieren. Und wir verwenden es in diesen ersten Wochen, weil es einfach spart uns eine Menge Ärger. Aber was machen, ist wirklich tun, wenn Sie hallo zu kompilieren, ist, wie wir das letzte Mal gesagt, es ist Suche auf der Festplatte oder im aktuellen Ordner, für Welche Datei genannt, offenbar? Hello.c, oder? Das ist nur eine Art Konvention. Es ist beliebig, aber das ist so wie die Dinge sind. Zu machen, wenn Sie nur den Namen angeben von einem Programm, das es noch nicht gibt, es wird für den Quellcode schauen in einer Datei, standardmäßig bedeutet hello.c. Und wenn er sie findet, großartig. Es geht um diese Quelle zu konvertieren Code in Objekt-Code für Sie. Aber jedes Mal, wenn ich getroffen habe Geben Sie nach dem Laufen machen hallo, tun Sie sehen erinnere letzte Mal ein ziemlich lang und kryptisch Folge von anderen weißen Buchstaben und Zeichen auf dem Bildschirm? Nun, das war der eigentliche Befehl, der tatsächlichen Compiler, dass lief. So dass die tatsächliche Compiler wir die meisten verwenden das Semester ist die so genannte Klang. Einige von Euch werden verwendet haben Visual Studio vor, oder GCC, oder eine beliebige Anzahl von anderen Compilern. Wir werden Klappern zu verwenden. Und Klang ermöglicht es uns, tatsächlich zu konvertieren dass der Quellcode auf Objektcode. Was bedeutet das eigentlich in der Praxis? Nun lassen Sie mich in eine der gehen meine Ordner vom letzten Mal. Innenseite des CS50-Appliance. Und lassen Sie mich gehen Sie vor und erstellen Sie diese gleiche Datei, auch Standard-I / O dot h. Int main nichtig. Und wir werden auch in Zukunft wieder kommen zu dem, was int bedeutet und was nichtig Mittel. Aber jetzt tun können Hallo Welt Backslash n, So wie wir auf der Platine hat. Lassen Sie mich diese Datei namens hello.c zu speichern. Und jetzt, wenn ich diese kompilieren Ich lass mich heran could-- in-- Lauf machen hallo eingeben. Und dies wiederum war dass sehr kryptisch Linie. Nun aber zumindest ein Wort wahrscheinlich springt auf Sie. Clang ist, dass wir vor der Linie sah. Jetzt gibt es eine Menge anderer Dinge offen dass wir unsere Hände auf für heute winken. Aber es gibt noch ein paar Untergruppen, ein paar Zeichen in hier , die von Interesse sind. Aber ich werde weitermachen und tun dies. Ich bin zum ersten Lauf los hallo, nur um zu beweisen dass dies so funktioniert, wie es war Montag. Aber jetzt werde ich das Programm zu löschen. Und so wie wir diese Kurznamen letzten Mal, der Befehl zum Entfernen etwas ist rm, zu entfernen, geben. Du wirst einige bekommen ziemlich kryptische Fragen. Kaum zu glauben, dass Sie machen können auch diese Frage schwer zu verstehen. Aber hallo entfernen reguläre Datei nur Mittel zu tun, die Sie löschen wollen, hallo. Und ich kann weitermachen, geben Sie y für ja, ein, und jetzt ist es weg. Was bedeutet dies nun, wenn ich meinen Bildschirm zu löschen, ist, dass anstatt Dabei machen Sie hello-- Weißt du was, ich bin immer gut darin. Ich werde mich an den Compiler laufen. Ich glaube nicht, irgendein Programm zu müssen, herauszufinden, was meine Datei aufgerufen wird. Ich schrieb hello.c, ich wissen, was es heißt, Ich bin eindeutig in der Lage, dass die Eingabe. Also werde ich weitermachen und nicht klirren hello.c ein. Scheint zu funktionieren. Und es gibt keine zusätzlichen Ausgang, weil Klappern ist der Compiler. Es ist, was die Umwandlung der Quellcode Nullen und Einsen. Also, wenn ich jetzt tun dot Schrägstrich hallo ein, hm. Neue Fehlermeldung heute. So bash ist nur der Name des blinkende Eingabeaufforderung, die wir verwenden. Das ist eine grobe Vereinfachung, aber für jetzt, das ist alles das heißt, es ist der blinkende Eingabeaufforderung. Und das ist, warum es bei uns schreien. Keine solche Datei oder das Verzeichnis ein wenig einfacher. Aber sicher habe ich das Objekt-Code. Aber der Haken ist, dass wenn ich den Befehl eingeben , um den Inhalt dieser Liste Verzeichnis, das was ist? ls für Liste. Es gibt ein paar Sachen hier, einige davon kamen mit dem Gerät, wie mein Desktop-Ordner, Downloads Ordner, Dropbox-Ordner, und alle das Zeug. Aber was ist interessant ist hello.c, die Ich vorhin erstellt mit gedit. Und was ist das seltsamste Suche Name hier, vielleicht, dass wir nicht siehe letzte Zeit überhaupt? a.out, oder? Also zurück in den Tag, es wurde gerade beschlossen, dass, wenn Sie ein Programm kompilieren zum ersten Mal, und Sie nicht den Namen angeben einer Datei, nennen wir es ein. Und a.out bedeutet nur, das war die Ausgabe des Compilers. Also ist es eine schreckliche Namen für ein Programm. Aber von dieser Logik dot Schrägstrich für aktuellen Verzeichnis, Schrägstrich a.out, sollte bedeuten, es gibt in der Tat mein Hallo Welt Programm. Nun ein wenig Aufwärmübung, auch. Wenn ich diese umbenennen Datei, stellt sich heraus, dass Sie Verschieben einer Datei von einem Namen zum anderen. So mv a.out, und dann habe ich kann es nennen hallo ein. Das ist also ein Linux-Befehl. DOS vor Jahren hatte, Windows verfügt über ein Terminal-Fenster von einer Art, die aussieht wie dieser, Linux und Mac Computer haben diese blinkenden Eingabeaufforderung. Auch wenn die meisten von uns wahrscheinlich selten, wenn überhaupt, verwenden Sie es. Aber was ich getan habe, ist laufen ein Programm, dessen Name mv, und ich habe es mit zur Verfügung gestellt zwei Argumente, so zu sprechen. Zwei Eingänge. a.out ist der ursprüngliche Name. Hallo ist der neue Name. Also, wenn ich jetzt tun dot Schrägstrich hallo, Enter, besteht, dass. Und wenn ich Punkt Schrägstrich a.out, was erwarten Sie, ich sollte sehen? Bash, keine solche Datei oder das Verzeichnis. Weil ich einfach umbenannt. Also das dauert ein wenig gewöhnungsbedürftig. Aber das Problem Satz 1 Spezifikation wird wirklich Halten Sie Ihre Hand durch einige dieser minutae. Weil dies eine vollständige geistige Ablenkung vom interessanter Ideen an die Hand, die ist tatsächlich die Schaffung etwas von Code. Aber lassen Sie uns eine Modifikation Jetzt zu diesem Programm. Daran erinnern, dass ich das letzte Mal tat etwas wie diese, printf geben Sie Ihren Namen. Und in der Tat haben wir gerade taten dies auf der großen Leinwand drüben. Und dann habe ich String s bekommt GetString offenen paren, in der Nähe paren. Und paren nur ein Kurz Notation für Klammer. So hat GetString nehmen keine Argumente? Keine Eingänge nicht, aber es muss die Klammern, weil das, was abgrenzt der Aufruf der Funktion. Also werde ich weitermachen und versuchen, führen Sie den Compiler auf dieses Programm jetzt. Clang hello.c, weil ich den Namen nicht für sich nun ändern. Und ich habe ein paar Fehler. Lassen Sie uns herauszoomen hier. Wenn ich nach oben wieder wie ich das letzte Mal gesagt, auf die erste, gleiche Fehler dass ich beim letzten Mal. Ein auf der Linie 6 hatte ich hello.c nicht deklarierter Bezeichner-String, habe ich meine in Standard? Ich habe nicht. Denn was habe ich Fehler gemacht in dieser Programm, wenn Sie vom letzten Mal erinnern? Ja, wir brauchen die so genannte Stützräder dass wir einfach nutzen für ein paar Wochen. Aber ich muss auch angeben, dass, irgendwo in der Appliance, ist eine Datei, die wir geschrieben haben nur ein paar Jahre her. Innerhalb von denen Funktionen wie offenbar GetString. So, jetzt, wenn ich wieder nach unten gehen, hier, heranzoomen, und starten Klang hello.c. Verdammt, ein weiterer Fehler. Aber wir haben nicht dieses gesehen. Das hier ist ein wenig mehr esoterisch, um herauszufinden. Dies ist jedoch absichtlich auf dem Bildschirm, denn wir wollten diese Geschichte zu erzählen. Wenn Sie hello.c zu kompilieren, so wie das Bild aus der Zeit vor vorgeschlagen, Sie nur, dass die Umwandlung Quellcode Nullen und Einsen. Jetzt CS50 Mitarbeiter vor ein paar Jahren schrieb CS50.h und eine entsprechende Datei, CS50.c. Und wir, vor ein paar Jahren, kompiliert die Dateien in einer Datei, die passiert genannt werden CS50.o. Oder es kann umbenannt werden ein paar andere Dinge. Aber das ist ein einfacher Weg, der darüber nachzudenken. Also haben wir zusammengestellt CS50 ist Bibliothek in Nullen und Einsen. Aber nirgends habe ich angegeben dass ich meine Nullen kombinieren möchten und diejenigen, für meine hallo Welt Programm mit den Nullen und Einsen CS50, dass Mitarbeiter erstellt ein paar Jahren vor zu einem kompletten Programm. Alles, was ich habe von schriftlich festgelegt Klappern hello.c kompilieren hello.c. Ich habe nicht gesagt, Klappern Link in den Nullen und Einsen CS50, dass Mitarbeiter erstellt für Sie vor einiger Zeit. Also ist es eine einfache Lösung, Strich l für Link, CS50. Und wir werden wieder sehen dies bald wieder und wieder. Beachten Sie aber, jetzt gab es keine Beschwerden. So, jetzt, wenn ich keine Punktstrich hallo, jetzt ist es funktioniert. Obwohl, das ist ein wenig irreführend da ich gerade neu erstellt, welche Datei? a.out. Also lassen Sie mich für einen Moment zurückzuspulen. Das Programm, das wir gerade kompiliert hat die drei Zeilen Code. Wenn ich lief Hallo Welt, hallo ein Moment vor, sah ich nicht Ihren Namen. Und das ist, weil ich lief die alten Version des Programms. Aber wenn ich in der Tat Punktstrich a.out laufen Geben Sie Ihren Namen, Rob, hallo, Welt. Hm. Das ist irgendwie ein Fehler. Wahrscheinlich wollte sagen, Rob, oder? Also, was ist das Update hier im Code. STUDENT: [unverständlich]. DAVID MALAN: Genau. Also brauche ich nur, dass die letzte zwicken machen , so dass ich in einem Platzhalter vorbei, wie eine Lücke ausfüllen, wie wir vorhin. Aber Prozent s ist jetzt dass in das leere zu füllen. So schließlich offenbaren ein letztes lassen Detail, so dass es keine Magie. Ich werde weitermachen und hellow loszuwerden. Ich werde weitermachen und der a.out loszuwerden. So, jetzt habe ich keine Programme, nur mein Quellcode. Und ich werde, um einen Lauf etwas länger Befehl, Klirren Strich o hallo hello.c Strich LCS50. Nun beginnt sich eine Art zu gehen auf einem Ohr hinein und zum anderen vielleicht. Aber nur necken neben was diese tut. Clang ist der Compiler, Bindestrich LCS50 absichtlich am Ende tut, was in einem Satz? Links zu den CS50-Bibliothek. Schnappt sich die Nullen und diejenigen, die das Personal machte und stopft sie in mein eigenes Programm. Also die letzte Frage bei der Hand ist, was Strich o hallo wahrscheinlich tun, auch wenn Sie noch nie haben diese Syntax schon mal gesehen? Ausgabe ein Programm, das ist die Standard a.out nicht genannt. Sondern es ist benannt hallo. So, jetzt gibt es keine a.out. Keine solche Datei oder Verzeichnis, weil ich ausdrücklich gesagt, nennen dieses Programm hallo, so dass Ich kann jetzt geben Sie einen Namen wie, dass und haben es verhalten. Nun ehrlich gesagt, ist, dass Jungen uninteressant zu haben, , all das zu erinnern, kleine Einzelheit, oder? Also lassen Sie uns weitermachen und bekommen wieder loswerden hallo. Und lassen Sie uns nun auf eine Welt, in Rück was es genügt zu sagen, hallo machen. Aber das ist die Magie, die machen für Sie tut, das ist die Langeweile, dass es für Sie tun. Und da unsere Programme und Probleme immer komplexer werden, machen wird wirklich dein Freund sein. Da nicht zu lange ab jetzt werden wir Programme, die geschrieben werden müssen nicht mit einer Datei, sondern mehrere Dateien, und machen den Prozess der Automatisierung Zusammenstellung all das für uns zusammen. So, jetzt zu drucken. printf innerhalb dieser Datei, Standard I / O-Punkt h, dass wir zuvor gesehen haben, aber es gibt mehr zu printf als die. Es gibt Backslash n, aber es gibt auch ein paar andere Escape-Sequenzen. Und Escape-Sequenz ist nur ein andere Art zu sagen etwas Dies beginnt mit einem Backslash, kein Schrägstrich, ein Backslash, und hat einige besondere Sache. Und wir werden nicht auf die meisten von ihnen wohnen, aber warum gibt es Backslash Anführungszeichen, denken Sie? Warum gibt es diese seltsame Abfolge von Zeichen, Backslash Anführungszeichen, Deshalb könnte das nützlich sein? STUDENT: [unverständlich]. DAVID MALAN: Genau, richtig? Denken Sie zurück an unsere Hallo Welt Programm dass wir jetzt schon ein paar Mal gesehen, jedes Mal, wenn wir die Hallo Welt gesehen Programm, das wir doppelte Anführungszeichen innerhalb hatten von denen hallo Komma Welt Backslash n. Aber denken Sie an sich selbst, was ist, wenn Sie tatsächlich wollte ausdrucken ein Anführungszeichen? Ihr erster Instinkt sein könnte, weiß ich nicht wissen, warum ich Sie vielleicht hier do--, wir können ein wenig passiv sein aggressive, hallo Freund. Vielleicht wollen wir etwas tun. Aber warum ist das jetzt problematisch? Die Nichtbeachtung der typografische Anführungszeichen beiseite, dass Keynote gemacht für uns automatisch. Warum ist das problematisch? Genau. Denn wir haben wie 4 Anführungszeichen. Nun, die erste wahrscheinlich geht die zweite, und vielleicht die vierte geht mit dem dritten, oder, ich meine, ich bin nicht einmal sicher, noch ist der Computer sein wird. Computer wieder, Compiler wieder, sind ziemlich dumm. Sie werden nur das tun, was Sie ihnen sagen, zu tun. Und wenn Sie nicht eindeutig sind sie sind wahrscheinlich, um einen Fehler zu werfen. Wenn Sie nicht eindeutig, wie man bist machen ein Erdnussbutter und Gelee-Sandwich seltsame Dinge könnten kommen. Es ist die gleiche Idee. Jetzt genügt es zu sagen, es gibt einige andere Escape-Sequenzen, aber wir werden schon bald zu denen zu kommen. Wesentlichen Diese Flucht Sequenzen stellen etwas dass Sie nicht in der Lage sein könnte zu leicht auf der Tastatur, ohne den Computer verwirrend. Jetzt haben wir mittlerweile Platzhalter in printf. D Prozent, was auch geschrieben werden kann, In fast allen Fällen als Prozent i, ist ein Platzhalter für welche Art von Daten? Welche Art von Wert? Eine Dezimalzahl. Also eigentlich wir beginnen mit i Prozent, weil es etwas einfacher, wie eine Integer. I Prozent. Eine ganze Zahl, Dezimalzahl passiert zu sein. Prozent s wir schon sagte, war ein Platzhalter für eine Zeichenfolge. Das ist nur ein Wort, ein Satz, ein Absatz, ein Essay, was auch immer. Es ist eine Folge von Zeichen von einiger Länge. Und wir werden bald sehen Einige dieser anderen. Aber Prozent c ist für ein einzelnes Zeichen. Prozent f ist für eine Fließkommazahl, wie eine echte Nummer, die hat ein Komma drin, die Selbstverständlich ist keine ganze Zahl. Und es gibt eine ganze Haufen von anderen. Inzwischen in C und in eine Menge von Sprachen, wir haben unterschiedliche Datentypen. Verschiedene Arten von Glasschalen, wenn man so will. Die Schüssel habe ich das letzte Mal war für Ping-Pong-Bälle, aber wir können auch anders speichern Werte wie Zeichen und Zeichenketten und ganze Zahlen in einem Behälter, wie eine Variable hat und C diese. Char ist die Art der Daten, die Art der variablen, , in dem Sie ein Zeichen speichern kann. Schwimmer ist eine Art von Variablen in dem Sie eine reelle Zahl speichern kann. Int ist natürlich für einen int. Und eher lächerlich nannte eine lange, lange ist, wo Sie im Wesentlichen speichern eine wirklich lange Nummer, mit noch mehr Stellen dann ein typische int Macht zu speichern. Aber wir werden darauf zurückkommen, bevor lang. In CS50 dot h mittlerweile der andere Header-Datei dass wir ein Paar gesehen fach im Einsatz, es zwei weitere Datentypen, die nicht in C typischerweise existieren. Eines ist String, und wir werden sehen, in ein paar Wochen welchen Saiten wirklich sind unter der Haube. Und man ist bool. Und ein bool ist eine Variable, kann nur auf bestimmte Werte annehmen. Und gerade auf der letzten Woche auf der Basis Erklärung von Scratch, und in jüngerer C, was würden Sie raten sind die beiden möglichen Werte für einige Container, der vom Typ bool ist? Ja und nein. Eins und Null. Wahr oder falsch. Und in der Tat, es ist die letzte, die dazu neigt, herkömmlichen in einer Programmiersprache zu sein Sprache, etwas zu sagen, wie wahr oder falsch. Inzwischen ist die CS50-Bibliothek kommt mit einem Bündel von Funktionalität dass die Mitarbeiter schrieb für Sie, außer nur immer einen String. Wir schrieben im Voraus Funktionen, die kann eine ganze Zahl von Benutzer zu bekommen, bekommen ein einzelnes Zeichen, bekommen einen Schwimmer, dass ist nur eine Zahl mit dem Komma. Holen Sie sich eine lange, lange, ein wirklich große Wert von dem Benutzer. Deshalb haben wir nur diese in gesehen Maßnahmen in Form von GetString. Sondern über diese Funktionen bald in der Lage zu schreiben Programme, die Eingaben von dem Benutzer zu erhalten. Inzwischen halte das Programm, und betrachten wie wir jetzt damit beginnen, hinzufügen um sie mit neuen Konstrukte. Eine schnelle rasante Tour und dann werden wir sehen auf einige schriftlich einige Programme manuell uns. Fortan, wenn wir wollen Umsetzung einer Bedingung, es ist nicht wie ein Blick nettes kleines hübsches Puzzle-Stück. Es wird ein wenig mehr arkane aussehen. Aber dies ist die kanonische Struktur einer Bedingung C. Das Wort, wenn zwei Klammern, innerhalb derer wird einige Art sein von Booleschen Ausdruck. Jetzt ist der Schrägstrich Schrägstrich in der Mitte, ist das im Moment ein bisschen wie Pseudocode Platzhalter. Aber mehr richtig, jede Codezeile in C, die mit Schrägstrich Schrägstrich beginnt ist ein Kommentar. Es ist wie eine Haftnotiz, die Sie vielleicht setzen auf einem Aufsatz, auf Papier gedruckt. Es ist eine Notiz für sich. Es hat keine funktionelle Auswirkung auf das Programm. Es ist eine Art Erinnerung, es ist Ihre eigene Dokumentation darüber, was vor sich geht. So tun dies im Moment ist eine Art Platzhalter für was auch immer drin ist dieser geschweiften Klammern schließlich wird sich etwas tun. In der Zwischenzeit können zwei Gabeln in der haben Straße, ein anderes Konstrukt, wenn wie diese. Sie können, wenn, elseif, else. Jetzt ist es erwähnenswert, vor allem wenn Sie schon googeln um Online-Ressourcen von Neugier, oder wenn Sie abholen eine der Kurs der empfohlene Bücher über C, Sie werden sehen, dass der Mensch viel von unterschiedlichen Präferenzen für wie selbst im Code auszudrücken. Einige Leute mögen das setzen geschweiften Klammern, wie ich hier getan. Einige Leute mögen das lockige setzen Hosenträger zum Beispiel hier oben. Einige Leute mögen die Neubauten zu setzen hier und dann hier. Es gibt eine beliebige Anzahl von Möglichkeiten, Code schreiben, und keiner von ihnen Recht an sich. Es gibt zwar ein paar , die ziemlich falsch. Aber es gibt NO- wenn dies letztlich eine sehr religiöse Debatte. In der Tat, eines der ärgerlichsten Dinge über Informatik ist, wie rechthaberisch Informatiker kann. Und Sie werden feststellen, dass im Laufe der Zeit Sie auch persönliche Vorlieben entwickeln , wie Ihr Code aussehen sollte. Nicht nur verhalten, nicht nur zu erstellen Ausgang, aber wie es sollte ästhetisch aussehen. Also, was wir tun werden, ist begleiten Sie auf die Art und Weise zu, denn jetzt wenigstens, ein Standard-CS50-Stil, dass zumindest hält die Dinge einheitliche und leicht zu lesen. Aber auf diejenigen, Scheidungen vor lang. Ein boolescher Ausdruck in C, wenn Sie wollte sagen, wenn diese Bedingung erfüllt ist und die andere Bedingung erfüllt ist wahr, Sie das Wort nicht schreiben Sie und, wie man es in Englisch. Sie stattdessen Kaufmanns-Und-Zeichen, Gründen wir zurück zu kommen. Wenn Sie sagen wollen, oder Sie verwenden zwei vertikalen Balken, die auf einer US-Tastatur im allgemeinen über die Enter Taste neben dem Backslash. Und das bedeutet nur, wenn diese Bedingung oder die andere Bedingung ist wahr, dies tun. Inzwischen gibt es diese verrückte Sache, die Sie werden Gelegenheit haben, auf einmal in eine Weile zu verwenden. Aber es ist nur eine Alternative Möglichkeit, sich auszudrücken. Diese, für jetzt, lassen Sie uns festgelegt, es ist nur eine andere flippige Ausdrucksweise wenn, elseif, elseif, elseif, elseif. Es ist nur in Bezug formatiert von Fällen, in denen Sie buchstäblich Die Werte, die aufzuzählen möchten Sie vielleicht für zu überprüfen. Inzwischen Schleifen. Wir sahen einen Vergleich der Rubbeln mit einer Schleife. Und ich werde meine Hand winken was jeder von diesen Dingen bedeutet. Aber beachten Sie, dass eine Schleife wird sehr beginnen oft mit dem Schlüsselwort für. Oder es wird mit dem Schlüsselwort während starten. Oder es wird mit dem Schlüsselwort beginnen zu tun, und am Ende mit dem Schlüsselwort Weile. Aber was wir sind dabei zu sehen, ist Dinge wie diese. Hier ist in der Regel in C, wie Sie deklarieren eine Variable und geben Sie ihm einen Wert. In C reicht es nicht aus, wie in Scratch, die Sie gerade sagen, gib mir eine Variable namens etwas. Sie müssen sagen, C, und sagen Sie Compiler, genauer gesagt, welche Art von Wert, den Sie tun wollen in der Glasschale legen. Ist es eine ganze Zahl? Wenn dem so ist, müssen Sie buchstäblich sagen int und dann der Name der Variable, dann ein Semikolon. Wenn Sie stattdessen wollte String und rief Es ist wie ich meinen Code haben heute hier, Sie String s Semikolon sagen. Sobald Sie einen Wert geben wollen Sie können dann das Gleichheitszeichen, anders als die bekannte Zuweisungsoperator. Und merken, wie jeder dieser Codezeilen hat das Semikolon am Ende. Aber ehrlich gesagt das nur sieht ein wenig hässlich. Warum kann ich nicht sagen, auf den Computer, geben mir eine Variable und initialisieren sie auf Null. Das heißt, geben Sie mir eine leere Glasschale. Während Sie können. Und so einer der das Urteil ruft Sie müssen stilistisch im Laufe der Zeit machen ist, müssen Sie Ihren Code wie diesen zu schreiben, oder Sie Art von aufräumen und beeindrucken Menschen, indem er zwei Zeilen als nur eine. Und dies würde als in der Regel einen eleganteren Weg schreiben Sie den Code stilistisch. Funktionen sind wir natürlich auch gesehen. Sie werden dieses Format an. Der Name einer Funktion, einige Klammern, und dann vielleicht noch einige Sachen im Inneren. Oder Sie könnten Verwendungen siehe mehrere Funktionen Seiten einander, wie so etwas wie dieses. Jetzt als Tangente, tut Dieser Witz jetzt sinnvoll? [Gelächter] Es bedeutet nicht, es ist lustig, aber es ist vielleicht ein wenig mehr Sinn. So, jetzt in der loslassen CS50 Gerät für einen Moment. Und lassen Sie mich hier eröffnen einen Teaser. Und in der Tat einer der Gründe, für die Einführung von IKEA Katalog und blinkenden das Bild des iPhone ein wenig vor war, um tatsächlich anknüpfen zusammen die Tatsache, dass vor ein paar Jahren, im Jahr 2007, Dieses Stück Code war freigesetzt, die wurde eine der ersten Implementierung ein Stück Software das tut, was heißt Jailbreak. Für die Leser, Jailbreak so etwas wie ein Handy oder ein iPhone bedeutet im Wesentlichen, herauszufinden herauszufinden, wie die Dinge zu tun damit, dass das Unternehmen Wer hat sie nicht beabsichtige. Wie Sie installieren möchten bestimmte Software, die im App Store nicht gibt, Jailbreak Ihr Telefon die Sie Dinge wie das und noch mehr zu tun. Aber was war Spaß in 2007-- und es ist schon Dutzende von verschiedenen Versionen diese Dinge seitdem in allen möglichen languages-- ist, dass dieses Programm hier, genannt iUnlock, war eigentlich in C. Und so geschrieben ich zog den Quellcode für diese, nur um Art zeigen Ihnen einige der Gemeinsamkeiten mit den Konstrukten wir haben bisher zu diskutieren. Nun, hier gibt es viel mehr Komplexität als wir bereits in der Klasse gesehen habe. Lassen Sie mich nach oben nur ein bisschen hier. Aber beachten Sie auch these-- bemerken wir ein paar things-- aber beachten, hier diese Zeilen, einschließlich Standard-I / O h dot. Und allen-- Linie 24, please-- bemerken Standard-I / O Punkt h und eine ganze Reihe von anderen Dateien, die offenbar anderen Menschen geschrieben habe. Und wenn wir durch nach unten scrollen diese, wenig willkürlich, bemerke ich weiß nicht, wie zu schreiben all dies mich unbedingt noch aber es gibt, wenn. Also anscheinend eine Zweigstelle hat. Und wenn ich nach unten scrollen, ein wenig weiter gibt es einen anderen, wenn. Wenn ich nach oben, ich denke, um die Linie 100 sah ich für. Also ich bin mir nicht ganz sicher, wie das funktioniert noch, aber das ist eine for-Schleife, die zu gehen ist lassen Sie mich wiederholen eine bestimmte Anzahl von Zeiten. Und wenn ich alle blättern die bis zum Boden Ich sehe, dass es eine funktionieren hier unten genannt Haupt und einige zusätzliche Kredite für Ihr Lesevergnügen. So ist dies nur sagen-- und wir setzen Diese Online unter der Kurs Quelle Code today--, dass auch einige von diesen Geräte, die wir für selbstverständlich halten, am Ende des Tages bist du immer noch Mit diesen Grund Konstrukte, die wir haben bereits die Einführung so weit. Das ist genug von dieser. Alles in Ordnung, so lassen Sie uns jetzt tatsächlich etwas zu bauen. Lassen Sie uns über so etwas wie gehen hello.c und eröffnen diese, schreiben wir dieses Programm hier. Ich werde weitermachen und Schreiben Sie ein Programm namens adder.c, deren Aufgabe es ist, sein wird wie meine erste Super einfacher Taschenrechner dass fügt nur ein paar Zahlen. Nicht, denn das ist eine harte Problem, sondern weil es ermöglicht es mir, nun binden zusammen ein paar Dinge. Also werde ich weitermachen und schließen Standard-I / O und h dot dot h CS50. Ich werde int main nichtig zu sagen. Und wieder in die Zukunft wir werden darauf zurückkommen in in diesem Zusammenhang Mittel und nichtig. Und jetzt werde ich etwas sagen wie printf, gib mir eine ganze Zahl. Und jetzt auf meinem zweiten Zeile wie kann ich mich ausdrücken, wie dass ich eine Variable deklarieren das wird ein int zu speichern? Wörtlich, was ich geben, wenn ich will erstellen Sie eine Variable, die einen int speichert würden Sie sagen? int a gleich getint. Sicher, so, das funktioniert. Und nur für die Konsistenz mit dem Code, den Sie werde siehe online, lassen Sie mich Wechsel dies x, x, nur weil ist eine gemeinsame Variablennamen zu verwenden, zumindest in der Algebra. Nun lassen Sie mich gehen Sie vor und nicht wieder printf. Gib mir noch eine ganze Zahl ist. Und jetzt bin ich Art gehen von lernen aus diesem Muster, Ich werde sagen, int y bekommt getint. Und haben wir nicht genutzt haben Getint vor, sondern nur wie GetString geht und bekommt eine Schnur, wie Javier aus dem Publikum haben, ähnlich funktioniert getint blinken die Eingabeaufforderung. Und effektiv auf den Benutzer wartet um ihm eine ganze Zahl, indem Sie es in und Enter drücken. Jetzt endlich werde ich tun Dazu printf die Summe von-- und lassen Sie mich Phantasie now-- Prozent i und i Prozent vorhanden ist i Ausrufezeichen Backslash n. Und was glaubst du, ich bin zu gehen legte in den nun als zusätzliche Eingänge printf? Ich will nicht sagen, wörtlich zitieren unquote x. Ich möchte in der Klasse X und dann, und jetzt Sie uns Phantasie lassen und lassen Sie uns einfach davon ausgehen, wir tun können, was wir wollen. Was möchten Sie als nächstes sagen? x plus y. Und in der Tat, dass wird funktionieren. Es ist minimal Programmiersprachen verstehe die Grundrechenarten, und so sollte dies in der Tat Arbeit. Also lassen Sie mich gehen Sie vor und machen Sie Addierer in meinem Schwarz-Weiß-Fenster hier unten ein. Cryptic Linie aber kein Fehler Nachricht, und das ist gut. Dot Slash Addierer, gib mir eine ganze Zahl, 1. Gib mir noch eine ganze Zahl, 2. Die Summe von 1 und 2 ist 3. Alles klar, so ein ziemlich trivial Programm, aber was ist es gemacht? Es ist mir erlaubt, eine Funktion zu verwenden hier nennen, nennen andere Funktion hier, zwei Aufrufe getint ein dritten Aufruf von printf, und dann mit Hilfe dieser Platzhalter. So ist es ein wenig mehr anspruchsvoller als beim letzten Mal. Aber was, wenn ich will Holen Sie sich ein wenig schicker? Lassen Sie mich gehen Sie vor und tun dies jetzt. Lassen Sie mich gehen Sie vor und erstellen ein neue Datei namens Bedingungen Null. Und ich werde, um zu speichern einige Zeit für die Klassen willen und nur, dass einfügen Code als Startpunkt. Und jetzt bin ich gerade dabei, setzen etwas Neues hier in der Mitte. So printf Ich möchte eine ganze Zahl bitte. Und das alles Code verfügbar auf der Website der Kurs, Sie brauchen sich keine geben sie alle aus in der Klasse, wenn Sie lieber nicht. int, und jetzt bin ich zu gehen , anstelle von x und y, Ich werde n zu verwenden, was ist wahrscheinlich die häufigste für eine ganze Zahl in einem Computerprogramm. Und jetzt will ich eine do Urteil wenig hier. Ich werde, wenn n größer als 0 ist, dann Ich werde sagen, hoppla printf--, printf-- Ihnen abgeholt eine positive Zahl, Ausrufezeichen Backslash n. Schließen Sie das. Sonst werde ich aus printf Sie nahm eine negative Zahl. Nun, bevor Sie schreien mich an, wir führen Sie dieses Programm. Lassen Sie mich hier nach unten gehen. Und wie kann ich ein Programm zusammenstellen genannt Bedingungen Strich 0? Machen Bedingungen Strich 0. Art von einem dummen Namen, aber-- verdammt. OK, gute Lehre Moment. Warum ist das zu brechen? Was habe ich aus Versehen diese Datei aufrufen? Sie können Art schließen von der Registerkarte hier oben. Also ist es nicht schlimm, dass ich tat dies, weil diese wird vielleicht einige von euch passieren. Also habe ich aus Versehen mit dem Namen meiner Quellcode Zustand 0. Aber mein Quellcode sollten per Konvention sein in einer Datei namens Zustand 0 Strich c, oder was auch immer Punkt c. Also lassen Sie mich dies zu beheben. Genau wie Microsoft Word kann ich gehen auf Speichern und tun Zustand 0 Punkt c. Jetzt, nur um ordentlich Ich bin sein werde weitermachen und entfernen Zustand 0, was meine alte Version war. Und nun lassen Sie uns machen Zustand 0, Enter. OK, scheint gut. Zustand 0, Enter. Ich würde gerne eine ganze Zahl bitte, 50, Sie nahm eine positive Zahl. Nun, wie über negative 50? Sie nahm eine negative Zahl. Wie wäre es nun, 0. Ziemlich sicher, dass 0 ist nicht negativ. Das ist also eine Art logische Fehler. Wie kann ich dieses Problem beheben? Sonst, wenn n kleiner als 0 ist, dies zu tun, sonst können wir eine Drei-Wege-Niederlassung hier zu haben, printf Sie 0 gerichtet. So, jetzt, wenn ich diese erneut Programm nach dem Kompilieren es wieder mit Make, und jetzt erneut Zustand 0, was ich hier zu sehen 0 gibt mir diesen Ausgang. Also, wo gehen wir hin mit diesem? Nun, es ist sehr leicht aus den Augen verlieren der Wald vor lauter Bäumen. Und so können wir zu dem Schluss, Mit diesem 2 und 2.1 Minuten-Video dass letztlich ist ein bisschen einer Anzeige von Google, aber das ist wirklich Zeugnis was auch die mit diesen Grund Gebäude Blöcke können wir letztlich einmal tun wir haben ein bisschen Programmier versierte unter unserer Gürtel. [Musik zu spielen] Saroo BRIERLEY (vo): Es war vor 26 Jahren, und ich war gerade dabei, sich zu drehen 5. Wir kamen zum Bahnhof und bestiegen wir unseren Zug zusammen. Mein Bruder sagte nur, ich werde hier bleiben, und ich werde wieder kommen. Und ich dachte nur, auch Sie wissen, Ich könnte auch einfach nur schlafen gehen und er wird nur weck mich. Und wenn ich wachte am nächsten Tag, die ganze Wagen leer war auf einem außer Kontrolle geratenen Zug, ein Gespenst Zug unter mir, ich weiß nicht, wo. Ich wurde nach Australien verabschiedet, einer australischen Familie. Und Mama verziert hatte meine Zimmer mit der Karte von Indien, die sie setzen neben meinem Bett. Ich wachte jeden Morgen sehen, dass Karte und damit es irgendwie gehalten, die Erinnerungen lebendig. Leute würden sagen, du bist versucht, eine Nadel zu finden im Heuhaufen, Saroo Sie werden es nie finden. Ich würde der Orte geflasht haben, dass ich verwendet werden, um zu gehen, die Blitze von meiner Familie Gesichter. Es war das Bild meiner Mutter, sitzen mit gekreuzten Beinen, nur beobachten sie weinen. Das Leben ist nur so schwer. Das war mein Schatz. Und ich war auf der Suche mit Google Map und klar, es ist Google Earth auch. In einer Welt, wo man in vergrößern, Ich fing an, all diese Gedanken haben und welche Möglichkeiten dass dies für mich tun. Ich sagte zu mir, wissen Sie, Sie haben stand diese fotografischen Erinnerungen und Sehenswürdigkeiten, wo Sie sind, und Sie wissen, was die Stadt aussieht. Dies könnte eine Anwendung sein, dass Sie verwenden können, um den Weg zurück zu finden. Ich dachte, ich werde auch eine Put- Punkt auf Kalkutta Bahnhof, und eine Radiuslinie, wissen Sie, dass Sie sollte die Suche werden in dieser Gegend. Ich irgendwie stieß Diese Bahngleisen. Und ich begann nach, und Ich zu einem Bahnhof kam die reflektiert das gleiche Bild das war in meinen Erinnerungen. Alles abgestimmt. Ich dachte nur, ja, ich wissen, wohin ich gehe. Ich werde einfach das lassen Karte, die ich in meinem Kopf führen mich und nimm mich zurück in meine Heimatstadt. Ich der Haustür kam das Haus, das ich geboren wurde. Und ging um etwa 15 Meter um die Ecke, es gab drei Damen stehen außen, benachbart zueinander. Und die mittlere trat vor, und Ich dachte nur, das ist deine Mutter. Sie kam nach vorne, umarmte sie mich, und Wir waren dort für etwa fünf Minuten. Sie packte meine Hand und sie nahm mich zum Haus und am Telefon, wo sie stand klingelte meine Schwester und mein Bruder zu sagen, dass Sie wissen, Ihr Bruder hat gerade alle plötzlich erschien wie ein Geist. Und dann wurde die Familie wieder vereint. Alles ist alles gut, Ich half meiner Mutter aus, sie nicht hat, sich sein schuften. Sie können den Rest leben ihres Lebens in Frieden. Es war eine Nadel im Heuhaufen, aber die Nadel war da. Alles ist da. Alles in der Welt haben wir ist am Wasserhahn auf eine Schaltfläche. Aber man muss den Willen haben und habe der Wille, es zu wollen. [Musik zu spielen] DAVID MALAN: Wunderbar süß Zeugnis nur, was Sie können jetzt mit der Technik. Wir sehen uns nächste Woche.