33
APPLICAZIONI DEL QBASIC A VARI ARGOMENTI MATEMATICI E RIFLESSIONI PER VIVERE SANI E PIU’ A LUNGO… GUIDO CAROLLA Sunto. Dopo una breve introduzione che fa riferimento al linguaggio Basic, all’avvento del QBasic, a come scaricarlo dalla rete ed iniziare a programmare sia con l’ausilio della guida on line che mediante manuali cartacei, si entra in argomento con la ‘Didamatica’ e in particolare con l’originaria Digidattica matematica, proponendo nella prima parte questi listati in QBasic con i relativi esempi: numeri perfetti, numeri binari, terne pitagoriche (n.2), numeri primi, massimo comune divisore e minimo comune multiplo, serie armoniche divergenti e convergenti (n. 3), teorema di Fermat, equazioni indeterminate (n. 2), integrale definito. Nella seconda parte si entra in argomento dapprima con due listati “Salute” e “Quanto vivrai?” che possono in qualche modo… aiutarci a vivere meglio; segue poi la parte relativa alla Digidattica matematica, in cui si propongono i seguenti listati in QBasic (di cui alcuni con i relativi esempi): velocità tangenziale di rotazione in qualunque punto del globo terrestre; numeri grandi a partire dal googol; equivalenze aritmetiche; poligoni regolari e π (con commento); regola di Ruffini; divisione di due polinomi; sistema lineare di due equazioni; equazione di II grado con radici reali e complesse; serie geometriche convergenti; radici reali approssimate di un polinomio di grado qualunque; equazione differenziale di qualunque ordine. Introduzione. Il Basic è stato per lungo tempo il linguaggio più usato dagli aspiranti programmatori, che, in virtù della sua notevole semplicità d’uso, se ne servivano facilmente per operare sui loro home computer. L’avvento del QBasic, grazie all’accresciuta espressività e all’aumentata ricchezza di costrutti propri della nuova definizione del linguaggio Basic, ha permesso di ampliare notevolmente la rete degli utenti che ne fanno uso, sia in ambiente professionale per applicazioni software, sia in ambienti orientati alla formazione. E’ possibile scaricare QBasic dalla rete 1 ed iniziare subito a programmare, sia con l’ausilio della Guida on line 2 , sia mediante l’apporto più completo di manuali cartacei come quello pubblicato nel 1991 da David I. SCHNEIDER e Peter NORTON ed ora anche in traduzione italiana 3 , o quello pubblicato nel 1992 da R. ARNSON, Ch. GEMMELL, H. HENDERSON per la McGraw-Hill Libri Italia srl nella traduzione in italiano di Laura Saggini con il titolo MS-DOS QBasic.Guida del programmatore (pp.VIII-593, ISBN 88-386-0257-3). Navigando on line è possibile incontrare siti in italiano che suggeriscono facili utilizzazioni di QBasic 4 . 1 Per esempio da http://www.qbasic.com/ http://studio.lacab.roma.it/install/qbasic/ http://web.tiscali.it/paranco/page4.html http://digilander.iol.it/ebram/download.htm etc. 2 Piccoli accorgimenti sono necessari nell’uso della tastiera per le combinazioni diverse delle funzioni dei tasti per Windows ME. 3 Programmare in QBasic, JacksonLibri ed., pp.392, ISBN 8825604440. Molto utile è anche il più maneggevole (pp. 94) Programmare in QBasic. Teoria ed esercizi svolti, a cura di A. MACII-E. MACII-R. SCARSI, volume adottato presso il Politecnico di Torino come guida per le prove d’esame di programmazione dei vari corsi di Fondamenti di Informatica. Si veda anche STEPHEN TORY TOUPIN, E’ facile QBASIC, Jackson Libri ed., pp. 192, ISBN 8825608179. 4 Ved. ad esempio http://digilander.iol.it/ebram/download.htm http.//digilander.iol.it/vpisani/forum-scuola/qbasic/intro3-dove.html http://utenti.tripod.it/LDM/basic.htm . Ved. inoltre http://calvino.polito.it/pier/qbasic/siti.html .

APPLICAZIONI DEL QBASIC A VARI ARGOMENTI ... DEL QBASIC A VARI ARGOMENTI MATEMATICI E RIFLESSIONI PER VIVERE SANI E PIU’ A LUNGO… GUIDO CAROLLA Sunto. Dopo una breve introduzione

  • Upload
    phamanh

  • View
    225

  • Download
    4

Embed Size (px)

Citation preview

APPLICAZIONI DEL QBASIC A VARI ARGOMENTI MATEMATICI E RIFLESSIONI PER VIVERE SANI E PIU’ A LUNGO… GUIDO CAROLLA Sunto. Dopo una breve introduzione che fa riferimento al linguaggio Basic, all’avvento del QBasic, a come scaricarlo dalla rete ed iniziare a programmare sia con l’ausilio della guida on line che mediante manuali cartacei, si entra in argomento con la ‘Didamatica’ e in particolare con l’originaria Digidattica matematica, proponendo nella prima parte questi listati in QBasic con i relativi esempi: numeri perfetti, numeri binari, terne pitagoriche (n.2), numeri primi, massimo comune divisore e minimo comune multiplo, serie armoniche divergenti e convergenti (n. 3), teorema di Fermat, equazioni indeterminate (n. 2), integrale definito. Nella seconda parte si entra in argomento dapprima con due listati “Salute” e “Quanto vivrai?” che possono in qualche modo… aiutarci a vivere meglio; segue poi la parte relativa alla Digidattica matematica, in cui si propongono i seguenti listati in QBasic (di cui alcuni con i relativi esempi): velocità tangenziale di rotazione in qualunque punto del globo terrestre; numeri grandi a partire dal googol; equivalenze aritmetiche; poligoni regolari e π (con commento); regola di Ruffini; divisione di due polinomi; sistema lineare di due equazioni; equazione di II grado con radici reali e complesse; serie geometriche convergenti; radici reali approssimate di un polinomio di grado qualunque; equazione differenziale di qualunque ordine. Introduzione. Il Basic è stato per lungo tempo il linguaggio più usato dagli aspiranti programmatori, che, in virtù della sua notevole semplicità d’uso, se ne servivano facilmente per operare sui loro home computer. L’avvento del QBasic, grazie all’accresciuta espressività e all’aumentata ricchezza di costrutti propri della nuova definizione del linguaggio Basic, ha permesso di ampliare notevolmente la rete degli utenti che ne fanno uso, sia in ambiente professionale per applicazioni software, sia in ambienti orientati alla formazione. E’ possibile scaricare QBasic dalla rete1 ed iniziare subito a programmare, sia con l’ausilio della Guida on line2, sia mediante l’apporto più completo di manuali cartacei come quello pubblicato nel 1991 da David I. SCHNEIDER e Peter NORTON ed ora anche in traduzione italiana3, o quello pubblicato nel 1992 da R. ARNSON, Ch. GEMMELL, H. HENDERSON per la McGraw-Hill Libri Italia srl nella traduzione in italiano di Laura Saggini con il titolo MS-DOS QBasic.Guida del programmatore (pp.VIII-593, ISBN 88-386-0257-3). Navigando on line è possibile incontrare siti in italiano che suggeriscono facili utilizzazioni di QBasic4. 1 Per esempio da http://www.qbasic.com/ http://studio.lacab.roma.it/install/qbasic/ http://web.tiscali.it/paranco/page4.html http://digilander.iol.it/ebram/download.htm etc. 2 Piccoli accorgimenti sono necessari nell’uso della tastiera per le combinazioni diverse delle funzioni dei tasti per Windows ME. 3 Programmare in QBasic, JacksonLibri ed., pp.392, ISBN 8825604440. Molto utile è anche il più maneggevole (pp. 94) Programmare in QBasic. Teoria ed esercizi svolti, a cura di A. MACII-E. MACII-R. SCARSI, volume adottato presso il Politecnico di Torino come guida per le prove d’esame di programmazione dei vari corsi di Fondamenti di Informatica. Si veda anche STEPHEN TORY TOUPIN, E’ facile QBASIC, Jackson Libri ed., pp. 192, ISBN 8825608179. 4 Ved. ad esempio http://digilander.iol.it/ebram/download.htm http.//digilander.iol.it/vpisani/forum-scuola/qbasic/intro3-dove.html http://utenti.tripod.it/LDM/basic.htm . Ved. inoltre http://calvino.polito.it/∼pier/qbasic/siti.html .

Già da tempo, infatti, si è diffusa anche in Italia la ‘Didamatica’5, didattica dell’Informatica e Matematica, cioè quel complesso di procedure, di artifici e di programmi che consentono un apprendimento nuovo della stesse discipline, attraverso la risoluzione di numerosi problemi. Sul tema della Digidattica della Matematica fu già presentata dal sottoscritto una comunicazione nel Convegno Nazionale (“Matematica o Matematica del Calcolatore”, 26-28 Aprile 1984, Cosenza – Università della Calabria), organizzato dalla Sezione di Cosenza, presieduta dal compianto Prof. Vito Costantini, che sollecitò la stesura di un articolo per la pubblicazione degli Atti. Il sottoscritto, suo malgrado, non ne fece mai pervenire il testo scritto, per cui il contenuto è rimasto inedito. La comunicazione originaria fu condotta sul TI 99/4A Home Computer della TEXAS INSTRUMENTS, tuttora funzionante a conferma della bontà tecnologica degli stessi prodotti. Ora di quei listati (allora presentati in TIBASIC) si ripropongono alcuni, adattabili alle calcolatrici TI89, TI92Plus e ad ogni computer, perché, per questi ultimi, i listati sono redatti in QBasic; se ne propongono anche altri, nuovi e non meno interessanti, fra i quali il n. 9, cioè il secondo sulle serie armoniche convergenti, col quale listato è possibile trovare un numero illimitato di serie, i cui valori di convergenza sono verificabili con l’ultimo listato, il n.13, sul valore dell’integrale definito da zero ad uno della funzione: F(X)=X^(1/A1-1)/(1+X^(1/D)), nella quale A1, D sono rispettivamente il primo termine e la ragione della relativa progressione armonica, da cui scaturiscono i termini della omonima serie a segni alternati. Detta verifica è possibile anche per i valori di ln2 e 1/4pigreca del n. 8, sostituendo nella F(X), al posto di A1 e D, rispettivamente 1, 1 e 1, 1/2. Lo stesso discorso di adattabilità vale anche per i listati della seconda parte. Tutti i programmi riportano nei listati il titolo dell’argomento ed alcuni anche un breve commento che, con l’input ed output relativi ai vari esempi, ne agevolano la comprensione. Prima parte 1. Programma Numeri perfetti

CLS: DEFDBL P PRINT "NUMERI PERFETTI (somma di tutti i loro divisori, escluso il n.ro stesso)" PRINT "CON LA FORMULA DI EUCLIDE :" PRINT "2^(N-1)*(2^N-1)," PRINT "con N e (2^N-1) che siano NUMERI PRIMI." PRINT "Attualmente non si sa se il loro insieme sia finito o meno." DIM N(7) FOR I = 1 TO 7 READ N(I) A = 2 ^ (N(I) - 1) B = 2 * A - 1 P = A * B PRINT A; "*"; B; "="; P NEXT I DATA 2,3,5,7,13,17,19 PRINT PRINT "Ad esempio,i primi tre NUMERI PERFETTI sono riportati con le somme dei" PRINT "loro divisori 6=1+2+3; 28=1+2+4+7+14; 496=1+2+4+8+16+31+62+124+248." END 1.1. L’output risulta:

5Consultare i siti www.adt.it (dell’Associazione per la Didattica con le Tecnologie), www.AICANET.it (dell’Associazione Italiana per l’Informatica del Calcolo Automatico).

NUMERI PERFETTI (somma di tutti i loro divisori, escluso il n.ro stesso) CON LA FORMULA DI EUCLIDE : 2^(N-1)*(2^N-1), con N e (2^N-1) che siano NUMERI PRIMI. Attualmente non si sa se il loro insieme sia finito o meno. 2 * 3 = 6 4 * 7 = 28 16 * 31 = 496 64 * 127 = 8128 4096 * 8191 = 33550336 65536 * 131071 = 8589869056 262144 * 524287 = 137438691328 Ad esempio,i primi tre NUMERI PERFETTI sono riportati con le somme dei loro divisori 6=1+2+3; 28=1+2+4+7+14; 496=1+2+4+8+16+31+62+124+248. 2. Numeri binari

10 CLS: PRINT "TRASFORMA I NUMERI A BASE 10 IN BINARI (DIGITA 1) E VICEVERSA(2)” INPUT W IF W = 2 THEN 100 INPUT "DIGITA IL NUMERO DECIMALE "; N PRINT PRINT ; N; "IN BINARIO E'= "; ; FOR I = 15 TO 0 STEP -1 B = INT(N / 2 ^ I) N = N - B * 2 ^ I A$ = STR$(B) PRINT A$; NEXT I PRINT GOTO 10 100 INPUT "DIGITA IL NUMERO BINARIO "; C$ IF C$ = "F" THEN 300 N = 1 D = 0 FOR J = 1 TO LEN(C$) B$ = MID$(C$, LEN(C$) - J + 1, 1) IF B$ = "0" THEN 200 D = D + N 200 N = N * 2 NEXT J PRINT ; C$; " IN DECIMALE E'= "; D: : 300 END 2.1. Esempi TRASFORMA I NUMERI A BASE 10 IN BINARI (DIGITA 1) E VICEVERSA (2) ? 1 DIGITA IL NUMERO DECIMALE ? 153 153 IN BINARIO E'= 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 TRASFORMA I NUMERI A BASE 10 IN BINARI (DIGITA 1) E VICEVERSA (2) ? 2

DIGITA IL NUMERO BINARIO ? 101001 101001 IN DECIMALE E'= 41 3. Terne pitagoriche con metodi Pitagora e Platone CLS : PRINT " LE TERNE PITAGORICHE DETERMINATE ALTERNATAMENTE" PRINT "CON I METODI DI PITAGORA E DI PLATONE" INPUT "DIGITA L'INTERV. DI VARIAZ.,DA DISPARI A PARI,DEL CATETO X "; A, B PRINT FOR X = A TO B Y = (X ^ 2 - 1) / 2 IF Y = INT(Y) THEN 10 ELSE 40 10 Z = (X ^ 2 + 1) / 2 PRINT "CON M.PITAGORA"; Z; ";"; X; ";"; Y X = X + 1 Y = (X / 2) ^ 2 - 1 IF Y = INT(Y) THEN 30 ELSE 40 30 Z = (X / 2) ^ 2 + 1 PRINT "CON M.PLATONE"; Z; ";"; X; ";"; Y X = X - 1 40 NEXT X PRINT END 3.1. Esempi LE TERNE PITAGORICHE DETERMINATE ALTERNATAMENTE CON I METODI DI PITAGORA E DI PLATONE DIGITA L'INTERV. DI VARIAZ.,DA DISPARI A PARI,DEL CATETO X ? 3,12 CON M.PITAGORA 5 ; 3 ; 4 CON M.PLATONE 5 ; 4 ; 3 CON M.PITAGORA 13 ; 5 ; 12 CON M.PLATONE 10 ; 6 ; 8 CON M.PITAGORA 25 ; 7 ; 24 CON M.PLATONE 17 ; 8 ; 15 CON M.PITAGORA 41 ; 9 ; 40 CON M.PLATONE 26 ; 10 ; 24 CON M.PITAGORA 61 ; 11 ; 60 CON M.PLATONE 37 ; 12 ; 35 4. Terne pitagoriche con metodi Euclide e Diofanto CLS : PRINT "LE TERNE PITAGORICHE CON I METODI DI EUCLIDE E DIOFANTO,” PRINT ”PER I QUALI I VALORI RELATIVI AI CATETI E ALL'IPOTENUSA DIPENDONO DAL” PRINT ”PARAMETRO POSITIVO B, COME SI NOTA NEL LISTATO." INPUT "DIGITA L'INTERV. DI VARIAZ. DEL PARAMETRO B "; G, H PRINT FOR B = G TO H FOR C = 1 TO B - 1 X = B * C Y = (B ^ 2 - C ^ 2) / 2 IF Y = INT(Y) THEN 10 ELSE 20 10 Z = (B ^ 2 + C ^ 2) / 2 PRINT "CON M.EUCLIDE", Z; ";"; X; ";"; Y 20 U = 2 * B * C V = B ^ 2 - C ^ 2

W = B ^ 2 + C ^ 2 PRINT "CON M.DIOFANTO"; W; ";"; U; ";"; V NEXT C NEXT B END 4.1. Esempi LE TERNE PITAGORICHE CON I METODI DI EUCLIDE E DIOFANTO, PER I QUALI I VALORI RELATIVI AI CATETI E ALL'IPOTENUSA DIPENDONO DAL PARAMETRO POSITIVO B, COME SI NOTA NEL LISTATO. DIGITA L'INTERV. DI VARIAZ. DEL PARAMETRO B ? 3,5 CON M.EUCLIDE 5 ; 3 ; 4 CON M.DIOFANTO 10 ; 6 ; 8 CON M.DIOFANTO 13 ; 12 ; 5 CON M.DIOFANTO 17 ; 8 ; 15 CON M.EUCLIDE 10 ; 8 ; 6 CON M.DIOFANTO 20 ; 16 ; 12 CON M.DIOFANTO 25 ; 24 ; 7 CON M.EUCLIDE 13 ; 5 ; 12 CON M.DIOFANTO 26 ; 10 ; 24 CON M.DIOFANTO 29 ; 20 ; 21 CON M.EUCLIDE 17 ; 15 ; 8 CON M.DIOFANTO 34 ; 30 ; 16 CON M.DIOFANTO 41 ; 40 ; 9 5. Numeri primi CLS : PRINT "Questo programma produce numeri primi da M(dispari) ad N." PRINT INPUT "DIGITA M,N "; M, N IF M = 1 THEN 200 GOTO 230 200 PRINT PRINT " I NUMERI PRIMI DA "; M; "A"; N; "SONO: " PRINT 2 GOTO 250 230 PRINT " I NUMERI PRIMI DA "; M; "A"; N; "SONO: " PRINT 250 FOR F = M TO N STEP 2 FOR J = 3 TO (F - 1) / 2 STEP 2 Q = F / J Q1 = INT(Q) IF Q = Q1 THEN 330 NEXT J: IF F = 1 THEN 330 PRINT " "; F; ; 330 NEXT F END 5.1. Esempi Questo programma produce numeri primi da M(dispari) ad N. DIGITA M,N ? 5,24 I NUMERI PRIMI DA 5 A 24 SONO:

5 7 11 13 17 19 23 6) Massimo comune divisore e minimo comune multiplo CLS : PRINT "Calcolo del MCD e del mcm di due numeri A, B" 10 INPUT "DIGITA A, B "; A, B 20 PRINT "M.C.D.("; A; ";"; B; ")," 30 PRINT "m.c.m.("; A; ";"; B; ") rispettivamente =" IF A > B THEN 180 C = A: A = B: B = C 180 P = A * B 190 Q = A / B R = A - B * INT(Q) IF R = 0 THEN 250 A = B: B = R: GOTO 190 250 PRINT B 260 PRINT P / B END 6.1. Esempio Calcolo del MCD e del mcm di due numeri A, B DIGITA A, B ? 75,475 M.C.D.( 75 ; 475 ), m.c.m.( 75 ; 475 ) rispettivamente = 25 1425 7. Serie armoniche divergenti CLS : PRINT "SERIE ARMONICHE DIVERGENTI(QUELLE IL CUI TERMINE GENERALE" PRINT "SIA UN INFINITESIMO), PRODOTTE DALLE RELATIVE PROGRESSIONI." PRINT "DUE ESEMPI DI CONVERGENZA APPARENTE A1=4,D=3;A1=1,D=1 E PER ENTRAMBI" PRINT "U=100 e POI U=10000 O PIU'." INPUT "DIGITA A1(PRIMO TERMINE), D(RAGIONE),U(INDICE ULT. TERM.) "; A1, D, U PRINT PRINT "TERMINI DELLA SUCCESSIONE DA ", "SOMME PARZIALI DELLA SERIE DIVERGENTE" PRINT "CUI PROVIENE LA SERIE", " O RIDOTTE" B = A1: PRINT B, , , A1 FOR I = 2 TO U A = D * A1 / (D + (I - 1) * A1) B = B + A PRINT A, , , B NEXT I END 7.1. Esempio SERIE ARMONICHE DIVERGENTI(QUELLE IL CUI TERMINE GENERALE SIA UN INFINITESIMO), PRODOTTE DALLE RELATIVE PROGRESSIONI. DUE ESEMPI DI CONVERGENZA APPARENTE A1=4,D=3;A1=1,D=1 E PER ENTRAMBI U=100 e POI U=10000 O PIU'. DIGITA A1(PRIMO TERMINE), D(RAGIONE),U(INDICE ULT. TERM.) ? 4,3,100 ……………… 3.858521E-02 16.33733

3.809524E-02 16.37543 3.761755E-02 16.41304 .0371517 16.4502 3.669725E-02 16.48689 3.625378E-02 16.52315 3.582089E-02 16.55897 3.539823E-02 16.59436 3.498542E-02 16.62935 3.458213E-02 16.66393 3.418804E-02 16.69812 3.380282E-02 16.73192 3.342618E-02 16.76535 3.305785E-02 16.7984 3.269755E-02 16.8311 3.234501E-02 16.86345 .032 16.89545 3.166227E-02 16.92711 3.133159E-02 16.95844 3.100775E-02 16.98945 3.069054E-02 17.02014 3.037975E-02 17.05052 3.007519E-02 17.0806 8. Serie armoniche convergenti: due casi notevoli CLS PRINT "SERIE ARMONICHE CONVERGENTI A: ln(2)=.6931471...;1/4PIGRECA=.7853981... PRINT "PROVENIENTI DA SUCCESSIONI CON TERMINI A SEGNI ALTERNATI: PER OTTENERE" PRINT "ANCHE LA SECONDA TOGLIERE L'ISTRUZIONE 100 END." INPUT "DIGITA N(N.RO TERMINI) "; N PRINT PRINT "TERMINI DELLA SUCCESSIONE", "SOMMA TERMINI SERIE CHE PER N ALL'INFINITO PRINT "DI PROVENIENZA DELLA SERIE", "E'IL LIMITE <SOMMA> DELLA SERIE" N = N - 1 B = 1: PRINT B, , 1 FOR I = 1 TO N A = (-1) ^ I / (I + 1) B = B + A PRINT A, , B NEXT I: PRINT 100 END PRINT "TERMINI SERIE CONVERGENTE", "SOMMA TERMINI SERIE CHE PER N ALL'INFINITO PRINT " ", "E'IL LIMITE <SOMMA> DELLA SERIE" D = 1: PRINT D, , 1 FOR L = 1 TO N C = (-1) ^ L / (2 * L + 1) D = D + C PRINT C, , D NEXT L END 8.1. Esempi SERIE ARMONICHE CONVERGENTI A: ln(2)=.6931471...;1/4PIGRECA=.7853981... PROVENIENTI DA SUCCESSIONI CON TERMINI A SEGNI ALTERNATI: PER OTTENERE

ANCHE LA SECONDA TOGLIERE L'ISTRUZIONE 100 END. DIGITA N(N.RO TERMINI) ? 6 TERMINI DELLA SUCCESSIONE SOMMA TERMINI SERIE CHE PER N ALL'INFINITO DI PROVENIENZA DELLA SERIE E'IL LIMITE <SOMMA> DELLA SERIE 1 1 -.5 .5 .3333333 .8333334 -.25 .5833334 .2 .7833334 -.1666667 .6166667 TERMINI SERIE CONVERGENTE SOMMA TERMINI SERIE CHE PER N ALL'INFINITO E'IL LIMITE <SOMMA> DELLA SERIE 1 1 -.3333333 .6666666 .2 .8666666 -.1428571 .7238095 .1111111 .8349206 -9.090909E-02 .7440115 9. Serie armoniche convergenti: illimitati casi CLS : PRINT "SERIE ARMONICHE CONVERGENTI(QUELLE IL CUI TERMINE GENERALE" PRINT "SIA UN INFINITESIMO),PRODOTTE DALLE RELATIVE PROGRESSIONI," PRINT "I CUI TERMINI SI SUCCEDONO A SEGNI ALTERNATI. PER TALI CONVERGENZE " PRINT "POSSONO OTTENERSI RISCONTRI CON IL LISTATO RELATIVO ALL'INTEGRALE " PRINT "DEFINITO DA 0 AD 1 DELLA F(X)=X^(1/A1-1)/(1+X^(1/D)), CON A1,D DA" PRINT "USARE NEL PRESENTE LISTATO." INPUT "DIGITA A1(PRIMO TERMINE), D(RAGIONE),U(INDICE ULT. TERM.) "; A1, D, U PRINT PRINT "TERMINI DELLA SUCCESSIONE ", "SOMME PARZIALI DELLA SERIE CONVERGENTE" PRINT "DA CUI PROVIENE LA SERIE", "CHE PER U ALL'INFINITO E'<SOMMA> DELLA SERI B = A1: PRINT B, , , A1 FOR I=2 TO U A = (-1) ^ (I - 1) * D * A1 / (D + (I - 1) * A1) B = B + A PRINT A, , , B NEXT I END 9.1. Esempio SERIE ARMONICHE CONVERGENTI(QUELLE IL CUI TERMINE GENERALE SIA UN INFINITESIMO),PRODOTTE DALLE RELATIVE PROGRESSIONI, I CUI TERMINI SI SUCCEDONO A SEGNI ALTERNATI. PER TALI CONVERGENZE POSSONO OTTENERSI RISCONTRI CON IL LISTATO RELATIVO ALL'INTEGRALE DEFINITO DA 0 AD 1 DELLA F(X)=X^(1/A1-1)/(1+X^(1/D)), CON A1,D DA USARE NEL PRESENTE LISTATO. DIGITA A1(PRIMO TERMINE), D(RAGIONE),U(INDICE ULT. TERM.) ? .5,2,13 TERMINI DELLA SUCCESSIONE SOMME PARZIALI DELLA SERIE CONVERGENTE DA CUI PROVIENE LA SERIE CHE PER U ALL'INFINITO E'<SOMMA> DELLA SERIE .5 .5

-.4 9.999999E-02 .3333333 .4333333 -.2857143 .147619 .25 .397619 -.2222222 .1753968 .2 .3753968 -.1818182 .1935786 .1666667 .3602453 -.1538462 .2063991 .1428571 .3492563 -.1333333 .2159229 .125 .340923 Nella seconda colonna, dalle somme 12.esima e 13.esima è gia evidente la convergenza che si avrà per infinite somme e che può riscontrarsi nell’esempio del programma 13). 10. Teorema di Fermat CLS : PRINT "TEOREMA O CONGETTURA DI FERMAT,DIMOSTRATA DA ANDREW WILES," PRINT "NEL 1995, DOPO CIRCA 350 ANNI!" PRINT "X^N+Y^N=Z^N IMPOSSIBILE,PER VALORI INTERI POSITIVI E PER N>2" PRINT "L'ESECUZIONE HA UN SOLO STOP PER N=2, E RIPRENDE RENDENDO" PRINT "ININFLUENTE L'ISTRUZIONE 250 CON UN REM" INPUT "DIGITA IL MASSIMO VALORE DELLA X PER UN ULTERIORE STOP "; S: PRINT H = 6 110 N = 2 130 X = 3 Y = 3 150 Z = H - (X + Y + N) IF Z > Y THEN 220 IF Z > X THEN 310 N = N + 1 IF N <= H - 4 THEN 130 H = H + 1 GOTO 110 220 F = X ^ N + Y ^ N G = Z ^ N PRINT "N="; N; "X="; X; "Y="; Y; "Z="; Z, IF F = G THEN 230 PRINT "NO" IF X >= S THEN 340 GOTO 290 230 PRINT "SI" 250 REM GOTO 340 290 Y = Y + 1 GOTO 150 310 X = X + 1 Y = X GOTO 150 340 END 10.1. Esempio TEOREMA O CONGETTURA DI FERMAT,DIMOSTRATA DA ANDREW WILES, NEL 1995, DOPO CIRCA 350 ANNI! X^N+Y^N=Z^N IMPOSSIBILE,PER VALORI INTERI POSITIVI E PER N>2 L'ESECUZIONE HA UN SOLO STOP PER N=2, E RIPRENDE RENDENDO ININFLUENTE L'ISTRUZIONE 250 CON UN REM

DIGITA IL MASSIMO VALORE DELLA X PER UN ULTERIORE STOP ? 4 N= 2 X= 3 Y= 3 Z= 4 NO N= 2 X= 3 Y= 3 Z= 5 NO N= 3 X= 3 Y= 3 Z= 4 NO N= 2 X= 3 Y= 3 Z= 6 NO N= 2 X= 3 Y= 4 Z= 5 SI N= 3 X= 3 Y= 3 Z= 5 NO N= 4 X= 3 Y= 3 Z= 4 NO N= 2 X= 3 Y= 3 Z= 7 NO N= 2 X= 3 Y= 4 Z= 6 NO N= 2 X= 4 Y= 4 Z= 5 NO 11. Equazione indeterminata CLS : PRINT "RISOLVE IN Z(RELATIVI) L'EQUAZIONE INDETERMINATA" PRINT "A*X+B*Y+C*X*Y=D E CON C=0 QUELLA DI PRIMO GRADO" 20 INPUT "DIGITA A, B, C, D "; A, B, C, D 30 FOR Y = -20 TO 20 40 X = INT((D - B * Y) / (A + C * Y)) 50 E = A * X + B * Y + C * X * Y 60 IF E <> D THEN 100 PRINT 80 PRINT "X="; X; ";Y="; Y 90 PRINT "VERIFICA: D= "; D; "="; A; "*"; X; "+"; B; "*"; Y; "+"; C; "*"; X; PRINT "*"; Y; "="; E FOR Z = 1 TO 100000 NEXT Z 100 NEXT Y END 11.1. Esempio RISOLVE IN Z(RELATIVI) L'EQUAZIONE INDETERMINATA A*X+B*Y+C*X*Y=D E CON C=0 QUELLA DI PRIMO GRADO DIGITA A, B, C, D ? 3,-2,2,4 X= 0 ;Y=-2 VERIFICA: D= 4 = 3 * 0 +-2 *-2 + 2 * 0 *-2 = 4 X= 2 ;Y=-1 VERIFICA: D= 4 = 3 * 2 +-2 *-1 + 2 * 2 *-1 = 4 12. Equazione indeterminata di II grado CLS : PRINT "RISOLVE IN Z(RELATIVI) L'EQUAZIONE INDETERMINATA" PRINT "COMPLETA A*X^2+B*X*Y+C*Y^2+D*X+E*Y+F=0" INPUT "DIGITA A,B,C,D,E,F POI L'INTERV. DI VARIAZ. DELLA Y "; A, B, C, D, E, F,G,H PRINT FOR Y = G TO H J = B * Y + D K = C * Y ^ 2 + E * Y + F DI = J ^ 2 - 4 * A * K IF DI < 0 THEN 100 X1 = INT((-J + SQR(DI)) / (2 * A))

R = A * X1 ^ 2 + B * X1 * Y + C * Y ^ 2 + D * X1 + E * Y IF R <> -F THEN 100 PRINT "X1="; X1; "; Y="; Y PRINT "VERIFICA: R= "; -F; "="; R X2 = INT((-J - SQR(DI)) / (2 * A)) S = A * X2 ^ 2 + B * X2 * Y + C * Y ^ 2 + D * X2 + E * Y IF S <> -F THEN 100 PRINT "X2="; X2; "; Y="; Y PRINT "VERIFICA: S= "; -F; "="; S 100 NEXT Y END 12.1. Esempio RISOLVE IN Z(RELATIVI) L'EQUAZIONE INDETERMINATA COMPLETA A*X^2+B*X*Y+C*Y^2+D*X+E*Y+F=0 DIGITA A,B,C,D,E,F POI L'INTERV. DI VARIAZ. DELLA Y ? -1,2,-3,4,-5,6,-5,5 X1=-2 ; Y=-2 VERIFICA: R= -6 =-6 X2= 2 ; Y=-2 VERIFICA: S= -6 =-6 X1=-2 ; Y=-1 VERIFICA: R= -6 =-6 X2= 4 ; Y=-1 VERIFICA: S= -6 =-6 X1= 4 ; Y= 2 VERIFICA: R= -6 =-6 X2= 4 ; Y= 2 VERIFICA: S= -6 =-6 13. Valore integrale definito CLS : PRINT "Valore dell'integrale definito da A a B di F(X),DA DEFINIRE " PRINT "NELL'ISTRUZIONE 100" 100 DEF FNF (X) = X ^ (1 / .5 - 1) / (1 + X ^ (1 / 2)) INPUT "DIGITA A,B,S (n.ro sottointervalli) "; A, B, S VI = 0 L = (B - A) / (2 * S) S1 = 2 * S - 1 S2 = S1 - 1 TU = 0 FOR J = 1 TO S1 STEP 2 X = A + (J * L) TU = TU + FNF(X) NEXT J VI = TU * 4 TU = 0 FOR J = 2 TO S2 STEP 2 X = A + (J * L) TU = TU + FNF(X) NEXT J VI = TU * 4 TU = 0 FOR J = 2 TO S2 STEP 2 X = A + (J * L) TU = TU + FNF(X)

NEXT J VI = VI + 2 * TU + FNF(A) + FNF(B) VI = VI * L / 3 PRINT "VALORE INTEGRALE ="; VI END 13.1. Esempio Valore dell'integrale definito da A a B di F(X),DA DEFINIRE NELL'ISTRUZIONE 100 DIGITA A,B,S (n.ro sottointervalli) ? 0,1,30 VALORE INTEGRALE = .2803718 Il valore ottenuto è il limite di convergenza della serie armonica a segni alternati (il cui primo termine e la ragione sono rispettivamente 1/2 e 2) già esemplificata nel programma 9). Il presente lavoro, relativo alla prima parte, è stato pubblicato nel 2002 sugli Atti e su CD a cura dell’ADT (Associazione per la Didattica con le Tecnologie), essendo stato presentato nel 3° Congresso Nazionale “Matematica e Scienze sperimentali nel terzo millennio” svoltosi a Cattolica (RN) dal 5 al 7 ottobre 2001. Seconda parte 1. Programma “Salute” CLS :INPUT "VUOI CONOSCERE SETTE REGOLE D'ORO PER VIVERE SANO? SE SI DIGITA 1";S IF S <> 1 THEN 30: PRINT PRINT "1 - NON FUMARE;" PRINT "2 - BEVI ALCOLICI CON MOLTA MODERAZIONE;" PRINT "3 - SVOLGI UN'ATTIVITA' FISICA IN MANIERA REGOLARE;" PRINT "4 - MANTIENI IL PESO CORPOREO COSTANTE;" PRINT "5 - DORMI DA SETTE A OTTO ORE PER NOTTE;" PRINT "6 - NON SALTARE MAI LA PRIMA COLAZIONE;" PRINT "7 - NON MANGIUCCHIARE TRA UN PASTO E L'ALTRO!" 30 INPUT "VUOI MEGLIO APPROFONDIRE CON ALTRI CONSIGLI L'ARGOMENTO DI CUI SOPRA? SE SI DIGITA 2"; T IF T = 2 THEN 40 ELSE INPUT T: PRINT 40 PRINT "SVOLGI ALL'ARIA APERTA IL MASSIMO DELL'ATTIVITA';" PRINT "SGOMBERA LA MENTE DAI PENSIERI DURANTE L'ATTIVITA'FISICA;" PRINT "NON TUTTE LE SITUAZIONI CHE STRESSANO SONO INEVITABILI;" PRINT "MANTIENI IL PESO FORMA;" PRINT "COLTIVA L'OTTIMISMO E NON LASCIARTI ABBATTERE DALLE DIFFICOLTA';" PRINT "RISPETTA IL TUO FISICO ED ADOPERATI PER MANTENERLO SEMPRE IN EFFICIENZA;" PRINT "NON FUMARE E NON ECCEDERE IN CONSUMO DI ALCOLICI;" PRINT " DISTRAITI CON I TUOI HOBBY;" PRINT "DORMI DALLE SETTE ALLE NOVE ORE OGNI GIORNO;" PRINT "DOPO I QUARANTA ANNI SOTTOPONITI A PERIODICI CHECK-UP;" PRINT "LA TUA DIETA SIA LA MEDITERRANEA CON OLIO D'OLIVA, POMODORI, TE' VERDE E DOSI MODERATE DI VINO ROSSO;" PRINT "NON FARE A MENO DI PREPARATI FARMACEUTICI A BASE DI ESTRATTI DI FEGATO" PRINT "DI FETI DI AGNELLINI DI 14 GG. PRIMA DELLA NASCITA."

50 INPUT "VUOI INFORMARTI SU COSA FARE SUBITO SE HAI TROPPO COLESTEROLO NEL SANGUE? SE SI DIGITA 3"; U IF U <> 3 THEN 50: PRINT PRINT "INTERESSANTI RISULTATI DI UNA INDAGINE CONDOTTA NEGLI STATI UNITI" PRINT "SULLA PREVENZIONE DELLE MALATTIE CARDIACHE DICONO CHE IL CONSUMO DI" PRINT "FAGIOLI COTTI (COMPRESI QUELLI IN SCATOLA) RIDUCE IL TASSO DI COLESTEROLO NEL SANGUE." PRINT "GLI ESPERIMENTI EFFETTUATI SU MIGLIAIA DI VOLONTARI, CHE PER VENTI GIORNI HANNO MANGIATO" PRINT " 100 GRAMMI DI FAGIOLI AL GIORNO CONFERMANO QUESTA TESI." 51 INPUT "VUOI CONOSCERE QUAL E' L'ELISIR DI LUNGA VITA? SE SI DIGITA 4"; V IF V <> 4 THEN 100: PRINT PRINT "L'ELISIR DI LUNGA VITA E' ADATTARSI ALLO STRESS" PRINT "I MEDICI DICONO CHE CHI NON LO FA SI AMMALA." PRINT "PER LA SALUTE REAGIRE TROPPO ALLE SOLLECITAZIONI E' DANNOSO." PRINT "VA TENUTO BASSO IL LIVELLO DI INTERLEUCHINA, UNA SOSTANZA PRODOTTA PURE DALL'ACCUMULO DI GRASSO." PRINT "L'INTERLEUCHINA 10 (IL10), IL MANTENIMENTO DELLA VIA DI SEGNALAZIONE" PRINT "DELL'INSULINA E IL DNA MITOCONDRIALE SONO NOSTRI ALLEATI IN QUESTA" PRINT "BATTAGLIA TANT'E' CHE RECENTI STUDI CONDOTTI DALL'INRCA, SOTTOLINEA LO SCIENZIATO FRANCESCHI," PRINT "HANNO DIMOSTRATO CHE I SOGGETTI CHE PRODUCONO ELEVATE QUANTITA' DI " PRINT "INTERLEUCHINA6(IL6), SOSTANZA GENERATA DALLO STRESS, VIVONO DI MENO," PRINT "TANTO CHE NEI CENTENARI I VALORI SONO BASSISSIMI. PERCIO'IL CONTROLLO DEL PESO" PRINT "E L'ESERCIZIO FISICO SONO FONDAMENTALI PER VIVERE A LUNGO. ALTRO FATTORE" PRINT "CHE REGOLA LA LONGEVITA' E' IL DNA MITOCONDRIALE CHE SI EREDITA DALLA MADRE." 100 END Input output “Salute” Non si riporta, considerata l’estrema semplicità e leggibilità del listato. 2. Programma “Quanto vivrai?” CLS : PRINT "Quanto vivrai?" PRINT "Arriveremo o no ai 100 anni?" PRINT "La componente fondamentale della durata media della nostra vita sta nell'età raggiunta dai nostri parenti prossimi." PRINT "Ma il modo di vivere può rovesciare completamente il risultato in senso + oppure -." PRINT : PRINT "Prova anche tu a rispondere alle 25 domande seguenti!" PRINT : PRINT "***GUIDO CAROLLA***Prima stesura:gennaio 1985.La presente:luglio 2002." PRINT : INPUT "DIGITA LA TUA ETA' ATTUALE. "; EA: PRINT EA DIM E(85), S(85) FOR J = 15 TO 85 READ E(J), S(J) IF EA = J THEN 190 NEXT J PRINT : PRINT : PRINT 190 PRINT "Sulla scorta delle medie concesse dalle più grandi Compagnie di Assicurazioni del mondo ti dico che in base a"; E(J); "anni"; PRINT " la tua speranza di vita è"; S(J); "anni, se sei uomo e 3 anni di più se sei donna." INPUT "Perciò, digita 0 (zero) se sei uomo, 3 se sei donna. "; SP DATA 15, 70.7 DATA 16, 70.8 DATA 17, 70.8 DATA 18, 70.9 DATA 19, 71 DATA 20, 71.1

DATA 21, 71.1 DATA 22, 71.2 DATA 23, 71.3 DATA 24, 71.3 DATA 25, 71.4 DATA 26, 71.5 DATA 27, 71.6 DATA 28, 71.6 DATA 29, 71.7 DATA 30, 71.8 DATA 31, 71.8 DATA 32, 71.9 DATA 33, 72 DATA 34, 72 DATA 35, 72.1 DATA 36, 72.2 DATA 37, 72.2 DATA 38, 72.3 DATA 39, 72.4 DATA 40, 72.5 DATA 41, 72.6 DATA 42, 72.7 DATA 43, 72.8 DATA 44, 72.9 DATA 45, 73 DATA 46, 73.2 DATA 47, 73.3 DATA 48, 73.5 DATA 49, 73.6 DATA 50, 73.8 DATA 51, 74 DATA 52, 74.2 DATA 53, 74.4 DATA 54, 74.7 DATA 55, 74.9 DATA 56, 75.1 DATA 57, 75.4 DATA 58, 75.7 DATA 59, 76 DATA 60, 76.3 DATA 61, 76.6 DATA 62, 77 DATA 63, 77.3 DATA 64, 77.7 DATA 65, 78 DATA 66, 78.4 DATA 67, 78.9 DATA 68, 79.3 DATA 69, 79.7 DATA 70, 80.2 DATA 71, 80.7 DATA 72, 81.2 DATA 73, 81.7 DATA 74, 82.2 DATA 75, 82.8 DATA 76, 83.3 DATA 77, 83.9 DATA 78, 84.5 DATA 79, 85.1 DATA 80, 85.7 DATA 81, 86.3 DATA 82, 86.9 DATA 83, 87.7

DATA 84, 88.5 DATA 85, 89.3 CLS : PRINT : PRINT : PRINT : PRINT INPUT "1, per ogni nonno che sia vissuto più di 80 anni e .5 per ognuno che abbia superato 70 e non 80 "; A PRINT : INPUT "4, se tua madre ha vissuto più di 80 anni e 2 se tuo padre abbia vissuto altrettanto "; B PRINT : PRINT "-4, se tuo fratello, sorella, padre, madre, nonno, nonna è morto di un attacco cardiaco, di apoplessia o" INPUT "arteriosclerosi a meno di 50 anni. Sottrai comunque 2 se uno di essi è morto a 50-60 anni. "; C PRINT : PRINT "-3, per ciascun fratello, genitore, nonno che sia morto di diabete prima dei 60 anni. -2, se ciascuno di" INPUT "quelli è morto di cancro dello stomaco prima dei 60. -1, per altra infermità causa di morte prima dei 60. "; D PRINT : INPUT "-.5, per le donne senza figli. -1, per quelle che ne abbiano avuto più di 7. "; X PRINT : INPUT "1, se sei primogenito. "; F INPUT "2, se il tuo coefficiente intellettuale è superiore alla media. "; G INPUT "-12, se fumi 2 pacchetti al dì di sigarette; -7, se ne fumi più di 20; -2, se ne fumi sensibilmente meno di 20. "; H PRINT : INPUT "2,se fai l'amore con regolarità 1-2 volte per settimana (le avventure, no!). "; I PRINT : INPUT "2, se ricevi un assegno soddisfacente almeno una volta l'anno. "; L PRINT : INPUT "-2, se è più di quanto dovrebbe. "; M INPUT "-2, se dormi (o rimani a letto) 10 o più ore al giorno o meno di 5. "; N PRINT "3, se bevi moderatamente (1 bicchierino o 1/4 litro di vino). 1 oppure 1.5 per" INPUT "coloro che bevono saltuariamente. -8, per coloro che, invece, bevono ogni giorno sensibilmente più di quanto sopra. "; O PRINT : PRINT "3, per coloro che remano, vanno in bicicletta, fanno footing, passeggiano, ballano (all'aria aperta) 3" INPUT "volte alla settimana. "; P PRINT : PRINT "1, per chi mangia frugalmente e smette prima di sentirsi sazio, preferendo frutta, verdure e legumi a" INPUT "carne e grassi. "; Q PRINT : INPUT "-5, se ti ammali frequentemente (includendo catarro, influenza, diarrea, emicrania, ecc.). "; R PRINT : PRINT "3, se svolgi attività accademica di tipo superiore, come per esempio professore universitario, ricercatore, ecc.." INPUT "2, se il tuo lavoro esige solo titolo superiore (diploma); aggiungi solo 1 se invece esige meno. "; Y PRINT : PRINT "1.5, se eserciti una professione libera; 1, se sei tecnico, amministrativo, agricolo." INPUT "-.5, per coloro che sono capataz; -4, se sei un operaio. "; T PRINT : PRINT "-2, se sei un operaio e la tua attività richiede grande sforzo fisico;" INPUT "-2, se inoltre, il tuo lavoro ti costringe dietro un tavolo come dimostratore. "; U PRINT : CLS : PRINT "1, per gli sposati che attualmente vivono con il coniuge. -9, se invece vivono separati o divorziati" PRINT "e da soli. -7, per chi è vedovo e vive da solo. Se il separato o il vedovo vive con una compagna" PRINT "deve sottrarre la metà rispettivamente di 9 e di 7. -4, per la donna che è separata o divorziata e" INPUT "vive sola; -3.5, per la vedova; -2, se convive con un compagno. "; V PRINT : PRINT "-1.5, per le donne sole per ogni 10 anni di permanenza in tale stato civile a partire dai 25 anni." INPUT "La sottrazione deve essere fatta anche se la donna conviva con un compagno. "; Z PRINT : INPUT "-2, per ogni cambio di carriera o di casa o di coniuge. "; AA PRINT : INPUT "1, se hai uno o due amici cui confidare tutto. "; AB

1460 NS = S(J) + SP + A + B + C + D + X + F + G + H + I + L + M + N + O + P + Q + R + Y + T + U + V + Z + AA + AB CLS : PRINT : PRINT : PRINT : PRINT PRINT "TU CAMPERAI FINO A"; NS; "ANNI...EPPURE LA NOSTRA MACCHINA BIOLOGICA E' GARANTITA, DICONO GLI STUDIOSI" PRINT ",PER 130 ANNI!!!" PRINT "Comunque, auguri di buona salute!" PRINT "Quanto sopra detto deve essere preso con la giusta ironia, ma non troppo. Si deve essere coscienti che non si può ipotecare il futuro senza l'aiuto dell'Onnipotente." Input output “Quanto vivrai?” Si soprassiede nel riportarne un esempio considerata la semplicità dell’algoritmo additivo delle risposte alle 25 domande riportato nell’istruzione 1460 il cui valore è NS. 3. Programma “Velocità tangenziale di rotazione sul globo terrestre” CLS : PRINT "A QUALE VELOCITA' SI STA RUOTANDO?" PRINT "CONSIDERATO CHE ALL'EQUATORE LA VELOCITA' E' Km/h 40.076,59491864414/24" 10 DEFDBL E: DEFDBL L: DEFDBL P: DEFDBL V: DEFDBL H E = 40076.59491864414# / 24 INPUT "DIGITA LA LATITUDINE IN GRADI SESSAGESIMALI DELLA LOCALITA'"; G IF G = 0 THEN PRINT "ALL'EQUATORE" IF G = 42 THEN PRINT "A ROMA" IF G = 90 THEN PRINT "AL POLO NORD" IF G = 270 THEN PRINT " AL POLO SUD" PRINT : P = ATN(1): L = G * P / 45: H = COS(L): V = H * E IF V < 1.022912048803657D-13 THEN 20 ELSE 30 20 V = 0 30 PRINT "V=COS(LATITUDINE RADIANTI)*1669,858...=COS("; L; "...)*1669,858...="; V; "Km/h"; PRINT "(VELOCITA' DI ROTAZIONE DELLA TERRA ALLA LATITUDINE "; G; ")" PRINT : INPUT "VUOI CONTINUARE? S/N "; A$ IF A$ = "S" THEN 10 END Input output “Velocità tangenziale di rotazione…” A QUALE VELOCITA' SI STA RUOTANDO? CONSIDERATO CHE ALL'EQUATORE LA VELOCITA' E' Km/h 40.076,59491864414/24 DIGITA LA LATITUDINE IN GRADI SESSAGESIMALI DELLA LOCALITA'? 90 AL POLO NORD V=COS(LATITUDINE RADIANTI)*1669,858...=COS( 1.570796326794897 ...)*1669,858...= 0 Km/h(VELOCITA' DI ROTAZIONE DELLA TERRA ALLA LATITUDINE 90 ) VUOI CONTINUARE? S/N ? S DIGITA LA LATITUDINE IN GRADI SESSAGESIMALI DELLA LOCALITA'? 42 A ROMA V=COS(LATITUDINE RADIANTI)*1669,858...=COS( .7330382858376184 ...)*1669,858...= 1240.946422356001 Km/h(VELOCITA' DI ROTAZIONE DELLA TERRA ALLA LATITUDINE 42 ) VUOI CONTINUARE? S/N ? S DIGITA LA LATITUDINE IN GRADI SESSAGESIMALI DELLA LOCALITA'? 0 ALL'EQUATORE V=COS(LATITUDINE RADIANTI)*1669,858...=COS( 0 ...)*1669,858...= 1669.858121610173 Km/h(VELOCITA' DI ROTAZIONE DELLA TERRA ALLA LATITUDINE 0 )

