Anfänger-Problem
-
Hallo,
Ich habe mir ein kleines Programm zum Berechnen von Umfang und Fläche eines Kreises geschrieben:
#include<iostream> #include<stdlib.h> float flaechenberechnung(float r) {float const PI = 3.14f; float flaeche = (r*r)*PI;} float umfangsberechnung (float r) {float const PI = 3.14f; float umfang = 2*PI*r;} void main() {float radius; cout<<"FLAECHEN-BERECHNUNG"<<endl<<endl; cout<<"Geben sie den Radius des Kreises ein"<<endl; cin>> radius; cout<<"Die Flaeche des Kreises betraegt: "<< flaechenberechnung(radius)<< endl<<endl<<endl; cout<<"UMFANGS-BERECHNUNG"<<endl<<endl; cout<<"Geben sie den Radius des Kreises ein"<<endl; cin>> radius; cout<<"Der Umfang des Kreises betraegt: "<< umfangsberechnung(radius)<<endl<<endl<<endl; system("pause"); }
Mein Problem ist jetzt, dass ich am Anfang eine Abfrage wie z.B
1. Umfangsberechnung
2. Flächenberechnungeinbringen will. Wenn man 1 eingibt soll das Programm dann zur Ub. springen und bei 2 zur Fb. Wie mach ich das?
Ich weiß ist 'ne Anfänger-Frage aber ich halt noch einer.
-
am besten das durchlesen
da findest du auch die erklärung, warum cstdlib statt stdlib.h, und warum void main falsch ist.
-
#include<iostream> using namespace std; #define pi 3.1415926 float flaechenberechnung(float r) { return r * r * pi; } float umfangsberechnung(float r) { return 2 * pi * r; } int main() { float radius; int wahl; cout << "1. Umfangsberechnung" << endl << "2. Flaechenberechnung" << endl; cout << "Deine Wahl: "; cin >> wahl; switch (wahl) { case 1: //Umfang break; case 2: //Flaeche break; default: cout << "Ungueltige Eingabe" << endl; return 1; } return 0; }
[ Dieser Beitrag wurde am 01.07.2003 um 14:52 Uhr von Shlo editiert. ]
-
OK, Danke. So geht's.
-
aber nicht #define pi sonder const double pi =
-
und warum bitte?
-
is bessa
-
#define ist eine einfache textersetzungsmaschine
const double gibt dem compiler tipips und hat einen typ direkt daneben stehen.#define ist aus C Zeiten, in denen es noch kein const gab
-
#define ist ne textersetzungsmaschine?
vielleicht meintest du preprözessor directive? aber es stimmt schon, pi wird durch die daneben stehende zahl ersetzt (bitte nich textersetzungmaschine nennen) #include ist ja auch aus C Zeiten, na und? Darf ich es in mein C++ program nicht benutzen?
-
für include gibt's aber nix besseres
und ich bleib bei "textersetzungsmaschine"
-
Textersetzungsmaschine find ich auch passend. Ein Text wird durch einen anderen ersetzt. Wie will man das sonst nennen.
-
genauso wie es genannt werden muss - preprozessor directive
-
Bei "const double pi =" führt der Compiler eine Typprüfung durch, hier z.B. auf double, ist ein gewisser Vorteil. Siehe auch Lektion 1 bei Scott Meyers (wegen Symboltabellen).
-
genauso wie es genannt werden muss - preprozessor directive
Was ist das denn jetzt für ein Schwachsinn. Darf ich 'for' dann auch nicht mehr schleife nennen, sondern nurnoch Befehl?
-
Wenn, dann Anweisung.
-
Original erstellt von davie:
für include gibt's aber nix besseresZumindest nicht in C/C++
-
Original erstellt von Helium:
Was ist das denn jetzt für ein Schwachsinn. Darf ich 'for' dann auch nicht mehr schleife nennen, sondern nurnoch Befehl?und seit wann ist for ein befehl?
-
Der Mensch befiehlt, die Maschine gehorcht!
Sequenz, Selektion und Iteration, das reicht für alles. "for" gehört zum Bereich Iteration.
-
Der Mensch weist an
-
STUMPF!
Aber #define hat den Vorteil, das es nicht unnötig speicher verbraucht, grade weil ein String im Quelltext durch einen anderen (durch den Preprozessor) ausgetauscht wird!
ansonnsten erzeuge ich ja ne Globale Konstante auf Variablenbasis, oder nit?! :p
-
#define ist weder C noch C++, einfach nichts. Verpönt!