AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EInvalidOp bei Gleitkomma-Operation

Offene Frage von "Calle"
Ein Thema von Calle · begonnen am 13. Feb 2006 · letzter Beitrag vom 14. Feb 2006
 
Calle

Registriert seit: 13. Feb 2006
Ort: Teltow
24 Beiträge
 
Delphi 2005 Personal
 
#1

EInvalidOp bei Gleitkomma-Operation

  Alt 13. Feb 2006, 17:05
Ich benutze ja nur äußerst selten um probleme beim Programmieren zu lösen aber das verwirrt mich doch ZU sehr...

bei folgendem Code tritt ein EInvalidOp auf... wobei mich wundert was er an normaler Division nicht kennt... ich hab nun schon alle werte wo es möglich war durch round() in Integer Werte umgeformt aber es will nicht funktionieren...
vorher hatte ich die quersum-Prozedur noch mit parameterübergabe...aber als es nicht funktionierte hab ich das dann auch geändert aber es half alles nichts...

zum verständinss was das prog überhaupt macht: es soll diejenigen Zahlen ausgeben wo die summe der Quersummen zweier Zahlen gleich der Quersumme der Summe zweier zaheln ist... fragt nicht warum ich das tue...fand ich einfach nur interessant ^^

Delphi-Quellcode:
type
  TForm2 = class(TForm)
    QA_Ausgabe: TLabel;
    AQ_Ausgabe: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Gauge1: TGauge;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  zahl,quer1:real;
  x,y,z,AQ_summe,QA_Summe:integer;

implementation

{$R *.dfm}

Procedure quersum;
Var j,laenge:integer;
    ziff1,ziffer1: array [0..100] of real;
    strzahl:string;
Begin
  strzahl:=FloatToStr(zahl);
  laenge:=length(strzahl);
  for j:=1 to laenge do
    begin //aufspalten der Zahl in einzelne Ziffern
      zahl:=zahl/10;
      ziffer1[j]:=frac(zahl);
      zahl:=trunc(zahl);
      ziff1[j]:=ziffer1[j]*10;
    end;
  quer1:=0;
  while j<>0 do
  begin
    quer1:=ziff1[j]+quer1;
    j:=j-1;
  end;
End;

Procedure QuersummenAddition;
Var x_quer,y_quer:real;
Begin
  zahl:=x;
  quersum;
  x_quer:=quer1;
  zahl:=y;
  quersum;
  y_quer:=quer1;
  QA_Summe:=round(x_quer)+round(y_quer);
end;

Procedure AdditionDerQuersumme;
Begin
  zahl:=x+y;
  quersum;
  AQ_Summe:=round(quer1);
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  z:=round(StrToInt(edit1.Text));
  y:=10;
  x:=10;
  repeat
    begin
    y:=y+1;
    x:=10;
    Gauge1.Progress:=round((y div z)*100);
    repeat
      begin
      x:=x+1;
      QuersummenAddition;
      AdditionDerQuersumme;
      if round(QA_Summe)=round(AQ_Summe) then
        begin
          QA_Ausgabe.Caption:= FloatToStr(QA_Summe);
          AQ_Ausgabe.Caption:= FloatToStr(AQ_Summe);
        end;
      end;
    until x=z;
    end;
   until y=z;

end;

end.
nebenbei ewähnt bin ich in delphi noch anfänger als seit nicht zu hart
  Mit Zitat antworten Zitat
 


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 00:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz