HOME»基本情報技術者試験掲示板»令和元年秋期午後問8
投稿する
プログラムの構造は以下のようになっています。
if (Pat[i] = "[") {
Mode ← 0
} else {
if (Mode = 0) {
PatLen ← PatLen + 1
}
//省略
}
Pat[i] = "[" のときにPatLenがインクリメントされることはありません。
的外れな意見でしたらすみません。
»[2417] 平成26年春期午後問2 投稿数:2
»[2416] 午後問題ページに採点講評へのリンクを設置しました 投稿数:2
令和元年秋期午後問8 [2419]
タロウさん(No.1)
https://www.fe-siken.com/kakomon/01_aki/pm08.html
設問3のhについての質問です。関数GenerateBitMaskRegexの返却値であるPatLenの最終的な数値はいくつかを解かせる問題ですが、ここの解答が6であることに納得がいきません。解説によれば、「正規表現の先頭文字である"["を見つけると1になり、正規表現の終端文字である"]"に達すると0になります。つまり、2つ目のModeが0のときとは、正規表現ではない普通の文字のときであると判断できます。」と記述されています。プログラムではpat[i]="]"であるときMode←0になり、解説通りですが、Modeに0を代入した直後にMode=0でPatLen←Patlen+1の操作をしています。つまり。Pat[i]="]"の時、PatLenには1が加算されていることになりませんか?解説では、Pat[i]が"]"の時にはModeに0が入っているにもかかわらずPatLenに1を加算するのは"]"の次の文字からになっています。この点を解説して頂けたら幸いです。長文失礼いたしました。
設問3のhについての質問です。関数GenerateBitMaskRegexの返却値であるPatLenの最終的な数値はいくつかを解かせる問題ですが、ここの解答が6であることに納得がいきません。解説によれば、「正規表現の先頭文字である"["を見つけると1になり、正規表現の終端文字である"]"に達すると0になります。つまり、2つ目のModeが0のときとは、正規表現ではない普通の文字のときであると判断できます。」と記述されています。プログラムではpat[i]="]"であるときMode←0になり、解説通りですが、Modeに0を代入した直後にMode=0でPatLen←Patlen+1の操作をしています。つまり。Pat[i]="]"の時、PatLenには1が加算されていることになりませんか?解説では、Pat[i]が"]"の時にはModeに0が入っているにもかかわらずPatLenに1を加算するのは"]"の次の文字からになっています。この点を解説して頂けたら幸いです。長文失礼いたしました。
2020.08.17 12:08
管理人(No.2)
> Modeに0を代入した直後にMode=0でPatLen←Patlen+1の操作をしています。
プログラムの構造は以下のようになっています。
if (Pat[i] = "[") {
Mode ← 0
} else {
if (Mode = 0) {
PatLen ← PatLen + 1
}
//省略
}
Pat[i] = "[" のときにPatLenがインクリメントされることはありません。
的外れな意見でしたらすみません。
2020.08.17 14:31
タロウさん(No.3)
ご返信ありがとうございます。プログラムの構造について勘違いしていました。
的確なご回答ありがとうございました!
的確なご回答ありがとうございました!
2020.08.17 19:31
その他のスレッド
»[2418] 【午前】平成18年秋期 問53 投稿数:12»[2417] 平成26年春期午後問2 投稿数:2
»[2416] 午後問題ページに採点講評へのリンクを設置しました 投稿数:2