Υπολογισμός τετραγωνικών αποκλίσεων σε πίνακα C++

Μια τυπική εφαρμογή της χρήσης πινάκων είναι να βρεθεί η τετραγωνισμένη απόσταση από το μέσο. Αν x είναι διάνυσμα αριθμητικών τιμών, να βρεθεί η ποσότητα:

$$ (x-\bar{x})^2 $$

Για το λόγο αυτό, οι τιμές του διανύσματος x χρειάζονται δύο φορές: μία για να υπολογιστεί ο μέσος, και άλλη μία για να υπολογιστεί η διαφορά.

#include <stdio.h>
#include <math.h>

using namespace std;

#define N 5

int main()
{

    int i;
    double x[N] = {4.5, 2.3, 5.5, 6.7, 4};
    double s[N];
    double sum = 0;
    double ave = 0;

    for (i=0; i < N; i++)
    {
        sum += x[i];
    }
    ave = sum / N;

    printf ("%5s %12s %12s\n", "i", "x", "s");
    printf ("-------------------------------\n");

    for (i=0; i < N; i++)
    {
        s[i] = pow(ave-x[i], 2.0);
        printf ("%5d %12.6f %12.6f\n", i+1, x[i], s[i]);
    }
    printf("\n");

    return 0;
}

Μεταγλώττιση και εκτέλεση:

astavrak@apollonia:~$ g++ program.cpp
astavrak@apollonia:~$ ./a.out 
    i            x            s
-------------------------------
    1     4.500000     0.010000
    2     2.300000     5.290000
    3     5.500000     0.810000
    4     6.700000     4.410000
    5     4.000000     0.360000

Η στήλη x τυπώνει τα στοιχεία του πίνακα, ενώ η στήλη s τυπώνει τη τετραγωνισμένη διαφορά από τον μέσο.

Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.

Creative Commons License
Εκπαιδευτικό υλικό από τον Αθανάσιο Σταυρακούδη σας παρέχετε κάτω από την άδεια Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.