' (C) 1990 AMIGA WORLD - IDG COMMUNICATIONS -
' (C) 1990 Joaquín Garcia
CLEAR ,60000&,2000:jo$="Joaquin Garcia"
'******************* Amiga Base *******************
'********** Programado por Joaquin Garcia *********
'* Se permite cualquier modificacion siempre que **
'**** se incluyan estas cinco primeras lineas *****
'El caracter es la tecla "Help"
GOTO inicio
mp:
DATA Crear nueva Base de Datos.
DATA Introducir Datos.
DATA Cargar Datos.
DATA Grabar los Datos.
DATA Ver los Datos de la Base.
DATA Ordenar los datos.
DATA Borrar un registro.
DATA Buscar registros.
DATA Cambiar algún dato.
DATA Utilidades gráficas y numéricas.
gn:
DATA Hoja de estadistica.
DATA Imprimir
DATA ----------
DATA Gráfica lineal.
DATA Gráfica tipo pastel.
DATA "Menú principal."
col:
PALETTE 2,0,0,0
FOR t=1 TO 20
FOR t1=1 TO 5:NEXT
c1=c1+.005:c2=c2+.0375:PALETTE 1,c2,c2,c2:PALETTE: 0,c1,c1,c1
c3=c3+.045:c4=c4+.025:PALETTE 3,c3,c4,0
c5=c5+.04:PALETTE 2,c1,c1,c3
NEXT
RETURN
col1:
PALETTE 2,0,0,0
FOR t=1 TO 20
for t1=1 TO 5:NEXT
c1=c1-.005:c2=c2-.0375:PALETTE 1,c2,c2,c2:PALETTE 0,c1,c1,c1
c3=c3-.045:c4=c4-.025:PALETTE 3,c3,c4,c1
c5=c5-.04:PALETTE 2,c1,c1,c3
NEXT
RETURN
tri:
PSET (x,y),co:LINE -STEP (14,10),co
LINE -STEP (-28,0),co:LINE -STEP (14,-10),co:PAINT (x,y+3),co
RETURN
tri1:
PSET (x,y+6),co:LINE -STEP (14,-10),co
LINE -STEP (-28,0),co:LINE -STEP (14,10),co:PAINT (x,y+3),co
RETURN
rect:
LINE (x,y)-(x+28,y+3),co,bf:RETURN
tri2:
PSET (x,y),co:LINE -STEP (20,7),co
LINE -STEP (-20,7),co:LINE -STEP (0,-14),co:PAINT (x+4,y+4),co
RETURN
tri3:
PSET (x,y),co:LINE -STEP (-20,7),co
LINE -STEP (20,7),co:LINE -STEP (0,-14),co:PAINT (x-4,y+4),co
RETURN
campo:
CLS
GOSUB 20
FOR p=1 to cam
PRINT SPC ((79-LEN(cam$(p)))\2);cam$(p)
NEXT:ct=1
LINE(0,(cam)*8)-(640,(cam)*8+1),1,bf:PRINT
PRINT SPC ((80-LEN(ti$))\2);ti$:PRINT
PRINT " ELIJA EN CAMPO CON EL QUE VA A TRABAJAR"
91 IF MOUSE(0)<>0 THEN c=ct:COLOR 1,0:RETURN
IF MOUSE(2)>(cam)*8 OR MOUSE(2)<0 THEN 91
IF ct<>INT(MOUSE(2)\8)+8 THEN
COLOR 1,0:LOCATE ct,1:PRINT SPC ((79-LEN(cam$(ct)))\2);cam$(ct)
IF MOUSE(2)<(cam)*8-1 THEN ct=INT(MOUSE(2)\8)+1:COLOR 0,1
LOCATE ct,1:PRINT SPC ((79-LEN(cam$(ct)))\2; cam$(ct)
END IF
GOTO 91
df:
LINE (360,120)-(550,160),0,bf
IF df$="df0:" THEN PUT (400,120),s%:PUT (450,126),p%:PUT (500,126),p%
IF df$="df1:" THEN PUT (400,126),p%:PUT (450,120),s%:PUT (500,126),p%
IF df$)"RAM:" THEN PUT (400,126),p%:PUT (450,126),p%:PUT (500,120),s%
GOSUB 20
RETURN
menu1:
WINDOW 3,,(343,70)-(621,102),0,1
INPUT " Esta seguro ? ",sg$
IF UCASE$(LEFT$(sg$,1))="S" THEN WINDOW CLOSE 3:CLS:MENU RESET:END ELSE WINDOW CLOSE 3:RETURN
RETURN
ON1:
DATA 36 , 24 , 2 , 0 , 0 , 0 , 0 , 7 ,-8192 , 0 , 15
DATA -4096 , 0 , 31 ,-2048 , 0 , 31 ,-2048 , 0 , 31 ,-2048
DATA 0 , 31 ,-2048 , 0 , 15 ,-4096 , 0 , 15 ,-4096 , 0
DATA 7 ,-8192 , 0 , 7 ,-8192 , 0 , 7 ,-8192 , 0 , 3
DATA -16384 , 0 , 3 ,-16384 , 0 , 0 , 0 , 0 , 0 , 0
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 ,-8192
DATA 0 , 7 ,-4096 , 0 , 15 ,-2048 , 0 , 15 ,-2048 , 0
DATA 15 ,-2048 , 0 , 15 ,-2048 , 0 , 23 ,-1024 , 0 , 503
DATA -64 , 0 , 2043 ,-16 , 0 , 8187 ,-4 , 0 , 16379 ,-2
DATA 0 , 16365 ,-1026 , 0 , 32733 ,-513 , 0 , 32767 ,-1 , 0
DATA 32735 ,-513 , 0 , 16367 ,-1026 , 0 , 16382 ,-16386 , 0 , 8191
DATA -4 , 0 , 2047 ,-16 , 0 , 511 ,-64 , 0 , 31 ,-1024
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
OFF1:
DATA 34 , 24 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
DATA 7 ,-32768 , 0 , 7 ,-32768 , 0 , 15 ,-16384 , 0 , 15
DATA -16384, 0 , 15 ,-16384 , 0 , 31 ,-8192 , 0 , 31 ,-8192
DATA 0 , 63 ,-4096 , 0 , 63 ,-4096 , 0 , 63 ,-4096 , 0
DATA 63 ,-4096 , 0 , 31 ,-8192 , 0 , 15 ,-16384 , 0 , 0
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 63 ,-2048
DATA 0 , 1023 ,-128 , 0 , 4095 ,-32 , 0 , 16383 ,-8 , 0
DATA 32765 , 32764 , 0 , 32735 ,-2052 , 0 ,-65 ,-1026 , 0 ,-1
DATA -2 , 0 ,-69 ,-1026 , 0 , 32731 ,-2052 , 0 , 32759 ,-4
DATA 0 , 16375 ,-8 , 0 , 4087 ,-32 , 0 , 1007 ,-128 , 0
DATA 47 ,-2048 , 0 , 31 ,-4096 , 0 , 31 ,-4096 , 0 , 31
DATA -4096 , 0 , 31 ,-4096 , 0 , 15 ,-8192 , 0 , 7 ,-16384
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
DATA 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
inicio:
jo$="Joaquin Garcia"
SCREEN 1,640,255,2,2
WINDOW 1," Amiga Base",(0,1)-(631,175),0,1
DIM s%(160),p%(160):RESTORE ON1:
FOR t=0 TO 159:READ s%(t):NEXT
RESTORE OFF1:
FOR t=0 TO 159:READ p%(t):NEXT
MENU 1,0,1,"Salir"
MENU 1,1,1,"Por favor."
MENU 2,0,1,"":MENU 3,0,1,"":MENU 4,0,1,""
ON MENU GOSUB menu1:MENU ON
df$="df0:":RANDOMIZE TIMER:DEFINT op
ON ERROR GOTO derror
DIM g(1):g(0)=6355&:g(1)=6535&
DIM op(3):op(0)=&HFFFF:op(1)=&HFFFF:op(2)=&HFFFF:op(3)=&HFFFF
DIM cam$(10) :num=0:c2=.75:c1=.1:c3=.9:c4=.5:c5=.08
WIDTH 79
PALETTE 1,.75,.75,.75
PALETTE 3,1,.73,0!
PALETTE 2,1,.6,0
PALETTE 0,.1,.1,.1
GOSUB 20
men:
GOSUB col1
CLS:RESTORE mp
FOR t=0 TO 9
LOCATE 3+t*2,6:READ s$:PRINT s$
NEXT
x=11:FOR t=1 TO 10
LINE (35,x)-(325,x+13),3,b:x=x+16
NEXT
GOSUB df
LOCATE 1,70:PRINT DATE$
LOCATE 3,50:PRINT "NOMBRE:"
LOCATE 3,58:PRINT nombre$
LOCATE 5,50:PRINT "N DE CAMPOS:"
LOCATE 5,64:PRINT cam
LOCATE 7,50:PRINT "N DE REGISTROS:"
LOCATE 7,66:IFF cam>0 THEN PRINT num ELSE PRINT " 0"
LOCATE 15,51:PRINT "DF0: DF1: RAM:"
FOR t=1 TO LEN (jo$)
LOCATE 4+t,78:PRINT MID$(jo$,t,1)
NEXT
GOSUB col
j:
LOCATE 1,1:PRINT TIME$
j=MOUSE(1):k=MOUSE(2)
IF MOUSE(0)<>0 THEN GOTO j1 :ELSE GOTO J
j1:
IF j>35 AND j<350 THEN j2
IF j>350 AND k>100 THEN j3
GOTO j:
IF j<450 THEN df$="df0:"
IF j>450 AND j<500 THEN df$="df1:"
IF j>500 THEN df$="RAM:"
GOSUB df:
GOTO j
j2:
IF k>12 AND k<25 THEN y=12:GOSUB sc:GOTO Crear
IF k>28 AND k<41 THEN y=28:GOSUB sc:GOTO Introducir
IF k>44 AND k<47 THEN y=44:GOSUB sc:GOTO Cargar
IF k>60 AND k<73 THEN y=60:GOSUB sc:GOTO Cerrar
IF k>74 AND k<89 THEN y=74:GOSUB sc:GOTO Ver
IF k>92 AND k<105 THEN y=92:GOSUB sc:GOTO Ordenar
IF k>108 AND k<121 THEN y=108:GOSUB sc:GOTO Borrar
IF k>124 AND k<137 THEN y=124:GOSUB sc:GOTO Buscar
IF k>140 AND k<153 THEN y=140:GOSUB sc:GOTO Cambiar
IF k>156 AND k<169 THEN y=156:GOSUB ssc:GOTO mengn
GOTO j
sc:
FOR t=1 TO 27
SCROLL (0,y-1)-(325,y+14),-13,0
NEXT
RETURN
Ordenar:
GOSUB col1:CLS:GOSUB col
ti$="ORDENACIÓN ALFABETICA"
IF cam=1 THEN c=1:GOTO mrs3
GOSUB campo:
mrs3:
CLS:LOCATE 12,1:n=num\2+(num/2-num\2)*2:n1=num\2
PRINT " CALCULANDO..."
FOR t=n1 TO 0 STEP -1
FOR t1=1 TO n+t3
IF UCASE$(ba$(t1,c))>UCASE$(ba$(t1+t,c)) THEN GOSUB inter
NEXT:t3=t3+1:NEXT:t3=0
GOSUB 20
GOTO men
inter:
FOR c7=1 TO cam
SWAP ba$(t1,c7),ba$(t1+t,c7)
NEXT:RETURN
Ver:
GOSUB col1:CLS:GOSUB col
WINDOW 3,,(0,128)-(631,179),0,1
PALETTE 2,.6,.47,.13
PALETTE 3,.53,.33,.0!
PAINT (1,1),2
x=45:y=13:co=3:GOSUB tri:y=43:GOSUB tri1
x=146:y=4:GOSUB tri:y=42:GOSUB tri1
y=14:GOSUB tri:y=52:GOSUB tri1:
y=7:x=233:GOSUB rect:y=49:GOSUB rect
y=11:x=247:GOSUB tri:y=43:GOSUB tri1
y=7:x=380:GOSUB tri2:x=327:GOSUB tri3
LOCATE 6,73:COLOR 3,2 :PRINT "F I N"
LINE (562,25)-(631,60),3,b
IF opp=0 THEN
cv=1:pv=1:opp=1
END IF
vv:
WINDOW OUTPUT 1
FOR t=pv TO pv+12
PRINT ba$(t,cv)
NEXT t:GOSUB 30
WINDOW OUTPUT 3:LOCATE 6,41 :PRINT UCASE$(cam$(cv)):WINDOW OUTPUT 1
re:
IF MOUSE(0)=0 THEN re
x=MOUSE(1):y=MOUSE(2)
IF x<100 AND y<30 AND num>12 AND pv>1 THEN pv=pv-1
IF x<100 AND y>30 AND num>12 AND pv<(num-12) THEN pv=pv+1
IF x>100 AND x<200 AND y>30 AND num>12 AND pv<=(num-22) THEN pv=pv+10
IF x>100 AND x<200 AND y<30 AND num>12 AND pv=>10 THEN pv=pv-10
IF x>200 AND x<300 AND y<30 AND num>12 THEN pv=1
IF x>200 AND x<300 AND y>30 AND num>12 THEN pv=num-12
IF x>300 AND x<380 AND y<30 AND cv>1 THEN cv=cv-1:WINDOW
OUTPUT 3:LOCATE 6,41:PRINT ":LOCATE
6,41:PRINT UCASE$(cam$(cv)):WINDOW OUTPUT 1
IF x>380 AND y<30 AND cv<cam THEN cv=cv+1:WINDOW OUTPUT
3:LOCATE 6,41:PRINT " ":LOCATE 6,41:PRINT
UCASE$(cam$(cv)):WINDOW OUTPUT 1
IF x>562 AND y>25 THEN f
CLS:FOR t=pv TO pv+12
PRINT ba$(t,cv)
NEXT t
IF MOUSE(0)=0 THEN GOTO re
GOTO re
f:
GOSUB 30
WINDOW CLOSE 3
WINDOW OUTPUT 1
GOTO men:
Buscar:
GOSUB col1:qw=1:CLS:GOSUB col
DIM mw$(num),mw(num)
ti$="BUSQUEDA DE REGISTROS"
IF cam=1 THEN c=1:GOTO mrs
GOSUB campo:
mrs:
CLS
PRINT " Cu 1 es el "cam$(c);:INPUT "";do$
IF do$="" THEN GOSUB 20:GOTO men
WHILE (po<>num)
po=po+1
IF UCASE$(ba$(po,c))=UCASE(do$) THEN pw=pw+1:mw(pw)=po
WEND
FOR t1=1 TO pw
FOR t2=1 TO cam
PRINT UCASE$(cam$(t2));": ";ba$(mw(t1),t2)
NEXT:jw=0:PRINT :NEXT
po=0:ERASE mw,mw$:pw=0
GOSUB 10:GOTO men
Cambiar:
GOSUB col1:qw=1:CLS:GOSUB col
vb1:
PRINT "Introduce "UCASE$(cam$(1))" del registro a cambiar":INPUT "",c$
IF c$="" THEN GOSUB 20:GOTO men
FOR t=1 TO num
IF UCASE$(ba$(t,1))=UCASE$(c$) THEN c=t:fl=1
NEXT:IF fl=0 THEN PRINT "No existe ese "cam$(1):GOTO vb1 ELSE fl=0
PRINT "Este es el registro que va a cambiar."
FOR t=1 TO cam
PRINT UCASE$(cam$(t));" ";ba$(c,c)
NEXT
INPUT"Introduce el campo que vas a cambiar";c$
IF c$="" THEN GOSUB 20:GOTO men
FOR t=1 TO cam
IF UCASE$(cam$(t))=UCASE(c$) THEN cf=t
NEXT
PRINT UCASE$(cam$(cf)):INPUT "",ba$(c,cf)
jw=0
GOSUB 20
GOTO men
Borrar:
GOSUB col1:qw=1:CLS:GOSUB col
vb:
PRINT "Introduce "UCASE$(cam$(1))" del registro a borrar":INPUT "",c$
IF c$="" THEN GOSUB 20:GOTO men
FOR t=1 TO num
IF UCASE$(ba(t,1))=UCASE(c$) THEN c=t:fl=1
NEXT:IF fl=0 THEN PRINT "No existe ese "cam$(1):GOTO vb ELSE fl=0
PRINT "Este es el registro que va a borrar."
FOR t=1 TO cam
PRINT UCASE$(cam$(t));" ";ba$(c,t)
NEXT
INPUT "Está seguro de que lo quiere borrar ";sn$:sn$=UCASE$(sn$)
IF sn$<>"SI" AND sn$<>"S" THEN GOSUB 10:GOTO men
FOR t=c TO num
FOR t1=1 TO cam
ba$(t,t1)=ba$(t+1,t1)
NEXt:NEXT
num=num-1
GOSUB 20:GOTO men
Crear:
IF qw>0 THEN GOTO j
GOSUB col1:qw=1:CLS:GOSUB col
INPUT"Nombre de la Base de Datos ",nombre$
IF nombre$="" THEN GOSUB 20:GOTO men
INPUT" Cuántos campos va a tener ";cam$
cam=VAL(cam$):ERASE cam$:DIM cam$(cam)
FOR t=1 TO cam
PRINT "Nombre del campo ";t;:INPUT"",cam$(t)
NEXT
DIM ba$(300,cam)
PRINT "Base de Datos "nombre$" creada."
GOSUB 20
GOTO men
Cerrar:
WINDOW 3,,(0,50)-(631,150),0,1
PRINT "Unidad:" df$
INPUT "Con qué nombre va a grabar los datos ?",nombre$
IF nombre$="" THEN GOSUB 20:WINDOW CLOSE 3:GOTO men
OPEN df$+nombre$+".bd" FOR OUTPUT AS 1
WRITE #1,cam
FOR t=1 TO cam :WRITE #1, cam$(t):NEXT
WRITE #1,num
FOR t=1 TO num
FOR t1=1 TO cam
WRITE #1,ba$(t,t1)
NEXT:NEXT
CLOSE #1:WINDOW CLOSE 3
GOSUB 30
GOTO men
Cargar:
IF qw=1 THEN GOTO j
qw=1
WINDOW 3,,(343,70)-(621,102),0,1
WIDTH 34
PRINT "Cargar una base de datos"
PRINT "Unidad "df$
LOCATE 3,1
48 INPUT "Nombre: ",nombre$
IF nombre$="" THEN
nombre$="":GOSUB 20:WINDOW OUTPUT 1
qw=0
WIDTH 79:GOTO men
END IF
OPEN df$+nombre$+",bd" FOR INPUT AS 1
INPUT #1,cam
FOR t=1 TO cam :INPUT #1,cam$(t):NEXT
INPUT #1,num:DIM ba$(400,cam)
FOR t=1 TO num
FOR t1=1 TO cam
INPUT #1,ba$(t,t1)
NEXT:NEXT
CLOSE #1
GOSUB 30
FOR t=1 TO 20
SCROLL (0,0)-(631,50),3,4
NEXT:COLOR 1,0
WINDOW CLOSE 3:WIDTH 79
GOTO men
Introducir:
IF qw=0 THEN j
GOSUB col1:CLS:GOSUB col
WHILE (XZ=0)
PRINT "Registro número "num+1
FOR t=1 TO cam
PRINT UCASE$(cam$(t)):INPUT " ",dato$
IF UCASE$(dato$)="" AND t=1 THEN xz=1:GOTO 13
ba$(num+1,t)=dato$
NEXT t:CLS:num=num+1
13 WEND
xz=0
68 IF MOUSE(0)<>0 then 68
GOTO men:
mengn:
GOSUB col1
CLS
RESTORE gn
FOR t=2 TO 7
LOCATE 3+t*2,22
READ s$
PRINT s$
NEXT
x=44:FOR t=1 TO 6
LINE (160,x)-(405,x+13),3,b
x=x+16
NEXT:RESTORE mp
GOSUB col
j9:
j=MOUSE(1):k=MOUSE(2)
IF MOUSE(0)=0 THEN GOTO j9 :ELSE: IF j<150 OR j>405 THEN j9
IF k>44 AND k<57 THEN x=44:GOSUB sc1:GOTO esta
IF k>60 AND k<73 THEN x=60:GOSUB sc1:GOTO Imprimir
IF k>76 AND k<89 THEN x=76:GOSUB sc1
IF k>92 AND k<105 THEN x=92:GOSUB sc1:GOTO Gl
IF k>108 AND k<121 THEN x=108:GOSUB sc1:GOTO Gp
IF k>124 AND k<137 THEN x=123:GOSUB sc1:GOSUB 30:GOTO men
GOTO j9
sc1:
FOR t=0 TO 39
SCROLL (160,x)-(640,x+14),13,0
NEXT
RETURN
esta:
GOSUB col1:CLS:GOSUB col1:
DIM fa((num)+90,2):fa((num)+2,2)=9999999999#:tanto=num*100
fa(1,2)=-9999999999#:fa(1,1)=0:ma=1:ma1=1:me=(num)+2
IF cam=1 THEN c=1:PRINT :PRINT " CALCULANDO ...":GOTO ew1
ti$="HOJA DE ESTADISTICA"
GOSUB campo
CLS:PRINT :PRINT " CALCULANDO..."
ew1:
WHILE (po<>num)
po=po+1
dato=VAL(ba$(po,c))
fa(po,2)=dato
sum=sum+dato
sum1=sum1+dato^2
WEND
FOR t1=1 TO po
FoR t=1 TO po
IF fa(t1,2)=fa(t,2) THEN fa(t1,1)=fa(t1,1)+1
NEXT:NEXT
CLS
LOCATE 3,50:PRINT "Suma: "sum
LOCATE 5,50:PRINT "Media aritmetica: "sum/(num)
LOCATE 7,50:PRINT "Media cuadratica: "SQR(sum1)
FOR t=1 TO p
IF fa(t,1)>fa(ma,1) THEN ma=t
IF fa(t,2)>fa(ma1,2) THEN ma1=t
IF fa(t,2)<fa(me,2) THEN me=t
NEXT
LOCATE 9,50:PRINT "Moda: "fa(ma,2)
LOCATE 11,50:PRINT "Recorrido: "fa(ma1,2)-fa(me,2)
WINDOW 5,"F.Relativa-Dato-F.Absoluta",(65,39)-(288,183),0,1
FOR t=1 TO po
FOR t1=t+1 TO po
IF fa(t,2)=fa(t1,2) THEN k=1
NEXT
IF k=1 THEN k=0:GOTO 418
bd=bd+1
fa$=STR$(fa(t,1)\tanto)+SPACE$(10-LEN(STR$(fa(t,1)\tanto)))
fa1$=STR$(fa(t,2))+SPACE$(6-LEN(STR$(fa(t,2))))
fa2$)STR$(fa(t,1))+SPCAE$(10-LEN(STR$(fa(t,1))))
PRINT fa$" "fa1$" "fa2$
IF bd/16=INT(bd/16) THEN bd=0:PRINT "-----ESPACIO-----";GOSUB 10:CLS
418 NEXT
PRINT " -----FIN-----"
GOSUB 20
WHILE (MOUSE(0)=0):WEND
bd=0
WINDOW CLOSE 5
po=0
ERASE fa:sum=0:sum1=0
GOTO mengn
Gp:
GOSUB col1:CLS:GOSUB col:k=0:po=0:tg=3:x3=1
PALETTE 2,.4,.5,1:n6=0
DIM fe$(num+5),fe(num+5)
IF cam=1 THEN c=1:PRINT :PRINT " CALCULANDO ...":GOTO ew3
ti$=GRAFICA PASTEL"
GOSUB campo
CLS:PRINT :PRINT " CALCULANDO..."
ew3:
WHILE (po<>num)
po=po+1:fe$(po)=ba$(po,c)
WEND
pi=3.141592
WINDOW 4,"Leyenda",(12,15)-(240,191),0,1:WINDOW OUTPUT 1
CIRCLE (430,100),150,1,,,.5
FOR t1=1 TO po
FOR t=1 TO po
IF fe$(t1)=fe$(t) THEN fe(t1)=fe(t1)+1
NEXT:NEXT
FOR t=1 TO po
FOR t1=t+1 TO po
IF fe$(t)=fe$(t1) THEN k=1
NEXT
IF k=1 THEN k=0:GOTO 563
n6=n6+(2*pi-(fe(t)/(num)*(pi*2)))
y6=COS(n6)*75:x6=SIN(n6)*150
LINE (430,100)-(x6+430,y6+100),1
563 NEXT:n5=.0174532
FOR t=1 TO po
FOR t1=t+1 TO po
IF fe$(t)=fe$t1) THEN k=1
NEXT:LOCATE 2,31:PRINT " "
IF k=1 THEN k=0:GOTO 564
n5=n5+(2*pi-(fe(t)/(num)*(pi*2))):xd=xd+1:d=INT(RND*60000&)
y4=COS(n5)*74:g(0)=INT(RND*10000):g(1)=INT(RND*20000)
x4=SIN(n5)*148:PATTERN d,g
WINDOW OUTPUT 4:PATTERN d,g
IF xd=21 THEN PRINT " ----ESPACIO----":GOSUB 10:CLS:xd=1
LINE (0,(xd-1)*8)-(24,((xd-1)*8)+8),tg,bf:y2=y2+16
LOCATE xd,x3+3:PRINT (fe(t)/(num)*100)"% " fe$(t)
WINDOW OUTPUT 1
PAINT (x4+430,y4+100),tg,1:IF tg=3 THEN tg=2 ELSE tg=3
564 NEXT:p=0
WINDOW OUTPUT 4
PRINT " -----FIN-----"
GOSUB 20
WHILE (MOUSE(0)=0):WEND
WINDOW CLOSE 4:xd=0
CLS
PATTERN -1,op
po=0
ERASE fe,fe$:sum=0:sum1=0
n=0:GOSUB 20:GOTO mengn
Gl:
GOSUB col1:CLS:GOSUB col
IF cam=1 THEN c=1:GOTO ew
ti$="GRAFICA LINIAL"
GOSUB campo:CLS
ew:
mayor=1
WHILE (po<>num)
po=po+1
er=VAL(ba$(po,c))
IF er>mayor THEN mayor=er
WEND:po=0
alt=75/mayor
an=600/(num)
PALETTE 2,.6,.6,.6
LINE (0,40)-(640,130),2,bf
WHILE (po<>num)
po=po+1:er=VAL(ba$(po,c)):er=er*alt
IF po=1 THEN er1=er:GOTO y
LINE (an*(po-1)-23,120,er1)-(an*(po)-23,120-er),3
y:
er1=er
WBND:po=0:er=0:er1=0:PATTERN -1,op
GOSUB 20
WHILE (MOUSE(0)=0):WEND
GOSUB 20
GOTO mengn
Imprimir:
GOSUB col1:CLS:GOSUB col:GOSUB 30
PRINT "IMPRIMIR"
LOCATE 10,15:PRINT "Por fichas":LOCATE 10,55:PRINT "Por lista"
LINE (320,0)-(320,200),3
mou:
IF MOUSE(0)=0 THEN mou
IF MOUSE(1)<320 THEN
OPEN "PRT:" FOR OUTPUT AS 2
CLS:PRINT " ESC para parar la impresión"
FOR t1=1 TO num
FOR t1=0 TO 1000:NEXT
FOR t=1 TO cam
IF INKEY$=CHR$(27) THEN PRINT #2,CHR$(27)"c":t1=num
PRINT #2,CHR$(27)+"[4m"+UCASE$(cam$(t))+CHR$(27)+"[24m"+": "+ba$(t1,t)
NEXT:PRINT #2,"":NEXT
94 CLOSE 2
END IF
IF MOUSE(1)>320 THEN
OPEN "PRT:" FOR OUTPUT AS 2
CLS:PRINT " ESC para parar la impresión"
PRINT #2,CHR$(27)+"E"
FOR t=1 TO cam
im1$=cam$(t)+SPCAE$((73/cam)-LEN(cam$(t)))
PRINT #2,UCASE$(im1$);
NEXT:PRINT #2,CHR$(27)+"E"+"------------------------------------"
FOR t=1 TO num
FOR t1=1 TO cam
IF INKEY$=CHR$(27) THEN PRINT #2,CHR$(27)"c":t1=num
IF LEN(ba$(t,t1))<(73/cam) THEN esp=73/cam-LEN(ba$(t,t1))
ELSE esp=1
im1$=LEFT$(ba$(t,t1),(73/cam)-1)+SPACE$(esp)
PRINT #2,im1$;
NEXT:PRINT #2,"":NEXT
94 CLOSE 2
END IF
GOSUB 30
GOTO mengn
10 IF INKEY$="" THEN 10
20 IF MOUSE(0)<>0 THEN 20
30 IF MOUSE(0)<>0 THEN 30
RETURN
derror:
IF (ERR=53) AND (ERL=48) THEN
color 3,0:BEEP:PRINT "Ese fichero no se encuentra en el disco."
PRINT :FILES df$:COLOR 1,0
RESUME 48
END IF
IF (ERR=57)THEN
PRINT "La impresora no esta ON LINE"
GOSUB 10
RESUME 94
END IF
IF (ERR=70) THEN
COLOR 3,0:BEEP:PRINT :PRINT"El disco que se encuentra en la unidad "df$" esta protegido"
PRINT "contra la escritura."
PRINT :PRINT "Si este es su disco de trabajo desprotejalo y pulse la barra espaciadora."
GOSUB 10
COLOR 1,0:RESUME
END IF |