redazione
Genius
4 min. di lettura
Vota

Concetti Chiave

  • Le variabili in Octave possono avere nomi di qualunque lunghezza, ma è consigliabile non superare i 30 caratteri per praticità.
  • I nomi delle variabili sono case-sensitive e possono includere lettere, numeri e underscore, ma l'uso dell'underscore all'inizio e alla fine è sconsigliato.
  • Le variabili globali devono essere dichiarate global nel corpo delle funzioni per essere utilizzate, altrimenti rimangono invariate all'interno delle funzioni.
  • Le variabili persistenti sono locali a una funzione e mantengono il loro valore tra le chiamate successive, simile al comportamento delle variabili statiche in C.
  • Octave gestisce alcuni nomi di variabili come costanti, che non possono essere modificate, mentre altre possono cambiare valore automaticamente.

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.

Domande da interrogazione

  1. Qual è la differenza tra variabili globali e variabili persistenti in Octave?
  2. Le variabili globali sono visibili e utilizzabili in tutto il programma, mentre le variabili persistenti sono locali a una funzione specifica e non visibili al di fuori di essa.

  3. Come si dichiara una variabile globale in Octave?
  4. Una variabile globale si dichiara usando l'appellativo "global", ad esempio: `global a`.

  5. Cosa succede se si passa una variabile globale come parametro a una funzione in Octave?
  6. Octave crea una copia locale della variabile e non modifica il valore globale.

  7. Come si può verificare se una variabile è globale in Octave?
  8. Si può usare la funzione preimpostata `isglobal(name)`, che restituisce 1 se la variabile è globalmente visibile, altrimenti 0.

  9. Cosa accade se si dichiara una variabile persistente più volte in Octave?
  10. La variabile persistente mantiene il valore dell'ultima assegnazione, ad esempio, dopo `persistent pvar=1` e `persistent pvar=2`, il valore di `pvar` sarà 2.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community