Есть задание по Паскалю :
Создать универсальный календарь ,вводишь день ,год и месяц и должно выдать день недели с учётом весокосных годов,также условие ,что каждый год,который делится на 100 без остатка ( 100 ,300,210000...) и при этом не делится на 400 ( 400 ,800,1200...) считается НЕ весокосным
вот мой код:
program kalendar;
uses crt;
var
dayn,mn,year,dayn2,year2:integer;
yn:string;
const
day0:array[0..6] of string=('Ponedelnik','Vtornik','Sreda','Chetverg','Patnica','Sybbota','Voskresenie');
day1:array[0..6] of string=('Vtornik','Sreda','Chetverg','Patnica','Sybbota','Voskresenie','Ponedelnik');
day2:array[0..6] of string=('Sreda','Chetverg','Patnica','Sybbota','Voskresenie','Ponedelnik','Vtornik');
day3:array[0..6] of string=('Chetverg','Patnica','Sybbota','Voskresenie','Ponedelnik','Vtornik','Sreda');
day4:array[0..6] of string=('Patnica','Sybbota','Voskresenie','Ponedelnik','Vtornik','Sreda','Chetverg');
day5:array[0..6] of string=('Sybbota','Voskresenie','Ponedelnik','Vtornik','Sreda','Chetverg','Patnica');
day6:array[0..6] of string=('Voskresenie','Ponedelnik','Vtornik','Sreda','Chetverg','Patnica','Sybbota');
month:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
begin
clrscr;
yn:='n';
while yn='n' do
begin
writeln('Put year number');readln(year);
writeln('Put mounth number');readln(mn);
writeln('Put day number');readln(dayn);
dayn2:=0;
year2:=year;
while year>1 do
begin
if ((year mod 100) = 0) and ((year mod 400) <> 0) then dayn2:=dayn2+2;
if ((year mod 100) <> 0) and ((year mod 4) = 0) then dayn2:=dayn2+1;
if ((year mod 100) <> 0) and ((year mod 4) <> 0) then dayn2:=dayn2+1;
if dayn2=7 then dayn2:=0;
if dayn2=8 then dayn2:=1;
year:=year-1;
end;
while mn>1 do
begin
mn:=mn-1;
dayn:=dayn + month[mn];
end;
while year2>1 do
begin
if((year2 mod 100) = 0) and ((year mod 400)<>0) and (mn>1) then dayn:=dayn+1;
if((year2 mod 100) <> 0) and ((year mod 4)=0) and (mn>1) then dayn:=dayn+1;
year2:=year2-1;
end;
case dayn2 of
0:writeln(day6[dayn mod 7]);
1:writeln(day0[dayn mod 7]);
2:writeln(day1[dayn mod 7]);
3:writeln(day2[dayn mod 7]);
4:writeln(day3[dayn mod 7]);
5:writeln(day4[dayn mod 7]);
6:writeln(day5[dayn mod 7]);
else writeln('Oops!!!');
end;
writeln('Exit(y/n)');readln(yn);
end;
end.
работать нэхочэт( чо непра?
незнающих лесом
Комментарии (3)