Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2016, 10:40   #1
прямИСТ
Пользователь
 
Аватар для прямИСТ
 
Регистрация: 03.06.2016
Сообщений: 10
По умолчанию Математическая функция в СИ

f = 1 + x^2/2!+x^4/4!+...
Рассчитывается в диапазоне заданном пользователем: start - начальное значение х, finish - конечное значение х, shag - шаг, на который увеличивается х, eps - точность вычисления ряда, ak – член ряда, sum – текущее значение ряда, k – счетчик итераций.
#include<stdio.h>
#include<locale.h>
#include<process.h>
#include<math.h>

void main()
{
double start, finish, shag, eps, ak, sum, x;
int k;
setlocale(LC_ALL, "RUS");
printf("введите точность расчета");
scanf_s("%lf", &eps);
printf("введите нижний порог x");
scanf_s("%lf", &start);
printf("введите верхний порог x");
scanf_s("%lf", &finish);
printf("введите шаг");
scanf_s("%lf", &shag);
for (x = start; x <= finish; x += shag)
{
for (ak = x, sum = ak, k = 0; ak < eps; k += 2, ak *= x*x / (k*(k - 1)))
{
sum += ak;
printf("%lf%lf", x, sum);
}
}
}

Последний раз редактировалось прямИСТ; 11.12.2016 в 10:48.
прямИСТ вне форума Ответить с цитированием
Старый 11.12.2016, 13:59   #2
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от прямИСТ Посмотреть сообщение
for (x = start; x <= finish; x += shag)
{
for (ak = x, sum = ak, k = 0; ak < eps; k += 2, ak *= x*x / (k*(k - 1)))
{
sum += ak;
printf("%lf%lf", x, sum);
}
}
}
В принципе, идея всё вычислить в заголовке цикла - не очень хорошая, но если очень хочется чтобы было так, то вот примерно:
Код:
   for( double x = start; x < finish + eps; x += shag ) {
      double sum = 0.;
      for( double ak = 1., k = 0.; ak > eps; sum += ak, k += 2, ak *= x * x / k / ( k - 1 ) );
      printf( "%f => %f\n", x, sum );
   }
Код:
[olej@dell float]$ ./iter 1 2 .1
1.000000 => 1.543081
1.100000 => 1.668519
1.200000 => 1.810656
1.300000 => 1.970914
1.400000 => 2.150898
1.500000 => 2.352410
1.600000 => 2.577464
1.700000 => 2.828315
1.800000 => 3.107473
1.900000 => 3.417731
2.000000 => 3.762196
olej.tsil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Математическая функция NightVamp Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 05.11.2012 14:27
математическая статистика Sergey523 Помощь студентам 0 04.11.2012 20:23
Математическая функция angel5609 Помощь студентам 3 20.11.2011 02:13
Математическая функция "сигнум" turtles Общие вопросы по Java, Java SE, Kotlin 1 17.08.2011 10:46
математическая модель specialist Паскаль, Turbo Pascal, PascalABC.NET 1 08.05.2011 19:24