发新话题
打印

关于循环、判断等控制语句作业之一

在这之前我在两台电脑上都试了都是直线的,结果现在倒对了?
见鬼?

TOP

感谢感谢,我又学会一个求任意中间天数平均线的方法了。

知识在不断的积累,水平在不断的提高!

TOP

引用:
老实和尚 于 2004-12-27 10:47 PM 写道:
在这之前我在两台电脑上都试了都是直线的,结果现在倒对了?
见鬼?
哈哈哈,和尚真是太可爱啦!赶快烧香免的见鬼了!

TOP

引用:
老实和尚 于 2004-12-27 10:50 PM 写道:
感谢感谢,我又学会一个求任意中间天数平均线的方法了。

知识在不断的积累,水平在不断的提高!
和尚恭喜你呀学会了
我明天也要来好好学习一下。

TOP

再问,这样写是不是还是比较笨?
复制内容到剪贴板
代码:
fc:=close;
for i1=50 to datacount do begin
  s1:=0;
  for j1=2 to 50 do s1:=s1+fc[i1-j1];//循环叠加 49 个 fc 值
  ma3[i1]:s1/49;
  end;

for i2=25 to datacount do begin
  s2:=0;
  for j2=5 to 25 do s2:=s2+fc[i2-j2];//循环叠加80 个 fc 值
  ma4[i2]:s2/19;
  end;
如果我再加一些那不还是笨?
象一般ma(c,30); ma(c,40); ma(c,60); ma(c,90); 这样多方便?

TOP

引用:
股市骑兵00 于 2004-12-27 10:59 PM 写道:
和尚恭喜你呀学会了
我明天也要来好好学习一下。
共同学习,共同进步!

TOP

明天继续搞!发觉这个例子很有意思,能学到不少

TOP

呵呵,这只是循环的一种运用

和尚再试试,用参数来计算任意周期的平均
也就是你上面的2次循环(i1,i2),这样只需要调整参数即可计算不同的值

TOP

恭喜你呀学会了

TOP

引用:
hx817 于 2004-12-27 11:22 PM 写道:
呵呵,这只是循环的一种运用

和尚再试试,用参数来计算任意周期的平均
也就是你上面的2次循环(i1,i2),这样只需要调整参数即可计算不同的值
我知道,你的意思是说通过上面的参数1-4这里来调整i1,i2,那个很简单的,我会,但是我的本意还不是这个,我的意思是说还是要通过循环嵌套来实现,这样的话公式就很精练了,否则按上面的我觉得还是重复运算很多的。

TOP

引用:
lhl311 于 2004-12-28 08:52 AM 写道:
恭喜你呀学会了
谢谢啊,大家一起来学,这样进步快些。

TOP

当然,你可以用判断语句来让大的循环只运行一次,比如
复制内容到剪贴板
代码:
fc:=close;
for i1=1 to datacount do begin
  if i1>=50 then begin
    s1:=0;
    for j1=2 to 50 do s1:=s1+fc[i1-j1];//循环叠加 49 个 fc 值
    ma3[i1]:s1/49;
    end;
  if i1>=25 then begin
    s2:=0;
    for j2=5 to 25 do s2:=s2+fc[i1-j2];//循环叠加 19 个 fc 值
    ma4[i1]:s2/19;
    end;
  end;

TOP

引用:
老实和尚 于 2004-12-28 10:09 AM 写道:
否则按上面的我觉得还是重复运算很多的。
不错!理解到这点,深入多了

TOP

引用:
hx817 于 2004-12-28 12:44 PM 写道:
当然,你可以用判断语句来让大的循环只运行一次,比如
[code]
fc:=close;
for i1=1 to datacount do begin
  if i1>=50 then begin
    s1:=0;
    for j1=2 to 50 do s1:=s1+fc[i1-j1];//循环叠加 49 个 ...
OK,就是要这个,这个才是我的本意

TOP

引用:
南客 于 2004-12-28 12:56 PM 写道:
不错!理解到这点,深入多了
这是在学习过程的理解嘛,不断的深入才有进步:)

TOP

引用:
hx817 于 2004-12-28 12:44 PM 写道:
当然,你可以用判断语句来让大的循环只运行一次,比如
[code]
fc:=close;
for i1=1 to datacount do begin
  if i1>=50 then begin
    s1:=0;
    for j1=2 to 50 do s1:=s1+fc[i1-j1];//循环叠加 49 个 ...
好象没有
if  then elseif这个函数吧,假如有,那么会更加简单的

TOP

引用:
老实和尚 于 2004-12-28 03:29 PM 写道:
好象没有
if  then elseif这个函数吧,假如有,那么会更加简单的
和尚if  then语句有的呀!楼顶南客老师的学习贴看看啊!你看我下面的。
嘿嘿,俺也来学习了。
HX817老师请帮我看看:
复制内容到剪贴板
代码:
{fv:=v;ma2:=0*c;
x:=SETLBOUND(ma2,2);
for i=datacount downto 2 do {i终点已经是2了,干吗还用SETLBOUND来控制呢?}
ma2[i]:(fv[i-1]+fv[i])/2;
Fc:=close;}

{ll:=l;x:=ll[1];
For i=1 to datacount do
if x>=ll[i] then   
x:ll[i];{用这种解法怎么出来是单值?把X变成序列变量怎么写?}
For i=2 to datacount do
LL[I]:MIN(LL[I],LL[I-1]);}

TOP

引用:
老实和尚 于 2004-12-28 15:29 写道:
好象没有
if  then elseif这个函数吧,假如有,那么会更加简单的
试试爬台阶
复制内容到剪贴板
代码:
fc:=0*c;
for i=1 to DATACOUNT do begin
if i<25 then fc[i]:=1 else if i<50 then fc[i]:=2 else if i<100 then fc[i]:=3 else fc[i]:=4;;
end;
fc;

TOP

引用:
股市骑兵00 于 2004-12-28 19:24 写道:
和尚if  then语句有的呀!楼顶南客老师的学习贴看看啊!你看我下面的。
嘿嘿,俺也来学习了。
HX817老师请帮我看看:
1、去掉 x:=SETLBOUND(ma2,2); 看看输出是什么结果就知道了

2、因为前面你定义了 x: 为单值

TOP

引用:
股市骑兵00 于 2004-12-28 07:24 PM 写道:
和尚if  then语句有的呀!楼顶南客老师的学习贴看看啊!你看我下面的。
嘿嘿,俺也来学习了。
HX817老师请帮我看看:

[code]
{fv:=v;ma2:=0*c;
x:=SETLBOUND(ma2,2);
for i=datacount downto 2 do {i终点已 ...
看你好马虎啊,我说的是

if......then
.....
.elseif

这个所有的语言都有的函数

TOP

引用:
hx817 于 2004-12-28 08:36 PM 写道:
试试爬台阶
复制内容到剪贴板
代码:
fc:=0*c;
for i=1 to DATACOUNT do begin
if i<25 then fc[i]:=1 else if i<50 then fc[i]:=2 else if i<100 then fc[i]:=3 else fc[i]:=4;;
end;
fc;
对,我查了飞狐帮助里面没有 else if呢,所以有此一问了,有了就方便了
这样多少个循环都不怕了

TOP

所属类别: 控制语句  参数数量: 0

IF条件语句
语法:IF cond THEN expr1 ELSE expr2
当满足 cond 条件的时候,执行语句 expr1,否则执行 expr2 语句

TOP

引用:
hx817 于 2004-12-28 09:00 PM 写道:
1、去掉 x:=SETLBOUND(ma2,2); 看看输出是什么结果就知道了

2、因为前面你定义了 x: 为单值
我明白了,就是2怎么定义为序列变量请老师举个例子。帮我改一下,谢谢!

TOP

引用:
老实和尚 于 2004-12-28 09:14 PM 写道:
对,我查了飞狐帮助里面没有 else if呢,所以有此一问了,有了就方便了
这样多少个循环都不怕了
哇,和尚厉害啊!多少个循环你都不怕了,电脑要怕呀!算的很慢了哦!:p

TOP

发新话题