![]() |
wurzel ziehen und quadrieren
hallo.... also erst mal im voraus. ich bin ein delphi-frischling und bin froh, dass ich das quadrat schon hinbekommen habe, nach etlichen hilfeseiten und der delphihilfe selbst. nun habe ich aber probleme mit dem wurzel ziehen ( kein Math bei uses)
ich habs mit sqrt versucht und mit x^2 aber geht irgendwie nicht. nun weiß ich nicht weiter. das ist mein quelltext.
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE} uses Windows, Messages, SysUtils, Dialogs; var s: integer; t: integer; Rechnung: string; begin Rechnung:= Inputbox ('quadrieren und Wurzelziehen', 'Zahl eingeben, die quadriert und aus der die Wurzel gezogen werden soll.','1'); s:= strtoint(Rechnung); t:= s; if ((t <=-46340) or (t >=46340)) then begin showmessage ('Die von Ihnen eingegebene Zahl befindet sich nicht im Zahlenbreich. '); end //kein symikonol, da else nicht greift else begin t:= s; s:= s*s; t:= sqrt (s); showmessage ('Das Quadrat von '+Rechnung+' ist '+inttostr(s)+' und die Wurzel aus '+Rechnung+' ist '+inttostr(t)+'!'); end; end. bitte um hilfe. ich weiß nicht, wos hängt. (fehlermeldung incompatible types:'integer' and 'extended') danke schon mal im voraus :) [edit=Sharky]Delphi-Tag vervollständigt Mfg, Sharky[/edit] |
Re: wurzel ziehen und quadrieren
Hi,
Du hast t als Integer definiert. sqrt liefert aber eine Kommazahl. Das heißt du musst t als Single, Double oder Extended definieren. Außerdem frage ich mich was du da für seltsame Sachen baust.. Ne Konsolenanwendung mit Inputbox und ShowMessage o.O :shock: ADD:
Delphi-Quellcode:
Das ganze bringt dir nichts^^ Weil danach t=s. Wenn dann sollte es heißen:
t:= s;
s:= s*s; t:= sqrt (s);
Delphi-Quellcode:
Wobei wie gesagt:
t:= s;
s:= s*s; t:= sqrt (t);
Delphi-Quellcode:
;)
var t: Single;
ADD2: Außerdem solltest du vor dem Wurzel ziehen überprüfen ob t >= 0 sonst wird das nämlich eventuell nix ;) Gruß Neutral General |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ein delphispezifisches Problem. |
Re: wurzel ziehen und quadrieren
sqrt liefert aber eine Kommazahl. Das heißt du musst t als Single, Double oder Extended definieren. Außerdem frage ich mich was du da für seltsame Sachen baust.. Ne Konsolenanwendung mit Inputbox und ShowMessage o.O :shock:
ja, ich bin auch geschockt. ich sitze an diesem thema schon ewigkeiten dran. so war die aufgabenstellungen, üer eine konsolenanwedung mit input und showmessage. bin wirklich froh, dass ich überhaupt so weit gekommen bin, aber nun anscheinend auf dem letzten zentimeter doch irgendwie hängen bleibe. wo muss ich das denn definieren? |
Re: wurzel ziehen und quadrieren
Eins noch am Rande: "symikonol" -> "Semikolon" (würde ich zumindest schätzen, dass es das heißen soll).
|
Re: wurzel ziehen und quadrieren
Hi,
also ich schreibe dir da alle mal kommentiert und formatiert hier hin... ausnahmsweise..
Delphi-Quellcode:
Aber wie gesagt: Wer kommt auf die Idee eine Konsolenanwendung mit InputBox und ShowMessage zu schreiben?? Sicher das nicht readln und writeln gemeint waren?..
program Project2;
{$APPTYPE CONSOLE} uses Windows, Messages, SysUtils, Dialogs; var s: integer; t: Single; // Single statt Integer für die Wurzel Rechnung: string; begin Rechnung:= Inputbox ('quadrieren und Wurzelziehen', 'Zahl eingeben, die quadriert und aus der die Wurzel gezogen werden soll.','1'); s:= Strtoint(Rechnung); if ((s <=-46340) or (s >=46340)) then // kannst auch einfach s überprüfen Showmessage('Die von Ihnen eingegebene Zahl befindet sich nicht im Zahlenbreich.') // begin, end überflüssig else begin t:= sqrt(s); // t := s ist unnötig s:= s*s; // oder sqr(s); wobei dann aber auch s: Single; Showmessage ('Das Quadrat von '+Rechnung+' ist '+inttostr(s)+' und die Wurzel aus '+Rechnung+' ist '+ FloatToStr(t)+'!'); // bei t jetzt FloatToStr benutzen weil t=Kommazahl end; end. Gruß Neutral General |
Re: wurzel ziehen und quadrieren
danke :-D danke :-D danke :-D danke danke.
du hast mir wirklich noch einen langen delphiabend :?: und eine neue delphinacht :dance: erspart. ja, es ist absicht, dass kein readln und writeln drin steht, das waren die kriterien. allerdings finde ich immer noch, dass diese aufgabe für einen neuling einfach zu hoch ist. :wall: |
Re: wurzel ziehen und quadrieren
Zitat:
Nein zu schwer ist die Aufgabe meiner Meinung nach nicht. Die Aufgabenstellug ist bescheuert (wegen InputBox/Showmessage) aber ansonsten ist die Aufgabe vollkommen in Ordnung und schaffbar.. Und ich hoffe du verstehst was ich dir dahingeschrieben habe und kannst das in Zukunft selbst. Weil normalerweise ist es hier nicht üblich das man fertigen Quelltext vorgelegt bekommt... Aber da du wenigstens schonmal angefangen hast und versucht hast das Problem alleine zu lösen habe ich ein Auge zugedrückt. :arrow: Das wichtigste ist, das du verstanden hast wie das Programm funktioniert und warum meine Version funktioniert und deine nicht! Gruß Neutral General |
Re: wurzel ziehen und quadrieren
ich denke schon. ich kanns nachvollziehen. danke dir noch mal und noch einen schönen tag. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 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