AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit nem Quelltext!!!!!!

Ein Thema von janiboy · begonnen am 1. Feb 2005 · letzter Beitrag vom 2. Feb 2005
Antwort Antwort
janiboy

Registriert seit: 31. Jan 2005
2 Beiträge
 
#1

Problem mit nem Quelltext!!!!!!

  Alt 1. Feb 2005, 23:09
Ich hab ne Frage zum Quelltext...
Wo ist der Fehler???
Der zeigt immer denn selben fehler an....

nämlich:

[Hint] Unit1.pas(50): Value assigned to 'x2' never used
[Hint] Unit1.pas(49): Value assigned to 'x1' never used

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    aedit: TEdit;
    bedit: TEdit;
    cedit: TEdit;
    Button1: TButton;
    x1edit: TEdit;
    x2edit: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,p,q,x1,x2:real;

begin
a:=StrToInt(aedit.Text);
b:=StrToInt(bedit.Text);
c:=StrToInt(cedit.Text);
if
 a=1
then
begin
  p:=b;
  q:=c;
  end
   else
   begin
    p:=b/a;
    q:=c/a;
    x1:=-p/2+sqrt(sqr(p/2)-q);
    x2:=-p/2+sqrt(sqr(p/2)-q);
    if
    sqr(p/2)-q>0
    then
    begin
    x1:=0;
    x2:=0;
    end
    else
    if
    sqr(p/2)-q=0
    then
    begin
    x1:=-p/2;
    x2:=-p/2;
    end
    else
    begin
    x1:=99;
    x2:=99;
    end;
    x1edit.Text:=floatToStr(x1);
    x2edit.Text:=floatToStr(x2);

end;

end.





Bitte um Hilfe....

was mache ich Falsch

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#2

Re: Problem mit nem Quelltext!!!!!!

  Alt 1. Feb 2005, 23:21
hallo janiboy!

nachdem hier
Zitat:
[Hint] Unit1.pas(50): Value assigned to 'x2' never used
[Hint] Unit1.pas(49): Value assigned to 'x1' never used
das wort 'hint' und nicht 'error' steht, handelt es sich lediglich um einen hinweis des
compilers und um keine fehlermeldung - sonst würde dort 'error' zu lesen sein.
somit lässt sich dein programm compilieren & ausführen.

dem grund, warum die werte von x1 & x2 nicht verwendet werden, bin ich allerdings nicht
nachgegangen, da deine formatierung nicht grad augenfreundlich ist

mfg, stefan
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Problem mit nem Quelltext!!!!!!

  Alt 1. Feb 2005, 23:25
Das ist kein Fehler an sich. Das is eben nur ein Hinweis von Delphi, der verhindern soll, daß du dir irgendwas deklarierst und nicht benutzt.
Du weist x1 und x2 einen Wert zu, den du (scheinbar, denn eigentlich zeigst du die ja umgewandelt in einen String in einem Editfeld an) nicht mehr weiter benutzt.
Ich ignorier diese Hinweise dann immer. Solange da nur "Hint" steht, kannst du das einfach nur als gutgemeinten Hinweis verstehen!

PS: Bitte benutz das nächste Mal die delphi-Tags
Code:
[delphi]
...
[/delphi]
dann kann man den Quelltext besser lesen.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Problem mit nem Quelltext!!!!!!

  Alt 1. Feb 2005, 23:32
Moin!

Ich kann meinen Vorrednern nur zustimmen und hinzufügen, dass die Zuweisung von
Delphi-Quellcode:
 x1:=-p/2+sqrt(sqr(p/2)-q);
x2:=-p/2+sqrt(sqr(p/2)-q);
unsinnig ist, weil danach deckst du mit dem If / Else Konstrukt alle möglichen Fälle ab und weist trotzdem immer wieder X1 und X2 etwas zu. Wenn du aber nun X1 und X2 einen Wert zuweist, dann ist die vorherige Zuweisung (o.g.) unsinnig. Daher die Warnung: zugewiesene Werte werden niemals benutzt.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Problem mit nem Quelltext!!!!!!

  Alt 1. Feb 2005, 23:38
Ah, die Zeile is mir glatt durchgerutscht. Is ja aber auch kein Wunder, bei dem Quelltextgewurstl.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Problem mit nem Quelltext!!!!!!

  Alt 2. Feb 2005, 09:47
