Программа на C++ для вычисления стандартного отклонения

C++C++Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы научимся писать программу на C++ для вычисления стандартного отклонения набора чисел с использованием функций. Программа покажет, как вычислить дисперсию набора чисел, которая представляет собой среднее значение квадратов разностей от среднего значения, а затем извлечение квадратного корня из дисперсии даст стандартное отклонение.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp/BasicsGroup -.-> cpp/arrays("Arrays") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/StandardLibraryGroup -.-> cpp/math("Math") subgraph Lab Skills cpp/arrays -.-> lab-96174{{"Программа на C++ для вычисления стандартного отклонения"}} cpp/for_loop -.-> lab-96174{{"Программа на C++ для вычисления стандартного отклонения"}} cpp/output -.-> lab-96174{{"Программа на C++ для вычисления стандартного отклонения"}} cpp/user_input -.-> lab-96174{{"Программа на C++ для вычисления стандартного отклонения"}} cpp/files -.-> lab-96174{{"Программа на C++ для вычисления стандартного отклонения"}} cpp/math -.-> lab-96174{{"Программа на C++ для вычисления стандартного отклонения"}} end

Определение функции для вычисления стандартного отклонения

Начнем с определения функции, которая принимает массив значений типа float и возвращает стандартное отклонение этих значений.

float SD(float values[]) // функция для вычисления стандартного отклонения
{
    float sum = 0.0, mean, sd = 0.0;

    int i;
    for(i = 0; i < 10; ++i)
    {
        sum = sum + values[i]; // вычисление суммы
    }
    mean = sum/10; // нахождение среднего значения.
    for(i = 0; i < 10; ++i)
        sd = sd + pow(values[i] - mean, 2); // вычисление стандартного отклонения
    return sqrt(sd / 10);
}

В этой функции мы сначала вычисляем сумму всех значений. Затем делим сумму на общее количество значений, чтобы получить среднее значение. Далее вычисляем дисперсию, сложив квадраты разностей каждого значения от среднего значения. После этого вычисляем стандартное отклонение, извлекая квадратный корень из дисперсии.

Напишите главную функцию для чтения входных данных и вывода результатов

Далее мы пишем главную функцию main, которая считывает входные данные от пользователя, сохраняет значения в массиве, вызывает функцию SD для получения стандартного отклонения и затем выводит результат.

int main()
{
    int i;
    float arr[10];
    cout << "Enter 10 elements: ";
    for(i = 0; i < 10; ++i)
        cin >> arr[i];
    cout << endl << "Standard Deviation = " << SD(arr); // вызов функции
    return 0;
}

В этой функции мы сначала объявляем массив arr для хранения входных данных пользователя. Затем просим пользователя ввести 10 значений по одному. Затем вызываем функцию SD с массивом arr для получения стандартного отклонения и выводим его в консоль.

Запустите программу

Теперь мы можем скомпилировать и запустить программу с использованием следующей команды в терминале:

g++ ~/project/main.cpp -o main && ./main

Эта команда скомпилирует файл main.cpp в директории ~/project, а затем запустит получившийся исполняемый файл.

Проверьте вывод

Давайте введем 4 5 7 8 9 6 3 2 1 7 в качестве входных данных и проверим, получаем ли мы правильный вывод.

Enter 10 elements: 4 5 7 8 9 6 3 2 1 7

Standard Deviation = 2.5219

Мы можем看到, стандартное отклонение равно 2.5219, что совпадает с тем значением, которое мы получили, решив задачу вручную.

Полный код

Вот полный код файла main.cpp для справки:

#include <iostream>
#include <cmath>
using namespace std;

float SD(float values[]) // функция для вычисления стандартного отклонения
{
    float sum = 0.0, mean, sd = 0.0;

    int i;
    for(i = 0; i < 10; ++i)
    {
        sum = sum + values[i]; // вычисление суммы
    }
    mean = sum/10; // нахождение среднего значения.
    for(i = 0; i < 10; ++i)
        sd = sd + pow(values[i] - mean, 2); // вычисление стандартного отклонения
    return sqrt(sd / 10);
}

int main()
{
    int i;
    float arr[10];
    cout << "Enter 10 elements: ";
    for(i = 0; i < 10; ++i)
        cin >> arr[i];
    cout << endl << "Standard Deviation = " << SD(arr); // вызов функции
    return 0;
}

Резюме

В этом практическом занятии мы узнали, как вычислять стандартное отклонение набора чисел с использованием функций в программе на C++. Мы использовали функцию для вычисления дисперсии, которая представляет собой среднее значение квадратов разностей от среднего значения, а затем извлекли квадратный корень, чтобы получить стандартное отклонение. Мы также узнали, как считывать входные данные от пользователя, сохранять их в массиве и затем вызывать функцию для получения стандартного отклонения. Наконец, мы скомпилировали и запустили программу, чтобы убедиться, что получаем правильный вывод.