LoginSignup
0
0

More than 1 year has passed since last update.

(小学生)アクセルキャンプ高学年クラス7/13 + 宿題

Last updated at Posted at 2022-07-12

この記事は、岩手県八幡平市のプログラミング教室「アクセルキャンプ」の公開教材です。
アクセルキャンプ(フリースペースプラウド)のリンク
教材の作成依頼等も承っております。ご意見等は、リンク先の問い合わせ欄からお願いします。
教材の転用・利用等は自由です。

算数の宿題を一瞬で終わらそう

pythonのプログラムを使って、夏休みの算数の宿題を瞬殺して、夏休みをエンジョイしよう!夏休みの計算ドリルとかって、似たような問題が多かったりするよね?
関数の仕組みを理解すれば、そういうこともできちゃいます.


①関数の仕組み

・関数を用意するとき

def 関数名(引数):
    関数の処理1
    関数の処理2
  ・・・

・関数を使用するとき

関数名()

①def を書くことで「ここから関数がはじまるよ」と宣言します。
②関数名は、なんの処理をする関数なのかわかりやすい名前をつけましょう
 例)足し算をする関数
  ◯:tashizan() または英語でadd()
  ☓:Ricky_senseino_ikemen_tashizan()
③引数の名前も、関数内で処理を行うときにわかりやすい名前にしましょう。   


では、一番かんたんな足し算関数で肩慣らししていきましょう!

・足し算関数
引数を2つ使って、その2つの足し算の結果を返します。ここで、引数について復習しましょう。

引数(ひきすう)とは:関数が計算をするために必要なデータ
足し算の場合は足す数・足される数など。

足し算関数の構造はこんなかんじになります

#関数を用意
def 関数名(引数1:足す数, 引数2:足される数):
    処理①:引数1と引数2を足す
    処理②:足した結果を表示(print)

#作った関数を使う
関数名(足す数のデータ. たされる数のデータ)

では、関数名、引数名をつけて、実行してみましょう

#関数を用意
def tashizan(tasukazu, tasarerukazu):
    #処理1:引数1と引数2を足す
    kotae = tasukazu + tasarerukazu
    #処理2:足した結果を表示(print)
    print(kotae)

#作った関数を使う
関数名(3, 5)

#実行結果
#8

関数は複数の処理をまとめるためのものであることは、前回やりましたね!処理1と処理2を、問題を解くたびに毎回実行するのは面倒なので、tashizan()だけで実行できるように関数を作っています。


②関数を作ってみよう

では、いろんな関数を作ってみましょう
・台形の面積を求める関数
※台形の面積の公式:(上底+下底)x高さ÷2

#関数を用意:引数はjyoutei, katei, takasa
def daikei(jyoutei, katei, takasa):
    #台形の面積を計算
    menseki = (jyoutei + katei) * takasa / 2
    #結果を出力
    print(menseki)

#関数を実行
daikei(5, 3, 2)
#実行結果:8

ここでひとつ、わざとエラーを出してみましょう。引数の一つ「takasa」のデータを渡さずに実行してみます。実行部分のdaikei(5,3,2)の2を入力せず、daikei(5, 3)で実行してみましょう。すると

TypeError: daikei() missing 1 required positional argument: 'takasa'

というエラーが出ます。「引数3つ用意されてるけど、もらってるデータが1つたりないよ!」といってます。引数の数とわたすデータの数が合わないとエラーになるので、実行するときにちゃんとデータを渡しているか確認しましょう。(引数の数を自由に変えられる仕組みもありますが、それはまたのちほど!)


③関数を手直ししてみよう

次のコードを見て、もっと良いコードにできないか考えてみましょう。

#円の面積を求める関数 円の面積=半径x半径x3.14(円周率)
def enno_menseki(hankei, ensyuuritsu):
    menseki = hankei * hankei * ensyuuritsu
    print(menseki)

#実行
ennno_menseki(5, 3.14)
#結果:78.5

動くには動きますが、1つ直したほうがいいところがあります!円周率って、3.14のまま変わらないよね!ということで、この関数はわざわざ3.14をensyuuritsuという引数に変えて、関数の中で使っています。必要のない引数を作ると混乱やバグのもとになるので、わかりやすいシンプルなコードに変えてあげましょう。

#円の面積を求める関数 円の面積=半径x半径x3.14(円周率)
def enno_menseki(hankei):
    menseki = hankei * hankei * 3.14
    print(menseki)

#実行
ennno_menseki(5)
#結果:78.5

宿題!!

①立方体の面積を求めるプログラムを作ってください
関数名;rippoutai
引数名:tate, yoko, takasa  

②次の問題を解くための関数を作ってください

リッキー先生はは時速18キロのはやさで6キロ走りました。何分で走りきったでしょう?

時間を分に変えるところが、この問題のキモです。やってみてください!
関数名、引数名は自分で考えてみましょう!わかりやすいのにしようね!


プログラムはそれぞれ paizaのサイト で実行しましょう。
ではまた来週!

 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0