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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0126
myもし○○だったら6解決


my

リンク

2010/1/26(Tue) 12:15:02|NO.30168

もし、on(0,0)もon(0,1)もon(0,1)もon(0,2)もon(0,3)もon(0,4)も・・・
1だったら変数aに1を足す、ということをしたいときはどうすればいいですか?
if on(0,0)=1{
if on(0,1)=1{
a+1
}
}
というような書き方だと数が多くて大変なんです
お願いします



この記事に返信する


undefined

リンク

2010/1/26(Tue) 12:43:10|NO.30169

onは予約語なので↓では_onとします。


count=0 repeat length2(_on) if (_on(0,cnt)==1) : count++ loop if (count==length2(_on)) : a=1



undefined

リンク

2010/1/26(Tue) 12:44:21|NO.30170

訂正。一番最後は

a=1
ではなく、

a++
でした。



SYAM

リンク

2010/1/26(Tue) 12:54:57|NO.30171

または、
「on(0,0)かon(0,1)かon(0,1)かon(0,2)かon(0,3)かon(0,4)…のどれか一つでも 1 でなければ a には 1を足さない」、という考え方をしてみるのもよいでしょう。

c=0 repeat length2(_on) if (_on(0,cnt)!=1) : break c++ loop if (c==length2(_on)) : a += 1

やりたいことを同じ意味を保ったまま、別の表現にしてみると、処理の効率がよくなったりわるくなったりすることがあってオモシロイですよ。



Ve

リンク

2010/1/26(Tue) 12:55:44|NO.30172

onだと命令と被るので避けられるなら別の名前のほうが良いかと思います。
ソース中では onの変数名を oと変えています。


dim o,10,10 ;テスト用 repeat 10 o(0,cnt)=1 loop ;カウンタ i=0 repeat 10 if o(0,cnt)=1 : i++ loop mes "1 だった数 : "+i ;カウンタと一致すれば表示 if i=10 : mes "全部 1 でした"

上記のは確保した2次元目が全て1だった時と言う条件などに限られますが…
一体どこまで確保していて、どんな処理でどんな結果が出ればいいんでしょうか?



my

リンク

2010/1/26(Tue) 12:55:58|NO.30173

onは変数名の一部でした〜
分かりました。ちゃんとできました。
length2というのを初めてみたんですが、ヘルプで配列について検索するとすぐに出てきますね。
次からは気をつけます。
ありがとうございました。



Ve

リンク

2010/1/26(Tue) 12:58:10|NO.30174

SYAMさんのソースの方がシンプル… orz



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