La automazione
Dalle macchine semplici alle macchine programmabili

Considerazioni generali (da rivedere)
scheda 1
scheda 2
La scheda 3 e la scheda 4 sono versioni riviste per Gli Oggetti Matematici; guide alle vecchie versioni:
scheda 3 (da rivedere);  scheda 4 (da rivedere)
    Indice guide

Finalità

    L'unità didattica ha la finalità di introdurre la riflessione sugli algoritmi e sull'uso del calcolatore inquadrandola culturalmente nell'ambito del tema più generale dell'automazione. Con questa scelta si vuole motivare in modo serio e significativo per gli alunni lo studio degli aspetti computazionali e mettere in luce il ruolo decisivo che la matematica ha avuto e assume nei cambiamenti tecnologici e sociali collegati allo sviluppo e alla diffusione delle tecniche informatiche.
    L'analisi del funzionamento delle macchine offre, per altro, l'occasione per schematizzare e descrivere formalmente procedimenti automatici, avviando in modo generale alla programmazione e fornendo esempi significativi su cui si potranno poi svolgere attività con uno o più specifici linguaggi di programmazione.
    L'uso delle calcolatrici e dei calcolatori verrà ripreso sistematicamente in tutte le successive uu. dd.; in varie forme, era già presente nella prima u.d. e è presente nell'u.d. Le statistiche, che viene svolta in parallelo. La riflessione sui numeri-macchina verrà approfondita nell'ambito dell'u.d. I numeri. L'uso della grafica del calcolatore (finora usata a "scatola nera") e il problema della rappresentazione digitale di immagini e di suoni verrà affrontato successivamente; nel contesto della descrizione dell'impiego di procedure grafiche verrà anche introdotto l'uso dei sottoprogrammi (il concetto di sottoprogramma viene comunque sviluppato già a partire dalla prima scheda di La automazione).
    Per quanto riguarda gli aspetti "pratici" relativi all'uso dei calcolatori, si rimanda alle considerazioni svolte poco sotto e nella parte iniziale della guida di Le statistiche . In caso di difficoltà ad usare l'aula computer (poche macchine, impossibilità di lasciar usare l'aula agli studenti da soli o con l'assistenza di personale non docente), si possono trovare soluzioni che tengano anche conto delle disponibilità personali di mezzi di calcolo da parte degli alunni (vedi nota 2.2.4 alla guida di La matematica e i suoi modelli), ad esempio dedicando più tempo a chi non è dotato di un proprio PC, cercando di formare gruppi di lavoro che, con consegne precise, impieghino i PC degli alunni che ne sono dotati, …
    Qui e in futuro la presentazione degli aspetti informatici generali sarà per quanto possibile indipendente da specifici sistemi operativi e linguaggi di programmazione, in modo da lasciare spazio a scelte diverse, da evitare che il materiale invecchi troppo precocemente e, soprattutto, da non sopravvalutare aspetti di tecnica informatica fine a se stessi. Si cercherà, comunque, attraverso la guida e attraverso schede e materiale, di dare indicazioni per la traduzione in attività al calcolatore (in laboratorio o in classe) degli spunti e degli esempi proposti nelle unità didattiche.

Gestione - Contenuti - Tempi

    Vedi la guida all'u.d. Le statistiche. Ricordiamo solamente che le parti più "discorsive", ma per vari aspetti più importanti, è bene che siano presentate dall'insegnante (commentandone la lettura e lasciando agli studenti il compito della lettura per esteso della scheda); gli studenti devono leggere direttamente illustrazioni, diagrammi e quesiti.

Scheda 1 (Che cosa trasformano le macchine?)

    Questa scheda può essere avviata dopo una prima esperienza di attività in aula computer, in cui si sia usato il gioco d'avventura o il programma per elaborazioni statistiche a cui si riferisce il §1. Le prime informazioni di base sull'uso delle macchine (come si accende il computer, come si introducono gli eventuali dischetti, come si usa la tastiera, … ) possono essere fornite contestualmente all'uso di questi due programmi, che sono stati predisposti in modo da non richiedere particolari conoscenze preliminari. In scuole in cui sia possibile fare solo un uso molto limitato dei personal computer, si può affiancare l'uso dimostrativo "collettivo" con i PC di cui si dispone all'utilizzo in classe di programmi (ad es. statistici) incorporati (o già registrati dall'insegnante) nei mezzi di calcolo tascabili di cui si dispone (vedi Guide - Le statistiche).
    I due programmi sono memorizzati in forma compilata come file di nomi GAME(.exe) e STAT(.exe).
    Per l'uso di game si consiglia di schiacciare il tasto blocca-maiuscole.

1.1.1 Tra i due programmi a cui si riferisce il paragrafo 1, la scelta di quello da impiegare per primo in aula computer dipende anche dallo stato dello svolgimento della scheda 1 dell'u.d. Le statistiche: stat può essere impiegato durante lo svolgimento di tale u.d.

