AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Mittelwertberechnung

Ein Thema von justMatzi · begonnen am 4. Nov 2013 · letzter Beitrag vom 4. Nov 2013
Antwort Antwort
justMatzi

Registriert seit: 4. Nov 2013
6 Beiträge
 
Delphi 7 Personal
 
#1

Mittelwertberechnung

  Alt 4. Nov 2013, 15:31
Delphi-Version: 7
Hallo zusammen,
ich habe folgendes Problem:
Ich habe ein Programm in dem ich einen Mittelwert aus Zeiten berechnen muss. Allerdings treten dabei folgende Probleme auf: Ich kann das Programm nicht compilieren, wenn ich nicht vorher eine Fließkommazahl runde. Wenn ich das aber mache, kommt bei der entscheidenden Division der Fehler, dass ich eine ungültige Fließkommaoperation ausführen möchte.
Meine Frage ist, wo ist der Fehler und wie behebe ich ihn?

Ich weiß nicht, welche Teile des Quellcodes ihr hier braucht, deshalb *LINK entfernt* die ganze Unit. Ich hoffe das ist kein Problem, habe erst vor kurzem mit Delphi angefangen.

Grüße
Matzi

Geändert von MrSpock ( 4. Nov 2013 um 15:44 Uhr) Grund: Link entfernt.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Mittelwertberechnung

  Alt 4. Nov 2013, 15:45
Hallo Matzi,

kopiere bitte den Teil des Quellcodes direkt hier in den Beitrag.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Mittelwertberechnung

  Alt 4. Nov 2013, 15:57
Ich kann das Programm nicht compilieren, wenn ich nicht vorher eine Fließkommazahl runde.
Kannst du das bitte auch noch mal erläutern?
Beim compilieren werden keine Berechnungen vom Quelltext durchgeführt!
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
justMatzi

Registriert seit: 4. Nov 2013
6 Beiträge
 
Delphi 7 Personal
 
#4

AW: Mittelwertberechnung

  Alt 4. Nov 2013, 16:04
Okay, hier sind die hoffentlich richtigen Teile:

Variablen:

Delphi-Quellcode:
var
  Form1: TForm1;
  Start: longint;
  Stop: longint;
  Treffer: int;
  Summe: real;
  Durchschnitt: longint;

Variablen auf 0 setzen
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 randomize;
 Summe:=0;
 Treffer:=0;
end;
Verändern der Variablen:
Delphi-Quellcode:
procedure TForm1.Sh_SchwerMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Form1.Caption:=inttostr(strtoint(Form1.Caption)+1);
 Stop:=gettickcount();
 Lb_Zeit.Items.Add(inttostr(Stop-Start));
 Sh_Schwer.Visible:=false;
 Treffer:=Treffer+1;
 Summe:=Summe+(Stop-Start);
end;
Division und Ausgabe auf dem Label L_Durchschnitt

Delphi-Quellcode:
 Durchschnitt:=Summe/Treffer;
 L_Mittelwert.Caption:=floattostr(Durchschnitt);
Ich denke das ist alles.


Zum compiler:

Ich bekomme die Fehlermeldung:
[Fehler] SpielUnit1.pas(168): Inkompatible Typen: 'Integer' und 'Extended'

Gruß
Matzi

Geändert von mkinzler ( 4. Nov 2013 um 16:10 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Mittelwertberechnung

  Alt 4. Nov 2013, 16:12
"Durchschnitt" ist vom Typ LongInt (ein Ganzzahltyp - Integer), das Ergebnis einer Division mit "/" liefert in Delphi jedoch immer einen Extended (bzw. Double), also einen Fließkommatypen - egal ob die Division ohne Rest ginge oder nicht sogar.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#6

AW: Mittelwertberechnung

  Alt 4. Nov 2013, 16:13
Ist dir aufgefallen, das Durchschnitt eine Ganzzahl ist? Eine Gleitkommazahl wäre wohl besser.

Außerdem: Benutze die Delphi-Tags!
Code:
[DELPHI]
// ein Beispiel
procedure beispiel(i: integer);
[/DELPHI]
ergibt:
Delphi-Quellcode:
// ein Beispiel
procedure beispiel(i: integer);
Das solltest du auch bei deinem letzten Beitrag machen. Danke, mkinzler
  Mit Zitat antworten Zitat
justMatzi

Registriert seit: 4. Nov 2013
6 Beiträge
 
Delphi 7 Personal
 
#7

AW: Mittelwertberechnung

  Alt 4. Nov 2013, 16:22
Okay, das habe ich geändert, danke.

Allerdings steht als dieser Mittelwert jetzt immer 0 und nicht das Ergebnis der Division. Ist da noch ein Fehler?

Gruß
Matzi

Habe den Fehler gefunden und behoben. Trotzdem danke für die schnelle Hilfe

Geändert von justMatzi ( 4. Nov 2013 um 16:40 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:02 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