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

Проверьте листинг - C++

Восстановить пароль Регистрация
 
nomaster
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 14
05.05.2011, 21:05     Проверьте листинг #1
фукция y=f(x)
при x<-3 y=cos(x)/(x+10)
при -3<=x<4 y=e^(0,1*x)
при 4<=x<6 y=lg(x)
при x>=6 y=sin^2(x)


Пожалуйста скажите что у меня не так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    setlocale (LC_ALL, "Russian");
    double x, y;
    const double e=2.71828;
    cout<<"Введите x: "; cin>>x;
    y=0;
    y=(x<-3) ? cos(x)/(x+10) : y;
    y=(x>=-3) ? e^(0.1*x) : y;
    y=(x>=4) ? lg(x) : y;
    y=(x>=6) ? sin^2(x) : y;
    cout<<"y = "<<y<<endl;
    system ("pause");
    return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Subgrando
40 / 40 / 3
Регистрация: 28.01.2011
Сообщений: 175
05.05.2011, 23:51     Проверьте листинг #2
Строки 12 и 14, наверное?
I_like_C++
14 / 14 / 1
Регистрация: 15.03.2010
Сообщений: 126
06.05.2011, 00:11     Проверьте листинг #3
12:
C++
1
 y=(x>=-3) ? exp(0.1*x) : y;
14:
C++
1
y=(x>=6) ? pow(sin(x),2.0) : y;
nomaster
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 14
06.05.2011, 16:03  [ТС]     Проверьте листинг #4
Цитата Сообщение от I_like_C++ Посмотреть сообщение
12:
C++
1
 y=(x>=-3) ? exp(0.1*x) : y;
14:
C++
1
y=(x>=6) ? pow(sin(x),2.0) : y;
Заменил эти две строчки и всё раво выдаёт ошибку и не робит

1>c:\users\лена\desktop\ну\лаб3\лаб3\лаб3.cpp(12) : error C2064: term does not evaluate to a function taking 1 arguments
1>c:\users\лена\desktop\ну\лаб3\лаб3\лаб3.cpp(13) : error C3861: 'lg': identifier not found
1>Build log was saved at "file://c:\Users\Лена\Desktop\НУ\лаб3\лаб3\Debug\BuildLog.htm"
1>лаб3 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Veyron
 Аватар для Veyron
104 / 104 / 4
Регистрация: 02.06.2009
Сообщений: 579
06.05.2011, 16:05     Проверьте листинг #5
nomaster, В С++ крышечка - это побитовое XOR, а не возведение в степень. Функцию возведения надо реализовать ручками.

ай¸вы же подключили смат. тогда не надо.

а ошибка потому, что функции десятичного логарифма (или двоичного - это как дано) нету в библиотеке.
I_like_C++
14 / 14 / 1
Регистрация: 15.03.2010
Сообщений: 126
06.05.2011, 16:07     Проверьте листинг #6
C++
1
y=(x>=4) ? log(x) : y;
если тебе нужен десятичный логрифм

Добавлено через 2 минуты
C++
1
y=(x>=6) ? sin(x)*sin(x) : y;
nomaster
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 14
06.05.2011, 16:40  [ТС]     Проверьте листинг #7
всё равно осталась ошибка
error C2064: term does not evaluate to a function taking 1 arguments
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
06.05.2011, 16:43     Проверьте листинг #8
Цитата Сообщение от nomaster Посмотреть сообщение
всё равно осталась ошибка
error C2064: term does not evaluate to a function taking 1 arguments
Дык приведи окончательный текст программы и полный текст ошибки - в каком операторе-то?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2011, 17:41     Проверьте листинг
Еще ссылки по теме:

C++ Напишите блок схему и листинг программы, которая выдает не повторяющуюся последовательность из цифр 0 и 1
Перепишите листинг 4.4, применив класс C++ string вместо массивов char C++
C++ Сохранить листинг программы в файл, удалив из него все комментарии

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

Или воспользуйтесь поиском по форуму:
nomaster
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 14
06.05.2011, 17:41  [ТС]     Проверьте листинг #9
Конечный код программы и ошибка!!!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    setlocale (LC_ALL, "Russian");
    double x, y;
    const double exp=2.71828;
    cout<<"Введите x: "; cin>>x;
    y=0;
    y=(x<-3) ? cos(x)/(x+10) : y;
    y=(x>=-3) ? exp(0.1*x) : y;
    y=(x>=4) ? log(x) : y;
    y=(x>=6) ? sin(x)*sin(x) : y;
    cout<<"y = "<<y<<endl;
    system ("pause");
    return 0;
}
1>------ Build started: Project: лаб3, Configuration: Debug Win32 ------
1>Compiling...
1>лаб3.cpp
1>c:\users\лена\desktop\ну\лаб3\лаб3\лаб3.cpp(12) : error C2064: term does not evaluate to a function taking 1 arguments
1>Build log was saved at "file://c:\Users\Лена\Desktop\НУ\лаб3\лаб3\Debug\BuildLog.htm"
1>лаб3 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Добавлено через 46 минут
Спасибо большое! разобрался, проблема была в степенях!
Yandex
Объявления
06.05.2011, 17:41     Проверьте листинг
Ответ Создать тему
Опции темы

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