Re^5: 1文字同士を比較できない

投稿者:ゆうと 投稿日:2023/11/01(Wed) 22:11:56 No.2317

こんにちは ゆうとです。

この現象、確認しまして、状況を確認しましたところ、序数詞(〜目)の式同士の比較が正しくできない現象確認しました。
最新版1.9.1195で修正していますのでご確認ください。

このような指摘大変助かります。
ご指摘ありがとうございます。

Re^4: 1文字同士を比較できない

投稿者:onichan 投稿日:2023/10/30(Mon) 19:09:06 No.2316

アークさん
ご返信いただきありがとうございます。

> 先に代入が行われているのではないでしょうか。
左辺の[Aの3文字目]に右辺の[Aの3文字目]が代入されてしまっているということでしょうか。

こちらについては
`
[[Aの3文字目]<>[Aの3文字目]]を表示
`
とすると○になるので、1文字同士の比較に「=」「<>」「≠」のような記号を使い、さらにその条件式を大括弧で括ると常に等しくない判定となるという不具合だと思います。

この書き方にした理由は1文字同士の比較を一番短く書ける方法だと思ったからでしたが、
比較に「が」を使ったり式を小括弧で括ることで意図した挙動になるのは全く気づいていなかったのでお教えいただき助かりました。ありがとうございます。

Re^3: 1文字同士を比較できない

投稿者:アーク 投稿日:2023/10/30(Mon) 16:27:41 No.2315

onichan さん、アークです。

〉条件の部分を大括弧で括ることで式として明示…
そこは私も気付いています。
只、通常括弧が有ればより内側から処理されるのではないでしょうか。
つまり、先に代入が行われているのではないでしょうか。

因みに
値1は、[A]の3文字目
値2は、[A]の3文字目
文字1は、「[Aの3文字目]」
文字2は、「[Aの3文字目]」
として、

[[値1]=[値2]]を報告
[値1=値2]を報告
[[文字1]=[文字2]]を報告

もし(値1=値2)なら
  真を報告
もし終わり

([Aの3文字目]は、[Aの3文字目])を報告
([Aの3文字目]が[Aの3文字目])を報告

(値1=値2)を報告

は、全て〇になります。

期待通りの動作をする描き方が在るならそれを使った方が良いと思いますが、
敢えてそうする理由が有るのでしょうか。

Re^2: 1文字同士を比較できない

投稿者:onichan 投稿日:2023/10/30(Mon) 10:00:25 No.2314

アークさん、はじめまして。

今回のプログラムでは条件の部分を大括弧で括ることで式として明示していますので意図した解釈になると思います(代入は式ではなく文なので大括弧内に書くことはできないと認識しています)。

なお1文字同士をそのまま比較できない現象自体はもし文でも発生しました。

ご確認いただきありがとうございます。

Re: 1文字同士を比較できない

投稿者:アーク 投稿日:2023/10/29(Sun) 12:48:21 No.2313

onichan さん、こんにちは。アークです。

比較と代入、「が」と「は、」がごっちゃになっていませんか。

1文字同士を比較できない

投稿者:onichan 投稿日:2023/10/28(Sat) 19:26:07 No.2312

いつもお世話になっております。

『【文字列】の【文字位置】文字目』手順で取得した文字同士を等価比較すると結果が×になるようです。

ーープログラム例
A=「プロデル」
[[Aの3文字目]=[Aの3文字目]]を表示 ーー〇のはずだが×になる

ーープログラム例終わり

状況:文字当てゲーム(Wordle)を作っている中で文字列を1文字ずつ比較する処理があり発覚しました。

プロデルバージョン:1.9.1194
よろしくお願いいたします。

Re: 計算結果がおかしい

投稿者:ゆうと 投稿日:2023/10/24(Tue) 16:40:47 No.2311

こんにちは。お世話になります。

> 36*113471947を表示
>
> の結果が「-209977204」と表示されてしまいます。
> こちらは不具合でしょうか?

これは、桁あふれ(算術オーバーフロー)という現象で、バグではありません。

次のページで解説していますのでご覧ください。
https://produ.irelang.jp/blog/2020/09/2183/

--------------
【N:長整数】=113471947
36*Nを表示
--------------

計算結果がおかしい

投稿者:かんた 投稿日:2023/10/24(Tue) 16:15:36 No.2310

お世話になります。

36*113471947を表示

の結果が「-209977204」と表示されてしまいます。
こちらは不具合でしょうか?

よろしくお願い致します。

修正確認しました。

投稿者:onichan 投稿日:2023/09/20(Wed) 00:05:49 No.2307

お世話になっております。

現象が1.9.1190で修正されていることを確認いたしました。
ご対応いただきありがとうございます。
今後ともよろしくお願いいたします。

修正しました1.9.1190

投稿者:ゆうと 投稿日:2023/09/19(Tue) 21:42:15 No.2306

こんにちは
プログラムありがとうございます。

> 手順の例外監視の中で値を返そうとして同時にエラーになると、発生した場合ブロックに移行しないようです。

「返す」文中の式の例外が受け取れなかったようです。
修正済みです。
ご指摘ありがとうございます。

▲ページの先頭へ

- WebForum -