10. Funzioni

Esercizio

Definire la funzione

int a_somma(int n, int m)

che restituisce il valore assoluto della somma dei parametri n, m (cioè di |n+m|)

Scrivere un programma per verificare il corretto comportamento della funzione.

Svolgimento


#include <stdio.h>

#include <stdlib.h>

int a_somma(int n, int m)

{

int somma;

somma=n+m;

if (somma<0)

somma=-somma;

return somma;

}

int main()

{

int a, b, somma;

a=-5;

b=6;

somma=a_somma(a,b);

printf("Valore atteso: 1\nValore calcolato: %d\n\n", somma);

a=5;

b=6;

somma=a_somma(a,b);

printf("Valore atteso: 11\nValore calcolato: %d\n\n", somma);

a=-5;

b=-6;

somma=a_somma(a,b);

printf("Valore atteso: 11\nValore calcolato: %d\n\n", somma);

a=-5;

b=0;

somma=a_somma(a,b);

printf("Valore atteso: 5\nValore calcolato: %d\n", somma);

return 0;

}

Esecuzione


Valore atteso: 1

Valore calcolato: 1

Valore atteso: 11

Valore calcolato: 11

Valore atteso: 11

Valore calcolato: 11

Valore atteso: 5

Valore calcolato: 5


Commento

Prestare attenzione all'allineamento del programma (il termine corretto è indentazione), cioè agli spazi inseriti prima delle istruzioni per rendere più leggibile il programma.

Per effettuare la verifica di corretto funzionamento della funzione è opportuno scrivere un main che includa in modo statico i valori su cui effettuare il test, senza ricorrere alla funzione scanf().

In corrispondenza di ogni invocazione specificare qual è il valore atteso.


────══════♦☆♦══════────


Esercizio

Definire la funzione

int p_somma(int n)

che opera nel seguente modo:

  • se n è un numero negativo, restituisce -1

  • se n>=0, effettua la somma di tutti i numeri pari compresi nell'intervallo [0; n]

Scrivere un programma per verificare il corretto comportamento della funzione.


Svolgimento


#include <stdio.h>

#include <stdlib.h>

int p_somma(int n)

{

int somma, i;

if (n<0)

return -1;

somma=0;

i=0;

while (i<=n){

if (i/2*2==i)

somma+=i;

i++;

}

return somma;

}

int main()

{

int n, somma;

n=-5;

somma=p_somma(n);

printf("Valore atteso: -1\nValore calcolato: %d\n\n", somma);

n=5;

somma=p_somma(n);

printf("Valore atteso: 6\nValore calcolato: %d\n\n", somma);

n=6;

somma=p_somma(n);

printf("Valore atteso: 12\nValore calcolato: %d\n\n", somma);

n=0;

somma=p_somma(n);

printf("Valore atteso: 0\nValore calcolato: %d\n", somma);

return 0;

}

Esecuzione


Valore atteso: -1

Valore calcolato: -1

Valore atteso: 6

Valore calcolato: 6

Valore atteso: 12

Valore calcolato: 12

Valore atteso: 0

Valore calcolato: 0

Commento

Prestare attenzione all'allineamento del programma (il termine corretto è indentazione), cioè agli spazi inseriti prima delle istruzioni per rendere più leggibile il programma.

Per effettuare la verifica di corretto funzionamento della funzione è opportuno scrivere un main che includa in modo statico i valori su cui effettuare il test, senza ricorrere alla funzione scanf().

In corrispondenza di ogni invocazione specificare qual è il valore atteso.