Widerstandsberechnung {war: Ich bin so schlecht :(}



  • Kóyaánasqatsi schrieb:

    @Kontrasubjekt
    Dir scheint noch nicht klar zu sein, dass wir hier keine kompletten Lösungen posten. Wenn da eine Regelmäßigkeit reinkommt, gibt's hier nur noch Threads mit "mach mal hier" und "mach mal da".

    Wenn ich gerade mag, dann poste ich gerne eine Teillösung.



  • Kontrasubjekt schrieb:

    void lies_die_eingabe (std::vector<double>& input)
    {
    	double cur = 0.0;
    	do
    	{
    		std::cout << "Wert eingeben\n";
    		std::cin >> cur;
    		if (cur > 0.0) input.push_back (cur);
    		else if (cur < 0.0) std::cout << "\nWiederholen sie die Eingabe.\n\n";
    	}
    	while (cur != 0.0);
    }
    

    4. vorlesung... werden sie wohl mit mit einfachen mitteln machen müssen^^
    und ich wüsste auch nicht, wozu hier alle werte gespeichert werden sollten

    @janina:
    wollt ich ja auch gar nich bestreiten ;P
    so sieht das doch schon besser aus (so mit eigenem ansatz und so^^)...
    wenn du statt int n,sum,sum2; float n,sum,sum2; schreibst, sollte es gehen^^
    sum2 = sum2 + (1/n); rate mal, was hier passiert, wenn man 0 eingibt ;o)
    wirst du also irgendwie abfangen müssen...

    Alternativ (besser) ist bei Eingabe eines negativen Wertes die Aufforderung zur erneuten Eingabe (eines positiven Wertes) möglich

    pseudocode:

    do
      eingabe(x)
      wenn x > 0
        sum += ...
        sum2 += ...
      wenn x < 0
        ausgabe("wird ignoriert")
    while(x != 0)
    

    bb



  • Janina_Sternchen schrieb:

    ich hab das so ->

    Das ist doch schon sehr gut - Nein Kommazahlen hast Du keine - warum nicht, hat drakon schon gesagt.
    Die zweite Berechnung ist fast richtig - nur gibst Du am Ende den Leitwert aus und nicht den Widerstand.

    Noch 'ne Empfehlung: erweitere den Code in Zeile 16 zu

    }while ( cin && n>0);
    

    Gruß
    Werner



  • irgendwie "bahnhoft" ihr mich grad ganz dolle 😞



  • hallo ich sitze wegen meines umzugs auch erst seit ner stunde dran und habe die aufgabe 1.1 schon gelöst nur nun habe ich probleme mit 1.2 und 1.3 versteh auch nicht mehr so viel 😕 wäre top wenn ihr es für ein laien erklären könntet 🙂



  • wie hast du die erste denn gelöst? 😞 *liebguck*



  • Janina_Sternchen schrieb:

    irgendwie "bahnhoft" ihr mich grad ganz dolle 😞

    Falls Du konkret fragen würdest, so könnten wir Dir auch konkret helfen.



  • wer könnte mir denn helfen? dem würde ich dann auch das als pm schicken mit meiner icq nummer oder so damit man vllt schneller zur lösung kommt 🙂



  • schick mal deine icq nummer ich mach dir für 10 euro paysafe card deine hausaufgaben



  • boar... poste einfach, was du hast und was noch fehlt und wo dein problem dabei liegt... wenn du dir das stück pseudocode durchliest, was ich gepostet habe, dann solltest du die aufgabe doch scho komplett geschafft haben...

    bb



  • also es funktioniert nun garnichtsmehr irgendwie 😞 ich hoffe ihr seht aber was ich will:

    include <iostream>
    
    using namespace std;
    
    int main(void)
    {
    	double n = 0.0
        int n,sum,sum2;
        cout << "Widerstandsberechnung";
        sum = 0;
        sum2 = 0;
        do{
            cout << "\nGeben Sie Zahlen > 0 ein, sonst ist Eingabe beendet.";  
            cin >> n;
    		sum = sum + n;
    		if(n>=0)
    		{
    		if(n>0)
    		{
            sum2 = sum2 + (1/n);
    		}
    		else 
    		}
    		else
    			cout << "bitte eine positive zahl eingeben"
        }while (n>0);
    
        cout << "Summe ist: " << sum << endl;
        cout << "Summe ist: " << sum2 << endl;
    
        return 0;
    }
    


  • vorab: "funktioniert nicht" ist keine gute fehlermeldung ;P

    Janina_Sternchen schrieb:

    include <iostream>
    
    using namespace std;
    
    int main(void)
    {
        double n = 0.0 //; fehlt
        int n,sum,sum2; //du solltest für alles den gleichen typenem nehmen - außerdem ist n als variablenname schon vergeben (und einmal sollte ja auch reichen^^). des weiteren ist "n" auch kein wirklich guter bezeichner...
        cout << "Widerstandsberechnung";
        sum = 0;
        sum2 = 0;
        do{
            cout << "\nGeben Sie Zahlen > 0 ein, sonst ist Eingabe beendet.";  
            cin >> n;
    		sum = sum + n; //das stand im if-zweig bei mir
    		if(n>=0) //wo stand denn bitte >= bei mir?
    		{
    		if(n>0)
    		{
            sum2 = sum2 + (1/n);
    		}
    		else 
    		}
    		else
    			cout << "bitte eine positive zahl eingeben"
        }while (n>0); //das hier ist doch auch anders, als ich es dir gesagt hatte...
    
        cout << "Summe ist: " << sum << endl;
        cout << "Summe ist: " << sum2 << endl; //hier gibst du doch noch immer L aus und nicht R (=1/L)
    
        return 0;
    }
    

    bb



  • kannst du mir nicht vll nen tip geben wies richtig wär für mich is das alles hier nurnoch kryptisch und mein codewortschatz beschränkt sich nach 4 vorlesungen auch wirklich nur auf den absoluten anfänger kram 😞



  • include <iostream>
    
    using namespace std;
    
    int main(void)
    {
    	double n = 0.0;
        int unb,sum,sum2;
        cout << "Widerstandsberechnung";
        sum = 0;
        sum2 = 0;
        do{
            cout << "\nGeben Sie Zahlen > 0 ein, sonst ist Eingabe beendet.";  
            cin >> unb;
    		if(unb>0)
    		{
    		sum = sum + unb;
            sum2 = sum2 + (1/unb);
    		}
    		else 
    
    			cout << "bitte eine positive zahl eingeben"
        }while ( cin && unb>0);
    
        cout << "Summe ist: " << sum << endl;
        cout << "Summe ist: " << sum2 << endl;
    
        return 0;
    }
    

    ?! 🙄



  • naja - an der syntax scheint es nicht zu liegen, ich hab doch auch nur do/while und if genommen...

    #include <iostream>
    using namespace std;
    
    int main()
    {
      float sum1 = 0; //reihenschaltung
      float sum2 = 0; //parallelschaltug
    
      float einlesen;
      do
      {
        std::cin >> einlesen;
        if(einlesen > 0)
        {
          //sum1 = ...
          //sum2 = ...
        }
        if(einlesen < 0)
        {
          //...
        }
      } while(einlesen != 0);
    }
    

    den rest bekommst du selbst hin, ja!?

    bb



  • sooo
    ich geh euch bestimmt schon total auf die nerven
    sorry *fg*

    #include <iostream>
    using namespace std;
    
    int main()
    {
      float sum1 = 0; //reihenschaltung
      float sum2 = 0; //parallelschaltug
    
      float einlesen;
      do
      {
    	cout << "Bitte gib die Faktoren ein";
        std::cin >> einlesen;
        if(einlesen > 0)
        {
            sum1 = sum1 + einlesen;
            sum2 = sum2 + (1/einlesen); 
        }
        if(einlesen < 0)
        {
    		cout << "bitte positive zahl eingeben";
        }
      } while(einlesen != 0);
    
        cout << "Summe ist: " << sum1 << endl;
        cout << "Summe ist: " << sum2 << endl;
    
    }
    

    so hab ichs nun aber es funktioniert immer noch nicht



  • Und "es funktioniert immer noch nicht" ist immer noch keine gute Fehlermeldung. 🙂



  • er sagt: mindestens ein mehrfach definiertes symbol gefunden



  • Janina_Sternchen schrieb:

    er sagt: mindestens ein mehrfach definiertes symbol gefunden

    niemals mit dem hier geposteten Code...

    PS:
    R = 1/L ;o)

    edit:
    "std::cin" -> lass hier mal noch das std:: weg
    macht zwar keinen praktischen unterschied, aber sehr wohl einen kosmetischen^^



  • Janina_Sternchen schrieb:

    er sagt: mindestens ein mehrfach definiertes symbol gefunden

    Bei mir hat er es tadellos kompiliert.

    Den "std"-namespace vor "cin" zu setzen wenn du schon "using namespace std;" hast ist nicht nötig.


Anmelden zum Antworten