Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 18:56   #1
Esteru
Новичок
Джуниор
 
Регистрация: 11.11.2009
Сообщений: 2
Вопрос СИ++ помогите доделать задание с функциями

4. Вычислить значения функций y=f(x) и y=g(x) для нескольких произвольных значений аргумента x. Напечатать значения аргумента и функций, причем каждую пару значений функций печатать в порядке возрастания (или убывания).
Определить наибольшее и наименьшее из всех полученных значений функций f(x) и g(x); напечатать соответствующую пару значений аргумента и функции.

я не могу понять, как делать последний пункт, пожалуйста помогите, если не сложно

вот мой код


Код:
     printf("Задача 4\n");

            int maxY=0,maxX=0,minY=0,minX=0;
            while (printf("x="),scanf("%f",&x),(x<=b)&&(x>=a));
            {
                fx=x*log(x*x+1.4)/log(4)+pow(1.5,-x)*sin(2*x);
                root=pow(x,9)+1.1+(3*x+2.3)*cos(2*x);
                gx=pow(root,1/9.);
                if (fx>maxY)
                {
                    maxY=fx;
                    maxX=x;
                }
                if (gx>maxY)
                {
                    maxY=gx;
                    maxX=x;
                }
                if (fx<minY)
                {
                    minY=fx;
                    minX=x;
                }
                if (gx<minY)
                {
                    minY=gx;
                    minX=x;
                }
                if (fx<gx) printf("gx=%6.2f fx=%6.2f\n", gx,fx);
                else printf ("fx=%6.2f gx=%6.2f\n",fx,gx);
                printf("maxY=%5.2f maxX=%5.2f\n",maxY,maxX);
                printf("minY=%5.2f minX=%5.2f\n",minY,minX);

Последний раз редактировалось Rembo; 17.11.2009 в 21:14.
Esteru вне форума Ответить с цитированием
Старый 17.11.2009, 21:15   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Ну первое, что бросается в глаза неправильное объявление аргументов
Код:
int maxY=0,maxX=0,minY=0,minX=0;
д.б double, т.к. в Вашей функции есть логарифмы и деление.
Данная задача должна решаться с помощью массивов.
т.е У Вас д.б. по крайней мере 3 массива
1)один- аргументов, если они одинаковы для обеих функций
2)два - вычисленных функций f(x) g(x);
Далее в каждом из массивов вычисленных функций найти мах и номер мах элемента, по номеру мах элемента вывести элемент массива аргументов и элемент массива сотоветствующей функции.
пусть вводите х
2.2 2.4 3.5 6.7
вычисляете ф-ции 1-й
1.23 2.56 7.45 8.32
2-й
3.25 6.44 2.57 4.23
тогда результат для первой арг 6.7 ф-ция 8.32
для второй арг 2.4 ф-ция 6.44
Значения взяла от потолка.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 18.11.2009, 20:49   #3
Esteru
Новичок
Джуниор
 
Регистрация: 11.11.2009
Сообщений: 2
Злость

само задание без массивов сделать, с массивами все проще было бы, но мы *пока не знаем эту тему* так что использование массивов запрещено
Esteru вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с функциями lebrosha Помощь студентам 5 28.05.2009 20:57
Помогите доделать задание. fred9ra Общие вопросы C/C++ 1 11.01.2009 22:16
Помогите доделать задание в паскале! neomaximus Помощь студентам 4 23.06.2008 18:16
Помогите доделать задание в паскале neomaximus Помощь студентам 5 23.06.2008 14:35
Помогите доделать задание в паскале! neomaximus Помощь студентам 1 22.06.2008 09:45