AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

b <> 0

Ein Thema von vsilverlord · begonnen am 23. Mai 2008 · letzter Beitrag vom 24. Mai 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#1

b <> 0

  Alt 23. Mai 2008, 12:28
Hallo, ich hab nur eine Eleganzfrage, also es funktioniert schon.
Wie kann ich
Delphi-Quellcode:
if b<>0 then
a:=a/b
eleganter machen? Ich hab diese Klausel sehr häufig, bei vielen Rechnungen kann bei b 0 rauskommen.
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: b <> 0

  Alt 23. Mai 2008, 12:30
Delphi-Quellcode:
// Als Procedure
procedure MyDiv(var Dividend: Single; Divisor: Single);
begin
  if (Divisor <> 0) then
    Dividend := Dividend / Divisor;
end;

// Als Funktion:
function MyDiv(Dividend, Divisor: Single): Single;
begin
  if (Divisor <> 0) then
    Result := Dividend / Divisor;
end;

// Aufrufe:
// Procedure:
MyDiv(Dividend, Divisor);

// Funktion:
Dividend := MyDiv(Dividend, Divisor);
Vielleicht auch so:

Delphi-Quellcode:
// Als Funktion, die true zurück gibt, wenn geteilt wurde:
function MyDiv(var Dividend: Single; Divisor: Single): Boolean;
begin
  Result := Divisor <> 0;
  if (Result) then
    Dividend := Dividend / Divisor;
end;

// Aufruf
if (MyDiv(Dividend,Divisor)) then
  // es wurde geteilt
else
  // es wurde nicht geteilt
[edit] Schöne Variablennamen [/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: b <> 0

  Alt 23. Mai 2008, 12:33
Macht er / mach ich doch oder hab ich was übersehen?

Mensch, Markus Nicht wegeditieren
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: b <> 0

  Alt 23. Mai 2008, 12:38
Hallo,

dieses IF-Statement ist für sich genommen nicht verbesserungsfähig, lediglich bessere Variablennamen könnten eventuell noch Pluspunkte bringen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: b <> 0

  Alt 23. Mai 2008, 12:41
Zitat von marabu:
dieses IF-Statement ist für sich genommen nicht verbesserungsfähig, lediglich bessere Variablennamen könnten eventuell noch Pluspunkte bringen.
Das ist klar. Ich hab der Einfachheit halber seine Variablennamen verwendet. Die kann er ja dann ändern, wie er mag.

[edit] Hab sie geändert [/edit]
  Mit Zitat antworten Zitat
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#6

Re: b <> 0

  Alt 23. Mai 2008, 12:59
ok danke, ich glaub ich lass es dann mal so, dann ist halt die zeile ein wenig länger. ich hab schon ziemlich viele eigene funktionen xD
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
Laufi

Registriert seit: 21. Mär 2006
86 Beiträge
 
#7

Re: b <> 0

  Alt 23. Mai 2008, 13:20
Hallo!

Du kannst auch einfach am Anfang von deinem Programm Set8087CW($133f); schreiben dann gibt es keine Fehler beim teilen durch 0

Liebe Grüsse
Laufi
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: b <> 0

  Alt 23. Mai 2008, 13:23
Zitat von Laufi:
Du kannst auch einfach am Anfang von deinem Programm Set8087CW($133f); schreiben dann gibt es keine Fehler beim teilen durch 0
Was passiert, wenn Du es trotzdem machst? (Also was steht nachher in der zugewiesenen Variable?)

Und Fehlermeldungen unterdrücken ist nicht gerade sehr elegant, dann lieber programmseitig abfangen.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: b <> 0

  Alt 23. Mai 2008, 13:24
Ic C# könnte man es so machen, aber Delphi solche Konstrukte leider nicht:

Code:
a = (b != 0) ? a / b : a;
Aber was hast du denn für ein Problem damit, deinen Code so zu verwenden wie du ihn hast

if b <> 0 then a := a / b; Das ist grad mal 1 Zeichen mehr
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#10

Re: b <> 0

  Alt 23. Mai 2008, 13:29
Result := IfThen(Divisor <> 0, Dividend/Divisor, Dividend);
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:56 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