• 検索結果がありません。

平成27年度後期 情報検定

N/A
N/A
Protected

Academic year: 2021

シェア "平成27年度後期 情報検定"

Copied!
32
0
0

読み込み中.... (全文を見る)

全文

(1)情報システム試験. 文部科学省後援. 平成27年度後期 情報検定 <実施. 平成28年2月14日(日)>. プログラミングスキル (説明時間. 10:00~10:10). (試験時間. 10:10~11:40). ・試験問題は試験開始の合図があるまで開かないでください。 ・解答用紙(マークシート)への必要事項の記入は,試験開始の合図と同時 に行いますので,それまで伏せておいてください。 ・試験開始の合図の後,次のページを開いてください。<受験上の注意>が 記載されています。必ず目を通してから解答を始めてください。 ・試験問題は,すべてマークシート方式です。正解と思われるものを1つ選 び,解答欄の. をHBの黒鉛筆でぬりつぶしてください。2つ以上ぬりつ. ぶすと,不正解になります。 ・辞書,参考書類の使用および筆記用具の貸し借りは一切禁止です。 ・電卓の使用が認められます。ただし,下記の機種については使用が認めら れません。 <使用を認めない電卓>. .. 1.電池式(太陽電池を含む)以外 の電卓 2.文字表示領域が複数行ある電卓(計算状態表示の一行は含まない) 3.プログラムを組み込む機能がある電卓 4.電卓が主たる機能ではないもの *パ ソ コ ン ( 電 子 メ ー ル 専 用 機 等 を 含 む ), 携 帯 電 話 ( P H S ), ス マ ー ト フ ォ ン , タ ブ レ ッ ト , 電子手帳,電子メモ,電子辞書, 翻訳機能付き電卓,音声応答のある電卓,電卓付腕時計等 5.その他試験監督者が不適切と認めるもの. 一般財団法人. 職業教育・キャリア教育財団. 1 プログラミングスキル.

(2) <受験上の注意> 1.この試験問題は27ページあります。ページ数を確認してください。 乱丁等がある場合は,手をあげて試験監督者に合図してください。 ※問題を読みやすくするために空白ページを設けている場合があります。 2.解答用紙(マークシート)に,受験者氏名・受験番号を記入し,受験番号下欄の数字 をぬりつぶしてください。正しく記入されていない場合は,採点されませんので十分注 意してください。 3.試験問題についての質問には,一切答えられません。自分で判断して解答してくださ い。 4.試験中の筆記用具の貸し借りは一切禁止します。筆記用具が破損等により使用不能と なった場合は,手をあげて試験監督者に合図してください。 5.試験を開始してから30分以内は途中退出できません。30分経過後退出する場合は,も う一度,受験番号・マーク・氏名が記載されているか確認して退出してください。なお, 試験終了5分前の合図以降は退出できません。試験問題は各自お持ち帰りください。 6.試験後にお知らせする合否結果(合否通知),および合格者に交付する「合格証・認定 証」はすべて,Webページ(PC,モバイル)での認証によるデジタル「合否通知」, デジタル「合格証・認定証」に移行しました。 ①団体宛にはこれまでと同様に合否結果一覧ほか,試験結果資料一式を送付します。 ②合否等の結果についての電話・手紙等でのお問い合わせには,一切応じられませんの で,ご了承ください。. 2 プログラミングスキル.

(3) <問題の構成> 必須問題. 全員解答. 問題1~問題4. 2 ページ~14 ページ. 選択問題. 次の問題から1問選択し解答せよ。. ............... (選択した問題は解答用紙「選択欄」に必ずマークすること ) ※選択欄にマークがなく,解答のみマークした場合は採点を行いません。. ・C言語の問題. 17 ページ~ 19 ページ. ・表計算の問題. 20 ページ~ 24 ページ. ・アセンブラの問題. 25 ページ~ 27 ページ. 1 プログラミングスキル.

(4) 必須問題 問題1. 次のリストに関する記述を読み,設問に答えよ。 リストとは,ノード(リスト要素)同士をポインタで結ぶデータ構造である。1つ. のリスト要素は,図1のような構造になる。 データ 図1. ポインタ. リスト要素の構造. リストの先頭から順番にデータをアクセスし,後戻りできないものを単方向リスト と呼ぶ(図2)。 ROOT. データ. ポインタ. ・・・. データ 図2. データ. ・・・. ポインタ. ポインタ. データ. NULL. 単方向リストの構造. ROOT は最初のデータが格納されている場所を示すポインタである。 ポインタは,次のデータの格納場所を示すものであり,最後のリスト要素のポイン タには NULL が入る。 次の図3は,単方向リストをメモリに展開した図である。1つのリスト要素は 2 つ の連続した領域に格納され,最初の領域にデータ,次の領域にポインタを格納する。 ポインタに格納するのはデータが格納されている番地である。 ここでは,ROOT の値が 1004 なので,リストの先頭は 1004 番地から始まる。リスト の先頭からたどると,100,110,120,130,140,150,160 の順番にデータが取り出 される。 ROOT. 1004. 番地. 内容. 番地. 内容. 番地. 内容. 1000. 110. 1008. 130. 1016. 160. 1001. 1006. 1009. 1010. 1017. NULL. 1002. 180. 1010. 140. 1018. 155. 1003. NULL. 1011. 1014. 1019. NULL. 1004. 100. 1012. 170. 1020. 165. 1005. 1000. 1013. NULL. 1021. NULL. 1006. 120. 1014. 150. 1022. 175. 1007. 1008. 1015. 1016. 1023. NULL. 図3. 2 プログラミングスキル. メモリに展開した単方向リスト.

