Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Вывести значения функции


Автор: Malino4ka 28.5.2014, 21:37
Вычислить и вывести на экран в виде таблицы значения функции F на интервале  от X нач до X кон с началом DX


F= ax2-cx+b при x+10<0 и b≠0
F= (x-a)/(x-c) при x+10>0 и b=0
F= -x/a-c в остальных случаях


Помогите срочно надо лабораторную по C++ сдавать.

Может у кого уже готовая программа есть?!

Автор: Guinness 29.5.2014, 07:25
Цитата(Malino4ka @  28.5.2014,  22:37 Найти цитируемый пост)
Помогите срочно надо лабораторную по C++ сдавать.

Я, конечно, извиняюсь, но задать саму функцию - это 2 if, а вывести в консоль в виде таблицы - это почитать, как работает printf или cout. Но т.к. знаний видимо->0, то проще printf.
Что в этом сложного? Тут даже с нулевыми знаниями писать максимум час, посмотрев примеры сокурсников.

Автор: Malino4ka 29.5.2014, 14:01
Цитата(Guinness @ 29.5.2014,  07:25)
Цитата(Malino4ka @  28.5.2014,  22:37 Найти цитируемый пост)
Помогите срочно надо лабораторную по C++ сдавать.

Я, конечно, извиняюсь, но задать саму функцию - это 2 if, а вывести в консоль в виде таблицы - это почитать, как работает printf или cout. Но т.к. знаний видимо->0, то проще printf.
Что в этом сложного? Тут даже с нулевыми знаниями писать максимум час, посмотрев примеры сокурсников.

А у вас есть эта задача?

Автор: Guinness 29.5.2014, 14:12
Цитата(Malino4ka @  29.5.2014,  15:01 Найти цитируемый пост)
А у вас есть эта задача?

Нет, я прикинул как нужно это писать. Если начнешь,  я тебе помогу.

Автор: Malino4ka 30.5.2014, 13:50
Цитата(Guinness @ 29.5.2014,  14:12)
Цитата(Malino4ka @  29.5.2014,  15:01 Найти цитируемый пост)
А у вас есть эта задача?

Нет, я прикинул как нужно это писать. Если начнешь,  я тебе помогу.

Вот в общем с однокурсниками сделала


Код

#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <vcl.h>

double func(double a, double b, double c, double x)
{
    if((a < 0) && (x != 0)){
        return (a * x * x + b * b * x);
    } else if(x == 0) {
        return (x - a / x - c);
    }
    return (1 + x / c);
}
 
int main()
{
    double a,b,c,x0,x1,dx;
    std::locale::global(std::locale("Russian"));
    std::cout << "Vvedite a: ";
    std::cin >> a;

    std::cout << "Vvedite b: ";
    std::cin >> b;

    std::cout << "Vvedite c: ";
    std::cin >> c;

    std::cout << "Vvedite Xnach: ";
    std::cin >> x0;

    std::cout << "Vvedite Xkon: ";
    std::cin >> x1;

    std::cout << "Vvedite dx: ";
    std::cin >> dx;

    for(double x = x0; x <= x1; x += dx) {
        std::cout << "f(" << x << ")\t\t = " << func(a, b, c, x) << std::endl;
    }
    system("pause");
}

Автор: Guinness 30.5.2014, 14:08
Цитата(Malino4ka @  30.5.2014,  14:50 Найти цитируемый пост)
Вот в общем с однокурсниками сделала

Чудесно, код ты нашла. Теперь подставь в функцию func условия, которые тебе даны. Вот для экспериментов http://ideone.com/xC2hB9 

Автор: Malino4ka 30.5.2014, 15:52
Цитата(Guinness @ 30.5.2014,  14:08)
Цитата(Malino4ka @  30.5.2014,  14:50 Найти цитируемый пост)
Вот в общем с однокурсниками сделала

Чудесно, код ты нашла. Теперь подставь в функцию func условия, которые тебе даны. Вот для экспериментов http://ideone.com/xC2hB9

Не поняла а что на этой странице нужно делать?
То есть для чего она?

Автор: Guinness 31.5.2014, 20:34
Цитата(Malino4ka @  30.5.2014,  16:52 Найти цитируемый пост)
Не поняла а что на этой странице нужно делать?

