2016 – 2

È dato il seguente programma:

#include 
#include 
int main() 
{
  int    a, b, c, 
        delta;
  float x1, x2;
 
 a=2; 
 b=1; 
 c=-1; 
 delta=b*b-4*a*c;
 x1=(-b-sqrt(delta))/2;
 x2=(-b+sqrt(delta))/2;
 
 if(a*x1*x1+b*x1+c == 0)
    printf("La sol.1 e` corretta, ");
 else
    printf("La sol.1 e` sbagliata, ");
 if(a*x2*x2+b*x2+c==0)
    printf("la sol.2 e` corretta.\n");
 else
    printf("la sol.2 e` sbagliata.\n"); 
 return 0;
}

Cosa viene visualizzato a video dall’esecuzione di main()?

  1. La sol.1 è sbagliata, la sol.2 è sbagliata.
  2. La sol.1 è corretta, la sol.2 è sbagliata.
  3. La sol.1 è sbagliata, la sol.2 è corretta.
  4. La sol.1 è corretta, la sol.2 è corretta.

Soluzione: La sol.1 è sbagliata, la sol.2 è sbagliata.

Le espressioni per le soluzioni sono sbagliate e i controlli successivi danno esito negativo.

Se invece…

x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);