Ejemplo n.º 1
0
/**
 * @brief Función para demostración del comportamiento del programa
 * 
 */
void demo()
{
	/* VARIABLES LOCALES DEMO */
	int DatosDelDemo[] = {
												816, 810, 856, 888,
												833, 817, 839, 853,
												811, 837, 881, 873,
												889, 836, 815, 860,
												888, 830, 888, 830,
												881, 844, 830, 831,
												840, 844, 840, 814,
												841, 858, 810, 888,
												883, 835, 884, 849,
												882, 856, 888, 833,
												869, 835, 835, 884,
												849, 850, 844, 840,
												858, 853, 837, 881,
												873, 889, 836, 815,
												840, 838, 874, 831,
												845, 812, 819, 887,
												842, 854, 871, 841,
												838, 814, 859, 810
												};

	// Muestra los datos ingresados de forma desordenada
	cls();

	for (int i = 0, color = 1; i < 30; i++, color++)
	{
		locate(2, (trows() / 2));
		(i < 15) ? printf("Cargando componentes principales") : printf("Estamos iniciando");
		puntitos(i, i);
		setColor(color);
		if (color > 14) color = 1;

	}
	
	cls();
	setColor(CYAN);
	printf("Variable: PROGRAMA DEMO");

	gotoxy(60, 1);
	setColor(GREEN);
	printf("Resultado final.");

	gotoxy(0, 0);
	setColor(WHITE);
	printf("\n\t\t\tPrograma estadistico\n\n");

	setColor(YELLOW);
	printf("\n\nDatos desordenados: {\n");
	
	int _totalElementosNoOrdenados = 0;
	
	for (int i = 0; i < (int)sizeof(DatosDelDemo) / (int)sizeof(DatosDelDemo[0]); i++)
	{
		if (DatosDelDemo[i] != 0)
		{
			Sleep(100);
			printf("%d,	", DatosDelDemo[i]);
			_totalElementosNoOrdenados++;
		}
	}
	
	printf("}\nTotal de elementos: %d\n", _totalElementosNoOrdenados);


	/*
	 * ──────────────────────────────────────────────────────────────────────── I ──────────
	 *   :::::: O R D E N   A S C E N D E N T E : :  :   :    :     :        :          :
	 * ──────────────────────────────────────────────────────────────────────────────────
	 * 
	 * Obtiene el número mayor de los datos, con el fin de después ordenarlos de forma ascendente
	 * 
	 */
	int numeroMayor = 0;
	numeroMayor = DatosDelDemo[0];

	for (int i = 0; i < (int)sizeof(DatosDelDemo) / (int)sizeof(DatosDelDemo[0]); i++)
	{
		if (numeroMayor < DatosDelDemo[i])
		{
			numeroMayor = DatosDelDemo[i];
		}
	}

	/*
	 * ──────────────────────────────────────────────────────────────────── II ──────────
	 *   :::::: O R D E N   D E   D A T O S : :  :   :    :     :        :          :
	 * ──────────────────────────────────────────────────────────────────────────────
	 */
	int		_ArregloAuxiliar[MAX_LENGHT] = { 0 };

	int _totalNumerosOrdenados = 0;

	setColor(WHITE);
	printf("\nDatos ordenados: {\n");

	for (int i = 1, k = 0, color = 1; i <= numeroMayor; i++, color++)
	{
		for (int j = 0; j < (int)sizeof(DatosDelDemo) / (int)sizeof(DatosDelDemo[0]); j++)
		{
			if (DatosDelDemo[j] == i)
			{
				setColor(color);
				_ArregloAuxiliar[k] = DatosDelDemo[j];
				Sleep(100);
				printf("%d,\t", _ArregloAuxiliar[k]);
				k++;
				_totalNumerosOrdenados++;
			}
		}
		if (color > 14)  color = 1;
	}
	
	setColor(WHITE);
	printf("}\n");
	printf("Total de elementos ordenados: %d\n", _totalNumerosOrdenados);


	/*
	 * ────────────────────────────────────────────────────────────────────────────────────── III ──────────
	 *   :::::: E L I M I N A   D A T O S   R E P E T I D O S : :  :   :    :     :        :          :
	 * ────────────────────────────────────────────────────────────────────────────────────────────────
	 */
	int		Arreglo_A[MAX_LENGHT] = { 0 };
	int		datoDeArreglo = 0;
	
	for (int i = 0, j = 0; i < (int)sizeof(_ArregloAuxiliar) / (int)sizeof(_ArregloAuxiliar[0]); i++)
	{
		datoDeArreglo = _ArregloAuxiliar[i];
		if (datoDeArreglo != 0)
		{
			if (datoDeArreglo != _ArregloAuxiliar[i + 1])
			{
				/*printf("%d\n", datoDeArreglo);*/
				Arreglo_A[j] = datoDeArreglo;
				j++;
			}
		}
	}

	/*
	 * ─── FRECUENCIA DE LOS NUMEROS ──────────────────────────────────────────────────
	 */
	int		Frecuencia[MAX_LENGHT] = { 0 };
	datoDeArreglo = _ArregloAuxiliar[0];
	int indiceFrecuencia = 0;
	Frecuencia[indiceFrecuencia] = 0;
	for (int indice = 0; indice < (int)sizeof(_ArregloAuxiliar) / (int)sizeof(_ArregloAuxiliar[0]); indice++)
	{
		if (_ArregloAuxiliar[indice] != 0)
		{
			if (datoDeArreglo == _ArregloAuxiliar[indice])
			{
				/*printf("\nDato %d = %d.\tFrecuencia = %d", datoDeArreglo, _ArregloAuxiliar[indice], Frecuencia[indiceFrecuencia]);*/
				Frecuencia[indiceFrecuencia]++;
			}
			else
			{
				/*printf("\nDato %d != %d.", datoDeArreglo, _ArregloAuxiliar[indice]);*/
				datoDeArreglo = _ArregloAuxiliar[indice];
				/*printf("\nDato = %d", datoDeArreglo);*/
				
				Frecuencia[indiceFrecuencia++];

				Frecuencia[indiceFrecuencia]++;
			}
		}
	}

	/*
	* ─── FRECUENCIA ACUMULADA ───────────────────────────────────────────────────────
	*/

	int FrecuenciaAcumulada[MAX_LENGHT] = { 0 };

	int ValorInicial = Frecuencia[0];

	int totalDatosDelDemo = 0;

	for (int i = 0, j = 0; i < (int)sizeof(Frecuencia) / (int)sizeof(Frecuencia[0]); i++)
	{
		if (i < 1)
		{
			FrecuenciaAcumulada[j] = ValorInicial;
			j++;
		}
		else
		{
			if (Frecuencia[i] != 0)
			{
				FrecuenciaAcumulada[j] = FrecuenciaAcumulada[j - 1] + Frecuencia[i];
				totalDatosDelDemo = FrecuenciaAcumulada[j];
				j++;
			}
		}
	}


	/*
	 * ─── FRECUENCIA RELATIVA ────────────────────────────────────────────────────────
	 */
	double	FrecuenciaRelativa[MAX_LENGHT] = { 0 };

	double _totalSumaFrecuenciaRelativa = 0;

	for (int i = 0; i < MAX_LENGHT; i++)
	{
		if (Frecuencia[i] != 0)
		{
			FrecuenciaRelativa[i] = (double)Frecuencia[i] / totalDatosDelDemo;
			/*printf("\nFrecuencia Relativa: %f = %d/%d", FrecuenciaRelativa[i], Frecuencia[i], totalDatosDelDemo);*/
			_totalSumaFrecuenciaRelativa += FrecuenciaRelativa[i];
		}
	}


	/*
	* ─── FRECUENCIA RELATIVA ACOMULADA ──────────────────────────────────────────────
	*/
	double	FrecuenciaRelativaAcumulada[MAX_LENGHT] = { 0 };
	for (int i = 0; i < MAX_LENGHT; i++)
	{
		FrecuenciaRelativaAcumulada[i] = (double)FrecuenciaAcumulada[i] / totalDatosDelDemo;
		/*printf("\nFrecuencia RelativaAcumulada: %f = %d/%d", FrecuenciaRelativaAcumulada[i], FrecuenciaAcumulada[i], totalDatosDelDemo);*/
	}


	/*
	 * ─── MUESTRA LOS DATOS EN FORMA DE TABLA ────────────────────────────────────────
	 */
	setColor(WHITE);
	printf("\nRenglon\tDatos\tFrecuencia\tFrecuenAcu\tFrecRel\t\tFrecRelAcu\n");
	setColor(GREEN);

	for (int i = 0, indice = 0; indice < MAX_LENGHT; i++, indice++)
	{
		if (Arreglo_A[indice] != 0)
		{
			printf("  [%d]\t|", indice + 1);						/* Renglon*/
			printf("%d\t|", Arreglo_A[indice]);						/* DatosDelDemo */
			printf("%d\t\t|", Frecuencia[indice]);					/* Frecuencia*/
			printf("%d\t\t|", FrecuenciaAcumulada[indice]);			/* Frecuencia Acumulada*/
			printf("%.4f\t\t|", FrecuenciaRelativa[indice]);		/* Frecuenca Relativa */
			printf("%.4f\n", FrecuenciaRelativaAcumulada[indice]);	/* Frecuencia Relativa Acumulada */
			Sleep(100);
		}

	}
	printf("  Total:\t %d\t\t\t\t %.4f \n", totalDatosDelDemo, _totalSumaFrecuenciaRelativa);
	system("pause");

	/*
	 * ─── CREDITOS ───────────────────────────────────────────────────────────────────
	 */
	cls();
	setColor(CYAN);
	gotoxy(1, 10);
	printf(" Luis %cngel De Santiago Guerrero\n", A);
	puntitos(100, 30);

	main();
}
Ejemplo n.º 2
0
void demo()																		/* ESTA ES UNA FUNCIÓN DE DEMOSTRACIÓN */
{
	/* VARIABLES LOCALES DEMO */
	int DatosDelDemo[] = { 816, 810, 856, 888, 833, 817, 839, 853, 811, 837, 881, 873, 889, 836, 815, 860, 888, 830, 888, 830, 881, 844, 830, 831, 840, 844, 840, 814, 841, 858, 810, 888, 883, 835, 884, 849, 882, 856, 888, 833, 869, 835, 835, 884, 849, 850, 844, 840, 858, 853, 837, 881, 873, 889, 836, 815, 840, 838, 874, 831, 845, 812, 819, 887, 842, 854, 871, 841, 838, 814, 859, 810 };
	/* Muestra los datos ingresados de forma desordenada DEMO*/

	cls();
	for (int i = 0, color = 1; i < 30; i++, color++)
	{
		locate(2, (trows() / 2));
		(i < 15) ? printf("Cargando componentes principales") : printf("Estamos iniciando");
		puntitos(i, i);
		setColor(color);
		if (color > 14) color = 1;

	}
	cls();
	setColor(CYAN);
	printf("Variable: PROGRAMA DEMO");

	gotoxy(60, 1);
	setColor(GREEN);
	printf("Resultado final.");

	gotoxy(0, 0);
	setColor(WHITE);
	printf("\n\t\t\tPrograma estadistico\n\n");

	setColor(YELLOW);
	printf("\n\nDatos desordenados: {\n");
	int _totalElementosNoOrdenados = 0;
	for (int i = 0; i < (int)sizeof(DatosDelDemo) / (int)sizeof(DatosDelDemo[0]); i++)
	{
		if (DatosDelDemo[i] != 0)
		{
			Sleep(100);
			printf("%d,	", DatosDelDemo[i]);
			_totalElementosNoOrdenados++;
		}
	}
	printf("}\nTotal de elementos: %d\n", _totalElementosNoOrdenados);


	/* ORDEN ASCENDENDE Órden de datos */
	/* [Órden de datos] 1. Obtiene el número mayor de los datos, con el fin de después ordenarlos de forma ascendente */
	int numeroMayor = 0;
	numeroMayor = DatosDelDemo[0];		/* Posiciona la variable numMayor al incio del arrglo para comparar uno por uno los elementos */
	for (int i = 0; i < (int)sizeof(DatosDelDemo) / (int)sizeof(DatosDelDemo[0]); i++)
	{
		if (numeroMayor < DatosDelDemo[i])
		{
			numeroMayor = DatosDelDemo[i];
		}
	}

	/* [Órden de datos] 2. Recorre el arreglo de DatosDelDemo, colocando los números ordenados en el _ArregloAuxiliar*/
	int		_ArregloAuxiliar[MAX_LENGHT] = { 0 };		/*Arreglo Auxiliar para la función de registrar los datos dados por el usuario, de forma no ordenada*/
														/* Muestra los datos ordenados */
	setColor(WHITE);
	int _totalNumerosOrdenados = 0;
	printf("\nDatos ordenados: {\n");
	for (int i = 1, k = 0, color = 1; i <= numeroMayor; i++, color++)
	{
		/* La variable i recorre todos los valores ingresados hasta el número mayor */
		for (int j = 0; j < (int)sizeof(DatosDelDemo) / (int)sizeof(DatosDelDemo[0]); j++)
		{
			/* Para el primer valor de la variable i, hace un recorrido de todo el arreglo preguntando, "¿Quién es igual a 1...?", "¿Quién es igual a dos...?, así sucesivamente hasta el número mayor ingresado */
			if (DatosDelDemo[j] == i)
			{
				setColor(color);
				_ArregloAuxiliar[k] = DatosDelDemo[j];
				Sleep(100);
				printf("%d,\t", _ArregloAuxiliar[k]);
				k++;
				_totalNumerosOrdenados++;
			}
		}
		if (color > 14)  color = 1;
	}
	setColor(WHITE);
	printf("}\n");
	printf("Total de elementos ordenados: %d\n", _totalNumerosOrdenados);


	/*  DATOS: Remueve los elementos repetidos, y los coloca en el Arreglo_A*/
	int		Arreglo_A[MAX_LENGHT] = { 0 };				/*Arreglo en donde se almacenan los datos finales, no repetidos de forma ordenada*/
	int		datoDeArreglo = 0;
	for (int i = 0, j = 0; i < (int)sizeof(_ArregloAuxiliar) / (int)sizeof(_ArregloAuxiliar[0]); i++)
	{
		datoDeArreglo = _ArregloAuxiliar[i];
		if (datoDeArreglo != 0)
		{
			if (datoDeArreglo != _ArregloAuxiliar[i + 1])
			{
				/*printf("%d\n", datoDeArreglo);*/
				Arreglo_A[j] = datoDeArreglo;
				j++;
			}
		}
	}


	/*  FRECUENCIA de los números */
	int		Frecuencia[MAX_LENGHT] = { 0 };
	datoDeArreglo = _ArregloAuxiliar[0];		/* Se posiciona el datoDeArreglo en el primer elemento del arreglo */
	int indiceFrecuencia = 0;
	Frecuencia[indiceFrecuencia] = 0;
	for (int indice = 0; indice < (int)sizeof(_ArregloAuxiliar) / (int)sizeof(_ArregloAuxiliar[0]); indice++)
	{
		if (_ArregloAuxiliar[indice] != 0)
		{
			if (datoDeArreglo == _ArregloAuxiliar[indice])
			{
				/*printf("\nDato %d = %d.\tFrecuencia = %d", datoDeArreglo, _ArregloAuxiliar[indice], Frecuencia[indiceFrecuencia]);*/
				Frecuencia[indiceFrecuencia]++;
			}
			else
			{
				/*printf("\nDato %d != %d.", datoDeArreglo, _ArregloAuxiliar[indice]);*/
				datoDeArreglo = _ArregloAuxiliar[indice];
				/*printf("\nDato = %d", datoDeArreglo);*/
				Frecuencia[indiceFrecuencia++];
				Frecuencia[indiceFrecuencia]++; // Se repite por lo menos una vez
			}
		}
	}


	/* FRECUENCIA ACUMULADA */
	int FrecuenciaAcumulada[MAX_LENGHT] = { 0 };
	int ValorInicial = Frecuencia[0]; /* Valor inicial */
	int totalDatosDelDemo = 0;
	for (int i = 0, j = 0; i < (int)sizeof(Frecuencia) / (int)sizeof(Frecuencia[0]); i++)
	{
		if (i < 1)
		{
			FrecuenciaAcumulada[j] = ValorInicial;
			j++;
		}
		else
		{
			if (Frecuencia[i] != 0)
			{
				FrecuenciaAcumulada[j] = FrecuenciaAcumulada[j - 1] + Frecuencia[i];
				totalDatosDelDemo = FrecuenciaAcumulada[j];
				j++;
			}
		}
	}


	/* FRECUENCIA RELATIVA */
	double	FrecuenciaRelativa[MAX_LENGHT] = { 0 };
	double _totalSumaFrecuenciaRelativa = 0;
	for (int i = 0; i < MAX_LENGHT; i++)
	{
		if (Frecuencia[i] != 0)
		{
			FrecuenciaRelativa[i] = (double)Frecuencia[i] / totalDatosDelDemo;
			/*printf("\nFrecuencia Relativa: %f = %d/%d", FrecuenciaRelativa[i], Frecuencia[i], totalDatosDelDemo);*/
			_totalSumaFrecuenciaRelativa += FrecuenciaRelativa[i];
		}
	}


	/* FRECUENCIA RELATIVA ACUMULADA */
	double	FrecuenciaRelativaAcumulada[MAX_LENGHT] = { 0 };
	for (int i = 0; i < MAX_LENGHT; i++)
	{
		FrecuenciaRelativaAcumulada[i] = (double)FrecuenciaAcumulada[i] / totalDatosDelDemo;
		/*printf("\nFrecuencia RelativaAcumulada: %f = %d/%d", FrecuenciaRelativaAcumulada[i], FrecuenciaAcumulada[i], totalDatosDelDemo);*/
	}


	/* TABLA */
	setColor(WHITE);
	printf("\nRenglon\tDatos\tFrecuencia\tFrecuenAcu\tFrecRel\t\tFrecRelAcu\n");
	setColor(GREEN);
	for (int i = 0, indice = 0; indice < MAX_LENGHT; i++, indice++)
	{
		if (Arreglo_A[indice] != 0)
		{
			printf("  [%d]\t|", indice + 1);						/* Renglon*/
			printf("%d\t|", Arreglo_A[indice]);						/* DatosDelDemo */
			printf("%d\t\t|", Frecuencia[indice]);					/* Frecuencia*/
			printf("%d\t\t|", FrecuenciaAcumulada[indice]);			/* Frecuencia Acumulada*/
			printf("%.4f\t\t|", FrecuenciaRelativa[indice]);		/* Frecuenca Relativa */
			printf("%.4f\n", FrecuenciaRelativaAcumulada[indice]);	/* Frecuencia Relativa Acumulada */
			Sleep(100);
		}

	}
	printf("  Total:\t %d\t\t\t\t %.4f \n", totalDatosDelDemo, _totalSumaFrecuenciaRelativa);
	system("pause");

	/* Muestra los créditos */
	cls();
	setColor(CYAN);
	gotoxy(1, 10);
	printf(" Luis %cngel De Santiago Guerrero\n", A);
	puntitos(100, 30);

	main();
}
Ejemplo n.º 3
0
void updateWorld(World *world) {
	world->width = tcols();
	world->height = trows();
	world->frame++;
	world->millis += FRAME_RATE;
}