数据结构与算法 Python语言实现 课后习题解答Chapter 2

2.7 Exercises

Reinforcement
R-2.1 Give three examples of life-critical software applications.

https://www.cnblogs.com/chenlimei/p/9287345.html

 ● 2011 年温州7.23 动车事故

  2011年7月23日20时30分05秒,甬温线浙江省温州市境内,由北京南站开往福州站的D301次列车与杭州站开往福州南站的D3115次列车发生动车组列车追尾事故,造成40人死亡、172人受伤,中断行车32小时35分,直接经济损失19371.65万元。

  上海铁路局局长安路生28日说,根据初步掌握的情况分析,“7·23”动车事故是由于温州南站信号设备在设计上存在严重缺陷,遭雷击发生故障后,导致本应显示为红灯的区间信号机错误显示为绿灯。

  ● 致命的辐射治疗

  辐射剂量超标的事故发生在2000年的巴拿马城(巴拿马首都)。从美国Multidata公司引入的治疗规划软件,其(辐射剂量的)预设值有误。有些患者接受了超标剂量的治疗,至少有5人死亡。后续几年中,又有21人死亡,但很难确定这21人中到底有多少人是死于本身的癌症,还是辐射治疗剂量超标引发的不良后果。

  ● 消失在太空

  在制造其火星气候轨道探测器时,一个NASA的工程小组使用的是英制单位,而不是预定的公制单位。这会造成探测器的推进器无法正常运作。正是因为这个 Bug,1999年探测器从距离火星表面130英尺的高度垂直坠毁。此项工程成本耗费3.27亿美元,这还不包括损失的时间(该探测器从发射到抵达火星将近一年时间。)

  ● 阿丽亚娜5型火箭的杯具处女秀

  1996年6月4日,阿丽亚娜5型运载火箭的首航,原计划将运送4颗太阳风观察卫星到预定轨道,但因软件引发的问题导致火箭在发射39秒后偏轨,从而激活了火箭的自我摧毁装置。阿丽亚娜5型火箭和其他卫星在瞬间灰飞烟灭。

  后来查明的事故原因是:代码重用。阿5型的发射系统代码直接重用了阿4型的相应代码,而阿4型的飞行条件和阿5型的飞行条件截然不同。此次事故损失3.7亿美元。

  ● 英特尔奔腾芯片缺陷

  如果在计算机的“计算器”中输入以下算式:

  (419583/3145727)X3145727-4195835

  结果显示为零。而在1994年,结果可能为其他答案,这就是英特尔(Intel)奔腾(Pentumn)CPU芯片所带来的一个浮点触发缺陷。英特尔为此付出了4亿多美元的代价。

  ● 一触即发的第三次世界大战

  1980年,北美防空联合司令部曾报告称美国遭受导弹袭击。后来证实,这是反馈系统的电路故障问题,但反馈系统软件没有考虑故障问题引发的误报。

  1983年,苏联卫星报告有美国导弹入侵,但主管官员的直觉告诉他这是误报。后来事实证明的确是误报。

  幸亏这些误报没有激活“核按钮”。在上述两个案例中,如果对方真的发起反击,核战争将全面爆发,后果不堪设想。

R-2.4 Write a Python class, Flower, that has three instance variables of type str,
int, and float, that respectively represent the name of the flower, its number
of petals, and its price. Your class must include a constructor method
that initializes each variable to an appropriate value, and your class should
include methods for setting the value of each type, and retrieving the value
of each type.

class Flower():
    '''A flower.'''
    
    def __init__(self,name,number,price):
        '''Create a new flower instance.
        
        name    the name of the flower
        number  the number of the leaves
        price   the price of the flower(measured in dollars)
        '''
        
        self._name=name
        self._number=number
        self._price=price
        
    def get_name(self):
        '''Return the name of the flower.'''
        
        return self._name
    
    def get_number(self):
        '''Return the number of the leaves.'''
        
        return self._number
    
    def get_price(self):
        '''Return the price of the flower.'''
        
        return self._price
    
    def set_name(self,name):
        '''Set the name of the flower.'''
        
        self._name=name
        
    def set_number(self,number):
        
        self._number=number
        
    def set_price(self,price):
        
        self._price=price
        

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(数据结构与算法)