SOYER Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 Kolega @ethanak proponuje Ci zrobienie funkcji która na bierząco będzie sprawdzała, czy i który przycisk został wciśnięty. Tak więc w przypadku 3 przycisków może zwracać 4 wyniki: że żaden nie jest wciśniety, że naciśnięto pierwszy, że naciśnięto drugi, że naciśnięto trzeci. Pomysł bardzo dobry, jednak wymaga wiedzy, że funkcja może zwracać jakąś wartość. Jednak: 6 minut temu, Norbert7630 napisał: ja nawet nie wiem jak się za to zabrać z tym return, readkey dla mnie to już czarna magia 1 Cytuj Link do komentarza Share on other sites More sharing options...
SOYER Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 Norbert pamiętasz jak Ci wkleiłem na drugiej stronie tego tematu linka do wiedzy o funkcjach z kursu arduino? Miałeś się zapoznać. Tam jest napisane o tym, że funkcja może zwracać wynik i co to ten return... 1 Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 W tej funkcji mozna tez nie zwracac nic...dopisac tyle zmiennych ile guzikow i jak wcisniety ktorys to przypisac jedynke, a jak nie to zero...a pozniej tylko if (enter) zrob cos if(up) zrob cos itp.. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Norbert7630 Styczeń 15, 2022 Autor tematu Udostępnij Styczeń 15, 2022 ok czyli w przypadku 4 przycisków bo w tym projekcie są 4 funkcja będzie zwracać 5 wyników. int readKey(void) { odczytaj_wszystkie_klawisze_i_ustaw_ich_stany(); if (klawisz_1_zmienił_stan_z_puszczonego_na_wciśnięty()) { return 1; } // ... tu następne klawisze return 0; // żaden klawisz nie został wciśnięty } int readkey(void) - ta linijka już jest dla mnie zagadką....zmienna int o nazwie readKey? a to (void)? że nie zwraca żadnej wartości? nie wiem no za trudne. czym jest ta linijka: odczytaj_wszystkie_klawisze_i_ustaw_ich_stany(); czy jest to funkcja? czyli jej nazwa i sama funkcja ? ta linijka: (klawisz_1_zmienił_stan_z_puszczonego_na_wciśnięty()) { return 1; } no tutaj to nie wiem jak to zapisać w tych nawiasach z LOW na HIGH, zwraca 1. Kompletnie nie wiem o co chodzi. Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
farmaceuta Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 Jezeli zwracasz cos z funkcji za pomoca return to typem funkcji musi byc zwracany typ...jesli zwracasz int to bedzie "int funkcja()" jesli float to "float funkcja()" itp...poprostu funkcja musi wiedziec co zwraca..void nie zwraca nic.. 1 1 Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 Odczytaj klawisze() sluzy do sprawdzenia wszystkich klawiszy i przypisaniu aktualnych stanow do odpowiednich guzikow..(trzeba sobie dopisac) 1 Cytuj Link do komentarza Share on other sites More sharing options...
Norbert7630 Styczeń 15, 2022 Autor tematu Udostępnij Styczeń 15, 2022 @SOYER tak czytałem był tam przykład z polem kwadratu chyba jak się nie mylę, funkcja miala obliczyc pole i zwrocic wynik 1 Cytuj Link do komentarza Share on other sites More sharing options...
Norbert7630 Styczeń 15, 2022 Autor tematu Udostępnij Styczeń 15, 2022 no dobrze ale te przykłady z funkcja zwracającą jakiś wynik to chodzi o przykład kolegi @ethanak? Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 @SOYER mylisz pojęcia - funkcja w C/C++ jeśli nie jest typu void zwraca dokładnie jeden wynik, natomiast ilość wartości owego wyniku może być różna - np. digitalRead zwraca jedną z dwóch możliwych, analogRead jedną z 1024 i tak dalej. Owszem, istnieją funkcję (generatory, iteratorty i takie tam) co zwracają więcej wyników niż jeden, ale nie w C/C++. Owszem, można zmusić funkcję w C do bycia taką namiastką generatora - bardzo dobrym przykładem jest strtok - ale wymaga to stworzenia dodatkowych mechanizmów zarówno po stronie funkcji, jak i po stronie pfogramu wywołującego. @Norbert7630 moja rada - poczytaj sobie najpierw o funkcjach (przecież takie już stosujesz, digitalRead chociażby), a potem zacznik konstruować program po kolei, z małych klocków a nie wszystko na raz Cytuj Link do komentarza Share on other sites More sharing options...
Norbert7630 Styczeń 15, 2022 Autor tematu Udostępnij Styczeń 15, 2022 Masz całkowitą racje @ethanak za bardzo chce od razu wszystko 😅, bo w zasadzie jakiś tam program do sterowania silnikami już mam, ale zaciekawiło mnie to co napisał kolega @SOYER że można to wykonać w inny sposób, no chciałem koniecznie spróbować, ale to nie ta wiedza jeszcze jej mało u mnie. 1 Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 2 minuty temu, Norbert7630 napisał: ale to nie ta wiedza jeszcze jej mało u mnie. Spokojnie, zdążysz się nauczyć, nikt tu nie urodził się informatykiem 🙂 1 Cytuj Link do komentarza Share on other sites More sharing options...
SOYER Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 41 minut temu, ethanak napisał: mylisz pojęcia nie rozumiemy się, wiem, że zwraca jeden wynik, ale w tym przypadku ten wynik może być w 4 wariantach, jak sam napisałeś. Tylko tego się obawiam, że te cztery warianty to już za dużo na ten etap. Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 Ja bym to napisal tak.. void sprawdz() { if(nacisnieto enter) { enter = 1; } else { enter = 0; } if(nacisnieto up) { up = 1; } else { up = 0; } if(nacisnieto down) { down = 1; } else { down = 0; } a pozniej jak powyzej wspomnialem, w odpowiednich miejscach sprawdzam w if'ach jakie mam wartosci guzikow i wykonuje odpowiednie czynnosci... Cytuj Link do komentarza Share on other sites More sharing options...
SOYER Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 2 minuty temu, farmaceuta napisał: Ja bym to napisal tak.. void sprawdz() { if(nacisnieto enter) { enter = 1; } else { enter = 0; } if(nacisnieto up) { up = 1; } else { up = 0; } if(nacisnieto down) { down = 1; } else { down = 0; } a pozniej jak powyzej wspomnialem, w odpowiednich miejscach sprawdzam w if'ach jakie mam wartosci guzikow i wykonuje odpowiednie czynnosci... To już sposób ethanaka lepszy bo nie trzeba tulu zmiennych, tylu operacji. Po co nadpisywać przy każdym obiegu pętli zmienne od przycisków których nikt nie dotykał. Nas interesuje tylko zmiana. Nie zajmujemy się czymś co się nie zmienia. if stara !=nowa{stara=nowa;} 1 Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Styczeń 15, 2022 Udostępnij Styczeń 15, 2022 @farmaceuta robisz dokładnie to co ja, tyle że ja potrzebuję do tego jednej zmiennej a Ty ośmiu. 11 minut temu, SOYER napisał: Tylko tego się obawiam, że te cztery warianty to już za dużo na ten etap. Wiesz, aby napisać krótkie opowiadanie należy znać: wszystkie litery alfabetu ortografię (przynajmniej w zakresie wyrazów których będziesz używać w opowiadaniu) jakieś podstawy gramatyki (np. "co to jest zdanie"), z czym wiążą się zasady interpunkcji Bez tego raczej trudno takie opowiadanie napisać... Dopiero po spełnieniu tych warunków (koniecznych) można zacząć uczyć się pisać. Dokładnie tak samo jest z programowaniem. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!