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

The varriable is being used without being defined - C++

Войти
Регистрация
Восстановить пароль
 
nick55
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 15
09.09.2012, 23:57     The varriable is being used without being defined #1
The varriable 'i' is being used without being defined.
Где ошыбка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
 
int x,y,p,q,a,b,c,d;
double A,B,D,x1,x2,x3,y1,y2,y3,f,i;
cin>>a;
cin>>b;
cin>>c;
cin>>d;
f=3;
p=(-1/3)*((b/a)*(b/a))+(c/a);
q=(2/27)*((b/a)*(b/a)*(b/a))-(b*c/3*(a*a))+(d/a);
D=pow((p/3),3)+pow((p/2),2);
A=pow((-q/2)+sqrt(D),1/3);
B=pow((-q/2)-sqrt(D),1/3);
x1=(A+B)-(b/(3*a));
x2=((-1/2)*(a+b)+i*(sqrt(f)/2)*(a-b))-(b/(3*a));
x3=((-1/2)*(a+b)-i*(sqrt(f)/2)*(a-b))-(b/(3*a));
cout<<"x1:"<<x1<<"\n";
cout<<"x2:"<<x2<<"\n";
cout<<"x3:"<<x3<<"\n";
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
10.09.2012, 00:00     The varriable is being used without being defined #2
судя по всему здесь должен был быть цикл по i
nick55
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 15
10.09.2012, 00:06  [ТС]     The varriable is being used without being defined #3
Как именно это будет выглядеть? Я пока в циклах не разбираюсь.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.09.2012, 00:20     The varriable is being used without being defined #4
Очень похоже на решение кубического уравнения. И мне кажется, что через i автор записал мнимую единицу.
Более того. Это решения только для случая, когда дискриминант равен 0. Только тогда будут 2 комплексно сопряженных корня
nick55
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 15
10.09.2012, 00:23  [ТС]     The varriable is being used without being defined #5
Так и есть.Но я не знаю как "i" впихнуть.Другие случаи дискриминанта у меня уже есть.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
10.09.2012, 00:26     The varriable is being used without being defined #6
Цитата Сообщение от nick55 Посмотреть сообщение
The varriable 'i' is being used without being defined.
Где ошыбка?
вот и мне стало интересно: где ошЫбка? в какой строчке кода?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.09.2012, 00:31     The varriable is being used without being defined #7
Вы не можете перевести комплексное число (у которого есть и действительная, и мнимая часть) просто в действительное число. Это даже математически не получится. Храните ваше комплексное число в виде пары чисел.
Можете задать это как структуру, можете использовать массив на 2 элемента, можете использовать std:: pair или вовсе std::complex.
Самая понятная для вас, наверное, такая запись:
C++
1
2
3
4
x2_real = ((-1/2)*(a+b)-(b/(3*a);
x2_imaginary = (sqrt(f)/2)*(a-b);
x3_real = ((-1/2)*(a+b)-(b/(3*a);
x3_imaginary = -(sqrt(f)/2)*(a-b);
x3_real и x3_imaginary можно заново не вычислять
C++
1
2
x3_real = x2_real;
x3_imaginary = -x2_imaginary;
nick55
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 15
10.09.2012, 00:31  [ТС]     The varriable is being used without being defined #8
в 20 и 21.
я русский язык плохо знаю, так что извиняюсь
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.09.2012, 02:30     The varriable is being used without being defined #9
Цитата Сообщение от nick55 Посмотреть сообщение
The varriable 'i' is being used without being defined
Значение переменной i не определено, а в 20 и 21 строках используется.
nick55
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 15
10.09.2012, 23:28  [ТС]     The varriable is being used without being defined #10
блин.теперь при выполнении выводит B=-1.#IND и X1=-1.#IND
Подскажите,как вывести нормальные числа?

Добавлено через 28 минут
все Х тепер виводит как -1.#IND
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.09.2012, 23:33     The varriable is being used without being defined #11
Кидайте код после изменений
nick55
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 15
10.09.2012, 23:34  [ТС]     The varriable is being used without being defined #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[CPP]#include <iostream>
#include <math.h>
#include <complex>
using namespace std;
void main()
{
float x,y,a,b,c,d,q,g,h,p,x1,x2_real,x2_imaginary,x3_real,x3_imaginary,y1,y2,y3,f;
double j,k,A,B,D;
cin>>a;
cin>>b;
cin>>c;
cin>>d;;
f=3;
p=((b/a)*(b/a))/(-3)+(c/a);
cout<<"p:"<<p<<"\n";
q=((2*((b/a)*(b/a)*(b/a)))/27)-(b*c/3*(a*a))+(d/a);
cout<<"q:"<<q<<"\n";
g=p/3;
h=q/2;
D=(g*g*g)+(h*h);
cout<<"D:"<<D<<"\n";
j=(-q/2)+(sqrt(D));
A=pow(j,1./3.);
cout<<"A:"<<A<<"\n";
k=((-q/2)-sqrt(D));
cout<<"k:"<<k<<"\n";
B=pow(k,1./3.);
cout<<"B:"<<B<<"\n";
x1=(A+B)-(b/(3*a));
x2_real = ((A+B)/(-2)-(b/(3*a)));
x2_imaginary = (sqrt(f)/2)*(A-B);
x3_real = ((A+B)/(-2)-(b/(3*a)));
x3_imaginary = -(sqrt(f)/2)*(A-B);
cout<<"x1:"<<x1<<"\n";
cout<<"x2:"<<x2_real<<" "<<x2_imaginary<<"\n";
cout<<"x3:"<<x3_real<<" "<<x3_imaginary<<"\n";
}
[/CPP]
HighPredator
 Аватар для HighPredator
5385 / 1768 / 323
Регистрация: 10.12.2010
Сообщений: 5,233
Записей в блоге: 3
10.09.2012, 23:35     The varriable is being used without being defined #13
Цитата Сообщение от nick55 Посмотреть сообщение
Где ошыбка?
А вы где в переменную i значение какое-либо записываете?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.09.2012, 23:41     The varriable is being used without being defined #14
А какие входные данные пробуете вводить?
nick55
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 15
10.09.2012, 23:42  [ТС]     The varriable is being used without being defined #15
1 3 4 5
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
11.09.2012, 00:16     The varriable is being used without being defined #16
функция pow не может возводить отрицательные числа в степень меньше единицы.
Как вариант, можете писать так
C++
1
B=-pow(abs(k),1./3.);//if(k < 0)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2012, 00:28     The varriable is being used without being defined
Еще ссылки по теме:

Как отслеживать ошибки "already defined in ." C++
C++ Шаблонный класс. Ошибка : aggregate 'Box<info*> ob' has incomplete type and cannot be defined
Body has already been defined for function C++
C++ Static function 'void leave(char *)' declared but not defined
Ошибка Do not compile Asio library source with BOOST_ASIO_HEADER_ONLY defined C++

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

Или воспользуйтесь поиском по форуму:
nick55
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 15
11.09.2012, 00:28  [ТС]     The varriable is being used without being defined #17
Вот спасибо теперь все решается!!.
Yandex
Объявления
11.09.2012, 00:28     The varriable is being used without being defined
Ответ Создать тему
Опции темы

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