Gegeven is de onderstaande functie die de som bepaald van de opeenvolgende gehele getallen p tot q, dus som = p+...+(q-1). Wat is er mis met deze functie?
int bepaalSom (int p, int q) {
int i, som;
som = 0;
i=p;
while (i != q) { 
som = som+i;
i=i+1;
}
return som;
}

    • De invoerwaarden p en q worden niet gecontroleerd. Als p>q, blijft het programma in een oneindige lus hangen
    • De som kan een te groot getal zijn, dat niet correct gerepresenteerd kan worden als integer. Stel dat we een systeem met 8-bits integers. Met p=10 en q=26, zou het wachtwoord 280 zij. Met 8 bits kunnen we echter maximaal 255 weergeven. er treedt een integeroverflow op en het resultaat is som=24

    Rapporteer Plaats commentaar