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

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

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

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

25.10.2013, 15:29. Просмотров 378. Ответов 14
Метки нет (Все метки)

Подскажите пожалуйста почему программа в в конце находит 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++
Добрый день!Помогите пожалуйста с решением данной задачи: Задание: Необходимо написать и отладить программу в среде Borland C++ 3.1 по...

Где у файла начало , а где конец? - C++
Добрый день! Учу ввод в файл и вывод из файла. Подскажите, пожалуйста, где у файла конец и начало. Допустим, я ввожу в файл объекты один...

GNU C++ где де ты где?!?! - C++
Где можно вот просто взять и скачать GNU C++! Вот так прям чтоби без флуда в ответ без левих ссылок, без издевок, без подстав, вот просто...

Вычислите значение отношений напишите, где истина а где ложь - Pascal
вычислите значение след отношений напишите где истина а где лож a &lt;&gt; б = в = г = d &lt;= e &lt;= ж trunc (3,9) in з odd...

Где нужно в коде использовать кавычки, а где апостроф - C#
Чем отличаются &quot; от ' ? Этот код не работаетstring str = &quot;My name is Andrey!&quot;; string arr = str.Split(&quot; &quot;); а вот этот...

как програма понимает где переменая, а где ее адрес - Assembler
STR_BYTE_HELLO BYTE &quot;BYTE HELLO&quot;,0 push 0FFFFFFFFh push offset STR_BYTE_HELLO в отладике это выглядит так...

промежутки между тэгами - где text, a где undefined - JavaScript
Я много раз сталкивался с тем, что иногда броузер видит undefined между тэгами, иногда - text. В каких случаях и что он видит? Заранее...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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     Где нагрешил?
Еще ссылки по теме:

Где в приведенном коде семантика и где сигнатура - C#
Где тут семантика, а где сигнатура функции: static class StaticClass { public static int intField; public static...

Не могу понять, где вдув, где выдув - Охлаждение
Добрый день. Не могу понять, где вдув, где выдув на куллере? И как установить, какой стороной?

Анонимность в интернете, где правда а где вымысел? - Сети
Приветствую. Я думаю многие задавались вопросом: &quot;А можно ли скрыть свои действия в сети?&quot;:scratch:(ну разное бывает нужно:)). Наверняка...

Где в функции входные, и где выходные параметры? - Fortran
Вот функция (или это процедура), написанная на Фортране: subroutine tdbalance(ph, T, cc, ch, cch4, cci, chi, ce, p) ! Декларация...

Acer 5530; Где север, а где юж. мост? - Ремонт ноутбуков
Люди, кто может объяснить где северный мост, а где южный на acer 5530. И кто за что отвечает? Просто с ноутом беда случилось, экран не...


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

Или воспользуйтесь поиском по форуму:
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     Где нагрешил?
Ответ Создать тему
Опции темы

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