microsoft basic per mac

 

 

REM TRIGO7
REM variante di TRIGO6
REM esempio istogrammi lineari e con righe verticali e triangoli
REM cambio tipo tratteggio 
REM  fattore di scala ys
REM GRIGLIA FACOLTATIVA
REM STAMPA VALORI NUMERICI E LEGENDE
INPUT"1=con griglia....2=senza griglia ";gri
INPUT"1=anche linee verticali....2=senza verticali ";tipo1
INPUT"1=anche tratteggio....2=senza tratteggio ";tipo2
INPUT"legenda per asse ordinate=";ly$
INPUT"legenda per asse ascisse=";lx$
INPUT"legenda per titolo grafico=";titolo$
CLS
Y1=250
Y2=100
dy=y1-y2
ymax=0
ymin=10000
LARGO=30
X1=1
valori=15
dx=1/8
DIM y(valori+1)
REM asse ascisse X
LINE(x1,y1)-(x1+valori*largo,y1)
REM lettura valori e ricerca massimo e minimo
FOR A=1 TO valori
READ y(a)
IF y(a)>=ymax THEN ymax=y(a)
IF y(a)<=ymin THEN ymin=y(a)
NEXT a
ys=dy/ymax
REM stampa legende
LOCATE 2,10:PRINT titolo$
LOCATE 4,2:PRINT ly$
LOCATE 18,2:PRINT lx$
LOCATE  3,40:PRINT"massimo=";ymax
LOCATE 4,40:PRINT"minimo  =";ymin
REM CORNICE GRAFICO
LINE(x1,y1)-(x1+valori*largo,y2),,b
IF gri=2 THEN nogriglia
REM GRIGLIA
griglia:
FOR b=1 TO dy STEP 10
LINE(x1,y2+b)-(x1+largo*valori,y2+b)
NEXT b
nogriglia:
REM diagramma lineare
X=1
FOR a=1 TO valori
LINE(x1,y1-ys*y(a))-(x1+largo,y1-ys*y(a+1))
x1=x1+largo
NEXT a
INPUT x$
REM STAMPA VALORI NUMERICI
x1=1
x=1
FOR A=1 TO VALORI
LOCATE 5,x:PRINT Y(a)
x1=x1+largo
x=x1*dx
NEXT a
REM PROSEGUE GRAFICO
IF tipo1<>1 THEN tratteggio
REM linee verticali
verticali:
x1=1
FOR a=1 TO valori
LINE(x1,y1)-(x1,y1-ys*y(a))
x1=x1+largo
NEXT a
INPUT x$
tratteggio:
IF tipo2<>1 THEN fine
REM tratteggio triangoli e istogramma rettangolare
x1=1
FOR a=1 TO valori
da=ys*y(a)-ys*y(a+1)
IF da>=0 THEN dh=1 ELSE dh=2
ta=da/largo
IF a/2=INT(a/2) THEN passo=2 ELSE passo=1
 FOR l=largo TO 1 STEP -1*passo
 h=l*ta
IF dh=1 THEN h=(da-h)
 IF dh=2 THEN LINE(x1,y1-ys*y(a+1)-h)-(x1,y1-ys*y(a))
 IF dh=1 THEN LINE(x1,y1-ys*y(a)+h)-(x1,y1-ys*y(a+1))
 IF dh=2 THEN LINE(x1,y1)-(x1,y1-ys*y(a))
 IF dh=1 THEN LINE(x1,y1)-(x1,y1-ys*y(a+1))
 x1=x1+passo
 NEXT l
 NEXT a
 fine:
 LOCATE 20,2:INPUT"premi return";x$
REM ultimo dato 0  
DATA 50,140,60,120,20,80,50,100,80,80,20,130,60,150,30,0