![]() |
Array für 31 Werte schreiben + Werte auslesen
Ich bin kurz vor dem Abschluss meines Programmes, aber für das letzte Stück weiß ich nicht wie ich es anfangen bzw beenden soll.
Das Programm soll am Ende einen Notendurchschnitt erechnen. Das tut es auch. Da hab ich dann zum Beispiel 481 Punkte und somit die Note 2,9. Jetzt wollte ich noch eine Anzeige machenwie viele Punkte man bis zur nächsten Note bzw zur schlechteren braucht. Man kann Punkte von 900 bis 300 erreichen, und dabei von 4,0 bis 1,0 alles erreichen. Ich verlange jetzt nicht das mir jemand einen Quelltext dazu schreibt, sondern eher ob mir jemand helfenkann wie ich das anfangen sollte. mfg Sudrow |
Re: Brauch Hilfe bei einer Berechnung!
Berechnen sich die Noten aus der Punktezahl, oder hast du eine Liste mit den Zuordnungen Punkte <--> Note vorliegen?
Sollte letzteres der Fall sein, kannst du doch einfach in dieser Liste nachschauen, welche Punktezahl für die berechnete Note + bzw. - 0,1 angegeben ist. Dann noch die Differenz ausrechnen und fertig ;) |
Re: Brauch Hilfe bei einer Berechnung!
Du hast den Bereich von 900 bis 300 und bekommst ne Note zwischen 1 und 4:
Note = 4 - 3 * (Punkte - 300) / (900 - 300) Aus dem Nachkommaanteil der Note wieder zu den Punktten zurück: Punkte = (4 - Note) / 3 * (900 - 300) + 300 Einmal mit dem Nachkommaanteiol ( Frac(Note) ) und einmal mit 1 - Nachkomaanteil ;) :arrow: Das alles natürlich nur, wenn die Zuornung proportional ist. (also keine Sprünge macht, linear ist und 300 Pkte = 4,0 und 900 Pkte = 1,0) |
Re: Brauch Hilfe bei einer Berechnung!
Liste hab ich nicht im Programm, die Berechnung für die Note ist
Note= (17/3) - (Punkte/180) Zitat:
|
Re: Brauch Hilfe bei einer Berechnung!
Zitat:
ein für Software besser geeigneter Ansatz: Noten von 1.0 bis 4.0 sind ja gerade mal 31 mögliche Werte. Ich würde daher eine Tabelle mit 31 Einträgen erstellen, mit der genauen Punktzahl für jede Note (ist ja fix), und nach der Berechnung des Durchschnitts in der Tabelle die Stelle suchen zwischen dem nächstniedrigen und dem nächsthöheren Wert - ist eine einfache Binärsuche. Die Punktzahl für die nächsthöhere und die nächstniegrigere Note steht dann in der Tabelle, die Differenz auszurechnen solltest du auch noch schaffen. Gruss Reinhard |
Re: Brauch Hilfe bei einer Berechnung!
Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben? Danke :)
|
Re: Brauch Hilfe bei einer Berechnung!
Zitat:
|
Re: Tabelle für 31 Werte schreiben + Werte auslesen
hoi,
Zitat:
Bei 481 Punkten ist es ja 2,9 - Ergebnis ist aber 3,09 @Sudrow: Hast du überhaupt eine Liste für die Noten oder kennst du den Punktebereich von wo bis wo eine Note ist. cya |
Re: Tabelle für 31 Werte schreiben + Werte auslesen
So eine Liste hab ich, aber nur auf Papier, aber ich weiß nich wie ich die ins delphi bringen kann.
|
Re: Tabelle für 31 Werte schreiben + Werte auslesen
Hoi,
mach doch mal ... Zitat:
Delphi-Quellcode:
und dann eben vergleichen wie es Reinhard geschrieben hat.
const
notenpunkte : array[0..30] of array [0..1] of Integer = ( (300,...), (...,...), (...,900) ); cya |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz