Grundproblem in C++
-
Hallo ihr lieben Leute,
ich hab mal wieder ein Problem mit c++. Ich soll ein Programm erstellen, was mir wahlweise den sinus, Cosinus oder den Tangens von einer Zahl berechnet und ausgibt. Wie ich die Elemente (2 Textfelder, 3 Schaltflächen zum Beispiel) in das Hauptprogramm bekomme, weiß ich, auch die Standardfunktionen und Prototypen kenne ich, aber ich hab's ewig probiert und weiß nicht, wie ich die Zahl aus dem Eingabefeld übernehme, den Wert berechne und das ganze im nächsten Feld ausgebe. Kann mir bitte jemand von euch mal einen Vorschlag für den Quelltext schicken? Ich brauch es bis morgen
Liebe Grüße, Elli.
-
Was benutzt du ueberhaupt fuer eine GUI Library? MFC? VCL? ...?
-
Hi elli,
erstmal solltest du uns noch verraten, mit welchem Framework du arbeitest. Standard C++ kennt nunmal keine grafischen Oberflächen und damit auch keine Eingabefelder.
Was die Funktionen betrifft, das ist relativ einfach. Nehmen wir mal an, dass du einen double Wert (ausgangswert) hast, welcher aus dem Eingabefeld stammt, dann kannst du den Sinus wie folgt berechnendouble ergebnis = std::sin(ausgangswert);Das gleiche funktioniert mit Cosinus (std::cos) und Tangens (std::tan). Dabei ist lediglich zu beachten, dass die Funktionen die Werte in Radians erwarten. Anfänger machen oft den Fehler, die Angaben in Grad zu machen. Eine Umwandlung ist jedoch nicht schwer
const double pi = 3.1415926535897932384626433832795; double deg_to_rad(double x) { return x * pi / 180; }
-
Wie ich die Elemente (2 Textfelder, 3 Schaltflächen zum Beispiel) in das Hauptprogramm bekomme, weiß ich, auch die Standardfunktionen und Prototypen kenne ich, aber ich hab's ewig probiert und weiß nicht, wie ich die Zahl aus dem Eingabefeld übernehme, den Wert berechne und das ganze im nächsten Feld ausgebe.
1. Falsche Abteilung. Hier Standard C++.
2. Wird wohl keiner Hausaufgaben machen (zumindest nich umsonst).Aber hier schon mal ein Anfang:
#include <math>
-
Naja, ich benutze C++ 5 und mache keine Konsolenanwendung, sondern die objektorientierte Programmierung, das heißt mit Befehlsschaltflächen und Textfeldern.
Include <math.h> hab ich schon gedunden, asak. Auch die Prototypen für die Funktionen. Aber wie nehme ich den Wert aus dem Eingabefeld, damit ich damit weiterrechnen kann. Es ist sicher keine komplizierte Lösung, da wir erst vor 3 Wochen mit der objektorientierten Programmierung angefangen haben (vorher Konsolenanwendung).

-
Der Begriff objektorientierte Programmierung hat nichts mit den sichtbaren "Objekten" zu tun.Du meinst sicherlich fertige Komponenten-Klassen
wie beim Borland Builder.
Ich nehm mal an Borland Builder ?
-
Aber wie nehme ich den Wert aus dem Eingabefeld, damit ich damit weiterrechnen kann.
Beim BCB geht das so.
float zahl = StrToFloat(Edit1->Text);
-
bestimmt Borland C++ 5.02. also nicht den builder.
-
Ja, Borland C++ Builder nennt der sich, sorry!
Super asak, danke - ich glaub, das ist das, was mit gefehlt hat. Und wie bekomme ich das Ergebnis im Zweiten Textfeld zur Ausgabe?
-
Edit2->Text = FloatToStr(sin(StrToFloat(Edit1->Text)));
-
elli1985 schrieb:
Ja, Borland C++ Builder nennt der sich, sorry!
Super asak, danke - ich glaub, das ist das, was mit gefehlt hat. Und wie bekomme ich das Ergebnis im Zweiten Textfeld zur Ausgabe?Dann hast du aber im falschen Forum gefragt. Dafür gibts ein Extra-Forum.
-
Dann hast du aber im falschen Forum gefragt. Dafür gibts ein Extra-Forum.
Das kann ein Mod wieder richten.
-
*lol* @ Überschrift
-
...und das kommt dann alles in den Teil, wo ich die Aktionen schreibe, wenn ich auf den jeweiligen Button klicke, oder?
Elli.
-
Ja du hast deine 3 Buttons (sin,cos,tan) und jeweils im OnClick Ereignis kommt dann der Code:
void __fastcall TForm1::Button1Click(TObject *Sender) { float zahl = StrToFloat(Edit1->Text); Edit2->Text = FloatToStr(sin(zahl));//hier entsprechend in cos,tan ändern }
-
Btw, die richtige Header Datei heisst weder <math> noch <math.h>, sondern <cmath>. Das ist insofern wichtig, da es weder sinf(float), sinl(long double) und Co gibt, sondern überladene Funktionen. Also sin(float), sin(double), sin(long double) und Co.
-
groovemaster schrieb:
Btw, die richtige Header Datei heisst weder <math> noch <math.h>, sondern <cmath>. Das ist insofern wichtig, da es weder sinf(float), sinl(long double) und Co gibt, sondern überladene Funktionen. Also sin(float), sin(double), sin(long double) und Co.
fürs Ergebnis absolut unerheblich und einfach nur spitzfindig.
-
groovemaster schrieb:
Btw, die richtige Header Datei heisst weder <math> noch <math.h>, sondern <cmath>. Das ist insofern wichtig, da es weder sinf(float), sinl(long double) und Co gibt, sondern überladene Funktionen. Also sin(float), sin(double), sin(long double) und Co.
vewirr das mädchen nicht!
dürfte sie schon genug sein...
-
Groovy ist schlecht drauf die Woche, hab ich schon gestern gemerkt.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.