Variabili

Le variabili permettono di dare un nome ai valori e richiamarli dopo. Il nome di una variabile può essere una sequenza di lettere, di numeri o barre. Octave non dà un limite alla lunghezza dei nomi delle variabili, ma di solito non è utile avere variabili con nomi lunghi più di 30 caratteri.

Esempi di nomi di variabili validi sono: x, x15, _foo_bar_baz,….

Tuttavia nomi come foobarbaz che cominciano e terminano con l’undersore (_) possono essere intesi come riservati all’uso interno di Octave.

NB: in Octave i simboli a e A sono variabili distinte.

Il nome di una variabile è un’espressione valida da sé e rappresenta il valore corrente della variabile.

Ci sono poi variabili che hanno un significato a sé nel programma.

Per esempio:

ans tiene la directory di lavoro corrente pi indica il raggio di un cerchio Alcuni di questi simboli inseriti in Octave sono costanti e non possono essere modificati. Gli altri possono essere usati e assegnati come tutte le altre variabili ma i loro valori sono anche usati e modificati automaticamente da Octave.

Le variabili di octave non sono fisse, quindi è possibile prima memorizzare un valore numerico in una variabile e dopo usare lo stesso nome per mettere il valore nella stringa nello stesso programma. Le variabili non possono essere usate prima che gli sia stato assegnato un valore se no dà errore.

Esempio di variabile reimpostata:

>>isvarname(nome) #dà vero se nome è un nome di variabile valido

Variabili globali

Una variabile dichiarata globale può essere utilizzata all’interno del corpo di una funzione senza doverla dichiarare come un parametro formale. Una variabile può essere dichiarata globale usando l’appellativo global.

Esempio:

>>global a

>>global ab

>>global c=2

Una variabile globale può essere introdotta una sola volta in una frase globale.

Per esempio, dopo aver inserito il seguente codice:

>>global gvar=1

>>global gvar=2

Il valore della variabile globale gvar è 1 non 2.

Il comando clear gvar non cancella questo comportamento, mentre clear all lo fa. E’necessario dichiarare una variabile come globale dentro il corpo di una funzione per utilizzarla.

Per esempio:

>>global x

>>function f()

>> x=1

>>endfunction

>> f() Non pone il valore della variabile globale x uguale a 1.

Per cambiare il valore della variabile globale x bisogna dichiarare che è globale anche nel corpo della funzione:

>>function f()

>>global x

>> x=1

>>endfunction

Passando una variabile globale in una lista di parametri di una funzione, Octave metterà una copia locale della variabile e non modificherà il valore globale.

Per esempio:

>>function f(x)

>> x=0

>>endfunction

E la definizione di x come variabile globale dall’inizio:

>>global x=13

L’espressione

>>f(x) porrà il valore di x dentro la funzione uguale a 0, ma il valore di x all’inizio rimane invariato perchè la funzione lavora con una copia del suo argomento.

– Funzione preimpostata: isglobal(name) Questa funzione dà 1 se name globalmente visibile se no dà 0.

Per esempio:

>>global x

>>isglobal(“x”)

>> >=1

Variabili persistenti

La differenza tra variabili persistenti e variabili globali è chele variabili persistenti sono locali, finalizzate ad una particolare funzione e non sono visibili al di fuori di essa. Una variabile può essere dichiarata persistente usando persistent.

Esempio:

>>persistent a

>>persistent ab

>>persistent c=2 Il comando static usato in C è equivalente a persistent. Al contrario delle variabili globali ad ogni inizio di frase sarà reimpostata la variabile.

Per esempio dopo aver eseguito il seguente codice:

>>persistent pvar=1

>>persistent pvar=2

Il valore della variabile persistente pvar sarà 2.

Commenti

commenti