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



Teraz jest 2 gru 2024, o 04:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 29 kwi 2019, o 16:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 552
Pomógł: 0

Witam mam pewien problem ze zrozumieniem działania pewnych zapisów języka C.
Posłużę się przykładem zasięgniętym z lekcji z zielonej książki L17_PetitFS_WRITE:

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


Rozumiem że zmienna int0_flag raz na tyknięcię przerwania INT jest ustawiana na 1 dzięki temu jednorazowo jest spełniony warunek if ( int0_flag )
nie wiem czy do końca rozumem dalszy zapis:

if( ++s_cnt==60 ) s_cnt=0; --- czy zmienna s_cnt za każdym razem jak pętla wraca od początku zwiększa się 0 cnt+1 , a jak przeleci 60 razy to się ma wyzerować czy tak czy zwiększenie
dokonuje się inaczej?

A co znaczy zapis % w kolejnych warunkach:

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



Ostatnio edytowano 29 kwi 2019, o 16:56 przez AKSELINEK, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 kwi 2019, o 16:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2016
Posty: 66
Lokalizacja: Katowice
Pomógł: 1

% to dzielenie modulo :) -> Bluebook

1%3=1
2%3=2
3%3=0
4%3=1
...
Czyli po prostu reszta z dzielenia.

Wysłane z mojego POCOPHONE F1 przy użyciu Tapatalka


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 kwi 2019, o 17:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2017
Posty: 552
Pomógł: 0

Faktycznie jest to dzielenie dzięki wydaje się to takie proste , ale czy zrozumiałem dobrze że jest to podobne do zapisu:

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

wykonuje się dla 0,3,6,9,12,15 itd
warunek
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wykonuje się dla 1,4,7,10,13,16 itd
warunek
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wykonuje się dla 2,5,8,11,14,17

czy tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 kwi 2019, o 20:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

AKSELINEK napisał(a):
if( ++s_cnt==60 ) s_cnt=0; --- czy zmienna s_cnt za każdym razem jak pętla wraca od początku zwiększa się 0 cnt+1 , a jak przeleci 60 razy to się ma wyzerować czy...

mniej więcej...
jeżeli program wejdzie w tego ifa, to najpierw zinkrementuje zmienną 's_cnt', potem sprawdzi czy nie jest czasem równa 60, - jeżeli jest, to wykona wpis '.. =0'.
czyli jeżeli wejdzie z wartością '0', to najpierw zmieni na '1', a jeżeli wejdzie z wartością '59', to zmieni na 60 i porównując będzie zmuszona do wykonania ifa.(wyzerowania).
AKSELINEK napisał(a):
...nuje się dla 2,5,8,11,14,17

czy tak?

dokladnie tak.
widzę po kodzie że masz podlączony wyświetlacz.
możesz sprawdzić wypisując resztę z dzielenia różnych liczb przez różne liczby i wyświetlając na ekranie w sąsiedniej pozycji. ;)
pozdrawiam.


Autor postu otrzymał pochwałę


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