- Tarr Kft. kábeltv, internet, telefon
- Facebook és Messenger
- Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
- Sweet.tv - internetes TV
- Letartóztatták a bitcoin-Jézust
- Mindenki AI-t akar, már 2025-re is eladták a HBM chipeket
- ASUS routerek
- Kapnak egy rakás reklámot a Roblox játékosai
- Az iPadOS-re írt appokra is díjat vet ki az Apple
- A franciáknak elege van abból, hogy minden gyerek mobilozik
Aktív témák
-
netboy
senior tag
Hi All!
Nos én MŰSZAKI informatikai szakon vagyok 5.éven...
Ennek ellenére van egy kis programozás ami nem baj...
Mostanában kicsit nagyobb léptékben vettük a tananyagot és elvesztettem a fonalat de tapogatózok!
Na most a tanárunk aki egyébként jó fej, kitalálta, hogy otthon kell megcsinálni egy feladatot és én valami könnyűt kapok! (nem tom, hogy ki akart e velem baszni vagy sem de szivok)
Az a feladatom, hogy:
Adott egy dátom, határozd meg a hét milyen napja (hétfő, kedd...)
Nos ez így a menüs feladatok után nem a legkirályabb pláne, hogy az elméletét se vágom ennek a feladatnak nemhogy még progit írjak belőlle!
A kérésem az lenne, hogy (állítólag pár sor) valaki aki benne van a témában segítsen már nekem ezt megcsinálni!
Előre is köszi! Bye!
ui.: Pascalban kéne! -
Flashy
veterán
kell 1 bizonyos dátum, amit kiválasztasz és aminek tudod hogy milyen napra esett, ezt belekódolod a progiba (mindenképpen muszáj, mert a hét napjai megállapodásos rendszer, nem adódik a dátumból). aztán kiszámolod hogy a megadott dátum hány napra van ettől, aztán modulo 7.
-
netboy
senior tag
Köszi mindenkinek!
Kicsit esetleg konkrétabban?
A tanár 1900.jan.1-ét emlegette!
1901.jan.1 az a kalkulátorom szerint keddre esett! -
Rici
tag
Ennél van egy sokkal egyszerűbb módszer is. Ugyanis két nap távolságát valóban helyesen meghatározni elég nehéz, ehelyett van egy jól bevált algoritmus a hét melyik napra dologra, gondolom ezt használják mindenhol. (Bár nyilván ez is hasonló módszeren alapul, csak jó sok egyszerűsítés van benne.) Mindjárt megkeresem, és beírom.
-
Rici
tag
Most, hogy megtaláltam, én is meglepődtem, milyen rövid
Az ev, ho, nap nevű változókban vannak a kérdéses számok.
A megoldás C nyelven van, a változók egészek.
ho = ho - 2;
if (ho<=0)
{
ho = ho + 12;
ev = ev - 1;
}
switch ( (nap + ( 13*ho - 6) / 5 + ev + ev/4 - ev/100 + ev/400) % 7 )
{
case 0: printf(''hétfő\n''); break; // ugyanígy case 1: kedd stb...
} -
netboy
senior tag
Akinek van egy kis ideje kérem gépelje le!
-
Fade_Away
őstag
és erre diplomát adnak MOon!
-
guti1
tag
Mi az intézmény pontos neve amit látogatsz?
I hear but I do not listen
-
netboy
senior tag
Már bocs emberek de nekem nincs és nem is lesz diplomám! És középiskolába vagyok 5.éves!
-
netboy
senior tag
...Épp ezért kértem segítséget! Gondoltam ti vágjátok énmeg KÖZÉPSULIS vagyok (előttem az élet)....
A középsuli nem fősuli, hogy belémverjék! Kiadták ezt a feladatot azt kapok rá egy jegyet ami valszeg az évvégim lesz...
Mellesleg kicsit megált a lélegzetem a soraitokat olvasva, nem esett le vagy 10 percig, hogy mi van a diplomával -
Rolly
veterán
válunk kb ez a feladat volt amit első félévben vettünk első előadáson na jó lehet hogy a másodikon mert ugye az elsőn nem volt semmi tananyag.
Szeged, prog-mat rulez (progalap rulez) -
Rover623
félisten
program DayOfWee;
var
ev,
ho,
nap : integer;
begin
{ezek az értékadások csak a példa kedvéért...inkább valami bekéréssel csináld!}
ev:=2005;
ho:=3;
nap:=2;
ho := ho - 2;
if (ho<=0) then begin
ho := ho + 12;
ev := ev - 1;
end;
case ( (nap + ( 13*ho - 6) div 5 + ev + ev div 4 - ev div 100 + ev div 400) mod 7 ) of
0: writeln('hétfő');
1: writeln('kedd');
2: writeln('szerda');
3: writeln('csütörtök');
4: writeln('péntek');
5: writeln('szombat');
6: writeln('vasárnap');
end;
end.primus inter pares
-
Rici
tag
Egyébként az a poén, hogy az elvet, hogy miért van ez, nem közölték velünk.
Van ilyen. Ha valaki egyszer kitalál valami marha jót, azt a többi embernek már nem kell még egyszer kitalálnia, legfeljebb saját megnyugtatására beláthatja (bebizonyíthatja), hogy a dolog mindig jó. -
Rover623
félisten
legfeljebb saját megnyugtatására beláthatja (bebizonyíthatja), hogy a dolog mindig jó.
Épp ezen dolgozom...
Az biztos hogy a tancsi nem véletlenül emlegette 1901 január elsejét...
Hét különböző típusú közönséges 365 napos év van, mert január 1. a hét különböző napjainak mindegyikére eshet (és esik). Ugyanígy hétféle különböző szökőév lehetséges. Mivel minden negyedik év szökőév, a naptár évről évre változik, bonyolult rendszer szerint, huszonnyolc éven át. Aztán elölről kezdődik a sorozat.
Tehát 1901, 1929, 1957, 1985, 2013, 2041, 2069 és 2097 naptárai azonosak. Ezek mind közönséges évek, amelyekben január 1. keddre esik.
Ebben a 28 éves sorozatban huszonegy közönséges év van, amelyekből három-három kezdődik a hétnek ugyanazzal a napjával, s hét szökőév, amelyek a hétnek hét különböző napjával kezdődnek.
Ez mindaddig beválik, amíg kivétel nélkül minden negyedik év szökőév. 1900 és 2100 között nincs is bökkenő, de általában minden négy évszázadban van három olyan negyedik év, amely nem szökőév, s ilyenkor hét közönséges év követi egymást, mint például 1897-től 1903-ig.
És itt elakadtam...van egy olyan sejtésem hogy a megadott algoritmus csak 1900 és 2100 között műxprimus inter pares
-
Rover623
félisten
Itt egy másik megoldás a Dr Dobbs Journal-ból, 1990-ből...
Egy Zeller nevű csóka algoritmusa 1887-ből...!
Felhívom a figyelmet az angol nyelvű kommentekre:
{ Here's Zeller's seminal black magic: }
{ DON'T KNOW WHY HE DID THIS! }
Function CalcDayOfWeek(Year, Month, Day : Integer) : Integer;
Var
Century,
Holder : Integer;
begin
{ First test For error conditions on input values: }
if (Year < 0) or (Month < 1) or (Month > 12) or (Day < 1) or (Day > 31) then
CalcDayOfWeek := -1 { Return -1 to indicate an error }
else
{ Do the Zeller's Congruence calculation as Zeller himself }
{ described it in ''Acta Mathematica'' #7, Stockhold, 1887. }
begin
{ First we separate out the year and the century figures: }
Century := Year div 100;
Year := Year MOD 100;
{ Next we adjust the month such that March remains month #3, }
{ but that January and February are months #13 and #14, }
{ *but of the previous year*: }
if Month < 3 then
begin
Inc(Month, 12);
if Year > 0 then
Dec(Year, 1) { The year before 2000 is }
else { 1999, not 20-1... }
begin
Year := 99;
Dec(Century);
end;
end;
{ Here's Zeller's seminal black magic: }
Holder := Day; { Start With the day of month }
Holder := Holder + (((Month + 1) * 26) div 10); { Calc the increment }
Holder := Holder + Year; { Add in the year }
Holder := Holder + (Year div 4); { Correct For leap years }
Holder := Holder + (Century div 4); { Correct For century years }
Holder := Holder - Century - Century; { DON'T KNOW WHY HE DID THIS! }
{***********************KLUDGE ALERT!***************************}
While Holder < 0 do { Get negative values up into }
Inc(Holder, 7); { positive territory before }
{ taking the MOD... }
Holder := Holder MOD 7; { Divide by 7 but keep the }
{ remainder rather than the }
{ quotient }
{***********************KLUDGE ALERT!***************************}
{ Here we ''wrap'' Saturday around to be the last day: }
if Holder = 0 then
Holder := 7;
{ Zeller kept the Sunday = 1 origin; computer weenies prefer to }
{ start everything With 0, so here's a 20th century kludge: }
Dec(Holder);
CalcDayOfWeek := Holder; { Return the end product! }
end;
end;
Szóval nem egyértelmű...ja, ez 1582 és 4902 között műx
[Szerkesztve]primus inter pares
Aktív témák
- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- Politika
- Mindent megtudtunk az új Nokia 3210-ről
- Autós topik
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Azonnali processzoros kérdések órája
- Kerékpárosok, bringások ide!
- Fejhallgató erősítő és DAC topik
- iPhone topik
- Gyúrósok ide!
- További aktív témák...
- Panasonic Lumix G X VARIO 12-35mm f/2.8 II ASPH. Power O.I.S. (H-HSA12035)
- 2db Iceriver KS0 KASPA bányagép + 180W új tápegység 2 év garanciával.
- Panasonic Lumix DC-G9 (V-Log L kiegészítéssel, 4 akkuval)
- Commlite CM-EF-NEX Auto-Focus Adapter (Canon EF - Sony E)
- Üzletből, garanciával, legújabb Asus Vivobook 17" i7-1355U 10 mag 5GHz/16RAM/1TBSSD/17,3"FULLHD
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen