C++ Erstes Programm

Seite 1 von 3 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_erstes_programm_141217/page_1 - zur Vollversion wechseln!


Lukas schrieb am 23.04.2005 um 14:34

Hy! Das ist mein erstes programm...
Ist ein rechner der nach eingabe die Fläche oder den Umfang eines Körpers berechnet...

Code: PHP
#include <iostream.h>
#include <stdio.h>

//GeoRechner von Lukas v. 0.5
// inkludiert:
//
//Kreis
//Rechtwinkeliges Dreieck
//Parallelogramm
//Deltoid
//Rhombus
//Trapez

int main()
{
	int objekt;
	
	cout<<"Willkommen zu GeoRechner von Lukas! (vers. 0.5)"<<endl;
	cout<<"-----------------------------------------------"<<endl;
	cout<<"Mit diesem Rechner könne sie geometrische Objekte berechnen."<<endl; 
	cout<<"Drücken Sie bitte eine Taste!"<<endl;
	getchar(); 

	cout<<"Welches Objekt wollen Sie berechnen ?"<<endl; 
	cout<<"Drücken Sie:"<<endl; 
	cout<<"1=Kreis"<<endl;
	cout<<"2=Rechtwinkeliges Dreieck"<<endl; 
	cout<<"3=Parallelogramm"<<endl;
	cout<<"4=Deltoid"<<endl;
	cout<<"5=Rhombus"<<endl;
	cout<<"6=Trapez"<<endl;
	cout<<"und dann Enter."<<endl;
	cin>>objekt;
	//Kreis
	if(objekt==1)
		{
		int kreis;
		cout<<"Kreis: Was wollen Sie berechnen ? 1=Umfang durch Radius 2=Flächeninhalt durch Radius."<<endl;
		cin>>kreis;
		
		if(kreis==1)
			{
			float radius;
			cout<<"Bitte Radius eingeben."<<endl;
			cin>>radius;
			cout<<"Der Umfang beträgt:"<<2*3.14*radius<<endl;
			getchar();
			}
		 
		if(kreis==2)
			{
			float radius;
			cout<<"Bitte Radius eingeben."<<endl;
			cin>>radius;
			cout<<"Der Flächeninhalt beträgt:"<<radius*radius*3.14<<endl;
			getchar();
			}	
		}
	//Rechtwinkeliges Dreieck
	else if(objekt==2)
		{
		int dreieck;
		cout<<"Rechtwinkeliges Dreieck: Was wollen Sie berechnen ? 1= Flächeninhalt 2=Umkreisradius"<<endl;
		cin>>dreieck;
		
		if(dreieck==1)
			{
			float a;
			float b;
			
			cout<<"Bitte geben sie die Variable a ein."<<endl;
			cin>>a;
			cout<<"Bitte geben sie die Variable b ein."<<endl;
			cin>>b;
			
			cout<<"Der Flächeninhalt des Dreiecks beträgt: "<<a*b/2<<endl;	
			getchar();
			}		
		

		else if(dreieck==2)
			{
			float hypo;
			
			cout<<"Bitte geben sie die Länge der Hypothenuse ein."<<endl;
			cin>>hypo;
			cout<<"Der Umkreisradius beträgt: "<<hypo/2<<endl;
			getchar();
			}
		}
	//Parallelogramm
	else if(objekt==3)
		{
		int par;
		
		cout<<"Parallelogramm: Was möchten sie berechnen ? 1=Flächeninhalt 2=Umfang"<<endl;
		cin>>par;
		
		if(par==1)
			{
			float ab;
			float h;
			
			cout<<"Bitte geben Sie die Variable a oder b ein."<<endl;
			cin>>ab;
			cout<<"Bitte geben Sie die Höhe auf a/b ein."<<endl;
			cout<<"Achtung: Sie müssen die Höhe auf a eingeben wenn sie vorher die Variable a gewählt haben, b wenn sie b gewählt haben."<<endl;

			cin>>h;
			cout<<"Der Flächeninhalt beträgt: "<<ab*h<<endl;
			getchar();
			}
		else if(par==2)
			{
			float a;
			float b;
			
			cout<<"Bitte geben Sie die Variable a ein."<<endl;
			cin>>a;
			cout<<"Bitte geben Sie die Variable b ein."<<endl;
			cin>>b;
			cout<<"Der Umfang beträgt: "<<2*a+2*b<<endl;
			getchar();
			}
	else if(objekt==4) //Deltoid
		{
		int del;
		cout<<"Deltoid: Was möchten Sie berechnen ? 1=Flächeninhalt 2=Umfang"<<endl;
		cin>>par;
		
		if(par==1)
			{
			float e;
			float f;
			
			cout<<"Bitte geben Sie die Diagonale e ein."<<endl;
			cin>>e;
			cout<<"Bitte geben Sie die Diagonale f ein."<<endl;
			cin>>f;
			cout<<"Der Flächeninhalt beträgt: "<<e*f*0.5<<endl;
			}
		else if(par==2)
			{
			float a;
			float b;
			
			cout<<"Bitte geben Sie die Länge a ein."<<endl;
			cin>>a;
			cout<<"Bitte geben Sie die Länge b ein."<<endl;
			cout<<"Der Umfang beträgt: "<<(a+b)*2<<endl;
			}
		
		}
		
	else if(objekt==5) //Rhombus
		{
		int raute;
		
		cout<<"Rhombus: Was wollen Sie berechnen ? 1=Flächeninhalt 2=Umfang."<<endl;
		cid>>raute;
		
		if(raute==1)
			{
			int was;
			cout<<"Was haben Sie gegeben ? 1= a und h 2= e und f"<<endl;
			cid>>was;
			if(was==1)
				{
				float a;
				float h;
				cout<<"Wie groß ist a ?"<<endl;
				cid>>a;
				cout<<"Wie groß ist h ?"<<endl;
				cid>>h;
				cout<<"Der Flächeninhalt beträgt: "<<a*h<<endl;				
				}
			else if(was==2)
				{
				float e;
				float f;
				cout<<"Wie groß ist e ?"<<endl;
				cid>>e;
				cout<<"Wie groß ist f ?"<<endl;
				cid>>f;
				cout<<"Der Flächeninhalt beträgt: "<<1/2*e*f<<endl;	
				}
			}
		
		else if(raute==2)
			{
			float a;
			cout<<"Wie groß ist a ?"<<endl;
			cid>>a;
			cout<<"Der Umfang beträgt: "<<4*a<<endl;
			}
		}
		
	else if(objekt==6) //Trapez
		{
		int trap;
		
		cout<<"Trapez: Was wollen Sie berechnen ? 1=Flächeninhalt 2=Umfang 3=Die Länge m"<<endl;
		cid>>trap;
		
		if(trap==1)
			{
			int trap_A;
			
			cout<<"Was haben Sie gegeben ? 1=a,c,h 2=m,h"<<endl;
			cid>>trap_A;
			
			if(trap_A==1)
				{
				float a;
				float b;
				float h;
				
				cout<<"Bitte geben Sie a ein."<<endl;	
				cid>>a;
				cout<<"Bitte geben Sie b ein."<<endl;
				cid>>b;
				cout<<"Bitte geben Sie h ein"<<endl;
				cid>>h;
				cout<<"Der Flächeninhalt beträgt: "<<1/2*(a+b)*h<<endl;
				}
			
			else if(trap_A==2)
				{
				float m;
				float h;
				
				cout<<"Bitte geben Sie m ein."<<endl;
				cid>>m;
				cout<<"Bitte geben Sie h ein."<<endl;
				cid>>h;
				cout<<"Der Flächeninhalt beträgt: "<<m*h<<endl;
				}
					
			}	
			
		else if(trap==2)
			{
			float a;
			float b;
			float c;
 			float d;
			
			cout<<"Bitte geben Sie a ein."<<endl;
			cid>>a;
			cout<<"Bitte geben Sie b ein."<<endl;
			cid>>b;
			cout<<"Bitte geben Sie c ein."<<endl;
			cid>>c;
			cout<<"Bitte geben Sie d ein."<<endl;
			cid>>d;
			cout<<"Der Umfang ist: "<<a+b+c+d<<endl;
			}
		else if(trap==3)
			{
			float a;
			float b;
			
			cout<<"Bitte geben Sie a ein."<<endl;
			cid>>a;
			cout<<"Bitte geben Sie b ein."<<endl;
			cid>>b;
			cout<<"Die Linie m beträgt: "<<(a+b)/2<<endl;
			}
		}
	}
	cout<<""<<endl;
	cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
	cout<<"Danke dass sie GeoRechner verwendet haben. Auf Wiedersehen!"<<endl;		
	cout<<"Fragen und Anregungen an [email]unaimer@magicgfx.com[/email]."<<endl;
}

