eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAlgorytmiczny problem lamera... :-)Re: Algorytmiczny problem lamera... :-)
  • X-Received: by 10.140.95.113 with SMTP id h104mr22587qge.36.1412622276444; Mon, 06
    Oct 2014 12:04:36 -0700 (PDT)
    X-Received: by 10.140.95.113 with SMTP id h104mr22587qge.36.1412622276444; Mon, 06
    Oct 2014 12:04:36 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    dc16no1046667qab.1!news-out.google.com!q8ni45qal.1!nntp.google.com!dc16no104666
    3qab.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Mon, 6 Oct 2014 12:04:36 -0700 (PDT)
    In-Reply-To: <m0s8le$lfc$1@node2.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=80.238.113.190;
    posting-account=FE4hoAoAAADKg8EtnA4bEyQiJf7iqAgV
    NNTP-Posting-Host: 80.238.113.190
    References: <1...@g...com>
    <m0s8le$lfc$1@node2.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <2...@g...com>
    Subject: Re: Algorytmiczny problem lamera... :-)
    From: m...@g...com
    Injection-Date: Mon, 06 Oct 2014 19:04:36 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:206691
    [ ukryj nagłówki ]

    W dniu niedziela, 5 października 2014 22:11:26 UTC+2 użytkownik bartekltg napisał:

    > int i=0;
    >
    > while ( i<nElem )
    > {
    > MyOutFile << Tab[i] << ...;
    > int j=i+1;
    > while( (j<nElem) && (strcmp(Tab[j],Tab[i])==0) ) j++;
    > i=j;
    > }


    O, proszę! Ładne! :-)

    Skojarzyłem, że kiedyś musiałem różnie reagować w zależności od liczby wyrazów we
    wczytanym wierszu i męczył mnie podobny problem, więc tylko na nim się skupiłem...
    Zakładając, że elementy NIE sa posortowane, przychodzi mi tylko coś takiego do głowy:


    for (i = 0; i < nElem; i++)
    {
    for (k = 0; k < i; k++)
    if (strcmp(Tab[i], Tab[k]) == 0)
    goto NEXT;

    for (k = i + 1; k < nElem; k++)
    if (strcmp(Tab[i], Tab[k]) == 0)
    goto NEXT;

    MyOutFile << Tab[i] << ...

    NEXT:
    }


    Takie continue, tylko nieco dalej skaczące...



    > Widzę, że używasz c++, (znaczki <<).
    > To czemu nie użyjesz stringów.

    Tak jak wspominałem - musiałem napisać "jednorazówkę" do rozwiązania topornego
    zadania.
    Zanim program poczyścił zestawienia, wcześniej dokonywał operacji na pojedynczych
    znakach i tu było mi poręczniej użyć tablic.
    Zresztą, jak w zeszłym tysiącleciu przechodziłem z Pascala na C, strasznie irytował
    mnie brak zmiennej typu String, tylko te dziadowskie tablice znakow.
    Ale potem poczułem w tym pałera i trudno mi się znowu odkręcić. ;-)


    > Tab to wtedy vector<string>.

    Abstrachuje Pan od układu odniesienia. ;-)
    Jestem "niedzielnym" programista, a o tym czymś z klamerkami czytałem kiedyś może z
    raz u Grębosza... ;-)
    Rozkminienie tematu zajęłoby mi więcej czasu, niż rozwiązanie całego zadania - w
    zaoszczędzonym czasie wolę sobie popisać na usenecie. ;-)

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: