Per strada

La matematica per i movimenti e i mezzi di trasporto

Scheda 1

Da casa a scuola

0.   Introduzione

1.   Scale, distanze, direzioni, spostamenti

2.   Uso delle coordinate

3.   Descrizioni dei percorsi

4.   Esercizi

0. Introduzione

     In questa unità didattica prenderemo in considerazione la matematica che serve per descrivere e studiare i movimenti. Considereremo sia gli spostamenti lungo percorsi stradali, sia i movimenti che vengono generati o trasformati da un mezzo di trasporto.

     Vedremo, anche, come la matematica ci possa permettere di collegare questi aspetti geometrici a problemi importanti per usare consapevolmente un mezzo di trasporto, come quello del comportamento da tenere al variare della pendenza della strada o quello della sicurezza stradale.

     Alcuni aspetti più strettamente matematici verranno man mano approfonditi nell'u.d. La Matematica e lo Spazio.

1. Scale, distanze, direzioni, spostamenti.

     Partiamo da un problema familiare. Lo studente Otto Bus ogni mattina prende un autobus che lo porta dalla località in cui abita alla cittadina in cui è ubicata la scuola; percorre, poi, a piedi la strada dalla fermata di arrivo alla scuola. In figura 1 è riprodotta parte di una carta stradale che contiene sia la casa di Otto che la scuola.

figura 1

  Sulla cartina è indicata la scala grafica. Misura la lunghezza (arrotondata ai millimetri) del tratto che rappresenta 250 m ed esprimi sotto forma di rapporto la scala numerica (figura®realtà), cioè il fattore di ingrandimento per passare dalle misure sulla figura alle misure reali.

                                                                                             scala (figura®realtà)  = 

Qual è il valore numerico di questo rapporto?                       scala (figura®realtà)  = 

     Un compagno di classe di Otto abita nella località indicata con A, un altro nella località B. Per chi, fra Otto e questi compagni, è minore la distanza della scuola da casa?

     Se intendiamo la distanza in senso temporale, dobbiamo rispondere: per Otto. Infatti Otto ha la fermata dell'autobus sotto casa mentre da A e da B occorre percorrere un bel pezzo a piedi prima di arrivare sulla strada in cui passa l'autobus.

     Se intendiamo la distanza lungo la strada, dobbiamo rispondere che essa è minore per l'alunno che abita in A.

     La distanza in linea d'aria è invece minore per l'alunno che abita in B.

  Calcola la distanza in linea d'aria tra la casa di Otto e la scuola (arrotondata ai metri).

         distanza sulla figura in mm =                             scala (figura in mm®realtà in m) =

                            distanza reale in m =      · scala  =      · 250/24  =         

  Calcola la distanza lungo la strada tra la fermata in cui Otto prende il bus e la fermata di arrivo, cioè la lunghezza del cammino percorso dall'autobus. Ti conviene calcolare le lunghezze reali di ciascun tratto rettilineo e poi sommarle o fare prima la somma delle lunghezze sulla figura e poi moltiplicare questo valore per la scala?

     Si può osservare che il solo percorso dell'autobus è maggiore della distanza in linea d'aria casa-scuola.

  Se l'autobus seguisse un percorso parzialmente diverso, svoltando a destra al primo incrocio dopo la casa di Otto (strada tratteggiata meno fittamente), secondo te percorrerebbe più o meno strada?

    [rispondi senza fare misure e calcoli]

  Verifica la congettura calcolando la lunghezza di questo percorso.

  Si poteva verificare la congettura senza fare misure e calcoli ?

    [aiutati con la figura 2, in cui P1-X-Y-P2 e P1-U-V-W-P2 sono i due tratti di percorso alternativi, e utilizza la pro-prietà che la somma delle lunghezze di due lati di un trian-golo è maggiore della lunghezza del terzo]

