Autor Beitrag
CoH
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 30.05.12 15:52 
Hallo,
ich habe ein Problem mit einer Aufgabe in Delphi. Ich müsste den Quelltext des Buttons bis übermorgen haben. Ich hoffe ihr könnt mir helfen...

Aufgabe: Ein Lehrer zensiert nach folgendem Verfahren: Zunächst vergibt er Punkte und setzt eine maximal erreichbare Punktzahl fest (Edit1). Dann ermittelt er den Prozentwert der tatsächlich erreichten Punkte; die Umrechnung in Noten erfolgt so: Weniger als 20% ergibt Ungenügend, von 20 bis unter 40 ergibt Mangelhaft,40 bis unter 55 ergibt Ausreichend,55 bis unter 70 ergibt Befriedigend,70 bis unter 85 ergibt gut,85 bis 100 ergibt sehr gut. Schreibe ein Programm das ihm bei der Umrechnung hilft.

Danke im voraus ! ;)


Moderiert von user profile iconTh69: Topic aus Sonstiges (.NET) verschoben am Mi 30.05.2012 um 16:01
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 30.05.12 16:01 
Hallo!

Was ist Dein bisheriger Ansatz und wo kommst Du nicht weiter?

Wir helfen Dir gerne bei Deinen Hausaufgaben, aber wir machen sie nicht für Dich! :mahn:

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
CoH Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 30.05.12 16:12 
Hallo Christian,

Ich war gerade dabei mein Problem zu schreiben ich hätte meine Frage nicht zuerst absenden sollen.

Bis jetzt habe ich 2 Edit Felder für die erreichte Punktzahl des Schülers sowie für die maximale Punktzahl der Prüfung. Diese habe ich mit Variablen a,b zugeordnet. Desweiteren habe ich ein Button für die Umrechnung und ein Memo Feld für das Ergebniss. Ich weiß wie ich ein maximal Wert z.B 15 eingebe und dann durch die erreichte Punktzahl des Schülers einteile z.B gibts bei 8 Punkten "Befriedigend" im Memo angezeigt. Mein Problem ist die Zurechnung eines maximalen Punktestandes und die zugehörigen Zuordnungen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 30.05.12 16:21 
Mal als Denkanstoß:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
MyPercentage := ... // hier berechnest du den Prozentsatz

// jetzt prüfst du in welchem Bereich der Wert liegt:
if MyPercentage < 20 then
  ...
else if MyPercentage < 40 then
  ...
Und so weiter. Je nachdem in welcher if-Bedingung du rauskommst, gibst du die entsprechende Note aus.

Wenn du damit nicht weiter kommst, poste bitte wie weit du gekommen bist, also was du dann im Quelltext versucht hast. ;-)

Für diesen Beitrag haben gedankt: CoH
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Do 31.05.12 14:51 
Alternativ kannst Du auch die Case-Abfrage nehmen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
var
  MyPercentage : integer;
  myPunkte, myMaxPunkte : integer;
  
// Achtung!!! myMaxPunkte darf nicht 0 sein!!

// entweder: (geht auch bei nicht ganzzahligen Punkten (dann allerdings muss myPunkte und myMaxPunkte als single oder double definiert werden)

  MyPercentage := round(100*myPunkte/myMaxPunkte);

// oder: (geht nur bei ganzzahligen Punktzahlen)
// Anmerkung: Addition von myMaxPunkte div 2, damit bei Ergebnis > x.5 der Wert x+1 herauskommt (Rundung)
  MyPercentage := (100*myPunkte + myMaxPunkte div 2div myMaxPunkte;

  Case MyPercentage of
  0 .. 20 : ...
  21 .. 40 : ...
:
:
:
  end;


Die Genauigkeit von Integer sollte reichen, da eh nicht mehr als 100 möglich ist.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.

Für diesen Beitrag haben gedankt: CoH
CoH Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 31.05.12 16:54 
Erst einmal vielen dank für eure Antworten ! :)

Ich habe beides mal ausprobiert und es funktioniert, jedoch habe ich noch eine Frage bezüglich der Möglichkeit mit dem "Case of"
Muss man dabei ein else setzen oder ist es hier weg zu lassen ? Und nach dem ":" würde ich gerne anstatt eines Memos eine 'ShowMessage' machen geht das ?
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Do 31.05.12 17:25 
Was hältst du denn von ausprobieren?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
case mypercentage of 
0..40
  Showmessage('<41');
else 
  Showmessage('>40');
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Do 31.05.12 19:04 
user profile iconFinnO hat folgendes geschrieben Zum zitierten Posting springen:
Was hältst du denn von ausprobieren?


Oder vom Lesen unzähliger Quelltexte in einschlägigen Foren oder (vom Lesen) eines Delphi-Schnelleinstieges?
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Mo 13.08.12 00:55 
Der Fragensteller hat ganze 3 Beiträge (alle in diesem Thema) - ich glaub, ihr habt seine Hausaufgabe gemacht :rofl:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
eternal
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 28.08.12 12:36 
Hehehe dachte mich gerade das Gleiche! Aber wieso auch nicht, ich wäre damals auch froh über jegliche Hilfe gewesen...Muss ja nicht zum Normalfall werden...