eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaprogramowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli programatora pralkiRe: programowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli programatora pralki
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: "HF5BS" <h...@...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: programowanie w C - bardzo ogólne pytanie o filozofię. Arduino w roli
    programatora pralki
    Date: Tue, 24 Oct 2017 10:56:23 +0200
    Organization: Stowarzyszenie Przeżuwaczy Szmat
    Lines: 85
    Message-ID: <osmv7f$akl$1@node1.news.atman.pl>
    References: <osllnb$psp$1@dont-email.me> <59eeec44$0$653$65785112@news.neostrada.pl>
    <osmsrd$mk1$1$PiotrGalka@news.chmurka.net>
    Reply-To: "HF5BS" <h...@...pl>
    NNTP-Posting-Host: 84-10-156-63.static.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1508835375 10901 84.10.156.63 (24 Oct 2017 08:56:15 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Tue, 24 Oct 2017 08:56:15 +0000 (UTC)
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7349
    X-Antivirus: Avast (VPS 171024-0, 2017-10-24), Outbound message
    X-Antivirus-Status: Clean
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:725225
    [ ukryj nagłówki ]


    Użytkownik "Piotr Gałka" <p...@c...pl> napisał w
    wiadomości news:osmsrd$mk1$1$PiotrGalka@news.chmurka.net...
    >W dniu 2017-10-24 o 09:31, Atlantis pisze:
    >> W C/C++ możesz z grubsza programować tak, jak to się robiło w Basicu.
    >> Służą do tego etykiety (słowo zakończone dwukropkiem) oraz instrukcja
    >> goto. Tylko moim zdaniem nie ma to większego sensu - instrukcja ta
    >> przydaje się sporadycznie (choć w pewnych sytuacjach faktycznie się
    >> przydaje), a jej nadużywanie drastycznie zmniejsza czytelność kodu. Są
    >> tacy, których zdaniem nie powinno się jej używać w ogóle.
    >>
    >
    > Nigdy nie zdarzyło mi się mieć potrzeby użycia w C instrukcji goto, ba,
    > nawet jakby mnie ktoś poprosił o wymienienie wszystkich instrukcji
    > dostępnych w C to chyba bym sobie o niej nie przypomniał, a używam
    > (sporadycznie i nie do mikrokontrolerów) C gdzieś tak od 1986r.

    Ja w basicu też mniej-więcej tak. Przyznaję, używałem, w różnych dialektach.
    Głównie w sytuacji, gdy np. finalizowałem program i np. trzeba było
    przeskoczyć baterię podprogramów (tak, jak najbardziej daje sie programować
    strukturalnie, obiektowo? Przyznam, że nie wiem, musiałbym poznać, co to), a
    upraszczało to program... Albo z lenistwa :)

    >
    > Tak się zastanawiam do czego ona mogła by być przydatna i nie bardzo
    > potrafię wymyślić jakiś przykład generujący realną taką potrzebę.

    Na szybko, z numerami linii, trochę lenistwa (jak np. coś się rzeźbiło
    ad-hoc, nie szkoda róż, gdy płonie las, jak szkoda było czasu na
    grzeczności)

    10 coś-tam
    20 gdzieś tam
    25 IF n=7 GOTO 50
    30 GOSUB 100: REM drapanie po tyłku
    40 GOSUB 200: REM klepanie po ramieniu
    50 END: REM kończymy program, można zastosować, robiło się IF n=7 THEN END
    100 podrap mnie: RETURN
    200 poklep mnie: RETURN

    Czasami szybciej było tak "na chama", niż tworzyć dodatkowo zestaw procedur.
    Poza tym, zajmowało mniej pamięci, niewiele, czasem było to decydujące, jak
    program był na styk w pamięci, co w małych komputerkach było całkiem częste.

    > A jeśli już w ogóle to chyba tylko wewnątrz jednej funkcji do jakiegoś
    > rozwikłania czegoś co w przeciwnym wypadku wymagało by albo dwukrotnego
    > napisania kilku linijek programu, albo ujęcia ich w kolejną wywoływaną
    > funkcję.

    Różnie, często z lenistwa, ale też często z braku (poza GOSUB/GO SUB -
    zależnie od dialektu) mechanizmu wspierającego strukturalność w wielu
    dialektach BASICa.
    Pierwsze możliwości trafiłem w QBASIC M$, gdzie zresztą linie programu są
    już w rzeczywistości etykietami i tak przez interpreter uważane. Gdzie
    jawnie można już było używać etykiet, już chyba od GWBASICa była też
    rozszerzona instrukcja IF: (nie pomnę teraz dokładnej składni, ale mniej
    więcej...)

    IF n=7
    podrap mnie po głowie
    powiedz coś miłego
    mozna było zagnieżdżać pętle
    ENDIF

    Jeszcze pętle WHILE-WEND, co dialekt, to inaczej.

    > Na pewno wybrałbym jedno z tamtych rozwiązań, a nie goto, choćby dlatego,
    > że nie pamiętam o jego istnieniu.

    No, gdybym od początku tak mógł..., zresztą nawet wszelkie pisemka
    pyszczyły, aby unikać goto, żeby działać strukturalnie, dzięki czemu np. w
    razie zmiany jakiegoś komponentu przegrzebać trzeba będzie tylko jego
    podprogram, zamiast rzeźbić ponownie całość, taka konstrukcja modułowa.
    Zresztą, dla zabawy bawiłem się (tautologia, wiem), w programowanie
    strukturalne używając tylko goto, bez gosub i innych procedur definiowanych.

    Dzisiaj... chyba już mi się nie bardzo chce, bo się nie bawię...
    Sporadycznie...

    --
    Psy kochają przyjaciół i gryzą wrogów,
    w odróżnieniu od ludzi, którzy niezdolni są do czystej miłości
    i zawsze muszą mieszać miłość z nienawiścią.
    (C) Zygmunt Freud.

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: