1 REM TRIGO
2 REM 
3 CLS
4 LOCATE 3,20:PRINT STRING$(55,177)
5 LOCATE 5,20:PRINT "CALCOLO DEL SENO E DEL COSENO:"
6 LOCATE 7,20:PRINT STRING$(55,177)
7 LOCATE 9,20:PRINT "Il programma calcola il seno ed il coseno del numero x,":LOCATE 10,20:PRINT "facendo uso delle formule di addizione."
8 LOCATE 13,20:PRINT "  Il programma fa uso dei seni e coseni di ã/2,ã/4,ã/8,..":LOCATE 14,20:PRINT "calcolabili a partire da sin(ã) e cos(ã) per bisezione."
9 LOCATE 16,20:PRINT "   E' richiesta anche una precisione î:pi— î Š piccolo pi—":LOCATE 17,20:PRINT "le iterazioni - e quindi la precisione - crescono. "
10 LOCATE 19,20:PRINT " Gli errori di arrotondamento sempre pi— numerosi "
11 LOCATE 20,20:PRINT "non consentono tuttavia precisioni troppo grandi."
12 LOCATE 22,20:PRINT "Sono dati anche i valori ®veri¯ e gli scarti."
13 A$="":B$=INKEY$:IF A$=B$ THEN 10
14 CLS
15 REM 
100 LOCATE 5,5:INPUT "Precisione î  =  ",EPS
110 PG=3.141592654#
120 N=1+INT(LOG(PG/EPS)/LOG(2))
130 LOCATE 7,5:INPUT "Valore x in [0,ã], x =  ",X:XX=X
140 SS=0
150 CC=1
160 S=0
170 C=-1
180 FOR I=1 TO N
190 IF X=0 THEN 270
200 S=SQR((1-C)/2)
210 C=SQR((1+C)/2)
220 IF PG/(2^I)>X THEN 270
230 SN=SS*C+CC*S
240 CC=CC*C-SS*S
250 SS=SN
260 X=X-PG/(2^I)
270 NEXT I
280 LOCATE 10,5:PRINT "Valori trovati :sen(x) = "SS,"cos(x) = ";CC
281 LOCATE 12,5:PRINT "Valori ®veri¯  :sen(x) = ";SIN(XX),"cos(x) = ";COS(XX)
282 LOCATE 14,5:PRINT "Scarti  = ";ABS(SS-SIN(XX))," e ";ABS(CC-COS(XX))
285 LOCATE 20,1:INPUT "0 continua, 1 esce ... ",SCE
286 CLS:IF SCE=1 THEN  290
287 LOCATE 5,5:PRINT "Precisione î  =  ";EPS:GOTO 130
290 GOSUB 1000
300 END
1000 LOCATE 23,1:PRINT "Premere un tasto, I per tornare all'indice "
1001 A$="":B$=INKEY$:IF A$=B$ THEN 1001
1002 IF B$="I" OR B$="i" THEN  1004
1003 RETURN
1004 CHAIN"indice.bas",570


                   _______________________________________________________

                   CALCOLO DEL SENO E DEL COSENO:

                   _______________________________________________________

                   Il programma calcola il seno ed il coseno del numero x,
                   facendo uso delle formule di addizione.


                     Il programma fa uso dei seni e coseni di Ò/2,Ò/4,Ò/8,..
                   calcolabili a partire da sin(Ò) e cos(Ò) per bisezione.

                      E' richiesta anche una precisione ¯:più ¯ è piccolo più
                   le iterazioni - e quindi la precisione - crescono.

                    Gli errori di arrotondamento sempre più numerosi
                   non consentono tuttavia precisioni troppo grandi.

                   Sono dati anche i valori «veri» e gli scarti.




    Precisione ¯  =  0.1

    Valore x in [0,Ò], x =  2


    Valori trovati :sen(x) =  .9238796    cos(x) = -.3826834

    Valori «veri»  :sen(x) =  .9092975    cos(x) = -.4161469

    Scarti  =  1.458204E-02                e  3.346345E-02

ritorna