1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mono版プロデル1.9.1263に存在するバグ(あるいはドキュメントとの不一致)

Last updated at Posted at 2025-01-01

追記(2025-01-02T22:21+09:00)

翌日に全て直したバージョンが出ておりビックリ。
ありがとうございます。

はじめに

AtCoderの言語アップデートの時期になりました。現在mono版プロデル1.9.1263をインストールする予定なので、mono版プロデルがこのまま更新されない場合、現バージョンの挙動について知っておく必要があります。また更新が間に合ってほしい気持ちもあるため、なるべく早めに書き上げようとしています。

環境

基本的にmono版でコンパイル(rdrc.exeを利用)したときの挙動を対象としていますが、.Net版でも大抵同じです。

本編

みなす文

みなす文のページ にある2つのコードはどちらも動作しません。
以下のように変更すると動きます。

入力値は{「山田太郎」,23,「神奈川県足柄下郡箱根町」}
- 入力値を{名前,年齢,住所}とみなす
+ 入力値を{【名前】,【年齢】,【住所】}とみなす
名前を表示する
年齢を表示する
住所を表示する
- 「1 2 3」を「 」で区切って{【A】,【B】,【C】}とみなす
+ (「1 2 3」を「 」で区切る)を{【A】,【B】,【C】}とみなす
Cを出力する

ちなみに下のような書き方もできません。これはmono版でのみ動きません。

(「1 2 3」を「 」で区切る)を{【A:整数】,【B:整数】,【C:整数】}とみなす
Cを出力する

条件判断文

条件判断文のページ
もとのコードだと「123」を入力したとき以外、全て「より大きい」と出てしまいます。以下のように変更することで意図通りに動きます。(どういう扱いになってるのかわかってません)

正解は123
+ 【数字:整数】
「数値を入力してください」と聞いて、数字とする
数字が正解なら
  「正しい」を表示する
他で数字が正解より大きいなら
  「[数字]より小さい」を表示する
他で数字が正解より小さいなら
  「[数字]より大きい」を表示する
そして

条件文の始めの条件で括弧を使わずに = を使うとコンパイルエラーになります。これはpconsoleでも再現でき、1.9.1290で修正されています。

正解は123
「数値を入力してください」と聞いて、数字とする

- 数字=正解なら
+ (数字=正解)なら
  「正しい」を表示する
他で数字≧正解なら
  「[数字]より小さい」を表示する
他で数字≦正解なら
  「[数字]より大きい」を表示する
そして

カスタムソート

配列のページ

一覧は{12,3,5,6}
一覧を『
	それを{左,右}とみなす
	左>右なら
		-1を返す。
	他で左<右なら
		1を返す。
	そうでなければ
		0を返す
	そして
』で並べ替える
一覧を表示する

『それ』という名前の手順または変数はありません、と出ます。改善方法はわかりません。
最新の.Net版ではコンパイルできるものの、文字列扱いでソートされます。

文字目

文字目のページ

内容は「こんにちは プロデル」
X=内容の3文字目
Xを表示する

なぜか上記のように変数に代入すると、文字位置の数が代入されます。下のように書くことで回避できます。

内容は「こんにちは プロデル」
【X:文字列】=内容の3文字目
Xを表示する

最新の.Net版では解決しています。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?