Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Logarithmus Log zu Delphi (https://www.delphipraxis.net/200099-logarithmus-log-zu-delphi.html)

EWeiss 20. Mär 2019 09:09

AW: Logarithmus Log zu Delphi
 
Delphi-Quellcode:
IfThen(FView = 0, (4096 * mGain), 1) / FFFTSize;

Sorry aber das funktioniert nicht weil IFThen so nicht ausgelegt ist.
Zitat:

[DCC Error] uSpectrum.pas(512): E2014 Statement expected, but expression of type 'Extended' found
Deshalb hatte ich meine Zeile angepasst.

gruss

Delphi.Narium 20. Mär 2019 09:20

AW: Logarithmus Log zu Delphi
 
Ok, dann gibt es keine überladene Version von IfThen für den passenden Datentypen. Schade.

Michael II 20. Mär 2019 09:53

AW: Logarithmus Log zu Delphi
 
Was passiert, wenn du deine Formel

Delphi-Quellcode:
  c := 0.0001;
  d := -ln(c);
...
  b2 := (ln(Sqrt(r * r + i * i) + c ) + d ) * q1;
Schritt für Schritt auswertest?

Also so:
Delphi-Quellcode:
  c := 0.0001;
  d := -ln(c);
...
  b := Sqrt(r * r + i * i);
  b := ln( b + c );
  b := b + d;
  b := b*q1;

Wo haut's dich da raus?


Nebenbei:
Wenn du statt d := 9.21034037197618; (als single Wert speichert Delphi 9.21034049987793) d := -ln(0.0001); verwendest, dann wird b oben für r=i=0 wie gewünscht 0 [auch wenn du dich später für "double" entscheiden solltest].

Man darf es Resultatkosmetik nennen... :)

EWeiss 20. Mär 2019 10:07

AW: Logarithmus Log zu Delphi
 
Zitat:

Was passiert, wenn du deine Formel
Wird wohl das beste sein um den punkt für das Problem zu analysieren.
Danke für die Info.

Das nachträglich zurücksetzen ist kein Problem wenn es dann läuft.

Zitat:

Wenn du statt d := 9.21034037197618
Diese Änderung kann ich vornehmen wenn die Grund Probleme beseitigt sind.. also die abstürze.

gruss

Michael II 20. Mär 2019 11:37

AW: Logarithmus Log zu Delphi
 
Step by Step solltest du rasch sehen, wo's daneben geht.


...und...
d := -ln(0.0001) und deine Konstante 9.21034037197618 (wird gespeichert als 9.21034049987793) sind - solange du alle drei als Single verwendest - gleich.
Der Absturz rührt also sicher nicht daher.
d := -ln(0.0001) spiegelt einfach den "Sinn" der Formel wieder: ¦Spektrum=0¦ muss Nullstelle sein von b(Spektrum,q1).

EWeiss 20. Mär 2019 17:43

AW: Logarithmus Log zu Delphi
 
Zitat:

Zitat von Michael II (Beitrag 1428158)
Step by Step solltest du rasch sehen, wo's daneben geht.


...und...
d := -ln(0.0001) und deine Konstante 9.21034037197618 (wird gespeichert als 9.21034049987793) sind - solange du alle drei als Single verwendest - gleich.
Der Absturz rührt also sicher nicht daher.
d := -ln(0.0001) spiegelt einfach den "Sinn" der Formel wieder: ¦Spektrum=0¦ muss Nullstelle sein von b(Spektrum,q1).

Deaktiviere ich den ganzen Kram
case 0 für die Kreis Visualisierung dann startet die Anwendung aber wird nix visualisiert.

Irgendwo da liegt der Fehler für den Kreis bei case 1 das gleiche.
Muss mich da durch steppen.

PS:
Eigentlich müsste b = 0 sein wenn kein Sound wieder gegeben wird ist aber bei weitem höher.

gruss

Michael II 20. Mär 2019 22:10

AW: Logarithmus Log zu Delphi
 
Ja dann hast du irgendwo sonst ein Problem in deinem Code. Denn b

Delphi-Quellcode:
c := 0.0001;
d := -ln(c);
b := (ln(Sqrt(r * r + i * i) + c ) + d ) * q1;
ist ja genau so gebaut, dass b=0 für ¦Spektrum¦=sqrt(r*r+i*i)=0.

¦Spektrum¦=0 in b eingesetzt:

b = (ln(0+c) - ln(c))*q1 = 0*q1 = 0

EWeiss 20. Mär 2019 22:14

AW: Logarithmus Log zu Delphi
 
Zitat:

Zitat von Michael II (Beitrag 1428209)
Ja dann hast du irgendwo sonst ein Problem in deinem Code. Denn b

Delphi-Quellcode:
c := 0.0001;
d := -ln(c);
b := (ln(Sqrt(r * r + i * i) + c ) + d ) * q1;
ist ja genau so gebaut, dass b=0 für ¦Spektrum¦=sqrt(r*r+i*i)=0.

¦Spektrum¦=0 in b eingesetzt:

b = (ln(0+c) - ln(c))*q1 = 0*q1 = 0

Wenn ich deine Änderungen verwende also Zeile für Zeile die Funktion debuggen will.
Bekomme ich einen Stacküberlauf.
Ich glaube das Teil ist einfach zu hoch für mich. (Mir fehlt die höhere Mathematik um die Probleme lösen zu können)

Edit
wurde zur Seite gelegt im Moment keinen Bock mehr.
Danke für die Hilfe.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 Uhr.
Seite 3 von 3     123   

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