VUOI CONTINUARE? S/N ? N 4. Programma “Grandi numeri a partire da googol” CLS : INPUT "DOPO UN MILIONE,MILIARDO ECC.,VUOI SAPERE QUAL E'IL NUMERO PIU'GRANDE A CUI E' STATO DATO UN NOME? S/N "; G$ IF G$ = "S" THEN 10 ELSE 100 10 PRINT "Il Googol è pari a 10^100=(1 seguito da 100 zeri).Esso fu coniato dal nipotino di nove anni del matematico Ewdard Kasner." INPUT "VUOI SAPERNE UNO PIU' GRANDE? S/N "; H$ IF H$ = "S" THEN 20 ELSE 100 20 PRINT "Il Googolplex o googolplesso(anch'esso suggerito dal nipotino di Kasner,che lo descrisse come 1 seguito da tanti zeri" PRINT "quanti se ne possono scrivere prima che la mano si stanchi...)la cui definizionematematica di un googolplesso è" PRINT "pari a 10^(1 Googol)=(1 seguito da un Googol di zeri,ovvero 1 seguito da tanti zeri pari al n.ro 1 seguito da 100 zeri)." INPUT "VUOI AVERE ALTRE NOTIZIE SUI GRANDI NUMERI? S/N "; L$ IF L$ = "S" THEN 25 ELSE 100 25 PRINT "1. Se l'intero universo fosse pieno di protoni ed elettroni in modo che non rimanesse nessuno spazio vuoto,il numero totale di particelle sarebbe 10^110. Questo n.ro è maggiore di un googol" PRINT "ma molto minore di un googolplesso." PRINT "2. Il n.ro di granelli di sabbia sulla spiaggia di Coney Island è all'incirca 10^20." PRINT "3. Il n.ro di parole stampate a partire dalla Bibbia di Gutenberg(1456) fino al 1940 è all'incirca 10^16." INPUT "VUOI SAPERNE ANCORA UNO PIU' GRANDE? S/N "; I$ IF I$ = "S" THEN 30 ELSE 100 30 PRINT "IL NUMERO DI GRAHAMAN.Per darne un'idea,partendo da 3^3=27," PRINT "3^^3=3^27=7.625.597.484.987," PRINT "3^^^3=3^(7.625...),così procedendo si costruisce detto numero di Grahaman," PRINT "cioè da 3^^^^3=(impossibile sciverlo qui per esteso),si va avanti con il" PRINT "sistema adottato prima,ripetendolo 63 volte. " PRINT "E' stato calcolato che per scrivere il n.ro di Grahaman per esteso non" PRINT "basterebbe tutta la materia dell'universo trasformata in inchiostro!!!" 100 END Input output “Grandi numeri a partire da googol” DOPO UN MILIONE,MILIARDO ECC.,VUOI SAPERE QUAL E'IL NUMERO PIU'GRANDE A CUI E' STATO DATO UN NOME? S/N ? S Il Googol è pari a 10^100=(1 seguito da 100 zeri).Esso fu coniato dal nipotino di nove anni del matematico Ewdard Kasner. VUOI SAPERNE UNO PIU' GRANDE? S/N ? S Il Googolplex o googolplesso(anch'esso suggerito dal nipotino di Kasner,che lo descrisse come 1 seguito da tanti zeri quanti se ne possono scrivere prima che la mano si stanchi...)la cui definizione matematica di un googolplesso è pari a 10^(1 Googol)=(1 seguito da un Googol di zeri,ovvero 1 seguito da tanti zeri pari al n.ro 1 seguito da 100 zeri). VUOI AVERE ALTRE NOTIZIE SUI GRANDI NUMERI? S/N ? S 1. Se l'intero universo fosse pieno di protoni ed elettroni in modo che non rimanesse nessuno spazio vuoto,il numero totale di particelle sarebbe 10^110. Questo n.ro è maggiore di un googol ma molto minore di un googolplesso. 2. Il n.ro di granelli di sabbia sulla spiaggia di Coney Island è all'incirca

10^20. 3. Il n.ro di parole stampate a partire dalla Bibbia di Gutenberg(1456) fino al 1940 è all'incirca 10^16. VUOI SAPERNE ANCORA UNO PIU' GRANDE? S/N ? S IL NUMERO DI GRAHAMAN.Per darne un'idea,partendo da 3^3=27, 3^^3=3^27=7.625.597.484.987, 3^^^3=3^(7.625...),così procedendo si costruisce detto numero di Grahaman, cioè da 3^^^^3=(impossibile sciverlo qui per esteso),si va avanti con il sistema adottato prima,ripetendolo 63 volte. E' stato calcolato che per scrivere il n.ro di Grahaman per esteso non basterebbe tutta la materia dell'universo trasformata in inchiostro!!! 5. Equivalenze aritmetiche CLS : PRINT "SISTEMA METRICO DECIMALE:EQUIVALENZE SULLE MISURE DI LUNGHEZZA" PRINT "Al primo (?) digita di seguito il numero d'ordine dell'unità di misura di lunghezza a partire da (Mm) e la misura." PRINT "Al secondo (?) digita la nuova unità di misura e il numero d'ordine della stessa." INPUT D, A DIM A$(8) FOR I = 1 TO 8 READ A$(I) IF D = I THEN 50 NEXT I 50 DATA "Mm","Km","hm","dam","m","dm","cm","mm" N$ = A$(I) INPUT E$, E DIM B$(8) FOR I = 1 TO 8 READ B$(I) IF E = I THEN 140 NEXT I DATA "Mm","Km","hm","dam","m","dm","cm","mm" 140 C = E - D IF C < 0 THEN 380 IF C = 1 THEN 230 IF C = 2 THEN 250 IF C = 3 THEN 270 IF C = 4 THEN 290 IF C = 5 THEN 310 IF C = 6 THEN 330 IF C = 7 THEN 350 230 S = 10 GOTO 360 250 S = 100 GOTO 360 270 S = 1000 280 GOTO 360 290 S = 10000! 300 GOTO 360 310 S = 100000 320 GOTO 360 330 S = 1000000 340 GOTO 360 350 S = 10000000 360 PRINT N$; A; "="; E$; A * S 370 END 380 IF C = -1 THEN 460 390 IF C = -2 THEN 480 400 IF C = -3 THEN 500

410 IF C = -4 THEN 520 420 IF C = -5 THEN 540 430 IF C = -6 THEN 560 440 IF C = -7 THEN 580 450 REM 460 S = .1 470 GOTO 360 480 S = .01 490 GOTO 360 500 S = .001 510 GOTO 360 520 S = .0001 530 GOTO 360 540 S = .00001 550 GOTO 360 560 S = .000001 570 GOTO 360 580 S = .0000001 590 GOTO 360 600 END CLS : PRINT "SISTEMA METRICO DECIMALE:EQUIVALENZE SULLE MISURE DI SUPERFICIE." PRINT "Al primo (?) digita di seguito il numero d'ordine a due a due dell'unità di misura di superficie a partire da (Mm^2) e la misura." PRINT "Al secondo (?) digita la nuova unità di misura e il numero d'ordine a due a due della stessa." INPUT D, A DIM A$(16) FOR I = 2 TO 14 STEP 2 READ A$(I) IF D = I THEN 50 NEXT I 50 DATA "Mm^2","Km^2","hm^2","dam^2","m^2","dm^2","cm^2","mm^2" N$ = A$(I) INPUT E$, E DIM B$(14) FOR I = 2 TO 14 STEP 2 READ B$(I) IF E = I THEN 140 NEXT I DATA "Mm^2","Km^2","hm^2","dam^2","m^2","dm^2","cm^2","mm^2" 140 C = E - D IF C < 0 THEN 380 IF C = 2 THEN 230 IF C = 4 THEN 250 IF C = 6 THEN 270 IF C = 8 THEN 290 IF C = 10 THEN 310 IF C = 12 THEN 330 IF C = 14 THEN 350 230 S = 100 GOTO 360 250 S = 10000 GOTO 360 270 S = 1000000 280 GOTO 360 290 S = 100000000 300 GOTO 360 310 S = 10000000000# 320 GOTO 360 330 S = 1000000000000# 340 GOTO 360

350 S = 100000000000000# 360 PRINT N$; A; "="; E$; A * S 370 END 380 IF C = -2 THEN 460 390 IF C = -4 THEN 480 400 IF C = -6 THEN 500 410 IF C = -8 THEN 520 420 IF C = -10 THEN 540 430 IF C = -12 THEN 560 440 IF C = -14 THEN 580 450 REM 460 S = .01 470 GOTO 360 480 S = .0001 490 GOTO 360 500 S = .000001 510 GOTO 360 520 S = .00000001# 530 GOTO 360 540 S = .0000000001# 550 GOTO 360 560 S = .000000000001# 570 GOTO 360 580 S = .00000000000001# 590 GOTO 360 600 END CLS : PRINT "SISTEMA METRICO DECIMALE:EQUIVALENZE SULLE MISURE DI VOLUME" PRINT "Al primo (?) digita di seguito il numero d'ordine a tre a tre dell'unità di misura di volume a partire da (Mm^3) e la misura." PRINT "Al secondo (?) digita la nuova unità di misura e il numero d'ordine a tre a tre della stessa." INPUT D, A DIM A$(24) FOR I = 3 TO 24 STEP 3 READ A$(I) IF D = I THEN 50 NEXT I 50 DATA "Mm^3","Km^3","hm^3","dam^3","m^3","dm^3","cm^3","mm^3" N$ = A$(I) INPUT E$, E DIM B$(24) FOR I = 3 TO 24 STEP 3 READ B$(I) IF E = I THEN 140 NEXT I DATA "Mm^3","Km^3","hm^3","dam^3","m^3","dm^3","cm^3","mm^3" 140 C = E - D IF C < 0 THEN 380 IF C = 3 THEN 230 IF C = 6 THEN 250 IF C = 9 THEN 270 IF C = 12 THEN 290 IF C = 15 THEN 310 IF C = 18 THEN 330 IF C = 21 THEN 350 230 S = 1000 GOTO 360 250 S = 1000000 GOTO 360 270 S = 1000000000 280 GOTO 360

290 S = 100000000000# 300 GOTO 360 310 S = 1000000000000000# 320 GOTO 360 330 S = 1D+18 340 GOTO 360 350 S = 1D+21 360 PRINT N$; A; "="; E$; A * S 370 END 380 IF C = -3 THEN 460 390 IF C = -6 THEN 480 400 IF C = -9 THEN 500 410 IF C = -12 THEN 520 420 IF C = -15 THEN 540 430 IF C = -18 THEN 560 440 IF C = -21 THEN 580 450 REM 460 S = .001 470 GOTO 360 480 S = .000001 490 GOTO 360 500 S = .000000001# 510 GOTO 360 520 S = .000000000001# 530 GOTO 360 540 S = .000000000000001# 550 GOTO 360 560 S = 1D-18 570 GOTO 360 580 S = 9.999999999999999D-22 590 GOTO 360 600 END CLS : PRINT "SISTEMA METRICO DECIMALE:EQUIVALENZE SULLE MISURE DI CAPACITA'" PRINT "Al primo (?) digita di seguito il numero d'ordine dell'unità di misura di capacità a partire da (hl) e la misura." PRINT "Al secondo (?) digita la nuova unità di misura e il numero d'ordine della stessa." INPUT D, A DIM A$(6) FOR I = 1 TO 6 READ A$(I) IF D = I THEN 50 NEXT I 50 DATA "hl","dal","l","dl","cl","ml" N$ = A$(I) INPUT E$, E DIM B$(6) FOR I = 1 TO 6 READ B$(I) IF E = I THEN 140 NEXT I DATA "hl","dal","l","dl","cl","ml" 140 C = E - D IF C < 0 THEN 380 IF C = 1 THEN 230 IF C = 2 THEN 250 IF C = 3 THEN 270 IF C = 4 THEN 290 IF C = 5 THEN 310 230 S = 10 GOTO 360

250 S = 100 GOTO 360 270 S = 1000 280 GOTO 360 290 S = 10000! 300 GOTO 360 310 S = 100000 360 PRINT N$; A; "="; E$; A * S 370 END 380 IF C = -1 THEN 460 390 IF C = -2 THEN 480 400 IF C = -3 THEN 500 410 IF C = -4 THEN 520 420 IF C = -5 THEN 540 450 REM 460 S = .1 470 GOTO 360 480 S = .01 490 GOTO 360 500 S = .001 510 GOTO 360 520 S = .0001 530 GOTO 360 540 S = .00001 550 GOTO 360 600 END CLS : PRINT "SITEMA METRICO DEIMALE:EQUIVALENZE SULLE MISURE DI PESO" PRINT "Al primo (?) digita di seguito il numero d'ordine dell'unità di misura di peso a partire da (t) e la misura." PRINT "Al secondo (?) digita la nuova unità di misura e il numero d'ordine della stessa." INPUT D, A DIM A$(10) FOR I = 1 TO 10 READ A$(I) IF D = I THEN 50 NEXT I 50 DATA "t","q","Mg","Kg","hg","dag","g","dg","cg","mg" N$ = A$(I) INPUT E$, E DIM B$(10) FOR I = 1 TO 10 READ B$(I) IF E = I THEN 140 NEXT I DATA "t","q","Mg","Kg","hg","dag","g","dg","cg","mg" 140 C = E - D IF C < 0 THEN 380 IF C = 1 THEN 230 IF C = 2 THEN 250 IF C = 3 THEN 270 IF C = 4 THEN 290 IF C = 5 THEN 310 IF C = 6 THEN 330 IF C = 7 THEN 350 IF C = 8 THEN 352 IF C = 9 THEN 354 230 S = 10 GOTO 360 250 S = 100 GOTO 360

270 S = 1000 280 GOTO 360 290 S = 10000 300 GOTO 360 310 S = 100000 320 GOTO 360 330 S = 1000000 340 GOTO 360 350 S = 10000000 GOTO 360 352 S = 100000000 GOTO 360 354 S = 1000000000 360 PRINT N$; A; "="; E$; A * S 370 END 380 IF C = -1 THEN 460 390 IF C = -2 THEN 480 400 IF C = -3 THEN 500 410 IF C = -4 THEN 520 420 IF C = -5 THEN 540 430 IF C = -6 THEN 560 440 IF C = -7 THEN 580 442 IF C = -8 THEN 582 444 IF C = -9 THEN 584 450 REM 460 S = .1 470 GOTO 360 480 S = .01 490 GOTO 360 500 S = .001 510 GOTO 360 520 S = .0001 530 GOTO 360 540 S = .00001 550 GOTO 360 560 S = .000001 570 GOTO 360 580 S = .0000001 GOTO 360 582 S = .00000001# GOTO 360 584 S = .000000001# 590 GOTO 360 600 END Esempio con input e output sulle equivalenze delle misure di peso. SITEMA METRICO DEIMALE:EQUIVALENZE SULLE MISURE DI PESO Al primo (?) digita di seguito il numero d'ordine dell'unità di misura di peso a partire da (t) e la misura. Al secondo (?) digita la nuova unità di misura e il numero d'ordine della stessa . ? 2,25 ? dg,8 q 25 =dg 2.5E+07 6. Presentazione del programma “Poligoni regolari e π : numeri per il calcolo area, apotema”

1

O

NLH

Â

fig. 1 Allo scopo di rendere più immediata l’interpretazione del programma sotto riportato nel linguaggio QBasic si chiariranno di seguito le singole istruzioni, dopo aver introdotto il cerchio di raggio unitario (fig. 1), nel quale è disegnato il triangolo isoscele di base LN, che è genericamente il lato, L, di un poligono regolare inscritto. Infatti, se opportunamente presi, tre di questi triangoli isosceli formeranno il triangolo equilatero, quattro il quadrato, cinque il pentagono, ecc..L’istruzione INPUT chiede di dare il numero N di lati del poligono regolare; l’istruzione P=4*ATN(1) calcola e introduce nella memoria del computer il numero π ; l’istruzione L=2*SIN(A) permette di calcolare, con l’angolo LHO=A e con il cateto LH=SIN(A) , la lunghezza L della base del triangolo isoscele LNO che è, come già detto, il lato del poligono regolare; l’istruzione S=N*SIN(2*A)/2, da N*L*OH/2=N*2*SIN(A)*COS(A)/2 calcola N volte l’area del triangolo isoscele della fig. 1, il cui valore S è esattamente l’area del poligono regolare di N lati; l’istruzione F=S/L^2 dà il valore del numero per il calcolo dell’area del poligono regolare, essendo S=L^2*F; l’istruzione U=COS(A) calcola l’apotema del poligono regolare, che coincide con il cateto OH del triangolo rettangolo LHO; l’istruzione V=U/L dà il valore del numero per il calcolo dell’apotema, essendo U= L*V; l’istruzione PRINT “N=”;N,”F=”;F,”V=”;V è relativa all’output dei valori N (numero lati poligono), F (numero calcolo area poligono) e V (numero calcolo apotema poligono) di cui sopra; l’istruzione PRINT “PG=CIRCA F/V^2 ecc. dà un valore approssimato di π . Infatti, sapendo che l’area e l’apotema di un poligono regolare inscritto nel cerchio di raggio unitario sono S=L^2*F e U=L*V, dalla prima e dal quadrato della seconda si hanno rispettivamente F=S/L^2, V^2=U^2/L^2 i cui rapporti dei due membri dà proprio l’istruzione PRINT “PG=CIRCA F/V^2=S/U^2, che, per il cerchio di raggio unitario, dovrà essere S=π e U^2=1. Si riportano a seguire il listato in QBasic del programma sopra esposto, un esempio con i relativi input ed output, nonché una tabella nella quale sono stampati i numeri approssimati F e V, per i quali devono moltiplicarsi rispettivamente il quadrato del lato e il lato per poter avere l’area e l’apotema del poligono; nella medesima tabella, ultima colonna, è riportato il valore approssimato di π , che per il poligono di circa un miliardo di lati dà un valore dello stesso preciso fino alla quindicesima cifra decimale. CLS : DEFDBL P: DEFDBL A: DEFDBL L: DEFDBL S: DEFDBL F DEFDBL U: DEFDBL V PRINT "POLIGONO REGOLARE DI N LATI: CALCOLA I NUMERI F,V PER LA DETERMINAZIONE" PRINT "RISPETTIVAMENTE DELL'AREA(S) E DELL'APOTEMA(U);" PRINT "AL DIVERGERE DI N CALCOLA PG(PI GRECO)." 10 INPUT "DIGITA N, NUMERO DEI LATI DEL POLIGONO "; N P = 4 * ATN(1): A = P / N: L = 2 * SIN(A): S = N * SIN(2 * A) / 2 F = S / L ^ 2: U = COS(A): V = U / L: PRINT "N="; N, "F="; F, "V="; V PRINT "PG=CIRCA F/U^2="; F / V ^ 2; ","; "che al divergere di N è proprio PI GRECO=(area cerchio)/(raggio^2)" INPUT "VUOI CONTINUARE? DIGITA S/N"; Z$ IF Z$ = "S" THEN 10 ELSE 20 20 END Input output “Poligoni regolari: numeri per il calcolo di area e apotema; al divergere dei lati calcola pi greco”. POLIGONO REGOLARE DI N LATI: CALCOLA I NUMERI F,V PER LA DETERMINAZIONE RISPETTIVAMENTE DELL'AREA(S) E DELL'APOTEMA(U);

AL DIVERGERE DI N CALCOLA PG(PI GRECO). DIGITA N, NUMERO DEI LATI DEL POLIGONO ? 6 N= 6 F= 2.598076211353316 V= .8660254037844388 PG=CIRCA F/U^2= 3.464101615137753 , che al divergere di N è proprio PI GRECO=(area cerchio)/(raggio^2) VUOI CONTINUARE? DIGITA S/N? S DIGITA N, NUMERO DEI LATI DEL POLIGONO ? 1000000000 N= 1E+09 F= 7.957747154594766D+16 V= 159154943.0918953 PG=CIRCA F/U^2= 3.141592653589793 , che al divergere di N è proprio PI GRECO=(area cerchio)/(raggio^2) VUOI CONTINUARE? DIGITA S/N? N 7. Regola di Ruffini 10 CLS : PRINT "REGOLA DI RUFFINI (A*X^N+B*X^(N-1)+...L*X+M):(X+Z)" INPUT "DIGITA DI SEGUITO I COEFF.E IL TERMINE NOTO DEL POLINOMIO DIVIDENDO,DOPO EVENTUALMENTE 0(ZERO) FINO AD M"; A, B, C, D, E, F, G, H, I, L, M INPUT "DIGITA IL TERMINE NOTO DEL BINOMIO DIVISORE,CAMBIATO DI SEGNO"; Z: PRINT A0 = A * Z + B: A1 = Z * A0 + C: A2 = Z * A1 + D: A3 = Z * A2 + E A4 = Z * A3 + F: A5 = Z * A4 + G: A6 = Z * A5 + H: A7 = Z * A6 + I A8 = Z * A7 + L: R = Z * A8 + M PRINT " COEFF.DEL POLINOMIO QUOZIENTE (UNO IN MENO DEL DIVIDENDO),SEGUE IL" PRINT " RESTO ED ALTRI NUMERI DEI QUALI NON SI TERRA' CONTO SE POL.DIVIDENDO<10øGR." PRINT A, A0, A1, A2, A3, A4, A5, A6, A7, A8, R INPUT "VUOI CONTINUARE? S/N "; G$ IF G$ = "S" THEN 10 END Input output “Regola di Ruffini” REGOLA DI RUFFINI (A*X^N+B*X^(N-1)+...L*X+M):(X+Z) DIGITA DI SEGUITO I COEFF.E IL TERMINE NOTO DEL POLINOMIO DIVIDENDO,DOPO DIGITA EVENTUALMENTE TANTI 0(ZERO) FINO AD M? 6,5,3,7,-2,-9,0,0,0,0,0 DIGITA IL TERMINE NOTO DEL BINOMIO DIVISORE,CAMBIATO DI SEGNO? –5 COEFF.DEL POLINOMIO QUOZIENTE (UNO IN MENO DEL DIVIDENDO),SEGUE IL RESTO ED ALTRI NUMERI DEI QUALI NON SI TERRA' CONTO SE POL.DIVIDENDO<10°GR. 6 -25 128 -633 3163 -15824 79120 -395600 1978000 -9890000 4.945E+07 VUOI CONTINUARE? S/N ? N 8. Divisione di due polinomi CLS : PRINT "DIVIDE DUE POLINOMI DI GRADI M,N." PRINT "INTRODURRE AL PRIMO (?) N,M; DAL SECONDO (?) IN POI INTRODURRE I COEFF. A PARTIRE DAL GRADO ZERO." 10 INPUT N, M FOR I = 0 TO N INPUT A(I): R(I) = A(I): NEXT I FOR I = 0 TO M INPUT B(I) NEXT I I = N 190 IF I < M THEN 300 K = I - M Q(K) = R(I) / B(M) J = I - 1 230 H = J - K IF H < 0 THEN 280 R(J) = R(J) - Q(K) * B(H): J = J - 1:

GOTO 230 280 I = I - 1 GOTO 190 300 FOR I = 0 TO N - M PRINT Q(I); NEXT I: PRINT : FOR J = 0 TO M - 1 PRINT R(J); PRINT NEXT J PRINT "QUESTI SONO I COEFF.DEL POLINOMIO QUOZIENTE DAL GRADO PIU'BASSO ED IL RESTO." INPUT "VUOI CONTINUARE? S/N "; G$: IF G$ = "S" THEN 10: END Input output “Divisione di due polinomi” DIVIDE DUE POLINOMI DI GRADI N, M. INTRODURRE AL PRIMO(?) N,M; DAL SECONDO(?) IN POI INTRODURRE I COEFF. A PARTIRE DAL GRADO ZERO. ? 4,2 ? -4 ? 0 ? -3 ? 0 ? 2 ? 2 ? -1 ? 2 -2.25 .5 1 .5 -3.25 QUESTI SONO I COEFF.DEL POLINOMIO QUOZIENTE DAL GRADO PIU'BASSO ED IL RESTO. VUOI CONTINUARE? S/N ? N 9. Sistema di due equazioni primo grado 10 CLS : PRINT "SISTEMA LINEARE DI DUE EQUAZIONI:" PRINT "AX+BY+C=0, DX+EY+F=0" DIM X(6) DIM A(2): PRINT PRINT "DIGITA DI SEGUITO I SEI DATI" FOR I = 1 TO 6 INPUT X(I) NEXT I D = X(1) * X(5) - X(2) * X(4) A(1) = X(3) * X(5) - X(2) * X(6) A(2) = -X(3) * X(4) + X(1) * X(6) IF D = 0 THEN 270 GOTO 310 270 IF A(1) = 0 THEN 290 GOTO 300 290 IF A(2) = 0 THEN 740 300 IF D = 0 THEN 690 310 PRINT PRINT "("; X(1); "X+"; "("; X(2); ")"; "Y+"; "("; X(3); ")"; "=0" PRINT "(" PRINT "("; X(4); "X+"; "("; X(5); ")"; "Y+"; "("; X(6); ")"; "=0" PRINT D = -D S = D / ABS(D) FOR I = 1 TO 2 B = ABS(D)

IF A(I) < 0 THEN 430 GOTO 440 430 T = (-1) * A(I) 440 T = A(I) 450 Q = T / B 460 R = T - Q * B T = B: B = R IF R > 0 THEN 450 GCD = T IF I = 1 THEN 550 530 IF I = 2 THEN 570 GOTO 580 550 PRINT "X="; GOTO 530 570 PRINT "Y="; 580 PRINT S * A(I) / GCD IF GCD <> 1 THEN 610 GOTO 660 610 IF ABS(D / GCD) <> 1 THEN 650 GOTO 660 PRINT GOTO 670 650 PRINT "/"; ABS(D / GCD) 660 PRINT 670 NEXT I 680 END 690 PRINT PRINT "NESSUNA SOLUZIONE" END PRINT PRINT "SISTEMA INDETERMINATO" 740 END Input output “Sistema di due equazioni primo grado” SISTEMA LINEARE DI DUE EQUAZIONI: AX+BY+C=0, DX+EY+F=0 DIGITA DI SEGUITO I SEI DATI ? 1 ? -8 ? -2 ? 1 ? -7 ? -7 ( 1 X+(-8 )Y+(-2 )=0 ( ( 1 X+(-7 )Y+(-7 )=0 X= 42 Y= 5 10. Equazioni di secondo grado con radici reali e complesse CLS : PRINT "EQUAZIONE DI 2øGRADO A RADICI REALI E COMPLESSE,CON RELAZIONI" 10 INPUT "A*X^2+B*X+C=0: DIGITA A,B,C "; A, B, C D = B ^ 2 - 4 * A * C: PRINT : PRINT "DISCRIMINANTE D=B^2-4*A*C="; D IF D < 0 THEN 70 ELSE 40 40 X1 = (-B + SQR(D)) / (2 * A): X2 = (-B - SQR(D)) / (2 * A): PRINT PRINT "X1="; X1, "X2="; X2: PRINT : GOTO 90: END 70 XR1 = -B / (2 * A): XJ1 = SQR(-D) / (2 * A): XJ2 = -XJ1: PRINT

PRINT "X1="; XR1; "+("; XJ1; ")"; "*I": PRINT "X2="; XR1; "+("; XJ2; ")"; "*I": PRINT GOTO 100 90 PRINT "RELAZIONI:-B/A="; -B / A; "="; "X1+X2="; X1 + X2; ";"; " C/A="; C / A; "="; "X1 * X2="; X1 * X2 PRINT : INPUT "VUOI CONTINUARE? S/N "; G$ IF G$ = "S" THEN 10 END 100 PRINT "RELAZIONI: B/A="; -B / A; "="; "2*(-B/(2*A)="; 2 * XR1; ";" PRINT "C/A="; C / A; "="; "(-B/(2*A))^2+(-D)/((2*A)^2)="; XR1 ^ 2 + XJ1 ^ 2 PRINT : INPUT "VUOI CONTINUARE? S/N "; G$ IF G$ = "S" THEN 10 END Esempio con input e output di equazioni di secondo grado EQUAZIONE DI 2°GRADO A RADICI REALI E COMPLESSE,CON RELAZIONI A*X^2+B*X+C=0: DIGITA A,B,C ? 1,11,-60 DISCRIMINANTE D=B^2-4*A*C= 361 X1= 4 X2=-15 RELAZIONI:-B/A=-11 =X1+X2=-11 ; C/A=-60 =X1 * X2=-60 VUOI CONTINUARE? S/N ? S A*X^2+B*X+C=0: DIGITA A,B,C ? 5,8,7 DISCRIMINANTE D=B^2-4*A*C= -76 X1=-.8 +( .8717798 )*I X2=-.8 +(-.8717798 )*I RELAZIONI: B/A=-1.6 =2*(-B/(2*A)=-1.6 ; C/A= 1.4 =(-B/(2*A))^2+(-D)/((2*A)^2)= 1.4 VUOI CONTINUARE? S/N ? N 11. Serie geometriche convergenti CLS : PRINT "CONVERGENZA SERIE GEOMETRICHE CON 0<Q<1" 10 DEFDBL A: DEFDBL B: DEFDBL C: DEFDBL Q: DEFDBL S INPUT "DIGITA PRIMO TERMINE,RAGIONE,N.RO TERMINI "; A, Q, N PRINT "TERMINI DELLA SUCCESSIONE", "SOMMA TERMINI DELLA SERIE CONVERGENTE" PRINT "DA CUI PROVIENE LA SERIE", "CHE PER N ALL'INFINITO E'<SOMMA> DELLA SERIE" B = A: PRINT B, , , A FOR I = 2 TO N C = A * Q ^ (I - 1) B = B + C PRINT C, , , B NEXT I S = A / (1 - Q) PRINT "LA SERIE RELATIVA CONVERGE PER 0<Q<1,"; 0; "<"; Q; "<"; 1; PRINT "A S=A1/(1-Q)="; A; "/(1-"; Q; ")="; S INPUT "VUOI CONTINUARE? S/N"; Z$ IF Z$ = "S" THEN 10 END Esempio con input e output sulle serie geometriche convergenti CONVERGENZA SERIE GEOMETRICHE CON 0<Q<1

DIGITA PRIMO TERMINE,RAGIONE,N.RO TERMINI ? 4,.5,10 TERMINI DELLA SUCCESSIONE SOMMA TERMINI DELLA SERIE CONVERGENTE DA CUI PROVIENE LA SERIE CHE PER N ALL'INFINITO E'<SOMMA> DELLA SERIE 4 4 2 6 1 7 .5 7.5 .25 7.75 .125 7.875 .0625 7.9375 .03125 7.96875 .015625 7.984375 .0078125 7.9921875 LA SERIE RELATIVA CONVERGE PER 0<Q<1, 0 < .5 < 1 A S=A1/(1-Q)= 4 /(1- .5 )= 8 VUOI CONTINUARE? S/N? N 12. Radici approssimate polinomio di grado qualunque: “Calcola con il metodo di Bairstow, in parte iterativo gli zeri di un polinomio di grado N”. Prima di riportare il programma diamo le indicazioni teoriche del metodo di Bairstow, il quale consiste nel decomporre il polinomio P(x) nel prodotto di polinomi più semplici di gradi 2 ed eventualmente 1. Il primo passo consiste nel determinare p , q in P(x)=(x2+px+q) Q(x); le radici di P(x) sono quindi sia quelle dell’equazione in x sia quelle di Q(x) di grado n-2. Applicando nuovamente il processo a Q(x) e così via fino a determinare tutte le radici. Per la determinazione dei coefficienti p , q si ricorre ad uno dei metodi iterativi che si conoscono. Avviato il programma, digitati il grado del polinomio e tutti i coefficienti, eventualmente anche i nulli, occorre anche dare la precisione da 1 (mediocre) a 8 (ottima) e i valori iniziali p , q: quanto sopra in generale conduce al risultato, tuttavia a volte, soprattutto se vi sono molti coefficienti nulli, bisogna variare la precisione e/o p, q e rilanciare il programma.

CLS : PRINT "CALCOLA CON METODO DI BAIRSTOW, ANCHE ITERATIVO, GLI ZERI DI UN POLINOMIO DI GRADO N" PRINT "A(0)X^N+A(1)X^(N-1)+A(2)X^(N-2)+...A(N-1)X+A(N)=0" PRINT "SI RICHIEDE LA PRECISIONE p DA 1(minima) A 8 E CON ESSA VIENE CALCOLATO" PRINT "E(errore massimo)=10^(-p) TOLLERABILE PER I VALORI ASSOLUTI DI p(n+1)-p(n)" PRINT "E q(n+1)-q(n),ESSENDO p,q IN P(X)=(X^2+pX+q)*Q(X), CIOE' NELLA DECOM-" PRINT "POSIZIONE DEL POLINOMIO DI PARTENZA SECONDO IL METODO DI BAIRSTOW." 20 INPUT "N="; n: IF n < 3 THEN 20 ELSE 40 40 FOR I = 0 TO n PRINT "A("; I; : INPUT ")="; A(I) NEXT I: FOR I = 1 TO n: A(I) = A(I) / A(0): NEXT I A(0) = 1: INPUT "PRECISIONE DA 1 A 8:"; E E = 10 ^ (-E) INPUT "P,Q:"; p, q: S = 0 90 J = 0 100 B(0) = A(0): B(1) = A(1) - p * B(0): FOR K = 2 TO n B(K) = A(K) - p * B(K - 1) - q * B(K - 2) NEXT K: C(0) = B(0): C(1) = B(1) - p * C(0): IF n = 3 THEN 190 FOR K = 2 TO n - 2 C(K) = B(K) - p * C(K - 1) - q * C(K - 2): NEXT K 190 C(n - 1) = -p * C(n - 2) - q * C(n - 3) D = C(n - 2) * C(n - 2) - C(n - 1) * C(n - 3) U = B(n - 1) * C(n - 2) - B(n) * C(n - 3) V = B(n) * C(n - 2) - B(n - 1) * C(n - 1) IF D = 0 THEN PRINT "IL METODO E' INADATTO": GOTO 420 Y = U / D: Z = V / D p = p + Y: q = q + Z IF (ABS(Y) + ABS(Z)) < E THEN 300 IF J < 100 THEN J = J + 1: GOTO 100 PRINT "AL CALCOLO OCCORRONO MOLTE ITERAZIONI" GOTO 420 300 T = p * p - 4 * q

IF T < 0 THEN 350 PRINT (-p + SQR(T)) / 2 S = 1 PRINT (-p - SQR(T)) / 2 350 n = n - 2 FOR I = 1 TO n A(I) = B(I) NEXT I IF n > 2 THEN 90 IF n = 2 THEN p = B(1): q = B(2): GOTO 300 IF n = 1 THEN PRINT -B(1) / B(0): S = 1 420 IF S = 0 THEN PRINT "NESSUNA SOLUZIONE" PRINT “EVENTUALI ALTRE RADICI NON SONO RIPORTATE PERCHE’ COMPLESSE.” INPUT " VUOI RIUTILIZZARE IL PROGRAMMA S/N"; Z$ IF Z$ = "S" THEN 20 END Esempi con input output del programma 12: CALCOLA CON METODO DI BAIRSTOW, ANCHE ITERATIVO, LE RADICI DI UN POLINOMIO DI GRADO N A(0)X^N+A(1)X^(N-1)+A(2)X^(N-2)+...A(N-1)X+A(N)=0 SI RICHIEDE LA PRECISIONE p DA 1(minima) A 8 E CON ESSA VIENE CALCOLATO E(errore massimo)=10^(-p) TOLLERABILE PER I VALORI ASSOLUTI DI p(n+1)-p(n) E q(n+1)-q(n),ESSENDO p,q IN P(X)=(X^2+pX+q)*Q(X), CIOE' NELLA DECOM- POSIZIONE DEL POLINOMIO DI PARTENZA SECONDO IL METODO DI BAIRSTOW. N=? 6 A( 0 )=? 2 A( 1 )=? -4 A( 2 )=? 3 A( 3 )=? -6 A( 4 )=? 5 A( 5 )=? 10 A( 6 )=? -40 PRECISIONE DA 1 A 8:? 5 P,Q:? 0,0 2 -1.289272 EVENTUALI ALTRE RADICI NON SONO RIPORTATE PERCHE' COMPLESSE. VUOI RIUTILIZZARE IL PROGRAMMA S/N? S N=? 4 A( 0 )=? 1 A( 1 )=? -2 A( 2 )=? -45 A( 3 )=? -34 A( 4 )=? 80 PRECISIONE DA 1 A 8:? 8 P,Q:? 0,0 1 -2 8 -5 EVENTUALI ALTRE RADICI NON SONO RIPORTATE PERCHE' COMPLESSE. VUOI RIUTILIZZARE IL PROGRAMMA S/N? S N=? 7 A( 0 )=? 2 A( 1 )=? -13 A( 2 )=? -49 A( 3 )=? 385 A( 4 )=? -77

A( 5 )=? -1652 A( 6 )=? 684 A( 7 )=? 720 PRECISIONE DA 1 A 8:? 5 P,Q:? 2,2 1 -2 2.999999 -.5 4.000002 -5 5.999999 EVENTUALI ALTRE RADICI NON SONO RIPORTATE PERCHE' COMPLESSE. VUOI RIUTILIZZARE IL PROGRAMMA S/N? N 13. Equazione differenziale di qualunque ordine: “Risoluzione di un’equazione differenziale di ordine N” Come è noto la risoluzione di un’equazione differenziale è data sotto la forma analitica. Invece, la soluzione data dal programma è sotto la forma discreta, ossia sotto forma della successione di valori presi dalla funzione per dei valori equidistanti della variabile x. La finezza è un metodo per aumentare la precisione del calcolo, che è legata al numero dei termini calcolati. Tuttavia, senza saturare lo schermo viene stampata solo una parte di punti calcolati, essendo la finezza il numero dei punti calcolati tra due punti stampati. Es. con finezza10, il programma calcolerà 10 volte i punti che stamperà; se si vuole che tutti i punti calcolati vengano stampati, si dovrà richiedere la finezza 1. Digitare l’ordine dell’equazione al numero d’istruzione 40 e l’equazione differenziale al numero 50: Y(0) è la funzione incognita y, Y(1) è la derivata y’,…, Y(n) è la derivata y(n). 10 CLS : PRINT "Data l'equazione differenziale G(X,Y,Y(1),Y(2),...,Y(n))=0, risolverla significa trovare le Y che la soddisfano. Esistono solo casi particolari risolvibili, ma vari metodi numerici permettono di ottenere le soluzioni." PRINT "La presente estensione del metodo di Runge-Kutta permette di risolvere le equazioni di ordine qualunque N, che ha la" PRINT "FORMA DELLE EQUAZIONI Y(n)=F(Y(n-1),Y(n-2),...,Y(1),Y,X)." PRINT "SI EFFETTUERANNO I CAMBIAMENTI DI VARIABILE Y1=Y Y2=Y(1) Y3=Y(2)......" PRINT "Yn=Y(n-1).L'EQUAZIONE DI PARTENZA EQUIVALE AL SISTEMA CHE HA" PRINT "LE EQUAZIONI Y1(1)=Y2,Y2(1)=Y3,...,Yn-1(1)=Yn,Yn(1)=F(Yn,Yn-1,...Y2,Y1,X)" PRINT "CON Y1(0)=Y(0),Y2(0)=Y(1)(0),...,Yn-1(0)=Y(n-2)(0),Yn(0)=Y(n-1)(0),CHE" PRINT "E' UN SISTEMA DI n EQUAZIONI ACCOPPIATE DI ORDINE 1 RISOLVIBILE." 20 PRINT TAB(5); "RISOLUZIONE EQUAZIONE DIFFERENZIALE DI ORDINE N": PRINT : PRINT PRINT "1- L'EQUAZIONE VA PROGRAMMATA NELL'ISTRUZIONE 50 E IL SUO ORDINE" PRINT "VA DIGITATO NELL'ISTRUZIONE 40": PRINT : PRINT "2- RISOLUZIONE" PRINT : PRINT : INPUT "SE HAI SVOLTO LA FUNZIONE 1, DIGITA 2:"; E PRINT : IF E = 2 THEN 30 ELSE 100 REM F = (2 * Y(1) * Y(1) + Y(0) * Y(0)) / Y(0) 30 GOSUB 50 40 N = 4 N1 = N - 1 INPUT "X0="; X: X1 = X: PRINT FOR L = 0 TO N1 PRINT "Y"; : IF L > 0 THEN FOR L1 = 1 TO L: PRINT "'"; : NEXT L1 PRINT "("; X; : INPUT ")="; Z(L) NEXT L: PRINT INPUT "SECONDO ESTREMO XF:"; XF INPUT "N.RO PUNTI: "; M INPUT "FINEZZA: "; FI: PRINT H = (XF - X) / FI / M FOR I = 1 TO M

FOR J = 1 TO FI FOR L = 0 TO N1: Y(L) = Z(L): NEXT L GOSUB 50 FOR L = 0 TO N - 2: A(L) = H * Y(L + 1): Y(L) = Z(L) + A(L) / 2: NEXT L A = H * F: Y(N1) = Z(N1) + A / 2: X = X + H / 2 GOSUB 50 FOR L = 0 TO N - 2: B(L) = H * Y(L + 1): Y(L) = Z(L) + B(L) / 2: NEXT L B = H * F: Y(N1) = Z(N1) + B / 2 GOSUB 50 FOR L = 0 TO N - 2: C(L) = H * Y(L + 1): Y(L) = Z(L) + C(L): NEXT L C = H * F: Y(N1) = Z(N1) + C: X = X1 + ((I - 1) * FI + J) * H GOSUB 50 FOR L = 0 TO N - 2 Z(L) = Z(L) + (A(L) + 2 * B(L) + 2 * C(L) + H * Y(L + 1)) / 6: NEXT L Z(N1) = Z(N1) + (A + 2 * B + 2 * C + H * F) / 6 NEXT J PRINT "X="; X; TAB(20); "Y="; Z(0) NEXT I PRINT : INPUT "VUOI RIUTILIZZARE IL PROGRAMMA S/N"; Z$ IF Z$ = "S" THEN 20 GOTO 100 50 F = 3 * Y(3) + Y(1) + 3 * Y(0) - X RETURN 100 END Esempio con input output del programma 13 e breve commento. Data l’equazione del quarto ordine yIV = 3y’’’+y’+3y-x,all’istruzione 40 si digiterà N=4, alla 50 si riporterà F=3*Y(3)+Y(1)+3*Y(0)-X, quindi si avvierà il programma. Data l'equazione differenziale G(X,Y,Y(1),Y(2),...,Y(n))=0, risolverla significa trovare le Y che la soddisfano. Esistono solo casi particolari risolvibili, ma vari metodi numerici permettono di ottenere le soluzioni. La presente estensione del metodo di Runge-Kutta permette di risolvere le equazi oni di ordine qualunque N, che ha la FORMA DELLE EQUAZIONI Y(n)=F(Y(n-1),Y(n-2),...,Y(1),Y,X). SI EFFETTUERA' IL CAMBIAMENTO DI VARIABILE Y1=Y Y2=Y(1) Y3=Y(2)...... Yn=Y(n-1).L'EQUAZIONE DI PARTENZA EQUIVALE AL SISTEMA CHE HA LE EQUAZIONI Y1(1)=Y2,Y2(1)=Y3,...,Yn-1(1)=Yn,Yn(1)=F(Yn,Yn-1,...Y2,Y1,X) CON Y1(0)=Y(0),Y2(0)=Y(1)(0),...,Yn-1(0)=Y(n-2)(0),Yn(0)=Y(n-1)(0),CHE E' UN SISTEMA DI n EQUAZIONI ACCOPPIATE DI ORDINE 1 RISOLVIBILE. RISOLUZIONE EQUAZIONE DIFFERENZIALE DI ORDINE N 1- L'EQUAZIONE VA PROGRAMMATA NELL'ISTRUZIONE 50 E IL SUO ORDINE VA DIGITATO NELL'ISTRUZIONE 40 2- RISOLUZIONE SE HAI SVOLTO LA FUNZIONE 1, DIGITA 2:? 2 X0=? 3 Y( 3 )=? 5 Y'( 3 )=? -8 Y''( 3 )=? 6 Y'''( 3 )=? -7 SECONDO ESTREMO XF:? 6 N.RO PUNTI: ? 5 FINEZZA: ? 60

X= 3.6 Y= .8733523 X= 4.2 Y=-6.854454 X= 4.8 Y=-55.11814 X= 5.4 Y=-393.0173 X= 6 Y=-2705.438 VUOI RIUTILIZZARE IL PROGRAMMA S/N? N Nota bibliografica: per i programmi 12,13 cfr. A.Reverchon, M.Ducamp “Matematica su personal computer” 1.Analisi, Tecniche Nuove Milano. Il presente lavoro, relativo alla seconda parte, è stato pubblicato nel 2005 sul CD della quinta edizione dell’ADT (Associazione per la Didattica con le Tecnologie), essendo stato presentato nel 4° Convegno Nazionale “Il ruolo delle tecnologie nella didattica” tenutosi a Castel San Pietro (BO) dall’8 al 9 novembre 2003. BIBLIOGRAFIA

1) G. Carolla, “Geometria e Didattica” in Cento anni di Matematica Atti del Convegno Internazionale “Mathesis Centenario 1895-1995”, Fratelli Palombi Editori srl, Roma 1996, pp. 281-285.

2) G. Carolla, “Teoria delle progressioni armoniche, logaritmiche, potenziate, antiarmoniche e loro connessioni anche con le progressioni aritmetiche e geometriche” in Periodico di matematiche, Organo della Mathesis, Serie VII- Volume 6- Numero 3- Luglio-settembre 1999, pp. 34-50.

3) G. Carolla, “Su alcune serie delle progressioni” in Atti del Congresso Nazionale della Mathesis 1999, Vol. II, Teramo 2001, pp. 35-44.