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 30 kwi 2025, o 03:49


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 7 kwi 2016, o 18:24 
    Offline
    Użytkownik

    Dołączył(a): 27 sty 2016
    Posty: 192
    Pomógł: 2

    Witam Was,
    Mam proste pytanie: czy w C można używać warunków wewnątrz warunków? Dla przykładu taka konstrukcja (wzięta z powietrza, bez zastanowienia):

    while
    if
    else
    else continue
    if
    else
    else
    else
    if



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 kwi 2016, o 19:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sty 2013
    Posty: 1760
    Pomógł: 196

    Witam
    Z takich konstrukcji wyjętych z kapelusza niewiele się dowiesz. Najlepiej napisz sobie jakiś kod i testuj. Można takich warunków pisać krocie, tylko jeśli już musisz to raz że ważne są klamry w odpowiednich miejscach a dwa to że łatwo się w takich pętlach zapętlić ....a stosik rośnie ;)

    Pozdr.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 kwi 2016, o 19:06 
    Offline
    Użytkownik

    Dołączył(a): 04 cze 2013
    Posty: 517
    Pomógł: 26

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


    tak wymyślone z głowy :) W języku C to tylko pizzy nie da się zamówić :)


    Autor postu otrzymał pochwałę

    _________________
    Przewodnik|Sterownik akwariowy



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 kwi 2016, o 19:20 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2014
    Posty: 1085
    Pomógł: 73

    matekogon napisał(a):
    tak wymyślone z głowy W języku C to tylko pizzy nie da się zamówić

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 kwi 2016, o 19:26 
    Offline
    Użytkownik

    Dołączył(a): 04 cze 2013
    Posty: 517
    Pomógł: 26

    Jarecki napisał(a):
    matekogon napisał(a):
    tak wymyślone z głowy W języku C to tylko pizzy nie da się zamówić

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


    Kolego podeślij całą bibliotekę :lol:

    _________________
    Przewodnik|Sterownik akwariowy



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 kwi 2016, o 19:55 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2014
    Posty: 1085
    Pomógł: 73

    matekogon napisał(a):
    Jarecki napisał(a):
    matekogon napisał(a):
    tak wymyślone z głowy W języku C to tylko pizzy nie da się zamówić

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


    Kolego podeślij całą bibliotekę :lol:


    Jak pójdę do kuchni to spakuję i wyślę :lol:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 kwi 2016, o 06:34 
    Offline
    Użytkownik

    Dołączył(a): 27 sty 2016
    Posty: 192
    Pomógł: 2

    Dziękuję Wam bardzo. Gimnastykowałem się z tym już jakiś czas i w Arduino IDE mi nie wychodziło. Myślałem, że nie da się i stąd mój romans z C. Chciałem się upewnić, że moje próby nie są skazane z góry na niepowodzenie. A ten projekt to: uC podaje określoną ilość impulsów na sterownik silnika krokowego, aby ten obrócił się dokładnie o 90 stopni. Każdy krok jest zliczany aż do 4000 i wyświetlany na wyświetlaczu LCD 1x6. Potem następuje zatrzymanie cyklu aż do wyzerowania. Poza tym po każdym ćwierćobrocie uC steruje dwoma siłownikami pneumatycznymi. (do tego miejsca w Arduino mi wszystko działało) I dodatkowo ma być przycisk "pauza", który zatrzyma działanie mechanizmu w przypadku odejścia od maszyny jeszcze przed limitem 4000szt. I z tą pauzą w Arduino sobie nie radziłem, bo zamierzałem dać przycisk, po wciśnięciu którego załączana byłaby instrukcja CONTINUE i program wpadałby w "martwą" pętlę, w której nic by się nie działo. Tak to sobie wykombinowałem. Pewnie można to zrobić bardziej elegancko, ale moje umiejętności NA RAZIE na to nie pozwalają.
    m.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 kwi 2016, o 08:27 
    Offline
    Użytkownik

    Dołączył(a): 20 lip 2015
    Posty: 83
    Pomógł: 6

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


    akurat to nie ma prawo działać, bo skoro spełnisz warunek a==5, a potem sprawdzisz czy a==6 to nigdy nie będzie prawdą :) prędzej coś w stylu

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


    lub można pomyśleć czy nie da się zastosować jakiegoś switch-case ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 kwi 2016, o 09:44 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 57
    Pomógł: 5

    Może ja dodam 3 grosze od siebie.
    Zagnieżdżanie IFów jest jak najbardziej poprawne, jeżeli dotyczą one rożnych aspektów.
    Należny jednak pamiętać, aby pisane warunki były poprawne logicznie i w odpowiedni sposób zoptymalizowane.
    Czasami zamiast zagnieżdżać IFy:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


    No i najważniejsze czytelność kodu, jak zagnieździsz sobie 8 IFów to czy za pół roku, jak trzeba będzie coś poprawić na szybko będziesz w stanie to sprawnie ogarnąć? najczęściej stosuje się zagnieżdżenie do 2 poziomu IFów, a resztę opakowuje się w jakąś metodę w której znajdują się dalsze poziomy.
    Przy zawodowym pisaniu oprogramowania należy pamiętać, że kodu nie pisze tylko się dla siebie. Ktoś za jakiś czas spojrzy w twój kod w celu jego modyfikacji/naprawy bugu i nie ma on tracić całego dnia na zrozumienie logiki i "co autor miał na myśli". Kod ma byc napisany w sposób czytelny i przejrzysty.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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