(5) <設問1>. 次のリストからのデータ削除に関する記述中の. (1). に入れるべき適 必須問題. 切な数値を解答群から選べ。 リストからデータを削除するには,ポインタの値を入れ替えればよい。 図3のように配置されているリストから,1006 番地に格納されている 120 を削除す るには,「1004 番地→1000 番地→1006 番地→1008 番地→…」となっている参照の順 序から,1006 番地を飛び越すように変更する。具体的には, (2). (1). 番地の値を. に変更すればよい。. なお,リストの先頭データを削除する場合は,ROOT の値を変更する。図3のような 場合で先頭のデータを削除するには,ROOT の値を. (3). に変更する。. (1) ~ (3) の解答群 ア.1000. イ.1001. ウ.1002. エ.1003. オ.1004. カ.1005. キ.1006. ク.1007. ケ.1008. コ.1009. <設問2>. 次のリストへのデータ挿入に関する記述中の. (1). に入れるべき適切. な数値を解答群から選べ。 図3の状態から,1018 番地に格納されている 155 を 150 と 160 のデータの間に参照 されるように挿入する。リストを参照する順番は, 「…→1014 番地→1016 番地」となっ ているので,この間に 1018 番地を参照するようにポインタを変更する。この場合, 1015 番地の値を. (4). ,1019 番地の値を. (5). に変更する。. (4) ,(5) の解答群 ア.1014. イ.1016. ウ.1018. エ.1020. 3 プログラミングスキル.

(6) 問題2. 次のバブルソートに関する記述を読み,各設問に答えよ。. [バブルソートの説明] 1 次元配列 A[0]~A[N-1]に N 個のデータが格納されている。このデータを,バブル ソート法により昇順に整列する。バブルソート法とは,データを整列するためのアル ゴリズムであり,次の手順1,手順2により整列する。 手順 1:配列の先頭から,隣接する要素を順次比較し,最大値を A[N-1]に求める。 図1に N = 5 とした例を示す. 図1. N = 5 とした手順1の例. 手順2:N を 1 ずつ減らしながら,手順 1 を N = 1 となるまで繰り返す。. 4 プログラミングスキル.

(7) <設問1>. 次のバブルソートに関する流れ図中の. (1). に入れるべき適切な字句. を解答群から選べ。 開 始 k←N ー 1 ループ1 k > 0 の間繰り返す m←0 ループ2 m < k の間繰り返す A[m]:A[m+1]. ≦. > w ← A[m+1] (1). データを 交換する. (2). (3). 隣の要素へ添え字を変更. ループ2 (4). 最大値格納要素位置 の添え字を変更. ループ1 終 了. 図2. バブルソートの流れ図. (1) ,(2) の解答群 ア.A[m] ← w. イ.A[m] ← A[m+1]. ウ.A[m+1] ← w. エ.A[m+1] ← A[m]. (3) ,(4) の解答群 ア.k ← k + 1. イ.k ← k - 1. ウ.m ← m + 1. エ.m ← m - 1. 5 プログラミングスキル.

(8) <設問2>. 次の流れ図のトレースに関する記述中の. (1). に入れるべき適切な字. 句を解答群から選べ。 N=6 とし,1 次元配列 A の内容が図3のとき,図2中の空欄(4)を初めて実行する直 前の 1 次元配列 A の内容は. (5). である。. 添え字. 0. 1. 2. 3. 4. 5. 配列 A. 6. 4. 7. 3. 8. 2. 図3. 1 次元配列 A の内容. (5) の解答群. 6 プログラミングスキル. ア.. 4. 3. 6. 2. 7. 8. イ.. 4. 3. 6. 7. 2. 8. ウ.. 4. 6. 3. 2. 7. 8. エ.. 4. 6. 3. 7. 2. 8.

(9) 問題を読みやすくするために, このページは空白にしてあります。. 7 プログラミングスキル.

(10) 問題3. 次の入園料に関する説明を読み,各設問に答えよ。. [入園料の説明] J遊園地は 9 時から 21 時まで営業しており,大人は 2000 円,子ども(中学生以下) は 1000 円の入園料を徴収している。また,より多くの人に来園してもらうため,次 のような割引サービスを行っている。 表. 割引サービス. 条件. 割引率. 10 時以前に来園. 20%. 17 時以降に来園. 50%. 団体割引(10 人以上). 30%. 割引券の利用. 10%. これらの割引サービスは,割引券の利用を除き併用はできず,条件が重複する場合 は,割引率が一番高いサービスだけを適用する。例えば,9 時に 20 人で来園した場合 は,10 時以前の来園である 20%と団体割引の 30%に該当するが,割引率の大きい 30% が適用される。 割引券を利用した場合は各割引率をさらに 10%上乗せする。例えば,12 時に 20 人 で来園して割引券を利用した場合は,団体割引の 30%と合わせて,40%の割引率になる。. <設問1>. 次の流れ図は,来園時間,来園者数,割引券の有無から割引率を変数. waribiki に求める流れ図である。流れ図中の. (1). に入れるべき適切な字句を解. 答群から選べ。 (1) ~ (4) の解答群. 8 プログラミングスキル. ア.waribiki:20%. イ.waribiki:30%. ウ.来園時間:9 時. エ.来園時間:10 時. オ.来園時間:17 時. カ.来園時間:21 時. キ.来園者数:10 人. ク.来園者数:20 人.

(11) [流れ図]. 開 始. waribiki ← 0%. >. (1) ≦. (2). <. waribiki ← 20% ≧ waribiki ← 50%. ≧. (3) <. (4). ≧. < waribiki ← 30%. 割引券あり. No. Yes waribiki ← waribiki + 10%. 終 了. 図1. 割引率を求める流れ図. 9 プログラミングスキル.

(12) <設問2>. 次のテストケースの作成に関する記述中の. (1). に入れるべき適切な. 字句を解答群から選べ。 図1の流れ図の動作を検証するため,テストケースを作成する。テストケースの作 成にあたって,デシジョンテーブルを作成した。 割引サービスに関する条件は 4 種類なので,それぞれの真偽(Yes と No)を組み合 わせると,条件指定は全部で. (5). 通りになるが,10 時以前の来園と 17 時以降の. 来園は両方とも真(Yes)になることは無いので,条件指定は次の 12 通りである。 10 時以前の来園. Y. Y. Y. Y. N. N. N. N. N. N. N. N. 17 時以降の来園. N. N. N. N. Y. Y. Y. Y. N. N. N. N. 10 人以上で来園. Y. Y. N. N. Y. Y. N. N. Y. Y. N. N. 割引券あり. Y. N. Y. N. Y. N. Y. N. Y. N. Y. N. 割引なし. -. -. -. -. -. -. -. -. -. -. -. ○. 10%割引. -. -. -. -. -. -. -. -. -. -. ○. -. 20%割引. -. -. -. ○. -. -. -. -. -. -. -. -. 30%割引. -. ○. ○. -. -. -. -. -. -. ○. -. -. 40%割引. ○. -. -. -. -. -. -. -. ○. -. -. -. 50%割引. -. -. -. -. -. ○. -. ○. -. -. -. -. 60%割引. -. -. -. -. ○. -. ○. -. -. -. -. -. 図2. 割引率のデシジョンテーブル. 図2のデシジョンテーブルを動作に着目して整理したのが,図3のデシジョンテー ブルである。 N. -. プログラミングスキル. N. Y. N. N. N. -. Y. N. N. N. Y. Y. N. -. -. -. -. -. ○. -. -. -. -. -. ○. -. -. ○. -. -. -. -. -. -. 30%割引. ○. -. -. -. -. ○. -. -. 40%割引. -. -. -. -. ○. -. -. -. 50%割引. -. -. -. ○. -. -. -. -. 60%割引. -. -. ○. -. -. -. -. -. Y. Y. 17 時以降の来園. N. N. 10 人以上で来園. N. N. 割引券あり. Y. N. 割引なし. -. -. 10%割引. -. 20%割引. 図3. 10. N. 10 時以前の来園. (6). (7). 整理した割引率のデシジョンテーブル.

(13) これにより,デシジョンテーブルのすべての条件を網羅するには,12 種類のテスト パターンを図3に従って 8 種類にまとめたものを用意すれば良いことが分かる。 ここで,来園時間,来園者数,割引券の値を次の値を使用する。 ・来園時間. …. 9 時,13 時,18 時の 3 つ. ・来園者数. …. 4 人,15 人の 2 つ. ・割引券. …. 1(割引券あり),0(割引券なし)の 2 つ. 図1の流れ図に与えるデータを(来園時間,来園者数,割引券)と表した場合, (8). を与えた場合は 10%,. (9). を与えた場合は 20%の割引率になることを. 確認する。 なお,割引率が 40%になる場合の入園時間は. (10). である。. (5) の解答群 ア.16. イ.18. ウ.24. エ.32. ア. -. イ. -. ウ. N. エ. N. N. N. -. -. Y. Y. Y. Y. Y. N. Y. N. オ. N. カ. N. キ. N. ク. N. Y. Y. Y. Y. -. -. Y. N. Y. N. -. -. (6) ,(7) の解答群. (8) ,(9) の解答群 ア.(9 時,4 人,0). イ.(9 時,4 人,1). ウ.(9 時,15 人,0). エ.(13 時,15 人,1). オ.(13 時,4 人,0). カ.(13 時,4 人,1). キ.(18 時,4 人,1). ク.(18 時,15 人,0). (10) の解答群 ア.9 時のみ. イ.13 時のみ. ウ.18 時のみ. エ.9 時または 13 時. 11 プログラミングスキル.

