Ok così in un test di programmazione mi è stata data la seguente domanda.
Question 1 (1 mark)
Spot the potential bug in this section of code:
void Class::Update( float dt )
{
totalTime += dt;
if( totalTime == 3.0f )
{
// Do state change
m_State++;
}
}
Le risposte a scelta multipla per questa domanda erano.
a) It has a constant floating point number where it should have a named constant variable
b) It may not change state with only an equality test
c) You don't know what state you are changing to
d) The class is named poorly
Ho risposto erroneamente a questo con la risposta C.
Alla fine ho ricevuto un feedback sulle risposte e il feedback per questa domanda era
Correct answer is a. This is about understanding correct boundary conditions for tests. The other answers are arguably valid points, but do not indicate a potential bug in the code.
La mia domanda qui è, che cosa ha a che fare con le condizioni al contorno? La mia comprensione delle condizioni al contorno sta verificando che un valore rientri in un determinato intervallo, il che non è il caso in questo caso. Osservando la domanda, a mio parere, B dovrebbe essere la risposta corretta quando si considerano i problemi di accuratezza dell'utilizzo di valori in virgola mobile.