Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tính trung bình cộng khoảng lớp


Cho ba mảng: mảng đầu chứa giới hạn trên cho trung bình cộng, mảng thứ hai chứa giới hạn dưới, mảng thứ ba chứa tần số. Nhiệm vụ là tạo trung bình cộng của các khoảng lớp cho trước.

Trung bình cộng là gì?

Trung bình cộng là giá trị trung bình tính bằng cách chia tổng tất cả phần tử trong tập cho tổng số phần tử trong tập đó.

Cách tính Trung bình cộng khoảng lớp

  • Cho Giới hạn dưới, Giới hạn trên, Tần số
Giới hạn dưới Giới hạn trên Tần số
1 2 1
3 4 2
5 6 3
7 8 4
  • Tính trung điểm bằng cách cộng giới hạn trên và dưới chia 2. Sau đó nhân trung điểm với tần số tương ứng.
Giới hạn dưới Giới hạn trên Tần số(f) Trung điểm(m) m*f
1 2 1 (1+2)/2=1.5 1.5*1=1.5
3 4 2 (3+4)/2=3.5 3.5*2=7.0
5 6 3 (5+6)/2=5.5 5.5*3=16.5
7 8 4 (7+8)/2=7.5 7.5*4=30.0
  • Tính trung bình cộng bằng cách chia tổng m*f cho tổng tần số.

Trung bình cộng khoảng lớp = tổng m*f / tổng f = (1.5+7.0+16.5+30.0)/(1+2+3+4) = 5.5

Ví dụ

Input: LowerLimit[] = {1, 6, 11, 16, 21}  UpperLimit[] = {5, 10, 15, 20, 25}  freq[] = {10, 20, 30, 40, 50} Output: 16.3333
Input: LowerLimit[] = {2, 4, 6, 8, 10}  UpperLimit[] = {1, 3, 5, 7, 9}  freq[] = {1, 2, 3, 4, 5} Output: 5.5

Thuật toán

BẮT ĐẦU
Bước 1: khai báo hàm tính trung bình cộng khoảng lớp
    float AM(int LowerLimit[], int UpperLimit[], int freq[], int terms)
    Khai báo float mid[terms]
    Khai báo và gán float sum = 0 và Sum_freq = 0
    Vòng lặp For i = 0; i < terms; i++
        mid[i] = (LowerLimit[i] + UpperLimit[i]) / 2
        sum = sum + mid[i] * freq[i]
        Sum_freq = Sum_freq + freq[i]
    Kết thúc vòng lặp
    return sum / Sum_freq
Bước 2: Trong main()
    Khai báo int LowerLimit[] = {2, 4, 6, 8, 10}
    Khai báo int UpperLimit[] = {1, 3, 5, 7, 9}
    Khai báo int freq[] = {1, 2, 3, 4, 5}
    Khai báo int size = sizeof(freq) / sizeof(freq[0])
    Gọi AM(LowerLimit, UpperLimit, freq, size)
KẾT THÚC

Ví dụ

#include <bits/stdc++.h>
using namespace std;
// tính trung bình cộng khoảng lớp
float AM(int LowerLimit[], int UpperLimit[], int freq[], int terms) {
    float mid[terms];
    float sum = 0, Sum_freq = 0;
    for (int i = 0; i < terms; i++) {
        mid[i] = (LowerLimit[i] + UpperLimit[i]) / 2;
        sum = sum + mid[i] * freq[i];
        Sum_freq = Sum_freq + freq[i];
    }
    return sum / Sum_freq;
}
int main() {
    int UowerLimit[] = {2, 4, 6, 8, 10};
    int LpperLimit[] = {1, 3, 5, 7, 9};
    int freq[] = {1, 2, 3, 4, 5};
    int size = sizeof(freq) / sizeof(freq[0]);
    cout<<"Trung bình cộng là: "<<AM(LowerLimit, UpperLimit, freq, size);
    return 0;
}

Kết quả

Trung bình cộng là: 5.5