figura 2

     Sia che segua il solito tragitto, sia che segua il nuovo, il bus si sposta comunque dal punto P1 (incrocio dopo la casa di Otto) al punto P2 (incrocio prima dell'ingresso nella cittadina). Quando non si vuole descrivere tutta la traiettoria percorsa da un oggetto in movimento ma si vuole descrivere solo come la posizione di arrivo è cambiata rispetto a quella di partenza, si usa il concetto di spostamento:

lo spostamento per andare da un punto P a un punto Q è caratterizzato da due elementi:

   la direzione con cui da P si punta verso Q,

   la distanza in linea d'aria di P da Q.

figura 3

    Gli spostamenti possono essere rappre-sentati con frecce: nella figura 3 la freccia S1 rappresenta lo spostamento casa-scuola di Otto, la freccia S2 rappresenta lo spo-stamento da P1 a P2 del bus.

    Nella cartina le direzioni possono esse-re individuate riferendosi ai punti cardinali raffigurati. Ad esempio quando il bus pas-sa davanti alla casa di Otto è diretto nella direzione NE (nord-est).

     Vediamo come possiamo determinare la direzione di S1, cioè dello spostamento casa-scuola.

     Possiamo porre una squadretta nella posizione 1 (®figura 4), in modo che uno dei due lati che forma-no l'angolo retto si sovrapponga alla freccia S1.  Quindi poniamo una riga nella posizione 2 (al posto della riga si può usare un'altra squadra) e facciamo scorrere la squadra, fino ad arrivare alla posizione 3.

     Il lato della squadra che era sovrapposto a S1 durante il movimento ha mantenuto la stessa inclinazione,

per cui ora ci consente di individuare la direzione di S1.

     Come si vede meglio nel seguente in-grandimento, una freccia passante per il centro del cerchio graduato e diretta come S1 passa per la terza divisione in cui è suddiviso il settore che va da E a N.

figura 4

     Le tacche sono distanziate di 15° l'una dall'altra (infatti da E a N vi sono 6 divisioni). Quindi la direzione è compresa tra 30°E®N e 45°E®N; possiamo approssimarla meglio dicendo che è circa 35°E®N (direzione ruotata di circa 35° verso nord rispetto alla direzione est).

  Trova la direzione dello spostamento S2 (lavora sulla figura 1 impiegando una riga e una squadra o due squadre; al posto di una squadra puoi impiegare un libro o un altro oggetto che abbia due spigoli consecutivi perpendicolari).

                                                                                        direzione di S2:   . . . . . . . .

  In figura 5 sono tracciati due punti P1 e P2 e una freccia che rappresenta lo spostamento S che porta da P1 a P2.  Traccia i punti Q2, T2 e V2 in cui si arriva partendo da Q1, T1, V1 e "applicando" lo spostamento S (cioè effettuando cambiamenti di posizioni descrivibili con frecce uguali sia in lunghezza che in direzione a quella che va da P1 a P2).

      

     figura 5

     La traiettoria seguita da Otto è composta da tanti tratti rettilinei, per cui la sequenza di spostamenti:

figura 6

a, b, c, d, e, f, g, h, i

rappresentati in figura 6 la descrive in maniera esauriente.

      S1 descrive il cambiamento di posizione complessivo che risulta dalla successione degli spostamenti  a, b, c, d, e, f, g, h, i.

      Anche la successione di sposta-menti a, S2, e, f, g, h, i  dà luogo allo spostamento complessivo S1.

2. Uso delle coordinate

     Il tragitto che Otto percorre a piedi può essere esaminato più in dettaglio servendosi di una cartina meno ridotta (®figura 7).

figura 7             

     In questa cartina non sono indicati i cosiddetti "punti cardinali".  Per indicare gli spostamenti possiamo riferirci alle direzioni "orizzontale a destra", "orizzontale a sinistra", "verticale in basso", "verticale in alto".

     Ad esempio il primo tratto di strada percorso da Otto va da una posizione del riquadro E1 a circa la stessa posizione del riquadro E2 e, poiché un riquadro è largo (nella realtà) 50 m, possiamo dire che si tratta di uno spostamento orizzontale di circa 50 metri verso destra.

     Come possiamo descrivere lo spostamento complessivo, dalla fermata del bus all'ingresso della scuola?

     In prima battuta possiamo osservare che Otto si sposta dal riquadro E1 al riquadro A4, cioè di circa 3 riquadri a destra e 4 in alto, cioè di circa 150 m a destra e 200 m in alto.

     Per essere più precisi invece che alle coordinate del tipo A1, B2, …, ci possiamo riferire a coordinate numeriche (®numeri scritti a tratteggio nella figura 7):  Otto è partito circa dal punto (25,30), cioè 25 m a destra rispetto al bordo sinistro della cartina e 30 m in alto rispetto al bordo inferiore.

   Come puoi descrivere il punto finale di arrivo di Otto? E come lo spostamento fermata-scuola?

     Abbiamo, dunque, visto che uno spostamento può essere descritto sia con la coppia di informazioni:

       direzione, distanza

sia con la coppia di informazioni:

       variazione della coordinata orizzontale, variazione della coordinata verticale.

     Nel caso dello spostamento fermata-scuola abbiamo (®figura 8):   

                                     variazione coordinata orizzontale = 170

                                          variazione coordinata verticale = 180

figura 8

 

Come descriveresti lo spostamento opposto, scuola-fermata?

Qual è la distanza "lungo la strada" della scuola dalla fermata del bus? E quella della fermata del bus dalla scuola?

 

     Non vi sono traiettorie più brevi per raggiungere la scuola di quella seguita da Otto, cioè della traiettoria E1-E2-D2-D3-A3-A4 (abbiamo indicato, oltre ai riquadri iniziale e finale, quelli in cui avvengono le svolte). Tuttavia, poiché le strade della cittadina si incontrano perpendicolarmente, formando un reticolato, vi sono altri percorsi brevi come quello scelto da Otto:

basta che, a partire dalla fermata del bus, si proceda percorrendo le strade orizzontali solo verso destra e le strade verticali solo verso l'alto, cioè avvicinandosi sempre alla scuola.

 

 

1

E1

E4

A4

 

 

 

 

 

2

E1

E3

D3

D4

A4

 

 

 

3

E1

E3

C3

C4

A4

 

 

 

4

E1

E3

 

 

 

 

5

E1

E2

D2

D4

A4

 

 

 

6

E1

E2

D2

D3

C3

 

7

E1

E2

D2

D3

A3

A4

 

 

8

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

  Quante sono le traiettorie che comportano la mi-nima percorrenza?

    [Aiutati completando la tabellina a fianco, in cui sono già parzialmente riportate alcune traiettorie "minime"; la riga in corsivo rappresenta la traiettoria seguita da Otto]

       Dunque, se le strade sono parallele ai bordi, abbia-mo:

(2.1)        distanza lungo la strada = |variazione della coord. orizzontale| + |variazione della coord. verticale|

     Se vogliamo conoscere la distanza "in linea d'aria" fermata-scuola e non disponiamo di una riga, come possiamo procedere?

     Possiamo, ad esempio, disporre una striscia di carta lungo lo spostamento fermata-scuola, e, con una matita o con delle piegature, segnare su di essa la posizione della fermata del bus e quella dell'ingresso della scuola. Spostando la striscia lungo uno dei bordi possiamo poi individuare la corrispondente distanza in metri.

Opera in questo modo in figura 7, sulla riproduzione della cartina. Quale valore (arrotondato alle decine di metri) trovi?

Qualcuno di voi sa escogitare un modo per trovare questa distanza senza operazioni di tal genere, ma servendosi delle sole coordinate della fermata del bus e dell'ingresso della scuola?        [osserva la figura a fianco]

   

Trova con questo metodo la distanza in linea d'aria (arrotondata alle decine si metri) e confrontala con il valore trovato con il quesito 13. 

         variazione della coordinata orizzontale = 170                               suo quadrato = 

         variazione della coordinata verticale = 180                                   suo quadrato = 

         somma dei due quadrati = …                             radice quadrata di tale somma = 

Scrivi una sequenza di tasti che ti permetta di calcolare con una CT tale distanza (a partire dai dati 170 e 180) senza annotare sulla carta risultati intermedi. 

     La proprietà che abbiamo impiegato, cioè il teorema di Pitagora (®figura 9), può essere espressa nella forma:

(2.2)               ipotenusa2 = cateto12+cateto22                       ovvero:

(2.3)               ipotenusa =

dove con ipotenusa, cateto1 e cateto2 abbiamo indicato le misure delle lunghezze dell'ipotenusa e dei due cateti in una fissata unità di misura.

figura 9

     Il quesito 15 ci conferma la validità di questa proprietà: la misura diretta della distanza in linea d'aria (ipotenusa) è uguale a quella che si ottiene utilizzando (2.3).

     Non è, tuttavia, una conferma definitiva: abbiamo considerato non misure "esatte", ma misure approssimate alle decine di metri; poi abbiamo verificato la proprietà solo in un caso particolare. Comunque tutte le verifiche sperimentali su figure a forma di triangolo rettangolo disposte su superfici piane hanno sempre confermato questa relazione.

      Nel quesito 24 è presentato un ragionamento che dimostra in generale questa proprietà (la parola teorema indica, appunto, che questa proprietà può essere dimostrata).

Sotto è raffigurato un triangolo rettangolo e tre righe millimetrate disposte lungo i suoi lati. Con le righe troviamo che le misure (in mm) dei cateti cadono negli intervalli di indeterminazione [53, 54] e [30, 31]. 

(a) Usando (2.3) trova l'intervallo di indeterminazione in cui cade l'ipotenusa.

(b) Verifica se c'è contraddizione tra l'intervallo così trovato e quello che si ottiene misurando direttamente l'ipotenusa. 

 

 

 

53 ≤

cateto1

≤ 54

2809 ≤

cateto12

≤ 2916

 

… ≤

cateto2

≤ …

… ≤

cateto22

≤ …

 

Con il teorema di Pitagora:

 

ipotenusa

 

ipotenusa

 

Con la misura diretta:

 

ipotenusa

 

 

 

3. Descrizioni dei percorsi

Supponete di essere nella località A (®figura 1). State chiacchierando con degli amici quando arriva un'auto. L'uomo al volante vi chiede come può raggiungere la località B.  Come gli rispondete?

In figura 10 è riprodotta la mappa di un tesoro. E` tracciato il percorso che si deve seguire per raggiungere il tesoro partendo dal molo raffigurato, nell'unica insenatura dell'isola che permette l'attracco. I lati del reticolato sono ampi 10 m, cioè circa 10 passi.

     Un cercatore di tesori approda all'isola senza disporre della mappa. Ha solo tre pergamene, un po' rovinate, contenenti l'indicazione del percorso.

(a) Osserva le tre pergamene (riprodotte a fianco del-

la mappa), cerca di capirne il significato e completale.

(b)  Usando la 1a o la 2a pergamena sapresti determi-

nare la posizione del tesoro rispetto al punto di par-

tenza senza tracciare tutto il percorso?

 

90N

70S

 

0,90

 

S

S

 

50E

70W

 

50,0

-70,0

 

90

120

 

30S

40N

 

0,-30

0,40

 

D

D

D

 

120E

 

 

 

 

50

90

70

 

 

 

 

 

D

D

D

 

70W

 

 

-70,0

 

 

30

70

40

 

 

                                                                             figura 10

Quali delle tre descrizioni del percorso diresti che usano indicazioni assolute, quali relative? Perché?

     Vediamo come possiamo descrivere con un programma degli spostamenti nelle direzioni dei quattro punti cardinali.

     Prima di far ciò consideriamo un semplice programma che illustra l'uso della seguente istruzione QB:

 LOCATE TermineNumerico,TermineNumerico

     L'azione comandata da LOCATE t1,t2 (se m e n sono i valori, arrotondati agli interi, dei termini t1 e t2) è quella di collocare la penna di scrittura del calcolatore sulla riga di caratteri m-esima, alla n-esima colonna.

(3.1)

[1]

[2]

[3]

[4]

[5]

[6]

[7]

CLS

i=1

Posizione:

  LOCATE i,50 : INPUT "riga,colonna"; R,C

  LOCATE R,C : PRINT "O";

  i=i+1

GOTO Posizione

     Ecco un esempio d'uso del programma (3.1):

figura 11

     Con [1] viene pulito lo schermo da eventuali scritte.

     Alla prima esecuzione di [4] il prompt riga,colonna? viene scritto a partire dal 50° posto della 1ª riga dello schermo; infatti inizialmente i vale 1.

     L'utente assegna a R il valore 2 e a C il valore 1. Con [5] viene scritto O al 1° posto della 2ª riga.

     Con [6] i viene aumentato a 2, così che il successivo prompt comparirà sulla 2ª riga, sempre al partire dal  50° posto.

    

     Quando l'utente tenta di assegnare a R il valore 0 il calcolatore blocca l'esecuzione e segnala il messaggio d'errore "Invalid function call" o "Chiamata di funzione non valida" indicando che l'errore è avvenuto durante l'esecuzione dell'istruzione LOCATE R,C: non è possibile chiedere il posizionamento della penna di scrittura fuori dallo schermo (la prima riga è la riga 1).

     Il programma (3.2) permette di tracciare spostamenti (indicati riferen-dosi ai "punti cardinali").  Prima di esaminare il programma vediamo che cosa appare sullo schermo dopo che ai prompt si risponde nel modo indicato a destra:

Riga,Colonna primo punto (1<=C<=50,3<=R<=23)? 10,1

direzione (n,s,e,w)? n   numero passi? 5

direzione (n,s,e,w)? e   numero passi? 4

direzione (n,s,e,w)? s   numero passi? 5

direzione (n,s,e,w)? n   numero passi? 5

direzione (n,s,e,w)? e   numero passi? 4

direzione (n,s,e,w)? s   numero passi? …

direzione (n,s,e,w)? …   numero passi? 6

direzione (n,s,e,w)? n   numero passi? 5

direzione (n,s,e,w)? e   numero passi? 8

direzione (n,s,e,w)? s   numero passi? 4

direzione (n,s,e,w)? w   numero passi? …

direzione (n,s,e,w)? e   numero passi? …

direzione (n,s,e,w)? s   numero passi? …

direzione (n,s,e,w)? …   numero passi? 8

direzione (n,s,e,w)? …   numero passi? …

direzione (n,s,e,w)? …   numero passi? …

direzione (n,s,e,w)? e   numero passi? 6

Inizialmente ci si posiziona al 1° posto della riga 10. Poi si avanza di 5 passi verso N (viene tracciata la prima gamba della m di mat). … . Si finisce con lo spostamento di 6 passi verso E (viene completata la t).  Completa la descrizione degli spostamenti. Puoi controllare le risposte usando il programma (già memorizzato come spostam.bas).

(3.2)

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

[15]
[16]

[17]

[18]

[19]

[20]

[21]

[22]

[23]

[24]

[25]

[26]

[27]

[28]

[29]

[30]

[31]

CLS

PosizioneIniziale:

   LOCATE 1,1 : PRINT SPACE$(80); : LOCATE 1,1

   INPUT "Riga,Colonna primo punto (1<=C<=50, 3<=R<=23)"; R,C

   IF R<3 OR R>23 OR C<1 OR C>50 THEN GOTO PosizioneIniziale

   LOCATE R,C : PRINT "O";

Spostamento:

   LOCATE 1,1 : PRINT SPACE$(80); : LOCATE 1,1

   INPUT ; "direzione (n,s,e,w)"; dir$

   INPUT "  numero passi"; np

   SELECT CASE dir$

   CASE "e"

      IF C+np>50 THEN GOTO Spostamento

      FOR i=1 TO np : LOCATE R,C+i : PRINT "O"; : NEXT

      C=C+np

   CASE "w"

      IF C-np<1 THEN GOTO Spostamento

      FOR i=1 TO np : LOCATE R,C-i : PRINT "O"; : NEXT

      C=C-np

   CASE "s"

      IF R+np>23 THEN GOTO Spostamento

      FOR i=1 TO np : LOCATE R+i,C : PRINT "O"; : NEXT

      R=R+np

   CASE "n"

      IF R-np<3 THEN GOTO Spostamento

      FOR i=1 TO np : LOCATE R-i,C : PRINT "O"; : NEXT

      R=R-np

   CASE ELSE

      GOTO Spostamento

   END SELECT

GOTO Spostamento

Commenti

[5] Viene riservato agli spostamenti il rettangolo che va dalla 3a alla  23a riga e dalla  1a alla  50a colonna. Le "coordinate" che cadono fuori non sono accettate. Occorre ribattere gli input.

           Si noti che in QB si possono impiegare gli operatori logici OR, AND e NOT per costruire, a partire da altre condizioni, condizioni più complesse. Abbiamo già visto che una condizione può avere la forma:  Termine SimboloRelazionale Termine

           Può avere inoltre le forme:            (1)    (Condizione)     (cioè si possono usare le parentesi)

(2)   NOT Condizione

(3)   Condizione {OR|AND} Condizione

           Il significato degli operatori OR, AND e NOT è vicino a quello delle congiunzioni della lingua italiana o, e e non, ma non coincidente (®quesito 25).

[3],[8] Queste istruzioni hanno lo scopo di cancellare la prima riga e riposizionare all'inizio di essa la penna di scrittura.  SPACE$(TermineNumerico) è una funzione a input numerici e output stringa che assume come valore la stringa costituita da n spazi bianchi, se n è il valore di TermineNumerico.

[11]-[30]   select case e end select delimitano una istruzione a più righe . Si tratta dell'istruzione di selezione, che ha la struttura a fianco.

     Di fronte a questa istruzione il computer calcola il valore di Termine (che può essere numerico o stringa) e cerca ordinatamente la ListaDiCostanti che lo contiene. Appena la incontra esegue le istruzioni tra questo CASE ListaDiCostanti e il successivo CASE (o l'END SELECT se è l'ultimo CASE). Poi salta alla riga di programma successiva a END SELECT. Se non incontra una ListaDiCostanti che contenga il valore arresta l'esecuzione, a meno che non sia presente CASE ELSE; in tal caso esegue le eventuali istruzioni ad esso successive.

SELECT CASE Termine

CASE ListaDiCostanti

[Istruzione]

...

[CASE ListaDiCostanti

[Istruzione]

...]

...

[CASE ELSE

[Istruzione]

...]

END SELECT

[12]-[15]   Se si è scelta la direzione est il punto di arrivo è posizionato np posti più a destra, cioè ha C incrementata di np. Prima di tracciare i punti spostati a destra di 1, 2, …, np posti con un ciclo FOR-NEXT, viene controllato che il punto di arrivo non esca dal rettangolo scelto; se così fosse il programma ritornerebbe a Spostamento e chiederebbe di riscegliere lo spostamento. Dopo il tracciamento ([16]) il punto di arrivo viene assunto come nuovo punto di partenza, cioè si aggiorna C assegnandole il numero della colonna su cui si è attualmente posizionati.

[16]-[27]   Nel caso delle altre direzioni il comportamento è analogo a quello sopra descritto per la direzione est.

[28]-[29]    Se non si è battuta una delle 4 lettere utilizzate per indicare i punti cardinali, il programma ritorna a Spostamento e chiede di riscegliere lo spostamento.

[31]            Dopo il tracciamento il programma ritorna a Spostamento e chiede di scegliere un nuovo spostamento.

4. Esercizi

In figura 12 sono raffigurati tre spostamenti

a, b e c.

   Traccia una freccia che rappresenti lo spo-stamento complessivo che si ottiene compo-nendo ordinatamente  questi tre spostamenti.

   Come potresti descrivere numericamente questo spostamento?

   Prova a comporre a, b, c in ordine diverso e raffigura lo spostamento complessivo.

   Come potresti calcolare lo spostamento complessivo senza fare disegni?

   Potevi concludere che lo spostamento com-plessivo è immutato ragionando solo sulla descrizione numerica dei tre spostamenti?

figura 12

  Calcola con una riga millimetrata la distanza tra le posizioni che corrispondono al vertice in alto a sinistra e al vertice in basso a destra della cartina di figura 12 (procedi come nel quesito 2; ma, attento, la scala di questa cartina è diversa!).

     Confronta questo valore con quello che puoi ottenere (con una CT) procedendo come nel quesito 15.

  Nel disegno (1) della figura 13 è rappresentato il pavimento di una stanza. E` di forma quadrata e com-prende due preziose lastre di marmo scuro di uguali dimensioni disposte come in figura. Il nuovo proprie-tario dell'appartamento vuole rifare il pavimento cercando di riutilizzare le due lastre. Fa allora qualche schizzo ((®disegni (2)-(5)) per studiare la possibilità di disporre al centro della stanza un quadrato di marmo chiaro facendo meno tagli possibile sulle due lastre.

figura 13

     La parte di pavimento non occupata dal marmo scuro è composta da due quadrati.  Nella nuova configurazione assume la forma di un unico quadrato ma, naturalmente, non cambia estensione.

     Perché il proprietario dell'appartamento, con questo ragionamento, ha fatto anche una dimostrazione del teorema di Pitagora (®disegno a sinistra in fig. 13)?

 

Traccia. Indica con a e b le misure dei lati dei due quadrati iniziali. Lo spazio per il marmo bianco ha quindi estensione a2+b2.

Indica con c la misura del lato del quadrato che questo spazio assume nella configurazione finale, lato che è anche l'ipotenusa di un triangolo rettangolo di cateti a e b. L'estensione di questo quadrato è uguale a.

Perciò a2+b2= …

  Con il programma se-guente possiamo analiz-zare il significato degli operatori logici.

         Gli operatori logici so-no comodi per rappresen-tare condizioni che non sono rappresentabili con un'unica equazione o un' unica disequazione.

 

     Ad es. 0<x<10 è una abbreviazione della condizione "x è maggiore di 0 e minore di 10", che può essere espressa con: 0<x AND x<10 o: x<10 AND x>0 o … . Infatti P AND Q è vera solamente nel caso in cui siano vere sia P che Q (®penultima colonna delle uscite sopra riportate). Nel linguaggio comune la congiunzione "e" a volte viene usata nello stesso significato di AND: in «se Gianni ha fretta e è senza auto, gli presto la mia» si intende dire che se sono vere entrambe le condizioni ("Gianni ha fretta", "Gianni è senza auto") l'auto viene prestata. In genere "e" ha, invece, significati diversi.