(14) 問題4. 次のプログラムの説明および擬似言語の記述形式の説明を読み,各設問に答えよ。. [プログラムの説明] Jスーパーでの商品ごと月別売上高の集計表を出力するため,ファイルを集計する 処理である。なお,月別売上高の集計表は商品コードの昇順に出力する。 レシートデータのレコード形式は以下のとおりであり,レシート番号の昇順に並ん でいる順編成ファイルである。 レシート番号. 日時. 商品1. 年 月 日 時間. 商品コード. 個数. ・・・. 商品n 商品コード. 個数. 商品マスタのレコード形式は以下のとおりであり,索引編成ファイルである。 商品コード. 商品名. 単価. 売上ファイルのレコード形式は以下のとおりであり,順編成ファイルである。この ファイルには,複数年分のレコードが存在する。 年. 月. 商品コード. 商品名. 個数. 売上金額. 集計ファイルのレコード形式は以下のとおりであり,順編成ファイルである。 年. 月. 商品コード. 商品名. 個数計. 金額計. 各処理の内容は,次のとおりである。 表 処. 理. 分割・ 計算処理 整列処理 集計処理 編集・ 出力処理. 12 プログラミングスキル. 処理内容 処. 理. 内. 容. レシートファイルを商品ごとのレコードに分割するとともに,商品 マスタより商品名・単価を読み込み,売上金額を求め,売上ファイ ルを作成する。 売上ファイルを並べ換えて,整列済み売上ファイルを作成する。売 上ファイルと整列済み売上ファイルのレコード形式は同じである。 商品ごとの月別売上個数と売上金額を集計し,集計ファイルを作成 する。 集計ファイルを,商品ごとの月別売上高の集計表の形式に編成し出 力する。.

(15) 商品ごと月別売上高の集計表を出力するための流れは,次のようになる。 売上データは複数年分存在するものとする。 レシートデータ. 分割・計算処理. 商品マスタ. 売上ファイル. 整列処理 整列済み 売上ファイル 集計処理. 集計ファイル. 編集・出力処理. 商品ごと月別 売上高の集計表. 図. <設問1>. 商品ごと月別売上高の集計表の作成処理の流れ図. 整列処理における並べ替えのキーとして必要な最低の項目を解答群か ら. 選び,(1)に答えよ。なお,複数の項目がある場合は,左から順に並べ替えのキーの 優先順位を示す。 (1) の解答群 ア.商品コード. イ.商品コード,年,月. ウ.商品コード,月. エ.商品コード,年. 13 プログラミングスキル.

(16) [擬似言語の記述形式の説明] 記述形式. 説明. ○. 手続き,変数などの名前,型などを宣言する. ・変数 ← 式. 変数に式の値を代入する. /* 文 */. 注釈を記述する. 条件式 ・処理1. 選択処理を示す。 条件式が真の時は処理1を実行し,. ・処理2 ■. 条件式 ・処理. ■. <設問2>. 偽の時は処理2を実行する。. 前判定繰り返し処理を示す。 条件式が真の間,処理を実行する。. 次の集計処理のプログラム中の. (1). に入れるべき適切な字句を解答. 群から選べ。なお,プログラム中の※の部分は,問題の関係上表示していない。 [プログラム] ○プログラム名:Shukei() ○整数型:kosu, urikin, kosu_ttl, urikin_ttl, nen, tuki, old_nen, old_tuki. ○文字型:scode, sname, old_scode, old_sname ○ファイル:u-file, s-file. ○手続き:FileRead(u-file, nen, tuki, scode, sname, kosu, urikin) /* 売上ファイル(u-file)から 1 レコードずつ読み込み. */. /* 個数を kosu, 売上金額を urikin に設定する。. */. /* 年を nen, 月を tuki, 商品コードを scode, 商品名を sname, */. /* ファイルの最後を示す識別子を入力した場合は,nen, tuki /* scode に最高値が設定される。 */ ○手続き:FileWrite(s-file, ※. ). /* 年, 月, 商品コード, 商品名, 個数計, 金額計を設定し,. */. /* 引数の「※」は問題で使用するため表示しない。. */. /* 集計ファイル(s-file)に 1 レコード書き出す。. 14 プログラミングスキル. */. */.

