求pascal程序!!! 保龄球实时计分

作者&投稿:右官 (若有异议请与网页底部的电邮联系)
Pascal程序输出结果是。。。求说明。。谢谢~

这个实在是太简单了,连排序都不需要,用哈希数组就行。
如果能确保输入数没有重复,就用第一个,不能就用第二个程序。
Program ASCII;
var
s:string;
a:array[48..122] of boolean;;
i,l:integer;
begin
fillchar(a,sizeof(a),false);
readln(s);
l:=length(s);
for i := 1 to l do
a[ord(s[i])]:=true;
for i := 48 to 122 do
if a[i] then
write(chr(i),' ')
end.
第二个程序:
Program ASCII;
var
s:string;
a:array[48..122] of integer;;
i,j,l:integer;
begin
fillchar(a,sizeof(a),0);
readln(s);
l:=length(s);
for i := 1 to l do
inc(a[ord(s[i])]);
for i := 48 to 122 do
if a[i]>0 then
for j := 1 to a[i] do
write(chr(i),' ')
end.

用1,2,3,4,5表示五个座位的顺时针顺序,用i,j,k,l,m表示赵、钱、孙、李、周五人,对i,j,k,l,m用五层嵌套从1到5循环。
要满足以下几个条件,则为正确结果:
1、i,j,k,l,m互不相等
2、i-j的绝对值不为1
3、(k-j+5)模5不为0
4、(l-j+5)模5不为0
5、(j-k+5)模5不为0
6、(k-l+5)模5不为0
以上回答你满意么?

program bowling;
//By 灰天飞雁 htfy96@qq.com 转载请保留此行
var
  c:char;
  round,state,i,sum:longint;
  a:array[0..13,0..2] of longint;  //A[i,j]:第i轮第j次滚球砸倒数,跳过或未砸中均为0
  clear,ans:array[0..13] of longint; //clear:第i轮的扔球情况 1第一次clear 2第二次clear 0两次之后仍未clear
  begin
  assign(input,'bowling.in');
  assign(output,'bowling.out');
  reset(input);
  rewrite(output);
  fillchar(a,sizeof(a),0);
  fillchar(clear,sizeof(clear),0);
  round:=1; state:=1;
  while not eoln do
    begin
    read(c);
    if c<>' ' then
      begin
      if c='/' then        //clear了
        if state=1 then      //第一次clear
          begin
          clear[round]:=1;
          a[round,1]:=10;
        end
        else
          begin
          clear[round]:=2;
          a[round,2]:=10-a[round,1];     //第二次clear,这一次砸中数通过计算得到
        end
      else
        a[round,state]:=ord(c)-ord('0');    //未clear
      if (clear[round]>0) or (state=2) then begin inc(round);state:=1; end else inc(state);  //砸完了或者已经经过2次就进入下一轮
    end;
  end;
  readln;
  for i:=1 to 10 do
    begin
    case clear[i] of
      1:if clear[i+1]<>1 then ans[i]:=10+a[i+1,1]+a[i+1,2] else ans[i]:=10+10+a[i+2,1]; //这一轮一次clear,+下两次砸球.若clear[i+1]不为1则 代表下一轮砸了2次, 为1则代表砸了1次,还需加上下下轮第一次砸球
      2:ans[i]:=10+a[i+1,1];    //两次clear。只要clear就能砸3次,因此加上下一轮第1次
      0:ans[i]:=a[i,1]+a[i,2]; //未clear,只记本轮分
    end;
    if i<10 then write(ans[i],' ') else writeln(ans[i]);
  end;
  sum:=0;
  for i:=1 to 10 do
    begin
    inc(sum,ans[i]);
    if i<10 then write(sum,' ') else writeln(sum);
  end;
  close(input);
  close(output);
end.




基础题好好想


用pascal编写程序 如果一个4位数等于它的每一位数字4次方之和,则称为...
程序:var i,k,x:longint;begin for i:=1000 to 9999 do\/\/枚举所有的四位数,因为玫瑰花数一定是四位数 begin k:=0;x:=i;while x>0 do begin k:=k+sqr(sqr(x mod 10));\/\/这里可能太快了。这样子,设n表示目前x的各位,则n的四次方为n*n*n*n,而sqr为求平方数,所以sqr(sqr(...

关于Pascal程序中的冒泡程序
程序如下 :[例6、1]Var n:array[1..10] of integer;I,j,t:integer;Begin For I:=1 to 10 do Readln(n[I]);For I:=1 to 9 do begin For j:=I+1 to 10 do begin If n[I]<n[j] then begin T:=n[I];N[I]:=n[j];N[j]:=t;End;End;End;For I:=1 to 10 do ...

pascal 程序设计 计算1+1×2+1×2×3+1×2×3×4+1×2×3×4×5 +...
简单写下:var n,ans,add,i:longint; \/\/数据先按这么大的来了 begin readln(n); \/\/读入n值 if n<=0 then begin writeln('WRONG'); exit; end; \/\/对于非法值的出口 ans:=0; add:=1;for i:=1 to n do begin add:=add*i; \/\/累乘器(由于每次的前几项都与前式相同,...

pascal是什么?
pascal 关于Turbo Pascal Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。正因为上述特点,Pascal语言可以被...

pascal 阅读程序
Program ex303;Const NN=7; \/\/NN的值 Type Arr1=array[0..30] of char;var s:arr1;k,p:integer;Function fun(s:arr1; a:char;n:integer):integer;var j:integer;begin j:=n; {j被赋成7,指向数组末尾} while (a0) do dec(j);{如果查找字母比s[j]这个字母小,就把j减1,循环...

pasical程序基本语句
从这个简单的程序可以看到: ⒈ 一个Pascal程序分为两个部分:程序首部和程序体(或称分程序)。 ⒉ 程序首部是程序的开头部分,它包括: ⑴程序标志。用"program"来标明这是一个Pascal 程序。Pascal规定任何一个Pascal程序的首部都必须以此字开头。在Free Pascal中,首部也可省略。 ⑵程序名称。由程序设计者自己定义,...

PASCAL 程序问题
1.我们可以看Random函数的定义:RANDOM(n):表示产生[0,N)之间的随机整数,可以直接使用RANDOM语句表示随机产生一个[0,1)的数 我们知道,[表示包括,)表示不包括,所以Random语句只会产生0到1但不包括1的数 2.readln语句表示一直读入数据直到遇到第一个换行符 我们知道在fp中,程序一运行结束就立刻退出...

pascal程序
程序:var a:array[1..3] of integer; {每个容器的容量} x:array[1..1000,1..3] of shortint; {存放已经出现过的状态} y:array[1..1000] of integer; {存放树(tree)的前缀层数,即当前倒油次数} b:array[1..3] of integer; {目标状态} c:array[1..3] of integer;p1:integer;p...

来帮忙看看这个Pascal程序
[问题评估]这个题目据问题本身而言是相当简单的,没有牵涉到过多的算法,属于普及型试题。同时也是对实际问题一种分析和判断。总的来看,本题在方向上,向现实问题迈出了一步,是信息学和生活有了更多的联系。问题的算法是模拟。当中唯一的难点就是数据处理,考察点为数据库的建立和统计。【程序实现】...

pascal的程序填空(希望有讲解)
然后来看看这个程序吧。二、没有题号看得有点费劲哦。function gcd...1、if r=0 then break\/\/有点多此一举的语句,但感觉只能填这个了{下面是oier经常用的gcd代码形式的伪代码,不知道会不会给你点启示}func gcd(a,b) if a mod b=0 then exit(b) else exit(gcd(b, a mod b))...

禹州市17745285849: PASCAL的程序代码 -
苑慧严辞: 这道题有两种算法,第一种是用for语句,第二种是用递归(不知道楼主学了没有),具体见下:一、for语句 参考程序:var f:array[0..10000]of longint; //数组开到多少自己定(我是开到10000,要注意从0开始) n,x,i:longint; begin readln(n,x); ...

禹州市17745285849: 输入n个整数,计算它们之和. 求pascal程序 -
苑慧严辞: program ex01; var n, s, a: integer; begin readln(n); s := 0; for i := 1 to n dobegin Read(a); Inc(s, a); end; writeln(s); readln; end.

禹州市17745285849: 求一个PASCAL程序 -
苑慧严辞: 用筛选法求1~N之间的所有素数.分析:对于数组flag[1..n],先初始化假设全为true.首先flag[1]=false,接着从数组中找到第1个为true的数flag[2],那么在2以后的所有数中,将2的倍数的数赋值为false.接着再从数组中找到下一个为true的3,将3...

禹州市17745285849: PASCAL源程序 跪求 -
苑慧严辞: 简单DP var s:string; c:char; max,min:array[1..20,1..20] of longint; i,j,l,n,e:longint; opr:array[1..20] of char; function cal(x,y:longint; c:char):longint; begin if c='+' then exit(x+y); exit(x*y); end; begin repeat s:=''; read(c); n+=1; repeat s:=s+c; read(c); until ...

禹州市17745285849: 求一个Pascal的程序
苑慧严辞: 楼主的题目要求是 让用户输入两个数字和一个符号(+ - *没有除号), 再输入结果 然后让电脑判断计算的是否正确, 理解无误吧, 楼主的题目就是这样写的 给出程序var a, b, res, ires: Double; c: Char; begin Write('Please input two numbers: '); ...

禹州市17745285849: 编写一个Pascal程序计算圆周率 -
苑慧严辞: 给出几个程序,楼主选一个吧:var x,i,j:extended; begin x:=4; i:=3; repeat j:=i*i; x:=x*((j-1)/j); i:=i+2; until i>5E8; /*计算到i>5亿为止*/ writeln(x:0:18); /*输出计算的结果*/ writeln(PI:0:18) /*输出Pascal储存的常量结果*/ end.{$N+} var i:longint; pi,j:...

禹州市17745285849: 算式求解(pascal程序)
苑慧严辞: 输出格式错了,刚修改过 var n,i,j,p:integer; s,s1,s3:string; s2:char; begin readln(s);{用字符串输入} n:=1; repeat inc(n);{寻找运算符的位置,从1开始是为了避免把第一个数前的符号当成要进行的运算} until (s[n]='+')or(s[n]='-')or(s[n]='*')or(s[n]='/')...

禹州市17745285849: 求pascal编程练习题及答案. -
苑慧严辞: 循环:for i:=1 to n do read(a[i]); 选择:if x>0 then writeln(k+x) else writeln(x-k); array:循环里 顺序:x:=2; y:=3; write(x+y); 望采纳

禹州市17745285849: 求一个PASCAL程序,请使用二分查找发 -
苑慧严辞: 二分查找……应该很容易看懂的吧我就不写注释了~望采纳谢谢!var a:array [1..1000000] of string; s:string; n:longint; function search(st:string;low,high:longint):longint; var mid:longint; begin mid:=(low+high) shr 1; if low<=high then begin if st=a[mid] ...

禹州市17745285849: 写出简单的pascal语言程序,在线等~ -
苑慧严辞: var a,b,c:integer; s:real; begin readln(a,b,c); s:=(a+b+c)div 3; c:=a*b*c; writeln(s:5:3); writeln(c); end.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网