Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » in einer schleife ganzzahlen filtern

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 ]
000
26.02.2006, 16:26 Uhr
Mr Evil



mahlzeit

ich hab das so

ich hab eine unbekannte N

und ich mach N/100

habs als double gespeichert

nu kann die zahl zb 1.2 sein, oder 0.45

ich brauch in der schleife eine funktion die merkt sobald eine ganzzahl auftritt,

if( zahl == 1.0 || zahl == 2.0 usw usw - von 1 bis 100, da ich bei den ganzzahlen eine andere funktion aufrufen lassen will

gibts da ne fertige funktion fuer ? runden waere nicht angebracht, ich brauch eine 2 oder 4 wirklich nur wenn sie da ist und nicht sobald aufgerundet wird /=

bin fuer jeden tipp dankbar

progge mit visual studio 2005


C++:
double ergebnis;
int zahl;

ergebnis = DateienAnzahl/100;
for( int x=0; x<DateienAnzahl; x++ )
{
    //tu was normales
    ergebnis += ergebnis;
    if( ergebnis == 1.0 || ergebnis == 2.0 )
      //tu was anderes
}


Dieser Post wurde am 26.02.2006 um 16:29 Uhr von Mr Evil editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.02.2006, 16:51 Uhr
~da mike
Gast


Hi

zahl%2==0 hilft vl.

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.02.2006, 16:58 Uhr
~da mike
Gast


Ähm Sorry - das ist ja jur für Integers

int fmod(double zahl1, double zahl2) float modulo errechnet den Rest von zahl1/zahl2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.02.2006, 16:59 Uhr
Mr Evil



ja schon, nur dann brauch ich ja die abfrage fuer alle zahlen

also
%1
%2
%3 usw, das bis 100 - und genau das wollte ich doch vermeiden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.02.2006, 17:05 Uhr
Mr Evil



am ende geht es ja darum das ich ein fortschrittsbalken machen will, nur der nimmt nur int zahlen an und kann nur mit diesen incrementieren

ne andere idee wie ich den fortschrittsbalken sinnvoll incrementiert ?

bei meiner grundidee ist das problem das er auch bestimte zahlen ueberspringen kann, wenn ergebnis zb 0.8 ist, ist sie naechste erhoehung 1.6 schon ist die 1 ubersprungen und der balken merkts nicht

braeuchte theoretisch

if( ergebnis < 2.0 && ergebnis > 1.0 )
increment +1
if( ergebnis < 3.0 && ergebnis > 2.0 )
increment +1

usw usw - nur das von 1 bis 100 ist nicht grad sinnvoll
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.02.2006, 17:11 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

am ende geht es ja darum das ich ein fortschrittsbalken machen will, nur der nimmt nur int zahlen an und kann nur mit diesen incrementieren


wenn ich mich nicht irre kannst du den fortschrittsbalken selbstständig skalieren lassen, du musst einfach nur eingeben von wo bis wo der laufen soll... dann überibst du einfach deinen doublewert und castet den nach int (die nachkommazahlen werden dann abgeschnitten)...

also ziemlich einfach... falls das mit dem automatischen skalieren nicht klappt und du immer 100er Schrittr bauchst dann einfach zahl/max mal 100 nach int casten... inkrementieren brauchst du gar nicht du kannst doch direkt den wert angeben wo der balken stehen soll
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.02.2006, 17:17 Uhr
KaraHead



@Mr Evil
Zu dem Code von oben.
So könnte man nur ganze Zahlen ausgeben lassen.

C++:
#include <iostream>

using namespace std;

int main()
{
        float values[] = {1.00,4.5,0.54,10.00,9.99}; //Wenn alles gut geht, dann soll er nur 1 und 10 ausgeben
        int length = sizeof(values)/sizeof(float);
        for(int i=0; i<length;i++)
        {
            int div = (int) values[i];
            if(!((values[i]-div)>0.00))
            {
                cout<<"Ganze Zahl ->"<<values[i]<<endl;
            }
        }
}



Vielleicht hilft es dir ja doch noch
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.02.2006, 17:18 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
entweder cast nach Windalf oder
int a = floor(3.25);

edit: natürlich nicht eine cast nach dem Object Windalf :-)
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 26.02.2006 um 17:19 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
26.02.2006, 17:29 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

entweder cast nach Windalf


Ich frag mich gerade was dabei herauskommt wenn man ein double nach Windalf castet? Zwillingdalf, Twindalf?

andere Vorschläge...

Nen bessere Vorlage als Mob den Windalf kann man kaum aufmachen...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 26.02.2006 um 17:41 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
26.02.2006, 17:46 Uhr
Mr Evil



danke fuer die zahlreichen antworten, habs so hinbekommen


C++:
int position = 230; //beispiel
double wert = 100.0 / position;
double festwert = wert;

for( int x=0; x<=position; x++ )
{
    balken->Value = (int) wert;
    wert += festwert;
}



hatte irgendwie ne blockade im hirn #gg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: