![]() |
Problem mit nem Quelltext!!!!!!
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] |
Re: Problem mit nem Quelltext!!!!!!
hallo janiboy!
nachdem hier Zitat:
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 |
Re: Problem mit nem Quelltext!!!!!!
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:
dann kann man den Quelltext besser lesen.
[delphi]
... [/delphi] |
Re: Problem mit nem Quelltext!!!!!!
Moin!
Ich kann meinen Vorrednern nur zustimmen und hinzufügen, dass die Zuweisung von
Delphi-Quellcode:
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.
x1:=-p/2+sqrt(sqr(p/2)-q);
x2:=-p/2+sqrt(sqr(p/2)-q); MfG Muetze1 |
Re: Problem mit nem Quelltext!!!!!!
Ah, die Zeile is mir glatt durchgerutscht. Is ja aber auch kein Wunder, bei dem Quelltextgewurstl. :mrgreen:
|
Re: Problem mit nem Quelltext!!!!!!
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 |
Re: Problem mit nem Quelltext!!!!!!
Hallo janiboy,
Formatier deinen Quellcode mal ordentlich :roll: Konkret liegt die Ursache der meldung genau in diesem Codeabschnitt:
Delphi-Quellcode:
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.
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; 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!!!!!!!! :roll:[/add] |
Re: Problem mit nem Quelltext!!!!!!
@Janiboy: Ändere den Titel bitte dahingehend, dass deutlich wird, wo Dein Problem liegt. Ein Problem mit Quelltext haben fast alle die fragen. ;-)
...:cat:... |
Re: Problem mit nem Quelltext!!!!!!
Zitat:
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. |
Re: Problem mit nem Quelltext!!!!!!
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..... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 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