Guida al Ruby: Variabili e conversioni

di | 8 Giugno 2015

Schermata del 2015-06-08 14:34:53Benvenuti in questa nuova puntata della Guida al Ruby, un linguaggio semplice da imparare e potente. Oggi parleremo delle variabili e delle conversioni tra formati.

Le variabili sono dei contenitori dove si possono salvare stringhe (come ‘ciao’, ‘bello’ o ‘5’), numeri (4 , 3.5 )  o anche valori vero/falso.

Per esempio

a = "ciao"

oppure a = gets.chompIl primo codice stabilisce che a è uguale a “ciao”, il secondo all’input dell’utente privato dell’invio finale. Ad esempio vi allego un programma che prende il nome dell’utente e lo saluta:

nome = gets.chomp
puts "Ciao " + nome + ", hai un bellissimo nome!"

E adesso proviamo a fare addizioni con un numero scelto dall’utente e il 5:

puts "inserisci un numero da aggiungere a 5"
b = gets.chomp
c = 5 + b
puts c

Eseguiamolo. Il Ruby ci risponderà con:
a.rb:3:in `+': String can't be coerced into Fixnum (TypeError)
from a.rb:3:in `<main>'

Errore! Infatti gets prende dall’utente stringhe, non numeri. Per il Ruby questa addizione equivale a sommare 5 a “gallina”, per intenderci. E come fare allora? Convertiamo la stringa in un intero con .to_i

puts "inserisci un numero da aggiungere a 5"
b = gets.chomp
c = 5 + b.to_i
puts c

Ecco, ora funziona. Il Ruby può finalmente esporci una addizione tra numeri. Comunque la b rimane ancora ‘5’, questi metodi non modificano la variabile. Se volete prendere direttamente numeri potete usare questo codice:

puts "inserisci un numero da aggiungere a 5"
b = gets.chomp.to_i
c = 5 + b
puts c

Questa conversione, se applicata ad un decimale, lo arrotonda sempre per difetto. Ad esempio 9.99999999 sarà 9, non 10.

Esistono altre conversioni, vediamone alcune:

Numero decimale
Se volete ottenere un decimale da un intero o una stringa potete usare .to_f

puts "inserisci un numero da aggiungere a 5"
b = gets.chomp.to_f
c = 5 + b
puts c

Stringa
Questo è ciò che fa puts prima di stampare a monitor ciò che non è una stringa

puts "questa e' la lezione numero " + 3.to_s

Senza il to_s non funzionerebbe.

Ci vediamo alla prossima 🙂

ESERCIZI:

1) Crea un programma che, preso un numero, lo sommi a 10, lo moltiplichi per se stesso e ne mostri la versione decimale
2) Crea un programma che saluta l’utente scrivendo tante volte il suo nome
3) Crea un software che faccia le proporzioni (quelle in stile a : b = x : d) e che dia un risultato decimale.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.