回 帖 发 新 帖 刷新版面

主题:[讨论]大家讨论一下这个程序效率

Program Example;
{ This program is about work out the day number which is the next one that
    people type it
  By : Zuo XingDong
  Time: 2007.2.3
}
Type
  Days = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);

Var
  Today, Tomorrow: Days;
  n: Integer;

Begin
  Write('n(0,1,2,3,4,5,6)='); ReadLn(n);

  Case n Of
    0: Today := Sunday;
    1: Today := Monday;
    2: Today := Tuesday;
    3: Today := Wednesday;
    4: Today := Thursday;
    5: Today := Friday;
    6: Today := Saturday;
  End;

  If Today = Saturday Then Tomorrow := Sunday Else Tomorrow := Succ(Today);
  Write('Tomorrow is ');

  Case Tomorrow Of
    Sunday: WriteLn('Sunday');
    Monday: WriteLn('Monday');
    Tuesday: WriteLn('Tuesday');
    Wednesday: WriteLn('Wednesday');
    Thursday: WriteLn('Thursday');
    Friday: WriteLn('Friday');
    Saturday: WriteLn('Saturday');
  End;

  ReadLn;
End.

-----------------------------------------------------------------------
这个程序执行效率如何阿?有没有更简便的方法呢?谢谢大家

回复列表 (共3个回复)

沙发

可以定义1个常量数组

板凳

可以定义一个数组
在程序中以数组下标作为星期
在打印时再转换过来就行了
你编的程序在过程中进行了2次转换,效率很低!

3 楼

const
   a:array [0..6] of string
   =('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
var
  n:byte;
begin
  write('n(0, 1, 2, 3, 4, 5, 6):');readln(n);
  writeln('Tomorrow:',a[n]);
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册