Skocz do zawartości

Bartosz Wójcik

Administracja
  • Postów

    363
  • Dołączył

  • Days Won

    14

Posty napisane przez Bartosz Wójcik

  1. Mam mały problem z kompilacją kodu:

    -- encrypted with https://www.stringencrypt.com (v1.0.0) [Haskell]
    module Main where
     
    import qualified Data.Char
    import qualified Data.Bits
     
    main = do
      putStrLn $ ffffff
     
    -- ffffff = "abc!"
    ffffff = zipWith f [0..] [ 0x41F6, 0x41F0, 0x41EE, 0x41AF ]
      where
        f wlyxp wflco = let rhsfn0 = wflco
                            rhsfn1 = rhsfn0 + wlyxp
                            rhsfn2 = rhsfn1 `Data.Bits.xor` 0x531D
                            rhsfn3 = rhsfn2 - 0xC028
                            rhsfn4 = rhsfn3 + wlyxp
                            rhsfn5 = rhsfn4 `Data.Bits.xor` 0x1851
                            rhsfn6 = rhsfn5 + wlyxp
                            rhsfn7 = rhsfn6 - wlyxp
                            rhsfn8 = rhsfn7 `Data.Bits.xor` wlyxp
                            rhsfn9 = Data.Bits.complement rhsfn8
                            rhsfn10 = rhsfn9 + 0x6B0A
                            rhsfn11 = rhsfn10 + wlyxp
                            rhsfn12 = rhsfn11 `Data.Bits.xor` 0x2016
                            rhsfn13 = rhsfn12 `Data.Bits.xor` wlyxp
                        in Data.Char.chr ( Data.Bits..&. 0xFFFF)

    Ideone wypluwa mi taki błąd

    [1 of 1] Compiling Main             ( prog.hs, prog.o )
    
    prog.hs:27:40:
        Couldn't match expected type `Int' with actual type `a0 -> a0'
        In the first argument of `Data.Char.chr', namely
          `(Data.Bits..&. 65535)'
        In the expression: Data.Char.chr (Data.Bits..&. 65535)
        In the expression:
          let
            rhsfn0 = wflco
            rhsfn1 = rhsfn0 + wlyxp
            rhsfn2 = rhsfn1 `Data.Bits.xor` 21277
            ....
          in Data.Char.chr (Data.Bits..&. 65535)

    Jako, że moja znajomość Haskella jest znikoma może ktoś wie jak to poprawić?

  2. Piszesz to w C++, pierwszy błąd jaki widzę, to że int n = sizeof(tab) n będzie miało błędny rozmiar, sizeof() nie może wiedzieć ile jest elementów w tablicy (to nie jest klasa), musisz dodatkowo taki parametr przekazywać dla funkcji sortowania, dla dynamicznych tablic po prostu liczbę, a dla statycznych możesz wykorzystać makro _countof().

    Drugi błąd to pętla while(n > 1). W sortowaniu bąbelkowym tak długo sortujesz dopóki żadna para nie zostanie wymieniona, ty tam dodatkowo uszkadasz zmienną N.

    Od ręki napisane, ale spróbuj tak:

    void BubbleSort(int tab[], int n)
    {
        bool wymieniono;
    
        do {
        
            // przed petla jeszcze nic nie wymieniono
            wymieniono = false;
            
            for (int i = 0; i < n-1; i++)
            {
                if (tab[i] > tab[i+1])
                {
                    swap(tab[i],tab[i+1]);
                    
                    // wymiana nastapila
                    wymieniono = true;
                }
            }
        
        // powtarzaj wymiane dopoki cos zostalo zamienione
        // jesli nic juz nie bylo zamieniane - przerwij prace
        } while(wymieniono == true);
    }

     

  3. Jeśli piszecie skrypty w AutoIt i potrzebujecie szybko zaszyfrować jakiś string czy zawartość plików, polecam usługę StringEncrypt i jej moduł do szyfrowania AutoIt:

    https://www.stringencrypt.com/autoit-encryption/

    Efekty szyfrowania stringów:

    ; encrypted with www.stringencrypt.com (v1.0.0) [AutoIt]
    #include <Array.au3>
     
    ; $Label = "DevStart"
    Global $Label[9] = [ 0x24A5, 0x249A, 0x248B, 0x24AC, 0x2475, 0x2496, 0x2487, 0x2475, _
                         0x2B09 ];
     
    For $uLPqD = 0 to 8
        $yHQOi = $Label[$uLPqD];
        $yHQOi = BitXOR($yHQOi, 0x6CF5);
        $yHQOi = $yHQOi - 1;
        $yHQOi += $uLPqD;
        $yHQOi = BitNOT($yHQOi);
        $yHQOi += $uLPqD;
        $yHQOi = $yHQOi + 1;
        $yHQOi += $uLPqD;
        $yHQOi -= $uLPqD;
        $yHQOi -= 0x1BB9;
        $yHQOi = BitNOT($yHQOi);
        $yHQOi = BitXOR($yHQOi, $uLPqD);
        $yHQOi += $uLPqD;
        $yHQOi += 0x9C3D;
        $Label[$uLPqD] = ChrW(BitAND($yHQOi, 0xFFFF));
    Next
     
    $Label = _ArrayToString($Label, "")
     
    ConsoleWrite($Label);

    Żaden deobfuscator łatwo sobie nie poradzi z odwróceniem takiego kodowania stringów w przeciwieństwie do innych metod stosowanych w skryptach AutoIt.

    Dla czytelników DevStart darmowy kod aktywacyjny na 128 użyć:

    DCED-9CF3-D74A-D901

  4. Forum programistyczne DevStart ogłasza konkurs "Dlaczego warto programować w..." gdzie możesz podzielić się swoją wiedzą dotyczącą programowania w wybranym przez siebie języku programowania i opisać innym czytelnikom dlaczego akurat ten język programowania jest dla Ciebie przydatny, jakie ma zalety (przykłady kodu), zastosowania, gdzie najlepiej się sprawdza i jak programowanie w nim wpłynęło na Twoje życie i karierę.

    Wiadomo - najlepsze historie pisze życie, interesuje mnie zarówno aspekt techniczny wybranego języka programowania, jego przewaga nad innymi językami programowania oraz Twoje własne perypetie z nim związane np. w tworzonych projektach i wnioski wyciągnięte z takich prawdziwych historii.

    Zasady konkursu

    • Wrzuć w dział odpowiedniego języka programowania swój wpis
    • Im więcej treści tym lepiej, zachęcam do wrzucania przykładów kodu z wyjaśnieniami, odnośników oraz pomocniczych grafik, filmówschematów i wszystkiego co wzbogaci zawartość
    • Tytuł wpisu dowolny, ale adekwatny do konkursu
    • Dodaj dowolne tagi + koniecznie tag "dlaczego warto programować"
    • 1 autor może zamieścić tylko 1 wpis konkursowy
    • Wpisy automatycznie są blokowane po 7 dniach, po których nie będziesz mógł wprowadzić modyfikacji w samym temacie, dlatego proszę o wrzucanie kompletnych i sprawdzonych wpisów

    Nagrody

    Autor najlepszego i najciekawszego wpisu otrzyma 0.3117 BTC. Pozostałe 2 miejsca zostaną nagrodzone kwotą po 0.1055 BTC.

    Terminy

    Zgłoszenia należy zamieszczać do końca listopada 2015 roku. Zwycięzcy zostaną ogłoszeni na początku grudnia 2015 roku i przekazane im zostaną nagrody BitCoinowe. O zwycięstwie będą decydowały również takie czynniki jak głosy użytkowników i zainteresowanie jakie wpisy wzbudzą, dlatego uprasza się o nie czekanie do samej końcowej daty trwania konkursu z umieszczaniem wpisów.

  5. Jeśli interesują Was nowość, testy sprzętu dotyczące Raspberry Pi to zachęcam do odwiedzenia bloga Korneliusza Jarzębskiego, który doskonale opisuje wszelkie nowiki techniczne

    http://www.jarzebski.pl/blog/kategoria/raspberry-pi.html

    Na blogu znajdziecie recenzje również innych miniaturowych komputerów jak Intel Galileo, HummingBoard i wielu innych elektronicznych cudów techniki :)

    http://www.jarzebski.pl/blog/

  6. Wbiłeś mi się między posty ;). Mozilla tworzyła Rusta (przynajmniej na początku) głównie dla swojego engine'u renderującego HTML - Servo, który będzie chyba najlepszym kandydatem do określenia go mianem produktu flagowego. Jest też sporo kodu napisanego przez community, repozytorium bibliotek znajduje się w serwisie crates.io.

    No i pytanie czy Rust ma w ogóle szansę na stanie się popularnym językiem czy jego popularność będzie taka jak assemblera?

  7. Rust się pojawiał zawsze w jakichś newsach, ale czy jesteś w stanie powiedzieć do czego konkretnie nadaje się Rust? Do wielowątkowości bez problemów? Do aplikacji Windows, Linux, Android? PHP aplikacje internetowe, Swift iOS, C urządzenia wbudowane itd. a Rust? Jaki jest główny cel? Czy są jakieś flagowe aplikacje stworzone w Rust?

×
×
  • Utwórz nowe...