児童向け、小学生から始めるプログラミング言語として、スクラッチ(Scratch)は最適です。
たくさん用意されているキャラクターや背景を使っていろんな種類のオリジナル作品を作ろう!
ここにある課題を順にこなしていけば、スクラッチの使い方やプログラミング方法が身に付くよ。
キーボードやマウスを使ってキャラクタを動かすゲームだけでなく、算数で覚えたことを応用した図形描画もできるよ。
生身の人間なんだから、計算そのものではなく、どの順番でどのように計算させるかを考えることが重要なのです。
スクラッチでのプログラミングは、その人間として大事な力を鍛えてくれます。
◇◆ 目的 ◆◇
入力した数字の約数をリストアップするプログラムを作ります。
割った余り・リストブロックの使い方を実践で学ぼう。
番号 | イメージ | 内容 |
---|---|---|
S-N11 | 約数けいさんき入力した数字の約数を探すプログラムを作ろう 習得:割った余り・リストブロックの使い方を 実践で学ぶ |
『スクラッチ』の画面を出しておこう。
算数の『約数』についての基礎知識を学んでおこう。『割り切れる数』が約数だよ。
例:12の約数{1,2,3,4,6,12}、10の約数{1,2,5,10}、15の約数{1,3,5,15}など
スクラッチは小さい子でもできるけど、3年生くらいから始めるのがいいかもしれない、ってことで、スクラッチの解説では漢字にフリガナは振りません。国語の勉強だと思って漢字も覚えよう!
コンピュータにやってほしいことと言えば、飽き飽きする同じことの繰り返し作業ですね。
人間なら頑張れて100回がせいぜいじゃないでしょうか。
そこに面白みを見つけてやれる人も中に入るでしょうけど、そんな人はきっとコンピュータ並みの頭を持っている人なのでしょう、少なくとも私は30回もやったら飽きてしまいます。
ここまで進んできたキッズプログラマーならばブロックの組み方とかはもう特に説明することもないのかもしれませんね。
次の段階は、プログラムの組み方ですね。
具体的に言えば、計算の仕方を考えてそれをプログラムに翻訳することです。
まずは、プログラムの構成を考えよう。
動画の最後にこう表示されていたのを覚えているかな?
定義ブロックを使って、機能ごとにまとめよう。
プログラムの骨格はたったのこれだけ。
やることを分けて考えるとゴチャゴチャしなくて済むよ。
このように並べるクセを付けることを強く勧めます。
約数を探すプログラムなので、探す対象の『数字』が必要だよね、当然。
こういう時に便利なのが「調べる」カテゴリにある( )と聞いて待つブロックだよ。
キーボードから入力でき、入力した数字は(答え)に入っているんだ。
今回の動画では、『36』の約数を調べてみたね。
(答え)には『36』という数値が入っているんだ。
この(36)に対し、1~(36)までの整数すべて片っ端から割り切れるか計算するんだ。
36÷1=36...0 まずは1から
36÷2=18...0 次は2に変えて
36÷3=12...0
36÷4= 9...0
36÷5= 7...1
36÷6= 6...0
36÷7= 5...1
:
:
36÷35=1...1
36÷36=1...0 こんなふうに36まで全部割ってみて余りを計算します
割る数は変数(調べる数)を使って、1ずつ変えて(36)まで繰り返すんだ。
割った結果、『余りが0だった場合』はその割った数、つまりこの時の(調べる数)は約数の一つだよね。
余りを調べる演算は、(( )を( )で割った余り)ブロックを使えばいいよ。
これに〈( )=( )〉演算ブロックを合わせて、割った余りが0なら、とすればいい。
もし〈 〉ならブロックの中で、その(調べる数)をリストに追加していくんだ。
使うのは、
(調べる数)を[約数▼]に追加するブロックだよ。
これは、リストにどんどん追加していく命令のブロックだよ。
探した約数は全部リスト約数に入っているので、リスト(約数▼の長さ)が約数の個数になるね。
なので、まずは個数を言ってもらおう。
次に、それぞれの約数をひとつずつ言ってもらいます。
リストの1番目から最後まで順に言うようにします。リストの長さの分だけ繰り返せばいいよね。
初期設定で約数個数は0にしているから、言う前に1を足しておこう。
リストには0番目がないからね。
最後に、編集画面でリストを右クリックすると『読み込み/書き出し』のサブメニューが出てくるよ。
『書き出し』をクリックしよう。
保存のダイアログが出るので、保存場所を指定して保存しよう。リスト名+.txtのファイル名が予めセットされているけど、今回のように『36の約数』と具体的な名前にしておくといいでしょう。
保存した約数ファイルはメモ帳などで開けるよ。
ワンポイントメモ
今回のプログラムは片っ端から割ってみるやり方だったけど、いくらパソコンが速いとはいえ大きな数字になると結構時間が掛かります。
桁を増やして試してみると発見がありますよ。
無駄なことをしているって分かっている場合は、無駄を取り除きましょう。例えば、約数で小さい方から1の次にあり得るのが2なので、半分より多きい数字で割ってみても約数になるはずがありません。
また、約数は約数同士を掛け合わせるとその数になるという性質があります。
例:12の約数…1,2,3,4,6,12 ⇒ 1×12 = 12, 2×6 = 12, 3×4 = 12
25の約数…1,5,25 ⇒ 1×25 = 25, 5×5 = 25
このように、約数同士のかけ算で元の数になるので、これを利用して【元の数を今回見つけた約数で割ってみる】という方法を使うと計算時間の大幅な短縮になります。
プログラミングも、このように算数の知識など応用できるものが色々あります。
上達したいと思ったら、案外余計なことが大きな力になるかもしれませんよ。
この課題はここまででOKだよ。ここまで出来たことの証拠を送ってくれればこの課題はクリアだ!
下記①を送ってね
①約数を探すプログラムのスクラッチのセーブデータ
※さらに、工夫を追加してくれたら追加ポイントゲットのチャンス!工夫した内容を添えてね。
ポストの画像またはリンクをクリックするとメール送信画面になります。
予めタイトルと本文がある程度書かれておりますので、不足分を追記してメール送信してください。
課題の提出はコチラ
メールアドレスを直接打ち込みたい人はコチラをコピーしてご利用ください。
o.kawajuku.pc@gmail.com
上記これを送ってねに書いてあるものを記入または添付して、メールを送信してください。
メールにファイルを添付する方法は課題の提出の解説ページを参照ください。