AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Übersetzung C -> Delphi: Verkürzte if-Bedingung
Thema durchsuchen
Ansicht
Themen-Optionen

Übersetzung C -> Delphi: Verkürzte if-Bedingung

Ein Thema von Luckie · begonnen am 10. Mär 2008 · letzter Beitrag vom 11. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 10:12
Ich habe hier den folgenden kranken C-Code:
Code:
UINT Sum(UINT uNum) {
  return((uNum == 0) ? 0 : (uNum + Sum(uNum - 1)));
}
Wie sieht das in Delphi aus?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 10:17
Delphi-Quellcode:
function Sum(uNum: Cardinal):Cardinal;
begin
  if uNum=0 then
    result := 0
  else
    result := uNum + Sum(uNum - 1);
end;
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 10:21
Dank dir. Der Code ist wemfalls lesbar. Und wieder ein Grund mehr, warum mir eine Sprache unsympathisch ist, bei der man so kranken Code schreiben kann.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 10:22
Zitat von Luckie:
Ich habe hier den folgenden kranken C-Code
Wieso krank? Das sieht noch fast(!) schön aus für C
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 10:22
Das ist der sog. ternäre Operator, den gibt es in Java oder PHP auch
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 10:24
Die Funktion lässt sich durch eine Formel weit eleganter und schneller abbilden: Herrn Gauß sei Dank
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 10:36
@Medium: Ich weiß, aber damit bekomme ich keinen Stacküberlauf hin, aber genau den brauche ich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 11:05
Dann nimm doch ein Argument, dass groß genug ist:

Delphi-Quellcode:
program tso;

{$APPTYPE CONSOLE}
{$R-}

uses
  Classes;

function Sum(const Num: Cardinal): Cardinal;
begin
  if Num = 0 then
    Result := 0
  else
    Result := Num + Sum(Num - 1);
end;

begin
  Writeln(Sum(MaxInt));
end.
jkr
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 11:09
Genau das tue ich ja auch. Wenn ich aber den Gauss-Algorithmus benutze, dann bekomme ich keinen StackOverflow, sondern ein Integer-Overflow.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

Re: Übersetzung C -> Delphi: Verkürzte if-Bedingung

  Alt 10. Mär 2008, 11:15
Wofür brauchst Du einen Stack Overflow? (Klar, dass Du ihn mit einer nicht-rekursiven Funktion nur schwerlich erzeugen kannst.)

Den Integer-Überlauf könntest Du mit {$Q-} verhindern. Fälschlicherweise hatte ich im Beispiel {$R-} verwendet.

jkr
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:11 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