elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda en C++ Código que Calcule la Desviación Estándar?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en C++ Código que Calcule la Desviación Estándar?  (Leído 15,309 veces)
sendwuk

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda en C++ Código que Calcule la Desviación Estándar?
« en: 21 Marzo 2015, 00:22 am »

Tiene una matriz 5 filas(califs) x 10columnas(alumnos) llena de datos se desea conocer la desviacion standar de cada alumno y guardarla la de todos en un vector de dimencion 10 de cada .

Imprimir el vector de  las desviaciones estandar al final.

 eso es lo que tengo que desarrollar y el codigo que eh formulado es este


Código
  1. #include <iostream>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #define FILAS 5
  5. #define COLUM 10
  6.  
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.  int matriz[FILAS][COLUM] ={
  13.    100,90,80,70,60,50,40,60,70 ,100,
  14.    100,95,65,75,100,99,90,89,79,60,
  15.    100,45,100,90,78,65,100,100,90,76,
  16.    100,90,90,99,82,73,64,68,70,80,
  17.  };
  18.  
  19. int f, c,i,n=1; // Indices de f = filas c= columnas//
  20. int media=0;
  21. int des_std=0;
  22. int acum=0;
  23. int cuadrado=0;
  24. int vector_des[10];
  25.  
  26. for(f=0;f<FILAS;f++)
  27. {
  28.    for(c=0;c<COLUM;c++)
  29.    {
  30.        acum=acum+matriz[f][c];
  31.        media= acum/5;
  32.        cuadrado=cuadrado+((matriz[f][c]-media)*(matriz[f][c]-media));
  33.        des_std=sqrt(cuadrado/4);
  34.        vector_des[i]=des_std;
  35.        i++;
  36.        cout<<" La desviacion estandar del Alumno" <<"  " <<n << " es : " << vector_des[i] <<endl;
  37.        n++;
  38.    }
  39. }
  40.  
  41.  
  42. system("pause");
  43.  
  44.  
  45.  
  46.  
  47. }
  48.  


No entiendo como deben de ir los For, podrian ayudarme un poco

Mod: Al publicar codigo usa las etiquetas GeSHi. Modifica el titulo y coloca uno descriptivo "ayuda" no dice nada


« Última modificación: 21 Marzo 2015, 00:50 am por sendwuk » En línea

flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: Ayuda en C++ Código que Calcule la Desviación Estándar?
« Respuesta #1 en: 28 Marzo 2015, 04:02 am »

hace una bocha no hago matemáticas ...pero tratare de ayudar
Código:
#include <stdlib.h> /7 cual es la finalidad de esta biblioteca ?
******************
Código:
vector_des[i]=des_std;
recoda este es un vector...que esta corriendo en una matriz...no te olvides del doble for ...seria mejor hacer esa carga fuera de los for.....bueno eso en la parte practica, en la parte lógica que función cumple tener un vector en la cual todos los elementos son el mismo....o sea la varianza o desviación estándar...recordad que la desviacion estandar es solo un numero que vas a obtener del conjunto de datos
*******************
Código:
cout<<" La desviacion estandar del Alumno" <<"  " <<n << " es : " << vector_des[i] <<endl;
Código:
cout << " La desviacion estandar del Alumno " << c << " es : " << des_std  << endl;
esta parte del código se me hace que queres responder si la nota del alumno esta fuera o no de la desviación estándar, para ello deberías realizar otro calculo matemático....o esta mal planteado lo expuesto en pantalla...repito la desviación estándar es solo una  
*******************
bueno para terminar una pagina donde explican como obtener la desviación estándar de una muestra
http://es.wikipedia.org/wiki/Desviaci%C3%B3n_t%C3%ADpica
*******************
haaa para terminar podrías poner mas copada la matriz para que se pueda llenar por el usuario y no que vos pongas el dato
*******************
creo que para mejorar la matriz deberia ser fila alumno columna nota


« Última modificación: 28 Marzo 2015, 04:17 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Ayuda en C++ Código que Calcule la Desviación Estándar?
« Respuesta #2 en: 28 Marzo 2015, 15:17 pm »

Cálculos paso por paso:

  • Conteo (cantidad de números)
  • Suma (suma de los números)
  • Media (promedio de la suma)
  • Diferencias^2: ( (Numero - media) ^ 2)
  • Varianza (diferencia / conteo)
  • Desviación estándar (Raíz de la varianza)


Código
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.   int data[5][10] ={
  9.   {100,90,80,70,60,50,40,60,70,100},
  10.   {100,95,65,75,100,99,90,89,79,60},
  11.   {100,45,100,90,78,65,100,100,90,76},
  12.   {100,90,90,99,82,73,64,68,70,80},
  13.   {85,90.5,98.3,99,69.8,98.7,89.9,95.4,89,100}
  14. };
  15. double sum[5]; // cantidad de filas = cantidad de alumnos
  16. double avg[5];
  17. double variance[5];
  18. double deviation[5];
  19.  
  20. // sumatorias
  21. for(int row=0; row<5; row++) {
  22. sum[row] = 0;
  23. for(int col=0; col<10; col++) {
  24. // sumatoria de las notas de cada alumno
  25. sum[row] += data[row][col];
  26. }
  27. }
  28.  
  29. // promedios
  30. for(int index=0; index<5; index++) {
  31. avg[index] = sum[index] / (10.0f);
  32. }
  33.  
  34. // varianzas
  35. for(int row=0; row<5; row++) {
  36. variance[row] = 0;
  37. for(int col=0; col<10; col++) {
  38. double range = pow(data[row][col] - avg[row], 2);
  39. variance[row] += range;
  40. }
  41. variance[row] = variance[row] / 10;
  42. }
  43.  
  44. // desviaciones
  45. for(int index=0; index<5; index++) {
  46. deviation[index] = sqrt(variance[index]);
  47. }
  48.  
  49. // imprime las desviaciones
  50. for(int index=0; index<5; index++) {
  51. cout << "La desviación del alumno es: " << deviation[index];
  52. cout << "\n";
  53. }
  54.  
  55. return 0;
  56. }

Citar
La desviación del alumno es: 19.3907
La desviación del alumno es: 13.9556
La desviación del alumno es: 17.5397
La desviación del alumno es: 12.2
La desviación del alumno es: 8.87468
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines