if p=0 then case b of 1: b:=31; 2: b:=2*31-3; 3: b:=3*31-3; 4: b:=4*31-4; 5: b:=5*31-4; 6: b:=6*31-5; 7: b:=7*31-5; 8: b:=8*31-5; 9: b:=9*31-6; 10: b:10*31-6; 11: b:=11*31-7; 12: b:=12*31-7; else end; s:=v*364+(c-v)*365+b+a; f:=s div 7; case f of 0: writeln ('воскресение'); 1: writeln ('понедельник'); 2: writeln ('вторник'); 3: writeln ('среда'); 4: writeln ('четверг'); 5: writeln ('пятница'); 6: writeln ('суббота'); end; else case b of 1: b:=31; 2: b:=2*31-2; 3: b:=3*31-2; 4: b:=4*31-3; 5: b:=5*31-3; 6: b:=6*31-4; 7: b:=7*31-4; 8: b:=8*31-4; 9: b:=9*31-5; 10: b:10*31-5; 11: b:=11*31-6; 12: b:=12*31-6; else end; s:=v*364+(c-v)*365+b+a; f:=s div 7; case f of 0: writeln ('воскресение'); 1: writeln ('понедельник'); 2: writeln ('вторник'); 3: writeln ('среда'); 4: writeln ('четверг'); 5: writeln ('пятница'); 6: writeln ('суббота'); end; readln; end.
MeatCrash
20.12.2012 21:49
У меня есть эта программа, только она по другому выполнена, если надо, могу выложить.
MeatCrash
22.12.2012 17:40
Вот текст этой программы. Она работает как надо.
Program Days; Var IsCorrectDate: Boolean; d,m,y: Integer;
Procedure InputDate(var d,m,y: Integer; var Correctly: Boolean); begin Write('Vvedite datu v formate DD MM GGGG: '); ReadLn(d,m,y); Correctly := (d>=1) and (d<=31) and (m>=1) and (m<=12) and (y>=1582) and (y<=4903) end;
Procedure WriteDay(d,m,y: Integer); const Days_of_week: array [0..6] of String [11] = ('Voscresenye','Ponedelnik','Vtornik','Sreda','Chetverg','Pyatnica', 'Subbota'); var c,w: Integer; begin if m < 3 then begin m := m + 10; y := y - 1 end else m := m - 2; c := y div 100; y := y mod 100; w := abs(trunc(2.6*m-0.2)+d+y div 4+y+c div 4-2*c) mod 7; WriteLn(Days_of_week[w]) end;
Begin Repeat InputDate(d,m,y,IsCorrectDate); If IsCorrectDate then WriteDay(d,m,y) Until Not IsCorrectDate End.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.