• ベストアンサー

基本情報者試験2006年秋期問13問について

基本情報者試験2006年秋期問13問について質問があります。 http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_2/2006h18a_fe_am_qs.pdf この問題において 配列の2行目の中身の値は、 初期が上から順に 2、3、4、0、空欄 一回目の操作で 2、3、4、0、3 となり 二回目の操作で 5、3、4、0、3 になり、空欄と0とNULLは同意意義で考えてよろしいのでしょうか? また、一回目の操作と二回目の操作を入れ替えるとなぜデータが壊れてしまうのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

自分がこれをプログラムしたときにイメージとしてNULLが出てきたということなのですね。 0またはNULLがリストの終端の意味というのは、よく使われる手法ですもんね。 (別にNULL以外でターミネートしても、ロジック的に矛盾がなければ使えるので、  あくまでも作法の問題かとは、思いますが) で、この表の見た目として空欄なのは、  ””の空文字のことなのか、0なのかNULLなのか、それとも不定なのか 分からないけど、どれのことなのか? という質問だったのですね。 失礼しました。 これは、どこからも参照されていない場合は、なんでもよいということでしょう。 ただし、これを参照するように誤ったロジックとなった場合に、ここの値が 空文字(へのポインタ)/0/NULL/不定 のいずれかで 結果が変わってくることに なりますね。 これは、この表の空欄の意味を どうプログラムとして表現するかの コーディング側の問題なので、出題内容とは直接関係はしてこないと思います。 誤った操作順でプログラムを実装することを想定した出題内容ではないでしょうから。

その他の回答 (3)

回答No.3

>また、一回目の操作と二回目の操作を入れ替えるとなぜデータが壊れてしまうのでしょうか? あ、もしかして実際に、リスト型のプログラムを作って、 操作1、2のあとにそれぞれで、そのリスト型を順番にめくってみたってことなのですかね。 操作2を最初に行うと 1 東京 5 2 品川 3 3 名古屋4 4 新大阪0 5 新横浜 空欄 (空欄は、プログラム的に初期値代入か暗黙の初期化でNULLとなっているか、 初期化してなければ不定値か) となり、 この状態でリストを順にめくっていくと 東京の次が、5行目の新横浜、 新横浜の次は、NULLないしは不定値。 よってここでリストが止まるか、別のとんでもないポインタに飛んでしまうか、 ってことでしょう。

回答No.2

初期の 1東京 2 2品川 3 3名古屋 4 4新大阪 0 5新横浜 空欄 という状態で、どうやって「東京→品川→名古屋→新大阪」という順番と 新横浜がないのを 表現しているかを、まず、見つける必要がありそうですね。 気になるのは、操作として、A(A1,2),2) の2列目の値を、さらに行番号に使うような処理があることです。 これを考えると、どうやら、2列目は ソートキーではなく、 次の行き先を行番号で示しているのではないかと 推測できます。 つまり、東京=2ということは 東京の次は2行目(品川)、同じように→名古屋→新大阪ときて、 最後の新大阪0は終点を示す例外値になるのではとは。 これを踏まえて、ウの操作1を行うと A(A(1,2),2)は、東京の次の次の行き先行番号となり、 まずは、品川の次の行き先を示す行番号を、新横浜の次の行き先にコピーしたことになりますね。 そして、操作2で、東京の次の行き先を新横浜の行番号5と代入することで 品川と新横浜の リスト順を入れ替えたことになります。 (品川の行き先の行番号3はどこらかも参照されませんね) #と、多分こんな、感じではないでしょうか? #Cプログラムとかで、構造体にnextポインタのメンバーを使ったリスト型の記録領域を #作ることがありますが、 #これのリスト要素の入れ替えのテクニックに似ていると思います。 > 空欄と0とNULLは同意意義で考えてよろしいのでしょうか? 新横浜の空欄は単にどこからも参照されなかっただけのようです。 新大阪の0は、終点の意味っぽいです。 NULLは出題中にはありませんが、どこかの解法かにあるのでしょうか? > また、一回目の操作と二回目の操作を入れ替えるとなぜデータが壊れてしまうのでしょうか? これも、出題中にありませんが、なにか模擬プログラムを作られてのことなのでしょうか? それのロジック追いかけてみないと、よくわかりません。

mauluru
質問者

お礼

回答ありがとうございます >新横浜の空欄は単にどこからも参照されなかっただけのようです。 >新大阪の0は、終点の意味っぽいです。 >NULLは出題中にはありませんが、どこかの解法かにあるのでしょうか? 0またはNULLを用いることによってリストを終了するということは知っているのですが、人間目線で”空欄”は何も値が入っていないと考えたためNULLと一緒なのでは!?と真意がわからなかったのですが、ポインタが別のどこかに飛んでしまうと次のポインタに移る事ができないと考えればいいと言うことで納得しました。これを踏まえるとDBのデータの追加削除の関係に近いとなんですね。

  • nabe3desu
  • ベストアンサー率46% (253/550)
回答No.1

