Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 12 kwi 2025, o 13:06


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 8 lut 2014, o 00:44 
    Offline
    Nowy

    Dołączył(a): 08 lut 2014
    Posty: 12
    Pomógł: 0

    Witam.

    Znalazłem pewien program SSN w języku C i chciałbym go przełożyć na język JAVA. Mam jednak problem z pewną funkcją. Przepisany program zwraca nieprawidłowe, w stosunku do tego samego programu w C, wyniki, czemu winna jest (prawdopodobnie) wspomniana funkcja operująca na tablicach. Przed wywołaniem tej funkcji, stan określonych zmiennych w programie w C i JAVIE jest ten sam. Po wywołaniu, stan tablic na których wykonywano operacje oraz końcowy wynik różnią się, a nie powinny, bo to są identyczne programy.

    Tak wygląda funkcja w języku C:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Natomiast tak wygląda ta sama funkcja przepisana na JAVĘ:

    Składnia: [ Pobierz ] [ Ukryj ]
    język java
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Funkcja (metoda) jest wywoływana tak:

    [w C]

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    [w JAVIE]

    Składnia: [ Pobierz ] [ Ukryj ]
    język java
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Argumentami są stałe oraz tablice: 2 dwuwymiarowe i 3 jednowymiarowe:
    *definicja tablic w C:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    *te same tablice w JAVIE:
    Składnia: [ Pobierz ] [ Ukryj ]
    język java
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Myślę, że problem jest z fragmentem:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    , który został nieprawidłowo przetłumaczony na JAVĘ.

    Czy funkcja w C została dobrze przetłumaczona na metodę w JAVIE? Gdzie znajdują się błędy?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 lut 2014, o 14:55 
    Offline
    Nowy

    Dołączył(a): 05 paź 2013
    Posty: 19
    Pomógł: 0

    Może nie przekazuj tych tablic jako argumenty, tylko umieść je w klasie, i operuj na klasach?

    ------------------------ [ Dodano po: 6 minutach ]

    Z tego co się orientuję to podczas przekazywania argumentu, interpreter tworzy kopie zmiennych, więc nie operujesz na faktycznych tablicach tylko kopiach.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 lut 2014, o 18:06 
    Offline
    Nowy

    Dołączył(a): 08 lut 2014
    Posty: 12
    Pomógł: 0

    Ale gdy są w Javie, jako argumenty funkcji, przekazywane obiekty (w tym tablice, które są też obiektami) - zmiany dokonane na tych obiektach w funkcji mają charakter globalny, bo przekazywane są do tych funkcji kopie referencji do obiektów.


    Dlatego w kodzie w miejscach, gdzie były [w C] do funkcji przekazywane wskaźniki do określonych zmiennych, zastosowałem w miejsce tych zmiennych tablice jednoelementowe, aby zmiany dokonane na tych tablicach w metodach , były widoczne w innych częściach programu, np.:
    Składnia: [ Pobierz ] [ Ukryj ]
    język java
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 mar 2014, o 15:37 
    Offline
    Użytkownik

    Dołączył(a): 10 lip 2013
    Posty: 93
    Lokalizacja: Puławy
    Pomógł: 0

    Ja napisałem taki program sieci. Właściwie to jest tylko moja własna próba zaimplementowania algorytmu sieci.
    Najprościej jak umiałem:
    (Trochę się wstydzę pokazywać bo to niezoptymalizowane i wogóle masakra :) tylko tak na szybko sam algo)
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język java
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Mieszają się nazwy ang. i polskie ale nie wiedziałem jak to wszystko ponazywać.
    Dawno nie uruchamiałem i w ogóle mało to obiektowe ale jak mówiłem to tylko test - powinno działać. Nie wiem jak się po polsku nazywa twoja metoda ale pewnie ją tu znajdziesz tyle że bez biasów.

    P.S ale ze mnie archeolog ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO