Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

"PP0506A - Sort 1" w php - proszę o pomoc

$
0
0

widziałem już rozwiązane zadanie w innych językach (linklink) ale przy próbie rozwiązania w php napotykam ścianę - nie wiem jak to "ładnie" napisac.

 

Bo brzydko potrafię: obliczam odległości, tworze ich tablicę, sortuje ją i następnie przyrównuje posortowaną wartosć do wartości zapisanej jako atrybut obiektu punkt i go wypisuje (w założeniach jest "Żadne 2 punkty nie leżą w tej samej odległości od środka układu współrzędnych"). Dodam, że nie przejmuje się algorytmami sprawdzającymi spoja i chcę tylko napisać program który da poprawny wynik, ale nawet biorąc to pod uwagę wydaje mi się ze ten kod jest beznadziejny:

class Punkt {

    public $x;
    public $y;
    public $odleglosc;

    public function obliczOdleglosc() {

        $this->odleglosc = sqrt(pow($this->x, 2) + pow($this->y, 2));

        return $this->odleglosc;
    }

}

// tworze punkty

$punkt1 = new Punkt();
$punkt1->x = 2;
$punkt1->y = 0;

$punkt2 = new Punkt();
$punkt2->x = 2;
$punkt2->y = 2;

$punkt3 = new Punkt();
$punkt3->x = -3;
$punkt3->y = 0;

// tworze tablice z punktami i tablice z ich odleglosciami

$punkty = [
    $punkt1,
    $punkt2,
    $punkt3
];

$odleglosci = [
    $punkt1->obliczOdleglosc(),
    $punkt2->obliczOdleglosc(),
    $punkt3->obliczOdleglosc()
];

// sortuje

asort($odleglosci);

// wypisuje var dumpem

foreach ($odleglosci as $odleglosc) {
    foreach ($punkty as $punkt) {
        if ($odleglosc == $punkt->odleglosc) {
            var_dump($punkt);
        }
    }
}

 

 

jak to rozwiązać lepiej? jakieś wskazówki proszę smiley


Viewing all articles
Browse latest Browse all 21942