HOME»基本情報技術者試験掲示板»教えてください
投稿する
教えてください [5709]
あかさたなさん(No.1)
以下の設問3ですがなぜエなのでしょうか?
(「数値が正なら数値の後に続く文字をfill文字で置き換えるために用意されたケース」とあるので、表2の更新処理のpattern[p]が「fill文字」であるケース1,2,3が答えなのではないのでしょうか?)
https://www.fe-siken.com/s/kakomon/28_aki/pm08.html
(「数値が正なら数値の後に続く文字を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
"*□□,□□□#" と "00000+" で結果は (a) "********"
"*□□■.□□#" と "00012+" で結果は (c) "****.12*"
どちらもPattern[]の末尾の"#"が
上記の例では Pattern[p]="#" のとき置き換えが発生しています。
ゲース1の Pattern[p]="□" でもなく
ゲース2・3の Pattern[p]="■" でもありません。
よって
は間違っています。
「数値が正なら」という条件判定は、
Value[v]が"0"~"9" かつ Value[v+1]="+"
と表すことができます。
さらに
「数値が正なら数値の後に続く文字をfill文字で置き換える」
という処理は
Pattern[p]が末尾の数字であるとき、その数字(Pattern[p])を置き換える
のではなく、
Pattern[p]が末尾の数字であるとき、その数字(Pattern[p])は Value[v]のまま残し、pを1つ進めた次のループにおいてfill文字での置き換えをおこなう
処理になります。これを制御しているフラグ変数が signif です。
https://www.fe-siken.com/kakomon/28_aki/pm08.html
設問3
数値が正なら数値の後に続く文字をfill文字で置き換える
に該当する例は設問1の表3の次の例でも登場しています。数値が正なら数値の後に続く文字をfill文字で置き換える
"*□□,□□□#" と "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の後半だけを参照してください。
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