Variable für bestimmte Zeit [s] auf 1 setzen
-
SPaap schrieb:
Das Programm soll aber während den 3 sek. weiterlaufen....
wenn das unbedingt so sein soll, dann kannst du nur threads nehmen
aber ich nehm an, dass das für den anfang zu schwer wirdoder nicht ??
-
Was spricht denn gegen die Sleep-Variante? Die Zeit,wieviel Sec gewartet werden soll, ist doch dynamisch anpassbar.
-
Firefighter schrieb:
Was spricht denn gegen die Sleep-Variante? Die Zeit,wieviel Sec gewartet werden soll, ist doch dynamisch anpassbar.
Das Programm schläft aber dann statisch während der Zeit, anstatt das es weiterläuft
-
Stimmt. Das wäre nicht Sinn der Sache, ok dann ist meine Slepp-Variante nicht das passende.
-
Das Programm schläft aber dann statisch während der Zeit, anstatt das es weiterläuft
so ist es
-
gib uns am besten mal die aufgabe...
so ist das etwas schwer zu sagenund naja for und while die kann man beide in einadner umwandeln
for als while:
// for(int i = 0; i <= 10; ++i) int i = 0; while ( i <= 10 ) ++i;
while als for
//while ( a < 5 ) for( ; a < 5 ; )
wobei man sich als lehrer da etwas verarscht vorkommen könnte xD
-
SPaap schrieb:
Leider gibt es folgende Einschränkung:
Ich darf keine while Scleifen nehmen...nur if und for sind "erlaubt"Na dann nimm doch for anstatt while:
while (t2 < time(0)) { ... } for (;t2 < time(0);) { ... }
-
Skym0sh0 schrieb:
wobei man sich als lehrer da etwas verarscht vorkommen könnte xD
der Lehrer der sowas aufgibt, hat's ja auch net anders verdient
-
int i = 1;
void testfunktion(clock_t begin)
{
if(clock() - begin > 3 Sekunden)
i = 0;
}int main()
{
clock_t begin = clock();
for(...)
{
testfunktion(begin);
if(i == 0);
break;
normaler Programmlauf ...
}weiter im Text ...
}
Wenn der normale Programmlauf nicht in der for-Schleife abbildbar ist, bleibt wohl nur ein zweiter Thread, der nach Zeitablauf die Variable manipuliert.
-
Warum nicht sowas? Keine Ahnung ob clock() jetzt die korrekte Funktion dafür ist aber etwas in der Art ist doch am simpelsten.
template <typename T> class TimedVar{ public: TimedVar(T start, T end, double dur) : startValue(start), endValue(end), duration(dur){ startTime = clock(); } T get(){ return (clock() >= duration + startTime ? endValue : startValue; } private: T startValue, endValue; double startTime, duration };