情報:IT
高校生

商業です。
プログラミングの流れ図が全くできません。
このような問題でも、何をどこに書くとか、どこを見るとか全く分かりません
2週間後検定です。(2級)

( +100-Stu. tux 100-Shi 100→Ktu ux100 Khil 流れ図の説明を読んで、 流れ図の(1)~(5) にあてはまる答えを解答群から選び、記号で答えなさい。 〈流れ図の説明> 処理内容 〈流れ図> コンビニエンスストアの売上データを読み, 売上一覧表をディ スプレイに表示する。 はじめ 入力データ 実行結果 配列Ted. Tmei, Ttan にデータを記憶する 商品コード (Scd) xxxx 数量 (Su) ( 売上一覧表 ) xxx (第1図) (商品名) お茶 (数量) (金額) 0→Gokei 5 600 おにぎり 9 1,260 0-Kensu カップ麺 (平均) 12 3,576 ループ1 731 処理条件 (第2図) データがある間 ※ 1.商品コード,商品名, 単価はあらかじめ配列 Tcd, Tmei, SW Tan に記憶している。なお, 各配列は添字で対応している。 配列 データを読む Tcd (0) (99) 「切り捨て Tmei 5249 ~ 商品コード (1) 1092 (0) ~ (99) ガム 商品名 新聞 ループ2 Hは0から1ずつ増やして S=0 の間 Ttan (0) (99) 118 160 単価 NO Scd (2) 2. 第1図の入力データを読み, 商品コードをもとに配列Tcdを 探索し、数量と単価から金額を求めて第2図のように売上一覧 表を表示する。 YES (3) 3. 入力データが終了したら, 金額の平均を次の計算式で求め表 示する。 Gokei+Kin→Gokei 平均=合計金額 ÷データの件数 (4) 4. データにエラーはないものとする。 57418 (5) 118 390 Tmei (H), Su, Kin を表示 解答群 ア. 1→Sw 1.0-Sw ウ. Ttan (H) + Su →Ttan (H) I. Kensu+1-Kensú .0➡H 力. 0→Heikin 59%0 キ. Tcd (H) = Scd 7. Scd = H ケ. Su × Ttan (H) Kin コ H+1H 01259 (5) P ループ2 ループ1 Gokei Kensu→Heikin Heikin を表示 おわり ※小数点以下切り捨て 編末トレーニング 35
商業 プログラミング 流れ図

回答

この問題では、大きく分けて3つのことをしています。
  1.データを1件ずつ読む。
  2.金額を計算して合計に足す。件数をカウントする(増やす)。
  3.最後に平均を求める。
プログラミングの流れ図で考えると難しいかもしれません。
しかし、人の手で3件程度のデータで真似してやってみるとフローチャートに何を書くべきか段々と分かるようになるはずです。

 人力でやる場合は、商品コード・商品名・単価の表と、売上の記録(売れた商品のコードと売れた個数)を目で見て、計算しながら合計や平均を求めていく、と考えてみましょう。
 画像1枚目の2つの表を見てください。
上の表が「商品情報の表」で、下の表が「売上の記録」です。売上記録の商品コードには、商品情報のコードのどれかと一致するものしかありません。
それに、同じ商品コードの売上はまとめてあるので、コードが重複していることはありません。
ただし、売上記録の商品コードは必ずしも小さい順になっているとは限りません。そのため、売上データのコードを目で見て、それと同じコードを商品情報の表から探さなければいけません。

 最初の記録は「0002番が4個売れた」なので、商品情報からコードが一致するものを探します。
商品の種類は3つしかないので、すぐに一致するものが見つかり、それは米だと分かります。
米は単価5000円で、売れた個数である4を掛けた、20000円が金額になります。
金額が分かったら、商品名と売り上げた個数と金額を書き留めておき、件数を数えておきます。いま件数は1です。

 次に売上の記録の表の0001の行を見ます。
商品情報から0001はクッキーと分かり、単価300円のクッキーが5個で、金額は1500円となります。
これも書き留めておき、件数が1増えて2になります。

 最後に、0003番、150円の歯ブラシが3個売れたので金額は450円、件数は3と分かります。
これで売上の記録は読み終わったので、平均を算出します。では、書き留めておいた金額をすべて足します。
足すと21950となり、これを件数の3で割ります。
(詳しい計算は画像2枚目をご覧ください。)
すると、平均は、小数点以下切り捨てで7316となります。

 流れ図の話に戻ります。ここまでの流れをプログラムに置き換えると、次のような手順になります。
(入力データ:画像3枚目、プログラム:画像4枚目)
まず、商品コード・商品名・単価をそれぞれ配列に入れておきます。これは「商品情報の表」にあたります。
次に、売上の記録から「商品コードと売れた数量」を1件ずつ読み込みます。これが「ループ1」の役割です。
読み込んだ商品コードがどの商品かを探すために、商品情報の配列を先頭から順に調べていきます。これが「ループ2」です。
一致するコードが見つかれば、単価に数量を掛けて金額を計算します。その金額を合計に足し、件数を1増やします。同時に、商品名・数量・金額を表示します。
すべての売上データを処理し終わったら、最後に合計金額を件数で割り、平均を求めて表示します。小数点以下は切り捨てです。(実行結果:画像5枚目)

 つまり、このプログラムがしていることは、人間が紙と電卓を使って行う計算作業を忠実に機械にやらせているだけです。
フローチャートは、その手順を「入力」「処理」「出力」という形で整理したものだと考えると分かりやすいかと思います。

検定はどうなりましたか。
回答の確認をお願いします。

この回答にコメントする
疑問は解決しましたか?

この質問を見ている人は
こちらの質問も見ています😉