Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Werte eines Array zusammenzählen ?

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 <
010
13.05.2003, 10:39 Uhr
mastertango




Zitat:
FloSoft postete
@ heiko, ich würde das aber etwas noch anders machen:

C++:
double umsatzsumme(int bis, [b]double *umsatz) // Variabler[/b]
{
  double rv=0;
  for( i = 0 ; i < bis; i++ )
    rv += umsatz[ i ];
   return rv;
}



und dann per


C++:
double teilumsatz=umsatzsumme(3,&dumsatz);


aufrufen!




Diese Funktion gefällt mir bisher doch noch am besten. ....danke dann erstmal


Gruß

Master
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
13.05.2003, 10:55 Uhr
virtual
Sexiest Bit alive
(Operator)


Solche Prinzipellen Dinge schreien ja förmlich nach der Verwendung von valarray

C++:
#include <iostream>
#include <valarray>

int main()
{
    double array[] = { 1.0, 3.4, 2.7, 5.1 };

    std::valarray<double> varray(array, sizeof(array)/sizeof(*array));

    std::cout<<"Die Summe ist: "<<varray.sum()<<std::endl;
}



oder zumindest einer Verallgemeinerung des Aufsummierungsvorgangs:

C++:
#include <iostream>
#include <algorithm>

template<typename T>
class summe
{
    double s;
public:
    summe() :s(0) {}
    void operator () (const T& add) { s+=add; }
    const T& result() const { return s; }
};

int main()
{
    double array[] = { 1.0, 3.4, 2.7, 5.1 };
    summe<double> s;

    s = std::for_each(array, array+sizeof(array)/sizeof(*array), s);

    std::cout<<"Die Summe ist: "<<s.result()<<std::endl;
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
13.05.2003, 11:01 Uhr
mastertango




Zitat:
virtual postete
Solche Prinzipellen Dinge schreien ja förmlich nach der Verwendung von valarray

C++:
#include <iostream>
#include <valarray>

int main()
{
    double array[] = { 1.0, 3.4, 2.7, 5.1 };

    std::valarray<double> varray(array, sizeof(array)/sizeof(*array));

    std::cout<<"Die Summe ist: "<<varray.sum()<<std::endl;
}



oder zumindest einer Verallgemeinerung des Aufsummierungsvorgangs:

C++:
#include <iostream>
#include <algorithm>

template<typename T>
class summe
{
    double s;
public:
    summe() :s(0) {}
    void operator () (const T& add) { s+=add; }
    const T& result() const { return s; }
};

int main()
{
    double array[] = { 1.0, 3.4, 2.7, 5.1 };
    summe<double> s;

    s = std::for_each(array, array+sizeof(array)/sizeof(*array), s);

    std::cout<<"Die Summe ist: "<<s.result()<<std::endl;
}





Ok leute... soweit bin ich noch nicht..... das wird mir zu kompliziert. Habe schon die optimale Lösung für meine Winzigkeit an Problem gefunden.... das wäre dann die Lösun von FloSoft ..... damit kann ich noch ein paar Tage weiter Arbeiten ...... dann schaue ich mir dieses hier an ...wenn ich mehr als 50 % von dem verstehe was du hier geschrieben hast.

Gruß
Master

Dieser Post wurde am 13.05.2003 um 11:05 Uhr von mastertango editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
13.05.2003, 11:10 Uhr
virtual
Sexiest Bit alive
(Operator)


@mastertango.

Also ich geb zu, das das zweite vielleicht für den Anfang nicht das ist, was Du willst, ist ein wenig overdozed. Aber beim ersten kann ich nur sagen: Vertraue der STL.
std::valarray ist eine Klasse von der STL, die verhält sich genau wie ein Array von Werten. Diese Zeile:

C++:
std::valarray<double> varray(array, sizeof(array)/sizeof(*array));


Sagt: Bitte mach mir so ein STL-Array. Die Werte findest Du in array und da sind sizeof(array)/sizeof(*array) Stück drinnen (dieser etwas kompliziert wirkende Ausdruck gibt die Anzahl der elemente in array zurück. ein varray hat nun die sum routine (und viele andere mehr), mit denen Man so Sachen machen kannst, wie du willst.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
13.05.2003, 11:18 Uhr
~Heiko
Gast


@FloSoft
so würde ich das normaler Weise auch machen, aber da das array nun mal statisch definiert war, blieb mir ja laut aufgabenstellung nichts anderes übrig.
Sonst frisst mein Compiler das nicht. Ist das bei euch anders?

Heiko
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
13.05.2003, 17:11 Uhr
mastertango



Ich werde das ganze mal am Donnerstag ausprobieren. Habe vorher leider keine Zeit dafür. Hört sich aber gut und logisch an. Das iss das wichtigste.
Da ich alle gänigen Compiler zur Verfügung habe, sollte das ganze auch kein Problem sein. Standartmäßig benutze ich aber den Borland 6.0

Gruß

Master
 
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: