what is wrang. in wy proogram is all good
if eniboby knous what is error? please help me, make a kindness.
const b:array [1..7] of string=
('mon','tue','wed','thu','fri','sat','sun');
v:array [1..12] of shortint=
(31,28,31,30,31,30,31,31,30,31,30,31);
var data,month,year,q,l,t,r,m,n,i,j,k,x:integer;
pir,pir1:string;
d:array [1..7,1..7] of string;
procedure readdata;
begin
readln (data,month,year);
end;
function leap(i:word):boolean;
begin
leap:=((i mod 4=0)and(i mod 100<>0))or(i mod 400=0);
end;
procedure first_jan_of_year;
begin
j:=0;
for i:=1 to year do
begin
if leap(i) then
j:=(j+2) mod 7
else
j:=(j+1) mod 7;
end;
end;
procedure find_first_day;
begin
for i:=1 to month-1 do
if (leap(year)) and (i=2) then
k:=k+29
else
k:=k+v[i];
if k<>0 then
begin
k:=k mod 7;
if k=0 then
k:=7;
end;
j:=(j+k) mod 7;
if j=0 then
j:=7;
if year=1600 then
j:=6;
end;
procedure how_many_day_are_in_the_month;
begin
if (leap(year)) and (month=2) then
x:=29
else
x:=v[month];
end;
procedure weeks_days;
begin
d[1,1]:='mon';d[2,1]:='tue';d[3,1]:='wed';
d[4,1]:='thu';d[5,1]:='fri';d[6,1]:='sat';d[7,1]:='sun';
end;
procedure make_calendar;
begin
r:=0;
for l:=2 to 7 do
for i:=j to 7 do
begin
inc (r);
if r>x then
exit;
str (r,d[i,l]);
if r=data then
if (length(d[i,l])=2) then
d[i,l]:=' [' +d[i,l]+']'
else
d[i,l]:=' [' +d[i,l]+']'
else
begin
if d[i,l-1]='' then
d[i,l]:=' ' +d[i,l]+' '
else
begin
if length(d[i,l])=2 then
d[i,l]:=' ' +d[i,l]+' '
else
d[i,l]:=' ' +d[i,l]+' ';
end;
end;
if i=7 then
j:=t+1;
end;
end;
procedure change;
begin
for i:=1 to 7 do
for j:=1 to 7 do
if d[i,j]='' then
d[i,j]:=' ';
end;
procedure print;
begin
for i:=1 to 7 do
for j:=1 to 8 do
if j>7 then
writeln
else
write (d[i,j]);
end;
begin
readdata;
first_jan_of_year;
find_first_day;
how_many_day_are_in_the_month;
weeks_days;
make_calendar;
change;
print;
end.
Re: what is wrang. in wy proogram is all good
> if (length(d[i,l])=2) then
> d[i,l]:=' [' +d[i,l]+']'
> else
> d[i,l]:=' [' +d[i,l]+']'
I heard you should output ' [ '+d[i,l]+']'
instead of ' ['+d[i,l]+']'
(justifying the day in a field of 2 digits anyway, even if it has
one digit).
I may be wrong.