[Powered by Google Translate] [♪ Buzzing ♪] Also, stellen Ihnen das, was ich auf dem Bildschirm bekam; es ist eines der Instrumente, die wir im Laufe des Sommers entwickelt; es heißt CS50 Spaces, und es ist unsere gemeinsame Kodierung Anwendung dass wir gehen in den Abschnitten zu verwenden. Es ist ziemlich cool. Jemand von euch gesehen haben CS50 Lauf noch? Lassen Sie mich zu ziehen, dass in einer anderen Registerkarte. Run.cs50.net So wenn du gehst zu run.cs50.net, können Sie sehen, das ist ein in Ihrem Browser Weg zur tatsächlich Code - schreiben C-Code, und führen Sie es, so dass es sowohl kompiliert, es läuft, dann gibt die Ausgabe an Sie, so ist dies eine Art coole Art zu experimentieren mit einigen der Code, den David geht über in Vorträgen und wir geben auf dich auf Problem-Sets ohne tatsächlich zu feuern das Gerät. Also, was Spaces funktioniert das anders aus, dass wenn ich wieder zurück in diesem Register Spaces ist CS50 laufen, wie Sie hier sehen, aber wenn wir scrollen und schauen auf der anderen Seite des Fensters Sie sehen das Recht Ich bin die einzige Person in diesem Raum, aber was ich zu tun ist, fragen euch, diesen Raum mit mir zu kommen und wir alle, Code in der gleichen kleinen Fenster, Aktien-Code miteinander, und über die Unterschiede zwischen unseren Code zu sprechen. Es ist also eine Art coole Sache - so zu verbinden, wenn Sie diesen Link hier besuchen möchten an der Spitze dass ich hervorgehoben, Sie können einfach in apps.cs50.net/spaces/vqcspSnO geben. Alles klar, so zu beginnen, Ich werde Ihnen ein wenig von einer Tour durch diese. Wir werden einige dumme kleine Codierung mit ihm auf den ersten zu tun, nur so, dass jeder irgendwie bekommt ein Gefühl für das, was es ist wie, aber was ich getan habe - oder was ich bin zu Recht hier zu tun ist - Ich werde den Code, den ich hier geschrieben zu nehmen, die, wie Sie jetzt sehen, ist leer; es nicht tun. Es ist nur Kesselblech Code, werden wir es nennen. Mit ein wenig To-do-Kommentar. Ich werde ihn durch das Drücken dieses Schaltfläche Speichern speichern. Und was das tut, ist es markiert es hier kurz - diese Revision save green box, und jetzt, wenn Sie mich suchen im Raum, Sie auf meinen Namen, Sie sehen, dass ich habe diese Revision genau hier, und wenn Sie auf diese Revision klicken, es wird diesen Code in Ihren Raum zu laden, zu. So hat jeder, dass Code in ihre Raum geladen? Gut, wenn Sie noch nicht haben, gehen Sie vor und tun, und dann, was ich will euch in dieser wenig tun to-do-Abschnitt wird ein wenig mit printf über sich selbst zu schreiben, so zum Beispiel, würde ich schreiben printf ("Mein Name ist Nate"); und dann würde ich schreiben "Ich absolvierte im Jahr 2009 von Stanford " und ich würde gerne etwas hören In welchem ​​Jahr sind Sie in der Schule, ob Sie an der Hochschule oder Business School oder eine andere Harvard Schule, was Sie studieren, wenn es noch nicht bekannt ist; wenn es nicht bekannt ist, ist das total cool. Ich habe nicht zu entscheiden, bis ich spät in meinem zweiten Jahr war. und dann würde ich auch gerne wissen, nichts Verrücktes du mich oder sagen etwas über die Klasse oder einfach etwas anderes. Wenn Sie, dass mit Ihrem kleinen printf fertig schreiben, wenn du speichern Sie die Änderung oder eher stellen Sie zunächst sicher, dass Sie es laufen und dass es druckt genau das, was Sie es ausdrucken möchten, und dann, wenn Sie gehen Sie vor und speichern Sie diese Revision mit der Revision Schaltfläche Speichern, dieser erste kleine Kerl hier, und wir irgendwie gehen durch und machen eine kleine Einführung so. Sie sollten also nur noch die Play-Taste drücken, das ist hier oben auf dem oben links, so dass diese Play-Taste auf der oberen linken Willen senden Sie Ihre Code aus auf unseren Server, wo es wird kompiliert und dann ausgeführt werden. Also, was ist irgendwie verrückt darüber werden dieser Code tatsächlich nicht auf Ihrem Computer ausgeführt; es ist tatsächlich über das Internet gesendet. Wie geht es dir, Charlotte? >> I - okay. Ich bin - ich glaube, ich bin Schwierigkeiten speichern auf dem Server, so dass es kann - ich kann das Programm auszuführen. Und wenn ich dann versuchen, sie auszuführen, heißt es, dass es ein Fehler. Erklärt wie ein Virus, was nicht in mehr da. Oh, lasst uns sehen, können Sie treffen erneut auf Speichern? Ich sehe es auf dem Bildschirm. >> Richtig, okay, so dass das, was ich habe. Und ich weiß nicht, warum es nicht lassen Sie mich ausführen. Oh, okay, sorry. Können Sie erklären, warum - was falsch war - was nicht Arbeit mit ihm? >> Ja, weil ich nicht sehen, dass es eine letzte Zeile, wo es noch eine variable dass ich noch nicht erklärt, was ich nicht für sie da zu sein wollen. Yeah, perfect! >> Nun, wenn ich es zu retten, ich denke, es sollte funktionieren. Nun, da Sie es gespeichert haben, es funktioniert; awesome. Also ja, wie wir durchlaufen - so, was los war, Ich werde einfach das für die Kamera zu wiederholen. Was geschah, war, dass diese Variable s wurde nach links - ich nehme an, Sie gelöscht einige andere Sachen wo Sie deklariert, und so wurde dies wirft Sachen weg und wurde nicht lassen Sie es ausführen. Also das ist genau das, was wir in Abschnitt wollen wird die Menschen versuchen, schriftlich verschiedene Teile des Codes, Kompilieren, zu sehen, was funktioniert, was nicht, und dann irgendwie über diese Dinge zu sprechen, weil diese Auslösung Punkte sind, dass Ich immer noch auftreten, Ich immer noch - ich viel dummes Zeug die ganze Zeit, und ich weiß nicht, warum es nicht funktioniert, also lasst uns ziehen Charlotte Revision 3, und wir führen Sie es. Also, wenn ich laufen, jetzt, ich habe ihren Code hier, Ich kann zu vergrößern, drücken Sie die Schaltfläche Ausführen, lädt sie, baut sie, es läuft, sagt, dass es erfolgreich ausgeführt wurde, und wenn ich nach unten scrollen, siehe Charlotte ist ein Junior an Adams House, Psychologie, sekundären in den Wirtschaftswissenschaften, awesome. Great to meet you! Awesome. Okay, Bewegung, lasst uns an Daniel gehen, gehen Revision 3, kompilieren, führen; Warum erzählst du uns nicht ein wenig über sich selbst, Daniel? >> Rufen Sie mich an Dan. Ich gehe zu Business School gehen über von euch, und ich war bei den Marines, bevor hier und das ist alles neu für mich, so yeah. Fühlen Sie sich nicht schlecht, ich bin 30, und ich kenne keinen von diesem Zeug. Awesome; Dank, Dan! Alles klar, wir bekamen ein anderes Daniel. Sie gehen von Daniel - werden Sie sich vorstellen, Daniel? >> Klar, ich bin Daniel. Ich bin im zweiten Jahr in Mather jetzt. Ich bin auf der Regierung konzentrieren, aber ich wollte CS50 nehmen, weil ich sehr gute Kritiken über die Klasse gehört habe und ich habe nie CS ausprobiert. Blättern Sie nach unten hier und zeigen dies - cool. Umzug auf, Jared. Wie geht es dir? >> Good, how are you? Wie Sie sehen können, bin ich ein Junior-Philosophie Konzentrator in Eliot, ursprünglich aus dem südlichen Kalifornien, und ich bin daran interessiert, unter CS50, weil ich die Logik der es mag, und es scheint wirklich cool, die Dinge auf dem Computer zu tun, so. Awesome; wo in Südkalifornien sind Sie? >> Über eine Stunde von [unverständlich], einer kleinen Stadt [unverständlich]. Oh, ja, mein Vater aus Redlands. Cool stuff. Alle Rechte, Jimmy, wie geht es dir, Jimmy? >> Good, how are you? Ziemlich gut! Erzähl uns von sich. >> Ich bin ein Neuling, und ich bin mir nicht ganz sicher, was ich in den Schwerpunkten aber ich bin irgendwie Neigung zu Wirtschaftswissenschaften. Wie Daniel vor mir, ich habe nie einen CS getan, aber es klingt irgendwie cool. Ich komme ursprünglich aus Chicago. Awesome. Also check out seinen Ausdruck hier. Ich wollte fragen, tat diesen Druck als Sie erwartet haben? >> Nein, ich vergaß, um eine neue Zeile zu drucken. Ich tatsächlich vergessen, dass, wenn ich schrieb mein Ding zum ersten Mal, zu. Es ist eine Art Schmerz zu erinnern, die in manuell setzen. Es wäre schön, wenn es nur wissen, dass das, was Sie wollten. Okay, Kelly. Wow, wir haben 2 Kellys; 2 Daniels, 2 Kellys. So Kelly - meinst du mit Kelly Ren gehen? Okay, awesome. Oder Kelly, meine ich. >> Also ja, ich bin also Kelly. Ich bin im zweiten Jahr in Pfoho. Ich bekam eine E-Mail, dass ich heute noch 7 Wochen bis meine Konzentration zu erklären, so versuche ich, nicht daran zu denken, und Ich mag backen, Laufen und Craisins. Ich habe keine Erfahrung mit den meisten der CS; Ich brachte mir zu Webseiten zu bauen, wenn ich noch sehr jung war, aber ich denke, ich wahrscheinlich selbst beigebracht falsch eine Menge Zeit. Hoffentlich werde ich ein bisschen mehr zu erfahren und - yeah. Awesome; gut, danke. Lassen Sie uns auf die andere Kelly gehen; Ich habe nicht alles - hast du etwas gesagt hier? >> [Unverständlich] Da ist es! Sweet! >> Alles klar, also ich bin Kelly. Ich bin im ersten Jahr Student. Ich bin in Mind, Brain, und Bildung mit den Schwerpunkten. Ich absolvierte in Franklin & Marshall College in 2008 mit den Schwerpunkten Psychologie und Soziologie und eine kleinere in Französisch. Ich nehme CS50 denn ich bin daran interessiert, einen PhD in Neuroscience und ich fühle mich wie das wird mir helfen, zu verstehen, die Technologien zum Einsatz. Awesome. Umzug auf, Mikaela. Ist das die richtige Aussprache? Okay, awesome. >> Ich bin Mikhaila. Ich bin im zweiten Jahr in Kirkland House, und ich bin in Mechanical Engineering konzentrieren. Ich mag Radfahren, baute ein Fahrrad in diesem Sommer. Ich nehme CS, eigentlich als Konzentration erforderlich, aber wissen Sie, ich glaube, es ist noch kühl Art von Engineering-Klasse. Awesome - Sie bauten ein Fahrrad in diesem Sommer? >> Ja. Wow, wie der Rahmen und das alles? >> Uh-hunh (affirmative). Wow, das ist wirklich cool. >> [Unverständlich off-camera chat] [Gelächter] Ja, es ist schon so lange her. Man kann nie wissen, nicht wahr? Nun, kühlen, gut danke, Mikhaila. Alles klar, Missy. >> Mein Name ist Missy, ich bin ein Neuling, so dass heißt, ich weiß gar nichts! Ich möchte in der Astrophysik zu konzentrieren. In CS50, Ich fühle mich wie wird definitiv dabei helfen. Eine seltsame Tatsache über mich Ich bin ein staatlich geprüfter Feuerwehrmann. Wow! Wie konnte das passieren? >> Ich besuchte eine Akademie und ging durch die Hölle für viele Wochen und bekam meine Zertifizierung. Wow, congrats! Das ist keine Kleinigkeit, das ist sicher. Okay, jetzt werden wir tun mir. Ich bin der nächste in der Reihe. Ich bin - ausführen. Also mein Name ist Nate. Ich war Klasse von 2009 an der Stanford. Ich war ein symbolischer Systeme major, das ist vergleichbar mit der Mind, Brain, Behavior Konzentration hier aber es ist eine Art Mischung aus Informatik, Linguistik, Psychologie und Philosophie. Art - yeah, viele seltsame Dinge, aber es war toll, und dann habe ich meinen Master in Informatik gibt, wie gut. Also ich bin neu in Harvard in diesem Jahr. Ich wollte eigentlich in den Unterricht zu bekommen. Ich habe die letzten 4 Jahre an der Stanford TA-Ing Informatik-Klassen und so David lass mich los, und ich werde sein helfen mit CS50, so dass ich diese volle Zeit, ich bin nicht in der Schule grad. Es hat Spaß gemacht. Hoffentlich werde weiterhin Spaß, ich bin sicher, es wird. Alle Rechte, Sam. >> Mein Name ist Sam, ich bin ein College-Student an der Hochschule, in Gesetz ausdrücklich. Mein Hauptfach wird die Geschichte der Wissenschaft sein, wahrscheinlich, und VES sekundäre, und meine Lieblingsfarbe ist gelb. Erledigung der Hauptsache oder irgendetwas passieren, aber es ist eine gute Farbe! Und Stella. >> Hallo, ich bin Stella, ich bin ein Neuling in Grays. Ich habe keine Ahnung, was ich in noch konzentriert, so CS50 war nur irgendwie zufällig, was interessant. Fun Tatsächlich war Jimmy das erste Harvard Freund von mir, weil wir beide aus Chicago. Cool, und Grace - das ist angeblich die wirklich nett sein, nicht wahr? >> Ich dachte, [unverständlich]. Oh, yeah. [Unverständlich / off-camera chat] Okay, ich lerne immer noch, immer noch lernen. Also haben wir etwas anderes, das irgendwie interessant ist hier. Ja, ich frage mich nur, haben Sie eine Idee, was los ist hier? Sie wissen, wie dies zu interpretieren? >> Ich sollte zu setzen das Semikolon nach jeder einzelne Zeile. Das ist eine Art Schmerz. Manchmal sind diese Semikolon kann eine echte Schmerzen aufzuspüren. So stellt sich heraus, dass das spezielle Programm verwenden wir in diesem Jahr sind die erstellen unsere C-Code aufgerufen wird Clang, und der Grund, haben wir begonnen, Clang dieses Jahr nutzen können - denn wir haben nicht das Programm in der Vergangenheit; Wir haben eine andere als GCC, die sehr beliebt ist verwendet - Clang tatsächlich gibt Ihnen Fehlermeldungen, die Sinn machen. Dieses sagt "erwartet ';' nach Expression", und es hat sogar erzählt Sie den Ausdruck, nach dem Sie brauchte einen Strichpunkt. So sind Sie Festsetzung es? >> Ja, gerade jetzt. Awesome; lass es mich wissen und wir werden es nach oben ziehen, und wir werden sie auszuführen. Aber ja, die Umsetzung dieser Semikolons ist eine Art Schmerz. >> Ich es behoben, so dass ich denke, es sollte funktionieren. Awesome - Revision 3. Das sieht so aus. Alles klar, also wenn wir jetzt ausführen, dort geht es. Cool stuff. Gut. Also vielen Dank dafür, dass. Es ist großartig, euch zu treffen. Was wir tun werden ist nun verbringen die nächsten bisschen irgendwie tauchen in den Abschnitt Probleme das kommt von dem Problem von dieser Woche gesetzt und wir, dass für die meisten der Abschnitte zu tun für den Rest des Wortes, und dann werden wir speichern die letzten 15, 20 Minuten oder so über das Problem zu reden es sich und dann einfach alle anderen Fragen, die Sie haben in der Regel über die Klasse. Das heißt, was wir wirklich tun wollen wird haben alle teilnehmenden mit dem Spaces stuff, Werfen im Code werfen Anregungen, und darüber zu reden, wenn die Dinge diese Pause gerne oder nicht funktionieren, nur weil diese Dinge, die sind Ich weiß, ich kam über als ich anfing Codierung, und waren wirklich irgendwie frustrierend denn wenn es wie 2.00 Uhr ist, bevor Sie Ihr Problem Satz fällig ist, so - nur für die Offenlegung, Ich habe nicht mit der Programmierung beginnen, bis ich ein College-Student im College war. Es war eine Art dieser seltsame, unbekannte Sache dass ich gehört habe, war irgendwie cool und ich habe auch gehört, es könnte eine echte Schmerzen in den Hintern zu sein wenn Sie vermissen ein Semikolon und das ist der einzige Fehler, halten Sie Ihr Programm aus der Arbeit und halten Sie von dem Einschlafen, so definitiv, wenn Sie Fragen haben wie das, wenn Sie Bedenken wie die haben, lassen Sie es mich wissen, weil ich, um diese eine gute Erfahrung für euch wollen. So haben euch alle heruntergeladenen das Problem gesetzt noch? Kinda wissen, wo es ist? Okay. Also werden wir die cs50.net gehen, weil ich es nicht haben auf diesem Konto, ziehen Sie die Problem-Sets, Pull-up-Problem Satz 2, und wir werden in der Standard Edition heute aussehen. Wir ziehen die Spezifikation hier. Blättern Sie nach unten. So wir werden beginnen, diesen Abschnitt von Fragen. Habt ihr beobachtet diese Shorts noch? Okay. So gibt es shorts on Schleifen, die durch Tommy, einer der Leiter Lehre Stipendiaten durchgeführt. Es ist ein auf Umfang, Ich glaube, von einem anderen Lehre Kerl namens David getan und dann ein auf Caesar Cipher ebenfalls von David getan. Sie sind ziemlich cool. Habt ihr beobachtet ihre Shorts so weit? How've sie gewesen? Hilfreich? Okay, gut zu wissen. Wenn sie es nicht sind, kann man so sagen. Aber bevor Sie das tun, Sie haben Jungs sahen bei diesen Fragen überhaupt? Lassen Sie uns darüber ein bisschen reden. So haben wir in den letzten paar Wochen vorgestellt in der Vorlesung eine Anzahl von verschiedenen Schleifen. Es ist die for-Schleife, die while-Schleife und dann die do-while-Schleife, und in der Vorlesung haben wir gesprochen viel über wie diese sind alle Schlaufen ziemlich ähnlich in vielerlei Hinsicht, und Sie können viel von den gleichen Dingen mit einer while-Schleife zu tun dass man mit einer for-Schleife. Sie müssen nur solche verwenden, die richtigen Kombinationen von Variablen und so weiter. und so wirklich die eigentliche Unterscheidung zwischen alle Schleifen ist, dass manchmal sind sie mehr nützliche um sie zu einem Zeitpunkt als einem anderen Zeitpunkt zu verwenden. So zum Beispiel, die while-Schleife, die sich von einem do-while-Schleife. Hat jeder das Gefühl haben, einen guten Griff auf, wenn über eine do-while-Schleife ist mehr nützlich oder was der Unterschied ist? >> Ich denke, der Unterschied ist ein do-while-Schleife läuft - ich weiß nicht genau, was die Terminologie, aber die Reihe von Funktionen innerhalb der Schleife. Sie automatisch - es macht seinen Läufen mindestens bevor es prüft den Zustand oder die while-Schleife wird nur ausgeführt, wenn es kontinuierlich läuft - ob die Bedingung, die erfüllt ist. Ja, macht das Sinn? Werfen wir einen Blick auf ein wenig Code. Also einfach die Frage wiederholen, oder die Antwort, sondern; Die Antwort war, dass eine while-Schleife wird überprüft, ob die Bedingung die Sie angeben, wird erfüllt vor der Ausführung der Körper der Schleife für die erste Zeit, während die do-while-Schleife wird automatisch ausgeführt, den Körper der Schleife ist das, was wir es nennen - es ist seltsam Terminologie, aber wenn ich jemals sagen, was keinen Sinn macht, lass es mich wissen - die Schleife ist, dass Sachen, die Sie zwischen den geschweiften Klammern setzen. Und in einer do-while-Schleife, Diese Stelle bekommen mindestens einmal ausgeführt, und dann die Bedingung wird geprüft, bevor sie jedes Mal in Folge läuft. Also eigentlich, Sam, tun Sie etwas dagegen schriftlich eine einfache while-Schleife in Spaces? >> Wie findest du wie sortieren eine neue ...? Ich habe gerade zu löschen, was Sie da haben. Ja, nur löschen Sie es heraus. >> Nun, ich glaube, ich habe dies - welche ein willst du, eine Weile her, oder willst du ...? Ja, ich nur eine Weile wahr, etwas ausdrucken out. Und lassen Sie uns sehen. Alexander erkannte ich, dass wir nie eingeführt Sie. >> Oh, das ist in Ordnung. Sie - können Sie codieren eine do-while-Schleife für uns? >> Ja, ich werde es versuchen. Alles klar, wir werden einfach ziehen Sie diese auf dem Bildschirm, so dass Sie Art haben einen Handgriff auf, was die Unterschiede sind. Also hier ist was Sam getan hat. Er hat eine ganze Zahl nannte ich habe dass er mit 17 initialisiert. Dann sagt er, während (int i = 17) printf ("Mein Name ist Sam."); Also, was passiert, wenn wir diesen Code ausführen? Es ist ein Fehler, was bedeutet der Fehler sagen? Lasst uns nach oben ziehen und darüber reden. Ein Fehler ist aufgetreten, sagt sie. Lassen Sie nach unten scrollen. So es gab uns diesen Fehler, und sie sagte, "Hey, ich erwartete einen Ausdruck." Das ist irgendwie kryptisch. Ja, so genau - und wieder gibt es eine weitere kleine Fehler, dass wir in nur einer Sekunde zu fangen. Aber das ist eine andere dieser Art von seltsamen Terminologie Dinge, so dass diese int i = 17 ist kein Ausdruck. Was es, wie es zu tun ist aussieht, ist es erklärt eine ganze Zahl als i und wenn er auf 17 gleich oder vielmehr, indem 17 in diesem int namens i. Und das macht keinen Sinn im Rahmen dieser while-Schleife. Es macht Sinn, wie wir sehen werden, im Rahmen einer for-Schleife, da for-Schleife Erklärungen nicht starten mit der für int i gleich etwas und geht weiter. So haben Sie - fix etwas, alles in Ordnung. Hier geht es; awesome. So, jetzt sieht es ein wenig anders. Ein paar Dinge haben sich geändert. Können Sie uns sagen, was die Dinge haben sich geändert? >> Ich nahm den int, so gibt es keine Erklärung [unverständlich] statt einer Zuweisung. Die ein Gleichheitszeichen, habe ich 2 gleiche Zeichen, was bedeutet, ein Gleichheitszeichen. Awesome. Ja, so was Sam wollte er nahm den int Das war hier früher so, wenn ich nur schauen Sie sich diese - das ist, was es früher war, sagte, es int, das wurde erklärt es - und so nahmen wir den Typ. Es gibt int, char, string, kurz, diejenigen Typen genannt werden. Also nahm den Typ und dann die zuvor er hatte nur die Single-Sign entspricht und was er sagte, war problematisch, darüber wurde wenn Sie haben 1 Gleichheitszeichen, das ist ein Zuweisungsoperator. Das ist nicht zu testen, ob oder nicht 2 Dinge gleich sind. Das ist eigentlich die Einstellung etwas gleich etwas. Wir bringen die Nummer 17 in die Variable i. So, diese Art von Vergleich zu tun, Sie haben die doppelte gleich verwenden, das ist eine Art seltsame Sache ist aber eine ziemlich häufige Fehler. So eine andere Sache werde ich darauf hinweisen, wenn es Ihnen nichts ausmacht, ist, dass in unsere Funktion hier in int main, Sie sehen, dass der Körper unserer Funktion wird von der linken Seite versetzt um 4 Leerzeichen oder einen Tabulator. Der Grund warum wir dies tun ist nur für die Lesbarkeit. Wie man in Sams while-Schleife hier zu sehen, er nicht Gedankenstrich überhaupt, und dass hat keinen Einfluss auf die Funktionalität des Codes. Es läuft genau das gleiche. So zum Beispiel, wenn wir kommen bis an die Spitze hier und drücken unseren Play-Taste, wird es bauen, es wird ausführen, und was wird passieren? Warum ist es immer noch sagen, läuft? >> Weil es werde immer wiederholen hallo. Genau, und warum ist es immer wiederholen hallo? >> Da die Zahl ändert sich nie, so ist es immer 17. Ja, genau, so Lassen Sie uns sehen, nach - erinnern mich an dein Name? Jimmy. So Jimmy sagte, dass Der Grund dafür wiederholt sich ständig hallo immer und immer wieder Denn diese Bedingung ist immer wahr. Wir haben nie den Wert von i. Wir haben nie ändern Sie die Inhalte von dem, was in dieser Variable gespeichert. Also an dieser Stelle haben wir diesen Fehler, dass Ihr Programm generiert zu viel ausgegeben, und wenn wir nach unten scrollen und die Art der Blick an, was hier vor sich geht, Sie können sehen, dass es Hallo, hallo, hallo, hallo, hallo, hallo, hallo alle der Weg durch. Awesome. So Art wieder auf den ursprünglichen Punkt dass mit der Einrückung im Körper der while-Schleife nicht beeinträchtigt nichts. Das Programm lief noch ganz gut. Typisch für guten Stil - und dies ist etwas, was wir suchen in Ihr Problem Sets - bitten wir Sie, Gedankenstrich dies durch 4 Leerzeichen, was Sie tun können durch einfaches Drücken der Tab-Taste oder durch manuelle Umsetzung in 4 Bereiche sich. Cool, okay so gehen wir zurück und schauen Alexander do-while. >> Just irgendwie mit ein wenig Mühe. Okay, lasst uns durch sie zu arbeiten. Ist das cool? >> Ja. Okay, so here we go. Dies ist der Code, dass Alexander schrieb. Haben Sie von Alex gehen - okay. Also hier ist der Code, den Alex geschrieben hat. Also haben wir unsere Erklärung der wichtigsten bekam hier, und dann haben wir diese Integer-Variable namens i wird hier erklärt. Wir haben ein do-Anweisung und dann der Körper wieder mit diesen Klammern, so ist dies der Körper des do-while - Lassen Sie mich in auf diesem Zoom, damit es mehr lesbar ist - und in den Körper, wir versuchen zu drucken "das ist der Körper", i + +, so erhöhen die Inhalte der i und tun dies bis i bekommt 3 sein, und dann unser Programm endet. Also, was passiert, wenn wir dieses Programm ausführen? >> Ich erwartete eine Kennung. Okay, so zu bauen, ausführen, tritt Fehler. Was passiert? Wir blättern hier unten, bekommen wir diese etwas kryptisch suchen Sache, erwartet Semikolon nach Top-Level-Deklaration. Das ist irgendwie komisch. Hat jemand eine Idee, was sein könnte da los? Irgendwie komisch, ja. >> [Unverständlich] außerhalb der Klammern deklariert werden? So funktioniert das dann nicht gelten, wenn Sie Klammern benutzen? So erklärte er diesen Kerl außerhalb dessen Klammern? Oh, diese Jungs - die geschweiften Klammern? >> Ja. Ja, genau. So stellt sich heraus, dass kann man eigentlich nicht eine Variable deklarieren hier so. Was Sie vielleicht versucht haben zu tun war - schneiden Sie es von dort - Sie können entweder steckte es in den geschweiften Klammern hier oder eine andere alternative ist um es vollständig außerhalb. Und so sind diese - je nachdem, wo Sie tatsächlich legte die Erklärung dieser Integer-Variable, Sie erhalten können 2 sehr unterschiedliche Arten von Variablen; wenn es außerhalb des Haupt-, es ist das, was wir eine globale Variable nennen. Es ist außerhalb des Rahmens eine der Funktionen - es ist nicht innerhalb einer Funktion - während, wenn wir es im Inneren von Haupt-, wie hier, dann ist es als eine lokale Variable weil es lokal zu dem Umfang der Haupt. Und wir werden ein bisschen mehr darüber reden, was die Unterschiede sind zwischen den 2 Typen und warum Sie verwenden verschiedene Arten von Variablen, aber für jetzt, Sie können einfach halten alle lokale Variablen, weil wir keinen Bedarf für globale Variablen. Okay, das ist also eine Sache recht. Lasst uns versuchen Sie diese wieder sehen, was passiert. Ausführen, erhalten einen weiteren Fehler. Zoom ein bisschen, was haben wir bekommen? Wir bekommen diese erwarten Klammern hinter / Weile zu tun. Irgendwelche Ideen, was ist los? Dan? >> Ist Weile, dann Klammern und dann - Ich weiß nicht, ob Sie int deklarieren müssen, aber das tun, während (i <3). Genau, ja. So stellt sich heraus, dass Dan genau richtig. Wir brauchen nicht um diese Art hier wieder aufgesetzt. Wir können statt zu töten den Typ und genau das zu tun. Gut. Ich werde wieder zu verkleinern, versuchen Sie es noch einmal. Schau dir das an, es läuft erfolgreich. Wenn wir nach unten scrollen, "das ist der Körper" 3 mal gedruckt. Das ist ziemlich süß. Gut gemacht, gut gemacht, Jungs. Well done. Wie ist das so weit gehen? Ordentliches Tempo? Okay, cool. So, wie wir irgendwie wieder auf die ursprüngliche Frage, wir - und jetzt, wenn wir den Unterschied sehen, Sie sehen, dass in dieser do-while-Schleife, die Bedingung kommt zuletzt. So wie der Computer liest das Programm da C-Programme sind Art in dieser Reihenfolge ausgeführt werden, , wo sie buchstäblich beginnen mit der ersten Zeile des Haupt-, und führen Sie dann Linie 6, Linie 7, Zeile 8, Zeile 9, Linie 10, Linie 11, all dieses Zeug in der oberen rechten hier wird einmal ausgeführt bevor wir überhaupt testen diesen Zustand zu sehen, ob i - oder den Inhalt von i, sondern - geringer sind als die Zahl 3 ist. Und nur, wenn wenn wir die Linie 12 zu erhalten, der Inhalt des i weniger als 3 wissen wir eigentlich zurück zu springen bis zur Linie 7 und wiederholen Sie den Vorgang, und dann testen wir den Zustand wieder und wieder und wieder. So können wir kontrastieren diese mit - Zoomen wieder heraus, unten scrollen, um Sam-Version, wir werden dies zu betrachten, leicht verändert, so dass es nicht mehr zu einer Endlosschleife - wo, wenn wir zu vergrößern, sehen wir, dass da dieses Programm ausführt, es wird zuerst deklarieren int i, setzen die Inhalte der i auf 0 gesetzt werden, und dann trifft es die Bedingung der while-Schleife ersten, so in diesem Fall, dieser Körper, diese printf ("Hallo") und i + + nicht einmal ausführen es sei denn, i ist eigentlich weniger als oder gleich 2 ist. Dann, wenn i drei ist, beispielsweise wenn wir dieses hier gleich 4 - oder ich werde 3 zu tun, weil ich 3 gesagt - und führen Sie es, es wird gebaut, es wird laufen vollkommen in Ordnung, aber es wird nicht wirklich nichts aus, weil es nicht diesen Test für den ersten Fall. So in der Klasse, wir irgendwie darüber, warum diese do-while-Schleifen gesprochen sind manchmal nützlich und warum wir es als eine while-Schleife entgegen. Gibt es - Habt ihr irgendwelche Vorschläge warum eine do-while-Schleife könnte nützlicher sein? >> Nun, ich denke do-while-Schleifen, wenn Sie Benutzereingaben möchten, denn auf diese Weise lassen Sie sie etwas in einmal, wenn es richtig ist, wir uns bewegen können auf den Rest des Programms, aber wenn es nicht korrekt ist, dann sind Sie auf Aufforderung des Benutzers zu halten bis Sie legte den rechten Eingang. Ja, genau - genau, so eine do-while-Schleife ist nützlich denn wenn den Benutzer zur Eingabe weil Sie die Eingabe des Benutzers zu erhalten, bevor Sie tatsächlich können es brauchen. So in pset 1, in pset 2, wo du für Benutzereingaben auffordert viel, Das ist eine praktische Sache zu verwenden im Gegensatz zu nur einer einfachen while-Schleife entgegen. Wenn Sie eine while-Schleife verwenden, können Sie das gleiche tun - Sie können die gleiche Sache mit einer while-Schleife zu tun wie Sie mit einer do-while-Schleife. Sie müssen nur die Art haben über diese doppelte Prozess wo Sie den Eingang und dann starten Sie Ihren while-Schleife. Während eine do-while-Schleife, Sie müssen es nur einmal schreiben und es ist viel sauberer. Gut. Haben Sie Fragen? Sinn? >> Die Rückkehr 0 - das ist nur eine Art Stall oder ist es -? Ja, so können wir - Nun, wir werden dies ein wenig mehr später behandeln aber es stellt sich heraus, dass diese Rückkehr 0, dass wir setzen am Ende des Haupt ganze Zeit - Sie können irgendwie nehmen es einfach als etwas, was wir tun, vorerst. Was wir angefangen haben, darüber zu sprechen mit Funktionen Art am Ende der letzten Woche und dann wieder diese Woche ist, dass eine Funktion dauert Eingänge, die diese Dinge in den Klammern sind; das sind 2 Eingänge, unsere Argumente oder Parameter, was sie auch unsere Funktion aufgerufen, und dann eine Funktion erzeugt ein Ausgangssignal was wir als einen Rückgabewert. Und der Rückgabewert im Fall der Haupt ist int, Diese integer, und wie Sie sagen, eine Funktion, "Hey, das ist, was die Ausgabe sein wird, "ist mit diesem Wort" Rückkehr ", dass Keyword, sondern und so Haupt zurückkehren 0 oder Haupt Ausgeben 0 in C-Programme standard weil wieder 0 von Haupt bedeutet, dass "Hey, alles mit meinem Programm just fine ausgeführt." Wenn wir auf etwas anderes als 0 setzen, wie 1, beispielsweise dieser auch zu sagen, wer lief dieses Programm dass etwas schief gelaufen ist. So wie wir kompliziertere mit Sachen über das Semester erhalten, wenn Sie sich jemals zu sagen, "Hoppla, Sie wissen, ging etwas mit diesem Programm falsch" anstatt mein Programm ab, ich möchte mitteilen, der Läufer von meinem Programm, dass etwas schief gelaufen ist, können Sie Rückgabewert wie wir es nennen, das ist nicht 0 ist. So werden wir decken, dass ein bisschen mehr wenn wir in Funktionen zu bekommen. Diese Art von Sinn macht? Okay. Funktionen sind so eine Art bizarre - Ich denke, für Menschen, die viel Mathematik Hintergrund haben, es kommt ein wenig leichter, vor allem wenn man ein bisschen mehr abstrakten mathematischen Hintergrund und du sprichst über Funktionen verwendet und alle solche Sachen. Aber wir werden versuchen, und decken Sie sie und gehen schön langsam, wie sie kommen. Ebenso, diese ganze int argc, char * argv [], für jetzt, können Sie auch, dass als Kesselblech. Wir haben damit begonnen, diejenigen ein wenig in der Vorlesung deckt wenn wir über Argumente, die in Programme auf der Kommandozeile bekommen weitergegeben reden, aber Ihr Problem Sets und Ihre Programme, Es ist völlig in Ordnung, nur um Leere zu schreiben und es einfach halten. Und was diese Leere bedeutet, dass "Hey, ist Haupt nicht irgendwelche Eingaben zu akzeptieren; dies ist nur ein Programm, das wir Gonna einfach laufen sind. Wir werden nicht mit einem beliebigen Zusatzinformationen jedes Mal, wenn wir anfangen es läuft. " So jetzt können Sie dies tun; Sie können auch noch weglassen return 0 am Ende Ihrer Programme und sie laufen ganz gut, aber ich empfehle nur halten, dass in. In ein paar Wochen werden wir Art zu starten Ziehen Sie den Deckel ein wenig und besser zu verstehen all diese verschiedenen kleinen beweglichen Teile. Alles klar, jetzt wollen wir über unsere zweite Frage hier reden. Also, was bedeutet "nicht deklarierter Bezeichner" zeigen normalerweise wenn durch Clang ausgegeben? Ich denke, wir könnten das schon gesehen haben heute. Kann jemand eine Zusammenfassung von dem, was das bedeutet? Mal sehen, Kelly - eine der Kellys. >> So - Ja, was tut - >> Ich denke, wenn man, wie, nicht Variablen deklarieren und Sie versuchen, es zu benutzen. Ja, genau, genau. Also, wenn Sie jemals diesen Ausgang wenn Sie versuchen, zu kompilieren Ihr Programm, wie Kelly sagte, es bedeutet, dass Sie eine Variable, die Sie nicht erklären, hat eingesetzt, so, wenn ich zurück zu unserem Raum, und ich tue so etwas wie printf ( "Hallo% s") und versuchen, in diesem% s füllen mit einer variablen s, die ich nicht erklärt haben überall und ich versuche, sie auszuführen, Sie werden sehen, was ich unten zu bekommen an diesem rechts unten hier: "Schwarzarbeit Kennung 's' verwenden"; Das bedeutet nur, du hast nicht erklären Sie variabel. Dasselbe passiert, wenn Sie haben x und Sie versuchen und speichern 7 in Es und ich wollte nicht erklären, X. Ich bekomme die gleiche Fehlermeldung: "Schwarzarbeit Kennung 'x' zu benutzen". Alle Rechte, so die Caesar-Chiffre, nicht sehr sicher, Ich lasse euch sehen diesen kurzen, Art verstehen, warum und hoffentlich nachdem ich in dieser Woche das Problem gesetzt wo man tatsächlich schreibt man einen Caesar Cipher, wirst du ein wenig mehr verstehen, über das, was es bedeutet, ein sicheres und unsicher - oder nicht sicher ist, schätze ich - unsicher ist etwas anders. Die andere Sache war, dass wir haben diese Fragen hier über Funktionen und was für eine Funktion ist, und wir Art über diese kurz gesprochen, wenn wir über Rückgabewerte gesprochen; für jemanden, der schon zur Vorlesung, können Sie rekapitulieren, wer war zur Vorlesung heute? Gut. Lassen Sie uns sehen, wir haben - kann mir jemand sagen, was eine Funktion? Kelly? >> Grundsätzlich etwas, das man auf etwas, das in der Bibliothek, das ist geschrieben hat ziehen komplizierter drüben, und dann schreiben Sie einfach eine Kurzform davon, so wie du bist Rückbezug auf dieser Bibliothek mit allzu langer Code und [unverständlich]. Ja, genau, und dann willst du etwas hinzufügen, um das? >> Ja, ich denke darüber nach vergleichbar mit dem Konzept einer Formel in der Mathematik wo man einfach eine Formel schreiben, und dann können Sie Variablen in stecken und das ist, was eine Funktion ist [unverständlich]. Ja, so haben wir ein paar Antworten hier das sind beide sehr gut und richtig an. Es ist, um Code bezieht das ist in der Bibliothek irgendwo geschrieben das ist komplizierter und dann kann man nach diesem Code erstellen und tatsächlich nutzen es nur durch das Schreiben der kurzen Form davon - oder vielmehr seinen Namen - und dann gibt es auch in diesem Vergleich zu einer Formel in der Mathematik oder Physik, all solche Sachen wo man eine Formel und Sie können dann einstecken die Variablen dieser Formel dann bekommen Sie das Ergebnis der Formel so dass Sie darüber nachdenken, wie wie die quadratische Gleichung. Stellen Sie sich vor, anstatt zu lernen was die quadratische Formel in Mathematik Klasse, Sie hatte gerade einen kleinen Taschenrechner-Programm, dass es für Sie getan haben. Hat jemand verwendet Taschenrechner Programme in Mathematik Klassen in der High School? Yeah, Physikunterricht? Wo kann man nur sagen: "Hey, quadratische Formel. Dies sind die Variablen, die ich eingeben möchten. Jetzt geben Sie mir die Antwort. " Das ist eine Art von dem, was eine Funktion ist. Es ist ein Weg für uns, Art write wie ein klein wenig Unterprogramm innerhalb unserer größeren Programms und verwenden Sie es immer und immer wieder so dass wir nicht zu kopieren und Code, wir können ihm verschiedene Eingänge und unterschiedliche Ausgänge, es ist super handlich wenn Sie versuchen, verschiedene Programme zu unterschiedlichen Zeiten zu schreiben. So zum Beispiel eine Funktion, die wir verwendet haben immer und immer und immer wieder während des Kurses ist printf. Printf selbst eine Funktion und es stellt sich heraus, dass es eigentlich ein ziemlich lang und kompliziert, hässlichen, funktionieren zu schreiben. So einfach wie es uns scheint um Sachen ausgedruckt auf dem Bildschirm, weil wir alle gerade getan, dass am Anfang des Abschnitts heute es stellt sich heraus, dass es eigentlich, weißt du, eine gute paar hundert Zeilen Code. Es ist nicht etwas, dass ich jemals schreiben wollen, das ist sicher, aber wir bekommen es jeden Tag benutzen, das ist irgendwie cool, so bekommen wir es mit anderen zu teilen, mit verschiedenen Programmen, so werden wir das Tauchen in Funktionen; zur Zeit sind wir nicht - die einzige Funktion wir werden schreibst ist main. Haupt selbst ist ebenfalls eine Funktion, und Sie können sehen es bekam seinen Ausgang, seinen Eingängen, wie wir darüber gesprochen, und dann seinem Namen, ist das wichtigste. Main ist Art von a - ist eine spezielle Funktion gibt. In Ihrem C-Programm, muss es eine Hauptfunktion sein, und so für jetzt, haben wir Art verzichtet schriftlich Der Prototyp, oder die Erklärung, main. Wir haben das für Sie gegeben, und wir haben gerade waren Sie in einer Art die Lücken zu füllen. >> Also für das zweite Problem Set, brauchen wir nicht zu schreiben Sie es in der zweiten Funktion? Ich glaube nicht. Ich glaube, es ist alles hier. Yeah, so Caesar Chiffre, Sie müssen nicht, ist es nicht so aussehen, und Vigenere Sie auch nicht, so - und es stellt sich heraus, Sie nicht immer tatsächlich zu schreiben eine Funktion, nicht wahr? Sie rufen immer an den gesamten Code in main, und viele Programmierer tun. Wie bewegen wir uns auf, beginnen wir die Einführung Funktionen als eine Möglichkeit zum Aufräumen Code um es elegant, falls Sie Aufgaben - eine Art, wie wenn wir sprachen über Loops, wie manchmal gibt es Dinge, die Sie wieder und wieder und wieder tun, und Sie haben Art der naive Art und Weise - oder was wir oft die "Strohmann"-Lösung, ist es einfach kopieren und fügen immer und immer wieder - Sie können die gleiche Sache mit Funktionen zu tun, wo Sie kopieren einfach und fügen den gleichen Code immer und immer wieder, aber das bläht Code - es endet Ihr Code wirklich lange - und es wird auch ein wenig verwirrend, und dann bedeutet es, dass Sie nicht in der Lage sind zu mögen - wenn Sie jemals wollen, um diesen Code wieder verwenden in einem anderen Programm du bist auch stecken Kopieren und Einfügen es wieder, so eine der Sachen, die wir reden müssen, ist Art der Gestaltung und Stil Ihrer Programme, und so, wenn es Sinn macht, Art Paket etwas zusammen und steckte es als separate Funktion, empfehlen wir Ihnen, das zu tun, und das ist etwas, was wiederum gibt es keine feste Regel. Wir haben selten sagen, dass Sie eine Funktion namens dies schreibe, aber es ist mehr der eines dieser Dinge, die Sie gerade im Laufe der Zeit entwickeln, wie Sie mehr und mehr Programme zu schreiben. Noch Fragen? Okay, also lasst uns jetzt Gehen Sie zurück bis zu diesem Kerl hier, so bin ich immer noch in diesem Abschnitt von Fragen. Wir haben über all diese verschiedenen diejenigen gesprochen, Was ist eine Funktion, warum Funktionen zu schreiben, wenn man nur kopieren und einfügen? Hoffentlich haben wir Sie überzeugt, dass Schreiben von Funktionen ist eine gute Sache. So, jetzt machen wir weiter auf diese MySpace-Programm, und wir verbringen ein wenig Zeit, dies zu tun. Also, lasst uns sehen, kann ich jemand lesen für mich? Lassen Sie uns Mikhaila - lesen Sie, das für uns? >> Du meinst zurück, wenn MySpace - Damals, als MySpace war cool. >> "Damals, als MySpace war cool, es war die ganze Wut wie diese Art. Vielleicht ist es noch? Ich bin mir nicht wirklich sicher. In jedem Fall ist die Verwendung CS50 Haushaltsmaschine, CS50 Run oder CS50 Spaces, Schreiben Sie ein Programm, das den Benutzer nach einer Nachricht aufgefordert, und gibt dann die Nachricht mit seinem ersten Buchstaben groß geschrieben, mit allen anderen Buchstaben in abwechselnder Fall nach der Probe-Ausgang unten wobei fettgedruckte Text stellt einige Benutzereingaben. Der Einfachheit halber können Sie davon ausgehen, dass der Benutzer wird nur der Eingang Kleinbuchstaben und Leerzeichen. Betrachten Sie dieses Problem eine Gelegenheit zu üben; Sie werden nicht aufgefordert, dieses Programm zu unterbreiten. " Super, danke. So Mikhaila sagte werden wir ein Programm, das Ihren Code myspaces schreiben. So hat jeder von euch nutzen MySpace? Jeder von euch haben MySpace-Accounts? Oh, yeah, yeah! Es war ziemlich cool. [Gelächter] Ich weiß. Dating mich. Also, was wir versuchen zu tun, ist ein Programm schreiben das geht durch und wandelt den ersten Buchstaben und dann jeden Buchstaben danach - oder jeden anderen Buchstaben danach tut mir leid. So - und Sie können in diesem Beispiel sehen, Dies ist, wie wir das Programm ausführen, und so ist dies nur zu sagen: "Wir laufen ein Programm namens a.out. Der Eingang, dass wir darauf, es werde wird gefragt. Wir werden nicht liefern die Eingabe auf der Kommandozeile. " Wenn Sie schon nach all den Vorträgen und Hören über Kommandozeilenargumente, das ist eine Art, wo diejenigen - die Funky-Syntax an Haupt kommt mit dem int argc, all das Zeug, so hier sind wir nicht mit, dass, wir sind nicht mit nichts davon. Wir sind nur gonna diese typisierte in sich durch den Benutzer, und dann diese zweite Linie mit dem funky Marktkapitalisierung ist das, was wir unser Programm ausgeben wollen. So anstatt die Appliance oder Run, verwenden wir Spaces, weil wir haben Räume, und so, wenn ihr Jungs würden Sie Ihren Code in etwa so aussehen, so werde ich diese Revision zu retten nur so haben Sie die Kesselblech hier so aussieht, int main (void), nichts drin. Eigentlich ist das, was wir tun, wir müssen einfach alles löschen alle zusammen. Wir wollen ein unbeschriebenes Blatt, weil wir nicht gonna start Schreiben von Code; sondern wir werden versuchen, schriftlich einige Pseudocode was eigentlich nur bedeutet, dass wir gehen, um etwas, das nicht Code schreiben diese Art von beschreibt, was wir tun wollen, irgendwie wie David tat am ersten Tag der Veranstaltung, oder ich denke, das war der zweite Tag der Veranstaltung, wenn er die ganze Socken demo tat. You guys daran erinnern, dass - sehen die Socken? Joseph war dort oben Art der Eingabe in Englisch? So wir werden das gleiche tun. Schriftlich Also, wenn ich anfangen Pseudocode Ich mag zu suchen, was der Eingang sein wird starten. Und ich gebe mir eine Probe Fall so wie "thanks for the add!" Und dann habe ich auch schreiben, was ich der Ausgang sein wollen, die in diesem Fall so etwas wie dieses. Und diese Art von gibt mir ein gutes, wie, Startplatz zu denken, "Okay, ich möchte der Linie 1 umsteigen und ich möchte es in Zeile 2 zu verwandeln " und diese Art von Hilfen führen mein Denken. Dies ist ein guter Ort, um zu starten. Ein anderer Weg, um darüber nachzudenken, auch, wie wir uns auf irgendwie zu bewegen und wie Sie dies tun in eigene Programme ist es, denken ein bisschen wie, was sind die Grenzfälle zu diesem? Was sind Art der seltsamen Szenarien? Was sind die seltsamen Eingänge dass wir vielleicht bekommen? Und was soll diese Ausgänge aussehen? Zum Beispiel können ein schräg Eingangs Dies würde sein, Erstellen absolut nichts, wie das, was sollten wir in diesem Fall ausgeben? Etwas, was wir wollen, zu denken, zu. So wie die Frage, Was könnten wir ausgeben wollen? Wenn wir nicht bekommen, jede Eingabe überhaupt, was sollte unser Programm sein ausgibt? >> Nichts. Nichts? Klingt gut. So wollen wir sicherstellen, dass wir nicht schriftlich etwas aus wenn wir nichts bekommen in. Cool. Okay. So Ich werde auf ein paar Leute nennen, wie wir durchlaufen und nur herausfinden Art wie das, was die allgemeine Algorithmus ist und wir Art arbeiten durch diese zusammen. Also, lasst uns sehen. Missy. Wie denken Sie, würden wir anfangen? Was wäre ein guter Ort, um hier zu starten wenn wir transformieren möchten, sagen wir, Linie 1 in Zeile 2? Können Sie Art, nur um mir zu erklären, in Englisch, was du denkst? Noch nicht einmal über Code kümmern. >> Das erste, was ich tun würde, würde sein Art der direkten Anwender, ihnen zu sagen, was Sie wollen. Okay, so, sagen wir, "Hey, Benutzer. Ich möchte a string "- awesome. Also lasst uns notieren. Den Benutzer zur Eingabe einer Zeichenfolge. Das klingt nach einem guten Start. Gut. Fragen wir Kelly Ren dieser Zeit. Was würden wir dann wollen als nächstes tun? Was ist in der Art unserer nächsten -? >> Sammeln ihre Ein-und speichern Sie es als eine Variable. Great. So sammeln die Zeichenfolge speichern Sie es in einer Variablen. So ist es etwas Besonderes, wollen wir hier tun? Wollen wir ihren Input zu überprüfen vor -? >> Ja. Was könnten wir überprüfen möchten? >> Nun, Sie sagten, dass wir nicht zu prüfen, ob es eine Zahl ist, nicht wahr? Weil es gehe davon aus, dass es kleingeschrieben ist? Yeah. So stellt sich heraus, dass - yeah. So getString garantiert uns zurückzusenden einen String zurück. Es wird nicht eine Nummer zu uns oder so etwas zurück. Es könnte stellige Zeichen in diesem String, though. Und diejenigen, können wir ignorieren, wie wir die Kapitalisierung tat. Aber ein leerer String ist vollkommen in Ordnung, so Falle hier auf Zeile 4 und 5, rechts, wo es keine Eingabe, und wir haben nichts als unsere Leistung setzen. Wir müssen nicht darum, sicherzustellen, dass es etwas in der Zeichenfolge Sorgen oder dass der String mindestens 4 Zeichen lang sein; alles ist in Ordnung. Das ist also im Gegensatz zum Beispiel, mit wie die Pfennige Programme, die Sie geschrieben haben wo Sie mussten sicherstellen, dass Sie bekamen nicht-negative Zahlen; Sie mussten sicherstellen, dass Sie waren immer die korrekte Anzahl der Tage in einem Monat. Und wie macht ihr das? Wie würden Sie tun, diesen Test? Was hatte das verlangen, dass Sie zu benutzen? >> Do-while-Schleifen. Do-while-Schleifen, andere Arten von Schleifen auch, yeah. So stellt sich heraus haben wir nicht, um eine Schleife in diesem Fall, wenn wir nach einer Zeichenkette auffordert, ist das ganz nett. Alles klar, Sie fortfahren. So, Stella. Kannst du uns ein wenig über das, was wir als nächstes tun sollten? So jetzt haben wir den String, wir haben es in einer Variablen gespeichert; was wir brauchen, um mit der Zeichenfolge zu tun? >> Wir müssen - Identifizierung des 2 - Ja, nur sagen, dass es in Englisch, das ist genial. >> Identifizieren Sie die [unverständlich] Hauptstädten - oder Großbuchstaben. Yeah, so dass Sie erkennen, welche diejenigen Groß-und Kleinschreibung sind würde. Wir können nicht Groß-oder Kleinbuchstaben, bis wir which ones identifiziert haben. Also werden wir, dass hier setzen. Also, nur darüber nachzudenken, diesen Prozess, wie machen wir diese Identifikation? Weißt du, Dan? Art, was wir - was Tool müssten wir verwenden aus unserem Werkzeugkasten? >> Ich würde es in irgendwie wie ein Array oder jeder Zeile ist eine eigene kleine Box, und dann Großbuchstaben es von dort oder nicht. Okay, so ein Werkzeug, das wir verwenden können, ist ein Array. Was haben wir bei in der Zeichenfolge suchen, obwohl, um herauszufinden, - wir hatten an den Zeichen erscheinen. >> Also hast du an der Länge des Strings aussehen? Yeah, so dass ein Teil, das ist immer die Länge des Strings. Nur aus Neugier, was wir verwenden, um die Länge eines Strings zu bekommen? >> Strlen? Yeah, strlen, wir nennen das "strlen" All diese String-Funktionen, so strlen ist eine Funktion, und es ist super praktisch, weil wir es können nur sagen, Hey, strlen: Hier ist ein String ist, sag mir, wie lang es ist. In dem Vortrag heute, sprach David eine Menge darüber, wie strlen umgesetzt wird, , was eigentlich los ist hinter den Kulissen. Aber dies ist einer der ganz super handlich diejenigen. Wieder gibt es andere, die auch in der Zeichenfolge Bibliothek, wie strcmp, die "strcmp" geschrieben wird, die verwendet wird, um Zeichenfolgen miteinander zu vergleichen. Andere, die Sie sich wie strstr verwenden, was gut für die Suche Sub-Strings und so weiter. Zum größten Teil, sie alle mit str beginnen und dann gehen auf etwas anderes zu sein. Der Grund warum sie eigentlich gar nicht buchstabieren sie wie String und so weiter Denn wie zurück in den frühen Tagen des C, wenn die Leute waren zuerst schriftlich und all das, sie hatten Einschränkungen bei der Anzahl der Zeichen, die Sie verwenden für die Funktion Namen und Variablennamen, so ist alles wie Super kondensiert. Aber wenn Sie etwas sehen, was mit str beginnt, das bedeutet in der Regel, das hat etwas mit einer Schnur zu tun. Okay, so mußt du die Länge der Zeichenkette zu erhalten, und dann, was machen wir mit den Charakteren zu tun? Weißt du, Sam? >> Ich habe keine Ahnung, ich habe versucht, es herauszufinden. Ich weiß wirklich nicht, - ich wünschte, es gäbe eine Möglichkeit, um - Ich meine, ich würde vielleicht denken, wir könnten etwas mit der Quote zu tun und gleicht, aber ich kenne keine Funktion wie das wissen. Yeah. >> Aber das - würde es nicht unbedingt arbeiten, denn dann würdest du die Räume zu sein - Sie müssten den Platz haben, um Tipps, wie zu bekommen - Okay. >> Ich weiß nicht - ich bin Art an dieser Stelle verloren. Ja - nein, nein, nein, das sind gute Punkte. Also, was wir tun müssen, ist, wie Sam sagte, wir brauchen, um zu verfolgen, welche Buchstaben die ungeraden Buchstaben sind, und welche sind die sogar Briefe. Aber wir wollen sicherstellen, dass wir nicht nur nach an der geraden und ungeraden Indizes in der Zeichenfolge, sondern Betrachten der ungeraden und geraden Buchstaben in der Zeichenfolge, also müssen wir irgendwie haben diese Unterscheidung zwischen Briefe - wie, was ist eigentlich A, B, C, D, oder so auf, und was sind die Dinge nicht Buchstaben, sondern noch in unserem String. Zum Beispiel hier, wie dieses Ausrufezeichen ist kein Brief, aber es ist immer noch Teil unseres string; es ist noch ein char. Ebenso sind alle diese Bereiche - Es macht keinen Sinn, einen Raum zu nutzen, nicht wahr? So wollen wir sicherstellen, dass wir irgendwie überspringen diejenigen, während noch Tracking Quoten und gleicht. So Art in unser Programm Toolbox so weit, wenn man so will, Wir haben eine Reihe von verschiedenen Tools, die wir gesprochen haben. So ein, zum Beispiel, sind Variablen, wie wir hier die Rede. Ein weiteres Werkzeug, über die wir gesprochen haben, sind Funktionen. So haben wir über Variablen in unserem Pseudocode hier gesprochen wie das, was werden wir nutzen, um unsere Zeichenfolge zu speichern. Wir haben über Funktionen geredet, um die Länge eines Strings zu bekommen, wie strlen. Wir haben über etwas anderes gesprochen, und wir haben darüber gesprochen für viele bereits in Abschnitt heute: Schleifen. Was denkt ihr über die Verwendung einer Schleife in diesem Programm? Jared, was denkst du? Würden wir eine Schleife in diesem Programm? >> Wahrscheinlich nicht, nein, weil Sie nicht haben, um durch sie mehr als einmal. Okay, Sie müssen nicht durch, was mehr als einmal? >> Die gesamte Zeichenfolge. Richtig, so dass Sie nicht haben, um durch die Zeichenfolge gesamten sofort gehen. Leider das machte überhaupt keinen Sinn! Sie müssen nicht den gesamten String mehr als einmal zu gehen. Okay. Was denken Sie? >> Ich denke, dass es besser ist, sie zu benutzen so können wir wie Kapital zu tun, während die Lage ist es [unverständlich] Nummer. Groß, und so nutzen, was? Okay, so dass wir sagen, dass sollten wir eine Schleife verwenden, weil wir es wollen Großschreibung eines Buchstabens, während es nicht eine Nummer. So - sorry, hatte die Sie hinzufügen möchten? >> Ich wollte sagen, dass die Art und Weise Sie die Zeichenfolge behandeln und es [unverständlich] trennen die [unverständlich] auf die Charaktere? Yeah. >> Und dann können wir die Zahlen zuordnen - oder am Standort der Buchstaben in der Zeichenfolge basierend? Yeah. >> Und erkennen, ob es eine gerade oder ungerade ist und die Buchstaben selbst nutzen während die Lage des Briefes ist [unverständlich] - sorry. Great. Also nur ein Rückblick. Können Sie erinnern mich an deinen Namen wieder - es tut mir leid. >> Charlotte. Charlotte, okay. Also, was Charlotte sagt, das ist völlig richtig - gosh, Gedankenstrich likes this auf Auto auf mich - ist, dass wenn wir uns in einem String wie dieser an der Spitze - "Thanks for the add" - als eine Folge von Zeichen wo das ist auf Position 0, die h ist auf Position 1. A ist 2, dann haben wir 3, 4, 5; der Raum ist an der Position 6. Während - was ist die Position der f? 7! O? 8. R? 9. Und dann haben wir 10, und dann kann ich nicht wirklich schreiben, ohne dass es irgendwie immer chaotisch auf dem Bildschirm. Aber das ist eigentlich wie wir über Strings im Speicher sprechen. Ist es ein String ist eine Folge von Zeichen, und wenn wir auf ein einzelnes Zeichen in einem String, Wir tun dies oft mit dem Hinweis auf dieses Charakters Position innerhalb des Strings, wahrscheinlich die gleiche Weise, dass wir darüber reden September ist der neunte Monat des Jahres oder Montag ist der erste Tag der Woche. Also das gibt uns eine Möglichkeit, herauszufinden, welche ungeraden gegenüber sind sogar weil Sie hier sehen können, Wenn wir vergleichen sie mit diesem T, Sie können sehen, dass alle der aktivierten diejenigen sind auch Positionen, mindestens für das erste Wort, und dann die Dinge zu bekommen Rabatt, wenn wir diesen Raum getroffen geworfen, weil wir zählen nicht diesen Raum als Brief, so ist es, als ob wir begonnen und ging 0, 1, 2, 3, 4, 5, Raum, 6, 7, 8, Raum, 9, und dann 10, 11, 12 und so weiter. Cool, so dass wir auf jeden Fall wollen, irgendeine Art von Schleife gehen über jedes der Zeichen in der Reihe. Also an dieser Stelle, wir kommen zurück zu unserem alten Pseudocode hier. Als Teil dieser Identifikation which ones sind Großbuchstaben und welche sind Kleinbuchstaben wir wollen dies in einer Art Schleife. Loop, Doppelpunkt. Welche Art von Schleife, aus den Arten von Schleifen, die wir haben, scheint ein gutes zu in diesem Fall sein? >> Ich dachte die for-Schleife. Und warum denken Sie for-Schleife? >> Weil es beginnt bei Null, und dann wenn wir die Länge der Zeichenfolge zu erreichen, und dann jede Iteration kann man [unverständlich] auch? Ja, genau. Also, aus den verschiedenen Möglichkeiten von Schleifen, haben wir für Schleifen, while und do-while-Schleifen. Wo eine for-Schleife ist besonders nützlich ist, wenn Sie wissen wollen, Art, wo du bist bei in der Schleife wie oft die Schleife bisher ausgeführt. Das ist genau das, was wir in dieser Situation wissen wollen, wie Kelly sagte, Aus der früheren Kommentar Charlotte aus, dass wir die Position wissen wollen der Zeichen innerhalb der Zeichenfolge, und die for-Schleife wird uns nur, dass denn wenn wir beginnen Art Rückblick auf unseren String, Wenn wir beginnen unsere for-Schleife bei 0, und wir gehen durch die Länge des gesamten Strings, dann können wir assoziieren die Buchstaben T mit der 0 in unserem for-Schleife, Buchstabe H mit der 1 in unserer for-Schleife, und so weiter, den ganzen Weg durch das Ende der Saite. Lassen Sie uns also mit dem Programmieren beginnen diese nur ein wenig nur damit du Jungs bekommen ein Gefühl für das, was es aussieht. Ich werde diese zu retten, so haben wir unsere Pseudo-Code hier, und ich werde alles löschen. Also habe ich ein unbeschriebenes Blatt. Ich werde durch das Schreiben int main (void) starten { Ich werde die Rückkehr 0 in gesetzt und dann das}. Also in der Regel, wenn ich starten, ist das, was ich mit zu beginnen. Ich rette ihn so, dass ihr Jungs es haben. So eines der ersten Dinge, die wir gesprochen haben, war immer Eingabe vom Benutzer und Speichern derselben in einer Zeichenkette. Wie bekommen wir Eingabe von einem Benutzer? >> GetString. GetString, alles in Ordnung. Also, wenn ich geben GetString () und einem Semikolon. Lasst uns versuchen Sie dies, wird diese Sicht in erster Linie? Und warum wird das nicht laufen? >> Du musst die Variable deklarieren. Ich habe eine Variable zu deklarieren. Okay. Also, wie kann ich das tun? Haben Sie etwas dagegen, etwas zu schreiben, teilen sie? Und dann können wir nach oben ziehen. Mal sehen, Dan, rechts, okay. Oder Daniel. Kopieren Sie, dass in, string input = GetString (). Awesome. Wird diese ausgeführt werden? Lass es uns versuchen. Hit run kopieren, Quellcode, Gebäude, ist ein Fehler aufgetreten. Okay. Also was ist denn hier los? Verwendung von nicht deklarierter Bezeichner 'string'. >> Wir müssen die Bibliotheken enthalten? Yeah, so Dan zu sagen, wir müssen die Bibliotheken enthalten. Ist das, was Sie sagen wollten, Stella? Awesome. Das ist genial, so Stella, können Sie kopieren Sie diesen Code von Daniel Space? Wenn Sie auf Daniel Roland Ki, kopieren, und dann werden Sie setzen die Include-Zeile ein, und speichern Sie es dann aus? Lassen Sie mich wissen, wenn du fertig bist. Also das include Syntax ist auch eine Art von funky; es ist wie dieser Hash-Tag, Und es gibt die zählen, und dann gibt es diese spitzen Klammern. Erinnerst du dich, wie das funktioniert, oder soll ich es auf diesem Code hier richtig? >> Ich bin gut. Okay. >> Ich druckte es - ich war mir nicht sicher, welche Bibliothek, though. Oh, okay - yeah, so ist es der CS50-Bibliothek. >> Oh, habe ich stdio Bibliothek. Oh, habe es - ja, nein, that's - so stellt sich heraus, dass die String ist eigentlich etwas, das einer besonderen CS50 ist. Es ist eigentlich kein echter Typ string denn gerade hier ist String in der Art Position, - wir erklären eine Variable namens Eingabe vom Typ String - und wir sind im Inneren des Eingangs setzen der Wert, der an uns zurückgegeben wird: Der Ausgang dieser GetString Funktion aufzurufen. Man kann sagen, dies ist ein Aufruf der Funktion, weil es hat die Klammern, wie printf tut, wie strlen tut. Aber String ist eigentlich kein echter Typ in der C-Sprache. Wir haben es zu einer Art gemacht, und wir werden über mehr, was es eigentlich ist zu nehmen in C, weil es eine Möglichkeit, mit Saiten zu arbeiten; wir haben nur etwas zu machen, nur ein bisschen schöner gemacht. So here we go. Hier ist Stella-Code. Es hat die # include . Andere Menschen werden dies wie ein Hash nennen sind manchmal oder eine scharfe gehören. Jetzt können wir starten, führen Sie es, und wir immer noch eine Fehlermeldung. Mal sehen, was passiert. "Unbenutzte Variablen 'Eingang'." Okay, das ist so, dass cool, das ist cool. Ich meine, es ist nicht wirklich cool, weil wir immer einen Fehler und es läuft nicht, aber was dieser sagt, ist, dass wir haben unsere Variable verwendet, was Sinn macht. Wir haben nicht versucht, etwas zu tun. Dies ist eine Möglichkeit, dass Clang versucht uns zu helfen, um sicherzustellen, dass wir nicht nur die Verwendung von Variablen und dann versehentlich nannte sie etwas anderes später im Code, hilft uns, Fehler zu vermeiden auf diese Weise. Alles klar, also haben wir Input von Benutzer, Wir lagerte sie in einer Variablen. Der nächste Schritt war, dann beginnen, alle Zeichen in der Zeichenkette und Identifizieren welche sind die Großbuchstaben und welche sind in Kleinbuchstaben geschrieben sein. Und wie Kelly und Charlotte aufgewachsen, Wir tun dies mit einer for-Schleife. So hat jemand erinnern die Syntax einer for-Schleife und möchte einen Stich an nur schriftlich zu nehmen die erste Zeile der for-Schleife, nur die für Bit? Kelly, du willst, es zu versuchen? >> Ja, so haben Sie zu initialisieren erste, so habe ich i = 0, und dann habe ich i > Ja, schraubte ich ein bisschen, aber ja. Okay, lass uns nach oben ziehen. Awesome. >> Aber dann wusste ich nicht, wenn Sie das hatte - Ja, okay. Also hier ist was Kelly hat: Lasst uns an sie schnell zu suchen. So hat sie den CS50-Bibliothek an der Spitze enthalten. Sie ist die Standard-IO-Bibliothek an der Spitze enthalten, und die Standard-IO verfügt über Funktionen wie printf, Wenn Sie also schon immer einmal printf verwenden, müssen Sie diese Zeile. Und dann waren die String-Bibliothek, die wir brauchen, da der String-Bibliothek hat strlen-Funktion, die wir in nur ein bisschen zu bekommen. Also, wenn wir schauen, was Kelly getan hier Können Sie uns durch das, was du getan hast? >> Ja, so - ich meine, ich habe Fehler, so - Ja, nein, es ist - >> Also wollte ich den String, dass ich nur "string" bekam nennen. Ich wollte zu drucken die Zeichenfolge und dann habe ich - Ich wollte gerne die Zeichenfolge als wie ein Array der einzelnen Zeichen Anderssein [unverständlich], richtig? Und dann wollte ich an der Position 0 beginnen und dann alle 2 Räume, Ich wollte zu nutzen, so dass ich nur beschrieb sie als 23, denn ich war auf der ASCII-Tabelle suchen. Also das ist, was ich dachte - ich weiß, es ist nicht richtig. Got it, so ist dies ein guter Start. Ich denke, ein großer Teil der Rahmen ist hier statt. Lassen Sie uns über Art Zeile für Zeile gehen und sehen, was los ist. So der Weg Ich mag, dies zu tun ist nur durch Kompilieren des Codes starten und Vermietung der Compiler mir sagen wie, was ist mit meinem Code falsch, weil der Compiler ist wirklich gut sagen, was ist falsch mit Ihrem Code. Also, wenn wir es spielen, bauen, und es nicht zu bauen. Er sagt, es war ein Fehler, Wenn wir also nach unten scrollen und schauen Sie sich den ersten Fehler, es sagte - Wir blättern zurück bis an die Spitze, können wir sehen, gibt es 5 Fehler hier unten an der Unterseite erzeugt. Hoppla, das ist wirklich abgeschnitten. Ich denke, das ist einfach nicht zu einem besser. Here we go. So gibt es insgesamt 5 Fehler erzeugt. Hier kann ich nur die ersten 2, so kann ich dies bis ein wenig zu bewegen und dann Art Scroll up. Dies ist der Befehl, der ausgeführt wird, um den Code zu kompilieren wurde, und dann der erste Fehler war file.c hier: "Identifizieren oder '(' erwartet", und es war auf dieser Strecke , wo wir gesagt string = GetString (). Sie können gleich hier, dass es on line 8 von file.c war zu sehen, und dann habe ich glaube, dies ist Zeichen 12 - das ist der Fehler. Also, was ist los on line 8 falsch - Kelly? >> Sie müssen nur es nennen, wie ein Brief oder so etwas, wie string s oder so etwas? Ja, so stellt sich heraus, dass diese besondere Art Namen, so string, int, char, short, sie sind alle spezielle Schlüsselwörter, und man kann nicht wirklich nutzen sie als Namen Ihrer Variablen, weil der Compiler sieht das und sagt, "Oh, ich weiß, das ist eine Art" so kann man nicht wirklich eine String-Variable namens string, wie ich versuche zu tun, das wird nicht funktionieren. Aber anstatt, können wir nennen es so etwas wie s oder st oder str. Wir könnten auch nicht nennen int. Wir können nicht einen String namens int. Wir können nicht einen String namens char; keiner von denen funktioniert. Also werden wir nennen es einfach s zur Zeit. Awesome. Also, was als nächstes passiert in dieser Linie? String - diese Zeile sieht ziemlich gut aus? Versuchen wir es noch einmal zu versuchen, lass uns starten Sie es. Okay, so dass wir immer noch Fehler. Dieses Mal sind wir bis zu 4 Fehler. Also haben wir eine von ihnen. Lasst uns nach oben bewegen. "Unexpected type name 'string': Ausdruck erwartet", ja? >> Ja, das ist, weil ich den String nennen versucht ist. Ja, so sieht es aus, wie wir haben nun auch die fix gehen alle diese Verweise zu bespannen. Sie sehen, es ist ein Verweis auf String hier ein hier ein hier so können wir alle diese an s bewegen. Great. Okay, führen Sie es erneut. Building - ein anderer Fehler aufgetreten ist. Okay, jetzt sind wir auf einen Fehler, so int i = s und dann die eckigen Klammern. So können Sie uns ein wenig über, was Sie hier tun, Kelly? >> Ja. Es war on line 10. >> Ich weiß nicht, ob wir das alles benötigt, aber ich denke, ich habe versucht, - Ich rette es so können Sie zusammen. >> Ich glaube, ich war versuchen, es zu sagen, dass an der Position 0 beginnen am Anfang meiner for-Schleife, so dass ich denke, vielleicht, dass zu sagen unnötig war. Also nur zur Erinnerung, Sie sagten, dass diese - Sie versuchen, dies an der Position 0 beginnen und sie erhalten - yeah, also denke ich früher auch, wenn Sie den Code gingen, Sie sprachen darüber, wie man wollte, um die Zeichenfolge als Array behandeln reden so können wir jedes Zeichen einzeln zugreifen. Ich denke, Dan genannten Arrays auch versuchen, Strings in Arrays umwandeln. Es stellt sich heraus, dass die Art der unter der Haube, ein String tatsächlich als Array gespeichert schon und Sie können es wie ein Array zuzugreifen; es gibt keine Konvertierung, die Sie zu tun haben. Ein String isn't - so - ein String ist nicht wirklich ein Array, aber man kann sie als solche zugreifen, da alle Zeichen gespeichert werden eine rechte nebeneinander im Speicher, wenn Sie so wollen, um das erste Zeichen des Strings bekommen, es ist die gleiche wie immer die erste Zahl in einem Integer-Array. So wir oft - wir werden beziehen sich auf die 2 wie oh, als ein String ist, als ein Array, obwohl es wirklich - sie sind sehr verschiedene Dinge, Sie können sie jedoch sehr ähnlich zu behandeln. So stellt sich heraus, dass diese Linie tatsächlich - brauchen wir nicht, um jegliche Konvertierung zu tun, und tatsächlich Diese ist eigentlich nicht ein gültiger Ausdruck, das ist, was unsere Compiler sagt uns. Es sagt: "Hey, es ist ein Ausdruck erwartet, und was ich hier habe ist etwas, das nicht ein Ausdruck. " Um ein Array deklarieren, alles, was Sie tun müssen, ist so etwas wie dieses mit einem Semikolon, und dann erzählst du das Array, wie lange Sie es haben wollen, wie 5, so dass diese Linie 10 wird ein Array namens i mit 5 Zahlen in ihm zu erklären. Dies ist ein zur Seite, das ist nicht notwendig für den Code, aber das ist - das ist eine Art, was die Erklärung aussieht. >> Wie würden Sie nicht char i [strlen (s)]? Char i [strlen (s)]? >> Char i, und dann im Inneren der Halterung, strlen (n). Ja, und so konnten wir - konnten wir dies tun, und dies würde erklären - was tun? >> Ich denke, es wäre ein Array deklarieren der, wie - of - oh, Sie brauchen nicht die i - oh, yeah, Sie definitiv nicht brauchen das i. Man deklariert ein Array von Zeichen der Länge s. Und so was Sam sagt, ist, dass diese Linie 10 - lassen Sie mich etwas Platz zwischen ihm und dem Rest, damit wir sie isolieren kann - Diese Zeile 10 würde ein Array deklarieren von Zeichen, strlen (s) im Wert von ihnen, aber wir eigentlich brauchen die i, und der Grund müssen wir das i ist, weil wir dem Array einen Namen brauchen; sonst hätten wir nicht einen Weg, um das Array später beziehen im Code. Also das hier ist die Array-Namen und im Inneren ist die Länge. Dies gibt uns ein Array, aber dies ist - auch dies ist eine Erklärung. Es ist nicht eine Aufgabe, es ist nicht eine Initialisierung. Wenn wir erklären, dieses Array wie diese, es gibt tatsächlich nichts in den Inhalt des Arrays. Es ist nur Junk - was ist da drin. Und wie gesagt, wir eigentlich gar nicht brauchen, um diese Umwandlung zu tun, weil wir schon zu behandeln string s als ein Array. Ich weiß, wir laufen ein bisschen lange auf Zeit aber ich will nur wirklich schnell, dies zu for-Schleife und zeigen Ihnen, wie die einzelnen Zeichen im Array zuzugreifen, denn das Schlüssel für unser Auftrag ist. Und dann lassen wir euch von dort aus gehen. Also hier, wir haben eine for-Schleife das sieht fast gut. Was ist nicht ganz bald da? Soundso - was nicht ganz richtig über diese for-Schleife? >> Keine geschweiften Klammern? Keine geschweiften Klammern, zum Beispiel. Wanna sicherstellen, dass wir den Körper der Schleife mit geschweiften Klammern haben. Oops, nicht das Quadrat brace! Und was ist die nächste Sache, die wir brauchen, um mit dieser Schleife zu tun? Wenn ich versuche, und führen Sie es, was ist dieser Fehler, dass ich bekommen? Ich bekomme alle diese Fehler - ich muss i initialisieren. Great. So wird dies eine Schleife sein - das ist nicht ganz da, aber es ist immer ganz nah. Dieser Code können wir jetzt laufen, bauen, ein Fehler immer noch auftritt. Warum ist es immer noch beklagen, sagen Sie den Ausdruck nicht verwendet wird, und das ist, weil diese Zeile nichts tut. Wir haben nicht speichern es überall, wir nicht speichern Sie das Ergebnis. Wo sollen wir gespart werden dieses Ergebnis? >> S oder i? Genau, und dieser funky Syntax, Diese s mit den eckigen Klammern bedeutet, Zugriff auf das i-te Zeichen von s. Das wird etwas, das wirklich wichtig ist für die Zuordnung sein. Leider, wir gehen zu müssen, hier zu stoppen, so dass Sebastian Abschnitt kann kommen, aber ich bin froh, nach draußen zu bleiben und werden alle Fragen zur Verfügung. Also danke Jungs für ihr Kommen. Dies sollte jetzt hochladen, erstellen, ausführen. Wir können eine Zeichenfolge wie "Hallo" und es gibt "Qox". [Gelächter] Also nicht ganz da, aber in Bewegung, immer auf jene Schleifen! Danke fürs Kommen, und ich bin draußen.