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

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

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

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




最近の生徒様の声


お知らせ一覧




タグ

【木1】計算を先にするには?

2022/02.15

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


※クラス分け
【火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


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

生徒さんはHくん(高1)、Yくん(小3)、Mくん(中1)でした。
レポートスタートです!

まずはプロフェッショナルコースのHくん。
前回に引き続き、プログラムをきれいに書けるようになる問題、リファクタリング問題集を解いていきます。

え「じゃあこの前の続きからやっていこうか。」
H「はい。」

どこを修正すればよいかのコツがつかめてきたので、黙々とプログラムを書き直していきます。

H「できました。」
え「どれどれ…。お、いいね。ただ1個だけ追加してほしいものがあって、入力されたデータがちゃんと数字かどうかチェックしてほしいな。」
H「あー、入力チェックしないといけないのか。」
え「そうそう。どんなの使えばいいかわかる?」
H「うーん、わかんない。」
え「TryParseっていうんだけど、覚えてる?」
H「えー、覚えてない。」

入力されたデータが数値でなければ動かないプログラムの場合は、ちゃんと数値が入力されたかチェックしないといけません。もし数値でないデータが入力されたときはプログラムが異常終了してしまって困るからです。
その時、「数値型に変換できるかやってみるね」というプログラムである「TryParse」を使ってほしいというわけなんです。
使い方を伝えて実行してみると、変換に失敗した時はメッセージが表示されるようになりました。

え「OK!入力があるときはこれを使ってチェックしていこうね。」
H「はい。」

続いての問題では計算結果を表示する際に文字として表示するにはどうしたらよいか?で少し悩みました。

H「これ、計算結果は数値型だよね。」
え「そうだね。」
H「だから文字列型にしようと思って”.ToString()”をつけたんだけど、あんまりうまくいかなくて…。なんかnumberの数字とnumber2の数字がただ並ぶだけになっちゃって計算してくれない。」

え「ふむふむ。この”.ToString”ってどこにかかっていると思う?」
H「えーっと…、あ、そっか2つ目の変数にだけかかっているのか。文字が入っているから全体が文字の表示になっちゃったのか。」
え「そうそう。計算を先にしてから文字列にしないとだよね。そんな時は数学でも使うと思うんだけど、”これ優先してね!”っていう記号?をつけないといけないかな。」
H「あー、かっこをつけるってことか。」
え「そうそう。計算してるところを囲ってあげるといいね。」

ということで修正しました。↓

実行してみると、ちゃんと足し算の結果が表示されました。

この書き方が必要な問題がいくつか続いたのですが、しっかり活用できていましたね!
この調子で次回も頑張って進めていきましょう!

続いてはロジカルコースのYくん。
前回に引き続き、スクラッチの問題集を解いて行きます。

最初は前回作ったじゃんけんゲームで遊んでから始めました。

え「よし、じゃあそろそろやろうか。」
Y「うん。」
え「まずは猫が右端についたら、違う猫がスタートして右端に行くっていうのを作ろう。」

最初からいる猫のほかにもう一人キャラを追加したいのですが、ここはYくんが大好きな電車の写真をチョイス。
先生は電車に詳しくないので名前がわからなかったのですが、小田急の写真を選んだそうです。

え「じゃあ先に猫が右端に行くっていうのを作ろうか。どうやったらいいかな?」
Y「うーんと…、これじゃない?」

選んだのはこちら↓

え「そうだね、それなら右端に進むことができるね!」

ちゃんと右端の場所を調べてから、そこに3秒で進むことができるブロックを使いました。
ばっちりです!

え「じゃあ次は小田急が右端に行くようにしよう。」
Y「動くのは同じブロック…。」
え「そうだね。でも猫の後にっていうのがポイントだよ。」
Y「どういうこと?」
え「小田急はいつでも発車していいわけじゃないんだよね。どんなときって書いてあった?」
Y「猫が右端についたら?」
え「そうだね。じゃあ右端についたよって小田急が知ってからじゃないと発車しちゃだめだね。」
Y「あ、メッセージを送るんだよ。」
え「そう!」

ということで、メッセージを使って小田急に発車信号を送ります。↓

猫のブロック
小田急のブロック

実行してみると…ちゃんと猫が右端についてから小田急が発車しました!
さらにアレンジを加えて、再度左端に向かうブロックもつけてくれました。↓

猫から”2”を受け取った小田急も左端に進みます。

完成したので、次の問題へ。
次の問題は、猫がクリックされるまで左右を行ったり来たりしています。
クリックされたら会話をして、その回答次第で言うことを変えるというような問題。

え「左右に動かしてほしいんだよね。」
Y「これはさっきのと同じでいいよね。」
え「そうだね。あとはずっと動いているっていうところかな。」
Y「あー、ずっと使うんだね。」

