Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

平成18年度秋季基本情報午後問6

平成18年度秋季 基本情報技術者試験(FE)の午後問題6は、

  • 4けたの数字をなるべく少ない回数の推測で当てるゲーム Hit & Blow

に関する問題でした。

f:id:rahaema:20190408212259p:plain

プログラム例(h18a_fe_pm6.c)

実行結果

$ gcc h18a_fe_pm6.c && ./a.out
[1回目] 各けたが異なる4けたの数を入力してください: 1234
1234は0Hit, 1Blowです。

[2回目] 各けたが異なる4けたの数を入力してください: 2345
2345は0Hit, 2Blowです。

[3回目] 各けたが異なる4けたの数を入力してください: 3456
3456は3Hit, 0Blowです。

[4回目] 各けたが異なる4けたの数を入力してください: 3457
3457は2Hit, 0Blowです。

[5回目] 各けたが異なる4けたの数を入力してください: 8456
正解です。

関連

平成19年度春季ソフトウェア開発午後問5

平成19年度春季 ソフトウェア開発技術者試験(SW)の午後問題5は、

に関する問題でした。

f:id:rahaema:20190408054325p:plain

プログラム例(h19h_sw_pm5.c)

実行結果

$ gcc h19h_sw_pm5.c && ./a.out
123-45-67+89
123-4-5-6-7+8-9
123+45-67+8-9
123+4-5+67-89
12-3-4+5-6+7+89
12+3-4+5+67+8+9
12+3+4+5-6-7+89
1+23-4+56+7+8+9
1+23-4+5+6+78-9
1+2+34-5+67-8+9
1+2+3-4+5+6+78+9
-1+2-3+4+5+6+78+9

関連

平成19年度秋季ソフトウェア開発午後問5

平成19年度秋季 ソフトウェア開発技術者試験(SW)の午後問題5は、

  • トポロジカルソート

に関する問題でした。

プログラム例(h19a_sw_pm5.c)

実行結果

図1の赤文字はノード番号です。実行結果をみると、図2と同じ結果となりました。

f:id:rahaema:20190407170110p:plain

$ gcc h19a_sw_pm5.c && ./a.out
ノード 0 : トポロジカルソート値 2
ノード 1 : トポロジカルソート値 4
ノード 2 : トポロジカルソート値 3
ノード 3 : トポロジカルソート値 5
ノード 4 : トポロジカルソート値 1
ノード 5 : トポロジカルソート値 6

関連

平成19年度春季基本情報午後問10

平成19年度春季 基本情報技術者試験(FE)の午後問題10は、

  • リーグ戦の勝敗表を出力するプログラム

に関する問題でした。

f:id:rahaema:20190406185209p:plain

プログラム例(h19h_fe_pm10.c)

  • 52行目は、rank++ではないですね。実行してみて気づきました。本番の試験では実行はできないので、注意!!

  • sort関数は、本問と同じ回の問4で出題された挿入ソートを用いました。

実行結果

$ gcc h19h_fe_pm10.c && ./a.out
順位    チーム名   勝ち   負け    勝率
1       Kings        33     17   0.660
2       Queens       32     18   0.640
3       Bishops      27     23   0.540
3       Knights      27     23   0.540
5       Rooks        19     31   0.380
6       Pawns        12     38   0.240

関連

平成19年度春季基本情報午後問6

平成19年度春季 基本情報技術者試験(FE)の午後問題6は、

  • 双六(すごろく)ゲーム

に関する問題でした。

f:id:rahaema:20190406070806p:plain

プログラム例(h19h_fe_pm6.c)

main関数とprtpiece関数内で同じようなswitch case文が登場するので、そこが少し納得できない部分ですが、機能の中に、「割り当てられている動作指示の内容を表示する」とあるので、このままにしておきました。

実行結果

$ gcc h19h_fe_pm6.c && ./a.out
双六を開始します。
プレーヤID : 0
    Start |**                     | Goal!
プレーヤID : 1
    Start |*****                  | Goal!
        ジャンプ!
    Start |                       | Goal!
プレーヤID : 2
    Start |********               | Goal!
        ジャンプ!
    Start |**                     | Goal!
プレーヤID : 3
    Start |********               | Goal!
        ジャンプ!
    Start |**                     | Goal!
プレーヤID : 0
    Start |**********             | Goal!
プレーヤID : 1
    Start |*********              | Goal!
        1回休み!
プレーヤID : 2
    Start |*********              | Goal!
        1回休み!
プレーヤID : 3
    Start |*****                  | Goal!
        ジャンプ!
    Start |                       | Goal!
プレーヤID : 0
    Start |*****************      | Goal!
プレーヤID : 3
    Start |***********            | Goal!
プレーヤID : 0
    Start |***********************| Goal!
プレーヤID : 0 の勝ちです。

関連

平成19年度春季基本情報午後問4

平成19年度春季 基本情報技術者試験(FE)の午後問題4は、

  • 挿入ソート

に関する問題でした。

f:id:rahaema:20190405052439p:plain

プログラム例(h19h_fe_pm4.c)

実行結果

バブルソートと速度比較を行ってみました。計算量は O(n^2) と両者同じですが、実行速度にこれだけの差が出てきますね。同じ計算量なのになぜこれほど違うのか考察してみると更に理解が深まると思います。

$ gcc h19h_fe_pm4.c && ./a.out
Insert Sort  = 8.529973[s]
Bubble Sort = 31.681880[s]

関連

平成19年度秋季基本情報午後問6

平成19年度秋季 基本情報技術者試験(FE)の午後問題6は、

  • 8文字×6文字の文字パターンを回転又は反転して標準出力に出力する関数invert

に関する問題でした。

f:id:rahaema:20190331182602p:plain

プログラム例(h19a_fe_pm6.c)

実行結果

$ gcc h19a_fe_pm6.c && ./a.out
######
#
#
#
###
#
#
#

########
   #   #
   #   #
       #
       #
       #

#
#
#
#   #
#   #
########

#
#
#
###
#
#
#
######

######
     #
     #
     #
   ###
     #
     #
     #