Exemplo n.º 1
0
int main(){
//carregamento das informacoes
    int tam1;
    scanf("%d", &tam1);
    int * vetor1 = carregar_vetor(tam1);

    int tam2;
    scanf("%d", &tam2);
    int * vetor2 = carregar_vetor(tam2);

//algoritmo
    int iguais = 1;
    int i = 0;
    for(i = 0; i < tam1; i++){
        int x = vetor1[i];
        if (contar(x, vetor1, tam1) != contar(x, vetor2, tam2)) {
            iguais = 0;
            break;
        }
    }
    if (iguais)
        printf("sim\n");
    else
        printf("nao\n");
    return 0;
}
Exemplo n.º 2
0
Arquivo: pgb.c Projeto: soviet/VCP-PGB
/**
 *
 * funcion que cuenta el numero de nodos de un arbol
 *
 **/
int contar(Arbol *a)
{
  if(a != NULL)
    return contar(a->izq) + contar(a->der) + 1;
  else
    return 0;
}
Exemplo n.º 3
0
Arquivo: pgb.c Projeto: soviet/VCP-PGB
/**
 *
 * Funcion que llama a un funcion de C++, que evalua el arbol y le retorna el
 * fitness de este
 *
 **/
void conexion(Arbol *a, bool grafica)
{
  void *manejador;
  double (*vcp)(Arbol *, int, int, int);
  char *error;

  manejador = dlopen ("./include/libvcp.so", RTLD_LAZY);
  if(!manejador)
    {
      printf("No se pudo leer la libreria libvcp.so\n");
      exit(1);
    }

  *(double**)(&vcp) = dlsym(manejador, "fitness");
  if((error = dlerror()) != NULL)
    {
      printf("No se pudo leer la funcion fitness\n");
      exit(1);
    }
  altura = alturaMaxima(a);
  num_nodos = contar(a);

  aptitud = (*vcp)(a, grafica, altura, num_nodos);

  dlclose(manejador);
}
Exemplo n.º 4
0
int main()
{  
   Lista L;
   int e, x;
   L = NULL;
   
   printf("INGRESE DATO : ");
   scanf("%d",&e);   
   while(e != 0)
   {
      agregar(&L, e);
	  printf("INGRESE DATO : ");
	  scanf("%d",&e);   
   }  
      
   listar(L);
   
   x = contar(L);
   printf("Cantidad de nodos es %d\n",x);
   x = contarImpares(L);   
   printf("Cantidad de nodos impares es %d\n",x);
   
   printf("el ultimo es %d\n",ultimo(L));   
   
   printf("INGRESE DATO a BUSCAR : ");
   scanf("%d",&e);   
   printf("El dato %d esta? (1:SI / 0: NO) %d\n",e,buscar(L,e));
   
}
Exemplo n.º 5
0
int main()
{
  int x, y;
  printf("Ingrese valor  ");
  scanf("%d",&x);
  printf("Digitos %d\n",contar(x));
  contardig(x, &y);
  printf("Digitos %d\n",y);
}
Exemplo n.º 6
0
int main(){
    int t;
    unsigned long long n;
    scanf("%d",&t);
    while(t--){
        scanf("%llu",&n);
        printf("%llu\n",contar(n));
    }
    return 0;
}
Exemplo n.º 7
0
int main( )
{	int n;
	printf("Ingrese numero ");
	scanf("%d",&n);
	printf("La cantidad de digitos es %d\n",contar(n));

    printf("El invertido es %d\n",invertir(n));

    printf("Primer digito : %d\n",primerDig(n));
    system("pause");
}
Exemplo n.º 8
0
int main(void)
{
     int contador=0;
     while (contador<100)
     {
           contar();
           contador++;
     }
     system("pause");
     return(0);
}
Exemplo n.º 9
0
void main(void) {
  char cadena[MAXTAM];
  
  introduce(cadena);
  inic(cadena);
  fin(cadena);
  inter(cadena);
  puts(cadena);
  
  printf("\nLA CADENA TIENE %d PALABRAS", contar(cadena));
}
Exemplo n.º 10
0
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// proceso principal del juego que recibe el tablero, y las direcciones en las que indica el jugador la fila y la columna y la se?al de ready que indica que se han actualizado fila y columna
void reversi6(char tablero[][TAM_TABLERO])  // en esta versi?n el usuario lleva negras y el ordenador blancas
{   // no se comprueba que el jugador mueva bien. S?lo que el ordenador realice un movimiento correcto.
  int done; // nos indica si se ha conseguido mover
  int move = 0; //indica que el jugador ha movido;
  tiempo = 0; // inicializa el valor del tiempo transcurrido a 0
  display_tiempo(); // mostrar mensaje de tiempo
  display_actualizar_tiempo(tiempo); // mostrar el valor del tiempo
  display_mensaje_ayuda(); // mostrar mensaje de ayuda
  int fin = 0;// fin se pone a 1 si el jugador no ha podido mover (ha introducido un valor de movimiento con alg?n 6) y luego el ordenador tampoco puede.
  int blancas = 2, negras = 2; // se usan para contar el n?mero de fichas de cada color.
  char f,c; // fila y columna elegidas por el programa para su movimiento

  init_table(tablero);
  actualizar_lcd(tablero, blancas, negras);
  timer4_init(); // comienza el contador de tiempo transcurrido
  while (fin == 0) {
    move = 0;
    esperar_mov();
    if (((fila) != TAM_TABLERO) && ((columna) != TAM_TABLERO)) { // si la fila o columna son 8 asumimos que el jugador no puede mover
        tablero[fila][columna] = 2;
        actualizar_tablero(fila, columna, 2, tablero);
        contar(&blancas, &negras, tablero);
        actualizar_lcd(tablero, blancas, negras);
        actualizar_candidatos(fila, columna);
        move = 1;
    }
    done = elegir_mov(&f, &c, tabla_valor, tablero); //escribe el movimiento en las variables globales fila columna
    if (done == -1 && move == 0){
       fin = 1;
    }
    else {
        tablero[f][c] = 1;
        actualizar_tablero(f, c, 1, tablero);
        contar(&blancas, &negras, tablero);
        actualizar_lcd(tablero, blancas, negras);
        actualizar_candidatos(f, c);
    }
  }
  timer4_stop(); // parar reloj del tiempo transcurrido
  display_final(blancas,negras); // mostrar resultado final
}
Exemplo n.º 11
0
int main()
{
   Lista L;
   int i;
   L = NULL;
   for(i=1; i<=4; i++)
      agregarUltimo(&L, i);
   imprimir(L);
   printf("La cantidad de nodos es %d\n",contar(L));
   convertir(L);
   imprimirLLS(L);
}
Exemplo n.º 12
0
int main()
{
    int i, n, c, s, a;
    
    printf("Ingrese n:\n");
    scanf("%d",&n);
    c = contar(n);
    printf("Cantidad de digitos es %d\n",c);
    
    printf("ingrese dijito:\n");
    scanf("%d", &n);
    i = digito(n);   
    printf("Cantidad dijitos en forma xD es %d\n", i);
    
    system("pause");
}
int main()
{
  int lon, i;
  char *palabra, *aux, *evaluadas;
  int *guarda;
  
  i = 0;

  printf("Máximo de caracteres\n");
  scanf("%d", &lon);
  
  palabra = (char*)malloc(sizeof(char)*lon);
  evaluadas = (char*)malloc(sizeof(char)*lon);

  printf("Dame una palabra \n");
  scanf("\n%[^\n]", palabra);

  for(aux = palabra; aux > palabra; --aux)
  {
    if(aux != (evaluadas+i))
    {
      *(evaluadas+i) = aux;
      *(guarda+i) = contar(palabra, aux, lon);
      i++;
    }
  }
  
  ordenamela(palabra, asc, lon);

  for(aux = palabra; aux > palabra; --aux)
    printf("La letra %s, se repite %d veces\n", aux, guarda);
  
  free(palabra);
  free(guarda);
  return 0;
}
int main(){
    struct no *inicio, *p;// Ponteiros para tipos struct no
    int i, opcao, elemento;
    
    // Inicializando o ponteiro com o valor NULL
    inicio = NULL;
    //
    do {
        system("cls");
        printf("==================================================================\n");
    	printf(" \t\tESCOLHA A OPCAO:");
        printf("\n==================================================================");
        printf("\n\n 1 - Adicionar elemento");
        printf("\n------------------------------------------------------------------");
        printf("\n 2 - Mostrar elementos");
        printf("\n------------------------------------------------------------------");
        printf("\n 3 - Liberar memoria");
        printf("\n------------------------------------------------------------------");
        printf("\n 4 - Mostrar a quantidade de elementos");
        printf("\n------------------------------------------------------------------");
        printf("\n 5 - Mostrar a media");
        printf("\n------------------------------------------------------------------");
        printf("\n 6 - Adicionar elemento no final");
        printf("\n------------------------------------------------------------------");
        printf("\n 7 - Buscar Elemento");        
        printf("\n------------------------------------------------------------------");
        printf("\n 8 - Apagar Elemento");   
        printf("\n------------------------------------------------------------------");
        printf("\n 9 - Apagar o Ultimo Elemento");   
        printf("\n------------------------------------------------------------------");
        printf("\n 10 - Apagar o Primeiro Elemento");   
        printf("\n------------------------------------------------------------------");        
        printf("\n 11 - Inserir Elemento no meio");   
        printf("\n------------------------------------------------------------------");         
        printf("\n 0 - Sair \n\n -> ");
        scanf("%d", &opcao);
        //
        switch (opcao){
               case 0:
                   printf("\n O programa sera encerrado");
                   break;
               case 1: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   inserir_inicio(&inicio, elemento);                 
                   break;
               case 2:
                   mostra(inicio);
                   break;
               case 3:
                   liberaMemoria(&inicio);
                   break;
               case 4:
                   printf(" %d elementos", contar(inicio));
                   getch();
                   break;    
               case 5:
                   printf(" Media: %.f", media(inicio));
                   getch();
                   break;    
               case 6: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   inserirNoFinal(&inicio, elemento);
                   printf("\t Inserido \n");
                   getch();
                   break;
               case 7: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   printf(" %d", buscar(inicio, elemento));
                   getch();
                   break;
               case 8: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   apagarElemento(&inicio, elemento);
                   getch();
                   break;
               case 9: 
                   if (inicio == NULL) {
                      printf("\n A lista esta vazia");
                   }
                   else {
                        printf("Elemento lemento %d removido.\n", removeUltimo(&inicio));
                   }
                   getch();
                   break;
               case 10: 
                   if (inicio == NULL) {
                      printf("\n A lista esta vazia");
                   }
                   else {
                        printf("Elemento lemento %d removido.\n", removePrimeiro(&inicio));
                   }
                   getch(); 
                   break;
               case 11: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   inserirNoMeio(&inicio, elemento);
                   printf("\t Inserido \n");
                   getch();
                   break;                                     
               default:
                   printf("\n\n Opcao invalida!!");
                   getch();
                   break;
       }     
    }
        
    while(opcao != 0);
   
    printf("\n");
        
    getch();
    return 0;
}
Exemplo n.º 15
0
Arquivo: main.c Projeto: streeck/ed1
int main(){
	int i;

	PILHA_DINAMICA pilha;

	for (i = 0; i < 5; i++){
		ITEM item;
		item.valor = i;
		
		if (empilhar(&pilha, &item)){
			printf("Entrou na pilha: %d", item.valor);
		}
		else {
			printf("%d: Erro na alocação.\n", item.valor);
		}
	}
	printf("\nPilha atual: ");
	imprime(&pilha);
	printf("\n");

	printf("Tamanho: %d\n--\n", contar(&pilha));

	ITEM item1;
	item1.valor = 100;

	if (empilhar(&pilha, &item1)){
		printf("Entrou na pilha: %d", item.valor);
	}
	else {
		printf("%d: Erro na alocação.\n", item.valor);
	}

	printf("\nPilha atual: ");
	imprime(&pilha);
	printf("\n");

	printf("Tamanho: %d\n--\n", contar(&pilha));

	frente(&pilha, &item1);

	printf("Elemento do topo: %d\n--\n, item1.valor");

	if (desempilhar(&pilha, &item1)){
		printf("Saiu na pilha: %d", item.valor);
	}
	else {
		printf("Pilha vazia.\n", item1.valor);
	}

	item1.valor = 9;
	if (empilhar(&pilha, &item1)){
		printf("Entrou na pilha: %d", item.valor);
	}
	else {
		printf("%d: Erro na alocação.\n", item.valor);
	}

	printf("\nPilha atual: ");
	imprime(&pilha);
	printf("\n");

	printf("Tamanho: %d\n--\n", contar(&pilha));

	return 0;
}
Exemplo n.º 16
0
void evaluar()
{
    double nota =0;

    NodoTrinario* nt1=new NodoTrinario(1);
    NodoTrinario* nt2=new NodoTrinario(2);
    NodoTrinario* nt3=new NodoTrinario(3);
    NodoTrinario* nt4=new NodoTrinario(4);
    NodoTrinario* nt5=new NodoTrinario(5);
    NodoTrinario* nt6=new NodoTrinario(6);
    NodoTrinario* nt7=new NodoTrinario(7);
    NodoTrinario* nt8=new NodoTrinario(8);
    NodoTrinario* nt9=new NodoTrinario(9);

    nt1->izq = nt2;
    nt1->medio = nt3;
    nt1->der = nt4;

    nt2->izq = nt5;
    nt2->medio = nt6;

    nt6->izq = nt7;

    nt3->izq = nt8;
    nt3->medio = nt9;

    cout<<"existe() - trinario:\t";
    if(!existe(nt1,10) && !existe(nt1,12) && !existe(nt2,1) && existe(nt1,1) && existe(nt1,5) && existe(nt6,7))
    {
        cout<<"Correcto"<<endl;
        nota+=2.5;
    }else
    {
        cout<<"Incorrecto"<<endl;
    }


    NodoNario* n1=new NodoNario(1);
    NodoNario* n2=new NodoNario(2);
    NodoNario* n3=new NodoNario(3);
    NodoNario* n4=new NodoNario(4);
    NodoNario* n5=new NodoNario(5);
    NodoNario* n6=new NodoNario(1);
    NodoNario* n7=new NodoNario(1);
    NodoNario* n8=new NodoNario(2);

    n1->hijos.push_back(n2);
    n1->hijos.push_back(n3);

    n2->hijos.push_back(n4);
    n4->hijos.push_back(n5);

    n5->hijos.push_back(n6);
    n5->hijos.push_back(n7);
    n5->hijos.push_back(n8);

    cout<<"existe() - nario:\t";
    if(!existe(n1,10) && !existe(n1,12) && !existe(n8,1) && existe(n1,1) && existe(n1,5) && existe(n5,2))
    {
        cout<<"Correcto"<<endl;
        nota+=2.5;
    }else
    {
        cout<<"Incorrecto"<<endl;
    }

    NodoBinario* nb1=new NodoBinario(1);
    NodoBinario* nb2=new NodoBinario(2);
    NodoBinario* nb3=new NodoBinario(3);
    NodoBinario* nb4=new NodoBinario(4);
    NodoBinario* nb5=new NodoBinario(5);
    NodoBinario* nb6=new NodoBinario(1);
    NodoBinario* nb7=new NodoBinario(2);
    NodoBinario* nb8=new NodoBinario(1);

    nb1->izq=nb2;
    nb1->der=nb3;

    nb3->der=nb4;

    nb4->izq=nb5;
    nb5->izq=nb6;

    nb2->izq=nb7;
    nb2->der=nb8;

    cout<<"contar():\t\t";
    if(contar(nb1,1)==3 && contar(nb1,2)==2  && contar(nb1,3)==1  && contar(nb1,50)==0 && contar(nb7,1)==0)
    {
        cout<<"Correcto"<<endl;
        nota+=5;
    }else
    {
        cout<<"Incorrecto"<<endl;
    }



    int arr[5][5]= {{0,1,1,0,0},
                    {0,1,0,0,0},
                    {0,1,1,0,1},
                    {0,1,2,0,1},
                    {0,0,0,1,1}};
    cout<<"puedoLLegar():\t\t";
    if(!puedoLLegar(arr,0,0,2,1,11)
        && puedoLLegar(arr,0,0,2,1,12))
    {
        cout<<"Correcto"<<endl;
        nota+=5;
    }else
    {
        cout<<"Incorrecto"<<endl;
    }

    cout<<endl<<"Nota: "<<nota<<"/15"<<endl;
}
Exemplo n.º 17
0
int main (int argc, char** argv)
{
	//Abrir el archivo
	FILE* file;
	file = fopen(argv[1], "r");

	//Si no hay argumentos salir del programa.
	if(argc<2){
		printf("No se recibe el archivo.\n");
		exit(496);
	}

	if(!(file=fopen(argv[1], "r"))){
		printf("Problema abriendo el archivo %s\n", argv[1]);
		exit(1);
	}

	//Declaración de arreglos de condiciones iniciales.
	double *id_array;
	double *x0_array;
	double *y0_array;
	double *vx0_array;
	double *vy0_array;
	double *masa_central1;
	double *masa_central2;

	//Declaración de números usados durante el programa.
	int i,j,k, N, np, nc, id;
	double h;

	h = 0.001;//Paso
	N = 5;//Límite de la iteracion.
	np = (int)(N+h)/h;
	nc=contar(argv[1]);//Número de lineas del archivo.

	//reserva de memoria para arreglos.
	id_array = malloc(nc * sizeof(double));
	x0_array = malloc(nc * sizeof(double));
	y0_array = malloc(nc * sizeof(double));
	vx0_array = malloc(nc * sizeof(double));
	vy0_array = malloc(nc * sizeof(double));
	masa_central1 = malloc(5 * sizeof(double));
	masa_central1 = malloc(5 * sizeof(double));


	double k1xM1 =0;
	double k1yM1 =0;
	double l1xM1 =0;
	double l1yM1 =0;

	double k2xM1 =0;
	double k2yM1 =0;
	double l2xM1 =0;
	double l2yM1 =0;

	double k3xM1 =0;
	double k3yM1 =0;
	double l3xM1 =0;
	double l3yM1 =0;

	double k4xM1 =0;
	double k4yM1 =0;
	double l4xM1 =0;
	double l4yM1 =0;

	double avgkxM1=0;
	double avgkyM1=0;
	double avglxM1=0;
	double avglyM1=0;

	double k1xM2 =0;
	double k1yM2 =0;
	double l1xM2 =0;
	double l1yM2 =0;

	double k2xM2 =0;
	double k2yM2 =0;
	double l2xM2 =0;
	double l2yM2 =0;

	double k3xM2 =0;
	double k3yM2 =0;
	double l3xM2 =0;
	double l3yM2 =0;

	double k4xM2 =0;
	double k4yM2 =0;
	double l4xM2 =0;
	double l4yM2 =0;

	double avgkxM2=0;
	double avgkyM2=0;
	double avglxM2=0;
	double avglyM2=0;

	double k1x =0;
	double k1y =0;
	double l1x =0;
	double l1y =0;

	double k2x =0;
	double k2y =0;
	double l2x =0;
	double l2y =0;

	double k3x =0;
	double k3y =0;
	double l3x =0;
	double l3y =0;

	double k4x =0;
	double k4y =0;
	double l4x =0;
	double l4y =0;

	double avgkx =0;
	double avgky =0;
	double avglx =0;
	double avgly =0;

	//Lectura del archivo de condiciones iniciales. Llenado de arreglos de posiciones y velocidades.
	for(i=0; i<nc; i++){

		fscanf(file, "%lf %lf %lf %lf %lf\n", &id_array[i], &x0_array[i], &y0_array[i], &vx0_array[i], &vy0_array[i]);
	}

	printf("LEYENDO EL ARCHIVO...\n");

	fclose(file);



	//Llenar arreglos con las condiciones de las masas centrales.
	for(i=0; i<nc; i++){

		if(id_array[i]<0){

			//Para las masa central 1.
			if(id_array[i]==-1){
				k=i;
				masa_central1[0]=id_array[k];
				masa_central1[1]=x0_array[k];
				masa_central1[2]=y0_array[k];
				masa_central1[3]=vx0_array[k];
				masa_central1[4]=vy0_array[k];
			}
		}
	}

	printf("ARCHIVO LEIDO CON EXITO...\n");

	//Arreglos usados durante el RK4.
	double *x;
	double *y;
	double *vx;
	double *vy;
	double *t;

	double *xsol1;
	double *ysol1;
	double *xsol2;
	double *ysol2;
	double *xsol3;
	double *ysol3;
	double *xsol4;
	double *ysol4;
	double *xsol5;
	double *ysol5;

	//Reserva de memoria para arreglos.
	x=(double *) malloc(nc*sizeof(double*));
	y=(double *) malloc(nc*sizeof(double*));
	vx=(double *) malloc(nc*sizeof(double*));
	vy=(double *) malloc(nc*sizeof(double*));

	xsol1=(double *) malloc(nc*sizeof(double*));
	ysol1=(double *) malloc(nc*sizeof(double*));
	xsol2=(double *) malloc(nc*sizeof(double*));
	ysol2=(double *) malloc(nc*sizeof(double*));
	xsol3=(double *) malloc(nc*sizeof(double*));
	ysol3=(double *) malloc(nc*sizeof(double*));
	xsol4=(double *) malloc(nc*sizeof(double*));
	ysol4=(double *) malloc(nc*sizeof(double*));
	xsol5=(double *) malloc(nc*sizeof(double*));
	ysol5=(double *) malloc(nc*sizeof(double*));


	//Reserva de memoria para el arreglo de tiempos.
	t = malloc(np * sizeof(double));

	//Condición inicial del tiempo.
	t[0]=0;
	id=0;

	//Llenar los arreglos con las condiciones iniciales de la i-ésima masa.
	for(i=0; i<nc;i++){
		x[i]=x0_array[i];
		y[i]=y0_array[i];
		vx[i]=vx0_array[i];
		vy[i]=vy0_array[i];
	}

	printf("INICIANDO LA RUTINA RK4...\n");
	//CHECKPOINT!


	if(nc==121){

		for(j=1; j<np; j++){
			for(i=0; i<nc; i++){

				id=1;

				//Primer paso.
				double k1x = x_punto(t[j-1],vx[i]);
				double k1y = y_punto(t[j-1],vy[i]);
				double l1x = v_x_punto1(t[j-1],x[i],y[i],masa_central1[1],masa_central1[2]);
				double l1y = v_y_punto1(t[j-1],x[i],y[i],masa_central1[1],masa_central1[2]);

				double t1 = t[j-1] + (h/2.0);
				double x1=x[i] + (h/2.0)*k1x;
				double y1=y[i] + (h/2.0)*k1y;
				double vx1=vx[i] + (h/2.0)*l1x;
				double vy1=vy[i] + (h/2.0)*l1y;

				//Segundo paso.
				double k2x = x_punto(t1,vx1);
				double k2y = y_punto(t1,vy1);
				double l2x = v_x_punto1(t1,x1,y1,masa_central1[1],masa_central1[2]);
				double l2y = v_y_punto1(t1,x1,y1,masa_central1[1],masa_central1[2]);

				double t2 = t[j-1] + (h/2.0);
				double x2=x[i] + (h/2.0)*k2x;
				double y2=y[i] + (h/2.0)*k2y;
				double vx2=vx[i] + (h/2.0)*l2x;
				double vy2=vy[i] + (h/2.0)*l2y;

				//Tercer paso.
				double k3x = x_punto(t2,vx2);
				double k3y = y_punto(t2,vy2);
				double l3x = v_x_punto1(t2,x2,y2,masa_central1[1],masa_central1[2]);
				double l3y = v_y_punto1(t2,x2,y2,masa_central1[1],masa_central1[2]);

				double t3 = t[j-1] + h;
				double x3=x[i] + h*k3x;
				double y3=y[i] + h*k3y;
				double vx3=vx[i] + h*l3x;
				double vy3=vy[i] + h*l3y;


				//Cuarto paso.
				double k4x = x_punto(t3,vx3);
				double k4y = y_punto(t3,vy3);
				double l4x = v_x_punto1(t3,x3,y3,masa_central1[1],masa_central1[2]);
				double l4y = v_y_punto1(t3,x3,y3,masa_central1[1],masa_central1[2]);

				double avgkx = (k1x + 2.0*k2x + 2*k3x + k4x)/6.0;
				double avgky = (k1y + 2.0*k2y + 2*k3y + k4y)/6.0;
				double avglx = (l1x + 2.0*l2x + 2*l3x + l4x)/6.0;
				double avgly = (l1y + 2.0*l2y + 2*l3y + l4y)/6.0;

				//Actualizar las i-ésima masa al j-ésimo intervalo de tiempo.
				t[j] = t[j-1] + h;
				x[i] = x[i] + h*avgkx;
				vx[i] = vx[i] + h*avglx;
				y[i] = y[i] + h*avgky;
				vy[i] = vy[i] + h*avgly;

				if (j==1000){
					xsol1[i]=x[i];
					ysol1[i]=y[i];

				}else if (j==2000) {
					xsol2[i]=x[i];
					ysol2[i]=y[i];
				}else if (j==3000) {
					xsol3[i]=x[i];
					ysol3[i]=y[i];
				}else if (j==4000) {
					xsol4[i]=x[i];
					ysol4[i]=y[i];
				}else if (j==4999) {
					xsol5[i]=x[i];
					ysol5[i]=y[i];
				}


			}

		}
	}

	else if(nc==242){
		for(j=1; j<np; j++){
			for(i=0; i<nc; i++){

				int pm1 = 0;
				int pm2 = 121;

				id=2;

				//EVOLUCIONA LA MASA CENTRAL DE LA PRIMERA GALAXIA.
				if(i==pm1)
				{
					//Primer paso.
					k1xM1 = x_punto(t[j-1],vx[pm1]);
					k1yM1 = y_punto(t[j-1],vy[pm1]);
					l1xM1 = v_x_puntoMG1(t[j-1],x[pm1],y[pm1],x[pm2],y[pm2]);
					l1yM1 = v_y_puntoMG1(t[j-1],x[pm1],y[pm1],x[pm2],y[pm2]);

					double t1M1 = t[j-1] + (h/2.0);
					double x1M1 = x[pm1] + (h/2.0)*k1xM1;
					double y1M1 = y[pm1] + (h/2.0)*k1yM1;
					double vx1M1 = vx[pm1] + (h/2.0)*l1xM1;
					double vy1M1 = vy[pm1] + (h/2.0)*l1yM1;

					//Segundo paso.
					k2xM1 = x_punto(t1M1,vx1M1);
					k2yM1 = y_punto(t1M1,vy1M1);
					l2xM1 = v_x_puntoMG1(t1M1,x1M1,y1M1,x[pm2],y[pm2]);
					l2yM1 = v_y_puntoMG1(t1M1,x1M1,y1M1,x[pm2],y[pm2]);

					double t2M1 = t[j-1] + (h/2.0);
					double x2M1 = x[pm1] + (h/2.0)*k2xM1;
					double y2M1 = y[pm1] + (h/2.0)*k2yM1;
					double vx2M1 = vx[pm1] + (h/2.0)*l2xM1;
					double vy2M1 = vy[pm1] + (h/2.0)*l2yM1;

					//Tercer paso.
					k3xM1 = x_punto(t2M1,vx2M1);
					k3yM1 = y_punto(t2M1,vy2M1);
					l3xM1 = v_x_puntoMG1(t2M1,x2M1,y2M1,x[pm2],y[pm2]);
					l3yM1 = v_y_puntoMG1(t2M1,x2M1,y2M1,x[pm2],y[pm2]);

					double t3M1 = t[j-1] + h;
					double x3M1 = x[pm1] + h*k3xM1;
					double y3M1 = y[pm1] + h*k3yM1;
					double vx3M1 = vx[pm1] + h*l3xM1;
					double vy3M1 = vy[pm1] + h*l3yM1;


					//Cuarto paso.
					k4xM1 = x_punto(t3M1,vx3M1);
					k4yM1 = y_punto(t3M1,vy3M1);
					l4xM1 = v_x_puntoMG1(t3M1,x3M1,y3M1,x[pm2],y[pm2]);
					l4yM1 = v_y_puntoMG1(t3M1,x3M1,y3M1,x[pm2],y[pm2]);

					avgkxM1 = (k1xM1 + 2.0*k2xM1 + 2*k3xM1 + k4xM1)/6.0;
					avgkyM1 = (k1yM1 + 2.0*k2yM1 + 2*k3yM1 + k4yM1)/6.0;
					avglxM1 = (l1xM1 + 2.0*l2xM1 + 2*l3xM1 + l4xM1)/6.0;
					avglyM1 = (l1yM1 + 2.0*l2yM1 + 2*l3yM1 + l4yM1)/6.0;
				}

					//EVOLUCIONA LA MASA CENTRAL DE LA SEGUNDA GALAXIA.
				else if(i==pm2)
				{
					//Primer paso.
					k1xM2 = x_punto(t[j-1],vx[pm2]);
					k1yM2 = y_punto(t[j-1],vy[pm2]);
					l1xM2 = v_x_puntoMG2(t[j-1],x[pm1],y[pm1],x[pm2],y[pm2]);
					l1yM2 = v_x_puntoMG2(t[j-1],x[pm1],y[pm1],x[pm2],y[pm2]);

					double t1M2 = t[j-1] + (h/2.0);
					double x1M2 = x[pm2] + (h/2.0)*k1xM2;
					double y1M2 = y[pm2] + (h/2.0)*k1yM2;
					double vx1M2 = vx[pm2] + (h/2.0)*l1xM2;
					double vy1M2 = vy[pm2]+ (h/2.0)*l1yM2;

					//Segundo paso.
					k2xM2 = x_punto(t1M2,vx1M2);
					k2yM2 = y_punto(t1M2,vy1M2);
					l2xM2 = v_x_puntoMG2(t1M2,x[pm1],y[pm1],x1M2,y1M2);
					l2yM2 = v_y_puntoMG2(t1M2,x[pm1],y[pm1],x1M2,y1M2);

					double t2M2 = t[j-1] + (h/2.0);
					double x2M2 = x[pm2] + (h/2.0)*k2xM2;
					double y2M2 = y[pm2] + (h/2.0)*k2yM2;
					double vx2M2 = vx[pm2] + (h/2.0)*l2xM2;
					double vy2M2 = vy[pm2] + (h/2.0)*l2yM2;

					//Tercer paso.
					k3xM2 = x_punto(t2M2,vx2M2);
					k3yM2 = y_punto(t2M2,vy2M2);
					l3xM2 = v_x_puntoMG2(t2M2,x[pm1],y[pm1],x2M2,y2M2);
					l3yM2 = v_y_puntoMG2(t2M2,x[pm1],y[pm1],x2M2,y2M2);

					double t3M2 = t[j-1] + h;
					double x3M2 = x[pm2] + h*k3xM2;
					double y3M2 = y[pm2] + h*k3yM2;
					double vx3M2 = vx[pm2] + h*l3xM2;
					double vy3M2 = vy[pm2] + h*l3yM2;


					//Cuarto paso.
					k4xM2 = x_punto(t3M2,vx3M2);
					k4yM2 = y_punto(t3M2,vy3M2);
					l4xM2 = v_x_puntoMG2(t3M2,x[pm1],y[pm1],x3M2,y3M2);
					l4yM2 = v_y_puntoMG2(t3M2,x[pm1],y[pm1],x3M2,y3M2);

					avgkxM2 = (k1xM2 + 2.0*k2xM2 + 2*k3xM2 + k4xM2)/6.0;
					avgkyM2 = (k1yM2 + 2.0*k2yM2 + 2*k3yM2 + k4yM2)/6.0;
					avglxM2 = (l1xM2 + 2.0*l2xM2 + 2*l3xM2 + l4xM2)/6.0;
					avglyM2 = (l1yM2 + 2.0*l2yM2 + 2*l3yM2 + l4yM2)/6.0;

				}

				//EVOLUCIONA LA I-ÉSIMA MASA.
				else
				{
					//Primer paso.
					k1x = x_punto(t[j-1],vx[i]);
					k1y = y_punto(t[j-1],vy[i]);
					l1x = v_x_punto2(t[j-1],x[i],y[i],x[pm1],y[pm1],x[pm2],y[pm2]);
					l1y = v_y_punto2(t[j-1],x[i],y[i],x[pm1],y[pm1],x[pm2],y[pm2]);

					double t1 = t[j-1] + (h/2.0);
					double x1=x[i] + (h/2.0)*k1x;
					double y1=y[i] + (h/2.0)*k1y;
					double vx1=vx[i] + (h/2.0)*l1x;
					double vy1=vy[i] + (h/2.0)*l1y;

					//Segundo paso.
					k2x = x_punto(t1,vx1);
					k2y = y_punto(t1,vy1);
					l2x = v_x_punto2(t[j-1],x[i],y[i],x[pm1],y[pm1],x[pm2],y[pm2]);
					l2y = v_y_punto2(t[j-1],x[i],y[i],x[pm1],y[pm1],x[pm2],y[pm2]);

					double t2 = t[j-1] + (h/2.0);
					double x2=x[i] + (h/2.0)*k2x;
					double y2=y[i] + (h/2.0)*k2y;
					double vx2=vx[i]+ (h/2.0)*l2x;
					double vy2=vy[i] + (h/2.0)*l2y;

					//Tercer paso.
					k3x = x_punto(t2,vx2);
					k3y = y_punto(t2,vy2);
					l3x = v_x_punto2(t[j-1],x[i],y[i],x[pm1],y[pm1],x[pm2],y[pm2]);
					l3y = v_y_punto2(t[j-1],x[i],y[i],x[pm1],y[pm1],x[pm2],y[pm2]);

					double t3 = t[j-1] + h;
					double x3=x[i] + h*k3x;
					double y3=y[i] + h*k3y;
					double vx3=vx[i] + h*l3x;
					double vy3=vy[i] + h*l3y;


					//Cuarto paso.
					k4x = x_punto(t3,vx3);
					k4y = y_punto(t3,vy3);
					l4x = v_x_punto2(t[j-1],x[i],y[i],x[pm1],y[pm1],x[pm2],y[pm2]);
					l4y = v_y_punto2(t[j-1],x[i],y[i],x[pm1],y[pm1],x[pm2],y[pm2]);

					avgkx = (k1x + 2.0*k2x + 2*k3x + k4x)/6.0;
					avgky = (k1y + 2.0*k2y + 2*k3y + k4y)/6.0;
					avglx = (l1x + 2.0*l2x + 2*l3x + l4x)/6.0;
					avgly = (l1y + 2.0*l2y + 2*l3y + l4y)/6.0;

				}

				if (i==pm1) {

					x[pm1] = x[pm1] + h*avgkxM1;
					vx[pm1] = vx[pm1] + h*avglxM1;
					y[pm1] = y[pm1] + h*avgkyM1;
					vy[pm1] = vy[pm1] + h*avglyM1;


				}else if (i==pm2) {

					x[pm2] = x[pm1] + h*avgkxM2;
					vx[pm2] = vx[pm1] + h*avglxM2;
					y[pm2] = y[pm1] + h*avgkyM2;
					vy[pm2] = vy[pm1] + h*avglyM2;
				}else if(i!=pm1 || i!=pm2) {

					//Actualizar las i-ésima masa al j-ésimo intervalo de tiempo.

					t[j] = t[j-1] + h;
					x[i] = x[i] + h*avgkx;
					vx[i] = vx[i] + h*avglx;
					y[i] = y[i] + h*avgky;
					vy[i] = vy[i] + h*avgly;

				}


				if (j==1000){
					xsol1[i]=x[i];
					ysol1[i]=y[i];

				}else if (j==2000) {
					xsol2[i]=x[i];
					ysol2[i]=y[i];
				}else if (j==3000) {
					xsol3[i]=x[i];
					ysol3[i]=y[i];
				}else if (j==4000) {
					xsol4[i]=x[i];
					ysol4[i]=y[i];
				}else if (j==4999) {
					xsol5[i]=x[i];
					ysol5[i]=y[i];
				}


			}
		}



	}





	printf("EXPORTANDO ARCHIVOS...\n");
	if(id==1){

		
		//Exportando archivos con datos de posiciones en X y Y para k*10^9 años | k={1,2,3,4,5}.
		//10^9
		FILE *datos;
		char *nombre1 = "1 Galaxia-10^9.dat";
		datos = fopen(nombre1, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol1[k], ysol1[k]);
		}
		fclose(datos);

		//2*10^9
		char *nombre2 = "1 Galaxia-2*10^9.dat";
		datos = fopen(nombre2, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol2[k], ysol2[k]);
		}

		//3*10^9
		fclose(datos);
		char *nombre3 = "1 Galaxia-3*10^9.dat";
		datos = fopen(nombre3, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol3[k], ysol3[k]);
		}
		fclose(datos);

		//4*10^9
		char *nombre4 = "1 Galaxia-4*10^9.dat";
		datos = fopen(nombre4, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol4[k], ysol4[k]);
		}
		fclose(datos);

		//5*10^9
		char *nombre5 = "1 Galaxia-5*10^9.dat";
		datos = fopen(nombre5, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol5[k], ysol5[k]);
		}
		fclose(datos);
	}else if (id==2) {

		//Exportando archivos con datos de posiciones en X y Y para k*10^9 años | k={1,2,3,4,5}.
		//10^9
		FILE *datos;
		char *nombre1 = "2 Galaxias-10^9.dat";
		datos = fopen(nombre1, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol1[k], ysol1[k]);
		}
		fclose(datos);

		//2*10^9
		char *nombre2 = "2 Galaxias-2*10^9.dat";
		datos = fopen(nombre2, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol2[k], ysol2[k]);
		}

		//3*10^9
		fclose(datos);
		char *nombre3 = "2 Galaxias-3*10^9.dat";
		datos = fopen(nombre3, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol3[k], ysol3[k]);
		}
		fclose(datos);

		//4*10^9
		char *nombre4 = "2 Galaxias-4*10^9.dat";
		datos = fopen(nombre4, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol4[k], ysol4[k]);
		}
		fclose(datos);

		//5*10^9
		char *nombre5 = "2 Galaxias-5*10^9.dat";
		datos = fopen(nombre5, "w");
		for(k=0; k<nc; k++){
			fprintf(datos, "%lf %lf %lf\n", id_array[k], xsol5[k], ysol5[k]);
		}
		fclose(datos);
	}

	printf("EJECUCIÓN EXITOSA!\n");

	return 9812;
}