戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2012年 秋期 午後07


スマートフォンのアプリケーションプログラム設計に関する次の記述を読んで、設問1~3に答えよ。

   G社は、スマートフォン(以下、端末という)で稼働する歩数計アプリケーションプログラム(以下、歩数計アプリという)を開発することになった。  歩数計アプリは、人が歩くことによって変動する加速度を解析し、歩数を算出する。端末は、加速度センサと、加速度センサを制御するためのミドルウェアを搭載している。歩数計アプリは、このミドルウェアを使用して、加速度センサのデータを取得する。   〔端末の仕様〕  端末は、電力の消費をできるだけ少なくするために、使用していないときはディスプレイを消灯し、MPUへのクロック供給を停止している。  端末の状態には、MPUへのクロック供給を行っているウェイク状態と、MPUへのクロック供給を停止しているサスペンド状態がある。端末をサスペンド状態にする条件(以下、サスペンド条件という)は、端末が通話及びデータ通信を行っていない状態で、利用者が端末を60秒間操作しないことである。一方、端末がサスペンド状態のときに、着信があるか又は利用者が端末を操作すると、MPUへのクロック供給を再開し、ウェイク状態になる。  ミドルウェアのAPIには、“サスペンド禁止”と“サスペンド許可”がある。アプリケーションプログラムが“サスペンド禁止”を実行すると、サスペンド状態になることが禁止され、サスペンド条件が成立しても、端末はウェイク状態を維持する。  一方、アプリケーションプログラムが“サスペンド許可”を実行すると、サスペンド状態になることが許可され、サスペンド条件が成立したとき、端末はサスペンド状態になる。  なお、電源投入後“サスペンド禁止”を実行するまで、端末はサスペンド状態になることが許可されている。   〔加速度センサ〕  端末に内蔵されている加速度センサは、(横、縦、高さ)の加速度を(X, Y, Z)とし、それぞれ、-19.6メートル/秒²~19.6メートル/秒²の範囲で測定できる。  動作確認のために端末を水平な机の上に置いた。ディスプレイ面を上にしたときZの値は負で、下にしたときZの値は正であった。机の上で、ディスプレイ面を上にして端末を図1の①及び②の方向に動かしてみた。Zの値はaメートル/秒²でほぼ一定であったが、X及びYの値は図2のように変化した。
応用情報技術者試験(平成24年度 秋期 午後 問07 図1、2)
 さらに、端末のb歩行したところ、加速度は図3のようにZの値だけが大きく変化し、X及びYの値は、Zの値の変化の大きさに比べるとほとんど変化しなかった。
応用情報技術者試験(平成24年度 秋期 午後 問07 図03)
〔歩数計アプリ〕  歩数計アプリが加速度センサのデータを取得するとき、ミドルウェアのAPIである“センサ設定”を実行する。このAPIには、加速度センサのデータ取得間隔として50、100、200及び1,000ミリ秒のいずれかを指定し、ミドルウェアから加速度センサのデータを取得するための関数を歩数計アプリが用意して登録する。  ミドルウェアは指定された間隔で加速度センサのデータを取得し、メートル/秒²単位の浮動小数点数に変換し、歩数計アプリで用意した関数に渡す。  歩数計アプリが終了するとき、歩数計アプリはミドルウェアのAPIである“センサ設定解除”を実行し、“センサ設定”で設定した関数の登録を取り消す。  利用者が端末をどのような向きで持ち、歩行するかは特定できない。そこで、3軸方向の加速度を合成して、重力加速度が正の方向になるように補正した。その補正した値を用いて、端末にかかる加速度の変化を調べる。  静止しているとき、端末は重力の影響で一定の加速度を受けている。一方、歩行しているとき、端末は上下に動くので、合成された加速度は図4のように周期的に変動する。この周期を検出し、変動の1周期を1歩と判定する。ただし、変動の大きさが所定の値よりも小さいときは、静止しているものとする。
応用情報技術者試験(平成24年度 秋期 午後 問07 図04)
 歩数計アプリは、1秒間に最大4歩まで計測できるようにする。  歩数計アプリは加速度センサのデータを一定時間ごとに取得(以下、サンプリングという)している。サンプリングによって、復元できるデータの周波数は、サンプリングする周波数の1/2までとする。  1秒間に最大4歩のデータを復元するには、1秒間にc回以上、サンプリングしなければならない。消費電力を考慮し、できる限りサンプリング周期を長くしたい。そこで、加速度センサのデータ取得間隔をdミリ秒とした。  歩数計アプリは、歩数計アプリ用のアイコンをタッチすることで起動する。歩数計アプリは、起動されると“サスペンド禁止”を実行し、計測した歩数をディスプレイに表示する。  ディスプレイに表示している終了ボタンをタッチすると、歩数計アプリは終了する。   〔運用試験〕  歩数計アプリをインストールした端末を、野外に持ち出して試験したところ、歩数計アプリを一度使用すると、歩数計アプリを終了しても電池の消耗が激しい、という指摘があった。  原因を調べたところ、歩数計アプリ終了時にeを実行しておらず、その結果、歩数計アプリが終了しても、端末の状態はf状態のままのとなっていた。

