Quadtatwurzel berechnen...



  • Hallo...irgenwie komm ich mit dieser Aufgabenstellung nicht zurecht. Wir sollen ein Programm schreiben, mit welchem wir Quadratwurzel berechnen können. Benutzen sollen wir nur die Bibliotheksfunktionen <stdio.h> und <conio.h>.

    Die Aufgabe lautet:
    Die Quadratwurzel einer Zahl x = Wurzel(Zahl) kann iterativ mit folgender
    Formel berechnet werden:

    Xn+1 = 1/2*(Xn+Zahl/Xn)

    Ein Programmablaufplan oder Struktogramm für den Rechenablauf ist zu erstellen.
    Der Wert Zahl , Startwert x0 und Genauigkeit eps sind einzugeben.
    Ergebnisse der Berechnung für
    Zahl = 25, x0= 1, eps =10^7 sind:

    ITERATES(1/2*(x+Zahl/x),x,x0,n), ITERATES(1/2*(x+25/x),x,1,6),
    x0 x1 x2 x3 x4 x5 x6
    [1, 13, 7.4615384, 5.4060269, 5.0152476, 5.0000231, 5.0000000]



  • Und wo ist jetzt das Problem? Es wird dir hier hoffentlich keiner die komplette Aufgabe vorrechnen.



  • conio.h braucht man dabei nicht.



  • Marina schrieb:

    ...Benutzen sollen wir nur die Bibliotheksfunktionen <stdio.h> und <conio.h>....

    Wobei das eher nach C als nach C++ klingt....
    Aber: Für einen "Programmablaufplan" braucht man beide ebensowenig wie für ein "Struktogramm"....

    Gruß,

    Simon2.



  • Es soll aber später auch im Visual Studio geschrieben werden!
    Und tut mir leid, wenn ich davon nicht so viel Ahnung hab...deshalb bin ich ja hier, und ich wäre sehr dankbar...wenn man mir einen kleinen Ansatz geben könnte...da wäre mir vielleicht schon geholfen...



  • Na, wollen wir mal nicht so sein:

    #include <iostream>
    
    int main() {
        double zahl, x = 1;
        std::cout << "Bitte Zahl eingeben: ";
        if(!std::cin >> zahl) {
            std::cout << "Ungültige Eingabe\n";
            return 1;
        }
    
    // Implementierung von Xn+1 = 1/2*(Xn+Zahl/Xn) inkl. Ausgabe
    
        std::cout << "\n Wurzel = " << x << "\n";
        return 0;
    }
    

    So, noch einen Schritt weiter und ich hätte Deine Aufgabe gelöst ... und wofür bekommst Du dann eine Note bzw. was hast Du dann gelernt ?

    Gruß,

    Simon2.



  • Auch wenn ich mit dem "iostream" nichts anfangen kann...danke!

    Gruß,
    Marina



  • sorry...

    Ich bekomm keine Note dafür...ist einfach eine Übung...an der ich leider jetzt schon verzweifele... 😞



  • Marina schrieb:

    Auch wenn ich mit dem "iostream" nichts anfangen kann...danke!

    Gruß,
    Marina

    "iostream" liefert Dir die Aus- und Eingabe-Funktionalitäten std::cout und std::cin.

    Wenn Du die Übung nicht kannst: Laß es ! Das bringt Dir und allen Anderen mehr als eine aus dem Internet abgetippte "Lösung"....

    Vielleicht hat Euer "Übungsleiter" Euch auch einfach Sch***-unterricht gegeben (wäre nicht das erste Mal) und das sollte ihm auch quittiert werden (ebenso wie Dir Deine Faulheit, wenn das die Ursache sein sollte 😉 ).

    Gruß,

    Simon2.

    P.S.: Wer sagt Dir eigentlich, dass wir Dir hier nicht "Schrott" anliefern und Du Dich mit Deiner "Lösung" in der Übung grundlegend blamierst ? :p



  • Die Frage muss ins C-Forum.



  • Vielen Dank für die freundliche Unterstützung!



  • Marina schrieb:

    Vielen Dank für die freundliche Unterstützung!

    Gern geschehen !

    Gruß,

    Simon2.

    P.S.: Ganz allgemein: Schnorrer haben wenig Freunde. :p



  • PS: @Simon2:

    using namespace std;
    


  • CodeFinder schrieb:

    PS: @Simon2:

    using namespace std;
    

    Das mag ich nicht. 😉
    Außerdem biete ich Anfängern das bewusst nicht an; erst aus der Erfahrung lernt man "in namespaces zu denken" - und erst wenn man das kann, kann man mit einem using (in den verschiedenen Kontexten) richtig umgehen.
    Ein Tischlerlehrling lernt auch erst mit der Hand zu Schleifen, bevor der die großen Geräte in die Hand bekommt.... 😃

    Gruß,

    Simon2.



  • Genau und wer Auto fahren will sollte sich erstmal eins bauen!



  • Jester schrieb:

    Genau und wer Auto fahren will sollte sich erstmal eins bauen!

    Wieder ein Beweis für die alte Internetregel: "Egal zu welchem Thema Du einen Vergleich anbringst - irgendjemand wird mit einem anderen Vergleich kontern, der nichts mit dem Thema zu run hat und daraus schließen, daß man niemals Vergleiche ziehen darf."

    Übrigens: Wer Autos bauen will, sollte eine Versicherung haben. Deswegen müssen Hexen so viel wiegen wie Gänse ! 😉

    Danke,

    Simon2.



  • Du hast nen Vergleich gebracht, ich hab einen gebracht. Beide führen zu unterschiedlichen Schlußfolgerungen. Welcher nun passender ist, kann sich ja jeder selbst raussuchen.

    Ich finde nur, man sollte sich gerade zu Anfang nicht mit solchen Kleinigkeiten aufhalten und lieber zu Beginn ne magische Zeile am Anfang stehen haben (und meinetwegen noch am Ende, damit die Konsole offen bleibt). Dann ordentlich programmieren lernen und auf's wesentliche konzentrieren. Die zwei Kleinigkeiten danach zu verstehen geht sehr schnell, wenn man schon einige Erfahrungen gemacht hat.

    Aber es ist natürlich viel elitärer nen Anfänger mit std::-Sachen zuzuballern. std::cin.ignore(std::cin.rdbuf()->in_avail()); sollte man natürlich auch ganz genau verstanden haben, bevor man sich dann mal dran macht seine erste Zahl von der Konsole einzulesen. 🙄



  • Jester schrieb:

    ...
    Aber es ist natürlich viel elitärer nen Anfänger mit std::-Sachen zuzuballern....

    Wenn Du meinst ... 🙄

    Seltsam nur, daß hier ohne Ende Fragen zum richtigen Umgang mit "using" auftauchen .... während niemand sich darüber beklagt, daß er Probleme mit std:: hat.

    Ich habe nie behauptet, daß "std::" die wichtigste/erste/letzte/... Lektion für C++-Anfänger sei.
    Aber ist vollkommen OK, wenn Du Dein Feindbild pflegst - Viele brauchen eins.

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Aber ist vollkommen OK, wenn Du Dein Feindbild pflegst - Viele brauchen eins.

    Huh, Feinde? Wo? Ich habe meines Wissens keine Feinde hier im Forum. Du mußt Dir auch nicht gleich ins Hemd machen nur weil ich Dir mal widerspreche. Das bedeutet ja nicht, daß ich Dich als Feind betrachte.

    Manche Leute haben Ideen... 😃



  • Jester schrieb:

    Simon2 schrieb:

    Aber ist vollkommen OK, wenn Du Dein Feindbild pflegst - Viele brauchen eins.

    Huh, Feinde? Wo? Ich habe meines Wissens keine Feinde hier im Forum...

    Immerhin hast Du eine Schublade für

    Jester schrieb:

    ...
    Aber es ist natürlich viel elitärer nen Anfänger mit std::-Sachen zuzuballern. std::cin.ignore(std::cin.rdbuf()->in_avail()); sollte man natürlich auch ganz genau verstanden haben, bevor man sich dann mal dran macht seine erste Zahl von der Konsole einzulesen. 🙄

    ... in die Du sehr großzügig und kurzentschlossen einsortierst....

    Gruß,

    Simon2.



  • Und du sortierst mich nun in die Schublade mit den Leuten, die Leute in Schubladen einsortieren?

    Aber ich glaub ich weiß nach den letzten 3 Beiträgen in welche Schubladen du wirklich gehörst. 😃 Und jetzt darfste weiterheulen wenn Du magst. 🙂

    edit: wenn Du da jetzt echt nen Klärungsbedarf siehst, weil ich Dir widersprochen hab, dann schick mir bitte ne email über's Profil. Ich habe nicht wirklich Lust das hier zu klären.


Anmelden zum Antworten