La automazione
Dalle macchine semplici alle macchine programmabili

Scheda 4
Altro software

1. Hardware e software: una breve sintesi
2. I fogli elettronici
3. I programmi per il calcolo simbolico
4. Perché usare la CT, perché usare programmi per il calcolo simbolico
5. I programmi di geometria dinamica
6. Esercizi
Sintesi

 

1. Hardware e software: una breve sintesi

    Per immagazzinare dati, programmi, … senza ingombrare la memoria del computer, per memorizzare informazioni da usare su più computer, … si ricorre a supporti per la memorizzazione sui quali possono essere registrate (e lette) con tecniche opportune sequenze di bit di varia lunghezza. Più personal computer possono essere collegati in rete in modo da poter mettere in comune dati, programmi, risorse (ad es. una stampante).  L'insieme dei programmi in linguaggio macchina che il calcolatore impiega per il suo funzionamento (per gestire programmi vari, per comunicare con unità periferiche - stampanti, supporti di memorizzazione, …) viene detto sistema operativo (i sistemi operativi più diffusi, al momento, sono Windows, Mac-OS, Linux).
    Una sequenza di informazioni registrata (in forma codificata, nella memoria del computer o su un supporto) con un nome specifico viene detta file (termine inglese il cui significato originale è "archivio"); ad esempio un file può essere costituito da una successione di dati numerici, da un programma, da un testo, da una rappresentazione grafica ,…
    La misura della memoria di solito viene espressa mediante un'unità pari a 210 (=1024) byte, detta kilobyte (e indicata con KB o, più in breve, K) poiché 1024 ≈ 1000. Per quantità maggiori si ricorre ai Megabyte: 1 MB = K² ≈ 1 milione di byte (nota: si usa KB invece di kB in quanto con la k minuscola si indicherebbero esattamente 1000 B).
    La struttura fisica del calcolatore (cioè l'insieme dei dispositivi meccanici, elettrici, magnetici ed elettronici che lo compongono) viene detta hardware (termine inglese il cui significato originale è "ferramenta"; è derivato da "hard" = "duro" e "ware" = "oggetto" per indicare letteralmente una "collezione di oggetti duri"), mentre i programmi vengono indicati con il termine software (neologismo, cioè nuova parola, che significherebbe letteralmente "collezione di oggetti molli").  I programmi d'uso generale (con cui si possono creare file di vario genere) vengono chiamati anche applicazioni e i file (programmi, testi, disegni,collezioni di dati, …) creati e leggibili mediante essi vengono detti documenti.
    Sono applicazioni anche i browser, ossia i programmi per leggere e attivare i collegamenti presenti in ipertesti come questo.

2. I fogli elettronici

    Tra gli strumenti per automatizzare procedimenti di calcolo particolarmente usati sono da ricordare i fogli elettronici (spread sheet). Ne esistono numerosi tipi, ma tutti con un funzionamento abbastanza simile, senza particolari differenze nelle prestazioni tra i prodotti a pagamento e quelli "freesoftware" (liberamente utilizzabili, "scaricabili" via Internet).  Essi permettono di preparare, elaborare (e rappresentare graficamente) tabelle di dati simili alla seguente, relativa ad una scuola secondaria superiore (già considerata nella scheda 4 di Le statistiche).  Nelle celle (A1, B1, …, A2, B2, …) si possono mettere costanti numeriche, costanti stringa o espressioni come quella nella cella A7, che, nell'uso, vengono chiamate formule.
    La "formula" in A7 va interpreta come un'assegnazione: PONI A7 = A1-D1-C2+D2, che in questo caso equivale ad assegnare alla cella A7 il valore 181−36−126+35.

 a.s. 2006/07a.s. 2007/08
(2.1) totale iscrittiripetentitotale iscrittiripetenti
 
ABCD
11818115436
21463812635
32454814037
…         …         …
7=A1-D1-C2+D2   
8=A2-D2-C3+D3   
classe 1
classe 2
classe 3
 
 
 

    Con opportuni comandi azionabili con la tastiera o il mouse si può far sì che sullo schermo la tabella passi dallo stato precedente a quello parzialmente riprodotto sotto, con la visualizzazione del valore assegnato alle celle contenenti formule.
A7 rappresenta gli abbandoni tra 1° e 2° anno: da A1 (ex iscritti al 1°) si tolgono D1 (ri-iscritti al 1°) e * (passati al 2°); * è uguale a C2 (totale iscritti al 2°) meno D2 (ripetenti). Analogamente A8 rappresenta gli abbandoni tra 2° e 3°.

(2.2)     
754   
88   
 

  

    Le variabili A1, D1, … impiegate in queste assegnazioni, a differenza di quelle impiegate nei linguaggi di programmazione, non sono dei nomi generici, ma nient'altro che le coordinate delle celle della tabella. Esse rappresentano il valore numerico della cella o il valore associato alla cella da un'altra assegnazione.

 1 
    Se in B7 metto la formula =A2/100 quale valore viene associato a B7?
    E se ci metto la formula =A7?

    I dati da elaborare non vengono introdotti mediante istruzioni di input, ma devono essere battuti direttamente nelle varie celle della tabella. Se ci si accorge che si è sbagliata la battitura di un dato o se, comunque, si vuole cambiarlo, basta posizionarsi sulla cella (con il mouse o con i tasti direzionali) e ribatterlo: automaticamente vengono ricalcolati e modificati anche i valori delle celle A7 e A8. Il foglio elettronico, ogni volta che si modifica una cella ricalcola tutti i valori.
    Con opportuni comandi (con la tastiera o il mouse) si possono selezionare delle celle, memorizzarne il contenuto e riprodurlo in altre celle.  Se si tratta di una costante, essa viene riprodotta tale e quale; se è una formula, può essere riprodotta in forma modificata.
    Ad esempio nella tabella precedente la formula in A8 (abbandoni tra 2a e 3a) non è stata battuta direttamente: è stata selezionata la cella A7 (abbandoni tra 1a e 2a) e se ne è riprodotto il contenuto in A8. Nella riproduzione la formula è stata automaticamente modificata; poiché rispetto ad A7 ci siamo spostati in basso di un posto, automaticamente le variabili vengono modificate in modo da riferirsi a celle tutte abbassate di un posto: A1 viene trasformata in A2, C2 in C3, …, cioè  =A1-D1-C2+D2 viene trasformata in  =A2-D2-C3+D3. Nello stesso modo possiamo trovare automaticamente le espressioni che rappresentano gli abbandoni negli anni successivi.
    Se davanti a una "coordinata" metto $, essa non viene variata durante la riproduzione. Ad es. se in B7 e C7 metto, rispettivamente, il numero dei maschi iscritti in 1a nel 2006/07 e quello delle femmine iscritte, e in B8 metto la formula  =B7/$A1*100, viene calcolata e associata a B8 la percentuale degli iscritti maschi. Se seleziono e ricopio B8 in C8 viene registrata in D8 la formula  =C7/$A1*100, che rappresenta la percetuale delle femmine. Se non avessi "$" davanti ad A1 ricopiando in C8 avrei invece ottenuto  =C7/B1*100, che non avrebbe rappresentato la percentuale delle femmine.
    Con una formula di assegnazione si possono effettuare calcoli riferiti anche a insiemi di celle. Ad esempio se volessi calcolare il totale degli iscritti nelle 5 classi della scuola, potrei mettere in una qualunque cella libera, ad esempio in A6, la formula di assegnazione  =Sum(A1:A5). Infatti Sum(A1:A5) ha come valore la somma dei valori associati alle celle che stanno nel rettangolo di celle che va da A1 ad A5. Nel calcolo vengono saltate le celle del rettangolo che sono vuote (in alcuni fogli invece di "Sum" occorre impiegare un nome differente).

3. I programmi per il calcolo simbolico

    Vi sono applicazioni dedicate ad attività di tipo matematico che, tra i loro sottoprogrammi, ne hanno alcuni destinati alla effettuazione di calcoli simbolici.  Senza approfondire l'uso di queste applicazioni, possiamo limitarci al funzionamento di WolframAlpha. Eccone un esempio d'uso:

    Le formule generate con questi programmi possono poi facilmente essere inserite in un qualunque documento di testo (Html, OpenOffice, ...).

 

4. Perché usare la CT, perché usare programmi per il calcolo simbolico

    Con le CT si possono svolgere le 4 operazioni e calcoli più complessi in frazioni di secondo, mentre a mano per gli stessi calcoli si impiegherebbe molto più tempo e sarebbe facile commettere piccoli errori di distrazione (dimenticare uno zero o un riporto, scrivere o leggere male una cifra, interpretare male un incolonnamento, …) e ottenere risultati molto diversi da quelli corretti.  Ormai da molti decenni, la capacità di eseguire a mano velocemente complicati calcoli aritmetici non è più considerata una abilità intellettuale particolarmente significativa:  richiede solo un po' di addestramento a svolgere alcune attività di tipo meccanico, che non a caso sono alla portata di dispositivi molto elementari, poco più complessi di un contagiri.

    Ecco come usare la nostra "grande CT" per calcolare √(15·17·(1281-354)/32), e ottenere:

    Fino a circa mezzo secolo fa per certi calcoli (ad esempio per le radici quadrate e per gli elevamenti a potenza) si usavano delle tavole numeriche che elencavano una grande quantità di input e i relativi output. Fino a qualche anno fa, in molti libri scolastici sono sopravvissute tavole simili, per calcoli di questo tipo o per altri calcoli che affronteremo più avanti (funzioni trigonometriche, logaritmi, funzioni di tipo probabilistico, …) e alcuni insegnanti vietavano l'uso delle CT in classe: la scuola a volte recepisce in ritardo i cambiamenti nella cultura e nelle professioni.
    Ciò che è importante culturalmente e operativamente, per usare correttamente e consapevolmente le CT, è:
•  capire, di fronte a una situazione problematica, quali calcoli occorre svolgere per risolverla (è inutile saper fare velocemente divisioni e moltiplicazioni se non si sa come affrontare il calcolo di una percentuale);
•  saper stimare l'ordine di grandezza ed eventualmente qualche cifra significativa del risultato, sia con calcoli approssimati, sia facendo considerazioni legate alla situazione (se devo determinare l'altezza di un palazzo mi aspetto che il risultato sia di poche decine di metri, nel caso dello spessore di un foglio di carta mi aspetto una misura vicina al decimo di millimetro); ciò serve sia a fare valutazioni nei casi in cui devo compiere delle scelte in tempi rapidi, sia a controllare le uscite della CT (un tasto mal premuto può dar luogo a risultati errati);
•  conoscere possibilità e limiti della CT in modo da impostare correttamente i calcoli e interpretarne le uscite.
    Posso fare considerazioni analoghe per i programmi per il calcolo simbolico: svolgono in frazioni di secondo calcoli che a mano richiederebbero molto più tempo e che sarebbe facile sbagliare per errori di distrazione. E in genere, come si è già osservato, sono integrati in programmi più generali che consentono anche di fare grafici ed elaborazioni numeriche, permettendo di combinare varie tecniche risolutive, e di controllare meglio ciò che si sta facendo.
    Fino a qualche anno fa era importante che un matematico o un fisico (e, in parte, un ingegnere) avesse un buon allenamento nello svolgere calcoli di tipo simbolico, anche se, a dire il vero, nella sua attività non avrebbe mai incontrato i calcoli "complessi" che venivano proposti come esercizi in molti libri di scuola:
    un matematico e un fisico si trova spesso di fronte a formule che è difficile trasformare perché vi entrano in gioco funzioni particolari, più "strane" delle radici quadrate e degli elevamenti a potenza, non perché siano formule lunghe, a numerosi "piani", con tante lettere combinate in modi intricati, come accade negli esercizi di cui abbiamo parlato.
    L'impiego delle applicazioni per il calcolo simbolico ha diminuito ulteriormente l'importanza di questo allenamento. A maggior ragione, fra qualche anno (quando i mezzi di calcolo saranno ancora più diffusi e di più piccole dimensioni) i pochi che nella vita si troveranno ad avere a che fare con calcoli simbolici di una certa complessità, non avranno da affrontarli a mano: le parti più meccaniche le demanderanno a un computer. Sarà invece importante che essi sappiano:
