program date;
uses wincrt;
var
m,ch,ch1,ch2,ch3: string ;
mois,j,a,b: integer ;
begin
write('a');read(a);
write('j');read(j);
write('mois');read(mois);
case mois of
1,3,5,7,8,10: if j<31 then
begin
b:=j+1;
m:=str(b,ch)+'/'+str(mois,ch2)+'/'+str(a,ch3);
else if j=31then
b:=1;
s:=mois+1;
m:=concat(str(b,ch),'/',str(s,ch2),'/',str(a,ch3));
end
else m:='erreur';
4,6,9,11:if j<30 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else j=30 then
begin
b:=1;
s:=mois+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else m:='erreur';
2:if j<28 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2),'/',str(a,ch3));
end
else if j=28 then
begin
b:=1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if((a mod 4=0)AND (a mod 100<>0)) or ((a mod 100=0)and(a mod 400=0)) then
if j<29 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if j=29 then
begin
b:=1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else m:='erreur';
12:if j<31 then
begin
b:=j+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(a,ch3));
end
else if j=31 then
begin
b:=1;
s:=a+1;
m:=concat(str(b,ch),'/',str(mois,ch2,'/',str(s,ch3));
end;
writeln(m);
end.
这是我的计划,希望你能帮助我
答案 0 :(得分:2)
根据开始/结束块缩进代码可能是个好主意。这样可以很容易地发现未配对的开头/结尾语句。
m:=str(b,ch)+'/'+str(mois,ch2)+'/'+str(a,ch3);
我用Turbo Pascal做了很长时间,但如果我没记错的话,str就是一个程序。所以它不会返回任何东西。
为了简化程序,最好只计算case块内的新变量“b”,“mois”和“a”。然后在case-block之后转换为字符串一次。
str(b, ch);
str(mois, ch2);
str(a, ch3);
m := ch + '/' + ch2 + '/' + ch3;