/** * @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(); }
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(); }
void updateWorld(World *world) { world->width = tcols(); world->height = trows(); world->frame++; world->millis += FRAME_RATE; }