[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


246. Spreadsheet calculator

SC, ovvero Spreadsheet calculator, è un applicativo per l'elaborazione di fogli elettronici di vecchia concezione che è tuttora valido. 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.

A prima vista, l'uso di questo foglio elettronico è piuttosto complicato. In effetti, si tratta di uno di quei programmi che richiede studio e anche un po' di memoria per i comandi che non sono così intuitivi. Nonostante tutti questi problemi, rimane un applicativo fondamentale nell'informatica del software libero.

246.1 Concetti generali

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

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

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

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 246.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 246.2.

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

Figura 246.2: Interpretazione delle cifre che descrivono il formato numerico di una cella.

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.

246.1.1 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.

246.1.2 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 246.1 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.

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.

Tabella 246.1: Comandi principali per la navigazione tra le celle del foglio.

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 246.2 riepiloga altri comandi per lo spostamento 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.

Tabella 246.2: Comandi speciali per la navigazione nel foglio.

246.1.3 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 246.3 riepiloga le funzionalità più importanti della modalità di comando, quando si sta lavorando 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.

Tabella 246.3: Comandi disponibili quando si modifica qualcosa sulla prima riga dello schermo.

246.2 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 246.4 riepiloga le opzioni più importanti. Successivamente vengono mostrate altre tabelle contenenti la descrizione di comandi interattivi.

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

Tabella 246.4: Opzioni principali da dare all'avvio dell'eseguibile.

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 246.5 riepiloga i comandi più importanti da impartire in questo modo.

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.

Tabella 246.5: 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].

È 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.

246.3 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 246.3 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>}

mentre se 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 questo sia inteso volutamente.

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 diventerà più chiaro in seguito, quando verrà 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.

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.

Tabella 246.6: 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.

246.3.1 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:

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 che viene 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. In pratica,

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

si traduce in pratica nella cella nel modo seguente:

-=-=-=-=-=

246.3.2 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.

246.4 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 246.2, 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 nella tabella 246.7.

Comando Descrizione
f <larghezza> <decimali> <tipo> Formato generale della colonna.
  tipo:
    0 Virgola fissa.
    1 Notazione scientifica.
    2 Notazione ingegnieristica.
    3 Data.
F <stringa-formato> Formato particolare della cella.
  # 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.
/F <zona> <stringa-formato> Formato particolare di una zona di celle.

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

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 il meglio 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.

Esempi

[f]

i> format [for column] A 15 3 0[Invio]

Modifica il formato della colonna A, in modo da avere 15 caratteri di larghezza, riservando tre cifre per i decimali, mostrando valori a virgola fissa.

[f]

i> format [for column] A 15 3 1[Invio]

Come nell'esempio precedente, utilizzando però una notazione scientifica.

[F]

i> fmt [format] A1 "########.000[Invio]

Modifica il formato particolare della cella A1, in modo da rappresentare valori che vanno da un minimo di -9999999,999 a un massimo di 99999999,999.

[F]

i> fmt [format] A2 "###%[Invio]

Modifica il formato particolare della cella A1, in modo da rappresentare valori percentuali interi.

[F]

i> fmt [format] A3 "########.000;\(########.000\)[Invio]

Modifica il formato particolare della cella A3, in modo da rappresentare valori che vanno da un minimo di -99999999,999 a un massimo di 99999999,999. In particolare, i valori negativi sono rappresentati tra parentesi.

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.

246.5 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.

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.

Tabella 246.8: Comandi per la gestione dei file.

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 una pipeline. In pratica, se il nome del file inizia con il simbolo `|', si intende che si tratti di una pipeline.

246.6 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 246.9 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.

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 riempendo una zona.
/f <zona-destinazione> <n-iniziale> <incremento> 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.

Tabella 246.9: Comandi per la gestione delle zone del foglio.

Esempi

[/][x]

i> erase A0:F20[Invio]

Elimina il contenuto delle celle che si trovano nella zona delimitata da A0:F20.

[/][c]

i> copy A0:A7 D0:D7[Invio]

Copia la zona D0:D7 in A0:A7.

[/][c]

i> copy A0:A7 D0[Invio]

Copia la cella D0 in tutta la zona A0:A7.

[/][f]

i> fill B0:B7 10 2[Invio]

Riempie le celle della zona B0:B7 a partire dal numero 10, per continuare con numeri che si incrementano di due unità ogni volta.

[/][d]

i> define "elenco" B0:B7[Invio]

Assegna alla zona B0:B7 il nome `elenco'.

[/][s]

Mostra l'elenco delle zone che hanno un nome, inviando l'elenco sotto il controllo di Less o di un altro programma analogo secondo quanto indicato nella variabile di ambiente `PAGER'. Per uscire dalla visualizzazione, occorre usare i comandi di quel programma. Con Less basta premere la lettera `q'.

[/][F]

i> fmt B0:B7 "####.0000"[Invio]

Assegna alla zona B0:B7 il formato `####.0000'.

246.6.1 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.

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.

Tabella 246.10: Comandi speciali disponibili durante la digitazione nella prima riga dello schermo.

246.6.2 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 sarà alla cella D3. Per indicare un riferimento assoluto, si aggiunge nelle coordinate il simbolo `$', davanti alla componente che si vuole «bloccare». Si osservino gli esempio seguenti:

246.7 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 246.11 riepiloga questi comandi.

Comando Descrizione
Q Conclude il funzionamento del programma.
q "
Ctrl+c "
Esc Annulla il comando in corso.
Ctrl+g "
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.

Tabella 246.11: Comandi vari.

246.8 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.

Espressioni 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 246.12: Elenco degli operatori utilizzabili in presenza di valori numerici e logici.

Espressioni 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 246.13: Elenco di alcuni operatori e di alcune funzioni che hanno a che fare con le stringhe.

Espressioni 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 246.14: Elenco di alcune funzioni che intervengono su zone.

Espressioni 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 246.15: Elenco di alcune funzioni matematiche comuni.

Espressioni Descrizione
@now Tempo attuale in secondi (dal riferimento del 31 dicembre 1969).
@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.

Tabella 246.16: Elenco di alcune funzioni relative a date e orari.

246.9 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,

# 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

tutto funziona regolarmente, senza che queste cose influiscano.

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 246.17 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.

Espressioni 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.

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

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]