Walter Mulas 1 Numeri Interi e calcolo della Somma INTRODUZIONE DEI NUMERI INTERI NELL’INFORMATICA E NEL RUBY Walter Mulas In Informatica, è possibile rappresentare i valori numerici (ovviamente il calcolatore li leggerà in binario mentre noi in caratteri che conosciamo naturalmente). I numeri non servono solamente a essere stampati, ma anche per eseguire dei calcoli matematici. Infatti, il Ruby ha delle librerie specifiche per i calcoli numerici. La cosa importante da sapere è che non bisogna mai confondere i numeri del calcolatore con quelli della matematica! Semplicemente per il fatto che il calcolatore ha una capacità di memoria limitata, quindi è impossibile rappresentare tutti i numeri della matematica, dato che sono infiniti! In queste diapositive rappresenteremo i numeri Interi e qualche operazione di somma. Useremo due ambienti lavorativi indipendenti tra di loro: Interactive Ruby (ambientato nel sistema operativo MS-DOS) e NetBeans 6.5 (piattaforma dove si possono creare programmi con linguaggi di programmazioni differenti). 2 I NUMERI INTERI CON RUBY • Walter Mulas • Nel linguaggio Ruby, la classe degli Interi si divide in due sottoclassi: Fixnum, insieme dei valori Interi che sono rappresentati da un numero fisso di bit (16 bit o 32 bit) Bignum, insieme dei valori Interi che non hanno limitazione sul numero di bit (la definizione è valida solo se il calcolatore ha una certa capacità di memoria libera). Per conoscere la classe di appartenenza di un numero Intero usiamo il metodo class 3 CLASSI DI APPARTENENZA DEGLI INTERI Walter Mulas Esempio: 32.class 12345678901234567890.class 4 SOMMA CON GLI INTERI Walter Mulas In queste diapositive vedremo alcuni esempi di rappresentazioni dei numeri Interi: Esempio della somma di due numeri: 2+7=9 Nell’ambiente Interactive Ruby: E digitando ‘Invio’ dopo aver scritto l’operazione che vogliamo fare, l’applicazione ci restituisce il risultato: 5 OSSERVAZIONE Walter Mulas Come avete visto, nell’Interactive Ruby bastava scrivere 2+7 per fare 9. E’ come se avessimo scritto implicitamente nella codificazione in linguaggio Ruby: puts 2+7. Secondo l’autore, l’Interactive Ruby è utile solamente per verificare se alcune istruzioni che noi codifichiamo hanno esito positivo dal punto di vista semantico e/o della sintassi, senza vincoli di programmazione (in poche parole, per perderci un po’ di tempo). Nelle prossime diapositive, svilupperemo invece un programma che svolge il calcolo della somma tra due numeri Interi nell’ambiente di lavoro Netbeans 6.5 6 CALCOLO DELLA SOMMA NELL’AMBIENTE NETBEANS Dopo aver creato il file, andiamo a codificare il programma. Useremo i metodi ‘gets’ e ‘puts’ per l’input e per la stampa degli Interi. 7 Walter Mulas IMPORTANTE: Il metodo ‘gets’ permette solamente l’inserimento dalla tastiera di un valore di tipo String. E’ possibile comunque convertire un carattere numerico in un valore Int (se il carattere della stringa non è alfabetico, il programma restituisce un valore numerico uguale a 0). Osserveremo in questa immagine il corpo del codice con il metodi di conversione da un valore di tipo String in un valore Int. DOPO AVER SCRITTO IL CODICE MANDIAMOLO IN ESECUZIONE IL PROGRAMMA.. Walter Mulas 8 OSSERVAZIONE Walter Mulas Come abbiamo visto, il programma ha eseguito correttamente il calcolo della somma. Il programma ha implicitamente convertito i nostri valori numeri dal tipo String in Int, permettendo di calcolarci la somma. Il metodo di conversione all’interno del nostro programma è il “gets.to_i”. Questo metodo, oltre a restituire al programma un valore dalla tastiera, lo converte in Int. Come esso, esistono altri simili metodi di conversione. Nella prossima diapositiva vedremo invece cosa succederà se inseriamo un carattere alfabetico invece di un carattere numerico in input durante l’esecuzione. 9 ESECUZIONE CON INSERIMENTO DI UN VALORE ALFABETICO… Inseriamo nel secondo addendo ‘f’: Walter Mulas E calcoliamo la somma: 10 OSSERVAZIONE Walter Mulas Il metodo di conversione non riesce a convertire un carattere non numerico. Quindi il programma restituirà un valore nel secondo addendo pari a 0. La somma è rappresentata quindi come 2+0=2. Stesso risultato vale anche se la stringa ha come valore un insieme di caratteri sia numerici che alfabetici. Esempio: “k” 0 “k123” 0 11 CONCLUSIONE Walter Mulas In questo file, abbiamo visto come si calcolano i valori numeri di tipo Int. Ma si possono fare per valori diversi da Int, come i Float (numeri che comprendono i decimali es: 1.23) con diverse operazioni matematiche come la differenza (che è inclusa comunque nel calcolo della somma quando si inseriscono valori negativi in input), la moltiplicazione e la divisione. Esercitatevi prima con Interactive Ruby per prendere confidenza con le operazioni (si può fare anche col NetBeans) e poi successivamente scrivere un programma che svolge calcoli matematici. Buon lavoro!!! 12