0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 93
1

проконсультируйте пожалуйста меня с программой:

07.12.2013, 18:54. Показов 846. Ответов 14
Метки нет (Все метки)

у меня эта программа всё, вроде правильно, считает . Но: работает только тогда, когда ввожу икс: положительное и дробное. С отрицательными не хочет. Подскажите, в чем может быть проблема??
Сама суть программы такова:https://www.cyberforum.ru/atta... 1386427879 (вот здесь текст задачи, в ссылке). Код Программы следущий:
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 "stdafx.h"
#include "locale.h"
#include "math.h"
//float fact(int n)
//{
//float fact = 1;
//for(int i = 1; i <= n; i++)
//{
//fact *= i;
//}
//return fact;
//}
int _tmain(int argc, _TCHAR* argv[])
{ 
setlocale(LC_ALL, "russian");
double eps;
double x=1;
double n=1; 
eps= 0.0000001;
printf(" введи значение х = ");
scanf("%lf",&x);
double sum=1;
double f=x;
double fn=1;
while(abs(fn-f)>eps)
{
n++;
fn=f*x/n;
sum +=fn;
}
printf("и получается сумма = %lf",sum);
return 0;
}
Миниатюры
проконсультируйте пожалуйста меня с программой:  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2013, 18:54
Ответы с готовыми решениями:

Проконсультируйте пожалуйста
Стипендия. Сессия включает в себя экзамены по трём дисциплинам: «Алгебра», ...

Проконсультируйте меня с ALTER TABLE
Можно ли в одном ALTER TABLE записать несколько действий, т.е. удалить один столбец, добавить...

Проконсультируйте пожалуйста
Всем привет, есть идея проекта, но так как я в программировании ПО не шарю, нужна консультация (с...

Проконсультируйте, пожалуйста!!!
Ребята, за сколько времени можна нормально выучить pascal человеку, который имеет только общее...

14
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
07.12.2013, 19:34 2
По мне , так этот код не делает, то для чего предназначен.
Вот некоторый расчет в Excel :
Миниатюры
проконсультируйте пожалуйста меня с программой:  
0
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 93
07.12.2013, 20:31  [ТС] 3
как же тогда быть? с кодом программы?
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
08.12.2013, 10:48 4
Как то так
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
#include <locale.h>
#include <cmath>
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "russian");
    long double eps= 0.0000001;;
    long double x=1.;
    long double n=0.;
    long double sum=0.;
    long double f=1.;
    long double fn=1.;
 
   cout << " введи значение х = " ;
   cin >> x;
 
    while((long double)f/fn>eps)
    {
        n++;
        f=x*f;
        fn=n*fn;
        /// cout << setw(5) << n <<  setw(20) << f << setw(20) << fn <<  setw(20) <<  f/fn << endl; // ход вычислений
 
        sum+=f/fn;
    }
    cout << "и получается сумма = " << sum;
    return 0;
}
0
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 5
08.12.2013, 11:41 5
Помогите, у меня visual c++ 2008 express edition. Начало программы такое
#include "franca.h"
Куда надо положить файл franca.h чтобы компилятор его увидел?
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
08.12.2013, 11:55 6
В папку с исходником программы положи. Тока тему новую надо было создать.
1
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 5
08.12.2013, 12:00 7
Извиняюсь, вы можете подробней описать как это делается?
0
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 93
08.12.2013, 12:23  [ТС] 8
что это такое и за что они отвечают?
1)#include <cmath> это библиотека отвечает за математические функции?
2)#include <iostream>??
3)#include <iomanip> поставлен потому что используется цикл while?
4)using namespace std; всегда используется с #include <iomanip>?
5) что это такое? cout << и cin >>? и setw??
если можно, поясните, пожалуйста)

и еще: при запуске этой программы, выводило ошибку: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "StdAfx.h"" в источник."

я добавил эту библиотеку и программа запустилась. но отрицательные считает значения вот так: ввожу -1 - сумма равна -1, ввожу - 5 сумма = -5... подскажите, почему так?

