Was bedeutet inf?



  • Hier die verbesserte Version, die auch, zumindest mathematisch, korrekt ist:
    Wieso solche skurillen Zahlen angezeigt werden, wüsste ich noch gern.
    Kann man die Ergebnisse so kürzen, dass keine Zehnerpotenz mehr dargestellt wird?

    Mit den Gleichungen
    I. 2x+z=6
    II. 4x+2y=12
    III. 3x+2y+5z=10

    bekomme ich auf Papier die Werte x=2,909091, y=0,181818 und z=0,181818.
    Diese stimmen auch hundertprozentig.

    //Programm: Gauss_3.cpp
    //zuletzt geaendert am: 09.10.2009
    
    #include <iostream>
    #include <conio.h>
    #include <windows.h>
    #include <string>
    using namespace std;
    
    int main()
    {
      int i=1;
      float xw1, xw2, xw3, yw1, yw2, yw3, zw1, zw2, zw3, s1, s2, s3;
      float xx, yy, ss, zz, x1a, x2a, y1a, y2a, z1a, z2a, s1a, s2a, xraus, yraus, zraus;
      std::string x, y, z;                          //Variablennamen
    
      //Wertabfragen
      //Variablennamen
      cout<<endl<<endl<<"1. Variable (Buchstabe oder Wort) eingeben: ";
      cin>>x;
      cout<<"2. Variable (Buchstabe oder Wort) eingeben: ";
      cin>>y;
      cout<<"3. Variable (Buchstabe oder Wort) eingeben: ";
      cin>>z;
      //1. Gleichung
      cout<<endl<<"Wert von \""<<x<<"\" der 1. Gleichung eingeben: ";
      cin>>xw1;
      cout<<"Wert von \""<<y<<"\" der 1. Gleichung eingeben: ";
      cin>>yw1;
      cout<<"Wert von \""<<z<<"\" der 1. Gleichung eingeben: ";
      cin>>zw1;
      cout<<"Summe der 1. Gleichung eingeben: ";
      cin>>s1;
      //2. Gleichung
      cout<<endl<<"Wert von \""<<x<<"\" der 2. Gleichung eingeben: ";
      cin>>xw2;
      cout<<"Wert von \""<<y<<"\" der 2. Gleichung eingeben: ";
      cin>>yw2;
      cout<<"Wert von \""<<z<<"\" der 2. Gleichung eingeben: ";
      cin>>zw2;
      cout<<"Summe der 2. Gleichung eingeben: ";
      cin>>s2;
      //3. Gleichung
      cout<<endl<<"Wert von \""<<x<<"\" der 3. Gleichung eingeben: ";
      cin>>xw3;
      cout<<"Wert von \""<<y<<"\" der 3. Gleichung eingeben: ";
      cin>>yw3;
      cout<<"Wert von \""<<z<<"\" der 3. Gleichung eingeben: ";
      cin>>zw3;
      cout<<"Summe der 3. Gleichung eingeben: ";
      cin>>s3;
    
      //Berechnung 
      x1a=(xw1*xw2)-(xw2*xw1);
      y1a=(yw1*xw2)-(yw2*xw1);
      z1a=(zw1*xw2)-(zw2*xw1);
      s1a=(s1*xw2)-(s2*xw1);
    
      x2a=(xw3*xw2)-(xw2*xw3);
      y2a=(yw3*xw2)-(yw2*xw3);
      z2a=(zw3*xw2)-(zw2*xw3);
      s2a=(s3*xw2)-(s2*xw3);
    
      yy=(y1a*y2a)-(y2a*y1a);
      zz=(z1a*y2a)-(z2a*y1a);
      ss=(s1a*y2a)-(s2a*y1a);
    
      xraus=(s2a-zraus*z2a-yraus*y2a)/x2a;
      yraus=(s2a-zraus*z2a)/y2a;
      zraus=ss/zz;
    
      //Ausgabe
      cout<<x<<" = "<<xraus<<endl;
      cout<<y<<" = "<<yraus<<endl;
      cout<<z<<" = "<<zraus<<endl;
      cout<<endl<<"Zum Beenden Taste bet"<<char(132)<<"tigen...";
    
      getch();
      return 0;
    }
    


  • Upps, das war der falsche Code.
    Ich meine diesen hier:

    //Programm: Gauss_3_1.cpp
    //zuletzt geaendert am: 09.10.2009
    
    #include <iostream>
    #include <conio.h>
    #include <windows.h>
    #include <string>
    using namespace std;
    
    int main()
    {
      int i=1;
      float x1,x2,x3,x1a,x2a,xx, y1,y2,y3,y1a,y2a,yy, z1,z2,z3,z1a,z2a,zz, s1,s2,s3,s1a,s2a,ss;
      float xraus, yraus, zraus;
      std::string x, y, z;                          //Variablennamen
    
      //Intro
      while (i<=17)
         {
          cout<<char(178);
          Sleep(10);
          i++;
         }
      cout<<"> Phisherman Apps. <";
      while (i<=34)
         {
          cout<<char(178);
          Sleep(10);
          i++;
         }
      cout<<endl<<"  Programm zur Kalkulation von 3 Variablen per Gauss"<<endl;
      while (i<=88)
         {
          cout<<char(178);
          Sleep(10);
          i++;
         }
    
      //Wertabfragen
      //Variablennamen
      cout<<endl<<endl<<"1. Variable (Buchstabe oder Wort) eingeben: ";
      cin>>x;
      cout<<"2. Variable (Buchstabe oder Wort) eingeben: ";
      cin>>y;
      cout<<"3. Variable (Buchstabe oder Wort) eingeben: ";
      cin>>z;
      //1. Gleichung
      cout<<endl<<"Wert von \""<<x<<"\" der 1. Gleichung eingeben: ";
      cin>>x1;
      cout<<"Wert von \""<<y<<"\" der 1. Gleichung eingeben: ";
      cin>>y1;
      cout<<"Wert von \""<<z<<"\" der 1. Gleichung eingeben: ";
      cin>>z1;
      cout<<"Summe der 1. Gleichung eingeben: ";
      cin>>s1;
      //2. Gleichung
      cout<<endl<<"Wert von \""<<x<<"\" der 2. Gleichung eingeben: ";
      cin>>x2;
      cout<<"Wert von \""<<y<<"\" der 2. Gleichung eingeben: ";
      cin>>y2;
      cout<<"Wert von \""<<z<<"\" der 2. Gleichung eingeben: ";
      cin>>z2;
      cout<<"Summe der 2. Gleichung eingeben: ";
      cin>>s2;
      //3. Gleichung
      cout<<endl<<"Wert von \""<<x<<"\" der 3. Gleichung eingeben: ";
      cin>>x3;
      cout<<"Wert von \""<<y<<"\" der 3. Gleichung eingeben: ";
      cin>>y3;
      cout<<"Wert von \""<<z<<"\" der 3. Gleichung eingeben: ";
      cin>>z3;
      cout<<"Summe der 3. Gleichung eingeben: ";
      cin>>s3;
    
      //Berechnung 
      y1a=(y1*x2)-(y2*x1);
      z1a=(z1*x2)-(z2*x1);
      s1a=(s1*x2)-(s2*x1);
    
      y2a=(y3*x2)-(y2*x3);
      z2a=(z3*x2)-(z2*x3);
      s2a=(s3*x2)-(s2*x3);
    
      yy=(y1a*y2a)-(y2a*y1a);
      zz=(z1a*y2a)-(z2a*y1a);
      ss=(s1a*y2a)-(s2a*y1a);
    
      xraus=(s1-yraus*y1-zraus*z1)/x1;
      yraus=(s2a-zraus*z2a)/y2a;
      zraus=ss/zz;
    
      //Ausgabe
      cout<<x<<" = "<<xraus<<endl;
      cout<<y<<" = "<<yraus<<endl;
      cout<<z<<" = "<<zraus<<endl;
      cout<<endl<<"Zum Beenden Taste bet"<<char(132)<<"tigen...";
    
      getch();
      return 0;
    }
    


  • Kann mir keiner helfen 😉 ?



  • Bestimmt. Aber sicher hat niemand Lust hier 100 Zeilen Code zu lesen. Versuch entweder den Code auf das wesentliche zu reduzieren oder noch besser, lass dir mehr Zwischenergebnisse aussuchen.

    http://en.wikipedia.org/wiki/Floating_Point#Infinities
    http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.6768



  • ich hab den thread sofort wieder geschlossen gehabt, weil der code einfach mal unter aller sau ist...
    aber hauptsache, du postest irgend nen 20-zeilen-super-tolle-werbung-anzeige-bla mit.

    int main() 
    { 
      int i=1; 
      float x1,x2,x3,x1a,x2a,xx, y1,y2,y3,y1a,y2a,yy, z1,z2,z3,z1a,z2a,zz, s1,s2,s3,s1a,s2a,ss; 
      float xraus, yraus, zraus; 
      std::string x, y, z;                          //Variablennamen
    

    aha... super idee... und super namen
    der kommentar ist auch klasse...

    //Intro 
      while (i<=17) 
         { 
          cout<<char(178); 
          Sleep(10); 
          i++; 
         } 
      cout<<"> Phisherman Apps. <"; 
      while (i<=34) 
         { 
          cout<<char(178); 
          Sleep(10); 
          i++; 
         } 
      cout<<endl<<"  Programm zur Kalkulation von 3 Variablen per Gauss"<<endl; 
      while (i<=88) 
         { 
          cout<<char(178); 
          Sleep(10); 
          i++; 
         }
    

    wieso postest du son dreck mit, wenn du nen fehler suchst?

    //Wertabfragen 
      //Variablennamen
    

    Jz versteh ich auch den Kommentar von oben - allerdings für sich allein gesehen sollten Kommentare da sein, um Code zu verstehen und nicht der Code soll die Kommentare erklären xD
    Wie wärs, einfach buchstaben für variablen zu nehmen?
    Kann man bei x anfangen und bis z gehen und wenns noch mehr geben sollte fängt man halt bei a an - oder fängst gleich von a an...

    cout<<endl<<endl<<"1. Variable (Buchstabe oder Wort) eingeben: "; 
      cin>>x; 
      cout<<"2. Variable (Buchstabe oder Wort) eingeben: "; 
      cin>>y; 
      cout<<"3. Variable (Buchstabe oder Wort) eingeben: "; 
      cin>>z;
    

    Wie wärs mit "Bezeichnung" oder "Variablenname" eingeben?

    //1. Gleichung 
      cout<<endl<<"Wert von \""<<x<<"\" der 1. Gleichung eingeben: "; 
      cin>>x1; 
      cout<<"Wert von \""<<y<<"\" der 1. Gleichung eingeben: "; 
      cin>>y1; 
      cout<<"Wert von \""<<z<<"\" der 1. Gleichung eingeben: "; 
      cin>>z1; 
      cout<<"Summe der 1. Gleichung eingeben: "; 
      cin>>s1; 
      //2. Gleichung 
      cout<<endl<<"Wert von \""<<x<<"\" der 2. Gleichung eingeben: "; 
      cin>>x2; 
      cout<<"Wert von \""<<y<<"\" der 2. Gleichung eingeben: "; 
      cin>>y2; 
      cout<<"Wert von \""<<z<<"\" der 2. Gleichung eingeben: "; 
      cin>>z2; 
      cout<<"Summe der 2. Gleichung eingeben: "; 
      cin>>s2; 
      //3. Gleichung 
      cout<<endl<<"Wert von \""<<x<<"\" der 3. Gleichung eingeben: "; 
      cin>>x3; 
      cout<<"Wert von \""<<y<<"\" der 3. Gleichung eingeben: "; 
      cin>>y3; 
      cout<<"Wert von \""<<z<<"\" der 3. Gleichung eingeben: "; 
      cin>>z3; 
      cout<<"Summe der 3. Gleichung eingeben: "; 
      cin>>s3;
    

    stichwort wäre hier wohl array + schleife - wenn man sich nen kleines struct für variablen baut, würde das noch viel mehr vereinfachen...

    //Berechnung 
      y1a=(y1*x2)-(y2*x1); 
      z1a=(z1*x2)-(z2*x1); 
      s1a=(s1*x2)-(s2*x1); 
    
      y2a=(y3*x2)-(y2*x3); 
      z2a=(z3*x2)-(z2*x3); 
      s2a=(s3*x2)-(s2*x3); 
    
      yy=(y1a*y2a)-(y2a*y1a); 
      zz=(z1a*y2a)-(z2a*y1a); 
      ss=(s1a*y2a)-(s2a*y1a);
    

    wie wäre es, die variablen auch erst hier zu deklarieren?
    bis jz hast du sie noch nicht gebraucht...

    xraus=(s1-yraus*y1-zraus*z1)/x1; 
      yraus=(s2a-zraus*z2a)/y2a; 
      zraus=ss/zz; 
    
      //Ausgabe 
      cout<<x<<" = "<<xraus<<endl; 
      cout<<y<<" = "<<yraus<<endl; 
      cout<<z<<" = "<<zraus<<endl; 
      cout<<endl<<"Zum Beenden Taste bet"<<char(132)<<"tigen...";
    

    ae > char(132) !

    getch(); 
      return 0; 
    }
    

    return 0; ist bei der main-fkt nicht notwendig - aber ansonsten hab ich zumindest an dem stück code nichts aussetzen^^

    bb


  • Mod

    unskilled schrieb:

    wie wäre es, die variablen auch erst hier zu deklarieren?

    das würde auch das gesuchte Problem in einen Fehler beim Compilieren umwandeln...

    - aber ansonsten hab ich zumindest an dem stück code nichts aussetzen^^

    abgesehen von dem getch(), dass ich nicht kenne und unbekannten headern wie conio.h und windows.h: entweder sind diese relevant, dann ist das im falschen Forum, oder überflüssig und haben hier nichts zu suchen.



  • camper schrieb:

    unskilled schrieb:

    wie wäre es, die variablen auch erst hier zu deklarieren?

    das würde auch das gesuchte Problem in einen Fehler beim Compilieren umwandeln...

    kA - gut möglich, aber ich werds mir nicht angucken^^

    camper schrieb:

    unskilled schrieb:

    - aber ansonsten hab ich zumindest an dem stück code nichts aussetzen^^

    abgesehen von dem getch(), dass ich nicht kenne und unbekannten headern wie conio.h und windows.h: entweder sind diese relevant, dann ist das im falschen Forum, oder überflüssig und haben hier nichts zu suchen.

    conio.h ^^
    und ja, ist überflüssig (funktionalität sollte "einfach auf nen (beliebigen) tastendruck warten" sein)
    und hab doch was auszusetzen 😃
    getch() ist ja deprecated und das sagt einem MSVC -zumindest auf W4- auch... der sagt so gar, wie man das behebt: _getch() nehmen... ist mir nur gerade wieder eingefallen^^

    bb



  • Ich habe doch geschrieben, dass ich aus Versehen den falschen Code gepostet habe.

    Ich konnte es eben nicht editieren, nachdem ich den Code mit "Werbung" gepostet habe, weil ich mich eben erst angemeldet habe...

    Ich habe if-Anweisungen benutzt, weil ich noch nicht mehr im Informatikunterricht erlernt habe. Dort haben wir IMMER conio.h eingebunden.
    windows.h ist für die Werbung (Sleep).

    Es ist eben nicht jeder so ein super Programmierer oder hockt den ganzen Tag vorm Kasten und lernt die Sprache.

    Könnt ihr mir jetzt noch sagen, wie ich die Werte abrunde oder bin ich euch nicht Geek genug? 🙄

    Hier habe ich noch eine Wertetabelle. FALLS es jemandem was bringen sollte:
    http://www.loaditup.de/files/411960.pdf

    Meiner Meinung nach ist der ganze Code wichtig, dass man überhaupt erstmal versteht, was die Berechnungen bedeuten.



  • Phisherman schrieb:

    Könnt ihr mir jetzt noch sagen, wie ich die Werte abrunde oder bin ich euch nicht Geek genug? 🙄

    Ich hab dir x Dinge gegeben, die du zu erst verbessern solltest und danach kannst du noch mal fragen...
    Im übrigen hat das auch nichts mit nicht Geek genug zu tun - es ist für uns auch arbeit, den fehler zu suchen - und zumindest ich seh das auch nicht auf anhieb und würde den debugger nutzen müssen...
    das könntest du genau so tun
    du kommst eben iwie extrem faul rüber - und faulen leuten hilft man auch nicht so gerne wie den fleißigen - zumindest ist das bei mir so... der hauptgrund bleibt aber die qualität deines codes... änder das und versuchs dann noch mal...

    um das noch mal klar zu stellen:

    Upps, das war der falsche Code.
    Ich meine diesen hier:

    [HIER IST DER CODE MIT WERBUNG - davor war die noch nicht dabei
    und es ist nun mal der letzte quellcode... das es bei den anderen nicht mit drin steht, ist mir gerad erst aufgefallen - aber war nur 1 von x Gründen, wieso dir keiner hilft]

    aber hast du die erste antwort mal gelesen? vll hat er ja recht...

    bb

    edit:
    es gibt übrigens auch url-tags - dann können faule leute wie ich es auch bin viele klicks/tastendrücke sparen ;o)
    habs mir zugegebenermaßen auch erst kurz angeguckt - mal gucken, ob ich geduldig genug bin, das nachzuvollziehen^^



  • du hast z.bsp. nicht bedacht, was passiert, wenn einer der variablen 0 ist...
    ne zeile mit 0 multiplizieren ist verboten...

    (z1a*y2a)-(z2a*y1a)=zz ; (s1a*y2a)-(s2a*y1a)=ss
    [...]
    zraus=ss/zz

    hier ist der fehler, wenn ich jz nicht selbst nen denkfehler hab^^

    bb



  • Danke, das war der Fehler...


Anmelden zum Antworten