Определить количество понедельников в году, приходящихся на 13-е числа — Pascal(Паскаль)

uses crt;
type day=1..31;
     month=(jan,fv,mr,ap,mj,jun,jul,av,sn,oc,nb,dc);
     {week=(vs,pn,vt,sr,ch,pt,sb); }
var d:day;  
    m:month;   
      {wdl,wd:week;}
    k:0..12;
    a:array[jan..dc] of day;
      s,os:word;
begin
clrscr;
for m:=jan to nb do
case ord(m) of
0:a[m]:=31;
3,5,8,10:a[m]:=30;
1:a[m]:=28;
else a[m]:=31;
end;
writeln('День недели 01.01 января');
writeln('0-воскресенье 1-понедельник 2-вторник 3-среда 4-четверг 5-пятница 6-суббота');
readln(d);
if d<4 then os:=3-d else os:=10-d; {нужный остаток от деления на 7}
s:=0;k:=0;
for m:=jan to nb do
 begin
  if s mod 7=os then k:=k+1;
  {если количество всех предшествующих дней в остатке от деления на 7 дает нужное число}
  s:=s+a[m];
 end;
write('Количество понедельников 13-е=',k);
readln
end.

Leave a Comment

80 − = 79