Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
#1

построение таблицы - C++

29.09.2011, 22:18. Просмотров 2416. Ответов 41
Метки нет (Все метки)

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
34
35
36
37
38
39
40
41
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main ()
{
    const int MaxIter=500;
    double  x,eps, dx, Xk, Xn,n;
    cout<<"\nffedite argument i to4nost' :";
    cout<<"\nVVedite Xn"<<endl;
    cout<<"\nVVedite Xk"<<endl;
    cout<<"\nVVedite dx"<<endl;
        cin>>x>>eps>>Xn>>Xk>>dx;
        cout<<"_______________________________"<<endl;
        cout<<"|"<<setw(5)<<"x"<<setw(5)<<"|"<<setw(5)<<"y"<<setw(5)<<"|"<<setw(5)<<"n"<<setw(5)<<"|"<<endl;
        cout<<"_______________________________"<<endl;
            for(x=Xn; x<=Xk; x+=dx);
    bool done= true;
    double ch=1,y=ch;
        for(int n=0; fabs(ch)>eps; n++)
        {
            ch*=((-2)*n)/(2*x*n+x);
            y+=ch;
            if(n>MaxIter)
            {
                
                cout<<"|"<<setw(2)<<endl;
                cout<<"\nryad rasxoditsya!";
                done= false; break;
            }
        }
        if(done)
        {
            
            cout<<"\nZna4enie f-ii:"<<y<<"dlya x="<<x<<endl;
            cout<<"vi4islino posle"<<n<<"itersciy"<<endl;
            cout<<"|"<<setw(2)<<endl;
        }
        return 0;
}
помогите пожалуйста построить таблицу, так чтоб в ней выводилось значение x y n.
X как видно в условии должен меняться.С++ изучаем в универе а что да как толком не объясняют.
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2011, 22:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос построение таблицы (C++):

Построение таблицы истинности - C++
Нужно построить таблицу истинности. Таблицу программа вроде строит, но строит только до: при n=3 и 2^n=8, а если уже будет 4 и 16, выдает...

Построение таблицы истинности - C++
Здравствуйте. Задание такое: Построить таблицу истинности булевой функции. Функция вводится пользователем. Это часть программы. ...

Построение сильноветвящегося дерева на основе таблицы отношений - C++
Мое задание состоит в том, чтоби построить дерево, имея таблицу отношений родителя к потомку. Эта таблица находиться в базе данных, а...

Построение таблицы значений для функции с разбиением отрезков - C++
Задача: Построить таблицу значений для функции на отрезке с числом разбиений отрезка m=15. Собственно, прощу объяснить данную...

Построение таблицы истинности булевой функции от нескольких переменных - C++
Перечитал весь форум, но так и не нашел решения данной задачи, помогите пожалуйста. Нужно построить таблицу истинности для булевой...

Построение таблицы значений функции y=f(x) для x на отрезке [a;b] с шагом h - C++
Помогите, пожалуйста, исправить следующую ситуацию: при a=-2, b=1 и h=0.3 на экран не выводится значение функции в крайней точке отрезка...

41
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
04.10.2011, 13:35  [ТС] #16
Вычислить и вывести в виде таблицы на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора на интервале от Хн до Хк с шагом дх и точностью eps.Таблицу снабдить заголовочной шапкой.Каждая строка таблицы должна содержать значение аргумента y и n.
Пример -2 * n / (2 * x * n + x)
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
04.10.2011, 16:28 #17
Т.е. http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum \limits_{n=0}^{\infty} \frac{-2 n}{2 x n + x} - это разложение функции http://www.cyberforum.ru/cgi-bin/latex.cgi?y = f(x) в ряд Тейлора?
Тогда для n = 0 у тебя будет либо 0, либо, в зависимости от x, деление на 0 (т.е. если x = 0). Поэтому первое слагаемое ряда рассматривать не нужно
0
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
04.10.2011, 16:59  [ТС] #18
Цитата Сообщение от Nameless One Посмотреть сообщение
Т.е. http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum \limits_{n=0}^{\infty} \frac{-2 n}{2 x n + x} - это разложение функции http://www.cyberforum.ru/cgi-bin/latex.cgi?y = f(x) в ряд Тейлора?
Тогда для n = 0 у тебя будет либо 0, либо, в зависимости от x, деление на 0 (т.е. если x = 0). Поэтому первое слагаемое ряда рассматривать не нужно
если честно ничего не понял
0
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
04.10.2011, 17:50  [ТС] #19
я вот даже пример нашел.
Почитал что такое ряд Тейлора, ничего не понял.....
0
Миниатюры
построение таблицы  
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
04.10.2011, 17:53  [ТС] #20
Таблицу я разберусь как построить. а вот почему итерация всегда = 1и Y=1??
0
Миниатюры
построение таблицы  
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.10.2011, 05:51 #21
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
34
35
36
37
38
39
40
41
#include <iostream>
#include <iomanip>
#include <cmath>
 
