sky_hi
|
?
|
|
|
|
Рег.: 14.11.2006
|
Сообщений: 70
|
|
Рейтинг: 75
|
|
Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
22.02.2007 18:13
|
|
|
Please, help! Может я, конечно, совсем тормоз, но проблема никак не хочет решаться. Если совсем упростить, то проблема следующая:
double a,b,c; a=1.0; /*далее некоторое действие, вроде */ b=2*a/c;
после этого a=0 !!!! Почему так получается? (Может ли это быть связано с тем, что a - элемент массива?) (программирую в C++ Visual)
|
|
_Ss_
|
|
|
|
|
Рег.: 21.11.2003
|
Сообщений: 4145
|
|
Рейтинг: 4662
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: sky_hi]
22.02.2007 18:19
|
|
|
Может, b = 2.0 * a / c Правда на a это не может повлиять
|
Если сказанное мной может быть понято двояко, и первый вариант тебя расстраивает, я имел ввиду второй |
|
sky_hi
|
?
|
|
|
|
Рег.: 14.11.2006
|
Сообщений: 70
|
|
Рейтинг: 75
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: _Ss_]
22.02.2007 18:27
|
|
|
Неа. Это выражение - сильное упрощение того, что в проге на самом деле, но там все переменные типа double.
|
|
Xanderus
|
экстеоретик
|
|
|
|
Рег.: 25.04.2006
|
Сообщений: 1365
|
Из: Уже не в В
|
Рейтинг: 370
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: sky_hi]
22.02.2007 18:33
|
|
|
В ответ на:
double a,b,c; a=1.0;
В ответ на:
(Может ли это быть связано с тем, что a - элемент массива?)
Так элемент или не элемент? Приведи конкретный код.
|
|
sky_hi
|
?
|
|
|
|
Рег.: 14.11.2006
|
Сообщений: 70
|
|
Рейтинг: 75
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: Xanderus]
22.02.2007 18:41
|
|
|
valarray<double> Gauss(valarray<double>* A, valarray<double> B, int n) { valarray<double>* a=A; valarray<double>* aa=a; valarray<double> b(B); valarray<double> x(0.0,n); int i,j,k; for(k=0;k<n-1;k++) { for(i=k+1;i<n;i++) { for(j=0;j<n;j++) { // здесь а[i][k]=1 aa[i][j]=a[i][j]-a[j][k]*a[i][k]/a[k][k]; // а уже здесь а[i][k]=0 } .....
|
|
nafig_batat
|
looking for you
|
|
|
|
Рег.: 25.10.2005
|
Сообщений: 11580
|
Из: улица Ленина
|
Рейтинг: 8535
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: sky_hi]
22.02.2007 18:43
|
|
|
ужос!магия!
|
слава роботам!!! |
|
horror
|
гонобобель
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 3784
|
|
Рейтинг: 2137
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: sky_hi]
22.02.2007 18:54
|
|
|
надо использовать временный вектор. у тебя тройной цикл и два индекса у массива. соответственно индексы повторяются.
|
|
Xanderus
|
экстеоретик
|
|
|
|
Рег.: 25.04.2006
|
Сообщений: 1365
|
Из: Уже не в В
|
Рейтинг: 370
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: horror]
22.02.2007 19:04
|
|
|
+1 Кстати, какой смысл использовать два указателя на один и тот же массив? Не говоря уже о том, что массив valarray-ев - солидная подстава.
|
|
halyavin
|
кфмн
|
|
|
|
Рег.: 14.12.2005
|
Сообщений: 916
|
Из: Moscow
|
Рейтинг: 622
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: sky_hi]
22.02.2007 20:13
|
|
|
Нормальные люди пишут перед циклом по j
code: double coeff=a[i][k]/a[k][k];
Не говоря уже о том, что вместо a[j][k] должно быть a[k][j].
|
|
Xanderus
|
экстеоретик
|
|
|
|
Рег.: 25.04.2006
|
Сообщений: 1365
|
Из: Уже не в В
|
Рейтинг: 370
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: halyavin]
22.02.2007 20:16
|
|
|
А смысл? Оптимизатор это сам вытащит.
|
|
horror
|
гонобобель
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 3784
|
|
Рейтинг: 2137
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: Xanderus]
22.02.2007 20:19
|
|
|
да кстати проблема, описанная в первом посте просто жесть. тут нужны были бы мега-телепатические возможности.
|
|
halyavin
|
кфмн
|
|
|
|
Рег.: 14.12.2005
|
Сообщений: 916
|
Из: Moscow
|
Рейтинг: 622
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: Xanderus]
22.02.2007 20:23
|
|
|
Каким образом он это сам вытащит, если при этом вытаскивании программа из неправильной становится правильной (если деления на нуль не произойдет по дороге)?
|
|
Rad
|
delinquent guy
|
|
|
|
Рег.: 06.09.2005
|
Сообщений: 17291
|
Из: here and there
|
Рейтинг: 2232
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: Xanderus]
23.02.2007 01:00
|
|
|
В ответ на:
А смысл? Оптимизатор это сам вытащит.
это повод не думать?
|
|
|
botWi
|
|
|
|
|
Рег.: 22.11.2003
|
Сообщений: 10160
|
Из: Moscow
|
Рейтинг: 1764
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: sky_hi]
23.02.2007 01:02
|
|
|
у тебя a и aa это одно и тоже ты меняешь aa, значит a тоже меняется
|
Хватит дрочить на рейтинги |
|
Orient
|
|
|
|
|
Рег.: 18.09.2004
|
Сообщений: 924
|
Из: Singapore
|
Рейтинг: 133
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: Rad]
23.02.2007 01:27
|
|
|
Это повод думать о другом.
|
|
_Ss_
|
|
|
|
|
Рег.: 21.11.2003
|
Сообщений: 4145
|
|
Рейтинг: 4662
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: sky_hi]
23.02.2007 01:54
|
|
|
При j = k a[i][j] = a[i][k] обнуляется. Цикл надо сделать от k + 1
|
Если сказанное мной может быть понято двояко, и первый вариант тебя расстраивает, я имел ввиду второй |
|
sky_hi
|
?
|
|
|
|
Рег.: 14.11.2006
|
Сообщений: 70
|
|
Рейтинг: 75
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: _Ss_]
26.02.2007 13:13
|
|
|
Всем спасибо! Видимо, действительно дело в том, что aa==a. Проблема решена введением еще одной переменной
|
|
sky_hi
|
?
|
|
|
|
Рег.: 14.11.2006
|
Сообщений: 70
|
|
Рейтинг: 75
|
|
Re: Help! (не пойму, в чем ошибка - переменная обнуляется сама!)
[re: horror]
26.02.2007 13:18
|
|
|
Ну так массив aa и был введен как временный, только оказалось, что это точная копия массива a (что поделаешь - я не профи в программировании )
|
|