Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Array sortierung Problem » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
Sky33

Gate = hatte

Hatte mich verschrieben . unglücklich
as_string

Und wer ist "Gate"? Kommst Du möglicherweise mit den ganzen Foren irgendwie durcheinander?
as_string

Was willst Du eigentlich? Du versuchst ja noch nichtmal zu verstehen, wie der Algorithmus überhaupt funktioniert.
Außerdem hast Du auch nicht den Post im anderen Forum gelesen, der sagt, dass die Bestimmung von len falsch ist.
Sky33

Mir wurde ja bereits schon erklärt ,dass man es so machen soll:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:

float min = m_last24hrsTemp[0]; 
float max = m_last24hrsTemp[0]; 
  
int len = sizeof(m_last24hrsTemp); 
  
for(int i = 1; i < len ; i++) 
{ 
    if(m_last24hrsTemp[i] > max) 
        max = m_last24hrsTemp[i]; 
    if(m_last24hrsTemp[i] < min) 
        min = m_last24hrsTemp[i]; 
}



was ich nicht verstehe ist warum man das hier so definieren muss?
float min = m_last24hrsTemp[0];
float max = m_last24hrsTemp[0];

Im Header ist ja bereits m_maxTemp und m_minTemp gegeben?

Ich dachte ,dass wenn man das so macht:
m_last24hrsTemp[i]>m_last24hrsTemp[m_maxTemp]

der maximale Temp gefunden wird ?
Wieso soll man da einfach nur max schreiben ?
Sky33

Sorry Gate dein Beitrag nicht gelesen
Sky33

Nein das ist doch mein neuer Ansatz String :

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:

void CTempSensor::calculateMinMaxTemp(){ 
  
      
     float m_last24hrsTemp[24]; 
     int length =24-1; 
  
     for(int i = 0; i<lenght;i++){ 
         if(m_last24hrsTemp[i]>m_last24hrsTemp[m_maxTemp]){ 
            m_maxTemp = i; 
              
         } 
          
  
     } 
  
     for(int i = 0; i<length;i++){ 
             if(m_last24hrsTemp[i]<m_last24hrsTemp[m_minTemp]){ 
  
                 m_minTemp = i; 
             } 
              
  
         } 
 }



Das min temp hat doch den niedrigsten Wert oder ?
as_string

Zitat:
Original von Sky33

Das ist ja mein aktueller Ansatz gewesen .

Besser ?

Das ist doch genau derselbe Quelltext!??!?
Sky33

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:

#include "CTempSensor.h" 
#include <iostream>     // Header fuer die Standard-IO-Objekte (z.B. cout, cin) 
#include <cstdlib>      // fuer random values 
#include <iomanip>      // fuer setw() 
#include <string> 
  
  
using namespace std;    // Erspart den scope vor Objekte der 
                        // C++-Standard-Bibliothek zu schreiben 
                        // z.B. statt "std::cout" kann man "cout" schreiben 
  
  
  
CTempSensor::CTempSensor(float minTemp,float maxTemp) 
{ 
    CTempSensor::retrieveLastMeasurements(); 
    m_minTemp = minTemp; 
  
    m_maxTemp = maxTemp; 
  
  
  
} 
  
// generiert 24 Zufallswerte zw. 5 und 95 Grad [vorgegeben] 
void CTempSensor::retrieveLastMeasurements() 
{ 
    for (int i=0; i<24;i++) { 
        m_last24hrsTemp[i] = (rand() % 900 + 50) / (float)10; 
    } 
} 
  
  
// gibt min/max und die 24 Messwerte aus [vorgegeben] 
void CTempSensor::print() 
{ 
    cout << "min: " << m_minTemp << " | max: " << m_maxTemp << " | Letzte 24 Messwerte: "; 
  
    for (int i=0; i<24;i++) { 
        cout << setw(4) << m_last24hrsTemp[i] << " | " ; 
    } 
    cout << endl; 
  
} 
  
  
// gibt den Prozentsatz der Werte in der Range zurueck [gegeben fuer Aufgane 3c] 
float CTempSensor::checkTempRange(float low, float high) 
{ 
    int inRange = 0; 
    int outOfRange = 0; 
  
    for (int i=0; i<24;i++) { 
        if (m_last24hrsTemp[i] < low || m_last24hrsTemp[i] > high) { 
            outOfRange++; 
        } 
        else { 
            inRange++; 
        } 
    } 
    return 100*inRange/24.; 
} 
  
  
  
