Monthly Archives: November 2016

I numeri in Ruby

Guida alla programmazione con Ruby

Ogni numero in Ruby rappresenta un oggetto, o più precisamente un’istanza di una delle classi numeriche di Ruby; a tal proposito la classe Numeric rappresenta la classe di base  per i numeri. In essa è possibile individuare poi la classe Fixnum che viene utilizzata per rappresentare i numeri interi di lunghezza fissa, che occupano un numero di bit non superiore a quello nativo relativo alla macchina in uso (ad esempio 32 bit per una macchina a 32 bit).

La classe Bignum viene utilizzata per rappresentare i numeri interi più grandi di quelli che possono essere contenuti nella classe Fixnum. Risulta opportuno precisare che la transizione tra le due classi avviene in modo del tutto automatico e cioè l’interprete Ruby, in base alle dimensioni del numero da rappresentare associa lo stesso alla classe opportuna.

Per comprendere meglio il significato di quanto detto analizziamo nel dettaglio un esempio; in particolare utilizzeremo un ciclo per moltiplicare un numero a se stesso in modo tale da aumentare progressivamente le dimensioni del numero, contestualmente poi stamperemo la classe con cui il numero viene rappresentato. Per fare questo utilizzeremo il codice seguente:

num = 2
for i in 1..8
   print i, “ “, num.class, " ", num, "\n"
   num *= num
end

dove il simbolo *= viene utilizzato appunto per moltiplicare il numero a se stesso ed assegnarli il risultato. Per visualizzare in tempo reale i risultati forniti dall’interprete ci serviremo del software irb che ci fornisce, come precedentemente già introdotto, una consolle interattiva dove digitare codice Ruby e vedere immediatamente i risultati.

irb(main):001:0> num = 2
=> 2
irb(main):002:0> for i in 1..8
irb(main):003:1> print i, " ", num.class, " ", num, "\n"
irb(main):004:1> num *= num
irb(main):005:1> end
1 Fixnum 2
2 Fixnum 4
3 Fixnum 16
4 Fixnum 256
5 Fixnum 65536
6 Bignum 4294967296
7 Bignum 18446744073709551616
8 Bignum 340282366920938463463374607431768211456
=> 1..8

Nell’esempio appena proposto è possibile verificare che fino alla quinta iterazione il numero è di dimensioni tali da farlo contenere nel range appartenente alla classe Fixnum, relativa alla macchina in uso; dalla sesta iterazione in poi il numero supera i bit nativi e l’interprete in modo automatico effettua la transizione alla classe Bignum.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Nomi di variabili in Python

python

I nomi delle variabili in Python rispettano le regole già viste per gli identificatori Python, ricordiamo poi che Python è case sensitive, nel senso che le lettere maiuscole e minuscole rappresentano entità differenti. Allora i nomi Luigi, luigi e LUIGI si riferiscono a tre variabili diverse. Infine è opportuno segnalare che le parole riservate non possono essere utilizzate come nomi di variabile in Python.

Lista delle parole riservate in Python

and continue else for import not raise
assert def except from in or return
break del exec global is pass try
class elif finally if lambda print while

Per la maggior parte dei compilatori, un nome di variabile può contenere fino a 31 caratteri, in modo da poter adottare per una variabile un nome sufficientemente descrittivo, in Python tale limite non viene indicato. La scelta del nome assume un’importanza fondamentale al fine di rendere leggibile il codice; questo perché un codice leggibile sarà facilmente mantenibile anche da persone diverse dal programmatore che lo ha creato.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: