10 CLEAR 49000 20 FOR n=1 TO 10 SAVE !STR$ nSCREEN$ NEXT n LET pant=1 30 LET TIPO=2 DIM a(2,100) DIM b(2,100) DEF FN r(n)=(INT (1000*n))/1000 LET b(2,10)=127 LET b(2,11)=87 LET b(2,20)=40 LET b(2,21)=40 LET b(2,22)=40 LET up=49000 40 RESTORE 40 FOR n=49100 TO 49113 READ a POKE n,a NEXT n DATA 237,75,104,191,237,91,106,191,42,108,191,237,176,201 DEF FN d(n)=(INT (100*n))/100 50 RESTORE 50 FOR n=49200 TO 49222 READ a POKE n,a NEXT n DATA 237,75,104,191,237,91,106,191,42,108,191,125,18,19,13,194,60,192,5,194,60,192,201 60 PAPER 0 INK 7 FLASH 0 OVER 0 BRIGHT 0 BORDER 0 CLS 70 PRINT AT 0,6;" ";AT 1,6;" ";AT 2,6;" ";AT 3,6;" "; INK 4;AT 5,6;" por GINES GM para" 80 PRINT AT 4,25; BRIGHT 1; PAPER 3; INK 0;"MICRO"; INK 7;AT 5,25;"HOBBY" 90 PRINT AT 5,0;'' INK 5+(2 AND TIPO=2);" 2-FUNCIONES EN 2 DIMENSIONES"'' INK 5+(2 AND TIPO=3);" 3-FUNCIONES EN 3 DIMENSIONES"; INK 6''" C-CAMBIAR-VER PARAMETROS"'' 100 PRINT INK 6;" R-REPRESENTAR FUNCION"''" S-SALVAR TABLA DE PARAMETROS"''" L-LEER TABLA DE PARAMETROS"''" E-EXPLICACIONES"''" A-CALCULOS AUXILIARES" 110 LET q$=INKEY$ IF q$="" THEN GO TO 110 120 IF q$="2" OR q$="3" THEN LET TIPO=VAL q$ GO TO 90 130 IF q$="A" OR q$="a" THEN GO TO 2110 140 IF q$="S" OR q$="s" THEN GO TO 2150 150 IF q$="L" OR q$="l" THEN GO TO 2190 160 IF q$="C" OR q$="c" THEN GO TO (200 AND tipo=2)+(600 AND tipo=3) 170 IF q$="R" OR q$="r" THEN GO TO (1060 AND tipo=2)+(1250 AND tipo=3) 180 IF q$="E" OR q$="e" THEN GO TO 1760 190 GO TO 110 200 PAPER 7 INK 0 BORDER 7 CLS LET i$="" 210 LET s$=("SI" AND a(1,100)=1)+("NO" AND a(1,100)=0) 220 PRINT AT 0,0;" FUNCION BIDIMENSIONAL";AT 1,19;"(RELLENO=";s$;")"'" f(x)="; GO SUB 2240 PRINT a$ 230 PRINT AT 5,0;" X minimo=";FN r(a(2,1))''" X maximo=";FN r(a(2,2))''" Puntos=";FN r(a(2,3)) 240 PRINT '" Y minimo=";FN r(a(2,4))''" Y maximo=";FN r(a(2,5)) GO SUB 250 GO TO 300 250 PRINT AT 15,0;" f(x) ! x "; OVER 1,AT 15,2;"_______________"; OVER 0;AT 16,1;FN a(a(2,1));" ";AT 16,11;" ";AT 16,9;"!";a(2,1) 260 PRINT AT 17,1;FN a((a(2,1)+a(2,2))/2);" ";AT 17,11;" ";AT 17,9;"!";(a(2,1)+a(2,2))/2;AT 17,11;AT 18,1;FN a(a(2,2));" ";AT 18,11;" ";AT 18,9;"!";a(2,2) 270 PRINT AT 5,22;"PUNTOS" FOR l=1 TO a(2,9) 280 PRINT AT 5+l,19;" ";AT 5+l,19;"P";l;"(";(INT (a(2,l*2+8)*10))/10; 290 PRINT ",";(INT (a(2,l*2+9)*10))/10;")" NEXT l PRINT AT 5+l,19;" " RETURN 300 PRINT AT 19,0;"V-Ver Coordenadas.M-Menu.B&P-Bo-rrar y poner nuevos puntos. ESPAC-Cambiar.ENTER-Introd.valor" LET i$="z" 310 RESTORE 520 320 FOR n=1 TO 7 READ c,f,d$ PRINT FLASH 1;AT c,f;d$ 330 IF INKEY$=i$ THEN GO TO 330 340 LET i$=INKEY$ IF i$="" THEN GO TO 340 350 IF i$="m" OR i$="M" THEN GO TO 60 360 IF i$="v" OR i$="V" THEN GO TO 530 370 IF i$=" " THEN PRINT FLASH 0;AT c,f;d$ PAUSE 20 NEXT n GO TO 310 380 IF i$=CHR$ 13 AND n=1 THEN LET a(1,100)=(1 AND a(1,100)=0) LET d$=("SI" AND a(1,100)=1)+("NO" AND a(1,100)=0) PRINT FLASH 1;AT c,f;d$ LET s$=d$ GO TO 330 390 IF i$=CHR$ 13 AND n=2 THEN INPUT "f(x)=";a$ PRINT AT 2,6;" "; FOR m=1 TO 17 PRINT " "; NEXT m LET a(1,1)=LEN a$ GO TO 410 400 GO TO 430 410 IF a(1,1)>0 AND a(1,1)<80 THEN FOR m=2 TO a(1,1)+1 LET a(1,m)=CODE a$(m-1) NEXT m PRINT AT 2,6; FLASH 1;a$ LET d$=a$ GO SUB 250 GO TO 330 420 INPUT "f(x) NO VALIDO (PULSE ENTER)"; LINE o$ GO TO 390 430 IF i$=CHR$ 13 THEN GO SUB 490 PRINT AT c,f;" ";AT c,f; FLASH 1;a(2,n-2) LET d$=STR$ a(2,n-2) GO SUB 250 GO TO 330 440 IF (i$="p" OR i$="P") AND a(2,9) <12 THEN LET a(2,9)=a(2,9)+1 INPUT ("P";a(2,9);"(x,y) x= ");px;" y= ";py LET a(2,a(2,9)*2+8)=px LET a(2,a(2,9)*2+9)=py LET a(2,9)=a(2,9)-(1 AND (ABS px>10000 OR ABS py>10000)) GO SUB 270 GO TO 330 450 IF (i$="b" OR i$="B") AND a(2,9)>0 THEN INPUT "PUNTO A BORRAR ";pb GO TO 470 460 GO TO 330 470 IF pb<>INT pb OR pb > a(2,9) OR pb<1 THEN GO TO 450 480 FOR w=pb TO a(2,9) LET a(2,w*2+8)=a(2,w*2+10) LET a(2,w*2+9)=a(2,w*2+11) NEXT w LET a(2,9)=a(2,9)-1 GO SUB 270 GO TO 330 490 IF n=5 THEN INPUT "Puntos de la funcion= ";pun LET a(2,3)=pun IF pun<1 OR pun>10000 OR pun<>INT pun THEN GO TO 490 500 IF n<>5 THEN LET z$=" " FOR l=1 TO 9 LET z$(l)=SCREEN$ (c,l) NEXT l INPUT (z$+" ");p LET a(2,n-2)=FN r(p) IF p>10000 OR p<-10000 THEN GO TO 500 510 RETURN 520 DATA 1,28,s$,2,6,a$,5,10,STR$ a(2,1),7,10,STR$ a(2,2),9,8,STR$ a(2,3),11,10,STR$ a(2,4),13,10,STR$ a(2,5) 530 CLS IF a(2,1)>=a(2,2) OR a(2,4)>=a(2,5) THEN PRINT FLASH 1;"COORDENADAS MAL DEFINIDAS" GO SUB 2100 GO TO 200 540 CLS LET a=a(2,1) LET b=a(2,2) LET c=a(2,4) LET d=a(2,5) LET x0=255*a/(a-b) LET y0=170*c/(c-d) IF x0>0 AND x0<255 THEN PLOT x0,0 DRAW 0,170 550 IF y0>0 AND y0<170 THEN PLOT 0,y0 DRAW 255,0 560 FOR n=INT a TO INT b LET e=x0+n*(255/(b-a)) IF e>=2 AND y0>2 THEN PLOT e,y0 DRAW 0,-2 570 NEXT n FOR n=INT c TO INT d LET e=y0+n*(170/(d-c)) IF e>=2 AND x0>2 THEN PLOT x0,e DRAW -2,0 580 NEXT n GO SUB 2100 GO TO 200 590 PAUSE 0 RETURN 600 PAPER 7 INK 0 BORDER 7 CLS LET i$="" 610 LET s$=("SI" AND b(1,100)=1)+("NO" AND b(1,100)=0) 620 PRINT AT 0,0;" FUNCION TRIDIMENSIONAL";AT 1,19;"(RELLENO=";s$;")"'" z(s,t)="; GO SUB 2280 PRINT a$ 630 PRINT AT 5,0;"S minimo=";FN r(b(2,1));AT 5,16;"S maximo=";FN r(b(2,2));AT 7,0;"T minimo=";FN r(b(2,3));AT 7,16;"T maximo=";FN r(b(2,4)) 640 PRINT AT 10,1;"Intervalos en S=";b(2,5);AT 10,21;"Puntos=";b(2,6);AT 12,1;"Intervalos en T=";b(2,7);AT 12,21;"Puntos=";b(2,8) LET n=0 650 LET a=b(2,1) LET b=b(2,2) LET c=(a+b)/2 LET d=b(2,3) LET e=b(2,4) LET f=(d+e)/2 660 PRINT AT 14,3;" z(s,t) ! s ! t ";AT 14,3; OVER 1;"________________________" FOR m=15 TO 19 PRINT AT m,3;" " NEXT m 670 PRINT AT 15,3;FN r(FN z(b,e));AT 15,11;"!";b;AT 15,19;"!";e;AT 16,3;FN r(FN z(b,d));AT 16,11;"!";b;AT 16,19;"!";d 680 PRINT AT 17,3;FN r(FN z(a,e));AT 17,11;"!";a;AT 17,19;"!";e;AT 18,3;FN r(FN z(a,d));AT 18,11;"!";a;AT 18,19;"!";d;AT 19,3;FN r(FN z(c,f));AT 19,11;"!";c;AT 19,19;"!";f IF n>0 THEN RETURN 690 PRINT AT 20,0;"V-Ver coordenadas.M-Menu. ESPAC-Cambiar.ENTER-Introd.valor" 700 RESTORE 1030 FOR n=1 TO 10 READ co,fi,d$ PRINT FLASH 1;AT co,fi;d$ 710 IF INKEY$=i$ THEN GO TO 710 720 LET i$=INKEY$ IF i$="" THEN GO TO 720 730 IF i$=" " THEN PRINT FLASH 0;AT co,fi;d$ PAUSE 20 NEXT n GO TO 700 740 IF i$="m" OR i$="M" THEN GO TO 60 750 IF i$="v" OR i$="V" THEN LET s=0 GO TO 870 760 IF i$=CHR$ 13 AND n=1 THEN LET b(1,100)=(1 AND b(1,100)=0) LET d$=("SI" AND b(1,100)=1)+("NO" AND b(1,100)=0) PRINT FLASH 1;AT co,fi;d$ LET s$=d$ GO TO 710 770 IF i$=CHR$ 13 AND n=2 THEN INPUT "z(s,t)=";a$ PRINT AT 2,8;" "; FOR m=1 TO 17 PRINT " "; NEXT m LET b(1,1)=LEN a$ GO TO 790 780 GO TO 810 790 IF b(1,1)>0 AND b(1,1)<70 THEN FOR m=2 TO b(1,1)+1 LET b(1,m)=CODE a$(m-1) NEXT m PRINT AT 2,8; FLASH 1;a$ LET d$=a$ GO SUB 650 GO TO 710 800 INPUT " z(s,t) MAL DEFINIDO ";w$ GO TO 770 810 IF i$=CHR$ 13 AND n>2 AND n<7 THEN LET z$=" " FOR m=9 TO 1 STEP -1 LET z$(10-m)=SCREEN$ (co,fi-m) NEXT m INPUT (" "+z$+" ");m LET m=FN d(m) IF m>1000 OR m<-1000 THEN GO TO 810 820 IF i$=CHR$ 13 AND n=7 OR n=9 THEN LET z$=SCREEN$ (co,fi-2) INPUT ("Intervalos en "+z$+"= ");m LET m=INT m IF m<1 OR m>30 THEN GO TO 820 830 IF i$=CHR$ 13 AND (n=8 OR n=10) THEN LET z$=SCREEN$ (co,fi-13) INPUT ("Puntos en "+z$+"= ");m LET m=INT m IF m<2 OR m>1000 THEN GO TO 830 840 IF i$=CHR$ 13 THEN LET b(2,n-2)=m LET d$=STR$ m PRINT AT co,fi;" "+(" " AND n<7);AT co,fi; FLASH 1;d$ IF n>1 AND n<7 THEN GO SUB 650 GO TO 710 850 IF i$=CHR$ 13 THEN GO TO 710 860 GO TO 710 870 CLS LET x0=INT b(2,10) LET y0=INT b(2,11) PLOT x0,y0 DRAW 255-x0,0 880 IF y0<173 THEN FOR m=x0 TO 254 STEP b(2,20) PLOT m,y0 DRAW 0,2 NEXT m 890 PLOT x0,y0 DRAW 0,175-y0 900 IF x0<254 THEN FOR m=y0 TO 174 STEP b(2,21) PLOT x0,m DRAW 2,0 NEXT m 910 LET z0=(-x0 AND x0 < y0)-(y0 AND y0<=x0) PLOT x0,y0 DRAW z0,z0 920 FOR m=-z0 TO 0 STEP -b(2,22) LET xz=(x0-y0)+m 930 IF xz>0 AND xz<254 THEN PLOT xz,m DRAW 2,0 940 NEXT m IF s=1 THEN RETURN 950 PRINT AT 0,INT (x0/8);"z";AT INT 21-(y0/8),31;"y";AT 21,0;"x";#0;"x,y,z-Cambiar max y min.M-Volver" 960 LET q$=INKEY$ 970 IF q$="m" OR q$="M" THEN GO TO 600 980 IF q$="y" OR q$="Y" THEN LET q$="y" INPUT "y minimo=";ymi INPUT "y maximo=";yma IF ymi>=0 OR yma<=0 THEN GO TO 980 990 IF q$="z" OR q$="Z" THEN LET q$="z" INPUT "z minimo=";zmi INPUT "z maximo=";zma IF zmi>=0 OR zma<=0 THEN GO TO 990 1000 IF q$="x" OR q$="X" THEN LET q$="x" INPUT "x maximo=";xma IF xma<=0 THEN GO TO 1000 1010 IF q$="y" THEN LET b(2,20)=255/(yma-ymi) LET b(2,10)=-ymi*b(2,20) GO TO 870 1020 IF q$="z" THEN LET b(2,21)=175/(zma-zmi) LET b(2,11)=-zmi*b(2,21) GO TO 870 1030 IF q$="x" THEN LET b(2,22)=-z0/xma GO TO 870 1040 GO TO 960 1050 DATA 1,28,s$,2,8,a$,5,9,STR$ b(2,1),5,25,STR$ b(2,2),7,9,STR$ b(2,3),7,25,STR$ b(2,4),10,17,STR$ b(2,5),10,28,STR$ b(2,6),12,17,STR$ b(2,7),12,28,STR$ b(2,8) PAUSE 200 GO TO 600 1060 PAPER 7 BORDER 7 INK 0 CLS IF a(2,1)>=a(2,2) OR a(2,4)>=a(2,5) THEN PRINT FLASH 1;"CORDENADAS MAL DEFINIDAS" GO SUB 2100 GO TO 60 1070 IF a(2,3)<1 THEN PRINT FLASH 1;"DEMASIADOS POCOS PUNTOS" GO SUB 2100 GO TO 60 1080 LET a=a(2,1) LET b=a(2,2) LET c=a(2,4) LET d=a(2,5) LET x0=255*a/(a-b) LET y0=170*c/(c-d) 1090 INPUT "QUIERES MEZCLAR CON LA ULTIMAPANTALLA (s/n) "; LINE o$ IF o$="s" OR o$="S" THEN LET u=(pant-1 AND pant>1)+(10 AND pant=1) LOAD !STR$ uCODE 1100 IF x0> 0 AND x0 < 255 THEN PLOT x0,0 DRAW 0,170 1110 IF y0 > 0 AND y0 < 170 THEN PLOT 0,y0 DRAW 255,0 1120 LET esx=255/(b-a) LET esy=170/(d-c) GO SUB 2240 1130 FOR n=INT a TO INT b 1140 IF x0+n*esx>=2 AND y0 > 2 THEN PLOT x0+n*esx,y0 DRAW 0,-2 1150 NEXT n FOR n=INT c TO INT d 1160 IF y0+n*esy>=2 AND x0>2 THEN PLOT x0,y0+n*esy DRAW -2,0 1170 NEXT n FOR n=1 TO a(2,9) LET x=a(2,2*n+8) LET y=a(2,2*n+9) IF x0+x*esx > 0 AND x0+x*esx < 255 AND y0 + y*esy > 0 AND y0+ y*esy < 170 THEN PLOT x0+x*esx,y0+y*esy 1180 NEXT n LET f=a(2,3)-1 LET hx2=-2 LET hy2=-2 1190 LET e=(b-a)/f FOR x=a TO b STEP e 1200 LET tfr=FN a(x) LET hx=INT (x0+x*esx) LET hy =INT (y0+ esy*tfr) 1210 IF hx > 0 AND hx< 255 AND hy>0 AND hy< 170 THEN PLOT hx,hy IF a(1,100)=1 THEN IF hy2>0 AND hy2<175 AND hx2>0 AND hx2<255 THEN DRAW hx2-hx,hy2-hy 1220 LET hx2=hx LET hy2=hy 1230 NEXT x 1240 GO TO 2030 1250 PAPER 7 BORDER 7 INK 0 CLS 1260 LET x0=b(2,10) LET y0=b(2,11) LET unoy=b(2,20) LET unoz=b(2,21) LET unox=b(2,22) GO SUB 2280 DEF FN z(s,t)=VAL a$ LET smi=b(2,1) LET sma=b(2,2) 1270 LET inters=b(2,5) LET spun=b(2,6) LET tmi=b(2,3) LET tma=b(2,4) LET intert=b(2,7) LET tpun=b(2,8) 1280 LET rx=x0+unoy*tmi-unox*sma LET rrx=x0+unoy*tma-unox*smi LET rx=(rx AND rx>0) IF rrx>255 THEN LET rrx=256 1290 LET totalpun=INT (rrx+.5)-INT (rx+.5)+2 1300 IF smi>=sma OR tmi>=tma THEN PRINT FLASH 1;"PLANO MAL DEFINIDO" GO SUB 2100 GO TO 60 1310 IF tpun*spun*intert*inters=0 THEN PRINT FLASH 1;"DEMASIADOS POCOS PUNTOS" GO SUB 2100 GO TO 60 1320 INPUT "QUIERES VER LOS EJES DE COORDENADAS?(s/n)"; LINE q$ 1330 IF q$<>"n" AND q$<>"N" THEN LET s=1 GO SUB 870 LET s=0 LET s1=0 1340 POKE up+2,148 POKE up+3,192 POKE up+1,63 POKE up,107 POKE up+4,0 RANDOMIZE USR 49200 1350 LET an=(49300+(inters+1)*totalpun)/256 POKE up+2,(an-INT an)*256 POKE up+3,INT an LET an=((inters+2)*totalpun)/256 POKE up+1,INT an POKE up,(an-INT an)*256 POKE up+4,175 RANDOMIZE USR 49200 1360 LET rx=(x0+unoy*tmi-unox*sma) LET rx=(rx AND rx>0) 1370 FOR n= 0 TO inters 1380 LET nn = sma - n*(sma-smi)/inters LET s2=0 1390 FOR m= tmi TO tma STEP (tma-tmi)/(spun-1) 1400 LET vx= nn LET vy= m LET vz=FN z(nn,m) 1410 LET xx= x0+ unoy*vy- unox*vx 1420 LET yy=INT ( y0+ unoz*vz- unox*vx+.5) 1430 IF xx <0 OR xx> 255 OR yy <0 OR yy>175 THEN GO TO 1490 1440 IF yy<0 THEN POKE (49300+(inters+1+n)*totalpun+punto),0 GO TO 1490 1450 IF yy>175 THEN POKE (49300+n*totalpun+punto),175 GO TO 1490 1460 LET punto =INT (xx-rx+.5) 1470 LET an=49300+n*totalpun+punto IF PEEK an<=yy THEN PLOT xx,yy POKE an, yy LET s1=1 IF s2=1 AND b(1,100)=1 THEN DRAW xx2-xx,yy2-yy 1480 LET an=49300+(inters+1+n)*totalpun+punto IF PEEK an>=yy THEN PLOT xx,yy POKE an, yy LET s1=1 IF s2=1 AND b(1,100)=1 THEN DRAW xx2-xx,yy2-yy 1490 LET xx2=xx LET yy2=yy LET s2=s1 LET s1=0 NEXT m 1500 IF n= inters THEN GO TO 1580 1510 LET reg=0 LET i$=INKEY$ IF i$=" " THEN INPUT "M-Menu G-Guardar S-Seguir: "; LINE i$ IF i$="M" OR i$="m" THEN GO TO 60 1520 IF i$="G" OR i$="g" THEN LET reg=1440 GO TO 2040 1530 LET an=totalpun/256 POKE up+1,INT an POKE up,(an-INT an)*256 1540 LET an=((49300+(n+1)*totalpun)/256) POKE up+3,INT an POKE up+2,(an-INT an)*256 1550 LET an=((49300+n*totalpun)/256) POKE up+5,INT an POKE up+4,(an-INT an)*256 RANDOMIZE USR 49100 1560 LET an=((49300+(inters+n+2)*totalpun)/256) POKE up+3,INT an POKE up+2,(an-INT an)*256 1570 LET an=((49300+(inters+n+1)*totalpun)/256) POKE up+5,INT an POKE up+4,(an-INT an)*256 RANDOMIZE USR 49100 1580 NEXT n 1590 FOR m= 0 TO intert 1600 LET mm = tma - m*(tma-tmi)/intert LET s2=0 1610 FOR n= smi TO sma STEP (sma-smi)/(tpun-1) 1620 IF (inters*(n-smi)/(sma-smi))=INT (inters*(n-smi)/(sma-smi)) THEN LET jota= inters*(n-smi)/(sma-smi) GO TO 1640 1630 LET jota=INT (inters*(n-smi)/(sma-smi))+1 1640 LET vx= n LET vy= mm LET vz=FN z(n,mm) 1650 LET xx= x0+ unoy*vy- unox*vx 1660 LET yy=INT ( y0+ unoz*vz- unox*vx+.5) 1670 IF xx <0 OR xx> 255 OR yy <0 OR yy>175 THEN GO TO 1710 1680 LET punto =INT (xx+.5)-INT (rx+.5) 1690 IF PEEK (49300+(inters-jota)*totalpun+punto)<=yy THEN PLOT xx,yy LET s1=1 IF s2=1 AND b(1,100)=1 THEN DRAW xx2-xx,yy2-yy 1700 IF yy<=PEEK (49300 +(2*inters+1-jota)*totalpun+punto) THEN PLOT xx,yy LET s1=1 IF s2=1 AND b(1,100)=1 THEN DRAW xx2-xx,yy2-yy 1710 LET xx2=xx LET yy2=yy LET s2=s1 LET s1=0 NEXT n 1720 LET reg=0 LET i$=INKEY$ IF i$=" " THEN INPUT "M-Menu G-Guardar S-Seguir: "; LINE i$ IF i$="M" OR i$="m" THEN GO TO 60 1730 IF i$="G" OR i$="g" THEN LET reg=1630 GO TO 2040 1740 NEXT m 1750 GO TO 2030 1760 PAPER 7 BORDER 7 INK 0 CLS 1770 PRINT INVERSE 1;" =EXPLICACIONES= "' INVERSE 0'" ESTE PROGRAMA TE PERMITE REPRE-SENTAR FUNCIONES DIMENSIONALES DEL TIPO f(x)=y, Y FUNCIONES TRIDIMENSIONALES O SUPERFICIES DEL TIPO f(x,y)=z." 1780 PRINT "ADEMAS PODEMOS SALVAR Y LEER LOSDATOS QUE DEFIMEN UNA FUNCION.LAINFORMACION SE GRABA EN FORMA DEMATRIZ A(2,100) Y B(2,100) PARA FUNCIONES DE 2 Y 3 DIMENSIONES RESPECTIVAMENTE." 1790 PRINT BRIGHT 1'" -OPCIONES DEL PROGRAMA-"' BRIGHT 0'"2-3-PULSANDO ESTAS TECLAS ELEGI-MOS EL TIPO DE FUNCION CON LA QUE TRABAJAMOS,EN 2 O 3D,LA CUALAPARECE EN COLOR BLANCO." 1800 GO SUB 2100 1810 PRINT BRIGHT 1;" -OPCIONES DEL PROGRAMA- "' BRIGHT 0'"C-SIRVE PARA METER LOS PARAME-TROS QUE DEFINEN UNA FUNCION.NO PODEMOS REPRESENTAR UNA FUNCION SIN PASAR POR ESTA OPCION E IN-TRODUCIR LOS DATOS NECESARIOS." 1820 PRINT '"R-INICIAMOS LA REPRESENTACION DELA FUNCION,CUYA DURACION DEPENDEDEL NUMERO TOTAL DE PUNTOS.EN 2DPODEMOS MEZCLAR EL DIBUJO DE LA FUNCION CON LA ULTIMA PANTALLA SALVADA EN MEMORIA."; 1830 PRINT " EN 3D ES OP-TATIVA LA REPRESENTACION DE LOS EJES DE COORDENADAS QUE A VECES PUEDEN AYUDARNOS A ENTENDER LA FUNCION,PERO TAMBIEN PUEDEN MO- LESTAR." GO SUB 2100 1840 PRINT BRIGHT 1;" -OPCIONES DEL PROGRAMA- "' BRIGHT 0'"S-SALVAMOS EN EL CASSETTE CON ELNOMBRE QUE QUERAMOS LA INFOR-MACION QUE DEFINE UNA FUNCION.ELPROGRAMA A\ADE AL NOMBRE UN 3 O UN 2 SEGUN EL TIPO DE FUNCION U-TILIZADA." 1850 PRINT '"L-OPCION DE LECTURA DE LA INFOR-MACION.AL INTRODUCIR EL NOMBRE NO ES NECESARIO PONER EL 2 O EL 3 QUE SE A\ADIO AUTOMATICAMENTE." 1860 PRINT '"E-EXPLICACIONES SOBRE EL MODO DETRABAJAR DEL PROGRAMA."''"A-ESTA OPCION TIENE LA FUNCION DE UNA CALCULADORA.INTRODUCIMOS OPERACIONES Y EL ORDENADOR NOS DA EL RESULTADO.CON ""M"" VOLVEMOSAL MENU." GO SUB 2100 1870 PRINT BRIGHT 1;"DATOS DE UNA FUNCION EN 2 DIMEN."' BRIGHT 0'" f(x)-ES LA FUNCION A REPRESEN- TAR.DEPENDE DE x, ES DECIR SERIAVALIDO POR EJEMPLO "" SIN x"" O "" x*2-x*x "" PERO NO "" SIN y"" O ""y-x""" 1880 PRINT '" MAXIMOS Y MINIMOS DE x E y- ES-TOS VALORES DEFINEN LOS EJES DE COORDENADAS.SEGUN SEAN PODREMOS VER LA FUNCION MAS CERCANA,MAS ALARGADA,ECT." 1890 PRINT '"Puntos-(CON MINUSCULAS)ES EL NU-MERO DE VALORES QUE DAMOS A LA FUNCION PARA REPRESENTAR EN PAN-TALLA COMO PUNTOS. NO TODOS HAN DE ENTRAR EN ELLA.EL NUMERO ACONSEJADO ES 100-200.DE EL DEPENDE LA DURACION Y LA CALIDAD DEL DI-BUJO." 1900 GO SUB 2100 1910 PRINT BRIGHT 1;"DATOS DE UNA FUNCION EN 2 DIMEN."' BRIGHT 0'"RELLENO-PUEDE ESTAR O NO ACTIVA-DO . DIBUJA UNA LINEA ENTRE LOS DOS ULTIMOS PUNTOS . AYUDA A LAREPRESENTACION PERO ES UNA SIM-PLE APROXIMACION." 1920 PRINT '" ADEMAS DE LA FUNCION PODEMOS DIBUJAR EN PANTALLA PUNTOS DEL TI-PO P(x,y),HASTA UN TOTAL DE 12." GO SUB 2100 1930 PRINT BRIGHT 1;"DATOS DE UNA FUNCION EN 3 DIMEN."' BRIGHT 0'" z(s,t)-FUNCION A DIBUJAR.DEPEN-DE DE s Y t.EQUIVALE a z(x,y)."''"Maximos y Minimos de s y t-DEFI-NEN EL PLANO EN EL QUE REPRESEN-TAMOS LA FUNCION (NO LOS EJES DECOORDENADAS) . s SE CORRESPONDE CON x Y t CON y. "; 1940 PRINT "PARA PODER VER LA FUNCION EL PLANO TIENE QUEESTAR DENTRO DE LOS EJES DE CO- ORDENADAS." 1950 PRINT '"Intervalos en s y en t-LA REPRE-SENTACION EN 3D SE REALIZA DIBU-JANDO UN NUMERO DE LINEAS QUE VAN DE s Maxim A s Minim E IGUALCON t . INTERVALO ES EL ESPACIO ENTRE 2 LINEAS. POR LO TANTO nu-mero de LINEAS=INTERVALOS + 1.ELNUMERO MAXIMO DE INTERVALOS=30" GO SUB 2100 1960 PRINT BRIGHT 1;"DATOS DE UNA FUNCION EN 3 DIMEN."' BRIGHT 0'"Puntos en s Y en t-ES EL NUMERO DE VALORES A DAR EN CADA LINEA ,COMO EN 2D."''"RELLENO-SIMILAR AL RELLENO DE 2D" 1970 PRINT '" PARA FIJAR LOS EJES DE COORDENADAS TENEMOS QUE PULSAR ""V"" (ES- TANDO EN LA OPCION C DEL MENU) YLUEGO EL EJE (x,y o z)A CAMBIAR.EL EJE x,EL OBLICUO,QUEDA CONDI-CIONADO POR LOS OTROS DOS,POR LOQUE EL PROGRAMA SOLO NOS PIDE ELx Maximo." GO SUB 2100 1980 PRINT BRIGHT 1;" ADVERTENCIAS "; BRIGHT 0'" EN 2D Y 3D SE NOS OFRECE UNA TABLA DE PUNTOS COMO EJEMPLOS PARAAYUDARNOS EN LA DEFINICION DE LOS EJES DE COORDENADAS." 1990 PRINT '" AL ESCRIBIR LAS FUNCIONES f(x) O z(s,t) NO PODEMOS ESCRIBIR LE-TRA A LETRA PALABRAS COMO SIN,AND, ATN O INCLUSO >= SINO QUE DE-BEMOS USAR LAS PALABRAS CLAVE DEL ORDENADOR." 2000 PRINT '"SI COMETES ALGUN ERROR COMO UNA DIVISION POR 0, UNA POTENCIACIONCON BASE O EXPONENTE NEGATIVO ELPROGRAMA SE PARARA . PARA VOLVERPONDREMOS GO TO 60" 2010 PRINT '" EN 48K NO SE PUEDEN GUARDAR PANTALLAS EN MEMORIA.HAY QUE QUITAR LAS LINEAS 20,1090 Y 2060" 2020 GO SUB 2100 GO TO 60 2030 PRINT #0;"PULSE UNA TECLA PARA SEGUIR" PAUSE 0 2040 PRINT OVER 1;AT 21,0;"GUARDAR EN : (M-SEGUIR C-COLOR)" INPUT "1-MEMORIA 2-CINTA 3-IMPRES. "; LINE o$ IF o$="M" OR o$="m" THEN PRINT OVER 1;AT 21,0;"GUARDAR EN : (M-SEGUIR C-COLOR)" GO TO 60+reg 2050 PRINT OVER 1;AT 21,0;"GUARDAR EN : (M-SEGUIR C-COLOR)" 2060 IF o$="1" THEN LET pant=1+(pant AND pant<10) ERASE !STR$ pant SAVE !STR$ pantSCREEN$ 2070 IF o$="2" THEN INPUT "NOMBRE DEL DIBUJO: "; LINE a$ LET a$=(a$+" ")( TO 10) SAVE a$SCREEN$ INPUT "VERIFICAR?(s/n) "; LINE o$ IF o$="s" THEN OVER 1 PRINT AT 1,0;"Bytes: ";a$;AT 0,0; VERIFY a$SCREEN$ OVER 0 2080 IF o$="3" THEN REM Pon aqui el copy de tu impresora 2085 IF o$="C" OR o$="c" THEN INPUT "PAPEL: ";a;" TINTA: ";b PAPER a BORDER a INK b FOR u=0 TO 21 PRINT OVER 1;AT u,0;" " NEXT u 2090 GO TO 2040 2100 PRINT #0;"PULSE UNA TECLA PARA SEGUIR" PAUSE 0 CLS RETURN 2110 PAPER 7 BORDER 7 INK 0 CLS PRINT AT 20,0;"M-MENU";AT 0,0;"=CALCULOS AUXILIARES="' 2120 INPUT "OPERACIONES = "; LINE o$ IF o$="M" OR o$="m" THEN GO TO 60 2130 IF o$="" THEN GO TO 2120 2140 PRINT o$;" = ";VAL o$ GO TO 2120 2150 PAPER 7 BORDER 7 INK 0 CLS INPUT "NOMBRE:"; LINE a$ LET a$=(a$+" ")( TO 10) LET a$(10)=STR$ tipo PRINT "SALVANDO MATRIZ """;a$;"""" 2160 IF tipo=3 THEN SAVE a$ DATA b() INPUT "VERIFICAR (s/n) "; LINE o$ IF o$="s" OR o$="S" THEN VERIFY a$ DATA b() PRINT "CORRECTO" 2170 IF tipo=2 THEN SAVE a$ DATA a() INPUT "VERIFICAR (s/n) "; LINE o$ IF o$="s" OR o$="S" THEN VERIFY a$ DATA a() PRINT "CORRECTO" 2180 PAUSE 200 GO TO 60 2190 PAPER 7 BORDER 7 INK 0 CLS 2200 INPUT "FICHERO A LEER:"; LINE a$ LET a$=(a$+" ")( TO 10) LET a$(10)=STR$ tipo PRINT "LEYENDO MATRIZ """;a$;"""" 2210 IF tipo=3 THEN LOAD a$ DATA b() 2220 IF tipo=2 THEN LOAD a$ DATA a() 2230 PRINT "CORRECTO" PAUSE 200 GO TO 60 2240 LET a$="" FOR n=2 TO a(1,1)+1 2250 LET a$=a$+CHR$ (a(1,n)) 2260 NEXT n IF a$="" THEN LET a$="0" 2270 DEF FN a(x)=VAL (a$) RETURN 2280 LET a$="" FOR n=2 TO b(1,1)+1 2290 LET a$=a$+CHR$ (b(1,n)) NEXT n IF a$="" THEN LET a$="0" 2300 DEF FN z(s,t)=VAL (a$) RETURN