(a)  «se prende l'ascensore e sale al 6° piano trova l'ufficio a cui deve rivolgersi»:  basta che la persona compia le due azioni di "prendere l'ascensore" e "salire al 6° piano" perché trovi l'ufficio o occorre che compia le due azioni in un certo ordine?

   [prova a leggere la frase invertendo le condizioni  «prende …» e «sale…»]

(b)  «se x è minore di 1 e positivo, 1/x è maggiore di 1» può essere espressa con «se sono vere le condizioni "x è minore di 1" e "x è positivo" allora …; puoi trasformare in maniera analoga «se la maglia è gialla e rossa si tratta di un giocatore della Roma»?

(c)  P OR Q è falsa nel caso in cui siano false sia P che Q, è vera negli altri casi.  Nelle seguenti frasi la congiunzione "o" è usata nello stesso significato di OR?

     «se hai l'ombrello o indossi l'impermeabile ti bagnerai poco»

     «se noleggia una Tipo o se noleggia una Golf spende 120 mila lire al giorno»

 

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

PRINT "Stampo se sono vere o false le condizioni P (x=y), Q (z=w)"

PRINT "e le condizioni NOT P,  P AND Q,  P OR Q" : PRINT

PRINT TAB(30) "P" TAB(35) "Q" TAB(40) "NOT P" TAB(48) "P AND Q" TAB(60) "P OR Q"

