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


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0110
さか2正の場合、1ではなく-1としたい3解決


さか2

リンク

2024/1/10(Wed) 23:42:51|NO.101004

昔のBASIC(N88-BASIC)のソースをHSPへ移植しています。
昔のソースなのでIFを使わないで計算式として含めています。
そのままHSPに書くことは出来るのですが、正の場合の符号が反対のため
計算式が違ってしまいます。
条件成立の場合 HSP:1、N88-BASIC:-1
条件不成立の場合 HSP:0、N88-BASIC:0
マクロなどを使って元の計算式をなるべく変えないで上手く対応する方法ありませんか。
例えば以下の場合はN88-BASICと同じ計算結果としたいです。
mes (1=1) ⇒ 1(N88-BASIC ⇒ -1)
mes (1=1)+(1=0)+(1!=0) ⇒ 2(N88-BASIC ⇒ -2)



この記事に返信する


沢渡

リンク

2024/1/11(Thu) 00:51:43|NO.101005

1を-1に変換するのであれば、こんな感じのマクロで行けませんか?

#define global ctype np(%1) ((%1)*-1) //npはnegativeとpositiveの略 mes np(1=1) mes np(1=1)+np(1=0)+np(1!=0)



さか2

リンク

2024/1/11(Thu) 22:43:23|NO.101009

おー、すごい、流石です。
こんな簡単な方法があるんですね。
これでやってみます。
ありがとうございます!



窓月らら

リンク

2024/1/14(Sun) 04:38:40|NO.101016

mes -(1=1)

()で囲って頭に-つけるだけだと思いましたが・・・
VBも-1でしたねぇ。



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