Jump to content

Algoritms: Izvadīt trijstūra mediānas koordinātes


slamjaw
 Share

Recommended Posts

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 - slamjaw
Link to comment
Share on other sites

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

Ī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 - slamjaw
Link to comment
Share on other sites

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 - Aleksejs
Link to comment
Share on other sites

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

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 - slamjaw
Link to comment
Share on other sites

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 kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...