Spreadsheet Calculator

SC, (1) ovvero Spreadsheet Calculator, è un applicativo per l'elaborazione di fogli elettronici di vecchia concezione. La sua origine è molto lontana, a partire da un lavoro apparso su Usenet, modificato successivamente da più autori. Oggi esistono diverse varianti di questo applicativo, ognuna con un nome particolare; è disponibile anche una versione per Dos.

Nonostante si tratti di un foglio elettronico superato sotto vari punti di vista, rimane un applicativo fondamentale nell'informatica del software libero, se non altro per motivi storici.

Concetti generali

In condizioni normali, una volta avviato SC, si vede una schermata simile a quanto riportato in figura u38.1.

Figura u38.1. Aspetto iniziale del foglio elettronico su uno schermo di 80 colonne per 24 righe.

A0 (10 2 0) []

         A         B         C         D         E         F         G
0             <
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Sullo schermo si distinguono quattro parti. La prima riga in alto serve per visualizzare il contenuto delle celle e per l'inserimento dei comandi da parte dell'utilizzatore. La seconda riga viene usata dal programma per mostrare dei messaggi, che si solito servono per conoscere l'esito di un comando appena impartito. La terza riga e le prime quattro colonne mostrano le coordinate delle celle, dove le righe sono identificate attraverso un numero e le colonne attraverso una lettera. Infine, la parte restante dello schermo è riservata alle celle del foglio elettronico.

Le coordinate delle celle sono indicate usando prima la lettera e poi il numero, per esempio A0. È possibile usare lettere maiuscole o minuscole indifferentemente.

Sono disponibili due cursori: uno per navigare tra le celle; l'altro per scrivere i comandi. Osservando la figura u38.1 si può notare che il cursore del foglio si trova sulla cella A0, alla cui destra appare il simbolo <. In condizioni normali, la cella è anche evidenziata con un colore adatto.

È interessante interpretare ciò che appare nella prima parte della prima riga dello schermo. Nel caso della figura, si vede:

A0 (10 2 0) []

Significa che il cursore si trova sulla cella A0, che il formato della cella è espresso in qualche modo dalle cifre «10 2 0» e che si il suo contenuto è nullo (è vuota). Il formato si interpreta nel modo schematizzato nella figura u38.3.

Figura u38.3. Interpretazione delle cifre che descrivono il formato numerico di una cella.

A0 (10 2 0) []
    |  | |
    |  | |
    |  | tipo di formato:
    |  |     0 = quantità fissa di cifre decimali
    |  |     1 = notazione scientifica
    |  |     2 = notazione ingegnieristica
    |  |     3 = data (senza orario)
    |  |
    | numero di cifre decimali
    |
  larghezza della colonna in caratteri

Il formato numerico espresso in questo modo, può essere definito solo su una colonna intera e non si può circoscrivere a un gruppo più limitato di celle. In un gruppo di celle è possibile intervenire successivamente per modificare la rappresentazione dei valori numerici, senza alterare la larghezza della colonna.

Prima di descrivere i comandi di SC è bene sapere subito che un comando non completato può essere annullato premendo il tasto [Esc], anche più volte se necessario.

Zona

In tutti gli applicativi per l'elaborazione di fogli elettronici, la zona è un rettangolo di celle che va da un minimo di una sola cella fino al massimo della dimensione del foglio. Per delineare questo rettangolo si indicano le coordinate di due celle che si trovano negli angoli opposti di questo rettangolo. Con SC si usano i due punti (verticali) per unire queste due coordinate.

Per esempio, A0:A0 è la zona che si riduce alla sola cella A0; A0:B1 è una zona di quattro celle totali, composta in pratica da A0, B0, A1 e B1. Di solito, salvo situazioni particolari, l'inversione nell'ordine delle coordinate e l'utilizzo degli altri due estremi non cambia il significato, per cui A0:B1 è uguale a B1:A0, così come è uguale a A1:B0 e a B0:A1.

In certe situazioni, quando si vuole sottolineare il fatto che si sta facendo riferimento a un intervallo di colonne, si usa una forma simile, in cui non appaiono le coordinate numeriche delle righe. per esempio, A:C rappresenta le colonne A, B e C. Nello stesso modo è possibile indicare un intervallo di righe; per esempio, 1:3 indica le righe 1, 2 e 3.

Navigazione nel foglio

La navigazione all'interno del foglio potrebbe non essere così intuitiva come ci si aspetterebbe. Teoricamente, si possono usare i tasti freccia; in pratica, questo potrebbe non essere vero. Quando ci sono difficoltà bisogna affidarsi alla tradizione, ovvero al metodo di VI, con l'aggiunta di qualche altra possibilità. La tabella u38.4 riepiloga i comandi per lo spostamento del cursore nel foglio.

Bisogna considerare che per ottenere l'inserimento di un'informazione in una cella, occorre usare prima il comando apposito che permette di entrare nella fase di inserimento. Pertanto, la pressione «casuale» di un tasto si traduce quasi sempre in un comando.

Tabella u38.4. Comandi principali per la navigazione tra le celle del foglio.

Comando Alternativa Spostamento
[h] [Ctrl b] A sinistra di una cella.
[j] [Ctrl n] In basso di una cella.
[k] [Ctrl p] In alto di una cella.
[l] [Ctrl f] A destra di una cella.

Esistono anche una serie di comandi utili per raggiungere posizioni particolari in modo rapido. In particolare, può essere utile raggiungere solo celle che contengono già qualcosa (nella documentazione originale si parla di «celle valide»). La tabella u38.5 riepiloga altri comandi per lo spostamento nel foglio.

Tabella u38.5. Comandi speciali per la navigazione nel foglio.

Comando Spostamento
[^] Sulla prima riga della colonna attuale.
[#] Sull'ultima riga che contiene qualcosa, della colonna attuale.
[0] Sulla prima colonna della riga attuale.
[$] Sull'ultima colonna che contiene qualcosa, della riga attuale.
[b] Sulla cella precedente che contiene qualcosa.
[w] Sulla cella successiva che contiene qualcosa.
[g]coordinata Sulla cella indicata dalla coordinata.

Inserimento e modifica di dati nella riga di comando

L'aspetto più complicato per un principiante alle prese con questo applicativo è probabilmente la modifica del testo nella riga di comando. Ci sono varie situazioni in cui occorre inserire un'informazione; di solito si tratta di introdurre il valore di una cella, oppure si deve completare un comando specificando una zona, o altro. In queste situazioni, si accede alla parte superiore dello schermo, in quella che qui viene chiamata la riga di comando.

Quando il contesto porta a inserire qualcosa, tutto avviene come ci si potrebbe aspettare, inserendo normalmente il testo, dove il tasto [backspace] funziona regolarmente per cancellare. Tuttavia, la cosa non è così semplice come appare, perché si tratta di una riga che riconosce i comandi di VI: è sufficiente premere [Esc] per passare alla modalità di comando. La tabella u38.6 riepiloga le funzionalità più importanti della modalità di comando, quando si sta lavorando sulla prima riga dello schermo.

Tabella u38.6. Comandi disponibili quando si modifica qualcosa sulla prima riga dello schermo.

Comando Descrizione
[i] Termina la modalità di comando e inizia l'inserimento.
[a] Termina la modalità di comando e inizia l'inserimento dopo il cursore.
[h] Va a sinistra di un carattere.
[l] Va a destra di un carattere.
[x] Cancella il carattere corrispondente al cursore.
[Invio] Conferma e conclude.

Avvio e opzioni di funzionamento

L'avvio di questo programma è molto semplice. Sono disponibili alcune opzioni che hanno dei comandi corrispondenti in fase di funzionamento del programma.

sc [opzioni] [file]

La tabella u38.7 riepiloga le opzioni più importanti. Successivamente vengono mostrate altre tabelle contenenti la descrizione di comandi interattivi.

Tabella u38.7. Opzioni principali da dare all'avvio dell'eseguibile.

Opzione Descrizione
-r
Ricalcola per righe (predefinito).
-c
Ricalcola per colonna.
-m
Disabilita il ricalcolo automatico.
-n
Inserimento numerico rapido.

Durante il funzionamento sono disponibili due gruppi di comandi per modificare l'impostazione del programma. Si tratta di comandi che scambiano alcune modalità, attivandole o disattivandole, in funzione dello stato precedente, oppure di comandi che impostano in modo preciso. I comandi che scambiano le modalità iniziano con la combinazione [Ctrl t] e seguono con un'altra lettera; i comandi di impostazione iniziano con la lettera S (maiuscola), che richiede poi l'inserimento di un comando scritto per esteso. Per esempio, la sequenza [Ctrl t][a] attiva o disattiva la modalità di ricalcolo automatico; nello stesso modo, il comando [S] seguito da iterations=7 stabilisce che le iterazioni da eseguire per ricalcolare i valori delle espressioni devono essere sette. La tabella u38.8 riepiloga i comandi più importanti da impartire in questo modo.

Tabella u38.8. Alcuni comandi che modificano la modalità di funzionamento, distinguendo tra quelli di scambio, che iniziano con [Ctrl t] e quelli di impostazione, che iniziano con [S].

Comando Descrizione
[Ctrl t][a] Attiva o disattiva il ricalcolo automatico delle celle.
[Ctrl t][c] Attiva o disattiva l'evidenziamento della cella corrente.
[Ctrl t][n] Attiva o disattiva la modalità di inserimento numerico rapido.
[Ctrl t][t] Attiva o disattiva la visualizzazione di informazioni sulla prima riga.
S byrows
Definisce un ricalcolo delle celle per righe.
S bycols
Definisce un ricalcolo delle celle per colonne.
S iterations=n
Definisce il numero massimo di cicli per il ricalcolo delle celle.
S tblstyle=0
Esporta la tabella con i campi separati da due punti.
S tblstyle=tbl
Esporta la tabella in formato Tbl (*roff).
S tblstyle=latex
Esporta la tabella in formato LaTeX.
S tblstyle=tex
Esporta la tabella in formato TeX.
S tblstyle=frame
Esporta la tabella in formato FrameMaker.

È opportuno sottolineare che le impostazioni di esportazioni si riferiscono al comando T, con il quale si esporta il contenuto della tabella in un altro formato.

Inserimento e modifica dei valori nelle celle

Questo tipo di elaboratore di fogli elettronici, distingue tra diversi contesti di funzionamento. Inizialmente ci si trova in una modalità di comando, dove molti dei tasti (lettere o numeri) possono rappresentare l'inizio di un comando. In base a questa logica, l'inserimento dei dati nelle celle deve essere preceduto da un comando apposito: " inizia l'inserimento di una cella che rappresenta un valore stringa; = inizia l'inserimento di una cella che rappresenta un valore numerico.

Tale premessa permette di comprendere che questo tipo di foglio elettronico è in grado di gestire soltanto due tipi di dati: stringhe e numeri (reali). Questi valori possono essere inseriti in forma costante, oppure si possono indicare delle espressioni che generano un risultato del tipo previsto.

L'uso del comando = o " porta il programma in un contesto di funzionamento particolare, in cui si digita l'espressione (costante o meno) sulla prima riga dello schermo, che mostra l'invito i> (insert).

i>

Tale digitazione è sottoposta al controllo che è già stato descritto in precedenza: è come se fosse stato iniziato un comando di inserimento con il programma VI, dal quale, se si preme il tasto [Esc] si passa alla modalità di comando relativa, che viene fatta notare attraverso l'invito e> (edit).

e>

Questo è riassunto nella tabella u38.6 che è già stata mostrata in precedenza. L'informazione viene memorizzata nella cella solo se si conclude l'inserimento con la pressione di [Invio]; pertanto, se si passa alla modalità di comando (attraverso il tasto [Esc]) e poi si preme nuovamente [Esc], si annulla l'inserimento.

L'inserimento di qualcosa in una cella, viene filtrato attraverso un comando di un linguaggio interno al foglio elettronico. Se si assegna una stringa, il comando è:

label cella = {stringa_delimitata|espressione_stringa}

Se invece si assegna un valore numerico, il comando è:

let cella = {costante_numerica|espressione_numerica}

Quando si inserisce un valore, bisogna fare attenzione a non modificare la parte iniziale del comando, a meno che si tratti di un'azione voluta.

Per modificare il contenuto di una cella, in generale è possibile cancellarlo prima, per poi inserire quello nuovo, dove la cancellazione si ottiene con il comando x. La modifica del contenuto richiede invece di passare a un contesto di funzionamento analogo a quello di inserimento, in cui però ci si trova inizialmente in modalità di modifica. In pratica, ci si trova subito di fronte all'invito e> e ci si deve comportare di conseguenza.

Per passare alla modifica del contenuto di una cella, si usano due comandi differenti, a seconda che si intenda modificare un valore stringa, E, o un valore numerico, e. Questo serve a cambiare il comando interno del foglio elettronico, che nel primo caso è label, mentre nel secondo è let. Tutto questo ha un significato che si chiarisce in seguito, quando viene descritto il formato in cui vengono salvati i dati.

Per il momento, è importante comprendere che una cella può contenere simultaneamente due valori: uno numerico e uno stringa. In generale, una cosa del genere non dovrebbe essere ammissibile, ma la logica di SC porta a tale situazione.

Tabella u38.9. Comandi di inserimento e modifica dei valori delle celle. I comandi particolari che sono disponibili durante il contesto di modifica, sono già stati descritti in un'altra tabella.

Comando Descrizione
[=] Inizia l'inserimento di un valore numerico.
["] Inizia l'inserimento di un valore stringa (centrato).
[<] Inizia l'inserimento di un valore stringa a sinistra.
[>] Inizia l'inserimento di un valore stringa a destra.
[e] Inizia la modifica di un valore numerico.
[E] Inizia la modifica di un valore stringa.

Particolarità dell'inserimento di valori ed espressioni stringa

L'inserimento di una stringa, inizia con il comando ", che porta ad attivare la riga di comando sulla prima riga dello schermo. Supponendo di intervenire sulla cella A7, si ottiene questo:

i> label A7 = "

Il cursore per la digitazione della stringa si trova subito dopo gli apici doppi che si vedono nell'esempio. Quello che si sta inserendo è un'istruzione del foglio elettronico, con la quale si assegna la stringa (label) alla cella A7. Si intuisce che gli apici doppi iniziali servono a delimitare una stringa costante. Supponendo di voler inserire la parola «ciao», si può procedere come di seguito:

i> label A7 = "ciao

Alla fine, si può concludere la stringa con un altro apice doppio, oppure si può anche farne a meno. In ogni caso, al termine si conclude con un [Invio].

La stringa può essere collocata al centro della cella, a sinistra o a destra. Il comando " inizia l'inserimento di una stringa centrata; per l'allineamento a sinistra si usa il comando <; per l'allineamento a destra si usa il comando >. A questi comandi corrispondono altrettante istruzioni interne del foglio elettronico, che vengono generate automaticamente:

Comando Descrizione
label cella = espressione
stringa centrata;
leftstring cella = espressione
stringa allineata a sinistra;
rightstring cella = espressione
stringa allineata a destra.

Fino a questo punto è stato mostrato l'inserimento di stringhe costanti. Per quanto riguarda le espressioni che generano un risultato stringa, bisogna considerare che l'apice doppio iniziale, inserito automaticamente, deve essere eliminato. Per esempio, se la cella A0 contiene una stringa, volendo fare riferimento al suo contenuto nella cella B3, si deve usare il riferimento alla cella A0, senza delimitazioni. In pratica, all'inizio si ha questa situazione:

i> label B3 = "

Quindi, si cancella l'apice doppio e si inserisce l'espressione desiderata:

i> label B3 = A0[Invio]

Probabilmente, in una stringa costante è impossibile indicare un apice doppio; inoltre, si può usare una barra obliqua iniziale per ottenere la ripetizione della parte successiva, per tutta la larghezza della colonna. Si osservi l'esempio:

i> label A10 = "\-=[Invio]

Questo si traduce in pratica nel mostrare la stringa -=-=-=-=-= all'interno della cella.

Particolarità dell'inserimento di valori ed espressioni numerici

L'inserimento di valori numerici non presenta situazioni particolari. Infatti, un valore numerico costante non richiede alcuna delimitazione, così come le espressioni che generano un risultato numerico. A questo proposito, si può valutare la possibilità di abilitare l'inserimento numerico rapido, con il comando [Ctrl t][n], oppure attraverso l'opzione -n.

In generale, per coerenza, non è il caso di intervenire in questo modo; tuttavia, di fronte alla necessità di inserire un gran numero di costanti numeriche, può essere conveniente questo approccio.

Formato delle celle

La gestione del formato delle celle è piuttosto strana, per cui è necessario trattare l'argomento in modo particolare.

Per prima cosa occorre considerare la larghezza della colonna che viene determinata attraverso il comando f. Questo attende l'inserimento di tre valori numerici: la larghezza in caratteri, la quantità di cifre decimali e il tipo. Questa cosa è già stata anticipata nella figura u38.3, in cui è descritto dettagliatamente il significato dell'ultimo valore.

Per fare un esempio molto semplice, il formato 10 2 0, che è quello predefinito, rappresenta una colonna di 10 caratteri di larghezza, in cui i valori vengono rappresentati con due decimali, attraverso una notazione normale a virgola fissa. In pratica, in queste condizioni, si possono rappresentare numeri da -999999.99 a 9999999.99.

Anche la notazione scientifica e quella ingegnieristica, definite rispettivamente dal tipo uno e due, utilizzano l'informazione sulla quantità di decimali. Al contrario, il formato delle date (il numero tre), non dipende dalla quantità dei decimali.

In pratica, il comando f definisce il formato numerico generale di una colonna, cosa che si traduce anche nella definizione della larghezza della colonna stessa. Evidentemente, per quanto riguarda le stringhe, queste risentono solo della larghezza della cella e non delle altre informazioni.

Nell'ambito di una sola cella, è possibile cambiare il formato generale della colonna attraverso il comando F, mentre per un gruppo di celle si usa il comando analogo /F. Questo richiede l'inserimento di una stringa speciale, composta da caratteri che servono a rappresentare un formato numerico. Il significato di questi simboli appare descritto negli schemi seguenti.

Tabella u38.11. Comandi per il controllo del formato delle colonne e della visualizzazione dei valori numerici.

Comando Descrizione
f larghezza decimali tipo
Formato generale della colonna.
F stringa_formato
Formato particolare della cella.
/F zona stringa_formato
Formato particolare di una zona di celle.

Tabella u38.12. Stringa di definizione del tipo per il primo modello.

Simbolo Descrizione
0
Virgola fissa.
1
Notazione scientifica.
2
Notazione ingegnieristica.
3
Data.

Tabella u38.13. Stringa di definizione del formato, per il secondo e il terzo modello.

Simbolo Descrizione
#
Cifra numerica eventuale.
0
Cifra numerica fissa.
.
Separatore decimale.
,
Separatore delle migliaia.
%
Inserisce il simbolo e mostra in forma di percentuale.
\x
Tratta x in modo letterale.
E+ | e+
Notazione scientifica.
E- | e-
Notazione scientifica mostrando il segno solo quando negativo.
;
Divide due formati per i valori positivi e i valori negativi.

Si possono osservare i comandi interni del foglio elettronico nel momento in cui si definisce il formato della colonna, oppure il formato specifico di un gruppo di celle. Nel primo caso si tratta dell'istruzione format:

format colonna larghezza decimali tipo

Nel secondo caso, l'istruzione si abbrevia:

fmt zona stringa_di_formato_delimitata

Nel seguito vengono mostrati alcuni esempi, cercando di riprodurre nel modo migliore possibile la situazione che si vede sullo schermo. Si deve tenere presente che l'istruzione interna del foglio elettronico viene generata automaticamente; quello che serve, semmai, è di fare attenzione a non cancellarla.

L'informazione che appare tra parentesi quadre nell'istruzione del foglio elettronico ([for column] e [format]), non fa parte dell'istruzione stessa. Viene collocata per facilitare all'utilizzatore la comprensione dell'azione che si sta compiendo.

I comandi F e /F sono identici dal punto di vista del foglio elettronico, perché generano la stessa istruzione interna. Nel primo caso, la zona viene indicata automaticamente, riferendola alla cella corrente.

Segue la descrizione di alcuni esempi.

Comandi per intervenire sui file

Per caricare o salvare il foglio, si interviene con comandi composti da una lettera, seguita dal nome del file e forse da altre indicazioni. Vengono descritti brevemente questi comandi.

Tabella u38.14. Comandi per la gestione dei file.

Comando Descrizione
G file
Carica il file.
M file
Sovrappone il file al foglio attuale.
P [file [zona]]
Salva il foglio o solo una zona particolare.
W [file [zona]]
Salva (esporta) in formato testo.
T [file [zona]]
Esporta in un altro formato.

In generale, tutti i comandi che servono a salvare o a esportare dati, permettono l'indicazione di un file su disco, oppure di un comando del sistema operativo da alimentare attraverso un condotto. In pratica, se il nome del file inizia con il simbolo |, si intende che si tratti di un condotto.

Comandi per intervenire su zone del foglio

Per qualche ragione, i comandi che intervengono su una zona rettangolare del foglio, iniziano tutti con la barra obliqua normale (/) e continuano con una lettera, dopo la quale, di solito, si è invitati a inserire la zona a cui si fa riferimento.

Da questo si intende che le coordinate delle zone vanno scritte sempre dopo aver iniziato il comando, nel modo che è già stato mostrato:

coordinata_iniziale:coordinata_finale

In alternativa, si può indicare il nome della zona, che eventualmente gli fosse stato assegnato in precedenza con il comando /d.

Il programma offre anche qualche accorgimento per facilitare l'inserimento delle zone, ma in generale non si tratta di soluzioni convenienti, per cui di solito è meglio usare la digitazione normale. La tabella u38.15 riepiloga brevemente i comandi principali di questo tipo, mentre nel seguito sono mostrati alcuni esempi, in cui si vede anche l'istruzione interna del foglio elettronico, che comunque viene generata automaticamente.

Tabella u38.15. Comandi per la gestione delle zone del foglio.

Comando Descrizione
/x zona
Cancella il contenuto delle celle nella zona indicata.
/c zona_destinazione zona_origine
Copia una zona.
/c zona_destinazione cella_origine
Copia una cella riempiendo una zona.
/f zona_destinazione n_iniziale increm
Riempie una zona di valori.
/d stringa_nome zona
Assegna un nome a una zona di celle.
/u zona
Cancella il nome assegnato alla zona in precedenza.
/s
Mostra l'elenco delle zone che hanno un nome.
/l zona
Impedisce la modifica della zona.
/U zona
Libera la zona indicata che così può essere modificata.
/F zona stringa_formato
Assegna un formato a una zona di celle.

Segue la descrizione di alcuni esempi.

Aiuto alla definizione delle celle e delle zone

Una volta entrati nell'idea di funzionamento di questo tipo di foglio elettronico, le cose non sono più tanto difficili e può essere utile sfruttare qualche accorgimento che facilita l'inserimento di coordinate riferite a celle o zone. Nel momento in cui ci si trova nella fase di inserimento, nella prima riga dello schermo, sono disponibili alcuni comandi. In particolare i comandi [Ctrl b], [Ctrl n], [Ctrl p] e [Ctrl f] sono ancora disponibili, per evidenziare una zona nel foglio sottostante.

Usando questi comandi, la zona evidenziata diventa la zona «predefinita», che si può inserire automaticamente con il tasto [Tab]. Bisogna provare un po' e poi si comprende il senso di questo.

Tabella u38.16. Comandi speciali disponibili durante la digitazione nella prima riga dello schermo.

Comando Effetto
[Ctrl b] Back, estende a sinistra la zona predefinita.
[Ctrl n] Next, estende in basso la zona predefinita.
[Ctrl p] Previous, estende in alto la zona predefinita.
[Ctrl f] Forward, estende a destra la zona predefinita.
[Tab] Inserisce la zona predefinita nella riga.
[Ctrl v] Inserisce la cella corrente nella riga.

Coordinate relative o assolute

Le espressioni del foglio elettronico vengono descritte in seguito. Tuttavia, in questa fase è importante rendersi conto della rappresentazione delle celle e delle zone di celle, che in pratica sono le variabili di un foglio elettronico.

Quando un'espressione contiene un riferimento a una cella o a una zona, se questa cella viene copiata in un'altra posizione, questi riferimenti vengono modificati in modo relativo. Per esempio, se la cella A0 contiene un riferimento alla cella B1, copiando la cella A0 in C2, il riferimento interno alla cella C2 punta alla cella D3. Per indicare un riferimento assoluto, si aggiunge nelle coordinate il simbolo $, davanti alla componente che si vuole «bloccare». Si osservino gli esempi seguenti:

Comandi vari

Nelle sezioni precedenti sono stati esclusi alcuni comandi. In particolare non è ancora stato spiegato come si termina il lavoro con questo programma: ciò si ottiene con [Q], [q], oppure [Ctrl c]; se il foglio attuale non è stato salvato viene chiesto se si vogliono salvare i dati, oppure se si intende rinunciare. La tabella u38.17 riepiloga questi comandi.

Tabella u38.17. Comandi vari.

Comando Descrizione
[Q], [q], [Ctrl c] Conclude il funzionamento del programma.
[Esc], [Ctrl g] Annulla il comando in corso.
[Ctrl l] Ridisegna lo schermo.
[Ctrl r] Evidenzia le celle che contengono costanti numeriche.
[Ctrl x] Evidenzia le celle che contengono espressioni.
[@] Ricalcola le espressioni.
[m] Copia il contenuto della cella in un'area transitoria.
[c] Incolla il contenuto dell'area transitoria nella cella corrente.
[+] In condizioni normali, incrementa il valore numerico della cella.
[-] In condizioni normali, decrementa il valore numerico della cella.
[Invio] Passa all'inserimento di un'istruzione libera.
[?] Mostra la guida interna.

Espressioni

Le celle del foglio sono fatte per contenere delle espressioni. Queste possono essere semplicemente dei valori costanti, numerici o stringa, oppure può trattarsi di qualcosa di più complesso. Le espressioni si ottengono attraverso l'uso di operatori e anche attraverso funzioni che hanno la caratteristica di iniziare con il simbolo @. Nel seguito vengono mostrate alcune tabelle che riassumono gli operatori e le funzioni di uso più comune. Resta sempre la documentazione originale per conoscere le altre possibilità a disposizione.

Si può osservare che è possibile rappresentare un risultato booleano. In pratica, Vero corrisponde al valore numerico uno; Falso corrisponde al valore numerico zero.

Le espressioni possono essere raggruppate attraverso l'uso di parentesi tonde, più o meno annidate.

Tabella u38.18. Elenco degli operatori utilizzabili in presenza di valori numerici e logici.

Espressione Descrizione
-op
Inverte il segno dell'operando.
op1+op2
Somma i due operandi.
op1-op2
Sottrae dal primo il secondo operando.
op1*op2
Moltiplica i due operandi.
op1/op2
Divide il primo operando per il secondo.
op1%op2
Modulo: il resto della divisione tra il primo e il secondo operando.
op1^op2
Eleva il primo operando alla potenza del secondo.
op1<op2
Vero se il primo operando è minore del secondo.
op1>op2
Vero se il primo operando è maggiore del secondo.
op1<=op2
Vero se il primo operando è minore o uguale al secondo.
op1>=op2
Vero se il primo operando è maggiore o uguale al secondo.
op1=op2
Vero se gli operandi si equivalgono.
op1!=op2
Vero se gli operandi sono differenti.
~op
NOT, inversione logica.
op1&op2
AND logico.
op1|op2
OR logico.
op1?op2:op3
Restituisce il secondo operando se il primo è Vero, altrimenti il terzo.

Tabella u38.19. Elenco di alcuni operatori e di alcune funzioni che hanno a che fare con le stringhe.

Espressione Descrizione
str1 # str2
Concatena le due stringhe.
@substr(str1,n,m)
La sottostringa dalla posizione n per m caratteri.
@fmt(stringa_printf,n)
Converte un numero in stringa, in base al formato indicato.
@upper(str1)
Converte in maiuscolo.
@capital(str1)
La prima lettera di ogni parola in maiuscolo.
@eqs(str1,str2)
Vero se le due stringhe sono uguali.

Tabella u38.20. Elenco di alcune funzioni che intervengono su zone.

Espressione Descrizione
@sum(zona)
Sommatoria dei valori della zona.
@prod(zona)
Prodotto dei valori delle celle.
@avr(zona)
Media aritmetica di tutti i valori validi.
@count(zona)
Quantità di celle contenenti valori validi.
@max(zona)
Valore massimo.
@min(zona)
Valore minimo.

Tabella u38.21. Elenco di alcune funzioni matematiche comuni.

Espressione Descrizione
@sqrt(n)
Radice quadrata.
@exp(n)
Funzione esponenziale.
@ln(n)
Logaritmo naturale.
@log(n)
Logaritmo a base 10.
@floor(n)
L'intero più grande non superiore del valore fornito.
@ceil(n)
L'intero più piccolo non inferiore del valore fornito.
@rnd(n)
Arrotonda all'intero.
@round(n,m)
Arrotonda n all'm-esima cifra decimale.
@abs(n)
Valore assoluto.
@pow(n,m)
n elevato alla potenza di m.
@pi
P-greco.
@dtr(n)
Converte da gradi a radianti.
@rtd(n)
Converte da radianti a gradi.
@sin(n)
Seno.
@cos(n)
Coseno.
@tan(n)
Tangente.
@asin(n)
Arco-seno.
@acos(n)
Arco-coseno.
@atan(n)
Arco-tangente.

Tabella u38.22. Elenco di alcune funzioni relative a date e orari.

Espressione Descrizione
@now
Tempo attuale in secondi (dal riferimento del 31 dicembre 1969, ore 24:00).
@dts(mese,giorno,anno)
Tempo in secondi corrispondente alla data fornita.
@tts(ore,minuti,secondi)
Orario in secondi a partire dalla mezzanotte.
@date(tempo_in_secondi)
Restituisce la data corrispondente in forma di stringa.
@year(tempo_in_secondi)
Restituisce l'anno.
@month(tempo_in_secondi)
Restituisce il mese.
@day(tempo_in_secondi)
Restituisce il giorno.
@hour(orario_in_secondi)
Restituisce l'ora.
@minute(orario_in_secondi)
Restituisce i minuti.
@second(orario_in_secondi)
Restituisce i secondi.

Formato del file

I file gestiti da SC sono file di testo contenenti direttive del linguaggio interno al foglio elettronico. Per fare un esempio iniziale, basti pensare a un foglio in cui siano state assegnate solo le celle A0 e B1, come si vede nell'esempio:

         A         B         C         D         E         F         G
0       123.00
1                ciao   <

In pratica, la cella A0 contiene il numero 123, mentre la cella B1 contiene la stringa ciao. Tutto il resto si considera inutilizzato. Salvando questo lavoro in un file, si ottiene ciò che segue:

# This data file was generated by the Spreadsheet Calculator.
# You almost certainly shouldn't edit it.

let A0 = 123
label B1 = "ciao"
goto B1

Si intuisce che le righe che iniziano con il simbolo #, assieme a quelle che sono bianche o semplicemente vuote, vengono ignorate. Tutto il resto viene definito in forma di direttiva, corrispondente a istruzioni del foglio elettronico. In particolare, è stata anche memorizzata la posizione del cursore, che si presume si trovasse sulla cella B1.

Nell'ambito delle direttive, ciò che appare racchiuso tra parentesi quadre viene considerato un commento; di conseguenza viene ignorato. Per esempio, se si modifica il file a mano, nel modo seguente, tutto funziona regolarmente, senza che queste cose influiscano:

# This data file was generated by the Spreadsheet Calculator.
# You almost certainly shouldn't edit it.

let [ciao ciao] A0 = 123
label B1 = "ciao" [ciao ciao]
goto B1

Negli esempi che sono già stati mostrati nel capitolo, al riguardo di queste istruzioni interne del foglio elettronico, sono già apparse indicazioni tra parentesi quadre, usate per suggerire all'utente le informazioni da inserire. Evidentemente, tali indicazioni non fanno parte delle istruzioni.

La tabella u38.26 riepiloga le istruzioni principali del foglio elettronico, con le quali si può realizzare direttamente un file per SC. Altre istruzioni possono essere individuate semplicemente osservando il comportamento di questo programma.

Tabella u38.26. Alcune istruzioni interne del foglio elettronico, utili per la realizzazione diretta dei suoi file.

Espressione Descrizione
let cella = espr_num
Assegna alla cella un'espressione numerica.
label cella = espr_str
Assegna alla cella un'espressione stringa.
format colonna = larghezza decimali tipo
Modifica il formato di una colonna.
fmt zona str_formato
Modifica il formato di una zona.
set byrows
Ricalcola per righe.
set bycols
Ricalcola per colonne.
set iterations = n_iterazioni
Iterazioni per il ricalcolo.
set tblstyle = stile
Definisce lo stile di esportazione delle tabelle.
set autocalc
Ricalcola automaticamente.
set !autocalc
Non ricalcola automaticamente.
set numeric
Inserimento numerico rapido.
set !numeric
Inserimento numerico normale.
set cellcur
Evidenzia la cella corrente.
set !cellcur
Non evidenzia la cella corrente.
set toprow
Mostra le informazioni sulla prima riga.
set !toprow
Non mostra le informazioni sulla prima riga.
goto cella
Porta il cursore sulla cella indicata.

1) SC   dominio pubblico

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net