using namespace std;
 
double func(double x, double eps, long &n);
 
int main()
{
    double xn, xk, dx, x;
    double eps;
    long n;
    
    xn = 1;
    xk = 100;
    dx = 2;
    eps = 0.1;
    
    cout << setw(10) << "x" << setw(20) << "y" << setw(10) << "n" << endl;
    for (x = xn; x <= xk; x += dx)
        cout << setw(10)
             << x
             << setw(20)
             << func(x, eps, n)
             << setw(10)
             << n
             << endl;
    
    return 0;
}
 
double func(double x, double eps, long &n)
{
    double summ;
   
    summ = 0.0;
    for (n = 0; fabs(summ) > eps; n++)
        summ += -2 * n / (2 * x * n + x);
    return summ;
}
выдаёт нули
Код
[guest@localhost tests]$ .iso++ t.cpp -o t
[guest@localhost tests]$ ./t
         x                   y         n
         1                   0   2711540
         3                   0         0
         5                   0         0
         7                   0         0
         9                   0         0
        11                   0         0
        13                   0         0
        15                   0         0
        17                   0         0
        19                   0         0
        21                   0         0
        23                   0         0
        25                   0         0
        27                   0         0
        29                   0         0
        31                   0         0
        33                   0         0
        35                   0         0
        37                   0         0
        39                   0         0
        41                   0         0
        43                   0         0
        45                   0         0
        47                   0         0
        49                   0         0
        51                   0         0
        53                   0         0
        55                   0         0
        57                   0         0
        59                   0         0
        61                   0         0
        63                   0         0
        65                   0         0
        67                   0         0
        69                   0         0
        71                   0         0
        73                   0         0
        75                   0         0
        77                   0         0
        79                   0         0
        81                   0         0
        83                   0         0
        85                   0         0
        87                   0         0
        89                   0         0
        91                   0         0
        93                   0         0
        95                   0         0
        97                   0         0
        99                   0         0
[guest@localhost tests]$
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
05.10.2011, 06:28 #22
accept, а почему вся сумма сравнивается с погрешностью?

Цитата Сообщение от accept Посмотреть сообщение
выдаёт нули
потому, что значение первого члена суммы (n = 0) равно 0, что заведомо меньше любого положительного эпсилон
0
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
05.10.2011, 09:01  [ТС] #23
Цитата Сообщение от Nameless One Посмотреть сообщение
accept, а почему вся сумма сравнивается с погрешностью?


потому, что значение первого члена суммы (n = 0) равно 0, что заведомо меньше любого положительного эпсилон
и что он теперь всегда 0 будет выдавать? я вписал n=1 мало что изменилось... у все равно не меняется
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.10.2011, 10:11 #24
Цитата Сообщение от Nameless One
accept, а почему вся сумма сравнивается с погрешностью?
нигде не сказано, к чему относится точность

тут правил десять минут, по несколько версий постил
пришлось разделить вывод и добавить maxiter
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <iomanip>
#include <cmath>
 
using namespace std;
 
double func(double x, double eps, long &n, int maxn);
 
