HOME»基本情報技術者試験掲示板»ニュースペックテキスト科目B予想模試について
投稿する

ニュースペックテキスト科目B予想模試について [4898]

 ほしかさん(No.1) 
ニュースペックテキスト  基本情報技術者のテキストをお持ちの方に聞きたいです。
テキストの後ろ側についている、科目B予想模試の12,16番の問題を教えていただけないでしょうか。
解説が短く、理解ができません。
お忙しいところ恐縮ですが、どなたか教えていただけると幸いです。
2023.06.13 09:16
電タックさん(No.2) 
FE ブロンズマイスター
説明として不十分かもしれませんが、書籍関係の質問はコメントが薄そうなので記載します。

問12:最初の説明はInsertSortを説明しております。
InsertSort=挿入法の動作イメージは、本書やyoutubeで「InsertSort  基本情報」等で検索すると、図解で分かりやすい動画があるので、ココであれこれ記載するより圧倒的に見やすいと思い割愛させていただきます。
※あと本書を持っていないかた向けに、本問は以下の4問とほぼ同一です。
https://www.fe-siken.com/pdf/archive/2007h19h_fe_pm_qs.pdf
※本書での参考箇所は以下となります。
「P361 挿入法」
「P388 配列に空きスペースを作る」

擬似言語部分は大枠としては
・外側のforループが処理を行う範囲を決定し、それを徐々に広げて行っている。
・内側のwhileループが、外側で決定した指定範囲を後ろから処理をしている。

■細かいループの脱出条件を無視してしまうと
for idx1を2から初め、ソート対象の最大要素まで
  idx2  = 範囲決定(M)
  tmp    = 交換対象の保存(範囲での一番後ろの要素)

  while idx2が先頭になるまで
    tmpの値とidx2の要素の値の大小関係が逆であったら交換をする
    ※tmpは値そのもの、idx2は配列の要素の場所ということに注意してください。
    idx2を減算

ぱっと見idx1とidx2という2つの変数が有り、人間的にはidx1<idx2と連想したいのですが
・idx1は徐々に大きく(要素最大に向かって)
・idx2は徐々に小さく(指定の範囲から先頭要素に向かって)
という変化が一瞬混乱してしまうかもしれません。
どこでidx2(範囲)が確定して、その後どの部分で変化していくかが本問の問われている所だと思います。
2023.06.13 14:23
電タックさん(No.3) 
FE ブロンズマイスター
問16:2つのファイルを1つのファイルに順序正しくまとめるというもので問題の記載量の割にシンプルだと思います。
重要なのはreadの説明の中にある、レコードの有無が読み込んだ時stsA,stsBに保存されているというものです。
・レコード有り=0
・レコード無し=1

後はこのstsAとstsBの値を以下4パターンで分ける条件分岐がひたすら書いてある感じです。
・Aレコード無し、Bレコード無し=書けるものがないので処理を終える
・Aレコード無し、Bレコード有り=ファイルBの内容しか書けない
・Aレコード有り、Bレコード無し=ファイルAの内容しか書けない
・Aレコード有り、Bレコード有り=ファイルAとファイルBの内容で順序が若い方だけを書き出す。(両方書き出すわけではない)
2023.06.13 14:41
 ほしかさん(No.4) 
電タックさんありがとうございます!
問12について
人から借りた本だったので、参考箇所書いてくださって助かりました。
挿入ソートについて理解し、電タックさんのアドバイスを読んでから再チャレンジしたら解くことができました。ありがとうございます。

問16について
結構シンプルに考えてよかったんですね。
難しく考えすぎていました。

どちらもわかりやすい説明ありがとうございます!!
助かりました。
2023.06.14 09:06
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop