Differences between revisions 12 and 13
Revision 12 as of 2018-10-11 14:47:25
Size: 3578
Comment:
Revision 13 as of 2018-10-11 14:55:50
Size: 3654
Comment:
Deletions are marked like this. Additions are marked like this.
Line 18: Line 18:
 * この例題のポイント: [[Python/Lang/Function/Paramater/Contents|関数|target="_blank"]]定義: 引数[[Python/Lang/Function/Paramater/Contents|引数(ひきすう)|target="_blank"]]と[[Python/Lang/Function/Return/Contents|返戻値(へんれいち)|target="_blank"]]  * この例題のポイント: [[Python/Lang/Function/Paramater/Contents|関数定義|target="_blank"]], 引数[[Python/Lang/Function/Paramater/Contents|引数(ひきすう)|target="_blank"]]と[[Python/Lang/Function/Return/Contents|返戻値(へんれいち)|target="_blank"]]
Line 20: Line 20:
 ||<|3>例題(3)||<|3>【組込関数】||<|1> [[https://ja.wikipedia.org/wiki/三角数|三角数]],もしくは, 1からnまでの総和 ||  ||<|3>例題(3)||<|3>【組込関数】||<|1> [[https://ja.wikipedia.org/wiki/三角数|三角数]],もしくは, 1からnまでの[[https://ja.wikipedia.org/wiki/総和|総和]] ||
Line 22: Line 22:
 ||<|1> [[Python/Prog/Example/02/Ex_003a|Ex_02_003a_triangle_number.py]]||  ||<|1> [[Python/Prog/Example/02/Ex_003a/Contents|Ex_02_003a_triangle_number.py]]||
Line 33: Line 33:
 * 1からnまでの総和  * 1からnまでの[[https://ja.wikipedia.org/wiki/総和|総和]]
Line 84: Line 84:
 * [[attachment:Python/Prog/Example/02/Ex_02_003a_triangle_number.py|Ex_02_003a_triangle_number.py]]  * [[attachment:../Code/Ex_02_003a_triangle_number.py|Ex_02_003a_triangle_number.py]]

例題(3)


概要

[ edit ]

*


ポイント

この課題で使うPythonの機能 (学習のヒント)

[ edit ]

この例題における解法 (問題解決のヒント)

[ edit ]

  • この例題における解法 (問題解決のヒント) ....
    • 三角数は, n * (n-1) /2

(MathJax対応のブラウザでしたら,下記,数式がきれいに表示されます) $$ \frac{n \times (n-1)}{2} $$

*


実行例

[ edit ]

  • 実行例(1) ... クリックすると拡大します

fig-01

*


本質的な部分 (授業中に順次公開します)

[ edit ]

  • プログラムの本質的な部分は,下記の 2 行 と 5 行 の関数定義です.

  • 三角数: n × (n + 1) /2

def triangle_number( n ):
    return( int( n * (n + 1) / 2 ) )

def sum_of_one_to_n( n ):
    sum = 0
    for i in range( 1, n+1 ):
        sum += i
    return( sum )
*


高度な話題 (授業中,もしくは授業後に順次公開します)

[ edit ]

  • 高度な話題へのリンク: 授業の流れを阻害しないように別ページにします

    • (後日の回の授業内容にはなる可能性がありますが,この回の授業内容には含めません).
      • λ式(ラムダ式)と高階関数reduce()に関するものです.


配布コード (授業中に順次公開します)

[ edit ]

  • 例題ファイルとしては,コメントを付け加えた,下記を配布します.
    • コメントはもう少し増えるかもしれません.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ==============================================================================
# * Copyright (c) 2018 IIJIMA, Tadashi
# *       (IIJIMA Laboratory, Dept. of Science and Technology, Keio University).
# ==============================================================================
# ソフトウェア工学[02] 例題[02]-(003a)  Ex_02_003a_triangle_number.py
# Ex(Example) 02-003a: 【関数定義】 n番目の三角数を求める関数を定義する. 
#                               n番目の三角数は,1からnまでの総和と等しい. 
#        2018-10-03 飯島 正 (iijima@ae.keio.ac.jp)
# ==============================================================================
# ===== 【関数定義】 n番目の三角数 =====
def triangle_number( n ):
    return( int( n * (n + 1) / 2 ) )
# ==============================================================================
# ===== 【関数定義】 1からnまでの総和 =====
def sum_of_one_to_n( n ):
    sum = 0
    for i in range( 1, n+1 ):
        sum += i
    return( sum )
# ==============================================================================
# ===== 【メイン・プログラム】 =====
# ----- オープニングメッセージ -----
print( "n番目の三角数を求めます(1~nの総和と比較します): " )

# ----- パラメータの入力 -----
n = int( input( "正の整数を入力してください>>> " ) );

# ----- 結果の表示 ----
print( "    ",    n, "番目の三角数は ", triangle_number( n ) )
print( "    1 ~", n, "までの総和は ",   sum_of_one_to_n( n ) )
# ==============================================================================
*
*

   1 def triangle_number( n ):
   2     return( int( n * (n + 1) / 2 ) )

   1 def sum_of_one_to_n( n ):
   2     sum = 0
   3     for i in range( 1, n+1 ):
   4         sum += i
   5     return( sum )
  • 例題ファイルとしては,コメントを付け加えた,下記を配布します.
    • コメントはもう少し増えるかもしれません.

   1 #!/usr/bin/env python
   2 # -*- coding: utf-8 -*-
   3 # ==============================================================================
   4 # * Copyright (c) 2018 IIJIMA, Tadashi
   5 # *       (IIJIMA Laboratory, Dept. of Science and Technology, Keio University).
   6 # ==============================================================================
   7 # ソフトウェア工学[02] 例題[02]-(003a)  Ex_02_003a_triangle_number.py
   8 # Ex(Example) 02-003a: 【関数定義】 n番目の三角数を求める関数を定義する. 
   9 #                               n番目の三角数は,1からnまでの総和と等しい. 
  10 #        2018-10-03 飯島 正 (iijima@ae.keio.ac.jp)
  11 # ==============================================================================
  12 # ===== 【関数定義】 n番目の三角数 =====
  13 def triangle_number( n ):
  14     return( int( n * (n + 1) / 2 ) )
  15 # ==============================================================================
  16 # ===== 【関数定義】 1からnまでの総和 =====
  17 def sum_of_one_to_n( n ):
  18     sum = 0
  19     for i in range( 1, n+1 ):
  20         sum += i
  21     return( sum )
  22 # ==============================================================================
  23 # ===== 【メイン・プログラム】 =====
  24 # ----- オープニングメッセージ -----
  25 print( "n番目の三角数を求めます(1~nの総和と比較します): " )
  26 
  27 # ----- パラメータの入力 -----
  28 n = int( input( "正の整数を入力してください>>> " ) );
  29 
  30 # ----- 結果の表示 ----
  31 print( "    ",    n, "番目の三角数は ", triangle_number( n ) )
  32 print( "    1 ~", n, "までの総和は ",   sum_of_one_to_n( n ) )
  33 # ==============================================================================


SoftEng: Python/Prog/Example/02/Ex_003a (last edited 2018-10-25 12:45:58 by TadashiIijima)