Problem 1 问题描述: 编写程序,从键盘输入任意一个1900年1月1日(周一)之后的日期,计算并输出这 个日期对应的是周几。(仅仅使用1900.1.1是周一这个信息来进行计算) 输入举例: 2012.10.30 输出举例: Tuesday 输入举例: 1949,10,1 输出举例: Saturday 提示:能被4整除并且不能被100整除,或者能被400整除的年份是闰年。 程序文件命名:1py Problem 2 问题描述: 从输入文件中读入一个由正整数组成的文件ntxt,对这一组数字进行从小到大的排序, 将排序后的数字以每行8个的形式输出到文件out.xt中。 注意:输出时每个数字之间由一个空格分隔,每一行最后一个数字之后没有空格,最后一 行数字之后没有换行。 样例输入: 1213 34232 1132435545 452325351343 11 1455 样例输出: 511111213131432 3443455355232232435 545 程序文件命名:2.py
Problem 1 问题描述: 编写程序,从键盘输入任意一个 1900 年 1 月 1 日(周一)之后的日期,计算并输出这 个日期对应的是周几。(仅仅使用 1900.1.1 是周一这个信息来进行计算) 输入举例: 2012,10,30 输出举例: Tuesday 输入举例: 1949,10,1 输出举例: Saturday 提示:能被 4 整除并且不能被 100 整除,或者能被 400 整除的年份是闰年。 程序文件命名:1.py Problem 2 问题描述: 从输入文件中读入一个由正整数组成的文件 in.txt,对这一组数字进行从小到大的排序, 将排序后的数字以每行 8 个的形式输出到文件 out.txt 中。 注意:输出时每个数字之间由一个空格分隔,每一行最后一个数字之后没有空格,最后一 行数字之后没有换行。 样例输入: 样例输出: 程序文件命名:2.py
提示: 1、先将文件的内容读入一个列表中,列表的使用如下: a、初始化:list=; b、增加一项element::list.append(element) c、列表的长度:len(list) d、列表中元素的访问:ist[0、list[1]、、Iist[len(list)-l] 2、可以采用“冒泡法”进行排序(参见hp:/baike..baidu.com/view/254413htm) 先将第1个数字与第2个数字比较,如果第1个数字大于第2个数字,则将两个数字交 换;再比较第2个数字与第3个数字,,比较第n-1个数字与第n个数字,这样就把最 大数字放在了最后位置。 然后再将第1个数字与第2个数字比较,,比较第n-2个数字与第n-1个数字,就 把次大的数字放在了正确位置。 重复上面的的过程,直到第一个位置的数字固定。 Problem 3 问题描述: 请编写程序采用类似第9章的方法模拟羽毛球比赛。关于羽毛球比赛的规则如下: 1、比赛采用五局三胜制,如果比赛在四局或者四局之内结束,每局采用21分制:如果 比赛进行到第五局,则第五局采用11分制: 2、每局比赛先到21分(11分)的选手获得此局比赛的胜利:但是,如果比赛出现了 20:20(1010)的情况,那么此局之后的比赛中,需要比对手领先两分才能获得此局的胜利, 比如22:20,23:21,或者12:10、13:11: 3、选手在比赛中采用每局交替发球的方式,比如单数局由其中一个选手发球,那么双 数局由另外一个选手发球。在比赛的开始时,需要通过掷硬币的方式决定首先由哪个选手在 第一局发球: 4、每局比赛中采用胜者发球的原则。如果A赢得了一分,那么下一分将由A进行发球: 5、每个选手都有一个在发球的情况的下的得分概率(范围是(0,1)),而且此概率需要在 程序开始前由用户输入。 输入数据: N:记录A和B之间需要进行的比赛的场数: PA:记录A在发球的情况下得分的概率: PB:记录B在发球的情况下得分的概率: (这里假定PA,PB是独立的,可以从(O,I)中取值) 提示:在进行判断两个运动员谁得分的时候,需要考虑他们此时的得分概率和其他不可控因 素。可以通过两者的得分概率数值加上一个随机数(范围是(0,1))来进行粗略地衡量。比如, 通过比较PA+random(),l-PA+random(的大小关系来决定在A发球的情况下,哪个选手获 得这一分;同样,当B发球的时候,衡量PB+random(O,I-PB+random()的大小关系。 输出举例: Game simulated:1000 输入的N Wins for A:3360(67.2%) A胜利的场数 Wins for B:1640(32.8%) B胜利的场数
提示: 1、先将文件的内容读入一个列表中,列表的使用如下: a、初始化:list = []; b、增加一项 element:list.append(element) c、列表的长度:len(list) d、列表中元素的访问:list[0]、list[1]、......、list[len(list)-1] 2、可以采用“冒泡法”进行排序(参见 http://baike.baidu.com/view/254413.htm) 先将第 1 个数字与第 2 个数字比较,如果第 1 个数字大于第 2 个数字,则将两个数字交 换;再比较第 2 个数字与第 3 个数字,…...,比较第 n-1 个数字与第 n 个数字,这样就把最 大数字放在了最后位置。 然后再将第 1 个数字与第 2 个数字比较,.......,比较第 n-2 个数字与第 n-1 个数字,就 把次大的数字放在了正确位置。 重复上面的的过程,直到第一个位置的数字固定。 Problem 3 问题描述: 请编写程序采用类似第 9 章的方法模拟羽毛球比赛。关于羽毛球比赛的规则如下: 1、比赛采用五局三胜制,如果比赛在四局或者四局之内结束,每局采用 21 分制;如果 比赛进行到第五局,则第五局采用 11 分制; 2、每局比赛先到 21 分(11 分)的选手获得此局比赛的胜利;但是,如果比赛出现了 20:20(10:10)的情况,那么此局之后的比赛中,需要比对手领先两分才能获得此局的胜利, 比如 22:20,23:21,或者 12:10、13:11; 3、选手在比赛中采用每局交替发球的方式,比如单数局由其中一个选手发球,那么双 数局由另外一个选手发球。在比赛的开始时,需要通过掷硬币的方式决定首先由哪个选手在 第一局发球; 4、每局比赛中采用胜者发球的原则。如果 A 赢得了一分,那么下一分将由 A 进行发球; 5、每个选手都有一个在发球的情况的下的得分概率(范围是(0,1)),而且此概率需要在 程序开始前由用户输入。 输入数据: N: 记录 A 和 B 之间需要进行的比赛的场数; PA: 记录 A 在发球的情况下得分的概率; PB: 记录 B 在发球的情况下得分的概率; (这里假定 PA,PB 是独立的,可以从(0,1)中取值) 提示:在进行判断两个运动员谁得分的时候,需要考虑他们此时的得分概率和其他不可控因 素。可以通过两者的得分概率数值加上一个随机数(范围是(0,1))来进行粗略地衡量。比如, 通过比较 PA+random(),1-PA+random()的大小关系来决定在 A 发球的情况下,哪个选手获 得这一分;同样,当 B 发球的时候,衡量 PB+random(),1-PB+random()的大小关系。 输出举例: Game simulated:1000 ..................输入的 N Wins for A:3360(67.2%) ..................A 胜利的场数 Wins for B:1640(32.8%) ..................B 胜利的场数
题目要求: 1、胜率的输出结果保留一位小数,见输出举例: 2、提交作业的时候需要同时提交类似课本Figure9.3一样的程序结构图: 3、每个跟实际问题对应的变量名需要做到“望名生义”,即名字应该有实际的意义,比如 NameA,ScoreA,杜绝使用a,b等: 4、写出的函数需要有详细的注释,具体的方式参见9.3.6节。 程序文件命名:3py
题目要求: 1、胜率的输出结果保留一位小数,见输出举例; 2、提交作业的时候需要同时提交类似课本 Figure9.3 一样的程序结构图; 3、每个跟实际问题对应的变量名需要做到“望名生义”,即名字应该有实际的意义,比如 NameA,ScoreA,杜绝使用 a,b 等; 4、写出的函数需要有详细的注释,具体的方式参见 9.3.6 节。 程序文件命名:3.py