[C++] Zabezpieczenie programowe?


(Jedras121) #1

Witam. Mam takie przekładowe pytanie z egzaminu

Pokaż, jak programowo można zabezpieczyć się przed przekroczeniem zakresu liczb całkowitych podczas

wykonywania obliczeń dla poniższych instrukcji:

//...

#include 

int a, b;

scanf(”%d”, &a);

b=pow(a,5);

printf(”liczba wejsciowa podniesiona do potegi piatej ”);

printf(”daje w wyniku %d”, b);

//...

i nie do końca rozumiem co znaczy zabezpieczenie programowe.

Czy chodzi o zwykłego if-a co wydaje mi się najbardziej prawdopodobne czy o zupełnie innego?


(Marcin 110) #2

Może taki warunek?

(a <= pow(std::numeric_limits::max(), 1.0 / 5.0))

Wymaga nagłówka


(Jedras121) #3

a jeżeli rzucę wyjątek, to czy to też będzie zabezpieczenie programowe?


(Marcin 110) #4

Chyba tak. Ważne, żebyś nie doprowadził to potęgowania w przypadku, w którym wiesz, że nie wyjdzie. Jak to załatwisz (wyjątek, wcześniejszy powrót z main, upomnienie), to już Twój wybór.