Forum: PC-Programmierung C++ Implementierungsproblem


von Kevin L. (Firma: keine) (book33)



Lesenswert?

Hallo alle zusammen habe gerade ein Problem bei dieser Aufgabe :

Ich verstehe gerade nicht was die bei der Switch Off Methode von mir 
wollen?
1
/*
2
 * CTimeStamp.h
3
 */
4
5
#ifndef CTIMEOFDAY_H_
6
#define CTIMEOFDAY_H_
7
8
#include <string>
9
#include<cmath>
10
11
class CTimeOfDay {
12
private:
13
  unsigned int m_secsSinceMidnight;
14
15
  /**
16
   * Hilfsmethode zum Konvertieren eines Ganzzahl-Wertes
17
   * in eine Zeichenkette.
18
   */
19
  std::string intToString(unsigned int value);
20
21
public:
22
  /**
23
   * Erzeugt eine neue Zeitangabe mit der aktuellen Uhrzeit.
24
   */
25
  CTimeOfDay();
26
27
  /**
28
   * Erzeugt eine neue Zeitangabe aus der Angabe der
29
   * seit Mitternacht vergangenen Sekunden.
30
   */
31
  CTimeOfDay(unsigned int secsSinceMidnight);
32
33
  /**
34
   * Erzeugt eine neue Zeitangabe aus der Angabe einer
35
   * Uhrzeit im 24-Stunden Format ("hh:mm:ss", mit hh=Stunden,
36
   * mm=Minuten und ss=Sekunden).
37
   */
38
  CTimeOfDay(std::string timeOfDay);
39
40
  /**
41
   * Liefert den durch diese Zeitangabe repr�sentierten
42
   * Zeitpunkt als Sekunden seit Mitternacht.
43
   */
44
  long getSecsSinceMidgnight();
45
46
  /**
47
   * Liefert den durch diese Zeitangabe repr�sentierten
48
   * Zeitpunkt im 24-Stunden Format ("hh:mm:ss", mit hh=Stunden,
49
   * mm=Minuten und ss=Sekunden).
50
   */
51
  std::string asTime();
52
  int operator-(CTimeOfDay rhs);
53
};
54
55
#endif /* CTIMEOFDAY_H_ */



1
/*
2
 * CTimeStamp.cpp
3
 */
4
5
#include "CTimeOfDay.h"
6
7
#include <stdio.h>
8
#include <cstring>
9
#include <time.h>
10
using namespace std;
11
12
CTimeOfDay::CTimeOfDay() {
13
    time_t rawtime;
14
    struct tm * timeinfo;
15
16
    time (&rawtime);
17
    timeinfo = localtime (&rawtime);
18
    m_secsSinceMidnight = timeinfo->tm_hour * 3600
19
        + timeinfo->tm_min * 60 + timeinfo->tm_sec;
20
}
21
22
CTimeOfDay::CTimeOfDay(unsigned int secsSinceMidnight) {
23
  m_secsSinceMidnight = secsSinceMidnight;
24
}
25
26
CTimeOfDay::CTimeOfDay(std::string timeOfDay) {
27
  unsigned int hours;
28
  unsigned int minutes;
29
  unsigned int seconds;
30
  sscanf(timeOfDay.c_str(), "%02u:%02u:%02u", &hours, &minutes, &seconds);
31
  m_secsSinceMidnight = hours * 3600 + minutes * 60 + seconds;
32
}
33
34
std::string CTimeOfDay::intToString(unsigned int value) {
35
  string result = "";
36
  do {
37
    result = (char)('0' + value % 10) + result;
38
    value /= 10;
39
  } while (value > 0);
40
  return result;
41
}
42
43
long CTimeOfDay::getSecsSinceMidgnight() {
44
  return m_secsSinceMidnight;
45
}
46
47
std::string CTimeOfDay::asTime() {
48
  unsigned int hours = m_secsSinceMidnight/3600;
49
    unsigned int minutes = m_secsSinceMidnight/60%60 ;
50
    unsigned int seconds = m_secsSinceMidnight%60;
51
  // Ersetzen Sie die nachfolgende Anweisung!
52
53
    string xhours;
54
    string xminutes;
55
    string xseconds;
56
    if(hours < 10) {
57
    xhours = "0"+intToString(hours);
58
    }
59
    else {
60
    xhours = intToString(hours);
61
    }
62
    if(minutes<10){
63
     xminutes = "0"+intToString(minutes);
64
    }
65
    else{
66
      xminutes = intToString(minutes);
67
68
    }
69
    if(seconds< 10){
70
     xseconds = "0"+intToString(seconds) ;
71
    }
72
    else{
73
      xseconds = intToString(seconds);
74
    }
75
76
77
    //string gesamt = "0"+intToString(hours)+intToString(minutes)+intToString(seconds);
78
    string gesamt = xhours+":"+xminutes+":"+xseconds;
79
    return gesamt;
80
}
81
82
int CTimeOfDay::operator-(CTimeOfDay rhs){
83
  unsigned int zeit;
84
85
  if(m_secsSinceMidnight < 0){
86
87
    zeit = m_secsSinceMidnight*-1;
88
89
90
  }
91
  zeit = m_secsSinceMidnight - rhs.m_secsSinceMidnight;
92
93
94
}

