大家来看看我这段 free Pascal语言有什么错误?????

2024年11月14日 15:55
有4个网友回答
网友(1):

Program Date;
Var a,b,d:Integer;
Begin
WriteLn('Month= year=');
Read(a,b);
Case a Of
1,3,5,7,8,10,12 : d := 31;
4,6,9,11 : d := 30
Else If (b Mod 400=0) Or ((b Mod 4=0) And (b Mod 100 <> 0))
Then d := 29 Else d:=28;
End;
Write(d);
End.
我试着运行,是可以运行的!
如果我没猜错的话,应该是求某年某月的天数吧?
反正我是按这样改的!
原文及错误:
program date(应该有“;”)
var a,b:integer(应该有“;”,应该定义变量d)
read(a,b)(应该有“;”)
begin;(应该没有“;”)
case b of:(应该没有“:”)
1,3,5,7,8,10,12 then d:=31;(不是Then,是“:”)
4,6,9,11 then d:=30;(不是Then,是“:”以及没有“;”)
else if(b mod 400=0) or (b mod 4=0 and b mod 100 <>0) then d:=29;(没有“;”另外,注意((b mod 4=0) and (b mod 100 <>0))才对)
else d:=28(应该有“;”)
write(d)(应该有“;”)
end.
望采纳!

网友(2):

program date; 后要有分号
var a,b:integer;
read(a,b);
begin 关键词后不要分号
case b of:
1,3,5,7,8,10,12 then d:=31;
4,6,9,11 then d:=30;
else if(b mod 400=0) or (b mod 4=0 and b mod 100 <>0) then d:=29;
else d:=28
write(d);
end.
你在调试一下,要看语法基

网友(3):

program date(没分号)
var a,b:integer(没分号)
read(a,b)(没分号)(与begin写反了)
begin;(不要分号)
case b of:
1,3,5,7,8,10,12 then d:=31;(d未定义)
4,6,9,11 then d:=30;(d未定义)
else if(b mod 400=0) or (b mod 4=0 and b mod 100 <>0) then d:=29;(d未定义)
else d:=28(d未定义)
write(d)(d未定义)
end.

网友(4):

program date ←米有分号
var a,b:integer ←定义少了一个"d"变量
read(a,b) ←这种语句应该放在begin后面
begin; ←多了分号
case b of:
1,3,5,7,8,10,12 then d:=31; ←因d变量没定义,所以无法执行下面程序。 ↖不是用then,是用冒号“:”
↙这里也是用冒号,不是用then
4,6,9,11 then d:=30; ←只要加上d变量(在定义变量时)就可以了.
else if(b mod 400=0) or (b mod 4=0 and b mod 100 <>0)
then d:=29; ←多了分号,因为下面还有else语句,所以不用分号
else d:=28 ←少了分号,当if语句写完以后,要在最后一个语句加分号.
write(d) ←少了分号
end.