投稿する

教えてください [5709]

 あかさたなさん(No.1) 
以下の設問3ですがなぜエなのでしょうか?
(「数値が正なら数値の後に続く文字をfill文字で置き換えるために用意されたケース」とあるので、表2の更新処理のpattern[p]が「fill文字」であるケース1,2,3が答えなのではないのでしょうか?)


https://www.fe-siken.com/s/kakomon/28_aki/pm08.html
2024.12.04 17:23
jjon-comさん(No.2) 
FE ゴールドマイスター
基本情報 平成28年 秋期 午後 問8
https://www.fe-siken.com/kakomon/28_aki/pm08.html

設問3
数値が正なら数値の後に続く文字をfill文字で置き換える
に該当する例は設問1の表3の次の例でも登場しています。

"*□□,□□□#" と "00000+" で結果は (a) "********"
"*□□■.□□#" と "00012+" で結果は (c) "****.12*"

どちらもPattern[]の末尾の"#"が
Pattern[] 中の先頭の文字(以下,fill文字という)
`である"*"に置き換えられています。

上記の例では Pattern[p]="#" のとき置き換えが発生しています。
  ゲース1の Pattern[p]="□" でもなく
ゲース2・3の Pattern[p]="■" でもありません。
よって
> ケース1,2,3が答えなのではないのでしょうか?
は間違っています。

Value[] は,数字"0"~"9"の並びの後に,数値が正又は0なら"+"を,
という形式で数値が格納されていますから、
「数値が正なら」という条件判定は、
Value[v]が"0"~"9" かつ Value[v+1]="+"
と表すことができます。

さらに
「数値が正なら数値の後に続く文字をfill文字で置き換える」
という処理は
Pattern[p]が末尾の数字であるとき、その数字(Pattern[p])を置き換える
のではなく、
Pattern[p]が末尾の数字であるとき、その数字(Pattern[p])は Value[v]のまま残し、pを1つ進めた次のループにおいてfill文字での置き換えをおこなう
処理になります。これを制御しているフラグ変数が signif です。
2024.12.04 19:31
jjon-comさん(No.3) 
FE ゴールドマイスター
ごめんなさい、No.2の前半は的外れでした。

Pattern[p]="#"であるなら、
▲Pattern[p]="□" or Pattern[p]="■" がfalseになって

▲signif =off
|・Pattern[p]←fill

に流れますから、ケース1,2,3は無関係でありこれが正解ではない根拠にはなりません。

自戒のためにNo.2は消さずに残しておきます。
どうぞNo.2の後半だけを参照してください。
2024.12.04 22:14
 あかさたなさん(No.4) 
この投稿は投稿者により削除されました。(2024.12.18 15:43)
2024.12.18 15:43
 あかさたなさん(No.5) 
すみません。よくわかりませんでした。言い換えた言い方などありませんか?
2024.12.18 15:45
 あかさたなさん(No.6) 
更新処理で、「fill文字で置き換える」になっているのは1,2,3,8のみです。なのに答えが「5,7」というのが理解できません。分かりますか?
2024.12.18 17:26
 あかさたなさん(No.7) 
ありがとうございました。
自己解決しました。「数値が正なら数値の後に続く文字をfill文字で置き換えるために用意されたケース」=更新処理signifがoffであるもの。ですね。
Valueはvalue[v+1]なところが注意。次で+になるときに、_をしっかり8で通せることができる1個前のケースを問いた問題。非常に分かりづらい問題文だ。
2024.12.18 17:43
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop