応用情報技術者試験の過去問&キーワードを動画2443本の動画で解説!スキマ時間に動画!※2017年9月11日現在

PR広告

平成28年度秋 応用情報技術者試験 午後問3 プログラミング 設問1 合格率アップ!動画付き解説!

魔方陣に関する次の記述を読んで、設問1~3に答えよ。

 魔方陣とは、正方形のマス目(方陣)に数を配置し、縦・横・対角線のいずれにおいても、その並びの数の合計が同じになるものである。ここでは、N×Nの方陣(Nは3以上の自然数)に1からN2までの数を過不足なく配置したものとする。このとき、縦・横・対角線のN個のマスの合計値は、いずれも(+N)÷2となる。

 Nが3の場合の魔方陣の一つを図1に示す。

4 9 2
3 5 7
8 1 6

図1 3×3の魔法陣の一つ

 Nが奇数の場合、魔方陣の一つを次の手順で作ることができる。N=3のときに、この手順によって1~6の数が配置される様子を図2に示す。

〔魔方陣の作り方〕

 魔方陣の作り方は、次のとおりである。ここで(A)~(E)は図2中の該当箇所を示す。

(1) N×Nの全てのマスは何も入っていない空白の状態とする。

(2) 最下行の中央のマスを現在位置とし、現在位置に数1を配置する(A)。

(3) 現在位置の右下のマスが空白かどうか確認する。このとき、最下行の下は最上行(B)、最右列の右は最左列(C)とする。右下隅の右下は、左上隅(D)である。

(4) (3)で確認したマスが空白の場合は、そこを新しい現在位置とする。(3)で確認したマスが空白でない場合は、現在位置の上のマスを新しい現在位置とする(E)。この際、新しい現在位置が最上行よりも上になることはない。

(5) 数を一つ増やし、現在位置にその数を配置する。

(6) 全てのマスが埋まるまで、 (3)~(5)を繰り返す。

平成28年度秋 応用情報技術者試験午後 午後問3 プログラミング 合格率アップ!動画解説!

〔魔方陣のプログラム〕

 魔方陣の数の配置を記憶する、整数型の2次元配列 houjin を用意する。配列の添字は1から始まる。行y列xのマスは、houjin[y][x] で表現する。例えば、 図1中の1が配置されているマスは、houjin[3][2] である。

 数の配置に関する判定をするために、配列 houjin の領域を(N+1)×(N+1)の大きさで用意し、適切な初期値を設定する。Nが3の場合の例を図3に示す。数が既に配置されているかどうかを判定するために、図3の太枠内の各マスの初期値は0とする。また、現在位置の右下のマスが太枠の外であることを判定するために、 4行目のマスに SOTO_SHITA、 4列目のマスにSOTO_MIGI、行4列4のマスにSOTO_KADOの三つの異なる定数(0からN2までの整数以外の整数)を初期値として設定する。

平成28年度秋 応用情報技術者試験午後 午後問3 プログラミング 合格率アップ!動画解説!

 配列 houjin の初期化をする関数 shokika、及び数を配置する関数 mahoujin のプログラムを図4に示す。引数Nは、正の奇数(N≧3)である。

function shokika(N)
  for( yを1からNまで1ずつ増やす )
    for( xを1からNまで1ずつ増やす )
      houjin[y][x] ← 0
    endfor
     ← SOTO_MIGI
  endfor
  for( xを1からNまで1ずつ増やす )
     ← SOTO_SHITA
  endfor
  houjin[N+1][N+1] ← SOTO_KADO
endfunction

function mahoujin(N)
  y ← N
  
  suuji ← 1
  houjin[y][x] ← suuji
  
  while( suujiが )
    yb ← y
    xb ← x
    
    /* (F) はここから */
    y ← y+1
    x ← x+1
    if( houjin[y][x]がSOTO_SHITAと等しい )
      y ← 1
    elseif( houjin[y][x]がSOTO_MIGIと等しい )
      x ← 1
    elseif( houjin[y][x]がSOTO_KADOと等しい )
      y ← 1
      x ← 1
    endif
    /* (F) はここまで */
    
    if( houjin[y][x]が0と等しくない )
      y ← 
      x ← 
    endif
    
    suuji ← suuji+1
    houjin[y][x] ← suuji
  endwhile
endfunction

図4 魔法陣のプログラム

