Código Fuente de UBOOT CALCULATOR

Foro para discusión de temas no relacionados en nada con la 24ª Flotilla o los temas comunes que en ella se tratan ("Off-Topic"). Todas las restricciones de moderación también se aplican en esta sección.

Moderador: MODERACION

Responder
Dimitri Vodkachov
Kapitänleutnant
Kapitänleutnant
Mensajes: 388
Registrado: 28 Ago 2014 20:36
Ubicación: 20°24'57"S 166°32'14"E UTC+11

Código Fuente de UBOOT CALCULATOR

Saludos ::kaleun:

A petición del comandante CapSea, hago público el código fuente de mi pequeño programilla.

http://www.24flotilla.com/foro/viewtopi ... =1&t=48718

Por lo menos, que sirva de ejemplo de como NO se debe programar:

Código: Seleccionar todo


/*----------------------------------------------------------------
|  Autor: Dimitri Vodkachov                                           
|  Fecha: 03-02-2016                             Versión: 3.4      
|----------------------------------------------------------------   
|  Descripción del Programa: Algunos cálculos útiles        
|                                                                                   
| ----------------------------------------------------------------*/

// Incluir E/S y Librerías Standard
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <Cmath>
#include <stdio.h>
#include <windows.h>
#include <string.h>
using namespace std;

// Zona de Declaración de Constantes
const float pi=3.14159265359;
// Zona de Declaración de Tipos

// Zona de Cabeceras de Procedimientos y Funciones
double calcang(float D1, float D22, float D3);
// Programa Principal
int main()
{
	double AOB2,Rbarco,vc,rc1,D2,eslo,seg,rcd,rccost,refdem1,beta1,beta2,dem1cost,aro,arr,L,H,hour,hourh,hourmin,L1,H1,dem2cost,dem1,rcost,dem2,d1,d2,lambda,lambda1, demv1,demv2, distan1,distan2, t, AS, v,lambdanew,AOBnev,rcnev,AOB,alpha,d,vb,vs,dem,rs,rc,teta,t2,AOB1,alpha1,beta,rumb,min,rcaux,vaux ;
    float k22,dias,v22,t22,min1,D1, D22, D3, rsub, delta, aux;
    int cond,ccccc,ccc2,varprog,elec,estbab,horas,delay,verda,verda2,i,proapop,c,min22,h,e;
    char lado[]="",estribor[]="ESTRIBOR", babor[]="BABOR",ccc1[500];
	
	verda=0;
	
	verda2=0;
	
	
    // Zona de Declaración de Variables del Programa principal

	

cout << "  `````````````````````````_LL``````````````````````````"<<endl;
cout << "  ``_`````````````````````QQQQQ`````````````````````````"<<endl;
cout << "  ``XQQQQQQQLQQQQQQQQQL`````QQQ``````QQQQQQQQQQQQQQQQQ``"<<endl;
cout << "  ```QQQQQQQQNLLQQQQQBQ````QQQQQ```QQQNQ_QNQQQQQQQQQQ```"<<endl;
cout << "  ````MCDQQQQQ_QQQQQQQQQQQQQQQQQQQQQQQQQQQQLLLLLXADD````"<<endl;
cout << "  `````_QNAEXAJQQNQQQMQQQQQQQQQQQQQQQ_QQQQ`QQQQNSJ_`````"<<endl;
cout << "  ````````LLJLL_QQQQNQQQQQQQQQQQQQQLQQQQ__LLLLLL_```````"<<endl;
cout << "  ``````````LBDBD`QQQQQ`QDQQQQQQQQQQQQQQ````````````````"<<endl;
cout << "  ``````````````````QQQQQ`QQQQQQQQQQQ_``````````````````"<<endl;
cout << "  ``````````````````````Q`QQQQ_QQQQL````````````````````"<<endl;
cout << "  ````````````````````````LQQQ_LN```````````````````````"<<endl;
cout << "  ```````````````````````QQQJ_QQQ```````````````````````"<<endl;
cout << "  ``````````````````````QQ`QQQ_C_QQ`````````````````````"<<endl;
cout << "  ````````````````````QQQQQQL`LQQQQ_````````````````````"<<endl;
cout << "  ```````````````````QQQ_   QQ    QQQ```````````````````"<<endl;
cout << "  ``````````````````QQQL  QQ  _QQ  QQ```````````````````"<<endl;
cout << "  ``````````####################################````````"<<endl;
cout << "  ``````````####      U-BOOT CALCULATOR     ####````````"<<endl;
cout << "  ``````````####           Por SVR          ####````````"<<endl;
cout << "  ``````````####################################````````"<<endl;
cout << "  ````````````````````QQQQTM    QQQN````````````````````"<<endl;
cout << "  ``````````````````````QQ`QQQ_QQQ``````````````````````"<<endl;


	cout << "\n         presione cualquier tecla para CONTINUAR..." <<endl;
			getch();
	



system("CLS");	

do{

	

cout << "\n\n                  ####################################"<<endl;
cout << "                  ####      U-BOOT CALCULATOR     ####"<<endl;
cout << "                  ####################################\n"<<endl;


cout << "	                           MENU"<<endl;
cout << "------------------------------------------------------------------------"<<endl;
cout << "#1: CALCULO DE VELOCIDAD Y RUMBO\t #7: VEL. TAQUIMETRO SEGUN ESLORA\n"<<endl;
cout << "#2; TDC, DISTANCIA Y AOB EN DEMORA\t #8: CONTADOR PARA RPM\n"<<endl;
cout << "#3: RUMBO DE INTERCEPTACION\t         #9: DISTANCIA ENTRE OBJETIVOS\n"<<endl;
cout << "#4: RUMBO POR METODO 3 DEMORAS\t         #10: DISTANCIA & VELOCIDAD-> TIEMPO\n"<<endl;
cout << "#5: RUMBO USANDO AR\t                 #11: TIEMPO & VELOCIDAD-> DISTANCIA\n"<<endl;
cout << "#6: VEL. TAQUIMETRO 200M (DEMORAS)\t #12: TIEMPO & DISTANCIA-> VELOCIDAD\n"<<endl;
cout << "                                #13: Salir\n"<<endl;
cout << "\tIntroduzca eleccion (Numero):\n"<<endl;
cin >> elec;

system("CLS");

 switch ( elec )
      {
         case 2:
           
           
           
           varprog=1;
cout << "\n\n####################################"<<endl;
cout << "#### TDC-Calc. Distancia y AOB  ####"<<endl;
cout << "####################################"<<endl;

proapop=1;

cout << "\n\n\tPOSICION DE DISPARO:\n\n"<<endl;
cout << "\n1:Proa\n\n"<<endl;
cout << "\n2:Popa\n\n\n\n"<<endl;	
cin >> proapop;


cout << "\n\n\tIntroduzca el rumbo del submarino (Grados):"<<endl;
cin >> rs;
cout << "\n\n\tIntroduzca el rumbo del objetivo (Grados):"<<endl;
cin >> rc;
cout << "\n\n\tIntroduzca la distancia al objetivo (Metros):"<<endl;
cin >> d1;
cout << "\n\n\tIntroduzca la demora corespondiente (Grados):"<<endl;
cin >> dem1;
cout << "\n\n\tIntroduzca segunda demora (Grados):"<<endl;
cin >> dem2;

//selec proa popa

if(proapop==2){
	

	
		rs=rs+180;
	if(rs>360){
		rs=rs-360;
	}
	
	
	dem1=dem1-180;
	if(dem1<0){
		dem1=dem1+360;
	}
	
	dem2=dem2-180;
	if(dem2<0){
		dem2=dem2+360;
	}
}



//relativizar rumbos
rc=rc-rs;
if(rc<0){
rc=rc+360;
}

//lados

if(rc<=180){
	strcpy(lado,estribor);
}
else{
	strcpy(lado,babor);
}

//sentido rc

if(rc<=180){
rccost=1;
}
else{
rccost=2;
rc=rc-180;
}

//clasificación demoras por costados

if(dem1<=180){
dem1cost=1;
}

else{
dem1cost=2;
dem1=360-dem1;
}

if(dem2<=180){
dem2cost=1;
}
else{
dem2cost=2;
dem2=360-dem2;
}


//desarrollo del algoritmo

//Rumbo b->e 
        if(rccost==1){

        //dem1 a estri
            //dem1 a estri y dem2 a babor
            if((dem1cost==1)&&(dem2cost==2)){
            
            beta1=abs(dem1-rc);
            beta2=180-(dem1+dem2)-beta1;
            d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
            
            	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
            	cout << "\n\n\t     AOB    :"<<beta2<<endl;
            	cout << "\n\n\t    LADO    :"<<lado<<endl;
            
            }
            
            //dem1 a estri y dem2 a estri
            if((dem1cost==1)&&(dem2cost==1)){
            
                if(dem1>dem2){
                    beta1=abs(dem1-rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;              
                
                }
                
                else if(dem2>dem1){
                     beta1=180-abs(dem1-rc);
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                     beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                }
                                         
            }
        //dem1 a babor
            //dem1 a babor y dem2 a estri
                if((dem1cost==2)&&(dem2cost==1)){
                
                beta1=180-(dem1+rc);
                beta2=180-(dem1+dem2)-beta1;
                d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                
                }
                //dem1 a babor y dem2 a babor
            if((dem1cost==2)&&(dem2cost==2)){
            
                if(dem1>dem2){
                    beta1=180-(dem1+rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                    beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;              
                
                }
                
                else if(dem2>dem1){
                     beta1=dem1+rc;
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                }
                                         
            }
        }
//Rumbo b->e
if(rccost==2){
              
//dem1 a estri
            //dem1 a estri y dem2 a babor
            if((dem1cost==1)&&(dem2cost==2)){
            
            beta1=abs(dem1-rc);
            beta2=180-(dem1+dem2)-beta1;
            d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
            beta2=180-beta2;
            
            	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
            	cout << "\n\n\t     AOB    :"<<beta2<<endl;
            	cout << "\n\n\t    LADO    :"<<lado<<endl;
            
            }
            
            //dem1 a estri y dem2 a estri
            if((dem1cost==1)&&(dem2cost==1)){
            
                if(dem1>dem2){
                    beta1=abs(dem1-rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                    beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;              
                
                }
                
                else if(dem2>dem1){
                     beta1=180-abs(dem1-rc);
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                     
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                }
                                         
            }
        //dem1 a babor
            //dem1 a babor y dem2 a estri
                if((dem1cost==2)&&(dem2cost==1)){
                
                beta1=180-(dem1+rc);
                beta2=180-(dem1+dem2)-beta1;
                d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                
                }
                //dem1 a babor y dem2 a babor
            if((dem1cost==2)&&(dem2cost==2)){
            
                if(dem1>dem2){
                    beta1=180-(dem1+rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                    
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;              
                
                }
                
                else if(dem2>dem1){
                     beta1=dem1+rc;
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                     beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                }
                                         
            }
              
              

} 


cout << "\n\n\tREALIZAR OTRO CALCULO?:\n\n"<<endl;
cout << "\n1:SI\n\n"<<endl;
cout << "\n2:NO\n\n\n\n"<<endl;	
cin >> varprog;

if(varprog==1){

do{
cout << "\n\n\tIntroduzca segunda demora (Grados):"<<endl;
cin >> dem2;

if(proapop==2){
	dem2=dem2-180;
	if(dem2<0){
		dem2=dem2+360;
	}
}

if(dem2<=180){
dem2cost=1;
}
else{
dem2cost=2;
dem2=360-dem2;
}


//desarrollo del algoritmo

//Rumbo b->e 
        if(rccost==1){

        //dem1 a estri
            //dem1 a estri y dem2 a babor
            if((dem1cost==1)&&(dem2cost==2)){
            
            beta1=abs(dem1-rc);
            beta2=180-(dem1+dem2)-beta1;
            d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
            
            	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
            	cout << "\n\n\t     AOB    :"<<beta2<<endl;
            	cout << "\n\n\t    LADO    :"<<lado<<endl;
            
            }
            
            //dem1 a estri y dem2 a estri
            if((dem1cost==1)&&(dem2cost==1)){
            
                if(dem1>dem2){
                    beta1=abs(dem1-rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;              
                
                }
                
                else if(dem2>dem1){
                     beta1=180-abs(dem1-rc);
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                     beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                }
                                         
            }
        //dem1 a babor
            //dem1 a babor y dem2 a estri
                if((dem1cost==2)&&(dem2cost==1)){
                
                beta1=180-(dem1+rc);
                beta2=180-(dem1+dem2)-beta1;
                d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                
                }
                //dem1 a babor y dem2 a babor
            if((dem1cost==2)&&(dem2cost==2)){
            
                if(dem1>dem2){
                    beta1=180-(dem1+rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                    beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;              
                
                }
                
                else if(dem2>dem1){
                     beta1=dem1+rc;
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                }
                                         
            }
        }
//Rumbo b->e
if(rccost==2){
              
//dem1 a estri
            //dem1 a estri y dem2 a babor
            if((dem1cost==1)&&(dem2cost==2)){
            
            beta1=abs(dem1-rc);
            beta2=180-(dem1+dem2)-beta1;
            d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
            beta2=180-beta2;
            
            	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
            	cout << "\n\n\t     AOB    :"<<beta2<<endl;
            	cout << "\n\n\t    LADO    :"<<lado<<endl;
            
            }
            
            //dem1 a estri y dem2 a estri
            if((dem1cost==1)&&(dem2cost==1)){
            
                if(dem1>dem2){
                    beta1=abs(dem1-rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                    beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;              
                
                }
                
                else if(dem2>dem1){
                     beta1=180-abs(dem1-rc);
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                     
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                }
                                         
            }
        //dem1 a babor
            //dem1 a babor y dem2 a estri
                if((dem1cost==2)&&(dem2cost==1)){
                
                beta1=180-(dem1+rc);
                beta2=180-(dem1+dem2)-beta1;
                d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                
                }
                //dem1 a babor y dem2 a babor
            if((dem1cost==2)&&(dem2cost==2)){
            
                if(dem1>dem2){
                    beta1=180-(dem1+rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                    
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;              
                
                }
                
                else if(dem2>dem1){
                     beta1=dem1+rc;
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(beta1*pi/180))/sin(beta2*pi/180);
                     beta2=180-beta2;
                
                	cout << "\n\n\t DISTANCIA  :"<<d2<<endl;
                	cout << "\n\n\t     AOB    :"<<beta2<<endl;
                	cout << "\n\n\t    LADO    :"<<lado<<endl;
                }
                                         
            }
              
              

}

cout << "\n\nREALIZAR OTRO CALCULO?:\n\n"<<endl;
cout << "\n1:SI"<<endl;
cout << "\n2:NO\n\n"<<endl;	
cin >> varprog;

}	
while(varprog==1);
}
           
           cout << "\n\n         presione cualquier tecla para volver..." <<endl;
			getch();
           
           system("CLS");
            break;
            
         case 1:
         	
         	varprog=1;
         	
         		rcaux=0;
				vaux=0;
				i=0;
         	
         	
         	do{
			 
         	
         	cout << "\n\n#######################################"<<endl;
			cout << "####  CALCULO DE VELOCIDAD Y RUMBO ####"<<endl;
			cout << "#######################################\n\n\n\n"<<endl;
         	
         	cout << "\n\n\tATENCION: LAS DEMORAS INTRODUCIDAS DEBEN HABER SIDO TOMADAS\n\n POR EL MISMO COSTADO, BABOR O ESTRIBOR.\n\n"<<endl;
         	
         	cout << "\n\n\tIntroduzca la primera demora (Grados)\n\n"<<endl;
         	cin >> demv1;
         	cout << "\n\n\tIntroduzca distancia (Metros)\n\n"<<endl;
         	cin >> distan1;
         	cout << "\n\n-------------------\n\n"<<endl;
         	cout << "\n\n\tIntroduzca la segunda demora (Grados)\n\n"<<endl;
         	cin >> demv2;
         	cout << "\n\n\tIntroduzca distancia (Metros)\n\n"<<endl;
         	cin >> distan2;
         	cout << "\n\n-------------------\n\n"<<endl;
         	cout << "\n\n\tIntroduzca tiempo (Minutos)\n\n"<<endl;
         	cin >> t;
         	cout << "\n\n\tIntroduzca el rumbo del submarino (Grados):"<<endl;
			cin >> rs;
         	
         	estbab=1;
         	
         	if(demv1 >180){
			demv1=360-demv1;
			
			estbab=0;
					
			}
			
			if(demv2 >180){
			demv2=360-demv2;
			estbab=0;		
			}
         	
         	
            AS=pow(distan2,2)+pow(distan1,2)-distan1*distan2*2*cos(abs(demv2-demv1)*pi/180);
            
            AS=sqrt(AS);
            
			v=AS/(t*1852)*60;
			
			
			lambdanew=acos((pow(AS,2)+pow(distan2,2)-pow(distan1,2))/(2*distan2*AS));
			AOBnev=180-(lambdanew*180/pi);
			teta=180-AOBnev-demv2;
			
			
			if(estbab==0){
				
				rcnev=rs+teta;
				
			}
			
			else{
				rcnev=rs-teta;
			}
			
			if(rcnev<0){
				
				rcnev=360+rcnev;
			}
			
			
			if(rcnev>360){
				
				rcnev=rcnev-360;
			}
			
			
			
			cout << "\n\nAGREGAR OTRA MEDICION?:\n\n ATENCION:Los resultados corresponderan a la media\n de todos los anteriores \n\n"<<endl;
			cout << "\n1:SI"<<endl;
			cout << "\n2:NO\n\n"<<endl;	
			cin >> varprog;
			
			rcaux=rcaux+rcnev;
			vaux=vaux+v;
			i=i+1;
		}
		while(varprog==1);
			
			
			rcnev=rcaux/i;
			v=vaux/i;
			
			
			cout << "\n\n\tLa velocidad del objetivo es de: " << v<< " Nudos "<< "\n\n\tel Rumbo del objetivo es: "<<rcnev<<endl;
			cout << "\n\n         presione cualquier tecla para volver..." <<endl;
			getch();
		
system("CLS");						
            break;
        
		 case 3:
			varprog=1;
				do{
					
					cout << "\n\n####################################"<<endl;
				cout << "####  CACULO DE INTERCEPTACION  ####"<<endl;
				cout << "####################################"<<endl;
				
				cout << "\n\nIntroduzca la distancia al objetivo (Kilometros):\n\n"<<endl;
				cin >> d;
				
				d=d/1.852;
				
				cout << "\n\nIntroduzca el rumbo del objetivo (Grados):\n\n"<<endl;
				cin >> rc;
				
				cout << "\n\nIntroduzca la velocidad del objetivo (Nudos):\n\n"<<endl;
				cin >> vc;
				
				cout << "\n\nIntroduzca la velocidad del submarino (Nudos):\n\n"<<endl;
				cin >> vs;
				
				cout << "\n\nIntroduzca el rumbo de demora del objetivo (Grados):\n\n"<<endl;
				cin >> rcd;
				
				
			
			rc1=rc-rcd;
			if(rc1<0){
				rc1=360+rc1;
			}
			
			
				if(rc1<90){
					
				beta=90-rc1;
					
				}
				
				else if((rc1>=90)&&(180>rc1)){
					
					beta=rc1-90;
					
				}
				
				else if((rc1>180)&&(270>rc1)){
					
					beta=270-rc1;
					
				}
				
				else if((rc1>=270)||(rc1==0)){
					
					beta=rc1-270;
				
				}
				
				
				alpha=asin((vc*cos(beta*pi/180))/vs)*180/pi;
				
//t=d/vs;



t=d/(vs*cos(alpha*pi/180)+vc*sin(beta*pi/180));

			if(rc1<180){
			
			rs=rcd+alpha;
			
			}
			
			if(rc1>180){
			rs=rcd-alpha;	
			}
			
				
				if(rs<0){
					
					rs=360+rs;
					
				}
				
				
				

			
				
				if(t<0||(((vc*cos(beta*pi/180))/vs)>1))
				{
					
				cout << "\n\nEl objetivo es inalcanzable en esa situacion\n\n"<<endl;	
				}
				    
				else{
				
				
				horas=(int)t;
				min=(t-horas)*60;
		
				cout << "\n\nATENCION: RESULTADO APROXIMADO; TIEMPO DE AVISTAMIENTO\n\n\t MENOR AL PROPORCIONADO\n\n"<<endl;
				cout << "\n\nCon cuantas horas de antelacion desea llegar? (h):\n\n"<<endl;	
				
				cin >> delay;
							rc1=rc-rcd;
							
				cout << "\n\n Introduzca la hora de inicio de la persecuion:\n\n"<<endl;
				cout << "\n\n (p.e : 2:05 -> 0205 )\n\n"<<endl;
                cin >> hour;	
			
			
			
			if(rc1<0){
				rc1=360+rc1;
			}
			
			
				if(rc1<90){
					
				beta=90-rc1;
					
				}
				
				else if((rc1>=90)&&(180>rc1)){
					
					beta=rc1-90;
					
				}
				
				else if((rc1>180)&&(270>rc1)){
					
					beta=270-rc1;
					
				}
				
				else if((rc1>=270)||(rc1==0)){
					
					beta=rc1-270;
				
				}
				
				
				alpha=asin((vc*cos(beta*pi/180)*(t+delay))/(vs*t))*180/pi;
				
	
			if(rc1<180){
			
			rs=rcd+alpha;
			
			}
			
			if(rc1>180){
			rs=rcd-alpha;	
			}
			
				
				if(rs<0){
					
					rs=360+rs;
					
				}
				
					if(rs>360){
					
					rs=rs-360;
					
				}
	
	
				if(t<0||(((vc*cos(beta*pi/180))/vs)>1))
				{
					
				cout << "\n\nEl objetivo es inalcanzable en esa situacion\n\n"<<endl;	
				}
				    
				else {
			
				hour=hour/100;
			
			hourh=(int)(hour);
			hourmin=(hour-hourh)*100;
			
				horas=(int)(t+delay);
				min=((t+delay)-horas)*60;
				min=(int)(min);
				
				hourh=hourh+horas;
				if(hourh>=24){
                 hourh=hourh-24;
                 }
                 
                 hourmin=hourmin+min;
                 if(hourmin>=60){
                 hourmin=hourmin-60;
                 }
				hourmin=(int)(hourmin);
				{
                                       rs=(int)(rs);
				    cout << "\n\nEl rumbo a seguir es :"<<rs<<endl;
					cout << "\n\nel tiempo hasta interceptacion es de :"<<horas<<" horas "<<min<<" minutos \n\n"<<endl;
					cout << "\n\nhora maxima hasta el encuentro  : "<<hourh<<":"<<hourmin<<"\n\n"<<endl;
				}
			}
				
			}
				
				cout << "\n\nREALIZAR OTRO CALCULO?:\n\n"<<endl;
				cout << "\n1:SI"<<endl;
				cout << "\n2:NO\n\n"<<endl;	
				cin >> varprog;
				}
				while(varprog==1);
				cout << "\n\n         presione cualquier tecla para volver...\n\n\n" <<endl;
			getch();

        system("CLS");

		 break;
		 
		 case 9:
              
              	verda2=0;
    // Zona de Declaración de Variables del Programa principal
    varprog=1;
    cout << "\n\n####################################"<<endl;
    cout << "#### Distancia entre objetivos  ####"<<endl;
    cout << "####################################"<<endl;
 
 do{
    proapop=1;
    
    cout << "\n\n\tPOSICION DE DISPARO:\n\n"<<endl;
    cout << "\n1:Proa\n\n"<<endl;
    cout << "\n2:Popa\n\n"<<endl;	
    cin >> proapop;
    
    
    cout << "\n\n\tIntroduzca el rumbo del submarino (Grados):"<<endl;
    cin >> rs;
    cout << "\n\n\tIntroduzca el rumbo del convoy (Grados):"<<endl;
    cin >> rc;
    cout << "\n\n\tIntroduzca la distancia al primer navio (Metros):"<<endl;
    cin >> d1;
    cout << "\n\n\tIntroduzca la demora corespondiente (Grados):"<<endl;
    cin >> dem1;
    cout << "\n\n\tIntroduzca la demora al segundo navio (Grados):"<<endl;
    cin >> dem2;
    
    //selec proa popa
    if(proapop==2){    	
    		rs=rs+180;
    	if(rs>360){
    		rs=rs-360;
    	}
    	
    	
    	dem1=dem1-180;
    	if(dem1<0){
    		dem1=dem1+360;
    	}
    	
    	dem2=dem2-180;
    	if(dem2<0){
    		dem2=dem2+360;
    	}
    }
    
    
    
 //relativizar rumbos
rc=rc-rs;
if(rc<0){
rc=rc+360;
}
if(rc>180){
rc=rc-180;
}

    
    
    
//clasificación demoras por costados

if(dem1<=180){
dem1cost=1;
}

else{
dem1cost=2;
dem1=360-dem1;
}

if(dem2<=180){
dem2cost=1;
}
else{
dem2cost=2;
dem2=360-dem2;
}

//dem1 a estri
            //dem1 a estri y dem2 a babor
            if((dem1cost==1)&&(dem2cost==2)){
            
            beta1=abs(dem1-rc);
            beta2=180-(dem1+dem2)-beta1;
            d2=(d1*sin((dem1+dem2)*pi/180))/sin(beta2*pi/180);
            
            	cout << "\n\n\t DISTANCIA  :"<<d2<<" Metros"<<endl;



            
            }
            
            //dem1 a estri y dem2 a estri
            if((dem1cost==1)&&(dem2cost==1)){
            
                if(dem1>dem2){
                    beta1=abs(dem1-rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(abs(dem1-dem2)*pi/180))/sin(beta2*pi/180);
                
           	cout << "\n\n\t DISTANCIA  :"<<d2<<" Metros"<<endl;
             
                
                }
                
                else if(dem2>dem1){
                     beta1=180-abs(dem1-rc);
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(abs(dem1-dem2)*pi/180))/sin(beta2*pi/180);
                     
                
           	cout << "\n\n\t DISTANCIA  :"<<d2<<" Metros"<<endl;

                }
                                         
            }
        //dem1 a babor
            //dem1 a babor y dem2 a estri
                if((dem1cost==2)&&(dem2cost==1)){
                
                beta1=180-(dem1+rc);
                beta2=180-(dem1+dem2)-beta1;
                d2=(d1*sin((dem1+dem2)*pi/180))/sin(beta2*pi/180);

                
           	cout << "\n\n\t DISTANCIA  :"<<d2<<" Metros"<<endl;

                
                }
                //dem1 a babor y dem2 a babor
            if((dem1cost==2)&&(dem2cost==2)){
            
                if(dem1>dem2){
                    beta1=180-(dem1+rc);
                    beta2=180-abs(dem1-dem2)-beta1;
                    d2=(d1*sin(abs(dem1-dem2)*pi/180))/sin(beta2*pi/180);
                    
                
           	cout << "\n\n\t DISTANCIA  :"<<d2<<" Metros"<<endl;
                
                }
                
                else if(dem2>dem1){
                     beta1=dem1+rc;
                     beta2=180-abs(dem1-dem2)-beta1;
                     d2=(d1*sin(abs(dem1-dem2)*pi/180))/sin(beta2*pi/180);
                
           	cout << "\n\n\t DISTANCIA  :"<<d2<<" Metros"<<endl;

                }
                                         
            }
        


cout << "\n\n\tREALIZAR OTRO CALCULO?:\n\n"<<endl;
cout << "\n1:SI\n\n"<<endl;
cout << "\n2:NO\n\n\n\n"<<endl;	
cin >> varprog;

}
while(varprog==1);
              cout << "\n\n         presione cualquier tecla para volver...\n\n\n" <<endl;
			getch();
 system("CLS"); 
		 break;
		 
		 case 5:
              
   varprog=1;
    cout << "\n\n####################################"<<endl;
    cout << "####   Rumbo segun Rel. Aspecto ####"<<endl;
    cout << "####################################"<<endl;
    
    
    cout << "\n\n\tIntroduzca la eslora del navio (Metros):"<<endl;
    cin >> L;
    cout << "\n\n\tIntroduzca la altura del palo mayor (Metros):"<<endl;
    cin >> H;
    arr=L/H;
    cout << "\n\n\t--------------------\n\n"<<endl;
    
    cout << "\n\n\tIntroduzca la medicion de la eslora del periscopio (Adimensional):"<<endl;
    cin >> L1;
    cout << "\n\n\tIntroduzca la medicion de la altura del palo mayor (Adimensional):"<<endl;
    cin >> H1;
    

    
    cout << "\n\n\tIntroduzca la demora de la medicion (Grados):"<<endl;
    cin >> dem1;
    cout << "\n\n\tIntroduzca el rumbo del submarino (Grados):"<<endl;
    cin >> rs;
    
    if(dem1>180){
    dem1=360-dem1;
    }
   
    arr=L/H;
    aro=L1/H1;
    
    
    AOB1=asin(aro/arr)*(180/pi);
    
    rc=(180-dem1-AOB1)+rs;
    
    if(rc>360){
    rc=rc-360;
    }
    
    rc1=rc+180;
    if(rc1>360){
    rc1=rc1-360;
    }
    
        cout << "\n\n\t--------------------\n\n"<<endl;
    
cout << "\n\n\t EL RUMBO DEL OBJETIVO PUEDE SER : "<<rc<<" O "<<rc1<<endl;
              
              cout << "\n\n         presione cualquier tecla para volver...\n\n\n" <<endl;
			getch();

        system("CLS");
		 break;
		 
		 		 case 6:
                      
                      
cout << "\n\n#######################################"<<endl;
cout << "####     VELOCIDAD  TAQUIMETRO     ####"<<endl;
cout << "#######################################\n\n\n\n"<<endl;

              
cout << "\n\n\tIntroduzca el rumbo del submarino (Grados):"<<endl;
cin >> rs;
cout << "\n\n\tIntroduzca el rumbo del objetivo (Grados):"<<endl;
cin >> rc;
cout << "\n\n\tIntroduzca la distancia al objetivo (Metros):"<<endl;
cin >> d1;
cout << "\n\n\tIntroduzca la demora corespondiente (Grados):"<<endl;
cin >> dem1;


cout << "\n\n\tDISTANCIA DE REFERENCIA 200 METROS:\n\n"<<endl;


refdem1=dem1;

//relativizar rumbos
rc=rc-rs;
if(rc<0){
rc=rc+360;
}

//sentido rc

if(rc<=180){
rccost=1;
}
else{
rccost=2;
rc=rc-180;
}

//clasificación demoras por costados

if(dem1<=180){
dem1cost=1;
}

else{
dem1cost=2;
dem1=360-dem1;
}

//Desarrolo del algoritmo:
            
if(dem1cost==2){
                
                if(rccost==1){
                AOB=180-rc-dem1;
                D2=sqrt(pow(d1,2)+40000-2*d1*200*cos(AOB*(pi/180)));
                alpha=asin(200*((sin(AOB*(pi/180)))/D2))*(180/pi);
                d2=360-dem1+alpha;
                if(d2>360){
                d2=d2-360;}
                }
                    
                if(rccost==2){
                AOB=rc+dem1;
                D2=sqrt(pow(d1,2)+40000-2*d1*200*cos(AOB*(pi/180)));
                alpha=asin(200*((sin(AOB*(pi/180)))/D2))*(180/pi);
                d2=360-dem1-alpha;
                }
}

if(dem1cost==1){
                
                if(rccost==1){
                AOB=180-rc+dem1;
                D2=sqrt(pow(d1,2)+40000-2*d1*200*cos(AOB*(pi/180)));
                alpha=asin(200*((sin(AOB*(pi/180)))/D2))*(180/pi);
                d2=dem1+alpha;
                }
         
                    
                if(rccost==2){
                AOB=rc-dem1;
                D2=sqrt(pow(d1,2)+40000-2*d1*200*cos(AOB*(pi/180)));
                alpha=asin(200*((sin(AOB*(pi/180)))/D2))*(180/pi);
                d2=dem1-alpha;
                if(d2<0){
                         d2=360-d2;
                     }
                     }
}

			cout << "\n\n\tDEMORA 1: " <<refdem1<< " Grados"<<endl;
            cout << "\n\n\tDEMORA 2: " <<d2<< " Grados"<<endl;
			cout << "\n\n         presione cualquier tecla para volver..." <<endl;
			getch();

system("CLS");						

              
         break;

         case 7:
cout << "\n\n#######################################"<<endl;
cout << "####    VELOCIDAD SEGUN ESLORA     ####"<<endl;
cout << "#######################################\n\n\n\n"<<endl;

do{
              
cout << "\n\n\tIntroduzca la eslora del barco o distancia(Metros):"<<endl;
cin >> eslo;
cout << "\n\n\tIntroduzca el tiempo trascurrido (Segundos):"<<endl;
cin >> seg;

v=(eslo*3600)/(seg*1852);

			cout << "\n\n\tLa velocidad del barco es de : " <<v<< " Nudos"<<endl;
			
			cout << "\n\n\tREALIZAR OTRO CALCULO?:\n\n"<<endl;
cout << "\n1:SI\n\n"<<endl;
cout << "\n2:NO\n\n\n\n"<<endl;	
cin >> varprog;

if(varprog==2){

			cout << "\n\n         presione cualquier tecla para volver..." <<endl;
			getch();

system("CLS");
}
}
while(varprog!=2);

              
              
              
		 break;
		 
		 case 10:
              
              c=1;
    t22=1;
    
    do{
        printf("\n\t#################################");
        printf("\n\t### Distancia & Vel -> Tiempo ###");
        printf("\n\t#################################");
        
        
            printf("\n\n\t  DISTANCIA (Km): ");
            scanf("%f",&k22);
            
            printf("\n\n\t  VELOCIDAD (Nudos): ");
            scanf("%f",&v22);
            
            t22=(k22/1.852)/v22;
            
            dias=t22/24;
            h=(dias-(int)dias)*24;
            min1=(t22-(int)t22)*60;
            
            
            printf("\n\n\t  Tiempo de llegada %.0f dias %d horas %.0f minutos ",dias,h,min1);
            cout << "\n\n\tREALIZAR OTRO CALCULO?:\n\n"<<endl;
            cout << "\n1:SI\n\n"<<endl;
            cout << "\n2:NO\n\n\n\n"<<endl;	
            cin >> varprog;
			
			
			

			
            
            system("cls");
            
            
            
            }
    while(varprog!=2);

              
		 break;
		 
		 case 4:
              varprog=1;
do{
              
cout << "\n\n#######################################"<<endl;
cout << "####    METODO DE LAS 3 DEMORAS    ####"<<endl;
cout << "#######################################\n\n\n\n"<<endl;

printf(" \nItroduzca el rumbo del submarino: \n\n");
scanf("%f",&rsub);
printf(" \nItroduzca Demora 1(D1): \n\n");
scanf("%f",&D1);
printf(" \nItroduzca Demora 2(D22): \n\n");
scanf("%f",&D22);
printf(" \nItroduzca Demora 3(D3): \n\n");
scanf("%f",&D3);



//todo estribor
    
if (D1<=180&&D22<=180&&D3<=180){
    if ((D1<D22)&&(D22<D3)){
    Rbarco=calcang(D1,D22,D3);
    }


    if ((D1>D22)&&(D22>D3)){
    aux=D1;
    D1=D3;
    D3=aux;
    Rbarco=180+calcang(D1,D22,D3);
    }
}



//todo babor
if(D1>=180&&D22>=180&&D3>=180){
   D1=360-D1;
   D22=360-D22;
   D3=360-D3;
   
   if ((D1<D22)&&(D22<D3)){
       Rbarco=360-calcang(D1,D22,D3);

   }
   
   if ((D1>D22)&&(D22>D3)){
    aux=D1;
    D1=D3;
    D3=aux;
    Rbarco=180-calcang(D1,D22,D3);
   }
   
}

//2 estribor 1 babor(dos casos posibles)
if (D1<=180&&D22<=180&&D3>=180){
    
    delta=(360-D3);
    D1=D1+delta;
    D22=D22+delta;
    D3=0;
    aux=D1;
    D1=D3;
    D3=aux;
    Rbarco=180+calcang(D1,D22,D3)-delta;   
  
}

if (D3<=180&&D22<=180&&D1>=180){

    delta=(360-D1);
    D3=D3+delta;
    D22=D22+delta;
    D1=0;
    Rbarco=calcang(D1,D22,D3)-delta;   
}

//1 estribor 2 babor
if (D1<=180&&D22>=180&&D3>=180){
    delta=D1;
    D3=D3-delta;
    D22=D22-delta;
    D1=360;
    aux=D1;
    D1=D3;
    D3=aux;
    Rbarco=calcang(D1,D22,D3)+delta-180;
}
//2 babor 1 estribor
if (D1>=180&&D22>=180&&D3<=180){
    delta=D3;
    D1=D1-delta;
    D22=D22-delta;
    D3=360;
    Rbarco=calcang(D1,D22,D3)+delta-360;
}


if (Rbarco<0){
    Rbarco=360+Rbarco;
}

if (Rbarco>360){
    Rbarco=Rbarco-360;
}

Rbarco=rsub+Rbarco;

if (Rbarco>360){
    Rbarco=Rbarco-360;
}
cout << "\n\#######################################\n\n"<<endl;
printf(" \nEl rumbo del objetivo es: %f\n\n",Rbarco);

cout << "\n\nREALIZAR OTRO CALCULO?:\n\n"<<endl;
cout << "\n1:SI"<<endl;
cout << "\n2:NO\n\n"<<endl;	
cin >> varprog;
system("cls");

}
while (varprog!=2);
		 break;
		 	
	 	 case 8:
              
              varprog=1;
            do{
                                    
            cout << "\n\n#######################################"<<endl;
            cout << "####           CONTADOR            ####"<<endl;
            cout << "#######################################\n\n\n\n"<<endl;
            printf ("INTRODUZCA UN CARACTER POR CADA CICLO \n\t(Intro para contar):\n\n");
            scanf("%s",ccc1); /* al ser un array no lleva & */
            ccccc=strlen(ccc1);
            ccc2=2*ccccc;
            cout << "#######################################\n\n"<<endl;
            printf("Contados: %d\n",ccccc);
            printf("2xContados: %d\n",ccc2);
            
            cout << "\n\nREALIZAR OTRO CALCULO?:\n\n"<<endl;
            cout << "\n1:SI"<<endl;
            cout << "\n2:NO\n\n"<<endl;	
            cin >> varprog;
            system("cls");
            }
            while(varprog!=2);
              
		 break;
		 
		 
		 case 11:
              
              varprog=1;
c=1;
    t22=1;
    
    do{
        printf("\n\t#################################");
        printf("\n\t### Tiempo & Vel -> distancia ###");
        printf("\n\t#################################");
        
        
            printf("\n\n\t  TIEMPO (Minutos): ");
            scanf("%f",&t22);
            
            printf("\n\n\t  VELOCIDAD (Nudos): ");
            scanf("%f",&v22);
            
            k22=((t22/60)*v22*1.852);
            
            printf("\n\n\t %.0f Minutos a %.2f Nudos suponen: %.3f Km ",t22,v22,k22);
            cout << "\n\n\tREALIZAR OTRO CALCULO?:\n\n"<<endl;
            cout << "\n1:SI\n\n"<<endl;
            cout << "\n2:NO\n\n"<<endl;	
            cin >> varprog;
     
            system("cls");
            
            
            
            }
    while(varprog!=2);
              
		 break;
		 
		 case 12:
              
              varprog=1;
c=1;
    t22=1;
    
    do{
        printf("\n\t#################################");
        printf("\n\t### Tiempo & Distancia -> Vel ###");
        printf("\n\t#################################");
        
            printf("\n\n\t  DISTANCIA (Km): ");
            scanf("%f",&k22);
        
            printf("\n\n\t  TIEMPO (Minutos): ");
            scanf("%f",&t22);
            
            v22=((k22/1.852)/(t22/60));
            
            printf("\n\n\t %0.f Km en %0.f Minutos suponen: %0.2f nudos ",k22,t22,v22);
            cout << "\n\n\tREALIZAR OTRO CALCULO?:\n\n"<<endl;
            cout << "\n1:SI\n\n"<<endl;
            cout << "\n2:NO\n\n"<<endl;	
            cin >> varprog;
     
            system("cls");
            
            
            
            }
    while(varprog!=2);
              
		 break;
		 
		 case 13:
		 break;
		 
		 default:
		 break;
		
        
        
      }



}
while(elec!=13);










    
    return 0;           // Valor de retorno al S.O.
}

// Implementación de Procedimientos y Funciones
double calcang(float D1, float D22, float D3){

double d1,d2,aux,omega,RA,Rbarco,U;

d1=abs(D22-D1)*pi/180;
d2=abs(D3-D22)*pi/180;

if (d1>d2){
U=asin((sin(d2)*(cos(d1)*sin(d2) + cos(d2)*sin(d1)))/(pow((pow(cos(d1),2)*pow(cos(d2),2)*pow(sin(d2),2) + pow(cos(d1),2)*pow(sin(d2),4) + 2*cos(d1)*pow(cos(d2),3)*sin(d1)*sin(d2) + 2*cos(d1)*cos(d2)*sin(d1)*pow(sin(d2),3) - 4*cos(d1)*cos(d2)*sin(d1)*sin(d2) + pow(cos(d2),4)*pow(sin(d1),2) + pow(cos(d2),2)*pow(sin(d1),2)*pow(sin(d2),2) - 4*pow(cos(d2),2)*pow(sin(d1),2) + 4*pow(sin(d1),2)),0.5)));

omega=180-U*(180/pi)-d1*(180/pi)-d2*(180/pi);

RA=(180-D1+omega);
}

else if (d1<=d2){
    
    aux=d1;
    d1=d2;
    d2=aux;
    
 U=asin((sin(d2)*(cos(d1)*sin(d2) + cos(d2)*sin(d1)))/(pow((pow(cos(d1),2)*pow(cos(d2),2)*pow(sin(d2),2) + pow(cos(d1),2)*pow(sin(d2),4) + 2*cos(d1)*pow(cos(d2),3)*sin(d1)*sin(d2) + 2*cos(d1)*cos(d2)*sin(d1)*pow(sin(d2),3) - 4*cos(d1)*cos(d2)*sin(d1)*sin(d2) + pow(cos(d2),4)*pow(sin(d1),2) + pow(cos(d2),2)*pow(sin(d1),2)*pow(sin(d2),2) - 4*pow(cos(d2),2)*pow(sin(d1),2) + 4*pow(sin(d1),2)),0.5)));

omega=180-U*(180/pi)-d1*(180/pi)-d2*(180/pi);
RA=360-omega-D3;
}


Rbarco=RA;

if (Rbarco>360){
    Rbarco=Rbarco-360;
}

Rbarco=360-Rbarco;

return Rbarco;

}


Dimitri Vodkachov
Kapitänleutnant
Kapitänleutnant
Mensajes: 388
Registrado: 28 Ago 2014 20:36
Ubicación: 20°24'57"S 166°32'14"E UTC+11

Re: Código Fuente de UBOOT CALCULATOR

Nah Paty, no es tan complicado. Se aprende como cualquier otra cosa :D
Responder

Volver a “FORO GENERAL NO-TEMATICO”