Это тебе на случай, если у тебя нет среды разработки, в которой ты пишешь, компилируешь и запускаешь свой код. Там нужно нажать fork, а дальше редактировать код.

Автор: Malino4ka 1.6.2014, 11:07
Цитата(Guinness @ 31.5.2014,  20:34)
Цитата(Malino4ka @  30.5.2014,  16:52 Найти цитируемый пост)
Не поняла а что на этой странице нужно делать?

Это тебе на случай, если у тебя нет среды разработки, в которой ты пишешь, компилируешь и запускаешь свой код. Там нужно нажать fork, а дальше редактировать код.

Я в Borland C++ Builder там работаю,на компе есть установленная

Добавлено через 1 минуту и 44 секунды
Цитата(Guinness @ 31.5.2014,  20:34)
Цитата(Malino4ka @  30.5.2014,  16:52 Найти цитируемый пост)
Не поняла а что на этой странице нужно делать?

Это тебе на случай, если у тебя нет среды разработки, в которой ты пишешь, компилируешь и запускаешь свой код. Там нужно нажать fork, а дальше редактировать код.

Не мог бы ты подсказать func вставляется до или после ввода данных,и в каком виде?

Автор: Guinness 2.6.2014, 07:19
Цитата(Malino4ka @  1.6.2014,  12:07 Найти цитируемый пост)
Не мог бы ты подсказать func вставляется до или после ввода данных,и в каком виде? 

В данном случае, тебе уже об этом думать не нужно, за тебя все написали. Тебе осталось поменять условия сравнения и подставить выражения для вычисления значения функции.
Функция в твоем примере:
Код

double func(double a, double b, double c, double x)
{
    if((a < 0) && (x != 0)){
        return (a * x * x + b * b * x);
    } else if(x == 0) {
        return (x - a / x - c);
    }
    return (1 + x / c);
}

соответствует данному условию
Цитата

F= a * x^2 - b^2 * x при a<0 и x≠0
F= (x - a/x - c) при x=0 - кстати, странное условие, здесь получится бесконечность
F= 1 + x/c в остальных случаях

Тебе нужно взять свое условие и подставить его в func.

Автор: Malino4ka 2.6.2014, 15:29
Цитата(Guinness @ 2.6.2014,  07:19)
Цитата(Malino4ka @  1.6.2014,  12:07 Найти цитируемый пост)
Не мог бы ты подсказать func вставляется до или после ввода данных,и в каком виде? 

В данном случае, тебе уже об этом думать не нужно, за тебя все написали. Тебе осталось поменять условия сравнения и подставить выражения для вычисления значения функции.
Функция в твоем примере:
Код

double func(double a, double b, double c, double x)
{
    if((a < 0) && (x != 0)){
        return (a * x * x + b * b * x);
    } else if(x == 0) {
        return (x - a / x - c);
    }
    return (1 + x / c);
}

соответствует данному условию
Цитата

F= a * x^2 - b^2 * x при a<0 и x≠0
F= (x - a/x - c) при x=0 - кстати, странное условие, здесь получится бесконечность
F= 1 + x/c в остальных случаях

Тебе нужно взять свое условие и подставить его в func.

Код

 #include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <vcl.h>

double func(double a, double b, double c, double x)
{
    if((x < -10) && (b!= 0))
        return (a * x * x - c*x+b);
     else if((b == 0)&& (x>- 10))
        return ((x - a) / (x - c));
     else
    return (-x /(a-c));
    }
int main()
{
    double a,b,c,x0,x1,dx;
    std::locale::global(std::locale("Russian"));
    std::cout << "Vvedite a: ";
    std::cin >> a;

    std::cout << "Vvedite b: ";
    std::cin >> b;

    std::cout << "Vvedite c: ";
    std::cin >> c;

    std::cout << "Vvedite Xnach: ";
    std::cin >> x0;

    std::cout << "Vvedite Xkon: ";
    std::cin >> x1;

    std::cout << "Vvedite dx: ";
    std::cin >> dx;

    for(double x = x0; x <= x1; x += dx) {
        std::cout << "f(" << x << ")\t\t = " << func(a, b, c, x) << std::endl;
    }
    system("pause");
}


Ура получилось!!))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)