Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

31.03.2011, 19:43

Warum dann nochmal schreibst du

Zitat

Es funktioniert nur unter bestimmten Voraussetzungen und nicht im allgemeinen Fall, ist schlechter lesbar und bietet abgesehen davon keine wirklichen Vorteile.
Es schreibt heute eigentlich keiner mehr größere Programme im imperativen Stil. zumindest nicht mit höheren Sprachen.
Zur Eleganz könnte ich dir recht geben, aber wie gesagt, wenn man Funktionen vorher schreibt, kann man sie dann auch elegant nutzen...;)
Ich habe eigentlich der Bit Manipulation nur gemeint, mit welchem Prinzp man dieses Problem löst. Wie genau das dann aussieht (Also Funktionen, Klassen), ist eine andere Sache.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

22

31.03.2011, 19:57

Es schreibt heute eigentlich keiner mehr größere Programme im imperativen Stil. zumindest nicht mit höheren Sprachen.

Doch, fast jeder...Du meinst wohl Prozedural, aber das tut hier so oder so absolut nichts zur Sache.

Zur Eleganz könnte ich dir recht geben, aber wie gesagt, wenn man Funktionen vorher schreibt, kann man sie dann auch elegant nutzen...;)
Ich habe eigentlich der Bit Manipulation nur gemeint, mit welchem Prinzp man dieses Problem löst. Wie genau das dann aussieht (Also Funktionen, Klassen), ist eine andere Sache.

Auch wenn deine Bitmanipulation in einer Funktion/Klasse/was auch immer verpackt ist ändert das nichts dran dass (character | (1 << 5)) nur unter der Voraussetzung funktioniert dass der verwendete Zeichensatz ASCII kompatibel ist und auch dann nur für den Fall dass character überhaupt schon ein Buchstabe ist, für wchar_t kämen dann auch noch so Sachen wie Probleme mit der Endianess dazu. Es ist und bleibt Frickelwerk, auch wenn dus unter 5 Schichten OOP versteckst. Bei std::tolower() dagegen kannst du davon ausgehen dass es auf jeder Platform und mit jedem Compiler immer und auf die jeweils effizientest mögliche Art das richtige Ergebnis liefert...

Wie gesagt, für einen Anfänger eine nette Übung um mal mit ein paar Bitoperationen gassi zu gehen. Aber von Eleganz sind wir da sehr weit entfernt, eine ernsthafte Lösung verwendet std::tolower().

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (31.03.2011, 20:32)


23

31.03.2011, 20:10

Hm. mit imperativen Stil meinte ich eigentlich, keine Funktionen und Klassen zu verwenden und ganz viele Sprünge (goto) im Quelltext zu haben... Und sonst hast du mich überzeugt....;)

ArthurII

Treue Seele

Beiträge: 132

Wohnort: Aachen

Beruf: Student

  • Private Nachricht senden

24

31.03.2011, 20:39

nochmal zu dem switch-case, da ist uU noch erwähnen das auch was "dazwischen gepackt" werdne kann->

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
switch(a){
case 1:
       cout << ich habe ne 1 gefunden << endl;
case 2:
       cout << zahl ist kleiner als 3 << endl;
       break;
default:
       cout << irgend was anderes << endl;
      break;
}


im fall a=1 wird also

Quellcode

1
2
ich habe ne 1 gefunden
zahl ist kleiner als 3
ausgegeben

im fall a=2:

Quellcode

1
zahl ist kleiner als 3
ausgegeben

sonnst:

Quellcode

1
irgend was anderes
Ich bin nicht verrückt - nur verhaltensoriginell!
Project-Seite: Aura

Werbeanzeige