Advertisement
alvinfnaldi

koreg.cpp

May 10th, 2020
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.19 KB | None | 0 0
  1. /*    Program ini gunanya untuk:
  2.      
  3.       1.  itung koefisien korelasi.
  4.       2.  cari persamaan regresi.
  5.                     */
  6.  
  7. #include <iostream>
  8. using namespace std;
  9. #include <stdio.h>
  10. #include <math.h>
  11. #include <stdlib.h>
  12.  
  13. float set1[100], set2[100];
  14.  
  15. void corr_coeff(float[], float[], int);
  16. void regression(float[], float[], int);
  17.  
  18. int main()
  19. {
  20.  
  21.     int n, i, x;
  22.     char ans;
  23.  
  24.     cout << "\n Mau berapa data yang ingin diinput:   ";
  25.     cin >> n;
  26.  
  27.     cout << "\n\n Masukkan nilai untuk set data yang pertama: \n";
  28.  
  29.     for (i = 0; i <= n - 1; i++)
  30.         cin >> set1[i];
  31.     cout << "\n\n Masukkan set data yang kedua: \n";
  32.  
  33.     for (i = 0; i <= n - 1; i++)
  34.         cin >> set2[i];
  35.  
  36.     do
  37.     {
  38.  
  39.         cout << " 1.    hitung koefisien korelasi  \n";
  40.         cout << " 2.    cari persamaan regresi \n";
  41.         cout << " 3.    keluar dari program \n";
  42.  
  43.         cout << "\n\n\n Ayo, mo pilih yang mana:? ";
  44.         cin >> x;
  45.  
  46.         switch (x)
  47.         {
  48.  
  49.         case 1:
  50.             cout << "\n Koefisien korelasinya adalah:  ";
  51.             corr_coeff(set1, set2, n);
  52.  
  53.             break;
  54.  
  55.         case 2:
  56.             cout << "Persamaan regresinya adalah: \n";
  57.             regression(set1, set2, n);
  58.  
  59.             break;
  60.  
  61.         case 3:
  62.  
  63.             cout << "\n Makasih";
  64.             cout << "\n\n\n\n\n tekan tombol keyboard apa saja untuk keluar.";
  65.  
  66.             cin.get();
  67.  
  68.             exit(0);
  69.  
  70.         default:
  71.             cout << "\n\n Pilihannya salah. Coba lagi deh";
  72.  
  73.             cin.get();
  74.         }
  75.  
  76.         cout << "\n\n Lanjut gak?  (y/n)";
  77.         cin >> ans;
  78.  
  79.     } while (ans == 'y' || ans == 'Y');
  80.  
  81.     cout << "\n Makasih";
  82.     cout << "\n\n\n\n\n tekan tombol keyboard apa saja untuk keluar.";
  83.  
  84.     cin.get();
  85. }
  86.  
  87. void corr_coeff(float x[], float y[], int p)
  88. {
  89.     int i;
  90.     float sx = 0.0, sy = 0.0, sxy = 0.0, sxs = 0.0, sys = 0.0;
  91.     float mx = 0.0, stddivx = 0.0, my = 0.0, stddivy = 0.0;
  92.     float num, den, rxy;
  93.  
  94.     for (i = 0; i <= p - 1; i++)
  95.     {
  96.         sx = sx + x[i];
  97.         sy = sy + y[i];
  98.         sxy = sxy + (x[i] * y[i]);
  99.         sxs = sxs + (x[i] * x[i]);
  100.         sys = sys + (y[i] * y[i]);
  101.     }
  102.  
  103.     mx = sx / p;
  104.     my = sy / p;
  105.     stddivx = sqrt(((sxs / p) - (mx * mx)));
  106.     stddivy = sqrt(((sys / p) - (my * my)));
  107.  
  108.     num = (sxy / p) - (mx * my);
  109.     den = stddivx * stddivy;
  110.     rxy = num / den;
  111.  
  112.     cout << rxy;
  113. }
  114.  
  115. void regression(float x[], float y[], int p)
  116. {
  117.     int i;
  118.     float sx = 0.0, sy = 0.0, sxy = 0.0, sxs = 0.0, sys = 0.0;
  119.     float mx = 0.0, stddivx = 0.0, my = 0.0, stddivy = 0.0;
  120.     float num, den, rxy, r;
  121.  
  122.     for (i = 0; i <= p - 1; i++)
  123.  
  124.     {
  125.         sx = sx + x[i];
  126.         sy = sy + y[i];
  127.         sxy = sxy + (x[i] * y[i]);
  128.         sxs = sxs + (x[i] * x[i]);
  129.         sys = sys + (y[i] * y[i]);
  130.     }
  131.  
  132.     mx = sx / p;
  133.     my = sy / p;
  134.     stddivx = sqrt(((sxs / p) - (mx * mx)));
  135.     stddivy = sqrt(((sys / p) - (my * my)));
  136.  
  137.     num = (sxy / p) - (mx * my);
  138.     den = stddivx * stddivy;
  139.     rxy = num / den;
  140.  
  141.     r = rxy * (stddivy / stddivx);
  142.  
  143.     cout << "\n\n\n Y =" << my << "+" << r << "*"
  144.          << "(X - " << mx << ")";
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement