Показать сообщение отдельно
Старый 16.01.2011, 19:49   #1 (permalink)
N@tali
Member
 
Регистрация: 02.01.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Найдите, пожалуйста, ошибку

Дано 2 числа. D-число, M-месяц, дана дата 20 мая. Указать какой день недели. Условия: год не високосный, 1 января воскресенье.



Код:
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 дает нужное число}
  end;
write('День недели будет',k);
readln;
end.
N@tali вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070