Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacion Basic
Programacion Basic
Del Quindío
Copyright © MMI
1. Generalidades................................................................................................... 1
2. Estructura secuencial........................................................................................ 31
3. Subprogramas................................................................................................... 45
4. Estructura de Decisión...................................................................................... 63
5. Estructura de Ciclos.......................................................................................... 73
6. Estructura de Datos........................................................................................... 85
Bibliografía........................................................................................................... 139
Este libro enseña a programar en BASIC, orientado a los topógrafos, además se describe una
serie de programas que efectúan una variedad de tareas comunes en la practica. Aunque este libro
esta orientado a la Casio FX 880P, sus programas pueden ser adaptados a otras calculadoras con
gran facilidad.
Para procesos mas largos y de manejo de mayor información, la hoja electrónica Excel le
ofrece esta posibilidad, además de la facilidad de la consecución en diferentes partes, ya
que se ha convertido en un estándar de la industria.
La necesidad de aparatos de cómputo ha existido durante siglos, debemos recordar al hombre primitivo
desde cuando necesitó contar y por consiguiente necesitó llevar registros, fue en ese momento cuando usó sus
diez dedos como instrumento para contar; allí se inicia el sistema decimal.
A continuación se hace una breve listado cronológico de los inventos y progresos de las máquinas de calcular:
VIII a C.
El ábaco, con el cual se pueden realizar sumas y restas.
1600
Jhon Napier, matemático descubre los logaritmos
1621
William Onhtred, inventa la regla de cálculo, por analogía con los logaritmos.
1642
Blaise Pascal, diseño la primera máquina de calcular que podría sumar y restar.
1694
Gottfried Wilhelm Leibniz. Matemático Alemán, amplia los estudios de Pascal. Diseña una calculadora que
además de sumar y restar también multiplicaba, dividía e incluso extraía raíces cuadradas.
1822
Charles Babbage. Inventor Inglés, establece los principios de funcionamiento de los computadores
electrónicos en un proyecto de máquina denomina "maquina diferencial", que podía resolver polinomios de
hasta 8 términos.
1831
Babbage. Concibe una máquina que denomino la "máquina analítica", puede considerarse como un prototipo
de los actuales computadores electrónicos.
1847
George Boole. Matemático Inglés, quien publica el "Análisis matemático de la lógica" una teoría del sistema
tipo binario, conocido hoy como álgebra booleana.
1937
Howard H. Aiken, físico de la Universidad de Harvard. Con la máquina A.S.C.C. hizo realidad 112 años más
tarde la máquina de Babbage.
1945
Entra en funcionamiento el ENIAC (Electronic Numerical Integrator And Calculator), su primera utilización
fue para la construcción de tablas para el cálculo de la trayectoria de proyectiles.
1952
Se construyen los ordenadores MANIAC-I y MANIAC II, con lo que termina la prehistoria de la informática.
1956
Jhon Mc. Carthy, del MIT, da a conocer el concepto de la inteligencia artificial.
1957
Jhon Backus, de la IBM crea el primer lenguaje de programación FORTRAN.
1959
Se crea el segundo lenguaje llamado COBOL.
1965
Jhon Kemeny y Tom Kurtz, en la Universidad de Dortmouth, crea el lenguaje de programación BASIC.
1971
Federico Faggin, Físico Italiano inventa el microprocesador.
1976
Stephen Wozniak y Steven Jobs, funda la firma Apple Computer Company.
1981
IBM, introduce su computador personal PC y microsoft el sistema operativo MS-DOS para este. Además
usaba un procesador 8088.
1982
TRON, película filmada íntegramente con la tecnología de la computación gráfica.
1985
Se trabaja en el perfeccionamiento de la llamada "Pantalla de Cristales Líquidos".
Microsoft lanzo el Windows 1.0, un programa de computador que permitía manejar los PC del estándar IBM
a través de un ambiente gráfico.
1986
Los Pcs se aceptan completamente en las empresas y colegios. El termino clave es software integrado.
1987
La mayoría de las aplicaciones se convierten en multiusuario.
1989
Lanzan el procesador 80486, velocidad inicial 25 Mhz.
1990
Microsoft lanza la versión 3.0 que marco el despegue del mercado.
1993
Lanzan el procesador Pentium, velocidad inicial 60 Mhz.
1995
Lanzan el procesador Pentium Pro, velocidad inicial 150 Mhz.
1999
Se lanza el Pentium III, velocidad inicial de Mhz.
1.2. HARDWARE
EL COMPUTADOR
Máquina que recibe datos, los procesa y proporciona el resultado, llevando a cabo el proceso de datos según
las instrucciones.
Analógicas.
Representan a los números por medio de una magnitud física; es decir asigna valores numéricos midiendo
físicamente alguna propiedad real como la longitud de un objeto, el ángulo creado por dos líneas o la
corriente eléctrica que pasa a través de un punto en un circuito eléctrico.
Digitales.
Admite su programación por medio de lenguajes y manejan un alfabeto (código binario 0,1) mediante el cual
a través de cadenas de ceros y unos, se puede representar cualquier carácter.
Híbridos.
UNIDAD DE ENTRADA.
Permite introducir datos y programas a la memoria principal. Puede tomar varias formas de acuerdo con el
medio que se utilice para almacenar los datos o programas, a saber:
- Teclado
- Pantalla
- Disquetes
- Cinta perforada
- Tarjetas perforadas
- Digitalizadora
- Módem
- Ratón
- Scanner
Es el cerebro de una computadora, el cual interpreta y ejecuta las instrucciones, se divide en:
La componente de la computadora que ejecuta las operaciones lógicas (Comparación de dos valores) y las
operaciones aritméticas (suma, resta, multiplicación y división).
Unidad de Control.
La componente de la computadora que controla las acciones de los otros componentes para que se ejecuten
las instrucciones (un programa) en secuencia.
Basic para Topógrafos
6
Unidad de Memoria.
Memoria RAM.
(Random Acces Memory) también se le denomina memoria de lectura o escritura, ya que en ella se puede leer
o escribir información indistintamente. Esta memoria tiene las siguientes características:
- Almacena siempre un número que puede significar una constante, una instrucción, o una secuencia de letras
o caracteres.
- Tiene un acceso de tipo aleatorio, es decir toma el mismo tiempo al procesar para localizar el contenido de
cualquier dirección.
- Su lectura no es destructiva; es decir, cuando el procesador lee de una área de la memoria, el contenido de
esta área permanece intacta.
- Su escritura es destructiva; es decir, cuando el procesador escribe en una área de la memoria, el contenido
previo de la memoria se pierde.
- La cantidad de memoria RAM disponible al usuario es lo que se llama de manera corriente los K's del
computador. Si esta memoria es muy pequeña solo se podrá almacenar programas muy cortos y las
aplicaciones se verán limitadas a juegos y asuntos personales.
Memoria ROM
(Read Only Memory) solo permite operaciones de lectura, de modo que los programas grabados en ella por el
fabricante pueden ser utilizada, pero nunca modificada.
- Las memorias de este tipo no son volátiles, dado que su contenido es fijo y no puede reprogramarse.
- En cuanto a las memorias EPROM, REPROM, PROM, BURBUJA son memorias ROM con diferentes
características (pueden ser borradas y reprogramadas), algunos equipos las traen como opcionales.
- Muchos de los juegos de video que conocemos funcionan mediante cartuchos que utilizan memoria ROM
para almacenar los datos y los programas.
BITS: Contracción de la palabra dígitos binarios (BInary digiTS). Los ceros y unos de los formatos de
almacenamiento utilizado en las computadoras.
UNIDAD DE SALIDA.
Permite sacar datos y programas de la memoria principal. Puede tomar varias formas de acuerdo con el
medio externo que se utilice para almacenar los datos o programas, a saber:
- Pantalla
- Impresora
- Plotter
- Memoria Auxiliar: Discos duros, Disquetes
- Cinta magnética
- Cinta Perforada
- Módem
DISKETTE.
Dispositivo magnético para almacenamiento de información basado en la lectura y escritura, dotado de gran
flexibilidad, suelen tener 8", 5 1/4 y 3 1/2 de diámetro.
Tipos de disquetes
DISCOS DUROS.
Disco magnético rígido caracterizado porque la cabeza de lectura no toca físicamente el disco, sino que por
efecto aerodinámico se mantiene suspendido a una distancia de unas micras. Los tamaños más o menos son
100, 200, 500 megas y 1 gigabyte
Un dispositivo de salida que transforma las señales procedentes del computador en una forma legible.
De Bola.
De Banda.
La impresión se realiza por medio de una banda de acero que contiene todos los caracteres generales. Esta
gira continuamente a gran velocidad en forma que en el momento oportuno, un pequeño golpe producido
por un martillo permite la impresión del carácter en el papel.
De Margarita.
El dispositivo de escritura es una rueda denominada margarita, cuyos brazos contienen los distintos
caracteres, las impresoras de margarita son las que producen documentos de alta calidad, con una gran
limitante en los caracteres gráficos. Ejemplo: letras griegas
Matriz de Puntos.
La escritura de cada carácter corre a cargo de una matriz de agujas. Activada y desactivando los distintos
puntos de la matriz se obtendrá la impresión del carácter que se desee.
Láser.
El elemento de impresión es un láser de baja potencia que genera un rayo que es modulado por un elemento
permitiendo o bloqueando el paso de luz.
Un disco de espejos desvía el rayo barriendo repentinamente el tambor fotoconductor. De esta forma, los
caracteres quedan trazados eléctricamente sobre el tambor. Al girar este último se le aplica una tinta
pulverizada que solo se adhiere a las zonas expuestas al rayo láser. Esta tinta es la que transfiere al papel
plasmado la impresión de los diversos caracteres.
Es uno de los mejores para la impresión, básicamente es un dispositivo que arroja la tinta sobre el papel con
una gran precisión, son las impresoras líderes en el mercado. Permitieron acercar el color a todos los usuarios.
PLOTTER
Son unos equipos informáticos que, en función de unas instrucciones dadas por programa, dibujan lo que se
les ordene, bien sean curvas, rectas, gráficos, rotulaciones, etc.
- Precisión en el dibujo.
De Rodillo.
De Mesa.
En éstos, el papel esta fijo y el mecanismo de impresión se desplaza en sentido longitudinal y transversal,
pudiendo acceder a cualquier punto del tablero. Estos plotters suelen tener mayores precisiones que los
anteriores, pero tienen la limitación del tamaño del papel y suelen ser más caros que los anteriores.
Basic para Topógrafos
11
Electrostático.
Estos equipos consisten en una mesa o tablero en el cual se sitúa el plano o mapa a digitalizar, para desplegar
sobre él un mecanismo con una lupa y una serie de teclas de función, definiendo los puntos necesarios que, a
su vez, definen o permiten representar dicho plano o mapa, de tal forma que se envían sus coordenadas X y Y
de tablero al computador, tratándolas y pasando posteriormente a la memoria auxiliar (discos flexibles y
duros).
DIGITALIZADORES.
Como su nombre indica, son equipos que sirven para almacenar en soportes de masas los datos que definen
un plano, mapa o gráfico.
Estos equipos consisten en una mesa o tablero en el cual se sitúa el plano o mapa a digitalizar, para desplegar
sobre él un mecanismo con una lupa y una serie de teclas de función, definiendo los puntos necesarios que, a
su vez, definen o permiten representar dicho plano o mapa, de tal forma que se envían sus coordenadas X y Y
de tablero al computador, tratándolas y pasando posteriormente a la memoria auxiliar (discos flexibles y
duros).
TERMINALES GRAFICOS
Estos terminales son muy interesantes para aplicaciones cartográficas y catastrales, suelen ser equipos
bastantes caros debido a las características de sus videos, con grandes resoluciones, en color y normalmente
con un software muy completo. Las pantallas suelen ser bien de láser o dispositivos (CTR) con emisión de tres
haces con los colores básicos, rojo, azul y verde. El tamaño del vídeo es fundamental ya que su principal
cometido es el gráfico y su resolución para una mejor calidad de la imagen. Suelen tener funciones de
ampliación y disminución de imágenes, superposición de imágenes, borrado de parte de la pantalla, trabajan
con ventanas virtuales, etc.
MODEM
(MODulador DEModulador). Es el equipo utilizado para la comunicación de un computador con otro equipo
similar por medio de la línea telefónica. Hay módem inteligentes, que marcan números telefónicos, contestan
llamadas, seleccionan las velocidades de transmisión. etc.
Entre los módem se dan dos estilos, aquellos que usan un acoplador acústico para el auricular telefónico, y los
que son enchufados directamente en la línea telefónica.
SINTETIZADORES DE VOZ
RATON
Dispositivo para manejar con la mano sobre la mesa de trabajo, el cual facilita la escogencia de opciones en un
menú o para pintar, diseñar o crear dibujos en programas gráficos.
Los ratones mas comunes son de dos y tres botones. Cada uno de los botones hace el papel de una función.
Existe otro dispositivo muy similar al ratón que es el "TRACKBALLS" que ocupa menos espacio. Para
manipular el cursor usted solamente mueve la esfera en lugar de todo el dispositivo. Cumple las mismas
funciones que el ratón.
LAPIZ OPTICO
Dispositivo de entrada de datos en un computador, especialmente para programas relacionados con gráficos
en pantalla. Es una sonda con forma de lápiz, con la cual el usuario señala en la pantalla la línea que desea
trazar, borrar o escoge una opción del menú.
UNIDAD DE CD-ROM
Es una unidad que permite solo leer discos (Compact Disc-Read Only Memory) , de gran capacidad
almacenando música, vídeo, animaciones, texto, gráficos, fotos, programas de computador etc.
Además hacen parte de esta unidad un sistema de bafles y micrófono.
CARACTERÍSTICAS
1. Describir el problema
2. Analizar el problema
5. Codificar el programa
7. Documentar el programa
Compilador
Programa Objeto
Numérico: Símbolo empleado para representar un dígito decimal y con los cuales se puede efectuar
operaciones aritméticas.
VARIABLES
signo de Son aquellos valores que pueden o no cambiar al resolver un problema. Las variables poseen su
nombre y su valor, los nombres de las variables deben comenzar con un letra y pueden constar de un
número de letras y dígitos. Las letras mayúsculas o minúsculas no son relevantes; es igual DH y dh. El
Basic tiene reservadas varias palabras que no pueden ser usadas como nombres de variables.
Variables Numéricas
Cadenas de caracteres
Numérico
Variables arreglo
De cadena de caracteres
Son aquellos valores que no cambian al resolver un problema. Las constantes numéricas pueden contener:
Dígitos, un signo, punto decimal y E ( Notación exponencial, E significa potencia 1 de 10 ).
OPERADORES
Relaciónales Igual a =
Diferente ><, <>
Menor que <
Mayor que >
Menor igual =<, <=
Mayor igual =>, >=
Lógicos
ARITMÉTICOS
Una expresión relacional, o condición consta de dos expresiones ( o bien ambas numéricas o ambas de
cadena) que se separan por un operador relacional.
LOGICOS
En ocasiones se necesita expresar una condición que implica más de dos cantidades o una relación más
compleja que la simple igualdad u orden.
Ejemplo
Condición Valor
(2>1) AND (3>2) Verdad
(2>1) AND (3=2) Falso
(2<1) AND (2=2) Falso
(2=3) AND (3<1) Falso
(2=2) OR (3>4) Verdad
(3>1) OR (4=2) Verdad
(2=1) OR (3>2) Verdad
(2=7) OR (1>2) Verdad
XOR
XOR
XOR
XOR
NOT
NOT
NOT
NOT
Operación Resultado
“ingeniería” + “topográfica” Ingeniería topográfica
Prioridad Operador
1 ()
2 Funciones
3 ^
4 - ( negación)
5 */
6 ¥
7 MOD
8 +-
Ejemplo
A = 3*(7+1)+(3/(2+4*2+(1/3)+2)-1)^2
= 3*(7+1)+(3/(2+4*2+.33+2)-1)^2
= 3*(7+1)+(3/12.33-1)^2
= 3*8+(3/12.33-1)^2
= 3*8+(0.24-1)^2
= 3*8+(-0.75)^2
= 3*8+0.57
= 24.57
B =
Al terminar de convertir una expresión algebraica con paréntesis, cuente el número de paréntesis a la derecha
e izquierda; deben ser iguales.
EXPRESIÓN DE ASIGNACIÓN
Son las expresiones que asigna a las variables o a las constantes, un valor determinado. Este valor puede ser
una constante, una variable o el resultado de un cálculo. Su forma general es:
Ejemplo
W = 12
D = K*S
R = PI /180 * A
S = (A+B+C)/2
P = E /D
IT _______________________
F2 _______________________
Paso _______________________
3*5 _______________________
%D _______________________
Basic _______________________
Z _______________________
7F _______________________
/Q _______________________
GR _______________________
5>2 _______________________
(2=2) OR (3>1) _______________________
4=3 _______________________
(1=1)AND(3<>5) _______________________
7><7 _______________________
3<>1 _______________________
4>= 6 _______________________
(7>2) OR (3=1) _______________________
1< 5 _______________________
(3=3) AND (4>7) _______________________
_______________________
_______________________
_______________________
a b c
S
2
D KSSen2
E Vm Vv
hcr CR
D
100
A = (3*4) +(9/3+5-3
B = (2+7*(2^3)+(8+5)^2)+1.23
C = 2+(8^(1/3)+7.3
D = (5^(4+2)-2) +2.5/2
E = -2*6+(2^3+(5+4)/2+7)^3+(2/5)*5
e) Algunas de las siguientes expresiones en Basic poseen errores. Encuéntrelos y escriba en forma correcta cada
expresión.
A=BxH/2
N – 4 = 180
* = +2/-6
1\ 3 = R / T&
SEN(Y) = ( w/E) * -1
N = E *2 ^( 3+4) - 2
Esta se caracteriza porque cada acción se ejecuta en orden estricto una detrás de otra. El flujo del
programa coincide con el orden en que se encuentre escrito las instrucciones.
Forma de presentación
Algoritmo <nombre>
Comienzo
Fin
Comentarios
Lectura de variables
<identificador> = expresión
INPUT
La instrucción que activa en Basic la función de entrada es INPUT. Esta instrucción asigna a las
variables indicadas los valores leídos por le dispositivo de entrada.
Sintaxis
DIAGRAMA DE SINTAXIS
Ejemplo:
INPUT a,b,c
INPUT a, x$
INPUT ”Lado:”;a
LET
Sintaxis
LET nombre = valor
DIAGRAMA DE SINTAXIS
Por ejemplo, LET A = 4052 asigna el valor numérico 4052 en una posición de memoria que se
denominara A, a partir de está instrucción se podrá usar la variable A como si fuera el valor
numérico correspondiente.
Ejemplo
LET W = 23
LET PI = 3.151592654
LET U = E/T + 0.25
PI = 4*ATN(1)
E = 12504
R = W ^2 + 3/R
Esta sentencia proporciona un mecanismo para visualizar datos en la pantalla. Estos datos pueden
ser constantes, variables o expresiones.
Sintaxis
Ejemplo
SET
SET F3
SET E2
SET E
CLS
Ejemplo
CLS
REM
Ejemplo
REM Programa
REM Entrada
REM Cálculos
END
Ejemplo
END
Algoritmo
Algoritmo ESCALA
// GJC
// 2000-04-08
Comienzo
// ENTRADA DE DATOS
Leer ( T, D)
// CALCULOS
P = T/D
// RESULTADOS
Escribir (P)
fin
Programa
10 REM ESCALA
20 REM GJC
30 REM 2000-04-08
40 REM ENTRADA DE DATOS
50 INPUT “TERRENO:”,T
60 INPUT “DENOMINADOR:”, D
70 REM CALCULOS
80 P = T/D
90 REM RESULTADOS
100 SET F2
110 PRINT “PAPEL:”;P
120 END
Algoritmo
Programa
10 REM PULGADAS -> CENTIMETROS
20 REM GJC
30 REM 2000-04-08
40 REM ENTRADA DE DATOS
50 INPUT “PULGADAS:”, P
60 REM CALCULOS
70 C=P*2.54
80 REM RESULTADOS
90 SET F2
100 PRINT “CENTÍMETROS:”;C
110 END
Algoritmo
Programa
Algoritmo
Algoritmo DISTANCIA
// GJC
// 2000-04-08
Comienzo
// ENTRADA DE DATOS
Leer (A,B,C,D)
// CALCULOS
E= ((C-A)^2+(D-B)^2)^(1/2)
// RESULTADOS
Escribir (E)
Fin
Programa
10 REM DISTANCIA
20 REM GJC
30 REM 2000-04-08
40 REM ENTRADA DE DATOS
50 INPUT “X1:”,A
60 INPUT “Y1:”,B
70 INPUT “X2:”,C
80 INPUT “Y2:”,D
90 REM CALCULOS
100 E=SQR((C-A)^2+(D-B)^2)
110 REM RESULTADOS
120 SET F2
130 PRINT “DISTANCIA:”; E
140 END
// PUNTO DE CEROS
// GJC
// 05-06-2000
// DATOS DE ENTRADA
Comienzo
Leer (C,R,D)
// CALCULOS
X=(C/(C+R))*D
Escribir (X)
Fin
Programa
PROBLEMAS PROPUESTOS
1. Escriba un programa que calcule el error por tensión en una medición realizada con cinta.
D Ctg
2
3. Escriba un programa que calcule la nota definitiva sabiendo que los porcentajes son: 20%,
20%,20%,10%,30%
Basic para Topógrafos
41
4. Dado el siguiente algoritmo escriba el programa
Algoritmo ejer3
Comienzo
Leer (B,A)
AR = (B*A)/2
Escribir (AR)
Fin
6. Escriba un programa que calcule el valor del rumbo dado un azimut en el tercer
cuadrante.
10 REM COORDENDAS
20 REM GJC
30 REM 05-06-2000
40 INPUT “NORTE A:”,X
50 INPUT “ESTE A:”, Y
60 INPUT “AZMIUT:”,A
70 INPUT “D. H:”,L
80 A=INT A+INT(FRAC A*100)/60+FRAC(A*100)/36
90 XP = L *COS A + X: YP = l * SIN A + Y
100 SET F2
110 PRINT “NORTE:”;XP
120 PRINT “ESTE :”;YP
130 END
10 INPUT “A1X:”,A
20 INPUT ”B1Y:”;B
30 IMPUT “C1 :”,C
40 INPUT “A2X:”,D
Basic para Topógrafos
42
50 INPUT “B2Y:”,F
60 INPUT “C2 :”,G
70 M= -(A/B)
80 L=-(D/F)
90 K= C/3
100 P=G/F
110 X=(P-K)/(M-L)
120 Y=M*X+K
130 SET F5
140 PRINT “X:”;X
150 PRINT “Y:”;Y
160 END
a) De Biblioteca
SIN
COS
TAN
FIX
FRAC
ROUND
RAN#
PI
FACT
NPR
NCR
POL
REC
ASC
STR$
VAL
VALF
MID$
RIGHT$
LEFT$
LEN
HEX$
&H
DEG
DMS$
Una subrutina es una parte de un programa que está situada fuera del cuerpo del programa
principal.
Las subrutinas pueden compararse a pequeños programas, introducidos dentro de otro programa
mayor complejidad, pueden ser ejecutadas cuantas veces sea necesario.
GOSUB
Sintaxis
Diagrama de sintaxis
Ejemplo
GOSUB 120
RETURN
Señala el final de una subrutina; devuelve el control del programa a la siguiente instrucción a la
que se efectuó la llamada.
Sintaxis
RETURN
Ejemplo
RETURN
Nota: la sentencia GOSUB sirve para llamar a una subrutina y RETURN para devolver el
control de la subrutina al programa principal, en un programa normalmente existen mas
sentencias GOSUB que RETURN
Uno de los aspectos que diferencia más notoriamente a los computadores de la extensa gana de
maquinas electrónicas de calculo, es la posibilidad de tomar decisiones a partir de datos
suministrados por el programa o por el usuario.
Sin lugar a dudas, este es factor que proporciona a la maquina una gran versatilidad,
convirtiéndola en un instrumento útil para resolver un ilimitado número de tareas.
SIMPLE
MÚLTIPLE
Secuencia n
Fin Si
Caso n (Expresión)
X1: Secuencia 1
X2: Secuencia 2
x
Xn: Secuencia n
Fin Caso
IF...THEN...ELSE
Esta sentencia evalúa una expresión lógica y ejecuta una de las dos secuencias posibles
dependiendo de la verdad o falsedad de las expresiones lógicas.
Si la condición es verdadera, el programa ejecutara las instrucciones encabezadas por THEN. Si
es falsa continúa con las instrucciones encabezadas por ELSE, en caso de que no aparezca ELSE
continua con las instrucciones siguientes. El contenido de las instrucciones de las sentencias
THEN y ELSE puede ser de varias líneas.
Sintaxis
DIAGRAMA DE SINTAXIS
Ejemplo
ON...GOSUB
ON...GOTO
Estas sentencias son una estructura de control que permiten la selección de un conjunto de
acciones a partir de una lista de diferentes opciones. La instrucción IF permite solo dos
alternativas, mientras ON permite más de dos.
DIAGRAMAS DE SINTAXIS
Ejemplo
20 ON A GOSUB 100,200,300
20 ON A GOTO 100,200,300
PROBLEMAS RESUELTOS
Algoritmo
Algoritmo NOTA
// GJC
// 2000-04-08
// ENTRADA DE DATOS
Leer (N)
Basic para Topógrafos
68
// RESULTADOS
Si A>=3 Entonces
Escribir “GANO”
De lo contrario “PERDIO”
Fin si
Fin
Programa
10 REM NOTA
20 REM GJC
30 REM 2000-04-08
40 REM ENTRADA DE DATOS
50 INPUT “NOTA:”,N
60 REM RESULTADOS
70 IF A>=3 THEN PRINT “GANO” ELSE “PERDIO”
80 END
Algoritmo
Programa
Escriba un programa que calcule el rumbo y la distancia a partir de dos puntos con coordenadas.
Algortimo
AlgoritmoCOORDENADAS -> RB DH
// GJC
// 2000-08-02
Leer (N,E,M,F)
Si N-M Entonces Escribir (N)
De otro modo Escribir (S)
Fin Si
P=ABS((E-F)/(N-M))
W=ATN P
X=INT (FRAC W*60)
Y=60*FRAC(FRAC W*60)
W = INT W
Escirbir W;”º”;X;”´”
Escribir Y
Si E-F Entonces Escribir (E)
De otro modo Escribir (W)
Fin Si
D=SQR((N-M)^2+(E-F)^2)
Escribir (D)
Fin
Programa
10 REM COORDENADAS -> RB DH
20 REM GJC
30 REM 2000-08-02
40 INPUT “N1:”,N,”E1:”,E
50 INPUT “N2;”,M,”E2:”,F
60 IF N-M THEN PRINT “N ”; ELSE PRINT “S ”;
70 P=ABS((E-F)/(N-M))
80 W=ATN P
90 X=INT (FRAC W*60)
100 Y=60*FRAC(FRAC W*60)
Basic para Topógrafos
70
110 W = INT W
120 SET N
130 PRINT W;”º”;X;”´”;
140 SET F2
150 PRINT Y;
160 IF E-F >O THEN PRINT “E” ELSE PRINT “W”
170 D=SQR((N-M)^2+(E-F)^2)
180 PRINT “DH:”;D
190 END
Algortimo
Algoritmo RB -> AZ
// GJC
// 2000-08-02
Leer (C,A)
A=INTA+FRAC(A*100)/60+FRAC(A*100)/36
Caso C
1: CU1
2: CU2
3: CU3
4: CU4
Fin Caso
Fin
SubAlgortimo CU1
Escribir (A)
Retorne
SubAlgortimo CU2
R=180-A
Escribir (A)
Retorne
SubAlgortimo CU3
R=180+A
Escribir (A)
Retorne
SubAlgortimo CU4
R=360-A
Escribir (A)
Retorne
200 R=180-A
210 PRINT “AZ:”;DMS$(R)
220 RETURN
300 R=180+A
310 PRINT “AZ:”;DMS$(R)
320 RETURN
400 R=360-A
410 PRINT “AZ:”;DMS$(R)
420 RETURN
PROBLEMAS PROPUESTOS
2. Escriba u programa, dados los tres lados de un triangulo determinar si forma un triangulo,
4. Se desea diseñar un programa que escriba los valores de los días de la semana en función
del valor de una variable día introducido por teclado.
5. Modifique programa para convertir rumbos a azimutes para que convierte los rumbos
Norte, Este, Oeste y Sur
A la hora de adelantarse en los conocimientos de programación hay que disponerse a conocer las
estructuras de ciclos. Este es uno de los aspectos más importantes de la programación.
En condiciones normales, las sentencias se van ejecutando ordenadamente , y una sola vez cada
una de ellas, hasta llegar al final del programa. Sin embargo, en muchas ocasiones es necesario
que algunas sentencias se ejecutan repetidamente en determinado número de veces,
constituyendo lo que se denomina Bucle
Este tipo de sentencias denominados iterativas, ciclos repetitivas, se ejecutan bajo el control de
una condición impuesta, cuyo cumplimiento o no determina su repetición.
CONDICION AL COMIENZO
CONDICION AL FINAL
ITERATIVO
Condición al comienzo
Condición al final
Repita
Secuencia 1
Secuencia 2
x
Secuencia n
Hasta (expresión lógica)
Nota: Las sentencias al comienzo y al final no las posee el Basic de la Fx880p, por lo cual la
simularemos utilizando la sentencias IF..THEN...ELSE y GOTO ( Ir a).
WHILE...WEND
El bucle WHILE ejecutan una sentencia repetidamente hasta que la condición del bucle se falsa.
Si inicialmente la condición es falsa, nunca se ejecuta.
Sintaxis
Diagrama De Sintaxis
Simulación
DO...LOOP UNTIL
La sentencia LOOP UNTIL es una estructura de control de bucles en la que se realizan las
sentencias del interior del bucle hasta que se cumpla una condición, es decir, la condición es
verdadera.
Sintaxis
DO
Instrucciones
LOOP UNTIL <Condición>
Diagrama De Sintaxis
Simulación
30 A=A+1
40 PRINT A
50 IF A>B THEN 60 ELSE 30
60 PRINT B
5.4. ITERATIVO
FOR…TO…STEP…NEXT
Ejecuta el bucle encerrado entre ambas instrucciones tantas veces como sea necesario; hasta que
la variable inicial alcance el valor final, partiendo del valor inicial establecido y en incrementos
sucesivos.
Si el valor inicial de la variable es menor que el valor final, los incrementos deben ser positivos
ya que en caso contrario la secuencia de instrucciones no se ejecutarían. De igual modo si el valor
inicial es mayor que el valor final, el incremento debe ser en este caso negativo, es decir,
decremento. Al incremento o decremento se le suele denominar paso.
Diagrama De Sintaxis
Ejemplo
10 FOR J =1 TO 10
20 PRINT J;
30 NEXT J
PROBLEMAS RESUELTOS
Algoritmo
Algoritmo NOTAS
// GJC
// 2000-04-08
// ENTRADA CALCULOS SALIDA
Leer (n)
Para I=1, N
Leer (A,B,C,D,E)
F=(A+B+C+D+E)/5
Escribir (F)
Fin para
Fin
Algoritmo
Algortimo PROYECCIONES
// GJC
// 2000-04-08
// ENTRADA
Leer (N)
Para J=1,N
Leer (D,A)
G=INT A+INT(FRAC A*100)/60+FRAC(A*100)/36
M=D*COS G
P= D*SIN G
Escribir (M,P)
Fin Para
Fin
Programa
10 REM PROYECCIONES
20 REM GJC
30 REM 2000-04-08
40 REM ENTRADA
50 INPUT “NUMERO DE PUNTOS:”,N
60 FOR J=1 TO N
70 INPUT “DH:”,D
80 INPUT “AZ:”,A
90 G=INT A+INT(FRAC A*100)/60+FRAC(A*100)/36
Basic para Topógrafos
79
100 M=D*COS G
110 P= D*SIN G
120 SET F2
130 PRINT “PM:”;M
140 PRINT ”PP:”;P
150 NEXT J
160 END
Escriba un programa que calcule las proyecciones y coordenadas de un polígono abierto, sin
ningún control a partir de azimutes y distancias horizontales.
Algoritmo
Algoritmo PROYECCIONES
// GJC
// 2000-04-10
// ENTRADA
Leer (M)
// COORDENADAS INICIALES
Leer (N,E)
Para J=1, M
Leer ( R)
Para I=1,R:
Z=Z+1
Leer (Q)
Escribir (B)
Vaya ANG
C=Q
X=B*COS C
Y=B*SIN C
Q=N+X
U=E+Y
Escribir (X,Y)
Escribir (Q,U)
Fin Para
Leer (Q,D)
Vaya ANG
A=Q
X=D*COS A
Y=D*SIN A
N=N+X
E=E+Y
Escribir (X,Y,N,E)
Fin Para
Fin
Programa
10 REM PROYECCIONES
20 REM GJC
30 REM 2000-04-10
40 REM ENTRADA
50 PRINT “POLÍGONO ABIERTO”:CLEAR
60 INPUT “NUMERO DE ESTACIONES:”,M
70 PRINT “COORDENADAS INICIALES”
80 INPUT “NORTE :”,N:INPUT”ESTE :”,E
90 FOR J=1 TO M
100 PRINT “EST “;J
110 INPUT “# DE RADIACIONES:”,R : IF R<= O THEN 190
120 FOR I=1 TO R:Z=Z+1
130 PRINT “RAD “;Z: INPUT ”AZIMUT :”,Q
140 PRINT ”D.H :”,B: GOSUB 300:C=Q:SET F2
150 X=B*COS C: Y=B*SIN C: Q=N+X: U=E+Y: PRINT “PM:”;X
160 PRINT “PP:”;Y
170 PRINT “NORTE:”;Q
180 PRINT “ESTE :”;U:NEXT I
190 PRINT “EST “;J:INPUT ”AZIMUT :”,Q
200 INPUT “D. H :”,D:GOSUB 300:A=Q
210 X=D*COS A:Y=D*SIN A: N=N+X:E=E+Y:PRINT “PM:”;X
220 PRINT “PP:”;Y
230 PRINT “NORTE :”;N
240 PRINT “ESTE :”;E:NEXT J
250 END
Algoritmo
Algoritmo EC, P, GP
// GJC
// 2000-08-03
Leer (N)
Basic para Topógrafos
81
Para J=1, N
Leer (D, A)
A=INTA+INT(FRAC A*100)/60+FRAC(A*100)/36
X=X+D*COS A
Y=Y+D*SIN A
P=P+D
Fin Para
F=SQR(X^2+Y^2)
Escribir ( P, F, P/F)
End
Programa
10 REM EC, P, GP
20 REM GJC
30 REM 2000-08-03
40 CLEAR
50 INPUT”NUMERO DE DELTAS”;N
60 FOR J=1 TO N
70 INPUT “DH:”,D
80 INPUT “AZ:”,A
90 A=INTA+INT(FRAC A*100)/60+FRAC(A*100)/36
100 X=X+D*COS A
110 Y=Y+D*SIN A
120 P=P+D
130 NEXT J
140 F=SQR(X^2+Y^2)
150 SET F2
160 PRINT ”PERIMETRO:”;P
170 PRINT “E C:”;F
180 SET F0
190 PRINT “GP = 1/”;P/F
200 END
PROBLEMAS PROPUESTOS
2. Escriba un programa que calcule los azimutes de una poligonal a partir del azimut de la
línea 1-2 y todos sus ángulos horarios.
3. Modifique el programa de grado de precisión para que trabaje con ángulos por
deflexiones.
Es una colección de datos, y la forma en que están relacionados unos con otros determina el tipo
de estructura.
Clasificación
Formación
Vectores ( unidimensional )
Matrices ( Bidimensional )
Tridimensional
6.1. Formaciones
Son una colección o conjunto de posiciones de memoria que tiene el mismos nombre de la
variable, es decir, un conjunto de datos numéricos o de cadena que tiene el mismo nombre. Una
formación puede ser de una dimensión ( vector) o de varias dimensiones ( matrices).
Es una lista de un número finito de datos del mismo tipo, que se referencia por un nombre común
y un número de orden que son consecutivos 1,2,3,4,...n.
Las variables que representan las formaciones se denominan variables de subíndice. Cada
elemento puede tener asignado un valor y se puede manipular de igual forma que cualquier otra
variable.
La dimensión de un vector es el numero de elementos que componen el vector, una variable de
subíndice tiene el formato general.
Variable(Subíndice)
Ejemplo:
A(2) = 12504
G$(9) = “topografía”
Características
Basic para Topógrafos
88
Todo los elementos son del mismo tipo ( numérico o alfanumérico)
El vector tiene un nombre único y los elementos están ordenados de acuerdo al subíndice
Es una formación con filas y columnas que tiene dos dimensiones. Como antes se utilizaron
variables subindicadas para representar los elementos individuales de los arreglos; en el caso de
una matriz el primer subíndice representará la fila y el segundo subíndice indicará la columna, en
forma A(3,4) representa el elemento de la cuarta fila, y la tercera columna del matriz A; es más se
hará referencia a una matriz que tenga m filas y n columnas como una matriz m x n.
Variable(Subíndice, Subíndice)
Ejemplo
O(3,4)=27828
M$(3,5) = “ingeniería”
DIM
Sintaxis
Diagrama de sintaxis
Vector
DIM A(30)
Matriz
DIM B(10,10)
PROBLEMAS RESUELTOS
Algortimo
Algoritmo Vector
// GJC
// 2000-04-09
// ENTRADA
Para I=1, 5
Leer (a(i))
Fin Para
// RESULTADOS
Para I=1, 5
Escribir (a(i))
Fin Para
Fin
Programa
10 REM VECTOR
20 REM GJC
30 REM 2000-04-09
40 REM ENTRADA
50 FOR I=1 TO 5
60 PRINT “A(“;I;”) :”;
70 INPUT A(I)
80 NEXT I
90 REM RESULTADOS
100 SET F2
110 FOR I=1 TO 5
120 PRINT “A(“;I;”) :”;A(I)
130 NEXT I
140 END
Algortimo
Algortimo MATRIZ
// GJC
// 2000-04-09
// ENTRADA
A(3,3)
Para I=1, 3
Para J=1, 3
Leer A(I,J)
Fin Para
Fin Para
// SALIDA
Para I=1, 3
Para J=1, 3
Escribir A(I,J)
Fin Para
Fin Para
Fin
Programa
10 REM MATRIZ
20 REM GJC
30 REM 2000-04-09
40 REM ENTRADA
50 DIM A(3,3)
60 FOR I=1 TO 3
70 FOR J=1 TO 3
80 PRINT “A(“;I;”,”;J;”) :”;
90 INPUT A(I,J)
100 NEXT J
110 NEXT I
120 REM SALIDA
130 FOR I=1 TO 3
140 FOR J=1 TO 3
150 PRINT “A(“;I;”,”;J;”) :”;A(I,J)
160 NEXT J
170 NEXT I
180 END
Algoritmo
Algoritmo AREA
// GJC
//2001-20-01
Leer (A)
Para I =1,A
Leer (N(I),E(I))
Fin Para
N(A+1)=N(1):E(A+1)=E(1)
Para I=1,A
F=F+(N(I)+N(I+1))*(E(I)-E(I+1))
Fin Para
G=ABS (F/2)
H=G/10000
C=G/6400
Escribir (G,H,C)
Fin
Programa
10 REM AREA
20 REM GJC
30 REM 2001-20-01
40 CLEAR:CLS:PRINT “AREA”:DIM N(100),E(100)
50 PRINT “NUMERO DE PUNTOS:”;
60 INPUT “”,A
70 FOR I =1 TO A
80 PRINT “PTO “;I:PRINT “NORTE:”;
90 INPUT “”,N(I)
100 PRINT “ESTE :”;:INPUT “” ,E(I)
110 NEXT I : N(A+1)=N(1):E(A+1)=E(1)
120 FOR I=1 TO A
130 F=F+(N(I)+N(I+1))*(E(I)-E(I+1))
140 NEXT I
150 G=ABS (F/2):CLS:PRINT “AREA”
160 H=G/10000:C=G/6400
170 PRINT G;”M2”
180 PRINT INT H;” HA +”;:SET F2:PRINT FRAC H*10000
190 PRINT INT C;” CD +”;:SET F2:PRINT FRAC C*6400
200 END
Algoritmo
SubAlgortimo ANG
G=INT A+INT(FRAC A*100)/60+FRAC(A*100)/36
Retorne
1. Escriba un algoritmo que sume los elementos de las filas y las columnas de una matriz
dada.
Programa
10 REM AREA
20 REM GJC
30 REM 2000-08-04
50 DIM X(25);Y(25)
60 INPUT “NUMERO DE VÉRTICES:”,N
70 FOR I=1 TO N
80 INPUT X(I),Y(I)
90 NEXT
100 X(N+1)=X(1)
110 Y(M+1)=Y(1)
120 A=10
130 FOR I=1 TO N
140 A=A+(X(I))+X(I+1)*(Y(I)-Y(I+1)
150 NEXT I
160 PRINT “AREA:”;ASB(A)/2
170 END
A Continuación aparecen una serie de programas de topografía de uso muy frecuente y que con la
calculadora Casio Fx 880p le permite al topógrafo realizar cálculos en el campo, que serian de
gran dificultad o de muy alto costo ya que pare ello debería poseer instrumentos de topografía
muy modernos.
Programa
10 REM NIVELACION GEOMETRICA
20 REM GJC
30 REM 2000-08-04
40 PRINT “NIVELACION SIMPLE”
50 INPUT “NUMERO DE CAMBIOS:”,N
60 INPUT “COTA BM1:”,B
70 INPUT “VISTA +:”,M
80 S=S+M: A=B+M
90 SET F3
100 PRINT “ALT INS:”;A
110 INPUT “VI:”,K
120 IF K > 0 THEN GOSUB 500
130 FOR C=1 TO N
140 PRINT “CAMBIO “; C
150 INPUT “VISTA +:”,M
160 INPUT “VISTA -:”,V
170 S=S+M : O=O+V : T=A-V
180 PRINT “CAMBIO “; C
190 PRINT “COTA CAMBIO:”;T
200 A=T+M
210 PRINT “ALT INST:”;A
220 INPUT “NUMERO DE VI:”,K
230 IF K > O THEN GOSUB 500
240 NEXT C
250 INPUT “VISTA -:”,V
260 O=O+V:H=A-V
270 G=O-S:J=B-H
280 PRINT “SUMA V+:”;S
290 PRINT ”SUMA V-:”;O
300 PRINT “DIF V+/V-:”;G
310 PRINT “COTA BM2:”;H
320 PRINT “BM1-BM2:”;J
330 END
Calcular mediante ayuda de la calculadora programable el área de un lote sin necesidad de recurrir
a cálculos en la oficina, partiendo de distancias azimutes nos entrega el área y coordenadas de los
puntos para futuros cálculos.
N = D * Cos Az + N
E = D* Sen Az + E
(N
i 1
i 1 N i)(Ei 1 Ei)
Area
2
En caso de que el lote no se pueda determinar con una sola estación podemos seccionarlo y sumar
las áreas parciales para determinar la definitiva, como muestra la siguiente figura.
Fig 7.1
Programa
10 REM AREA DE UN LOTE
20 REM GJC
30 REM 2000-08-04
Basic para Topógrafos
98
40 CLEAR
50 PRINT “AREA DE UN LOTE”
60 DIM N(50), E(50)
70 INPUT “NUMERO DE RADIACIONES:”, M
80 INPUT “NORTE :”,P
90 INPUT “ESTE :”,Q
100 FOR I=1 TO N
110 PRINT “RAD :”;I
120 INPUT “AZIMUT:”,A
130 INPUT “D. H:”,D
140 A=INT A+INT(FRAC A*100)/60+FRAC(A*100)/36
150 N(I)=D*COS A+P: E(I)=D*SIN A+Q
160 NEXT I
170 REM COORDENDAS
180 N(M+1)=N(1):E(M+1)=E(1)
190 FOR I=1 TO M: SET F2
200 PRINT “RAD :”;I
210 PRINT “NORTE:”;N(I)
220 PRINT “ESTE :”;E(I)
230 F=F+(N(I)+(NI+1))*(E(I)-E(I+1))
240 NEXT I
250 REM AREA
260 PRINT “ * AREA *”
270 G=ABS F/2
280 PRINT G;”m 2”
290 H=G/10000+C=G/6400
300 SET F0
310 PRINT INT H;” Ha +”;FRAC H*10000
320 PRINT INT C:” Cd +”;FRAC C*10000
330 END
El siguiente programa no compensa un polígono mediante el método del transito, este programa se
divide en dos partes:
ns EW
CPM .PM CPP .PP
N S E W
Este programa calcula el área de un polígono del que se conocen las coordenadas de los vértices
Area (X 1Y2 X 2Y3 X 3Y4 X 4Y5 X 5Y1 X 2Y1 X 3Y2 X 4Y3 X 5Y4 X 1Y5)/ 2
Programa
10 REM AREA DE UN POLÍGONO
20 REM GJC
30 REM 2000-08-05
40 CLEAR
50 PRINT “AREA”
60 INPUT “NORTE:”,N
70 INPUT “ESTE :”,B
80 M=N: D=B
90 Z=Z+1
100 INPUT “NORTE:”,E
110 INPUT “ESTE :”,F
120 J=J+((N*F)-(B*E))/2
130 IF M<>E THEN 150
140 IF D=F THEN 160
150 N=E:B=F: GOTO 100
160 PRINT “AREA”
170 G=ABS J
180 SET F2
190 PRINT G;”m 2”
200 H=G/10000+C=G/6400
210 SET F0
220 PRINT INT H;” Ha +”;FRAC H*10000
230 PRINT INT C:” Cd +”;FRAC C*10000
240 END
El objeto de este programa es calcular la posición de un punto (Xc, Yc) determinada por la
intersección ángulo - ángulo (azimut – azimut), para ello se debe poseer las coordenadas de los
dos puntos (Xa,Ya; Xb,Yb) y los azimutes Az AC, Az BC.
Programa
10 REM INTERSECCION
20 REM GJC
30 REM 2000-08-05
40 CLEAR: PRINT “INTERSECCION”
50 INPUT “NA:”,XA,”EA:”,YA,”AZ AC:”,Q
60 GOSUB 500: AC=Q
70 INPUT “NB:”,XB,”EB:”,YB,”AZ BC:”,Q
80 GOSUB 500: BC=Q
90 IF ABS(SIN AC)=ABS(SIN BC) THEN 220
100 P=AC : GOSUB 510 : AC=P
110 P=BC : GOSUB 510 : BC=P
120 XC=XA+(((YA-YB)-(XA-XB)*TAN BC)/(TAN BC –TAN AC))
130 YC=YA+(XC-XA)*TAN AC
140 SET F2: PRINT “NC:”;XC
150 PRINT “EC:”;YC
160 END
Este programa calcula el problema de los tres puntos o de Pothenot que nos resulta muy útil para
trabajo planimétricos y geodésicos.
Fig 7.3
Programa
10 REM POTHENOT
20 REM GJC
30 REM 2000-08-05
40 PRINT “PROBLEMA DE LOS TRES PUNTOS”
50 INPUT “N1:”,X,”E1:”,Y
60 INPUT “N2:”,N,”E2:”,G
70 INPUT “N3:”,M,”E3:”,E1
80 DY=E1-G:DX=M-N
90 GOSUB 500: B=J
100 DY=Y-G: DX=X-N: GOSUB 500
110 I=J: C=I-B
120 K=SQR((M-N)^2+(E1-G)^2)
130 W= SQR((M-X)^2+(G-Y)^2)
140 IF C<O THEN C=C+360
150 INPUT “1P2:”,AN:GOSUB 600:D=AN
160 INPUT “2P3:”,AN:GOSUB 600:E=AN
170 IF C+D+E=180THEN 330 ELSE F=360-(D+C+E):Z=(K*SIND)/(W*SINE)
180 H=ATN(SIN F/(Z+COS F))
190 I=F-H: J=180-(H+E)
200 L=SIN J*K/SIN E:M1=SIN H*K/SIN E
210 IF B+J>=360 THEN Q=B+J-360 ELSE Q=B+J
220 O=N+COS Q*M1:P=G+SIN G*M1: R=B+180-H
230 IF R>= 360 THEN R=R-360
240 S= N+COS B*K+COS R*L: T=G +SIN B*K+SIN R*L
245 U=(S+O)/2:V=(P+T)/2: SET F2
Basic para Topógrafos
103
250 PRINT “NP:”;U
260 PRINT “EP:”;V
270 PRINT “D 12:”;W
280 PRINT “D 23:”;K: H1=SQR(_(X-U)^2+(Y-V)^2)
290 H2=SQR((N-U)^2+(G-V)^2):H3=SQR((M-N)^2+(E1-V)^2)
300 PRINT “D 1P:”;H1
310 PRINT “D 2P:”;H2
320 PRINT “D 3P:”;H3
330 END
Fig 7.4
1
Topografía Analítica, Gilberto Gómez Gómez, Gonzalo Jimenez Cleves y José Joaquín Vila
Ortega. Universidad del Quindío. 2000. 223 Págs.
Basic para Topógrafos
104
Programa
10 REM HANSEN
20 REM GJC
30 REM 2001-01-16
40 CLEAR:PRINT “HANSEN”
50 INPUT “NA:”,XA,”EA:”,YA,”AZ AC:”,Q
60 GOSUB 1000:AC=Q:INPUT”AZ AD:”,Q;GOSUB 1000:AD=Q
70 INPUT “NB:”,XB,”EB:”,YB,”AZ BC:”,Q
80 GOSUB 1000:BC=Q:INPUT “AZ BD:”,Q:GOSUB 1000:BD=Q
90 XC=XA+((YA-YB)-(XA-XB)*TAN BC)/(TAB BC – TAN AC)
100 XC=YA+(XC-XA)*TAN AC
110 XD=XA+((YA-YB)-(XA-XB)*TAN BD)/(TAN BD – TAN AD)
120 YD=YA+(XD-XA)*TAN AD
130 INPUT “NC´:”,NC,”EC´:”,EC
140 INPUT “ND´:”,ND,”ED´:”,ED
150 DN=SQR((XC-XD)^2+(YC-YD)^2)
160 DP=SQR((NC-ND)^2+(EC-ED)^2)
170 S= DP/DN
180 AO=ATN ((YD-YC)/(XD-XC))
190 AD=ATN ((ED-EC)/(ND-NC))
200 TH=AO-AD
210 TN=S*(XC*COS TH + YC*SIN TH) – NC
220 TE=S*(-XC*SIN TH + YC*COS TH ) – EC
230 AN=S*(XA*COS TH + YA*SIN TH) – TN
240 AE=S*(-XA*SIN TH + YA COS TH) – TE
250 BN=S*(XB*COS TH +YB*SIN TH) – TN
260 BE=S*(-XB*SIN TH + YB*COS TH) – TE
270 SET F2
280 PRINT “NA´:”;AN,”EA´:”;AE,”NB´:”,BN,”EB´:”;BE
290 END
Este programa calcula las coordenadas de un punto p desde el cual se midieron las distancias a
varias puntos coordenados.
Fig 7.5
Basic para Topógrafos
105
Programa
Fig 7.6
Programa
10 REM CURVA HORIZONTAL
20 REM GJC
30 REM 2000-08-05
40 PRINT “CURVA HORIZONTAL”
50 CLEAR: INPUT “DEFLE:”;Q: GOSUB 500:A=Q
60 INPUT “CUERDA:”,C
70 INPUT “ABS-PI:”,I
80 IF I >O THEN 110
90 INPUT “ABS PC:”,D
100 IF D>O THEN 110 ELSE 70
110 INPUT “T:”,T: IF T>O THEN 180
120 INPUT “R:”,R: IF R>O THEN 190
130 INPUT “E:”,E: IF E>O THEN 170
140 INPUT “L:”,L: IF L>O THEN 200
150 INPUT “G:”,Q:GOSUB 500:G=Q
Basic para Topógrafos
107
160 IF G>O THEN 230 ELSE 110
170 T=E/(TAN (A/4))
180 R=T/(TAN (A/2))
190 G=2*ASN((C/2)/R):GOTO 210
200 G=C*A/L
210 PRINT “G:”;DMS$(G)
220 INPUT “G DEF :”,Q:GOSUB 500: G=Q
230 SET F2:R=(C/2)/(SIN(G/2)):PRINT “R:”;R
240 K=2*R*SIN(A/2):PRINT “CL”;K
250 T=R*TAN (A/2):PRINT “T:”;T:
260 E=T*TAN(A/4):PRINT “E:”; E
270 L=C*A/G:PRINT “L:”; L
280 IF I>O THEN D=I-T
290 PRINT “ABS:”;D
300 PRINT “ DEFLE:”;DMS$(0)
310 Z=INT(D/10)*10+C-D:IF Z<= 0 THEN 350
320 PRINT “ABS:”;D+Z
330 B=(Z*(G/2))/C
340 GOSUB 600
350 IF Z=L THEN 380 ELSE Z=Z+C
360 IF Z<L THEN 320 ELSE Z=L
370 GOTO 320
380 END
El siguiente programa ajusta una rede de nivelación preestablecida, por el método de Dell,
conocido también como de aproximaciones sucesivas.
Fig 7.7
300 E1=D(1)+D(6)+D(7)+D(5)
310 E2=D(2)+D(3)+D(4)-D(7)-D(6)
320 RETURN
El siguiente programa ajusta una red sencilla de nivelación, empleando la teoría de mínimos
cuadrados por el método de ecuaciones de condición, este método de ajuste se emplea para
trabajos topográficos de alta precisión.
Fig. 7.8
Basic para Topógrafos
109
Programa
10 REM RED DE NIVELACION
20 REM GJC
30 REM 2001-25-01
40 CLS:CLEAR
50 PRINT “RED DE NIVELACION MC”
60 INPUT “NUMERO DE PUNTOS:”,N
70 DIM D(N), L(N), A(1,N), V(N,N), B(N,N), W(N,N), Y(1,1), Z(N,1), F(N,1),
G(N,N), J(N,N)
80 FOR J=1 TO N
90 PRINT “PUNTO: ”;J;:INPUT “DESNIVEL:”,D(J)
100 INPUT “DISTANCIA:”,L(J)
110 NEXT J
120 FOR J=1 TO N
130 A(1,J)=1
140 NEXT J:S=0
150 FOR J=1 TO N
160 S=D(J)+S:NEXT J
170 B(1,1)=S
180 FOR J=1 TO N:FOR I=1 TO N
190 IF J=I THEN W(J,I)=1/L(J)
200 NEXT I:V(J,J)=1:NEXT J:S=0
210 FOR J=1 TI N: FOR I=J TO J
220 IF W(I,J) <> 0 THEN 260
230 NEXT I
240 PRINT “MATRIZ SINGULAR”
250 END
260 FOR K=1 TO J
270 S=W(J,K)
280 W(J,K)=W(I,K)
290 W(I,K)=S
300 S=V(J,K)
310 V(J,K)=V(I,K)
320 V(I,K)=S
330 NEXT K
340 T=1/W(J,J)
350 FOR K=1 TO J
360 W(J,K)=T*W(J,K)
370 V(J,K)=T*V(J,K)
380 NEXT K
390 FOR L=1 TO R
400 IF L=J THEN 470
410 T=-W(L,J)
420 FOR K=1 TO J
430 W(L,K)=W(L,K)+T*W(J,K)
440 V(L,K)=V(L,K)+T*V(J,K)
450 NEXT K
460 NEXT L
Basic para Topógrafos
110
470 NEXT J
480 S=0
490 FOR I=1 TO 1
500 FOR J=1 TO N
510 S=0
520 FOR K=1 TO N
530 S=S+A(I,K)*V(K,J)
540 NEXT K
550 X(I,J)=S
560 NEXT J:NEXT I
570 FOR J=1 TO N: F(J,1)=1 NEXT J
580 S=0
590 FOR I=1 TO 1
600 FOR J=1 TO 1
610 S=0
620 S=S+X(I,K)*F(K,J)
630 S=S+X(I,K)*F(K,J)
640 NEXT K
650 Y(I,J)=1/S
660 NEXT J:NEXT I
670 S=0
680 FOR I=1 TO N
690 FOR J=1 TO 1
700 S=0
710 FOR K=1 TO N
720 S=SV(I,K)*F(K,J)
730 NEXT K
740 Z(I,J)=S
750 NEXT J:NEXT I
760 S=0
770 FOR I=1 TO N
780 FOR J=1 TO 1
790 S=0
800 FOR K=1 TO 1
810 S=S+Z(I,K)*Y(K,J)
820 NEXT K
830 G(I,J)=S
840 NEXT J:NEXT I
850 S=0
860 FOR I=1 TO N
870 FOR J=1 TO 1
880 S=0
890 FOR K=1 TO 1
900 S=S+G(I,K)*B(K,J)
910 NEXT K
920 J(I,J)=S
930 NEXT J:NEXT I
940 FOR J=1 TO N
Basic para Topógrafos
111
950 SET F3
960 PRINT “DESNIVEL”;J;D(J)-J(J,1):NEXT J
970 END
El siguiente programa ajusta una poligonal cerrada por el método XY, muy usado para
procedimientos de en los cuales halla que hacer replanteos como urbanismo, agrodesía y otros.
PROGRAMA
PROG 0
10 REM METODO XY
20 REM GJC
30 REM 2000-08-08
40 PRINT “METODO XY”
50 INPUT “1 – INI 2 – MIR 3-CAM 4-CAL 5-BOR 6-FIN”,W$
60 IF W$=”1” THEN GOTO PROG 1
70 IF W$=”2” THEN GOTO PROG 2
80 IF W$=”3” THEN GOTO PROG 3
90 IF W$=”4” THEN GOTO PROG 4
100 IF W$=”5” THEN INPUT “ESTA SEGURO S/N:”,Z$ ELSE 120
110 IF Z$=”S” THEN CLEAR :GOTO 40: ELSE 40
120 IF W$=”6” THEN END ELSE 40
PROG 1
10 CLS
20 I1=0
30 INPUT “NUMERO DE ESTACIONES:”,N
40 DIM D(N),A(N):Z=1
50 FOR J=1 TO N
60 Z=Z+1
70 IF J=N THEN Z=1
80 PRINT “EST ”;Z
90 INPUT “AZIMUT:”,Q
100 INPUT “ D H:”,D(J)
110 GOSUB PROG 6
120 A(J)=Q
170 X=D(J)*COS A(J): Y=D(J)*SIN A(J)
180 F=F+X:I1=I1+Y:P=P+D(J)
190 NEXT J
200 G=SQR(F^2+I1^2): GOSUB PROG 5
210 GOTO PROG 0
Basic para Topógrafos
112
PROG 2
10 Z=1:CLS:FOR J=1 TO N
20 Z=Z+1 IF J=N THEN Z=1
30 PRINT “EST “;Z
40 PRINT “AZIMUT”;DMS$(A(J))
50 PRINT “D H:”, D(J)
60 NEXT J
70 GOTO PROG 0
PROG 3
10 CLS: INPUT “EST “,J:IF J=1 THEN J=N+1
20 J=J-1: INPUT “AZIMUT:”,Q: GOSUB PROG 6:A(J)=Q
30 INPUT “D H:”,D(J)
40 CLS: INPUT “DESEA CAMBIAR OTRO :”,W$
50 IF W$=”S” THEN 10 ELSE GOTO PROG 0
PROG 4
10 W=0:Z=1: F=0:I1=0:P=0:S=0:L=0:C=0:E=0:B=0:
15 FOR J=1 TO N: Z=Z+1:C1=0
20 CLS: X=D(J)*COS A(J): Y=D(J)*SIN A(J):F=F+X:I1=I1+Y
25 P=P+D(J):IF A(J)<= 90 THEN 50
30 IF A(J)<= 180 THEN 40 ELSE IF A(J) <= 270 THEN 50
40 C=C+ABS X:E=E+ABS Y:GOTO 60
50 W=W+ABS X:B=B+ABS Y
60 NEXT J: GOSUB PROG 5
70 IF ABS F > ABS I1 THEN 100
80 IF I1>0 THEN 90 ELSE M=-B:S= -E:L=I1:E=C:C=-W:I1=F:AA=1:GOTO120
90 M=B:S=E:L=I1:E=-C:C=W:I1=F:AA=1:GOTO 120
100 IF F>0 THEN 110 ELSE M=-W:S=-C:L=F:C=-B:AA=2:GOTO 120
110 M=W:S=C:L=F:E=-E:C=B:AA=2
120 SET F 2:
130 PRINT “1 “;M;”X “;S;”Y=”;L
140 PRINT “2 “;C;”X “;E;”Y=”;I1
150 U = -(M/S):H=-(C/E):K1=L/S
160 G=I1/E:O=(G-K1)/(U-H):R=(U*O+K1)
170 PRINT “X :”;O: PRINT “Y:”;R
180 IF AA<> 1 THEN 190 ELSE S=-S:E=E-E
190 INPUT “NORTE:”,U:INPUT “ESTE :”,H
200 K=0:Z=1: FOR J=1 TO N:Z=Z+1:
205 INPUT “NUM RAD:”,G: IF G<= O THEN 270
210 FOR I=1 TO G:K=K+1:PRINT “RAD ”;K:INPUT “AZIMUT:”,Q
220 INPUT “D H:”,B: GOSUB PROG 6: C1=Q
230 X=B*COS C1:Y=B*SIN C1:P=U+X:K2=H+Y
240 PRINT “NORTE:”;P
250 PRINT “ESTE :”;K2
260 NEXT I
270 X=D(J)*COS A(J):Y=D(J)*SIN A(J):IF J=N THEN Z=1
Basic para Topógrafos
113
280 IF A(J)<=90 THEN 300 ELSE IF A(J)<=180 THEN 290 ELSE IF A(J) <=
270 THEN 300
290 W=R*Y*SGN E: Q=R*X*SGN S: F=SGN X*(ABS X-Q):L=SGN Y*(ABS
Y-W): GOTO 310
300 Q=O*X*SGN M: W=O*Y*SGN C: F= SGN X * (ABS X-Q):L=SGN Y *
(ABS Y-W)
310 U=U+F:H=H+L:PRINT “EST “;Z:PRINT”NORTE”; U
320 PRINT “ESTE :”;H: NEXT J: GOTO PROG 0
PROG 5
10 G=SQR(F^2+I1^2): PRINT “DIFER NS:”;F
20 PRINT “DIFER EW:”;I1
30 PRINT “PERIMETRO:”; P
40 PRINT “E C”,G
50 PRINT “GP = 1/”;G
60 GOSUB PROG 5: RETURN
PROG 6
10 Q=INT Q+INT(FRAC Q*100)/60+FRAC(Q*100)/36:RETURN
Excel trabaja con hojas de cálculo (inicialmente tres) que están integradas en libros de trabajo.
Un libro de trabajo es un conjunto de hojas de cálculo y otros elementos como gráficos, hojas de
macros, con el lenguaje Visual BASIC se pueden escribir programas para realizar tareas en Excel
etc. El libro de trabajo contiene 16 hojas de cálculo que se pueden eliminar, insertar, mover,
copiar, cambiar de nombre,... y otros
Cada una de las hojas de cálculo Excel es una cuadrícula rectangular que tiene 16.384 filas y 256
columnas. Cada columna puede tener entre 0 y 255 caracteres de ancho. Las filas están
numeradas desde el uno (1) y las columnas están rotuladas de izquierda a derecha de la A a la Z,
y con combinaciones de letras a continuación. La ventana muestra sólo una parte de la hoja de
cálculo. La unidad básica de la hoja de cálculo es una celda. Las celdas se identifican con su
encabezamiento de columna y su número de fila. La hoja de cálculo se completa introduciendo
texto, números y fórmulas en las celdas.
Microsoft Excel se ha convertido en uno de los productos mas sencillos y de fácil acceso, por
esto se escogió par este desarrollo. Los siguientes ejemplos son para personas que manejan Excel
y pretenden ser de ayuda para grandes cálculos y procedimientos iniciales para su posterior
mejora.
Para mejor aprovechamiento de los siguientes ejercicios se debe tener conocimientos básicos del
manejo de la Hoja electrónica.
Basic para Topógrafos
117
8.1. ALTIMETRIA
2. Ubicar el cursor en B6 y marco desde la celda B1 hasta la celda B11 ( para el ejemplo que
estamos haciendo ó hasta la celda que contenga datos). Posteriormente extiendo esta
marca hasta la columna D . Escojo en el menú superior Formato, luego celda, número y
escojo dos posiciones decimales y marco con el ratón Aceptar .
Nota: Para trabajos muy especiales de pendientes muy pequeñas se debe seleccionar tres
posiciones decimales.
5. Ubicado En la celda C5 Presiono el botón derecho del rato, aparece un menú del cual
selecciono copiar (las celda seleccionada aparece en línea punteada intermitente). Marco
con el ratón desde la celda C8 hasta la celda C11 (esto se logra teniendo presionado el
Basic para Topógrafos
118
botón izquierdo del ratón ). Presiono el botón derecho y selecciono pegar aparece lo
siguiente:
7. Usando el mismo procedimiento del paso 5 realizo una copia de celda D6 en las celdas
que van de D7 a D11
11. Para mejorar la presentación coloco el cursor sobre el eje X y presiono el botón derecho
del ratón y escojo Formato de eje, selecciono escala, retiro la marca de ejes de valor (Y)
cruza entre categorías y presiono aceptar.
1. Desplace el cursor sobre la letra A y con el botón derecho del ratón presionado llévelo
hasta la letra M presione el botón izquierdo del ratón y seleccione Ancho de Columna
Escriba el numero 7 y marque Aceptar , con esto dejamos todas las columna de la A a la M
con un ancho de 7.
2. Marco una zona con el ratón desde A6 hasta M22, teniendo presionado el botón izquierdo
del ratón seleccione Formato, escoja Celda, escoja Numero y en Posiciones decimales
marque 2 , presione Aceptar . Escriba lo siguiente :
4. Marco la Posición desde B12 hasta C12, Seleccione Copiar y marque una zona desde D12
hasta M12 y presione el botón izquierdo del ratón y escoja pegar. Realizo el mismo
procedimiento de pegado en las columnas 14, 16, 18, 20 . Obteniendo lo siguiente:
6. Me ubico en B7 y marco hasta C7, selecciono Copiar y marco una zona desde D7 hasta M7 y
selecciono Pegar
Para este método solo remplace el paso tres del método de Wilson por el siguiente:
Nota: Este método es el conocido popularmente cono el método de calculo de volúmenes por
cuadricula. Ideal para terrenos planos.
Para este método solo remplace el paso tres del método de Wilson por el siguiente:
Nota: este y el método de Wilson son métodos que se emplean para terrenos con pendiente
pronunciadas.
Siga los mismos pasos del método de Wilson (8.1.2) además de la modificación en paso no 3 del
método del promedio de alturas.
Podemos ver la cota de balance, esto permite que el volumen de corte sea igual al volumen de
lleno.
8.2.1.MÉTODO DE LA BRUJULA
Los siguientes son los pasos para ajustar una poligonal cerrada por el método de la brújula.
2. Ubico el cursor en la celda E15 y marco una zona hasta la celda L20 selecciono en el
menú Formato, selecciono Celda, escojo numero de posiciones decimales y escojo dos y
presiono aceptar
Basic para Topógrafos
128
3. Ubico el cursor en la celda E15 y escribo: +D15*COS((B15+C15/60)*PI()/180)
5. Ubico el cursor en la celda E15 marco una zona hasta F15 presiono el botón derecho del
ratón y selecciono Copiar, marco una zona desde E16 hasta F20 y presiono el botón
derecho del ratón y selecciono Pegar.
9. Coloco el cursor en D9 selecciono con el ratón Copiar marco una zona desde E9 hasta F9
y selecciono Pegar.
10. Marco una zona desde D9 hasta F9 , presiono el botón derecho del ratón escojo en el
menú Formato de celdas selecciono Número escojo 2 posiciones decimales y presiono
aceptar.
13. Marco una zona que vaya desde G15 a H15 , selecciono Copiar, marco una zona desde
G16 hasta H20 y selecciono Pegar.
Basic para Topógrafos
129
14. Ubico el cursor en la celda I15 y tecleo +E15+G15
16. Marco desde I15 hasta J15 y selecciono Copiar , marco una zona desde I16 hasta J20 y
selecciono Pegar.
21. Selecciono una zona que va desde K15 hasta L15, marco Copiar, marco una zona desde
K16 hasta L20 y selecciono Pegar.
Nota: Si la poligonal es de mas lados simplemente se copia una zona comprendida desde la celda
A20 hasta L20 la cantidad de estaciones que se desean adicionar.
A continuación aparece los pasos para calcular una poligonal cerrada por el método de Crandall,
este es una emulación al método de mínimos cuadrados.
2. Ubico el cursor en la celda E15 y marco una zona hasta la celda L20 selecciono en el
menú Formato, selecciono Celda, escojo numero de posiciones decimales y escojo dos y
presiono aceptar
5. Ubico el cursor en la celda E15 marco una zona hasta F15 presiono el botón derecho del
ratón y selecciono Copiar, marco una zona desde E16 hasta F20 y presiono el botón
derecho del ratón y selecciono Pegar.
10. Marco una zona desde D5 hasta M9 , presiono el botón derecho del ratón escojo en el
menú Formato de celdas selecciono Número escojo 2 posiciones decimales y presiono
aceptar.
14. Marco la zona que va desde G15 hasta I15, presiono el botón derecho del ratón y
selecciono Copiar, marco una zona desde G16 hasta I20 y selecciono Pegar.
15. Ubico el cursor en F9 presiono el botón derecho del ratón y selecciono Copiar , defino
una zona desde G9 hasta I9 y escojo pegar
22. Ubico el cursor en la celda N14 y tecleo 1000 (orígenes de las norte)
28. Marco la zona que va desde J15 hasta O15, presiono el botón derecho del ratón y
selecciono Copiar, marco una zona desde J16 hasta o20 y selecciono Pegar
Nota: si la poligonal posee mas delatas, copie la zona desde A20 hasta O20 las veces que sea
necesario, o , si la poligonal posee menos deltas del ejemplo planteado borre las estaciones
sobrantes, marcando las filas que desde la columna A hasta la columna O.
Se posee una lista de coordenadas de un predio del cual hay que obtener el área.
Nota: Se debe escribir el primer par de coordenadas al final de la lista, como parece en la grafica
anterior.
3. Ubico el cursor en C5, presiono el botón derecho del ratón y selecciono Copiar, marco
una zona desde C6 hasta C10 y selecciono Pegar.
Excel le brinda la posibilidad en forma fácil de realizar una gran cantidad de cálculos.
A partir de este trabajo se puede implementar otros programas con gran facilidad
ANDERSON JAMES M., MIKHAIL EDWARD M., Introducción a la Topografía. McGraw Hill.
Mexico. 1988. 753 Págs.
BANNISTER, A. AND RAYMOND. S.. Surveying. 4 th. Ed.. pitman publishing Ltd.. London.
1977. 632 Págs.
BOOCH, GRADY. Análisis y diseño orientado a objetos con aplicaciones. 2 ed. Addison Wesley /
Diaz de Santos. 1996. 693 Págs.
CASIO. Computadora personal, scientific library 116. FX-850P/FX880P. Manual del propietario.
Japón. 430 Págs.
DAVIS, RAYMOND E., FOOTE, FRANCIS S., ANDERSON, JAMES H.,AND MIKHAIL,
EDWARD M.. Surveying Theory and Practice. 6th. Ed.. McGraw-Hill Book Co.. New York.
1981. 992 Págs.
JOYANES AGUILAR, LUIS. MUÑOZ CLEMENTE ANTONIO. Microsoft Visual Basic 6.0.
McGrawHill. España. 1999. 318 Págs.
MATTHEWS, MARTÍN S. Excel para Windows 95 a su alcance. McGraw Hill. España. 1996. 509
Pags.
Basic para Topógrafos
141
MENDENHALL, WILLIAM. Introducción a la Probabilidad y la Estadística. Wadsworth
Internacional / Iberoamérica. Belmont (California). 1982. 626 Págs.
PAPPAS, CHRIS H. MURRAY, H. WILLIAM. Visual C++ 6.0. Osborne McGraw-Hill. España.
1999. 946 Págs.
RAYNER, WILLIAN H. and Schmidt, Milton o.. Fundamentals of Surveying. Van Nostrand Co..
New York. 1969. 533. Págs.
RICHARDUS. P., assisted by Allman, J. S.. Project Surveying. North-Holland Publishing Co..
Amsterdam. 1966. 467 Págs.
SHEPHERD, F. A.. Surveying Problems and Solutions. Edward Arnold Ltd.. London 1968. 654
Págs.
TRUTMANN, O.. El Teodolito y su empleo. Wild Heerbrugg (Suiza). 1976. 108 Págs.
WOLF, PAUL R., GHILANI CHARLES D. Adjustment computations. Statistics and Least
Squares in Surveying and GIS. John Wiley & Sons. 1997. 564 págs.
Internet
Topographic Surveying
http://uregina.ca/~sauchyn/geog411/topographic_surveying.html