Differences between revisions 2 and 3
Revision 2 as of 2019-03-28 15:20:35
Size: 583
Comment:
Revision 3 as of 2019-03-28 15:23:21
Size: 3460
Comment:
Deletions are marked like this. Additions are marked like this.
Line 25: Line 25:
=== 解答例1 () === === 解答例1 (exam_04_01a_sum_and_average.py) ===
Line 28: Line 28:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ==============================================================================
# * Copyright (c) 2018 IIJIMA, Tadashi
# * (IIJIMA Laboratory, Dept. of Science and Technology, Keio University).
# ==============================================================================
# ソフトウェア工学 期末試験 (追試) exam_04_01a_sum_and_average.py
# Exam 04-01: 整数値のリストの総和と平均,分散を計算する
# 2019-02-06 飯島 正 (iijima@ae.keio.ac.jp)
# ==============================================================================
import statistics
# ==============================================================================
# ===== 【関数定義】 整数リストの総和を返す =====
def sum( int_list ):
    result = 0
    for data in int_list:
        result += data
    return( result )
# ==============================================================================
# ===== 【関数定義】 整数リストの平均値を返す =====
def average( int_list ):
    result = 0.0
    try:
        result = sum( int_list ) / len( int_list )
    except ZeroDivisionError:
        print("エラー: データ数がゼロです")
        raise ZeroDivisionError("エラー: ゼロでの割り算があり平均が求められません")
    return( result )
# ==============================================================================
# ===== 【関数定義】 整数リストの分散(母分散)を返す =====
def variance( int_list ):
    return( sum_of_square_error( int_list ) / ( len( int_list ) ) )
# ==============================================================================
# ===== 【関数定義】 整数リストの偏差平方和を返す =====
def sum_of_square_error( int_list ):
    means = average( int_list )
    result = float()
    for x in int_list:
        result += ( ( x -means ) ** 2 )
    return( result )
# ==============================================================================
# ===== 【メイン・プログラム】 =====
# ----- オープニングメッセージ -----
print( "整数値のリストの総和と平均,分散: " )
print()
Line 29: Line 74:
# ----- データを表示する -----
data_list = [1,2,3,4, 5]
print( " 読み込んだ結果: ", data_list )
print()

# ----- 総和を表示する -----
print( " 総和: ", sum( data_list ) )

# ----- 平均を表示する -----
try:
    print( " 平均: ", average( data_list ) )
except ZeroDivisionError as e:
    print(e.args[0])

# ----- 分散を表示する -----
print( " 分散: ", variance( data_list ) )
print( "(比較:組込関数) 母分散:", statistics.pvariance( data_list ) )
# ==============================================================================


授業-ソフトウェア工学 > 2018年度 > 試験 > 期末試験 (追試) > 期末試験 (追試) 問題01


授業-2018年度-ソフトウェア工学-期末試験 (追試) 問題01

問題01:

*

(公開)



問題 01:

[ edit]


問題

[ edit]



解答例1 (exam_04_01a_sum_and_average.py)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ==============================================================================
# * Copyright (c) 2018 IIJIMA, Tadashi
# *       (IIJIMA Laboratory, Dept. of Science and Technology, Keio University).
# ==============================================================================
# ソフトウェア工学 期末試験 (追試) exam_04_01a_sum_and_average.py
# Exam 04-01: 整数値のリストの総和と平均,分散を計算する
#        2019-02-06 飯島 正 (iijima@ae.keio.ac.jp)
# ==============================================================================
import statistics
# ==============================================================================
# ===== 【関数定義】 整数リストの総和を返す =====
def sum( int_list ):
    result = 0
    for data in int_list:
        result += data
    return( result )
# ==============================================================================
# ===== 【関数定義】 整数リストの平均値を返す =====
def average( int_list ):
    result = 0.0
    try:
        result = sum( int_list ) / len( int_list )
    except ZeroDivisionError:
        print("エラー: データ数がゼロです")
        raise ZeroDivisionError("エラー: ゼロでの割り算があり平均が求められません") 
    return( result )
# ==============================================================================
# ===== 【関数定義】 整数リストの分散(母分散)を返す =====
def variance( int_list ):
    return( sum_of_square_error( int_list ) / ( len( int_list ) ) )
# ==============================================================================
# ===== 【関数定義】 整数リストの偏差平方和を返す =====
def sum_of_square_error( int_list ):
    means = average( int_list )
    result = float()
    for x in int_list:
        result += ( ( x -means ) ** 2 )
    return( result  )
# ==============================================================================
# ===== 【メイン・プログラム】 =====
# ----- オープニングメッセージ -----
print( "整数値のリストの総和と平均,分散: " )
print()

# ----- データを表示する -----
data_list  = [1,2,3,4, 5]
print( "  読み込んだ結果: ", data_list )
print()

# ----- 総和を表示する -----
print( "  総和: ", sum( data_list ) )

# ----- 平均を表示する -----
try:
    print( "  平均: ", average( data_list ) )
except ZeroDivisionError as e:
    print(e.args[0])

# ----- 分散を表示する -----
print( "  分散: ", variance( data_list ) )
print( "(比較:組込関数)  母分散:", statistics.pvariance( data_list ) )
# ==============================================================================


SoftEng: 2018/Exam/04/01/IndexPage (last edited 2019-03-28 15:23:21 by TadashiIijima)