Results 1 to 7 of 7
Thread: Äîìàøíî ïî Ñ++
Hybrid View
-
13th November 2010 01:02 #1Registered User
Join Date: Nov:2010
Location: LULIN
Posts: 13
Äîìàøíî ïî Ñ++
Çäðàâåéòå,
èìàì ïðîáëåì ñúñ çàâúðøâàíåòî íà 1-âîòî ìè äîìàøíî ïî Ñ++.
Çàäà÷àòà ìè å: Äà ñå ïðîâåðè äàëè îòñå÷êà ïðåñè÷à îêðúæíîñò â åäíà, äâå èëè íèêîëêî òî÷êè.
Òîâà å êîäà íà ïðîãðàìàòà:
Êàæåòå êúäå áúðêàì, çàùîòî íå ïîêàçâà âÿðíî...Code:#include <iostream> #include <cmath> #include "ccc_win.h" using namespace std; int ccc_win_main() { cwin.clear(); cwin << Message(Point(-10,9),"Georgi Hristov, Faculty number: 54570"); cwin << Message(Point(-10,8),"Homework number: "); cwin << Message(Point(-6,8), 54570%25); double x3=cwin.get_double("Enter the X coordinate of the Circle middle: "); double y3=cwin.get_double("Enter the Y coordinate of the Circle middle: "); double r =cwin.get_double("Enter the radius of the circle: "); Circle c1(Point(x3, y3),r); double x1=cwin.get_double("Enter the X coordinate for the first dot: "); double y1=cwin.get_double("Enter the Y coordinate for the first dot: "); double x2=cwin.get_double("Enter the X coordinate for the second dot: "); double y2=cwin.get_double("Enter the Y coordinate for the second dot: "); Line l(Point(x2,y2),Point(x1,y1)); cwin << c1 << l; double i,a,b,c; a = pow((x2 - x1),2) + pow((y2 - y1),2); b = 2* ((x2 - x1)*(x1 - x3) + (y2 - y1)*(y1 - y3)) ; c = pow(x3,2) + pow(y3,2) + pow(x1,2) + pow(y1,2) - 2* ( x3*x1 + y3*y1 ) - pow(r,2) ; i = b * b - 4 * a * c ; cwin << Message(Point(-10,-3),i); if ( i < 0.0 ) { cwin << Message(Point(-10,-5),"No intersection!"); return (1); } if ( i == 0.0 ) { cwin << Message(Point(-10,-5),"One intersection!"); return (1); } if ( i> 0.0) { cwin << Message(Point(-10,-5),"Two intersections!"); return (1); } return 0; }
Ôîðìóëàòà å âçåòà îò òóê: http://local.wasp.uwa.edu.au/~pbourk...ry/sphereline/
Áëàãîäàðÿ ïðåäâàðèòåëíî.
-
13th November 2010 01:19 #2
Ìíîãî å êúñíî äà ïðîâåðÿâàì îáñòîéíî êîäà, íî ìè ñå ÷èíè, ÷å ïðîáëåìà å îò ñëåäíèÿ ðåä:
Ðàáîòèø ñ double-ñòîéíîñòè è êîãàòî èìà 1 ïðåñå÷íà òî÷êà, òîãàâà i ùå å íÿêúäå ìíîãî áëèçî äî íóëàòà, íî íå è òî÷íî 0.0. Çàòîâà òðÿáâà äà âúâåäåø íÿêàêúâ òîëåðàíñ - ïëþñ-ìèíóñ íÿêàêâà äîñòàòú÷íî ìàëêà ðàçëèêà.Code:if ( i == 0.0 )
Code:double EPSILON = 0.001d; // íÿêàêâà äîñòàòú÷íî ìàëêà ñòîéíîñò ïî òâîÿ ïðåöåíêà if ( fabs(i) < EPSILON )
MSI B450 Gaming Pro Carbon AC | Ryzen 9 5900x | HyperX Predator 3200 | Asus Strix 3090 | Kingston KC3000 2TB | WD Red 4TB | Dell G3223Q + LG 27UK650-W | Arctic Freezer 360 | Seasonic Focus GX-1000 | Lian Li O11 Dynamic
-
13th November 2010 21:20 #3Registered User
Join Date: Nov:2010
Location: LULIN
Posts: 13
Ñïîðåä ìåí ãðåøêàòà íå å òàì, çàùîòî ñëåä êàòî íàïèñàõ ïðîãðàìàòà êàêòî ìè êàçà, íÿìàøå ïîäîáðåíèå.
Íà ìåíå ïðîáëåìà ìè å ÷å íåìîãà äà íàïèøà ïðîãðàìàòà òàêà, ÷å êàòî îòñå÷êàòà ïðåñè÷à â 1 òî÷êà êðúã÷åòî äà èçïèøå ïðåñè÷à ãî â 1 òî÷êà. Ìèñëÿ ÷å òðÿáâà äà ñå ñëîæè íÿêàêâà ôîðìóëà. â òîçè ñàéò èìà íÿêàêâè ôîðìóëè, íî íåùî íåìîãà äà ðàçáåðà êîÿ è êàê äà ÿ ïðèëîæà â ïðîãðàìàòà.
http://www.algorithmic-solutions.inf...al/circle.html
-
14th November 2010 01:22 #4
Íåäîïðî÷åë ñè íàïèñàíîòî íà ñòðàíèöàòà, îò êîÿòî ñè âçåë ôîðìóëèòå, ðàçïèñàíè â ïðîãðàìàòà. Îãðàíè÷èë ñè ñå ñàìî ñ òåñò çà çíàêà íà äèñêðèìèíàíòàòà íà êâàäðàòíîòî óðàâíåíèå, ïîðàäè êîåòî âñúùíîñò ïðîâåðÿâàø çà ïðåñè÷àíåòî íà îêðúæíîñòòà ñ ïðàâà, ìèíàâàùà ïðåç äâåòå òî÷êè. Òå ìîãàò äà èìàò åäíà ïðåñå÷íà òî÷êà òîãàâà è ñàìî òîãàâà, êîãàòî ïðàâàòà å äîïèðàòåëíà êúì îêðúæíîñòòà.
Òðÿáâà äà ðåøèø äîêðàé êâàäðàòíîòî óðàâíåíèå è äà íàìåðèø êîëêî îò ðåøåíèÿòà ìó îòãîâàðÿò íà òî÷êè â ðàìêèòå íà îòñå÷êàòà, ò.å. ñà â èíòåðâàëà [0, 1], âêëþ÷èòåëíî â ñëó÷àÿ íà äâóêðàòåí êîðåí. Êîëêîòî ðåøåíèÿ ïîïàäàò â òîçè èíòåðâàë, òîëêîâà ïðåñè÷àíèÿ èìàø.  òîâà ÷èñëî, àêî èìàø äâå ðåøåíèÿ (i > 0.0), íî è äâåòå ñà èçâúí [0, 1], òî îòñå÷êàòà å èëè èçöÿëî âúòðå â îêðúæíîñòòà, èëè èçöÿëî âúí îò íåÿ è íå ñå ïðåñè÷àò íèêúäå, à ñïîðåä ñåãàøíèÿ òè àëãîðèòúì èìàø äâå ïðåñå÷íè òî÷êè. Åäíî ïðåñè÷àíå èìàø, êîãàòî ñàìî åäèí îò êîðåíèòå å â èíòåðâàëà [0, 1], âêëþ÷èòåëíî è êîãàòî òîçè êîðåí å äâóêðàòåí (i == 0.0).Internet - it doesn't make you stupid, it just makes your stupidity more accessible to others
-
16th November 2010 23:35 #5Registered User
Join Date: Nov:2010
Location: LULIN
Posts: 13
-
17th November 2010 00:33 #6Internet - it doesn't make you stupid, it just makes your stupidity more accessible to others

-
16th November 2010 23:43 #7
Çàùî íå ñå ïîëó÷àâà?
Äàé äà âèäèì êàêâî íàïèñà.
Äîáðå ïî÷íà òåìàòà, íî ïî÷âàø äà ÷àêàø íà ãîòîâî - íÿìà äà ñòàíå.
Êîëåãèòå òè äàäîõà ïðåäîñòàòú÷íî íàñîêè.
Ëþáèìî ïèòèå çàïî÷âàùî ñ áóêâàòà 'Ê'? * Êàñà áèðà *
Àêî ìîæåø äà ëåæèø íà ïîäà áåç äà òè ñå íàëàãà äà ñå äúðæèø - âñå îùå ÍÅ ñè ïèÿí!
Äàâàéòå ñëåäâàùàòà Êàñà...




Reply With Quote

Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè