AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Programmergebnise verschieden auf zwei Rechnern
Thema durchsuchen
Ansicht
Themen-Optionen

Programmergebnise verschieden auf zwei Rechnern

Ein Thema von Physikerin · begonnen am 10. Mär 2016 · letzter Beitrag vom 12. Mär 2016
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Physikerin

Registriert seit: 18. Feb 2016
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 10:48
Hallo zusammen,

ich stehe vor einem Problem und bekomme es so nicht gelöst, ein ähnliches hier Thema hilft mir nicht weiter.
Das Programm liefert auf zwei Rechnern unterschiedliche Ergebnisse (unabhängig davon, ob es aus der Exe gestartet wurde oder aus dem Compiler.
Programmiert wurde mit CodeGear™ Delphi® 2007 für Win32®:

Mein Rechner: 64Bit, i5
Der andere Rechner 64Bit i7

Mein Programm macht mehrere riesige Rechnungen und zeichnet dann Wertepaare in ein TChart:
- zerlegt habe ich schon
- alle Variablen wurden initialisiert
- die Methode wurde in Fortran entwickelt und dann in Delphi übertragen.

Alle Funktionen geben bei mir extended zurück. Das sollte ja innerhalb von 64Bit-Rechnern kein Problem darstellen oder?

Bei meinem Rechner jedenfalls ist die Funktion, die in das TChart gezeichnet wird ohne Sprünge etc,
bei dem anderen Rechner tritt ein ziemlich heftiges Gezackel auf. Dh die Werte der Funktion werden falsch berechnet.

Woran kann das liegen?
Ich habe auch bei allen ganzen Zahlen zB 2.0 anstatt von 2 genommen!

Vielen Dank für Eure Hilfe!
  Mit Zitat antworten Zitat
Dawn87

Registriert seit: 15. Feb 2007
Ort: Lüdenscheid
189 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 10:51
gelöscht
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 10:53
Variable nicht initialisiert
Zitat:
- alle Variablen wurden initialisiert
gruss

Geändert von EWeiss (10. Mär 2016 um 11:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 11:00
Und wenn du mal testweise auf Double umstellst und schaust ob die Ergebnisse dann gleich sind?
Erstellst du aus auf dem 64-Bit Rechner einer 64-Bit exe, oder eine 32 Bit exe?
Bei 64-Bit Delphi gibt es Extended nämlich nicht mehr, bzw. Extended = Double.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 11:03
Wie groß werden denn die Zahlen? Tritt hier vielleicht ein Überlauf auf?

http://docwiki.embarcadero.com/Libra...ystem.Extended
Hier steht, dass Extended sehr vom System abhängt. Vielleicht mal mit Double versuchen, sofern der Zahlenbereich ausreicht?

Und hier:
http://docwiki.embarcadero.com/RADSt...e_Applications


Falls es das nicht ist, gab es nicht bei einigen neueren CPUs (Skylake) Probleme bei großen Berechnungen?

Geändert von bra (10. Mär 2016 um 11:06 Uhr)
  Mit Zitat antworten Zitat
Physikerin

Registriert seit: 18. Feb 2016
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 11:08
Huhu,

vielen Dank schonmal...

@NeutralGeneral: Wie würde man denn herausfinden welche .exe man erstellt? Dann erstelle ich wahrscheinlich eine 32Bit-Exe, weil wenn ich auf double umstelle, bekomme ich auch die Sprünge in der Funktion, daher hatte ich extended genommen.
Dann wird es wahrscheinlich an dem Überlauf liegen oO

Im Result kommen nachher Werte bis etwa 10000 heraus.

Kann man um den Überlauf zu umgehen einfach die betroffenen Werte reduzieren (zB geteilt durch 10000) und nachher wieder draufrechnen?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 11:10
Das Programm liefert auf zwei Rechnern unterschiedliche Ergebnisse (unabhängig davon, ob es aus der Exe gestartet wurde oder aus dem Compiler.
Das klingt wie einer von den Standardfehlern "Initialisierung durch Zufall". Ggf. solltest Du einmal penibelst prüfen ob die Einstellungen von Delphi auf beiden Rechnern wirklich gleich sind.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 11:19
Du kannst auch in den Projektoptionen unter Compiler mal die Range-Checks und Overflow-Checks aktivieren, dann sollte ja zur Laufzeit ein Fehler kommen, sofern es daran liegt.
  Mit Zitat antworten Zitat
Physikerin

Registriert seit: 18. Feb 2016
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 11:21
@p80286 :

Auf dem i7 ist garkein Delphi installiert ^^
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#10

AW: Programmergebnise verschieden auf zwei Rechnern

  Alt 10. Mär 2016, 11:36
Delphi 2007 (also Delphi Version 12.0) erstellt keine 64-Bit EXEs, also kann das auch nicht das Problem sein.

Ein-und-dasselbe Programm kann allerdings auf verschiedene Rechnern unterschiedliche Ergebnisse liefern, dies habe ich schon oft für verschiedene Processoren gesehen (allerdings eigentlich immer Intel vs AMD, nicht für zwei Intel), hier wird wahrscheinlich der interne Code für Standardfunktionen wie sin, exp usw. leicht unterschiedlich sein. Intel garantiert mW nicht, daß diese Funktionen korrekt gerundet sind.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 06:44 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