Подсчитать сумму всех членов ряда - C (СИ)
Формулировка задачи:
Добрый день. Помогите с программкой. Есть задание:
Для ряда, члены которого вычисляются по формуле, подсчитать:
• сумму всех членов ряда;
• сумму первых 10 членов ряда;
• произведение последних 10 членов ряда.
только при помощи операторов while, do-while, for и библиотек stdio.h и math.h
Решение задачи: «Подсчитать сумму всех членов ряда»
textual
Листинг программы
#include "math.h"
#include <stdio.h>
#include <iostream>
#include "windows.h"
using namespace std;
int main(){
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int count;
double *store;
double sum=0;
double mult=1;
cout<< "Введите количество членов последовательности "<< endl;
cin>> count;
store= new double[count]; //выделение памяти под ряд
for (int i = 0; i < count; i++) {
store[i]=pow(-1,i)*pow(2,i+1)/(pow(2,2*i)+1);
}
for (int i = 0; i < count; i++) {
sum+=store[i];
}
cout<< endl << "Cумма ряда = " << sum <<endl;
if (count>=10) {
sum=0;
for (int i = 0; i < 10; i++) {
sum+=store[i];
}
cout<< endl << "Cумма 10 первых членов ряда = " << sum <<endl;
int j=0;
for (int i = count-1; j <= 10; j++) {
mult*=store[i-j];
}
cout<< endl << "Произведение 10 последних членов ряда = " << mult <<endl;
}
system("pause");
}
Объяснение кода листинга программы
В этом коде:
- #include
math.h- подключает математическую библиотеку, которая содержит функции для работы с числами с плавающей точкой. - #include
- подключает библиотеку для работы с стандартным вводом/выводом. - #include
- подключает библиотеку для работы с потоками ввода/вывода в стандартной библиотеке C++. - #include
windows.h- подключает библиотеку Windows API (Application Programming Interface), которая позволяет программисту взаимодействовать с операционной системой Windows. - using namespace std; - позволяет использовать стандартное пространство имен
std, которое содержит функции и классы стандартной библиотеки C++. - int main(){ - функция
main(), в которой происходит основная логика программы. - SetConsoleCP(1251); - устанавливает кодировку консоли на UTF-8.
- SetConsoleOutputCP(1251); - устанавливает кодировку вывода на UTF-8.
- int count; - переменная для хранения количества членов последовательности.
- *double store;** - переменная для хранения массива (ряда) чисел с плавающей точкой.
- double sum=0; - переменная для хранения суммы всех членов последовательности.
- double mult=1; - переменная для хранения произведения всех членов последовательности.
- cout<<
Введите количество членов последовательности<< endl; - вывод сообщения с просьбой ввести количество членов последовательности. - cin>> count; - ввод количества членов последовательности с помощью функции
cin(). - store= new double[count]; //выделение памяти под ряд - выделение памяти под массив (ряд) чисел с плавающей точкой.
- for (int i = 0; i < count; i++) { - начало цикла для заполнения массива.
- store[i]=pow(-1,i)pow(2,i+1)/(pow(2,2i)+1); - формула для вычисления значения i-го члена последовательности.
- for (int i = 0; i < count; i++) { - начало цикла для вычисления суммы всех членов последовательности.
- sum+=store[i]; - вычисление суммы текущего члена последовательности и общего значения суммы.
- cout<< endl <<
Cумма ряда =<< sum <<endl; - вывод суммы ряда. - if (count>=10) { - проверка, что количество членов последовательности больше или равно 10.
- sum=0; - обнуление суммы.
- for (int i = 0; i < 10; i++) { - начало цикла для вычисления суммы первых 10 членов последовательности.
- sum+=store[i]; - вычисление суммы текущего члена последовательности и общего значения суммы.
- cout<< endl <<
Cумма 10 первых членов ряда =<< sum <<endl; - вывод суммы первых 10 членов последовательности. - int j=0; - переменная для хранения индекса текущего члена последовательности, используемого для вычисления произведения.
- for (int i = count-1; j <= 10; j++) { - начало цикла для вычисления произведения последних 10 членов последовательности.
- *mult=store[i-j];** - вычисление произведения текущего члена последовательности и общего значения произведения.
- cout<< endl <<
Произведение 10 последних членов ряда =<< mult <<endl; - вывод произведения последних 10 членов последовательности. - system(
pause); - пауза перед завершением программы, чтобы пользователь мог увидеть результат.