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

Определить минимальное значение среди вычисленных значений t - C++

Восстановить пароль Регистрация
 
max0990
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 4
01.11.2013, 15:36     Определить минимальное значение среди вычисленных значений t #1
Вычислить значения t, соответствующие каждому значению х ( xn≤x≤xk ,
шаг изменения x равен dx) по формуле:
t=(a+b)2√((a+x)/(sin(b+x)+1,1))
Вычислить количество отрицательных значений x. Определить
минимальное значение среди вычисленных значений t. На экран выводить
каждую вторую пару значений x и t. Контрольный расчёт провести при
a=6.13, b=3.42, xn=-2, xk=3, dx=0.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
    #include<iostream>
    #include<math.h>
    #include <cmath>
 
    using std::cin;
    using std::cout;
    using std::endl;
 
    int main()
 
    {
        double x, xk, dx, t, b, a, i=0;
        int k=0;
        cout<<("Vvedite xn:");
        cin>>x;
        cout<<("Vvedite xk:");
        cin>>xk;
        cout<<("Vvedite dx:");
        cin>>dx;
        cout<<("Vvedite a:");
        cin>>a;
        cout<<("Vvedite b:");
        cin>>b;
        if (dx!=0){ 
            do{
                t=pow((a+b), 2)*sqrt((a+x)/(sin(b+x)+1.1));
                k++;
                if (k%2==0)
                {cout<<("\nt = ")<<t; cout<<("\nx = ")<<x;} //выводим каждое 2-ое значение x и t
                if (x<0) i++;                                             //колич. отрицательных x
                x+=dx;
            }while(x<=xk);
        }
        else cout<<"\nNekorektnue dannue!!!";
        cout<<("\n\nOtricatelnyh x=")<<i;
        return 0;
    }
А вот определить минимальное значение среди вычисленных значений t никак не получается. Прошу помощи добрых программистов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 15:36     Определить минимальное значение среди вычисленных значений t
Посмотрите здесь:

Определить минимальное положительное значение массива C++
Массив: найти минимальное значение среди нечетных элементов C++
Найти среднее арифметическое из модулей вычисленных значений функций C++
C++ Найти среднее арифметическое значение из модулей вычисленных значений функции
C++ Нужно найти минимальное значение среди позитивных чисел и максимальное среди отрицательных.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
01.11.2013, 15:49     Определить минимальное значение среди вычисленных значений t #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
double min=0.0;
bool first=true;
if (dx!=0){ 
            do{
                t=pow((a+b), 2)*sqrt((a+x)/(sin(b+x)+1.1));
                if(min>t && !first) min=t;  ///Как то 
                else { min=t; first=false; }///так наверное
                k++;
                if (k%2==0)
                {cout<<("\nt = ")<<t; cout<<("\nx = ")<<x;} //выводим каждое 2-ое значение x и t
                if (x<0) i++;                                             //колич. отрицательных x
                x+=dx;
            }while(x<=xk);
        }
        else cout<<"\nNekorektnue dannue!!!";
      cout<<"Min = "<<min<<endl;///выводим минимальное
max0990
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 4
01.11.2013, 16:04  [ТС]     Определить минимальное значение среди вычисленных значений t #3
К сожалению, этот код возвращает последнее значение t, а не минимальное.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
01.11.2013, 16:26     Определить минимальное значение среди вычисленных значений t #4
К сожалению, этот код возвращает последнее значение t, а не минимальное.
Нет возможности проверить.
Но на вскидку, у вас кажется выполняется только одна итерация цикла

для проверки поставте
C++
1
 cout<<t<<endl;
после формулы вычисления t.
Отпишетесь о результате.
max0990
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 4
01.11.2013, 17:40  [ТС]     Определить минимальное значение среди вычисленных значений t #5
Если я вас правильно понял, итераций выполняется несколько:
Вот вывод ком. строки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Vvedite xn:-2
Vvedite xk:3
Vvedite dx:0.5
Vvedite a:6.13
Vvedite b:3.42
 
t = 137.41
x = -1.5
t = 188.369
x = -0.5
t = 372.308
x = 0.5
t = 722.816
x = 1.5
t = 310.462
x = 2.5
 
Otricatelnyh x=4
Min = 247.836
Если же закомметировать "вывод каждого 2-ое значение x и t", получим в конце вывода:
t = 247.836
x = 3
Именно это значение t и выдаёт ваш код.
max0990
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 4
04.11.2013, 14:00  [ТС]     Определить минимальное значение среди вычисленных значений t #6
Тема всё ещё актуальна. Неужели ни у кого нет никаких мыслей по этому вопросу?
Забыл добавить в условие, что решить задачу нужно без использования массивов.
Проблема в том, чтобы "выловить" и сравнить между собой значения t после каждой итерации цикла, но как?
Yandex
Объявления
04.11.2013, 14:00     Определить минимальное значение среди вычисленных значений t
Ответ Создать тему
Опции темы

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