Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi C Code - ? Operator nach Delphi übersetzen (https://www.delphipraxis.net/176282-c-code-operator-nach-delphi-uebersetzen.html)

Horst0815 23. Aug 2013 20:26

Delphi-Version: 5

C Code - ? Operator nach Delphi übersetzen
 
wie müsste ich folgenden C Code richtig übersetzen
Code:
return (0 == melody) ? 0 : ((boosts & (1 << voice_nr)) ? sample : THREEQUARTERS(sample));
mein Versuch

Delphi-Quellcode:
 if 0 = melody then result := 0 else result := ((boosts and (1 shl voice_nr))) else result := sample else result := THREEQUARTERS(sample));
was natürlich quark ist

Furtbichler 23. Aug 2013 20:32

AW: C Code - ? Operator nach Delphi übersetzen
 
So vielleicht?
Delphi-Quellcode:
if melody=0 then
  return 0
else
  if boosts and 1 shl voice_nr <> 0 then
    return sample
  else
    return threequaters(sample);

Horst0815 23. Aug 2013 20:34

AW: C Code - ? Operator nach Delphi übersetzen
 
Hatte es auch grad hinbekommen nachdem ich den Code Formatiert hatte:oops: Danke Trotzdem

Der schöne Günther 23. Aug 2013 21:48

AW: C Code - ? Operator nach Delphi übersetzen
 
Da hatte ich erst heute wieder eine Diskussion drüber. Der ternäre Operator war das allererste was ich meinen ersten Tagen Delphi "vermisst" hatte. Mittlerweile bin ich froh, dass es die Sprache einem so schwer macht, unübersichtlichen Code zu schreiben :wink:

Ich meine - Wie lang braucht man um diese schon fast typische Zeile C-Code zu durchblicken. Und wie lang beim Delphi-Pendant.

Furtbichler 23. Aug 2013 22:40

AW: C Code - ? Operator nach Delphi übersetzen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1226047)
dass es die Sprache einem so schwer macht, unübersichtlichen Code zu schreiben.

Schrottcode ist sprachenunabhängig. Es kommt immer auf den Programmierer an.

Du hast mit modernen Programmiersprachen viel mehr Möglichkeiten, als umsichtiger und guter Programmierer kompakten Code zu schreiben, der leicht verständlich ist. Wer es mit dem '?' übertreibt, ist halt ein schlechter Programmierer.

In Delphi kann man die größte Grütze schreiben, die keine Sau mehr versteht. Es reicht schon eine Methode mit mehr als 50 Zeilen oder Klassen mit zu vielen Methoden, oder gar keine Klassen, sondern rein prozeduralen Code. Delphi bietet das ja, quasi als Ausgleich zum fehlenden '?' :mrgreen:

Delphi ist ein Relikt. Leider. Aber darum geht es hier ja nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz