C++ Erstes Programm
Lukas 23.04.2005 - 14:34 7678 33
Lukas
Here to stay
|
Hy! Das ist mein erstes programm... Ist ein rechner der nach eingabe die Fläche oder den Umfang eines Körpers berechnet... #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 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
Bearbeitet von watchout am 24.04.2005, 10:55
|
p44ever
Ed
|
du hast statt cin .. cid geschrieben
|
Lukas
Here to stay
|
Danke! omg ich bin so blöd compilen: geht... also wie kann ich jetz aber eine wiederholung ausführen ? welcher befehl und was muss ich beachten ?
Bearbeitet von Lukas am 23.04.2005, 14:42
|
xdfk
pädagogisch wertvoll
|
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
Bearbeitet von xdfk am 23.04.2005, 15:22
|
HeuJi
OC Addicted
|
Würd statt lauter ifs, switch Anweisungen machen, ist besser geeignet für soche Auswahlanweisungen.
|
samuel
.:: unnahbar ::.
|
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
thinking with portals
|
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
ModeratorHoffnungsloser Optimist
|
@xdfk und EvilGohan: Was versteht ihr unter "funktionaler Programmierung", vor allem wie das im Zusammenhang mit C/C++ stehen soll?
|
samuel
.:: unnahbar ::.
|
@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
Here to stay
|
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. aber ich bin für alles offen... ich hab bis jetz nur solche tuts (aus google) zur hilfe gezogen. Klickedit:hab da noch dieses hier begonnen zu lesen aber aus zeitgründen noch net sehr weit.
Bearbeitet von Lukas am 23.04.2005, 15:57
|
xdfk
pädagogisch wertvoll
|
@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
Here to stay
|
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
Vollzeit-Hackler
|
i würd die syntax verwenden: 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
pädagogisch wertvoll
|
i würd die syntax verwenden:
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 ) 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
.:: unnahbar ::.
|
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
|