Schnelle Hilfe !!! Danke !!!
-
Ich will eine Gleichung mit meinem Borland C++ Builder programmieren.
y= ax2 + bx + c
Ich habe irgendwie ziemliche Probleme, da das mit dem Memo nicht richtig
funktioniert.So sieht es aus:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 Form1;
int a, b, c, xMin, xMax, y, x, s, dummy;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
a = StrToInt (Edit1->Text);
b = StrToInt (Edit2->Text);
c = StrToInt (Edit3->Text);
xMin = StrToInt (Edit4->Text);
xMax = StrToInt (Edit5->Text);for (int x=xMin; x<=xMax; x++)
String (dummy) = String (x) +" "+ String (y);x= xMin;
y = a*x*x + b*x + c;Memo1->Lines->Add(String(dummy));
}
//---------------------------------------------------------------------------Das Bild findet ihr hier:
-
"Funktioniert nicht" ist keine ausreichende Fehlermeldung oder Problembeschreibung.
Und wenn du dir überlegt hast, was genau das Problem ist, dann kannst du auch eine aussagekräftige Überschrift formulieren.
-
int a, b, c, xMin, xMax, y, x, s, dummy;
das gehört in die Header-Datei des Forms unter public: oder private:...
String (dummy) = String (x) +" "+ String (y);
Was soll die Zeile bewirken??Eventuell das hier?
for (int x=xMin; x<=xMax; x++) { y = a*x*x + b*x + c; Memo1->Lines->Add(AnsiString(x) + " " + AnsiString(y)); }
-
Es ändert sich nichts.
Das Problem liegt beim Memo.
Im Memo sollen die Variablen x und y nebeneinander stehen.Borland zeigt mir aber nur y an.
Wie kann man denn in einem Memo mehrere Variablen oder Zahlen nebeneinander stehen haben ???
-
Indem du sie in eine Zeile, d.h. beide in einen String schreibst bzw. sie zu einem String zusammenfasst!?
-
das habe ich doch oben schon gemacht.
-
Ist schon komisch, Metroid,
ich hab's gerade ausprobiert, mein Beispiel funktioniert einwandfrei...
Noch mal die ganze Button1-Funktion:
a = StrToInt (Edit1->Text); b = StrToInt (Edit2->Text); c = StrToInt (Edit3->Text); xMin = StrToInt (Edit4->Text); xMax = StrToInt (Edit5->Text); for (int x=xMin; x<=xMax; x++) { y = a*x*x + b*x + c; Memo1->Lines->Add(AnsiString(x) + " " + AnsiString(y)); }
-
Bei mir funkts jetzt auch einwandfrei !!!!!!!
Danke
Metroid

-
achso, mit String(dummy) erzeugst Du einen temporären String aus dem Wert dummy.
Um einen Ausgabestring zu erzeugen, mußt Du ihn auch deklarieren, zb mit:
AnsiString OutString; for (int x=xMin; x<=xMax; x++) { y = a*x*x + b*x + c; OutString = AnsiString(x) + " " + AnsiString(y); Memo1->Lines->Add(OutString); }Wenn Du erst alle Ausgabestrings zwischenpuffern möchtest, bevor Du sie dem Memo zuweist: Schau Dir mal TStringList an...
AnsiString OutString; TStringList* slTemp = new TStringList(); for (int x=xMin; x<=xMax; x++) { y = a*x*x + b*x + c; OutString = AnsiString(x) + " " + AnsiString(y); slTemp->Add(OutString); } Memo1->Text = slTemp->Text; delete slTemp; // wichtig, dynamisch erzeugte Objekte auch wieder löschen...
-
metroid schrieb:
das habe ich doch oben schon gemacht.
Eben nicht. Mit String (dummy) = String (x) +" "+ String (y); hast du (implizit) einen temporären String mit dem (umgewandelten) Wert von dummy erzeugt und ihm anschliessend x+y zugewiesen.
Dadurch hat sich am Wert des Integer dummy aber nichts geändert.