slamjaw Ierakstīts Oktobris 12, 2011 Share Ierakstīts Oktobris 12, 2011 (labots) 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? Labots Oktobris 12, 2011 - slamjaw Link to comment Share on other sites More sharing options...
Aleksejs Oktobris 12, 2011 Share Oktobris 12, 2011 ax+bx=c vai ax+by=c Link to comment Share on other sites More sharing options...
slamjaw Oktobris 12, 2011 Author Share Oktobris 12, 2011 Sorry. Drukas kļūda. Ir ax+by=c Link to comment Share on other sites More sharing options...
Aleksejs Oktobris 12, 2011 Share Oktobris 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. Link to comment Share on other sites More sharing options...
slamjaw Oktobris 12, 2011 Author Share Oktobris 12, 2011 (labots) Ī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? Labots Oktobris 12, 2011 - slamjaw Link to comment Share on other sites More sharing options...
Aleksejs Oktobris 12, 2011 Share Oktobris 12, 2011 (labots) 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 Labots Oktobris 12, 2011 - Aleksejs Link to comment Share on other sites More sharing options...
Vilx- Oktobris 12, 2011 Share Oktobris 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. Link to comment Share on other sites More sharing options...
slamjaw Oktobris 15, 2011 Author Share Oktobris 15, 2011 (labots) 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 Labots Oktobris 15, 2011 - slamjaw Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!