:: Èãðû Ðàçóìà
Èãðû ðàçóìà 2
leonid
Àâòîð

Ñîîáùåíèé: 3202
Îòêóäà: Ðèãà
Äàòà ðåãèñòðàöèè: 03.02.2006
Ïîñêîëüêó çäåñü ïîÿâèëàñü òàêàÿ òåìà, ðåøèë òîæå âûñòàâèòü ïàðó çàäà÷åê äëÿ âñåîáùåãî îáîçðåíèÿ. Ïåðâàÿ èç íèõ - çàäà÷êà ÷èñòî èç ïðàêòèêè, à âòîðàÿ íàâåÿíà îäíèì íåäàâíèì îáñóæäåíèåì íà äàííîì ôîðóìå. Èòàê

1. Äóìàþ íåò íàäîáíîñòè îáúÿñíÿòü, ÷òî òàêîå ñòðàõîâîé ïîëèñ. Ñòðàõîâîé ïîëèñ ìîæåò áûòü çàêëþ÷åí ñ ïðîèçâîëüíîãî ÷èñëà (m.dt) íà ïðîèçâîëüíîå ÷èñëî ìåñÿöåâ (m.km). Äëÿ îïðåäåëåííîñòè áóäåì ñ÷èòàòü, ÷òî m.dt ëåæèò â ïðîìåæóòêå îò 01.01.2000 äî 01.01.2010, à m.km - öåëîå ÷èñëî îò 1 äî 30.  ïîëèñå íóæíî çàïèñàòü ôðàçó: "Ïîëèñ äåéñòâèòåëåí ñ ... ïî ...". Äëÿ ýòîãî íóæíî îïðåäåëèòü äàòó, êîòîðóþ íàäî çàïèñàòü ïîñëå "ïî". Äëÿ âû÷èñëåíèÿ ýòîé äàòû ïèøåòñÿ ôóíêöèÿ
Function End_date
lparameter m.dt, m.km
Return ...
Çàäàíèå - äîïèñàòü ýòó ôóíêöèþ, æåëàòåëüíî ïîêîðî÷å.

2. Ñòðîèòñÿ êóðñîð
RAND(-1)
CREATE CURSOR tmp (id i, f1 i, sum i)
FOR i=1 TO 100000
INSERT INTO tmp VALUES (i, INT(RAND()*10+1), 0)
NEXT
Òðåáóåòñÿ â ïîëå sum çàãíàòü ñóììó f1 íàðàñòàþùèì èòîãîì, ò.å. â ïåðâîé ñòðîêå sum äîëæíî áûòü ðàâíî f1, âî âòîðîé sum äîëæíî áûòü ðàâíî ñóììå f1 èç ïåðâîé è âòîðîé ñòðîêè, è ò.ä. Êîíå÷íî, ëþáîé ôîêñîâñêèé ïðîãðàììèñò ìîæåò ýëåìåíòàðíî ýòî ñäåëàòü ñ ïîìîùüþ îïåðàòîðîâ scan è replace. Íî çàäàíèå êàê ðàç ñîñòîèò â òîì, ÷òîáû ñäåëàòü ýòî ñ ïîìîùüþ îïåðàòîðà update. À èìåííî, íóæíî äîïîëíèòü ñëåäóþùèé êîä
m.sc=SECONDS()
UPDATE ...
?SECONDS()-m.sc
è â êà÷åñòâå îòâåòà ïðèâåñòè äîïîëíåííûé êîä è êîëè÷åñòâî ñåêóíä, çà êîòîðîå ýòîò êîä âûïîëíÿåòñÿ.

P.S. Âòîðàÿ çàäà÷êà äëÿ VFP9



Èñïðàâëåíî 1 ðàç(à). Ïîñëåäíåå : leonid, 14.03.07 14:29
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
piva

Ñîîáùåíèé: 18655
Îòêóäà: Êóðãàí
Äàòà ðåãèñòðàöèè: 24.03.2004
Äûê ïåðâûé - GoMonth(m.dt,12*êîë-âî ëåò)

Âîòîðîé óæå îáñóæäàëñÿ äî èñõîäíèêîâ


------------------
×àñòî áûâàåò òàê, ÷òî åñòü íàä ÷åì çàäóìàòüñÿ, à íå÷åì.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
AleksM

Ñîîáùåíèé: 17881
Äàòà ðåãèñòðàöèè: 11.11.2003
Öèòàòà:
Äûê ïåðâûé - GoMonth(m.dt,12*êîë-âî ëåò)
À íà 12 çà÷åì ìíîæèòü è íóæíî åù¸ îäèí äåíü îò ðåçóëüòàòà îòíÿòü.


------------------
Ëó÷øå ïåðååñòü, ÷åì íåäîñïàòü.
Íå ñïåøè, à òî óñïååøü.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
Âëàäèìèð Ìàêñèìîâ

Ñîîáùåíèé: 14095
Îòêóäà: Ìîñêâà
Äàòà ðåãèñòðàöèè: 02.09.2000
Óòî÷íÿþùèå âîïðîñû:

1) Êàêàÿ äàòà äîëæíû áûòü â ñëåäóþùèõ ñëó÷àÿõ

31 ÿíâàðÿ + 1 ìåñÿö = ?
28 ôåâðàëà + 1 ìåñÿö = ?

Äðóãèìè ñëîâàìè, "îäèí ìåñÿö" - ýòî ñêîëüêî äíåé?
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
piva

Ñîîáùåíèé: 18655
Îòêóäà: Êóðãàí
Äàòà ðåãèñòðàöèè: 24.03.2004
? Gomonth({^2001.01.01},120)
Âñå ðàâíî ïåðâîå ÷èñëî ïîëó÷àåòñÿ. Èëè äîëæíî áûëî áûòü 31.12 ÷òî ëè ?


------------------
×àñòî áûâàåò òàê, ÷òî åñòü íàä ÷åì çàäóìàòüñÿ, à íå÷åì.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
piva

Ñîîáùåíèé: 18655
Îòêóäà: Êóðãàí
Äàòà ðåãèñòðàöèè: 24.03.2004
Êñòàòè - âîçìîæíî çàâòðà ïîÿâèòñÿ ñïåöèàëüíûé ðàçäåë ñ ðàáî÷èì íàçâàíèåì "Èãðû ðàçóìà" òóäà âñå è ïåðåêèäàåì èç êóðèëêè


------------------
×àñòî áûâàåò òàê, ÷òî åñòü íàä ÷åì çàäóìàòüñÿ, à íå÷åì.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
AleksM

Ñîîáùåíèé: 17881
Äàòà ðåãèñòðàöèè: 11.11.2003
Íàñêîëüêî ÿ ïîìíþ ïðàâèëà îôîðìëåíèÿ ïîëèñà, òî äà - 31.12


------------------
Ëó÷øå ïåðååñòü, ÷åì íåäîñïàòü.
Íå ñïåøè, à òî óñïååøü.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
piva

Ñîîáùåíèé: 18655
Îòêóäà: Êóðãàí
Äàòà ðåãèñòðàöèè: 24.03.2004
Öèòàòà:
îò 01.01.2000 äî 01.01.2010
À íå ïî


------------------
×àñòî áûâàåò òàê, ÷òî åñòü íàä ÷åì çàäóìàòüñÿ, à íå÷åì.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
AleksM

Ñîîáùåíèé: 17881
Äàòà ðåãèñòðàöèè: 11.11.2003
Íó ýòî óæå òîíêîñòè è óëîâêè ñòðàõîâàòåëÿ.


------------------
Ëó÷øå ïåðååñòü, ÷åì íåäîñïàòü.
Íå ñïåøè, à òî óñïååøü.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
Foxtrot

Ñîîáùåíèé: 3408
Îòêóäà: Êóäà:
Äàòà ðåãèñòðàöèè: 25.04.2003
C òàêèìè îòâåòàìè ìû òàê è îñòàíåìñÿ â Êóðèëêå
Êîäèòü ñåãîäíÿ êòîíèòü áóäåò èëè íåò?


------------------
Ìîéòå íîãè, ìîÿ íîãè âû ìîåòå è ðóêè
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
leonid
Àâòîð

Ñîîáùåíèé: 3202
Îòêóäà: Ðèãà
Äàòà ðåãèñòðàöèè: 03.02.2006
Âëàäèìèð Ìàêñèìîâ
Óòî÷íÿþùèå âîïðîñû:
1) Êàêàÿ äàòà äîëæíû áûòü â ñëåäóþùèõ ñëó÷àÿõ

31 ÿíâàðÿ + 1 ìåñÿö = ?
28 ôåâðàëà + 1 ìåñÿö = ?

Äðóãèìè ñëîâàìè, "îäèí ìåñÿö" - ýòî ñêîëüêî äíåé?

Ìíå êàæåòñÿ, ÷òî èíòóèòèâíîå âîñïðèÿòèå âïîëíå ñîâïàäàåò ñ ïðèíÿòûì ó ñòðàõîâùèêîâ:
Ïîëèñ íà 1 ìåñÿö
Ñ 31.01.2000 ïî 29.02.2000
Ñ 31.01.2001 ïî 28.02.2001
Ñ 28.02.2000 ïî 27.03.2000
Ñ 28.02.2001 ïî 27.03.2001



Èñïðàâëåíî 1 ðàç(à). Ïîñëåäíåå : leonid, 14.03.07 15:14
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
Âëàäèìèð Ìàêñèìîâ

Ñîîáùåíèé: 14095
Îòêóäà: Ìîñêâà
Äàòà ðåãèñòðàöèè: 02.09.2000
leonid
Âëàäèìèð Ìàêñèìîâ
Óòî÷íÿþùèå âîïðîñû:
1) Êàêàÿ äàòà äîëæíû áûòü â ñëåäóþùèõ ñëó÷àÿõ

31 ÿíâàðÿ + 1 ìåñÿö = ?
28 ôåâðàëà + 1 ìåñÿö = ?

Äðóãèìè ñëîâàìè, "îäèí ìåñÿö" - ýòî ñêîëüêî äíåé?

Ìíå êàæåòñÿ, ÷òî èíòóèòèâíîå âîñïðèÿòèå âïîëíå ñîâïàäàåò ñ ïðèíÿòûì ó ñòðàõîâùèêîâ:
Ïîëèñ íà 1 ìåñÿö
Ñ 31.01.2000 ïî 29.02.2000
Ñ 31.01.2001 ïî 28.02.2001
Ñ 28.02.2000 ïî 27.03.2000
Ñ 28.02.2001 ïî 27.03.2001

Î÷åíü èíòåðåñíî! Åñëè 28 ôåâðàëÿ + 1 ìåñÿö = 27 ìàðòà, òî êàêîå ÷èñëî áóäåò 28 ÿíâàðÿ + 2 ìåñÿöà? À 29 ÿíâàðÿ + 2 ìåñÿöà?

"Èíòóèòèâíî" çäåñü ïðîñòî "íå ðàáîòàåò". Ýòà çàäà÷à îïÿòü èç ðàçðÿäà "ðàçíèöà äàò â ôîðìàòå ëåò/ìåñÿöåâ/äíåé". Íåò ó íåå ðåøåíèÿ. Èìåííî â ñèëó òîãî, ÷òî "ìåñÿö" - ýòî íå àáñîëþòíàÿ âåëè÷èíà, à îòíîñèòåëüíàÿ. Ýòî äàæå íå êàëåíäàðíûé ìåñÿö, à íåèçâåñòíî ÷òî. Ýòî íå÷òî, çàâèñÿùåå îò òåêóùåé êàëåíäàðíîé äàòû, "èíòóèòèâíîãî" ïîíèìàíèÿ òîãî ÷åëîâåêà, êîòîðûé ïðîèñçâîäèò ðàñ÷åò, ïîãäû, ïîëîæåíèÿ çâåçäà íà íåáå è âîîáùå îò ÷åãî óãîäíî, êðîìå êîëè÷åñòâà äíåé.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
AleksM

