SOYER Listopad 14, 2017 Autor tematu Udostępnij Listopad 14, 2017 Chłopaki miejcie litość, uczę się programować od 10 dni. W wolnym czasie między pracą, trójką dzieci i żoną. Ethanak daruj Elvisowi, chłop jest wymagający ale bardzo pomocny. Dzięki za wszelkie sugestie.
ethanak Listopad 14, 2017 Udostępnij Listopad 14, 2017 @Elvis: dlatego wszystkie nowsze kompilatory/linty wypisują w takiej sytuacji ostrzeżenie - a zadaniem programistego jest poinformiwanie kompilatora, że właśnie o to chodziło i ma się nue czepiać.
Elvis Listopad 14, 2017 Udostępnij Listopad 14, 2017 SOYER, gratuluję programu, nie zamierzam więcej o stylu kodowania pisać. Po prostu nie chciałem żebyś uczył się ze złych przykładów. ethanak, nie wiem co Ci odpisać - poza tym że życzę powodzenia z takim podejściem. Może w małym, amatorskim projekcie to zadziała ale jak spróbujesz tak pisać coś na poważnie szybko zmienisz zdanie. Albo chociaż padniesz ze szczęścia jak dostaniesz od kogoś taki kod do zmian.
marek1707 Listopad 14, 2017 Udostępnij Listopad 14, 2017 No ale to, że instrukcja podstawienia oddaje wartość było celowym zamysłem twórców C i zostało zrobione po coś. W moim rozumieniu właśnie m.in. do takich celów. C nie musi wyglądać jak nadobny Algol. Dla każdego kto C zna i rozumie, konstrukcja ethanaka jest oczywista. A nieczytelność kodu powstaje (pomijając konkursy i celowe działania) z bezsensownych nazw zmiennych, idiotycznego formatowania czy używania konstrukcji np. ewidentnie niepasujących do algorytmu. To właśnie zakłóca naturalny flow odczytywania obcego kodu. Choć być może jest to dyskusja o tym który kolor jest ładniejszy.. No i szacun SOYER za zacięcie. A biegłość w formułowaniu kodu w C przyjdzie z czasem, język jak każdy inny, trzeba w nim gadać.
SOYER Listopad 14, 2017 Autor tematu Udostępnij Listopad 14, 2017 Dzięki chłopaki za dobre słowo, nie jedźcie za bardzo po Elvisie , gdyby nie on nie wiedziałbym dalej o co chodzi z millis... Elvis pisz, poprawiaj, krzycz, UCZ MNIE DALEJ . Co znaczą Twoje słowa: "ale używanie przypisania w parametrach wywołania funkcji nie świadczy dobrze o kodzie", pokaż mi konkretny fragment, bo nie wiem o czym dyskutujecie . Pytałem też o to czy delay wstrzymuje odliczanie millis? czy millis liczy zawsze od początku uruchomienia i nic na ten czas nie wpływa?
ethanak Listopad 14, 2017 Udostępnij Listopad 14, 2017 @Elvis: wybacz, parę programów C napisałem, nie mam zamiaru na tym forum się chwalić (bo zmierzenie się z robotyką to dla mnie nowe pole do eksperymentów) - ale znajdź sobie któregoś pięknego dnia programik o wdzięcznej nazwie "Milena". Potem pogadamy o pisaniu amatorskich programów na poważnie. A SOYERowi gratuluję - tak trzymać! (Edytka) @SOYER: delay ani żadna inna funkcja nie blokuje odliczania millis/micros. Do tego musiałbyś zablokować przerwania na dłuższy czas. Jedyna znana mi biblioteka która to robi to NeoPixel w wersji Adafruit - ale to wynika z wymagań podłączonego hardware'u.
SOYER Listopad 14, 2017 Autor tematu Udostępnij Listopad 14, 2017 Ethanak chodziło ci by to: if (stanz == LOW) { stanz = HIGH; } else { stanz = LOW; } digitalWrite(zielona, stanz); zastąpić: digitalWrite(zielona, stanz =!stanz); w sumie krócej ale niepoprawnie?
Elvis Listopad 14, 2017 Udostępnij Listopad 14, 2017 SOYER, cała dyskusja dotyczy kod zaproponowanego przez ethanak-a. Twój program zaginął w potoku postów. marek1707, nie do końca się z Tobą zgodzę. C zawiera wiele kontrukcji, których użycie nie zawsze jest wskazane, jak chociażby słynne goto (które czasem bardzo się przydaje). Nie należy używać wszystkiego tylko dlatego że można. Natomiast to co uważam za nieopranwe jest zanegowanie zmiennej przekazywanej jako kolejny parametr wywołania. Taki kod jest mało czytelny jeśli czytamy większy kod i łatwo jest w nim popełnić błąd. A co do stylu kodowania to każdy może mieć własny, są jednak pewne zalecenia i sprawdzone reguły - których czasem warto się trzymać. ethanak, nie tylko Ty napisałeś w życiu kilka programów, ale skoro chwalimy się osiągnięciami to może podasz linka do tej Mileny? Nazwa niezbyt wdzięczna do wyszukiwania
ethanak Listopad 14, 2017 Udostępnij Listopad 14, 2017 @SOYER: krócej i bezpieczniej (bo co będzie, jeśli wartość stanz będie inna niż LOW czy HIGH)? @Elvis: milena.polip.com
SOYER Listopad 14, 2017 Autor tematu Udostępnij Listopad 14, 2017 ethanak, a to w cyfrówce może być inna niż 0 i 1? Jesteś autorem tego syntezatora?
ethanak Listopad 14, 2017 Udostępnij Listopad 14, 2017 Jeśli stanz będzie innego typu niż bool to jest to całkiem możliwe;) Nie syntezatora a systemu tts (syntezator to mbrola lub ivona).
SOYER Listopad 14, 2017 Autor tematu Udostępnij Listopad 14, 2017 Domyślam się, że zmienne typu bool są zero jedynkowe. Ale jak można zanegować zmienną wynoszącą np.2,65? To będzie -2,65? Pewnie może się przydać takie cóś...
ethanak Listopad 14, 2017 Udostępnij Listopad 14, 2017 Negacją liczby różnej od zera jest zero. Negacja zera zależy od implementacji (albo 1, albo wszystkie bity ustawione) ake zawsze jest różna od zera.
SOYER Listopad 14, 2017 Autor tematu Udostępnij Listopad 14, 2017 No tak, zapominam o podstawach . czyli float cos = 2,65 !cos = 0 zgadza się?
ethanak Listopad 14, 2017 Udostępnij Listopad 14, 2017 Nie. Operator negacji logicznej (inaczej wykrzyknik) działa wyłącznie na typach int. Float będzie skonwertowany na int - a to nie zawsze wychodzi na zdrowie... Np. 0.0031 skonwertowane na int to będzie zero... A pewnie nie tego byś chciał.
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »