none
User Eingabe an eine Formel Übergeben ??? RRS feed

  • Frage

  • Hallo Leuts,

    Ich bin ein neuling, und beschäftige mich erst kurz mit C++, mein erstes Programm welches ich geschrieben habe
    ist folgendes:
    #include <iostream>
    #include <conio.h>
    #include <math.h>
    
    using namespace std;
    
    int main() {
    
    float var1, var2, var3, var4, var5;
    
    float dev1 = 1000;
    float dev2 = 2;
    float dev3 = 7.5;
    
    cout << "Eingabe in gramm:   ";
    cin >> var1;
    
    // Berechnung direkt in cout
    
    var2 = var1 / dev1;
    cout << "Umrechnung in kg:   " << var1 << " / "
    << dev1 << " = " << (var1/dev1) << "\n";
    
    // Berechnung in var3 zwischenspeichern
    var3 = var2 / dev2;
    cout << "geteilt durch 2 :   " << var2 << " / "
    << dev2 << " = " << var2/dev2 << "\n";
    
    // Division durch 0 vermeiden
    (!var2) ?var2=1 :var2=var2;
    
     // Berechnung direkt in cout
    var4 = dev3 / var3;
     cout << "Jule durch Zw.erg.: " << dev3 << " / "
     << var3 << " = " << (dev3/var3)<< "\n";
    
    // Wurzel berechnen
    
    var5 = sqrt(var4);
    cout << "Wurzel aus m/s² :   " << var4 <<
    " = " << sqrt(var4) << "\n\n";
    
    cout << "Die maximale Geschossgeschwindigkeit entspricht: "<< sqrt(var4) <<" m/s" "\n\n";
    
    return 0;
    }

    Das funzt prima...

    Jetzt das Problem, mit Visual C++ Express 2008 habe ich über Windows Form ein Fenster angelegt, mit Menue, 
    einer textBox, einem "Berechnen" Button, und einem label...
    was ich jetzt nicht hinbekomme ist
    das die Eingabe in der textBox1  als var1 an die Formel übergeben wird und anschliesend im label1 wieder ausgegeben...

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    
     //label1->Text=String::Format("Antwort:\n{0}", textBox1->Text);
    
    float var1, var2, var3, var4, var5;
    
    	float dev1 = 1000;
    	float dev2 = 2;
    	float dev3 = 7.5;
    
    //Übergabe der Eingabe des Users
    
    //double dValue = System::Convert::ToDouble(textBox1->Text);
    
    //textBox1->var1
    
    int dValue = Convert::ToInt32(textBox1->Text);
    
    int i=var1;
    
    // Berechnung direkt in cout
    
    var2 = var1 / dev1;
    cout << "Umrechnung in kg:   " << var1 << " / "
    << dev1 << " = " << (var1/dev1) << "\n";
    
    // Berechnung in var3 zwischenspeichern
    
    var3 = var2 / dev2;
    cout << "geteilt durch 2 :   " << var2 << " / "
    << dev2 << " = " << var2/dev2 << "\n";
    
    // Division durch 0 vermeiden
    
    (!var2) ?var2=1 :var2=var2;
    
    // Berechnung direkt in cout
    
    var4 = dev3 / var3;
    cout << "Jule durch Zw.erg.: " << dev3 << " / "
    << var3 << " = " << (dev3/var3)<< "\n";
    
    // Wurzel berechnen
    
    var5 = sqrt(var4);
    cout << "Wurzel aus m/s² :   " << var4 <<
    " = " << sqrt(var4) << "\n\n";
    
    cout << "Die maximale Geschossgeschwindigkeit entspricht: "<< sqrt(var4) <<" m/s" "\n\n";
    
     }
    Kann jemand helfen? oder mus ich bei Dos Fenstern bleiben??? gruß jumpkidi
    Samstag, 12. Dezember 2009 20:40

Antworten

  • Genau, so geht das ;)

    Du kannst auch Text hinzufügen indem Du "+=" verwendest... oder gleich einen StringBuilder verwenden...

    Auch solltest Du nicht native C/C++ mit C++/CLI mischen (aber das machst Du ja schon in Deinem neuen Beispiel gar nicht mehr ;) ).
    Jochen Kalmbach (MVP VC++)
    Sonntag, 13. Dezember 2009 10:09

Alle Antworten

  • Ha muß nicht bei Dos Fenstern bleiben hab es mittel folgendem Code hinbekommen:
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    
    	double   var2, var3, var4, var5;
    
    	double dev1 = 1000;
    	double dev2 = 2;
    	double dev3 = 7.5;
    
    	double var1 = System::Convert::ToDouble(textBox1->Text);
    
    	// Berechnung direkt 
    	var2 = var1 / dev1;
    	var3 = var2 / dev2;
    	var4 = dev3 / var3;
    	var5 = sqrt(var4);
    
    	double erg =  sqrt(var4);
    	//label1->Text = erg.ToString();
    	//label1->Text=String::Format("Antwort:\n{0}", textBox1->Text, var5 );
    	label1->Text=String::Format("Rechenoperation:\n\nDie maximale Geschoßgeschwindigkeit in m/s \nerrechnet mit einer maximalen\nKinetischen Energie von 7,5 Jule\n\nergibt:  {0}", sqrt(var4) );
    
    			 }
    Nun aber folgendes ich bekomme ein haufen Zahlen hinter dem Komma, möchte aber nur 3 oder 4 Stellen haben???
    und nach dem Ergebniss sollte auch die Maßangabe stehen in diesem Falle m/s. sobalt ich aber irgendetwas hinten drann hänge wird das Programm nicht kompiliert??

    kann jemand helfen?
    cu jumpkidi
    Samstag, 12. Dezember 2009 23:41
  • Genau, so geht das ;)

    Du kannst auch Text hinzufügen indem Du "+=" verwendest... oder gleich einen StringBuilder verwenden...

    Auch solltest Du nicht native C/C++ mit C++/CLI mischen (aber das machst Du ja schon in Deinem neuen Beispiel gar nicht mehr ;) ).
    Jochen Kalmbach (MVP VC++)
    Sonntag, 13. Dezember 2009 10:09