"We are back" « oc.at

C++ Erstes Programm

Lukas 23.04.2005 - 14:34 7930 33
Posts

xdfk

pädagogisch wertvoll
Avatar
Registered: Sep 2000
Location: Graz
Posts: 6441
Zitat von samrider
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 ;)

wenn du mal an projekten mit mehreren leuten arbeitest wirst du bald merken dass es wichtig ist dass man sich auf einen standard einigt.

samuel

.:: unnahbar ::.
Avatar
Registered: Jul 2000
Location: hagenberg
Posts: 2680
Zitat von xdfk
wenn du mal an projekten mit mehreren leuten arbeitest wirst du bald merken dass es wichtig ist dass man sich auf einen standard einigt.

ich arbeite in projekten mit mehreren leuten und ich weiss schon, was eine gemeinsame code-convention bringt. ich war im letzten jahr projektleiter in einem projekt mit 9 mitarbeitern (6 davon entwickler) und weiss deshalb ganz gut, was fuer teamarbeit wichtig ist.

sam

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von Lukas
gut ich werd mir mal dieses Buch durchelesen.. (zerst mal die Theorie) und dann werd ich auf deine Tipps eingehen.
Also ich würde dir von dem Buch eher abraten - sieht mir ehrlich gesagt nicht besonders geeignet aus, um damit anzufangen.
Versuch mal die ersten 3 Kapitel in diesem Tutorial durchzuarbeiten, das ist IMHO besser.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Wie wär's wenn du dir diese Regeln mal durchliest.

Lukas

Here to stay
Avatar
Registered: Feb 2004
Location: ~
Posts: 1883
Zitat von gue
Also ich würde dir von dem Buch eher abraten - sieht mir ehrlich gesagt nicht besonders geeignet aus, um damit anzufangen.
Versuch mal die ersten 3 Kapitel in diesem Tutorial durchzuarbeiten, das ist IMHO besser.

ok ich werd mir des mal durchlesen...

Zitat von watchout
Wie wär's wenn du dir diese Regeln mal durchliest.

habs gelesen... sorry 4 falsches code-posting.

//edit:

Code: PHP
//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;
			const float PI=3.14f;
			float umfang = 2*PI*radius;
			cout<<"Der Umfang beträgt:"<<umfang<<endl;
			getchar();
			}
		 
		if(kreis==2)
			{
			float radius;
			cout<<"Bitte Radius eingeben."<<endl;
			cin>>radius;
			const float PI=3.14f;
			float flaecheninhalt = radius*radius*PI;
			cout<<"Der Flächeninhalt beträgt:"<<flaecheninhalt<<endl;
			getchar();
			}	
		}

hab jetz von der rechenweise alles in diesen "stil" umgeschrieben... ist es so besser ?
Bearbeitet von Lukas am 24.04.2005, 23:25

Lukas

Here to stay
Avatar
Registered: Feb 2004
Location: ~
Posts: 1883
Code: PHP
           {
		float r1;
		float r2;
		float a;
		float A_gr;
		float A_kl;
		float A;
		float U_gr;
		float U_kl;
		float U;
		const float PI = 3.14f;
		
		cout<<"Wie groß ist a ?"<<endl;
		cin>>a;
		r1 = a;
		r2 = 2*a;
		A_gr = ((2*r1)*(2*r1) * PI)/4;
		A_kl = (a*a*PI)/2;
		A = A_gr - A_kl;
		U_gr = 2*a*PI;
		U_kl = (2*a*PI)/2;
		U = U_gr - U_kl;
		cout<<"Der Flächeninhalt beträgt: "<<A<<endl;
		cout<<"Der Umfang beträgt: "<<U<<endl;
		}
Ein Programm zum Berechnen einer abstrakten form... (aus meinem mathebuch :))
wWollt wissen wie ihr den Stil jetz findet ?

edit: erstes { war falsch positioniert... ;)
Bearbeitet von Lukas am 26.04.2005, 21:45

colty

Little Overclocker
Registered: Aug 2004
Location: Gross-Enzersdorf
Posts: 50
es geht

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
naja ich würd dir einfach raten alles einheitlich zu halten und schauen, das alle "ebenen" die gleiche einrückung haben

Code: PHP
if(Bedingung)
{
    test();
} elseif(Bedingung)
{
    test();
}

while(Bedingung)
{
    hans();
}

weist was ich mein?

edit:

hier was gefunden, das der borland editor erstellt (also die struktur)

Code: PHP
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    try
    {
        Application->Initialize();
        Application->CreateForm(__classid(TForm1), &Form1);
        Application->Run();
    }
    catch (Exception &exception)
    {
        Application->ShowException(&exception);
    }
    return 0;
}
Bearbeitet von moidaschl am 26.04.2005, 21:39

Lukas

Here to stay
Avatar
Registered: Feb 2004
Location: ~
Posts: 1883
jep weiß was du meinst.. ich hab ma nur angwöhnt immer alles um einmal [tab] weiter zu verschieben und nicht nur 2 spaces.. oder versteh ich dich falsch ?

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von Lukas
hab jetz von der rechenweise alles in diesen "stil" umgeschrieben... ist es so besser ?

Wozu den User fragen, ob er Umfang oder Fläche berechnen will? Berechne einfach immer beides, das spart dir 50% des Codes und dem User eine Abfrage. :)

Lukas

Here to stay
Avatar
Registered: Feb 2004
Location: ~
Posts: 1883
Zitat von that
Wozu den User fragen, ob er Umfang oder Fläche berechnen will? Berechne einfach immer beides, das spart dir 50% des Codes und dem User eine Abfrage. :)

:D w00t noch garnet daran gedacht :) thx

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25641
1.)
Code:
float var1,
      var2,
      var3;
ist übersichtlicher als x mal float

2.)
Code:
a1 = b*c;
d  = a*a;
die = am besten auf selbe höhe bringen und je nach inhalt in blöcken aufteilen. erhöht ebenfalls die leserbarkeit.

3.) keine deutschen variablen namen, keine kryptischen unverständlichen abkürzungen (wobei 1. vl auch geschmackssache ist :))

4.) const float ..irgendwas gehört eigentlich nicht nach den vars und vorm code, sondern vor den vars. ausserdem würd ich eher ein #define nehmen.

ist zwar alles kleinlich bei der größe des programms, aber bei 1000 zeilen und/oder fremden code wirst du das anders sehen :)

DKCH

Administrator
...
Registered: Aug 2002
Location: #
Posts: 3321
Zitat von mat
ausserdem würd ich eher ein #define nehmen.

naja, vermutlich auch sehr stark geschmacksfrage, aber wenn schon c++ würd ich auch const nehmen.
1) ist typsicherheit schon was wert (in dem konkreten fall hier vielleicht nicht so relevant...) im vergleich zum präprozessor. mit const merkts der compiler, mit #define suchst selber...
2) kann man auch arrays und structs als const definieren
3) scope

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25641
von der typensicherheit her ist: "#define PI 3.14f" dasselbe wie "const float PI = 3.14f" sowie "3.14f".

genau wegen dem scope würde ich in diesem fall kein const float nehmen, PI ist etwas allgemeines nichts funktionsspezifisches.

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von mat
1.)
Code:
float var1,
      var2,
      var3;
ist übersichtlicher als x mal float

Wenn schon so, dann gleich alles in eine Zeile:
Code:
float var1, var2, var3;

Aber ich würde generell float vermeiden, da es haarsträubend ungenau ist. Verwende prinzipiell immer double, außer du hast sehr große Arrays von (10000+) Werten.

Zitat von mat
2.)
Code:
a1 = b*c;
d  = a*a;
die = am besten auf selbe höhe bringen und je nach inhalt in blöcken aufteilen. erhöht ebenfalls die leserbarkeit.

Normalerweise sollte man auch vor und nach jedem binären Operator ein Leerzeichen machen:

Code:
a1 = b * c;
d  = a * a;

Zitat von mat
4.) const float ..irgendwas gehört eigentlich nicht nach den vars und vorm code, sondern vor den vars. ausserdem würd ich eher ein #define nehmen.

Ich würde die Konstanten ganz vorne definieren, aber ganz sicher nicht mit #define. Ein const double umgeht nicht die Sprachstruktur wie ein #define, wird vom Debugger auch noch angezeigt, und hat auch bei berechneten Werten weniger Überraschungen als ein #define. Natürlich geht das #define in diesem einfachen Fall auch einwandfrei, aber spätestens bei Berechnungen gibts irgendwann böse Effekte. Vergleiche:

Code:
#define MAXWERT 256-1
int x = MAXWERT / 2;

Code:
const int MAXWERT = 256-1;
int x = MAXWERT / 2;
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz