Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo - ich versuch schon die ganze Zeit, den Kreissegment im C++ zu berechnen - aber es kommt immer was andereres raus :(

#include <iostream>

#include <math.h>

using namespace std;

int main ()

{

double a, r, pi;

double sin(double a);

cout << "Mittelpunktswinkel (Gradmaß):\t";

cin >> a;

cout << "Radius:\t\t";

cin >> r;

pi = 3.14159;

cout << "KreissegmentsFlaeche:\t" << float (((a / 360) * (r * r) * pi) - ((1 / 2) * (r * r) * sin(a))) << endl;

return 0;

}

formel für kreissegment:

A= (alpha/360) * r^2 * PI - (1/2) * r^2 * sin(alpha)

kann mir bitte einer sagen - was ich da falsch mache???

thx

zb: alpha=90 , r = 5 , Fläche = 7, 135!

Die Winkelfunktionen aus <math.h> (bzw. <cmath>, wie die Headerdatei bei C++ heißt) gehen davon aus, dass der Winkel in Bogenmaß angegeben wird, nicht in Grad. Auch deine Formel müsstest du dementsprechend ändern.

P.S.: Wenn du Code-Tags benutzt, geht die Einrückung deines Codes nicht verloren.

P.P.S.: Es ist nicht besonders höflich, seine Frage mit dem Zusatz "wichtig" zu versehen. Damit sagst du, dass die Fragen der Anderen nicht wichtig sind.

Also ich versteh das nicht ganz

wie würde dass dann aussehen? da ich ein Beginner bin - kenn ich mich da nicht so aus! :-(

Also ich versteh das nicht ganz
Weißt du, was Bogenmaß ist? Ein ganzer Kreis = 360° sind 2 Pi. Ein rechter Winkel ist Pi/2.

Wenn der Benutzer den Winkel in Grad eingeben soll, musst du ihn mit Pi multiplizieren und durch 180 teilen, bevor du ihn an eine der Winkelfunkionen übergibst. Die 360 in der Formel musst du durch 2 Pi ersetzen.

Also ich habs veruscht - so wie du es sagtest - aber wieder ein Fehler??? :(

#include <iostream>

#include <math.h>

using namespace std;

int main ()

{

double a, r, pi;

double sin(double a);cout << "Mittelpunktswinkel (Gradmaß):\t";

cin >> a;

pi = 3.14159;

a = (a * pi) / 180;

cout << "Radius:\t\t";

cin >> r;

cout << "KreissegmentsFlaeche:\t" << (((a / (2*pi)) * (r * r) * pi) - ((1 / 2) * (r * r) * sin(a))) << endl;

return 0;

}

Also ich habs veruscht - so wie du es sagtest - aber wieder ein Fehler??? :(
Normalerweise ist eine ausführlichere Fehlerbeschreibung immer besser. Aber hier sehe ich auch so, wo es klemmt:

1 / 2
Dieser Ausdruck in deiner Formel ist immer 0. Das liegt daran, dass der Compiler hier zwei ganzzahlige Operanden sieht und demzufolge eine Integerdivision ausführt. Das Ergebnis ist 0. Du könntest entweder einen der beiden Operanden durch ein Double-Literal ersetzen (2.0) oder die Formel umstellen und am Ende durch zwei teilst. Sobald nämlich mindestens einer der beiden Operanden keinen Ganzzahltyp mehr hat, macht der Compiler eine Fließkommadivision.
Dieser Ausdruck in deiner Formel ist immer 0. Das liegt daran, dass der Compiler hier zwei ganzzahlige Operanden sieht und demzufolge eine Integerdivision ausführt. Das Ergebnis ist 0. Du könntest entweder einen der beiden Operanden durch ein Double-Literal ersetzen (2.0) oder die Formel umstellen und am Ende durch zwei teilst. Sobald nämlich mindestens einer der beiden Operanden keinen Ganzzahltyp mehr hat, macht der Compiler eine Fließkommadivision.

also es sieht jetzt so bei mir aus - und die richtige Lösung kommt endlich raus:

cout << "KreissegmentsFlaeche:\t" << (((a / (2*pi)) * (r * r) * pi) - ((0.5) * (r * r) * sin(a))) << endl;

meinst du mit double-literal - 0.5??

und wieso es vorher 0 kam - hab ich auch nicht verstanden - aber es funktioniert jetzt - das zählt :)

Danke for your help :uli

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.