•  descrivere situazioni mediante opportune formule;
•  leggere un termine o una formula (la sua articolazione in sottotermini, …), conoscere le nozioni di base del calcolo simbolico (scegliere le regole di riscrittura da applicare, trovare le funzioni inverse e tener conto dei loro insiemi di definizione, …); queste abilità sono utili sia per lo svolgimento dei semplici calcoli simbolici che ricorrono frequentemente nelle attività scientifiche, sia per scegliere comandi, sottotermini, … usando un programma di calcolo simbolico per scrivere e elaborare una certa espressione;

•  conoscere le modalità d'uso e il funzionamento dell'applicazione per il calcolo simbolico impiegata;
•  e, comunque, essere consapevole che con altre applicazioni possono cambiare le convenzioni, i nomi usabili come variabili, i simboli e i modi in cui indicare le costanti e le funzioni, …
    Questi sono i motivi per cui in tutto il mondo nella scuola viene dato molto meno "peso" all'addestramento al "calcolo letterale". Del resto chi proseguirà gli studi in facoltà scientifiche raramente avrà a che fare con calcoli simbolici complessi. In genere gli studenti che nella scuola superiore hanno avuto un insegnamento della matematica che ha investito più tempo in attività di questo genere a scapito di attività meno "meccaniche" sono quelli che, negli studi universitari, incontrano maggiori difficoltà.

5. I programmi di geometria dinamica

    Esiste software con cui si possono descrivere figure da tracciare dandone una descrizione algebrica, sotto forma di equazione o indicando le coordinate di alcuni punti che consentono di ricostruirle. Abbiamo già visto come farlo con degli script nella scheda Le statistiche-2.  Un altro esempio:  il cerchio visualizzato a fianco   
  
function f(x) { y =  Math.sqrt(1-x*x); return y }
function g(x) { y = -Math.sqrt(1-x*x); return y }

aX = -1.5; bX = 1.5; aY = -1.5; bY = 1.5
Dx = 1/2; Dy = 1/2
    Esiste software che consente il tracciamento di figure con il mouse e di averne contemporaneamente una descrizione algebrica.  Ecco sotto il tracciamento di un cerchio realizzato con un programma di questo genere cliccando l'icona che corrisponde al tracciamento di un cerchio a partire dal centro e un suo punto e, quindi, cliccando centro e punto. Oltre alla figura ottieni anche una descrizione algebrica. Se vuoi, puoi poi modificare la figura trascinandone col mouse uno dei due punti che la identificano.

    Applicazioni di questo tipo (come GeoGebra e Cinderella: vedi) vengono chiamate di geometria dinamica.

6. Esercizi

 e1 
    Ho ottenuto la piantina di un appartamento in questo modo:  ho fotocopiato l'originale aumentandone del 10% le dimensioni e poi fotocopiato la fotocopia con la stessa scala di ingrandimento. Nella nuova piantina l'appartamento appare lungo 205 mm.  Quanto era lungo nella pianta originale?   Ho affrontato il problema usando la nostra "grande CT", ottenendo l'esito indicato con (0).  Quale tasto ho premuto?  Poi ho proceduto come indicato in (1) o in (2)?  Qual è la risposta al problema?

    In alternativa potevo usare direttamente quanto segue (e poi usare "Round"):

 e2 
    La mia banca mi offre una forma di deposito tale che se verso un capitale, impegnandomi a non fare prelievi, dopo 2 anni posso prelevarlo aumentato del 10%; il deposito è rinnovabile alle stesse condizioni per altri 2 anni. Quanto devo mettere come capitale iniziale per poter avere alla fine 205 mila euro?

 e3 
   Quali comandi, al posto di quelli indicati all'inizio di paragrafo 5, ho utilizzato per ottenere la figura a lato?   

  
 e4 
   Quali comandi, al posto di quelli indicati all'inizio di paragrafo 5, ho utilizzato per ottenere la figura a lato?

 e5 
   Quali comandi, al posto di quelli indicati all'inizio di paragrafo 5, ho utilizzato per ottenere la figura a lato?   

1) Segna con l'evidenziatore, nelle parti della scheda indicate, frasi e/o formule che descrivono il significato dei seguenti termini:

file (§1),   variabili di un foglio elettronico (§2),   geometria dinamica (§5).

2) Su un foglio da "quadernone", nella prima facciata, esemplifica l'uso di ciascuno dei concetti sopra elencati mediante una frase in cui esso venga impiegato.

3) Nella seconda facciata riassumi in modo discorsivo (senza formule, come in una descrizione "al telefono") il contenuto della scheda (non fare un elenco di argomenti, ma cerca di far capire il "filo del discorso").

script:   piccola CT   grande CT   isto   isto con %   boxplot   striscia   100   60   ordina   Grafici   Perc   divisori   cerchio