Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.05.2019, 14:22   #1
dbegin
Новичок
Джуниор
 
Регистрация: 20.05.2019
Сообщений: 5
Репутация: 10
По умолчанию Как вывести значения "b" для каждого из пройденных значений "a"

Доброго времени суток!

Успешно написал программу для вывода значений для параметра "а" в интервале от 0,5 до 1.

Теперь пытался написать программу, чтобы каждое последовательно значение a1 бралось для вычисления min/max функций, составляло интервал, и выводило с шагом h1 значения b

То есть, если a1=0.5, a2=1, h=0.1, то получается что берется только первое значение из промежутка. Как сделать так, чтобы эти значения проходили полностью все значения от 0,5 до 1 и применялись для вычисления min/max?

И как потом вывести эти значения также в столбик?

Пока что только написал для подсчета, но и в min функции выдает не конкретное число, а только лишь непонятно что.

Для простоты понимания, прилагаю картинку выходных данных моего кода, а также картинку, для чего собственно говоря решается




Код:
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int main() {
    float a1, a2, h, h1, b, b1;
    cout << "Vvedite granici a:\n";
    cout << "Nizhnaya granica a ";
    cin >> a1;
    cout << "Verhnaya granica a ";
    cin >> a2;
    cout << "\nEnter a step:\n";
    cout << "h = ";
    cin >> h;
    cout << "\nZnacheniya a\n";
    do {
        cout << " " << a1 << "\n";
        a1 += h;
    } while (a1 <= a2+0.1);
       cout << "\nEnter step b:";
     cin >> h1;
  
cout << "max(a1-1,(-(5+4*a1)+sqrt(25+48*a1))/4)=" << b << endl;
cout << "min(a1-0.5,(-1+sqrt(1+4*a1*(1-a1)))/2)=" << b1 << endl;
    do{
        cout << " " << b1 << "\n";
        b += h1;
    } while (b <= b1+0.05);   
    system("pause");
    return 0;
}
Изображения
  
dbegin вне форума   Ответить с цитированием
Старый 20.05.2019, 14:37   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

если я правильно Вас понял, то попробуйте
что-то вроде такого:

Код:
     eps = 1.0e-7;
     cout << "\nEnter step b:";
     cin >> h1;

    do {
        cout << " " << a1 << endl;;

        b = max(a1-1.0,(-(5.0+4.0*a1)+sqrt(25.0+48.0*a1))/4.0);
        b2 = min(a1-0.5,(-1.0+sqrt(1.0+4.0*a1*(1.0-a1)))/2.0);

	cout << "max(a1-1,(-(5+4*a1)+sqrt(25+48*a1))/4)=" << b << endl;
	cout << "min(a1-0.5,(-1+sqrt(1+4*a1*(1-a1)))/2)=" << b2 << endl;

        do{
            cout << " " << b << endl;
            b += h1;
        } while (b <= b2+eps); 

        a1 += h;
    } while (a1 <= a2+eps);
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 20.05.2019, 14:59   #3
dbegin
Новичок
Джуниор
 
Регистрация: 20.05.2019
Сообщений: 5
Репутация: 10
По умолчанию

супер, теперь все правильно считает сами max и min, однако выводит все равно несколько не то.

то есть нужно чтобы работало так - выдаем границы для a, потом он выводит все значения a.

потом каждое значение a берется, считается для max и min, получается интервал.

и чтобы этот интервал тоже выводился в столбец но с задаваемым шагом h2

То есть для значения a=0.5 вычисляется max и min, из этих двух чисел получается интервал, который нужно вывести с шагом h2

и далее тут же берется a=0.6 и повторяет.

И так для всего интервала значений для a
dbegin вне форума   Ответить с цитированием
Старый 20.05.2019, 15:07   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

Цитата:
Сообщение от dbegin Посмотреть сообщение
потом каждое значение a берется, считается для max и min, получается интервал.

и чтобы этот интервал тоже выводился в столбец но с задаваемым шагом h2

То есть для значения a=0.5 вычисляется max и min, из этих двух чисел получается интервал, который нужно вывести с шагом h2

и далее тут же берется a=0.6 и повторяет.

И так для всего интервала значений для a
пример напишите. как оно должно выводиться.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 20.05.2019, 15:22   #5
dbegin
Новичок
Джуниор
 
Регистрация: 20.05.2019
Сообщений: 5
Репутация: 10
По умолчанию

Например:
вводится левая граница a=0.5
вводится правая граница а=1
вводится шаг для а=0.1
далее выводится
0.5
0.6
0.7
0.8
0.9
1
Далее вводится шаг для b=0.05
Берется значение a для формулы, например 0.5, высчитывается max и min, и эти значения max и min будут являться границами для b.
Пусть для примера они будут для max 0.1, а для min 0.3
И вывестись должно
0.1
0.15
0.2
0.25
0.3

После чего берется значение a=0.6 и повторяется
Также для всех остальных значений из промежутка a

Последний раз редактировалось dbegin; 20.05.2019 в 15:27.
dbegin вне форума   Ответить с цитированием
Старый 20.05.2019, 15:30   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

Цитата:
Сообщение от dbegin Посмотреть сообщение
Пусть для примера они будут для max 0.1, а для min 0.3
И вывестись должно
а где дожно вывестись для a=0.6, для a=0.7 и т.д. ?!

тот код, что я предложил выводит так
a=0.5
теперь в столбик все b от 0.1 до 0.3 (например)
a=0.6
теперь в столбик все b от 0.22 до 0.57 (например)
a=0.7
теперь в столбик все b от 0.3 до 0.9 (например)
и т.д.

а как Вам нужно?

примерно так:
https://ideone.com/LEKccK

Последний раз редактировалось Serge_Bliznykov; 20.05.2019 в 15:39.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 20.05.2019, 15:37   #7
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,492
Репутация: 2631
По умолчанию

Столбик а отдельно в начале, а потом Н столбиков для b.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 20.05.2019, 15:55   #8
dbegin
Новичок
Джуниор
 
Регистрация: 20.05.2019
Сообщений: 5
Репутация: 10
По умолчанию

Именно так! Спасибо большое!
dbegin вне форума   Ответить с цитированием
Старый 20.05.2019, 15:57   #9
dbegin
Новичок
Джуниор
 
Регистрация: 20.05.2019
Сообщений: 5
Репутация: 10
По умолчанию

с eps я понял, по сути она уничтожает неудобные для вывода значения с e,
но почему мой код тогда не работал от слова совсем? я неправильно делал цикл? или ошибка была скорее в том что я не дописал дополнительного кусочка кода?
dbegin вне форума   Ответить с цитированием
Старый 20.05.2019, 15:57   #10
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,492
Репутация: 2631
По умолчанию

И в чем ваша проблема? Из приведенного кода вытаскиваем вывод a1 вверх, а условие выхода берем из текущего для а. Все остальное оставляем.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан список имен names=["Bob" "Alice" "Elizabet" "Dan"]. Вывести на экран последовательно строчки с приветствием вида Hello,Bob! Hello, Alice! dianaaa1998 Помощь студентам 8 14.09.2018 10:44
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" Бахтиёр1916 Windows 1 05.04.2017 13:53
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 15:23
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50


13:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru