slamjaw 0 Posted October 12, 2011 Share Posted October 12, 2011 (edited) Sveiki forumieši! Tad nu man ir uzdots patstāvīgais darbs uz C++. Es neprasu, lai Jūs uzrakstat man gatavu programmu, bet gan vēlos, lai Jūs palīdzētu man saprast uzdevuma izpildes agoritmu. Tad nu uzdevums ir: Doti trīs skaitļu trīnieki a, b un c. Katrs skaitļu trīnieks nosaka taisni, kas uzdota sekojosā veidā: ax+by=c. Ja taisņu krustpunkti veido trīstūra virsotnes, tad izdrukāt sī trīstūra mediānu koordinātes. Ja neveido, tad uzrādīt taisnes, kas ir paralēlas Uz doto brīdi es varu atrast visu malu krustpunktu koordinātes (Izmantojot krāmera formulu ar divu lineāru vienādojumu sistēmu), un ja nepieciešams, arī sanāk izskaitļot katras malas garumu un mediānas garumu. Bet diemžēl man ir prasīts nevis mediānas garums, bet to koordinātes... Varbūt pieredzējušāki mani kolēģi varētu pateikt, ar kādu algoritmu varētu tikt pie mediānas koordinātēm? P.S. uz ko norāda, ja pēc krāmera formulas, diskriminants (Delta) sanāk nulle... Cik saprotu, tas nozīmē, ka nav atrisinājuma, bet vai šajā gadījumā tas ir iespējams? Jo divas taisnes ir vai nu paralēlas, vai nu krustojas. Citas iespējas taču nav? Edited October 12, 2011 by slamjaw Quote Link to post Share on other sites
Aleksejs 27 Posted October 12, 2011 Share Posted October 12, 2011 ax+bx=c vai ax+by=c Quote Link to post Share on other sites
slamjaw 0 Posted October 12, 2011 Author Share Posted October 12, 2011 Sorry. Drukas kļūda. Ir ax+by=c Quote Link to post Share on other sites
Aleksejs 27 Posted October 12, 2011 Share Posted October 12, 2011 Ok. Par Krāmera formulām visu esmu aizmirsis, bet: Taisne K ir || ar taisni J tad un tikai tad, ja ak/bk=aj/bj Šajā gadījumā tas iekļauj gadījumu, kad K sakrīt ar J. Kad esi atradis virsotņu koordinātas, tad jāatrod malu viduspunktu koordinātas Xmax-(Xmax-Xmin)/2 (un tāpat Y koordinātai). un jāizrēķina a'b'un c' vērtības tādai taisnei, kas iet caur šo punktu un tam pretī esošo virsotni... P.S. Rakstīju, daudz neiedziļinoties, varbūt kādu grābekli esmu palaidis garām. Quote Link to post Share on other sites
slamjaw 0 Posted October 12, 2011 Author Share Posted October 12, 2011 (edited) Īsti nesapratu, ko mēs dabūjam ar Xmax-(Xmax-Xmin)/2. Garākās malas vidus punktu koordinātas? Tāpat īsti nesapratu kā "izrēķināt a, b un c vērtības tādai taisnei... " Atvainojos, ka esmu tāds bremze.... Vari pamēģināt pateikt kautkā savādāk? Edited October 12, 2011 by slamjaw Quote Link to post Share on other sites
Aleksejs 27 Posted October 12, 2011 Share Posted October 12, 2011 (edited) Pieņemsim, ka mums ir mala AB, ar koordinātām (3,4)A un (5,1)B. šīs malas viduspunkts tātad ir (5-(5-3)/2,4-(4-1)/2)=(4,2.5) zinot, ka virsotnes C koordināta ir (7,3) izrēķinām a, b un c vērtības taisnei, kas iet caur šiem diviem punktiem. Tā atkārtojam atlikušajām divām malām un virsotnēm Edited October 12, 2011 by Aleksejs Quote Link to post Share on other sites
Vilx- 41 Posted October 12, 2011 Share Posted October 12, 2011 Nekādi algoritmi. Tikai ģeometrija. Taišņu krustpunktu atrast jau vari. Tas labi. Tālāk starp diviem punktiem atrast viduspunktu ir elementāri - vienkārši izvelc vidējo aritmētisko X koordinātēm un Y koordinātēm. Pēc tam vajag tikai atrast vienādojumu taisnei, kura iet caur diviem zināmiem punktiem (trijstūra virsotne, un pretējās malas viduspunkts). Tā arī ir elementāra algebra. Quote Link to post Share on other sites
slamjaw 0 Posted October 15, 2011 Author Share Posted October 15, 2011 (edited) Liels paldies visiem, kas palīdzēja. Domāju, ka programma gatava. Uzzīmēju iespējamo variantu, izrēķināju, un programmas izvade sakrīt ar izrēķināto variantu. Pielikumā ielikšu cpp failu, ja gadījumā kādu kādreiz mocīs šis pats jautājums. Anyway, ja kādam ir vairāk brīva laika, varētu pārbaudīt programmu, un varbūt kautko ieteikt? P.S. Augšuplādētais fails ir .txt formātā, jo ar paplašinājumu .cpp man neļāva augšuplādēt. Vienkārši pārsauciet failu piemēram uz linear.cpp linear.txt Edited October 15, 2011 by slamjaw Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.