1
/*
2
 * CDimmerLogEntry.h
3
 */
4
5
#ifndef CDIMMERLOGENTRY_H_
6
#define CDIMMERLOGENTRY_H_
7
8
#include <iostream>
9
10
/**
11
 * Diese Klasse modelliert ein Einschalten des Dimmers zu einem
12
 * gegebenen Zeitpunkt, f�r eine bestimmte Dauer und mit einem
13
 * bestimmten Dimm-Faktor (ein Wert zwischen 0 (ausschlie�lich)
14
 * und 1 (einschlie�lich)).
15
 *
16
 * Um Speicherplatz zu sparen, werden der Einschaltzeitpunkt und
17
 * die Einschaltdauer mit Attributen vom Typ unsigned short
18
 * modelliert. Da deren Wertebereich nicht ganz ausreicht, um
19
 * alle Sekunden eines Tages zu rep�sentieren (24*60*60 > 2^16),
20
 * werden die Sekundenangaben f�r die Speicherung durch 2 geteilt
21
 * (und beim Auslesen der Werte wieder mit 2 multipliziert).
22
 * Die daduch entstehende Ungenauigkeit bei den Zeitangaben
23
 * ist im Rahmen der vorgesehenen Anwendungsf�lle akzeptabel.
24
 *
25
 * Auch der Dimm-Faktor soll effizient gespeichert werden. Der
26
 * als float �bergebene Wert zwischen 0 und 1 wird daher
27
 * f�r die Speicherung in einen unsigned short gewandelt.
28
 * Nutzen Sie den zur Verf�gung stehenden Wertebereich
29
 * vollst�ndig aus, d.h. speichern Sie den Faktor mit
30
 * m�glichst hoher Genauigkeit.
31
 */
