eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaprogramowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli programatora pralki › Re: programowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli programatora pralki
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: