Hallo und herzlich willkommen. In dieser Demonstration möchte ich eine Lösung für
unsere letzte Herausforderung anbieten. Daher möchte ich
eine Lösung für unser c-Programm bereitstellen, die einige Minuten
in Anspruch nimmt und sie in die Darstellung in Tagen und in
wie vielen Jahren umwandelt.
Nicht unbedingt ein praktisches
Programm, aber es zeigt einige Schlüsselkonzepte,
die Sie hauptsächlich mit arithmetischen Operatoren lernen können, indem
Sie Eingaben über die Tastatur erhalten.
Und außerdem müssen Sie den Cast-Operator dafür verwenden, was ich in der Herausforderung
vielleicht nicht erwähnt habe, aber hoffentlich haben
Sie das herausgefunden, denn wenn Sie das tun, müssen Sie den
Cast-Operator nicht verwenden, den Sie nicht brauchen
sollten anfangs dachte ich, eine lösung brauche einen moduloperator. Aber wenn Sie einen Modul
machen, dauert es nur 2 Zoll,
denke ich.
Also, lasst uns anfangen. Lassen Sie uns Cold Blocks starten
und ein Projekt erstellen, die grundlegenden Dinge durchgehen, in denen wir zu diesem Zeitpunkt ziemlich gut sind.
Ich werde also nicht im Detail darauf eingehen, Sie können nur zuschauen.
Aber ich werde ein neues Projekt erstellen und es wird ein Konsolenprojekt sein
und definitiv c und was ich dieses
nennen werde, ist wieder, dass Sie immer gute aussagekräftige Namen erhalten möchten.
Ich werde Minutenumrechnung sagen.
Es ist also wie eine Minuten-Konvertierungs-App.
Und jetzt werde ich nur unsere Hauptleitung modifizieren. c-Datei.
Also lasst uns das loswerden. Und wir werden die include-Anweisungen beibehalten.
Und wie immer möchten Sie Kommentare hinzufügen, stellen Sie sicher, dass Sie die Kommentare hinzufügen,
nur weil ich es nicht tue, heißt das nicht, dass Sie es nicht tun sollten.
Es ist Standard. Es ist nur aus Effizienz- und Zeitgründen, ich lasse es weg.
Ganz oben im Programm lösche ich
gerne meine Variablen, die ich verwenden muss, und initialisiere sie dann.
Beginnen wir also so. Ich werde eine Ganzzahlvariable für die Minuten erstellen,
die der Benutzer eingeben wird. Und ich werde nur die eingegebenen Minuten anrufen. Ich werde es auf 0 initialisieren.
Ich werde jahrelang ein Double schaffen. Dies kann auch sehr
lang sein, je nachdem, wie viel Berechnung Sie durchführen möchten, da Sie
tatsächlich eine ziemlich große Dezimalpunktzahl erreichen können.
So lange könnte sogar eine bessere Option sein. Aber ich werde vorerst nur
ein Double verwenden und diese 0 initialisieren. 0 und Tage gleich dieser
0. 0.
Und jetzt möchte ich Eingaben vom Benutzer erhalten.
Um Eingaben vom Benutzer zu erhalten, müssen Sie den Benutzer zunächst anweisen, die Eingaben einzugeben.
Ich werde also eine Ausgabe anzeigen, die besagt, dass
Sie die Anzahl der Minuten eingeben müssen.
Und es wird dort einen Doppelpunkt und ein Leerzeichen setzen
und ihn mit einem Semikolon beenden.
Als nächstes werde ich tatsächlich die Eingabe erhalten.
Hier würden Sie wahrscheinlich sagen, dass Sie als Kommentar eine Eingabe vom Benutzer erhalten.
Wie erhalten wir Eingaben vom Benutzer? Wir verwenden die scanf-Funktion.
Denken Sie also schon vor einiger Zeit daran, sagen Sie einfach scanf, ähnlich wie printf.
Das erste Parameterargument ist der
Datentyp, den Sie zum Konvertieren einlesen möchten.
Denken Sie daran, dass alles als Zeichenfolge oder Text eingelesen wird.
Sie müssen es also so konvertieren, wie Sie es speichern möchten.
Sie setzen es also in doppelte Anführungszeichen, genau wie das printf. Sie verwenden einen Formatbezeichner.
Hier. Ich werde nur sagen, dass ich es als Dezimalzahl speichern möchte.
Also werde ich d eine ganze Zahl
sagen, keine dezimale ganze Zahl, sorry.
Und dann ist das nächste Argument, welche Variable Sie speichern werden.
In werde ich es in eingegebenen Minuten speichern.
Denken Sie jetzt daran, dass Scan f
und ich dort nur einen Scan haben. Scanf für
jeden einzelnen Datentyp außer einer Zeichenfolge. Sie müssen
das kaufmännische Und angeben. Der Adressunteroperator.
Also müssen wir das bereitstellen. Wir lesen eine Zahl ein, also müssen wir das kaufmännische Und machen.
Denken Sie daran aus der Vorlesung. Dann möchte ich dies mit einem Semikolon hinzufügen.
Und an diesem Punkt sollten Sie wahrscheinlich testen.
Stellen Sie sicher, dass Sie Eingaben vom Benutzer erhalten können. Und Sie haben wahrscheinlich nur einen Ausdruck, um anzuzeigen, was Sie eingegeben haben.
Aber da ich weiß, dass dies richtig ist, werde ich weitermachen.
Ich muss eine Berechnung in Zeile 15 durchführen.
Hauptsächlich möchte ich die Minuten in Jahren speichern.
Ich werde also eine weitere Variable erstellen, die ich vergessen
habe und die die Minuten im Jahr speichert.
Weil das es einfacher machen wird. Also hier werde ich nur Minuten und Jahr sagen.
Sie werden feststellen, dass die Konvention, die ich hier zum Benennen von Variablen verwende, camelCase ist.
Hier haben Sie Kleinbuchstaben für die
erste Station und dann jedes Wort danach das erste Zeichen in Großbuchstaben.
Ich habe das vorher nicht erklärt, also dachte ich, ich würde es erwähnen.
Bei der ersten Berechnung möchte ich meine Minuten und mein Jahr festlegen,
da ich auf diese
Weise meine Jahre berechnen werde. Minuten und Jahre werden also tatsächlich gleich sein
- und ich verwende Klammern gerne nur zum Organisieren, damit alles klar ist. Es macht es lesbarer.
Es wird 60 sein, weil 60 die Anzahl
der Minuten in einer Stunde ist. Und ich werde das mit der Anzahl der Stunden an einem Tag multiplizieren, der 24 ist.
Ich werde das mit der Anzahl der Tage in einem
Jahr multiplizieren, die 365 beträgt.
Und so wird mir diese Berechnung geben, wie viele Minuten in einem einzigen Jahr sind.
Und damit kann ich jetzt meine Jahre berechnen.
Hier in der nächsten Zeile kann ich also sagen, dass Jahre gleich sind - also verwenden
wir hier Zuweisungsoperatoren, die gleich sind.
Und dann verwenden wir in diesen Klammern in Zeile 16
das Sternchen, das eine Multiplikation ist. So hübsch ordentlich.
Jahre werden gleich sein - und wieder möchte ich Klammern verwenden.
Die vom Benutzer eingegebenen Minuten geteilt durch die
Minuten im Jahr.
Wenn Sie also 5000 Minuten eingegeben haben und es 20000 Minuten in einem Jahr gibt, gibt
Ihnen 5000 geteilt durch 20000 an, wie viele Jahre es
gibt, die 0 Punkte bedeuten würden.
Um die
Tage zu berechnen, sage
ich hier nur die eingegebenen Minuten
geteilt durch 60 und 60. 0, weil
es in einer Stunde
60 Minuten gibt.
Und wenn ich dann die Stunden habe, kann ich das durch die Anzahl der
Tage teilen, die 24 sind. 0.
Und ich hätte dies in eine andere Berechnung einbeziehen können, wenn ich wollte.
Aber auch hier möchte ich sicherstellen, dass wir dies in der richtigen Reihenfolge tun.
Also werde ich zuerst die Minuten durch 60 teilen.
Sie müssen sich darüber eigentlich keine Sorgen
machen, da wir hier eine Teilung durchführen, sodass die Assoziativität von links nach
rechts verläuft und ich diese Klammern eigentlich nicht benötige. Aber ich mag es immer, Klammern hinzuzufügen, weil es die Dinge besser lesbar macht.
Fügen wir also den letzten hinzu.
Das ist irgendwie überflüssig. Ich brauche hier nicht mal einen. Lassen wir es
also einfach weg, nur die ersten. Und das sollte unsere Tage anzeigen.
Jetzt habe ich meine Berechnungen durchgeführt und einige der Operatoren verwendet.
Ich möchte einen Ausdruck erstellen, um nur meine Daten auszudrucken.
Hier werde ich sagen, drucken Sie zuerst die
Minuten aus,
Prozent d Minuten sind ungefähr Prozent f Jahre und Prozent f Tage.
Und dann werde ich einen Zeilenvorschub hinzufügen.
Wir verwenden also printf, um die Ausgabe von Variablen anzuzeigen,
und die Prozentzeichen erinnern sich an unsere Markup-Spezifizierer.
Das erste, was ich ausdrucken möchte, sind Minuten, daher muss ich Minuten nach meinem ersten Komma setzen, wenn es eingegeben wird.
Das zweite ist das Jahr, also möchte ich Jahre sagen, weil das Prozent f Jahre sind.
Und der dritte Tag ist so
etwas.
Ich sollte jetzt kompilieren und ausführen, und sie sollten meine Konvertierung für mich durchführen.
Also lasst uns weitermachen und bauen. Ich habe keine Morgen, keine Fehler.
Lass uns rennen und ich bin mir nicht mal sicher, wie viele
Minuten ein Jahr hat. Ich bin mir also nicht sicher,
wie ich das testen soll, aber lassen Sie uns zunächst 5000 Minuten einplanen.
Wenn ich das Programm starte, werde ich aufgefordert, die Anzahl der Minuten einzugeben. Ich werde 5000 eingeben.
Und wenn Sie keine Nummer eingegeben haben, kann es zu einem Absturz
kommen, weil Sie diese in Ihrer scanf-Funktion in eine Nummer konvertieren.
Ich drücke die Eingabetaste, dies besagt, dass 5000 Minuten ungefähr
0 sind. 009513
Jahre und 3. 47222 Tage,
was sinnvoll erscheint, denn was 60 Minuten in einer Stunde
mal 24 sind, das werden ungefähr 2400 für
einen Tag sein, also 2400
und 2400, keine 60 Mal. Es tut mir
leid, dass 60 mal 24 ungefähr 1200 sein werden.
Also 1200 geht in 5000 wie, viele Male für jeden
Tag wahrscheinlich ungefähr 3. 4 dort herum.
So ungefähr scheint das richtig zu sein.
Sie können dies also mehrmals ausführen und einige große Zahlen eingeben, was Sie jedoch bemerken werden.
Wir lagern hier nur Doppel. Wenn Sie es also ausführen und versuchen, eine
zu große Zahl einzugeben, z. B. 600 Milliarden oder so,
werden Sie möglicherweise falsch
- daher kann es hier zu Inkorrektionen kommen. Dies zeigt Ihnen also die Probleme mit den Datentypen.
Also speichere ich in einem int. Int ist nur 8 Bytes. Ich habe diese riesige Zahl eingegeben.
Das kann nicht darin gespeichert werden. Wenn ich es
ausdrucke, druckt es auf einer völlig anderen Nummer, 184298154.
Das liegt daran, dass das, was ich eingebe, größer als ein Int ist.
Vielleicht möchten Sie überlegen, ob dieses Programm noch präziser
sein soll, und Sie möchten größere Zahlen eingeben, um einige der Datentypen zu ändern,
die Ints in Doubles oder sogar die Doubles in Longs zu ändern.
Das heißt also 350 Jahre und 127000 Tage oder so.
Also eine nette kleine Konvertierungs-App, die wiederum versucht, Ihnen
ein gewisses Verständnis für
Datentypen und Operatoren zu vermitteln.
Wir könnten viele verschiedene Conversion-Apps haben. Eine weitere nette App,
die Sie für mehr Übung schreiben möchten, ist die
Fahrenheit-zu-Celsius-App.
Schreiben Sie eine App, mit der der Benutzer Fahrenheit eingeben und diese dann in Celsius umrechnen kann.
Ich meine, es gibt viele, viele verschiedene Szenarien, die Sie sich vorstellen. Dies zwingt Sie jedoch dazu, die Operatoren zu verwenden.
Und wir könnten hier auch ein Casting
machen, wenn wir wollten. Wenn uns das nicht gefallen hat, waren
die Tage zu genau und vielleicht möchten wir das Double in ein Int ändern.
Und wir wollen es etwas ungenauer machen. Wir könnten tatsächlich sagen, wirf dies in
ein it, indem du nur die Klammern bereitstellst und
dann int machst.
Und das würde tatsächlich tagelang dauern.
Und wenn es Dezimalzahl 3 ist. 549 oder so, es würde es in 3 konvertieren.
Vielleicht wäre das besser für den Benutzer, bis auf Sie.
Aber lassen Sie es uns vorerst als Doppel behalten.
Aber so lernst du. Sie spielen mit dem Programm herum, probieren verschiedene Szenarien
aus, probieren verschiedene Eingaben aus und stellen sicher, dass alles korrekt ist. Vielen Dank.