32
class CDimmerLogEntry {
33
private:
34
  unsigned short m_startTime;
35
  unsigned short m_duration;
36
  unsigned short m_factor;
37
38
  /**
39
   * Setzt das Attribut m_factor nach entsprechender
40
   * Umrechnung des �bergebenen Wertes. Die Methode
41
   * wertet auch die Zusicherung (s.u.) aus.
42
   */
43
  void setFactor(float factor);
44
45
public:
46
  /**
47
   * Erzeugt einen neuen Log-Eintrag mit der angegebenen
48
   * Einschaltzeit, dem angegebenen Dimm-Faktor und einer
49
   * Einschaltdauer von 0.
50
   *
51
   * startTime: die Einschaltzeit als Sekunden seit Mitternacht.
52
   *            Der Wert muss kleiner sein als die Anzahl
53
   *            Sekunden eines Tages. Ist das nicht der Fall,
54
   *            wird statt dessen der Maximalwert (sp�test
55
   *            m�glicher Einschaltzeitpunkt an einem Tag)
56
   *            genommen.
57
   *
58
   * factor:    der Dimm-Faktor. Der Wert muss gr��er 0 und
59
   *            kleiner gleich 1 sein. Verletzt der angegebene
60
   *            Wert diese Bedingung, wird der Wert 1 genommen.
61
   */
62
  CDimmerLogEntry(unsigned int startTime, float factor = 0.5);
63
64
  /**
65
   * Erzeugt einen neuen Log-Eintrag mit der aktuellen Zeit
66
   * als Einschaltzeit, dem angegebenen Dimm-Faktor und einer
67
   * Einschaltdauer von 0.
68
   *
69
   * factor:    der Dimm-Faktor. Der Wert muss gr��er 0 und
70
   *            kleiner gleich 1 sein. Verletzt der angegebene
71
   *            Wert diese Bedingung, wird der Wert 1 genommen.
72
   */
73
  CDimmerLogEntry(float factor = 0.5);
74
75
  /**
76
   * Legt die Ausschaltzeit des Dimmers und damit die
77
   * Einschaltdauer fest.
78
   *
79
   * offTime:   die Ausschaltzeit als Sekunden seit Mitternacht.
80
   *            Ist der Wert kleiner als die Einschaltzeit, wird
81
   *            davon ausgegangen, dass der Dimmer am n�chsten
82
   *            Tag ausgeschaltet wurde (z.B. bedeutet bei einer
83
   *            Einschaltzeit 22:00:00 ein Ausschalten um 01:00:00
84
   *            dass der Dimmer 3 Stunden angeschaltet war).
85
   */
86
  void switchedOffAt(unsigned int offTime);
87
88
  /**
89
   * Legt die aktuelle Zeit als Ausschaltzeitpunkt fest.
90
   */
91
  void switchedOff();
92
93
  /**
94
   * Liefert den Einschaltzeitpunkt.
95
   */
96
  unsigned int getStartTime() const;
97
98
  /**
99
   * Liefert die Einschaltdauer.
100
   */
101
  unsigned int getDuration() const;
102
103
  /**
104
   * Liefert den Dimm-Faktor.
105
   */
106
  float getFactor() const;
107
108
};
109
110
#endif /* CDIMMERLOGENTRY_H_ */

1
/*
2
 * CDimmerLogEntry.cpp
3
 *
4
 *
5
 *  Created on: 22.05.2018
6
 *      Author: macbook
7
 */
8
9
#include "CTimeOfDay.h"
10
#include "CDimmerLogEntry.h"
11
#include <stdio.h>
12
#include <cstring>
13
#include <time.h>
14
using namespace std;
15
16
void CDimmerLogEntry::setFactor(float factor){
17
18
  m_factor = factor;
19
}
20
21
CDimmerLogEntry::CDimmerLogEntry(unsigned int startTime, float factor ){
22
23
  if(m_factor >= 0 && m_factor<= 1){
24
25
    setFactor(factor);
26
  }
27
  else{
28
29
    setFactor(1);
30
  }
31
32
  if(startTime > 86400) {
33
    
34
    m_startTime = 86400;
35
  } else {
36
    m_startTime = startTime/2;
37
  }
38
}
39
40
unsigned int CDimmerLogEntry::getStartTime() const {
41
  return m_startTime*2;
42
}
43
44
unsigned int CDimmerLogEntry::getDuration() const {
45
  return m_duration*2;
46
}
47
48
float CDimmerLogEntry::getFactor() const {
49
  return m_factor;
50
}


Hat jemand eine Idee wie ich die switch off Methoden implementieren 
kann?

von Wilhelm M. (wimalopaan)


Lesenswert?

Welche Hochschule, welches Semester?

von Oliver S. (oliverso)


Lesenswert?

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

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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

von Dr. Sommer (Gast)


Lesenswert?

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. 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.

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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

von Dr. Sommer (Gast)


Lesenswert?

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.

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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 ?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

Irgendjemand noch da ?
Oder war die frage so doof?