(17) ・ファイルを開く ・FileRead(u-file, nen, tuki, scode, sname, kosu, urikin). ■. scode ≠ 最高値. ・old_scode ← scode ・ ■. (2) (3) ・old_nen ← nen. ・old_tuki ← tuki ・kosu_ttl ← 0. ・urikin_ttl ← 0 ■. (3). かつ. (4). ・kosu_ttl ← kosu_ttl + kosu. ・urikin_ttl ← urikin_ttl + urikin ■. ・FileRead(u-file, nen, tuki, scode, sname, kosu, urikin). ・FileWrite(s-file, ■. ■. (5). ). ・ファイルを閉じる. (2) の解答群 ア.old_sname ← sname. ウ.tuki ← 最高値. イ.scode ← 0. エ.urikin ← 0. (3) ,(4) の解答群 ア.old_scode = scode イ.old_scode ≠ scode ウ.old_nen = nen エ.old_nen ≠ nen. オ.old_nen = nen かつ old_tuki = tuki. カ.old_nen ≠ nen または old_tuki ≠ tuki (5) の解答群 ア.nen, tuki, scode, sname, kosu, urikin. イ.nen, tuki, scode, sname, kosu_ttl, urikin_ttl. ウ.old_nen, old_tuki, old_scode, old_sname, kosu_ttl, urikin_ttl. エ.old_nen, old_tuki, old_scode, sname, kosu, urikin. 15 プログラミングスキル.

(18) < 選 択 問 題 > 選択問題は問題から1つ選択し解答せよ。 選択した問題は必ず,解答用紙「選択欄」にマークすること。 ※選択欄にマークがなく,解答のみの場合は採点を行いません。. 各構成は以下のとおり。. 選択問題. 16 プログラミングスキル. ・C言語の問題. 17 ページ~ 19 ページ. ・表計算の問題. 20 ページ~ 24 ページ. ・アセンブラの問題. 25 ページ~ 27 ページ.

(19) 選択問題. C言語の問題. 次のC言語プログラムの説明を読み,各設問に答えよ。 [プログラムの説明] 置換対象文字列に含まれる検索文字列を置換文字列に置き換える関数replaceであ 選択問題. る。 ① 置換対象文字列から検索文字列を検索する開始位置をiとする。. C言語. ② 置換対象文字列のi番目からの文字列と検索文字列の先頭からの文字列を1文字ず つ比較する。 ③ 途中で不一致の文字が出現した場合は,置換対象文字列のi番目の文字を置換後の 文字列に格納し,iに1を加える。置換対象文字列と完全に一致した場合は,置換 文字列を全て置換後の文字列に格納し,検索文字列の文字数をiに加える。 ④ 置換対象文字列の文字数をL,検索文字列の文字数をCとした場合,iの値がL-C以 下であれば①~③を繰り返す。 <実行例> 置換対象文字列. 'A'. 'B'. 'X'. 'A'. 検索文字列. 'A'. 'B'. 'C'. '\0'. 置換文字列. 'P'. 'Q'. '\0'. 置換後の文字列. 'A'. 'B'. 'X'. 'P'. 'B'. 'C'. 'X'. 'Y'. 'Z'. 'Q'. 'X'. 'Y'. 'Z'. '\0'. '\0'. [関数の説明] replace 関数 引. 数:置換対象文字列,検索文字列,置換文字列,置換後の文字列. 機. 能:置換対象文字列に含まれる検索文字列を置換文字列に置き換え,その結果 を置換後の文字列に格納する。. 戻り値:なし. 17 プログラミングスキル.

(20) [プログラム] void replace(unsigned char *text, unsigned char *srch,. 000000000000unsigned char *repl, unsigned char *after) { 0000int0000text_len, srch_len, repl_len; 0000int i, k, p, flg;. 0000text_len = strlen(text); 0000srch_len = strlen(srch); 0000repl_len = strlen(repl); 0000p = 0;. /* after の添え字 */. 0000i = 0;. /* text の添え字 */. 0000while(i <= text_len - srch_len) {. 00000000flg = 0; 00000000k = 0;. 00000000/* 検索文字列と一致するかを判断する繰り返し */ 00000000while( k < srch_len &&. (1). ) {. 000000000000if ( text[i + k] == srch[k] ). (2). 0000000000000000else flg = 1;. ;. 00000000}. 00000000if ( flg == 0) {. 000000000000/* 検索文字列を発見した場合の処理 */ 000000000000for(k=0; k< 0000000000000000. (4). 0000000000000000p++; 000000000000} 000000000000. (5). 00000000} else {. (3) ;. ; k++) {. ; /* 検索文字列の文字数分iを進める */. 000000000000/* 検索文字列に一致しない場合の処理 */ 000000000000. (6). 000000000000p++;. ;. 000000000000i++; 00000000} 0000}. 0000/* 残っている文字を転送. */. 0000for(; i<text_len; i++) { 00000000after[p] = text[i]; 00000000p++; 0000} 0000 }. 18 プログラミングスキル. (7). ;.