〔プログラムの判定部分の改変〕

 図4のプログラムによるメモリ使用量の削減のために、配列 houjin の領域をN×Nに縮小し、定数SOTO_SHITA、 SOTO_MIGI及びSOTO_KADOを使わないようにするプログラムの改変を考えた。図4の(F)の部分を改変したプログラムを図5に示す。

y ← y+1
x ← x+1
if( yがよりも大きい )
  y ← 
endif
if( xがよりも大きい )
  x ← 
endif

図5 図4の(F)の部分を改変したプログラム

設問1

本文中のに入れる適切な式を答えよ。

動画解説

解説

は次の式の中にあります。

( + N ) ÷ 2

ポイント:この式は何を表現しているのでしょうか?

この式の説明が前段にあります。

魔方陣とは、正方形のマス目(方陣)に数を配置し、縦・横・対角線のいずれにおいても、その並びの数の合計が同じになるものである。ここでは、N×Nの方陣(Nは3以上の自然数)に1からN2までの数を過不足なく配置したものとする。このとき、縦・横・対角線のN個のマスの合計値は、いずれも(+N)÷2となる。

4 9 2
3 5 7
8 1 6

図1 3×3の魔法陣の一つ

縦を計算

4 + 3 + 8 = 15

9 + 5 + 1 = 15

2 + 7 + 6 = 15

横を計算

4 + 9 + 2 = 15

3 + 5 + 7 = 15

8 + 1 + 6 = 15

対角線を計算

4 + 5 + 6 = 15

2 + 5 + 8 = 15

と全て15になります。

N = 3の時15です。

縦・横・対角線の3個のマスの合計値は

( + 3 ) ÷ 2 = 15

となります。

この式を整理すると

( + 3 ) ÷ 2 = 15

+ 3 = 30

= 27

です。

27は33です。

従って、N3となります!

平成28年度秋 応用情報技術者試験午後

問1 情報セキュリティ 設問1

問1 情報セキュリティ 設問2

問1 情報セキュリティ 設問3

問2 経営戦略 設問1

問2 経営戦略 設問2

問2 経営戦略 設問3

問2 経営戦略 設問4

問3 プログラミング 設問1

問3 プログラミング 設問2

問3 プログラミング 設問3

問4 システムアーキテクチャ 設問1

問4 システムアーキテクチャ 設問2

問4 システムアーキテクチャ 設問3

問4 システムアーキテクチャ 設問4

問5 ネットワーク 設問1

問5 ネットワーク 設問2

問5 ネットワーク 設問3

問6 データベース 設問1

問6 データベース 設問2

問6 データベース 設問3

問6 データベース 設問4

問8 情報システム開発 設問1

問8 情報システム開発 設問2

問8 情報システム開発 設問3

問8 情報システム開発 設問4

問9 プロジェクトマネジメント 設問1

問9 プロジェクトマネジメント 設問2

問9 プロジェクトマネジメント 設問3

問10 サービスマネジメント 設問1

問10 サービスマネジメント 設問2

問10 サービスマネジメント 設問3

問11 システム監査 設問1

問11 システム監査 設問2

問11 システム監査 設問3

問11 システム監査 設問4

問11 システム監査 設問5

問11 システム監査 設問6


PR広告

フェイスブックコメント

難解な応用情報技術者試験午前で80点中48点を取る優しい方法

平成28年度春 応用情報技術者試験 午後 テキスト・動画解説

平成28年度春 応用情報技術者試験 午後 動画解説再生リスト

平成28年度春 応用情報技術者試験 午前 テキスト・動画解説

平成28年度秋 応用情報技術者試験 午前 動画解説再生リスト

平成27年度秋 応用情報技術者試験 午前 テキスト・動画解説

平成27年度秋 応用情報技術者試験 午前 動画解説再生リスト

平成27年度春 応用情報技術者試験 午後 テキスト・動画解説

平成27年度春 応用情報技術者試験 午後 動画解説再生リスト

平成27年度春 応用情報技術者試験 午前 テキスト・動画解説

平成27年度春 応用情報技術者試験 午前 動画解説再生リスト

平成26年度秋 応用情報技術者試験 午前 テキスト・動画解説

平成26年度秋 応用情報技術者試験 午前 動画解説再生リスト

平成26年度春 応用情報技術者試験 午前 テキスト・動画解説

平成26年度春 応用情報技術者試験 午前 動画解説再生リスト