![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Опять Мемо!!! [D7, XP]
inkvizitor © (2007-02-01 13:24:00)Всем доброго времени суток!
procedure TForm1.Button2Click(Sender: TObject);
var m,i,j,P,q,pp,a,b:longint;
W_a_b,delta_T,Ti:real;
Tmp,StrReal:ansistring;
X:array of TLine;
begin
m:=memo1.Lines.Count;
if m=0 then
begin
showmessage('нет данных!!!');
exit;
end;
{разделение строки на 2 столбца Time и Value здесь проблем нет
(код не мой)}
for i:=0 to Memo1.Lines.Count-1 do
begin
Tmp:=Trim(Memo1.Lines[i]);
P:=Pos(' ',Tmp)-1; if P=-1 then P:=Pos(#9,Tmp)-1;
StrReal:=Copy(Tmp,1,P); Delete(Tmp,1,P); Tmp:=Trim(Tmp);
Tmp:=GetNormal(Tmp); StrReal:=GetNormal(StrReal);
P:=Length(X); SetLength(X,P+1);
X[P].Time:=StrToFloat(StrReal); X[P].Value:=StrToFloat(Tmp);
end;
{здесь проблемы (мой код )}
j:=1;
a:=2;
pp:=trunc(ln(m)/ln(2));
W_a_b:=0;
for a:= 2 to trunc(exp((pp)*ln(2))) do
begin
for b:=0 to m-1 do
begin
delta_T:=X[2].time-X[1].time;
Ti:=(b+1-1)*delta_T;
W_a_b:=W_a_b+sqrt(delta_T/a)*X[b].value*(1-Ti*Ti)*exp(-Ti*Ti/2)*((Ti-b)/a)*delta_T;
end;
memo2.Lines.Add(floattostr(j)+#9+floattostr(W_a_b));
inc(j);
end;
end;
проблема 1надо чтобы 1-й цикл суммировался не подряд , а
a:=2,4,8,16,32,64,128,256,... вообщем был кратным, а у меня суммирует подряд как это существить?
пробовал через inc( ), но не получается.
проблема 2результат надо вывести в мемо2 след. образом:
b a=2 a=4 a=8 a=16 a=32 ....
1 *** *** *** *** *** ...
2 *** *** *** *** *** ....
3 *** *** *** *** *** ....
.. .... ..... .... ..... ..... ....
вообщем в табличном виде. ОЧ. надо.SOS!!!
Anatoly Podgoretsky (2007-02-02 08:37:00) [1]> Elen (02.02.2007 08:06:19) [19]
Оптимисты говоряет, что бывает и длиннее.
Elen (2007-02-02 08:06:00) [2]
> Anatoly Podgoretsky
Опять конец на повестке дня? Ну все это конец! :)
Anatoly Podgoretsky (2007-02-01 19:41:00) [3]> Elen (01.02.2007 16:15:15) [15]
> Я знаю сколько знаю.
Продолжи до конца.
Anatoly Podgoretsky (2007-02-01 19:40:00) [4]> inkvizitor (01.02.2007 16:07:14) [14]
Подожди, подожди, если довольствуешься, то в чем вопрос.
Anatoly Podgoretsky (2007-02-01 19:39:00) [5]> Elen (01.02.2007 13:35:02) [2]
Не можно, а нужно.
Elen (2007-02-01 16:15:00) [6]
> ОК?
У меня нет мыла и доступа к нему нет. Мое мнение тебе лучше подумать о том как бы начать сначала, по-своему и попроще...
> Сергей М.
Не прикалывайся. Я знаю сколько знаю. И еще я знаю что любую задачу можно максимально упростить, тем более данную.
inkvizitor (2007-02-01 16:07:00) [7]
> Elen © (01.02.07 15:52) [10]
возможно в топку, но довольствуюсь тем что сотворил ,хотя не спорю можно и проще. но я уже долго бьюсь над этим уже крыша едет!!!
Задачу прям таки в двух словах не объяснишь если не против напиши письмо на ящик мне и я тебе вышлю подробное задание.(заоодно и узнаешь что такое вейвлет АНАЛИЗ). ОК?
Сергей М. (2007-02-01 16:06:00) [8]
> Elen
Я сожалею)
А ведь барышня ты далеко не глупая) .. imho
Elen (2007-02-01 16:00:00) [9]
> Вляпалась таки)
Куда?
> А ведь знамение было !!)
Где?
Сергей М. (2007-02-01 15:56:00) [10]
> Elen © (01.02.07 15:52) [10]
>
>
Вляпалась таки)
А ведь знамение было !!)
Elen (2007-02-01 15:52:00) [11]
> inkvizitor
Что-то мне подсказывает что тебе код в [0] надо в топку. Помоему можно переделать в попроще. Если конечно задачу объясниш поподробнее ;)
inkvizitor (2007-02-01 15:42:00) [12]
> r:=1; while (1 shl r)<100 do begin ListBox1.Items.Append(inttostr(1
> shl r)); inc(r); end;
к сожалению не работает я вставлял вместо цикла с а
и вывод и в мемо и в листбокс результат ноль. не пойму???
> вместо 2 поставь "2 в степени"
inc(a,trunc(exp(j)*ln(2))); см. код.(j увеличивается на 1. на 2 - 2 в степени .., а - увеличение величины а).
Desdechado (2007-02-01 15:17:00) [13]> типа inc(i,2) нет, там шаг 2 и все а мне надо 2 в степени ... чтобы 2,4,8,16...
вместо 2 поставь "2 в степени"
Elen (2007-02-01 14:58:00) [14]
> а мне надо 2 в степени ... чтобы 2,4,8,16...
Ну :r:=1; while (1 shl r)<100 do begin ListBox1.Items.Append(inttostr(1 shl r)); inc(r); end;
inkvizitor (2007-02-01 14:44:00) [15]
> Elen © (01.02.07 14:29) [5]
типа inc(i,2) нет, там шаг 2 и все а мне надо 2 в степени ... чтобы 2,4,8,16...
> для меня, особо непонятливой
это анализ временных рядов (например фурье анализ наверно слышала ?)
> например, проктологический)
не знаю этим не страдаю поэтому не в курсе скока стоит анализ.
Elen (2007-02-01 14:29:00) [16]
> не знаю но я ставил while
А приращение тоже ставил? типаwhile i<100 do begin ..... inc(i,2); end;где 2 - шаг
Кстати если не трудно для меня, особо непонятливой, что за вейвлет анализ такой?
Сергей М. (2007-02-01 14:26:00) [17]
> Задача посчитать вейвлет анализ (физика)
Это тебе будет стоить примерно столько же, сколько и посчитать любой другой анализ, например, проктологический)
inkvizitor (2007-02-01 14:19:00) [18]
> for a:= 2 to trunc(exp((pp)*ln(2))) do
вот цикл а
> for i:=0 to Memo1.Lines.Count-1 do
это я рарезал строку на два столбца и все.
> Чтоб цикл имел шаг можно использовать while.
не знаю но я ставил while вместо for a:=2 to .. но прога считает что то без остановки.
Задача посчитать вейвлет анализ (физика)
загнать текстов. файл(*.txt) из двух столбцов и посчитать по формуле.
результат: например 100 строк в мемо1 - надо посчитать по формуле :
надо брать a = 2,4,8,16,32,64. 128 не подходит т.к. 128 >100
b = 1...100
результат
> b a=2 a=4 a=8 a=16 a=32 ....
> 1 *** *** *** *** *** ...
> 2 *** *** *** *** *** ....
> 3 *** *** *** *** *** ....
> .. .... ..... .... ..... ..... ....
Elen (2007-02-01 13:35:00) [19]
> inkvizitor
Чтоб цикл имел шаг можно использовать while.
А какая задача то?
Desdechado (2007-02-01 13:26:00) [20]> чтобы 1-й цикл суммировался не подряд , а a:=2,4,8,16,32,64,128,256,...
что-то я там A не вижу в принципе:
for i:=0 to Memo1.Lines.Count-1 do