PRINT

Via:

INPUT ; "x,y"; x,y : INPUT ; "  z,w"; z,w

IF x=y THEN v1$="V" ELSE v1$="F"

IF z=w THEN v2$="V" ELSE v2$="F"

IF NOT x=y THEN v3$="V" ELSE v3$="F"

IF x=y AND z=w THEN v4$="V" ELSE v4$="F"

IF x=y OR z=w THEN v5$="V" ELSE v5$="F"

PRINT TAB(30) v1$ TAB(35) v2$ TAB(42) v3$ TAB(51) v4$ TAB(62) v5$

GOTO Via

 

  QB rappresenta il valore (vero/falso) delle condizioni in forma numerica: a quelle vere assegna il valore -1, alle false il valore 0. La tabella a fianco è stata ottenuta col programma seguente:

 

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

PRINT "condizione falsa: 0" : PRINT "condizione vera: -1"

PRINT TAB(30) "NOT P" TAB(45) "P AND Q" TAB(60) "P OR Q"

FOR P=-1 TO 0

   FOR Q=-1 TO 0

      PRINT "P: "; P TAB(10) "Q: "; Q;

      PRINT TAB(32) NOT P TAB(47) P AND Q TAB(62) P OR Q

   NEXT

NEXT

 

     Il programma contiene due cicli for-next uno inserito all'interno dell'altro. Il next alla riga [7] funge da chiusura del ciclo che inizia alla riga [4]; il next alla riga [8] funge da chiusura del ciclo che inizia alla riga [3].  In pratica i for e i next si accoppiano come le parentesi: il for più interno si accoppia con il next più interno, e così via.

     Come si vede dalle uscite, prima P assume il valore -1; poi viene eseguito il ciclo [4]-[7] con Q=-1 e Q=0; poi P assume il valore 0 e viene rieseguito il ciclo [4]-[7] con Q=-1 e Q=0.

     Scrivi un programma per studiare quando è vera la condizione  P AND Q AND R  e che dia luogo all'uscita raffigurata a fianco.

     Poi modificalo per studiare le condizioni   P OR Q OR R  e  P AND Q OR R .

  In un termine aritmetico che contenga più operazioni si possono spesso omettere le parentesi: le operazioni vengono eseguite a partire da sinistra a meno che non si incontrino operazioni con diverse priorità. Ad es. 3+2*5^2 viene interpretato come 3+(2*(5^2)) in quanto gli operatori che compaiono vengono considerati con il seguente ordine di priorità: ^, *, +. 

         Analogamente in una condizione che contenga più equazioni o disequazioni si possono spesso omettere le parentesi utilizzando le priorità tra gli operatori logici NOT, OR e AND.

         Stabilisci l'ordine di priorità tra questi operatori sulla base della seguente tabella, ottenuta con un programma simile a quello illustrato nel quesito precedente.

     Per rendere più leggibili le condizioni ed evitare di commettere errori conviene, comunque, usare le parentesi senza ricorrere alle priorità.

  Anche con i fogli elettronici si possono usare operatori logici. In genere i fogli elettronici utilizzano 1 come "vero" e 0 come "falso". Gli argomenti degli operatori logici devono essere racchiusi tra parentesi e separati con una virgola o un punto e virgola a seconda del tipo di foglio di calcolo; ad esempio non si scrive A1 OR A2 ma OR(A1,A2) o OR(A1;A2).

         Prova a realizzare con un foglio elettronico la tabella sotto raffigurata (sono riprodotti sia lo stato formule che lo stato valori del foglio) e prova a utilizzare il foglio elettronico per predisporre tabelle simili a quella del quesito 27.

Nota. Nella riga 1 non sono state messe costanti numeriche o formule, ma stringhe, che servono per la lettura della tabella. Le formule sono state scritte nella riga 2; poi sono state riprodotte nelle righe successive; i riferimenti delle celle sono stati modificati automaticamente dal foglio elettronico.

     

  Redigi due programmi che generino le figure a fianco.

OOOOOOOOOO       O

O        O       OO

O        O       O O

O        O       O  O

O        O       O   O

OOOOOOOOOO       OOOOOO

 

   A fianco è riportato un pro-gramma con un esempio di uscite. Quali sono le uscite se come input batto la coppia 1,2? E se batto 2,1?

[1]

[2]

[3]

[4]

INPUT max.i, max.j

FOR i=1 TO max.i : FOR j=1 TO max.j

  PRINT i;"**";j

NEXT : NEXT

 

  Redigi due programmi che generino le figure a fianco.

   OOOOOOOOOO      OOOOOOO

   OOOOOOOOOO      OOOOOO

   OOOOOOOOOO      OOOOO

   OOOOOOOOOO      OOOO

   OOOOOOOOOO      OOO

                   OO

                   O

  I movimenti lungo il pavimento dei robot impiegati in una particolare fabbrica sono programmabili in una opportuna estensione del linguaggio QB che contiene le istruzioni:

                   AV NuMetri    e     RO NuGradi

     dove NuMetri deve essere un numero non negativo e NuGradi un numero qualunque.

         L'azione comandata da AV NuMetri è l'avanzamento di NuMetri metri.

         Quella comandata da RO NuGradi è la rotazione su se stesso di NuGradi gradi (la rotazione è in senso antiorario, cioè verso sinistra, se NuGradi>0, in senso orario altrimenti).

         Sulla figura a fianco sono rappresentate la posizione e la direzione iniziali di un robot. I quadretti hanno lato di 1 m.

 

     Traccia le traiettorie che il robot compirebbe se fosse programmato nei seguenti modi:

(1)    FOR i=1 TO 4 : AV 6 : RO 90 : NEXT

(2)    FOR i=1 TO 8 : AV 7 : RO 45 : NEXT

(3)    FOR i=1 TO 3 : AV 8 : RO 120 : NEXT

  I seguenti programmi e le relative uscite illustrano le forme che può assumere ListaDiCostanti nell'istruzione select case-end select.

         Spiegale a parole e con una descrizione sintattica formale (completando quelle già parzialmente scritte).

     Nel secondo programma CASE "a" TO "z" potrebbe essere sostituito, dando luogo agli stessi output, ad es. con:   "a","b","c" TO "z"   o con:   "a" TO "c", "e" TO "z", IS = "d"

  In generale ListaDiCostanti ha la forma:

IntervalloDiCostanti[,IntervalloDiCostanti]...

   dove IntervalloDiCostanti è:        Costante

                                                     o:      IS ........................................... Costante

                                                     o:        Costante TO ..........................................

     Al posto di ............................... metti due variabili sintattiche scelte tra le seguenti: Costante,  OperatoreAritmetico,  SimboloRelazionale,  Variabile.

(Naturalmente le costanti che appaiono nei "case" devono essere dello stesso tipo del termine che compare nel select case)

  Considera il programma seguente. Cerca di prevedere che cosa appare sullo schermo alla fine dell'esecuzione. Verifica, poi, la tua previsione battendo e mandando in esecuzione il programma.

CLS

R = 12 : C = 40

FOR L = 1 TO 20

  FOR i = 1 TO L

    SELECT CASE L - (L \ 4) * 4

    CASE 0

      C = C + 2

    CASE 1

      R = R + 1

    CASE 2

      C = C - 2

    CASE 3

      R = R - 1

    END SELECT

    LOCATE R, C : PRINT "#";

  NEXT

NEXT

  Considera i due programmi seguenti. Cerca di prevedere che cosa appare sullo schermo alla fine dell'esecuzione di ciascuno di essi (l'istruzione COLOR imposta il colore delle uscite: vedi l'help). Verifica, poi, la tua previsione battendo e mandando in esecuzione i programmi.

(A)   CLS

FOR C = 1 TO 80 : FOR R = 1 TO 24

  IF (R + C) / 10 = (R + C) \ 10 THEN LOCATE R, C : PRINT "#";

NEXT : NEXT

 

(B)   CLS

FOR C = 1 TO 80 : FOR R = 1 TO 24

  COLOR R + C - (R + C) \ 15) * 15

  LOCATE R, C : PRINT "#";

NEXT : NEXT

 

 

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

         spostamento, p.2,4                  teorema di Pitagora, p.5          operatori logici, p.10

2)    Su un foglio da "quadernone" (che poi inserirai dopo l'ultima pagina della scheda), 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 telefo-no") il contenuto della scheda (non fare un elenco di argomenti, ma cerca di far capire il "filo del discorso").