Вычисление суммы обратного ряда

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

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

Введение

В этом лабе мы узнаем, как написать программу на C++, которая вычисляет сумму ряда. Ряд, с которым мы будем работать, представляет собой сумму квадратов обратных натуральных чисел. Проще говоря, программа вычисляет сумму 1 + 1/2^2 + 1/3^3 + 1/4^4 +... + 1/N^N.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/BasicsGroup -.-> cpp/data_types("Data Types") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/StandardLibraryGroup -.-> cpp/math("Math") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/variables -.-> lab-96193{{"Вычисление суммы обратного ряда"}} cpp/data_types -.-> lab-96193{{"Вычисление суммы обратного ряда"}} cpp/for_loop -.-> lab-96193{{"Вычисление суммы обратного ряда"}} cpp/function_parameters -.-> lab-96193{{"Вычисление суммы обратного ряда"}} cpp/output -.-> lab-96193{{"Вычисление суммы обратного ряда"}} cpp/user_input -.-> lab-96193{{"Вычисление суммы обратного ряда"}} cpp/files -.-> lab-96193{{"Вычисление суммы обратного ряда"}} cpp/math -.-> lab-96193{{"Вычисление суммы обратного ряда"}} cpp/code_formatting -.-> lab-96193{{"Вычисление суммы обратного ряда"}} end

Создайте новый файл в директории проекта

Создайте новый файл с именем main.cpp в директории вашего проекта.

touch ~/project/main.cpp

Добавьте необходимые заголовочные файлы

Добавьте необходимые заголовочные файлы в программу. В этой программе нам нужны заголовочные файлы iostream и cmath.

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

Напишите функцию findsum()

В этом шаге мы определим функцию findsum(), которая будет использоваться для вычисления суммы ряда. Эта функция принимает значение N в качестве входных данных и возвращает сумму ряда.

double findsum(int N) {
    double sum = 0;
    for(int i=1; i<=N; i++) {
        sum += pow((double)1/i,i);
    }
    return sum;
}

В коде выше мы использовали функцию pow() из заголовочного файла <cmath> для вычисления степени каждого члена. Мы также используем тип данных double, чтобы получить точные значения.

Напишите функцию main()

В этом шаге мы напишем функцию main(), которая будет получать ввод от пользователя в виде целого числа N. Затем мы вызовем функцию findsum() для вычисления суммы ряда. Наконец, мы выведем результат.

int main() {
    int N;
    cout << "Enter the value of N: ";
    cin >> N;
    double sum = findsum(N);
    cout << "Sum of the series is: " << sum << endl;
    return 0;
}

Скомпилируйте и запустите программу

Сохраните внесенные изменения в файл main.cpp и запустите следующую команду в терминале:

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

После успешной компиляции и запуска программа попросит пользователя ввести значение N. После ввода значения N программа вернет сумму ряда.

Полный код файла main.cpp:

#include <iostream>
#include <cmath>

using namespace std;

double findsum(int N) {
    double sum = 0;
    for(int i=1; i<=N; i++) {
        sum += pow((double)1/i,i);
    }
    return sum;
}

int main() {
    int N;
    cout << "Enter the value of N: ";
    cin >> N;
    double sum = findsum(N);
    cout << "Sum of the series is: " << sum << endl;
    return 0;
}

Резюме

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