AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch
Thema durchsuchen
Ansicht
Themen-Optionen

(2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

Ein Thema von Michael II · begonnen am 25. Sep 2024 · letzter Beitrag vom 26. Sep 2024
Antwort Antwort
Seite 1 von 2  1 2      
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#1

(2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 11:52
Hallo...
seit heute tritt bei meinem unter 11.2 kompilierten Programm ein seltsamer Fehler auf.

lenar und maxsc sind vom Typ integer, kein Multithreading. Win64 Modus/Debug Mode.
Ab und zu hat lenar nach der Zeile
lenar := 2*(maxsc+1);
den Wert 0, obschon maxsc zum Beispiel den Wert 6 hat.


Wenn ich diesen Code laufen lasse:

Delphi-Quellcode:
      lenar := 2*(maxsc+1);
      if (maxsc > 0) and (lenar = 0)
        then
        begin
          showmessage('m='+maxsc.ToString + ' l='+lenar.ToString);
          lenar := 2*(maxsc+1);
          ShowMessage( lenar.ToString );
        end;
... wird nach dem Auftreten des Problems (siehe Code oben) m=6 l=0 ausgegeben. Ich berechne dann lenar erneut und jetzt stimmt der Wert; lenar ist 14.

Da Debuggen unter Win64 wenig Spass macht, wechsle ich zu Win32. Problem bleibt.

Weder die IDE noch Eurekalog melden sich mit einem "Aber Hallo...". Windows zeigt mir an, dass mein Programm etwa 22 MB Speicher beansprucht - also praktisch nix. (Vergleich: Windows Cloud App über 500MB)

Tipps? Danke.
Michael Gasser
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
850 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 12:04
Klappt bei mit in Delphi 11.1 ohne Probleme. Hast Du mal ein neues Projekt erstellt nur mit diesem Code?
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
442 Beiträge
 
Delphi 12 Athens
 
#3

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 12:08
Bei der Suche nach Fehlern sollte man schon genau sein. Was ist m=6? In deinem Code gibts keine Variable m.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 12:29
Bei der Suche nach Fehlern sollte man schon genau sein. Was ist m=6? In deinem Code gibts keine Variable m.
Du Code nicht gelesen? (showmessage('m='+maxsc.ToString + ' l='+lenar.ToString) - sonst du nicht schreiben das. Du nicht hilfreich.
Michael Gasser
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 12:33
Klappt bei mit in Delphi 11.1 ohne Probleme. Hast Du mal ein neues Projekt erstellt nur mit diesem Code?

Ja rechnet normalerweise gut und in neuem Projekt auch. In diesem Projekt (läuft über 20 Jahre...) wird diese Zeile zur Berechnung der Grösse eines Arrays genutzt - und plötzlich war der Array zu kurz . Das Programm lief dort sicher bereits zig Millionen Mal durch - und da die berechneten Resultate mit bekannten Werten verglichen werden kann ich schreiben: Bis heute alles i.O. - strange bug.
Michael Gasser
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
442 Beiträge
 
Delphi 12 Athens
 
#6

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 12:37
Bei der Suche nach Fehlern sollte man schon genau sein. Was ist m=6? In deinem Code gibts keine Variable m.
Du Code nicht gelesen? (showmessage('m='+maxsc.ToString + ' l='+lenar.ToString) - sonst du nicht schreiben das. Du nicht hilfreich.
Sorry, habe ich übersehen...
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 12:58
Habe meine Kiste neu gestartet. Tritt nicht wieder auf. Seltsam. asm Code ok. Danke - Fall geschlossen.
Michael Gasser
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
291 Beiträge
 
Delphi 12 Athens
 
#8

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 13:28
Solche Merkwürdigkeiten hatte ich gerne mal, wenn ich aus Versehen nicht initialisierte lokale Variablen verwendet habe.
Vermutlich eine dumme Frage, aber da ich den Rest des Codes nicht sehe, dennoch: Kann es vorkommen, dass maxsc beim Erreichen dieser Codestelle nicht initialisiert ist?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#9

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 13:45
Kann es vorkommen, dass maxsc beim Erreichen dieser Codestelle nicht initialisiert ist?
Dann würde es im ShowMessage wohl eher nicht 6 melden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
488 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: (2*6+1)=0 - Seit heute rechnet mein Programm ab und zu falsch

  Alt 25. Sep 2024, 14:08
Delphi-Quellcode:
      lenar := 2*(maxsc+1);
      if (maxsc > 0) and (lenar = 0)
        then
        begin
          showmessage('m='+maxsc.ToString + ' l='+lenar.ToString);
          lenar := 2*(maxsc+1);
          ShowMessage( lenar.ToString );
        end;
Hat sehr sicher nichts mit dem Problem zu tun, aber falls es sich um Floats handelt, solltest du die Funktionen IsZero , CompareValue und SameValue verwenden.
Dennis
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:33 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