Este programa introduce el tema del analisis de datos. Calcula la media, la mediana y la moda de los datos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | #include <stdio.h> #define TAMANIO 99 /* prototipos de las funciones */ void media( const int resp[] );void mediana( int resp[] ); void moda( int frec[], const int resp[] ) ; void ordenamBurbuja( int a[] ); void imprimeArreglo( const int a[] ); /* la función main comienza la ejecución del programa */ int main() { int frecuencia[ 10 ] = { 0 }; /* inicializa el arreglo frecuencia */ /* inicializa el arreglo respuestas */ int respuesta[ TAMANIO ] = { 6, 7, 8, 9, 8, 7, 8, 9, 8, 9, 7, 8, 9, 5, 9, 8, 7, 8, 7, 8, 6, 7, 8, 9, 3, 9, 8, 7, 8, 7, 7, 8, 9, 8, 9, 8, 9, 7, 8, 9, 6, 7, 8, 7, 8, 7, 9, 8, 9, 2, 7, 8, 9, 8, 9, 8, 9, 7, 5, 3, 5, 6, 7, 2, 5, 3, 9, 4, 6, 4, 7, 8, 9, 6, 8, 7, 8, 9, 7, 8, 7, 4, 4, 2, 5, 3, 8, 7, 5, 6, 4, 5, 6, 1, 6, 5, 7, 8, 7 }; /* procesa las respuestas */ media( respuesta ); mediana( respuesta ); moda( frecuencia, respuesta ); return 0; /* indica terminación exitosa */ } /* fin de main */ /* calcula el promedio de todos los valores de las respuestas */ void media( const int resp[] ) { int j; /* contador del total de elementos del arreglo */ int total = 0; /* variable para mantener la suma de los elementos del arreglo */ printf( "%sn%sn%sn", "********", " Media", "********" ); /* total de los valores de las respuestas */ for ( j = 0; j < TAMANIO; j++ ) { total += resp[ j ]; } /* fin de for */ printf( "La media es el valor promedio de los datos.n" "La media es igual al total den" "todos los elementos de datos divididos porn" "el numero de elementos de datos ( %d ). La median" "en esta ejecucion es: %d / %d = %.4fnn", TAMANIO, total, TAMANIO, ( double ) total / TAMANIO ); } /* fin de la función media */ /* ordena el arreglo y determina el valor de la mediana */ void mediana( int resp[] ){ printf( "n%sn%sn%sn%s", "********", " Mediana", "********", "El arreglo de respuestas desordenado es" ); imprimeArreglo( resp ); /* muestra el arreglo desordenado */ ordenamBurbuja( resp ); /* ordena el arreglo */ printf( "nnEl arreglo ordenado es " ); imprimeArreglo( resp ); /* muestra el arreglo ordenado */ /* muestra la mediana */ printf( "nnLa mediana es el elemento %d deln" "arreglo ordenado de elementos %d.n" "Para esta ejecucion la mediana es %dnn", TAMANIO / 2, TAMANIO, resp[ TAMANIO / 2 ] ); } /* fin de la función mediana */ /* determina las respuestas más frecuentes */void moda( int frec[], const int resp[] ) { int rango; /* contador para acceder a los elementos de 1 a 9 del arreglo frec */ int j; /* contador para sumar los elementos de 0 a 98 des arreglo respuesta */ int h; /* contador para desplegar histogramas de los elementos en el arreglo frec */ int masGrande = 0; /* representa la frecuencia más grande */ int valorModa = 0; /* respesenta la respuesta más frecuente */ printf( "n%sn%sn%sn", "********", " Moda", "********" ); /* inicializa las frecuencias a 0 */ for ( rango = 1; rango <= 9; rango++ ) { frec[ rango ] = 0; } /* fin de for */ /* suma las frecuencias */ for ( j = 0; j < TAMANIO; j++ ) { ++frec[ resp[ j ] ]; } /* fin de for */ /* muestra los encabezados de las columnast columns */ printf( "%s%11s%19snn%54sn%54snn", "Respuesta", "Frecuencia", "Histograma", "1 1 2 2", "5 0 5 0 5" ); /* muestra los resultados */ for ( rango = 1; rango <= 9; rango++ ) { printf( "%8d%11d ", rango, frec[ rango ] ); /* sigue la pista del valor de la moda y del valor de la frecuencia más grande */ if ( frec[ rango ] > masGrande ) { masGrande = frec[ rango ]; valorModa = rango; } /* fin de if */ /* muestra los histogramas de barras que representan el valor de la frecuencia */ for ( h = 1; h <= frec[ rango ]; h++ ) { printf( "*" ); } /* fin del for interno */ printf( "n" ); /* nueva lÃÂnea de salida */ } /* fin del for externo */ /* despliega el valor de la moda */ printf( "La moda es el valor mas frecuente.n" "Para esta ejecucion la moda es %d el cual ocurrio" " %d veces.n", valorModa, masGrande ); } /* fin de la función moda */ /* función que ordena un arreglo mediante el algoritmo del método de la burbuja algorithm */ void ordenamBurbuja( int a[] ) { int pasada; /* contador de pasadas */ int j; /* contaodr de pasadas */ int almacena; /* ubicación temporal utilizada para intercambiar los elementos */ /* ciclo para controlar el número de pasadas */ for ( pasada = 1; pasada < TAMANIO; pasada++ ) { /* ciclo para controlar el número de comparaciones por pasada */ for ( j = 0; j < TAMANIO - 1; j++ ) { /* intercambia los elementos si no se encuentran en orden */ if ( a[ j ] > a[ j + 1 ] ) { almacena = a[ j ]; a[ j ] = a[ j + 1 ]; a[ j + 1 ] = almacena; } /* fin de if */ } /* fin del for interno */ } /* fin del for externo */ } /* fin de ordenamBurbuja */ /* muestra el contenido del arreglo (20 valores por lÃÂnea) */ void imprimeArreglo( const int a[] ) { int j; /* contador */ /* muestra el contenido del arreglo */ for ( j = 0; j < TAMANIO; j++ ) { if ( j % 20 == 0 ) { /* comienza una nueva lÃÂnea cada 20 valores */ printf( "n" ); } /* fin de ifend if */ printf( "%2d", a[ j ] ); } /* fin de for */ } /* fin de la función imprimeArreglo */ |
¿Has encontrado algún error? ¿Tienes la solución? Dejame tu correción ;-)
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C <code lang="c">Código en C</code>
- Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.
De esta manera el código coloreas el código.
Otro punto importante para muchos que crees que te he ignorado: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios así como también cambiar mis condiciones en el momento que yo lo requiera.
¿Si estas de acuerdo? Adelante! que ya te he quitado bastante tiempo leyendo esta basura :)