HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0526
Sado【手直しお願いします】limitloop関数、周る数値、繰り返す数値、…4解決


Sado

リンク

2016/5/26(Thu) 02:34:21|NO.75591

算数に苦しめられること30分、何とかlimitloop関数を作ることができましたが、少し心配です。
また、絶対値を使わなくても出来そうな気がしますが、コレ以上は頭がこんがらがってしまいます。

#defcfunc limitloop int p1,int min,int max d=abs(max-min) if p1<min :in=max-abs(p1-min)\d if min<=p1 & p1<=max :in=p1 if max<p1 :in=min+abs(p1-max)\d return in
実数の場合も、全く同じ式でいいのでしょうか??
limitloopfみたいな



この記事に返信する


科学太郎

リンク

2016/5/26(Thu) 09:46:28|NO.75592

limitloop関数の動作が良く分かりませんが次のような感じでしょうか?

#defcfunc limitloop int p1,int min,int max d=(max-min+1) if(d<=0):return 0 if(p1<min):p1+=d if(p1>max):p1-=d return p1
これは p1 が min 〜 max の範囲はそのままの値で、
p1 が min を下回ると p1 は最大値(max)になり、
p1 が max を上回ると p1 は最小値(min)になります。

limitloop関数の動作は、上記のような感じでしょうかね?



motchy

リンク

2016/5/26(Thu) 14:05:07|NO.75593

普通に巡回なんじゃなくて?


#module #defcfunc limitloop int p1,int min,int max if (p1>=min) { return min + (p1-min)\(max-min+1) } else { return max - (min-p1-1)\(max-min+1) } #global repeat 10 mes "limitloop("+cnt+",3,5) = "+limitloop(cnt,3,5)+"" loop



KOMARI

リンク

2016/5/26(Thu) 14:10:36|NO.75594

多分こんな関数が作りたいんじゃないかな……と察して、テストコードを作ってみる(・ω・)

#module #defcfunc limitloop_sado int p1,int min,int max,local d,local in d=abs(max-min) if p1<min :in=max-abs(p1-min)\d if min<=p1 & p1<=max :in=p1 if max<p1 :in=min+abs(p1-max)\d return in #defcfunc limitloop_koma int p1,int min,int max,local d #ifdef _debug if ( min>max ) : dialog "min>maxなる値が渡されました@limitloop_koma" : end #endif if ( min==max ) : return min if ( ( min<=p1 ) && ( p1<=max ) ) : return p1 if ( p1<min ) : return max-(min-p1-1)\(max-min+1) if ( p1>max ) : return min+(p1-max-1)\(max-min+1) return d #global val = 2 : min = 1 : max = 5 //2,3,4,5,1,2…と、2,1,5,4,3,2…を表示させたい(のか?) pos 0,10 : mes "sado" pos 0,70 : mes "koma" repeat 20 pos 9*cnt+50,10 : mes ""+limitloop_sado(val+cnt,min,max) pos 9*cnt+50,30 : mes ""+limitloop_sado(val-cnt,min,max) pos 9*cnt+50,70 : mes ""+limitloop_koma(val+cnt,min,max) pos 9*cnt+50,90 : mes ""+limitloop_koma(val-cnt,min,max) loop
この実行結果と、
>>何とかlimitloop関数を作ることができました
という文章を照らし合わせると、こっち考えは外れているようだ……あれ?
一体limitloopとはなんなのか。定義を教えてください(・ω・)

>>実数の場合も、全く同じ式でいいのでしょうか??
>>limitloopfみたいな
同じ式で出来るかどうか、試せばいいと思いますヨ。



Sado

リンク

2016/5/26(Thu) 19:10:23|NO.75595

>motchyさん
>KOMARIさん
巡回……そうだ、巡回ですそれです。
何かおかしいなと思っていたら、一つずれていたんですね……



ONION software Copyright 1997-2023(c) All rights reserved.