Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
#1

В чем ошибка и как исправить? - C++

12.05.2013, 16:40. Просмотров 245. Ответов 5
Метки нет (Все метки)

Была задача написать программу с использованием рекуррентных соотношений. (см. вложение) Выдал ошибку. вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream.h>
#include <conio.h>
void main ()
{int c,k,n,x;
double s;
cout<<"x="; cin>>x;
cout<<"n="; cin>>n;
s=0;
c=-1;
k=-1;
do
{c=(c*x*x)/(k+1);
k=k+1;
s=s+c;}  while (k<=n);
cout<<"s="<<s<<endl;
getch ();
}
Миниатюры
В чем ошибка и как исправить?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 16:40     В чем ошибка и как исправить?
Посмотрите здесь:

C++ Подскажите, в чем здесь ошибка? И как ее исправить...плиз!
Ошибка, не знаю как исправить C++
ошибка компилятора как исправить C++
ошибка подскажите как исправить!! C++
C++ Ошибка в методе, как исправить?
Ошибка с strtok - как исправить? C++
Программа на контестере проходит только 1 тест из 9. Можете объяснить, в чем моя ошибка и как ее исправить! C++
Ошибка константа. как исправить? C++
в чём ошибка ? и как исправить ? C++
Как исправить ошибку и в чем она заключается C++
C++ в чём ошибка и как ёё исправить?
Ошибка подключения graphics.h Как исправить? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6112 / 5715 / 1849
Регистрация: 18.12.2011
Сообщений: 14,597
Завершенные тесты: 1
12.05.2013, 16:52     В чем ошибка и как исправить? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <conio.h>
using namespace std;
void main ()
{
    int k,n;
    double c,s,x;
    cout<<"x="; cin>>x;
    cout<<"n="; cin>>n;
    
    c=-1./x;
    s=c;// первый член (при к=-1)
    k=0;
    do
    {
        c=(c*x*x)/(k+1.); // второй и последующие
        s+=c;
        k++;
    }while (k<=n);
    cout<<"s="<<s<<endl;
    getch();
}
lemegeton
 Аватар для lemegeton
2914 / 1343 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.05.2013, 17:04     В чем ошибка и как исправить? #3
Цитата Сообщение от Zapt1k Посмотреть сообщение
Выдал ошибку.
Действительно выдал ошибку.

Неправильно считаете не те формулы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <cmath>
#include <iostream>
#include <iomanip>
 
/* забьем на гамма-функции, и примем, что факториал может быть только 
 * у положительного числа
 */
unsigned long int factorial(unsigned int number) {
  unsigned long int result = 1;
  while (number > 1) {
    result *= number--;
  }
  return result;
}; 
 
/*
 * Значение выражения 2 * k + 3 будет всегда нечетным.
 * Поэтому (-1) в степени 2 * k + 3 всегда будет равно -1.
 * Бессмысленную операцию нафиг.
 */
 
int main(int argc, char *argv[]) {
  double result = 0;
  int n = 5;
  double x = 2;
  
  for (int k = -1; k <= n; ++k) {
    result += pow(x, 2 * k + 1) / factorial(k + 1);
  }
  
  std::cout << std::fixed << std::setprecision(4) << result << std::endl;
  return 0;
}
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
12.05.2013, 17:07  [ТС]     В чем ошибка и как исправить? #4
zss, а без 3 строки как написать? учитывая то, что я это вижу впервые не думаю, что мой препод будет в восторге.

Добавлено через 1 минуту
lemegeton, а здесь для меня все очень сложно)
lemegeton
 Аватар для lemegeton
2914 / 1343 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.05.2013, 17:11     В чем ошибка и как исправить? #5
Цитата Сообщение от Zapt1k Посмотреть сообщение
lemegeton, а здесь для меня все очень сложно)
В чем сложность?
Еще, вы умножили c на икс квадрат. Это отличается от задания. Вы не считаете факториал, это отличается от задания...

Цитата Сообщение от Zapt1k Посмотреть сообщение
zss, а без 3 строки как написать?
Припишите std:: к cin, cout и endl.
Zapt1k
1 / 1 / 0
Регистрация: 08.05.2013
Сообщений: 25
12.05.2013, 17:19  [ТС]     В чем ошибка и как исправить? #6
Всем спасибо. можно закрывать тему)
Yandex
Объявления
12.05.2013, 17:19     В чем ошибка и как исправить?
Ответ Создать тему
Опции темы

Текущее время: 09:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru