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 */ |
ERIK
2010-06-15 14:59:47
hola quiero programas en c