Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   wurzel ziehen und quadrieren (https://www.delphipraxis.net/102418-wurzel-ziehen-und-quadrieren.html)

eisatnaf0987 28. Okt 2007 14:13


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]

Neutral General 28. Okt 2007 14:17

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:
t:= s;
s:= s*s;
t:= sqrt (s);
Das ganze bringt dir nichts^^ Weil danach t=s. Wenn dann sollte es heißen:

Delphi-Quellcode:
t:= s;
s:= s*s;
t:= sqrt (t);
Wobei wie gesagt:

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 28. Okt 2007 14:17

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ein delphispezifisches Problem.

eisatnaf0987 28. Okt 2007 14:20

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?

Florian H 28. Okt 2007 14:22

Re: wurzel ziehen und quadrieren
 
Eins noch am Rande: "symikonol" -> "Semikolon" (würde ich zumindest schätzen, dass es das heißen soll).

Neutral General 28. Okt 2007 14:27

Re: wurzel ziehen und quadrieren
 
Hi,

also ich schreibe dir da alle mal kommentiert und formatiert hier hin... ausnahmsweise..

Delphi-Quellcode:
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.
Aber wie gesagt: Wer kommt auf die Idee eine Konsolenanwendung mit InputBox und ShowMessage zu schreiben?? Sicher das nicht readln und writeln gemeint waren?..

Gruß
Neutral General

eisatnaf0987 28. Okt 2007 14:33

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:

Neutral General 28. Okt 2007 14:37

Re: wurzel ziehen und quadrieren
 
Zitat:

Zitat von eisatnaf0987
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:


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

eisatnaf0987 28. Okt 2007 14:39

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