Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
ВнизОбьясните!!!Что-то непонятное как считает Delphi? Найти похожие ветки
← →
jiurafgdfg (2006-04-20 15:41) [0]Написал итерационную программу!
Есть два выражения:
usop.C[usop.CtypKolvo,i]:=usop.C2kCw[usop.CtypPitania-1,i]*usop.PitaniaToMejc*usop.cf[i]/(usop.OtwalaToMejc*(usop.CkCp[usop.CtypPitania-1,i]*cymma+usop.C2kCw[usop.CtypPitania-1,i]*usop.OtboraToMejc/usop.OtwalaToMejc));
и
usop.C[usop.CtypKolvo,i]:=usop.C2kCw[usop.CtypPitania-1,i]*(usop.PitaniaToMejc*usop.cf[i])/(usop.OtwalaToMejc*(usop.CkCp[usop.CtypPitania-1,i]*cymma+usop.C2kCw[usop.CtypPitania-1,i]*usop.OtboraToMejc/usop.OtwalaToMejc));
Как видно, они полность идентичны, за исключением того, что во втором есть скобки. Но так как все члены перемножаются это не должно играть роли
Запуская программу с первым выражением получается 1283 итерации, а со вторым 756 итераций! Выражения стоят подряд и я ничего не меняю кроме как то второе то первое зеаключаю в {} - чтоб оно не выолнялось!
обе переменные
usop.C[usop.CtypKolvo,i] - определены как Extended!!!
Как такое может быть???
← →
Джо © (2006-04-20 15:43) [1]В приведенном коде нет никаких итераций.
← →
jiurasdfsdfs (2006-04-20 15:44) [2]ДА они здесь и не нужны - программа слишком большая....Неточность кроется только в этих 2-х строках! Остальное не меняется!
← →
Джо © (2006-04-20 15:49) [3]> [2] jiurasdfsdfs (20.04.06 15:44)
> ДА они здесь и не нужны - программа слишком большая....
Повторяю, отвечать вопрос о кол-ве итераций, не видя никаких итераций бессмысленно.
П.С. Расставь скобки по-человечески. Твой код читать невозможно, не думай, что охота кому-то в нём ковыряться.
И прочитай раздел справки Operator precedents, там как раз и описан порядок выполнения операций в Object Pascal.
← →
Рамиль © (2006-04-20 16:39) [4]Могу предположить, что usop.PitaniaToMejc и usop.cf[i] числа одного порядка, а usop.C2kCw[usop.CtypPitania-1,i] >> или << чем они. Хотя не уверен. Результат то одинаковый получается, надеюсь?
← →
Ega23 © (2006-04-20 17:29) [5]Ерунда какая-то. Я вот тоже хардкорный код знаю:
#include <stdio.h>
main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?
main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t,
"@n"+,#"/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#\
;#q#n+,/+k#;*+,/"r :"d*"3,}{w+K w"K:"+}e#";dq#"l \
q#"+d"K#!/+k#;q#"r}eKK#}w"r}eKK{nl]"/#;#q#n"){)#}w"){){nl]"/+#n";d}rw" i;# \
){nl]!/n{n#"; r{#w"r nc{nl]"/#{l,+"K {rw" iK{;[{nl]"/w#q#n"wk nw" \
iwk{KK{nl]!/w{%"l##w#" i; :{nl]"/*{q#"ld;r"}{nlwb!/*de}"c \
;;{nl"-{}rw]"/+,}##"*}#nc,",#nw]"/+kd"+e}+;#"rdq#w! nr"/ ") }+}{rl#"{n" ")# \
}"+}##(!!/")
:t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=="/")+t,_,a+1)
:0<t?main(2,2,"%s"):*a=="/"||main(0,main(-61,*a,
"!ek;dc i@bK"(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
Прикинь, в таком ошибку искать!
← →
Gero © (2006-04-20 17:50) [6]> Как такое может быть???
Продолжай писать в таком стиле, еще и не такое будет.
← →
Desdechado © (2006-04-20 18:32) [7]есть такая программистская мудрость - от перестановки слагаемых сумма МЕНЯЕТСЯ
а у тебя перестановка порядка умножения, что еще хуже
← →
Джо © (2006-04-20 18:37) [8]> [5] Ega23 © (20.04.06 17:29)
> Ерунда какая-то. Я вот тоже хардкорный код знаю:
Не стыдно такое постить? Это ж из категории XXX... 8-)
← →
Pavia © (2006-04-20 22:33) [9]Кажись знаю ответ.
Нетак давно в Delphi7 был обнаружил глюк одна и таже строчки при равных входных условиях считала по разному. глюк не распростроняется на другии версии. Ошибка в иницилизации сопроцесоора(fpu). Толи забыли выставить значение толи в циферке ошиблись. а при вызови messagebox виндоус выставлял другое число.
лечится
Set8087CW()
Если не выставить верное значение
procedure TForm1.FormCreate(Sender: TObject);
var a,b,c:Extended;
begin
b:=0.178176194206200011;
c:=30005788672;
ShowMessage(FloatToStr(b*cos(pi*c)*sin(pi*c)));
ShowMessage(FloatToStr(b*cos(pi*c)*sin(pi*c)));
end;
← →
Gydvin © (2006-04-21 06:56) [10]
> Pavia © (20.04.06 22:33) [9]
Да нет вроде одинаковы..
D7
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c