php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Näherungswerte von Noten berechnen


 
Pust
25-01-2009, 21:37 
 
Hallo Forum,

ich hab ein Logikproblem:

Ich berechne Schulnoten mit bis zu 4 Nachkommastellen.
Ich will jetzt rauskriegen, was die nächste Note ist nach dem Schema:

x,00
x,25
x,50
x,75

Wenn also die Note 3,1932 rauskommt, soll er mir ausspucken 3,25 (woraus ich dann 3- mache, das sollte aber dann einfach sein), bei 2,8823 --> 3,00 bei 1,7112 --> 1,75 usw.)

Ich hab erst überlegt, ob ich alle Zahlen berechnen soll, also von allen Möglichkeiten die Differenz (von 1,00 | 1,25 | 1,5 | 1,75 | 2,0 | 2,25.... ) und dann die kleinste Zahl rausfiltern, aber das erscheint mir ein wenig sehr umständlich. Ich war nie so der Mathematiker, bestimmt gibt es unter Euch Leute, die da eine kürzere Formel / Funktion für wissen?

Danke schonmal und Grüße,
Pust

 
wahsaga
25-01-2009, 21:56 
 
Was wuerdest du denn machen, wenn du nur auf die naechsteniedrigere/-hoehere Ganzzahl kommen willst? Na klar, den Wert runden.

Jetzt willst du aber nicht auf Ganzzahlen runden, sondern auf Viertel davon.
Wie koennte man das machen?

Mal ueberlegen:
Was macht man, um von einem Viertel auf Eins zu kommen? Na klar, mit Vier multipilizieren.
Und was macht man, um von Eins auf ein Viertel zu kommen? Durch Vier teilen.

So, dann brauchst du den Schritt des Rundens ja nur noch dazwischen einzubauen.

 
Pust
25-01-2009, 22:02 
 
Klingt schon irgendwie logisch, aber ich glaub das ist mir zu hoch... wenn ich jetzt 1,8111 hab soll er 1,75 ausspucken, z.B.

Kannst Du mir das als Beispielrechnung zeigen? Dann krieg ich darauf vielleicht was allgemeines! :)

 
wahsaga
25-01-2009, 22:10 
 
Mit Vier multiplizieren, runden, durch Vier teilen - was kann denn daran bitte zu hoch sein?

 
Pust
25-01-2009, 22:21 
 
Genial, scheint hinzuhauen!

Was daran hoch ist?? Klar, jetzt, wo ich es kapiert hab, erscheint es mir auch einfach! :)

Also:


$ergebnis=$note*4
$ergebnis=(round($ergebnis));
$ergebnis=$ergebnis/4;


So probier ich das mal. Und ja, ich weiß, man könnte das auch in einen Ausdruck reinschreiben, aber ich probier es erstmal so, damit ich es besser übersehen kann....

Danke!

 
Pust
25-01-2009, 22:27 
 
Mann, das funzt... Danke!


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:18 Uhr.