Hab jetz mehrere Fragen:
1. Er bricht beim kompilieren ab und sagt
Zitat
geo_rechner.cpp: In function `int main()':
geo_rechner.cpp:160: Fehler: `cid' undeclared (first use this function)
geo_rechner.cpp:160: Fehler: (Each undeclared identifier is reported only once for each function it appears in.)

wenn ich das ganze if für rhombus und trapez auskommentiere kompiliert er fertig und es funkt der rest des programms.
wo liegt dass problem ?

edit: zeile 160 is dass cid>>raute; bei Rhombus.

2. Wie lasse ich ihn dass alles immer wieder in einer schleife ausführen ? also damit meine ich wenn ein objekt berechnet wurde soll er wieder fragen was man berechnen will.Schließen sollte dann mit q oder so funktionieren.

mfG
tia
Lukas


p44ever schrieb am 23.04.2005 um 14:37

du hast statt cin .. cid geschrieben


Lukas schrieb am 23.04.2005 um 14:38

Danke!
omg ich bin so blöd :D

compilen: geht... :)

also wie kann ich jetz aber eine wiederholung ausführen ? welcher befehl und was muss ich beachten ?


xdfk schrieb am 23.04.2005 um 15:19

tret den code in die tonne und fang nochmal von vorne an. is ja grausig was du das fabrizierst!

mach lieber mal einen ordentlichen C kurs ;)
siehe: funktionales programmieren.