設問1〔加速度センサ〕について、(1)、(2)に答えよ。

(1)本文中のaに入れる適切な数値を解答群の中から選び、記号で答えよ。
解答群  ア:-19.6  イ:-9.8  ウ:-4.9  エ:0  オ:4.9  力:9.8  キ:19.6

模範解答

a:イ

解説

解答の論理構成

  1. 加速度センサの仕様
    問題文には、加速度センサは「-19.6メートル/秒²~19.6メートル/秒²の範囲で測定できる」とあります。これは ±2g()相当の範囲であることを示唆しています。
  2. 静止時に観測される加速度は重力のみ
    端末を水平な机上に静置すると、運動による加速度は 0 であり、地球の重力加速度だけが検出されます。
  3. 軸方向と符号の対応確認
    問題文には「ディスプレイ面を上にしたときZの値は負で、下にしたときZの値は正であった」とあります。ディスプレイ面を上にして静止している状況が設問の条件であり、このとき加速度センサは を Z 軸に出力していると読めます。
  4. 数値の決定
    静止時の重力加速度の絶対値は約 。符号は上記 3. の通り負なので、Z の値は となります。
  5. 解答
    よって a に入る値は「-9.8」であり、解答群の「イ」に該当します。

誤りやすいポイント

  • 重力加速度の符号を逆にしてしまう
    「ディスプレイ面を上にしたときZの値は負」という記述を見落とし、正符号の「9.8」を選んでしまうケースがあります。
  • の近似値を誤る
    実務で を用いることが多いため、選択肢にない「9.81」を探してしまうなど、選択式特有の罠があります。
  • ±2g を ±19.6 と早合点
    レンジ上限「19.6メートル/秒²」をそのまま静止時の値と勘違いすると「キ:19.6」や「ア:-19.6」を選んでしまいます。

FAQ

Q: 重力加速度は場所で変わるのに、なぜ「-9.8」で固定してよいのですか?
A: 情報処理技術者試験では一般に を用います。微小な地域差は設問の想定精度を超えるため無視して構いません。
Q: 端末を傾けて置いた場合も同じ値になりますか?
A: 端末が水平でなければ Z 軸方向の成分は より小さくなり、X・Y にも分散します。設問では「水平な机の上に置いた」と明示されているため、全加速度が Z 軸に現れる前提です。
Q: 加速度センサの「-19.6~19.6」レンジはどう解釈すべきですか?
A: ±19.6 は ±2 を示し、歩行や端末操作程度の加速度(±1 前後)を十分カバーできる範囲です。

関連キーワード: 加速度センサ、重力加速度、三軸測定、単位系

設問1〔加速度センサ〕について、(1)、(2)に答えよ。

(2)本文中のbに入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群  ア:ディスプレイ面を上にして、水平に保ったまま  イ:ディスプレイ面を下にして、水平に保ったまま  ウ:ディスプレイ面を進行方向に向けて、垂直に保ったまま  エ:ディスプレイ面を進行方向の反対に向けて、垂直に保ったまま

模範解答

b:ア

解説

解答の論理構成

  1. 状況整理
    【問題文】では、歩行中の加速度変化として「加速度は図3のようにZの値だけが大きく変化し、X及びYの値は、Zの値の変化の大きさに比べるとほとんど変化しなかった。」と記述されています。
    したがって、歩行による上下動が Z 軸に表れており、X・Y 方向にはほぼ表れていません。
  2. 端末と軸の対応関係
    【問題文】には次の記述があります。
    「端末を水平な机の上に置いた。ディスプレイ面を上にしたときZの値は負で、下にしたときZの値は正であった。」
    この文から、端末を“水平に保つ”と Z 軸が鉛直方向になることが分かります。歩行時の上下方向の加速度を捉えるには、必ず Z 軸が鉛直になる配置―すなわち端末を水平に持つ―が必要です。
  3. 選択肢の判定
    解答群のうち水平保持を示しているのは
    ・「ア:ディスプレイ面を上にして、水平に保ったまま」
    ・「イ:ディスプレイ面を下にして、水平に保ったまま」
    です。どちらも Z 軸は鉛直ですが、図1・図2での動作確認が「ディスプレイ面を上にして」行われていることから、試験条件を合わせると「ア」が最も自然です。
  4. 結論
    以上より b に入る適切な字句は
    「ア:ディスプレイ面を上にして、水平に保ったまま」
    となります。

誤りやすいポイント

  • 「垂直に保ったまま」を選ぶと、歩行時の上下動が X または Y 軸に現れ、Z 軸ではないため記述と矛盾します。
  • 「ディスプレイ面を下にして」を選ぶと符号は反転しますが、図1・図2で“ディスプレイ面を上”としている前提と食い違う可能性があります。
  • “水平”と“垂直”のキーワードを読み落とすと軸の対応を誤認しやすいです。

FAQ

Q: 水平にしていれば「ディスプレイ面を上」でも「下」でも Z 軸は鉛直ですが、なぜ「上」を選ぶのですか?
A: 前段の動作確認(図1・図2)で「ディスプレイ面を上にしたときZの値は負」と測定しており、同一条件で歩行試験を行ったとみるのが妥当だからです。
Q: 端末を垂直に持つと何が起こりますか?
A: Z 軸が水平方向へ向き、歩行による上下動が Z に現れなくなります。結果として X または Y が大きく変化し、【問題文】の「Zの値だけが大きく変化」という観測と矛盾します。
Q: X・Y が全く変化しないという意味ですか?
A: いいえ。「Z の値の変化の大きさに比べるとほとんど変化しなかった」とあるように、僅かな揺れや手振れは X・Y にも現れますが、主成分が Z であるということです。

関連キーワード: 加速度センサ、合成加速度、サンプリング定理、3軸計測、歩行検出

設問2〔歩数計アプリ〕について、(1)〜(3)に答えよ。

(1)歩数計アプリでミドルウェアのAPIである“サスペンド禁止”を実行しなければならない理由を、30字以内で述べよ。

模範解答

「クロック供給が停止するとアプリケーションが稼働しないから」 または 「サスペンド状態では歩数計アプリが稼働しないから」

解説

解答の論理構成

  1. 端末には
    「MPUへのクロック供給を行っているウェイク状態」と
    「MPUへのクロック供給を停止しているサスペンド状態」
    があると記載されています。
    引用:
    「端末の状態には、MPUへのクロック供給を行っているウェイク状態と、MPUへのクロック供給を停止しているサスペンド状態がある。」
  2. サスペンド状態になると MPU へのクロック供給が止まるため、アプリの処理が実行できません。
    歩数を計測するロジックは MPU 上で動作するので、クロック停止=歩数計アプリ停止を意味します。
  3. ミドルウェアの API「“サスペンド禁止”」を実行すると
    「サスペンド条件が成立しても、端末はウェイク状態を維持する。」
    と示されています。
    つまりクロック供給を継続し、アプリが動作し続けます。
  4. 以上より、歩数計アプリは計測中に停止しないよう「“サスペンド禁止”」を必ず実行する必要があります。

誤りやすいポイント

  • ディスプレイが消灯してもウェイク状態なら MPU は動いている点を見落とし、画面表示の有無とサスペンド状態を混同してしまう。
  • 「“サスペンド許可”を実行しなければサスペンドしない」と誤解し、デフォルトが許可状態(サスペンド可)であることを忘れる。
  • 消費電力の記述に引きずられ、「省電力のためには禁止しない方が良い」と考えてしまい、歩数計測の継続性を優先する設計趣旨を取り違える。

FAQ

Q: ディスプレイが消えても歩数計アプリは動き続けるのですか?
A: ウェイク状態であれば MPU へのクロック供給は続くので、画面が暗くても歩数計アプリは動作します。
Q: 「“サスペンド禁止”」をずっと有効にしておくと電池を消耗しませんか?
A: 消耗は増えますが、歩数を正確に計測するための設計上のトレードオフとして採用されています。
Q: サスペンド条件が成立する前にアプリを終了すれば「“サスペンド禁止”」を呼ぶ必要はありませんか?
A: アプリ起動中にいつ成立するか分からないため、起動直後に禁止しておくのが安全です。

関連キーワード: サスペンド、ウェイク、MPU, センサデータ、省電力

設問2〔歩数計アプリ〕について、(1)〜(3)に答えよ。

(2)本文中のcに入れる適切な数値を答えよ。

模範解答

c:8

解説

解答の論理構成

  1. まず問題文の前提を確認します。
    引用:
    ・「歩数計アプリは、1秒間に最大4歩まで計測できるようにする。」
    ・「サンプリングによって、復元できるデータの周波数は、サンプリングする周波数の1/2までとする。」
    ・「1秒間に最大4歩のデータを復元するには、1秒間にc回以上、サンプリングしなければならない。」
  2. 「1秒間に最大4歩」は歩行の“変動回数=信号の周波数”を意味します。したがって、復元したい信号の周波数 です。
  3. 次に引用部分の「サンプリングする周波数の1/2まで」とある規則はナイキストのサンプリング定理です。再現したい信号を失わずに取得するには、サンプリング周波数 が信号周波数の少なくとも2倍必要になります。式で表すと
  4. ここで を代入すると
  5. したがって、1秒間に必要なサンプリング回数は「8回以上」となり、c に入る値は “8” です。

誤りやすいポイント

  • 「最大4歩」をそのままサンプリング回数と読み替え、4回で十分と考えてしまう。ナイキストの 2 倍条件を忘れやすいです。
  • 「1/2まで」を「1/2にする」と誤読し、2Hz(2回/秒)と勘違いするケースがあります。文章は“まで”と書かれ、上限ではなく下限を導くための手掛かりです。
  • 4歩=4Hzという単位変換をせず、単純に“4”という整数だけを扱ってしまうと論理が飛躍します。周波数の単位(Hz)を意識することが重要です。

FAQ

Q: 「最大4歩」は4Hzと見て良いのですか?
A: はい。1秒間に4回起こる現象は周波数で表すと4Hzです。歩数の変動を信号とみなせば周波数換算できます。
Q: 「サンプリングする周波数の1/2まで」は何を示しているのですか?
A: ナイキスト周波数の説明です。信号を失わずに再現するには、サンプリング周波数が信号周波数の2倍以上必要であると示唆しています。
Q: 8回/秒より頻繁にサンプリングするとどうなりますか?
A: 精度は上がりますが、加速度センサの取得回数が増える分だけ電力消費が大きくなります。本問では「できる限りサンプリング周期を長くしたい」とあるため、最小限の8回/秒が最適解になります。

関連キーワード: ナイキスト周波数、サンプリング定理、加速度センサ、周波数解析

設問2〔歩数計アプリ〕について、(1)〜(3)に答えよ。

(3)本文中のdに、ミドルウェアのAPIである“センサ設定”で指定できるデータの取得間隔から適切な数値を選んで答えよ。