1.1.2 Il "gioco" de Il castello stregato può essere affrontato a gruppi (possibilmente due studenti per computer, con l'indicazione che, nei vari tentativi, si alternino alla tastiera). Prima di far affrontare il quesito 1 è bene lasciare che gli alunni annotino nel modo preferito le scelte e gli esiti dei vari tentativi.
    A proposito del quesito 1 osserviamo che il diagramma completato è riportato nel quesito 17, con le risposte "sì" e "no" in uscita dal test "Hai T (la tuta)?" (dopo il messaggio 12) invertite. Gli alunni, attraverso un organico procedimento per tentativi, devono gradualmente completare il diagramma. Possono poi, seguendo (a ritroso, ma non solo) il diagramma, individuare le condizioni necessarie per uscire dal castello:

l'OK dopo 18-"Hai M?" è raggiungibile se si ha M e

si ha T, [non si ha P] si ha B e

si è scelta A come uscita iniziale

o si è scelta la porta B dopo il messaggio 7 e si è scelta l'uscita iniziale B

o si ha C e

si è scelta la porta A dopo il messaggio 7, [non si ha F], e si ha B in modo da avere potuto prendere B come porta iniziale B

o [non si ha T, non si ha P] si ha B e si proviene dalla porta iniziale B [l'unica prendibile con questi 3 oggetti] avendo scelto la porta B dopo il messaggio 7

l'OK dopo 14-"Hai C?" è raggiungibile se si ha C, si ha P [e non si è perde C dopo il messaggio 11], si ha B e si proviene dalla porta iniziale B [l'unica prendibile con questi 3 oggetti] avendo scelto la porta B dopo il messaggio 7.
    In breve si può arrivare al successo (se non si è troppo lenti) con:

- oggetti: MBT, scelte: 1-A

- oggetti: MBT, scelte: 1-B, 7-B

- oggetti: MCB, scelte: 1-B, 7-A o 7-B

- oggetti: CPB, scelte: 1-B, 7-B (in corsivo sono indicati i due percorsi più veloci)

1.1.3 Stat contiene un help. E` bene che gli alunni lo consultino, inizialmente solo per quel che riguarda la voce "distribuzione", poi anche per la voce "media". Per il quesito 2 l'insegnante può prendere a piacere esempi di calcolo tratti dalla scheda 1 de Le statistiche. L'uso del sottoprogramma "media" si presta a confronti con il funzionamento delle CT (vedi q. 80 e q. 81 della scheda 1 de Le statistiche). In alternativa è presente un link a uno "script" molto semplice che calcola e rappresenta graficamente le distribuzioni percentuali.

1.2.1 Sul funzionamento del cavatappi (figura 1) la spiegazione è bene che si fermi a un livello intuitivo; eventualmente si possono fare altri esempi (ad es.: se muovo una porta spingendola con un dito vicino ai cardini faccio più sforzo che spingendola dalla parte della maniglia: in questo secondo modo infatti distribuisco la fatica su uno spostamento maggiore; se affronto una salita per un percorso meno ripido ripartisco la fatica per superare il dislivello in un numero di passi maggiore, facendo man mano meno sforzo). L'idea verrà ripresa e "quantificata" nell'u.d. Per strada in relazione al ruolo del cambio dei rapporti di trasmissione. Per l'insegnante, osserviamo che se, ad esempio, la forza F2 per vincere la resistenza del tappo è di 30 kg e se allo spostamento rettilineo s2 di 1 cm corrisponde uno spostamento s1 dell'impugnatura dei bracci di 10 cm, il lavoro di 30 kg·cm (30 kg per cm) viene distribuito su 10 cm, per cui la forza F1 da esercitare è di soli 30/10=3 kg.

1.2.2 Quesito 3. Cric e serratura sono del primo tipo, telecomando e calcolatrice del secondo, stufa e distributrice di nessuno dei due (una trasforma energia elettrica in calore, l'altra soldi, informazioni e materie prime in bevande, anche se al suo interno ha degli automatismi che trasformano movimenti e informazioni).

1.3.1 A proposito del cambio della bicicletta, osserviamo che cambiare il rapporto di trasmissione è come se si cambiassero le ruote dentate del cavatappi di figura 1: mettendo ruote più piccole il lavoro per alzare il tappo di un certo tratto s2 viene distribuito su uno spostamento s1 maggiore, e quindi diventa minore la forza da esercitare sui bracci del cavatappi.

1.3.2 Quesito 4. Sportello: informazioni in informazioni. Automobilina: informazioni in movimenti. Contachilometri: movimento in informazioni.

1.3.3 Quesito 5. Sono evidentemente presenti sia nel contachilometri (che automatizza un'attività di conteggio: senza intervento dell'uomo, ma solo in base al numero di giri compiuto dalle ruote, fa avanzare il numero visualizzato) che nello sportello di informazioni automatico (che automatizza un'attività di consultazione: in base alle richieste dell'utente ricerca e visualizza le informazioni opportune). Nel caso dell'automobilina telecomandata siamo di fronte a un mezzo semovente che modifica i suoi movimenti seguendo le informazioni che gli provengono dal telecomando; però si tratta di un comportamento direttamente guidato dall'utente: non possiamo parlare di un'automazione delle scelte (nel caso dello sportello automatico l'utente condiziona, ma non guida il comportamento: dà degli input in base ai quali lo sportello modifica il suo comportamento).

1.4.1 A proposito della carica del carillon si possono ricordare altri oggetti che funzionano a corda: sveglie non elettriche, giocattoli, … . Come macchine programmate simili al carillon si possono ricordare le pianole a manovella in grado di suonare più brani musicali, che gli alunni hanno sicuramente visto in qualche film (sono dotate di più cilindri o di un dispositivo che permette di far scorrere il cilindro in posizioni diverse: a seconda della posizione fissata cambiano i pioli che entrano in contatto con le lamelle), o le loro versioni elettroniche (le pianole elettroniche che sono programmate per riprodurre alcuni ritmi o alcuni pezzi).

1.4.2 La logica di funzionamento del termostato verrà ripresa nel quesito 18.

1.4.3 Il quesito 6 (occorre mettere delle bandierine in corrispondenza di tutte e 6 le ore indicate e posizionare l'interruttore su OFF poiché alle 15 la caldaia deve essere spenta) e il quesito 7 (di giorno in giorno la stessa fascia oraria sarebbe una volta di accensione, una volta di spegnimento) non sono altro che esercizi di programmazione.

1.4.4 Quesito 8. La macchina-statistica è il computer+Stat(+altro software di base), cioè il computer già predisposto per le elaborazioni statistiche. Sono del primo tipo le scelte e i dati introdotti dall'utente; sono del secondo tipo le informazioni che indicano al calcolatore come svolgere i calcoli (non sono altro che descrizioni opportune dei procedimenti che gli alunni hanno usato nell'u.d. Le statistiche, oltre a descrizioni dei procedimenti con cui fare le quattro operazioni, descrizioni, queste, che sono incorporate anche nelle CT). Analogamente si può osservare che la macchina-da-gioco è il computer già predisposto per il gioco. Le informazioni del primo tipo sono le scelte, i dati, … battuti dal giocatore durante la sua avventura. Quelle del secondo tipo sono tutte le informazioni incorporate nel computer e nei dischi in esso introdotti.

1.4.5 Quesito 9. In tutti entrano dati (messaggi sonori o elettrici, numeri e altri segni battuti da tastiera, domande, informazioni sul livello dell'acqua …), tutti hanno programmi fissi (per trasformare messaggi, per trasformare informazioni battute in segnali via onde, per calcolare operazioni, per dare risposte, per cambiare comportamento in base alle informazioni ricevute dall'esterno), alcuni sono programmabili (telecomando, attraverso la scelta dei canali da associare ai tasti; sportello automatico, modificando le risposte che deve dare; lavatrice, predisponendo il programma di lavaggio).

1.4.6 Quesito 10. Le monete da cambiare sono 2, 5 e 10. Possiamo fare i cambi che corrispondono alle equazioni 2=1+1, 5=2+2+1, 10=5+5 (conviene cambiare nei pezzi più grossi possibili: se avessi fatto, ad esempio, 10=5+2+2+1 avrei escluso la possibilità di avere 2 monete da 5, mentre in questo modo le monete da 2 le posso ottenere con un successivo cambio di una moneta da 5).

1.4.7 La nota sulla difficoltà di distinguere dati e programmi è abbastanza importante e sarà ricorrente. Per un aspetto più generale si pensi al fatto che i programmi che fa l'utente sono dati per il programma traduttore che li trasforma in programmi eseguibili dalla CPU; a sua volta questi programmi tradotti in linguaggio-macchina possono essere intesi come dati per la CPU. Per aspetti più particolari si pensi alla possibilità di inserire "dati" all'interno di un programma invece che sotto forma di input.

1.5.1 Quesito 11. Può contare 99 giri; al 100° giro ritorna a 00.

1.5.2 Quesito 12. Si possono impiegare: un contatore, che inizialmente l'utente posiziona sul 1° addendo e su cui alla fine dovrà comparire il risultato; un secondo contatore (inizialmente posizionato su 0), collegato al primo, che ne conti gli scatti; e una valvola di controllo, su cui viene impostato il 2° addendo, che arresti il secondo contatore (e quindi anche il primo) quando esso raggiunge il numero impostato.
    In alternativa il 2° addendo potrebbe essere impostato sul secondo contatore, che potrebbe essere collegato al primo in modo da ruotare in verso opposto, cioè in modo da funzionare come count-down. La valvola di controllo avrebbe il compito di arrestare il secondo contatore quando questo arriva a 0.

1.6.1 Quesito 13. La freccia-2 in uscita dal primo riquadro (vedi colonna 2 della tabella che descrive i programmi della lavastoviglie) salta il prelavaggio, cioè i riquadri che vanno dal 1° "FAI ENTRARE…" al 2°; e in quest'ultimo che la freccia deve arrivare. Il programma 1 e il programma 2 dopo il prelavaggio devono procedere avanti fino in fondo, senza saltare il risciacquo caldo. Quindi nel riquadro "la manopola è sul numero …?" che precede il risciacquo caldo va messo 3 e la freccia in uscita da "sì" deve andare fino al riquadro finale "POSIZIONA su 0". Il tasto A è quello che fa saltare l'asciugatura, quindi la freccia che va in "SCALDA l'aria" è "no".

1.6.2 Quesito 14. Il ddf è del tutto analogo a quello soprastante. Basta mettere apri/chiudi il rubinetto al posto di attiva/disattiva il riscaldamento e "l'acqua ha raggiunto il livello massimo?" al posto di "la temperatura …?".

1.6.3 Quesito 15. La discussione (collettiva) del quesito dovrebbe condurre a precisare il passo 2: dico N che stia a metà tra N1 e N2 (a seconda dei casi di N ce n'è 1 o ce ne sono 2). Si può poi chiedere agli alunni: se vi trovate di fronte a un avversario che sceglie questa strategia, quale numero vi conviene pensare? (ad esempio 0, 100, 49, …, che comportano il massimo numero di tentativi).

1.7.1 Pagina 16: i temi segnali digitali e segnali analogici verranno approfonditi in una successiva u.d..

1.7.2 La seconda colonna della tabella (7.1) si riferisce a un comune metodo per tenere il conto (ad esempio durante lo spoglio delle schede in una votazione).

1.9.1 Soluzioni del quesito 17:

- oggetti: MBC o MBF, scelte: 1-A

- oggetti: MBF, scelte: 1-B

- oggetti: MCB, scelte: 1-B, 7-A o 7-B

- oggetti: CPB, scelte: 1-B, 7-B

1.9.2 Quesito 18. Dal primo test il "sì" va in giù, dal secondo test il "sì" va in giù, la freccia che esce da SPEGNI va al primo RILEVA….

1.9.4 Quesito 19. Può essere utile descrivere il flusso dell'esecuzione mediante una tabella come quella a lato. Il diagramma va completato così:
"leggi m" "leggi n"
"leggi n" "poni n=0 …"
"poni n=0 …" "i=n?"
"i=n?" [sì] "scrivi p"
"i=n?" [no] "poni p=p+m …"
"poni p=p+m …" "i=n?"
 
passo m n p i
1 5


2 " 2

3 " " 0 0
4 " " " "
5 " " 5 1
6 " " " "
4 " " " "
5 " " 10 2
6 " " " "
4 " " " "
7 " " 10 "

Scheda 2 (Le calcolatrici tascabili)

    In questa scheda si affronta una riflessione sul funzionamento delle CT. L'obiettivo è sia quello di acquisire una maggiore padronanza di questo mezzo di calcolo, comprenderne i limiti al fine di interpretare i risultati che fornisce, …, sia quello di introdurre e/o consolidare (a un primo livello) alcune conoscenze matematiche: sui numeri (approssimazioni, numeri reali, …), sulle funzioni (funzioni a più input e più output, composizione di funzioni, funzioni inverse, insieme di definizione, …), …, sia di preparare il terreno per la comprensione del funzionamento dei calcolatori (che, come "conoscenze" matematiche e possibilità di calcolo aritmetico non si discostano essen-zialmente da una CT: vedi scheda 3 ).
    Negli Esercizi (quesito 41) è presentato il programma calcol (memorizzato nel dischetto distribuito e azionabile con la semplice battitura del suo nome) che permette di simulare il funzionamento di alcune CT. Volendo il suo uso può essere intrecciato allo svolgimento della scheda (si può andare in aula computer con scheda e CT).
    In ogni caso è bene che l'insegnante utilizzi la scheda come traccia con cui guidare il lavoro degli alunni: questi, con la CT sottomano, svolgono e riflettono (individualmente e collettivamente) sulle attività che vengono loro proposte e inizialmente potrebbero utilizzare la scheda solo per comprendere meglio (osservando/leggendo le illustrazioni, le tabelle e alcune parti di testo che l'insegnante indica loro) le "consegne" o le spiegazioni. La lettura completa della scheda (o dei paragrafi svolti durante la lezione) potrebbe essere assegnata come "ripasso". Forse solo il §4 (sui numeri macchina e sul funzionamento elettronico della CT) si presta meglio a una lettura (commentata) in classe.
    Volendo, la scheda può essere affrontata in 3 blocchi (§1-§3, §4, §5), eventualmente alternando lezioni in cui si lavora con Le statistiche, tenendo conto che la sua collocazione naturale è dopo la scheda 2 di Le statistiche (dopo una prima introduzione al concetto di funzione); la scheda 4 di Le statistiche poi sfrutterà gli approfondimenti del concetto di funzione e sull'uso delle CT svolti in questa scheda. Alcuni quesiti di §7 (49, 50) in classi particolarmente "difficili" possono essere rinviati a momenti successivi.

2.1.1 Inizio 1: alcune CT come uscita di 12 1/x danno 0.0833333 invece di 8.3333e–02; in alcune si può passare dalla rappresentazione esponenziale a quella per esteso con il tasto <EE; usando il tasto EE si può ritornare alla rappresentazione esponenziale.

Si noti che tendenzialmente parliamo di "premere un tasto" e di "battere un numero" (a meno che si tratti di singole cifre, introducibili con un solo tasto). Analogamente, impiegando programmi, parleremo, in genere, di premere un tasto o un carattere (ad esempio premere "a capo") e di battere un dato (sottointendendo, spesso, che alla fine sia da premere anche il tasto "a capo", o il tasto "invio").

2.1.2 I quesiti 1-6 servono anche per facilitare le attività di manipolazione algebrica da affrontare in §3, consolidando riflessioni e concetti già affrontati a un primo livello in Le statistiche, in particolare nella scheda 1 (a/b·c equivale a a·(c/b), che per c=1 … ; moltiplicare per 1/k equivale a dividere per k, … ).

2.1.3 Risposta al quesito 1: 3 ± + 5 =.

2.1.4 Sulla scrittura di 3·–8 e 7––5 (nel quesito 2) si veda anche il punto 1.7.9 della guida alla scheda 1 di Le statistiche; in aggiunta osserviamo che non è ovviamente sbagliato chiudere tra parentesi i termini preceduti dal segno di negazione, così come non è "sbagliato" scrivere ((3)+((4))) invece di 3+4; in qualche situazione può anzi essere utile abbondare in parentesi, se ciò serve a rendere più leggibile un termine o a evidenziarne alcune componenti; l'uso delle parentesi per racchiudere un termine preceduto dal segno di negazione è necessario solamente se si sostituisce tale termine al secondo termine di una moltiplicazione tra variabili scritte senza esplicitare il simbolo della moltiplicazione: se ax è una abbreviazione di a·x e si opera la sostituzione x=–4 occorre scrivere a(–4), a meno che non si scriva a·–4 o direttamente –4a. E` da considerare, invece, sbagliata, una scrittura come 3·/5 poiché "/" non può essere interpretato come operazione unaria.
    La risposta al quesito è, ovviamente:     (–)3·8     (–)3–8     3·(–)8     7–(–)5     (–)9/3

2.1.5 Risposta al quesito 3: 123 + 56 ± =. Nel successivo commento si parla di opportuna composizione; non possiamo però dire che la sottrazione è equivalente alla "funzione composta" che ha come componenti la negazione e la addizione in quanto la prima componente dovrebbe avere tanti output quanti sono gli input della seconda.

2.1.6 Risposta al quesito 4: 432 x 3 1/x =.

2.1.7 Quesito 7: il tasto di elevamento alla potenza nelle CT è quasi sempre indicato con yx invece che con xy, come potremmo aspettarci pensandolo come funzione a 2 input x,y xy, in cui in genere il primo input viene indicato con x. In queste CT (fra queste: le Casio, le Sharp e le Texas) il dato sul visore (introdotto dall'utente o calcolato dalla CT) viene sempre registrato su un particolare registro, in genere chiamato X; man mano che vengono introdotte operazioni e altri numeri, i dati che devono essere tenuti in sospeso vengono spostati su altri registri, in genere chiamati Y, Z, W, …
    Ad esempio durante il calcolo di 1+2*5 abbiamo man mano:
   – X=1
    – X=2 Y=1
    – X=5 Y=2 Z=1
    – X=10 Y=1
    – X=11
    Nella scheda (§2) abbiamo evitato la descrizione di come vengono impiegati i registri di lavoro non solo perché vi sono CT che si comportano diversamente dal modo qui descritto, ma perché non ci sembra aggiungano nulla di significativo alla comprensione del funzionamento. Eventualmente, se degli alunni chiedessero spiegazioni sul tasto xy eventualmente presente su qualche CT, si può dire che su queste CT si conviene di indicare l'ultimo dato introdotto con X e il dato precedentemente introdotto con Y, e che quindi il tasto in questione consente di invertire i termini di un'operazione. La cosa può essere facilmente verificata: battendo 3 + 6 xy xy xy … sul visore si alternano 6 e 3. Usando questo tasto il calcolo di a/(b+c) può essere effettuato così: b + c = ÷ a xy =.
    In molte CT esiste anche un tasto exc ("exchange"="scambio"), a volte indicato xm, che scambia il contenuto del visore con quello della memoria-utente.

2.2.1 Quesito 8: sulla gerarchia delle operazioni e sulla costruzione dei termini numerici si ritornerà, oltre che in §3, più diffusamente nella scheda 4 di Le statistiche.

2.2.2 Dopo il quesito 8: abbiamo raffigurato vuoto il visore durante il completamento dei calcoli; in effetti, se il calcolo comprende varie operazioni che erano state tenute in sospeso (o, anche, se consiste solo di un elevamento a potenza o del calcolo di una funzione trigonometrica), può trascorrere qualche decimo di secondo prima della comparsa del risultato.

2.2.3 Prima del quesito 10 è bene fare notare che una CT con due soli registri di lavoro è una CT che non ha incorporato un programma per la gestione della gerarchia delle operazioni in quanto non può tenere in sospeso operazioni (memorizza solo due dati e il tasto di operazione battuto in mezzo); quindi è l'utente che deve cercare di riscrivere i termini in modo da mettere in testa le operazioni da eseguire per prime. Le osservazioni degli alunni dovrebbero essere guidate dall'insegnante fino a conclusioni simili a quelle presentate all'inizio di §3, ma formulate riferite ai dati del quesito, non in generale. Per il calcolo di 4·3+2·5 si può ricordare che si è già incontrata una difficoltà simile nella scheda 1 di Le statistiche (quesito 54).
    Qualche alunno potrebbe osservare giustamente che il calcolo di 5-8/4 può essere eseguito anche facendo 8 ÷ 4 5 = ±, cioè calcolando –(8/4–5).
    Si ricorda (vedi punto 1.4.6 della guida alla scheda 1 di Le statistiche) che vi sono CT dotate anche di tasti per la memorizzazione di "operazioni" (e secondo operando); qualche alunno potrebbe suggerire l'impiego di questi tasti; ad esempio con una CT con due tasti op1 e op2 4·3+2·5 può essere calcolato con x 3 op1 x 5 op2 4 op1 + 2 op2 =. La discussione di questa possibilità potrebbe eventualmente essere rinviata al §3, nell'ambito del discorso sull'uso delle "memorie-utente".
    Con una CT dotata del tasto xy si potrebbe ricorrere a questo per effettuare il calcolo del secondo termine (vedi il precedente punto 2.1.7), ma difficilmente qualche alunno proporrà questa strada.
    L'osservazione tra parentesi quadre è importante per dare un senso ai calcoli proposti nella scheda (può anche dar modo, all'insegnante, di sottolineare che spesso può essere utile controllare una proprietà di cui non si è sicuri su numeri semplici, che consentano un rapido controllo con il calcolo mentale).

2.3.1 L'inizio di §3 dovrebbe costituire una sintesi e una generalizzazione di quanto l'insegnante dovrebbe aver già spiegato riferendosi ai casi particolari del quesito 8.
    Non è il caso, per ora, di affiancare questi usi delle lettere con attività ripetitive ed astratte sul calcolo letterale: l'obiettivo prioritario è al momento quello di far comprendere come usando variabili si possano descrivere in forma generalizzata dei procedimenti di calcolo e si possano esprimere in forma sintetica delle proprietà e di far cogliere i collegamenti tra singoli esempi e formulazioni generali.
    Per adesso è bene fare sempre esplicitare il segno di moltiplicazione tra due variabili (eventualmente si può usare 2x come abbreviazione di x·2: 2 volte x), per evitare l'insorgere di confusioni (tra quando l'affiancamento di due lettere rappresenta il concatenamento di due caratteri che formano lo stesso nome di variabile e quando sottointende un simbolo di moltiplicazione) in questa fase, in cui si vuole consolidare l'uso dei termini con variabili. Per altro un uso precoce del sottointendere "·" a volte comporta che qualche alunno perda la percezione del "·" sottointeso (questo è, in parte, dietro ad alcuni errori che qualche alunno fa nelle "semplificazioni" o nei "trasporti" da un membro all'altro di un'equazione). Anche nell'uso di GRAFUN (che consente queste abbreviazioni) è bene, per i primi tempi, far esplicitare "*".

2.3.2 Quesito 11; Se le CT sono dotate di priorità (come lo sono, in genere, quelle dotate di yx) i risultati sono: 80, 300 e 1000000: prima viene eseguito l'elevamento a potenza, e di fronte a due elevamenti a potenza consecutivi viene eseguito prima quello introdotto per primo (cioè quello più a sinistra). Si possono anche far fare altri calcoli; ad esempio far calcolare 5+3·2^4 e far osservare che (per eseguire correttamente il calcolo) la CT deve essere in grado di tenere in sospeso due operazioni, 5+ e 3x.
    Volendo, si può far osservare la regola che permette di calcolare l'esponente di una composizione di elevamenti a potenza, facendola congetturare/comprendere piuttosto che farla memorizzare (al momento non serve una padronanza "meccanica" di questa regola: non ci sono occasioni in cui applicarla).
    Osserviamo che, nell'usuale linguaggio matematico e nei linguaggi di programmazione, l'elevamento a potenza ha priorità sulla negazione, cioè –2^6 è da intendere come –(2^6), non come (–2)^6. Nelle CT, invece, le operazioni unarie sono tutte prioritarie poiché vengono eseguite non appena se ne batte il tasto. Per calcolare –26 occorre quindi battere: 2 yx 6 = ±. Questi problemi, naturalmente, non si pongono per i pocket programmabili in Basic, con i quali si può battere 2^6 exe. Su questi aspetti della priorità delle operazione torneremo nella scheda 4 di Le statistiche.

2.3.3 Nell'illustrazione a fianco del quesito 12, non è un errore la scrittura di 5÷(1+3 invece di 5÷(1+3). Infatti la CT non deve registrare le "parentesi chiuse": non appena incontra una parentesi chiusa completa il calcolo impostato fino alla precedente parentesi aperta. Il quesito 12 ha come risposta: 24 ÷ ( 8 + 4 ) – 14 ÷ 7 =. Non si sono battute parentesi prima di 14 e dopo 7 ipotizzando che la CT abbia incorporata la priorità delle operazioni.

2.3.4 Le CT che di fronte al calcolo considerato nel quesito 14 (2·(1+2·(1+1))) danno il risultato 10 che ci si attende devono tenere in sospeso 2x, 1+, 2x, cioè tre operazioni, per poi eseguire il calcolo 1+1 della parentesi più interna.

2.4.1 Risposte al quesito 15: 1234.1234 e 1234.1235. E` propedeutico al quesito successivo far osservare che nel fare l'addizione si perdono le cifre finali del 2° addendo: il risultato completo per esteso occuperebbe più delle 8 cifre di cui può disporre la CT.

2.4.2 Quesito 16: si può suggerire agli alunni di annotare man mano i risultati intermedi che compaiono sul visore e di ricordarsi di quanto osservato nel quesito precedente. Non deve essere scritta una risposta: la discussione collettiva dovrebbe trovare sbocco nella spiegazione dell'insegnante, fatta sulla falsa riga dei commenti che seguono il quesito 16.

2.4.3 Quesito 17: (4): registri di 11 cifre e opera con 11 cifre, (5): registri di 10 cifre e opera con più cifre (infatti per arrotondare tiene conto di una cifra in più).
    La comprensione del fenomeno messo in luce da questo esempio (detto cancellazione delle cifre) è di fondamentale importanza per la padronanza dei mezzi di calcolo. Infatti è esso che è all'origine di quasi tutti gli "errori" di maggiore entità da cui vengono affetti i risultati dei più vari procedimenti di calcolo eseguiti con una macchina. Per dare un'idea si pensi al calcolo di 10÷6+12345678-12345678=x7: una CT del tipo (1) (o un calcolatore che stia operando in questo modo) darebbe come risultato 7, una del tipo (2) darebbe 14 e una del tipo (3) darebbe 11.62 (invece di 11.666…).
    La cosa è ancora più complessa se si usa un linguaggio di programmazione in cui le mantisse non vengono registrate in forma decimale ma in forma binaria. Ad esempio con alcuni linguaggi la stampa del risultato di 843.27-843.23 dà luogo a 0.04003906. Questo è uno dei motivi per cui ci è sembrato opportuno affrontare lo studio dei numeri macchina a partire dalle CT; esse infatti impiegano tutte la codifica BCD.

2.4.4 Quesito 18: in alcune CT si ottiene 1.5242e00, cioè si rimane in notazione scientifica; per passare alla scrittura per esteso (1.5241577) occorre premere il tasto <EE: vedi il precedente punto 2.1.1.

2.4.5 Quesito 19: alcune CT segnalano anche gli errori di underflow, cioè non danno 0 come risultato del secondo calcolo ma fanno comparire un messaggio di errore.

2.4.6 Quesito 20: max neg.: –1.0000000·10–99; min: –9.9999999·1099.

2.4.7 Dopo il quesito 20: l'osservazione che i numeri-macchina sono in quantità finita può essere spiegata dicendo che posso elencare tutte le possibili mantisse: esse vanno da "1.000…0" a "9.999…9", con o senza "–" davanti; si tratta di un tot fissato di espressioni che posso combinare con un altro tot fissato di esponenti (da –99 a 99). La questione viene affrontata in termini più precisi nel quesito 39.

2.4.8 Il quesito 21 mette in luce che i numeri sono in quantità infinita (operando con "·2" o con "/2" ottengo man mano un numero che è diverso da tutti i numeri che ho generato in precedenza). Con una CT eseguendo ripetutamente "·2" dopo un po' arrivo all'overflow. Si può chiedere agli alunni che cosa accadrebbe se si battesse ripetutamente "+1" (prima o poi la CT si stabilizzerebbe su un numero; ad es. se ha 8 cifre e si parte da 0, arrivati a 99999999 poi si passa a 1.0000000e8 e da qui non ci si sposta più, infatti si andrebbe a incrementare la nona cifra, che la CT perde; se si partisse, ad es., da 1e25 non cambierebbe numero neanche una volta).
    Dividendo ripetutamente per 2 invece prima o poi arrivo a un underflow, cioè a 0 o a un messaggio d'errore: arrivata a un risultato che sarebbe compreso tra 0 e 10-99, cioè che avrebbe ordine di grandezza inferiore a -99 (ad es. 1e-99/2 farebbe 5e-100), la CT, poiché non può tenere più di 2 cifre di esponente, lo registra come 0 o segnala l'underflow.

2.4.9 Quesito 22. E` bene che gli alunni, prima di esporre oralmente il procedimento pensato, provino ad applicarlo per completare la tabella (anzi, pensare come completare la tabella dovrebbero aiutarli a individuare il procedimento: se per 8 si è "scattati" a "1000" vuol dire che prima, per 7, si era arrivati a "111"). Un procedimento possibile è il seguente, che l'insegnante può costruire alla lavagna con gli alunni, ricordando l'analogia con il contatore meccanico a ruote dentate (non è il caso che gli alunni lo trascrivano sulla scheda):

(1) scrivo "0000"

(2) considero l'espressione appena scritta e ne cambio l'ultimo carattere (se era "0" lo sostituisco con "1", se era 1 lo sostituisco con "0")

(3) se la cifra cambiata era "1" cambio anche la cifra successiva e ritorno a (3)

(4) scrivo il numero così ottenuto

(5) se ho scritto "1001" mi fermo, altrimenti ritorno a (2)

Si può riprendere e provare a descrivere a parole anche la codifica considerata nella seconda colonna della tabella (7.1), cui si riferisce il quesito 16 della scheda 1 di La automazione (o si può dare come compito a casa la descrizione verbale di come vengono generati i numeri usando questa codifica).

Una descrizione più sintetica può essere: si considera l'alfabeto avente per caratteri solo "0" e "1" e si generano in ordine alfabetico le parole di lunghezza 4 che con esso si possono costruire, fino ad arrivare a "1001" (se invece di "0" e "1" si usassero "a" e "b" avremmo: aaaa, aaab, aaba, aabb, …; se si scegliesse questa descrizione, l'esempio con "a" e "b" può utile per agevolare la comprensione).
    Non è necessario, al momento, un approfondimento sulla scrittura dei numeri in base 2 (ora, a che cosa servirebbe, se non a fare qualche giochino?).

2.4.10 Quesito 23: impiega 4·10+2=42 bit. Quesito 24: 1 0001 0000 … 0000 0 0000 0001

2.5.1 Quesito 25: 29523/137=215.49635; 29523–137·215=68.

2.5.2 Dopo quesito 22: a proposito della radice quadrata notiamo che in qualche libro di testo viene chiamata radice quadrata di 4 anche -2, mentre si tratta di una delle soluzioni (o radici) dell'equazione x2=4. A volte vengono anche fatte confuse distinzioni tra radici e radicali e tra radicali algebrici e radicali aritmetici, rispolverando vecchie terminologie di quando non era ancora diffuso o ben precisato il concetto di equazione. A volte si arriva a scrivere 4 = –2 e 4 = 2 , alla faccia del concetto di eguaglianza. E` bene evitare simili confusioni nella testa degli alunni: la funzione radice quadrata è definita per input non negativi e ha solo output non negativi.

2.5.3 Sempre dopo ques. 22: durante la discussione degli esempi possono sorgere o si possono far sorgere vari problemi relativi ai termini indefiniti. Ad esempio perché x/y non è definito se y=0. Solo perché la CT dà Error o c'è un motivo più profondo? (…/y è l'operazione inversa di …·y, cioè il risultato è quel numero R che moltiplicato per y deve dare x: R·y=x; se y=0 R·y fa 0 comunque prenda x; la spiegazione è più semplice se al posto di x si prende un valore costante: 4/0 deve essere un numero R tale che R·0 faccia 4 … . Analogamente si può discutere il caso 0/0: non si può identificare un particolare numero tale che R·0 faccia 0: tutti i numeri si comportano così).

