AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Notendurchschnitt erechnen!

Ein Thema von vaTras · begonnen am 11. Jun 2007 · letzter Beitrag vom 12. Jun 2007
Antwort Antwort
vaTras

Registriert seit: 19. Apr 2007
7 Beiträge
 
#1

Notendurchschnitt erechnen!

  Alt 11. Jun 2007, 12:29
Hallo liebe Community,

Ich habe ein Problem bei meienem Programm, welches den Notendurchschnitt erechnen soll. Das Problem liegt dadrin, dass wenn ein
Fach nicht belegt wurde (sprich, wenn in dem Feld kein Eintrag ist), soll der Fächer Gesamtanzahl 1 Fach abgezogen werden!

Delphi-Quellcode:
var
  Form1: TForm1;
  var eng,ma,de,lat,franz,span,bio,ch,ph,poli,ge,edk,mu,ku,sp,inf,ds,anzahl,anzahl2,gesamt : integer ;
  notendurchschnitt : real;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
 eng:=strtoint (edit1.text) ;
 de:=strtoint (edit2.text) ;
 ma:=strtoint (edit3.text) ;
 lat:=StrToIntDef(Edit4.Text,0);
 franz:=StrToIntDef(Edit5.Text,0);
 span:=StrToIntDef(Edit6.Text,0);
 bio:=StrToIntDef(Edit8.Text,0);
 ch:=StrToIntDef(Edit9.Text,0);
 ph:=StrToIntDef(Edit10.Text,0);
 poli:=StrToIntDef(Edit11.Text,0);
 ge:=StrToIntDef(Edit12.Text,0);
 edk:=StrToIntDef(Edit13.Text,0);
 mu:=StrToIntDef(Edit14.Text,0);
 ku:=StrToIntDef(Edit15.Text,0);
 sp:=StrToIntDef(Edit16.Text,0);
 inf:=StrToIntDef(Edit17.Text,0);
 ds:=StrToIntDef(Edit18.Text,0);
 anzahl:=anzahl2;
 anzahl2:=17;
 if lat=0 then anzahl:=anzahl2-1 ;
 gesamt:=eng+ma+de+lat+franz+span+bio+ch+ph+poli+ge+edk+mu+ku+sp+inf+ds ;
 notendurchschnitt:=gesamt/anzahl;
 edit7.text:=floattostr (notendurchschnitt) ;
Ich hoffe ihr könnt mir helfen.

mfg M. Botterbrodt!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Notendurchschnitt erechnen!

  Alt 11. Jun 2007, 12:32
ich würde sprechende Namen für die Editfelder nehmen und die Zensuren in ein Array packen. Dann einfach in dem Array alle Zensuren durchgehen und addieren. Wenn eine Zensur <> 0 angegeben wurde die Zahl der angegebenen Zahlen erhöhen. Und hinter der schleife dann einfach die Summe durch die Anzahl der Noten teilen und darauf achten das nicht durch 0 geteilt wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Notendurchschnitt erechnen!

  Alt 11. Jun 2007, 13:40
Ich würde zunächst folgenden Typ deklarieren:
Delphi-Quellcode:
type
  TSchulfaecher = (sfNone,sfEng,sfMa,sfDe{usw},sfInf,sfDs);
Dann kannst du ein Array machen machen
Delphi-Quellcode:
var
  Noten: array[TSchulfaecher] of byte;
Byte, weil es wahrscheinlich performanter ist, in Punkten und nicht in Noten zu rechnen.

PS: Ungetestet, sollte aber gehen!
Richard Mahr
  Mit Zitat antworten Zitat
Willi1960

Registriert seit: 18. Nov 2006
Ort: Goslar
29 Beiträge
 
#4

Re: Notendurchschnitt erechnen!

  Alt 11. Jun 2007, 13:47
Hallo,

ansonsten kannst du ja es abhängig machen vom Inhalt. Ist der Inhalt =0 dann ist das Fach nicht belegt. Dann kannst du unter z.B

if ma=0 then Anzahl:=anzahl-1;

den Wert runterschrauben.

muß dann unmittelbar vor demm errechnen des Notendurchschnitts kommen
  Mit Zitat antworten Zitat
vaTras

Registriert seit: 19. Apr 2007
7 Beiträge
 
#5

Re: Notendurchschnitt erechnen!

  Alt 11. Jun 2007, 17:58
ich habe es nun so gemacht:

Delphi-Quellcode:
 anzahl:=0;
if eng>0 then anzahl:=anzahl +1 ;
usw.

trotzdem danke für eure Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Notendurchschnitt erechnen!

  Alt 11. Jun 2007, 20:25
Hi,

mit einer Schleife sieht das Ganze trotzdem übersichtlicher aus:
Delphi-Quellcode:
uses math;

procedure TForm1.Button1Click(Sender: TObject);
type
  TNote = 0..6;
  PNoteArray = ^NoteArray;
  NoteArray = Array[0..0] of TNote;

  TSchulfach = record
    eng, ma, de, lat, franz : TNote;
end;
var
  Schulfach: TSchulfach;
  PNotAr: PNoteArray;
  Loop, Anzahl, Noten: integer;
begin
  ZeroMemory(@Schulfach, SizeOf(Schulfach));
  with Schulfach do//Beispiel
  begin
    eng := 4;
    ma := 2;
    de := 1;
  end;

  PNotAr:= @Schulfach;
  Anzahl:= 0;
  Noten:= 0;
  for loop := 0 to Pred(SizeOf(Schulfach)) do
    if PNotAr^[Loop]> 0 then
    begin
      inc(Anzahl);
      inc(Noten, PNotAr^[Loop]);
    end;
  Caption:= 'Notendurchschnitt: '+ FloatToStr(RoundTo(Noten / Anzahl, -1));
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Thorben_Ko

Registriert seit: 8. Jun 2007
86 Beiträge
 
#7

Re: Notendurchschnitt erechnen!

  Alt 12. Jun 2007, 10:55
ich hab das auch mal gemacht ( mein erste prog ), brauchst du wirklich für jedes fach ein Edit?

Ich poste mal wie ich es darmals gemacht habe.

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var
a : real;
begin
  if Edit1.Text = 'then
  Label1.Caption := 'Bitte die Noten oben eintragen.'
  else
  noten := noten + strtoint(edit1.text);
  count := count + 1;
  a := noten/count;
  label1.Caption := 'Ihr Notenschnitt ist: ' + Formatfloat('0.##', a);
  Edit1.text := '';
  Edit1.SetFocus;
end;
count und noten sind Klassen Variabeln vom Form

Vll hillft dir das ja was
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz