eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingBCB Moj ulubiony kod;)
Ilość wypowiedzi w tym wątku: 126

  • 11. Data: 2010-02-08 22:23:19
    Temat: Re: BCB Moj ulubiony kod;)
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2010-02-08, Bastion <b...@m...pl> wrote:
    [...]
    >>>> Ciekawe czy ktos zgadnie co oblicza ta prosta procedura:
    >>>
    >>> _Koszmarny_ sposob na
    >>
    >> ....
    >>>
    >>> U kogo to znalazles?
    >>
    >> Cos jest w srodowiskach VCL (tzn BCB & D) ze ludzie zmiennych nie powoluja tylko
    trzymaja niby-zmienne na kontrolkach GUI,
    >> spotykam to.
    >> Skad taki zwyczaj moze pochodzic?
    >
    > Po co trzymac wartosc zmiennych w 2 miejscach? Masz za duzo pamieci RAM?

    Masz za mało pamięci RAM? To po co korzystasz z BCB/VCL?
    Niekonsekwentnie trochę. Jeśli używasz takiej krowy, to dwa kilobajty
    dodatkowych zmiennych nijak nie wpłyną na pamięciożerność.

    > Pierwszy raz zapamietujesz wyliczona wartosc w zmiennych lokalnych a
    > nastepnie w propertisach kontrolek VCL?
    > Tak to sobie wyobrazasz?

    Wynik pośredni zapamiętujesz w zmiennej tymczasowej, a potem rezultat
    w docelowej. A pola w kontrolce w ogóle nie są właściwym miejscem do
    *trzymania* danych, tylko do ich *prezentowania*.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 12. Data: 2010-02-08 22:48:47
    Temat: Re: BCB Moj ulubiony kod;)
    Od: bartekltg <b...@g...com>

    On 8 Lut, 22:58, "Bastion" <b...@m...pl> wrote:

    > 1)  To nie jest sposob na wyliczenie stanu konta ale jestes blisko.
    > 2) Czy kod jest lady? Raczej, formalnie, maksymalnie uproszczony.

    Daleko mu do maksymalnego uproszczenia. Ciagle odczytywanie
    i zapisywanie do kontrolki nie pomaga w wydajnosci (tu nieistotnej).

    StrToFloat(StringGrid1->Cells[1][i-1]) +StrToFloat(StringGrid1-
    >Cells[1][i-1])*0.1
    to to samo co StrToFloat(StringGrid1->Cells[1][i-1])*1.1

    Calosc wygladala by sensowniej tak:

    void __fastcall TForm1::BitBtn1Click(TObject *Sender)
    {
    float bla=4000;

    StringGrid1->Cells[1][0]=FloatToStr(bla);

    for(int i=1; i<21;i++)
    {
    StringGrid1->Cells[0][i]=FloatToStr(2010+i);
    bla*=1.1;
    StringGrid1->Cells[1][i]=FloatToStr (bla);
    }
    }


    > 3) Nie nie interesuje mnie "kwota w roku 2020," tylko w roku 2030

    racja

    > 4) " czyli 4000*1.1^20, niecale 27kzl.".  Nie procedura daje inny wynik

    Inna kwota? Czy moze chodzi o to, ze wypelnia tabelke?

    pzdr
    bartekltg



  • 13. Data: 2010-02-08 22:55:59
    Temat: Re: BCB Moj ulubiony kod;)
    Od: "Bastion" <b...@m...pl>


    Uzytkownik "bartekltg" <b...@g...com> napisal w wiadomosci
    news:7420f959-da09-4691-ad5b-0f1e53f875c8@c4g2000yqa
    .googlegroups.com...
    On 8 Lut, 22:58, "Bastion" <b...@m...pl> wrote:

    > 1) To nie jest sposob na wyliczenie stanu konta ale jestes blisko.
    > 2) Czy kod jest lady? Raczej, formalnie, maksymalnie uproszczony.

    Daleko mu do maksymalnego uproszczenia. Ciagle odczytywanie
    i zapisywanie do kontrolki nie pomaga w wydajnosci (tu nieistotnej).

    StrToFloat(StringGrid1->Cells[1][i-1]) +StrToFloat(StringGrid1-
    >Cells[1][i-1])*0.1
    to to samo co StrToFloat(StringGrid1->Cells[1][i-1])*1.1

    Calosc wygladala by sensowniej tak:

    void __fastcall TForm1::BitBtn1Click(TObject *Sender)
    {
    float bla=4000;

    StringGrid1->Cells[1][0]=FloatToStr(bla);

    for(int i=1; i<21;i++)
    {
    StringGrid1->Cells[0][i]=FloatToStr(2010+i);
    bla*=1.1;
    StringGrid1->Cells[1][i]=FloatToStr (bla);
    }
    }


    Chyba masz



  • 14. Data: 2010-02-09 05:19:05
    Temat: Re: BCB Moj ulubiony kod;)
    Od: Jacek Czerwinski <...@...z.pl>

    Bastion pisze:
    > Użytkownik "Mikolaj Rydzewski" <m...@c...pl> napisał w wiadomości
    news:hkoq0a$gni$1@news2.ipartners.pl...
    >> Jacek Czerwinski wrote:
    >>> Cos jest w srodowiskach VCL (tzn BCB & D) ze ludzie zmiennych nie powoluja tylko
    trzymaja niby-zmienne na kontrolkach GUI,
    >>> spotykam to.
    >>> Skad taki zwyczaj moze pochodzic?
    >> IMO to nie zwyczaj, tylko efekt prostoty środowiska. Klikać programy zaczynają
    osoby bez należytego doświadczenia, bez dobrych
    >> praktyk.
    >
    > Troche mnie rozsmieszasz. Podaj prawidlowe i (Twoim zdaniem ladniejsze)
    > rozwiazanie w/w problemu w BCB.

    a) nazwane (a nie anonimowe) zmienne o nazwach i typach odpowiednich dla
    problemu. Tego uczą na początku - o ile ktoś się systematycznie edukował
    a nie nie kopiował z wizardów.

    b)
    > for(int i=1; i<21;i++)
    wg mnie najgorszy sposób napisania że chodzi o 20x. Dla mnie ten autor
    nigdy nie wykształcił się w C, kopiował z Pascala. Fragment typowy dla
    kodu z BCB.

    > FloatToStr
    Po trzecie jak już bronisz BCB to do pieniążków ma Currency (tu jest
    symulacja, więc 'chyba' nie dokładne obliczenie, ale wspominam)

    > StrToFloat(FloatToStr).
    Pobaw się formatami międzynarodowymi, to może byc 'ciekawe'. Ostatnie
    cyfry znaczące też ciekawe. BCB "lepiej" zaokrągla od reszty branży.
    O kosztach wydajnościowych konwersji tu koledzy pisali.

    O separacji algorytmu, GUI i danych, MVC itd to "rasowego" użytkownika
    myszki w BCB nie tylko nie da sie przekonać, ale wręcz nie zrozumie o
    czym mowa.

    W sumie, dzięki że bronisz czegoś co nie do obronienia, bo pokazuje że
    "subkultura BCB" nie przyśniła nam się ale istnieje.


  • 15. Data: 2010-02-09 06:24:41
    Temat: Re: BCB Moj ulubiony kod;)
    Od: Wojciech Muła <w...@p...null.onet.pl.invalid>

    "Bastion" <b...@m...pl> wrote:

    > Po co trzymac wartosc zmiennych w 2 miejscach? Masz za duzo pamieci RAM?
    > Pierwszy raz zapamietujesz wyliczona wartosc w zmiennych lokalnych a
    > nastepnie w propertisach kontrolek VCL?
    > Tak to sobie wyobrazasz?

    Zasadniczo elementy GUI nie służą do zapamiętywania wartości programu. Można by
    przymknąć oko, gdyby to były jakieś jednorazowe rzeczy - np. użytkownik wpisuje
    ścieżkę do pliku w jakieś kontrolce i ma kliknąć ok lub anuluj, wtedy rzeczywiście
    mały jest sens wprowadzania nowej zmiennej dla pojedynczej wartości. Jednak przykład
    który pokazałeś to jest okropna pornografia. Konwertowanie 100 razy łańcucha znaków
    na liczbę i odwrotnie powinno być wykrywane przez kompilator, z konsekwencją
    automatycznego skasowanie pliku źródłowego. :)

    w.

    --
    - Czym różni się wielbłąd jednogarbny od dwugarbnego?
    - To co wielbłąd dwugarbny ma w drugim garbie, jednogarbny ma w dupie.


  • 16. Data: 2010-02-09 08:45:21
    Temat: Re: BCB Moj ulubiony kod;)
    Od: WRonX <w...@-...wronx.net>

    Jacek Czerwinski pisze:

    > b)
    >> for(int i=1; i<21;i++)
    > wg mnie najgorszy sposób napisania że chodzi o 20x. Dla mnie ten autor
    > nigdy nie wykształcił się w C, kopiował z Pascala. Fragment typowy dla
    > kodu z BCB.

    Mozesz to wytlumaczyc PHPwcowi? :) Pytam z czystej ciekawosci.


    Pozdrawiam.
    --
    [= WRonX =] [= W...@-...NET =] [= http://WRonX.NET =]
    [= GCS/CC d->++ s+:- a- C++++$ U P>++ L+ !E W+++$ N++(+++) =]
    [= !o-- K-? w++$ !O !M- !V-- PS+ PE !Y !PGP !t !5 X++ R++ =]
    [= tv+ b+++ DI++ D+ G+ e+++ h--->---- r+++ y? =]


  • 17. Data: 2010-02-09 10:11:46
    Temat: Re: BCB Moj ulubiony kod;)
    Od: Jacek Czerwinski <...@...z.pl>

    WRonX pisze:
    > Jacek Czerwinski pisze:
    >
    >> b)
    >>> for(int i=1; i<21;i++)
    >> wg mnie najgorszy sposób napisania że chodzi o 20x. Dla mnie ten autor
    >> nigdy nie wykształcił się w C, kopiował z Pascala. Fragment typowy dla
    >> kodu z BCB.
    >
    > Mozesz to wytlumaczyc PHPwcowi? :) Pytam z czystej ciekawosci.

    obudź się o 3 w nocy i powiedz ile razy pętla się wykona

    dla mnie tę oczywistość ma (o ile musi od jedynki):
    for(int i=1; i<=20;i++)

    gdyby nie musiało od jedynki
    for(int i=0; i<20;i++)

    z cyklu "mała rzecz a cieszy"


  • 18. Data: 2010-02-09 21:35:55
    Temat: Re: BCB Moj ulubiony kod;)
    Od: "Bastion" <b...@m...pl>


    Użytkownik "Jacek Czerwinski" <...@...z.pl> napisał w wiadomości
    news:hkqr8b$6st$1@news.onet.pl...
    >> for(int i=1; i<21;i++)
    > wg mnie najgorszy sposób napisania że chodzi o 20x. Dla mnie ten autor nigdy nie
    wykształcił się w C, kopiował z Pascala. Fragment
    > typowy dla kodu z BCB.
    Jacku slyszalesz o pseudokodzie?
    Traktuj ta petle jak przekaz formalny a nie merytoryczny

    >> FloatToStr
    > Po trzecie jak już bronisz BCB to do pieniążków ma Currency (tu jest symulacja,
    więc 'chyba' nie dokładne obliczenie, ale
    > wspominam)

    Patrz uwagi na temat pseudo kodu

    > > StrToFloat(FloatToStr).
    > Pobaw się formatami międzynarodowymi, to może byc 'ciekawe'. Ostatnie cyfry
    znaczące też ciekawe. BCB "lepiej" zaokrągla od reszty
    > branży.
    > O kosztach wydajnościowych konwersji tu koledzy pisali.
    >
    Patrz uwagi na temat pseudo kodu

    > O separacji algorytmu, GUI i danych, MVC itd to "rasowego" użytkownika myszki w BCB
    nie tylko nie da sie przekonać, ale wręcz nie
    > zrozumie o czym mowa.
    Tu sie zgadzam, czyli czekam ma Twoja propozycje procedury/funkcji

    > W sumie, dzięki że bronisz czegoś co nie do obronienia, bo pokazuje że "subkultura
    BCB" nie przyśniła nam się ale istnieje.

    BCB i Delphi powstal jako opozycja do MS VB i jako taki spelnil swoje zadanie.
    Napisz ta funkcje/procedure lepiej to podyskutujemy.





  • 19. Data: 2010-02-09 21:41:55
    Temat: Re: BCB Moj ulubiony kod;)
    Od: "Bastion" <b...@m...pl>


    Użytkownik "Jacek Czerwinski" <...@...z.pl> napisał w wiadomości
    news:hkrcd4$tsn$1@news.onet.pl...
    > WRonX pisze:
    >> Jacek Czerwinski pisze:
    >>
    >>> b)
    >>>> for(int i=1; i<21;i++)
    >>> wg mnie najgorszy sposób napisania że chodzi o 20x. Dla mnie ten autor nigdy nie
    wykształcił się w C, kopiował z Pascala.
    >>> Fragment typowy dla kodu z BCB.
    >>
    >> Mozesz to wytlumaczyc PHPwcowi? :) Pytam z czystej ciekawosci.
    >
    > obudź się o 3 w nocy i powiedz ile razy pętla się wykona
    > dla mnie tę oczywistość ma (o ile musi od jedynki):
    > for(int i=1; i<=20;i++)

    Obudz sie dzialam na tablicy (dokladnie to na 2 wymiarowej tablicy dynamicznej)
    Dodatkowo tablica jest komponentem w postaci Grida gdzie indeks 1 ma inne znaczenie
    niz indeks 0
    > gdyby nie musiało od jedynki
    > for(int i=0; i<20;i++)
    >
    > z cyklu "mała rzecz a cieszy"

    Nie bardzo rozumiem ale odnosz wrazenie, ze mocno bladzisz....



  • 20. Data: 2010-02-09 21:51:19
    Temat: Re: BCB Moj ulubiony kod;)
    Od: Jędrzej Dudkiewicz <j...@g...com>

    Bastion pisze:
    > Ciekawe czy ktos zgadnie co oblicza ta prosta procedura:
    > void __fastcall TForm1::BitBtn1Click(TObject *Sender)
    > {
    > StringGrid1->Cells[1][0]=FloatToStr(4000);
    > for(int i=1; i<21;i++)
    > {
    > StringGrid1->Cells[0][i]=FloatToStr(2010+i);
    > StringGrid1->Cells[1][i]=FloatToStr
    > (
    > StrToFloat(StringGrid1->Cells[1][i-1])
    > +StrToFloat(StringGrid1->Cells[1][i-1])*0.1
    > );
    > }
    > }

    Ze 3, 4 lata temu napisałem parsowanie struktur SMBIOSowych przy
    kombinacją: dd if=/dev/mem ... | od ... | awk ...
    Ale napisałem to tylko dlatego, że nie było innej możliwości. Pisanie
    takich rzeczy jak wyżej to jak używanie do wszystkiego słowników string
    -> string.

    JD

strony : 1 . [ 2 ] . 3 ... 10 ... 13


Szukaj w grupach

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: