Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Notenspiegel mit Hindernissen (https://www.delphipraxis.net/80303-notenspiegel-mit-hindernissen.html)

ghost1601 6. Nov 2006 20:24


Notenspiegel mit Hindernissen
 
Hi Leutz,

ich hab folgendes Problem: ich will einen Notenspiegel-Programm erstellen welches mir nach Eingabe der Noten den Durchschnitt aller Noten berechnet.
Das ganze sieht bzw soll so aussehen:
http://www.zibolsky.de/images/Unbenannt.JPG

Um das ganze ausdrücklich zu sagen, es soll jeweils von den ausgefüllten Editfeldern eines Faches der Durchschnitt berechnet werden.
Nun ich muss sagen ich hab kein großes Know-How in sachen Delphi - was man auch anhand dieser für einige hier leichten Aufgabe sieht.
Was ich brauche ist ein Algorithmus der mir den Durchschnitt, wie oben bereits gesagt, ermittelt.
Ich hoffe es kann mir jemand weiterhelfen!!!
:-D :-D :-D
Thx

Cöster 6. Nov 2006 20:32

Re: Notenspiegel mit Hindernissen
 
Wenn wir dir den gesamten Algorithmus sagen, lernst du dabei herzlich wenig. Wo liegen denn deine Probleme? Mit den Funktionen IntToStr und StrToInt lässt sich das Problem eigentlich recht gut lösen. Aber wie weit bist du denn? An welcher Stelle hast du als erstes ein Problem?

Thorben_K 7. Nov 2006 06:24

Re: Notenspiegel mit Hindernissen
 
allerdings solltest du dir mal überlegen ob du die eingabe nichts lieber in ein StringGrid machst, ist einfach anzusprechen weil du ja ne schleife nehmen kannst, verbessert mich, aber Edit1 Edit2.. muss man ja jedes mal einzel schreiben, StringGrid.Cells[i,j] ist da imho einfacher

mbamler 7. Nov 2006 06:34

Re: Notenspiegel mit Hindernissen
 
Streng genommen sind Schulnoten eine Ordinal-Skala, bei der eine Durchschnittsbildung mathematisch verboten ist.
(aber das nur am Rande)

Gruß
Matthias

ghost1601 7. Nov 2006 15:15

Re: Notenspiegel mit Hindernissen
 
Zitat:

Zitat von Cöster
Wenn wir dir den gesamten Algorithmus sagen, lernst du dabei herzlich wenig. Wo liegen denn deine Probleme? Mit den Funktionen IntToStr und StrToInt lässt sich das Problem eigentlich recht gut lösen. Aber wie weit bist du denn? An welcher Stelle hast du als erstes ein Problem?

mein problem ist dass ich wenn ich den durchschnitt berechnen will, es auf die vorhandenen gefüllten editfelder ankommt...ich glaub es ist schwachsinnig jedes einzelne feld zu prüfen in form einer if then else anweisung...im prinzip fehlt mir nur eine schleife die das macht, aber wie Thorben_K schon sagt ist das mittels editfeldern wohl sehr uneffizient.
wenn ich nun allerdings mit stringgrids arbeite, kann ich doch nicht jedes einzelne feld dort editieren - zumindest nich per anklicken, eintragen und ausführen oder?
Deshalb hab ich mich für editfelder entschieden was natürlich auch sehr aufwändig ist.

kurz und knapp ich kenn mich mit schleifen nicht gut aus, da ich auch im großen und ganzen ein totaler anfänger bin und brauche daher eigendlich nur ein paar tips wie ich die schleife aufbauen müsste. :oops:

Thorben_K 7. Nov 2006 15:22

Re: Notenspiegel mit Hindernissen
 
du kannst natürlich dem benutzer erlauben in das stringGrid zu schreiben, einfach im OI unter Optionen: read only = false setzen

Matze 7. Nov 2006 15:24

Re: Notenspiegel mit Hindernissen
 
Hi

Möchtest du die Editfelder in einer Schleife sukzesive ansprechen, kannst du die Funktion Delphi-Referenz durchsuchenFindComponent nutzen. Infos hierzu findest z.B. du in der Delphi-Hilfe oder in der DP.

ghost1601 7. Nov 2006 19:03

Re: Notenspiegel mit Hindernissen
 
trotz der hilfefunktion von Delphi selber komme ich mit dem FindComponent befehl zurecht...
falls jemand die zeit finden sollte kann er mir gerne ein funktionierendes beispiel für mein programm geben...ansonsten werd ich den entwurf wohl verwerfen
thx @ all

Mackhack 7. Nov 2006 20:13

Re: Notenspiegel mit Hindernissen
 
Nanu wer wird denn gleich so schnell aufgeben?

mkinzler 7. Nov 2006 20:27

Re: Notenspiegel mit Hindernissen
 
Die Methode FindComponent der TForm-Klasse findet eine Komponenet anhand ihres Namens und gibt dir eine Referenz auf diese als TComponent zurück. Diese Referenz kann auf die wirkliche Klasse gecastet werden.

z.B.

Delphi-Quellcode:
(Form.FindComponnent('Edit1') as TEdit).Text := 'Bal Bla Bla';

Helmi 7. Nov 2006 20:44

Re: Notenspiegel mit Hindernissen
 
auch wenn ich Schläge bekomme,
hier mal ein kleiner Ansatz:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  out_i: Integer;

begin
  out_i := 0;

  for i := 1 to 2 do
    begin
      out_i := out_i + StrToIntDef((FindComponent('Edit' + IntToStr(i)) as TEdit).Text, 0);
    end;

  Edit3.Text := IntToStr(out_i div 2);
end;
Beschreibung:
Edit1 und Edit2 sind Eingabefelder für zwei Noten.
Die Schleife hat deswegen auch nur zwei Durchläufe (wenn mehr Edits dann mehr Durchläufe).
StrToIntDef konvertiert den String in ein Integer. Läuft das fehl, wird der Default-Wert zurückgegeben.
Edit3 ist das Ausgabefeld für den Mittelwert.

Dies soll nur ein kleiner Ansatz sein - es ist noch ausbaufähig.
Z. B. könnte man das StrToIntDef gegen ein StrToInt austauschen, wenn die Edits nur Zahlen zulassen,................

ghost1601 8. Nov 2006 08:46

Re: Notenspiegel mit Hindernissen
 
jetzt muss ich mir mal selber einen klaps auf den hinterkopf geben...
ich hatte die sache mit dem out_i := out_i + ... nicht reingeschrieben sondern hatte nur alles was hinter dem plus kam
gut...jetzt bin ich schlauer dann sollte es auch was werden

ein großes danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 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