18.08.2013 Views

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

*<br />

* programma che legge i dati da tastiera,<br />

* ne effettua la somma e stampa sul video<br />

* del risultato<br />

*/<br />

#include <br />

int main()<br />

{<br />

int a, b, c;<br />

}<br />

printf("Scrivi due numeri interi\n");<br />

scanf("%d %d", &a, &b);<br />

c = a + b;<br />

printf("La loro somma e’ %d\n", c);<br />

return 0;<br />

Figura 4.1: Somma di due numeri letti da tastiera.<br />

Il semplice programma in Figura 4.1 e’ la versione un po’ piu’ raffinata del programma<br />

illustrato in Sezione 4.7, il quale legge due numeri da tastiera, li somma, e visualizza i risultati<br />

a video.<br />

La chiave della lettura da tastiera risiede nella funzionescanf. Nell’esempio, la funzionescanf<br />

accetta due numeri interi immessi da tastiera e separati da uno spazio 4 . Una volta immessi i<br />

dati e battuto il tasto INVIO, il valore numerico dei dati viene assegnato alle variabili a e b<br />

rispettivamente. Tali variabili possono essere successivamente utilizzate <strong>per</strong> l’elaborazione, che<br />

in questo semplice esempio consiste in una somma.<br />

Per il momento non ci soffermiamo sul modo in cui la scanf assegna il valore corretto alle<br />

variabili. L’unico aspetto importante e’ il significato della sequenza di caratteri %d, che indica<br />

<strong>alla</strong> scanf che i valori introdotti da tastiera sono numeri interi in notazione decimale, quindi<br />

non sono ne’ stringhe di caratteri, ne’ numeri a virgola mobile, ne’ interi in notazioni diverse da<br />

quella decimale 5 .<br />

NOTA Nella Sezione 15 si raccomanda di evitare la funzione scanf <strong>per</strong> l’input di<br />

dati, e viene proposto <strong>per</strong> questo scopo il metodo basato sulla funzione fgets<br />

(Sezione 12.6). Gli esempi presentati utilizzano lascanf viene fatto <strong>per</strong> motivi<br />

didattici, in quanto si ritiene che l’uso di fgets richieda dei concetti troppo<br />

avanzati <strong>per</strong> essere introdotti un questi primi esempi.<br />

4L’input viene acquisito correttamente anche se viene premuto il tasto INVIO anche dopo aver inserito il primo<br />

numero.<br />

5Puo’ essere interessante verificare cosa succede se, invece che due numeri interi, viene inserita <strong>per</strong> esempio<br />

una stringa di caratteri non numerici<br />

40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!