Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.snto-msu.net/showflat.php?Number=5823567&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 05:28:32 2016
Кодировка: Windows-1251
Help! (не пойму, в чем ошибка - переменная обнуляется сама!) - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
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 (что поделаешь - я не профи в программировании )

Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 1 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в