2.5.4 Quesito 28: 3.16227766·3.16227766 ha risultato con una parte frazionaria che termina con 6 (l'ultima cifra del risultato è 6 poiché nel fare 6·6 si ottiene 36).

Osserviamo a livello adulto che a rigore finora nulla ci assicura che esista un numero che al quadrato faccia 10 o che faccia 5. E` solo l'algoritmo (5.1) o, meglio, (5.2), che ci permette di dare una definizione della radice quadrata di un numero: radice di A è il numero che si ottiene con (5.2). Per precisare che questo numero al quadrato fa effettivamente A occorrerebbe aver definito la moltiplicazione tra numeri illimitati. La cosa non sarebbe difficile da capire: è il numero che viene man ma-no approssimato operando su approssimazioni con man mano più cifre significative. E` però opportuno rinviare questi approfondimenti ad una fase successiva di riflessione più generale sui numeri.

2.5.5 dopo ques. 28: la descrizione verbale degli algoritmi per il calcolo della radice quadrata contenuta nella scheda non è facilmente comprensibile con una lettura diretta. Per questa parte della scheda vale ancor più che per le altre l'indicazione di gestirla "alla lavagna". Costituisce un avvio alla introduzione dei numeri reali.

2.5.6 Quesito 31: l'arrotondamento 2.2361 (2.2361 m = 2236.1 mm).

2.6.1 Quesito 37. Domanda (2): H(x)=x, K(x)=x. Domanda (4): le due pendenze sono una la reciproca dell'altra; vedi anche: Le statistiche - Guide - nota 2.5.4. Si può far osservare (in scioltezza) la "simmetria" dei due grafici rispetto al grafico di y=x e collegarlo al fatto che due funzioni inverse hanno input e output scambiati.

2.6.2 Quesito 38. La domanda (1) serve a consolidare visivamente il fatto che un numero e il suo opposto hanno uguale quadrato.
    La domanda (2) richiede che gli alunni calcolino la radice quadrata di 2.25 (o la ricavino direttamente dal fatto, ricordato sul grafico, che 1.5 al quadrato fa 2.25) e traccino tale punto. Si può, poi, far osservare agli alunni che tutti i punti del grafico di G sono ottenibili da punti del grafico di F scambiando le coordinate (infatti vengono invertiti i ruoli di input e di output; vedi anche nota precedente).
    Domanda (3): H(x)=x, però per x³0; K(x)=|x|.
    Domanda (4): gli alunni, tracciando i due grafici "a mano" (servendosi di quanto hanno stabilito in (3)), dovrebbero consolidare i concetti introdotti alle pagine 9 e 10.
    La domanda (5), che, volendo, può essere far fatta affrontare in aula-computer, serve a "collegare" l'uso consapevole di grafun con i concetti introdotti nella scheda.

2.7.1 Quesito 40. 7 è codificato con 111, quindi il filo orizzontale attivato elettricamente dal tasto 7 deve raccordarsi con i fili verticali collegati ai primi 3 flip-flop da destra.

2.7.2 Il quesito 45 offre spunti per chi voglia avviare un primo sviluppo delle considerazioni accennate dopo il quesito 26. Volendo si possono svolgere considerazioni anche sul tasto della funzione inversa di yx (tasto "radice x-esima di y"). Si può poi proporre agli alunni di ideare un algoritmo per calcolare le radici cubiche (idea che dovrebbero avere: basta prendere quello per le radici quadrate e mettere x·x·x al posto di x·x).

2.7.3 Quesito 47: si devono usare F: x –> Rx e G: x –> –Rx. Il quesito può essere affrontato anche "teoricamente", senza necessariamente usare il PC.

2.7.4 Quesito 51. Il quesito riprende considerazioni già svolte nella scheda 1 di Le statistiche: il reciproco del reciproco di un numero è il numero stesso, … . La spiegazione potrebbe riferirsi anche ai grafici di quesito 48: se (x,y) sta sul grafico anche (y,x) ci sta.

2.7.5 Quesito 50: i grafici possono essere realizzati anche su carta millimetrata e, poi, controllati con grafun: ciò è utile per rafforzare l'uso di entrambe le "tecniche", che impiegano gli stessi concetti matematici, ma in modi differenti. Il quesito ha la finalità di introdurre all'uso delle rappresentazioni grafiche per verificare l'equivalenza di due termini.

2.7.6 Quesito 51: da collegare ai quesiti 37 e 38.



    Scheda 3 (Il calcolatore)
    E` una scheda da gestire "a pezzi", intrecciata con attività di laboratorio (assegnando per la lettura a casa "pezzi" che siano già stati affrontati operativamente), e comprendente parti (sui linguaggi di programmazione) che possono essere usate anche successivamente a mo' di manuale.
    Se qualche scuola non ha ancora un'aula attrezzata ma è dotata di almeno un PC, alcune attività possono essere fatte in forma "dimostrativa"; per attività operative si può ricorrere a pocket computer programmabili in Basic (preferibilmente) o in linguaggio macchina (questi secondi pocket in genere vengono chiamati "calcolatrici scientifiche programmabili").
    L'uso di pocket computer può essere fatto anche nelle scuole dotate di aula attrezzata: ha il vantaggio di poter essere usato in classe, intrecciandosi al normale insegnamento, nei compiti in classe, …
    Molti esercizi sono comunque affrontabili con "carta e penna" (e assegnabili per casa, discutendone poi in classe la soluzione); vedi, ad esempio, i quesiti o parte dei quesiti relativi ai programmi (5.1)-(5.4), (5.8)-(5.9), ….
    Nella scheda come linguaggio si è usato il QuickBasic, per i motivi che sono elencati nella scheda stessa. Anche chi volesse usare un Pascal è bene che affronti una riflessione e alcune attività con il Basic, quanto meno perché è il linguaggio che gli alunni possono aver già usato nelle scuole precedenti.
    Per altre considerazioni vedi la guida "Installazione e uso del software".

3.1.1 pag.1: la scelta di riferirsi nel primo esempio alle versioni più elementari, da pocket computer, del Basic, è la coincidenza tra variabili e registri (memorie-utente) che facilita la descrizione del "funzionamento" del linguaggio di programmazione (vedi pag. 3).

3.1.2 pag.2: l'esecuzione passo per passo potrà essere poi realizzata in aula computer usando il menu Debug di QB (i comandi Trace All e Step nel caso dei Mac).

3.1.3 quesito 1: soluzione:



Il computer memorizza la costante 2 nella memoria B


?

Il computer attende l'introduzione di un dato


? 3

L'utente batte il numero 3 seguito da "a capo".

Il computer memorizza il dato nella memoria E.


? 3
    9

Il computer calcola il numero che è nella memoria B elevato al numero che è nella memoria E

Poi visualizza il risultato.


? 3
    9

Il computer trasferisce l'esecuzione alla riga che inizia con "20"


? 3

9
    ?

Il computer fa comparire il prompt "?" per segnalare che attende l'introduzione di un dato.

3.2.1 Quesito 3. Ovviamente CLS va messa in testa al programma.

3.3.1 Pag.8. Nel dischetto è presente anche l'applicazione CODASCII che consente di stampare file in formato ascii e ottenere uscite come (3.1).

3.3.2 Pag.9. Abbiamo parlato di programmi traduttori senza approfondire la distinzione tra interpreti (programmi traduttori che non memorizzano, neanche temporaneamente, la traduzione in linguaggio macchina del programma sorgente ma man mano traducono e mandano in esecuzione ogni singola istruzione) e compilatori (che traducono in un colpo tutto il programma sorgente), anche perché la distinzione, nei nuovi ambienti di programmazione, non è più netta: si tratta di compilatori che mantengono riferimenti con il programma sorgente, consentendo così di eseguire il programma in linguaggio macchina vedendo man mano la posizione corrispondente del programma sorgente, come si può fare con gli interpreti).

3.4.1 Quesito 5. Si possono proporre molti altri esercizi simili a questo. Sono assai utili per consolidare la comprensione della struttura dei termini (vedi scheda 4 di "Le statistiche", §1).

3.4.2 Quesito 6. Il quesito offre l'occasione di riprendere considerazioni svolte nell'ambito della scheda 4 di "Le statistiche". La risposta è: sono entrambe sintatticamente corrette; la seconda dà luogo a un errore in corso di esecuzione. Nota: il successivo quesito 6 è in realtà il quesito 7.

3.5.1 Quesito 8. [2] INPUT x,y [3] PRINT x*y [4] GOTO Via

3.5.2 Quesito 9. Ad es.: [1] Via: [2] INPUT p [3] PRINT p*75/100 [4] GOTO Via

3.5.3 Quesito 10. I numeri interi positivi minori o uguali a 10

3.5.4 Quesito 11. Mancano: dato, Introduzione e n.dati

3.5.5 Quesito 12. GOTO e IF-THEN

3.5.6 Pag.17. Per consolidare la differenza tra numeri e stringhe (e il significato del concetto di numero) si possono fare domande del tipo: che cosa visualizza il programma PRINT 1+1,"1+1" ?

3.5.7 Quesito 13. Dopo [9] si passa a [10], come se si fosse battuto n. (più avanti si vedrà che si potrebbe usare la funzione ucase$ per trasformare le lettere in maiuscolo e fare il test su S).

3.5.8 Quesito 15. Al posto dei puntini si possono mettere, ad es., in [1]: n in [2]: n\2 in [3] q*2=n e a$="pari" e a$="dispari"

3.5.9 Quesito 16. Non stampa solo i divisori di 96, ma tutti i numeri interi positivi minori o eguali a 96: non deve funzionare qualcosa in [5] o in [6]; in effetti in [5] c'è la divisione normale invece che la divisione intera. Non accetta come numero di cui cercare i divisori 9216 nonostante che sia minore di 10 mila: non deve funzionare qualcosa in [2]: in effetti c'è 1000 invece di 10000.

3.5.10 Quesito 17. Il quesito serve a riprendere e consolidare il significato del m.c.d. tra numeri interi (spesso gli alunni hanno imparato trucchi per trovare il m.c.d. ma non ne hanno compreso il significato: scordato il trucco non sanno più trovarlo). Più avanti (in seconda) estenderemo il concetto ai termini contenenti variabili.

3.5.11 Quesito 19. Il quesito è introduttivo al commento successivo. Successivamente, oltre alle istruzioni-riga, introdurremo anche le istruzioni a più righe (per prima, nella scheda 1 di "Per Strada", verrà introdotta l'istruzione select case–end select). La soluzione è: no, poiché dopo il confronto tra risp$ e ">" il programma tornerebbe a Tentativo senza confrontare risp$ con "<" (N2 rimarrebbe quindi sempre uguale a 100).

3.5.12 Quesito 20. Se il numero y di cui cerco la radice quadrata è maggiore di 1, posso prendere (parte "then" della riga [4]) come approssimazione per difetto 1 (un numero maggiore di 1 ha quadrato maggiore di 1) e come approssimazione per eccesso y stesso (un numero maggiore di 1 ha quadrato maggiore di sé stesso). Analogamente, se il numero y di cui cerco la radice quadrata è minore di 1, posso prendere (parte "else" della riga [4]) come approssimazione per eccesso 1 (un numero positivo minore di 1 ha quadrato minore di 1) e come approssimazione per difetto y stesso (un numero positivo minore di 1 ha quadrato minore di sé stesso).

3.5.13 Quesito 21. Basta mettere x*x*x al posto di x*x in [7]. Si faccia notare (e si chieda il perché) il programma non funziona se y è negativo.

3.6.1 Pag.22. Si faccia notare che i chilobyte vengono notati con la "K" maiuscola, per distinguerli dal "k" minuscolo che deve essere usato per rappresentare il fattore moltiplicativo 1000.

3.6.2 Quesito 22. Circa 50 righe da 80 caratteri per pagina, 35 pagine: 50·80·35=140 mila caratteri, cioè circa 140 K.

3.7.1 Quesito 24.


A

B


1

1

1


2

2

1


3

0.2

1.2


3.7.2 Quesito 25. =D1/C1*100: stessa percentuale, ma riferita al 1989/90.

3.7.3 Quesito 26. In D6 appare: =Sum(D1:D5). Occorre mettere, in E6: =D6/C6*100 e in E1: =C1/C$6*100.

3.8.1 Quesito 27. Al punto 5 non cambia l'evidenziazione in quanto r è il sottotermine più a sinistra di r2. Per passare dallo stato finale all'evidenziazione di PI devo azionare freccia-su e freccia-sinistra. E` utile svolgere (in aula computer e su carta) esercizi simili a questo (per consolidare la comprensione della struttura di termini ed equazioni).

3.8.2 Quesito 28. Volendo, si può far vedere agli alunni che questa verifica può essere realizzata direttamente con Derive, usando il menu Manage (manipolazione).

3.8.3 Quesito 29. E` possibile evidenziare solo bc2; gli altri non sono sottotermini. Per commentare la correzione si può ricorrere a grafi come quelli di pag. 27.

3.8.4 Quesito 31. Il primo ha un errore sintattico (>> non è un simbolo relazionale), il secondo dà luogo a un errore semantico (sqr(1–2) è indefinito). Si può riprendere anche il quesito 6.

3.9.1 Quesito 32. Ad esempio:
    INPUT DatoBase k=100/DatoBase 10 INPUT Dato : PRINT Dato*k GOTO 10

3.9.2 Quesito 33. (1): x |x| (2): x x (3): x (arrotondamento agli interi di x); modi-fica del programma (vedi precedente nota): PRINT Dato*k diventa PRINT FIX(Dato*k+1/2)

3.9.3 Quesito 34. (3) "Non elencare tutti i numeri di codice" vuol dire dare una risposta del tipo: "A" viene codificata con 65 e le successive lettere man mano con i numeri successivi, fino a "Z" che è codificata con 90; "a" viene … (4) il programma simula un orologio digitale: quando cambia l'ora (in ore:minuti:secondi) scrive la nuova ora.

3.9.4 Quesiti 36-37. Dopo questi esercizi (risposta al 36: =B2/D$2*100 o: =B2/B$2*100 o, abbon-dando: =B2/$D$2*100) si possono introdurre altre funzioni del foglio elettronico. Ad esempio la funzione per calcolare la media (che può avere diversi nomi, a seconda del modello: Media, Average, …). Si può vedere anche come impiegare il foglio di calcolo per automatizzare alcuni dei procedimenti svolti da statfile (usando le funzioni Max e Min per trovare il massimo e il minimo tra i dati presenti in un rettangolo di celle; usando la possibilità di realizzare istogrammi; usando la possibilità di memorizzare in colonne diverse dati che - usando statfile - occorreva registrare come file differenti; …). Ricordiamo che per riprodurre una formula, oltre ai Copia (Copy) e Incolla (Paste) o simili, i fogli elettronici offrono l'opportunità di riprodurre una formula (verso destra o verso il basso) con un unico comando (Fill down, Fill right o simili), dopo aver selezionato le celle in cui effettuare la riproduzione.

3.9.5 Quesito 38. Per [5] vedi il corrispondente riquadro nel diagramma; in [10] ci va "TO a"; in [12] "PRINT 50".

3.9.6 Quesito 40. Trasforma le maiuscole in minuscole, compiendo l'operazione inversa di UCASE$.

3.9.7 Quesito 41. E` corretta la prima descrizione.
   

Scheda 4 (Suoni e immagini al calcolatore - Sottoprogrammi)
    E` una scheda che:
    • contiene considerazioni generali (sui segnali, in §1; sui suoni, in §2; sulla grafica, all'inizio di §3), che sviluppano tematiche introdotte nella scheda 1,
    • introduce alcuni aspetti generali sulla gestione dei file e sull'uso delle applicazioni grafiche (fine di §3, fine di §6),
    • affronta argomenti di programmazione (istruzioni grafiche, in §3 e §6; variabili indiciate, in §4; sottoprogrammi, in §5; costruzione/lettura di file, in §7).
    Come indicato nello "schema del 2° volume" questa scheda dovrebbe essere svolta in parallelo alla scheda 2 di La matematica e lo spazio e alla scheda Modelli matematici per l'economia; la gestione dovrebbe diversificarsi seconda della natura dei paragrafi. In particolare:
    • i primi due paragrafi (che dovrebbero essere preceduti da una "ripresa" della scheda 1, in particolare dei §§2,7,8) si prestano a momenti di lavoro interdisciplinare (su tematiche fisiche), a discussioni/interazioni con gli alunni su argomenti di loro interesse (digitalizzazione, musica, …), … e dovrebbero essere svolti prima o contestualmente al §1 di Modelli matematici per l'economia;
    • il §3, e i quesiti 32 e 33, sono stati pensati per essere collegati al §7 della scheda 2 di La matema-tica e lo spazio (trasformazioni geometriche) e per una gestione in aula computer; questo paragrafo e il successivo §6 si prestano a collegamenti interdisciplinari con "disegno";
    • il §4 introduce l'uso delle variabili indiciate, che vengono impiegate nei paragrafi successivi e, poi, nella scheda La matematica tra gioco e realtà; questo paragrafo, che volendo può essere svolto successivamente (ma comunque prima di La matematica tra gioco e realtà), è importante non solo dal punto di vista informatico, ma, soprattutto, per i suoi collegamenti con il concetto di successione e, più in generale, di funzione a (uno o più) input in IN;
    • il §5 introduce l'argomento dei sottoprogrammi e può essere considerato facoltativo (in partico-lare per le scuole con programma "debole"); nel seguito l'uso dei sottoprogrammi è indispensabile solo per alcune attività proposte in La matematica tra gioco e realtà (programma fa_rnd in §6), ma a livello elementare, per il quale sono sufficienti alcune indicazioni che l'insegnante può estrarre da questo paragrafo;
    • la prima parte di §6 contiene approfondimenti "facoltativi" sulle istruzioni grafiche (che possono essere utili per stimolare la creatività e interessare gli alunni ad attività di programmazione che l'inse-gnante può indirizzare verso contenuti matematicamente significativi); la seconda parte, indipendente dalla prima, fornisce informazioni generali sulle applicazioni grafiche e può introdurre attività geometriche al calcolatore con applicazioni di tipo paint/draw (<>Ƨ7 di La matematica e lo spazio);
    • il paragrafo "esercizi" (§7) contiene anche, come già osservato, alcuni approfondimenti infor-matici sulle variabili indiciate, sui sottoprogrammi e sui file (per il seguito è indispensabile solo la conoscenza delle istruzioni per costruire file, utilizzate nel programma fa_rnd sopra citato, ma sono sufficienti alcune indicazioni che l'insegnante può estrarre dal quesito 30).
    Le parti "facoltative" che vengono saltate possono essere lette autonomamente dagli alunni più interessati alle attività di programmazione.

4.1.1 Quesito 1. Il grafico a sinistra si riferisce al contagiri D1, quello a destra al contagiri D2. La spiegazione è contenuta nella frase che precede il quesito.

4.1.2 Quesito 2. Esempi (oltre a quelli presenti nella scheda): bilancia, tachimetro, tester, seleziona-tore/indicatore di frequenza di una radio, "contatori" (acqua, gas, …), … sono presenti sia in versio-ne digitale che in versione "ad ago". Gli indicatori della benzina erogata dai distributori attualmente sono quasi tutti digitali. Gli indicatori del livello della benzina nel serbatoio sono quasi tutti ad ago.

4.2.1 Quesito 3. Nel caso del grafico A la frequenza (n. di cicli al secondo) man mano aumenta e quindi il suono diventa più acuto.

4.2.2 A proposito della scala musicale (prima del quesito 4) osserviamo (a "livello adulto") che non solo i successivi do (o i successivi re, …) hanno frequenza che varia esponenzialmente (da un do al successivo la frequenza si moltiplica per 2, da un do a n do dopo la frequenza si moltiplica per 2n), ma anche tra una nota e la seguente vale una relazione analoga. Possiamo osservare che i rapporti 293.7/261.6, 329.6/293.7, 349.2/329.6, 392/349.2, 440/392, 493.9/440, 523.2/493.9 valgono, circa, 1.12, 1.12, 1.06, 1.12, 1.12, 1.12, 1.06 e che 1.12 è circa 1.06·1.06. Quindi attraverso 12 successive moltiplicazioni per (circa) 1.06 si passa dalla frequenza di un do a quella del successivo, passando man mano per le frequenze delle altre note. In effetti le note sono definite in questo modo.
    Poiché la frequenza nel corso di un'ottava deve raddoppiare, abbiamo che il moltiplicatore k, che abbiamo approssimato a 1.06, è tale che k12=2, cioè k=21/12=1.05946… .

La cosa può essere visualizzata bene rappresentando le frequenze in scala (se-mi)logaritmica, ad esempio con gra-fun (<>Æfigura a lato).
    I pallini rappresentano note "inter-medie" che completano la scala musicale normale, in modo che tra ogni nota e la successiva la frequenza venga molti-plicata per k. La scala così completata è nota come scala temperata di Bach. Per convenzione si assume che il la dell'"ottava centrale" abbia frequenza di 440 Hz e si prendono come frequenze per le altre note valori del tipo 440·kn (n intero, k=21/12).


4.2.3 A proposito dell'istruzione SOUND osserviamo che con il QuickBasic per Mac è possibile produrre note non solo ad onda quadra (vedi quanto osservato alla fine di §2), che l'istruzione può contenere parametri per regolare il volume del suono e sincronizzare suoni prodotto da più istruzioni sound, in modo da simulare un'orchestra.

4.2.4 Quesito 4. A) SOUND 261.6, 18.2
    SOUND 293.7, 18.2
    SOUND 329.6, 18.2
    SOUND 349.2, 18.2
    SOUND 392.0, 18.2
    SOUND 440.0, 18.2
    SOUND 493.9, 18.2
    SOUND 523.2, 18.2

Volendo produrre la scala temperata (vedi nota 4.2.2), potevamo usare il programma:
    k=2^(1/12)
    for i=0 to 12
    SOUND 261.6*k^i,18.2
    next
    B) Ad esempio: 10 INPUT F : SOUND F,20 : GOTO 10
    La banda dell'udibile di una persona in genere ha valore minimo intorno ai 20 Hz e valore massimo intorno ai 20000 Hz. La ricerca della banda dell'udibile con un programma è soggetta ad alcuni limiti, che è bene, durante la prova, esplicitare agli alunni:
    – in QB per dos si possono assegnare all'istruzione sound solo frequenze comprese tra 37 e 32767 Hz
    – in ogni caso assegnando frequenze estreme (ordine di grandezza delle decine e delle decine di mi-gliaia) i suoni prodotti da un computer possono avere frequenze diverse da quelle assegnate (in par-ticolare si possono sentire suoni a cui si è assegnata una frequenza esterna alla banda dell'udibile).

4.2.5 Quesito 5. Per trovare il periodo si può rilevare la "distanza" tra due "picchi" o, ad es., tra le intersezioni del grafico con la retta di ordinata 4. Si ottiene: periodo=29·10–4 sec (circa), frequenza=1/29·104=345 Hz (circa). Quindi la nota è un fa.


4.3.1 Quesito 6. Si sono codificati con 0 i quadretti vuoti, con 1 quelli occupati dal disegno, scan-dendo il disegno per righe. Le cifre mancanti (relative all'ultima riga) sono: 1 1 1 1 1 1 1 1 1 1 0 0.

4.3.2 Quesito 7. Il programma a sinistra traccia la V raffigurata poco sotto; il programma a destra traccia il triangolo di vertici (5, 5), (2, 30), (20, 30).

4.4.1 Quesito 9. (A) Occorre inserire dopo la riga [4]: x(3)=17:y(3)=15 e mettere "3" al posto di "2" nelle righe [7], [8] e [10]. (B) Ricorrere a variabili indiciate è utile quando si deve tradurre sotto forma di programma un procedimento che contiene la descrizione di alcune "operazioni" (grafiche, di calcolo, di confronto, …) che devono essere ripetute in modo analogo su più dati di un elenco o di una tabella.

4.4.2 Quesito 10. Il programma disegna un poligono di 12 lati e quelli che si ottengono da esso mediante successive traslazioni di 20 pixel verso destra e di 9 pixel verso il basso.

4.4.3 Quesito 11. [16] min = x(1) [18] IF x(i) < min THEN min = x(i) [24] s = s + x(i)
    [26] PRINT s/n.

4.5.1 Ulteriori informazioni sui sottoprogrammi sub (altre sono presenti nel quesito 28):

A. Nella chiamata di un sottoprogramma si possono utilizzare non solo variabili, ma più in generale termini. Ad esempio la chiamata CALL Distanza(xA,yA, (xA+xB)/2, (yA+yB)/2, dist) (del sottoprogramma SUB Distanza(x1, y1, x2, y2, d) di p.12) ai parametri x2 e y2 non sosti-tuisce variabili, ma i valori che i termini (xA+xB)/2 e (yA+yB)/2 hanno al momento della chiamata.
    Quando si effettua una sostituzione di un dato parametro con un valore o quando la si effettua con una variabile si dice, rispettivamente, che il sottoprogramma, rispetto a quel parametro, è stato chiamato per valore o per indirizzo. L'espressione "per indirizzo" sta a ricordare il fatto che durante l'esecuzione del sottoprogramma i valori del parametro vengono man mano memorizzati allo stesso indirizzo (cioè nella stessa cella di memoria) assegnato alla variabile impiegata come argomento effettivo. Nel caso, invece, della chiamata per valore al parametro viene associata una nuova cella di memoria.
    Si usa anche dire che l'argomento è stato passato, rispettivamente, per valore o per indirizzo.
    Consideriamo ad esempio la funzione fattoriale Essa può essere calcolata con il sub:

SUB FATT(n,f)
    f=1 : WHILE n>1 : f=f*n : n=n-1 : WEND
    END SUB

Se calcolo 4! con x=4 : CALL FATT (x,y) : PRINT y ottengo il valore cercato 24, ma se batto PRINT x non ho più 4, ma 1; cioè si è perso il valore iniziale di x. Per evitare ciò devo far sì che la chiamata relativa al parametro n avvenga per valore. A tal fine basta che effettui la chiamata con CALL FATT((x),y). Infatti in tal modo l'argomento (x) non è una variabile e quindi il programma traduttore sostituisce al parametro n il valore di esso, cioè il valore della variabile x, invece che la variabile x stessa. Analogamente avrei potuto impiegare CALL FATT(x+0,y).

Non avrei avuto questi problemi se avessi impiegato il sub:

SUB FATT(n,f)
    f=1 : m=n : WHILE m>1 : f=f*m : m=m-1 : WEND
    END SUB
    o:
    SUB FATT(n,f)
    f=1 : FOR i=2 TO n : f=f*i : NEXT
    END SUB

Nel primo caso il valore di n non viene modificato in nessun caso poiché i decrementi vengono effettuati sulla variabile m; nel secondo caso invece si effettuano incrementi sulla variabile i.

B. La presenza di una istruzione SHARED lista-di-variabili all'inizio di un sub fa sì che le variabili elencate vengano "condivise" dal sottoprogramma con il programma principale, cioè con-siderate non variabili locali (<>Æp.14 della scheda), ma variabili globali: si veda il programma sotto a sinistra. Invece l'istruzione DIM SHARED lista-di-variabili messa nel programma prin-cipale fa sì che le variabili elencate vengano successivamente condivise da tutti i sottoprogrammi: si veda il programma sotto a destra (si noti che se in questo programma scambiamo le prime due righe non otteniamo più gli output attesi: l'istruzione dim shared azzera le variabili elencate).
    pi=ATN(1)*4 : duepi=ATN(1)*8
    10 INPUT raggio
    CALL CIRC(raggio,c)
    CALL AREA(raggio,A)
    PRINT c,A : GOTO 10
   

    SUB CIRC(r,c)
    SHARED duepi
    c=r*duepi
    END SUB
   

    SUB AREA(r,A)
    SHARED pi
    A=r*r*pi
    END SUB

DIM SHARED duepi, pi
    pi=ATN(1)*4 : duepi=ATN(1)*8
    10 INPUT raggio
    CALL CIRC(raggio,c)
    CALL AREA(raggio,A)
    PRINT c,A : GOTO 10
   

    SUB CIRC(r,c)
    c=r*duepi
    END SUB
   

    SUB AREA(r,A)
    A=r*r*pi
    END SUB

C. La parola STATIC (vedi p.13 della scheda) fa sì che le variabili locali del sottoprogramma, all'inizio di una chiamata di esso, abbiano ancora i valori che avevano alla fine dell'esecuzione di una eventuale precedente chiamata; in altre parole, l'uso di STATIC evita l'azzeramento automatico delle variabili locali alla fine di ogni chiamata (ciò rende più leggermente più veloce l'esecuzione del programma). Se non si mette STATIC le variabili locali non sono "statiche" nel senso ora precisato. È possibile rendere statiche solo alcune variabili locali impiegando un'istruzione STATIC lista di variabili analoga all'istruzione "shared".

D. L'istruzione EXIT SUB consente di "uscire" dal sub chiamato prima di arrivare all'istruzione finale END SUB. Si veda ad esempio il seguente programma che calcola in modo ricorsivo la funzione fattoriale.

10 INPUT n
    CALL FATT(n,f)
    PRINT f
    GOTO 10
    SUB FATT(n,f)
    f=1
    IF n<2 THEN EXIT SUB
    CALL FATT(n-1,g)
    f=g*n
    END SUB

E. Le variabili indiciate usate come parametri non necessitano di dichiarazione (devono essere invece dichiarate le variabili indiciate usate come variabili locali nel casi in cui si preveda di usare indici di valore superiore a 10). L'istruzione dim shared applicata alle variabili indiciate serve sia per dimensionarle che per renderle globali; naturalmente, dopo il nome della variabile occorre metterne tra parentesi la/e dimensione/i.

4.5.2 Quesito 12. Errata corrige: mettere 1, 2, 3 come indici invece di 0, 1, 2 nelle righe [3]-[5] del programma. I programma scambia man mano le x con le y, ossia (se la rappresentazione è monometrica) ribalta il triangolo attorno all'ipotenusa.

4.6.1 Quesito 13. Il ciclo tabula la funzione (e traccia i corrispondenti punti del grafico) utilizzando una partizione di [x1,x2] in n sottointervalli uguali (di ampiezza h).

4.6.2 Quesito 14. (1) Basta modificare i valori di x1, x2 e y2 (= 400) nella istruzione 3 (2) occorre inserire una riga 10-bis con PSET (x1, x1* x1) e modificare le righe 11 e 13 come segue:

[11] FOR i=1 TO n [13] LINE -(x(i), y(i))

4.7.1 Quesito 15. T = 30 ms, f = 1/30 giri/ms = 1/30·1000·60 giri/min = 2000 giri/min (nota: 30 non è il periodo esatto: potrebbe essere ad esempio 29.5…; di più non possiamo sapere dal grafico; di conseguenza 2000 è da intendere come valore approssimato: <>ÆGli oggetti matematici, p.49.

4.7.2 Quesito 16. È una relazione di inversa proporzionalità in quanto f·T=costante.

4.7.3 Quesito 18:
    INPUT "numero dati ( >0)"; n
    DIM dat(n)
    FOR i = 1 TO n
    PRINT "dato"; i; : INPUT dat(i) : s = s + dat(i)
    NEXT
    FOR i = 1 TO n
    PRINT "dato"; i; ":", dat(i)/s*100; "%"
    NEXT
    oppure:
    10 INPUT "numero dati ( >0)"; n
    DIM dat(n) : s=0
    ...
    ERASE dat : goto 10
    Si noti che si è dovuto aggiungere l'azzeramento della variabile s e, mediante l'istruzione ERASE, la liberazione dello spazio di memoria che il precedente DIM aveva riservato alla variabile dat() (altrimenti durante l'esecuzione comparirebbe un messaggio d'errore che segnala il tentativo di "dichiarare" una variabile indiciata già dichiarata).

4.7.4 Quesito 19: FOR i = 1 to n
    IF voto(i)>=6 then print i;
    next

4.7.5 Quesito 20: IF pag (i) = 0 THEN ...

4.7.6 Quesito 21: PRINT nome$(graduatoria (i))

4.7.7 Quesito 22:
   


    4.7.8 Quesito 23. Basta aggiungere prima di goto 10:

ok=0

for i=1 to 3 : for j=1 to 3

if x$(i,j)="-" then ok=1

next : next

if ok=0 then end

4.7.9 Quesito 24: CALL (n, x(), 100/s, z( )) CALL (n, x(), 360/s, w( ))

4.7.10 Quesito 25: Riferirsi alla configurazioni sottostanti (o a loro "traslazioni")

4.7.11 Quesito 26. Disegna un poligono regolare di N lati inscritto in un cerchio di centro C e raggio R (N, C, e R dati in input)

4.7.12 Quesito 27.
    10 INPUT "reddito in milioni"; reddito
    IF reddito <= 15.5 THEN
    imposta = 0
    ELSEIF reddito <= 30 THEN
    imposta = (reddito - 15.5)*0.1
    ELSE
    imposta = 1.45 +(reddito - 30)*0.2
    END IF
    PRINT "l'imposta da pagare è di"; imposta; "milioni di lire"
    GOTO 10

4.7.13 Quesito 28.
    IF x < 3 THEN y = 4 ELSE y = x + 1
    IF x < 5 THEN y = 0 ELSE y = x * 2

4.7.14 Quesito 29.
    INPUT n : SCREEN n
    10 CLS : INPUT c : LINE (10,10)-(50,10), c : GOTO 10

4.7.15 Quesito 30.
    n=4
    OPEN "pagamento" FOR INPUT AS #1
    FOR i=1 TO n : INPUT #1,nome$(i), pag(i) : NEXT
    CLOSE #1
    FOR i=1 TO n
    ...

4.7.16 Quesito 31.
    OPEN "dati" FOR INPUT AS #1
    INPUT #1, n
    ...
    INPUT #1, x(i)
    ...
    CLOSE #1
    ...

4.7.17 Quesito 32. Il pesce C si ottiene dal pesce A scegliendo "3:molt" e assegnando i valori 1 e 2 rispettivamente al moltiplicatore di x e di y.