Ergebnis 1 bis 7 von 7

Hybrid-Darstellung

  1. #1
    Bad Times Virus
    Registriert seit
    04.03.2008
    Beiträge
    506

    Standard c++ rechenvorgang mit variablen

    hey
    ich wollte mal die 1. binomische formel (a²+2ab+b²) in c++ programmiern. jetzt funktioniert es zwar soweit dass man zalhlen eingeben kann aber wenn man 5x oder so eingibt gehts halt nich^^

    Code:
    #include <cstdlib>
    #include <iostream>
    
    
    using namespace std;
    int a,b,c;
    
    int main(int argc, char *argv[])
    {
        cout<<"1. Binomische Formel\n";
        cout<<"Geben Sie Variable a ein\n";
        cin>>a;
        cout<<"Geben Sie Variable b ein\n";
        cin>>b;
        c=a*a+2*a*b+b*b;
        cout<<"Die Lösung ist:"<<c<<"\n";   
        
        system("PAUSE>>NUL");
        return EXIT_SUCCESS;
    }
    wenn ich include math.h mach, gehts auch nich. muss ich statt int a,b,c char oder so eingeben?

    danke schonmal für die antworten

    edit: also falls es unklar war da oben mit den 5x
    wenn man zb für a = 5x einsetzt und für b 2

    dann wäre es ausgerechnet 25x²+20x+4. sowas soll des ding rechnen^^

  2. #2
    Trojaner
    Registriert seit
    21.01.2007
    Beiträge
    66

    Standard

    So erstmal ist deine deklaration außerhalb der main Methode,was heisst du hast die integer variablen global deklariert und das ist ein no-go in der Programmierung und wiederspricht der OOP(Objektorientierten Programmierung).

    Das andere ist du brauchst keine math.h einbinden normale rechenoperationen kann c++ auch ohne, in der math.h gibt es nur Funktionen zur Wurzel ziehen und sowas.

    Noch ne kleinigkeit, C++ kann keine Umlaute ohne weiteres darstellen,deshalb oe ue usw. schreiben oder nimmst die ANSI-Codes zum darstellen von umlauten.


    Edit: habe gerade gesehen das das nciht dem entspricht was du wolltest.

    Hier mal mein Beispiel(was auch funktionierte)
    Code:
    #include <iostream>
    #include <conio.h>
    
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int a,b,c;
    
        cout << "1. Binomische Formel\n";
        cout << "Geben Sie Variable a ein:";
        cin >> a;
        cout << "Geben Sie Variable b ein:";
        cin >> b;
        c = (a*a) + (2*a*b) + (b*b);
        cout<<"Die Loesung ist:" << c <<"\n";   
       
        getch();
    
        return 0;
    }

  3. #3
    I'm in ur VM. Avatar von l0dsb
    Registriert seit
    23.07.2007
    Beiträge
    1.038

    Standard

    das ist ein no-go in der Programmierung
    Vielleicht in der strikten OOP, nichtsdestotrotz sind globale Variablen - wenn ohne viel Aufwand auch anders möglich -, zu vermeiden.

    Noch ne kleinigkeiten, c++ kann keine Umlaute
    Das liegt nicht direkt an der Sprache, wohl eher an den Libraries.

    Sein Problem war wohl eher, Terme mit Variablen zu vereinfachen bzw. so die binomische Formel zu lösen. In den Standardlibraries gibt es eine solche Funktionalität nicht, das müsste man selbst programmieren bzw. eine third-party Library verwenden.
    I can haz RCE?

  4. #4
    Bad Times Virus
    Registriert seit
    04.03.2008
    Beiträge
    506

    Standard

    ach egal ich lass des mal mit den variablen x etc weg. also des mit der globalen deklaration is gut, wenn man nich in jedem unterprogramm esn ochmal neu schreiben will. falsch isses nich. so kenn ich des zumindest.
    ich versuch jetzt mal ne if funktion zu machen^^ 1. oder 2. bin formel

    edit:

    ok hab jetzt eine if und else if funktion am anfang. entweder 1. bin formel oder 2.
    und ein else hab ich mit eingebaut
    man wird aufgefordert 1 oder 2 einzugeben. wenn man was anderes eingibt, bekommt man von else eine meldung und dann soll man zum anfang zurückkehren. wie is der befehl zum zurück gehn?

    danke

  5. #5
    CIH-Virus Avatar von krusty
    Registriert seit
    12.10.2008
    Beiträge
    445

    Standard

    ich hätte da eine frage,
    Code:
    int main(int argc, char *argv[])
    das ist doch ein zeiger oda ? wozu wäre der jetzt da ?

  6. #6
    CIH-Virus Avatar von -[RiDER]-
    Registriert seit
    05.01.2007
    Beiträge
    496

    Standard

    Zitat Zitat von ;X
    Noch ne kleinigkeiten, c++ kann keine Umlaute
    Das liegt nicht direkt an der Sprache, wohl eher an den Libraries.
    Wohl eher an Editor, Compiler und Konsole.

    IIRC schreibt der Standard es vor, dass, wenn nicht anders gefordert, die Zieldatei den gleichen Zeichensatz wie die Quelldatei hat (das führt übrigens zu interessanten Problemen auf MACs, weil dort ASCII zwar (richtigerweise) 7 bit breit ist, Umlaute dann aber mit zwei Bytes dargestellt werden (als "a" und "¨")).

    Ich bin im Urlaub und habe den Standard nicht vor mir, sonst würde ich jetzt den entsprechendenb Absatz zitieren.

    Zitat Zitat von krusty
    ich hätte da eine frage,
    Code:
    int main(int argc, char *argv[])
    das ist doch ein zeiger oda ? wozu wäre der jetzt da ?
    Das ist ein Funktionskopf. Er deklariert Name, Type des Rückgabewertes und von der Funktion erwartete Parameter und deren Typ.

    main() sollte jedem, der in dieser Sektion postet bekannt sein.
    int argc und char *argv[] sind zwei besondere Variablen (die Namen der Variablen sind frei wählbar, jedoch haben sich für diesen einen Spezialfall diese beiden Bezeichnungen eingebürgert (so sehr, dass sie in anderen Sprachen zur Pflicht geworten sind)).

    argc steht für "argument counter" und gibt die Anzahl der dem Programm übergebenen Argumente an. Nich unlogisch, dass die Variable vom Typ int ist.
    argv steht für "argument values". Die Variable ist vom Typ char** (eigentlich vom Typ char[][], aber es gibt keine Vektoren als Funktionsparameter, sie werden vom Compiler automatisch nach char** gecastet), des Verständnisses halber gerne als char *argv[] notiert, also als "Vektor von Zeigern auf den Typ char".
    Jedes Vektorelement ist dabei ein Zeiger auf ein dem Programm übergebenes Argument, mit Ausnahme von argv[0], was auf den Namen der asugeführten Datei selbst (inklussive dem Arbeitsverzeichnis) zeigt.

    Kurz: argc ist die Anzahl der übergebenen Argumente, argv sind die Argumente selbst, wobei das höchste Element argv[argc] ist und argv[0] der Name von Arbeitsverzeichnis und ausgeführter Datei ist.

    Praktischerweise kümmert sich das Betriebssystem um den Speicher, der für argc und argv benötigt wird, man kann also quasi beliebig lange Strings an das Programm übergeben, ohne sich Sorgen über irgendwelche Overflows machen zu müssen (als Tipp für Dein Programm, krusty ).

    GreetZ RiDER

  7. #7
    Bad Times Virus
    Registriert seit
    04.03.2008
    Beiträge
    506

    Standard

    hey hier is mal mein erster kleiner rechner
    er kann die 1-3 bin formel

    http://rapidshare.com/files/156503024/Rechner.rar
    die cpp datei is auch drin

    könnt ihr mir sagen ob alles ok is und was ich besser machen könnte?

    Added after 91 hours 34 minutes:

    Zitat Zitat von ;X
    das ist ein no-go in der Programmierung
    Vielleicht in der strikten OOP, nichtsdestotrotz sind globale Variablen - wenn ohne viel Aufwand auch anders möglich -, zu vermeiden.

    Noch ne kleinigkeiten, c++ kann keine Umlaute
    Das liegt nicht direkt an der Sprache, wohl eher an den Libraries.

    Sein Problem war wohl eher, Terme mit Variablen zu vereinfachen bzw. so die binomische Formel zu lösen. In den Standardlibraries gibt es eine solche Funktionalität nicht, das müsste man selbst programmieren bzw. eine third-party Library verwenden.
    sry für den doublepost^^ des gleiche bzw ähnlich stehts schonma oben

    aber jetzt würdes mich doch interessieren wie man sowas macht dass der x * x rechnen kann und dass x² raus kommt. wo bekommt man solche libraries her die sowas ausgeben können?

    und hat keiner noch irgendwelche verbesserungsideen oder sowas weil ich brauch des demnächst

    mfg, eraser

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •