Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array für 31 Werte schreiben + Werte auslesen (https://www.delphipraxis.net/123074-array-fuer-31-werte-schreiben-werte-auslesen.html)

Sudrow 27. Okt 2008 09:20


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

leddl 27. Okt 2008 09:26

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 ;)

jfheins 27. Okt 2008 09:31

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)

Sudrow 27. Okt 2008 09:36

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:

Zitat von jfheins
Einmal mit dem Nachkommaanteiol ( Frac(Note) ) und einmal mit 1 - Nachkomaanteil ;)

Muss ich dazu noch was schreiben, oder würden deine 2 Rechenwege ausreichen dafür?

Reinhard Kern 27. Okt 2008 09:40

Re: Brauch Hilfe bei einer Berechnung!
 
Zitat:

Zitat von Sudrow
...
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.
...

Hallo,

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

SirThornberry 27. Okt 2008 09:41

Re: Brauch Hilfe bei einer Berechnung!
 
Könntest du deinem Beitrag bitte einen aussagekräftigen Titel geben? Danke :)

Sudrow 27. Okt 2008 09:47

Re: Brauch Hilfe bei einer Berechnung!
 
Zitat:

Zitat von Reinhard Kern
Hallo,

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

Wie mache ich da die Tabelle, soll ich da 31 variablen mit einer array machen von bis, oder gibt es eine bessere lösung?

soulies 27. Okt 2008 10:04

Re: Tabelle für 31 Werte schreiben + Werte auslesen
 
hoi,

Zitat:

Note = 4 - 3 * (Punkte - 300) / (900 - 300)
das geht nicht :
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

Sudrow 27. Okt 2008 10:31

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.

soulies 27. Okt 2008 11:32

Re: Tabelle für 31 Werte schreiben + Werte auslesen
 
Hoi,

mach doch mal ...
Zitat:

Ich würde daher eine Tabelle mit 31 Einträgen erstellen, mit der genauen Punktzahl für jede Note
mit z.B.
Delphi-Quellcode:
const
  notenpunkte : array[0..30] of array [0..1] of Integer = ( (300,...),                                                        
                                                            (...,...),
                                                            (...,900) );
und dann eben vergleichen wie es Reinhard geschrieben hat.

cya


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr.
Seite 1 von 2  1 2      

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