Ich habe eine Hausaufgabe gemacht, hier ist die Problemstellung:
Ihr Programm sollte wie folgt funktionieren:
Berechnen Sie den Wind-Chill-Faktor mit einer Programmiermethode und zeigen Sie das Ergebnis im folgenden Format an:
Für t = Temperatur aus der Datei und v = Windgeschwindigkeit aus der Datei Wind Chill Index = berechnetes Ergebnis Grad Fahrenheit.
Alle Zahlen mit zwei Nachkommastellen anzeigen. (Denk daran - keine magischen Zahlen!)
Wiederholen Sie diese Schritte, bis das Ende der Datei erreicht ist.
Ich habe die Aufgabe abgeschlossen, mein Code ist unten, ich habe mich nur gefragt, ob es irgendeinen Weg gibt, um es effizienter zu machen, oder wenn es verschiedene und kreative Wege gibt, um dieses Problem zu lösen, habe ich dies bereits erledigt 50/50, aber ich bin nur neugierig, wie einige von Ihnen fortgeschrittene und erfahrene Programmierer dieses Problem angehen würden.
%Vor%Fühlen Sie sich frei, mir zu sagen, was Sie davon halten.
Ihr Weg sieht gut aus, aber:
while((line = windChillDoc.ReadLine()) != null)
{
...
}
[Darn Formatierung wird nicht richtig funktionieren!]
Abgesehen davon würde ich es nicht wissen, da ich mit Wetterberechnungen nicht vertraut bin:)
Die meisten Ihrer Kommentare sind irrelevant. Der Code sollte Ihnen sagen, wie ... die Kommentare sollten Ihnen sagen, warum.
Initialisieren Sie nicht mit Werten, die nie verwendet werden; und halten Deklaration und Initialisierung eng beieinander:
%Vor% using
wurde erwähnt - aber nicht @
unnötig verwenden:
sollte nur sein:
%Vor%Persönlich würde ich LINQ für den Zeilenleser verwenden, aber das bin nur ich ;-p
Warum das tun / während ? In Ihrem do überprüfen Sie, ob der Wert null ist. In Ihrem while überprüfen Sie, ob der Wert null ist. Warum nicht einfach eine while Aussage machen?
%Vor%EDIT : Der Kompilierungsfehler wurde behoben. Lustig war, dass ich das ursprünglich hatte. Diese Rich Text Box benötigt einen Compiler! : P
Obwohl es nicht wirklich auf die Leistung bezogen ist (die Hauptfrage)
IMO:
%Vor% ist nicht viel besser als eine magische Zahl. Wenn ich mir das anschaue, habe ich keine Ahnung, wofür FIRST_EQUATION_NUMBER
irgendwo anders als in einer Gleichung verwendet wird, und ich kann nicht sagen, dass sie in der gleichen Gleichung sind oder vier Gleichungen haben, die unterschiedliche Zahlen verwenden? Sie könnten auch in die tatsächliche Methode eingefügt werden, da dies der einzige Ort ist, an dem sie verwendet werden.
Ich würde degreeSymbol
zu einem const ändern, anstatt es von einem const int zu bearbeiten
später.
Wenn Sie auf Stil etc. hingewiesen werden, dann gibt es ein paar extrem kleine Dinge
(geänderte Formatierung für SO-Lesbarkeit)
%Vor%In kleinen akademischen Programmen wie diesem ist die Leistung kein Problem, es sei denn, Sie tun etwas wirklich Dummes. Eine einfache Möglichkeit, festzustellen, ob Leistung ein Problem ist, ist die Frage: "Warte ich damit?"
Wenn es eine enorme Menge an Input gäbe, würde ich fragen, wer die Eingabe liefert und wer die Ausgabe liest. Das würde mir sagen, ob ich die I / O binär statt als Text machen könnte, da der Großteil der Verarbeitung in der Umwandlung von Text in Zahlen bei der Eingabe und Zahlen in Text bei der Ausgabe liegt Gleitkomma.
Tags und Links c# file-io performance