Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
157 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 7778
次のページ(過去)
返信[22]
親投稿
nobuさんのご指摘の通り、0>Hが正解です。 わかりにくい説明で申し訳ありません。 H1=H+TD だけでなく H1=H+TD IF H1>=24 THEN H1=H1+24 IF 0>H1 THEN H1=H1-24 ? FORMAT$("%2D:%2D",H1,M) のように、その行以降のHを変更することをイメージしていました。
0そうだね
プレイ済み
返信[20]
親投稿
返事が遅くなって、申し訳ありません。 がんばってください。 何かあれば、ご連絡ください。 なお、データのセットをDATA文に記述し、READ命令で読みながら、計算と表示をデータセット数分繰り返すのが簡単そうな気がします。
1そうだね
プレイ済み
返信[18]
親投稿
数学がわからなくても、必要な公式などを集めてきたり、他の人が提供してくれるライブラリ(みんなが共通に使えるサブルーチンや関数を集めたもの)を使えば、プログラムを書くことは出来ます。しかし、数学的な考え方や数学の知識は、プログラム作成にとても役に立ちます。暇なとき、気が向いたら、昔の教科書を開いておさらいしてみては、いかがでしょうか。
1そうだね
プレイ済み
返信[17]
親投稿
地名データと時差のデータは、どのように管理するようになっているでしょうか。
0そうだね
プレイ済み
返信[16]
親投稿
?(PRINT)命令は、自分の表示したいように変更してください。
1そうだね
プレイ済み
返信[15]
親投稿
入力値の確認とはユーザに対する確認では無く、入力された値が、プログラム作成者の期待した値かどうかの確認のことを言っています。 時差については仕様の確認が出来なかったので、仮に入力するようにしました。削除して、自分の設計通りにすれば良いと思います。 複数回の計算が必要になるので、Hを変更してはいけません。 したがって、「H=H+TD」は、「H1=H+TD」のようにして、次の行以降も「H」を「H1」に変える必要があります。そして、この行から最後までをTDの値を変えながら登録TD数分繰り返せばいいです。
1そうだね
プレイ済み
返信[13]
親投稿
考慮漏れがありました。「IF H>=24」の行の後に IF 0<H THEN H=H+24 を追加してください。
0そうだね
プレイ済み
返信[5]
親投稿
追伸)以下の4つのCHKLABEL()の結果の1つだけがTRUEならそのスロットで実行中になります。 CHKLABEL("0:@ラベル") CHKLABEL("1:@ラベル") CHKLABEL("2:@ラベル") CHKLABEL("3:@ラベル")
0そうだね
プレイ済み
返信[8]
親投稿
ゲームを作ったことがないので、参考になるかわかりませんがが・・・ もし知人が親しい知人なら、どこが悪かったのか根掘り葉掘りしつこく聞きます。 おもしろさが伝わらなかった理由が見つかるかもしれません。 (自分がおもしろいと思った事は、だれがなんと言おうと、おもしろいのです。ただし、他の人にとっておもしろくないのは、おもしろさが相手に伝わらなかった場合と、社会的に受け入れられない場合があると思います。) もう一つの場合として、おもしろかったが、それが、なぜか悔しくて、馬鹿にすることでしか、心のバランスをとれなかったのかも・・・
8そうだね
プレイ済み
返信[12]
親投稿
自分だけが使うのであれば、入力値の確認をさぼります。 INPUT"じこく(HH:MM)=";T$ INPUT"じさ=";TD H=VAL(LEFT$(T$,2)) M=VAL(RIGHT$(T$,2)) H=H+TD IF H>=24 THEN H=H-24 ? FORMAT$("%02D:%02D",H,M) こんな感じでどうでしょうか。タイプミスなどあればすみません。
0そうだね
プレイ済み
返信[4]
親投稿
もし、ほかのプログラムと重複しないラベルがあれば、 CHKLABEL("0:@ラベル")がTRUEのときスロット0にいることがわかると思います。重複しない保証をどうするかと言う問題は残りますが・・・
0そうだね
プレイ済み
返信[3]
親投稿
でもこれはプログラム操作命令のカレントプログラムスロットなので、たぶん質問の意図と違うような気がします。
0そうだね
プレイ済み
返信[2]
親投稿
PRGSLOTですね。
0そうだね
プレイ済み
返信[9]
親投稿
参考になるかわかりませんが、私の公開しているタイマーのTMR0中のINPUT_TIME関数でも似たようなことをやっています。
0そうだね
プレイ済み
返信[7]
親投稿
一番簡単な入力方法は、INPUTで文字列として、HH:MMの形式で入力する方法です。ボタンだけで入力する場合は、ゲーム内で数字を増減しているものがあると思います。それを参考にしてはいかがでしょうか。
0そうだね
プレイ済み
返信[6]
親投稿
用語は難しいかもしれませんが、やっていることはたいしたことありません。時分だけで良いなら、仕組みは、2桁の筆算と一緒です。10進数の場合、引き算したとき、足りなければ、上の桁から一つ借りてきて、10足してから引きますよね。60進数も同様に、上の桁から借りてきたとき、60を足してから引けば良いのです。24進数は不足して負の値になれば、24足すだけです。仕組みがわかれば、難しくないと思いますが、いかがでしょうか。
0そうだね
プレイ済み
返信[4]
親投稿
また、時分秒を秒に変換し、計算した後、剰余と整数除算を使って,時分秒に変換する方法もあります。ただし、負の数の剰余は機械や言語が違うと、結果が異なる場合があるので、注意が必要です。
0そうだね
プレイ済み
返信[3]
親投稿
済みません。言い忘れました。オーバーフローしたときは、上位の値に1加算し、アンダーフローしたときは上位の値から1減算します。 秒、分、時の順番で処理すればいいと思います。
0そうだね
プレイ済み
返信[2]
親投稿
計算式は、ある日時を0とした時間を計算したいのでしょうか。それとも、時間T0と時間T1の加減算が出来ればいいということでしょうか。 もし、後者で良いなら、分秒は60進数で、時間は24進数になるので、オーバーフロー、アンダーフローしたときに、60や24を引いたり足したりすれば良いと思います。
0そうだね
プレイ済み
返信[1]
親投稿
いろいろなやり方があると思いますが、 TMREADで時、分、秒を取り出す。 時間の計算をする。 FORMAT$で整形する。 というのは、どうでしょうか。
0そうだね
プレイ済み