Swaping
#3
(03-05-2023, 05:06 PM)CSslymer Wrote: Každý predmet má niekoľko objektov.
Každý objekt má niekoľko strán
Každá strana má niekoľko súradníc.
Čo sa môže zmeniť.
Musím ich vytriediť.
Vk = náhodné číslo
Objekt(1, 1, 1, 0).z = Vk
Objekt(1, 1, 1, 1).x = -Vk
Objekt(1, 1, 1, 1).y = -Vk

Objekt(1, 1, 4, 4).x = Vk
Objekt(1, 1, 4, 4).y = -Vk
Objekt(1, 1, 4, 4).z = Vk

Objekt(2, 1, 2, 6).x = Vk
Objekt(2, 1, 2, 6).y = Vk
Objekt(2, 1, 2, 6).z = Vk

  Objekt ( 2 , 1 , 2 , 6 )
        Predmet - Objekt - Strana - súradnice
     
Počítal som súradnice a spočítal steny na obejct.
Teraz mám Predmet a Objekt
Skúsil som toto a nefunguje to veľmi dobre:

                    SwapStran(i, a, b).z = SwapStran(i, a, b).z + Z
                    SwapObjektov(i, a).z = SwapObjektov(i, a).z + SwapStran(i, a, b).z
                  --   
                    SwapSubjektov(i).z = SwapSubjektov(i).z + SwapObjektov(i, a).z
                    toto už nie je možné
                    pretože súčet rôznych predmetov je príliš veľký a nefunguje to
                  --
    SwapingStran:
    Pre i = 1 Do PocetSubjektov
        Ak PovolenieSwapObjektov(i) = 1 Potom
            Znovu = 0
            Pre a = 1 To Subjekt(i).PocetObjektov
                Pre b = 1 To Subjekt(i).PocetStran
                    k = 1: Ak b = Predmet(i).PocetStran Potom k = 0
                    Ak SwapStran(i, a, b).z > SwapStran(i, a, b + k).z Potom
                        Swap SwapStran(i, a, b).z, SwapStran(i, a, b + k).z
                    Znovu = 1
                    Koniec Ak
                Ďalej b
            Ďalej a
            Ak Znovu = 1, potom prejdite na SwapingStran:
        Koniec Ak
    Ďalej i

    SwapingObjektov:
    Pre i = 1 Do PocetSubjektov
        Ak PovolenieSwapObjektov(i) = 1 Potom
            Znovu = 0: O = 0: Ak i = PocetSubjektov Potom O = 1
            Pre a = 1 To Subjekt(i).PocetObjektov
                k = 1: Ak a = Subjekt(i).PocetObjektov Potom k = 0
                Ak SwapObjektov(i - O, a).z < SwapObjektov(i, a + k).z Potom
                    Swap SwapObjektov(i - O, a).z, SwapObjektov(i, a + k).z
                    Znovu = 1
                Koniec Ak
            Ďalej a
        Koniec Ak
    Ďalej i
    If Znovu = 1 Then GoTo SwapingObjektov

-------------------------------------------------- -------------------------------------
Tu je problém:

    Výmena Subjektov:
    Znovu = 0: ii = 0: a1 = 1: a = 0
    Pre i = 1 Do PocetSubjektov
        ii = ii + 1
        Ak i + ii >= PocetSubjektov Potom ii = 0: Znovu = 0
        Ak PovolenieSwapObjektov(i) = 1 alebo PovolenieSwapObjektov(i + ii) = 1 Potom
            Do
              a = a + 1
                Ak SwapObjektov(i, a).z < SwapObjektov(i + ii, a1).z Potom
                    Swap SwapObjektov(i, a).z, SwapObjektov(i + ii, a1).z
                    Znovu = 1
                Koniec Ak
                Ak a >= Predmet(i).PocetObjektov Potom
                    a = 0
                    a1 = a1 + 1
                Koniec Ak
                Ak a1 >= Subjekt(i + ii).PocetObjektov Then a1 = 1: Exit Do
            Slučka, kým znovu = 1
        Koniec Ak
    Ďalej i
    If Znovu = 1 Then GoTo SwapingSubjektov

wow PE has come a long way
Reply


Messages In This Thread
Swaping - by CSslymer - 03-05-2023, 05:06 PM
RE: Swaping - by mnrvovrfc - 03-05-2023, 05:17 PM
RE: Swaping - by vince - 03-05-2023, 05:27 PM
RE: Swaping - by Petr - 03-05-2023, 05:27 PM
RE: Swaping - by Petr - 03-05-2023, 05:30 PM
RE: Swaping - by Petr - 03-05-2023, 05:55 PM
RE: Swaping - by bplus - 03-05-2023, 06:43 PM
RE: Swaping - by CSslymer - 03-06-2023, 05:11 AM
RE: Swaping - by mnrvovrfc - 03-05-2023, 07:52 PM
RE: Swaping - by vince - 03-06-2023, 08:14 AM
RE: Swaping - by bplus - 03-06-2023, 04:39 PM



Users browsing this thread: 6 Guest(s)