von Dr. Sommer (Gast)


Lesenswert?

Kevin L. schrieb:
> Oder war die frage so doof?

Ziemlich. Nimm eine Analoge Uhr, dreh an den Zeigern und zähl die 
Stunden...

von Kevin L. (Firma: keine) (book33)


Lesenswert?

24 h - startzeit oder ?

Oder auch dumm?

von Carl D. (jcw2)


Lesenswert?

12:00 ein ... 20:00 aus -> 8h
20:00 ein ... 12:00 aus -> -8h (wegen -) + 24h -> 16h

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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?

von Rolf M. (rmagnus)


Lesenswert?

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.

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

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.

von Carl D. (jcw2)


Lesenswert?

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 ;-)

von Kevin (Gast)


Lesenswert?

if(m_startTime < offTime){
m_duratiom = offTime - m_startTime;
}

if(m_startTime > offTime){
offTime = m_duration -m_startTime;
}

Bei der 2ten Bedingung nich sicher ?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

ANsatz richtig ?

von Dr. Sommer (Gast)


Lesenswert?

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?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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

von Dr. Sommer (Gast)


Lesenswert?

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?

von KevinLL (Gast)


Lesenswert?

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

von Dr. Sommer (Gast)


Lesenswert?

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?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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

von Dr. Sommer (Gast)


Lesenswert?

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...

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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

: Bearbeitet durch User
von Kevin L. (Firma: keine) (book33)


Lesenswert?

Dr sommer noch da ? Oder bist du auch weg ?

von Dr. Sommer (Gast)


Lesenswert?

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.

von Eric B. (beric)


Lesenswert?

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).

von Dr. Sommer (Gast)


Lesenswert?

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).

von Kevin L. (Firma: keine) (book33)


Lesenswert?

void switchedOff()
{


if(m_startTime < offTime){

m_duration = m_startTime - offTime;

}
if(m_startTime >offTime){

m_duration = -1*(m_startTime - offTime);

}

}


Besser?

von Dr. Sommer (Gast)


Lesenswert?

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?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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 ?

von Dr. Sommer (Gast)


Lesenswert?

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?!

von Kevin L. (Firma: keine) (book33)


Lesenswert?

oh nein .
Verzweifle langsam.
Gut jetzt ist mir wenigstens klar das duration gefragt ist :


Ich glaube jetzt habe ich es wirklich :

void switchedOff()
{


if(m_startTime < offTime){

 m_duration = offTime- m_startTime;

}
if(m_startTime >offTime){

m_duration = -1*(offTime -m_startTime);


}

}

Passt oder ?

8Uhr aus - 1 Uhr ein = 7 Uhr einschaltzeit

Richtig ?

von Dr. Sommer (Gast)


Lesenswert?

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?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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 ?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

Oder jetzt wieder falsch?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

void switchedOff()
{


if(m_startTime < offTime){

 m_duration = offTime- m_startTime;

}
if(m_startTime >offTime){

m_duration = -1*(-offTime +m_startTime)+24;


}

}


Jetzt ok?

: Bearbeitet durch User
von Kevin L. (Firma: keine) (book33)


Lesenswert?

Oder immer noch Fehler?

von Dr. Sommer (Gast)


Lesenswert?

Was spricht gegen Ausprobieren?

von Kevin (Gast)


Lesenswert?

Nach dem Ausprobieren stimmt es .

Was mache ich jetzt mit der switchoffAt?
Was wollen die dort ?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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?

: Bearbeitet durch User
von Kevin L. (Firma: keine) (book33)


Lesenswert?

Noch jemand on?

Oder ist meine Lösung wieder Katastrophe?

von Kevin (Gast)


Lesenswert?

Jemand da ?

von Oliver S. (oliverso)


Lesenswert?

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

von Kevin (Gast)


Lesenswert?

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

von Oliver S. (oliverso)


Lesenswert?

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

von Kevin (Gast)


Lesenswert?

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

von Wilhelm M. (wimalopaan)


Lesenswert?

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!

