-
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
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
- Czemu rozwaliło celę?
- Wojna w portfelu
- Jaki trojfazowy licznik tuya lub podobny?
- Problem z dekoderem adresów
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
- Korekcja perspektywy
- Wentylator zabija zasilacze LEDek?
- Re: Kompensacja mocy biernej przy 230VAC
- Totaliztyczny obowiązek naprawy maszyn i urządzeń
- Niby uziom ale nie
Najnowsze wątki
- 2025-04-30 Szczecin => Key Account Manager IT <=
- 2025-04-30 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-04-30 Wrocław => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produk
- 2025-04-29 Nożownik zaatakował i zabił lekarza
- 2025-04-29 Polecam żarówki Blackout na Blackout z dużym gwintem
- 2025-04-29 Porażka kasty sędziowskiej przed Trybunałem Sprawiedliwości UE
- 2025-04-29 Kombinacja znaków A11 i B33?
- 2025-04-29 Na jakim etapie jest sprawa karna "gaśnicowego" Brauna z grudnia 2023?
- 2025-04-29 TSUE jest "przeciw a nawet za" neosędziami :-)
- 2025-04-29 Wrocław => Konsultant wdrożeniowy (systemy kontrolingowe) <=
- 2025-04-29 China => Production Coordinator / Representant Product Dev <=
- 2025-04-29 Warszawa => Specjalista rekrutacji IT <=
- 2025-04-28 Hiszpania bez pradu
- 2025-04-28 chinska stal
- 2025-04-28 QR kody