Âõîäíîå òåñòèðîâàíèå
Êóðñ ðàññ÷èòàí íà ó÷åíèêîâ, èìåþùèõ îïûò ïðîãðàììèðîâàíèÿ, äîñòàòî÷íûé äëÿ ðåøåíèÿ ïðîñòåéøèõ àëãîðèòìè÷åñêèõ è ìàòåìàòè÷åñêèõ çàäà÷. ×òîáû ýòîò îïûò ïðîäåìîíñòðèðîâàòü, íåîáõîäèìî ðåøèòü ñëåäóþùèå äâå çàäà÷è:
?Âòîðîé ìàêñèìóì?.  çàäàííîé ïîñëåäîâàòåëüíîñòè èç N==1000 ÷èñåë {Ai} íàéòè âòîðîé ïî âåëè÷èíå åå ýëåìåíò, òî åñòü ÷èñëî B òàêîå, ÷òî
?i ? 1..N {Ai}˜B ëèáî {Ai} ? M, (ïðè ýòîì M ? ìàêñèìóì ïîñëåäîâàòåëüíîñòè).
 ñëó÷àå, åñëè òàêîãî B íå ñóùåñòâóåò, âûâåñòè Íåò.
?Ñåìèóãîëüíèê â êðóãå?. Ïî çàäàííûì X1 , Y1 , ? , X7 , Y7 ? êîîðäèíàòàì âåðøèí âûïóêëîãî ñåìèóãîëüíèêà ? è X0 , Y0 , R ? êîîðäèíàòàì öåíòðà êðóãà è åãî ðàäèóñó ? îïðåäåëèòü, ðàñïîëîæåí ëè ñåìèóãîëüíèê âíóòðè êðóãà (åñëè âåðøèíà ïðèíàäëåæèò îêðóæíîñòè, ò. å. íàõîäèòñÿ íà ãðàíèöå, ñ÷èòàòü êàê óäîáíåå, íàïðèìåð, ÷òî îíà âñå åùå âíóòðè).
Äîìàøíåå çàäàíèå
Ðàçáîð çàäà÷ (èçâèíèòå, ñðàçó íà ÿçûêå Python ; îí î÷åíü ïðîñòîé, óáåäèòåñü ñàìè!): Âîîáùå ãîâîðÿ, â îáîèõ ñëó÷àÿõ íå íóæíî õðàíèòü âñþ ïîñëåäîâàòåëüíîñòü: äîñòàòî÷íî ââîäèòü î÷åðåäíîé ýëåìåíò è îáðàáàòûâàòü åãî
Íèêàêèõ õèòðîñòåé â àëãîðèòìå íåò, ïðîñòî âûïîëíÿåì óñëîâèÿ. Ãëàâíîå ? íå óïðîùàòü (M=max(A,M); B=max(B,min(M,A)) è ïðî÷èå ÷ðåçìåðíî óïðîùåííûå âàðèàíòû íå ðàáîòàþò! Ïî÷åìó, êñòàòè?)
1 N=10 2 B=M=input() # Ñíà÷àëà B è M ðàâíû ïåðâîìó ýëåìåíòó 3 for i in xrange(N-1): # N-1 ðàç ââåäåì è ïðîâåðèì îñòàëüíûå ýëåìåíòû 4 A=input() 5 if M==A: 6 continue # Çíà÷åíèÿ íå ìåíÿþòñÿ 7 if M<A: # Íîâûé ìàêñèìóì 8 M,B=A,M # Òî æå ñàìîå, ÷òî B=M; M=A 9 elif B<A or B==M: # Íîâûé âòîðîé ìàêñèìóì (èëè åãî âñå åùå íå áûëî) 10 B=A 11 12 if B!=M: 13 print B 14 else: 15 print "Íåò"
Äëÿ óäîáñòâà ñíà÷àëà ââåäåì X0 , Y0 è R, à çàòåì ? êîîðäèíàòû âåðøèí ñåìèóãîëüíèêà. Åñëè âñå îíè ïðèíàäëåæàò êðóãó, òî è âåñü ìíîãîóãîëüíèê ? òîæå
1 X0,Y0,R=input("Ââåäèòå X0,Y0,R ÷åðåç çàïÿòóþ: ") 2 for i in xrange(7): 3 X,Y=input() 4 if (X-X0)**2+(Y-Y0)**2>R**2: # Íåò íåîáõîäèìîñòè âû÷èñëÿòü êîðíè 5 print "Íå ïðèíàäëåæèò" 6 break # íåìåäëåííûé âûõîä èç öèêëà 7 else: # 'else' ê îïåðàòîðó 'for' âûïîëíÿåòñÿ, åñëè 8 print "Ïðèíàäëåæèò" # öèêë çàâåðøèëñÿ áåç ïîìîùè îïåðàòîðà break
Óñëîâíûå îáîçíà÷åíèÿ
? òåìà ïî Linux
?? òåìà ïîâûøåííîé ñëîæíîñòè
? òåîðåòè÷åñêîå çàäàíèå
? òåìà äëÿ ñàìîñòîÿòåëüíîãî èçó÷åíèÿ