Ich habe den (unübersichtlichen) Quelltext nur kurz überflogen, aber so eine Meldung bedeutet eigenlich immer, dass die zugewiesenen Werte einer Variablen (Hier: x1,x2) nie genutzt werden und somit können diese Variablen auch weggelassen werden.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Problem mit nem Quelltext!!!!!!

  Alt 2. Feb 2005, 09:54
Hallo janiboy,

Formatier deinen Quellcode mal ordentlich
Konkret liegt die Ursache der meldung genau in diesem Codeabschnitt:
Delphi-Quellcode:
x1:=-p/2+sqrt(sqr(p/2)-q);
x2:=-p/2+sqrt(sqr(p/2)-q);
if sqr(p/2)-q>0 then
begin
  x1:=0;
  x2:=0;
end
else if sqr(p/2)-q=0 then
begin
  x1:=-p/2;
  x2:=-p/2;
end
else
begin
  x1:=99;
  x2:=99;
end;
Wie du siehst, werden zuerst zwar irgendwelche Werte zugewiesen, aber im if-then-else-if... Konstrukt überschrieben, und zwar egal welcher Fall auftritt. Deshalb sagt dir der Compiler, dass du dir die ersten beiden Zuweisungen sparen kannst, da die Werte sowieso nicht benutzt werden.
Weiters, wenn du auf eine solche Meldung doppelt draufklickst, bringt er dich in die entsprechende Zeile, das heißt du siehst auch, zu welcher Zeile er was sagt. Du kannst die beiden Zeilen also ruhig löschen, in der exe sind sie ja sowieso nicht drin (Compileroptimierung).

Greetz
alcaeus

[add]Und ein Ausrufezeichen im Titel sollte auch genügen!!!!!!!! [/add]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Problem mit nem Quelltext!!!!!!

  Alt 2. Feb 2005, 10:10
@Janiboy: Ändere den Titel bitte dahingehend, dass deutlich wird, wo Dein Problem liegt. Ein Problem mit Quelltext haben fast alle die fragen.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Problem mit nem Quelltext!!!!!!

  Alt 2. Feb 2005, 11:05
Zitat von janiboy:
Ich hab ne Frage zum Quelltext...
Wo ist der Fehler???
Der zeigt immer denn selben fehler an....

nämlich:

[Hint] Unit1.pas(50): Value assigned to 'x2' never used
[Hint] Unit1.pas(49): Value assigned to 'x1' never used

...

Bitte um Hilfe....

was mache ich Falsch
Zuallererst mal Herzlich Willkommen in der Delphi Praxis.

Mich wundert es, dass sich der Quelltext ohne Fehler kompilieren lässt, da ein "end;" fehlt.

Die Antworten wurden ja oben schon gegeben.

Hier nochmal der komplette überarbeitete Quellcode (ungetestet):

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    aedit: TEdit;
    bedit: TEdit;
    cedit: TEdit;
    Button1: TButton;
    x1edit: TEdit;
    x2Edit: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations } 
  public
    { Public declarations } 
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, c,
  p, q,
  x1, x2: Real;
begin
  a := StrToInt(aedit.Text);
  b := StrToInt(bedit.Text);
  c := StrToInt(cedit.Text);
  if a=1 then
  begin
    p := b;
    q := c;
  end
  else
  begin
    p := b/a;
    q := c/a;
    // Das folgende "end;" hat gefehlt
  end;

// Folgende 2 Zeilen haben keine Wirkung, da in dem If .. Else .. Konstrukt
// x1 und x2 überschrieben werden.
// x1 := -p/2+sqrt(sqr(p/2)-q);
// x2 := -p/2+sqrt(sqr(p/2)-q);

  if sqr(p/2)-q>0 then
  begin
    x1 := 0;
    x2 := 0;
  end
  else
  begin
    if sqr(p/2)-q=0 then
    begin
      x1 := -p/2;
      x2 := -p/2;
    end
    else
    begin
      x1 := 99;
      x2 := 99;
    end;
  end;

  x1edit.Text := FloatToStr(x1);
  x2edit.Text := FloatToStr(x2);
end;

end.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
janiboy

Registriert seit: 31. Jan 2005
2 Beiträge
 
#10

Re: Problem mit nem Quelltext!!!!!!

  Alt 2. Feb 2005, 14:43
Erst mal vielen Dank an alle!!!
Mein Problem ist das ich ein Programm schreiben soll das Die PQ-Formel anwendet mit allen regeln(negative wurzel, x²=0 usw....) und ich bekomme des net hin.....
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:14 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