danach schau an was objektorientiert bedeutet
(is fuer das beispiel eigentlich nicht wirklich notwendig)

ad wiederholung: siehe kapitel schleifen


HeuJi schrieb am 23.04.2005 um 15:23

Würd statt lauter ifs, switch Anweisungen machen, ist besser geeignet für soche Auswahlanweisungen.


samuel schrieb am 23.04.2005 um 15:30

Zitat von HeuJi
Würd statt lauter ifs, switch Anweisungen machen, ist besser geeignet für soche Auswahlanweisungen.

ich wuerde es als erste uebung sehen und wie bereits oben erwaehnt anschauen, was es noch so fuer moeglichkeiten gibt in der programmierung und dann ueberlegen, wo du deinen code verbessern kannst. (funktionen zB)

sam


EG schrieb am 23.04.2005 um 15:30

holy shit...
wenn ich sowas abgeb in der schule bin ich geliefert
erstens ists n kinderbeispiel aber zu beginn fängt man nunmal so an!

aber der stil ist lustig O.o
das war dein erstes mal das du ein programm geschrieben hast oder?

muss xdfk zustimmen n kurs in funktionaler programmierung wär ned schlecht!
wir hatten 1 monat theorie in der schule bevor die uns an einen pc ließen...3 stunden / woche


that schrieb am 23.04.2005 um 15:38

@xdfk und EvilGohan: Was versteht ihr unter "funktionaler Programmierung", vor allem wie das im Zusammenhang mit C/C++ stehen soll?


samuel schrieb am 23.04.2005 um 15:39

Zitat von that
@xdfk und EvilGohan: Was versteht ihr unter "funktionaler Programmierung", vor allem wie das im Zusammenhang mit C/C++ stehen soll?

ich nehme an sie meinen prozedurales programmieren ;)

sam


Lukas schrieb am 23.04.2005 um 15:40

Zitat von EvilGohan
holy shit...
wenn ich sowas abgeb in der schule bin ich geliefert
erstens ists n kinderbeispiel aber zu beginn fängt man nunmal so an!

aber der stil ist lustig O.o
das war dein erstes mal das du ein programm geschrieben hast oder?

muss xdfk zustimmen n kurs in funktionaler programmierung wär ned schlecht!
wir hatten 1 monat theorie in der schule bevor die uns an einen pc ließen...3 stunden / woche

1. erstes programm...

2. ich mach das als hobby ;)

aber ich wills wenn gscheid lernen.. hast einen guten link?
ich hab bis jetz amal ein kleines anfänger tut gemacht dass einmal die grundfunktionen erklärt. Ihr dürft euch da net viel erwarten... hab ma halt eine kleine überlegung gemacht und ganz einfach ein kleines ziel gesteckt. :o

aber ich bin für alles offen... ich hab bis jetz nur solche tuts (aus google) zur hilfe gezogen. Klick

edit:hab da noch dieses hier begonnen zu lesen aber aus zeitgründen noch net sehr weit.


xdfk schrieb am 23.04.2005 um 16:21

Zitat von that
@xdfk und EvilGohan: Was versteht ihr unter "funktionaler Programmierung", vor allem wie das im Zusammenhang mit C/C++ stehen soll?

ich bin etwas SML verseucht. sorry mein natuerlich was anderes.

also unterteile den code in einzelne funktionen, gliedere das ganze in mehreren files, schau dir an wie man makefiles schreibt.
verstehe was der unterschied zwischen compilen und linken ist.


Lukas schrieb am 23.04.2005 um 16:34

Zitat von xdfk
ich bin etwas SML verseucht. sorry mein natuerlich was anderes.

also unterteile den code in einzelne funktionen, gliedere das ganze in mehreren files, schau dir an wie man makefiles schreibt.
verstehe was der unterschied zwischen compilen und linken ist.

gut ich werd mir mal dieses Buch durchelesen.. (zerst mal die Theorie) und dann werd ich auf deine Tipps eingehen.


moidaschl schrieb am 23.04.2005 um 17:22

i würd die syntax verwenden:

Code:
if(Bedingung) {
    hans;
}

einrückung 4 leerzeichen (bei guten editoren kannst du die tab-länge einstellen)

dann wirds auch mit der struktur was ;)


xdfk schrieb am 23.04.2005 um 17:29

Zitat von moidaschl
i würd die syntax verwenden:

Code:
if(Bedingung) {
    hans;
}

einrückung 4 leerzeichen (bei guten editoren kannst du die tab-länge einstellen)

dann wirds auch mit der struktur was ;)

wuerd ich nicht machen (du java nutte ;))

Code:
if (Bedingung) 
{
    hans;
}

tab width auf 4 stellen bzw die tabs durch leerzeichen ersetzen lassen.

zum thema coding style gibts aber genug im inet


samuel schrieb am 23.04.2005 um 17:49

also ueber die anzahl von blanks fuer die einrueckung diskutieren, halt ich fuer recht sinnlos. wichtig ist nur, dass man es sauber und einheitlich macht.

sam

ps.: ausserdem weiss doch eh jeder, dass mit 2 blanks einruecken am besten ist ;)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025