あっという間に猫の動きが完成しました!↓

え「じゃあ猫がクリックされたときに止まるようにしよう。」
Y「クリックされたら?演算?」
え「うーん、今回は演算じゃないな。イベントブロックの中から見つけてみて。」
Y「えー…、あ、”このスプライトが押されたとき”ブロック?」
え「そう!じゃあその時に猫の動きを止めよう。」
Y「止めるってどうやるの?」
え「制御ブロックから探してごらん。」

Yくんが見つけてくれたのはこちらのブロックでした↓

しかしこれでは猫の動きが止まりません。
なぜなら「このスクリプト」というのは、このブロックがくっついているブロックのまとまりのことを指すからです。
つまり、猫の動きである「旗が押されたとき」ブロックから始まるまとまりは止まらないんです。

え「なので、この三角を押してほかのやつを選んでみよう。」
Y「えーと、”スプライトのほかのスクリプトを止める”か。」
え「そう!それならほかのブロックのまとまりを全部止めてくれるから、ここだけ動いててくれるんだ。」

変更して実行してみると…ちゃんと猫が止まってくれました!
ここまでできたので、次は猫に質問をしてもらいます。
これはもうYくんだいぶ覚えたので”○○と聞いて待つ”ブロックと、”こたえ”ブロックを使いこなします。

”もし回答がおはようだったら?”と”もし回答がこんにちはだったら?”というブロックを作りましたが、最後の”どれでもなかったら”というブロックをどうやって作ればいいかわかりません。

え「もしおはようだったら、そうじゃなくて、もしこんにちはだったら、そうじゃなかったら…っていう感じになるよね。」
Y「そっか…でなければブロックを使うのか。…こう?」
え「そうそう!そうだね。」

”もし~でなければブロック”を使うんだ!とわかったYくん。ブロックを修正しました。↓

実行してみると…ちゃんと問題通りに動いています。
完成です!

ここまでできたところで今日はタイムアップ。
どんどん使いこなせるブロックが増えてきましたね。
この調子で問題もどんどん進めていきましょう!

続いてはプロフェッショナルコースのMくん。
前回に引き続き、プログラマーズロードで本格的なプログラミングを学んでいきます。

少し久しぶりだったのですが、テキストをしっかり読み込むことで理解ができていました。

え「コマンドライン引数の問題はどう?ちょっと難しいかな?」
M「うーん…テキスト読めば理解できたので大丈夫です。」
え「そっか。演習問題はどうかな?」
M「はい。できました。」

見せてもらうと、使ってほしかったコマンドライン引数もばっちり使えていましたし、計算もばっちりでした!

ここに記述した数字を使って計算をします。
コマンドライン引数を使うためにargs[i]というコードを書きます。

続いては、メモ帳の中の文字列から特定の文字を検索することができるプログラムを作ります。
こちらは例があるので、それを映していくのですが…量が多い…。

M「うわー、めちゃくちゃ多いなぁ…。」
え「そうだね、ちょっと多いけど…頑張って写してみよう!」

たくさんのコードを写していきます。
その中でたまにエラーが出てくるときもありますが、ヒントを伝えると以前にやったことを思い出して必要なコードを足すことができました!

写し終わったので実行してみますが…エラーになって検索ができません。

例えばメモ帳に「あ」という文字を入力して保存します。
そして検索プログラムで「あ」を探すようにすると…正しく動けば「あが見つかりました。」と表示されます。
見つからなかったときは「見つかりません。」と出るのですが、そのどちらも出ずにエラーになってしまいました。

え「どんなエラーかな?」
M「えーと、ファイルパスがダメ…?」
え「うん、そうだね、ファイルパスがちょっと足りないかも。」

ファイルパスとは、そのデータがどこにあるのか?というのを教えてくれる住所のようなものです。
そして、使いたいデータの名前は住所で言うと、「誰々です」にあたります。
「どこどこにある誰々です」までがファイルパスなのですが、Mくんが書いてくれたファイルパスにはその住所の最後の部分、「誰です。」というのがなかったんです。

え「なので、今回使うファイルは”kennsaku.txt”だよね。」
M「はい。」
え「ということは、その部分まで指定しないと誰を使うの?ってなっちゃうんだね。」
M「なるほど…。」

ファイルパスの部分を修正してもう一度実行すると…、今度はうまくできました!
ちゃんと検索したい文字があることが表示されました!
完成です!

ここまでできたところで今日はタイムアップ。
ファイルパスは少しややこしくてこんがらがってしまいがちです。
次回からも使うことがあるので復習して覚えていきましょうね!


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

無料体験授業実施中!
毎週火曜日 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)