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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
GepardD
5 / 5 / 1
Регистрация: 23.10.2009
Сообщений: 63
#1

Работа с библиотекой math.h - C++

18.02.2010, 17:46. Просмотров 3309. Ответов 21
Метки нет (Все метки)

Задача звучит так: найти f(x) при x=0.7 и остаток от деления f(x) на g(x).
Среда Borland C++ 3.1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(void)
{       double x,y,g; float w;
    printf ("Input x\n");
    scanf ("%d",&x);
    y=log(x)/(1/cos(x)+pow(2.7,x));
    g=asin(x)+acos(x)+sqrt(pow(x,2));
    w=y%g;
    printf("y=%d g=%d w=%d\n",y,g,w);
    getch();
    return 0;
}
и кто обьяснит ошибкy Domain error?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2010, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с библиотекой math.h (C++):

Не распознает функцию tg (тангенс) с библиотекой math.h - C++
не могу обозначить переменную тангенса,с библиотекой даже не распознает. условия(фото): Вычислить для своего варианта Y, задав значения...

Работа с библиотекой <fstream> - C++
Задание: Задан массив в файле в котором указана размерность и сам массив 4 * 4, нужно считать эту матрицу, обработать ее и вывести...

Работа с библиотекой MPIR - C++
Всем привет. Начинаю осваивать С++, опыт нулевой... Хочу сделать програмку для перевода из двоичной системы счисления в десятичную, при...

Работа со стандартной библиотекой List.H - C++
Помогите подключить стандартную библиотеку шаблонов List.H (с++ 3.1 для дос) и создать объект для структуры. Брала рабочие примеры, но...

Работа со статической lib библиотекой - C++
Здравствуйте. Собрал в VS первую библиотеку. Скомпилировал. Появился файл .lib в папке debug. И я взял и подключил этот файл к своему...

Работа с библиотекой STL, контейнер map - C++
Ввожу с экрана имя и номер телефона несколько раз, но for_each почему-то выводит на экран только последнего введенного пользователя, а мне...

21
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
18.02.2010, 18:05 #2
Цитата Сообщение от GepardD Посмотреть сообщение
и кто обьяснит ошибкy Domain error?
В какой строке ошибка?
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
18.02.2010, 18:12 #3
printf("y=%d g=%d w=%d\n",y,g,w);
Мне больше вот это интересно.
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
18.02.2010, 18:19 #4
Цитата Сообщение от GepardD Посмотреть сообщение
остаток от деления f(x) на g(x)
Если я не ошибаюсь, оператор % определен только для целых операндов.
Можно попробовать так (не знаю, как там насчет стандартных функций):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
int main()
{
        setlocale(LC_ALL, "Russian");
        double x1=13.45, x2=2, result;
        int temp;
        temp=x1/x2;//Целая часть от деления
        result=x1-temp*x2;//Остаток
        cout << result << endl;
        system("pause");
        return 0;
}
Добавлено через 35 секунд
Ну и в функцию вынести, если нужно
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
18.02.2010, 18:25 #5
Время от времени при расчёте вылетает ошибка "sqrt: DOMAIN error" (то есть, говоря по русски - аргумент sqrt <= 0) и программа вываливается. ...

Добавлено через 34 секунды
Эта гуглем похожую проблему нашёл.
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
18.02.2010, 18:34 #6
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Время от времени при расчёте вылетает ошибка "sqrt: DOMAIN error" (то есть, говоря по русски - аргумент sqrt <= 0) и программа вываливается. ...
Странно... Корень только в строчке 8 берется. Причем от квадрата числа. Так что аргумент не может быть отрицательным. А sqrt(0) разве не высчитывается?
В принципе, можно (и нужно) заменить sqrt(pow(x, 2)) функцией fabs(x), т.к. корень от квадрата числа - это модуль этого числа. Одним махом упрощаем работу программы и избавляемся от ошибок округления
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
18.02.2010, 18:46 #7
w=y%g; //меня больше вот это напрягает: это не для плавающих точек.
0
GepardD
5 / 5 / 1
Регистрация: 23.10.2009
Сообщений: 63
18.02.2010, 18:54  [ТС] #8
опустим остаток деления сделаем деление функции на функцию и вывод. киньте плз работ. програму.

Добавлено через 16 секунд
w=f/g;
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
18.02.2010, 19:02 #9
Как остаток от деления сделать, я написал в посте №4
Замени sqrt(pow(x, 2)) функцией fabs(x)
И вывод вроде такой должен быть (я printf редко использую, если что, поправьте):
C++
1
printf("y=%f g=%f w=%f\n",y,g,w);
Сделай эти изменения, и будет тебе рабочая программа
0
GepardD
5 / 5 / 1
Регистрация: 23.10.2009
Сообщений: 63
18.02.2010, 19:12  [ТС] #10
дело не в том... он log(x) считать не хочет


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(void)
{          double x,y,g,w;
    printf ("Input x\n");
    scanf ("%f",&x);
    y=(log(x))/(1/cos(x)+pow(2.7,x));
    g=asin(x)+acos(x)+fabs(x);
    w=y/g;
    printf("y=%f g=%f w=%f",y,g,w);
    getch();
    return 0;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
18.02.2010, 19:15 #11
Цитата Сообщение от GepardD Посмотреть сообщение
scanf ("%f",&x);
C
1
scanf("%lf", &x);
0
GepardD
5 / 5 / 1
Регистрация: 23.10.2009
Сообщений: 63
18.02.2010, 19:17  [ТС] #12
Цитата Сообщение от easybudda Посмотреть сообщение
scanf("%lf", &x);
а так не считается asin & acos
0
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
18.02.2010, 19:18 #13
Вставь
printf("x=%f\n", x);
if (x <=0) {
...
return;
}
1
GepardD
5 / 5 / 1
Регистрация: 23.10.2009
Сообщений: 63
18.02.2010, 19:21  [ТС] #14
я благодарен за помощь но давайте не будем тыкать пальцем в небо. а заработает ли?
думаю не сложно открыть среду и проверить.
спс.
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
18.02.2010, 19:33 #15
Цитата Сообщение от GepardD Посмотреть сообщение
дело не в том... он log(x) считать не хочет
Описание ошибки в студию

Добавлено через 4 минуты
Day, +1

Цитата Сообщение от GepardD Посмотреть сообщение
я благодарен за помощь но давайте не будем тыкать пальцем в небо. а заработает ли?
думаю не сложно открыть среду и проверить.
спс.
Ты бы лучше спасибо сказал, Day все правильно говорит. У тебя функции вообще на какой области определены? Потому, что логарифм можно посчитать только для положительных чисел

Добавлено через 1 минуту
ЗЫ. Перед тем, как решать такие задачи, лучше бы построить математическую модель, чтобы потом не возникало ошибок
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2010, 19:33
Привет! Вот еще темы с ответами:

Работа с библиотекой miracl: тест Ферма на простоту - C++
начал разбираться с библиотекой miracl, дали задание написать реализацию теста Ферма на простоту, но возникают ошибки: error LNK2019:...

Работа с файлами в C# с исп. библиотек #include <stdio.h> #include <stdlib.h> #include <math.h> #include <io.h> - C++
В типизированном файле записаны названия городов и их численность. Увеличить численность каждого города на 5% (Количество жителей всегда...

Аргтансенс в Math - C++
Никак не могу добиться правильного значения значения atan(0,75) пробовал перевод в градусы и в радианы, получается все равно не то, что-то...

Не работает math.h - C++
Почему-то мнения функций этой библиотеки сильно расходятся с мнениями моего калькулятора. По крайней мере функции синуса косинуса и...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
18.02.2010, 19:33
Ответ Создать тему
Опции темы

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