eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNiezmienniki pętli › Re: Niezmienniki pętli
  • X-Received: by 2002:a0c:cd87:: with SMTP id v7mr145753qvm.6.1542532220918; Sun, 18
    Nov 2018 01:10:20 -0800 (PST)
    X-Received: by 2002:a0c:cd87:: with SMTP id v7mr145753qvm.6.1542532220918; Sun, 18
    Nov 2018 01:10:20 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.
    iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!g188-v6
    no2272191itg.0!news-out.google.com!t123-v6ni1625itb.0!nntp.google.com!g188-v6no
    2272184itg.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mai
    l
    Newsgroups: pl.comp.programming
    Date: Sun, 18 Nov 2018 01:10:20 -0800 (PST)
    In-Reply-To: <e...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.109;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 5.172.255.109
    References: <8...@g...com>
    <e...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <1...@g...com>
    Subject: Re: Niezmienniki pętli
    From: fir <p...@g...com>
    Injection-Date: Sun, 18 Nov 2018 09:10:21 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Lines: 71
    Xref: news-archive.icm.edu.pl pl.comp.programming:212923
    [ ukryj nagłówki ]

    W dniu piątek, 16 listopada 2018 16:48:18 UTC+1 użytkownik s...@g...com napisał:
    > > Czy w związku z tym zagadnienie niezmienników jest niepotrzebne? A może nadal
    jest potrzebne i coś innego je zastępuje?
    >
    > 1. Wiedziałem co to jest.
    >
    > 2. Stosuję
    >
    > 3. Sam też stosujesz
    >
    > Najprostrze zastosowanie:
    > QList<int> lList = {0, 1, 2, 3, 4, 5};
    > for(int i(0); i < lList.size(); ++i)
    > // tu robisz coś z lList
    > W tej pętli niezmiennikiem sprawdzanym przed wejściem w pętlę i po kazdej iteracji
    jest:
    > i < lList.size()
    >
    > Nieco bardziej ogólne jest:
    > QList<int> lList = {0, 1, 2, 3, 4, 5};
    > for(int& lItem : lList)
    > // tu robisz coś z lItem
    > W tym przypadku niezmiennikiem (ukrytym) jest fakt iteracji po wszystkich
    elementach listy.
    >
    > 4. Zazwyczaj dalszych niezmienników w pętli nie sprawdzam. Głównie ze względu na 2
    wady:
    > 4.1. Puchnięcie i zaciemnianie kodu.
    > 4.2. Spowolnienie programu.
    >
    > 5. Bardzo często sprawdzam parametry wejściowe funkcji (wierzę i stosuję coś w
    rodzaju programowania kontraktowego).
    > 5.1. Wierzę w try, throw, catch (wyjątki obowiązkowo dziedziczone po std::exception
    z opisem i kodem błędu).
    > 5.2. Nie wierzę w i nie cierpię Assert (to tak jak by bez ostrzeżenia uderzyć kogoś
    w twarz bez dalszego komentarza).
    > 5.3. Toleruję wartości zwracane (jako informacje o błędach) i brak standaryzacji w
    dostępie do opisów błędów w Qt.

    ostatnio odkrylem dosyc odkrywczy sposob
    dilowania (tj forme kodowanie obslugi bledow) z bledami w jezykach podobnych
    do c

    wymaga on pewnej poprawki do jezyka,

    (i jest opisany na clc, troche nie che mi sie tu opisywac bo nie lubie sie powtarzac)

    jest on ogolnie ciekawy bo mz pokazuje co to jest normalne dilowanie z bledami i na
    czym to normalne dilowanie z bledami normalnie polega (ma polegac)

    nawiasem mowiac w swietle tego asercje
    albo bledy przypadkowe (jak np zmienienie sie jakiejs komorki w rami i wyjatek typu
    nielegalna instrukcja) nie sa normalnymi sposobami dilowania z bledami tylko pewnymi
    case'ami nadspecjalnymi

    NORMALNY i najbardziej typowy sposob z
    handlowaniem z bledami w programie to zwykle zwrocenie informacji o bledzie do
    funkcji w tyl - tylko ze nie powinno to byc mieszane ze zwracaniem poprawnej wartosci
    w tym kanale w ktorym zwraca sie wartosci w sytuacjach niebledowych..

    dzis jesli ktos zwraca blad w tyl (jak rozne api robia) to ogolnie robi dobrze,
    tylko ze jesli wtyka kody bledow w wartosci zwracane to zarazem robi zle ;c

    https://groups.google.com/forum/#!topic/comp.lang.c/
    p1CcmgZKkV4


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: