Este programa introduce el tema del análisis de datos. Calcula la media, la mediana y la moda de los datos
#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 */
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 [c]Código en C[/c]
- Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].
De esta manera el código coloreas el código.
Otro punto importante para muchos que sienten que se les ignora: 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 cambiar mis condiciones en el momento que así lo requiera.
¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)