Esercizio C++

di il
7 risposte

Esercizio C++

Salve a tutti, ho un problema con la risoluzione di un esercizio c++:

Si scriva quali sono i valori di x, di y e di z che stamperà in uscita il seguente programma C++:

int test (int a, int b)
{
while (b<a)
{
b+= a * 2;
b-= 3;
}
a/= 2;
return (a - 10);
}


int main()
{
int x = 80, y = 10;
int z = test (test (x, y), test (y, x));
cout << x << " " << y << " ";
cout << z << endl;
return 0;
}

7 Risposte

  • Re: Esercizio C++

    Correggi gli errori prima.
  • Re: Esercizio C++

    skynet ha scritto:


    Correggi gli errori prima.
    A parte un paio di ";" che mi ero dimenticato, non ci sono errori. L'ho riportato esattamente come scritto sulla fotocopia datami dal professore di informatica.
  • Re: Esercizio C++

    Mancano anche i header per essere un programma completo.
    Se ti dico gli risultati cosa ricavi? Cmq sono: 80,10 e 5.
    Credo che il prof vorrebbe che i calcoli tu li faccessi a mano con carta e penna, col PC è troppo facile.
  • Re: Esercizio C++

    skynet ha scritto:


    Mancano anche i header per essere un programma completo.
    Se ti dico gli risultati cosa ricavi? Cmq sono: 80,10 e 5.
    Credo che il prof vorrebbe che i calcoli tu li faccessi a mano con carta e penna, col PC è troppo facile.

    i risultati li ho ottenuti anche io compilandolo al pc, ma il problema è che non riesco proprio a capire come farlo senza, ovvero facendo i calcoli!
  • Re: Esercizio C++

    Come si fa a spiegarti delle cose che dovresti fare con carta e penna? Ti faccio un video?
    test(x,y) significa test(80,10) = 30

    test(y,x) significa test(10,80) = -5

    test (test (x, y), test (y, x)) significa: test (test (80, 10), test (10, 80)) = test(30,-5) = 5

    Lo svolgimento lo devi fare tu però.
  • Re: Esercizio C++

    Guarda il codice:
    
    int test (int a, int b)
    {
    while (b<a)
    {
    b+= a * 2;
    b-= 3;
    }
    a/= 2;
    return (a - 10);
    } 
    
    Per il tuo risultato te ne frega qualcosa di cosa succede col b? Assolutamente no in quanto ciò che tu ritorni dipende solo da a. Quindi il codice si può semplificare così:
    
    int test (int a, int b)
    {
    a/= 2;
    return (a - 10);
    } 
    
    In sostanza tu ricevi (il primo parametro dimezzato) - 10;
    Credo che a mano riesci a fare ciò.
  • Re: Esercizio C++

    Grazie Mille
Devi accedere o registrarti per scrivere nel forum
7 risposte