2 ONERRORGOTO12550:'WWW.AGRIMENSORES.COM.UY 5 CLS:ANGLE0:DEFCHR$(255)="7432524438":DEFCHR$(254)="3844523274":DIMy(2):GOTO15 10 WRITE#"[ib] 0 0","[fb]" 15 RESTORE#:RESTORE#"[ib]",1,10:CFC=INT(FRE(1)/5250):IFCFC=0;CFC=1:CFP=INT((FRE(1)-50)/35)ELSECFP=150+FIX((FRE(1)-CFC*5250)/35/CFC) 18 PRINT"MT-BASE 6"TAB(17"Capacidad RAM "CFP*CFC"PUNTOS "CFC"CAPAS de"CFP 20 INDICE=10210:GOSUB1900:ONp GOTO40,50,1600,80,90 40 INDICE=10211:GOSUB1900:ONp GOSUB121,130,425,1330,20:GOTO40 50 INDICE=10212:GOSUB1900:ONp GOSUB1200,70,235,980,20:GOTO50 70 INDICE=10214:GOSUB1900:ONp GOSUB625,840,50:GOTO70 80 INDICE=10215:IA$="E":edi=11100:cn=0:Vi=0:GOSUB1900:ONp GOSUB11000,13000,11940,12100,11900,11920,20:GOTO80 90 END 100 PRINTTAB(0"Punto de la base ?"TAB(27"Si:E"; 105 IFINPUT$(1)="E";cn=1:GOSUB11000:IFl=0AND lmn=0;GOTO110 ELSE RETURN 110 PRINTTAB(0"Punto externo a la Base"TAB(0"x :"RND(PX,-3);:INPUTPX:PRINT"y :"RND(PY,-3);:INPUTPY 115 IFIA$="E";PRINT"z :"RND(PZ,-3);:INPUTPZ 120 RETURN 121 INDICE=10221:GOSUB1900:ONp GOSUB1690,122,125,40:GOTO121 122 PRINTTAB(0"angulo a :"DMS$(aA;:INPUTaA:PRINT"lado b :"RND(lb,-3);:INPUTlb:PRINT"lado c :"RND(lc,-3);:INPUTlc 123 ela=SQR(lb^2+lc^2-2*lb*lc*COSaA):GOTO127 125 PRINTTAB(0"lado a :"RND(ela,-3);:INPUTela:PRINT"lado b :"RND(lb,-3);:INPUTlb:PRINT"lado c :"RND(lc,-3);:INPUTlc 126 aA=ACS((lb^2+lc^2-ela^2)/(2*lb*lc)) 127 Sl=(lc*lb*SINaA)/2:ha=2*Sl/ela:PRINT"ANG A:"DMS$(aA;TAB(18"a:";RND(ela,-3);TAB(0"AREA:";RND(Sl,-5);TAB(18"ha:";RND(ha,-3) 128 RETURN 130 INDICE=10217:GOSUB1900:ONp GOSUB180,135,40:GOTO130 135 PRINT"RECTA"TAB(22"1er PUNTO";:PX=X0:PY=Y0:GOSUB100 140 X0=PX:Y0=PY:PRINTTAB(0"2do PUNTO";:PX=X1:PY=Y1:GOSUB100 145 X1=PX:Y1=PY:PRINTTAB(0"PUNTO EXTERIOR";:PX=XE:PY=YE:GOSUB100:XE=PX:YE=PY 150 IFX0=X1;DI=ABS(XE-X0)ELSEM=(Y0-Y1)/(X0-X1):N=Y0-M*X0:DI=ABS((M*XE+N-YE)/SQR(1+M^2)) 160 D1=POL(X0-XE,Y0-YE):AN1=Y:D2=POL(X1-XE,Y1-YE):AN2=Y:AN=ABS(AN1-AN2):IFAN>180;AN=360-AN 170 HI=DI/TAN(ASN(DI/D1)):PRINTTAB(0"ANGULO1-2:"DMS$(AN;TAB(0"DISTxr:";RND(HI,-3);TAB(16"DISTyr:";RND(DI,-3):RETURN 180 PRINT"1er PUNTO";:PX=X0:PY=Y0:GOSUB100 190 X0=PX:Y0=PY:PRINTTAB(0"2do PUNTO";:PX=X1:PY=Y1:GOSUB100:X1=PX:Y1=PY 200 DI=POL(X1-X0,Y1-Y0):AZ12=90-Y:IFAZ12<0;AZ12=AZ12+360 230 PRINT"AZIMUT1-2:"DMS$(AZ12;TAB(0"DISTANCIA:";RND(DI,-3):RETURN 235 ZE=0:PRINT"1er PUNTO BASE";:PX=A1:PY=B1:PZ=Z1:GOSUB100:A1=PX:B1=PY:Z1=PZ:GOSUB960:PRINTTAB(0"Dist Taquimetricas ?"TAB(27"Si:E";:DT$=INPUT$(1) 240 IFDT$="E";kD=100:PRINTTAB(0"Const Diastimometrica :";kD;:INPUTkD 242 ERASE L,ANG:DIM L(2),ANG(2) 245 rf=0:i=1:iv=1:nv=2:ERASE LECTA,LECTB:DIM LECTA(2),LECTB(2):PRINTTAB(0"Realiza BESSEL ?"TAB(27"Si:E";:RB$=INPUT$(1) 250 GOSUB420:R1=L(iv):DZ1=ZP:PRINT"2do PUNTO BASE";:PX=a:PY=b:PZ=Z2:GOSUB100:a=PX:b=PY:Z2=PZ:GOSUB960:i=2:iv=2:nv=3:GOSUB420:r=L(iv):DZ2=ZP 255 PZ=(Z1-DZ1+Z2-DZ2)/2:DP12=SQR((A1-a)^2+(B1-b)^2):ALFA=ANG(2)-ANG(1):IF ALFA<0;ALFA=ALFA+360 260 BETA2=ASN(R1*SINALFA/DP12):BETA1=ASN(r*SINALFA/DP12) 262 R12=DP12*SIN(ALFA+BETA1)/SINALFA:r2=DP12*SIN(ALFA+BETA2)/SINALFA 264 IF ABS(R1-R12)>1;BETA1=BETA1+2*(90-BETA1):GOTO262 266 IF ABS(r-r2)>1;BETA2=BETA2+2*(90-BETA2):GOTO262 268 R1=(R1+R12)/2:r=(r+r2)/2:IFB1=b;X1=(B1^2-b^2+r^2-R1^2+A1^2-a^2)/2/(A1-a):X2=X1:Y1=b+SQR(r^2-(X1-a)^2):Y2=b-SQR(r^2-(X1-a)^2):MR=0:GOTO275 270 MR=(a-A1)/(B1-b):NR=(A1^2+B1^2-R1^2+r^2-a^2-b^2)/2/(B1-b):GOSUB540:IFDLT<0;RETURN 275 IFMRà0; IF a>A1;PX=X2:PY=Y2:PZ=0 ELSE PX=X1:PY=Y1 280 IFMR<0; IF a>A1;PX=X1:PY=Y1:PZ=0 ELSE PX=X2:PY=Y2 285 IFIA$â"E";PZ=0 290 N$="EST. CALCULADA":GOSUB10400:cn=1:GOSUB11000:RETURN 420 PRINTTAB(0"LECTURA ANGULAR";:GOSUB1800:ANG(iv)=LECTB(iv) 421 IFDT$="E";GOSUB1700ELSEIFIA$="E"AND DT$â"E";PRINT"DIST GEOM L"iv":";RND(L(iv),-3);:INPUTL(iv):GOSUB1710 ELSEPRINT"DIST REDUCIDA L"iv":";RND(L(iv),-3);:INPUTL(iv):RETURN 422 RETURN 425 INDICE=10216:GOSUB1900:ONp GOSUB430,550,40:GOTO425 430 PRINT"1er RECTA"TAB(22"1er PUNTO";:PX=X01:PY=Y01:GOSUB100 440 X01=PX:Y01=PY:PRINTTAB(0"2do PUNTO";:PX=X11:PY=Y11:GOSUB100 445 X11=PX:Y11=PY:PRINTTAB(0"2da RECTA"TAB(22"1er PUNTO";:PX=X02:PY=Y02:GOSUB100 450 X02=PX:Y02=PY:PRINTTAB(0"2do PUNTO";:X12=PX:Y12=PY:GOSUB100 460 X12=PX:Y12=PY:IFX11=X01 AND X12=X02;PRINTCHR$(230" no hay interseccion":RETURN 470 IFX11=X01;PX=X11:PY=(X11-X02)*(Y12-Y02)/(X12-X02)+Y02:GOTO535 480 IFX12=X02;PX=X12:PY=(X12-X01)*(Y11-Y01)/(X11-X01)+Y01:GOTO535 500 MR=(Y11-Y01)/(X11-X01):NR=Y01-MR*X01:MRP=(Y12-Y02)/(X12-X02):NRP=Y02-MRP*X02 510 IFMRP=MR;PRINTCHR$(230" no hay interseccion":RETURN 520 PY=(MR*Y02+MR*MRP*(X01-X02)-MRP*Y01)/(MR-MRP):PX=(MR*X01-MRP*X02+Y02-Y01)/(MR-MRP) 535 PZ=0:N$="intersec":GOSUB10400:cn=1:GOSUB11000:RETURN 540 A=1+MR^2:B=2*(MR*(NR-b)-a):C=a^2-r^2+(NR-b)^2:DLT=B^2-4*A*C:IFDLT<0;PRINTCHR$(230" no hay interseccion":RETURN 545 X1=(-B+SQR(DLT))/2/A:Y1=MR*X1+NR:X2=(-B-SQR(DLT))/2/A:Y2=MR*X2+NR:RETURN 550 PRINT"RECTA"TAB(22"1er PUNTO";:PX=X01:PY=Y01:GOSUB100 555 X01=PX:Y01=PY:PRINTTAB(0"2do PUNTO";:PX=X11:PY=Y11:GOSUB100 560 X11=PX:Y11=PY:PRINTTAB(0"CIRCUNFERENCIA"TAB(25"CENTRO";:PX=a:PY=b:GOSUB100 575 a=PX:b=PY:PRINTTAB(0"Radio :"RND(r,-3);:INPUTr 580 IFX01=X11;IFABS(r)A1;PX=X2:PY=Y2:PZ=0 ELSE PX=X1:PY=Y1:PZ=0 715 IFMR<0; IF a>A1;PX=X1:PY=Y1:PZ=0 ELSE PX=X2:PY=Y2:PZ=0 718 IFMR=0; IF B1>b;PX=2*A1-PX 720 N$="Pto. DERECHA":GOSUB10400:cn=1:GOSUB11000:RETURN 730 PRINT"1er PUNTO";:PX=X0:PY=Y0:GOSUB100:X0=PX:Y0=PY 735 IFnvâ2;nv=2:ERASE LECTA,LECTB:DIM LECTA(1),LECTB(1) 740 iv=0:rf=1:PRINTTAB(0"Realiza BESSEL ?"TAB(27"Si:E";:RB$=INPUT$(1):PRINTTAB(0"Pto 1 LECTURAS ANGULARES";:GOSUB1800 750 A0=ABS(LECTB(1)-LECTB(0)):PRINT"2do PUNTO";:PX=X1:PY=Y1:GOSUB100:X1=PX:Y1=PY 755 PRINTTAB(0"Pto 2 LECTURAS ANGULARES";:GOSUB1800 760 A1=ABS(LECTB(1)-LECTB(0)):D=SQR((X0-X1)^2+(Y0-Y1)^2):Di=POL(X1-X0,Y1-Y0) 770 A01=A0:GOSUB810:N$="izquierda":GOSUB10400:cn=1:GOSUB11000 780 A01=-A0:GOSUB810:N$="derecha":GOSUB10400:cn=1:GOSUB11000:RETURN 810 PX=X0+D*SINA1/SIN(A0+A1)*SIN(90-Y-A01):PY=Y0+D*SINA1/SIN(A0+A1)*COS(90-Y-A01):PZ=0:RETURN 840 IFnvâ4;nv=4:ERASE LECTA,LECTB:DIM LECTA(3),LECTB(3) 845 PRINT"1er PUNTO";:PX=X1:PY=Y1:GOSUB100 850 X1=PX:Y1=PY:PRINTTAB(0"2do PUNTO";:PX=X2:PY=Y2:GOSUB100 855 X2=PX:Y2=PY:PRINTTAB(0"3er PUNTO";:PX=X3:PY=Y3:GOSUB100:X3=PX:Y3=PY 860 iv=1:rf=0:PRINTTAB(0"Realiza BESSEL ?"TAB(27"Si:E";:RB$=INPUT$(1):PRINTTAB(0"LECTURAS ANGULARES";:GOSUB1800 870 A1=ABS(LECTB(2)-LECTB(1)):A2=ABS(LECTB(3)-LECTB(2)):D1=SQR((X2-X1)^2+(Y2-Y1)^2):D2=SQR((X3-X2)^2+(Y3-Y2)^2) 880 Di=POL(X3-X2,Y3-Y2):AN1=Y:Dii=POL(X1-X2,Y1-Y2):AN2=Y:P2=ABS(AN1-AN2):IFP2>180;P2=360-P2 890 M=180-(A1+A2+P2)/2:gam=ATN(D1*SINA2/D2/SINA1):IFgam=45;PRINTCHR$(230" punto indeterminado":RETURN 900 N=ATN(TANM/TAN(45+gam)):P3=M-N:P2=180-P3-A2:X1=X2:Y1=Y2:A1=P2:A0=P3:X0=X3:Y0=Y3:D=D2:A01=P3:Di=POL(X1-X0,Y1-Y0) 910 GOSUB810:N$="intersec":GOSUB10400:cn=1:GOSUB11000:RETURN 960 PRINTTAB(0"Incluye Altimetria ?"TAB(27"Si:E";:IA$=INPUT$(1):IFIA$="E";PRINTTAB(0"Altura Instrumento (cm):";RND(AI,-3);:INPUTAI ELSERETURN 970 IFp=3;RETURN ELSEPRINTTAB(0"Compensa Altimetria ?"TAB(27"Si:E";:CA$=INPUT$(1):RETURN 980 PRINT"Estaciones Estimadas :"N;:INPUTN 982 IFNâNp;ERASE L,LST,X,Y,Z,XC,YC:DIM L(N+3),LST(N+4),X(N+4),Y(N+4),Z(N+4),XC(N+3),YC(N+3):Np=N 984 GOSUB960:PRINTTAB(0"Compensa Planimetria ?"TAB(27"Si:E";:CP$=INPUT$(1) 990 PRINTTAB(0"PUNTO DE REFERENCIA";:PX=XR:PY=YR:GOSUB100:XR=PX:YR=PY 1000 LT=0:PRINTTAB(0"COORDENADAS DE PARTIDA";:PX=X(0):PY=Y(0):PZ=Z(0):GOSUB100:X(0)=PX:Y(0)=PY:Z(0)=PZ:ZE=PZ 1005 PRINTTAB(0"COORDENADAS DE LLEGADA";:GOSUB100:XC=PX:YC=PY:ZC=PZ 1010 DI=POL(XR-X(0),YR-Y(0)):AZI=90-Y:PRINTTAB(0"Dist Taquimetricas ?"TAB(27"Si:E";:DT$=INPUT$(1) 1020 IFDT$="E";kD=100:PRINTTAB(0"Const Diastimometrica:";kD;:INPUTkD 1025 rf=0:i=0:iv=0 1030 IFnvâ2;nv=2:ERASE LECTA,LECTB:DIM LECTA(1),LECTB(1) 1035 PRINTTAB(0"Realiza BESSEL ?"TAB(27"Si:E";:RB$=INPUT$(1):PRINTTAB(0"Pto"i+1"LECTURAS ANGULARES";:GOSUB1800 1040 ANG=LECTB(1)-LECTB(0)+180:AZI=AZI+ANG:IFAZI>360;AZI=AZI-360 1050 IFDT$="E";GOSUB1700ELSEIFIA$="E"AND DT$â"E";PRINT"DIST GEOM L"i+1":";RND(L(i),-3);:INPUTL(i):GOSUB1710 ELSEPRINT"DIST REDUCIDA L"i+1":";RND(L(i),-3);:INPUTL(i) 1060 LT=LT+L(i):LST(i)=LT:X(i+1)=X(i)-L(i)*SINAZI:Y(i+1)=Y(i)-L(i)*COSAZI:Z(i+1)=ZP 1065 IFCP$â"E"ANDCA$â"E";PX=X(i+1):PY=Y(i+1):PZ=Z(i+1):N$="calculado":GOSUB10400:cn=1:GOSUB11000 1070 PRINTTAB(0"Incluye Radiacion ?"TAB(27"Si:E";:IRR$=INPUT$(1):IFIRR$="E";GOSUB1200 1085 PRINTTAB(0"Nueva Estacion ?"TAB(27"Si:E";:IFINPUT$(1)â"E"THEN1100 1090 i=i+1:iv=0:rf=1:ZE=ZP:IFi>(N+4);PRINT"Ecxeso de Estaciones":GOTO1100 1095 GOTO1030 1100 IFCP$="E";EXC=XC-X(i+1):EYC=YC-Y(i+1):FORj=1TOi:X(j)=EXC/LT*LST(j-1)+X(j):Y(j)=EYC/LT*LST(j-1)+Y(j):NEXTj 1120 IFCA$="E";EZC=ZC-Z(i+1):FORs=1TOi:Z(s)=Z(s)+EZC/LT*LST(s-1):NEXTs 1140 IFCP$="E"ORCA$="E";FORq=1TOi:PX=X(q):PY=Y(q):PZ=Z(q):N$="compensado":GOSUB10400:cn=1:GOSUB11000:NEXTq:IA$="0":RETURNELSEIA$="0":RETURN 1200 p=3:PRINTTAB(0"Visuales Estimadas:"Nnv;:INPUTNnv 1210 IFNnvâanv;ERASE LECTA,LECTB,AZI,LR:DIM LECTA(Nnv+4),LECTB(Nnv+4),AZI(Nnv+4),LR(Nnv+4):anv=Nnv 1215 GOSUB960:IFIRR$="E"AND i=0;XRR=XR:YRR=YR:GOTO1230 1220 IFIRR$="E"AND iâ0;XRR=X(i-1):YRR=Y(i-1):GOTO1230 1225 PRINTTAB(0"PUNTO DE REFERENCIA";:PX=XRR:PY=YRR:GOSUB100:XRR=PX:YRR=PY 1230 IF IRR$="E";IRR$="0":XRQ=X(i):YRQ=Y(i):ZE=Z(i):GOTO1240 ELSE IF Np<1;ERASE L:DIM L(i+N+3) 1235 PRINTTAB(0"ESTACION";:PX=XRQ:PY=YRQ:PZ=ZE:GOSUB100:XRQ=PX:YRQ=PY:ZE=PZ 1240 iv=0:rf=0:nv=1:DI=POL(XRR-XRQ,YRR-YRQ):AZR=90-Y:PRINTTAB(0"Dist Taquimetricas ?"TAB(27"Si:E";:DT$=INPUT$(1) 1255 IFDT$="E";kD=100:PRINTTAB(0"Const Diastimometrica :";kD;:INPUTkD 1260 PRINTTAB(0"Realiza BESSEL ?"TAB(27"Si:E";:RB$=INPUT$(1):IFIRR$="E";IRR$="0":GOTO1325 1265 PRINTTAB(0"Pto"i"LECTURAS ANGULARES"; 1270 GOSUB1800:IFiv=0THEN1325 1280 AZI(iv)=AZR+LECTB(iv)-LECTB(0):IFAZI(iv)>360;AZI(iv)=AZI(iv)-360 1300 mem=L(i):IFDT$="E";GOSUB1700:LR(iv)=L(i)ELSEIFIA$="E"AND DT$â"E";PRINT"DIST GEOM L"iv":";RND(LR(iv),-3);:INPUTLR(iv):L(i)=LR(iv):GOSUB1710:LR(iv)=L(i) ELSEPRINT"DIST REDUCIDA L"iv":";RND(LR(iv),-3);:INPUTLR(iv) 1315 L(i)=mem:PX=XRQ+LR(iv)*SINAZI(iv):PY=YRQ+LR(iv)*COSAZI(iv):PZ=ZP:N$="calculado":GOSUB10400:cn=1:GOSUB11000 1320 PRINTTAB(0"Otra Visual ?"TAB(27"Si:E";:IFINPUT$(1)â"E";IA$="0":RETURN 1325 iv=iv+1:nv=nv+1:rf=0:IFiv>(Nnv+4);PRINTTAB(0"Vertices Ecxesivos":IA$="0":RETURN 1328 GOTO1270 1330 PRINTTAB(0"Area de una Capa ?"TAB(27"Si:E"; 1340 edi=1550:IFINPUT$(1)="E";GOSUB11940:W=npc:IFW=0;RETURN ELSEGOSUB1540:GOSUB11960:GOTO1450 ELSE1350 1350 encC=1:PRINTTAB(0"Numero de vertices :"W;:INPUTW:GOSUB1540 1360 PRINT"PUNTO 1";:PX=XA(0):PY=YA(0):GOSUB100:GOSUB1550 1410 FORi=1TOW-1:PRINTTAB(0"PUNTO"i+1;:PX=XA(i):PY=YA(i):GOSUB100:GOSUB1560:NEXTi 1450 IFencC=0;RETURNELSESS=SS+(XA(W-1)-XA(W))*(YA(W-1)+YA(W))/2:DD=DD+SQR((XA(W-1)-XA(W))^2+(YA(W-1)-YA(W))^2) 1480 PRINTTAB(0"AREA="ABS(RND(SS,-5)TAB(0"PERIMETRO="RND(DD,-3:RETURN 1540 IFWâNa;ERASE XA,YA:DIM XA(W),YA(W):Na=W:RETURN ELSERETURN 1550 XA(0)=PX:YA(0)=PY:XA(W)=XA(0):YA(W)=YA(0):SS=0:DD=0:edi=1560:RETURN 1560 XA(i)=PX:YA(i)=PY:SS=SS+(XA(i-1)-XA(i))*(YA(i-1)+YA(i))/2:DD=DD+SQR((XA(i-1)-XA(i))^2+(YA(i-1)-YA(i))^2):RETURN 1600 PRINT"ESTACION";:PX=XE:PY=YE:GOSUB100:XE=PX:YE=PY 1605 PRINTTAB(0"PUNTO DE REFERENCIA";:PX=XR:PY=YR:GOSUB100:XR=PX:YR=PY 1610 PRINTTAB(0"Lect"CHR$(254)" REF :"DMS$(LVR;:INPUTLVR 1615 PRINTTAB(0"Replantea una Capa ?"TAB(27"Si:E"; 1618 edi=1670:IFINPUT$(1)="E";GOSUB11940:W=npc:IFW=0THEN20ELSEGOSUB11960:GOTO20 ELSE1620 1620 PRINTTAB(0"PUNTO";:PX=XP:PY=YP:GOSUB100:XP=PX:YP=PY:DR=SQR((XP-XE)^2+(YP-YE)^2):N$="Pto":IF DR=0;ECA=0:GOTO1660 1640 D1=POL(XR-XE,YR-YE):AN1=Y:D2=POL(XP-XE,YP-YE):AN2=Y:AN=AN1-AN2:ECA=LVR+AN:IFECA<0;ECA=ECA+360 1660 GOSUB1680:PRINT"Otro Punto ?"TAB(27"Si:E";:IFINPUT$(1)="E"THEN1620ELSE20 1670 DR=SQR((PX-XE)^2+(PY-YE)^2):IF DR=0;ECA=0:GOTO1675 ELSE D1=POL(XR-XE,YR-YE):AN1=Y:D2=POL(PX-XE,PY-YE):AN2=Y:AN=AN1-AN2:ECA=LVR+AN:IFECA<0;ECA=ECA+360 1675 GOSUB1680:RETURN 1680 PRINTTAB(0N$TAB(8"DISTCIA ="RND(DR,-3);TAB(3"LECT.HORZTAL ="DMS$(ECA:RETURN 1690 IFDT$â"E" AND Np<1;ERASE L:DIM L(i+N+3):DT$="E":kD=100 1700 PRINTTAB(0"Lect H.Superior (cm):";LHS;:INPUTLHS:PRINT"Lect H.Inferior (cm):";LHI;:INPUTLHI:IF AA=0;AA=90 1710 PRINT"Lect H.Centr/prism (cm):";LHC;:INPUTLHC: IFDT$="E";IFABS(LHC-(LHI+LHS)/2)>0.5 ;PRINT"ERROR en las LECTURAS de MIRA";TAB(0;"VOLVER A LEER":GOTO1700 1713 PRINT"Angulo Cenital :"DMS$(AA;:INPUTAA 1715 IFDT$="E";L(i)=kD/100*ABS(LHI-LHS)*SIN(AA)^2ELSE L(i)=L(i)*SIN(AA+ASN(SIN(AA)*ABS(AI-LHC)/100/L(i))) 1720 IFAA=90;LIT=0 ELSE LIT=L(i)/TANAA 1725 ZP=ZE+LIT+(AI-LHC)/100 1730 IFDT$="E"AND DL$â"E";PRINT"Dobla la LECTURA ?"TAB(27"Si:E";:DL$=INPUT$(1):IFDL$="E";L2=L(i):ZP2=ZP:GOTO1700 1735 IFDT$="E" AND DL$="E";DL$="":L(i)=(L(i)+L2)/2:ZP=(ZP+ZP2)/2 1740 PRINTTAB(0"DISTANCIA:";RND(L(i),-3);"m":RETURN 1800 FORv=iv TOnv-1 1810 g$=CHR$(254:IFrf=0AND v=0;rf$="REF"ELSErf$="PTO" 1815 IFrf=1AND v=0;rf$="PTOAt" 1820 IFrf=1AND v=1;rf$="PTOAd" 1830 GOSUB1860:IFRB$="E";GOSUB1840 1835 NEXTv:RETURN 1840 PRINTTAB(0"giro y transito ...":LECTA(v)=LECTB(v):g$=CHR$(255:GOSUB1860 1850 LECTB(v)=LECTB(v)+SGN(LECTA(v)-LECTB(v))*180:LECTB(v)=(LECTB(v)+LECTA(v))/2:PRINTTAB(0"giro y transito ...":RETURN 1860 PRINTTAB(0g$" v"v;rf$" :"DMS$(LECTB(v);:INPUTLECTB(v):RETURN 1900 RESTOREINDICE:p=0:READn,n$ 1910 READa$:CLS:PRINTn$TAB(23;p+1"de"n;TAB(0a$TAB(26"Si:E";:p=p+1:IFINPUT$(1)="E";CLS:RETURNELSEIFn=p THEN1900ELSE1910 10210 DATA5,MT-BASE 6,Calculos Geometricos,Levantamientos,Replanteo,Base de Datos,Salir 10211 DATA5,CALCULOS GEOMETRICOS,Calculos Laterales,Angulos y Distancias,Intersec con Rectas,Area por Coordenadas,Volver 10212 DATA5,LEVANTAMIENTOS,Radiacion,Intersecciones,Enlace Indir. Estaciones,Poligonacion,Volver 10214 DATA3,INTERSECCIONES,Directas,Inversa,Volver 10215 DATA7,BASE DE DATOS,Ingreso/Edicion,Transmision de Datos,Edicion Puntos Capa,Edicion de Capas,Ver Base de Datos,Borrar Base de Datos,Volver 10216 DATA3,INTERSEC CON RECTAS,Recta Recta,Recta Circunf,Volver 10217 DATA3,ANGULOS Y DISTANCIAS,Az/Dist Punto Punto,Ang/Dist Punto Recta,Volver 10218 DATA3,INTERSEC DIRECTAS,Obs Distales,Obs Angulares,Volver 10220 DATA6,EDICION DE CAPAS,Listar Capas,Crear Capa,Generar Polilinea,Ver Capa,Borrar Capa,Volver 10221 DATA4,CALCULOS LATERALES,Distancia Estadimetrica,Datos î A-b-c,Datos î a-b-c,Volver 10222 DATA3,TRANSMISION DE DATOS,Enviar Datos,Recibir Datos,Volver 10400 PRINTTAB(0"Pto "N$TAB(19" Z="RND(PZ,-3);TAB(8"X="RND(PX,-3);TAB(19" Y="RND(PY,-3),:Vi=1:RETURN 10800 RESTORE#:RESTORE#"[ib]":READ#a$:l=LEN(a$):m=0:FORn=1TOl:IFMID$(a$,n,1)=" ";y(m)=n+1:m=m+1 10810 NEXTn:np=VAL(MID$(a$,y(0),(y(1)-y(0)-1)):nc=VAL(MID$(a$,y(1),(l+1-y(1)):RETURN 10850 REGi$="[ib]"+STR$(np)+STR$(nc):RESTORE#:RESTORE#"[ib]":WRITE#REGi$:RETURN 10900 encC=0:ac=0:RESTORE# 10902 RESTORE#cap$,1,10920:READ#a$:l=LEN(a$):FORn=1TOl:IFMID$(a$,n,1)="$";ac=n 10905 NEXTn:IFac=0;GOTO10902 10910 CAP$=LEFT$(a$,(ac-1)):npc=VAL(MID$(a$,ac+1,(l-ac)):IFCAP$=cap$;encC=1:RETURNELSE10902 10920 RETURN 10950 npc$=RIGHT$(STR$(npc),LEN(STR$(npc))-1):capN$=cap$+"$"+npc$:CAP$=cap$:RETURN 11000 GOSUB11600:IFl=0AND lmn=0;RETURNELSEIFN$=""ORenc=0;N$=q$ 11050 PRINTTAB(0"Edita Punto ?"TAB(27"Si:E";:IFINPUT$(1)â"E"THEN11200 11100 IA$="E":PRINTTAB(0"Nuevo nombre ["N$"] ?";:INPUT@7;q$:IFLEN(q$)=0;q$=N$ 11105 X$=STR$(RND(PX,-4)):IFPX<0;X$=" "+X$ 11110 go=1:V$=N$+X$:GOSUB11300:RESTORE#:RESTORE#V$:WRITE#REG$:RETURN 11200 IFcn=1;cn=0:RETURN 11205 PRINTTAB(0"Borra Punto ?"TAB(27"Si:E";:IFINPUT$(1)â"E";RETURN 11210 PRINTTAB(0"Confirma Borra Punto ?"TAB(27"Si:E";:IFINPUT$(1)â"E";RETURN 11220 PRINTTAB(0"Debe definir la Capa"TAB(0"Desea ver la Base ?"TAB(27"Si:E";:IFINPUT$(1)="E";GOSUB11900 11230 GOSUB12105:IFlc=0AND lC=0THEN11220ELSEGOSUB10900 11250 IFencC=0THEN11220ELSERESTORE#:RESTORE#"[ib]":RESTORE#N$,1:WRITE#:GOSUB10800:np=np-1:GOSUB10850 11260 npc=npc-1:GOSUB10950:GOSUB11440:READ#ap$:WRITE#capN$:PRINTTAB(0"Punto BORRADO",:RETURN 11300 PRINTTAB(0"x :"RND(PX,-3);:INPUTPX:PRINT"y :"RND(PY,-3);:INPUTPY 11310 IFIA$="E";IA$="0":PRINTTAB(0"z :";RND(PZ,-3);:INPUTPZ ELSEPZ=0 11320 X$=STR$(RND(PX,-4)):IFPX<0;X$=" "+X$ 11322 Y$=STR$(RND(PY,-4)):IFPY<0;Y$=" "+Y$ 11324 Z$=STR$(RND(PZ,-4)):IFPZ<0;Z$=" "+Z$ 11326 REG$=q$+X$+Y$+Z$:IFgo=1;go=0:RETURN 11330 GOSUB12000:GOSUB12105:IFlc=0AND lC=0THEN11330 11340 enc=0:RESTORE#:RESTORE#"[ib]":GOSUB10900 11360 IFencC=1;RETURNELSEPRINT"Capa no definida"TAB(0"Crea como Nueva Capa ?"TAB(27"Si:E";:IFINPUT$(1)="E";GOSUB12230:RETURN 11380 GOTO11330 11440 GOSUB10800:oc=nc+1:RESTORE#:RESTORE#"[ib]":RESTORE#cap$,1 11450 RESTORE#"[FIN]",1,11460:oc=oc-1:READ#fin$:GOTO11450 11460 n=0:RESTORE#:RESTORE#"[ib]":IFoc=1;READ#fin$:RETURN 11470 RESTORE#"[FIN]",1:n=n+1:READ#fin$:IFn=oc-1;RETURNELSE11470 11500 PRINTTAB(0"generando registro...";:reg$="0":GOSUB11440:IFoc=nc THEN11540 11510 GOSUB11460:READ#reg$:GOSUB11460:WRITE#:RESTORE#"[fb]":WRITE#reg$,"[fb]" 11520 IFreg$="[FIN]"THEN11540ELSEGOSUB11460:READ#reg$ 11530 RESTORE#:RESTORE#reg$:WRITE#:RESTORE#"[fb]":WRITE#reg$,"[fb]":GOTO11520 11540 RESTORE#:RESTORE#cap$:RESTORE#"[FIN]":WRITE#REG$,"[FIN]","[fb]":GOSUB10800:np=np+1:GOSUB10850 11550 GOSUB10900:npc=npc+1:GOSUB10950:GOSUB11440:READ#ap$:WRITE#capN$:RETURN 11600 GOSUB11700:IFl=0AND lmn=0;RETURN 11610 IFenc=1;GOSUB10400:enc=0:Vi=0:RETURN 11620 PRINT"Punto no definido"TAB(0"Ingresa Punto ?"TAB(27"Si:E";:E$=INPUT$(1):IFE$="E";IFVi;Vi=0:GOSUB11320ELSEGOSUB11300 11630 IFE$="E";GOSUB11500:RETURNELSEl=0:lmn=0:RETURN 11700 enc=0:IFcn=1;q$="" 11705 N$=q$:PRINTTAB(0"Nombre punto ["N$"] ?";:INPUT@7;q$:l=LEN(q$):lmn=LEN(N$):IFl=0;q$=N$ 11710 IFl=0AND lmn=0;RETURN 11720 RESTORE#:RESTORE#"[ib]" 11750 RESTORE#q$,1,11760:READ#a$:GOSUB11800:IFN$=q$;enc=1ELSE11750 11760 RETURN 11800 la=LEN(a$):m=0:FORnq=1TOla:IFMID$(a$,nq,1)="$";N$="":RETURN 11805 NEXTnq:FORn=1TOla:IFMID$(a$,n,1)=" ";y(m)=n+1:m=m+1 11810 NEXTn:N$=LEFT$(a$,y(0)-2):PX=VAL(MID$(a$,y(0),(y(1)-y(0)-1)) 11820 PY=VAL(MID$(a$,y(1),(y(2)-y(1)-1)):PZ=VAL(MID$(a$,y(2),(la+1-y(2))):RETURN 11900 GOSUB10800:PRINTTAB(0"Hay"np"Puntos en la Base";:RESTORE#:RESTORE#"[ib]":READ#v$ 11910 READ#v$:IFv$="[fb]";RETURNELSEPRINTTAB(0v$:GOTO11910 11920 GOSUB10800:PRINT"Confirma Borra Base ?"TAB(27"Si:E";:IFINPUT$(1)â"E";RETURNELSERESTORE#:RESTORE#"[ib]" 11930 FORk=1TOnp+1+3*nc:WRITE#:NEXTk:WRITE#"[ib]","[fb]":np=0:nc=0:GOSUB10850:PRINTTAB(0"Base BORRADA":RETURN 11940 GOSUB12000:GOSUB12105:IFlc=0AND lC=0;RETURN 11950 encC=0:GOSUB10900:IFencC=0THEN11970ELSEPRINT"Hay"npc"Puntos en la Capa ...";:GOSUB11440:IFedi=1550OR edi=1670;RETURN 11960 READ#a$:READ#a$:FORk=1TOnpc:i=k-1:READ#a$:GOSUB11800:GOSUBedi:NEXTk:RETURN 11970 npc=0:PRINT"La Capa NO existe":RETURN 12000 PRINTTAB(0"Desea Listar Capas ?"TAB(27"Si:E";:IFINPUT$(1)="E";GOSUB12110:RETURNELSERETURN 12100 INDICE=10220:GOSUB1900:ONp GOSUB12110,12200,12400,12500,12300,80:GOTO12100 12105 PRINTTAB(0"Nombre capa ["CAP$"] ?";:INPUT@7;cap$:lc=LEN(cap$):lC=LEN(CAP$):IFlc=0;cap$=CAP$:lc=lC 12108 RETURN 12110 GOSUB10800:PRINTTAB(0"Hay"nc"capas en la base";:RESTORE#:RESTORE#"[ib]" 12120 RESTORE#"[PUNTO2]",1,12130:READ#ap$,AP$:PRINTTAB(0AP$" "ap$:GOTO12120 12130 RESTORE#:RESTORE#"[ib]" 12135 RESTORE#"[LINEA1]",1,12140:READ#ap$,AP$:PRINTTAB(0AP$" "ap$:GOTO12135 12140 RETURN 12200 GOSUB12105:IFlc=0;RETURNELSERESTORE#:RESTORE#"[ib]" 12210 encC=0:GOSUB10900:IFencC=0THEN12230ELSEPRINT"La capa ya existe",:RETURN 12230 npc=0:GOSUB10950:RESTORE#:RESTORE#"[fb]",1:WRITE#"[PUNTO2]",capN$,"[FIN]","[fb]":GOSUB10800:nc=nc+1:GOSUB10850:PRINTTAB(0"Capa CREADA",:RETURN 12300 GOSUB12000:GOSUB12105:IFlc=0AND lC=0;RETURN 12310 encC=0:GOSUB10900:IFencC=0THEN12340 12320 PRINT"Confirma Borra Capa ?"TAB(27"Si:E";:IFINPUT$(1)â"E";RETURNELSEGOSUB11440 12330 FORk=1TOnpc+3:WRITE#:NEXTk:np=np-npc:nc=nc-1:GOSUB10850:PRINTTAB(0"Capa BORRADA",:RETURN 12340 PRINT"La Capa NO existe":RETURN 12400 GOSUB12000:GOSUB12105:IFlc=0AND lC=0;RETURN 12420 encC=0:GOSUB10900:IFencC=0THEN12440ELSEGOSUB11440:WRITE#"[LINEA1]":PRINTTAB(0"Polilinea GENERADA",:RETURN 12440 PRINT"La Capa NO existe":RETURN 12500 GOSUB12000:GOSUB12105:IFlc=0AND lC=0;RETURN 12520 encC=0:GOSUB10900:IFencC=0THEN12540ELSEPRINT"Hay"npc"Puntos en la Capa";:GOSUB11440 12530 READ#v$:IFv$="[FIN]";RETURNELSEPRINTTAB(0v$:GOTO12530 12540 PRINT"La Capa NO existe":RETURN 12550 PRINTTAB(0"SE DETECTARON ERRORES"TAB(0"VERIFIQUE SUS DATOS" 12560 PRINT"Reinicia las variables ?"TAB(27"Si:E";:IFINPUT$(1)="E";CLEAR 12580 RESUME2 13000 INDICE=10222:desc$="COM0:4,E,8,1,N,N,N,B,N":GOSUB1900:ONp GOSUB13010,13110,80:GOTO13000 13010 PRINT"Conectar Cable Serial":OPEN desc$ AS #1 13040 PRINT"Comenzar Lectura en otro Equipo Para enviar Datos: EXE" 13050 RESTORE#:RESTORE#"[ib]":READ#envia$ 13060 READ#envia$:IFenvia$="[fb]"THEN13070ELSEPRINT #1,envia$:PRINT".";:GOTO13060 13070 CLOSE:PRINT"Transmision Finalizada":RETURN 13110 PRINT"Conectar Cable Serial":PRINT"Recibiendo Datos presione ENVIARen otro Equipo"; 13140 RESTORE#:RESTORE#"[ib]":OPEN desc$ AS #1 13160 IF EOF(1)<>-1 THEN INPUT#1,rcib$ ELSE GOTO 13190 13170 WRITE#rcib$:PRINT".";:GOTO13160 13190 CLOSE:WRITE#"[fb]":PRINT"Transmision Finalizada":RETURN