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

почему прога не пашет? - C++

Восстановить пароль Регистрация
 
UnderGash<3
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 5
16.06.2011, 12:54     почему прога не пашет? #1
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*Цель программы:
 
Вычислить минимум F(x)=k*(a*x+b)*P(x) на отрезке [a b] с точностью eps
 
P(x) - интерполяционный многочлен от f(x)
 
ф-ия f(x) задана таблично:
 
x    1.05   1.15   1.25   1.35
 
f(x) 2.30   2.74   3.46   4.60
 
при этом k=P(c) 
 
a=1.05
 
b=1.35
 
c=1.10
 
eps=0.001
 
*/
 
#define a 1.05
 
#define b 1.35
 
#define c 1.10
 
#define eps 1.e-3
 
#include <math.h>
 
#include <iostream.h>
 
double polinom(double t)
 
{
 
    //полином Лагранжа
 
    double l[3],x[3],y[3];
 
    x[0]=1.05;
 
    x[1]=1.15;
 
    x[2]=1.25;
 
    x[3]=1.35;
 
    y[0]=2.30;
 
    y[1]=2.74;
 
    y[2]=3.46;
 
    y[3]=4.60;
 
    l[0]=(t-x[1])*(t-x[2])*(t-x[3])/((x[0]-x[1])*(x[0]-x[2])*(x[0]-x[3]));
 
    l[1]=(t-x[0])*(t-x[2])*(t-x[3])/((x[1]-x[0])*(x[1]-x[2])*(x[1]-x[3]));
 
    l[2]=(t-x[0])*(t-x[1])*(t-x[3])/((x[2]-x[0])*(x[2]-x[1])*(x[2]-x[3]));
 
    l[3]=(t-x[0])*(t-x[1])*(t-x[2])/((x[3]-x[0])*(x[3]-x[1])*(x[3]-x[2]));
 
    double L=y[0]*l[0]+y[1]*l[1]+y[2]*l[2]+y[3]*l[3];
 
    return L;
 
}
 
 
 
double fynkciya(double x)
 
{
 
    //значение ф-ии
 
    double k=polinom(c);
 
    double z=polinom(x);
 
    return k*(a*x+b)*z;
 
}
 
 
 
void main()
 
{
 
    double x=a;
 
    double f1=fynkciya(x);
 
    double x_eps=x+eps;
 
    double f2=fynkciya(x_eps);
 
    x_eps+=eps;
 
    double f3=fynkciya(x_eps);
 
    while (x_eps<b)
 
    {
 
        if ((f2<f1) && (f2<f3))
 
            cout<<"min= "<<f2<<endl;
 
        f1=f2;
 
        f2=f3;
 
        x_eps+=eps;
 
        f3=fynkciya(x_eps);
 
    }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
16.06.2011, 12:58     почему прога не пашет? #2
Цитата Сообщение от UnderGash<3 Посмотреть сообщение
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*Цель программы:
 
Вычислить минимум F(x)=k*(a*x+b)*P(x) на отрезке [a b] с точностью eps
 
P(x) - интерполяционный многочлен от f(x)
 
ф-ия f(x) задана таблично:
 
x    1.05   1.15   1.25   1.35
 
f(x) 2.30   2.74   3.46   4.60
 
при этом k=P(c) 
 
a=1.05
 
b=1.35
 
c=1.10
 
eps=0.001
 
*/
 
#define a 1.05
 
#define b 1.35
 
#define c 1.10
 
#define eps 1.e-3
 
#include <math.h>
 
#include <iostream.h>
 
double polinom(double t)
 
{
 
    //полином Лагранжа
 
    double l[3],x[3],y[3];
 
    x[0]=1.05;
 
    x[1]=1.15;
 
    x[2]=1.25;
 
    x[3]=1.35;
 
    y[0]=2.30;
 
    y[1]=2.74;
 
    y[2]=3.46;
 
    y[3]=4.60;
 
    l[0]=(t-x[1])*(t-x[2])*(t-x[3])/((x[0]-x[1])*(x[0]-x[2])*(x[0]-x[3]));
 
    l[1]=(t-x[0])*(t-x[2])*(t-x[3])/((x[1]-x[0])*(x[1]-x[2])*(x[1]-x[3]));
 
    l[2]=(t-x[0])*(t-x[1])*(t-x[3])/((x[2]-x[0])*(x[2]-x[1])*(x[2]-x[3]));
 
    l[3]=(t-x[0])*(t-x[1])*(t-x[2])/((x[3]-x[0])*(x[3]-x[1])*(x[3]-x[2]));
 
    double L=y[0]*l[0]+y[1]*l[1]+y[2]*l[2]+y[3]*l[3];
 
    return L;
 
}
 
 
 
double fynkciya(double x)
 
{
 
    //значение ф-ии
 
    double k=polinom(c);
 
    double z=polinom(x);
 
    return k*(a*x+b)*z;
 
}
 
 
 
void main()
 
{
 
    double x=a;
 
    double f1=fynkciya(x);
 
    double x_eps=x+eps;
 
    double f2=fynkciya(x_eps);
 
    x_eps+=eps;
 
    double f3=fynkciya(x_eps);
 
    while (x_eps<b)
 
    {
 
        if ((f2<f1) && (f2<f3))
 
            cout<<"min= "<<f2<<endl;
 
        f1=f2;
 
        f2=f3;
 
        x_eps+=eps;
 
        f3=fynkciya(x_eps);
 
    }
 
}
потому-что первый блин всегда комом
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.06.2011, 13:01     почему прога не пашет? #3
а в чем вы ее компилируете?
почему прога не пашет?
и что с ней не так, ошибка компиляции? неправильно считает? или что?
UnderGash<3
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 5
16.06.2011, 13:05  [ТС]     почему прога не пашет? #4
компилирует норм
а когда запускаю рабочее окно выдает ошибку, типа:"обнаружена ошибка отправить отчет в инет или нет"
после этого рабочее окно закрывается
и всё
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
16.06.2011, 13:23     почему прога не пашет? #5
если она у тебя не компилится то иза этого

измени шапку

<iostream>
<cmath>
using namespace std;


void main () {
}

на int main() {
//.....
return 0;
}

у меня компилится но ничего не выводит, т.е. if ((f2<f1) && (f2<f3)) условие остается ложным
цикл выполняется 299 раз
а по формулам ничего не скажу, т.к. я в них дуб )

если условие поменять на || (или) хоть что-то выведет )))

Добавлено через 5 минут
Цитата Сообщение от UnderGash<3 Посмотреть сообщение
компилирует норм
а когда запускаю рабочее окно выдает ошибку, типа:"обнаружена ошибка отправить отчет в инет или нет"
после этого рабочее окно закрывается
и всё
у меня без ошибок, запускается и норм завершается

просто не пойму как это у вас компил. пропустил

cout <<

вместо std::cout <<

без объявления пространства имен
using namespace std;
UnderGash<3
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 5
16.06.2011, 13:25  [ТС]     почему прога не пашет? #6
не знаю
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
16.06.2011, 13:28     почему прога не пашет? #7
Цитата Сообщение от UnderGash<3 Посмотреть сообщение
не знаю
чего не знаешь??
запустил хоть?
UnderGash<3
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 5
16.06.2011, 13:39  [ТС]     почему прога не пашет? #8
у меня такая проблема прост компа нету, точнее есть но он не рабочий и я сейча проверить
не могу ни фига(((((
щас поеду в инст буду у препода сидеть пытаться
если сможете помочь то напишите аську, я в 4 часа зайду

Добавлено через 1 минуту
а может быть проблема из-за того что не в той версии с++ запускаю?
ну или что-нить такое?
прост мне надо в вижуал с++ 6.0
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
16.06.2011, 13:48     почему прога не пашет? #9
Цитата Сообщение от UnderGash<3 Посмотреть сообщение
у меня такая проблема прост компа нету, точнее есть но он не рабочий и я сейча проверить
не могу ни фига(((((
щас поеду в инст буду у препода сидеть пытаться
если сможете помочь то напишите аську, я в 4 часа зайду

Добавлено через 1 минуту
а может быть проблема из-за того что не в той версии с++ запускаю?
ну или что-нить такое?
прост мне надо в вижуал с++ 6.0
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <cmath>
#include <iostream>
using namespace std;
 
#define a 1.05
#define b 1.35
#define c 1.10
#define eps 1.e-3
 
 
 
double polinom(double t) {
 
    //полином Лагранжа
 
    double l[3],x[3],y[3];
 
    x[0]=1.05;
 
    x[1]=1.15;
 
    x[2]=1.25;
 
    x[3]=1.35;
 
    y[0]=2.30;
 
    y[1]=2.74;
 
    y[2]=3.46;
 
    y[3]=4.60;
 
    l[0]=(t-x[1])*(t-x[2])*(t-x[3])/((x[0]-x[1])*(x[0]-x[2])*(x[0]-x[3]));
 
    l[1]=(t-x[0])*(t-x[2])*(t-x[3])/((x[1]-x[0])*(x[1]-x[2])*(x[1]-x[3]));
 
    l[2]=(t-x[0])*(t-x[1])*(t-x[3])/((x[2]-x[0])*(x[2]-x[1])*(x[2]-x[3]));
 
    l[3]=(t-x[0])*(t-x[1])*(t-x[2])/((x[3]-x[0])*(x[3]-x[1])*(x[3]-x[2]));
 
    double L=y[0]*l[0]+y[1]*l[1]+y[2]*l[2]+y[3]*l[3];
 
    return L;
 
}
 
 
 
double fynkciya(double x)
 
{
 
    //значение ф-ии
 
    double k=polinom(c);
 
    double z=polinom(x);
 
    return k*(a*x+b)*z;
 
}
 
 
 
int main()
 
{
 
    double x=a;
 
    double f1=fynkciya(x);
 
    double x_eps=x+eps;
 
    double f2=fynkciya(x_eps);
 
    x_eps+=eps;
 
    double f3=fynkciya(x_eps);
 
    while (x_eps<b)
 
    {
 
        if ((f2<f1) && (f2<f3))
 
            cout<<"min= "<<f2<<endl;
 
        f1=f2;
 
        f2=f3;
 
        x_eps+=eps;
 
        f3=fynkciya(x_eps);
 
    }
 
    return 0;
}
вот это запускается нормально но работает явно не так, в общем либо формулы либо индексы пробуй (это твой текст, почти оригенал)
UnderGash<3
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 5
16.06.2011, 13:52  [ТС]     почему прога не пашет? #10
от души большое
ты из москвы?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2011, 14:25     почему прога не пашет?
Еще ссылки по теме:

вот прога почему то не работает C++
C++ не роботает прога,почему?
C++ почему прога вылетает, не успеваю посмотреть действие C++

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

Или воспользуйтесь поиском по форуму:
tylix
16.06.2011, 14:25     почему прога не пашет?
  #11

Не по теме:

в районе 1500км )

нет не из москвы

Yandex
Объявления
16.06.2011, 14:25     почему прога не пашет?
Ответ Создать тему
Опции темы

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