Ñîîáùåíèé: 17881
Äàòà ðåãèñòðàöèè: 11.11.2003
Ïî âòîðîìó ìîæíî òàê (RAND() óáðàë ÷òîá ïðîâåðÿòü áûëî ëåã÷å)
CREATE CURSOR tmp (id i, f1 i, sum i)
FOR i=1 TO 100000
INSERT INTO tmp VALUES (i, i, 0)
NEXT
dd=-1
SELECT a.id, a.f1, Tot(a.f1) tot FROM Tmp a
FUNCTION Tot
PARAMETERS ff
dd=dd+ff
RETURN dd
*(a.f1+(SELECT SUM(b.f1) FROM Tmp b WHERE b.id=a.id-1))


------------------
Ëó÷øå ïåðååñòü, ÷åì íåäîñïàòü.
Íå ñïåøè, à òî óñïååøü.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
PaulWist

Ñîîáùåíèé: 14601
Äàòà ðåãèñòðàöèè: 01.04.2004
Êîíå÷íî ìîæíî òîëêî íå íóæíî

CREATE CURSOR tmp (id i, f1 i, sum i)
FOR i=2 TO 3
INSERT INTO tmp VALUES (i, i, 0)
NEXT
dd=-1
SELECT a.id, a.f1, Tot(a.f1) tot FROM Tmp a
FUNCTION Tot
PARAMETERS ff
dd=dd+ff
RETURN dd


------------------
Åñòü ìíîãîå íà ñâåòå, äðóã Ãîðàöèî...
×òî è íå ñíèëîñü íàøèì ìóäðåöàì.
(Â.Øåêñïèð Ãàìëåò)
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
leonid
Àâòîð

Ñîîáùåíèé: 3202
Îòêóäà: Ðèãà
Äàòà ðåãèñòðàöèè: 03.02.2006
2AlexM, PaulWist
Òàê, èëè ïðèìåðíî òàê, êîíå÷íî ìîæíî, òîëüêî çàäàíèå áûëî íå òàêîå.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
AleksM

Ñîîáùåíèé: 17881
Äàòà ðåãèñòðàöèè: 11.11.2003
À òàê:
CREATE CURSOR tmp (id i, f1 i, sum i)
FOR i=2 TO 3
INSERT INTO tmp VALUES (i, i, 0)
NEXT
GO top
dd=-f1
SELECT a.id, a.f1, Tot(a.f1) tot FROM Tmp a
FUNCTION Tot
PARAMETERS ff
dd=dd+ff
RETURN dd


------------------
Ëó÷øå ïåðååñòü, ÷åì íåäîñïàòü.
Íå ñïåøè, à òî óñïååøü.
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
AleksM

Ñîîáùåíèé: 17881
Äàòà ðåãèñòðàöèè: 11.11.2003
È òàê íå ãîäèòñÿ
CREATE CURSOR tmp (ID i, f1 i, SUM i)
FOR i=1 TO 1000
INSERT INTO tmp VALUES (i, i, 0)
NEXT
GO TOP
dd=-f1
SELECT a.ID, a.f1, Tot(a.f1) Tot FROM tmp a INTO CURSOR cTmp
UPDATE tmp SET SUM=(SELECT cTmp.Tot FROM cTmp WHERE cTmp.ID=tmp.ID)
SELECT tmp
BROW
FUNCTION Tot
PARAMETERS ff
dd=dd+ff
RETURN dd


------------------
Ëó÷øå ïåðååñòü, ÷åì íåäîñïàòü.
Íå ñïåøè, à òî óñïååøü.




Èñïðàâëåíî 2 ðàç(à). Ïîñëåäíåå : AleksM, 14.03.07 16:14
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
PaulWist

Ñîîáùåíèé: 14601
Äàòà ðåãèñòðàöèè: 01.04.2004
Ïðîùå íàäî áûòü

CREATE CURSOR tmp (id i, f1 i, sum i)
FOR i=1 TO 10
INSERT INTO tmp VALUES (i, i, 0)
NEXT
m.aa = 0
UPDATE tmp SET sum = ff(f1)
BROWSE
FUNCTION ff(f1)
m.aa = m.aa + m.f1
RETURN m.aa
ENDFUNC


------------------
Åñòü ìíîãîå íà ñâåòå, äðóã Ãîðàöèî...
×òî è íå ñíèëîñü íàøèì ìóäðåöàì.
(Â.Øåêñïèð Ãàìëåò)
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
leonid
Àâòîð

Ñîîáùåíèé: 3202
Îòêóäà: Ðèãà
Äàòà ðåãèñòðàöèè: 03.02.2006
Âëàäèìèð Ìàêñèìîâ
Î÷åíü èíòåðåñíî! Åñëè 28 ôåâðàëÿ + 1 ìåñÿö = 27 ìàðòà, òî êàêîå ÷èñëî áóäåò 28 ÿíâàðÿ + 2 ìåñÿöà? À 29 ÿíâàðÿ + 2 ìåñÿöà?
"Èíòóèòèâíî" çäåñü ïðîñòî "íå ðàáîòàåò". Ýòà çàäà÷à îïÿòü èç ðàçðÿäà "ðàçíèöà äàò â ôîðìàòå ëåò/ìåñÿöåâ/äíåé". Íåò ó íåå ðåøåíèÿ. Èìåííî â ñèëó òîãî, ÷òî "ìåñÿö" - ýòî íå àáñîëþòíàÿ âåëè÷èíà, à îòíîñèòåëüíàÿ. Ýòî äàæå íå êàëåíäàðíûé ìåñÿö, à íåèçâåñòíî ÷òî. Ýòî íå÷òî, çàâèñÿùåå îò òåêóùåé êàëåíäàðíîé äàòû, "èíòóèòèâíîãî" ïîíèìàíèÿ òîãî ÷åëîâåêà, êîòîðûé ïðîèñçâîäèò ðàñ÷åò, ïîãäû, ïîëîæåíèÿ çâåçäà íà íåáå è âîîáùå îò ÷åãî óãîäíî, êðîìå êîëè÷åñòâà äíåé.
Ìíå ïî÷åìó-òî êàçàëîñü, ÷òî ýòî íå äîëæíî âûçâàòü îñîáûõ çàòðóäíåíèé. Ïî êðàéíåé ìåðå ó òåõ, êòî ðåãóëÿðíî ñòðàõóåò àâòîìîáèëè. Äóìàþ, ìíîãèå èç íèõ çíàþò, ÷òî çàñòðàõîâàòü àâòîìîáèëü 29 ÿíâàðÿ íà äâà ìåñÿöà (ñ 29 ÿíâàðÿ ïî 28 ìàðòà) íå òàê âûãîäíî, êàê ñíà÷àëà íà 1 ìåñÿö ñ 29 ÿíâàðÿ ïî 28 ôåâðàëÿ, à ïîòîì åùå íà îäèí ñ 1 ìàðòà ïî 31 ìàðòà.
28 ÿíâàðÿ + 2 ìåñÿöà - 28.01.2007-27.03.2007
29 ÿíâàðÿ + 2 ìåñÿöà - 29.01.2007-28.03.2007
Ratings: 0 negative/0 positive
Re: Èãðû ðàçóìà 2
AleksM

Ñîîáùåíèé: 17881
Äàòà ðåãèñòðàöèè: 11.11.2003
Òî÷íà. Âîò òîêà 100000 â èñõîäíûõ óñëîâèÿõ ìíîãîâàòî áóäåò.


------------------
Ëó÷øå ïåðååñòü, ÷åì íåäîñïàòü.
Íå ñïåøè, à òî óñïååøü.
Ratings: 0 negative/0 positive


Èçâèíèòå, òîëüêî çàðåãèñòðèðîâàííûå ïîëüçîâàòåëè ìîãóò îñòàâëÿòü ñîîáùåíèÿ â ýòîì ôîðóìå.

On-line: 6 (Ãîñòåé: 6)

© 2000-2024 Fox Club 
ßíäåêñ.Ìåòðèêà