Добавлено через 7 минут
Цитата Сообщение от chedman Посмотреть сообщение
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
* * setlocale(LC_ALL, "russian");
* * long double eps= 0.0000001;;
* * long double x=1.;
* * long double n=0.;
* * long double sum=0.;
* * long double f=1.;
* * long double fn=1.;
cout << " введи значение х = " ;
* *cin >> x;
while((long double)f/fn>eps)
* * {
* * * * n++;
* * * * f=x*f;
* * * * fn=n*fn;
* * * * /// cout << setw(5) << n << *setw(20) << f << setw(20) << fn << *setw(20) << *f/fn << endl; // ход вычислений
sum+=f/fn;
* * }
* * cout << "и получается сумма = " << sum;
* * return 0;
}
и еще скажите, почему f/fn>eps?? когда это же разность по-моему
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
08.12.2013, 13:38 9
f/fn - это член ряда, т.е. величина на которую происходит приращение.
поменяй
C++
1
while((long double)f/fn>eps)
на
C++
1
 while(fabs((long double)f/fn)>eps)
Добавлено через 2 минуты
Твоя первая программа на самом деле была на Си. В Си++ есть свои способы для организации ввода/вывода и для этого подключены, соответствующие файлы
C++
1
2
#include <iostream>
#include <iomanip>
Они нужны для использования объектов: std::cin и std::cout , а также манипулятора вывода setw().
Чтоб каждый раз не писать std:: перед cin, cout ... используют:
C++
1
using namespace std;
Добавлено через 9 минут
Если setw не хочешь использовать, то
C++
1
#include <iomanip>
удали.
0
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 93
08.12.2013, 13:40  [ТС] 10
Цитата Сообщение от chedman Посмотреть сообщение
f/fn - это член ряда, т.е. величина на которую происходит приращение.
поменяй Код C++1
while((long double)f/fn>eps)на Код C++1
*while(fabs((long double)f/fn)>eps)
Большое спасибо, теперь кое-как начало считать отрицательные числа. Но вопрос еще такой: когда ввожу с клавиатуры икс=100 (например) - отображается следущее : -1,#IND что это? fabs что такое?
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
08.12.2013, 13:46 11
fabs() - это функция описанная в cmath или math.h , для определения модуля числа.
При 100 и др. больших значениях программа не может поместить в памяти, выделенной для хранения значений переменных результат вычислений.
В общем есть некий интервал для x в котором программа работает корректно.
1
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 93
08.12.2013, 15:17  [ТС] 12
Цитата Сообщение от chedman Посмотреть сообщение
fabs() - это функция описанная в cmath или math.h , для определения модуля числа.
При 100 и др. больших значениях программа не может поместить в памяти, выделенной для хранения значений переменных результат вычислений.
спасибо Вам, огромное!

Добавлено через 1 час 27 минут
я извиняюсь, не могли бы вы пояснить еще, для чего это значит и какова ее суть ( в цикле)
f=x*f;
fn=n*fn;
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
08.12.2013, 17:20 13
Цитата Сообщение от Ms Proger Посмотреть сообщение
f=x*f;
fn=n*fn;
первая считает x*x*x... , т.е. x^n
вторя факториал, т.е. 1*2*3 ... n
1
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 5
11.12.2013, 19:31 14
Программа для нахождения квадратного корня, чтобы не вводилось показывает 0. Что делать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main()
{
  setlocale(0,"")
;
        float b,a=b*b;
        cout<<"число корень которого надо найти";
        cin>>b;
        cout<<"корень";
        cout<<a;
}
0
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 93
12.12.2013, 14:34  [ТС] 15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdafx.h>
#include <math.h>
#include <stdio.h>
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    double a,b;
    printf("a = ");
    scanf("%lf",&a);
    
    {
    b=sqrt(a);  
    printf("%lf",b);
    }
    return 0;
}
Добавлено через 6 минут
Цитата Сообщение от kuprin Посмотреть сообщение
Программа для нахождения квадратного корня, чтобы не вводилось показывает 0. Что делать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdafx.h>
#include <math.h>
#include <stdio.h>
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    double a,b;
    printf("a = ");
    scanf("%lf",&a);
    
    {
    b=sqrt(a);  
    printf("%lf",b);
    }
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2013, 14:34
Помогаю со студенческими работами здесь

Проконсультируйте пожалуйста!!!!!!!
У меня бп FSP Epsilon Pro 85plus 700W Это нормальный блок питания или хрень???

Проконсультируйте, пожалуйста
Доброго времени суток!)Нужна небольшая консультация. Опишу суть: Учусь на дистанционке, сдаю...

Проконсультируйте пожалуйста
Всем привет! Я являюсь инженером-электроником, занимаюсь разработкой электроники, пишу программы...

Проконсультируйте пожалуйста по программированию)
не откажите пожалуйста в помощи, подскажите в ip адресе 169.212.100.190 часть, представляющая...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru