Tipi di variabili in R

python

In questo post approfondiremo il concetto di variabili in ambiente R fornendo una spiegazione sulle differenti tipologie di variabili.Il linguaggio R prevede due tipi di variabili:

1)     variabili globali;

2)     variabili locali;

Come si può intuire, le variabili globali sono accessibili a livello globale all’interno del programma, le variabili locali invece assumono significato solo ed esclusivamente nel settore di appartenenza, risultando visibili solo all’interno del metodo in cui vengono inizializzate.

Per la maggior parte dei compilatori, un nome di variabile può contenere fino a trentuno caratteri, in modo da poter adottare per una variabile un nome sufficientemente descrittivo, in R tale limite non è 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 l’ha creato.

Abbiamo parlato d’inizializzazione della variabile intesa quale operazione di creazione della variabile; vediamone allora un esempio banale:

> a <- 1

In tale istruzione è stato utilizzato l’operatore di assegnazione (<-), con il significato di assegnare appunto alla locazione di memoria individuata dal nome a il valore 1. Il tipo attribuito alla variabile è stabilito in fase d’inizializzazione; sarà allora che si deciderà se assegnare a essa una stringa di testo, un valore booleano (true/false), un numero decimale etc.

Per approfondire l’argomento:

 

Variabili ed espressioni in R

python

Le Variabili ed espressioni in R sono trattate in modo moderno ed efficiente, infatti mentre nella maggior parte dei linguaggi di programmazione è necessaria una dichiarazione delle variabili utilizzate all’interno del programma, dichiarazione effettuata nella parte iniziale prima della sezione esecutiva dello stesso, in R tutto questo non è richiesto. Poiché il linguaggio non richiede la dichiarazione delle variabili; il tipo e la relativa dimensione saranno decisi nel momento in cui le stesse saranno inizializzate.

Con il termine variabile ci si riferisce a un tipo di dato il cui valore è variabile nel corso dell’esecuzione del programma. È però possibile assegnarne un valore iniziale, si parlerà allora d’inizializzazione della variabile. La fase d’inizializzazione, assume un’importanza fondamentale perché rappresenta il momento in cui la variabile è creata, tale momento coincide con quello in cui a essa è associato un dato valore.

A differenza dei linguaggi cosiddetti compilativi tale procedura può essere inserita in qualunque punto dello script, anche se i significati possono assumere valori differenti.

Nel momento in cui l’interprete s’imbatte in una variabile, deposita il valore relativo in una locazione di memoria e ogni volta che nel programma comparirà una chiamata a tale variabile, si riferirà a questa locazione. È regola di buona programmazione utilizzare dei nomi che ci permetteranno di riferirci in maniera univoca alle specifiche locazioni di memoria in cui i relativi dati sono stati depositati.

Per approfondire l’argomento:

I nomi in R

python

In questo post (I nomi in R) analizziamo le regole da seguire per scegliere correttamente i nomi di costanti, variabili, metodi, classi e moduli, che rappresentano gli elementi essenziali con i quali lavoreremo in questo ambiente.

Un nome in R allora può essere costituito da una lettera maiuscola, minuscola o dal simbolo . (punto), che a loro volta possono essere una qualsiasi combinazione di lettere maiuscole e minuscole, e cifre. I caratteri minuscoli corrispondono alle lettere minuscole dell’alfabeto dalla a alla z, mentre i caratteri maiuscoli corrispondono alle lettere maiuscole dell’alfabeto dalla A alla Z e le cifre da 0 al 9. Il numero di caratteri che compongono il nome non è limitato.

Di seguito riporto alcuni suggerimenti riportati nella guida ad R fornita da Google, su come denominare in modo corretto gli oggetti  (nomi in R) :

  • Non utilizzare mai caratteri di sottolineatura (_) o trattini (-) per identificare un oggetto in ambiente R.
  • Gli identificatori devono essere denominati in base alle seguenti convenzioni.
  • La forma preferita per i nomi delle variabili è di utilizzare tutte lettere minuscole e le parole devono essere separate da punti (variable.name), ma l’identicatore nella forma nomeVariabile è anche accettato.
  • I nomi delle funzioni hanno la lettera iniziale maiuscola e non deve essere utilizzato alcun punto (FunctionName).
  • Le costanti sono identificate allo stesso modo delle funzioni, ma con un k iniziale.

Per approfondire l’argomento:

Inizializzazione delle variabili in Python

python

L’inizializzazione delle variabili in Python rappresenta una buona pratica di programmazione che ci mette al riparo da situazioni impreviste. Questo perchè è possibile che nel codice che abbiamo realizzato si possano generare degli errori dovuti all’utilizzo di variabili che non risultano iniliazzate.

Ricordiamo allora che per inizializzazione delle variabili in Python s’intende l’operazione di creazione della variabile con l’attribuzione ad essa di un valore valido; vediamone allora un esempio banale:
a = 1
in tale istruzione è stato utilizzato l’operatore di assegnazione (segno di uguale =), con il significato di assegnare appunto alla locazione di memoria individuata dal nome a il valore 1. Il tipo attribuito alla variabile viene stabilito in fase di inizializzazione; sarà allora che si deciderà se assegnare ad essa una stringa di testo, un valore booleano (true e false), un numero decimale etc.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Indentazione del codice in R

python

Anche se la struttura del linguaggio R prevede dei particolari delimitatori per alcuni blocchi di programma, risulta comunque utile, l’indentazione del codice in R, per la relativa individuazione.

Ricordiamo a tal proposito che per indentazione del codice s’intende quella tecnica utilizzata nella programmazione attraverso la quale si evidenziano dei blocchi di programma con l’inserimento di una certa quantità di spazio vuoto all’inizio di una riga di testo, allo scopo di aumentarne la leggibilità.

Anche se, come già detto, R prevede opportuni delimitatori per alcune strutture del linguaggio, utilizzeremo l’indentazione stessa per indicare i blocchi nidificati; a tal proposito si possono usare sia una tabulazione, sia un numero arbitrario di spazi bianchi.

Nell’utilizzo di tale tecnica è necessario ricordare delle semplici raccomandazione:

  • il numero di spazi da utilizzare è variabile;
  • tutte le istruzioni del blocco di programma devono presentare lo stesso numero di spazi di indentazione.

In tale ottica utilizzeremo la convenzione che prevede l’esclusivo utilizzo di due spazi per individuare un nuovo blocco e di tralasciare l’uso del tab. 

Per approfondire l’argomento:

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:

Disegnare un ellisse in Autocad

autocad

In questa lezione vedremo come disegnare un ellisse in Autocad. Il comando AutoCAD ellisse è facile da usare. Ricordiamo che un ellisse è una sorta di cerchio schiacciato. Matematicamente, un’ellisse è definito da un asse maggiore e un asse minore. Questi assi determinano la lunghezza dell’ellisse, la sua larghezza, e il grado di curvatura. Un arco ellittico è un arco intercettato da un’ellisse.

Il comando AutoCAD ellisse fornisce un modo semplice per disegnare un’ellisse. È possibile specificare i due punti finali di uno dei suoi assi e quindi specificare un punto finale sull’altro asse. Come il comando Arco, tuttavia, il comando Ellisse offre diverse altre opzioni:

  • Arco: genera un arco ellittico, non un’ellisse completa. Si definisce un arco ellittico proprio come si definisce un un’ellisse completa.
  • Centro: Richiede che si definisca il centro dell’ellisse e poi il punto finale di un asse. È quindi possibile inserire la lunghezza dell’altro asse o specificare una rotazione attorno all’asse maggiore. Se si sceglie la seconda opzione, è possibile inserire un angolo di rotazione specifico per il secondo asse che, a sua volta, definisce completamente l’ellisse.
  • Rotazione: Specifica un angolo che definisce la curvatura dell’ellisse. 

L’esempio seguente ci fa vedere cosa appare sulla riga di comando quando  si crea un’ellisse utilizzando i punti finali di default del metodo assi. Inserisci ellisse e premere Invio o fare clic sul pulsante ellisse:

Specify axis endpoint of ellipse or [Arc/Center]: Pick or type the first endpoint of one axis.

Specify other endpoint of axis: Pick or type the other endpoint of one axis.

Specify distance to other axis or [Rotation]: Pick or type the endpoint of the other axis.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Commenti in Ruby

Guida alla programmazione con Ruby

Al fine di rendere leggibile il codice, sarà possibile inserire delle righe di commento in Ruby, che precedute dal simbolo # (cancelletto), non saranno considerate dall’interprete  ma serviranno esclusivamente a spiegare lo scopo dell’istruzione.

È opportuno precisare che Ruby ci permette di inserire dei commenti in due differenti modi: il primo classico prevede l’inserimento del simbolo # (hash) all’inizio del commento, il codice inserito a partire da tale punto sarà ignorato dall’interprete. Esempi dell’utilizzo di tale procedura sono riportati di seguito:

# Questo è un commento
nome = “Luigi”   # Questo è un commento

Negli esempi precedenti abbiamo potuto verificare che un commento in Ruby può essere inserito anche nella stessa riga contenente del codice. Vediamo ora invece come procedere nel caso si volessero inserire dei commenti su più righe; in tal caso si può utilizzare ancora il simbolo # (hash):

# Primo commento 
# Secondo commento 
# Terzo commento

Oppure utilizzare il blocco commento utilizzando le parole chiave =begin ed =end:

=begin    
 Questo è    
 un commento    
 su più righe 
=end

È da notare che nei commenti in Ruby disposti su più righe, =begin ed =end devono trovarsi all’inizio della riga, senza alcuna indentazione.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Come disegnare una spline in Autocad

autocadIn questa lezione vedremo come disegnare una spline in Autocad. Dal menu Disegna scegliendo la voce SPLINE potremo creare un tipo di spline detto curva B-spline razionale non uniforme (NURBS). Una curva NURBS produce una curva uniforme tra i punti di controllo.

Le curve spline ci danno la possibilità di  creare superfici NURBS per la modellazione 3D. Per creare superfici, è possibile eseguire la rivoluzione, il loft, l’estrusione e lo sweep di spline chiuse e aperte.

I comandi disponibili in autocad ci consentono di disegnare una spline in diversi modi:

- Mediante i vertici di controllo (seguire la seguente procedura):

1.Fare clic su scheda Superficie - gruppo - CurveVC spline.
2.Fare clic nell'area di disegno per creare la spline. 
3.Al termine dell'operazione, premere INVIO.

- Mediante i punti di adattamento (seguire la seguente procedura):

1.Fare clic su scheda Superficiegruppo CurveNodo spline.
2.Fare clic nell'area di disegno per creare la spline. 
3.Al termine dell'operazione, premere INVIO.

Per approfondire l’argomento:

Operatori logici in Ruby

Guida alla programmazione con Ruby

Gli operatori logici in Ruby combinatori sono operatori con uno o due operandi logici che forniscono un risultato di tipo logico. Gli operatori logici in Ruby sono riportati nella tabella successiva.

Operatore Tipo di Operazione
! Negazione logica
&& Congiunzione logica
|| Disgiunzione logica inclusiva

Se la relazione espressa dall’operatore è vera, l’operatore fornisce come risultato .TRUE. altrimenti .FALSE. Nella gerarchia delle precedenze vengono per ultimi.

Abbiamo detto che gli operatori logici si applicano ad operandi di tipo logico, allora vediamo di capire in base al valore assunto dagli operandi quale sia il risultato dell’espressione. Siano A e B due variabili di tipo logico, applichiamo ad esse gli operatori logici in Ruby:

  • !A – il risultato è .true. se A è .false. altrimenti è .false.
  • A && B – il risultato è .true. se A e B sono entrambi pari a .true. altrimenti è .false.
  • A || B – il risultato è .true. se almeno uno tra i valori di A o B assume il valore .true. altrimenti è .false.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: