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? 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 9 lip 2025, o 14:29


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
    Autor Wiadomość
     Tytuł: Ach te if'y
    PostNapisane: 8 sie 2019, o 16:04 
    Offline
    Nowy

    Dołączył(a): 28 kwi 2012
    Posty: 19
    Lokalizacja: Wrocław
    Pomógł: 0

    Witam.

    Mam pytanie, dlaczego te dwa wyrażenia z if-ami nie działają tak samo w realu?

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


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


    Bo myślałem, że są to dwa równoważne zapisy. Ale hardware mówi inaczej.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 16:15 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    dobra zagadka ;) może ktoś podpowie - jeśli nie to później postaram się ja podpowiedzieć

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 17:27 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2015
    Posty: 252
    Lokalizacja: Lublin
    Pomógł: 23

    Cześć,
    jak zachowa się else przy fałszu drugiego if w obydwu przypadkach?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 18:44 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    jerrylu napisał(a):
    jak zachowa się else przy fałszu drugiego if w obydwu przypadkach?

    Else wykona się tylko przy fałszu pierwszego ifa, drugi if niema alternatywy.

    Więc powyższe warunki nie są ze sobą zgodne, bo jedyna szansa na ustawienie bitu na 1 nastąpi tylko wtedy kiedy w pierwszym warunku jest fałsz.
    Natomiast drugi przypadek ustawi bit na 1 kiedy conajmniej jeden z warunków będzie miał fałsz.

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 18:55 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2015
    Posty: 252
    Lokalizacja: Lublin
    Pomógł: 23

    Harry napisał(a):
    Else wykona się tylko przy fałszu pierwszego ifa

    Czy w drugim przypadku także pierwszy if (człon)
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    musi być fałszem?



    Ostatnio edytowano 8 sie 2019, o 18:57 przez jerrylu, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 18:56 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    Tak

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 18:58 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2015
    Posty: 252
    Lokalizacja: Lublin
    Pomógł: 23

    ok, a co jeśli jest prawdziwy, a drugi jest fałszem?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 18:59 
    Offline
    Nowy

    Dołączył(a): 28 kwi 2012
    Posty: 19
    Lokalizacja: Wrocław
    Pomógł: 0

    Aha, chyba już widzę dlaczego w drugim przypadku mamy "generator" gdy przycisk jest wciśnięty na stałe (pierwsza połowa drugiego if'a jest spełniona).

    A w pierwszej wersji nie ma tego efektu bo else się nie wykona gdy przycisk jest wciśnięty.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 19:02 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    Muszą być oba prawdą żeby się wykonał if(ustawienie bitu na 0), jeżeli będzie jeden albo oba fałszem to wtedy wykona się instrukcja Else.

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 19:19 
    Offline
    Użytkownik

    Dołączył(a): 25 lut 2015
    Posty: 252
    Lokalizacja: Lublin
    Pomógł: 23

    OK. Aby w obydwu wypadkach wykonał się else (kod działał tak samo) rzeczywiście pierwsza część musi być fałszem.
    Różnica w działaniu wynika z faktu, że pierwsza część jest prawdziwa, a druga nie.
    Czyli else wykonuje się tylko w drugim przypadku.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 19:32 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    Dokładnie tak :)
    Blok Else się wykonuje tylko wtedy kiedy warunek jest nie spełniony, jeżeli jest spełniony wtedy wykonuje kod wewnątrz tego ifa, pomijając instrukcję else.
    Oczywiście jeżeli mówimy tu o warunkach AND w ifie.
    Jeżeli zastosujemy konstrukcję z OR, czyli
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    to żeby wykonało się nasze Else musiałyby byś oba warunki nie spełnione, jeżeli conajmniej jeden warunek będzie spełniony wtedy blok się wykona.

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 8 sie 2019, o 19:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2017
    Posty: 368
    Lokalizacja: Gliwice
    Pomógł: 34

    Ciekawe pytanie, wielokrotnie sam sobie je zadawałem, a odpowiedź jest banalna.
    W jednym przypadku sprawdzasz w pierwszej fazie 2 warunki, a w drugim 3 warunki. W tym drugim przypadku sprawdzanie jest "silniejsze" - wymaga dużo więcej "na wejście", zatem nie ma się co dziwić, że wynik może być zupełnie inny.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 9 sie 2019, o 11:22 
    Offline
    Użytkownik

    Dołączył(a): 24 kwi 2013
    Posty: 454
    Pomógł: 30

    Jak dla mnie, jeżeli założymy że niema drgań styków, to przy jednokrotnym naciśnięciu klawisza, lub jego przytrzymaniu:
    - w pierwszym przypadku dioda zmieni stan raz
    - w drugim, dioda będzie zmieniać stan co drugie przejście pętli (zakładam że to jest w pętli i podczas jednego naciśnięcia dioda kilka razy mignie).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Ach te if'y
    PostNapisane: 9 sie 2019, o 14:06 
    Offline
    Nowy

    Dołączył(a): 28 kwi 2012
    Posty: 19
    Lokalizacja: Wrocław
    Pomógł: 0

    ciamciak napisał(a):
    Jak dla mnie, jeżeli założymy że niema drgań styków, to przy jednokrotnym naciśnięciu klawisza, lub jego przytrzymaniu:
    - w pierwszym przypadku dioda zmieni stan raz
    - w drugim, dioda będzie zmieniać stan co drugie przejście pętli (zakładam że to jest w pętli i podczas jednego naciśnięcia dioda kilka razy mignie).

    Jest dokładnie tak jak piszesz. Nawet widać jak dioda przygasa. Ale co ważniejsze teraz już rozumiem czemu tak się układ zachowuje.



    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: 14 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO