Yhoko/devYhokos Entwicklertagebuch

Technische Freiheiten

20. August 2013 von Yhoko
Dass Programmieren eine ziemlich technische Angelegenheit ist, lässt sich kaum bestreiten. Nun ist Technik aber ein ziemlich umfassendes Gebiet und es gibt mindestens soviele Lösungen auf der Welt wie Techniker, die an einem Problem arbeiten. Beim Programmieren, wo man nicht mit Werkstoffen und realen Bauteilen arbeitet, wird dies mitunter in die Extreme getrieben, denn was nicht funktioniert wird einfach geändert oder komplett gelöscht und nochmal neu geschrieben. Ressourcen verliert man dabei keine, ausser natürlich Zeit und Lust. Dabei lässt sich schwer überhaupt beurteilen, ob eine funktionierende Lösung auch wirklich eine gute Lösung ist. Ich möchte euch deshalb im Folgenden gleich 12 verschiedene Möglichkeiten eines JavaScript-Programmierers, um eine Zahl zu verdoppeln. Viel Spass damit:

Normal


Zahl = Zahl * 2;

Schreibfaul


Zahl *= 2;

Addition


Zahl = Zahl + Zahl;

Addition, schreibfaul


Zahl += Zahl;

Bitshift


Zahl = Zahl << 1;

Bitshift, schreibfaul


Zahl <<= 1;

Additionsfunktion


function selbstaddition( Zahl )
{
	return Zahl + Zahl;
}
Zahl = selbstaddition( Zahl );

Verdoppelungsfunktion


function verdoppeln( Zahl )
{
	return Zahl * 2;
}
Zahl = verdoppeln( Zahl );

Multiplikationsfunktion


function multiplizieren( Zahl, Faktor )
{
	return Zahl * Faktor;
}
Zahl = multiplizieren( Zahl, 2 );

Eifnache Bitshift-Funktion


function einzelshift( Zahl )
{
	return Zahl << 1;
}
Zahl = einzelshift( Zahl );

Flexible Bitshift-Funktion


function multishift( Zahl, Bits )
{
	return Zahl << Bits;
}
Zahl = multishift( Zahl, 1 );

Additionsschleife


function vervielfachen( Zahl, Anzahl )
{
	Temp = Zahl;

	for( a = 1; a < Anzahl; a++ ) Zemp += Zahl;

	return Zemp;
}
Zahl = vervielfachen( Zahl, 2 );




Gegen unten werden die Codeschnipsel immer länger, weil die Einzeiler in Funktionen verpackt wurden. Das mag beim konkreten Verdoppeln sinnlos erscheinen, bei komplexeren Operationen ist ein Auslagern in einzelne Funktionen aber das Erste, was man macht (statt den Code immer und immer wieder zu kopieren).
Selbst das Verdoppeln "von Hand", also wie in der Schule die Zahlen einzeln durchzugehen und zu verdoppeln, kann Sinn machen, z.B. wenn man mit 2000-stelligen Zahlen hantiert – auf den hier gezeigten Wegen käme der Computer mit solchen Zahlen nicht klar.

PS: Statt zu verdoppeln könnte man die Zahl natürlich auch um die Hälfte halbieren:
Zahl = Zahl / (1/2);
aber Divisionen sind böse.
Thema: Endyr


Kommentar schreiben

Name:
E-Mail:
Beitragstext: