Polski Serwis Naukowy - OnLine od 1999 roku
RSS
Czwartek, 31 maja 2012
Petronia, Bożysława, Ernestyna, Teodor
 1891: budowa Kolei Transsyberyjskiej
 1970: zagłada miasta Yungay w Peru
 WHO: Dzień bez Papierosa
Nowe publikacje
Post dodany: |11 Cze 2007|, 2007 16:31
Data rejestracji: 11 Cze 2007 postów: 5113
Napisać program Jaki to dzień tygodnia, pobierający z klawiatury trzy liczby całkowite określające datę i drukujący na ekranie informację o tym jaki to był (jest lub będzie) dzień tygodnia. Na przykład dla danych 26.20.1999 powinniśmy na ekranie zobaczyć komunikat WTOREK.
Gdyby ktoś mógł pomóc, byłbym bardzo wdzięczny.
Post dodany: |9 Paź 2007|, 2007 21:06
Data rejestracji: 08 Lis 2005 postów: 88
Happiness is the journey, not the destination.
Post dodany: |15 Sty 2008|, 2008 23:51
Data rejestracji: 15 Sty 2008 postów: 88
uses crt;
const dni:array[0..6]of string=
('Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota');
function dtg(d,m,y,s:word):word;
var a,b,c,wynik:word;
begin
a:=(14-m)div 12;
b:=2800+y mod 2800-a;
c:=m+12*a-2;
if s=0 then wynik:=(5+d+b+b div 4+(31*c)div 12) mod 7
else wynik:=(d+b+b div 4+6*(b div 100)+b div 400+(31*c)div 12) mod 7;
dtg:=wynik;
end;
var ch:char;
d,m,y,s:word;
begin
clrscr;
repeat
writeln('Podaj dzien miesiac rok styl');
readln(d,m,y,s);
writeln('Szukany dzien tygodnia to : ',dni[dtg(d,m,y,s)]);
ch:=readkey;
until ch=#27;
end.
Uwagi
s=0 -styl juliański
s<>0 -styl gregoriański
[ Dodano: 11 Listopad 2008, 15:57 ]
Ta funkcja którą wcześniej napisałem jest oparta na algorytmie zamieszczonym przez Clausa Tonderinga Istnieje jeszcze kongruencja Zellera
uses crt;
const week:array[0..6]of string=('Niedziela','Poniedzialek','Wtorek','Sroda','Czwartek','Piatek','Sobota');
function dtg(d,m,y,s:integer):integer;
var mm,yy,k,j,h:integer;
begin
mm:=3+(m+9) mod 12;
yy:=2800+y mod 2800- (14-m) div 12;
k:= yy mod 100;
j:= yy div 100;
if(s=0) then h:=(4+d+26*(mm+1) div 10+k+k div 4+6*j) mod 7
else h:=(6+d+26*(mm+1) div 10+k+k div 4+j div 4+5*j) mod 7;
dtg:=h;
end;
var d,m,y,s:integer;
ch:char;
begin
clrscr;
repeat
writeln('Podaj dzien miesiac rok i styl');
readln(d,m,y,s);
writeln('Szukany dzien tygodnia to : ',week[dtg(d,m,y,s)]);
ch:=readkey;
until ch=#27;
end.
s=0 styl juliański
s<>0 styl gregoriański
Ostatnio zmieniony przez mariom123 |16 Sty 2008|, 2008 00:09, w całości zmieniany 4 razy
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum
|
Wersja do druku
Dodaj temat do Ulubionych
|
Powered by
phpBB © 2000, 2002, 2005, 2007 phpBB Group
|