Sezione 02 / 07

Variabili e
Tipi di Dato

Come si dichiarano le variabili, i tre tipi di dato, i tre tipi di variabile e come si riferisce ad esse nel codice.

2.1 Struttura di una variabile

In LINE una variabile è una scatola con un nome che immagazzina un dato. La dichiarazione segue sempre questa forma:

sintassiTIPO_VARIABILE nome = dato

Il nome può contenere solo lettere, numeri (non in prima posizione) e il trattino basso _. Non sono ammessi spazi o altri caratteri speciali.

Per riferirsi al valore di una variabile in un altro punto del codice si usa il simbolo @ davanti al nome:

riferimentonome = Mario >> @nome vale "Mario" >> Il "potere" di @ finisce al primo carattere non ammesso nel nome
Nota: TIPO_VARIABILE per ora lascialo vuoto — viene spiegato nel capitolo 2.3. La maggior parte delle variabili si dichiara senza prefisso.

2.2 Tipi di dato

In LINE esistono tre tipi di dato:

TipoPrefissoDescrizione
Stringa(nessuno)Immagazzina il dato così com'è, come testo
Numerale#Immagazzina un valore numerico
Booleano#Solo due valori: V (vero) o F (falso)

Il prefisso # davanti al nome dichiara che la variabile contiene un numerale o un booleano. Senza prefisso è sempre una stringa.

esempivar = 8 >> stringa: immagazzina il testo "8" #var = 8 >> numerale: immagazzina il numero 8 var = V >> stringa: immagazzina il testo "V" #var = V >> booleano: immagazzina il valore vero
Attenzione: V e F vengono letti come booleani solo dentro variabili con #. Altrimenti sono semplici stringhe. Un 5 numerico è diverso da un 5 stringa — i due tipi non sono intercambiabili.

Se dentro una variabile con # inserisci qualcosa che non può essere né numero né booleano, il programma darà un errore di tipo.

Conversioni di tipo

Si può cambiare il tipo di una variabile già dichiarata con questi comandi:

ComandoEffetto
n:Converte in numerale. Se la stringa è un numero usa quel valore, altrimenti vale 1. Stringa vuota → 0.
b:Converte in booleano. Stringa vuota o "F" → F, tutto il resto → V. Da numero: 0 → F, qualsiasi altro → V.
s:Converte in stringa. Il valore diventa testo leggibile.
conversionivar = 8 n:var >> ora var è il numerale 8 #n = 0 b:n >> ora n è il booleano F #n = 5 s:n >> ora n è la stringa "5"

Per sapere il tipo attuale di una variabile si usa l'escape \t seguito dal nome (senza @). Il risultato è una stringa: string, number o bool.

\t — tipo di una variabile#eta = 25 \teta >> produce: number nome = Mario \tnome >> produce: string

2.3 Tipi di variabile

Esistono tre tipi di variabile, che si distinguono per il comportamento del valore nel tempo:

Standard (nessun prefisso)

La variabile più comune. Il valore può essere cambiato manualmente con una riassegnazione — che ha la stessa sintassi della dichiarazione:

var = Buongiorno >> dichiarazione var = Arrivederci >> riassegnazione: ora vale "Arrivederci"

Si può anche cambiare tipo durante la riassegnazione:

var = Ciao >> stringa #var = V >> riassegnata come booleano
Importante: se assegni ad una variabile il valore di un'altra variabile e quella successivamente cambia, la prima non cambierà. Il valore viene copiato al momento dell'assegnazione.
#a = 5 var = @a >> var vale 5 (copia di a) #a = 6 >> a cambia, ma var rimane 5

STAY — costante

Anteponi STAY alla dichiarazione. Il valore non può essere cambiato in nessun modo: qualsiasi tentativo di riassegnazione darà un errore.

STAY #pi = 3.14 STAY lingua = italiano

IF — reattiva

Anteponi IF. Queste variabili possono contenere solo booleani o operazioni che producono booleani. Il prefisso # non è necessario.

IF vero = V >> corretto IF errore = 5 >> ERRORE: 5 non è un booleano

La caratteristica che le rende speciali: se una variabile IF è posta uguale ad un'altra variabile e quella cambia, anche la IF cambia di conseguenza.

#a = V IF cond = @a #a = F >> adesso anche cond vale F

Questo le rende ideali per condizioni che devono aggiornarsi automaticamente. Le variabili IF vengono usate intensamente con il costrutto GO, che verrà trattato in una sezione successiva.

Quiz — Sezione 2

7 domande · serve l'80% per passare alla sezione 3

Domanda 01

Quale di questi nomi di variabile è valido in LINE?

A2cose
Bmia variabile
Cvalore_finale
Dcosto-totale

Domanda 02 — Completamento

Dichiara una variabile numerica chiamata eta con valore 30.

1

Domanda 03

Cosa contiene la variabile x dopo questo codice?

#x = V
ALa stringa "V"
BIl booleano vero
CIl numerale 1
DUn errore, perché V non è un numero

Domanda 04

Quale tipo ha n dopo questo codice?

n = ciao n:n
Astring — la conversione non è avvenuta perché "ciao" non è un numero
Bnumber — vale 1, perché "ciao" non è convertibile ma n: assegna 1 in quel caso
Cbool — "ciao" è non vuoto quindi diventa V
DErrore: non si può convertire una stringa in numero

Domanda 05

Cosa succede dopo questo codice?

#a = 10 b = @a #a = 99
Ab vale 99 — si è aggiornata insieme ad a
Bb vale 10 — il valore viene copiato al momento dell'assegnazione
CErrore: non si può assegnare un numerale a una variabile stringa
Db vale "10" come stringa, poi diventa "99"

Domanda 06 — Completamento

Dichiara la costante pi con valore 3.14.

1

Domanda 07

Quale differenza c'è tra una variabile standard e una variabile IF?

ALe variabili IF non possono contenere numeri, quelle standard sì
BLe variabili IF si aggiornano automaticamente se cambia la variabile da cui dipendono; quelle standard no
CLe variabili IF sono costanti come STAY
DLe variabili IF possono contenere qualsiasi tipo, quelle standard solo stringhe

Sezione 3 →