Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
--- C++ Kreis (http://www.informatikerboard.de/board/thread.php?threadid=1466)


Geschrieben von HAllo12 am 15.04.2013 um 18:03:

  C++ Kreis

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?



Geschrieben von Airblader am 15.04.2013 um 18:57:

 

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:



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



Geschrieben von Airblader am 15.04.2013 um 19:02:

 

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



Geschrieben von Karlito am 15.04.2013 um 19:15:

 

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



Geschrieben von Airblader am 15.04.2013 um 19:18:

 

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?



Geschrieben von Airblader am 15.04.2013 um 19:20:

 

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.



Geschrieben von HAllo12 am 15.04.2013 um 22:41:

 

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?



Geschrieben von Karlito am 15.04.2013 um 22:58:

 

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



Geschrieben von HAllo12 am 15.04.2013 um 23:31:

 

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?



Geschrieben von Karlito am 16.04.2013 um 00:08:

 

Die Flächenformel stimmt jetzt. Mehr nicht.

VG,

Karlito



Geschrieben von Hallo12 am 16.04.2013 um 10:39:

 

Wieso? Was ist denn sonst falsch? verwirrt



Geschrieben von Karlito am 16.04.2013 um 10:41:

 

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

VG,

Karlito



Geschrieben von Hallo12 am 16.04.2013 um 10:59:

 

Ja ich weiß nicht was ich für die abbruchbedingung eingeben soll. Ich komme nicht drauf.



Geschrieben von Karlito am 16.04.2013 um 11:29:

 

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


Forensoftware: Burning Board, entwickelt von WoltLab GmbH