投稿する

教えてください [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
返信投稿用フォーム
お名前
顔アイコン

本文(コミュニティガイドライン⇱を順守して適切な投稿を心がけましょう)
🔐投稿削除用のパスワード
投稿プレビュー
※CBT試験では出題内容の公開が禁止されているため、直接的・間接的を問わず、出題内容や難易度を尋ねる質問は厳禁です。
※宣伝や迷惑行為を防止するため、当サイト、姉妹サイト、IPAサイト以外のURLを含む文章の投稿はできません。
投稿記事削除用フォーム
投稿No. パスワード 
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop