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

Где нагрешил? - C++

Восстановить пароль Регистрация
 
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
25.10.2013, 15:29     Где нагрешил? #1
Подскажите пожалуйста почему программа в в конце находит U минимальное, а х и у соответствующие к нему выводит непонятно откуда?
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
#include "stdafx.h" 
#include <iostream> 
#include <math.h> 
#include <iomanip> 
#include <fstream>
using namespace std;
 
fstream file;
 
int main()
{
    const double exp=2.72;
    double x,y,U,A,B,U_min,U_max,S,k,x_min,y_min,x_max,y_max;
    U_min=10000;
    U_max=-10000;
    S=0;
    k=0;
    file.open("out_file.txt", ios::out);
    file.setf(ios::right);
    file.setf(ios::fixed);
    file.precision(3);
    
    file<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
 
    cout<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
    y=2;
    while(y<=4)
    {
        x=1;
        while(x<=3)
        {
            if((x/(y-1.5))<1)
            {A=pow(exp,2*x)+log10(x);
            B=sin(-(1-abs(x-y))/pow(x,(1/3)));
            if(A>B)
            U=A;
            else 
            U=B;
            }
            else
            U=pow(cos(pow(x,2)-y),2);
    
            cout.setf(ios::right);
            cout.setf(ios::fixed);
            cout.precision(3);
        
            cout<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
        
            file<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
 
            x=x+1.3;
        }
        y=y+1.5;
    }
    
    if(U<U_min)
    {U_min=U;
    x_min=x;
    y_min=y;}
 
    cout<<"min U = "<<U_min<<"; x = "<<x<<"; y = "<<y<<endl;
file<<"min U = "<<U_min<<"; x = "<<x<<"; y = "<<y<<endl;
 
 
 
    file.close();
 
    system("notepad.exe out_file.txt");
    return 0;
}
Спасибо!
Миниатюры
Где нагрешил?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 15:29     Где нагрешил?
Посмотрите здесь:

Для матриц I=2P-E, где Е-единичная матрица,а Р=Р(n,n), проверить св-во I^2=Е.При помощи метода Гаусса решить СЛАУ Ix=y, где вектор состоит из единиц. C++
Где найти Двунаправленное кольцо? у кого есть такое? или есть ссылки где их можно найти? C++
C++ Где ОШИБКА?
GNU C++ где де ты где?!?! C++
C++ Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
25.10.2013, 15:42     Где нагрешил? #2
Потому что присваивание значений идет после того как ты x+=1.3 а y+=1.5 . можно просто перед присваиванием написать x-=1.3 y-=1.5 или перенести блок с if(U<U_min). Помоему так)
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
25.10.2013, 15:42     Где нагрешил? #3
Цитата Сообщение от rafael999 Посмотреть сообщение
pow(x,(1/3))
C++
1
pow(x,(1.0/3.0))
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
25.10.2013, 15:48  [ТС]     Где нагрешил? #4
То же самое
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
25.10.2013, 15:51     Где нагрешил? #5
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
#include "stdafx.h" 
#include <iostream> 
#include <math.h> 
#include <iomanip> 
#include <fstream>
using namespace std;
 
fstream file;
 
int main()
{
    const double exp=2.72;
    double x,y,U,A,B,U_min,U_max,S,k,x_min,y_min,x_max,y_max;
    U_min=10000;
    U_max=-10000;
    S=0;
    k=0;
    file.open("out_file.txt", ios::out);
    file.setf(ios::right);
    file.setf(ios::fixed);
    file.precision(3);
    
    file<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
 
    cout<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
    y=2;
    while(y<=4)
    {
        x=1;
        while(x<=3)
        {
            if((x/(y-1.5))<1)
            {A=pow(exp,2*x)+log10(x);
            B=sin(-(1-abs(x-y))/pow(x,(1./3)));
            if(A>B)
            U=A;
            else 
            U=B;
            }
            else
            U=pow(cos(pow(x,2)-y),2);
    
            cout.setf(ios::right);
            cout.setf(ios::fixed);
            cout.precision(3);
        
            cout<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
        
            file<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
 
            x=x+1.3;
        }
        y=y+1.5;
    }
    
    if(U<U_min)
    {U_min=U;
    x_min=x-1.3;
    y_min=y-1.5;}
 
    cout<<"min U = "<<U_min<<"; x = "<<x<<"; y = "<<y<<endl;
file<<"min U = "<<U_min<<"; x = "<<x<<"; y = "<<y<<endl;
 
 
 
    file.close();
 
    system("notepad.exe out_file.txt");
    return 0;
}
Добавлено через 21 секунду
Разве так не работает ?
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
25.10.2013, 15:55  [ТС]     Где нагрешил? #6
нет
Миниатюры
Где нагрешил?  
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
25.10.2013, 16:01     Где нагрешил? #7
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
#include "stdafx.h" 
#include <iostream> 
#include <math.h> 
#include <iomanip> 
#include <fstream>
using namespace std;
 
