C++ Programm für die Berechnung eines Kreissegments

  • C++

  • live82
  • 4416 Aufrufe 13 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • C++ Programm für die Berechnung eines Kreissegments

    Hy, hab ein großes Problem. Und zwar muß ich für mein Studium ein Programm mit C++ erstellen,daß die Fläche eines Kreissegments ausrechnet.

    Hier ist die Frage: Editieren Sie ein C++ Programm, das für die Berechnung eines Kreissegments den Radius r und den Winkel Alpha nach Aufforderung einliest, die Fläche des Kreissegments berechnet und am Bildschirm ausgibt.

    Fkreissegment=Pi * r quadrat * Alpah / 360.

    -pi soll mit const float vordefiniert werden: pi =3,14159
    -die benötigten Variablen als Gleitkommazahlen sollen vom Typ float definiert werden
    -Definieren Sie die Variable, die das Ergebnis der Berechnung aufnimmt, als Gleitpunktzahl vom Typ double
    -der Operator für die Division ist der Schrägstrich /

    Es wäre echt nett, wenn ihr mich helfen könntet.
  • Hi

    Die einfachste Methode(ohne Fehlerüberprüfungen,geeignete Funktionen,...) sieht glaub ich so aus:

    Quellcode

    1. #include <stdio.h>
    2. #define PI 3.141592
    3. int main (void){
    4. float r=0.0;
    5. double Fkreissegment=0.0;
    6. float alpha=0.0;
    7. //Mit scanf oder besser mit gets die benötigten Variablen einlesen
    8. printf("Bitte geben sie den Radius ein:\n");
    9. scanf("%f",&r);
    10. printf("Bitte geben sie den Winkel ein:\n");
    11. scanf("%f",&alpha);
    12. //Kreissegment berechnen
    13. Fkreissegment=(double)PI*(r*r)*alpha/360;
    14. //Mit printf das Ergebnis ausgeben
    15. printf("Ergebnis: %lf",Fkreissegment);
    16. return 0;
    17. }
    Alles anzeigen


    Ich hoffe ich konnte dir damit ein bisschen helfen.;)

    [FONT="Century Gothic"]"...erst wollte ich was über deine dürren Ärmchen sagen, doch dann fiel mir deine hässliche Fresse auf..." (Gothic 1 ist Kult)[/FONT]
  • Ich muss anmerken, das float Fkreissegment noch auf double zu ändern ist (siehe Aufgabenstellung)
    und weiterhin möchte ich noch anmerken, das Falscheingaben abgefangen werden müssen.
    Insbesondere Punkt 2 war bei uns im Studium sehr wichtig und darauf waren die Profs immer ganz scharf. Also obacht ^^
    Achja und da es ein C++ Programm sein soll, sollte eigentlich dann wohl auch cout, cin, using namespace std und son kram verwendet werden :D
  • Danke für den Hinweis Stelzi;)

    Das mit der Fehlerüberprüfung hab ich oben erwähnt. Und genauso das man scanf eigentlich nicht benutzen soll, jedoch wei ich nicht wie groß die Programmierkünste von live82 sind...:)

    Und das mit cout, cin, using namespace std,...:confused: hab keine Ahnung was das ist, ich hab das entweder nicht gelernt oder ich habs überhört..:D

    lg.Boarder;)

    [FONT="Century Gothic"]"...erst wollte ich was über deine dürren Ärmchen sagen, doch dann fiel mir deine hässliche Fresse auf..." (Gothic 1 ist Kult)[/FONT]
  • Das mit der Fehlerüberprüfung war auch an live gerichtet ;)

    360Boarder schrieb:


    Und das mit cout, cin, using namespace std,...:confused: hab keine Ahnung was das ist, ich hab das entweder nicht gelernt oder ich habs überhört..:D


    Oder du programmierst die ganze Zeit in C und denkst es wäre C++ ;)
    Denn so wie es da steht, geht es imho einwandfrei als C durch, außer ich hab irgendwas auf die schnell übersehen, aber ich denke mal nicht.
  • @360boarder
    cin und cout sind ein und ausgabe funktionen aus der iostream headerdatei und using namespace std heist das wenn bei den funktionen nicht angegeben ist aus welcher sammlung sie kommen automatisch std genommen wird (es reicht zum beispiel cout zu schreiben statt std::cout)
    in c++ sieht der code so aus

    #include <iostream>
    #define PI 3.141592

    using namespace std

    int main (void){

    double r=0.0;
    double Fkreissegment=0.0;
    double alpha=0.0;

    //mit cin daten einlesen
    cout << "Bitte geben sie den Radius ein:\n";
    cin >> r;
    cout <<"Bitte geben sie den Winkel ein:\n";
    cin >> alpha;

    //Kreissegment berechnen
    Fkreissegment=(double)PI*(r*r)*alpha/360;

    //Mit cout das Ergebnis ausgeben
    cout << "Ergebnis: " + Fkreissegment;

    return 0;
    }
    Wenn du zum weibe gehst nimm die Peitsche mit (Nietzsche)
  • Oh...:boing:

    Das stimmt,ich programmiere C nicht C++. :D

    Ich weis nicht viel über C++, zumindest weis ich nicht was alles anders ist.

    Sorry
    ;)

    lg.Boarder

    [FONT="Century Gothic"]"...erst wollte ich was über deine dürren Ärmchen sagen, doch dann fiel mir deine hässliche Fresse auf..." (Gothic 1 ist Kult)[/FONT]
  • Danke an euch allen, war schon eine große Hilfe. Mit cin, und so kann ich ein wenig anfangen. Da könnten mir meine Bücher weiterhelfen.

    Hab aber noch ein Problem. Und zwar geht es darum:

    Editieren Sie ein C++ Programm, in dem die beiden Katheten eines rechtwinkligen Dreiecks als reele Zahlen nach Aufforderung eingelesen werden, die Hypotenuse berechnet und der Wert der Hypotenuse am Bildschirm ausgegeben wird. Ferner sollen die beiden Winkel Alpha und Beta zwischen den Katheten und der Hypothenuse berechnet und auf dem Bildschirm ausgegeben werden.
    In einem rechtwinkligen Dreieck gelten folgende Zusammenhänge:
    sinAlpha=a/c und cosBeta =a/c

    Das Programm soll den folgenden Bildschirmdialog aufweisen:

    Geben Sie bitte den Wert für die Kathete a ein!

    Geben Sie bitte den Wert für die Kathete b ein!

    Die Hypotenuse des rechtwinkligen Dreiecks mit den Katheten
    a = 3 und b = 4 hat den Wert c = 5

    Alpha hat den Wert: 0,643501 in Bogenmaß bzw. 36,8699 in Grad

    Beta hat den Wert: 0,927295 in Bogenmaß bzw. 53,1301 in Grad


    Ich würde mich freuen, wenn ihr mich da noch mal helfen könntet. Hatte mit C++ noch nie was zu tun.
  • Bevor wir jetzt hier eine Aufgabe nach der anderen besprechen, möchte ich kurz etwas einwerfen.
    Du hattest erwähnt das du das für dein Studium bräuchtest.
    Ergo wirst du das dort auch nicht ohne Grund brauchen, sprich du wirst wohl irgendwann eine Arbeit darüber schreiben, bzw. ist es evtl. sogar notwendig für dein Studium.
    Also solltest du es auch mal selber probieren.
    Und das ist wirklich gut gemeint, ich spreche nämlich aus Erfahrung, denn ich hab auch mal studiert. Und ich weiss wie es in der Regel abläuft, man zieht sich eine Vorlesung nach der anderen rein, und gelernt wird erst 3 Wochen vor Prüfung. Ja und das funktioniert. AUSSER beim programmieren. Programmieren kann man nicht mal eben in ein paar Wochen üben. Das muss man lernen durch Übung und durch ein bisschen eigenen Schweiss.
    Wir mussten wärend dem Studium auch immer irgendwelche Übungsaufgaben machen und abgeben. Und da gab es natürlich auch grob 2 Gruppen von Studenten, nämlich die einen, die die Aufgaben gemacht haben und die anderen, die sie von Freunden gemacht bekommen haben.
    Aber jetzt rate mal welche Gruppe von denen die Prüfung bestanden hat?
    Und in diesen Prüfungen fallen massenweise durch...
    Ich will jetzt nicht der Buhmann sein, aber das ist echt ein gut gemeinter Rat, mach die Aufgaben selbst, oder versuch es wenigstens. Nicht umsonst heisst das Studium ^^
    Und es ist auch kein Problem wenn man frägt bei sowas. Aber probier doch mal selbst so nen Code zu schreiben und wenn du nimmer weiterkommst stellst ihn hier rein z.b. und man hilft dir weiter.
    Davon hast du imho mehr davon, als die fertigen Lösungen zu bekommen ;)
  • Ich habs versucht. Aber ich bin kein Informatiker. Ich studiere Wirtschaftsingeneur. Ich muß nur die Aufgaben machen, danach ist Schluß. Ich sitze seit Monaten an den Aufgaben und immer wieder kommen nur Fehlermeldungen, ich weiß nicht mehr weiter. Aber trotzdem danke für dein Tip. Aber ich mache sonst meine Aufgaben alle alleine, nur diesmal, und das ist wirklich eine Ausnahme, brauche ich Hilfe.
  • Ah verstehe, dann ist es nicht wirklich überlebenswichtig.
    Aber ich würds vielleicht mal dann erst damit probieren, das du halt mal postet was du bisher zusammen gebracht hast und was für Fehlermeldungen du bekommst, dann kann man dir da ja sicher auch weiterhelfen.
    Oder du willst lieber die Lösungen gleich haben :)

    Achja aber damit fällt dann diese lästige Falscheingabe etc weg, da werden wohl die Profs bei euch dann nicht drauf gucken ^^
  • Habs mit einer Taschenrechnerfunktion versucht hinzukriegen. Aber wie schon gesagt, ich hatte damit noch nie was zu tun. Ist auch nicht so wichtig für die Prüfung, ist nur ein Leistungsnachweis, aber trotzdem, haben muß mans ja doch schon. Also, ich habs mit ner Taschenrechnerfunktion verucht, und anstatt die Befehle +-*/, hab ich die Kreissegmentsformel eingetragen. Naja, daraus wurde ja nichts. Ansonsten hab ich versucht aus Büchern schlau zu werden, aber da verzweifelt man eher :)
  • Tata hier kommt die fertige Lösung, da es mir so scheint das du nicht mal eine Zeile Text ausgeben könntest ^^
    Btw in der vorherigen Lösung war imho mindestens ein Fehler :D

    PHP-Quellcode

    1. #include <iostream>
    2. #include <math.h>
    3. #define PI 3.141592
    4. using namespace std;
    5. int main (void){
    6. double a = 0.0;
    7. double b = 0.0;
    8. double c = 0.0;
    9. double alpharad, alphagrad;
    10. double betarad, betagrad;
    11. //mit cin daten einlesen
    12. cout << "Geben Sie bitte den Wert fuer die Kathete a ein!\n";
    13. cin >> a;
    14. cout <<"Geben Sie bitte den Wert fuer die Kathete a ein!\n";
    15. cin >> b;
    16. //Hypothenuse berechnen
    17. c = sqrt(a*a + b*b);
    18. cout << "Die Hypotenuse des rechtwinkligen Dreiecks mit den Katheten a = " << a <<" und b = " << b << " hat den Wert c = "<< c << "\n";
    19. // Berechnung von Alpha und Beta
    20. alpharad = asin(a/c);
    21. betarad = acos(a/c);
    22. alphagrad = alpharad * 180 / PI;
    23. betagrad = betarad * 180 / PI;
    24. //Ausgabe von Alpha und Beta
    25. cout << "Alpha hat den Wert: " << alpharad <<" in Bogenmass bzw. " << alphagrad << " in Grad\n";
    26. cout << "Alpha hat den Wert: " << betarad <<" in Bogenmass bzw. " << betagrad << " in Grad\n";
    27. return 0;
    28. }
    Alles anzeigen