Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Rund um die Programmierung ::  Quadratwurzel mit Heronverfahren  
Gehen Sie zu Seite Zurück  1, 2, 3, 4  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Proggerin
Unregistrierter




Beitrag Proggerin Unregistrierter 16:58:01 21.04.2017   Titel:              Zitieren

DocShoe schrieb:
:eek:

Will er wirklich eine so stumpfe Lösung haben?

Warum wird erwähnt, dass man bei n = 8 abbrechen darf? Es muss also doch eine Zählvariable geben, wozu sonst der Hinweis?


ja er möchte wirklich solche Lösung haben , es ist leider der schlimmste Proff aus unseren Fachbereich sturrer alter Wirtschaftsinformatiker, bei dem ist sogar using namespace std; verboten. :(
Es ist auch keine Funktion erlaubt .
Es passt woll von SteppJ der Vorschlag am Meisten :)
Proggerin
Unregistrierter




Beitrag Proggerin Unregistrierter 17:46:01 21.04.2017   Titel:              Zitieren

Hier ist mein Programm
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
using namespace std;
 
 
int main() {
 
   
    double a;
   
 
    cout << "Bitte geben Sie eine Fließkommazahl ein: ";
    cin >> a;
    double x0 = 1;
    double x1 = (x0 + a/x0) / 2;
    cout  << x1 << endl;
    double x2 = x1;
    double x3 = (x2 + a/x2) /2;
    cout << x3 << endl;
    double x4 = x3;
    double x5 = (x4 + a/x4) /2;
    cout << x5 <<endl;
    double x6 = x5;
    double x7 = (x6 + a/x6) /2;
    cout << x7 << endl;
   
    return 0;
}

ist das ok so? :)
SG1
Mitglied

Benutzerprofil
Anmeldungsdatum: 19.03.2001
Beiträge: 3163
Beitrag SG1 Mitglied 17:52:11 21.04.2017   Titel:              Zitieren

Nein, das sind ja nur 4 Durchgänge.
Proggerin
Unregistrierter




Beitrag Proggerin Unregistrierter 18:08:16 21.04.2017   Titel:              Zitieren

SG1 schrieb:
Nein, das sind ja nur 4 Durchgänge.


Wenn ich acht Schritte mache bekomme ich das als Ausgabe:

Bitte geben Sie eine Fließkommazahl ein: 9.7
5.35
3.58154
3.14494
3.11463
3.11448
3.11448
3.11448
3.11448
zufallswert
Unregistrierter




Beitrag zufallswert Unregistrierter 18:26:53 21.04.2017   Titel:   .            Zitieren

aus ästhetischen Gründen würde ich hier allerdings ein Makro einsetzen:
C++:
#define F(x,y) double x = (y + a/y) /2

und dann schreiben
C++:
F(x1,x0);   //statt: double x1 = (x0 + a/x0) / 2;
[...]
F(x7,x6);   //statt: double x7 = (x6 + a/x6) /2;

Man könnte auch noch die cout << ..-Zeile ins Makro packen.
Proggerin
Unregistrierter




Beitrag Proggerin Unregistrierter 19:11:47 21.04.2017   Titel:   Re: .            Zitieren

zufallswert schrieb:
aus ästhetischen Gründen würde ich hier allerdings ein Makro einsetzen:
C++:
#define F(x,y) double x = (y + a/y) /2

und dann schreiben
C++:
F(x1,x0);   //statt: double x1 = (x0 + a/x0) / 2;
[...]
F(x7,x6);   //statt: double x7 = (x6 + a/x6) /2;

Man könnte auch noch die cout << ..-Zeile ins Makro packen.


ich glaube , dass mein proff damit nicht einverstanden würde(näheres lese vorherige Posts). Habe define nur in headern gesehen in main noch nie :rolleyes:
Aber trotzdem Danke für den Hinweis :leak:
zufallswert
Unregistrierter




Beitrag zufallswert Unregistrierter 19:26:56 21.04.2017   Titel:   .            Zitieren

oder so:
C++:
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
double F(double a, double x){ return (x + a/x)/2; }
int main() {
    double a;
    cout << "Bitte geben Sie eine Fließkommazahl ein: ";
    cin >> a;
    cout << F(a, F(a, F(a, F(a, F(a, F(a, F(a, F(a, a)))))))) << endl;
}
zufallswert
Unregistrierter




Beitrag zufallswert Unregistrierter 19:29:55 21.04.2017   Titel:   .            Zitieren

oder besser:
C++:
cout << F(a, F(a, F(a, F(a, F(a, F(a, F(a, F(a, 1)))))))) << endl;
zufallswert
Unregistrierter




Beitrag zufallswert Unregistrierter 19:33:50 21.04.2017   Titel:   .            Zitieren

... oder so ....
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
double F(double a, double x){ return (x + a/x)/2; }
double F2(double a, double x){ return F(a, F(a, x)); }
double F4(double a, double x){ return F2(a, F2(a, x)); }
double F8(double a, double x){ return F4(a, F4(a, x)); }
 
int main() {
    double a;
    cout << "Bitte geben Sie eine Fließkommazahl ein: ";
    cin >> a;
    cout << F8(a, 1) << endl;
}
SeppJ
Global Moderator

Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 28211
Beitrag SeppJ Global Moderator 20:13:20 21.04.2017   Titel:              Zitieren

Proggerin schrieb:
SG1 schrieb:
Nein, das sind ja nur 4 Durchgänge.


Wenn ich acht Schritte mache bekomme ich das als Ausgabe:

Bitte geben Sie eine Fließkommazahl ein: 9.7
5.35
3.58154
3.14494
3.11463
3.11448
3.11448
3.11448
3.11448
Deine Ausgabe hat nur 7 Stellen (ist die Standardeinstellung), der double wird aber genauer sein (so ca. 15 Stellen). Wenn du die precision erhöhst, sollte man das sehen können.

_________________
Korrekte Rechtschreibung und Grammatik sind das sprachliche Äquivalent zu einer Dusche und gepflegter Kleidung.
C++ Forum :: Rund um die Programmierung ::  Quadratwurzel mit Heronverfahren  
Gehen Sie zu Seite Zurück  1, 2, 3, 4  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.