Необходимо вывести на экран таблицу значений функции - C (СИ)
Формулировка задачи:
Необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x изменяющихся от xn до xk (xn, xk - вводятся с клавиатуры) с шагом h=(xk-xn)/10 в следующем виде:
При x=0.1;
Y(x)=0.099833;
S(x) =0.099833;
При x=0.2;
Y(x)=0.198669;
S(x) =0.198669;
При x=0.3;
Y(x)=0.29552;
S(x) =0.29552;
Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x).
Число элементов ряда N – также вводится с клавиатуры.
У меня есть программа но я не знаю как вставить (-1)^n.
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
void main ( ) {
int N,f,r,c,j;
float h,Yx,Sx,xn,xk,i;
Yx=0;Sx=0;
setlocale(LC_ALL, "Russian");
printf("введите xn"); scanf("%f",&xn);
printf("введите xk"); scanf("%f",&xk);
printf("введите N"); scanf("%d",&N);
h=(xk-xn)/10;
for (i=xn; i<=xk; i+=h) {
Yx=sinh(i);
for ( j=0; j<=N; j++){
r=2*j+1;f=1;
for (c=1; c<=r; c++) { f=f*c; }
Sx=Sx+(pow(i,(2*j+1)))/f;}
printf("xn=%f, Yx=%f, Sx=%f\n", i, Yx, Sx);
Yx=0; Sx=0;}
system("pause");
}Решение задачи: «Необходимо вывести на экран таблицу значений функции»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int main ( void )
{
int N,f,r,c,j;
float h, Yx, Sx, xn, xk, i;
Yx = 0;
Sx = 0;
printf("введите xn"); scanf("%f",&xn);
printf("введите xk"); scanf("%f",&xk);
printf("введите N"); scanf("%d",&N);
h = ( xk - xn ) / 10;
for (i = xn; i <= xk; i += h) {
Yx = sinh(i);
for ( j = 0; j <= N; j++){
r = 2 * j + 1;
f = 1;
for ( c = 1; c <= r; c++ ) {
f = f * c;
}
Sx = Sx + (pow(i,( 2 * j + 1 ))) / f;
}
Sx *= pow( -1.0, j);
printf("xn=%f, Yx=%f, Sx=%f\n", i, Yx, Sx);
Yx = 0;
Sx = 0;
}
// getchar();
return 0;
}
Объяснение кода листинга программы
В этом коде на языке C с использованием библиотеки math.h реализуется вычисление значений функции для ряда аргументов. Вот список действий, которые выполняются в коде:
- Сначала объявляются переменные:
- N, f, r, c, j — целочисленные переменные для управления циклом;
- h — переменная для хранения шага изменения аргумента;
- Yx, Sx — переменные для хранения результатов вычислений функции и ее суммы;
- xn, xk — переменные для ввода начальных и конечных значений аргумента функции;
- i — переменная для хранения текущего значения аргумента;
- x — переменная для хранения значения аргумента функции.
- Значения переменных Yx и Sx устанавливаются равными нулю.
- Пользователю предлагается ввести начальное и конечное значения аргумента функции.
- Переменная h инициализируется как (xk - xn) / 10.
- В цикле от xn до xk с шагом h выполняется следующее:
- Переменная Yx обновляется значением sinh(i).
- В цикле от 0 до N выполняется следующее:
- Переменная r устанавливается равной 2 * j + 1.
- Переменная f устанавливается равной 1.
- В цикле от 1 до r выполняется следующее:
- Переменная f обновляется как f * c.
- Переменная Sx обновляется как Sx + (pow(i,(2 * j + 1))) / f.
- Переменная Sx обновляется как Sx * pow(-1.0, j).
- Выводится сообщение с текущими значениями i, Yx и Sx.
- Переменные Yx и Sx сбрасываются в ноль.
- Программа завершается возвратом 0.