Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » C++ Kreis » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen C++ Kreis
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
HAllo12
unregistriert
C++ Kreis Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo ich komme gerade bei einer Aufgabe nicht weiter:

Entwickeln Sie ein kleines Programm, das den Radius eines Kreises einliest und dann die
Kreisfläche und Kreisumfang berechnet. Abschließend sollen alle berechneten Größen auf dem
Bildschirm ausgegeben werden.
Definieren Sie dabei für die Kreiszahl eine Konstante PI mit dem Wert 3,14159.



Meine Ideen:
#include <iostream>

using namespace std;

int main()
{
double Pi;

int radius;

int Fläche;

cout << "Geben sie den radius ein !" << endl;

cin >> radius;

Pi = 3,12;



Fläche = Pi*radius ;


cout << Fläche <<endl;







}

Kann mir jemand sagen warum das progr. nicht funktioniert?
15.04.2013 18:03
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Da sind einige Dinge nicht so ganz in Ordnung. Allen voran der vermutlich eigentliche Grund, warum das Programm nicht kompiliert: Dezimalzahlen werden mit einem Punkt als Dezimalzeichen eingegeben, nicht mit einem Komma. Mit was arbeitest du denn? Einen solchen Fehler sollte dir jede IDE anzeigen, eigentlich sollte sie dir das Kompilieren erst gar nicht erlauben.

Noch ein paar Dinge und Hinweise:

  • Die Variable für die Fläche sollte eine Fließkommazahl sein, in aller Regel wird das Ergebnis nämlich nicht ganzzahlig sein (bei ganzzahligen Radii sogar niemals). Den Radius kann man durchaus auch zur Fließkommazahl machen.

  • Die Aufgabe gibt vor, dass du die Bezeichnung PI und nicht Pi verwenden sollst. Programmiersprachen sind in aller Regel case-sensitive und Konstanten werden per Konvention fast in jeder Sprache großgeschrieben.

  • Die Aufgabe sagt auch, dass PI eine Konstante sein soll – keine Variable. Konstanten werden in C++ so definiert:
    code:
    1:
    
    #define PI 3.14159


  • Umlaute in Bezeichnern sollte man immer vermeiden ("Fläche" -> "Flaeche"). Übrigens sollte man Variablen auch entweder konsequent groß- oder kleinschreiben, aber nicht mischen ("radius" <-> "Fläche")

  • Deine Formel für die Fläche ist falsch.


Verwende außerdem bitte für Quelltexte im Forum die code-Tags, dass der Code lesbar und formatiert angezeigt wird.

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Airblader: 15.04.2013 19:00.

15.04.2013 18:57 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Noch etwas abseits der Programmierung: Die Anrede "Sie" wird großgeschrieben und vor dem Ausrufezeichen wird kein Leerzeichen gesetzt.

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.
15.04.2013 19:02 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Bei mir sind es tatsächlich die Umlaute, welche dafür sorgen, dass das Programm nicht kompiliert.

Interssanterweise, wird Pi=3,12 akzeptiert! Deswegen unbedingt drei mal hinschauen!

Weiterhin wird Radius mit großem "R" geschrieben und Pi ist 3,14 und nicht 3,12...

VG,

Karlito
15.04.2013 19:15 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Karlito
Pi ist 3,14 und nicht 3,12...


Und das, was den Mathematiker am meisten stören sollte, habe ich einfach mal glatt übersehen… ohje. großes Grinsen

Dass es mit einem Komma kompiliert finde ich merkwürdig. Das ist doch aber kein echtes C++, sondern irgendein Compiler-Feature, oder?

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.
15.04.2013 19:18 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe es eben mal überprüft. Er interpretiert es einfach als

code:
1:
2:
Pi = 3,
     12;


Soll heißen: Pi wird nur 3 zugewiesen, das "12;" wird als eigener (mehr oder weniger sinnvoller) Befehl aufgefasst.

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Airblader: 15.04.2013 19:21.

15.04.2013 19:20 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
HAllo12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
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:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
 #include <iostream>
#define PI 3.14159


using namespace std;

int main()
{


    double Radius;

    double Flaeche;

    cout << "Geben sie den radius ein !" << endl;

    cin >> Radius;





     Flaeche =  PI*Radius ;


    cout << "Die Flaeche betraegt " << " " <<  Flaeche <<endl;

    double Umfang;

    cout << "Geben sie den zweiten Radius an um den Umfang zu berechnen!" << endl;

    cin >> Radius;

    Umfang = 2*PI*Radius;

    cout << "Der Umfang ist "<< " " << Umfang << endl;











}
    



Mein code sieht jetzt so aus und funktioniert . Danke leute .

Aber ich hätte noch ne frage:

Man erweitere das Programm so, dass die Eingabe der benötigten Werte automatisch neu gestartet
wird. Die Wiederholung der Eingabe, Berechnung und Ausgabe erreicht man durch eine so
genannte „while-Schleife“ mit einer entsprechenden Abbruchbedingung, z.B. durch eine Abfrage an
den Benutzer, ob er die Berechnung wiederholen möchte


Wie würde ich das hinbekommen ?

Was müsste ich da in die while Bedingung einbauen?
15.04.2013 22:41
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

erstmal stimmt deine Flächenformel noch nicht!

Und ansonsten, wäre die Bedingung der while-Schleife die Eingabe, dass abgebrochen werden soll. Wie die aussieht, musst du dir selbst überlegen. Mach mal einen Lösungsvorschlag,

VG,

Karlito
15.04.2013 22:58 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
HAllo12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
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:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
   #include <iostream>
#define PI 3.14159


using namespace std;

int main()
{

while(true){

    double Radius;

    double Flaeche;

    cout << "Geben sie den radius ein !" << endl;

    cin >> Radius;





     Flaeche =  PI*Radius *Radius;


    cout << "Die Flaeche betraegt " << " " <<  Flaeche <<endl;

    double Umfang;

    cout << "Geben sie den zweiten Radius an um den Umfang zu berechnen!" << endl;

    cin >> Radius;

    Umfang = 2*PI*Radius;

    cout << "Der Umfang ist "<< " " << Umfang << endl;






}




}
  



Wäre das Programm so in ordnung?
15.04.2013 23:31
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Die Flächenformel stimmt jetzt. Mehr nicht.

VG,

Karlito
16.04.2013 00:08 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Hallo12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wieso? Was ist denn sonst falsch? verwirrt
16.04.2013 10:39
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du hast eine Endlosschleife, die Abbruchbedingung für die while-Schleife fehlt.

VG,

Karlito
16.04.2013 10:41 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Hallo12
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ja ich weiß nicht was ich für die abbruchbedingung eingeben soll. Ich komme nicht drauf.
16.04.2013 10:59
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Am einfachsten ist es ein "y" oder ein "n" zu lesen und je nach Eingabe zu entscheiden, ob die Schleife fortgesetzt wird. Mach dir mal Gedanken wie das gehen könnte und wie Du dann entsprechend die Schleife anpassen musst.

VG,

Karlito
16.04.2013 11:29 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » C++ Kreis