Kevin L. schrieb:> Ich verstehe gerade nicht was die bei der Switch Off Methode von mir> wollen?
Hm. Aus dem Kontext „Dimmer“ geraten eine Methode, die das zu dimmende
Gerät (vermutlich Lampe) „off switched“ ? Täte ich jetzt mal vermuten...
Oliver
Legt die Ausschaltzeit des Dimmers und damit die
* Einschaltdauer fest.
*
* offTime: die Ausschaltzeit als Sekunden seit Mitternacht.
* Ist der Wert kleiner als die Einschaltzeit, wird
* davon ausgegangen, dass der Dimmer am n�chsten
* Tag ausgeschaltet wurde (z.B. bedeutet bei einer
* Einschaltzeit 22:00:00 ein Ausschalten um 01:00:00
* dass der Dimmer 3 Stunden angeschaltet war).
Nach dem obigen Text hatte ich die Vermutung ,aber mehr weiss ich auch
nicht .
Studiere im 2 Semester ist nur eine Grundlagen Veranstaltung .
Aber schwer wie ihr sieht .
Mein Ansatz:'
void switchedOffAt(unsigned int offTime){
if(m_secsSinceMidnight < m_startTime){
..... keine Ahnung
}
offTime = m_duration -m_startTime;
}
Hatte gedacht ,dass mir hier vielleicht paar schlaue Köpfe helfen
könnten .
Selbst die Tutoren wussten nicht weiter
Kevin L. schrieb:> using namespace std;https://stackoverflow.com/a/1452738Kevin L. schrieb:> unsigned int m_secsSinceMidnight;
Was wenn "unsigned int" auf der Zielplattform 16bit ist und somit zu
klein für die Sekunden eines Tages (86400)? Nimm lieber uint32_t, dann
weißt du dass es groß genug ist. Gleiches gilt für die 100 anderen
Stellen im Code wo du die ungewissen Integer-Typen nutzt.
Kevin L. schrieb:> sscanf(timeOfDay.c_str(), "%02u:%02u:%02u", &hours, &minutes,> &seconds);
Waurm scanf und nicht std::cin ?
Kevin L. schrieb:> std::string CTimeOfDay::intToString(unsigned int value) {
Warum nicht std::to_string ?
Überleg doch einfach mal:
Wenn die Ein-Schaltzeit früher als die Aus-schaltzeit ist, wird erst
eingeschaltet und später am selben Tag wieder ausgeschaltet. Um
Mitternacht ist es aus.
Wenn Die Aus-Schaltzeit vor der Einschaltzeit ist, soll wohl über
Mitternacht die Lampe an bleiben und am nächsten Tag abgeschaltet
werden. Also z.B. um 14:00 ein und am nächsten Tag um 05:00 aus.
Schaffst du es daraus zu berechnen wie lang die Zeit dazwischen ist?
Wenn nicht, zurück in die 6. Klasse.
ok ich versuche es mal.
Aber Dr Sommer die Bezeichnungen unsigned int usw war uns so im Header
vorgegeben und daran sollen wir uns auch halten .
Das ist eine Altklausur und die wollen das man sich an die vorgegebene
Header hält
Kevin L. schrieb:> Aber Dr Sommer die Bezeichnungen unsigned int usw war uns so im Header> vorgegeben und daran sollen wir uns auch halten .
Dann erkläre deinem Prof dass das so problematisch ist und er euch
beibringen soll, wie man guten Code schreibt.
Kevin L. schrieb:> Das ist eine Altklausur und die wollen das man sich an die vorgegebene> Header hält
Typisch Hochschule... Man lernt es irgendwie zum Ergebnis zu kommen aber
auf die Details wird nicht geachtet.
Wenn die Ein-Schaltzeit früher als die Aus-schaltzeit ist, wird erst
eingeschaltet und später am selben Tag wieder ausgeschaltet. Um
Mitternacht ist es aus.
if(m_startTime < m_secsSinceMidnight){
offTime = m_duration -m_startTime;
}
Oder soll ich 24h -startTime machen ?
Ich verstehe noch nicht ganz die Logik glaub ich :
Im Header steht:
offTime: die Ausschaltzeit als Sekunden seit Mitternacht.
* Ist der Wert kleiner als die Einschaltzeit, wird
* davon ausgegangen, dass der Dimmer am n�chsten
* Tag ausgeschaltet wurde (z.B. bedeutet bei einer
* Einschaltzeit 22:00:00 ein Ausschalten um 01:00:00
* dass der Dimmer 3 Stunden angeschaltet war).
*/
Wieso wird bei einer EInschaltzeit um 22 Uhr um 1 ausgeschaltet ?
Ich dachte ,dass die Logik ist ,das jeweils um 24 Uhr abgeschaltet wird
oder ?
12:00 ein ... 20:00 aus -> 8h
20:00 ein ... 12:00 aus -> -8h (wegen -) + 24h -> 16h
Und warum soll es um 20Uhr aus gehen ?
Das verstehe ich nicht?
Dr. Sommer schrieb:> Kevin L. schrieb:>> using namespace std;>> https://stackoverflow.com/a/1452738>> Kevin L. schrieb:>> unsigned int m_secsSinceMidnight;>> Was wenn "unsigned int" auf der Zielplattform 16bit ist und somit zu> klein für die Sekunden eines Tages (86400)? Nimm lieber uint32_t, dann> weißt du dass es groß genug ist.
Es gibt keinen Grund, den Typ hart auf 32 Bit festzunageln. Das sollte
man nur tun, wenn es essenziell ist, dass die Variable exakt 32 Bit groß
ist.
Dr. Sommer schrieb:> Kevin L. schrieb:>> Aber Dr Sommer die Bezeichnungen unsigned int usw war uns so im Header>> vorgegeben und daran sollen wir uns auch halten .>> Dann erkläre deinem Prof dass das so problematisch ist und er euch> beibringen soll, wie man guten Code schreibt.
Meist will derjenige sowas nicht hören. Er hat vermutlich noch nie
Embedded-Software entwickelt und geht daher davon aus, dass Systeme, wo
int 16 Bit breit ist, nur noch im Museum zu finden sind - wenn er denn
überhaupt weiß, dass es sowas gibt.
> Kevin L. schrieb:>> Das ist eine Altklausur und die wollen das man sich an die vorgegebene>> Header hält>> Typisch Hochschule... Man lernt es irgendwie zum Ergebnis zu kommen aber> auf die Details wird nicht geachtet.
Naja, ich finde den Code allgemein eher unschön. Allerdings habe ich von
Professoren auch während meines Studiums auch nie was besseres gesehen.
Ich war froh, dass ich es schon vorher konnte und in den Prüfungen nur
immer das hinschreiben musste, was zwar nicht sinnvoll war, aber dem
entsprach, was der Prof sehen wollte. Ich will mir gar nicht ausmalen,
was passiert wäre, wenn ich über diese Vorlesungen das Programmieren
erst gelernt hätte.
Rolf M. schrieb:> Es gibt keinen Grund, den Typ hart auf 32 Bit festzunageln
Ja, man kann auch uint_least32_t nehmen. Allerdings ist es keine lokale
Variable, sodass Speicher sparen eine Rolle spielen könnte. Gerade so
ein Datentyp könnte in größeren Mengen auftreten.
Rolf M. schrieb:> Allerdings habe ich von Professoren auch während meines Studiums auch> nie was besseres gesehen.
Tja. Wenn man schon Leute fragt die sich wirklich auskennen darf man
dann auch Verbesserungen übernehmen.
In dem C-Übungen an meiner Hochschule (C++ ist optional) sind auch immer
Fehler. Juckt aber keinen.
Kevin L. schrieb:> Ich verstehe noch nicht ganz die Logik glaub ich :> Im Header steht:> offTime: die Ausschaltzeit als Sekunden seit Mitternacht.> * Ist der Wert kleiner als die Einschaltzeit, wird> * davon ausgegangen, dass der Dimmer am n�chsten> * Tag ausgeschaltet wurde (z.B. bedeutet bei einer> * Einschaltzeit 22:00:00 ein Ausschalten um 01:00:00> * dass der Dimmer 3 Stunden angeschaltet war).> */>> Wieso wird bei einer EInschaltzeit um 22 Uhr um 1 ausgeschaltet ?>> Ich dachte ,dass die Logik ist ,das jeweils um 24 Uhr abgeschaltet wird> oder ?> 12:00 ein ... 20:00 aus -> 8h> 20:00 ein ... 12:00 aus -> -8h (wegen -) + 24h -> 16h>> Und warum soll es um 20Uhr aus gehen ?> Das verstehe ich nicht?
Das sind einfach Beispielwerte für die beiden Fälle:
- war um Mitternacht aus, wurde tageüber ein und wieder ausgeschaltet
- war um Mitternacht ein, wurde tageüber aus und wieder eingeschaltet
Ich hab die Sortierung der Zeiten mit Absicht so gewählt, denn sie
stehen ja in zwei Variablen: Einschaltzeit/Ausschaltzeit
Wenn "aus - ein" negativ wird, dann liegt der 2.Fall vor, was auch
bedeutet: man hat die "negative Aus-Zeit" errechnet.
Und wenn von 24h 8h "aus" war, dann reicht ganz kleine Mathematik um auf
die "ein"-Zeit zu kommen.
Wenn ich bedenke wie ich mich bei TI-Studium mit Mathe gequält hab und
dann sehe, wie wenig aus solchen Fächern dann in die
"Problem-Lösungs-Gehirne" übergeht, dann komm ich ins Grübeln ;-)
Kevin schrieb:> offTime = m_duration -m_startTime;
Wieso änderst du den Parameter? Sollst du nicht m_duration errechnen?!
Kevin L. schrieb:> ANsatz richtig ?
Ist dir schonmal in den Sinn gekommen... es einfach auszuprobieren?
if(m_startTime < offTime){
m_duratiom = offTime - m_startTime;
}
if(m_startTime > offTime){
m_duration = m_startTime - offTime;
}
Ich glaube jetzt habe ich es .
Soll man einfach wenn StartTime grösser ist einfach umgekehrt
subtrahieren oder ?
Was wollen die jetzt bei der SwitchoffAT Methode von mir ?
Ich hoffe mal ,dass jetzt mein oberer Weg stimmt
Kevin L. schrieb:> Ich hoffe mal ,dass jetzt mein oberer Weg stimmt
Probier es doch einfach mal aus! Angenommen m_startTime ist 05:00 und
offTime ist 04:00. Wie lange ist die Lampe dann an? Was erhältst du bei
"m_startTime - offTime" - also "05:00-04:00" - als Ergebnis?
5-4 = 1
1 ist die Einschaltzeit also richtig .
Puuh schwere Geburt.
Eine Verwirrung herrscht bei mir noch ,dass war dann
void switchedOffAt(unsigned int offTime)
{
if(m_startTime < offTime){
m_duratiom = offTime - m_startTime;
}
if(m_startTime > offTime){
m_duration = m_startTime - offTime;
}
Was soll man jetzt genau bei switch off machen ?
In der AUfgabe steht die switchoffAt mit der aktuellen Zeit aufrufen?
Die aktuelle Zeit ist doch in der Methode As Time ?
Oder meinen die die EInschaltzeit von dieser Methode void
switchedOffAt(unsigned int offTime)?
Die Aufgabe ist so verwirrend , sind auch viele Leute durchgefallen
KevinLL schrieb:> 5-4 = 1>> 1 ist die Einschaltzeit also richtig .
D.h. wenn du heute um 05:00 einschaltest und morgen um 04:00 abschaltest
war die Lampe 1h an? Ganz sicher?
KevinLL schrieb:> Die Aufgabe ist so verwirrend , sind auch viele Leute durchgefallen
Ist eine Baumschule, ja?
D.h. wenn du heute um 05:00 einschaltest und morgen um 04:00 abschaltest
war die Lampe 1h an? Ganz sicher?
nein . Mist . Haut nicht hin.
Ich muss die insgesamte Einschaltzeit - die Auschaltzeit rechnen :
In welcher Variable ist die EInschaltzeit ?
In duration oder ?
..... = m_duration - offTime;
Eine Variable für die rechte Seite erstellen wo man das speichert ?
unsigned int tmp = 0;
void switchedOffAt(unsigned int offTime)
{
unsigned int tmp = 0;
if(m_startTime < offTime){
tmp = m_duration - offTime;
}
Langsam bin ich auch am Ende mit meinen Nerven .
Hoffe das das kein Blödsinn ist
Kevin L. schrieb:> Hoffe das das kein Blödsinn ist
Doch.
Kevin L. schrieb:> Ich muss die insgesamte Einschaltzeit - die Auschaltzeit rechnen :>> In welcher Variable ist die EInschaltzeit ?>> In duration oder ?
Aber die gesamte Einschaltzeit willst du doch berechnen...
Kevin L. schrieb:> Langsam bin ich auch am Ende mit meinen Nerven .
Ich weiß auch nicht mehr wie man dir helfen soll, außer die komplett
fertige Lösung zu zeigen. Vielleicht ist es besser wenn du durchfällst
und dann was ohne Zahlen und abstrakte Dinge studierst...
ich bin nicht bereit aufzugeben .
Der nächste Versuch .
Ich will nur bestehen leute . Mehr nicht .
void switchedOffAt(unsigned int offTime)
{
if(m_startTime < offTime){
m_duration = m_startTime - offTime;
}
Soll ich irgendwie diesen factor noch in der Rechnung berücksichtigen
Leute ?
Aber danke Dr sommer ,dass du noch dabei bist
Ich hab's aufgegeben. Ohne das geringste Verständnis deinerseits ist es
vergeblich. Durch das Servieren fertiger Lösungen lernst du auch nicht
wie man die Prüfung besteht.
Die Funktion heisst doch switchedOff(): switch ed! Dat deutet eher auf
eine Abfrage hin (wann wurde die Lampe ausgeschaltet) als auf einen
Aktion (schalte die Lampe aus).
Genau. Deswegen steht auch im Kommentar dass sie etwas festlegt und
deswegen hat die auch keinen Rückgabewert. Die ist einfach nur mies
benannt (Professoren können meist kein Englisch).
Kevin L. schrieb:> Besser?
Ich zitiere mich sehr gerne selbst:
Dr. Sommer schrieb:> Probier es doch einfach mal aus! Angenommen m_startTime ist 05:00 und> offTime ist 04:00. Wie lange ist die Lampe dann an? Was erhältst du bei> "-(m_startTime - offTime)" - also "-1 * (05:00-04:00)" - als Ergebnis?
Genau. Deswegen steht auch im Kommentar dass sie etwas festlegt und
deswegen hat die auch keinen Rückgabewert. Die ist einfach nur mies
benannt (Professoren können meist kein Englisch).
Hahah
Ich hatte die ganze Zeit gedacht ,dass ihr meintet ,dass man das bei
switchoffat implementieren sollte
void switchedOff()
{
if(m_startTime < offTime){
offTime = m_duration - m_startTime;
}
if(m_startTime >offTime){
offTime = -1*(m_duration - m_startTime);
}
}
Ich würde es eigentlich so machen ?
Bei switched off muss man doch die Ausschaltzeit berechnen ?
Kevin L. schrieb:> offTime = m_duration - m_startTime;Dr. Sommer schrieb:> Aber die gesamte Einschaltzeit willst du doch berechnen...Dr. Sommer schrieb:> Wieso änderst du den Parameter? Sollst du nicht m_duration errechnen?!
Kevin L. schrieb:> 8Uhr aus - 1 Uhr ein = 7 Uhr einschaltzeit>> Richtig ?
Nur für den 1. Fall. Was wenn um 8 Uhr ein und um 1 Uhr des nächsten
Tages aus?
void switchedOff()
{
if(m_startTime < offTime){
m_duration = offTime- m_startTime;
}
if(m_startTime >offTime){
m_duration = -1*(m_secsSinceMidnight -m_startTime);
}
}
Bin mir nicht sicher für den 2 Fall ?
void CDimmerLogEntry::switchedOff()
{
unsigned int offTime;
if(m_startTime < offTime){
m_duration = offTime- m_startTime;
}
if(m_startTime >offTime){
m_duration = -1*(-offTime +m_startTime)+24;
}
}
void CDimmerLogEntry::switchedOffAt(unsigned int offTime){
offTime = -1*(m_startTime-24);
Hätte man die Methoden nicht andersherum implementiert müssen ?
In der Aufgabe steht doch:
Insbesondere sollte z. B. die switchedOff-Methode einfach die
switchedOffAt-Methode mit der aktuellen Zeit aufrufen.)}
Würde so die beiden Methoden passen?
Bei switched off musste ich unsigned int offTime definieren ,da sonst
der Compiler(Eclipse Fehler angezeigt hat?
Kevin L. schrieb:> Oder ist meine Lösung wieder Katastrophe?
Ist sie.
Aufgabenstellung lesen, und so lange drüber nachdenken, bis du
verstanden hast, WAS die Funktion eigentlich machen soll. Das hat
überhaupt nichts mit C oder C++ oder programmieren zu tun, da geht es
schlicht um Textverständnis. Und da solltest du Wort für Wort vorgehen.
Wenn du dann das WAS komplett verstanden hast, kommt das WIE. Das ist
dann allerdings einfach.
Kevin L. schrieb:> /**> * Legt die Ausschaltzeit des Dimmers und damit die> * Einschaltdauer fest.> *> * offTime: die Ausschaltzeit als Sekunden seit Mitternacht.> * Ist der Wert kleiner als die Einschaltzeit, wird> * davon ausgegangen, dass der Dimmer am n�chsten> * Tag ausgeschaltet wurde (z.B. bedeutet bei einer> * Einschaltzeit 22:00:00 ein Ausschalten um 01:00:00> * dass der Dimmer 3 Stunden angeschaltet war).> */> void switchedOffAt(unsigned int offTime);
Oliver
Achso und wenn der Wert größer als die Einschaltzeit ist , soll man das
dann in switchoffAt implementieren ?
Ich sage ja auch nicht dass ich eine Lösung will , da ihr
erfahrungsgemäß die nicht gerne geben möchtet .
Ich wollte ja nur wissen was man bei der switchoffAt und was bei der
Switch off machen soll ?
Ich übe ja nur an der Aufgabe , muss sie ja nicht abgeben
Kevin schrieb:> Achso und wenn der Wert größer als die Einschaltzeit ist , soll man das> dann in switchoffAt implementieren ?
Nur wenn es Nachts kälter als draussen ist.
Lesen und verstehen ist macnhmal schwierig. Wobei zugegebenermaßen der
Aufgabensteller weder im Deutschen noch im Englischen Perfekt und Futur
auseinanderhalten kann.
Das ist wohl der eigentliche Lerneffekt der Übung: Herausfinden, was der
Kunde eigentlich wirklich will.
Oliver
HAHAH hast irgendwie Recht aber da wir hier beim üben sind kannst du mir
wenigsten sagen was die bei den beiden Methoden wollen ?
Sonst könnte ich ja noch weitere 100 Nachrichten schreiben
Ich hatte oben mal gefragt, welche HS und welches Semester.
Die HS hast Du (verständlicherweise) verschwiegen, aber Du bist im 2
Fachsemester.
Mich würde mal interessieren:
1) Ist das eine spezielle C++ Veranstaltung?
2) Welchen Umfang hat die (in ECTS oder SWS) in VL/Ü/S ?
3) Welche erste Programmiersprache habt ihr gelernet (Java?)
4) Habt Ihr schon so etwas wie OOA oder OOD gelernt? Oder findet das
gerade statt.
5) Wieviel Mathematik (ECTS/SWS) habt ihr bislang bzw. aktuell.
6) Ist der Unterricht in Deutsch oder Englisch?
Danke!
Und Du schreibst: " ... selbst die Tutoren wussten nicht weiter."
Dazu noch die Frage:
- Wollten oder konnten Sie nicht? Welchen Eindruck hattest Du?
- Wie groß in Teilnehmern sind Eure Übungs-/Pratika-Gruppen?
Bitte keine Angst: das soll nicht gegen Dich verwendet werden, ich
möchte einfach nur mal einen Eindruck gewinnen. Deswegen würde ich mich
über eine Antwort freuen.
Es gibt kaum Übungen .
Es werden nur PowerPoint Folien abgelesen .
Das ist die erste also Einführung in Programmierung .
Gerne würde ich mich auch für paar Hilfestellungen freuen ?
Danke
Kevin schrieb:> HAHAH hast irgendwie Recht aber da wir hier beim üben sind kannst du mir> wenigsten sagen was die bei den beiden Methoden wollen ?
Wir sind hier nicht beim üben, nur du. Also musst du da durch, nicht
wir.
Und eigentich ist die ganze Sache super einfach. Mit etwas überlegen
kommst du auch drauf.
Also probiers nochmal. Nicht irgend einen Code programmieren, sondern
erst einmal aufschreiben, was die beiden Funktionen genau machen sollen,
in deinen eigenen Worten.
Oliver
Kevin schrieb:> Es gibt kaum Übungen .> Es werden nur PowerPoint Folien abgelesen .>> Das ist die erste also Einführung in Programmierung .
Ok, im 2. Semester, "Einf. in die Programmierung"
Das kann also kein Informatikstudiengang sein, oder?
Meine Einschätzung:
Hochschule:
Einführungsveranstaltung für Nebenfachstudenten mit C++: schlecht,
schlechte Vorlesung (nur ppt), wenig Praktika, schlechte Tutoren.
Student:
Scheint nicht in der Lage, ein Kochrezept aufzuschreiben, wie "wenn x,
dann y".
Zwar hat die Hochschule ein schlechtes Konzept und eine katastrophale
Umsetzung, aber der Student ist leider nicht besser. Nun, das ist eine
üble Paarung.
Kevin: wir können/wollen/dürfen Dir nicht helfen. Besser scheiterst Du
jetzt im 2. Semester als später. Parallel solltest Du darüber
nachdenken, ob Deine Einstellung und Deine Voraussetzungen Dich zum
Studium überhaupt befähigen. Ggf. sattelst Du besser um auf eine
Ausbildung.
Kevin schrieb:> Schon harte Worte , dass man die Hilfe im Forum einfach verneint .
Vielleicht helfen Dir ja andere weiter hier, doch ich halte es nach den
obigen zahlreichen Posts für falsch.
Deine Ansprechpartner sind: Deine Lerngruppe, Deine Tutoren und Deine
Profs. In dieser Reihenfolge.
Kevin schrieb:> Schon harte Worte , dass man die Hilfe im Forum einfach verneint .
tatsächlich war es sehr gut erklärt und nicht einfach verneint. aber
jetzt mal mal ganz ehrlich: wenn da steht, die switchedoff-methode soll
die switchedoffat methode aufrufen und die kommentare auch noch so schön
sind...
> /**> * Legt die Ausschaltzeit des Dimmers und damit die> * Einschaltdauer fest.> ...> */> void switchedOffAt(unsigned int offTime);> /**> * Legt die aktuelle Zeit als Ausschaltzeitpunkt fest.> */> void switchedOff();
wo ist denn dann das problem, die switchedoff methode einfach nur ganz
doof die switchedoffat-methode mit der aktuellen zeit aufzurufen und in
der switchedoffat diese zeit zu loggen und ne dauer zu errechnen?
echt? der compiler sagt einfach nur "fehler"? meine compiler sagen mir
immer noch, was sie für falsch halten / was falsch ist. ist es
vielleicht das semikolon in der parameterliste des funktionsufrufs? und
wenn das weg ist - ist es dann der falsche datentyp? überlegt du
tatsächlich was du da tust oder schreibst du nur irgendwas hin?
Kevin L. schrieb:> m_duration = -1*(-offTime +m_startTime)+24;
Wunderschön. Und da bist du ganz ohne Hilfe drauf gekommen? Und war die
Zeitangabe nicht in Sekunden statt in Stunden? Hast du in der Schule
nicht die Grundregeln der Arithmetik gelernt (Distributivgesetz,
Assoziativgesetz, Kommutativgesetz) um das ein bisschen übersichtlicher
zu schreiben?
Oliver S. schrieb:> Also probiers nochmal. Nicht irgend einen Code programmieren, sondern> erst einmal aufschreiben, was die beiden Funktionen genau machen sollen,> in deinen eigenen Worten.
Gilt immer noch. Ansonsten bleibt alles, was du da als Code hinrotzt,
sinnloser Blödsinn.
Oliver
Oliver S. schrieb:> Oliver S. schrieb:>> Also probiers nochmal. Nicht irgend einen Code programmieren, sondern>> erst einmal aufschreiben, was die beiden Funktionen genau machen sollen,>> in deinen eigenen Worten.>> Gilt immer noch. Ansonsten bleibt alles, was du da als Code hinrotzt,> sinnloser Blödsinn
Oliver
Kevin L. schrieb:> void CDimmerLogEntry::switchedOff()> {>> unsigned int offTime;>> if(m_startTime < offTime){>> m_duration = offTime- m_startTime;> m_duration = m_duration/24;>> }> if(m_startTime >offTime){>> m_duration = -1*(-offTime +m_startTime)+3600;> m_duration = m_duration/24;>>> }>> }>
.
> void CDimmerLogEntry::switchedOffAt(unsigned int offTime){>> CTimeOfDay();> CDimmerLogEntry::switchedOff();> }>> In h umgerechnet jetzt ?>> Weiter irgendwie keine Ideen mehr?
Programmieren geht so, daß man ein großes Problem in mehrere kleine
zerlegt und am Ende mit kleinen Schritten löst.
Bei Verstehen von fremdem Code kann man umgekehrt vorgehen und kleine
Teile zu verstehen versuchen und dieses Verständnis dann auch
hinschreiben (Kommentar), bis sich ein "rundes"Gesammtbild ergibt.
BTW, Studium bedeutet vorgelegte Fakten auswendig aufsagen zu können,
sondern sich Techniken anzueignen, um bisher unbekanntes ergründen zu
können.
BTW2, was da passiert haben schon mehrere auf verschiedene Art
rüberzubringen versucht. Offenbar fruchtet aber nur die ausformulierte
Lösung.
Falsch ist ungefähr alles. Im Ganzen und auch im Detail.
Und solange du nicht mal willig bist, die Aufgabestellung zu verstehen,
wird das auch nicht besser.
Oliver
Kevin L. schrieb:> void CDimmerLogEntry::switchedOffAt(unsigned int offTime){>> CTimeOfDay();> CDimmerLogEntry::switchedOff();> }
die aufgabenstellung sagt, die switchedoff-method könne die
switchedoffat-methode aufrufen. was tust du da?
jetzt erst überlegen und dann die nächste zeile lesen:
du machst es genau andersrum.
schreibe doch erstmal als text auf, was DU DENKST, was da passieren
soll. in code kann man das ganze immernoch giessen
Kevin L. schrieb:> unsigned int offTime;>> if(m_startTime < offTime){>> m_duration = offTime- m_startTime;> m_duration = m_duration/24;>> }> if(m_startTime >offTime){>> m_duration = -1*(-offTime +m_startTime)+3600;> m_duration = m_duration/24;>> }
Also erstmal kann es sich durchaus in vielerlei hinsicht (eigenes und
fremdes Verständnis, Optimierung etc.) lohnen, auch mal ein "else" zu
verwenden.
Und dann stellt sich natürlich auch gleich mal die Frage:
Was ist denn, wenn m_startTime gleich offTime ist?
Dann definierst du da direkt über der Verwendung die Variable offTime,
weist ihr aber keinen Wert zu, ich bin jetzt kein C++ Programmierer,
aber sollte sowas nicht mindestens ne Compilerwarnung ausspucken?
Isoliere doch einfach mal das allernötigste, sprich:
Schreibe ausschliesslich die fragliche Methode (switchedOff) und dazu
eine main-Methode (sonst weiter nix) in der du eben alle nötigen
Parameter in allen erdenklichen Kombinationen durchexerzierst und
jedesmal dazu switchedOff aufrufst, und schaust, ob das Ergebnis zur
Aufgabe passt.
Dieses Ministück Code sollte natürlich fehlerfrei und compilierbar (!)
sein, wenn du es hier dann für weitere Fragen ablieferst.
Sven A. schrieb:> Kevin L. schrieb:>> void CDimmerLogEntry::switchedOffAt(unsigned int offTime){>>>> CTimeOfDay();>> CDimmerLogEntry::switchedOff();>> }>> die aufgabenstellung sagt, die switchedoff-method könne die> switchedoffat-methode aufrufen. was tust du da?
immer noch das selbe problem... und was erhoffst dud ir, bringt in der
3. zeile "CTimeofDay();"? was soll das bringen - also was hast du damit
vor und was macht es denn wirklich?
die andere methode habe ich mir nicht angeguckt
aber ich würde mal knallhart behaupten, du hast das ganze noch nichtmal
versucht irgendwie zu kompilieren -> "Of(m_startTime == offTime){"
Sven A. schrieb:> Sven A. schrieb:>> Kevin L. schrieb:>>> void CDimmerLogEntry::switchedOffAt(unsigned int offTime){>>>>>> CTimeOfDay();>>> CDimmerLogEntry::switchedOff();>>> }>>>> die aufgabenstellung sagt, die switchedoff-method könne die>> switchedoffat-methode aufrufen. was tust du da?>> immer noch das selbe problem... und was erhoffst dud ir, bringt in der> 3. zeile "CTimeofDay();"? was soll das bringen - also was hast du damit> vor und was macht es denn wirklich?>> die andere methode habe ich mir nicht angeguckt> aber ich würde mal knallhart behaupten, du hast das ganze noch nichtmal> versucht irgendwie zu kompilieren -> "Of(m_startTime == offTime){"
Er benutzt das Verfahren "Schiffe versenken". So wie jedes je
geschriebene Buch in Pi zu finden ist, muß das Durchpermutieren aller
Variablen und Schlüsselwort zur Lösung führen, oder nicht?
Schade, wenn man bei diesem Ansatz die richtige Lösung nicht erkennen
kann (warum nur?) und wieder andere fragen muß.
Carl D. schrieb:> Er benutzt das Verfahren "Schiffe versenken". So wie jedes je> geschriebene Buch in Pi zu finden ist, muß das Durchpermutieren aller> Variablen und Schlüsselwort zur Lösung führen, oder nicht?
Alles eine Frage der Zeit - wie bei den Affen, welche die Bibel
schreiben :-)
Dieter F. schrieb:> Carl D. schrieb:>> Er benutzt das Verfahren "Schiffe versenken". So wie jedes je>> geschriebene Buch in Pi zu finden ist, muß das Durchpermutieren aller>> Variablen und Schlüsselwort zur Lösung führen, oder nicht?>> Alles eine Frage der Zeit - wie bei den Affen, welche die Bibel> schreiben :-)
Auch die brauchen jemanden, der ihnen irgendwie die Zielerreichung
mitteilt.
Leider nicht .
Ich bin leider immer noch nicht auf die Lösung gekommen .
Hab es jetzt irgendwie aufgegeben .
Wenn jemand Lust hat kann er ja noch paar Tipps geben .
Ansonsten Danke