Вы находитесь на странице: 1из 7

PARA LA EJECUCION DEL PROGRAMA SE ESCRIBE EN EL RPL “poligonal(1)”

Y luego ENTER

Te pedirá los datos del azimut de la primera estación


Las coordenadas en este y norte del primer punto

Y el numero de lados de la poligonal

Seguidamente te preguntara los datos de cada punto comenzando por el primero

El angulo interno del primer punto y su distancia al siguiente punto

Seguidamente te preguntara lo mismo para los siguente puntos


Al final después de ingresar todos los datos te entregara lass coordendas corregidas de cada
punto

1. DENTRO DEL PROGRAMA PRIMERO TE EVALUA EL ERROR ANGULAR

La suma de los angulos internos debe corresponder a la suma de angulos internos de la


poligonal según sus lados : 180(n-2)

Si esta dentro de la tolerancia 10’’(n)^1/2 el programa seguirá corriendo y procederá a corregir


los angulos internos

2. LUEGO HALLA LOS AZIMUTS


3. Luego halla las coordendas parciales
4. Luego la corrección de coordendas parciales
5. Luego las coordendas parciales corregidas
6. Y finalmente según la coordendas totales según las coordendas del primer punto que
ingresamos
function poligonal(a)

println("Programa para correccion de poligonal de n lados de levatamiento topografico ")

println("Ingrese los datos de su primera estacion: ")

println(" -Azimut:")

print(" *Grados : ")

g = parse(Int64,readline())

print(" *Minutos : ")

m = parse(Int64,readline())

print(" *Segundos : ")

s = parse(Int64,readline())

print(" -Coordenadas en Este : ")

este = parse(Float64,readline())

print(" -Coordenadas en Norte : ")

norte = parse(Float64,readline())

print(" -Digite la cantidad de lados de su poligonal: ")

nlados = parse(Int64,readline())

#creamos una matriz donde almacenar los datos de cada lado ( grados, minutos, segundos,
distancia)

M=zeros(nlados,4)

for i=1:nlados

println(" -PARA EL LADO NUMERO ",i," INGRESE LOS SIGUIENTES DATOS : ")

println(" -Ingrese el angulo interno : ")

print(" *Grados : ")

M[i,1] = parse(Int64,readline())

print(" *Minutos : ")

M[i,2] = parse(Int64,readline())

print(" *Segundos : ")

M[i,3] = parse(Int64,readline())
print(" -Ingrese la distancia : ")

M[i,4] = parse(Float64,readline())

end

#calculo de error angular y correcion

sumapoligono=180*(nlados-2) #la suma de angulos de acuerdo al poligono

sumaangulos=0 #almacenara la suma de angulos

for j=1:nlados #matriz para la suma de angulos internos

sumaangulos=sumaangulos+M[j,1]+M[j,2]/60+M[j,3]/3600

end

toleranciang=nlados^(0.5)*5/3600

errorcierreang=sumaangulos-sumapoligono#error de cierre angular

if abs(errorcierreang)<toleranciang

println(" SU MEDICION EXCEDE LA TOLERANCIA ANGULAR REPITA CORRIJA SUS DATOS")

broke

end

correcang=errorcierreang/nlados

# matriz de angulos corregidos

MC=zeros(nlados,1)

for k=1:nlados # matriz de angulos corregidos

MC[k,1] = M[k,1]+M[k,2]/60+M[k,3]/3600-correcang

end

#CALCULOS DE AZIMUTS

MAZIM=zeros(nlados,1)

MAZIM[1,1]=g+m/60+s/3600

for l=2:nlados

MAZIM[l,1]=MAZIM[l-1,1]+180-MC[l,1]

if MAZIM[l,1]>360
MAZIM[l,1]=MAZIM[l,1]-360

end

end

#MATRIZ PARA HALLAR EL PERIMETRO

p=0

for c=1:nlados

p=M[c,4]+p

end

#MATRIZ DE COORDENADAS PARCIALES

MCPARC=zeros(nlados,2)

for b=1:nlados

MCPARC[b,1]=M[b,4]*sin(MAZIM[b,1]*pi/180)

MCPARC[b,2]=M[b,4]*cos(MAZIM[b,1]*pi/180)

end

#MATRIZ PARA HALLAR la sumatoria de coordenadas PARCIALES en este y norte

ep=0

np=0

for d=1:nlados

ep=MCPARC[d,1]+ep

np=MCPARC[d,2]+np

end

#MATRIZ DE correcciones de COORDENADAS PARCIALES

MCOCPARC=zeros(nlados,2)

for f=1:nlados

MCOCPARC[f,1]=ep/p*M[f,4]

MCOCPARC[f,2]=np/p*M[f,4]

end
#MATRIZ DE COORDENADAS PARCIALES .... CORREGIDAS

MACOPACO=zeros(nlados,2)

for h=1:nlados

MACOPACO[h,1]=MCPARC[h,1]-MCOCPARC[h,1]

MACOPACO[h,2]=MCPARC[h,2]-MCOCPARC[h,2]

end

#MATRIZ DE COORDENADAS TOTALES

MTOTAL=zeros(nlados,2)

MTOTAL[1,1]=este

MTOTAL[1,2]=norte

for i=2:nlados

MTOTAL[i,1]=MTOTAL[i-1,1]+MACOPACO[i-1,1]

MTOTAL[i,2]=MTOTAL[i-1,2]+MACOPACO[i-1,2]

end

for i=1:nlados

println("para el punto numero ",i," sus coordenadas este y norte son respectivamente :
",MTOTAL[i,1]," , ",MTOTAL[i,2])

end

end

Вам также может понравиться