Wurzelieren
-
Tag
wollte ein kleines Programm zur Wurzelberechnung schreiben.
Also:Im Label1 wird der Wert eingegeben z.B 100
durch den Klick auf "Go"
soll im Label2 "10" erscheinen, da die Wurzel aus 100 10 sein sollte.Ich hab natürlich im INET gesucht, aber da stehen x verschiedene möglichkeiten und keine geht

Danke
-
- sqrt()
- sqrtl()- math.h
-
das mit dem Math hab ich gemacht und verstanden aber das anderev weis ich nicht richtig einzusetzen
sorry
verstehs nicht
-
Hallo
warum schaust du nicht mal in die BCB-Hilfe zum Thema sqrt?
Da hättest du folgendes Beispiel gefunden :#include <math.h> ... double x = 4.0, result; result = sqrt(x);bis bald
akari
-
Wie sieht denn dein bisheriger Ansatz aus?
[zaghafte Meinung] Vielleicht solltes du dich erst ein wenig mit Konsolenprogrammierung beschäftigen, wenn du hierbei schon Schwierigkeiten hast.
GUI-Programme sind ja nun einmal von Natur aus etwas komplexer.
[\zaghafte Meinung]
-
@Paladin
Du willst ein ein Label was eingeben?
Nimm lieber TEdit.
Desweiteren schliesse ich mich der Meinung von SeppSchrot an.Ciao
-
Bin noch anfänger
blutiger anfängerTEdit hab ich auch gemeint nur das falsche geschrieben
Was für eine Anwendung das ist, weis ich nicht
mach einfach immer das gleiche (das oberste bei "Neu" im Borland)
komme zwar jetzt nicht an das Programm aber morgen wird das schon klappenDanke
-
such dir am besten tutorials für den borland und/oder über C/C++.
eines das von grund an anfängt..
du brauchst grundwissen um es zu verstehen
-
hab schon ein buch für anfänger
arbeite auch damit aber die schwierigeren sachen sind dort halt nicht beschriebenaber nochmal zu den Konsolenanwendungen:
was ist der Unterschied zischen diesen KA und irgendwas anderem?
-
Hallo
was ist der Unterschied zischen diesen KA und irgendwas anderem
Um es kurz zu machen : Es ist der Unterschied zwischen der Eingabeaufforderung und Windowsfenstern.
Um ein reines Konsolenprogramm zu erstellen, benutzt du am einfachsten den Konsolenexperten (Menü Datei/Neu.../Konsolen-Experte, im Dialog schaltest du die VCL aus).
Bitte beachte, das für Fragen zu reinen Konsolenprogrammen in allgemeinen das C++ Forum zustandig ist. Lies dir dort die FAQ durch und auch ein gutes Tutorial (siehe obere rechte Menüleiste in diesem Forum) zu reinem C++.bis bald
akari
-
@Akari
mit dem code kommt als Ergebnis von 100 : 29
und auch bei jeder anderen Zahl immer 29
was hab ich falsch gemacht?
-
Hallo
Der von mir gepostete Code funktioniert, muß es an deiner Anpassung liegen.
Da du immer die selbe Zahl bekommst, wirst du wohl auch immer dieselbe Zahl an sqrt übergeben. Zeig mal deinen Code, der das Wurzelziehen betrifft.bis bald
akari
-
ok
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <math.h> #include "Wurzeln.h" #include <stdio.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; float i; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int x ; { double sqrt(double x); } Wurzel ->Text = x; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Zahl ->Text = ""; Wurzel ->Text = ""; } //---------------------------------------------------------------------------
-
Kommentier doch bitte mal die Zeilen. Vielleicht fällt Dir dabei ja schon was auf...
-
Hallo
so ganz nebenbei - verwendest du den Debugger
der hilft dir hier sicher weiterMfG
Klaus
-
Hinweise zur Verwendung des Debuggers findest du HIER
-
also die fehler liegen bei
int x ; { double sqrt(double x); }die überspringt er einfach
aber woran liegt das?hab das jetzt mit dem Code von Akari versucht und mit einem aus dem INet bei beiden kommt immer 29
-
Paladin schrieb:
aber woran liegt das?
Versuche die beiden Fragen zu beantworten:
1.) Was wolltest du durch diesen Code erreichen?
2.) Was hast du stattdessen gemacht?
-
durch diesen code wollte ich erreichen, dass er die eingegebene Zahl nimmt, die Wurzel daraus zieht und das endresultat in das untere kästchen schreibt
Stattdessen hab ich die eingegebene Zahl gewurzelt (mit "double sqrtl(double x);")
was soviel heisst wie doppelt gewurzelt und doppelt x
und dan im unteren Feld augegebenweis nicht genau was ich stattdessen hab
ich frage mich : Wieso gerade 29 das hat mit nichts im restlichen Code zu tun!?
aber dafür kommt wenn ich anstelle von int x;
float x; nehme, 4.02....
bei jeder zahlEdit: der Code hat jetzt geklappt und zwar bringt es so :
double x = 1.2, result; result = sqrt(x); Wurzel ->Text = x;als resultat 4 wie auch gewollt.
Nun will ich aber , dass er das richtige resultat ausgibt.
habs versucht mit x = x, result;
aber da bringt er nur immer 6.irgendwas
-
Vielleicht hilft es dir ein paar Teilziele zu erarbeiten:
Schritt 1) Woher bekommst du deinen Wert und wie kannst du ihn für sqrt nutzbar machen?
Weitere Schritte folgen.