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.
Sito: 7ecnologie
Sezione: 08. C language
Capitolo: 05. Esercizi svolti
Paragrafo: 10. Funzioni
Indice dei capitoli: 00. Risorse - 01 Ambiente di sviluppo - 02. Introduzione al C - 03. Le librerie - 04. Tutorial - 05. Esercizi svolti - 98. Esercizi
Indice dei paragrafi: 01. printf e scanf - 02. Swap di variabili - 03. if - 04. Numeri pari - 05. if/else - 06. while - 07. Controllo dell'input - 08. for - 09. Operatore % - 10. Funzioni - 11. Tipo float - 12. Tipo char - 13. Stringhe - 14. File