AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein programm fehler (pq-formel) - numerische datentypen
Thema durchsuchen
Ansicht
Themen-Optionen

programm fehler (pq-formel) - numerische datentypen

Ein Thema von pete_knightde · begonnen am 15. Mär 2005 · letzter Beitrag vom 15. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
pete_knightde

Registriert seit: 15. Mär 2005
11 Beiträge
 
#1

programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 19:56
hi, muss für die schule ein programm machen, womit ich durch hilfe der pq-formel auf die lösung komme
jedoch habe ich folgende fehlermeldung (bei dem berechnungsteil): "Zeigertyp erwartet"


procedure TForm1.BtBerechnenClick(Sender: TObject);
//Deklaration
var p, q, x1, x2 : real;

begin
//Umwandlung der Eingaben
p:=strtofloat (Edp.text);
q:=strtofloat (Edq.text);

//Berechnungsteil
x1 := -1*p / 2 + sqrt(p^2/4-q);
x2 := -1*p / 2 - sqrt(p^2/4-q);

if sqrt((p^2/4)-q)<0
then begin
EdKommentar.text:='Keine Lösung';
end
else if sqrt((p^2/4)-q)=0
then begin
EdKommentar.text:='Nur Eine Lösung';
end else begin
EdKommentar.text:='Zwei verschiedene Lösungen';

//Formatierung
Edx1.text:=floatt ostrF(x1,ffgeneral,10,3);
Edx2.text:=floattostrF(x2,ffgeneral,10,3 );
end;

wenn ich die aufgabe streiche p zu quadrieren, dann klappt zwar das programm, aber stürzt mit einer fehlermeldung bei 2 positiven zahlen ab ("ungültige gleitkommaoperation")
und wenn p negativ ist klappt es auch nicht
woran liegt das??

ich kann zwar statt p^2, p*p eingeben, aber ich würde es gerne anders machen


wäre nett, wenn ihr helfen würdet, ich benutze delphi 5 von borland, falls das hilft
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:03
if sqrt((p^2/4)-q)=0 Dieses --> ^ Zeichen wird in Delphi im Zusammenhang mit Zeigern verwendet.
Binde die Unit Math ein und nutze die Funktuon Power

[edit] Ups, hab ich übersehn: Herzlich Willkommen [/edit]
Julian J. Pracht
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:10
Erstmal
Herzlich Wilkommen in der DP
Du kannst in Delphi nicht einfach ein ^ eingeben, das ist dort für Zeiger reserviert.
Stattdessen kannst du Sqr zum quadrieren eines Wertes verwenden.
Also so:
Delphi-Quellcode:
x1 := -1*p / 2 + sqrt(Sqr(p)/4-q);
x2 := -1*p / 2 - sqrt(Sqr(p)/4-q);
P.S: Bitte verwende das nächste mal auch solche Delphi Tags für deinen Code
Benjamin
  Mit Zitat antworten Zitat
pete_knightde

Registriert seit: 15. Mär 2005
11 Beiträge
 
#4

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:17
aber es gibt immernoch das problem mit der ungültigen gleitkommaoperation
es klappt nur wenn p positiv und q negativ ist

aber sonst nicht

???
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#5

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:20
Naja, nicht unbedingt.
Du muss halt aufpassen, dass der Term unter der Wurzel >=0 ist
Julian J. Pracht
  Mit Zitat antworten Zitat
pete_knightde

Registriert seit: 15. Mär 2005
11 Beiträge
 
#6

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:34
if sqrt(sqr(p)/4-q)<0
then begin
EdKommentar.text:='Keine Lösung';

das habe ich doch berücksichtigt
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#7

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:38
Zitat von pete_knightde:
if sqrt((p^2/4)-q)<0
then begin
EdKommentar.text:='Keine Lösung';

das habe ich doch berücksichtigt
An dieser Stelle rechnest du ja bereits mit der Wurzel. Vorher müsste so etwas stehen:

Delphi-Quellcode:
if (sqr(p)/4-q) >= 0 then
//Rechnung
else
//keine Rechnung
  Mit Zitat antworten Zitat
pete_knightde

Registriert seit: 15. Mär 2005
11 Beiträge
 
#8

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:46
ich habs es nochmal ausprobiert
aber es klappt trotzdem nicht

liegt es vielleicht an der deklaration??
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#9

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:51
Wenn du alle Variablen als REAL deklariert hast sollte es keine Probleme seitens der Variablen geben. Zeig doch noch mal den Code-Teil, in dem der Fehler auftritt und sag nochmal genau, welcher Fehler es jetzt ist, dann können wir dir auch eher helfen
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#10

Re: programm fehler (pq-formel) - numerische datentypen

  Alt 15. Mär 2005, 20:54
Außerdem ist mir noch ein kleiner Logikfehler aufgefallen:

Zitat von pete_knightde:
Delphi-Quellcode:
//Berechnungsteil
x1 := -1*p / 2 + sqrt(p^2/4-q);
x2 := -1*p / 2 - sqrt(p^2/4-q);

if sqrt((p^2/4)-q)<0
then begin
EdKommentar.text:='Keine Lösung';
end
else if sqrt((p^2/4)-q)=0
then begin
EdKommentar.text:='Nur Eine Lösung';
end else begin
EdKommentar.text:='Zwei verschiedene Lösungen';
Du berechnest erst die Werte und checkst dann ab, ob diese Berechnung möglich ist. Das wird wahrscheinlich dein Fehler sein! Check erst, ob die Berechnung möglich ist und Rechne dann innerhalb des
Delphi-Quellcode:
if (...) then
  begin
   (...)
  end;
die Werte aus.

//Edit1: Da hab ich doch glatt selber die Delphi-Tags vergessen
  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 03:05 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