Guest User

Untitled

a guest
May 21st, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <math.h>
  4. #include "Conjunto.h"
  5. #include "Dado.cpp"
  6.  
  7. /*
  8. Authors:Antonio Ribeiro Alves Junior e
  9. Gustavo Luiz Ferreira Walbon.
  10. Description: Armazenará os dados em um array dinâmico. Com funções que
  11. retornaram alguns valores estatísticos.
  12. */
  13.  
  14. class Conjunto //BEGIN: CONJUNTO CLASS
  15. {
  16. Conjunto::Conjunto()
  17. { //BEGIN: Constructor Class
  18. Tamanho = 0 ;
  19. raiz = NULL ;
  20.  
  21. } //END: Constructor Class
  22.  
  23. float Conjunto::AdicionarDado(float dado)
  24. { //BEGIN: AdicionarDado
  25. int valor_nVezes = 1;
  26.  
  27. if(raiz == NULL )
  28. {
  29. raiz = new Dado();
  30. raiz->valor = dado;
  31. raiz->valor_vezes=1;
  32. raiz->proximo = NULL;
  33. }
  34. else
  35. {
  36. Dado* ptrDado ;
  37. ptrDado = raiz ;
  38. while( ptrDado != NULL )
  39. {
  40. if ( ptrDado->valor == dado )
  41. valor_nVezes = ptrDado->valor_vezes++;
  42. ptrDado = ptrDado->proximo;
  43. }
  44.  
  45. ptrDado = new Dado();
  46. ptrDado->valor = dado;
  47. ptrDado->valor_vezes = valor_nVezes;
  48. ptrDado->proximo = NULL;
  49. }
  50. return dado;
  51. } //END: AdicionarDado
  52.  
  53. int Conjunto::Tamanho()
  54. { //BEGIN: Tamanho
  55. Dado* ptrDado = raiz;
  56. int n_tamanho = 0;
  57.  
  58. while(ptrDado != NULL)
  59. {
  60. n_tamanho++;
  61. ptrDado = ptrDado->proximo;
  62. }
  63. return n_tamanho;
  64. } //END: Tamanho
  65.  
  66. double Conjunto::Media()
  67. { //BEGIN: Media
  68. float Soma = 0;
  69.  
  70. Dado* ptrDado = raiz;
  71.  
  72. while(ptrDado != NULL)
  73. {
  74. Soma+=ptrDado->valor;
  75. ptrDado = ptrDado->proximo;
  76. }
  77.  
  78. return ( Soma/Tamanho() );
  79. } //END: Media
  80. int Conjunto::Mediana()
  81. { //BEGIN: Mediana
  82. float dif_Media = raiz->valor - Media();
  83. float mediana = raiz->valor;
  84.  
  85. Dado* ptrDado = raiz;
  86.  
  87. while(ptrDado != NULL)
  88. {
  89. if ( (ptrDado->valor)-Media() < dif_Media )
  90. {
  91. mediana = ptrDado->valor;
  92. dif_Media = (ptrDado->valor) - Media();
  93. }
  94. ptrDado = ptrDado->proximo;
  95. }
  96.  
  97. return mediana;
  98. } //END: Mediana
  99.  
  100. float Conjunto::DesvioPadrao()
  101. { //BEGIN: DesvioPadrao
  102.  
  103. return sqrt( Variancia() );
  104. } //END: DesvioPadrao
  105.  
  106. float Conjunto::Variancia()
  107. { //BEGIN: Variancia
  108. float dif_Soma = 0;
  109.  
  110. Dado* ptrDado = raiz;
  111.  
  112. while(ptrDado != NULL)
  113. {
  114. dif_Soma += exp2( (ptrDado->valor - Media()) );
  115.  
  116. ptrDado = ptrDado->proximo;
  117. }
  118. return (dif_Soma/Tamanho());
  119. } //END: Variancia
  120.  
  121. float Conjunto::Moda()
  122. { //BEGIN: Moda
  123. Dado* ptrDado = raiz;
  124. Dado* ptrModa = raiz;
  125.  
  126. int nVezes = raiz->valor_vezes;
  127.  
  128. while( ptrDado != NULL)
  129. {
  130. if( ptrDado->valor_vezes > nVezes )
  131. ptrModa = ptrDado;
  132.  
  133. ptrDado = ptrDado->proxima;
  134. }
  135. return ptrModa->valor;
  136. } //END: Moda
  137.  
  138.  
  139.  
  140. Conjunto::~Conjunto() //BEGIN: Destrutor Class
  141. {
  142. // Delete em tudo!;
  143. } //END: Destrutor Class
  144. } //END: CONJUNTO CLASS
Add Comment
Please, Sign In to add comment