Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Notenberechnung?
jackie05 - Mi 01.04.09 01:03
Titel: Notenberechnung?
Hallo nochmal,
ich möchte bei mir im Programm eine Notenberechnung einbauen und weiss leider nicht weiter.
Ich habe schon google befragt nach Notenberechnung und hier im Forum, ich komme einfach nicht weiter.
Ich möchte zu diese 2 Labels: Richtig und Falsch die Note berechnen und in Label4 dann übergeben:
Label1: Richtig
Label2: Falsch
Label3: % richtig
Label4: Note
Die Prozentzahl war kein problem zu berechnen:
Delphi-Quelltext
1: 2:
| ProzentRichtig := round(Richtig*100 / (Falsch+Richtig)); lblProzentRichtig.Caption := '% richtig: '+IntToStr(ProzentRichtig); |
Wie kann ich jetzt die Note berechnen?
Ich bedanke mich schonmal im Voraus.
MfG
Marc. - Mi 01.04.09 01:10
Nabend,
wie sieht denn dein Notensystem aus? Wie berechnen sich denn formal die Noten? :nixweiss:
Ich kenne in Rheinland-Pfalz nur folgendes System: Ab 40% richtiger Antworten gibt es 3 Punkte. Für jedes 5% mehr, gibt es je einen Punkt dazu.
Also wären folglich 80% richtiger Antworten 12 Punkte respektive eine 2+.
Grüße,
Marc.
jackie05 - Mi 01.04.09 01:17
Danke erstmal für die schnelle antwort.
Ich weiss es nicht, ich habe erstmal mit dem Taschenrechner versucht die formel herauszubekommen :wink:
Ich kenne eine Mathe Seite indem z.B. folgendes steht:
Richtig:6
Falsch:2
% richtig:75
Note:3
Nur weiss ich nicht, wie man die Note so herausbekommt.
Wie könnte man das am einfachsten machen?
MfG
jaenicke - Mi 01.04.09 01:24
Ein Beispiel wurde ja schon genannt. In dem Fall könntest du die Punkte ja berechnen und die Noten zu den Punkten könntest du in einem konstanten Array speichern.
Delphi-Quelltext
1: 2: 3:
| const Notes: array[0..15] of String = ('6', '5-', '5', '5+', '4-', '4', '4+', '3-', '3', '3+', '2-', '2', '2+', '1-', '1', '1+'); |
Marc. - Mi 01.04.09 02:28
jaenicke hat folgendes geschrieben : |
Ein Beispiel wurde ja schon genannt. In dem Fall könntest du die Punkte ja berechnen und die Noten zu den Punkten könntest du in einem konstanten Array speichern. Delphi-Quelltext 1: 2: 3:
| const Notes: array[0..15] of String = ('6', '5-', '5', '5+', '4-', '4', '4+', '3-', '3', '3+', '2-', '2', '2+', '1-', '1', '1+'); | |
Man merke: Notes != Marks / Grades :mrgreen:
So, hier mal schnell runtergetippt eine Beispielklasse für das NotenSystem.
Ich hoffe, das hilft dir etwas weiter. ;)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| type TNotenSystem = class private fCorrect: Integer; fWrong: Integer; function GetPercent: Single; function GetCount: Integer; function GetMark: String; public property CorrectAnsweresCount: Integer read fCorrect write fCorrect; property WrongAnsweresCount: Integer read fWrong write fWrong; property TotalAnsweresCount: Integer read GetCount; property Percents: Single read GetPercent; property Mark: String read GetMark; end;
var Form1: TForm1; NotenSystem: TNotenSystem;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin NotenSystem := TNotenSystem.Create; try NotenSystem.WrongAnsweresCount := 8; NotenSystem.CorrectAnsweresCount := 2; Listbox1.Items.Add(IntToStr(NotenSystem.TotalAnsweresCount)); Listbox1.Items.Add(FloatToStr(NotenSystem.Percents)); Listbox1.Items.Add(NotenSystem.Mark); finally NotenSystem.Free; end;
end;
function TNotenSystem.GetMark: String; const Marks: array[0..15] of String = ('6', '5-', '5', '5+', '4-', '4', '4+', '3-', '3', '3+', '2-', '2', '2+', '1-', '1', '1+'); begin result := Marks[Trunc(Percents / 5) - 3]; end;
function TNotenSystem.GetCount: Integer; begin result := CorrectAnsweresCount + WrongAnsweresCount; end;
function TNotenSystem.GetPercent: Single; begin result := (CorrectAnsweresCount * 100 / TotalAnsweresCount); end; |
Guden Nacht,
Marc.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!