int main()
{
    double xn, xk, dx, x;
    double eps;
    long n;
    const int maxiter = 500;
    
    xn = 1;
    xk = 100;
    dx = 2;
    eps = 0.1;
    
    cout << setw(10) << "x" << setw(20) << "y" << setw(10) << "n" << endl;
    for (x = xn; x <= xk; x += dx) {
        cout << setw(10) << x << setw(20) << func(x, eps, n, maxiter);
        cout << setw(10) << n << endl;
    }
    
    return 0;
}
 
double func(double x, double eps, long &n, int maxn)
{
    double summ, v;
 
    summ = v = 0.0;
    n = 0;
    do {
        summ += v;
        n++;
        v = -2 * n / (2 * x * n + x);
    } while (n < maxn && fabs(v) > eps);
    
    //summ = 0.0;
    //for (n = 0; fabs(summ) > eps; n++)
    //    summ += -2 * n / (2 * x * n + x);
        
    return summ;
}
Код
[guest@localhost tests]$ .iso++ t2.cpp -o t
[guest@localhost tests]$ ./t
         x                   y         n
         1            -495.911       500
         3            -165.304       500
         5            -99.1822       500
         7                   0         1
         9                   0         1
        11                   0         1
        13                   0         1
        15                   0         1
        17                   0         1
        19                   0         1
        21                   0         1
        23                   0         1
        25                   0         1
        27                   0         1
        29                   0         1
        31                   0         1
        33                   0         1
        35                   0         1
        37                   0         1
        39                   0         1
        41                   0         1
        43                   0         1
        45                   0         1
        47                   0         1
        49                   0         1
        51                   0         1
        53                   0         1
        55                   0         1
        57                   0         1
        59                   0         1
        61                   0         1
        63                   0         1
        65                   0         1
        67                   0         1
        69                   0         1
        71                   0         1
        73                   0         1
        75                   0         1
        77                   0         1
        79                   0         1
        81                   0         1
        83                   0         1
        85                   0         1
        87                   0         1
        89                   0         1
        91                   0         1
        93                   0         1
        95                   0         1
        97                   0         1
        99                   0         1
[guest@localhost tests]$

не проверяется на x = 0

если вывод не разделить, то выводится значение n до вызова функции (случайное значение)
0
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
05.10.2011, 13:06  [ТС] #25
если брать шаг меньше 1, то ответы получаются, но n=500 и ближе к концу n=1 y=0 несколько ответов подряд
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
05.10.2011, 13:11 #26
takewa, а с чего ты взял, что это ошибка? Все дело в разложении
0
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
05.10.2011, 13:44  [ТС] #27
разложении примера?
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
05.10.2011, 13:59 #28
В разложении функции (значение которой мы и считаем)
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.10.2011, 01:56 #29
Цитата Сообщение от takewa
если брать шаг меньше 1
чего ?
0
takewa
10 / 7 / 1
Регистрация: 15.08.2010
Сообщений: 372
06.10.2011, 13:05  [ТС] #30
dx=0.1
вот такое вот получается только n=500 как так??
0
Миниатюры
построение таблицы  
06.10.2011, 13:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 13:05
Привет! Вот еще темы с ответами:

Удаление записи из таблицы, с проверкой на совпадение с записями из другой таблицы. - C++
День добрый! В общем такая проблема: Мой проект на курсовую работу представляет из себя простую базу данных. Имеется таблица заказчики...

Даны таблицы А[1..n] ,В[1..m]. Построить таблицу С в которой сначала размещаются все элементы А, затем все элементы таблицы В - C++
кто сможет решите: Даны таблицы А ,В. Построить таблицу С в которой сначала размещаются все элементы А, затем все элементы таблицы В

Построение - C++
Здравствуйте вот нужно отредактировать программу т.к как не работает. Заранее спасибо все что не делал не могу понять , она не работает ....

построение графиков в С++ - C++
Доброго времени суток. Столкнулась с такой проблемой: нужно построить лежащую параболу. Оси прочертила, разметку сделала, формула для...


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

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

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