小学生・中学生向けのICT教室/
イフキッズプログラミング日暮里

03-6806-6861
(平日10:00~18:30)

小学生・中学生向けのICT教室/
イフキッズプログラミング日暮里

03-6806-6861
(平日10:00~18:30)TOPへ戻る
メニュー
最近のブログ一覧




最近の生徒様の声


お知らせ一覧




タグ

【火2】計算も繰り返せるの??

2021/05.28

こんにちは!
キッズプログラミング教室「イフキッズアカデミー」
えりちゃん先生です!


※クラス分け
【火1】・・・火曜日16:00〜17:30
【火2】・・・火曜日17:40〜19:10
【木1】・・・木曜日16:00〜17:30
【木2】・・・木曜日17:40〜19:10
【土】・・・土曜日10:00〜11:30
【日】・・・日曜日10:00〜11:30


今回は火曜後半のレッスンを報告します!

生徒さんはJくん(中2)とMくん(中1)。
それではレポートスタートです!

まずはプロフェッショナルコースのJくん(中2)。
前回に引き続き、SQLドリルを解いていきます。

前回1問だけ残っていた問題を正解できたので、新しい文法を学びます。
どんな文法かというと…「副問い合わせ」というもの。

今まではこんな感じでSELECT、FROMがワンセットという問題を解いてきました。
例)SELECT
  取り出すもの
FROM
テーブル名

ですが、今日からの問題ではそのワンセットの中にもう一つSELECT、FROMのワンセットを入れ込む、という形になっています。
例)SELECT
  取り出すもの
FROM
テーブル名
WHERE
(SELECT
   取り出すもの
FROM
テーブル名)

問題文を読んで、どこを副問い合わせにするのかを見極めるのがポイントですが、これがなかなか難しい…!
Jくんはまず例題を解いてみますが、なかなか納得がいきません。

J「何となくやってることとかやりたいことはわかるんだけど、なんで副問い合わせにWHEREが必要なのかわからない。」
え「なるほど、難しいよね。これは問題文に”商品ごとに”って書いてあるから必要なんだよね。」
J「どういうこと?」

今回の問題は「商品ごとに」販売個数が、平均販売個数よりも多かった日を抽出する問題。
この商品ごと、という部分がポイント。

解答(一部)

今回のSQLでは②のテーブルを1行ずつ見て結果となる抽出された表を作っていきます。

②のテーブルから、①の商品名と販売日を抽出するのですが、その際に③の条件にあったもののみ抽出します。

③では、②のテーブルの一行の中からProductIDをみて、それと同じものだけをSalesテーブルから抽出します。
もし②のテーブルのある一行のProductIDが1だった場合は、SalesテーブルからもProductIDが1の商品のみ抽出する、といったような形です。
そしてその抽出したテーブルから販売個数の平均値を出して、②のテーブルの販売個数のほうが平均値よりも多い行だけ残しています。

ちょっと難しいのですが、WHEREがないと「同じ商品で平均を求める」ということができず、ほかの商品も混ざった平均が出てしまい問題にそぐわなくなってしまうということなんです。

J「何となくわかった気がする、同じ商品を見るためにWHEREが必要ってことですね。」
え「そうそう!あとは問題を解いてどこを副問い合わせにするのか、っていうのを見つける練習をしてみよう。」

その後は問題を解いてタイムアップ。
先生もわかりやすく上手な説明ができず、Jくんの力になってあげられなかったのですが、持ち前の理解度で少し理解してくれました。
次回も同じ単元を解いていくので、一緒に頑張っていきましょう!
次回はもう少しわかりやすい説明ができると思うので、もう一度仕組みを確認していきましょうね。

続いてもプロフェッショナルコースのMくん(中1)。
前回に引き続きVisual Studioを使って本格的なプログラミングを行っていきます。
今日はfor文という繰り返しの文法を使って練習問題を3問解きました!

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
*for文とは…?
繰り返しのプログラムを書くときに使える文法です。
for(①;②;③)
{
  繰り返しているときにやりたい処理
}
①繰り返しが何回目かをカウントし、その数を保存してくれる入れ物(変数)
②繰り返す回数
③カウントを増やす式

このように書くことで、繰り返しの処理ができます。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

まず1問目、7個の駅名をfor文を使って表示する問題を解きます。
配列という、複数のデータを保存しておける箱に「東京、上野、池袋、新宿、渋谷、品川、新橋」という7個の駅名が入っています。
それらをfor文の繰り返しを使って表示させるというもの。

え「どうかな、どうやって書けばいいかわかりそう?」
M「はい、例題を見ながら解けそうです。」

自信ありな言葉の通り、すぐに問題を解くことができました!↓

for文を使って…
表示ができました!


2問目は、九九の5の段の答えをfor文を使って表示する問題を解きます。
この問題は1問目の駅名を保存していた箱がないので自分で考えなければなりません。

え「これはどうかな、5の段をどうやって計算するか思いつく?」
M「はい、大丈夫です。」

これまた自信ありな言葉の通り、すぐに問題が解けました!
Mくんは5の段の答えを複数保存する箱(配列)を用意して、それを繰り返し表示する、というプログラムを書いてくれました↓

5の段の計算結果が箱(配列)に入るようにしてfor文を使って表示します。
5の段の答えがすべて表示されました!


ラストの3問目は、10個の数字が保存されている箱(配列)の中身の平均値を求める問題を解いていきます。

この問題は表示は平均値1つだけなので、表示に繰り返しは使いません。
繰り返しを使うのは、合計を計算するとき。
この問題にはMくんかなり苦戦しました。

M「何を繰り返したらいいかがわからないです。」
え「なるほど。今回箱の中には何個数字が入っているかな?」
M「10個です。」
え「そうだね、それの平均ってどういう計算したら出るかな?」
M「えっと、10個全部足して、10で割る?」
え「そうだよね。なので、箱の中身を順番に足していきたいよね。」
M「はい。」
え「まずは合計を入れる箱を用意しようか。」

eという名前の箱を用意して、そこに合計を入れることにしました。

え「次はforの括弧の中身を考えていきたいんだけど、配列の0番目ってどれかな?」
M「55です。」
え「そうだね、じゃあ1番目は?」
M「72です。」
え「そうそう、一番最後は何番目になるかな?」
M「9番目です。」
え「そうだね、じゃあこれ、繰り返す回数は9番目までは必要じゃないかな?」
M「確かに…、じゃあ回数は9?」
え「おしい!w<9って9は含まれてる?」
M「あ、入ってないです。10か。」
え「そうそう!」

配列の中身は10個ですが、数えるときに先頭は0から始まります。
なので、カウントが10より小さい時まで繰り返すという条件を作ります。
(冒頭で説明した②の部分です。)

え「じゃあ次は合計の計算だね。繰り返し1回目はeに何が入るかな?」
M「eは最初0だから、そこに55を足して55です。」
え「そうだね、じゃあ2回目は?」
M「55に72を足して…127です。」
え「そうそう、eに配列の○番目を足して、その結果をeに入れる、っていうのはどうやって書くんだっけ?」
M「えーっと…忘れちゃいました。」
え「OK、それは+=って書くんだよ。」

計算部分のヒントを聞いてだいたいのプログラムができてきました。
そのあと平均を求めた結果を入れる箱を用意して、それを表示するという処理はすんなり書くことができたので実行したものを見てみると…しっかり平均が出せていました!

for文を使って計算し…
平均値が表示されました!

ここまでできたところで今日はタイムアップ。
少しfor文の使い方がわかってきたかな?
表示だけでなく、計算の繰り返しにも使えるので是非活用していきましょう!
次回からはトレーニング問題に入ります。今日学んだことも生かして頑張っていきましょうね!


次回のレポートもお楽しみに!

無料体験授業実施中!
毎週火曜日 16:00~17:30、17:40~19:10
毎週木曜日 16:00~17:30、17:40~19:10
毎週土曜日 10:00~11:30、11:40~13:10
※日曜日も臨時で実施していることがあります
 お気軽にお問い合わせください

お申し込み・お問い合わせは、こちら



お電話でも受け付けております。
03-6806-6861
(平日10:00~18:00)

イフキッズLINE@お友だち募集中!
新着授業レポートの通知、無料説明会やイベントの案内など、
耳よりな情報を配信中です。
加えて、お友だち登録されている方には、
イベント参加費の割引、
入会の際の割引、プレゼントなどの特典も!


友だち追加
   お問い合わせボタン|プログラミングスクール・習い事のイフキッズプログラミング(IF Kids Programming) お問い合わせボタン|プログラミングスクール・習い事のイフキッズプログラミング(IF Kids Programming)