von Dr. Sommer (Gast)


Lesenswert?

Und: Welches Studienfach ist es? Informatik sollte man mit dem 
Abstraktionsvermögen, Text-und Zahlenverständnis nicht studieren...

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Kevin (Gast)


Lesenswert?

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

von Kevin (Gast)


Lesenswert?

Jungs seid ihr noch da ?

Will die Methode endlich fertig haben .

von Oliver S. (oliverso)


Lesenswert?

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

von Istdochso (Gast)


Lesenswert?

60€/h schreib ich dir was du möchtest

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

: Bearbeitet durch User
von Kevin (Gast)


Lesenswert?

Schon harte Worte , dass man die Hilfe im Forum einfach verneint .

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Sven K. (quotschmacher)


Lesenswert?

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?

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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){


   CDimmerLogEntry::switchedOff(CTimeOfDay::asTime();); Fehler leider
}

Beitrag #5447220 wurde vom Autor gelöscht.
von Sven K. (quotschmacher)


Lesenswert?

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?

von Dr. Sommer (Gast)


Lesenswert?

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?

von Sven K. (quotschmacher)


Lesenswert?

gibt doch sogar schon "int operator-(CTimeOfDay rhs);" als fertgen 
operator...

von Oliver S. (oliverso)


Lesenswert?

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

von Kevin L. (Firma: keine) (book33)


Lesenswert?

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?

von Oliver S. (oliverso)


Lesenswert?

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

von Kevin L. (Firma: keine) (book33)


Lesenswert?

Das frage ich doch schon seit 100 nachrichten was bei den Methoden 
gemacht werden soll?

Daher hatte ich die frage auch im Forum gepostet

von Carl D. (jcw2)


Lesenswert?

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.

: Bearbeitet durch User
von Kevin (Gast)


Lesenswert?

Ja aber was ist an meinem Ansatz richtig oder was falsch ?

Oder wenigstens paar Tipps geben ?
Meine Ansätze habe ich doch gepostet

von Oliver S. (oliverso)


Lesenswert?

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

von Sven K. (quotschmacher)


Lesenswert?

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

von bla (Gast)


Lesenswert?

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.

von Kevin (Gast)


Lesenswert?

void CDimmerLogEntry::switchedOff()
{
CTimeofDay();
CDimmerLogEntry::switchedoffAt();

}

Bei der 2 Methode :

void CDimmerLogEntry::switchedOffAt()
{

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;
}
Of(m_startTime == offTime){

cout << m_startTime << endl;


}

Was sagt ihr hierzu ?

von Kevin (Gast)


Lesenswert?

void CDimmerLogEntry::switchedOff()
{
CTimeofDay();
CDimmerLogEntry::switchedoffAt();
}
Bei der 2 Methode :
void CDimmerLogEntry::switchedOffAt(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;
}
Of(m_startTime == offTime){
cout << m_startTime << endl;
}
Was sagt ihr hierzu ?

von Kevin (Gast)


Lesenswert?

void CDimmerLogEntry::switchedOff()
{
CTimeofDay();
CDimmerLogEntry::switchedoffAt();
}
Bei der 2 Methode :
void CDimmerLogEntry::switchedOffAt(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;
}
Of(m_startTime == offTime){
cout << m_startTime << endl;
}
Was sagt ihr hierzu ?

Habe den obigen Teil nochmal korrigiert

von Sven K. (quotschmacher)


Lesenswert?

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){"

: Bearbeitet durch User
von Carl D. (jcw2)


Lesenswert?

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ß.

von Dieter F. (Gast)


Lesenswert?

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

von Carl D. (jcw2)


Lesenswert?

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.

von Dieter F. (Gast)


Lesenswert?

Carl D. schrieb:
> Auch die brauchen jemanden, der ihnen irgendwie die Zielerreichung
> mitteilt.

Bei Jahr-Millionen  -Milliarden  ... ist das relativ :-)

von Sven K. (quotschmacher)


Lesenswert?

und? gibt's hier jetzt schon was neues?

von Kevin (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.