Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Betrag ausrechnen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
19.04.2006, 16:17 Uhr
BoBtheREapER
kein job für nen BoB


wenn man in der mathematik den betrag eines wertes ausrechnen will dann sieht das ja so aus |x| also wenn x=-5 |-5| = 5
gibt es eine funktion in c++ für so was (ok es gibt bestimmt eine aber wie heißt die?)
danke
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.04.2006, 16:19 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Ja kannst du mit abs() machen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.04.2006, 16:21 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


für fließkommazahlen fabs() verwenden...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.04.2006, 16:23 Uhr
BoBtheREapER
kein job für nen BoB


danke
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.04.2006, 19:51 Uhr
mauralix



oder so ...


Code:
unsigned int abs(int value)
{
   if(value<0) return value*=-1;

return value;
}


--
nur olfaktorisch fassbar....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.04.2006, 20:01 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@maurilix
das ist ne ganz dumme idee da ne multiplikation draus zu machen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
21.04.2006, 20:29 Uhr
~MartinF
Gast


Ich würde die Funktions abs anders Deklarieren und ein wenig anders Implementieren. Zunächst sollte man bedenken, dass die Multiplikation mit dem Wert -1 langsamer verläuft als die Verwendung des unären Vorzeichenoperators Minus. Des weiteren würde ich die Fkt. als inline deklarieren, damit der Compiler die Chance bekommt den Quelltext weiter zu optimieren.

Bei Verwendung der Metafunktion abs_ wird sichergestellt, dass der Wert schon zu Compilierzeiten und nicht erst bei Laufzeiten des Programms ermittelt wird. Man bedenke, dies ist nur bei konstanten Werten möglich (s. const-Deklaration im Quelltext).


C++:
#include <iostream>

inline int abs(int a)
{
  return a<0 ? -a : a;
}

template<int a>
struct abs_ { static const int value; };
template<int a>
const int abs_<a>::value=a<0 ? -a : a;


int main()
{
  const int a1=-5;
  const int a2=5;
  const int a3=0;

  std::cout << abs(a1) << std::endl;
  std::cout << abs(a2) << std::endl;
  std::cout << abs(a3) << std::endl;

  std::cout << abs_<a1>::value << std::endl;
  std::cout << abs_<a2>::value << std::endl;
  std::cout << abs_<a3>::value << std::endl;
}




Die inline-Deklaration ist nur ein Hinweis für den Compiler. Ich könnte das Programm ohne Optimierung übersetzen und eine Abbildung des Profilings posten, sodass der Vorteil der Metaprogrammierung besser sichtbar wird. Ist es möglich Anhänge wie Bilder mitzuposten? Wenn ja brauch ich einen kleinen Tipp wie das funktioniert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.04.2006, 07:56 Uhr
Tommix



'Morgen,
[urheberrecht aus]
[img]http://www.fun-soft.de/images/top.jpg[/img]
[urheberrecht ein]
macht...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.04.2006, 07:57 Uhr
Tommix



[urheberrecht aus]

[urheberrecht ein]

Es gibt links neben der Editbox unten einen Link "Weitere Formatierungsmöglichkeiten", da steht das.

Gruß, Tommix

Dieser Post wurde am 22.04.2006 um 07:59 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
22.04.2006, 11:46 Uhr
RedEagle



Müste bei integer nich folgendes Recihen?:

C++:
long zahl = -1000;
zahl &= 0x7FFFFFFF;

--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: