Advertisement
dadiw96

Odchylenie_i_wariancja_z_pliku

Jun 5th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4. #include <string>  
  5. #include <math.h>
  6.  
  7. using namespace std;
  8.  
  9.  
  10.  int i=0;
  11. void wczytaj(void);
  12. double srednia(int *tablica);
  13. double wariancja (int * tablica);
  14. int ilosc(void);
  15. double odcychlenie (int *tablica);
  16.  
  17. int main()
  18. {
  19.     wczytaj();
  20.    
  21. }
  22. int ilosc(void)
  23. {
  24.     int i=0;
  25.     string linia;                                            
  26.     fstream plik;  
  27.     string::size_type sz;                                                     //Tworzenie zmiennej plikowej
  28.     plik.open("plik.txt", ios::in);                                   //otwarcie pliku  do odczytu
  29.     if(plik.good()==false) cout<<"Nie mozna otworzyc pliku!";  
  30. for (;getline(plik, linia);)                            //dopóki są linie w pliku zapisujemy linie do zmiennej o nazwie linia
  31.                 {
  32.                 i++;
  33.                 }  
  34.         return i;
  35.        
  36.         plik.close();      
  37. }
  38. void wczytaj(void)
  39. {
  40.     int *tablica;
  41.     int ile=ilosc();
  42.     tablica = new int[i];
  43.     string linia;                                            
  44.     fstream plik;  
  45.                                                        //Tworzenie zmiennej plikowej
  46.     plik.open("plik.txt", ios::in);                                   //otwarcie pliku  do odczytu
  47.     if(plik.good()==false) cout<<"Nie mozna otworzyc pliku!";           //jeżeli plik się nie otworzył to wyświetlamy i kończymy program
  48.  
  49.                 for (;getline(plik, linia);i++)                            //dopóki są linie w pliku zapisujemy linie do zmiennej o nazwie linia
  50.                 {
  51.                     tablica[i]=atoi(linia.c_str());
  52.                     }
  53.                 cout<<"-------------------------------"<<endl;
  54.                 cout<<"Wariancja:       "<<wariancja (tablica)<<endl;
  55.                 cout<<"-------------------------------"<<endl;
  56.                 cout<<"odchylenie standardowe: "<<odcychlenie (tablica)<<endl;
  57.                 cout<<"-------------------------------"<<endl;
  58. delete[] tablica;              
  59. plik.close();                  
  60. }
  61. double srednia(int *tablica)
  62. {  
  63.     double suma;
  64.     for(int n=0;n!=i;n++)
  65.         {
  66.             suma=suma+tablica[n];
  67.         }
  68.         return (double)suma/i;
  69. }
  70. double wariancja (int * tablica)
  71. {
  72.     double roznica=0,       kwadrat,        suma=0,     mianownik;
  73.     int ile=ilosc();
  74.     double sr=srednia(tablica);
  75.    
  76.         for(int n=0;n!=i;n++)
  77.         {
  78.             roznica=(double)tablica[n]-sr;
  79.             kwadrat=pow(roznica,2.0);
  80.             suma=suma+kwadrat;
  81.  
  82.         }
  83.         mianownik=(double)--ile;
  84.        
  85.         return suma/mianownik;
  86. }
  87. double odcychlenie (int *tablica)
  88. {
  89.     double  war=wariancja(tablica);
  90.     return sqrt(war);
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement