LUCAS FREITAS: OK, ich denke, jetzt sind wir zu Hause sind. Willkommen auf CS50 Supersection. Wir sind weniger komfortabel. Mein Name ist Lucas Freitas. Ich bin einer CS50 Leiter TFs. Das ist Lauren. LAUREN CARVALHOS: Hallo, ich bin Lauren. Ich bin auch Leiter TF für CS50. LUCAS FREITAS: Heute haben wir gerade gehen sich einen Überblick über das, was alles, was Sie geben Jungs haben in einer Woche gelernt, hoffentlich um Ihnen einen guten Jungs Sinn, was Sie wissen sollten für ein Problem eingestellt. Nur ein paar Ankündigungen. Zunächst Bürozeiten. Bürozeiten sind von Montag passiert bis Donnerstag in verschiedenen Häusern in Annenberg jeden Tag. Sie sind eine sehr gute Ressource für Sie Jungs zu kommen und Fragen zu stellen, und sprechen Sie mit TFs und sogar Austausch Ideen mit anderen Studenten. So sicher sein, dass die Ressourcennutzung zu Ihren Gunsten. Die zweite Sache ist die CS50 Appliance. Für die letzte [unverständlich] euch nicht haben, um tatsächlich haben ein Gerät. Sie haben einfach alles, was in Ihrem PC. Aber für dieses Problem, Sie haben tatsächlich um eine virtuelle Maschine zu haben, so zu sein sicher, die CS50 downloaden Appliance und richtete ihn auf. Und die dritte Sache ist, achten Sie darauf, starten, das Problem so schnell wie möglich gerade eingestellt denn es ist viel einfacher zu finden helfen, wenn Sie in der sind Anfang der Woche. Weil Menschen dazu neigen, warten, bis die letzten Sekunde, um das Problem aus starten, und dann gehen Sie zu Bürozeiten, und es gibt eine Menge Leute. Wo, wenn Sie am Montag gehen, Sie gehen um zu sehen, dass Sie zu sprechen TFs so ziemlich die ganze Nacht, und sie werden mehr als glücklich, Ihnen zu helfen. LAUREN CARVALHOS: Kann ich einfach aufhören Sie nur für eine Sekunde? Hat jeder in der Lage, downloaden die CS50 Appliance? Haben die Menschen ausprobiert? LUCAS FREITAS: Zum Download von der So können Sie bei Anweisungen erhalten cs50.net/appliance. LAUREN CARVALHOS: Richtig. Und es dauert eine Weile, für unsere Systemadministratoren, Sie erhalten eine Lizenz Schlüssel, so melden Sie sich für die kostenlose Testversion zuerst. Auf diese Weise werden Sie es für 30 Tage zu haben, und dann warten, Ihren Lizenzschlüssel die es geben sollte um Ihnen für ein Jahr. LUCAS FREITAS: Erstens, reden wir ein bisschen über den CS50 Appliance. Der CS50 Appliance ist eigentlich eine virtuelle Maschine, die Sie zu gehen in Ihrem eigenen Computer laufen, der ist im Grunde läuft einen anderen Computer in Ihrem eigenen Computer. Das ist ziemlich cool. Und eigentlich ist es überall. Menschen, die Tech würde wissen, dass dies wird die ganze Zeit verwendet. Sie? Kann mehrere Computer haben in einem Gerät. Lassen Sie tatsächlich einen Blick auf der Appliance. Wenn Sie das Gerät nach gehen Registrierung, Sie gehen zu müssen sind setzen Sie Ihren Namen und melden Sie sich an, um Harvard so können wir erhalten Sie alle eingetragen. Sie gehen, um zu sehen im Grunde nur ein Tapete, und dann nach Hause und Trash, und dann diese kleinen Symbole. Diese drei Symbole sind eigentlich die meisten wichtige Dinge, die man haben kann, in Ihre Appliance. Die erste ist gedit, welche ein Text Editor, wie Notepad oder wie jede Art von Text-Editor. Es ist nur etwas, das wir verwenden, um zu schreiben Code und dann mach was mit ihm. Die zweite Sache, dass wir haben hier ist Chrome. Also, wenn Sie das Internet nutzen, müssen in der Appliance, das ist was Sie verwenden können. Und die dritte Sache ist, das Terminal, das ist eigentlich sehr süß. Menschen in der Regel sind so eine Art von Angst das Terminal, weil es das sehr altmodische Anwendung, in der Sie im Grunde nur alles geben mit Ihrer Tastatur. Es gibt nicht viel Interaktion mit der Maus. Aber eigentlich ist das Terminal macht sehr gute Dinge. Zunächst lassen Sie uns nur durch zu gehen Einige Befehle, dass Sie können im Terminal verwenden. LAUREN CARVALHOS: Und fühlen Sie sich frei zu stoppen uns, wenn Sie Fragen haben. LUCAS FREITAS: Ja. So ist der erste Befehl, die wir haben für das Terminal ist ls. ls bedeutet im Grunde alles, was Liste, die alle die Dateien und alle Direktoren, dass ich an der Stelle, die ich bin. Also, wenn ich ls hier zu tun, werde ich zu sehen, dass ich einige Verzeichnisse. Ich habe den Desktop, die Downloads, die Protokolle und die vhosts. Das sind in blau, weil sie sind alle Verzeichnisse. Dann haben Sie einige andere Dateien. Sie haben wie hallo und hello.c, die sind nur Dateien, und sie sind in verschiedenen Farben. Das ist also ein sehr wichtiger Befehl nur Sie sehen, was sind die Dateien und Verzeichnisse, die Sie haben in dem Verzeichnis, Sie sind in der Klemme. Wenn Sie jharvard @ Gerät und sehen dann das kleine Symbol da, der Tilde, das bedeutet nur, dass das der Verzeichnis, das Sie im Moment sind. LAUREN CARVALHOS: Also Eingabe ls ist fast wie Sie auf den Ordner notierte genau dort, in ihm zeigt Sie alle sind die Inhalte, die in diesem Ordner. ZIELGRUPPE: Gibt es Text nach der hello.c? LAUREN CARVALHOS: Oh, das kannst du nicht sehen, dass, weil es blau. LUCAS FREITAS: Es sagt Protokolle und vhosts. LAUREN CARVALHOS: Das sind nur andere Ordner. Es tut mir leid, es ist wirklich schwer zu sehen. Vielleicht, wenn wir die Lichter ausgeschaltet? Colton, müssen Sie ausprobieren möchten und den Lichtschalter finden? Tut mir leid. Ich wollte nicht darüber nachdenken. LUCAS FREITAS: Aber es ist im Grunde - ja, wenn du könntest - LAUREN CARVALHOS: Zoom in Ihrem Bildschirm. LUCAS FREITAS: Ich weiß nicht haben diese Funktion. LAUREN CARVALHOS: [unverständlich]. OK. Nun, es ist nur eine Menge von natürlichen Licht in diesem Zimmer auch. LUCAS FREITAS: Sagen wir einfach davon ausgehen, dass Es gibt zwei andere Verzeichnisse gibt. LAUREN CARVALHOS: Nur Geduld mit uns. Dies ist der einzige Teil, dass Sie sein Blick auf das Terminal. LUCAS FREITAS: Der nächste Befehl ist im Grunde vielleicht Sie organisieren wollen Ihre Dateien - zum Beispiel alle C-Dateien in einem Verzeichnis, aber Sie müssen nicht ein Verzeichnis nur für C noch Dateien. Grundsätzlich können Sie ein Verzeichnis über das Terminal als auch, was ist das gleiche wie Rechtsklick und sagte Neuer Ordner. Der Befehl wird machen Verzeichnis, das mkdir ist, so dass im Grunde "make" und "Verzeichnis". Und dann steckt man kann die Name des Verzeichnisses. Lassen Sie uns sagen, dass ich angerufen werden, Ich weiß nicht, sagen wir, pset1 Doing das, ich gerade erstellt ein Verzeichnis. Lassen Sie uns einfach mal, dass es da ist. Also, wenn ich ls, jetzt sehe ich, Protokolle und dann pset1 und dann vhosts. So habe ich das neue Verzeichnis gibt. Und dann, nachdem Sie ein neues Verzeichnis, vielleicht haben Sie navigieren möchten hinein, so dass der nächste Befehl dieser CD, was im Grunde nur bedeutet, gehen Sie zu einem bestimmten Verzeichnis. Also, wenn ich wollen pset1 gehen, Ich kann nur tun, cd pset1. LAUREN CARVALHOS: cd steht für Veränderung Verzeichnis, [unverständlich] in der Lage, daran erinnern. LUCAS FREITAS: Und jetzt sehen Sie, dass statt nur mit jharvard Gerät, ich habe Gerät jharvard, und dann pset1, denn es zeigt mir, wo ich mich in diesem Computer. Nun, wenn ich gehen will zurück zu den Verzeichnis, das vor diesem war, habe ich eine cd dot dot, das bedeutet nur, gehen tun zu dem Verzeichnis, das ich vorher war, wie die Eltern dies Verzeichnis, im Grunde. Und jetzt sehe ich, dass ich zurück zu jharvard. Das nächste, was ich kann es tun rm ist, die eine Datei zu entfernen ist. Zum Beispiel, wollen wir zunächst tun ls zu sehen, was ich hier habe. Ich habe hallo und hello.c. Lassen Sie uns sagen, dass ich sie zu entfernen. Ich kann rm hallo zu tun. Es wird zu sagen "entfernen reguläre Datei hallo? "Und ich sage:" Ja. "Und nun, wenn ich ls tun, sehe ich, dass es nicht mehr da. Wenn ich versuche, rm für ein Verzeichnis zu verwenden, aber, es wird nicht Sie etwas tun zu lassen. Es wird zu sagen, hey, Sie Ein Verzeichnis kann nicht entfernt werden. So haben wir diese andere kommen rmdir genannt, was im Grunde nur bedeutet, Verzeichnis zu entfernen. Ich kann zum Beispiel pset1 entfernen. Und wenn ich ls, ich nicht haben es nicht mehr. Haben Sie Fragen dazu? Nein? Ja? ZIELGRUPPE: Ist es wichtig, dass Sie verlassen ein Raum nach - wann immer Sie beginnen Sie etwas? LUCAS FREITAS: Ja. Wenn ich das tue, wie CD und das Verzeichnis, Ich habe einen Raum setzen. Welche Raum reden Sie? LAUREN CARVALHOS: Der Raum zwischen cd und [unverständlich]. LUCAS FREITAS: Ja, Sie haben stellen die Räume, weil cd ist die Befehl, und dann die nächste Zeichenfolge, die Sie Typ ist im Grunde das Verzeichnis. So ist es wie ein Argument. Ja? ZIELGRUPPE: Wenn Sie auflisten, alle, die sind verschiedene Verzeichnisse, oder? LUCAS FREITAS: Ja, sie sind in dem Verzeichnis. PUBLIKUM: Was ist der Unterschied unter den Verzeichnissen? LUCAS FREITAS: Sie sind nur verschiedenen Ordnern. Verzeichnis ist ein Ordner in Ihrem Computer. ZIELGRUPPE: Ordner öffnen. LUCAS FREITAS: Ja, es ist nur ein Ordner öffnen. LAUREN CARVALHOS: Hier drüben, die, die blau sind, sind tatsächliche Verzeichnisse, die Sie in bekommen und kann dann sehen, ein paar Dinge, die sind in das, was bedauerlich ist, weil Sie nicht wirklich lesen kann der diejenigen in blau. Und die, die in weiß sind nur Dateien die in dem aktuellen Verzeichnis sind. LUCAS FREITAS: Also Verzeichnisse sind Ordner. Die anderen sind Dateien. PUBLIKUM: Was ist der Befehl um es zurückzusetzen oder um es zu deaktivieren? LUCAS FREITAS: So löschen? LAUREN CARVALHOS: So löschen? LUCAS FREITAS: Ich denke, es ist "klar." Ja. Sie haben also nur geben, wenn klar Ihr Bildschirm ist zu chaotisch. Noch Fragen? Und Sie werden eine Reihe von anderen lernen Befehle einfach von Natur aus während der Semester, weil sie sehr nützlich. So, jetzt lassen Sie uns über die Erstellung sprechen. Wir haben darüber gesprochen und Pseudocode Quellcode und Objektcode. Und es gibt eine Menge von Codes, und vielleicht Sie Kerle sind verwirrt darüber. Reden wir ein wenig über, was passiert, wenn Sie ein Programm schreiben, sind, und Sie können es zu kompilieren, und es wird eine ausführbare Datei. Das sind alles Worte, die euch wahrscheinlich gehört, und vielleicht sind Sie nicht wirklich sicher, was los ist. Sagen wir zum Beispiel, dass ich ein Programm schreiben, das sagt "Hallo". Die erste, was in den Sinn kommt ist Sie versuchen, Art, wie Sie denken, werde, dass in Ihrem Kopf zu tun, und Sie denken vermutlich, in Englisch oder eine andere Sprache, wie natürliche Sprache, wahrscheinlich. Und dann denkt man, na ja, wenn ich will, zum Beispiel ein Programm schreiben, dass , sagt "Hallo" Ich würde ein Programm starten, Ich werde zu drucken hallo, und dann werde ich das Programm beenden. Dies ist Pseudocode. Dies ist im Grunde nur Sie versuchen, kommen mit einer Abfolge von Ereignissen dass Sie tun, um sein wirst Lage, ein Programm zu schreiben. Dann haben Sie den Quellcode und der Quellcode nicht haben speziell in C. Wir reden über Quellcode in C, denn das ist die Sprache, wir lernen, aber natürlich Code kann so ziemlich jede sein Programmiersprache, die Sie haben. Später im Semester, Sie gehen , andere Sprachen zu lernen. Das ist auch der Quellcode. Zum Beispiel hier, das ist meine Quelle Code, und ich bin auch ein Bibliothek, und dann fange ich Haupt-, und drucken Sie dann ich. Und Laura wird, um ein wenig zu reden wenig über all dies. Also das ist der Quellcode. Und was ist die Objekt-Code? Das Objekt ist ein Haufen von Nullen und Einsen, im Grunde. Was passiert ist, haben Sie zunächst Pseudocode, die alle in Englisch ist. Und ich meine, verstehen Sie es. Wahrscheinlich Ihre Freunde verstehen es, und die meisten Leute würden verstehen die Idee. Aber Computer sind wirklich dumm, und sie kein Englisch verstehen, so dass Sie haben, dass in etwas zu übersetzen, in der Regel in einigen übersetzt Programmiersprache. Und Sie eines Programmier denken kann Sprache als wie eine Art von Sprache dass Sie Ihren Computer wie zu sprechen und zu verstehen. Sie sind im Grunde etwas schriftlich eine Sprache, die sowohl von Ihnen und Ihrem Computer zu verstehen. Das ist der Quellcode. So gehen bilden Pseudocode, um Quelle Code, es ist bis zu Ihnen. Es ist im Grunde tun Sie Ihrem Programm. Aber das Problem ist, dass der Computer noch nicht einmal verstehen Programmiersprache. Es ist nicht zu verstehen, Source-Code überhaupt. Es versteht eigentlich nur Nullen und Einsen. So haben wir diese sehr magische Ding namens einen Compiler, der im Grunde gehen, um die Quelle genannt bekommen, dass Sie geschrieben in einer Sprache, die sowohl Sie als und dem Computer zu sprechen, und jetzt bist du werde, dass im transformieren Nullen und Einsen. Also im Grunde, was der Compiler tut, ist es wird Quellcode, in diesem Fall C, es wird in Nullen verwandeln und diejenigen, die den Computer versteht und machen eine ausführbare Datei aus ihm heraus. Heißt das Sinn? Sie können nur der Compiler denken, wie eine Art Übersetzer, der ist Ihnen zu helfen, den Computer zu erklären genau, was es tun soll. Aber wie kann ich kompilieren. Gehen wir zurück auf die Appliance zu gehen, und sagen wir, dass ich tue, dieses Programm. Zuerst werde ich ein Verzeichnis erstellen hier, und ich werde sie anrufen "Praxis". Jetzt werde ich zu navigieren zu dem Verzeichnis, so cd Praxis. Jetzt bin ich im Inneren der Praxis. Jetzt möchte ich gedit starten, so wie ich das tun? Ich kann hier entweder auf, oder ich kann es einfach buchstäblich Typ "gedit", und es wird , für mich zu öffnen. Jetzt werde ich mein Programm geben, so genau das, was ich schrieb, in der Folie. Ich erkläre eine Bibliothek. Ich mache int main, nichtig. Und jetzt mache ich printf, hallo. Jetzt werde ich dies zu speichern. Lassen Sie es mich in die Praxis, und Ich werde dieses hello.c anrufen. So jetzt ist es gespeichert. Wenn ich will, um es zu kompilieren, habe ich eigentlich kann es in zwei verschiedenen Orten zu tun. Ich kann es entweder in einem Terminal-Fenster so dass diese große, oder Sie können gedit verwenden, die tatsächlich eine Terminal-Fenster finden Sie hier. So kann man sehr bequem nur tun, Ihr Code, und dann müssen Sie nur eingeben können was auch immer hier, und versuchen, es zu kompilieren. So, wie ich Code kompilieren? Die einfachste Möglichkeit, die wir haben, ist die Verwendung zu machen, die eine Funktion ist, die ist im Grunde gehen, um kompilieren Sie den Code. Sie müssen nur sagen, machen hallo, so "Make" und der Name des Programms. Oops. Das ist umständlich. LAUREN CARVALHOS: Können Sie [unverständlich]? LUCAS FREITAS: Sorry. Ich wollte nicht in die speichern richtige Verzeichnis. Kommen Sie zu üben, und jetzt speichern Sie es als hello.c. Es tut mir leid. Jetzt wird es gespeichert. Lassen Sie mich nur machen ls und sein sicher, dass es hier ist. OK, jetzt ist es hier. So jetzt, wenn ich machen hallo, spuckt es ein Menge Zeug, aber dann nur gibt es mir eine andere Linie für das Terminal, die bedeutet, dass es erfolgreich war. So jetzt, wenn ich wieder tun ein LS, habe ich eigentlich sehen Sie diese Datei in grün, ist die der ausführbare Datei. Und dann, wenn ich es laufen, alles, Ich zu tun habe dot Schrägstrich ist hallo. Es wird hier hallo sagen, also es ist genau das, was ich verlange es. Es gibt eine weitere Möglichkeit der Zusammenstellung, , die mit Klang wird. Clang ist nur ein Compiler, die wir haben, und es ist ein bisschen ausführlicher zu kompilieren. Aber es funktioniert genauso gut. Also, wenn ich Klang, und dann-o, und dann tun der Name, ich will zu geben die ausführbare Datei, so sagen wir, "Hallo." Und dann die Datei, die ich will zu kompilieren, hello.c. Es ist auch gehen, um zu kompilieren. Und Sie haben die Datei hier, und Ich kann einfach ausgeführt werden es auch. Also beide arbeiten. Heißt das Sinn? Haben Sie Fragen? ZIELGRUPPE: Können Sie vergrößern in ein wenig? LUCAS FREITAS: Sorry? ZIELGRUPPE: Zoom in? LAUREN CARVALHOS: Ich glaube, Sie kann nur befehlen Plus. LUCAS FREITAS: Befiehl was? LAUREN CARVALHOS: Befehl Plus. LUCAS FREITAS: Nein LAUREN CARVALHOS: Oh, das ist nicht zur Arbeit zu gehen, weil - es ist, weil wir die Auflösung für diese Sache. LUCAS FREITAS: Ich weiß nicht denke, wir können zoomen Ja, das können wir nicht vergrößern. Haben Sie weitere Fragen? Entschuldigung. ZIELGRUPPE: Können Sie Klappern wiederholen? LUCAS FREITAS: Der Klang? Klappern ist das gleiche wie die Marke, aber die Unterschied ist, dass zuerst werde ich zum Klappern, das der Befehl zu schreiben, dann werde ich tun, -0, alle, das ist genau das, was wir zu gehen lernen, später als Flagge. So denke nur, dass man immer haben, um die-o setzen. Und dann zuerst, Sie gehen zu setzen sind der Name der ausführbaren Datei im Grunde die Datei, die Sie gehen zu erstellen. So kann ich zum Beispiel sagen, hello2 und dann wird die Datei, die ich möchte zu kompilieren, das ist der. c-Datei. Also das ist hello.c. Heißt das Sinn? ZIELGRUPPE: Hallo, was? Was ist das? LUCAS FREITAS: Hello.c. Und wenn ich es zu kompilieren, und wenn Ls ich, ich habe auch ein hello2, dass ich gerade zusammengestellt. Und wenn ich versuche, es laufen, es geht um genau dasselbe wie hallo, nur drucken hallo. ZIELGRUPPE: Wie für das Make kommen Sie können nach hello.c setzen? LUCAS FREITAS: In machen, können Sie nicht haben, um die. c setzen. In Marke, die Sie gerade sagen, dass die Name des Programms. Sie müssen nicht. C sagen. Aber für Klang, sollten Sie. ZIELGRUPPE: Mit Klang haben Sie auch haben, um die [unverständlich] hinzufügen LAUREN CARVALHOS: Ja. So müssen Sie auch Bibliothek. LUCAS FREITAS: Ja, das ist etwas, wir gehen, um später zu verwenden. Das nennt Verlinkung, und ich denke, wir sind werde später darüber reden. Eine andere Frage? ZIELGRUPPE: Haben Sie setzen ein Punkt Strich Klang? LUCAS FREITAS: Nein Der Punkt ist nur Schrägstrich zu öffnen die ausführbare Datei. Also Klang, die Sie gerade schreiben "Klappern", und dann, wenn Sie öffnen möchten die ausführbare Datei, die Sie gerade erstellt, dann müssen Sie dot Schrägstrich und der Name. Heißt das Sinn? ZIELGRUPPE: Würde man nur ändern [Unverständlich], um Hallo Welt, haben Sie haben, um es neu zu kompilieren? LUCAS FREITAS: Ja. wenn ich zum Beispiel sagen, "Hallo dort, "ich kann einfach speichern Sie sie jetzt, und ich nur kompilieren Sie es noch einmal. Also lass mich tun, ein Make hallo. Und wenn ich hallo, es geht um "Hallo da." Das macht Sinn? Noch Fragen? ZIELGRUPPE: Haben Sie gehören zu den Standard-I / O, um die Arbeit zu koordinieren? LUCAS FREITAS: Ja. Die Standard-I / O ist im Grunde die Bibliothek, die eine hat Implementierung für printf. Also das Ding direkt auf die Top Stdio umfasst. Das ist auch eine Bibliothek, die im Grunde hat eine Reihe von verschiedenen Tools, die Sie verwenden können. ein? Von ihnen ist printf dass eine Funktion dass im Grunde Drucke Meldungen auf dem Bildschirm. Noch Fragen? Nein? OK. So, jetzt zu reden lassen - LAUREN CARVALHOS: Lass uns einfach gehen Sie zum Style-Guide. Möchten Sie finde es hier? LUCAS FREITAS: Also wir gehen über Stil reden. LAUREN CARVALHOS: Oh, David nicht zu Ende. OK. Warum gehen wir nicht wieder kommen, um Stil ganz am Ende? Es ist eigentlich aktualisiert wie wir sprechen. LUCAS FREITAS: Ja. Lassen Weg für David zu beenden. LAUREN CARVALHOS: Kann wir eigentlich wechseln? Also ich hoffe, jeder ist schon Genießen Scratch. Leider ist es Zeit, weg von diesem - leider ist es Zeit, sich zu bewegen von diesen hübschen Blockprogrammierung auf C. Aber zum Glück alle die Programmierkonstrukte, die Sie haben wurde mit der Arbeit in Scratch sind direkt übersetzbar zu C, und wir sind bald anfangen zu lernen einige von ihnen jetzt. Sprechen wir zuerst über die Verhältnisse in boolesche Ausdrücke. Dies wird auf Reserve läuft Batterieleistung. LUCAS FREITAS: Wie ist dass nicht? OK. Sie dorthin zu gehen, werde ich das bekommen - LAUREN CARVALHOS: Also Bedingungen wichtig, da sie es uns ermöglichen, Einführung Logik in unseren Programmen. Hier ist ein Beispiel für eine Bedingung einem C-Programm. Notieren wir, wie diese - Also hier diese Bedingung Block, diese printf-Anweisung wird nicht ausgeführt Wenn die Bedingung nicht innerhalb der Klammern, n größer als 0 ist, true ergibt. Jetzt sind alle Bedingungen in f Aussagen sind boolesche Ausdrücke, was bedeutet, dass es sind nur zwei Möglichkeiten. Sie könnten entweder den Wert true, oder sie auf false auswerten kann. So, hier, so das macht Sinn, oder? n größer als 0 ist, bedeutet dies ein positiver ist Zahl, was bedeutet, daß es gedruckt out "Sie eine positive Zahl abgeholt." Es gibt viele boolesche Ausdrücke dass die Bedingung mit einer bilden können init-Anweisung. Wir haben die weniger als. Dies ist weniger als oder gleich. Dies ist nur ein funny [unverständlich]. Wenn Sie die printf auftreten, wenn es will größer als oder gleich 0 ist, dann Sie würde diese Option wählen. Also das hängt nur gleich rechts nach dem Größer-Zeichen. Equal gleich, was anders ist nur ein Gleichheitszeichen, Gleich gleich tatsächlich bedeutet, dass was auch immer auf der linken Seite ist derselbe wie was auf der rechten Seite dieses wo ein Gleichheitszeichen ist was? Was ist nur ein Gleichheitszeichen? Zuweisung. LUCAS FREITAS: Wer sagt das? Ist das Süßigkeiten? Oh, nein. Entschuldigung. Entschuldigung. Sie beide bekommen Süßigkeiten. Oh, OK! Drei Menschen bekommen Süßigkeiten! LAUREN CARVALHOS: Also das ein Recht hier ist der Knall Betreiber voran das Gleichheitszeichen, so ist das nicht gleich. Also, wenn dies in meinem Zustand, der Körper der Zustand würde nur ausgeführt, wenn auch immer in Links ist nicht das gleiche wie , was auf der rechten Seite. Ich kann auch nur die Ausrufezeichen. Eigentlich werden wir in einem Feature sehen schieben, wie dies genutzt werden. LUCAS FREITAS: Noch Fragen? Nein? LAUREN CARVALHOS: Wir können diese kombinieren Boolesche Ausdrücke, um mehr bauen komplizierte bedingte Anweisungen. Also hier, wenn was auch immer auf der linken Seite Seite der Doppelstäbe oder was auf der rechten Seite der die Doppel Bars true ergibt, dann werden wir ausdrucken ungültig. Und dann hier unten, was auch immer, wenn die Auf der linken Seite der beiden Et-Zeichen und was auch immer auf der rechten Seite der beiden Et-Zeichen true ergibt, dann wir werden ausdrucken gültig. Die Doppelstäbe sind die logische genannt ODER-Operator die Doppel Et-Zeichen sind rief die logische UND-Operator. Ja? ZIELGRUPPE: Sind die, die gerade Klein l's? LAUREN CARVALHOS: Nein Sie sind eigentlich - Sie kennen das Spiel, wie über Ihren Return-Taste? Haben Sie das gesehen? LUCAS FREITAS: Es ist tatsächlich eine Bar. LAUREN CARVALHOS: Es ist eigentlich nur zwei Bars. ZIELGRUPPE: Können Sie das für Strings gleich gleich? LUCAS FREITAS: Nein Wir werden später erfahren, etwas darüber. LAUREN CARVALHOS: Es gibt eine Funktion die Sie verwenden können. Aber Sie müssen nicht zu haben, Sorgen machen, dass nur noch. Was, wenn ich geben diesem Programm die Zahl 5? Was wird ausdrucken? ZIELGRUPPE: [unverständlich] gültig. LAUREN CARVALHOS: Gültig? Ja. Ich weiß nicht, wer das denn. [Gelächter] LAUREN CARVALHOS: Das ist irgendwie beängstigend [unverständlich]. ZIELGRUPPE: Also die Doppel-und, das bedeutet nur, und? LAUREN CARVALHOS: Ja. Also Nummer 5 ist sowohl größer als 0 und kleiner als 100 ist. ZIELGRUPPE: Warum würde es sein? LAUREN CARVALHOS: Ein Et-Zeichen ist eigentlich etwas anderes, und es ist ein Bit-Operator, der Du erfahren Sie später. Aber es ist etwas, das tatsächlich funktioniert mit den Bits einer bestimmten Zahl. LUCAS FREITAS: Man denke nur, sie nicht muss darüber jetzt Sorgen machen. LAUREN CARVALHOS: Ich denke, es ist wahrscheinlich Termine der nächsten Woche. LUCAS FREITAS: Noch Fragen? Nein? LAUREN CARVALHOS: So haben wir gesehen, dass ein blockieren können alleine stehen, aber es kann auch mit und auch Block gekoppelt werden. So dass in diesem Fall größer ist, wenn n 0, wir gehen zum Ausdrucken "Sie nahm eine positive Zahl. "else, was bedeutet, wenn es 0 ist oder wenn es weniger als 0 ist, werden wir drucken, "Sie haben eine negative Zahl." Das Interessante dabei ist, dass diese sind exklusive der jeweils anderen. Es ist nie ein Fall zu sein in denen dies und dies kann sowohl drucken. Ich bin sicher, dass Sie mit dem if / else gearbeitet Box in Scratch, so sollte dies ziemlich vertraut. Ja? ZIELGRUPPE: Brauchen wir den Raum zwischen int n gleich GetInt dann Platz in der if-Anweisung? Wie verwenden wir eine Linie [unverständlich] LAUREN CARVALHOS: Oh, der Raum hier? ZIELGRUPPE: Wie das, aber Sie verdoppeln Raum. Nein, nach oben. Go up. LUCAS FREITAS: Nur die Linie? ZIELGRUPPE: Ja. LUCAS FREITAS: Nur die Leerzeile? ZIELGRUPPE: Ja. LAUREN CARVALHOS: Leerzeile? Nein. Das ist nur eine stilistische Sache. LUCAS FREITAS: Es ist wie manchmal Sie nur ein paar Zeilen überspringen, so , dass der Code nicht wie ein großer Textblock. LAUREN CARVALHOS: Ich denke, was passiert ist war, dass wir hier einen Kommentar, aber ich nahm es heraus, so dass ihr Jungs müssten um über den Code denke eher, als nur mein Kommentar lesen. In der Regel wird nicht wirklich Abstand Einfluss auf die Art und Weise Ihr Programm läuft. Es ist mehr eine stilistische Sache. Und wenn wir die Style-Guide aktualisiert und bereit, bis zum Ende zu gehen supersection, wir reden etwa, dass mehr. Es ist etwas falsch mit Dieses Programm, oder? Da 0 nicht wirklich eine negative Zahl. Also mal sehen, ob wir beheben können. Sie können sich wahrscheinlich vorstellen, mit das sagt, oder? Wenn n größer als 0 ist, drucken wir: "Du nahm eine positive Zahl. "Dann sonst wenn n kleiner als 0 ist, "Sie haben ein negative Zahl ist. "else," Sie haben 0 ". Jetzt ist das Interessante ist, dass das könnte ewig so weitergehen. Sie können einen wenn-Block, ein anderes haben, wenn Block, ein anderer else if-Block, sonst, wenn else if, else if, else, im Grunde so lange, wie Sie wollen. Und wenn so konstruiert, diese sind alle sein wird exklusive der jeweils anderen. Ja? ZIELGRUPPE: Also, warum nicht einfach verwenden können anderen, wenn anstelle von [unverständlich]? LAUREN CARVALHOS: In diesem Fall, ja, ich könnte eine andere, wenn verwendet, und es wäre absolut in Ordnung, weil die Bedingungen selbst exklusive der jeweils anderen. Aber wenn die Bedingungen waren nicht exklusiv voneinander, würde dies sie zu zwingen, nie beides zu bewerten, wenn das Sinn macht. ZIELGRUPPE: In diesem Fall könnten wir Nest die zweite, wenn in der ersten wäre, wenn? LAUREN CARVALHOS: Wenn - was meinst du? ZIELGRUPPE: Wenn die beiden Bedingungen nicht gegenseitig ausschließen? LAUREN CARVALHOS: Wenn die Bedingungen nicht gegenseitig ausschließen? Aber Sie wollen nur eine von ihnen laufen? ZIELGRUPPE: Sie wollen nur wenn statt der anderen. LAUREN CARVALHOS: Ja. Es gibt immer zu viel sein Möglichkeiten, wie Sie dies tun können. Sie können auf jeden Fall verschachteln. Und Sie werden in einem zukünftigen Folie sehen, dass Sie können mehrere ifs haben, nur eine nach dem anderen. Aber dies ist eine Möglichkeit, logisch Organisation der Ablauf des Programms. LUCAS FREITAS: Und es gibt noch eine Sache, ist, dass Sie über das Setzen gefragt ob und wenn dann ein anderer. Das würde perfekt funktionieren, aber es ist schlecht Design, weil im Grunde, wenn Sie überprüfen Sie die ersten, wenn und Sie bemerken, dass die Zahl größer als 0 ist, man kann nur das Programm beenden. Sie haben nicht zu prüfen, ob es ist weniger als 0, oder? Aber wenn Sie, wenn, wenn, es geht zu überprüfen, sowohl während, wenn ich tun, wenn andere ist, es geht zu überprüfen, ob es ist größer als 0 ist. Wenn es ist, es ist nicht zu sehen, auch in den anderen Zeilen des Codes. Sie sind also im Grunde die Kontrolle es wie zweimal unnötig, das ist also, warum wir tun, wenn sonst, wenn. Noch Fragen? ZIELGRUPPE: Also die Funktionalität der andere, wenn die gleiche wie wenn es nur wäre, wenn? LAUREN CARVALHOS: Nein Sie sind tatsächlich zu sehen, in meinem nächsten Schieben ein Beispiel, in dem sie anders sein. In diesem Fall ist es nahezu gleich. So, hier haben wir ein Beispiel von mehreren if-Anweisungen und die Funktionalität ist nicht das Gleiche als ob ich gerade gesagt hatte, wenn sonst, wenn sonst, wenn anderes. Lassen Sie uns einfach über das, was zu drucken würde denken, heraus, wenn ich die Nummer 95 eingeben in diesem Programm. ZIELGRUPPE: [unverständlich] LAUREN CARVALHOS: Und dann? ZIELGRUPPE: [unverständlich] LAUREN CARVALHOS: Ja. So dass in diesem Fall, sind diese Bedingungen nicht gegenseitig von einander. Und weil es nichts zu stoppen dieser Zustand von der Bewertung, ob diese man schon, nur sind sie alle gehen zu drucken. Also wie kann ich das beheben? ZIELGRUPPE: else if? LAUREN CARVALHOS: Sie können sonst ifs verwenden. Ich konnte die Reihenfolge ändern davon, oder? Wenn ich diese zuerst? Nun, eigentlich nicht. Das würde nicht für 95 zu arbeiten. LUCAS FREITAS: Nein, nur die sonst ifs. LAUREN CARVALHOS: Die else if würde dies behoben haben. Heißt das, dass die Verwirrung Wenn und sonst zwischen ifs? ZIELGRUPPE: Ich wollte dir nur fragen, ob Sie haben anderes zu verwenden, wenn sie aufhören würde? LAUREN CARVALHOS: Richtig. Also nur das erste. Wenn ich die Nummer 95 eingetragen, nur dieses würde gedruckt haben, und es wird nie würde die sonst fortgeschritten sind. LUCAS FREITAS: Nur irgendwie denken es, als ob dies der Fall ist, dies zu tun. Die andere ist, wie wenn nicht, überprüfen für diese, und dann tun. So wie sie sind alle gegenseitig exklusiv. Sie können nicht in zwei gegenüber denen zu bekommen. ZIELGRUPPE: Können Sie eine logische verwenden UND für diese Situation? LAUREN CARVALHOS: Ja. Das ist eine andere Art und Weise, dass wir haben dieses Problem behoben. Wir können festgelegt haben reicht, oder? So konnte ich gesagt haben, wenn n größer ist als 90 und weniger als - gut, ich denke, das man nicht wirklich Rolle, aber hier konnte ich gesagt, wenn n größer als 80 und kleiner als 90. Größer als 70, weniger als 80 ist. Das würde auch gearbeitet haben. [Gelächter] LUCAS FREITAS: Sie hat Angst. LAUREN CARVALHOS: Haben Sie keine Angst. LUCAS FREITAS: Es ist nicht dass es falsch sein. Es ist nur so, dass es unnötig ausführlich. Wie in der Informatik, sollte man so einfach wie möglich, solange Sie haben die Funktionalität. Haben Sie die Süßigkeiten wollen? ZIELGRUPPE: Tun Sie es nicht benötigen. LAUREN CARVALHOS: Sie erschrecken alle, Lucas. LUCAS FREITAS: Sorry. LAUREN CARVALHOS: David auch erwähnt diese Aussage in der Klasse zu wechseln. Im Grunde, was vor sich geht ist der Schalter -Anweisung nimmt eine Variable. In diesem Fall, wir nehmen eine ganze Zahl. Wenn die ganze Zahl 1 ist, werden wir ausdrucken, "Sie haben eine kleine Nummer. "Wenn die ganze Zahl ein:" Sie nahm eine mittlere Anzahl. "Wenn die ganze Zahl 3, "Sie haben eine hohe Nummer. "Und ich hatte auch eine Standard-Fall hier unten, aber es wird nicht angezeigt up, das zu schlecht ist. Im Grunde ist dies nur eine andere Syntax. Wir könnten genau dieses umgesetzt haben gleiche Sache mit wenn und sonst, wenn Aussagen. Aber wenn es viele verschiedene Bedingungen und viele verschiedene Variationen auf, was Sie tun möchten, für Jeder Eingang ist diese Option. So ist es nur eine gute Syntax zu wissen. Ja? ZIELGRUPPE: Warum gibt es nicht ein Backslash n in der ersten? LAUREN CARVALHOS: Für oben? Es gibt keine Backslash n da oben weil die GetInt - Wenn Sie dies versuchen, wird es geben Sie diese Aufforderung. Gib mir eine ganze Zahl zwischen 1 und 3. Und wenn ich die spiel n, wäre es nimm mich in die nächste Zeile, aber ich wollte, dass sie die Ganzzahl eingeben direkt nach dem Doppelpunkt. Sie konnten die spiel n gesetzt haben. Es ist keine große Sache. Ja? ZIELGRUPPE: Für diesen Code, das ist Fall eins, ist, dass wegen es ist der erste Fall? Denn - LAUREN CARVALHOS: Nein, nein, nein. Also das ist eine ganze Zahl geben mir zwischen 1 und 3. Wenn n 1 ist, drucke ich diese. Wenn ich für Briefe, fragte ich haben könnte die geben mir einen Buchstaben zwischen A und C. Dann wäre sein Fall A. ZIELGRUPPE: [unverständlich]. Der Fall würde nur [unverständlich] LAUREN CARVALHOS: Ja, richtig. Ja? PUBLIKUM: Was, wenn man haben wollte eher ein relationaler Ausdruck? Also anstatt zu sagen n gleich 1 ist, [unverständlich] n größer als 1 ist im ersten Fall? LAUREN CARVALHOS: Eigentlich, wenn ich nicht definieren einige dieser Fälle würde dies werden, tragen nach unten. Also eigentlich, das ist vielleicht auch nicht was Sie fragen. LUCAS FREITAS: Ich glaube, sie ist zu fragen, ob der Fall ist n größer als 0 ist, bei kleiner als 0 ist. LAUREN CARVALHOS: Vielleicht der Schalter Aussage ist nicht wirklich das, was Sie wollen in diesem Fall zu verwenden. LUCAS FREITAS: Die switch-Anweisung ist nur Wert, so dass Sie Check von der Wert ist wie dieses oder jenes. So können Sie nicht wirklich Bedingungen setzen. PUBLIKUM: Was, wenn die Person, Typen mit [unverständlich]? LAUREN CARVALHOS: Das wäre meine Standard-Fall, der leider Sie nicht sehen können. LUCAS FREITAS: [unverständlich] machen, sie zu sehen. LAUREN CARVALHOS: Eigentlich wissen Sie was? Lassen Sie uns gerade gehen, um 50 zu studieren, und ich will nur vergrößern Sie die Folien auf Studien 50, denn das ist einfach nur nervig. Lassen Sie mich also tatsächlich um den Zustand zu gehen. Das wird nur gehen, um eine Weile dauern. Gut. Also, tut mir leid. Spätestens jetzt werden wir in der Lage sein zu sehen, alles ohne sie abzuschneiden. Gut. Also, wenn sie in einem 10 gesetzt ist, fallen wir würden hier, um mein Standard-Fall, und ich würde nur ungültige drucken, weil ich bat sie, eine ganze Zahl eingeben zwischen 1 und 3. Noch Fragen? Ja? ZIELGRUPPE: Lassen Sie uns für ein Fall, Fall sagen drei, sagen, Sie wollten, dass es alle sein elbe, so dass Sie eine Reihe abgeholt das ist nicht ein Medium Nummer. In diesem Fall würde es überflüssig sein? Möchten Sie nur den Text in beiden ändern von ihnen, oder gäbe es einige sein Redundanz? Gibt es eine Möglichkeit zu kombinieren [Unverständlich]? LAUREN CARVALHOS: Es gibt Möglichkeiten, kombinieren sie, aber ich glaube du kannst nur kombinieren benachbarten. Also, wenn ich nichts zu definieren Fall für zwei, würde dies gelten für beide Fälle. Oh, wenn ich nicht setzen alles für Fall ein, würde dies für beide gelten Fall eins und zwei. Wenn das Sinn macht. ZIELGRUPPE: Können Sie, dass man wiederholen? LUCAS FREITAS: OK. Wenn Sie im Grunde tat, wie haben Sie die gleiche Sache, aber Sie nicht setzen hier nichts, würde man entweder sein Bei einem oder zwei Fall, dies zu tun. Right? Und diese Pause bedeutet, wenn Sie in diesem Fall einfach gehen. Also das ist, was die Bremseinrichtung. Also, wenn ich gerade tat dies, schauen Sie, es Fall ein, und man würde das einfach machen. Wenn es bei beiden war, wäre es auch nur hierher kommen, und das tun. ZIELGRUPPE: Aber können Sie es tun? Wenn es etwas für Fall zwei [unverständlich] LAUREN CARVALHOS: Ich glaube nicht, Sie können das tun. Ich glaube nicht, dass Sie rund um überspringen können. Können Sie das tun, Rob? Ich glaube nicht. ZIELGRUPPE: Also nur eine Nummer kann nach einem Fall gehen, oder? Es kann nicht ein Fall, Komma, zwei? LUCAS FREITAS: Nein, kann man nicht. Sie können auf jeden Fall nicht. LAUREN CARVALHOS: Ich meine, das ist der Punkt, das ist eine Option, und das vielleicht nicht passen Sie Ihre Anwendungsfall, ja, dann benutzen würde, wenn die Bedingungen. ZIELGRUPPE: Warum würden Sie dies tun? Der Schalter? LAUREN CARVALHOS: Ich würde diese verwenden wenn Sie sehr definiert haben - tatsächlich, Lucas, wird Sie blockieren. LUCAS FREITAS: Oh, sorry. LAUREN CARVALHOS: Wenn Sie sehr definiert Verhaltensweisen, die Sie wollen für jeder Eingangs, könnte dies ein wenig übersichtlicher als das Schreiben aus eine if-Anweisung für jeden einzelnen. PUBLIKUM: Was bedeutet die Pause wieder das? LAUREN CARVALHOS: Die Pause bedeutet, zu stoppen. Denken Sie daran, wenn ich nicht diese Pause hier würden wir nur nach unten gefallen in den nächsten Fall. LUCAS FREITAS: Bruch bedeutet zu bekommen aus der Switch-Anweisung. Denn wenn es ein, ich will zu drucken und diese zu verlassen. Ich will nicht, etwas anderes zu überprüfen. ZIELGRUPPE: Sie wollen nicht , etwas anderes zu drucken. LUCAS FREITAS: Ja. Da es sich gegenseitig aus. ZIELGRUPPE: Und ist das nur gehen zum nächsten dann, wenn der erste Fall nicht wahr? Oder macht es alle Fälle testen zur gleichen Zeit? LUCAS FREITAS: Nein, es Kontrollen nacheinander. Sequentiell, ja. Eine Frage noch, dann sind wir zu haben bewegen, so dass wir alles abdecken. Ja? ZIELGRUPPE: Also für den Fall haben könnte etwas anderes als nur die eine gemacht? Könnten Sie einen Bereich geben? LUCAS FREITAS: Nein LAUREN CARVALHOS: Ich glaube nicht, dass Sie können es einen Bereich. LUCAS FREITAS: Sie können nicht Sie kann es nicht geben einen Bereich. ZIELGRUPPE: Der Fall ist spezifisch [Unverständlich]. LUCAS FREITAS: Switch ist eine Art von Werten. Sie verschiedene Dinge tun, je auf einen Wert, ein spezifischer Wert. Sie können nicht Bereich zu tun, kann man nicht etwas anderes tun. Es ist nur ein weiteres Werkzeug, um zu sehen. LAUREN CARVALHOS: Die meisten Menschen nicht verwenden switch-Anweisungen sehr viel im CS50, aber es ist da. Gut. Also das nächste, was wir werden sprechen etwa ist der ternäre Operator. Dies ist nur eine andere Art von bedingten. Im Grunde, was ist denn hier los ist, ich bin Bitte um eine ganze Zahl ist, und wenn n größer als 100, ich werde zum Ausdrucken "Hoch". Wenn es nicht ist, werde ich ausdrucken "niedrig." Also, was es tut, ist die Bedingung hier in den Klammern, und Sie können Art denke an die Frage wie ich fragen, ob dies wahr ist oder nicht. Wenn es wahr ist, werde ich dies zuerst tun Sache, und wenn es ist nicht wahr, ich bin werde diese zweite, was zu tun. Fragen zu den ternären Operator? LUCAS FREITAS: Ich will nur beachten, von David ist, dass, wenn Sie eine Zustand - LAUREN CARVALHOS: Ich denke, David gerade über den Live-Stream. LUCAS FREITAS: Er tut Lebensstrom jetzt. Also, wenn Sie eine Bedingung haben, sind Sie soll geschweifte Klammern setzen, genau wie wir in einem Schalter haben Aussage hier. Wir haben hier in geschweiften Klammern. Für was auch immer Bedingungen, sind Sie soll auch setzen, dass. LAUREN CARVALHOS: Sie werden sehen, dies in der Style-Guide. Wir haben nicht wirklich die Style-Guide jetzt. Ich denke, dass David noch arbeiten. LUCAS FREITAS: Er sagte, dass es ist nur jetzt arbeiten. LAUREN CARVALHOS: Oh, ist es jetzt? OK. So offenbar in diesem Jahr in der Art zu führen, auch wenn Sie nur eine Zeile, Sie haben zu denen setzen geschweiften Klammern in. Sie müssen nicht unbedingt brauchen, um für die Funktionalität des Programms. Und vielleicht sollten wir einfach eine Pause nach den Bedingungen und geradeaus des Styleguides zu löschen einige dieser Dinge? LUCAS FREITAS: Ja. Haben Sie eine Frage haben? ZIELGRUPPE: Nein, ich werde einfach warten bis zum Styleguide. ZIELGRUPPE: Könnten Sie gehen zurück zu dem ternären Operator? LAUREN CARVALHOS: Ternäre, ja. LUCAS FREITAS: Ternäre Operator ist im Grunde ein anderes, wenn Aussage, aber anstatt die beiden Linien der Überprüfung einer und dann, wenn die sonst, müssen Sie nur eine Zeile. Also im Grunde, wenn ich eine Zeichenfolge geben ein Wert von hoch oder niedrig, und ich wollen eine hohe tun, wenn n größer als 100 oder niedrig, wenn es weniger, was ich tun kann ist diese [unverständlich] der String sein wird, und dann habe ich fragen, das Programm ist n größer als 100? Also das ist, warum ich diesen Ausdruck in Klammern und dann das Fragezeichen. Ich frage, ist es mehr als 100? Wenn es ist, es geht hoch zu sein. Wenn es nicht, es geht gering zu sein. Also im Grunde, was Sie denken, wird Sie fragen, eine Frage, so in Klammern setzen Sie die Bedingung. Dann legen Sie das Fragezeichen weil du fragst es. Und wenn das wahr ist, es geht um sein im ersten Wert [unverständlich] hier. Wenn es nicht ist, werde ich legte die Wert, der nach dem Doppelpunkt ist. Ist es sinnvoll? Es ist auch etwas, das wie eine ist Werkzeug in C aber nicht zu haben, speziell verwenden. Aber CS Menschen in der Regel gerne, dass weil es einfach spart Linien. LAUREN CARVALHOS: Es ist sehr elegant. Es macht eine Menge in nur einem Statement. ZIELGRUPPE: Also das Prozentzeichen ist nur was auch immer die Ergebnisse auf die bisherige Linie? LAUREN CARVALHOS: Oh, tut mir leid. Das Prozentzeichen ist eigentlich ein Platzhalter für diese s. In einer printf Erklärung, Sie haben diese String hier, das ist das, was zu gehen ausdrucken, aber Sie können nicht nur setzen diese s drin. Andernfalls würde es zu drucken aus der s wörtlich. Also haben wir ein Prozent hier, um zu halten dieser Ort für was auch immer gehalten kommt nach dem Komma. Also für eine Zeichenfolge, die Sie Prozent s haben. Für eine ganze Zahl ist, i Prozent. Für einen Schwimmer, f Prozent. Sie werden die, wie wir sehen, siehe weitere Beispiele. Aber vielleicht sollten Sie über das sprechen Styleguide für eine kleine Weile, jetzt dass es auf. LUCAS FREITAS: Wenn Sie gehen cs50.net/style, Sie gehen, um zu sehen die Style-Guide. Für Problem-Sets, die Punktzahl für die Problem-Set besteht aus Rahmen zusammengesetzt ist, was im Grunde bedeutet, wenn Sie alle haben die Teile des Problems gesetzt oder wenn Sie versucht etwas. Die zweite Sache ist, die Richtigkeit, die Mittel wird Ihr Programm tun, was sie sollte, zu tun, oder doch Fehler haben, oder ist es nicht zu tun, was es tun soll. Die dritte Sache ist Design, was bedeutet, Sie sind der Umsetzung dieses gut, oder sind Sie unnötigen Aussagen zu? So zum Beispiel, wenn Sie wiederholen möchten eine Reihe 10-mal, schreibst du ein for-Schleife oder sind Sie nur tun, 10-mal die gleiche Aussage, nur tun, Kopieren und Einfügen. Also Design ist dafür. Und schließlich haben Sie Stil. Style ist genau wie die Beurteilung wenn Ihr Code sieht lesbar und Art hübsch. Es bedeutet im Grunde nur ist Ihr Code lesbar? Würde jemand anderes, der war auf der Suche sind Ihr Code in der Lage sein zu verstehen, was es tut? Hat es Kommentare und dergleichen? Lassen Sie uns über die Art zu sprechen, die sollen Sie zu bedienen. Die erste Sache ist Kommentare. Die Kommentare sind sehr wichtig für Ihre Code, weil man manchmal tun Ihr Programm, und Sie wissen genau, was Sie so tun Sie gerade starten wollen Codierung, geben Sie einfach ein Bündel von C. Aber wenn jemand anderes suchen, sind Sie Code, sind sie nicht in der Lage zu sein, verstehen es, weil sie nicht wissen, die Dinge, die in deinem Kopf sind, wie die pesudocode, vielleicht werden sie haben eine harte Zeit zu verstehen, was der Code tut. So Kommentare sind wirklich nützlich, um zu erklären, um jemanden, der bei der Suche Ihr Code, was es tut, und tatsächlich auch für Sie, sie sind sehr nützlich. Wie Sie härter und hart Psets gehen, Sie gehen zu sehen, dass der Code wird länger, und dann Kommentare sind wirklich wichtig, damit Sie sich daran erinnern, was jeder Teil des Programms tut. Um einen Kommentar zu setzen, können Sie nur tun, ein Schrägstrich Schrägstrich und dann schreiben Sie einen Kommentar. Und die ganze Linie ist Teil eines Kommentars, und was auch immer Sie schreiben, es wird nicht sein für den Code verwendet. Es ist im Grunde wie der Compiler wird sich das zu ignorieren. Heißt das Sinn? PUBLIKUM: Was denken Sie wieder tun , um einen Kommentar schreiben? LUCAS FREITAS: Dieses? Der Schrägstrich Schrägstrich? Wann immer Sie Schrägstrich Schrägstrich, geben auch immer ist in dieser Zeile wird nicht berücksichtigt werden, um C Yeah werden? ZIELGRUPPE: Also nach dem Kommentar, Sie geben Sie einfach und starten Sie eine neue Linie? LUCAS FREITAS: Ja, genau. LAUREN CARVALHOS: Der Schrägstrich Schrägstrich ist für einzeilige Kommentare. LUCAS FREITAS: Zum Beispiel, hier haben wir - lassen Sie mich es zu vergrößern - zum Beispiel, hier bin ich über die Vereinbarkeit eines float, aber vielleicht, wenn du lediglich diese im Code, wie Sie keine Ahnung was dieser tut, wie eigentlich jemand, der an diesem Code sein wird, wie, was die Teufel ist hier los? Wenn Sie einen Kommentar zu sagen "convert setzen Fahrenheit in Celsius, viel macht es mehr Sinn. Sie sind, wie, OK, du bist dabei eine Konvertierung. Heißt das Sinn? So ist es nur etwas, das Menschen hilft Code bereit und machen auch Sie in der Lage sein, um die Organisation Ihr Code besser. Die zweite Sache ist, dass Sie tun können mehrzeiligen Kommentaren, so haben ein Kommentar für eine Reihe von Linien. Anstatt Schrägstrich Schrägstrich gesetzt, die erste Zeile Kommentare, Schrägstrich Schrägstrich, die zweite Zeile, und so weiter, Sie können die Schrägstrich-Stern verwenden. Die Art und Weise, dass Sie es tun, ist, dass für die erste Zeile des Kommentars, sind Sie gehen, um einen Schrägstrich Stern Stern zu tun, so einfach so. Genau wie hier haben wir den Beginn der ein Programm, können Sie in der Regel setzen, die Sie sind, was das Programm macht, und solche Sachen. Es ist wie eine Art von Kopf für das Programm. Wieder ist es nicht etwas, das ein Compiler wird sich kümmern, aber es ist wichtig für Sie zu wissen, was dieser Programm macht oder für andere Menschen zu wissen, was das Programm tut. So haben Sie Schrägstrich-Sterne-Sterne, und dann die letzte Zeile wollen Sie tun Sterne sind Schrägstrich, um zu schließen dass Kommentar. So dass im Grunde für alle anderen Linien, Sie können einfach schreiben, was auch immer, und diese wird sich alles ignoriert. Und auch, wie Stil, sehen Sie, dass jede der Leitungen einen stern und alle die Sterne ausgerichtet sind. Das sind wichtige Dinge, so dass Ihr Code sieht ziemlich. Klingt gut? Nun Bedingungen. Welche David sagte, wir sollten tatsächlich in den Folien zu setzen, ist, dass wenn Sie jede Art von if-Anweisungen oder jede Art von Bedingungen, sollten Sie geschweifte Klammern verwenden, um zu zeigen, dass das ist, was passieren würde, wenn Sie die Bedingung. Technisch gesehen, wenn Sie eine Erkrankung haben und dann ist die nächste Zeile nur ein Linie, die Sie nicht haben technisch die geschweiften Klammern setzen. Grundsätzlich würde der Compiler verstehen es trotzdem als implizit. Aber für CS50, bitten wir euch zu setzen die geschweiften Klammern nur so, dass Ihre Code ist besser organisiert und besser lesbar. Da dieser Code wird länger, wenn Sie keine geschweiften Klammern und so. Es wird wirklich chaotisch. LAUREN CARVALHOS: Das ist genau David welche nur darauf hingewiesen, in meinem vorherigen Folien. Es funktioniert auf jeden Fall ohne die geschweiften Hosenträger, aber aus stilistischen Gründen wir werden das zu fragen Sie setzen Sie die in. Und wenn Sie mit style50 starten, welche Art der Prüfung ist für 50 Stil, es wird Sie daran erinnern, dies zu tun. LUCAS FREITAS: Und eine andere Sache ist denken Sie daran, die geschweiften Klammern zusammen setzen in jeder Zeile. So können Sie tun, zum Beispiel, l's. Gehen Sie in die nächste Zeile, öffnen Sie die geschweiften Klammer, dann gehen Sie zur nächsten Zeile. Einzug, die vier Räume ist. Dann schreiben Sie was auch immer, dann ein anderer Linie, und schließen Sie die geschweifte Klammer. So sicher sein, dass sowohl die geschweiften Zahnspangen sind in verschiedenen Linien. ZIELGRUPPE: Also, wenn dieser Code hatte wie 10 sonst ifs, sollte dies sein 10 Sätze von Klammern? LUCAS FREITAS: Ja, für jeden von ihnen. Ja. So dass, wenn, sonst, wenn und so weiter. ZIELGRUPPE: Können Sie nicht Tab drücken, um einrücken? LUCAS FREITAS: Wir bitten Sie Jungs zu vier Räume zu verwenden. Einige Texteditoren Registerkarte übersetzen als vier Leerzeichen automatisch. gedit nicht tut, so müssen Sie tun space space space space. Das ist auch etwas, dass einige Programmierer tun, nur Tabs, einige Programmierer tun nur vier Räume, und einige andere Leute auch tun zwei oder drei Räumen. Es ist nur so, dass hier fragen wir euch zu vier Räume zu tun. ZIELGRUPPE: Es gibt fast jeden muss doch einen Weg für gedit zu sein automatisch [unverständlich]. Wie kein [unverständlich] tut. LUCAS FREITAS: Ja. Ich glaube, Sie können gehen Sie zu Einstellungen. ZIELGRUPPE: Er tut schon alles. LUCAS FREITAS: Es tut schon? OK. Also nur sicher sein, dass Sie haben vier Räume. ZIELGRUPPE: Müssen wir das lockige setzen Klammern in for-Schleifen, wie gut? LUCAS FREITAS: Ja. LAUREN CARVALHOS: Wann immer Ihr Verkapselung einen Code-Block, nur benutzen Sie bitte die geschweiften Klammern. Und bevor Sie denken, dass wir gerade sind Sein sticklers über dieses für keinen guten Grund, wenn Sie Jungs gehen zu bekommen, Tech-Praktika bei großen Unternehmen, sie geben Ihnen einen Style Guide und sie werden Ihnen sagen, das ist, was Ihr Code muss so aussehen. Und auch wenn Sie Code wie gelernt diese, vielleicht in Ihrem Praktikum Sie müssen etwas tun völlig anders. Sie erwarten, dass Sie entsprechen ihren Stil. LUCAS FREITAS: Und eine weitere Sache ist, dass Sie bemerken, wie ich habe, wie x, Platz, weniger, Raum, 0? Wann immer Sie einen Operator - es kann wie sein Plus, Minus, Mal, kleiner, größer, was auch immer-Betreiber - Sie einen Platz auf der linken Seite gesetzt haben und der rechten Seite des Operators. LAUREN CARVALHOS: Das sind genannten binären Operanden. So stellen Sie sicher, dass Sie immer Platz Ihre binären Operanden. LUCAS FREITAS: Dies ist keine binäre Operanden. LAUREN CARVALHOS: Das ist weil es zwei. LUCAS FREITAS: Oh, ja. OK, die Schalter. Zuerst müssen Sie sehen, dass genau wie in einer if-oder else-Anweisung, haben Sie um die geschweifte Klammer in einer eigenen Zeile setzen und unter der geschweiften Klammer hier. Beachten Sie, dass es einen einzigen Raum nach dem Einschalten, genau wie in if und else wir hatten einen einzigen Raum zwischen und dass die Klammern. Sie müssen also, dass setzen. Und es gibt keinen Raum direkt nach jeder der Klammern oder vor dem Ende von den Klammern. Sie sehen also, dass es alle zusammen ist, und auch wie hier oben. Ja? LAUREN CARVALHOS: Ich denke, wir müssen weitermachen. LUCAS FREITAS: Also das ist Teil der Style-Guide, den Sie für CS50 haben. Achten Sie darauf, cs50.net/style gehen und nehmen Sie einen Blick auf diese. Das sind alles sehr wichtige für Ihren Stil Partitur. Lassen Sie mich auf die Erklärung zu gehen. LAUREN CARVALHOS: Ich würde eher benutzen Sie einfach style50. Wir sind gerade dabei zu gehen direkt zum Schleifen. Gut. Lassen Sie uns also wieder auf den Inhalt, die jetzt dass wir über die Style-Guide gegangen. Loops, können Sie sie in Scratch gesehen haben, und wir werden über sie sprechen in C. In einer for-Schleife gibt es drei Portionen zu dem Erklärung dieser for-Schleife. Sie haben Ihre Initialisierung bekam die Sie Ihre Variablen gesetzt. Sie haben Ihre Bedingung, die es bekam zu überprüfen, ob etwas wahr oder falsch ist, und ob die Schleife sollte fortgesetzt werden. Und Sie Ihr Update haben, die ist die Aktualisierung Ihrer Variablen. Nehmen wir nur einen kurzen Blick auf einige C-Code für diese Schleife in Aktion. Was ist los hier in der Initialisierung, wir i-Einstellung auf 0 setzen. In dem Zustand, wir prüfen ob i kleiner als 10 ist. Und in dem Update sind wir Erhöhen i. Also, was wird aus führen Diese for-Schleife? LUCAS FREITAS: Eigentlich vor allem, Sie Jungs wissen, was i + + ist? ZIELGRUPPE: um 1 erhöht. LUCAS FREITAS: Erhöhung um 1, ja. Also das ist das gleiche wie Dabei i gleich i plus 1. Und feststellen, dass wir einen Raum nicht zwischen dem i und dem + +. So haben Sie Jungs wissen, was dies zu tun? Kann mir jemand sagen? Und vielleicht bekommen einige Süßigkeiten denn das? ZIELGRUPPE: [unverständlich] LUCAS FREITAS: OK. [Unverständlich] zeig allen, später [unverständlich]. Ja, es geht um "Das zeigen ist CS50 "10 mal. LAUREN CARVALHOS: Ich denke, es war im Titel der Folie. LUCAS FREITAS: Oh, ja. [Gelächter] LUCAS FREITAS: Das hilft. LAUREN CARVALHOS: Also diejenigen, sind für Schleifen. Wir werden einige weitere Beispiele zu sehen von FOR-Schleifen später. Aber lassen Sie tatsächlich einen Blick auf die zweite Art von Schleife Ihnen begegnen in C, und es heißt die while-Schleife. In einer while-Schleife, haben Sie habe gerade einen Zustand. Die Bedingung ist in der geprüft Anfang, und wenn diese Bedingung true ergibt, dann der Code innerhalb der Körper der während der Block ausgeführt wird. Und der Code wird weiterhin ausführen, so lange, daß Bedingung wahr bleibt. Hier ist ein Beispiel für eine while-Schleife in C Wir werden Anzahl auf 10 zu setzen beginnen mit. Solange Zahl größer als 0 ist, wir werden halten Ausdrucken dieser Variable hier. Wir werden Zahl verringern und dann überprüfen Sie den Zustand wieder. Drucken, Senkung Check der Zustand wieder. Hier haben wir ein Beispiel, das betrifft zu Ihrer Frage zuvor. Wir hatten die Prozent s, als wir Ausdrucken einer Schnur, und jetzt, wir Ausdrucken eines int, haben wir ein Prozent i wie unsere Platzhalter statt. Die Buchstaben sollten alle schön sein intuitive, s für string, i für int. Also, wenn dieser Code ausgeführt wird, sollten Sie Countdown von 10 auf 0, Ausdrucken Jede ganze Zahl ist. LUCAS FREITAS: Und Sie denken, der kann Prozent, wie es sich anfühlt, wie eine leere Leerzeichen und Sie setzen diese Variable hier in diesem leeren Raum. So zum Beispiel, hier werde ich nur eine leere, und dann setze ich die zählen, genau dort, die Wert der Zählung. Heißt das Sinn? Könnte ich nur tun, wie printf und dann zitiert, zählen? Würde das funktionieren? ZIELGRUPPE: Nein LUCAS FREITAS: Nein, denn es wird tatsächlich das Wort "count" drucken statt Druck den Wert. Dies ist, wie Sie es die Werte ausdrucken anstatt zu der variablen nur der Name der Variablen. Haben Sie Fragen? ZIELGRUPPE: Warum haben Sie für verwenden als entgegengesetzt zum Verweilen? LAUREN CARVALHOS: Ich würde für eine Verwendung Schleife, wenn ich genau weiß, wie viele Iterationen Ich will meine Schleife zu laufen. In diesem Fall ist es nicht, weil Rolle spielt, Ich meine, ich versuche nur, denken Sie an eine wirklich einfache Beispiel für diese Folie. Aber lassen Sie uns sagen, dass Sie etwas wollen weiter zu machen, während - LUCAS FREITAS: Zum Beispiel, Sie sind fragen für die Eingabe, bis die Person gibt Ihnen das Recht Eingang. So wie während der Eingabe nicht OK, halten Sie darum zu bitten. Oder wie während Sie Eltern geben nicht Sie Geld, immer wieder zu fragen für sie. [Gelächter] LAUREN CARVALHOS: Sie wissen nicht, wie oft müssen Sie es tun. LUCAS FREITAS: Weil Sie nicht wissen, wie oft das ist, gehen, um weiterzumachen. LAUREN CARVALHOS: Aber in einer for-Schleife Sie müssen wissen, wie viele Male. Ja? ZIELGRUPPE: Nur um zu klären, ist der Prozent sagt, das ist etwas über den geschehen, die ich für das ganze Zahl ist, und der Backslash n - LAUREN CARVALHOS: Die Mittel? Wer weiß, was der Backslash n bedeutet? Neue Linie, ja. Genau. LUCAS FREITAS: Sie können denken von n als neue Zeile. LAUREN CARVALHOS: Nice. PUBLIKUM: Was ist das Zahl dash dash [unverständlich]? LUCAS FREITAS: Count minus minus ist das gleiche wie plus plus, aber anstatt zuzunehmen, es ist ein Rückgang um 1. LAUREN CARVALHOS: Jede mehr while-Schleife Fragen? Nein? Oh, wir wurden zu angeblich übersprungen haben, dass. Dies ist eine do while-Schleife. Sehr ähnlich wie eine while-Schleife mit Ausnahme In diesem Fall prüfen wir den Zustand nach Der Code in den Körper des Schleife einmal ausgeführt. Den Code, so führen wir ersten, egal was. Dann prüfen wir die Bedingung, führen es wieder, wenn die Bedingung erfüllt ist. Sie werden sich selbst zu finden, wenn diese mit Sie für die Benutzereingabe fragen. Weil du immer zu haben, um frage einmal, und dann je nachdem, was die Benutzereingabe, die Sie vielleicht haben Erneut auffordern und fragen immer wieder, wenn der Eingang war nicht das, was Sie es erwartet. ZIELGRUPPE: Also, es ist wie eine Form für die Menschen zu füllen. LAUREN CARVALHOS: Ja, genau. Sie finden, denke ich, in Ihrem ersten Pset, Sie gehen zu müssen sind verwenden Sie eine gut do-Schleife zu sammeln Eingabe von dem Benutzer. ZIELGRUPPE: Je nach Situation, Ihre while-Schleifen wird dazu neigen, mehr laufen oft als while-Schleifen, wie von einem, oder was? LAUREN CARVALHOS: Wenn es die genaue - LUCAS FREITAS: Sie sollten immer laufen die genaue Höhe der Zeit, dass Sie wollen, dass es zu laufen. Wie wir tun, während, weil wir wirklich wollte die Eingangs mindestens einmal zu erhalten. In while-Schleifen, manchmal wollen Sie nicht um ihn auszuführen, wenn überhaupt, es ist nicht der Fall auszuführen. Es hängt also von der Konstruktion. Ich meine, Sie können entweder tun, während oder während, solange Ihr Code macht, dass es tun soll. LAUREN CARVALHOS: Aber ich denke, die Antwort auf Ihre Frage ist wahrscheinlich ja. Nehmen wir an, der Zustand war falsch. In einem Fall wäre es einmal ausgeführt, und ein anderer Fall wäre es null mal laufen. Also, ja. Haben Sie weitere Fragen? Ja? ZIELGRUPPE: Können die Schleifenbedingung ein for-Schleife in Form einer anderen Variablen als [unverständlich]. LAUREN CARVALHOS: Ja, es kann alles sein. Wahrscheinlich aus den Anfangs Psets Sie nicht haben, um diesen Fall zu begegnen, aber auf jeden Fall kann es alles sein. LUCAS FREITAS: Ich denke, wir sind hier fertig. LAUREN CARVALHOS: Sind wir? Nein? LUCAS FREITAS: Loops? Ja. LAUREN CARVALHOS: Wir sollten nicht sein. Oh, sind wir mit Schlaufen getan. OK. Eigentlich, denn wir haben gesprochen, so viel, lass uns eigentlich alle navigieren über study.cs50.net/conditions. Und Sie gehen nach unten zu navigieren sind um die Probleme Widget. Na ja, eigentlich, während die Menschen immer diese Einrichtung ist der CS50-Studie gehen, um ein Werkzeug, das Ihre TFS sein verwenden, um für die Abschnitte und die Vorbereitung euch verwenden können, wenn Sie vermissen Abschnitte. Es wird eine Reihe von Folien enthalten, einige Tipps und Tricks für jeden Thema, und einige Probleme der Praxis Lösungen. Warum nicht jeder nur einen Blick zu diesem Problem finden Sie hier. Es tut mir leid, sollte ich daran erinnert haben Menschen auf Laptops heute zu bringen. Aber wenn Sie nicht über ein Laptop, das ist OK. Sie können einfach notieren Sie diese nach unten auf ein Stück Papier oder schauen über Ihr Nachbar Schulter. Lassen Sie uns versuchen, ein Programm zu schreiben, dass den Benutzer auffordert, eine Vermutung zu nehmen, die durchschnittliche Zahl der Kinder pro Familie Einheit in den Vereinigten Staaten. Diese Zahl ist 2, durch die Art, wie Sie aus diesen Beispielen zu sehen. Wir wollen ausdrucken durchschnittliche Anzahl der Kinder pro Familie in den USA, dann werden wir wollen, was? Wir wollen den Eingangs sammeln von dem Benutzer. Und dann je nach Wunsch des Benutzers Eingang ist, wirst du zum Ausdrucken entweder dies richtig ist oder das ist falsch. Und das erste, was, die Sie Sehen Sie, wenn Sie auf den kleinen Pfeil klicken Sie auf der Grund des Problems ist ein Widget vor Ort zu notieren einige Pseudocode. So sind Sie noch nicht programmieren. Du bist einfach immer Ihre Ideen in Ordnung. Hat jemand Lucas helfen wollen kommen mit der rechten Pseudocode für dieses Problem? LUCAS FREITAS: Was ist das erste, was dass wir hier wohl zu tun? Was denkt ihr? ZIELGRUPPE: [unverständlich] LUCAS FREITAS: Ja, OK. Also, drucken. Einfach sagen, der Druck diesen Durchschnitt Zahl der Menschen? OK. Drucken Frage, sagen wir. Nachdem ich diese Frage zu drucken, was soll ich tun? ZIELGRUPPE: Get-Eingang. LUCAS FREITAS: Get-Eingang. Sonst noch was? ZIELGRUPPE: Zustand. LUCAS FREITAS: Zustand. LAUREN CARVALHOS: Was ist das Bedingung sein wird? ZIELGRUPPE: Die Anzahl der [unverständlich]. LAUREN CARVALHOS: Richtig. LUCAS FREITAS: Also was soll ich in dem Zustand zu überprüfen? ZIELGRUPPE: Wenn es gleich 2 ist. LAUREN CARVALHOS: Wenn es gleich 2 ist. Genau. LUCAS FREITAS: Gibt es etwas anderes, das ich tun soll? ZIELGRUPPE: Count. LUCAS FREITAS: Also, wenn es gleich 2 ist, sagen wir mal - lassen Sie mich nur schreiben, wenn Eingang gleich auf 2, dann, was ich zu tun ist, Druck richtig. Und dann anders, ich werde zu drucken korrekt. Sonst noch was? Nein? LAUREN CARVALHOS: Sie - klicken Sie auf der nicht jeder hat es nach unten? LUCAS FREITAS: Ist es sinnvoll? So, jetzt wollen wir versuchen, diese zu kodieren. LAUREN CARVALHOS: Wenn Sie auf die kleinen arrow, es tatsächlich spart Pseudocode, die wirklich spannend ist. Und Sie können die Kommentare zu machen, wenn Sie nur um sich selbst daran erinnern wollen was zu tun ist. LUCAS FREITAS: So zum Beispiel, erste Ich werde die Frage zu drucken, so wie soll ich das tun, eigentlich? printf. So printf, und die Frage ist durchschnittlich Zahl der Kinder pro Familie in den USA. Dann werde ich bekommen Eingabe von dem Benutzer. Also, wie kann ich das tun? ZIELGRUPPE: Holen Int. LAUREN CARVALHOS: GetInt. LUCAS FREITAS: OK. Also zuerst erklären, oder? int, nennen wir es n gleich GetInt. Und nun der Zustand. Also lassen Sie mich sagen, dass ich gehe Kontroll Antwort. Also erstens, wenn der Eingang, die n, gleich zu - wie soll ich das schreiben? ZIELGRUPPE: Gleich gleich. LUCAS FREITAS: Perfect. So n. Und feststellen, dass ich einen Raum zu tun, gleich, gleich, Raum, wahr. Und jetzt, was soll ich tun? Etwas für Stil sehr wichtig. Die geschweiften Klammern. Und dann werde ich drucken. Wie kann ich drucken? printf. ZIELGRUPPE: Könnte es zu aktivieren? LUCAS FREITAS: Nein Es soll alle Kleinbuchstaben geschrieben werden. So, dass ist richtig. Würde dies ausreichen für die printf Aussage, oder bin ich etwas fehlt? ZIELGRUPPE: Neue Linie. LUCAS FREITAS: Neue Linie, ja. Und jetzt anderes. ZIELGRUPPE: Gibt es ein Raum nach der printf, oder nein? LAUREN CARVALHOS: Wir sollten überprüfen Sie die Style-Guide. ZIELGRUPPE: Es sollte nicht sein. LUCAS FREITAS: Sollte nicht sein, OK. So anderes, printf "Das ist falsch." LAUREN CARVALHOS: Hoppla, Ihre Angebote. LUCAS FREITAS: OK. Sonst noch was? Ist es gut aussehen? LAUREN CARVALHOS: Sollen wir es versuchen? LUCAS FREITAS: Ja, wir führen Sie es. So ist es der Zusammenstellung, und es scheint, dass es funktioniert. Lassen Sie uns versuchen zwei Kinder. Das ist richtig. Und nun wieder zu laufen, aber jetzt statt der Umsetzung zwei Kinder, lasst uns sagen, dass ich werde wie fünf gesetzt. Das ist nicht korrekt. So scheint es, dass es funktioniert. LAUREN CARVALHOS: Warum nicht Sie ihnen zu zeigen, was passiert, wenn Sie etwas setzen seltsam, wie einige Buchstaben. LUCAS FREITAS: Oh, ja. Lassen Sie uns auch, dass. Was ist, wenn der Benutzer zu verwirren versuchen mit Ihrem Programm, und sie nur schreiben, weiß ich nicht zwei. Es wird Wiederholungs sagen. LAUREN CARVALHOS: Also GetInt fragt sie erneut zu versuchen. Wir haben nicht zu kümmern der, dass wir uns. LUCAS FREITAS: Ja. Also, wenn ich tatsächlich legte eine Reihe, ist es gehen, um mich zu bitten, erneut zu versuchen. ZIELGRUPPE: Wie haben Sie es laufen? LUCAS FREITAS: Klicken Sie einfach auf dieser Stern-Taste. LAUREN CARVALHOS: Sie sollten gehen. Dort gehen Sie. LUCAS FREITAS: Der Stern Taste recht. Ja? ZIELGRUPPE: Macht es prompt [unverständlich] mit Dezimalzahlen auch? LAUREN CARVALHOS: Ich glaube, es wird. LUCAS FREITAS: Wenn es das tut, was? LAUREN CARVALHOS: Wenn sie geben in eine Dezimalzahl, denke ich, es wird aufgefordert. LUCAS FREITAS: Mal sehen. LAUREN CARVALHOS: Weil es ist nicht eine int. LUCAS FREITAS: Ja. LAUREN CARVALHOS: Also es ist nicht eine int, Lass Int wird Sie bitten, zu wiederholen. ZIELGRUPPE: Also, wo in diesem Code wäre die Kommastelle, die die Anweisungen Benutzer, die sie zu geben haben eine ganze Zahl konkret? LAUREN CARVALHOS: GetInt ist eigentlich tun, dass für uns. ZIELGRUPPE: Nein, ich meine, wenn wir wollten, , um [unverständlich] LUCAS FREITAS: Sie können sagen, wie durchschnittliche Zahl der Kinder in den USA. Ich weiß nicht. Wir können zum Beispiel sagen: "Bitte, Eingangs eine ganze Zahl ". LAUREN CARVALHOS: Eine ganze Zahl gleich die durchschnittliche Anzahl. Ich meine, es ist nur, wie Sie Wort, oder? LUCAS FREITAS: Ja. Dies ist nicht Teil des tatsächlich Codierung. Es ist mehr wie was auch immer Sie gehen zu wollen sind schreiben Sie in Ihrem Programm. ZIELGRUPPE: Wie würden wir es laufen, wenn es war eigentlich in gedit [unverständlich]. Anstatt die Tasten spielen? LUCAS FREITAS: Wir werden ersten kompilieren. Wir können es tun, indem Sie make und der Name der Datei. Und dann, um sie auszuführen, werden wir tun dot Schrägstrich und der Name des Programms. ZIELGRUPPE: Ich denke, was ich meinte, war, wenn wir wollten das Programm zu reagieren ihre falsche, ungültige Eingabe, Sie sollten nicht in gesetzt - LUCAS FREITAS: Wir werden nicht in der Lage zu sein, tun, weil der Code, das sagt Wiederholung kommt von Get Int ist das ein Funktion, die bereits umgesetzt wird für uns über den CS50-Bibliothek, und da es ist schon umgesetzt, wir kann nicht nur [unverständlich]. LAUREN CARVALHOS: Wenn Sie nicht verwenden GetInt, dann können Sie das tun. LUCAS FREITAS: Ja. Aber wenn Sie mit GetInt sind, können Sie nicht. Noch Fragen? ZIELGRUPPE: Können Sie mit Gleich gegangen GetFloat und dann in der Lage zu setzen es in eine Dezimalzahl? LUCAS FREITAS: Ja. ZIELGRUPPE: OK. Dann müssen Sie nur konnte Eingangs schweben A gleich - LAUREN CARVALHOS: Ja. Genau das gleiche, außer ein schweben statt eines int. LUCAS FREITAS: Setzen Sie ihn einfach hier und dann GetFloat dort. ZIELGRUPPE: Wie du willst sehen oder gesehen haben - LAUREN CARVALHOS: wir haben es noch nicht gekommen. ZIELGRUPPE: - Ungleichheit zu tun mit Schwimmer nicht [unverständlich] PUBLIKUM: Was haben die Semikolons das? LAUREN CARVALHOS: Das Semikolon nur bedeutet, dass diese Aussage abgeschlossen ist, und wir werden gehen auf der nächsten Folie. ZIELGRUPPE: Also es ist notwendig jedes Mal? LAUREN CARVALHOS: Ja. Gut, OK, also nicht für diese Bedingungen, weil sie Verkapselung etwas. Also im Grunde, wenn etwas verursacht Sie dann eine geschweifte Klammer Block, setzen Sie nicht ein Semikolon am Ende. LUCAS FREITAS: Aber alles, was anderes, ja. Wenn Sie eine Erklärung zu beenden, legte das Semikolon. Und wenn Sie ein Semikolon vergessen, die Compiler geht wütend auf dich zu bekommen, und Sie gehen zu müssen, sind zu versuchen, es zu beheben. LAUREN CARVALHOS: Wenn ich ein Semikolon hier, das wäre dies zu stoppen, und ich würde nie ausgeführt, was innen, übrigens. So ist es einer dieser gemeinsamen Fehler. ZIELGRUPPE: Immer Ausführung. LAUREN CARVALHOS: Ja. In diesem Fall würden wir immer ausführen, was drin ist. ZIELGRUPPE: Ihr Stil [unverständlich] befestigen, dass für Sie, dachte. LAUREN CARVALHOS: Oh, das ist wahr. ZIELGRUPPE: [unverständlich] Einzel Linie Sache [unverständlich] ZIELGRUPPE: Ja? ZIELGRUPPE: Können Sie über mehrere Eingänge in einer Linie? So wie können Sie Benutzer fragen zwei Dinge zu drucken? LAUREN CARVALHOS: Nicht mit - LUCAS FREITAS: Nein Lassen Sie uns sagen, dass ich auch dieses ganze Zahl m zu bekommen. Ich muss es in einer anderen Linie zu tun. ZIELGRUPPE: Wenn Sie zu laufen waren dass, wie [unverständlich]? Es würde die Aufforderung drucken es [unverständlich] und dann würden Sie ein und geben Sie - LAUREN CARVALHOS: Na ja, führen Sie es aus. Ich meine, es gibt nichts hindert uns daran, nur läuft es und sehen, was passieren würde. LUCAS FREITAS: Ich denke, es ist werde klagt uns an weil wir sie nicht verwenden - LAUREN CARVALHOS: Oops. LUCAS FREITAS: Es beschwerten uns Recht jetzt, weil wir nicht mit diesem variabel, aber wenn ich zum Beispiel n ist gleich zu gleich, und m gleich ist gleich, was wird dann passiert in diesem Fall? Was würde das Programm? ZIELGRUPPE: Ich frage mich nur, wie wäre es - LAUREN CARVALHOS: Sie will nur zu wissen, wie es aussieht wie, glaube ich, richtig? So dauerte es einer von ihnen, und dann es nahm den zweiten. Ich denke, dass wir uns bewegen sollten, denn wir haben noch eine Dia-Show zu gehen, bevor - Sie Mathe hochziehen wollen? LUCAS FREITAS: Ja, Mathematik. LAUREN CARVALHOS: Geben mich nur eine Sekunde. Es gibt ein paar verschiedene numerische Variablen in C Numerische Daten in C lassen sich in verschiedene Typen eingeteilt werden, und das sind die, die Sie werde siehe die am häufigsten. Und INT eine ganze Zahl ist. Sie können keine Dezimalzahlen. In der Appliance, dauert es 32 Bit auf einen int zu speichern. Ein Schwimmer kann Dezimalstellen. Es nimmt auch 32 Bits zu speichern ein Schwimmer in der Appliance. Ein Doppel eine Zahl mit einem Dezimalpunkt Punkt, der 64 Bit zu speichern dauert, was bedeutet, dass Sie nur können höhere Präzision, weil Sie können mehr haben - was tun Sie es nennen? LUCAS FREITAS: Ja, das ist mehr. LAUREN CARVALHOS: Mehr Plätze nach dem Komma. Und eine lange, lange eine ganze Zahl das dauert 64 Bits Hals es in der Appliance. LUCAS FREITAS: Also es sein kann größer als ints kann. LAUREN CARVALHOS: Die Sache mit Daten Typen in C ist, dass sie sagen, was Art der Daten, die Sie speichern können in der Variable. Sie sagen Ihnen, wie Sie diese nutzen Variable in Ihrem Programm. Es ist sehr wichtig, um nur den Überblick von welchen Datentyp Sie verwenden, und wenn Sie brauchen, um von einem Datentyp umgewandelt zum anderen, stellen Sie sicher, dass Sie wissen, genau das, was passiert, wenn die Gießen stattfindet. Und Sie werden später sehen, ein Beispiel auf in diesen Folien ein Fehler, die auftreten können. Werfen wir einen Blick auf einige Mathematik in C und Glaubst du wirklich vorsichtig, ich denke, über das, was los ist, wenn dieser Mathematik statt. In der ersten Zeile, was ist passiert, wenn ich erkläre x? ZIELGRUPPE: Sie ermöglicht x, etwas zu sein? LAUREN CARVALHOS: Ja. Nun, ich bin wirklich fragen, das Betriebs System für 32 Bit Speicher, oder? In dem ich einen int zu speichern, und Ich werde diesen int x nennen. LUCAS FREITAS: Grundsätzlich geht im Speicher und die Suche nach einem Ort, der 32 Bits und Sprichwort, hey, ich will diesen Raum, und es wird genannt x werden. Sie sind also nur ziemlich Befund eine Box in Erinnerung zu Shop Werte für x. LAUREN CARVALHOS: Und dann initialisieren I x, was bedeutet, dass ich nur das speichern Wert von 2 an diesem Ort, diesem Stück der Erinnerung, dass wir gefragt, Betriebs System zum. Und hier unten, was wir tun, ist wir wirklich zu erklären und zu Initialisierung y in einer Zeile statt in zwei Linien, wie wir hier oben, die auch ein völlig in Ordnung ist, sind wir Zugabe von 1 bis x, und wir speichern, dass Wert y. LUCAS FREITAS: Also im Grunde, was dieser Linie tut, er findet jetzt ein Feld für y, und dann seinen Wert, die Sache, die wirst du in die Schachtel gelegt sind, dann ist werde der Wert von x plus 1 sein. So hat sie dieses Feld für y. Es wird der Wert von x, sieht hier, und sehen, dass es zwei. Setzen Sie es dort, plus 1, so bringt es eine 3 gibt. Heißt das Sinn? So würde y 2 in diesem Fall. LAUREN CARVALHOS: Okay, cool. Wir sahen einige zusätzlich, also lasst uns jetzt denken, über Teilung in C. Hier bin ich Deklaration und Initialisierung eines Schwimmers Antwort genannt und Division 1 um 10, und dann werde ich den Ausdruck der Antwort auf zwei Dezimalstellen. Und beachten Sie, hier, in meinem printf-Anweisung wenn ich etwas drucken zu zwei Dezimalstellen ist% .2 f was ich verwenden möchte. So ist der Punkt 2 ist einfach nur sagen, Ich brauche zwei Stellen nach dem Dezimal ausgedruckt. Nun, was wird passieren wenn ich diesen Code ausführen? Hat jemand eine Idee? Was wäre ausdrucken? LUCAS FREITAS: Was sind Wir erwarten zu bekommen. LAUREN CARVALHOS: Was tun wir wollen, erste von allen? LUCAS FREITAS: [unverständlich] LAUREN CARVALHOS: 0.1, ja. Aber was wird ausdrucken? ZIELGRUPPE: [unverständlich] LAUREN CARVALHOS: Nun, nein, eigentlich. Dies ist, was ich rede, warum Sie müssen sehr vorsichtig verfolgen Ihre Datentypen. Also, welche Datentyp ist das? Ein int, oder? Es gibt keine Dezimalstelle. 10 ist auch ein int. Es gibt keine Dezimalstelle. Wenn ich teilen ein int durch einen int, bekomme ich eine int, die nicht 0.1 ist, da ints können nicht Dezimalstellen, sondern nur 0. Da ein int nur kürzt von den Nachkommastellen. LUCAS FREITAS: Also, wann immer Sie tun Operationen mit Ganzzahlen, wirst du bekommen einen int als Antwort. Also im Grunde, was der Computer tut, ist es teilt 1 durch 10, und es wird 0.1. Aber dann ist es wie, warte, das ist soll eine ganze Zahl sein, so dass Sie nur ignorieren die 0,1, so ist es jetzt nur noch 0. LAUREN CARVALHOS: Also, wenn ich diese ausdrucken aus, bekomme ich 0,00 statt 0,10. LUCAS FREITAS: Bedeutet das Sinn? LAUREN CARVALHOS: Das ist irgendwie von unglücklichen, nicht wahr? LUCAS FREITAS: Wie können wir dieses Problem beheben? LAUREN CARVALHOS: Lassen Sie uns versuchen und fixieren, dass. Hier ist ein Beispiel, wo ich bin tatsächlich Gießen der 1 und die 10 bis schwimmt. So, jetzt ist ein nicht mehr ein int. 1 ist ein Schwimmer. Übrigens, das ist nur die Syntax für, wenn Sie von einem Guss wollen Datentyp in einen anderen. Sie können einfach den Datentyp in Klammern und haben, dass, nur vorangehen der Wert, der für Guss sind. So, hier bin ich Teilen eines Schwimmers durch ein Schwimmer, ein Schwimmer Antwort zu bekommen. Und ja, würde dies in Tatsache drucken 0,10. Heißt das Sinn? LUCAS FREITAS: Also Typumwandlung ist nur Umwandeln von einem Typ zum anderen. So schweben 1 ist eigentlich 1.000. Nicht genau das, aber es ist etwas, mit Nachkommastellen das ist eigentlich ein. Heißt das Sinn? Ja? PUBLIKUM: Was, wenn Sie float Antwort haben gleich 1,0 geteilt durch 10? LAUREN CARVALHOS: Sie sind eigentlich los zu, dass in der nächsten Folie sehen. Das ist eigentlich unsere nächsten Folie. Dies ist eigentlich ein schöner, als Typumwandlungen, denke ich. So sind diese beiden Schwimmer nur durch Natur der Tatsache, dass sie haben Dezimalstellen. Ja? PUBLIKUM: Was, wenn Sie getan haben [unverständlich] geteilt durch 10? LAUREN CARVALHOS: Eigentlich ein Schwimmer geteilt durch einen int tatsächlich gibt Ihnen ein schweben, so dass würde gut funktionieren. Bitte warten, hat jeder das verstehen? Denn das wird ein wirklich sein große Sache in Pset1, eigentlich. Ja? ZIELGRUPPE: Könnten Sie mal eben schnell gehen über den roten Teil? LAUREN CARVALHOS: Der rote Teil, ja. Lucas, willst du? LUCAS FREITAS: OK. Also denken Sie daran, dass die prozentuale ist ein Platzhalter. Es ist wie ein Leerzeichen. Lassen Sie uns also versuchen, alles zu verstehen, dass hier vor sich geht. Prozent bedeutet, dass es ein Platzhalter. Dann die f, was bedeutet, dass müssen Sie Diese Platzhalter ist für einen Schwimmer. Das letzte, was wir hier haben, ist eine 0,2, was bedeutet, möchte ich zwei haben Dezimalstellen für die Schwimmer. Wenn ich nur% f, sie wird gestellt ein Haufen von Dezimalstellen. So kann ich gerade auf 0,2 oder 0,1 oder 0,5 oder was auch immer, und es geht zu legen, dass Anzahl der Dezimalstellen. Die einzige Sache ist, dass, wenn Sie wie setzen .100 Oder .1,000, ist es eigentlich nicht gehen, um all die Dezimalstellen setzen weil es nicht genügend Speicher zu haben, dass die Präzision. Noch Fragen? Ja? ZIELGRUPPE: Also schweben nur erlaubt Sie über Zahlen gehen? LUCAS FREITAS: Ja. LAUREN CARVALHOS: Nun, ein Schwimmer nur können Sie die Dezimalstellen haben. LUCAS FREITAS: Es bedeutet nur, dass Sie jetzt können Dezimalzahlen haben. ZIELGRUPPE: Warum würden wir immer ganze Zahlen verwenden? LUCAS FREITAS: Warum sollte Zahlen Sie benutzen? Vielleicht, wenn du von 0 zu zählen sind bis 10, Sie tatsächlich eine ganze Zahl verwenden möchten. Sie brauchen nicht auf einen Schwimmer zu verwenden. In einigen Situationen können Sie nicht tun, haben, um tatsächlich - LAUREN CARVALHOS: Vielleicht wollen nicht Dezimalstellen. LUCAS FREITAS: Vielleicht haben Sie nicht tun wollen ein Schwimmer zu verwenden. LAUREN CARVALHOS: Die andere Sache ist, denken Sie daran, beide setzen einen Schwimmer und einen int nehmen 32 Bit um sie zu speichern, und vielleicht Sie wollen nicht, um Bits auf die Abfall Dezimalstellen. LUCAS FREITAS: Ja. So wie, nur darüber nachzudenken. Sie haben 32 Bit für beide ein int und ein Schwimmer. Für einen int, all diese 32 Bit Sie auf der Integer-Teil. Wenn Sie einen Schwimmer mit 32 Bit, die Sie verwenden haben Teil dieser Speicher verwendet für die Anzahl, für die ganze Zahl, und der andere Teil für die verwendete Dezimalstellen. Das heißt also, dass man nicht zu bekommen sehr große Zahlen mit Schwimmern, weil der Schwimmer ist schon mit viel Speicher für die Dezimalstellen. Ja? PUBLIKUM: Das erste Antwort, was genau tut sie? Ist es, den Wert der Schwimmer gleich zu dieser Platzhalter, dass man rufen Sie in der nächsten Zeile? Er sagt, schweben Antwort. LUCAS FREITAS: Ja. Das bedeutet also, Schwimmer Antwort Sie bekommen jetzt ein wenig Eimer in den Speicher, hält einen Schwimmer, und das wird Antwort zu nennen. Also das ist, was Schwimmer Antwort tut. Und dann sagen Sie, dass innerhalb von dies, Sie gehen zu setzen sind Dies hat zur Folge. So wirst du tun, geteilt durch 1,0 sind 10,0, erhalten Sie 0,1, und dann setzen dass innerhalb der Antwort. LAUREN CARVALHOS: Also in einer Linie, wir sind Deklaration und Initialisierung dieses Schwimmer genannte Antwort. LUCAS FREITAS: Interessant ist, obwohl dies ist nur eine Zeile, es zu tun mehrere Operationen. Es ist nur ein Weg von C Vermietungs Sie weniger Code zu verwenden. Es ist die gleiche Sache wie dem ternären Betreiber, wie können Sie nur tun, ein [Unverständlich] in einer Zeile. Es ist eigentlich das gleiche tun wie Dabei Schwimmer Antwort, Semikolon, und dann entspricht dieser Antwort, aber statt machen Sie zwei Leitungen für das zu tun, es ist wie eine Verknüpfung. Ja? ZIELGRUPPE: Also, wenn Sie diese lief, es 0,10 sein? LUCAS FREITAS: Ja. Ja? ZIELGRUPPE: Ist eigentlich beantworten Code, oder ist es nur der Name? LAUREN CARVALHOS: Dieses ist eigentlich Code. Dies ist, was wir unsere variable nennen. ZIELGRUPPE: So ist es nur ein Name [unverständlich]. LAUREN CARVALHOS: Ja. Ich hätte sagen können: float x gleich 1,0. LUCAS FREITAS: Die Sache ist die, dass Der Name der Variablen ist etwas, das Sie verwenden. Es ist wichtig für Sie. Für das eigentliche Programm, das einzige, was was zählt ist der Wert, den Sie haben innerhalb der Schaufel. Der Grund, warum Sie Variablen und Namen von Variablen ist, so würden Sie wissen, was Sie zu, wie den Umgang welche Art von Daten Sie Zugreifen zu einer Zeit. Aber für den Code selbst, wenn Sie anrufen es oder eine Frage oder etwas zu beantworten, ziemlich viel, ist es egal. Es spielt keine Rolle. Solange Sie konsequent in jeder sind Vorkommen und es so Sie es nennen etwas anderes. Ja? ZIELGRUPPE: Haben die Variablen gehen über die Funktion? Wie, wenn Sie auf eine Konsole zu erstellen waren [Unverständlich], könnten Sie nur [Unverständlich] erneut beantworten? LAUREN CARVALHOS: Nein ZIELGRUPPE: [unverständlich] LAUREN CARVALHOS: Nein Das wäre außerhalb des Anwendungsbereichs sein dieses bestimmte Variable. Und eigentlich ist diese Art von interessant, weil, wenn wir Dinge wie Schleifen oder wenn diese Bedingungen, wenn Sie eine Variable deklarieren in einem anderen Satz von geschweiften Klammern, es wirklich existiert nur innerhalb dieser geschweiften Klammern. ZIELGRUPPE: Eine letzte Notiz die Schwimmer [unverständlich]. Warum würden Sie schon immer einmal ints benutzen? Dies ist eher eine Randnotiz, als nichts, aber Ihr Computer deutlich besser im Umgang mit ints als es bei Handhabung schwimmt. Es ist wie eine Reihenfolge der Größenordnung schneller. Also, wenn wir einfach nur behandelt schwimmt, Dinge wäre viel langsamer sein. LAUREN CARVALHOS: Eigentlich scheint es ein Problem mit Schwimmern sein. LUCAS FREITAS: Kind der Grund für dass Sie denken können, ist, wie im binären Sie können ganze Zahlen darstellen indem 0 und 1 ist. LAUREN CARVALHOS: Das ist die nächste Sache. LUCAS FREITAS: OK. Ehrfürchtig. LAUREN CARVALHOS: Just Halten Sie diesen Gedanken. LUCAS FREITAS: OK, ich werde tell you later. LAUREN CARVALHOS: Bevor wir auf das, was kommen Lucas sagte gerade, Betreiber Vorrang. Das ist nur vernünftig. Sie haben diese Jungs genug getan. Also, nur wenn etwas in Klammern, es zuerst geschehen. Es ist die Multiplikation Vorrang über hinaus Subtraktion, solche Dinge. Also eigentlich, nur nicht jeder will sagen Sie mir, welche Zahl man eigentlich ausgewertet? ZUSCHAUER: 27. LAUREN CARVALHOS: 27? Ja. LUCAS FREITAS: Lassen Sie mich Bonbons für die Menschen. LAUREN CARVALHOS: In Ordnung. Was ist die Nummer zwei? Was ist die Nummer zwei? ZUSCHAUER: 22. LAUREN CARVALHOS: 22, ja. Ich weiß nicht, wer das denn. Nummer drei? ZUSCHAUER: 10. LAUREN CARVALHOS: 10, ja. Kühl. So Modulo. Lucas, willst du Modulo erklären? LUCAS FREITAS: Modulo ist dieser Operator das ist tatsächlich sehr nützlich für eine Haufen von Problemen. Wenn ich 55 Modulo 10, was sie tut dies sagen wir mal, dass ich 55 von 10 unterteilen. Was bekomme ich? Es fühlt sich an wie wenn ich mich eigentlich nur tun, die Teilung, was ist das erste Mal, dass ich die ganze Zahl? ZIELGRUPPE: 5. LUCAS FREITAS: 5. Und dann der Rest 5, oder? So ist es wie 5 mal 10 plus 5. Im Grunde, was Modulo hat, versucht er, teilen diese Zahl durch diesen einen, und es sieht, was der Rest der Division. LAUREN CARVALHOS: So ist es nur gibt den Rest zurück. Also die Nummer eins ist was? 5. Nummer zwei? ZIELGRUPPE: 3. LAUREN CARVALHOS: 3. Nummer drei? 0. Und vier 1 ist. Genau. LUCAS FREITAS: Einfach, oder? LAUREN CARVALHOS: Warum gehen wir nicht überspringen diese nur weil wir haben nicht wirklich Zeit, und die Menschen scheinen zu verstehen. Also hier ist was Lucas war nur darüber zu reden. LUCAS FREITAS: Ein weiterer Grund, warum ich würde ints statt Schwimmer verwenden dass Schwimmer sind sehr ungenau. Und warum sind sie ungenau? David sagte, dass für eine ganze Zahl, zum Beispiel verwenden wir 0 und 1 ist, oder? Und dann haben Sie im Grunde tun die Multiplikation, tun alle, die Operationen zu wissen, was Dezimalzahl Sie anstelle des binären haben. Was passiert jetzt, wenn ich versuche, Dezimalstellen zu setzen? Tatsächlich, zum Beispiel, wenn ich die Zahl 3,33333 wie? Es fühlt sich wie 10 über 3. Wie werde ich speichern alle 3 ist, dass ich danach? Es ist wirklich schwer, oder? Man kann nicht einfach sagen dem Computer, hey, ich habe eine 3 und dann sind Sie, dass für immer tun. Eigentlich ist der Computer nicht Smart genug. Also im Grunde alle Ihre Computer tut, ist , dass er versucht, so viele Ziffern wie setzen Es kann bis auf den Speicher, die Sie haben. Also sagen wir mal, dass es sich auf 3.3333 sagen, und das ist es. So ist es nicht in der Lage, tatsächlich zum Ausdruck bringen genau das, was die Schwimmer ist. LAUREN CARVALHOS: Wir haben eine endliche Anzahl von Bits, was bedeutet, dass nicht jede Dezimalzahl sein wird in der Lage, genau dargestellt werden. Und so dass in diesem Beispiel, wenn wir Ausdrucken von 0,1 sind wir jetzt Druck aus 20 Orten. LUCAS FREITAS: Genau wie ich erzählte Jungs, könnten Sie eine beliebige Anzahl setzen. Aber wenn du gerade getan hast die beiden Orte, Sie hatte 0,10, aber wenn man 20 Orte, es wird Ihnen ein Bündel zu zeigen, von 's denn das ist, was Sie setzen können im Speicher, oder? Aber genau hier, bis auf die 0, und dann nur ihn ein Reihe von Zufallszahlen. Dies ist eine Art, wie einige - LAUREN CARVALHOS: Das ist, weil wir nicht in der Lage, diese dezimal darstellen genau mit der Zahl der Bits, die wir haben. LUCAS FREITAS: Und dann die Computer ist im Grunde geben Ihnen einen Papierkorb Nummer. Dies ist nicht wirklich die Wert der Anzahl. ZIELGRUPPE: Es ist so nah wie es bekommen kann [unverständlich] mit der [unverständlich]. LAUREN CARVALHOS: Also die Implikation ist, dass, sagen wir, dass anstelle von Sein 0.100014, was auch immer, was, wenn es 0,0999 - gut, OK. Nehmen wir an, dass die tatsächliche Antwort dies war 0,9999999. Das ist sehr nahe bei 1, aber es ist nicht gerade ein. Es ist 0,99999. Das bedeutet, dass, wenn ich Sie, dass 0.999, und ich warf es in einen int, bekomme ich null. Ich habe nicht ein. LUCAS FREITAS: Denn denken Sie daran, Gießen von float nach int, die Sie gerade ignorieren alle Dezimalstellen. Sie ignorieren sie einfach. Es gibt nicht so etwas wie Aufrundung oder läuft ab, wenn Sie typecast. Eigentlich gibt es diese Funktion, die Rundungs ​​tut, was sehr ist wichtig, aber man denke nur, dass, wenn Sie Typisierung tun, es ist nur gehen, um alles zu löschen. Selbst wenn Sie also 0,99999 haben, wird es nur geben, wenn Sie typecast 0 [Unverständlich] eine ganze Zahl. LAUREN CARVALHOS: Also nur wirklich bewusst sein, von Floating-Point Präzision, vor allem, wenn Sie beginnen zu schwimmt in Pset1 verwenden. Aber der Spaziergang durch sollte warnen Sie, dass auch. LUCAS FREITAS: Und eigentlich ist es wirklich hart, zum Beispiel, wenn ich Schwimmer Antwort 1 gleich 1,0 über 10, und dann schweben Antwort 2 entspricht 10,0 auf 100,0. Sie sind die gleiche Zahl, oder? 0,1, oder? 1 über 10 oder 10 über 100. Aber jetzt, wenn ich versuche, die Gleichberechtigung zu sehen, Antwort, wie wenn ein gleich beantworten 2, Vielleicht ist es nicht eigentlich los um die gleiche Sache. So Schwimmer sind so eine Art so. Sie sind wie Gleichheit zu tun.