Sprecher 1: Lassen Sie uns über Wasser sprechen.
In diesem Problem, bitten wir um den Benutzer zu sagen uns, wie lange in Minuten ihre Dusche war
und dann berechnen wir die äquivalente Anzahl der Flaschen Wasser
dass ihre Dusche verwendet.
>> Also, was sind unsere To-Dos für dieses Problem?
Erstens, wir gehen zu wollen, aufzufordern und dann zu validieren
der Eingang, die der Benutzer uns gibt.
Sobald wir sicherstellen, dass wir gültige Benutzereingabe,
wir werden die zur Berechnung äquivalente Anzahl von Flaschen Wasser
dass der Benutzer hatte während ihre Dusche, und dann sind wir
Gehen sie zu erzählen von Drucken Sie diese Zahl aus.
>> Also lassen Sie uns unser erstes angehen Aufgabe, Führung und Validierung
die Benutzereingabe.
Dafür haben wir geschrieben ein Funktion für Sie angerufen
get_int in der CS50 Library.
get_int stellt sicher, dass die Benutzereingaben eine ganze Zahl, so dass jede positive Zahlen,
negative Zahlen oder Null werden alle angenommen.
Aber wenn der Benutzer gibt etwas anderes, so eine beliebige Kombination von Buchstaben oder Zahlen
oder Dezimalzahlen, dann ist die Benutzer werden aufgefordert, erneut zu versuchen
und die Funktion wird nicht alles akzeptieren bis der Benutzer gibt ihnen eine ganze Zahl ist.
>> Wie können wir also get_int benutzen?
Wenn Sie öffnen Sie Ihren Arbeitsplatz und Erstellen Sie eine Datei namens integer.c lasst uns
Geben Sie die folgende.
Hashtag umfassen cs50.h.
Dies ist notwendig, weil get_int ist ein CS50-Library-Funktion,
so müssen wir Hashtag umfassen seine Erklärung, um
die Funktion zu verwenden.
Und dann in meinem Haupt Funktion Ich bin gerade dabei
einfach die Funktion get_int nennen.
>> Also lassen Sie uns dies und sehen, wie es funktioniert.
Ich habe es schon zusammengestellt, also lassen Sie uns gehen Sie einfach weiter und dieses Programm ausführen,
./ganze Zahl.
Ich habe hier eine schnelle und hier ist, wo ich den Wert eingeben.
Sagen, dass ich in nur ein paar ganze Zahl ausgedrückt, 50, das Programm excepts und quitt
und das ist das.
>> Aber ich sage es noch einmal laufen und I-Eingang etwas anderes.
Vielleicht, hallo Welt.
Das ist nicht eine ganze Zahl, so dass die Programm wird mir prompt erneut zu versuchen.
Lassen Sie uns versuchen Sie es erneut mit vielleicht eine Dezimalzahl diesmal.
0,5, wieder kein ganzzahliges so das Programm wird es nicht akzeptieren
und es wird mir sagen, erneut zu versuchen.
Also lassen Sie uns es eine andere Nummer geben.
Das Programm akzeptiert es, beendet wird, und wir sind fertig.
>> So, jetzt haben wir eine Funktion die es uns erlaubt und sicher
dass der Benutzer gibt eine integer, aber wie können wir
tatsächlich halten den Überblick über die integer durch den Benutzer eingegeben?
Nun, alles, was wir tun müssen, ist Speicher dieser Wert in einer Variablen, sagen n.
Also, wenn ich erklären eine ganze Zahl n, und ich setzen Sie diesen Wert auf get_int,
dann n speichert dann was auch immer Wert auf den Benutzer eingegeben.
>> In Ordnung, so jetzt haben wir dafür gesorgt, dass der Benutzer wird uns eine ganze Zahl
und wir wissen, wie den Überblick zu behalten der ganze Zahl, aber denken Sie daran,
ganze Zahlen sind sowohl positive als auch negative.
So ist es nicht wirklich Sinn machen, Im Rahmen dieses Problems
dass der Benutzer nimmt eine Dusche von Negatives sagen 12 Minuten.
Deshalb müssen wir sicherstellen, dass der Benutzer tatsächlich gibt uns eine positive ganze Zahl ist.
Jetzt haben wir nicht nur ein einzelne Funktion für das,
so dass wir gehen zu müssen, zu schaffen, die uns selbst.
>> So wollen wir kontinuierlich an fordert den Benutzer
bis sie geben uns eine positive ganze Zahl ist.
Wenn ich etwas zu tun, dann kontinuierlich das ist vergleichbar mit einer Schleife, eine Wiederholung.
Damit wird eines der Konstrukte, die wir verwenden in c Wiederholung und Schleifen zu implementieren
ist eine while-Schleife.
So eine while-Schleife, wie hier gezeigt, wird ausgeführt
was auch immer in dem Körper der Schleife als solange die vorgegebene Bedingung auswertet
auf true.
Sobald dieser Zustand das Ergebnis falsch, dann
das Programm wird fortgesetzt, was auch immer kommt, nachdem der Körper der Schleife.
>> Während also Schleifen gehen zu sein wirklich nützlich in CS50.
Aber in diesem besonderen Fall wissen wir, dass wir
geht der Benutzer zumindest aufzufordern einmal und dann nur Schleife, falls erforderlich.
Also hier kommen wir zu einem spezielles Konstrukt und das ist
sehr ähnlich dem, während Schleife bezeichnet eine do-while-Schleife.
>> So eine do-while-Schleife führt die Körper der Schleife mindestens einmal
und dann überprüft er, ob es ausgeführt werden soll,
wie zu einer while-Schleife entgegengesetzt, so wird überprüft den Zustand
und dann den Körper auszuführen.
So in einem do-while-Schleife, was wir könnten Sie ist es, die Benutzer für eine ganze Zahl aufgefordert,
und dann prüfen, ob es ungültig ist oder nicht.
Wenn es ungültig ist, dann werden wir wiederholen Sie den Vorgang mit der Abfrage,
geben uns eine weitere ganze Zahl, und dann nur dann, wenn die ganze Zahl gültig ist,
wir werden auch weiterhin was kommt danach.
>> Jetzt werden Sie feststellen, dass die Erklärung der ganzen Zahl n
leicht unterschiedlich ist zu dem, was wir tat, bevor in dem vorherigen Beispiel
und dies ist wegen des Umfangs.
Wenn wir die ganze Zahl n innerhalb erklärt hatte des Körpers des do-while-Schleife,
dann würden wir nicht in der Lage sein, den Zugriff auf dass Wert von n außerhalb dieser geschweiften
Zahnspange den Körper der Schleife anzeigt.
Aber wir in der Tat wollen die für den Zugriff auf später von n in unserem Programm.
>> OK, jetzt lassen Sie uns darüber reden, was soll dieser Zustand sein.
Wir wollen, dass die nur auf reprompt Benutzer, solange n ungültig ist.
Also denken Sie sich, was eine ungültige Integer-Wert würde so aussehen
und erstellen Sie dann einen Booleschen Ausdruck zum Ausdruck bringen, dass.
>> Wir sind fast mit unseren Unteraufgabe fertig nachzufragen und die Validierung von Benutzereingaben.
Also lassen Sie uns dies ein wenig zu machen Bit benutzerfreundlicher
und geben dem Anwender ein wenig bisschen mehr Informationen
von dem, was wir sie auffordern,.
Also lassen Sie uns den Benutzer auffordern, pro die spec, mit den String Minuten.
So Ihre printf Aussagen verwenden, stellen genau sicher, dass Sie dieses Spiel.
>> Gut.
So, jetzt haben wir einen gültigen Benutzer Eingang, eine positive ganze Zahl
Wert für wie viele Minuten sie verbrachten in der Dusche.
Also, was kommt als nächstes ist zu berechnen die entsprechende Anzahl von Flaschen.
Was werden wir hier zu tun könnte sehr klar, man auf den ersten,
und das ist in Ordnung.
Was wir wollen, ist, dass wir beginnen soll Üben
Die Idee Muster zu erkennen und Entwicklungs Formeln für das Problem.
>> Wir sind also pro die Spezifikation gesagt dass eine Minute lang in der Dusche
entspricht etwa 12 Flaschen Wasser.
So nun zwei Minuten würde äquivalent zu 24,
und fünf Minuten wäre sein entspricht 60.
So, jetzt, wenn Sie denken Sie haben es, dann lass uns
sehen, ob Sie kommen können mit einem Muster oder Formel
zum Ausdruck bringen, wenn wir sagen, n Minuten, wie viele Flaschen Wasser
würde, dass in Bezug auf n ausgedrückt werden?
>> Wiederum, obwohl das könnte zunächst einfach sein,
später, als wir bekommen komplizierter Probleme
wir gehen in zu wollen, zu erhalten die Praxis der Identifizierung
Muster und Entwicklungs Formeln diese Dinge herauszufinden.
>> In c haben Sie Zugriff auf Standard arithmetische Operationen,
Addition, Subtraktion, Multiplikation und Division.
Also lasse ich werde es Sie jetzt, um herauszufinden,
wie zum Ausdruck bringen die entsprechende Anzahl von Flaschen
dass der Benutzer verbraucht während der Dusche.
>> In Ordnung, wir sind fast fertig.
Wir haben die Benutzer für ihre Eingabe aufgefordert, wir haben dafür gesorgt, dass es eine gültige Eingabe ist,
und dann haben wir herausgefunden, wie man zur Berechnung der äquivalenten
Anzahl der Flaschen, die sie verbraucht wird.
Also das letzte, was zu tun ist, um Ausgangs die äquivalente Anzahl von Flaschen
und hoffentlich ermutigen sie etwas Wasser zu sparen.
>> Ausgabe der Wert sein eine printf-Anweisung.
Wenn ich wollte Ihnen, dass ich zu sagen, drei Tiere, zum Beispiel,
Ich könnte eine printf-Anweisung das sieht so etwas wie dieses.
Ich habe drei Haustiere, und ein neues Zeile für nette Formatierung.
>> Nun wollen wir nicht zu einfach schwer Code Dinge.
Sagen die Zahl meiner Haustiere ändert sich im Laufe der Zeit.
Dann werde ich Gebrauch machen Platzhalter in meiner printf-Anweisung.
Also hier meine Nummer ist eine ganze Zahl.
Also werde ich einen Platzhalter zu machen für eine ganze Zahl mit% i.
Ich werde die Zeichenfolge zu schreiben, und dann, nach dem String
Ich schreibe ein Komma und dann die Variable, die ich drucken möchten.
So wird dieser Wert gedruckt werden anstelle dieser Platzhalter% i.
>> Sie können Platzhalter verwenden, wie gut, für Schwimmer mit einer% f.
Sie können auch haben mehrere Platzhalter in einer Zeichenkette.
Zum Beispiel, wenn ich eine bestimmte Anzahl von Hunden und eine Anzahl von Katzen,
Ich habe zwei Platzhalter hier und dann meine beiden Variablen in den entsprechenden Auftrag.
>> Also jetzt, dass wir wissen, wie zu drucken die in Variablen gespeicherten Werte,
das letzte, was zu tun, ist, dass wir sicherstellen,
drucken Sie den Wert in das genaue Format die in der Beschreibung angegeben.
Damit haben wir aufgefordert, die Benutzer und validiert ihre Eingabe.
Wir haben dann das Äquivalent berechnet Anzahl der Flaschen Wasser
dass sie während ihrer Dusche verbrauchen, und wir haben diesen Wert zu ihnen ausgegeben.
Und so haben wir Wasser abgeschlossen.
>> Ich heiße [? Zamila,?] und dies ist CS50.