模範解答

d:100

解説

解答の論理構成

  1. 周波数条件の把握
    【問題文】には、 ・「歩数計アプリは、1秒間に最大4歩まで計測できるようにする。」
    とあるので、歩行データの最高周波数は 4 Hz です。
  2. サンプリング定理(ナイキスト条件)の適用
    さらに、 ・「サンプリングによって、復元できるデータの周波数は、サンプリングする周波数の1/2までとする。」
    と明記されています。
    よってサンプリング周波数
  3. サンプリング周期の上限制約
    周期 なので
    125 ms 以下であれば条件を満たします。
  4. APIで指定できる選択肢との突合
    【問題文】には、 ・「“センサ設定”を実行する。このAPIには、加速度センサのデータ取得間隔として 50、100、200及び1,000ミリ秒 のいずれかを指定し…」
    とあります。
    このうち 125 ms 以下なのは 50 ms100 ms の二つ。
  5. 省電力の要求
    ・「消費電力を考慮し、できる限りサンプリング周期を長くしたい。」
    と書かれているため、125 ms に最も近い長い方、すなわち 100 ms を選択します。
  6. 結論
    したがって d に入る値は
    「100」 です。

誤りやすいポイント

  • 4 Hz をそのままサンプリング周波数と誤解し、200 ms を選んでしまう。
  • 125 ms を越えても大丈夫と勘違いし、1,000 ms を誤答する。
  • 「できる限り長く」という要求を見落として 50 ms を選択する。
  • 周波数と周期の換算(Hz ⇔ ms)の単位換算ミス。

FAQ

Q: 50 ms でも条件を満たしますか?
A: 「サンプリング周波数が8 Hz以上」であれば 20 Hzに相当する50 ms も満たします。ただし省電力の観点から最長の100 msが優先されます。
Q: サンプリング定理とは何ですか?
A: アナログ信号をディジタル化するとき、元の信号周波数の2倍以上でサンプリングしないと情報を正しく復元できないという理論です。本問では “サンプリングする周波数の1/2まで” と表現されています。
Q: 歩行中の最高4歩/秒は必ずしも一定でないのでは?
A: 設計要件として「最大4歩」を前提に安全側でサンプリング周波数を決めています。実際の歩行がそれ以下であっても問題はありません。

関連キーワード: サンプリング定理、Nyquist周波数、加速度センサー、消費電力最適化

設問3〔運用試験〕について、(1)、(2)に答えよ。

(1)端末で実行するミドルウェアのAPIのうち、本文中のeに入れる適切なAPI名を答えよ。

模範解答

e:サスペンド許可

解説

解答の論理構成

  1. 端末が電池を消耗した状況
    【問題文】に「歩数計アプリを一度使用すると、歩数計アプリを終了しても電池の消耗が激しい」とあります。消費電力が増える典型的な原因は、端末が省電力の「サスペンド状態」に入れず、クロックが供給され続ける「ウェイク状態」に留まることです。
  2. ウェイク状態が続く条件
    ミドルウェアの説明より、 「アプリケーションプログラムが“サスペンド禁止”を実行すると、サスペンド状態になることが禁止され、サスペンド条件が成立しても、端末はウェイク状態を維持する。」
    と明記されています。
  3. 歩数計アプリの起動時処理
    歩数計アプリは「起動されると“サスペンド禁止”を実行し」と書かれており、計測中は意図的にウェイク状態を保っています。
  4. 終了時に必要な処理
    終了時に行う処理として
    「歩数計アプリが終了するとき、歩数計アプリはミドルウェアのAPIである“センサ設定解除”を実行し」とだけ記述があります。
    しかし、“サスペンド禁止” を解除する呼出しは見当たりません。解除しなければ端末は「ウェイク状態」のままです。
  5. 解除に対応するAPI名
    端末を再びサスペンド可能に戻すAPIは
    「アプリケーションプログラムが“サスペンド許可”を実行すると、サスペンド状態になることが許可され…」
    と説明されています。よって終了時に呼ぶべきなのは “サスペンド許可” です。
  6. 結論
    以上から、e に入るAPI名は
    e:サスペンド許可

誤りやすいポイント

  • “センサ設定解除” を呼んでいるので十分だと誤判断し、電源管理 API の呼出し忘れに気付かない。
  • “サスペンド禁止” と対になる API 名を “サスペンド解除” などと誤記しやすい。
  • 端末の初期状態(電源投入後はサスペンド許可)を読み飛ばし、禁止状態が永続する仕様を見落とす。

FAQ

Q: “サスペンド禁止” と “サスペンド許可” はトグル動作ですか?
A: いいえ。各APIは明示的に端末状態の許可/禁止を設定します。“サスペンド禁止” を実行したら、“サスペンド許可” を呼ぶまで禁止状態が維持されます。
Q: “センサ設定解除” だけでは省電力にならないのはなぜ?
A: センサの割込みやデータ転送は停止しますが、CPUクロックは“サスペンド禁止”の影響で供給され続けるため、バックライトOFF中でも高い電力を消費します。
Q: アプリ終了時に“サスペンド許可”を忘れると他アプリにも影響しますか?
A: はい。端末全体が常にウェイク状態となるため、他アプリを使わない待受中でもバッテリ消費が高くなります。

関連キーワード: 省電力制御、電力管理、スリープモード、APIコール

設問3〔運用試験〕について、(1)、(2)に答えよ。

(2)本文中のfに入れる適切な端末の状態を答えよ。

模範解答

f:ウェイク

解説

解答の論理構成

  1. 端末の2つの状態を確認
    【問題文】では、 “MPUへのクロック供給を行っているウェイク状態” と
    “MPUへのクロック供給を停止しているサスペンド状態”
    の二つが定義されています。
    → 選択肢はこの 2 つしかありません。
  2. “サスペンド禁止” の効果を確認
    同じく【問題文】には、 “アプリケーションプログラムが“サスペンド禁止”を実行すると、サスペンド状態になることが禁止され、サスペンド条件が成立しても、端末はウェイク状態を維持する。”
    とあります。
    → “サスペンド禁止” をかけたままなら端末は “ウェイク状態” で固定されます。
  3. 歩数計アプリの動作を確認
    【問題文】
    “歩数計アプリは、起動されると“サスペンド禁止”を実行し、…”
    とあるので、アプリ実行中は “ウェイク状態” になります。
  4. 終了処理の不備を確認
    〔運用試験〕では、 “歩数計アプリ終了時にeを実行しておらず、その結果、歩数計アプリが終了しても、端末の状態はf状態のまま…”
    とあります。
    つまり “サスペンド禁止” を解除しないままアプリを閉じたため、端末は依然 “ウェイク状態” です。
  5. 結論
    以上より f に入るのは “ウェイク” です。

誤りやすいポイント

  • “サスペンド状態” と書き間違える
    “サスペンド禁止” の表現に引きずられ、端末がサスペンドに固定されると誤解しがちです。
  • “サスペンド許可” を呼ばなかった=即サスペンド状態になる、と早合点する
    実際には “サスペンド許可” を呼ばなければ “ウェイク状態” が続きます。
  • 状態名を略称や英語で書く
    解答欄には【問題文】と同じ “ウェイク” と記述する必要があります。

FAQ

Q: “サスペンド禁止” を解除する正しい API は何ですか?
A: 【問題文】にある “サスペンド許可” が正しい解除 API です。
Q: “サスペンド許可” を呼んでもすぐサスペンド状態になりますか?
A: いいえ。サスペンド条件(“端末が通話及びデータ通信を行っていない状態で、利用者が端末を60秒間操作しない”)が成立したときに初めてサスペンド状態へ遷移します。
Q: 電池消耗を防ぐ一般的な対策は?
A: 不要になったセンサ取得や “サスペンド禁止” を速やかに解除し、端末をサスペンド可能に戻すことが基本的な節電策です。

関連キーワード: 省電力制御、加速度センサ、サンプリング周波数、モバイルAPI
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について