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



Teraz jest 6 lis 2024, o 05:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 6 sty 2014, o 11:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2012
Posty: 530
Lokalizacja: Bydgoszcz
Pomógł: 8

Na stronie atnel.pl są uaktualnienia do książek. Tam chyba powinno być to opisane. Sprawdź.

Wysłane z mojego GT-I9100 przy użyciu Tapatalka

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2014, o 11:24 
Offline
Moderator
Avatar użytkownika

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

ENOS napisał(a):
W rozdziale dotyczącym programowej obsługi magistrali i2c w funkcji i2cPutbyte na końcu jest taki zapis
return(b==0);
Ma to być rezultat ACK bądź NACK.
Czy nie powinno być return b; ?


Nie powinno być return b;

to co pokazuję w książce w rozdziałach warsztatowych to się nazywa właśnie nauka programowania C na praktycznych przykładach ;)

co ci to przypomina (b==0) ? ... czy nie przypomina ci to warunku?

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


??? ;) jak na taki warunek spojrzysz to chyba widzisz że w środku masz wyrażenie logiczne, którego rezultatem może być albo TRUE albo FALSE czyli albo 1 albo 0 - chyba się zgodzisz ? prawda ?

i chyba to rozumiesz ? prawda ? ;)

No to teraz pójdź krok dalej i pomyśl ... dlaczego takie wyrażenie miałoby móc występować TYLKO w warunku IF ?

może występować poza nim .... ZAWSZE POWTARZAM przez całą książkę - na wszystko co w nawiasach patrz jak na WYRAŻENIE i staraj się dostrzec jaki będzie wynik tego wyrażenia, to podobnie jak np z liczbą 4. Można ją przedstawić tak

Cytuj:
4


ale równie dobrze tak:

Cytuj:
(2+2)


;)

nawiasy nawet nie są tu konieczne - ale już chyba teraz wiesz jakie wartości zostaną zwrócone w wyniku takiego zapisu

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


zgadza się ?

albo TRUE (czyli 1) albo FALSE (czyli 0) .... mam nadzieję że teraz jaśniej i że dowiedziałeś się czegoś nowego - że można w ten sposób konstruować nawet bardziej skomplikowane wyrażenia .... inny przykład ?

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


;) fajne ??? już widzisz, że zawsze gdy (b==1) będzie TRUE to a przyjmie wartość = c, ale gdy będzie FALSE to a będzie równe 0

_________________
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  
PostNapisane: 6 sty 2014, o 15:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Witam
Zależy dla kogo zakręcony warunek po
dla mnie bardziej czytelne jest wyrażenie (b==0)
mimo ,że rozumiem oba zapisy

Wszystko zależy od piszącego program z którego skorzysta,
oba zapisy są równoważne jeśli chodzi o efekt
(jeśli się mylę niech ktoś mnie poprawi )



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2014, o 15:26 
Offline
Moderator
Avatar użytkownika

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

ENOS napisał(a):
Pytanie dlaczego nie napisać wprost (b?1;0) tylko zakręcić


Zakręcić ???

chyba kolega raczy zartować ?

jeśli to dla ciebie zakręcenie to świadczy tylko o tym, że jeszcze nie miałeś z tym nigdy do czynienia, że nie masz praktyki, że nie wiesz że takie konstrukcje są dozwolone w wielu językach programowania - wcale nie tylko w C i są stare jak świat ...

więc zamiast narzekać, że zakręcone

zrozum - poznałeś jakąś tam nową technikę programowania dzięki książce ... a teraz staraj się obserwować i myśleć gdzie czasem ci się przyda zamiast narzekać na zakręcenie .... bo dla jednego to bardziej zakręcone może być (B?1:0) a dla innego (b==0) ...

rozumiesz ?

poza tym porównaj sobie wielkość wygenerowanego kodu we flash w jednym i w drugi wypadku razem ... pokombinuj, posprawdzaj a sam dostrzeżesz różnice i z czasem sam będziesz używał takich technik

czy wolałbyś żeby książka nic o tym nie mówiła ?

ale gdyby mieć takie podejście to w zasadzie po co w ogóle książkę pisać ? :lol:

A sposób jest wyjaśniony - WYRAŻENIE - to jest słowo KLUCZ

tylko jakoś ciężko niektórym to zrozumieć

że wszystko w C prawie jest wyrażeniem - i dzięki temu do dalszych działań brany jest pod uwagę wynik takiego WYRAŻENIA - to dzięki temu jest spora elastyczność tego języka ... i warto się tego uczyć ... bo sam zobaczysz (choć może później) że to pomaga

_________________
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  
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 0 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