平成28年春期午後問7

サルコップさん  
(No.1)
https://www.ap-siken.com/kakomon/28_haru/pm07.html

問題文「設問3  図3中のaに入れる適切な内容を,15字以内で答えよ。」
回答「画面切替え中(または切替えフラグを1にする)」ですが、
この回答に至るまで流れについて、質問です。

まず、表2より入力判定タスクは「タッチパネルタスクから通知された情報と、画面表示タスクから通知された画面情報を基に、タッチの有効性を判断する。有効な場合、メインタスクに通知する。」となっています。
この文章から、条件分岐となるのは「タッチの有効性を判断する」という一文が該当すると思います。
また、条件分岐となるための入力情報は「①タッチパネルタスクから通知された情報」、「②画面表示タスクから通知された画面情報」の2つがありそうですが、
「①タッチパネルタスクから通知された情報」は実際には条件分岐のための入力情報はなく、入力判定タスクへ移行するために中間経過処理であり、
条件のための入力情報は「②画面表示タスクから通知された画面情報」のみという認識でいいでしょうか。

そして、この「②画面表示タスクから通知された画面情報」の中に「画面種別」と「ボタンの座標」という2つの情報があり、それぞれが分岐条件となっているということでしょうか。

自分で問題を解いているときは、①、②が順番に入力条件になっていて、順番的に②が2番目の分岐だから、①が本問の分岐条件になっているはずだと思ってしまいましたが、①による入力条件って何だろうとなり、回答に至りませんでした。
2023.01.08 22:52
boyonboyonさん 
AP シルバーマイスター
(No.2)
私の考えです。スレ主様の参考になれば、幸いです。

入力の判定には、
①タッチパネルタスクから通知された情報(タッチされた座標情報)
②画面表示タスクから通知された画面情報
の2つの情報を使い、ボタンの座標内かどうか判定します。
これが、2つ目の分岐になると思います。
入力判定タスクの主な処理で、これだけでも良さそうなのですが、
①の情報は、確実に手に入りますが、②の情報は、手に入らない場合があります。
それは、画面には3種類あり、どの画面か確定していないと通知できないからです。
だから、処理の最初に、画面情報が確定しているかどうか判断する条件を入れなければならないと思います。

画面情報が確定していないのは、画面の切り替え中になると思います。
2023.01.09 19:38
サルコップさん  
(No.3)
boyonboyonさん
丁寧な解説ありがとうございます。

>①の情報は、確実に手に入りますが、②の情報は、手に入らない場合があります。
>それは、画面には3種類あり、どの画面か確定していないと通知できないからです。
画面が確定していないと、どの画面に対しての座標か不明ということでしょうか。なんとなくわかりました。


別件で申し訳ありませんが、もしわかれば教えてください。
表2のタスクの優先度について、
例えば初期画面の選択画面が表示されているとして、
商品選択ボタンをタッチすると「画面表示タスク」と「タッチパネルタスク」とでは、「タッチパネルタスク」の優先度が高いため、「タッチパネルタスク」が先に実行されます。また表2から入力判定タスクへ移行するのは、タッチパネルタスクからとしか記載されていないので、
タッチパネルタスク⇒入力判定タスク⇒画面表示タスクの順番になってしまい、
画面切り替えのフラグ判定ができないように思えますが、
自分がどこか勘違いしていると思うのですが、わかりません。
よろしくお願いいたします。
2023.01.10 13:30
boyonboyonさん 
AP シルバーマイスター
(No.4)
タッチが、無効の時
タッチパネルタスク⇒入力判定タスク⇒無効なので、入力判定タスク終了

タッチが、有効の時
タッチパネルタスク⇒入力判定タスク⇒メインタスクに通知後、入力判定タスク終了
となり、メインタスクの処理が行われます。
2023.01.10 15:56
サルコップさん  
(No.5)
boyonboyonさん
ご回答ありがとうございます。

>タッチが、有効の時
>タッチパネルタスク⇒入力判定タスク⇒メインタスクに通知後
画面表示タスクが行われていませんが、その場合、フラグは初期値の0のままだから、
メイン処理に入るということでしょうか。
2023.01.10 18:57
boyonboyonさん 
AP シルバーマイスター
(No.6)
入力判定タスクの処理の流れを整理してみます。

開始

・通知された情報を取得(タッチされた座標情報)

・画面切り替え中か?(切り替えフラグが1か?)
<No>                              <Yes>⇒入力判定タスク終了
・画面表示タスクに情報要求を通知して、
  画面情報(画面種別とボタンの座標情報)を取得
・タッチされた座標情報と画面情報を比較

・ボタンの座標内か?
<Yes>                    <No>(ボタンでないところをタッチ)⇒終了
・メインタスクに画面種別と有効なボタンの座標情報を通知⇒終了

メインタスクでは、通知された情報をもとに、どの画面でどのボタンが押されたかを判断し、それに対応する処理を行います。
******************************************
上記の処理で、選択画面で商品選択ボタンが押されていた場合は、メインタスクの処理で注文画面に遷移します。
遷移するには、画面表示タスクに指示をします。
2023.01.11 01:06
サルコップさん  
(No.7)
>boyonboyonさん
ご回答ありがとうございます。

>・通知された情報を取得(タッチされた座標情報)
>・画面切り替え中か?(切り替えフラグが1か?)
><No>                              <Yes>⇒入力判定タスク終了

度々申しお手数おかけしてすみません
タスクの優先度は
タッチパネル(高)>=入力判定(高)>メイン>画面表示(低)
なので、画面表示が実行される前に、タッチパネル、入力判定が行われてしまい
画面切り替えのフラグセットは初期値のままではないかと思うのですが、
このタスク優先度とは何を指しているのでしょうか。
2023.01.12 20:26
サルコップさん  
(No.8)
>boyonboyonさん

どうも私の思い込みで頭が整理できていないようなので、
期間をおいてリフレッシュして再度問題を復習しようと思います。
お手数おかけしました。
大変ありがとうざいました。
2023.01.12 20:37

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop