Calcolatore (3) - Software
Hardware e software: una breve sintesi
Il
"cervello" del calcolatore è costituito oltre che dalla
CPU [che esegue calcoli aritmetici elementari e confronti tra
numeri codificati in bit, trasferisce dati dalle celle di memoria nei
registri di lavoro,
: calcolatore(1)] da una parte di circuiti dedicati solo
alla memorizzazione (memoria centrale).
La memoria centrale si distingue in:
ROM
(read only memory: memoria di sola lettura),
insieme di celle di memoria in cui sono contenute informazioni che ha
inserito il costruttore e che l'utente non può modificare (ad
esempio istruzioni in linguaggio macchina per effettuare particolari
calcoli aritmetici, per riconoscere i dischi introdotti dall'utente,
per far comparire al momento dell'accensione alcune informazioni sullo
schermo,
), e in:
RAM
(random access memory: memoria a cui si può
accedere liberamente), insieme di celle di memoria in cui
(durante l'esecuzione di un programma o in seguito a opportuni comandi
inviati dall'utente) possono essere memorizzati temporaneamente dati,
programmi,
.
Per immagazzinare dati, programmi,
senza ingombrare permanentemente la RAM del calcolatore (o per
far lavorare il calcolatore su insiemi di dati che non starebbero
tutti contemporaneamente nella RAM), per memorizzare informazioni da
usare più volte sullo stesso calcolatore o su altri dello stesso
tipo o analoghi,
si ricorre ad altri supporti per la
memorizzazione (floppy disk - dischetti
magnetici flessibili -, hard disk - dischi rigidi -,
) sui
quali possono essere registrate (e lette) con tecniche opportune,
mediante dispositivi azionati dal calcolatore, sequenze di bit di
varia lunghezza. In genere questi supporti sono
indispensabili in quanto la RAM si "azzera" automaticamente
allo spegnimento del calcolatore.
Più
personal computer possono essere collegati in rete, cioè
collegati via cavo in modo da poter mettere in comune dati, programmi,
risorse (ad esempio una stampante).
L'insieme
dei programmi in linguaggio macchina che il calcolatore impiega per
gestire programmi traduttori, per comunicare con unità
periferiche (stampanti, supporti di memorizzazione,
), per
utilizzare al meglio la RAM,
viene detto sistema operativo. Esso risiede in parte permanentemente tutto nella ROM; una gran parte, in genere,
viene inserita nella
RAM mediante un'unità periferica quando si inizia ad impiegare
il calcolatore (ciò viene fatto automaticamente se il sistema è
registrato sul disco fisso).
I
sistemi operativi più diffusi (al momento) sono
Windows (PC Ibm-compatibili, a volte chiamati solo PC), il Mac-OS (PC Macintosh) e Linux (sia su PC che su Macintosh).
Una
sequenza di informazioni registrata (in forma codificata) nella RAM o
su un disco o su altri supporti di memorizzazione sotto un nome
specifico (il formato del quale dipende in parte dal sistema operativo
impiegato) 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 = K2 ≈
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").
Alla voce calcolatore(2) abbiamo già considerato sia i programmi redatti in linguaggi evoluti, sia i programmi in
linguaggio macchina ottenibili dai precedenti mediante un processo di compilazione. Fanno
parte del software (in quanto non sono altro che programmi in linguaggio macchina) anche il sistema operativo e altri programmi che
hanno lo scopo di facilitare l'uso del sistema operativo o la ricerca
di documenti o l'individuazione e l'eliminazione di "virus"
o
Abbiamo già osservato che, oltre agli ambienti di programmazione (con cui si possono creare nuovi programmi), vi sono programmi in linguaggio macchina per realizzare e memorizzare testi, disegni, collezioni di dati,
.
Ambienti di programmazione e programmi d'uso generale come questi vengono chiamati anche
applicazioni e i file (programmi, testi, disegni,collezioni di dati,
)
creati e leggibili mediante essi vengono detti documenti.
Un'applicazione (gratuita) utilissima per molte attività matematiche è
R, a cui abbiamo accennato più volte in
calcolatore(2).
Il suo uso è discusso ed esemplificato qui, oltre che
in molti esercizi.
Altre applicazioni sono presentate qui.
Sono applicazioni anche i browser, ossia i programmi per leggere e attivare i collegamenti presenti in ipertesti come questo. Funzionano per vari aspetti in modo simile a un programma traduttore: interpretano un documento sorgente scritto in un opportuno linguaggio, l'HTML, e producono come output testi, immagini e suoni.
Per approfondimenti: .
I fogli elettronici
I linguaggi di programmazione sono lo strumento tipico per automatizzare
procedimenti di calcolo. Esistono però anche altre applicazioni
che possono essere utilizzate al loro posto.
Ad
esempio 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, presenti nei CD allegati a riviste informatiche o "scaricabili" via Internet) o "sharesoftware" (provabili
per un po' di tempo, dopo il quale si è "invitati" a
inviare una certa somma di denaro al produttore, ottenendo in cambio
in genere una versione più estesa).
I
fogli elettronici sono applicazioni che permettono di
preparare, elaborare (e rappresentare graficamente) tabelle di dati
simili alla seguente, relativa alla scuola secondaria
superiore già considerata alla voce grafi. 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 (in alcuni fogli elettronici invece di "="
occorre utilizzare un simbolo differente).
a.a. 1997/98 | a.a. 1998/99 | |||||||||||||||||||||||||||||||||||||||
totale iscritti | ripetenti | totale iscritti | ripetenti | |||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||
classe 1a | ||||||||||||||||||||||||||||||||||||||||
classe 2a | ||||||||||||||||||||||||||||||||||||||||
classe 3a | ||||||||||||||||||||||||||||||||||||||||
totale iscritti | ripetenti | totale iscritti | ripetenti | |||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
classe 1a | ||||||||||||||||||||||||||||||
Le variabili A1, D1,
impiegate in queste
assegnazioni, a differenza di quelle impiegate nei linguaggi di programmazione, non sono dei nomi generici (a cui, nel corso della traduzione in linguaggio macchina, vengono assegnate delle celle di memoria), 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.
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.
In un ambiente di programmazione le
assegnazioni vengono eseguite (a meno di "GOTO
" o altre istruzioni che cambino il flusso dell'esecuzione)
secondo l'ordine con cui compaiono nella finestra di lista.
Il foglio elettronico, invece, 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 1997/98 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
Tra le varie altre applicazioni che si possono
usare per manipolare dati organizzati in tabelle vi è R. Ecco qui
come si potrebbero analizzare i dati precedenti.
I programmi per il calcolo simbolico
Un altro tipo di applicazioni impiegato per automatizzare calcoli di tipo
matematico è costituito dai programmi per
il calcolo simbolico. Esistono sia applicazioni dedicate solo
a tale attività, sia applicazioni impiegabili per molte attività
di tipo matematico che, tra i loro sottoprogrammi, ne hanno
alcuni destinati alla effettuazione di calcoli simbolici. Pił avanti
considereremo un sito internet da cui è possibile eseguire calcoli simbolici e scrivere facilmente formule a pił piani; ora, comunque,
vediamo qualche esempio d'uso di una vecchia applicazione ideata nel 1988 per consentire lo svolgimento di queste attivitą.
L'applicazione a cui accenniamo, di uso particolarmente semplice, è
Derive (versione per Windows).
Vediamo,
ad esempio, come scrivere e trasformare A = πr2.
Se
scelgo Espressione dal menu Crea/Author o se
"clicco" l'icona ("matita") ho la possibilità
di scrivere (essere "autore" di) un'espressione. Nella
finestra di dialogo che appare batto l'espressione seguente (e
infine premo
pi
viene usato per indicare pi greca. Non serve battere il segno di
moltiplicazione: Derive, normalmente, usa come variabili singole
lettere e quindi "comprende" che
r è una nuova variabile
(pi non
viene interpretato come p*i
in quanto pi
è una parola "riservata"). Nella parte superiore dello schermo appare:
2 #1: a = π·r
Vediamo un esempio di manipolazione simbolica: come si può invertire la già considerata formula A=πr2 per ricavare r in funzione di A. Evidenzio #1. Scelgo Algebricamente dal menu Risolvi. Appare una finestra di dialogo con visualizzata l'equazione "#1". In alternativa avrei potuto battere direttamente l'equazione nella finestra di dialogo. In un opportuno riquadro devo selezionare la variabile rispetto alla quale voglio risolvere l'equazione, cioè r. Se clicco su "OK" appare:
2 #2: SOLVE(a = π·r , r)
Se poi aziono Semplifica - Base ottengo la coppia di formule:
#3: [r = a/π, r = - a/π]
Queste si sarebbero potute ottenere direttamente se nella finestra di dialogo di Risolvi si fosse cliccato su "Semplifica" invece che su "OK" (nel caso in questione, se A è l'area del cerchio di raggio r, la soluzione r = - non è significativa: r, in quanto misura di una lunghezza, non può essere un numero negativo). Se sei interessato ad approfondimenti, clicca qui.
Esistono anche applicazioni per scrivere espressioni matematiche, che non consentono però di effettuare calcoli simbolici. La figura seguente riproduce una fase della costruzione di una formula mediante il sottoprogramma per costruire formule di cui è dotato OpenOffice (un ambiente software d'uso gratuito che include numerose applicazioni per elaborare testi, immagini, dati, ). Con il mouse si possono attivare finestre che includono numerosi simboli (qui ne è visualizzata una), nelle quali si possono man mano selezionare i simboli con cui si vuole costruire la formula; in una finestra "comandi" appare la codifica della formula; in essa si possono sostituire ai "segnaposto" (<?>) variabili o costanti, introdurre delimitatori (parentesi graffe, in questa applicazione) per delimitare sottotermini o scrivere direttamente (senza ricorrere alle finestre di simboli) simboli di funzione; in un'altra finestra la formula appare visualizzata "a più piani" nella sua veste finale.
Simboli matematici, anche molto complessi, possono essere scritti anche in R (vedi qui, "simboli nei grafici").
Anche con questi applicazioni per scrivere una formula occorre padroneggiarne la struttura.
Perché usare la CT, perché usare programmi per il calcolo simbolico
Con
le CT si possono svolgere le 4 operazioni e calcoli più
complessi (elevamenti a potenza, radici quadrate e altre funzioni)
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. E in effetti richiede soltanto 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.
Fino
a qualche decennio 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 attraverso calcoli approssimati, sia
facendo considerazioni legate alla situazione (se dobbiamo determinare
l'altezza di un palazzo ci aspettiamo che il risultato sia di poche
decine di metri, nel caso dello spessore di un foglio di carta ci
aspettiamo una misura vicina al decimo di millimetro); ciò serve
sia a fare valutazioni nei casi in cui si devono compiere delle scelte
in tempi rapidi, sia a controllare le uscite della CT (un tasto
mal premuto può dar luogo a risultati errati);
conoscere
le possibilità e i limiti della CT in modo
da impostare correttamente i calcoli e da interpretarne le uscite.
Possiamo
fare considerazioni analoghe per i programmi per il
calcolo simbolico: svolgono in pochissimo tempo (frazioni di
secondo) calcoli che a mano richiederebbero molto più tempo e che
sarebbe facile sbagliare per errori di distrazione. E in genere, come abbiamo già osservato, sono integrati in programmi più generali che consentono anche di fare grafici ed elaborazioni numeriche, permettendoci di combinare varie tecniche risolutive (e di controllare meglio ciò che stiamo facendo).
Clicca qui per un semplice esempio d'uso di uno dei software matematici
attualmente più diffusi: Maple.
Software altrettanto diffuso è Mathematica, di cui esiste una versione gratuita
accessibile da rete: WolframAlpha (puoi accedere
ad esempi d'uso di questo software cliccando qui o
o ricorrendo al link presente nella riga finale
del documento a cui puoi accedere cliccando, in fondo a questa pagina, l'icona ). Ecco a lato che cosa si ottiene
introducendo, per esempio, |
Un aspetto a cui è importante prestare attenzione è che, a seconda del linguaggio formale impiegato (che in una stessa applicazione, come si è visto sopra per Derive, può dipendere dalle opzioni scelte) può cambiare il modo in cui descrivere un termine. Ad esempio possono cambiare le convenzioni sull'ordine in cui vanno calcolate le diverse operazioni (possibilità di usare scritture a più piani, esplicitazione o meno del simbolo di moltiplicazione, rispetto di una "gerarchia", ), i nomi usabili come variabili, i simboli e i modi in cui indicare le costanti e le funzioni, . Vediamo ad esempio le differenze per due particolari termini:
Ling. usuale |
R | CT | Basic | Derive | WolframAlpha |
x·2 | x*2 | x*2 | x*2 o x2 o x 2 | ||
sqrt(2+a) | √(2+a) |
sqr(2+a), sqrt(2+a) o √(2+a) |