Hallo, willkommen zurück.
In dieser Vorlesungsdemonstration Ich möchte eine Lösung für unser Wetterprogramm anbieten, über das
ich gesprochen habe etwa in unserer vorherigen Herausforderung.
Starten wir also den Code Blöcke erstellen ein Projekt.
Ich werde benennen dieses Projekt Wetter.
Und noch einmal, nur eine Erinnerung daran Die
Bewerbung ermöglicht es uns, jährliche und monatliche Summen zu erhalten Durchschnittswerte für Niederschlagsmengen.
Also ganz oben, du willst um Kommentare zu geben, die Ihnen sagen, was
das Programm ist.
Auch dieses Programm wird es sein Ermittlung der jährlichen Gesamtsummen, des
Jahresdurchschnitts und des Monatsdurchschnitts für mehrere Jahre von Niederschlagsdaten, 5 Jahre im Wesentlichen.
Also ganz oben, ich gehe um ein paar Konstanten zu definieren, und wir haben die
Definition nicht durchgesehen Präprozessor-Direktive noch im Detail, aber Sie
sind vertraut mit Das ist nicht wirklich kompliziert.
Also werde ich es einschließen und ich Ich möchte einen schönen Qualitätscode schreiben.
Also werde ich nur definieren Eine, die Monate genannt
wird, kann gleich 12 und eine Konstante sein.
Sie können auch die Konstante verwenden Modifikator, und ich werde auch einen definieren, der
als Jahre gleich 5 bezeichnet wird.
Das ist, wir werden die Hauptrolle spielen.
Und das erste, was wir wirklich wollen In unserer Hauptfunktion wollen
wir unser Array erstellen, das ist ein zweidimensionales Array und wir möchten die
Daten initialisieren.
Also werden wir initialisieren Niederschlagsmengen,
Niederschlagsdaten für 2010, 2011 und 2015 oder so.
Und so wissen wir, wie man eine erstellt
zweidimensionales Array, wir haben gerade den Datentypnamen
und angegeben Ich denke, sie sollten ein Float sein, weil Floats Dezimalstellen haben und Niederschlagsmengen können dezimal sein.
Also sagen wir einfach float, Wir werden es Regen nennen
und dann werden wir spezifizieren, dass wir möchte 5 Zeilen und 12 Spalten haben.
Also werden wir nur Jahre sagen Das ist unsere Konstante und unsere Monate, und dann werden wir
sie initialisieren.
Wir haben es von dieser Größe deklariert und jetzt wollen wir es initialisieren.
Und Sie können es initialisieren, indem Sie haben Klammern einfach so und dann können Sie innere
Klammern für jede Zeile haben.
Wir könnten das auch machen Array-Konstante, wenn wir
wollten, aber wir werden nicht.
Jetzt habe ich das schon gemacht Daten und ich möchte
nicht eingeben, was das wäre.
Dies wäre 10 mal 50 oder 12 mal 5, das wären 60 elemente.
Ich möchte keine 60 Elemente eingeben im Moment, weil
es Zeit in Anspruch nehmen wird und du einfach gehst dort sitzen und einschlafen.
Also werde ich kopieren und Fügen Sie meine Initialisierung ein
und initialisieren Sie einige Daten.
Dies sind nur einige Dummy-Daten. es könnte nicht richtig sein.
Aber Sie werden sehen, dass wir Klammern haben Für jede Zeile haben wir also 5 Zeilen.
Wir trennen jede Zeile durch a Komma und wir haben diese geschweiften Klammern
für jede Reihe drin.
Und dann in der Locke Klammern, wir trennen jeden
monatlichen Wert durch ein Komma.
Also trennen wir Zeilen durch Kommas und wir trennen Werte
innerhalb von Zeilen durch Kommas.
Hier ist ein Haufen jährliche Niederschlagsmengen.
So zum Beispiel diese erste Reihe würde das Jahr 2011 darstellen und die erste
Spalte wäre Januar.
Also im Januar 2011 haben wir hatte 4. 3 Zoll Regen.
Hier unten, wenn wir uns 6 ansehen würden. 7, Dies wäre für das Jahr 2012, 13.
Für den Monat März wir hatte 6. 7 Zoll Regen.
So können Sie sehen, wie dies darstellt Jahre und Monate für Niederschläge.
Jetzt, da wir alle initialisiert haben Mit unseren Daten können wir tatsächlich unsere anderen
lokalen Variablen initialisieren oder erstellen.
Also werden wir einfach kreieren ein Jahr
und einen Monat, weil dies dazu beitragen wird, unsere Jahre zu halten gerade und unsere Monate gerade.
Ich sage also nur Jahr und
Monat Ich werde sie in derselben Zeile erstellen, und ich werde sie auch erstellen ein paar schwebt zwischensumme und total.
Zwischensumme sind jährliche Summen; Insgesamt wird der Gesamtniederschlag sein, damit ich
den Jahresdurchschnitt erhalten kann.
Und wir werden es auch herausfinden wie man monatliche Durchschnittswerte erhält.
Also das erste was ich muss
Ich brauche eine for-Schleife, die unsere ausdrucken wird Niederschlag für ein bestimmtes Jahr.
Also werde ich zuerst gehen in einer einzigen Zeile ausdrucken.
Ich werde nur das Jahr ausdrucken, und ich werde einen Tab hinzufügen ...
Fügen Sie eine Registerkarte hinzu, um die Formatierung zu verbessern.
Fügen wir 2 Registerkarten hinzu, wir werden sehen, wie Das sieht so aus, als würde ich es anzeigen.
Und dann werde ich Regen setzen, und ich werde das in Zoll eingeben und einen
Zeilenvorschub hinzufügen.
Und wieder möchten Sie testen dies, um zu sehen, wie es aussieht.
Und dann gehe ich in meine Schleife.
Also, was möchte ich in der richtigen Reihenfolge tun? Um die
Zwischensummen für jedes Jahr zu berechnen, möchte ich gehen durch alle Reihen, alle Jahre und dann für jedes
Jahr ich Ich möchte alle Monate durchgehen, weil ich die
Monate addieren muss.
Also wird unsere äußere Schleife beginnen Aus mit dem ersten Jahr, das 2011 ist,
aber es ist tatsächlich 0 innerhalb der Array, weil Arrays 0 indiziert sind.
Und ich werde auch initialisieren eine weitere lokale Variable hier drinnen.
Denken Sie daran, denn Schleifen sind sehr flexibel.
Sie können tatsächlich andere erstellen Variablen in der for-Anweisung.
Ich musste keine Variable erstellen Dies wird außerhalb der for-Anweisung in
den Zeilen 19 oder 20 verwendet.
Also hier werde ich nur erstellen eine Variable namens total oder
initialisiere meine Gesamtvariable.
Und dann werde ich bis durchgehen Mein Jahr ist kürzer als meine Jahre,
was konstant ist, und ich werde mich erhöhen meine Gegenkreisregelvariable Jahr.
Das Jahr und der Monat sind also Schleifen Steuervariablen in Zeilen 19.
Und das wird repräsentieren meine äußere Schleife.
Es ist ein zweidimensionales Array, also bin ich es Ich werde auch eine innere Schleife brauchen.
Und meine innere Schleife geht jeden Monat durchgehen.
Also hier werde ich Monat sagen gleich 0, Zwischensumme für jeden Monat ist auch
gleich 0, um es zu initialisieren.
Und ich werde bis durchgehen Ich bin mit all meinen Monaten fertig.
Und ich werde mich erhöhen meine Regelkreisvariable, und dies wird meine innere
Schleife sein.
Also in meiner inneren Schleife kann ich eigentlich Bestimmen Sie die Zwischensummen, ich
muss nichts anzeigen.
Also alles, was ich in meinem tun werde Die
innere Schleife wird ich für jedes Jahr zu meiner Zwischensumme hinzufügen. Meine Zwischensumme ist meine jährliche Gesamtsumme.
Und hier gehe ich einfach um auf das Array zuzugreifen.
Mein Array-Name wird Regen sein.
Also kann ich einfach Regen U-Boot sagen Jahr, also wäre das alles für 2011 zunächst
wegen meiner äußeren Schleife und dann für jeden Monat.
Und ich füge hinzu.
Ich sage also, Zwischensumme ist gleich Zwischensumme plus Regen plus Array-Wert.
Also geht die innere Schleife durch Alle Monate dieses Jahres
bilden eine Zwischensumme davon.
Jetzt möchte ich das anzeigen Zwischensumme außerhalb der Schleife,
weil ich nur anzeigen möchte die Zwischensumme 5 mal für 5 Jahre.
Also hier kann ich ein nettes kleines print Anweisung, die
hilft, die Daten ein wenig und auch zu formatieren hilft, es richtig anzuzeigen.
Nun wird dies die sein Jahr und die Zwischensumme.
Also werden wir wahrscheinlich hinzufügen wollen Zur Zwischensumme würde ich ein paar Tabs sagen, aber wir werden sehen, was es sieht so
aus, also Schrägstrich t Schrägstrich t.
Und dann das einzig andere Wir wollen tun,
wir wollen zur Gesamtsumme hinzufügen, weil wir müssen habe die Summe für alle Jahre.
Also hier können wir nur sagen total plus entspricht Zwischensumme.
Und dann werden Sie die Zwischensumme bemerken wird tatsächlich jedes Mal neu initialisiert, wenn
Sie zur inneren Schleife gehen. Das müssen wir also nicht zurücksetzen.
Und hier wollen wir nur machen sicher, dass die Einrückung gut ist.
Beachten Sie wieder meine Einrückung für jeder Block, und ich brauche eigentlich nicht die Klammern
auf 27 und 29 da es eine einzelne Aussage ist, aber ich werde
sie dort lassen.
Jetzt, wo ich das getan habe, nachdem ich Ich kann jetzt den jährlichen Niederschlag oder
den Niederschlag für jedes Jahr ausdrucken Zeige den Jahresdurchschnitt an, weil ich genug Daten habe, ich
habe die Summe Niederschlag in jedem Monat Niederschlag.
Hier werde ich nur anzeigen der Jahresdurchschnitt, der nur die Summe
geteilt durch die Jahre ist.
Fügen Sie hier also eine weitere Druckanweisung hinzu.
Wieder ein guter Ort zum Testen.
Also lasst uns weitermachen und bauen Stellen Sie daher sicher, dass wir
keine Fehler haben, da es sich um viel Code handelt.
Und wir haben eine nicht deklariertes variables Jahr.
Wenn Sie einen Compilerfehler sehen, Es ist manchmal falsch dargestellt,
was der eigentliche Fehler ist.
In diesem Fall sagte es mir, dass ich hatte Ein Fehler in Zeile 19,
aber was den Fehler wirklich verursachte, war die vorherige
Anweisung, die kein Endsemikolon hatte.
Lassen Sie uns dies ausführen und sehen, ob wir Sie können den jährlichen Niederschlag sehen und
sehen, wie er formatiert ist.
Also los geht's Jahr 2010 Niederschlag in Zoll.
Wir fügen also wahrscheinlich zu viele Registerkarten hinzu Nach der Anzeige der Zwischensummen beträgt
der Jahresdurchschnitt 39. 4.
Also wollen wir das wahrscheinlich beheben indem Sie hier nur einen Tab loswerden.
Denken Sie daran, Sie können eine hinzufügen Tab in Ihrer
Ausgabe mit dem Escape-Sequenz-Schrägstrich t.
Das sieht also zumindest ziemlich gut aus.
Jetzt müssen wir noch einen haben Schleife, in der die
monatlichen Durchschnittswerte angezeigt werden.
Also bevor ich den Monat anzeige Durchschnittswerte Ich möchte
alles in einer einzigen Zeile ausdrucken.
Also werde ich nur ausdrucken Einige Informationen mit printf.
Ich werde meine ausdrucken monatliche Durchschnittswerte und 2-Zeilen-Feeds hinzufügen,
damit die Formatierung besser ist.
Und dann werde ich drucken aus meinen anderen Informationen.
Wir werden uns nur trennen die Monate um ein paar Leerzeichen und dann eine neue Zeile
hinzufügen.
Also werden wir das Gleiche tun wenn wir unsere for-Schleife durchlaufen.
Jetzt brauchen wir eine andere for-Schleife Jetzt erhalten Sie die monatlichen Durchschnittswerte.
Also in dieser for-Schleife die äußere Die Schleife beginnt im Monat.
Anstatt an jeder Reihe vorbei zu gehen, was? Ich werde
hier tun, ich werde jede Spalte durchgehen, weil Ich muss den monatlichen Durchschnitt ermitteln.
Also werde ich anfangen und ich bin Ich
werde jede Spalte durchgehen, die Januar Februar ist März repräsentieren Spalten.
Und für jede Spalte werde ich Gehen Sie
alle Jahre für diese Spalte durch und dann kann ich die Zwischensumme verwenden und die Summe wieder Variablen.
Also hier werde ich Monat sagen gleich 0, Monat ist weniger
als Monate und Monat plus plus.
Und dann ist meine innere Schleife werde durch die Jahre gehen.
Also hier gehe ich einfach für Jahr gleich 0 zu sagen.
Und denk daran, dass ich auch will meine Zwischensumme neu zu initialisieren.
Hier werde ich also Zwischensumme sagen ist gleich 0,
weil ich bei 0 anfangen möchte, sobald ich mein neues Jahr habe, gehe durch alle Jahre
und dann das Jahr inkrementieren, die Sprungsteuerungsvariable.
Und hier drinnen möchte ich Geben Sie meine Zwischensumme ein, die meiner entspricht Array
für ein Jahr und Monate.
Und so ist es wichtig Verstehe, was hier los ist, wir wechseln die Art und Weise, wie wir
sind Identität durch das Array.
Und die ersten Schleifen haben wir wiederholt indem Sie durch jede Zeile gehen und
jede Spalte betrachten.
In diesem Fall gehen wir tatsächlich durch
jede Spalte und betrachten diese bestimmte Zeile, weil wir sind Berechnung der monatlichen Durchschnittswerte.
Also bekommen wir die Zwischensumme und dann wir Ich möchte nur unsere Zwischensumme geteilt durch die
Jahre für diesen Monat ausdrucken.
Damit es passt unsere Ausgabe in Zeile 37.
Also machen wir es einfach so etwas, und wir
werden es mit 4 machen. 1 Format, Zwischensumme geteilt durch Jahre.
Und wir fügen so ein paar Leerzeichen hinzu Wenn Sie versuchen, es so gut wie
möglich auszurichten, möchten wir möglicherweise ein weiteres Leerzeichen hinzufügen.
Und dann, nachdem wir gedruckt haben Alles aus, wir können einfach einen Zeilenvorschub hinzufügen, um die
Lesbarkeit zu verbessern, und fertig.
Und das wird uns das geben monatliche Durchschnittswerte, da wir dann alle Zwischensummen erhalten haben Wir haben es
durch die Jahre geteilt.
Jetzt bauen wir das, Keine Fehler und führen Sie es aus.
Und jetzt werden wir zusätzliche sehen Ausgabe für monatliche Summen oder
monatliche Durchschnittswerte.
Hier sehen wir das also monatlich Durchschnittswerte und das Format stimmt
nicht wirklich gut überein.
Es kommt also alles darauf an der Ausgabe des Charakters.
Wir wollen eigentlich wahrscheinlich abnehmen Fügen Sie dort nur ein Leerzeichen hinzu. Lassen Sie uns sehen, ob dies einen
besseren Job macht.
Wenn wir es jetzt ausführen, sehen Sie, ob es aussieht besser, weil Sie in
der Lage sein wollen, jeden Monat mit dem zu binden Durchschnittswerte, das ist ein bisschen besser.
Wir kommen immer noch ein bisschen runter, weil Die Monate sind 3 Zeichen
und die ganzen Zahlen sind 2.
Wir haben es hauptsächlich vermasselt zwischen Oktober und November, weil es nur
ein Leerzeichen gibt.
Jetzt kann ich das beheben einfach so gehen.
Das sollte also machen das format alles schön.
Aber Sie können sehen, wie wir gerecht sind Drucken von Niederschlagsmengen
für Jahre und monatliche Durchschnittswerte.
Ich hoffe, das hat dich vertraut gemacht zweidimensionale Arrays, wie man sie durchläuft,
wie man sie zuweist Arrays und wie man auf Daten zugreift.
Vielen Dank.