CTempSensor::~CTempSensor() 
{ 
    // TODO Auto-generated destructor stub 
} 
  
 void CTempSensor::calculateMinMaxTemp(){ 
  
      
     float m_last24hrsTemp[24]; 
     int length =24-1; 
  
     for(int i = 0; i<lenght;i++){ 
         if(m_last24hrsTemp[i]>m_last24hrsTemp[m_maxTemp]){ 
            m_maxTemp = i; 
              
         } 
          
  
     } 
  
     for(int i = 0; i<length;i++){ 
             if(m_last24hrsTemp[i]<m_last24hrsTemp[m_minTemp]){ 
  
                 m_minTemp = i; 
             } 
              
  
         } 
 }


Das ist ja mein aktueller Ansatz gewesen .

Besser ?
as_string

Und warum redefinierst Du die Membervariable m_last24hrsTemp als lokale Varianle in der Methode? Das überschreibt ja die Membervariable und geht dann auch wieder schief...
Das Problem ist halt nach wie vor (und das sind ja jetzt schon viele Monate...), dass Du einfach die Prinzipien nicht verstehst, weder von der Objektorientierten Programmierung in C++, aber auch schon C++/C-Grundlagen, etc, und darüber hinaus auch schon die Algorithmik und deren Logik nicht verstehst. Also auf allen Ebenen durchgängig verstehst Du nichts.
Und das Problem ist, dass Du Dich auch gar nicht darauf einlässt sondern nach wie vor Deine "Problemlösungstaktik" fährst: Poste in alle möglichen Foren, irgendjemand wird schon einen Fetzen liefern, den füttere wieder in die anderen Foren, als ob Du selbst was raus gefunden hättest, um dort die Leute dazu zu bringen, wieder einen weiteren Fetzen zu liefern. Aber ja nicht selbst drüber nachdenken und verstehen versuchen, warum die Leute dies und jenes tun oder sagen, dass irgendwas falsch ist.

Das bringt Dir nichts und uns so wie so nicht. Ich verstehe nicht, warum Du das überhaupt machst...

Gruß
Marco
Sky33

Habe das Programm so umgeändert mittlerweile

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:

#include "CTempSensor.h" 
#include <iostream>     // Header fuer die Standard-IO-Objekte (z.B. cout, cin) 
#include <cstdlib>      // fuer random values 
#include <iomanip>      // fuer setw() 
#include <string> 
  
  
using namespace std;    // Erspart den scope vor Objekte der 
                        // C++-Standard-Bibliothek zu schreiben 
                        // z.B. statt "std::cout" kann man "cout" schreiben 
  
  
  
CTempSensor::CTempSensor(float minTemp,float maxTemp) 
{ 
    CTempSensor::retrieveLastMeasurements(); 
    m_minTemp = minTemp; 
  
    m_maxTemp = maxTemp; 
  
  
  
} 
  
// generiert 24 Zufallswerte zw. 5 und 95 Grad [vorgegeben] 
void CTempSensor::retrieveLastMeasurements() 
{ 
    for (int i=0; i<24;i++) { 
        m_last24hrsTemp[i] = (rand() % 900 + 50) / (float)10; 
    } 
} 
  
  
// gibt min/max und die 24 Messwerte aus [vorgegeben] 
void CTempSensor::print() 
{ 
    cout << "min: " << m_minTemp << " | max: " << m_maxTemp << " | Letzte 24 Messwerte: "; 
  
    for (int i=0; i<24;i++) { 
        cout << setw(4) << m_last24hrsTemp[i] << " | " ; 
    } 
    cout << endl; 
  
} 
  
  
// gibt den Prozentsatz der Werte in der Range zurueck [gegeben fuer Aufgane 3c] 
float CTempSensor::checkTempRange(float low, float high) 
{ 
    int inRange = 0; 
    int outOfRange = 0; 
  
    for (int i=0; i<24;i++) { 
        if (m_last24hrsTemp[i] < low || m_last24hrsTemp[i] > high) { 
            outOfRange++; 
        } 
        else { 
            inRange++; 
        } 
    } 
    return 100*inRange/24.; 
} 
  
  
  
CTempSensor::~CTempSensor() 
{ 
    // TODO Auto-generated destructor stub 
} 
  
 void CTempSensor::calculateMinMaxTemp(){ 
  
      
     float m_last24hrsTemp[24]; 
     int length =24-1; 
  
     for(int i = 0; i<lenght;i++){ 
         if(m_last24hrsTemp[i]>m_last24hrsTemp[m_maxTemp]){ 
            m_maxTemp = i; 
              
         } 
          
  
     } 
  
     for(int i = 0; i<length;i++){ 
             if(m_last24hrsTemp[i]<m_last24hrsTemp[m_minTemp]){ 
  
                 m_minTemp = i; 
             } 
              
  
         } 
 }	







Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.