Está en la página 1de 7

EXPORT Abastecimientos()

BEGIN
LOCAL menu,m1,menu1,n;
LOCAL m2,m3,i,sum,m4,a,b;
LOCAL P,sum1,P1,AP,A2P,m;
LOCAL sum2,sum3,sum4,sum5;
LOCAL sum6,sum7,sum8,sum9;
LOCAL r;
REPEAT
CHOOSE(menu,"METODOS DE ESTIMACION","INGRESO DE
DATOS","RESULTADOS","SALIR");
IF menu==1 THEN
INPUT({n,P1});
m1:=MAKEMAT(0,n,2);

EDITMAT(m1,{"Ingreso de Datos",{"1"},{"AÑO","POBLACION",""}});
END;

IF menu==2 THEN
REPEAT
CHOOSE(menu1,"RESULTADOS","METODO ARITMETICO","METODO DE
INTERES SIMPLE","METODO GEOMETRICO","METODO DE LA
PARABOLA","METODO DE LOS INCREMENTOS VARIABLES","METODO
CURVA NORMAL LOGISTICA","METODO DE LOS MINIMOS
CUADRADOS","METODO DE LA PARABLOCA CUBICA","SALIR");
////inicio 1
IF menu1==1 THEN
PRINT();
INPUT(r);
sum:=0;
FOR i FROM 1 TO n-1 DO
m1(i+1,3):=ROUND(((m1(i+1,2)-m1(i,2))/(m1(i+1,1)-m1(i,1))),r);
sum:=sum+m1(i+1,3);
END;
m1(n+1,3):=ROUND((sum/(n-1)),r);
P:=ROUND((m1(n,2)+m1(n+1,3)*(P1-m1(n,1))),r);
EDITMAT(m1,{"METODO ARITMETICO",{"1"},{"Año","Poblacion","r",""}});
PRINT("P: "+P+" hab.");
WAIT(-1);
END;
////fin 1
///inicio 2
IF menu1==2 THEN
INPUT(r);
PRINT();
sum:=0;
FOR i FROM 1 TO n+1 DO
m1(i,3):=0;
END;
FOR i FROM 1 TO n-1 DO
m1(i+1,3):=m1(i+1,2)-m1(i,2);
m1(i+1,4):=ROUND((m1(i,2)*(m1(i+1,1)-m1(i,1))),r);
m1(i+1,5):=ROUND((m1(i+1,3)/m1(i+1,4)),r);
sum:=m1(i+1,5)+sum;
END;

m1(n+1,5):=ROUND((sum/(n-1)),r);
P:=ROUND((m1(n,2)*(1+m1(n+1,5)*(P1-m1(n,1)))),r);
EDITMAT(m1,{"METODO DE INTERES SIMPLE",{"1"},
{"Año","Poblacion","Pi+1-Pi","P (ti+1-ti)","r",""}});
PRINT("P: "+P+" hab.");
WAIT(-1);
END;
///fin 2
///inicio 3
IF menu1==3 THEN
INPUT(r);
PRINT();
sum:=0;
FOR i FROM 1 TO n+1 DO
m1(i,3):=0;
m1(i,4):=0;
m1(i,5):=0;
END;
FOR i FROM 1 TO n-1 DO
m1(i+1,3):=m1(i+1,1)-m1(i,1);
m1(i+1,4):=ROUND(((m1(i+1,2)/m1(i,2))^(1/m1(i+1,3))),r)-1;
sum:=m1(i+1,4)+sum;
END;
m1(n+1,4):=ROUND((sum/(n-1)),r);
P:=ROUND((m1(n,2)*(m1(n+1,4)+1)^(P1-m1(n,1))),r);
EDITMAT(m1,{"METODO GEOMETRICO",{"1"},
{"Año","Poblacion","At","r",""}});
PRINT("P: "+P+" hab.");
WAIT(-1);
END;
//// FIN 3
////INICIO 4
IF menu1==4 THEN
INPUT(r);
PRINT();
sum:=0;
FOR i FROM 1 TO n+1 DO
m1(i,3):=0;
m1(i,4):=0;
m1(i,5):=0;
END;

FOR i FROM 1 TO n-1 DO


m1(i+1,3):=m1(i+1,1)-m1(1,1);
END;

m2:=ROUND((RREF([[(m1(1,3))^2,m1(1,3),1,m1(1,2)],
[m1(2,3)^2,m1(2,3),1,m1(2,2)],[m1(3,3)^2,m1(3,3),1,m1(3,2)]])),r);
EDITMAT(m2,{"METODO DE LA PARABOLA",{"A","B","C",""},{""}});
P:=ROUND((m2(1,4)*(P1-m1(1,1))^2+m2(2,4)*(P1-m1(1,1))+m2(3,4)),r);

PRINT("P: "+P+" hab.");

WAIT(-1);
END;
////FIN 4
////INICIO 5
IF menu1==5 THEN
INPUT(r);
PRINT();
sum:=0;
sum1:=0;

FOR i FROM 1 TO n+1 DO


m1(i,3):=0;
m1(i,4):=0;
m1(i,5):=0;
END;
FOR i FROM 1 TO n-1 DO
m1(i+1,3):=m1(i+1,2)-m1(i,2);
sum:=m1(i+1,3)+sum;
END;
FOR i FROM 1 TO n-2 DO
m1(i+2,4):=m1(i+2,3)-m1(i+1,3);
sum1:=sum1+m1(i+2,4);
END;
m1(n+1,3):=sum;
m1(n+1,4):=sum1;
AP:=ROUND((sum/(n-1)),r);
A2P:=ROUND((sum1/(n-2)),r);
m:=ROUND(((P1-m1(n,1))/10),r);
P:=ROUND((m1(n,2)+m*AP+(m*(m-1)*A2P)/2),r);
EDITMAT(m1,{"METODO DE LOS INCREMENTOS VARIABLES",{"1"},
{"Año","Poblacion","AP","A2P",""}});
PRINT("AP: "+AP);
PRINT("A2P: "+A2P);
PRINT("m: "+m+" decadas");
PRINT("P: "+P+" Hab.");
WAIT(-1);
END;
////FIN 5
///INICIO 6
IF menu1==6 THEN
INPUT(r);
LOCAL PS,a,b,t;
PRINT();

IF m1(1,2)*m1(3,2)<(m1(2,2))^2 AND m1(1,2)+m1(3,2)<(m1(2,2))*2 THEN


PS:=ROUND(((2*m1(1,2)*m1(2,2)*m1(3,2)-((m1(2,2)^2)*(m1(1,2)+m1(3,2))))/
(m1(1,2)*m1(3,2)-m1(2,2)^2)),r);
a:=ROUND((LN(PS/m1(1,2)-1)),r);
b:=ROUND((LN((m1(1,2)*(PS-m1(2,2)))/(m1(2,2)*(PS-m1(1,2))))),r);
t:=ROUND(((P1-m1(1,1))/10),r);
P:=ROUND((PS/(1+e^(a+b*t))),r);

PRINT("Ps: "+PS+" hab.");


PRINT("a: "+a);
PRINT("b: "+b);
PRINT("t: "+t);
PRINT("P: "+P+" hab.");

ELSE
PRINT("No cumple condicion");
END;
WAIT(-1);
END;
////FIN 6
////INICIO 7
IF menu1==7 THEN
INPUT(r);
PRINT();
sum1:=0;
sum:=0;
sum2:=0;
sum3:=0;
sum4:=0;
sum5:=0;
FOR i FROM 1 TO n DO
m1(i,2):=ROUND((m1(i,2)/1000),r);
END;

FOR i FROM 1 TO n-1 DO

m1(i,3):=ROUND((((m1(i+1,2)-m1(i,2))/m1(i,2))*100),r);
m1(i,4):=ROUND((LOG(m1(i,3))),r);
m1(i,5):=ROUND((m1(i,2)^2),r);
m1(i,6):=ROUND((m1(i,2)*m1(i,3)),r);
m1(i,7):=ROUND((m1(i,2)*LOG(m1(i,3))),r);

sum:=sum+m1(i,2);
sum1:=sum1+m1(i,3);
sum2:=sum2+m1(i,4);
sum3:=sum3+m1(i,5);
sum4:=sum4+m1(i,6);
sum5:=sum5+m1(i,7);
END;

m1(n+1,2):=sum;
m1(n+1,3):=sum1;
m1(n+1,4):=sum2;
m1(n+1,5):=sum3;
m1(n+1,6):=sum4;
m1(n+1,7):=sum5;

m1(n+2,2):=ROUND((sum/(n-1)),r);
m1(n+2,3):=ROUND((sum1/(n-1)),r);
m1(n+2,4):=ROUND((sum2/(n-1)),r);
m1(n+2,5):=ROUND((sum3/(n-1)),r);
m1(n+2,6):=ROUND((sum4/(n-1)),r);
m1(n+2,7):=ROUND((sum5/(n-1)),r);

EDITMAT(m1,{"METODO DE LOS MINIMOS CUADRADOS",{"1"},


{"Año","Poblacion","Yi","LOG (Yi)","Xi ^ 2","Xi*Yi","Xi*LOG (Yi)",""}});
///CRECIMIENTO ARITMETICO
m2:=ROUND((RREF([[1,m1(n+2,2),m1(n+2,3)],
[m1(n+2,2),m1(n+2,5),m1(n+2,6)]])),r);

EDITMAT(m2,{"Resultados",{"a","b",""},{""}});

////CRECIMIENTO GEOMETRICO
m3:=ROUND((RREF([[1,m1(n+2,2),m1(n+2,4)],
[m1(n+2,2),m1(n+2,5),m1(n+2,7)]])),r);

a:=ROUND((10^m3(1,3)),r);
b:=ROUND((m3(2,3)/LOG(e)),r);
EDITMAT(m3,{"Resultados",{"a","b",""},{""}});

m4:=MAKEMAT(0,4,6);

m4(1,1):=m1(n,2);
m4(1,2):=m1(n,2);

FOR i FROM 1 TO 4 DO
m4(i,3):=ROUND((m2(1,3)+m2(2,3)*m4(i,1)),r);
m4(i,4):=ROUND((a*e^(b*m4(i,2))),r);
m4(i,5):=ROUND((m4(i,1)*m4(i,3)/100),r);
m4(i,6):=ROUND((m4(i,2)*m4(i,4)/100),r);
m4(i+1,1):=m4(i,1)+m4(i,5);
m4(i+1,2):=m4(i,2)+m4(i,6);
END;
EDITMAT(m4,{"Resultado final",{"0","10","20","30","40",""},{"P aritmetico","P
geometrico","Crec. aritmetico","Crec. geometrico","Incre. aritmetico","Crec.
geometrico",""}});
END;
////FIN 7

/////inicio 8
IF menu1==8 THEN
INPUT(r);
LOCAL x1;
PRINT();

sum1:=0;
sum:=0;
sum2:=0;
sum3:=0;
sum4:=0;
sum5:=0;
sum6:=0;
sum7:=0;
sum8:=0;
sum9:=0;
EDITMAT(m1,{"Ingreso de Datos",{"1"},{"AÑO","POBLACION","X",""}});

FOR i FROM 1 TO n DO
m1(i,4):=ROUND((m1(i,3)^2),r);
m1(i,5):=ROUND((m1(i,3)^3),r);
m1(i,6):=ROUND((m1(i,3)^4),r);
m1(i,7):=ROUND((m1(i,3)^5),r);
m1(i,8):=ROUND((m1(i,3)^6),r);
m1(i,9):=ROUND((m1(i,2)*m1(i,3)),r);
m1(i,10):=ROUND((m1(i,3)^2*m1(i,2)),r);
m1(i,11):=ROUND((m1(i,3)^3*m1(i,2)),r);
sum:=m1(i,2)+sum;
sum1:=m1(i,3)+sum1;
sum2:=m1(i,4)+sum2;
sum3:=m1(i,5)+sum3;
sum4:=m1(i,6)+sum4;
sum5:=m1(i,7)+sum5;
sum6:=m1(i,8)+sum6;
sum7:=m1(i,9)+sum7;
sum8:=m1(i,10)+sum8;
sum9:=m1(i,11)+sum9;
END;

m1(n+1,2):=sum;
m1(n+1,3):=sum1;
m1(n+1,4):=sum2;
m1(n+1,5):=sum3;
m1(n+1,6):=sum4;
m1(n+1,7):=sum5;
m1(n+1,8):=sum6;
m1(n+1,9):=sum7;
m1(n+1,10):=sum8;
m1(n+1,11):=sum9;

EDITMAT(m1,{"Resultados",{"1"},
{"AÑO","POBLACION","X","X2","X3","X4","X5","X6","XY","X2Y","X3Y",""}});

m2:=ROUND((RREF([[n,sum1,sum2,sum3,sum],[sum1,sum2,sum3,sum4,sum7],
[sum2,sum3,sum4,sum5,sum8],[sum3,sum4,sum5,sum6,sum9]])),r);

EDITMAT(m2);

x1:=0;
FOR i FROM 1 TO n DO
x1:=m1(i,3);
IF x1==0 THEN
P:=ROUND((m2(1,5)+m2(2,5)*((P1-m1(i,1))/10)+m2(3,5)*((P1-
m1(i,1))/10)^2+m2(4,5)*((P1-m1(i,1))/10)^3),r);

END;

END;

PRINT("P: "+P+"Hab.");

WAIT(-1);
END;

UNTIL menu1==9;

END;

UNTIL menu==3;

END;

También podría gustarte