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でしたねぇ。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.101004への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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