(21) <設問1>. プログラム中の. に入れるべき適切な字句を解答群から選べ。. (1) の解答群 ア.flg == 0. ウ.repl[k] == NULL. イ.flg == 1. エ.text[i] == NULL. (2) ,(5) の解答群 ア.i++. イ.k++. ウ.p++. エ.i += text_len. オ.i += repl_len. カ.i += srch_len. (3) の解答群 ア.text_len. イ.text_len - srch_len. ウ.srch_len. エ.repl_len. (4) ,(6) ,(7) の解答群 ア.after[p] = text[i]. ウ.after[p] = text[p]. オ.after[p] = repl[k]. キ.after[p] = NULL. <設問2>. イ.after[p] = text[k]. エ.after[p] = repl[i]. カ.after[p] = repl[p]. ク.after[p] = p. 検索文字列が置換対象文字列中に複数存在した場合,関数 replace はどの. ように処理するかを解答群から選べ。 (8) の解答群 ア.1つも置換文字列に置き換えないで終了する イ.全ての検索文字列を置換文字列に置き換える ウ.最初に発見した検索文字列のみを置換文字列に置き換える エ.最後に発見した検索文字列のみを置換文字列に置き換える. 19 プログラミングスキル.

(22) 選択問題. 表計算の問題. 次の表計算ソフトの記述を読み,設問に答えよ。 この問題で使用する表計算ソフトの仕様は下記のとおりである。 COUNTIF 関数 範囲内のセルの中で条件に一致するセルの数を返す。 書式:COUNTIF(範囲,条件) HOUR 関数 時刻のシリアル値を,0(午前0時)~23(午後11時)の値で返す。 書式:HOUR(シリアル値) INDEX 関数 範囲の中から,指定した行位置・列位置のセルの値を返す 。. 書式:INDEX(範囲, 行番号, 列番号) MATCH 関数 検索値を範囲内(1列または1行を設定)で検索し,範囲内での相対的な位置を返す。 位置は範囲の左上を1とする。照合の型は,0で検索値と完全に一致する値,1で検索 値以下の最大値,-1で検索値以上の最小値を検索する。検索値が見つからない場合は エラーを返す。. 書式:MATCH( 検索 値, 範囲, 照合の型) RANK 関数 範囲内の数値を並べたときに何番目になるか(順位)を返す。順序は,降順の場 合は0,昇順の場合は1 を設定する。なお,範囲内の検査値に同じものがあれば 同じ順位を返し,以降の順位に欠番が生じる。 書式:RANK(検査値,範囲,順序) VLOOKUP 関数 検索値を左端に含む行を範囲の中から検索し,指定した列位置の値を返す。検索 の型に 0 を指定すると検索値と完全に一致する値を検索し,1 を指定すると検索 値と一致する値がない場合に,検索値未満で一番大きい値を検索する。なお,該 当する行が見つからなかった場合は,エラーを返す。 書式:VLOOKUP(検索値,範囲,列位置,検索の型). 20 プログラミングスキル.

(23) 式 =に続けて計算式や関数などを入力する。 & 文字列の結合をする演算子。 セル番地の参照 セル番地に$を付けることで,絶対番地(絶対参照)を表す。 他のワークシートの参照 「ワークシート名!セル番地」とすることで他のワークシートのセルを参照する ことができる。 Jスポーツクラブでは,表計算ソフトを利用して会員管理などを行っている。今回, 選択問題. 10 月の参加者表を使用し,人気プログラムランキングを表示することになった。なお, 会員は,各プログラムの利用前にカードリーダーにカードをかざすことにより参加者 表にデータが追加される。また,時間をずらしてかざすことはない。. 2015/10/31. 表計算. B. E 時間 15:53 15:55 13:58 17:54 9:53 9:53 9:54 …. …. 図1. P003. …. 12009. …. 1000. A B C D 会員番号 プログラム コース 日付 12002 P004 W 2015/10/1 12010 P004 W 2015/10/1 13011 J002 B 2015/10/1 15005 S002 I 2015/10/1 13003 S009 A 2015/10/2 12013 J003 C 2015/10/2 15012 S003 A 2015/10/2 …. …. 1 2 3 4 5 6 7 8. 17:54. 「参加者表」ワークシート. Jスポーツクラブで用意しているプログラムは 24 種類である。. A. …. 図2. ダンス. …. S009. B C D プログラム名 コース コース名 フィールド T テニス フィールド G ゴルフ フィールド S サッカー フィールド F フットサル ジム P ポジティブ ジム P+ ボディプラス ジム C コンディショニング …. 25. …. A プログラム F001 F002 F003 F004 J001 J002 J003. …. 1 2 3 4 5 6 7 8. 上級者. 「プログラム表」ワークシート. 21 プログラミングスキル.

(24) <設問1> (1). に入れるべき適切な字句を解答群から選べ。ただし,同順はないものとする。. J005. 25. 図3. D. E F G H 順位 プログラム プログラム名 参加人数 1 J003 ジムコンディショニング 137 2 S005 エアロビクス中級者 128 3 S001 エクササイズ初級者 113 4 F001 フィールドテニス 83 5 F002 フィールドゴルフ 57. …. 25. …. A B C プログラム 参加人数 順位 F001 83 4 F002 57 5 F003 28 13 F004 43 7 J001 56 6 J002 39 9 J003 137 1 …. …. 1 2 3 4 5 6 7 8. 次の「人気プログラムランキング」ワークシートの作成に関する記述中の. 16. 「人気プログラムランキング」ワークシート. セル A2 は,次の式を入力し,セル A3~A25 まで複写した。 = プログラム表!A2 セル B2 は,参加人数を求めるため次の式を入力し,セル B3~B25 まで複写した。 =. (1). セル C2 は,参加人数の多い順に順位を付けるため次の式を入力し,セル C3~C25 に複写した。 =. (2). 次に,参加人数が上位 5 位に入るプログラムだけを表示するため,セル E2~E6 に 1 ~5 を入力し,セル F2 は順位のプログラムを表示するため次式を入力し,セル F3~ F6 まで複写した。 =. (3). ($A$2:$C$25,. (4). (E2, $C$2:$C$25, 0), 1). 同様に,セル H2 は参加人数を表示するため次式を入力し,セル H3~H6 まで複写し た。 =. (3). ($A$2:$C$25,. (4). (E2, $C$2:$C$25, 0), 2). また,G 列のプログラム名は, 「プログラム表」のプログラム名とコース名の文字列 を連結したもので,セル G2 に次式を入力し,セル G3~G6 まで複写した。 =. (5) &. 22 プログラミングスキル. (F2, プログラム表!$A$2:$B$25, (5). (6). (F2, プログラム表!$A$2:$D$25,. , 0) (7). , 0).

(25) (1) の解答群 ア.COUNTIF(参加者表!B2:B1000, A2) イ.COUNTIF(参加者表!$B2:$B1000, A2) ウ.COUNTIF(参加者表!$B2:$B1000, A$2) エ.COUNTIF(参加者表!$B$2:$B$1000, A2) (2) の解答群 ア.RANK(B2, B2:B25, 0). イ.RANK(B2, $B$2:$B$25, 0). ウ.RANK($B$2, B2:B25, 0). エ.RANK($B$2, $B$2:$B$25, 0). (3) ~ (5) の解答群 ア.COUNTIF. イ.IF. オ.SUMIF. カ.VLOOKUP. ウ.INDEX. エ.MATCH. ウ.3. エ.4. (6) , (7) の解答群 ア.1. <設問2>. イ.2. 次の「時間帯別利用者数」ワークシートの作成に関する記述中の. (1). に. 入れるべき適切な字句を解答群から選べ。 初めに,「時間帯別利用者数」ワークシートの A 列と B 列に次のように入力した。. 図4. 「時間帯別利用者数」ワークシート. 次に, 「参加者表」ワークシートの時間から時間帯を求めるために F 列を追加する。. 23 プログラミングスキル.

(26) 図5. 変更後の「参加者表」ワークシート. セル F2 に次式を入力し,セル F3~F1000 まで複写した。 =. (8). さらに,時間帯別利用者数を求めるために,「時間帯別利用者数」ワークシートの セル C2 に次式を入力し,セル C3~C15 まで複写した。 =. (9). (8) の解答群 ア.VLOOKUP(E2, 時間帯別利用者数!$A$2:$B$15, 2, 0) イ.VLOOKUP(E2+1, 時間帯別利用者数!$A$2:$B$15, 2, 0) ウ.VLOOKUP(HOUR(E2), 時間帯別利用者数!$A$2:$B$15, 2, 0) エ.VLOOKUP(HOUR(E2)+1, 時間帯別利用者数!$A$2:$B$15, 2, 0) (9) の解答群 ア.COUNTIF(参加者表!F2:F1000, B2) イ.COUNTIF(参加者表!$F2:$F1000, B2) ウ.COUNTIF(参加者表!$F2:$F1000, B$2) エ.COUNTIF(参加者表!$F$2:$F$1000, B2). 24 プログラミングスキル.

(27) 選択問題. アセンブラの問題. 次のアセンブラ言語CASLⅡプログラムの説明を読み,各設問に答えよ。. [プログラムの説明] 連続した領域に格納された N 語のデータの各語に対して,指定した 4 ビットのビッ ト列が含まれているかを探索し,含んでいるデータの語数を求める副プログラム BSRCH である。 BSRCH は,図1のような形式でパラメタが格納された先頭番地を GR1 に設定して呼 び出される。 アドレス (GR1) + 0. 連続した領域のデータの語数(N). + 1. 連続した領域の先頭アドレス. + 2. 探索したい4ビットのビット列(下位 4 ビット). + 3. 探索結果の語数を格納するアドレス 図1. パラメタの構造. 選択問題. [探索の手順] 探索は,1 語の領域に対して左端から開始し,一致するビット列を見つけるまで 1. アセンブラ. ビットずつシフトしながら行う。見つけた時点で結果のカウントを行い,その語に関 しては残りのビットは探索せずに次の語へ移る。探索したいデータが 4 ビットなので, 1語で 13 回の比較が終了したら次の語へ移る。 [プログラム] 行番号. ラベル. 命令. 100. BSRCH. START. 110 120. LD. 130. LD. 140. ADDL. 150. LD. 160 170 180 190 200 210. RPUSH. オペランド. コメント. GR3,0,GR1. ;データ数の設定. GR2,1,GR1 GR3,GR2. GR0,2,GR1. ;データの先頭アドレス ;探索終了アドレス ;探索ビット列(4 ビット)の設定. (1) LOOP1. LD LD. GR6,=0. GR5,0,GR2 (2). LOOP2. LD. AND. ;見つけた語数のカウンタ設定 ;1語の中での探索カウンタ設定. GR4,GR5. GR4,MASK. 25 プログラミングスキル.

(28) 行番号. ラベル. 220 230. 命令. オペランド. CPL. GR0,GR4. JZE. 240. FIND (3). 250. SUBA. GR7,=1. 270. JUMP. LOOP2. 260 280 290 300. JMI FIND NEXT. 310. ADDA ADDL CPL ST. 340. RET. 330. 360. NEXT. GR6,=1 GR2,=1. GR2,GR3. ;見つかったので語数をカウント ;次のデータ(語)への準備 ;終了判定. (4). 320. 350. コメント. RPOP MASK. <設問1>. GR6,3,GR1. DC. ;見つけた語数を格納. (5). END. プログラム中の. (1). に入れるべき適切な字句を解答群から選べ。. (1) の解答群 ア.SLL ウ.SRL. GR0,4. GR0,4. イ.SLL. GR0,12. エ.SRL. GR0,12. イ.LD. GR7,=1. (2) の解答群 ア.LD ウ.LD. GR7,=0. GR7,=12. エ.LD. GR7,=16. イ.SLL. GR5,4. (3) の解答群 ア.SLL ウ.SRL. GR5,1. GR5,1. エ.SRL. GR5,4. イ.JMI. LOOP2. (4) の解答群 ア.JMI ウ.JPL. LOOP1. LOOP1. エ.JPL. LOOP2. (5) の解答群. 26 プログラミングスキル. ア.#000F. イ.#00F0. ウ.#0F00. エ.#F000.

(29) <設問2>. プログラムの機能変更に関する記述中の. (1). に入れるべき適切な字. 句を解答群から選べ。 現在のプログラムは,探索ビット列を含んでいる語数を求めているが,探索ビット 列の出現回数を求めるように変更する。ただし,1 語の中で見つかったビット列を除 いたビット列から続けて探すものとする。 探索ビット列. 1010. ある 1 語. 1010. 1001. 1010. 1101. この場合は 2 個見つかる 図2. 出現回数の探索に変更. この変更は,次のように連続した 4 命令を行番号 280 の後に追加すればよい。 行番号. ラベル. 281 282. 命令. オペランド. SLL. GR5,4. コメント. (6). 283. JMI. 284. NEXT (7) 図3. 追加する命令群. (6) の解答群 ア.SUBA ウ.SUBA. GR7,=1. GR7,=3. イ.SUBA. GR7,=2. エ.SUBA. GR7,=4. イ.JUMP. LOOP2. (7) の解答群 ア.JUMP LOOP1. ウ.JZE LOOP1. エ.JZE. LOOP2. 27 プログラミングスキル.

(30) <メモ欄>. 28 プログラミングスキル.

(31) <メモ欄>. 29 プログラミングスキル.

(32) 30 プログラミングスキル.

(33)

参照

関連したドキュメント

気象情報(気象海象の提供業務)について他の小安協(4 協会分)と合わせて一括契約している関係から、助成

エンプティ フラグ、プログラム可能なオールモストエンプティ フ ラグ、ハーフフル フラグ、プログラム可能なオールモストフル フラグ、およびフル フラグ ( 、 、 、

子どもたちは、全5回のプログラムで学習したこと を思い出しながら、 「昔の人は霧ヶ峰に何をしにきてい

“〇~□までの数字を表示する”というプログラムを組み、micro:bit

本プログラム受講生が新しい価値観を持つことができ、自身の今後進むべき道の一助になることを心から願って

 プログラムの内容としては、①各センターからの報 告・組織のあり方 ②被害者支援の原点を考える ③事例 を通して ④最近の法律等 ⑤関係機関との連携

しかしながら、世の中には相当情報がはんらんしておりまして、中には怪しいような情 報もあります。先ほど芳住先生からお話があったのは

一方で、平成 24 年(2014)年 11