これって、RDB(リレーショナルデータベース)の問題で、「2列目の”値”を検索して、該当するレコード(列)の1列目を出力する」と考えればいいのでは?と考えます。しかも、検索時は必ず、”RDBの1行目から最終行まで検索する”仕様と考えます。 ご質問の通り、回答ウの操作で、二回目の操作が終わった時点で、「5,3,4,0,3」になっていますね。これを、上記の前提条件で検索すると、 0->新大阪 1->NULL 2->NULL 3->新横浜 4->名古屋 5->東京 6->NULL ※0-> とは、2列を0で検索した場合の結果(1列目の値) ということではないかと考えます。見つかった時点で検索をやめてしまうと、”3”で検索した時の結果が”品川”になってしまうので、題意から外れます。 とすると、最初のご質問は、”空欄=NULL=行の終わり”であり、”0”とは異なることになります。RDBの検索終了条件は、NULLが見つかった時点となります。 また、ウの操作を二回目の後に一回目を実施すると、「5,3,4,0,NULL(空欄)」となりますね。データは壊れないと思います。

mauluru
質問者

補足

RDBで考えると、5行2列目に3を入力した時点で2列目の検索において一意に求めることができず、これを考慮すると単方向リストで考えるべきでは?ということ、RDBの正規において順に検索するとなるとRDBのメリットが薄いと思うのですが...

関連するQ&A

  • 平成18年 秋期 基本情報技術者 午後 問03

    平成18年 秋期 基本情報技術者 午後 問03について教えてください>< この問題を今度授業で解説しなければならなくなったのですがどのように解説したらいいかわからず、さらには答えまでわからない始末・・・;; 誰かこんな私に解説をよろしくお願いいたします! ■問題ページ http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_2/2006h18a_fe_pm_qs.pdf P9~11 ■解答 http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_2/2006h18a_fe_pm_ans.pdf よろしくおねがいします!!

  • 基本情報技術者 平成23年秋午後問題 問8について

    基本情報技術者 平成23年秋の午後問題 問8についてどなたか一部ご解説をいただけませんでしょうか? 状態遷移表の見方が全然わかりません。 どのように解いていけば良いのかチンプンカンプンです。 大変すみませんが、よろしくお願いいたします。 http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_2/2011h23a_fe_pm_qs.pdf

  • シスアド 過去問 午後

    http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_1/2008h20h_ad_pm_qs.pdf 上記URLのp9設問2のiとjなのですが、なぜこの解答になるのかがわかりません。 ご教示いただけませんでしょうか。

  • ソフ開 平成19年秋期 午後2 設問3(2)

    ソフ開 平成19年秋期 午後2 設問3(2)のキについての質問です。 新たに作成したノードの配列に対し、既存の配列の後半部分を代入していくという処理があります。 問題は下記リンクをご参照ください http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2007h19_2/2007h19a_sw_pm2_qs.pdf j=m+1を代入しているので、新規の配列の先頭から入れていくには q->key[j-m-1]になると思うのですが、答えは[j-m]となっています。 自分が何か勘違いしているだけだと思いますが、どなたか分かり易くご説明していただけると助かります。 以上、宜しくお願いいたします。

  • ITサービスマネージャー 平成23年秋の解説

    問3の設問1のキャパシティ管理についてですが、CPU負荷の求め方と1年後までに増設すべきディスクドライブの計算方法がよくわかりません。 詳しい方教えていただけませんでしょうか? http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_2/2011h23a_sm_pm1_qs.pdf

  • 基本情報 過去問 h23 特別 午後 問2について

    こんにちは。 2011年7月の基本情報特別試験の問題について 質問させていただきます。 まずは、以下のサイトを見ていただきたいのですが・・・ http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_1/2011h23tokubetsu_fe_pm_qs.pdf 問2の設問1についてなのですが、bについて、 各プロセスのターンアラウンドタイムは Aが320 , Bが210 , Cが130 , Dが70 ,の合計730 平均が182.5ということでよいのでしょうか? どなたか、教えていただけないでしょうか? よろしくお願いします。

  • (ソフ開)(平成19年秋午後I)問1についての質問

    こんにちは。 標記問題、教えていただきたいです。 問題のリンク: http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2007h19_2/2007h19a_sw_pm1_qs.pdf 正解のリンク: http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2007h19_2/2007h19a_sw_pm1_ans.pdf 設問3にて、パケット総数の数え方は何でしょうか。私の理解では、それぞれ8と5でしたが、どうして正解は11と2でしょうか? お分かりになる方がいらっしゃいましたら、ぜひご教授ください。 よろしくお願いいたします。

  • シスアド 過去問 午後

    http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_2/2008h20a_ad_pm_qs.pdf 上記のp35のjなのですが、なぜ「エ」になるのでしょうか。

  • シスアド 過去問

    http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_2/2008h20a_ad_am_qs.pdf​ 上記の問31はなぜ解答は「エ」になるのでしょうか。

  • シスアド 過去問

    http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2008h20_2/2008h20a_ad_am_qs.pdf​ 上記の問40はなぜ「ウ」になるのでしょうか。