Die letzten 10 Beiträge |
Sky33 |
Gate = hatte
Hatte mich verschrieben .
|
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. |
|
|