-
Data: 2017-10-31 09:07:47
Temat: Re: programowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli programatora pralki
Od: Mateusz Viste <m...@w...tell> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Mon, 30 Oct 2017 21:44:06 +0100, ToMasz wrote:
> ale to nie jest wskazówka. pisanie że goto jest do zastąpienia w inny
> sposób już od lat 70 to też nie wskazówka. a analiza mojej rodziny to
> już granica dobrego wychowania.
Kopiesz się z koniem - nie wygrasz :)
Koń (lub troll) - ma to do siebie że w kopaniu się ma dużą wprawę, tyle
że na tym kończą się jego umiejętności. Nie trać czasu - użyj killfile.
> no więc prosiłem o napisanie jak w c obejść goto (gosub)
Mowa tutaj o pralce, a nie o kontrolerze lotów kosmicznych, więc nie ma
sensu wiele kombinować. Jeśli goto pasuje do tego co chcesz osiągnąć i
działa - nie ma powodu by go nie użyć. Zawsze najsłuszniej korzystać z
narzędzi które się zna i nad którymi ma się kontrolę.
Nie jestem co prawda jednym z tych zagorzałych przeciwników goto, ale sam
raczej w tym kontekście zrobiłbym to inaczej: "program" pralki to nic
innego jak ciąg różnych akcji o pewnej długości. Być może coś takiego
miałoby sens:
void wirowanie(int czas, int szybkosc) {
...
}
void plukanie(int czas, int szybkosc) {
...
}
void grzanie(int temperatura) {
for (;;) {
int t = zmierz_temp_wody();
if (t >= temperatura) break;
wlacz_grzalke();/* grzałka jest "włączana" w kółko, gdyż z */
/* powodów bezpieczeństwa wyłącza się sama */
/* po kilkunastu sekundach bez sygnału */
sleep(5);
}
wylacz_grzalke();
}
void pranie(int czas, int szybkosc) {
...
}
Czyli definiujesz zestaw funkcji które odpowiadają za "podstawowe"
czynności które pralka potrafi wykonać. Następnie programujesz cykle
wywołując powyższe funkcje w odpowiedniej kolejności i ze stosownymi
parametrami:
void program_prawie_czysta_odziez(void) {
grzanie(40);
pranie(600, 600);
plukanie(60, 400);
wirowanie(60, 800);
}
void program_mega_brud(void) {
grzanie(70);
pranie(600, 600);
plukanie(120, 800)
grzanie(70);
pranie(900, 800);
plukanie(120, 800);
wirowanie(60, 1000);
}
void program_moja_flanelowa_koszula(void) {
grzanie(40);
pranie(900, 400);
plukanie(120, 400);
wirowanie(60, 400);
}
Mateusz
Następne wpisy z tego wątku
- 31.10.17 11:09 Piotr Gałka
- 31.10.17 18:01 slawek
- 31.10.17 18:15 slawek
- 31.10.17 18:40 slawek
- 31.10.17 20:32 Piotr Gałka
- 31.10.17 22:34 ToMasz
- 01.11.17 03:37 Jacek Radzikowski
- 01.11.17 08:00 slawek
- 01.11.17 08:03 slawek
- 01.11.17 09:04 jacek
- 01.11.17 17:21 Jacek Radzikowski
- 01.11.17 21:06 slawek
- 01.11.17 21:07 slawek
- 01.11.17 21:09 slawek
- 01.11.17 21:46 Jacek Radzikowski
Najnowsze wątki z tej grupy
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
Najnowsze wątki
- 2025-02-21 Warszawa => Key Account Manager IT <=
- 2025-02-21 Warszawa => Data Engineer (Tech Lead) <=
- 2025-02-21 Aliexpress zaczął oszukiwać na bezczelnego.
- 2025-02-21 Warszawa => System Architect (Java background) <=
- 2025-02-21 Kula w łeb
- 2025-02-21 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-21 Warszawa => Solution Architect (Java background) <=
- 2025-02-21 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-02-21 Pawel S
- 2025-02-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-02-21 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-21 Chrzanów => Programista NodeJS <=
- 2025-02-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-21 Warszawa => Administrator Systemów Windows IT <=
- 2025-02-21 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=