fstream file;
 
int main()
{
    const double exp=2.72;
    double x,y,U,A,B,U_min,U_max,S,k,x_min,y_min,x_max,y_max;
    U_min=10000;
    U_max=-10000;
    S=0;
    k=0;
    file.open("out_file.txt", ios::out);
    file.setf(ios::right);
    file.setf(ios::fixed);
    file.precision(3);
    
    file<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
 
    cout<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
    y=2;
    while(y<=4)
    {
        x=1;
        while(x<=3)
        {
            if((x/(y-1.5))<1)
            {A=pow(exp,2*x)+log10(x);
            B=sin(-(1-abs(x-y))/pow(x,(1./3)));
            if(A>B)
            U=A;
            else 
            U=B;
            }
            else
            U=pow(cos(pow(x,2)-y),2);
    
            cout.setf(ios::right);
            cout.setf(ios::fixed);
            cout.precision(3);
        
            cout<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
        
            file<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
 
            x=x+1.3;
        }
        y=y+1.5;
    }
    
    if(U<U_min)
    {U_min=U;
    x_min=x-1.3;
    y_min=y-1.5;}
 
    cout<<"min U = "<<U_min<<"; x = "<<x_min<<"; y = "<<y_min<<endl;
file<<"min U = "<<U_min<<"; x = "<<x_min<<"; y = "<<y_min<<endl;
 
 
 
    file.close();
 
    system("notepad.exe out_file.txt");
    return 0;
}
Добавлено через 12 секунд
а так)
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
25.10.2013, 16:02  [ТС]     Где нагрешил? #8
То же самое, блин тут даже максимальное не хочет находить. Походу я вообще даун
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
25.10.2013, 16:04     Где нагрешил? #9
еще раз попробуй то что я скинул я изменил)
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
25.10.2013, 16:06  [ТС]     Где нагрешил? #10
О ваще круто Спасибо

Добавлено через 44 секунды
Цитата Сообщение от Banddk Посмотреть сообщение
x_min=x-1.3;
* * y_min=y-1.5;}
А вот как это объяснить?
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
25.10.2013, 16:08     Где нагрешил? #11
Ну просто у тебя if стоит после того как ты уже переходишь к новым x и y поэтому тебе надо предыдущие записать а не новые)
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
25.10.2013, 16:12  [ТС]     Где нагрешил? #12
А если я еще в этой же проге хочу и максимальное значение найти, то прям после вывода минимума все писать?
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
25.10.2013, 16:35     Где нагрешил? #13
Всмысле поиск ?) искать ты можешь параллельно этой программе просто добавив U_max . и задать подобное с if(U>U_max)

Добавлено через 5 минут
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
#include "stdafx.h" 
#include <iostream> 
#include <math.h> 
#include <iomanip> 
#include <fstream>
using namespace std;
fstream file;
int main()
{
* * const double exp=2.72;
* * double x,y,U,A,B,U_min,U_max,S,k,x_min,y_min,x_max,y_max;
* * U_min=10000;
* * U_max=-10000;
* * S=0;
* * k=0;
* * file.open("out_file.txt", ios::out);
* * file.setf(ios::right);
* * file.setf(ios::fixed);
* * file.precision(3);
file<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
cout<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
* * y=2;
* * while(y<=4)
* * {
* * * * x=1;
* * * * while(x<=3)
* * * * {
* * * * * * if((x/(y-1.5))<1)
* * * * * * {A=pow(exp,2*x)+log10(x);
* * * * * * B=sin(-(1-abs(x-y))/pow(x,(1/3)));
* * * * * * if(A>B)
* * * * * * U=A;
* * * * * * else 
* * * * * * U=B;
* * * * * * }
* * * * * * else
* * * * * * U=pow(cos(pow(x,2)-y),2);
cout.setf(ios::right);
* * * * * * cout.setf(ios::fixed);
* * * * * * cout.precision(3);
cout<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
file<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
x=x+1.3;
* * * * }
* * * * y=y+1.5;
* * 
if(U<U_min)
* * {U_min=U;
* * x_min=x-1.3;
* * y_min=y-1.5;}
if(U>U_max)
* * {U_max=U;
* * x_max=x-1.3;
* * y_max=y-1.5;}
}
cout<<"min U = "<<U_min<<"; x = "<<x_min<<"; y = "<<y_min<<endl;
file<<"min U = "<<U_min<<"; x = "<<x_min<<"; y = "<<y_min<<endl;
file.close();
system("notepad.exe out_file.txt");
* * return 0;
}
rafael999
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
25.10.2013, 16:36  [ТС]     Где нагрешил? #14
Я добавил, а у него такой же вывод как в минимальном http://f4.s.qip.ru/cMfvUITP.png
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
#include "stdafx.h" 
#include <iostream> 
#include <math.h> 
#include <iomanip> 
#include <fstream>
using namespace std;
 
fstream file;
 
int main()
{
    const double exp=2.72;
    double x,y,U,A,B,U_min,U_max,S,k,x_min,y_min,x_max,y_max;
    U_min=10000;
    U_max=-900000;
    S=0;
    k=0;
    file.open("out_file.txt", ios::out);
    file.setf(ios::right);
    file.setf(ios::fixed);
    file.precision(3);
    
    file<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
 
    cout<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
    y=2;
    while(y<=4)
    {
        x=1;
        while(x<=3)
        {
            if((x/(y-1.5))<1)
            {A=pow(exp,2*x)+log10(x);
            B=sin(-(1-abs(x-y))/pow(x,(1./3)));
            if(A>B)
            U=A;
            else 
            U=B;
            }
            else
            U=pow(cos(pow(x,2)-y),2);
    
            cout.setf(ios::right);
            cout.setf(ios::fixed);
            cout.precision(3);
        
            cout<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
        
            file<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
  x=x+1.3;
        }
             y=y+1.5;
    }
    
 
    if(U<U_min)
    {U_min=U;
    x_min=x-1.3;
    y_min=y-1.5;}
      
     cout<<"min U = "<<U_min<<"; x = "<<x_min<<"; y = "<<y_min<<endl;
file<<"min U = "<<U_min<<"; x = "<<x_min<<"; y = "<<y_min<<endl;
 
    if(U>U_max)
    {U_max=U;
    x_max=x-1.3;
    y_max=y-1.5;}
 
 
 
    cout<<"max U = "<<U_max<<"; x = "<<x_max<<"; y = "<<y_max<<endl;
file<<"max U = "<<U_max<<"; x = "<<x_max<<"; y = "<<y_max<<endl;
 
 
 
 
 
    file.close();
 
    system("notepad.exe out_file.txt");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 18:55     Где нагрешил?
Еще ссылки по теме:

wx где ты? C++
C++ Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил)
Объясните, где задается функция, где расчитывается и как она называется C++

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

Или воспользуйтесь поиском по форуму:
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
25.10.2013, 18:55     Где нагрешил? #15
Ты не скопировал мою программу у меня стоит одна скобка в другом месте. А вывод просто дальше первого надо дописать)

Добавлено через 1 минуту
Скобка с 53 строки переносится на 68 . А 61 62 строка на 69 70 переносятся строки)
Yandex
Объявления
25.10.2013, 18:55     Где нагрешил?
Ответ Создать тему
Опции темы

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