Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » array an funktion uebergeben -> struct ausgabe

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 <
000
14.05.2004, 12:39 Uhr
Chris Stein



hi zusammen!

habe ein wahrscheinlich kleines, für mich aber sehr großes problem: mein programm analysiert (im nachhinein) einen aktienkurs, und ermittelt, wann der beste einkaufs- und verkauftstag, also mit dem meisten profit, gewesen wäre

möchte in meiner main-funktion zum einen das array preisBsp zum anderen die anzahl der "boersentage" übergeben. Die funktion soll dann das optimale tripel (selbst definierter datentyp) ausgeben. leider hakt das bei mir.

der c++builderx sagt immer ""main.cpp": E2094 'operator<<' not implemented in type 'ostream' for arguments of type 'Tripel' in function main() at line 30"

wäre für jede hilfe sehr dankbar!!!

mfg,
chris


C++:

#include <iostream.h>
typedef struct {
  int ekTagOptimal;
  int vkTagOptimal;
  float profit;
} Tripel;
Tripel aktienmarkt_analysieren(float preis[], int anzahlTage) {
  int ekTag, vkTag;
  Tripel res = {-1,-1,0};
  for (ekTag = 0; ekTag < anzahlTage; ekTag++)
    for (vkTag = ekTag; vkTag < anzahlTage; vkTag++)
      if (res.profit <= preis[vkTag] - preis[ekTag]) {
        res.profit = preis[vkTag] - preis[ekTag];
        res.ekTagOptimal = ekTag + 1;
        res.vkTagOptimal = vkTag + 1;
      }
  return res;
}
void main()
{
   float preisBsp[]={10.0,9.9,10.4,10.8,10.6,10.2,9.6,9.5,9.7,10.2};
   int anzTage=10;
   cout<<"Optimales Tripel: "<<aktienmarkt_analysieren(preisBsp, anzTage)<<endl
};

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.05.2004, 12:48 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


du kannst kein Triple direkt ausgeben...
an sonsten müsstest du den <<operator überschreiben und aus triple damit ne waschechte klasse machen und kein struct nehmen...


C++:
#include <iostream>
typedef struct {
  int ekTagOptimal;
  int vkTagOptimal;
  double profit;
} Tripel;


Tripel aktienmarkt_analysieren(double* preis, int anzahlTage) {
  
  int ekTag, vkTag;
  Tripel res = {-1,-1,0};
  for (ekTag = 0; ekTag < anzahlTage; ekTag++)
    for (vkTag = ekTag; vkTag < anzahlTage; vkTag++)
      if (res.profit <= preis[vkTag] - preis[ekTag]) {
        res.profit = preis[vkTag] - preis[ekTag];
        res.ekTagOptimal = ekTag + 1;
        res.vkTagOptimal = vkTag + 1;
      }
  return res;
}

void main()
{
   double preisBsp[]={10.0,9.9,10.4,10.8,10.6,10.2,9.6,9.5,9.7,10.2};
   int anzTage=10;
//   std::cout<<"Optimales Tripel: "<<aktienmarkt_analysieren(preisBsp, anzTage)<<std::endl
   Tripel trip=aktienmarkt_analysieren(preisBsp, anzTage);
   std::cout<<"Optimales Tripel: "<<trip.ekTagOptimal<<"\t"<<trip.vkTagOptimal<<"\t"<<trip.profit<<std::endl;

}


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 14.05.2004 um 12:50 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.05.2004, 12:52 Uhr
virtual
Sexiest Bit alive
(Operator)


Du mußt einen Ausgabe operator für Tripel definieren, zB:

C++:
std::ostream& operator <<(std::ostream& out, const Tripel& tripel)
{
     out<<"Einkauf:"<<tripel.ekTagOptimal
         <<", Verkauf: "<<tripel.vkTagOptimal
         <<", Profit: "<<tripel.profit;
}


Ungetestet.
--
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
003
14.05.2004, 12:54 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:
Windalf postete
[...] aus triple damit ne waschechte klasse machen und kein struct nehmen...[...]


Warum?
--
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
004
14.05.2004, 13:04 Uhr
Hakuna



Also Funktionieren tuts auch einfach so:


C++:
int main()
{
    float preisBsp[]={10.0,9.9,10.4,10.8,10.6,10.2,9.6,9.5,9.7,10.2};
    int anzTage=10;
    Tripel fin = aktienmarkt_analysieren(preisBsp, anzTage);
    cout<<"Optimales Tripel: \n"<<fin.ekTagOptimal<<"\n"<<fin.vkTagOptimal;
    return 0;
}


Sicher nicht sehr elegant und einfallsreich, aber ich mach C++ ja auch erst seit kurzem...
--
Gruß, Hakuna
....und das Schlimmste ist du merkst es einfach nicht...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.05.2004, 13:27 Uhr
Chris Stein



Ich danke Euch allen TAUSENDMAL!! Auf Euch ist echt verlass!

Bis demnächst!!!

Gruß,
Chris
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: