pascal高手快进来,小弟问一个问题!谢了!
pascal吧
全部回复
仅看楼主
level 1
tangyi2911 楼主
一、打保龄球源程序名    bowling.??? (pas,c,cpp)可执行文件名 bowling.exe输入文件名   bowling.in 输出文件名 bowling.out 打保龄球是用一个滚球去打击十个站立的柱,将柱击倒。一局分十轮,每轮可滚球一次或多次,以击倒的柱数为依据计分。一局得分为十轮得分之和,而每轮的得分不仅与本轮滚球情况有关,还可能与后续一两轮的滚球情况有关。即某轮某次滚球击倒的柱数不仅要计入本轮得分,还可能会计入前一两轮得分。具体的滚球击柱规则和计分方法如下: (1)若某一轮的第一次滚球就击倒全部十个柱,则本轮不再滚球(若是第十轮则还需另加两次滚球,不妨称其为第十一轮和第十二轮,并不是所有的情况都需要滚第十一轮和第十二轮球)。该轮得分为本次击倒柱数10与以后两次滚球所击倒柱数之和。 (2)若某一轮的第一次滚球未击倒十个柱,则可对剩下未倒的柱再滚球一次。如果这两次滚球击倒全部十个柱,则本轮不再滚球(若是第十轮则还需另加一次滚球),该轮得分为这两次共击倒柱数10与以后一次滚球所击倒柱数之和。 (3)若某一轮两次滚球未击倒全部十个柱,则本轮不再继续滚球,该轮得分为这两次滚球击倒的柱数之和。 总之,若—轮中一次滚球或两次滚球击倒十个柱,则本轮得分是本轮首次滚球开始的连续三次滚球击倒柱数之和(其中有一次或两次不是本轮滚球)。若一轮内二次滚球击倒柱数不足十个,则本轮得分即为这两次击倒柱数之和。下面以实例说明如下(字符“/”表示击倒当前球道上的全部的柱): 轮 1 2 3 4 5 6 7 8 9 10 11 12 击球情况 / / / 72 9/ 81 8/ / 9/ / 8/ 各轮得分 30 27 19 9 18 9 20 20 20 20 累计总分 30 57 76 85 103 112 132 152 172 192现在请你编写一个保龄球实时计分程序,用来计算和显示某轮结束后的得分情况。若某轮的得分暂时无法算出,则该轮得分不显示。输入:输入数据用文件bowling.in,文件内容仅有一行,为前若干轮滚球的情况,每轮滚球用一到两个字符表示,每一个字符表示一次击球,字符“/”表示击倒当前球道上的全部的柱,否则用一个数字字符表示本次滚球击倒的当前球道上的柱的数目,两轮滚球之间用一个空格字符隔开。如上例对应的输入文件内容为:/ / / 72 9/ 81 8/ / 9/ / 8/输出:输出到文件bowling.out,共两行,第一行为每轮得分,第二行为到当前轮为止的总得分。每个得分之间用一个空格隔开。样例输入: / / / 72 9/ 81 8/ / 9/ / 8/样例输出: 30 27 19 9 18 9 20 20 20 20 30 57 76 85 103 112 132 152 172 192二、安全逃离源程序名 EVAC.???(PAS,C,CPP)可执行文件名 EVAC.EXE输入文件名 EVAC.IN输出文件名 EVAC.OUT农夫john最近在研究如果发生重大事故,如何让农场里的奶牛逃离问题。他想要确信在紧急情况下,所有的奶牛都有一个安全逃离方案。因为在紧急情况下,奶牛们都会失去观察和判断能力,所以最近john一直在教奶牛们逃离的方法,他的方法很简单,就是任何时候都只向北方或东方逃离,北方是行坐标减1的方向,东方是列坐标加1的方向。奶牛们虽笨,不过这一点事关自己的生命,所以他们牢记在心,而且也一定会这么做。当然也会出问题,奶牛们在逃离的方向上会横冲直撞,为了阻止奶牛之间互相冲撞造成伤害,john要求任何一个奶牛的逃离路线不能经过其它奶牛的初始位置。一个逃离方案是安全的如果它能够满足上面的要求,反之它就是不安全的。奶牛们所在的土地(农场)被划分成了r行和c列的一个矩形地图。奶牛们都待在这个矩形中的某一个位置。
2006年11月14日 11点11分 1
level 1
tangyi2911 楼主
太长了,分成了两份.今天做模拟题遇到了问题,望各位高手把解题思路和源程序贴上来.谢了!!
2006年11月14日 11点11分 3
level 0
哪里的模拟题啊我没见过.
2006年11月16日 12点11分 4
level 0
tangyi2911你是雅礼C79班的汤翊吧~~~~~~~~~~~~~~~~~~~~~
2007年01月19日 02点01分 5
level 0
第四题太简单了,程序如下:
 var s:array[1..366] of boolean; 
 m,d,i,j,k,n:integer; max:longint; 
begin 
 fillchar(s,sizeof(s),true); 
 assign(input,'heaven.in'); 
 reset(input); 
 assign(output,'heaven.out'); 
 rewrite(output); 
 readln(n); 
 for i:=1 to n do 
 begin 
 readln(m,d); 
 for j:=1 to m-1 do 
 case j of 
 1,3,5,7,8,10,12:k:=k+31; 
 2:k:=k+29; 
 4,6,9,11:k:=k+30; 
 end; 
 k:=k+d; 
 s[k]:=false; 
 k:=0; 
 end; 
 for i:=1 to 366 do 
 if s[i] then begin k:=k+1; if k>max then max:=k; end else k:=0; 
 max:=round((max/366)*24*3600); 
 writeln(max); 
 close(input); 
 close(output); 
end.
2009年07月19日 05点07分 6
level 1
第三题数据错了!!!!!!!!!!!!!
2010年10月29日 13点10分 8
level 8
2013年09月19日 13点09分 10
1