-
41. Data: 2010-02-11 09:28:48
Temat: Re: BCB Moj ulubiony kod;)
Od: Jacek Czerwinski <...@...z.pl>
Wojciech "Spook" Sura pisze:
> Użytkownik "Jacek Czerwinski" <...@...z.pl> napisał w wiadomości
> news:hkqr8b$6st$1@news.onet.pl...
>> 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.
>
> To jest jakiś koszmarny mit, który słyszę tu po raz n-ty. Piszę w Delphi
> od przeszło dziesięciu lat i od samego początku, od banałów
> rozwiązujących równania kwadratowe przez myśl mi nie przeszło, żeby
> trzymać przetwarzane właśnie dane w jakimkolwiek komponencie.
>
> Jeśli ktoś pisze kod w taki sposób, to nie tyle uczył się od kogoś
> piszącego w Pascalu, co od kogoś, kto również nie umie projektować
> programów.
Wybacz, są tez dobrzy VCL-owi programiści.
>> W sumie, dzięki że bronisz czegoś co nie do obronienia, bo pokazuje że
>> "subkultura BCB" nie przyśniła nam się ale istnieje.
>
> W Visual Studio nie da się popełnić takiego potworka, który trzyma
> przetwarzane dane w komórkach tabelki?
Da się, ale w MSVC++ orobi się tak, że paluchu mu powiedzą, ze nie warto.
Wada nie jest jest w narzędziach Borlanda jako takich (w ich wnętrzu sa
np. fajne propozycje projektowania, dziedziczenia itd, tak że
szacuneczek), jednak realnośc jest taka (wielka łatwość użycia
komponentów i pozornie brak potzreby jakiejś edukacji, projekotwania
itd), że ***średnio*** w tej społeczności panują zwyczaje jak panują.
Charakterystyczny jest ten wątek, bo człowiek nie tylko sie nie wstydzi
tego, co powinien sie wstydzic, ale dowodzi że tak ma być, co
***socjologicznie*** jest ciekawe, świadczy o ***typowych*** poglądach.
Technicznie to bzdura.
Podkreślam, są dobry delfistyczni programiści.
NB to towarzystwo jest perfekcyjne w wyciskaniu wszystkich możliwości z
kontrolek itd (z netu można czerpać tysiące fajnych przykładów, sam
ostatnio intensywnie pracowałem z TTreeView), ale nigdy nie widziałem na
necie nawet w połowie tak gorącej dyskusji "jak to dobrze
zaprojektować". Nie ma głodnych, nie ma co ich karmić. Jakoś tak to jest.
Ja od wielu lat wierzę we "wspólnote języka programowania" (Java,PHP,VCL
itd), użytkownicy i 'producenci', to się zazębia, narzędzie urabia
ludzi, nowe wersje wydaje się pod oczekiwania wspólnoty i tak w kółko.
Np fajne hierarchie komponentów są dla starych komponentów (z poziomem
TCustomXxxxxxx), nie wiem dlaczego potem fajny zamysł pieprznęli. Tzn
wiem, nikt tego nie potrzebował.
-
42. Data: 2010-02-11 09:32:15
Temat: Re: BCB Moj ulubiony kod;)
Od: Jacek Czerwinski <...@...z.pl>
WRonX pisze:
> Jacek Czerwinski pisze:
>
>> 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"
>
> OK, myslalem, ze mowimy o czyms istotnym z punktu widzenia wydajnosci,
> poprawnosci programowania w C pod Win32 etc. A Ty mowisz o wygodzie :)
Dokladnie. Wygoda i czytelność. Nic o co warto się zabijać.
na gruncie C pewnien rodzaj pętli jest naturalny i czyta się go
intuicyjnie. Może na gruncie Cobola by naturalny zapis wyglądał inaczej.
W algolu bym napisał
for i:= -3 to 17 step 1
oczywiście żart ;)
-
43. Data: 2010-02-11 10:07:38
Temat: Re: BCB Moj ulubiony kod;)
Od: Jędrzej Dudkiewicz <j...@g...com>
Bastion pisze:
> Użytkownik "Jędrzej Dudkiewicz" <j...@g...com> napisał w wiadomości
news:hkslcc$goi$1@news.onet.pl...
>> 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.
> Podaj konrety.
Konkrety? Czyli co? Chodzi mi o to, że używasz narzędzi pomyślanych do
jednego celu do osiągnięcia innego celu. I to używasz narzędzia gorszego
niż dostępne.
JD
-
44. Data: 2010-02-11 10:50:36
Temat: Re: BCB Moj ulubiony kod;)
Od: "Sarr." <s...@g...pl>
Bastion wrote:
> Podaj 1 albo 2 argumenty, dla ktorych nie powinno sie trzymac zmiennych
> w kontrolkach VCL:) Sam tego w praktycze nie stosuje ale jestem ciekawy co
powiesz;)
>
przede wszystkim rozdzielenie czesci logicznej od prezentacyjnej.
pomyslec nalezalo by tez na przyklad o ilosci pracy wymaganej pozniej do
zaadaptowania takiego programu do uzywania innego GUI. albo wrecz do
wykorzystania bez GUI. jesli dane sa trzymane w warstwie prezentacyjnej,
a algorytmy sa podpiete pod eventy w GUI, to zycze szczescia w probach
wykorzystania takiego programu bez owego GUI, chcac odpalic dajmy na to
jakis prosty skrypt przetwarzajacy dane.
BR,
Sarr.
-
45. Data: 2010-02-11 14:08:27
Temat: Re: BCB Moj ulubiony kod;)
Od: bartekltg <b...@g...com>
On 11 Lut, 09:05, Mariusz Marszałkowski <m...@g...com> wrote:
> On 8 Lut, 21:50, bartekltg <b...@g...com> wrote:
>
> > On 8 Lut, 11:05, Mariusz Marszałkowski <m...@g...com> wrote:
>
> > > To zobaczcie też mój ulubiony kod i odgadnijcie co on robi :)
> > Co to moze robic.. z odpowiednimi danymi moze nawet cos madrego,
> > ale bez sugestii co jest w danych trudno powiedziec.
>
> Ostatnio mam lenia, ale moze to dokoncze. Co to ma robic? Uwazam ze
> ten 5-liniowy algorytm moze rozwiazac zupelnie kazdy problem.
A ja uwazam, ze powyzsze to bzdura:)
Zostawmy nawet problemy typu: rekurencja
a= a/2 dla parzystych i 3a+1 dla nieparzystych.
Dla jakiego 'a' mamy okres.
wezmy przyzwoity problem: energia stanu podstawowego
uranu. Jak chcesz to rozwiazac przekladaniem zmiennych
nie wbudowujac wyniku w algorytm.
> Dane moga
> reprezentowac dowolne dane uczace, a pozostale tablice moga byc
> dobrane przez algorytm genetyczny.
czyli w bardzo kosztowny sposob znajdujemy rozwiazanie
i wbudowujemy w tabelka:)
> Najbardziej ciekawi mnie jak wyglada najszybszy algorytm, który
> dobierze
> optymalne tablice dla tamtego algorytmu i dla dowolnych danych
> uczacych :)
Dla wielu przypadkow, tabelki maja dlugosc 1 i zawieraja rozwiazanie.
pozdrawiam
bartekltg
-
46. Data: 2010-02-11 14:15:34
Temat: Re: BCB Moj ulubiony kod;)
Od: bartekltg <b...@g...com>
On 10 Lut, 23:36, "Bastion" <b...@m...pl> wrote:
> Użytkownik "Wojciech "Spook" Sura" <s...@s...op.pl> napisał w
wiadomościnews:hkv1ds$91t$1@news.onet.pl...
>
> > Jeśli ktoś pisze kod w taki sposób, to nie tyle uczył się od kogoś piszącego w
Pascalu, co od kogoś, kto również nie umie
> > projektować programów.
>
> Kolego, ja tak nie pisze tylko przedstawiam rozwiazanie pewnego problemu.
> Laskawie pochyl glowe i zastanow sie jak w 5 linijkach kodu
> lepiej mozna zwizualizowac rozwiazanie. Czekam na kod...
Wolasz o kod ktorys raz. Podalem go dawno temu, a dalej wolasz:
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);
}
}
Tez brzydkie, ale nie az tak.
pozdrawiam
bartekltg
-
47. Data: 2010-02-11 14:40:00
Temat: Re: BCB Moj ulubiony kod;)
Od: Jacek Czerwinski <...@...z.pl>
bartekltg pisze:
> On 10 Lut, 23:36, "Bastion" <b...@m...pl> wrote:
>> Użytkownik "Wojciech "Spook" Sura" <s...@s...op.pl> napisał w
wiadomościnews:hkv1ds$91t$1@news.onet.pl...
>>
>>> Jeśli ktoś pisze kod w taki sposób, to nie tyle uczył się od kogoś piszącego w
Pascalu, co od kogoś, kto również nie umie
>>> projektować programów.
>> Kolego, ja tak nie pisze tylko przedstawiam rozwiazanie pewnego problemu.
>> Laskawie pochyl glowe i zastanow sie jak w 5 linijkach kodu
>> lepiej mozna zwizualizowac rozwiazanie. Czekam na kod...
>
> Wolasz o kod ktorys raz. Podalem go dawno temu, a dalej wolasz:
Bez sensu.
Kolega chce 'lepszy' kod, natomiast ma zupełnie chora definicję słowa
'lepszy'. On jest najlepszy w tej kategorii, którą sam zdefiniował. W
sumie, może nie najlepszy, ale najbardziej uparty.
-
48. Data: 2010-02-11 15:22:24
Temat: Re: BCB Moj ulubiony kod;)
Od: Mariusz Marszałkowski <m...@g...com>
On 11 Lut, 15:08, bartekltg <b...@g...com> wrote:
> On 11 Lut, 09:05, Mariusz Marszałkowski <m...@g...com> wrote:
>
> > On 8 Lut, 21:50, bartekltg <b...@g...com> wrote:
>
> > > On 8 Lut, 11:05, Mariusz Marszałkowski <m...@g...com> wrote:
>
> > > > To zobaczcie też mój ulubiony kod i odgadnijcie co on robi :)
> > > Co to moze robic.. z odpowiednimi danymi moze nawet cos madrego,
> > > ale bez sugestii co jest w danych trudno powiedziec.
>
> > Ostatnio mam lenia, ale moze to dokoncze. Co to ma robic? Uwazam ze
> > ten 5-liniowy algorytm moze rozwiazac zupelnie kazdy problem.
>
> A ja uwazam, ze powyzsze to bzdura:)
>
> Zostawmy nawet problemy typu: rekurencja
> a= a/2 dla parzystych i 3a+1 dla nieparzystych.
> Dla jakiego 'a' mamy okres.
Dlaczego uwazasz ze to bzdura? Taki algorytm jest
tym samym co maszyna turinga. Stan to pozycja glowicy,
dane to tasma, pozostale tablice to funkjca przejsc.
> wezmy przyzwoity problem: energia stanu podstawowego
> uranu. Jak chcesz to rozwiazac przekladaniem zmiennych
> nie wbudowujac wyniku w algorytm.
Nie bylo mowy ze w tablice nie wolno wbic pomocniczych
rozwiazan, albo dowolnych innych pomocniczych danych.
Tablica response moze nakladac sie na tablice w ktorych
sa przekadane zmienne, wlasciwie to moze byc jedna
tablica z danymi na poczatku i miejscem na czesciowe
wyniki.
> > Dane moga
> > reprezentowac dowolne dane uczace, a pozostale tablice moga byc
> > dobrane przez algorytm genetyczny.
>
> czyli w bardzo kosztowny sposob znajdujemy rozwiazanie
> i wbudowujemy w tabelka:)
No wlasnie dlatego to mnie tak bardzo ciekawi, ze znane sa tylko takie
kosztowne sposoby. Interesuje mnie jaki jest najlepszy algorytm
budowania takich tablic (czyli tak naprawde algorytm budowania
innego algorytmu), o ograniczonych rozmiarach ktore dla dla
wszystkich danych uczacych wypluja wlasciwe rozwiazanie.
> > Najbardziej ciekawi mnie jak wyglada najszybszy algorytm, który
> > dobierze
> > optymalne tablice dla tamtego algorytmu i dla dowolnych danych
> > uczacych :)
>
> Dla wielu przypadkow, tabelki maja dlugosc 1 i zawieraja rozwiazanie.
Sa ciekawsze przypadki. Np. mamy gre kolko i krzyzyk. Algorytm
dostaje pary uczace w postaci opisu sytuacji w grze i najlepszego
ruchu. Czyli
tablica z danymi to bedzie:
int plansza[9+rozszerzenie]
tablica z odpowiedziami to bedzie numer pola z optymalnym ruchem
int response[9] = {1,2,3...9}
I algorytm genetyczny musialby dobrac parametry w pozostalych
tablicach
tak, aby w najmniejszej ilosci krokow zawsze podac optymalny ruch.
Pozdrawiam
-
49. Data: 2010-02-11 16:45:33
Temat: Re: BCB Moj ulubiony kod;)
Od: bartekltg <b...@g...com>
On 10 Lut, 23:51, "Bastion" <b...@m...pl> wrote:
> Uzytkownik "Wojciech "Spook" Sura" <s...@s...op.pl> napisal w
wiadomoscinews:hkv1q2$abp$1@news.onet.pl...
>
> > Z tego samego powodu, z którego ktos przechowywalby dane w kontrolkach MFC, gdyby
wpadl na taki durny pomysl. Z niewiedzy i braku
> > doswiadczenia programistycznego.
>
> Dlaczego?
> - czytelnosc kodu?
Blisko zerowa. Pierwszy napisalem, co to robi. Musialem specjalnie,
sie przyjrzec zeby zrozumiec dzialanie i naprawde myslalem, ze to
dowcip, ciekawe znalezisko w rodzaju dWTF.
> - optymalizacja kodu?
Tak. Na kazde mnozenie i dodanie masz konwersje
string->float i spowrotem. To gigantyczny narzut.
> - akademicki puryzm?
> - akademicki ostracyzm wobec rozwiazam funkcjonalnych i
> pieknych w swojej prostocie?
Zrobili Ci krzywde na tej uczelni?
Wbrew pozorom czasem jajoglowe maja racje.
Tez 'umailem programowac' przed przejsciem sie na pare
zajec na uczelni (nie twierdze, ze teraz umiem;)
Naprawde sadzisz, ze zarzut 'to jest brzydkie bo ciagle
zamieniasz string<->float' jest akademickim marudzeniem?
> Podaj 1 albo 2 argumenty, dla ktorych nie powinno sie trzymac zmiennych
> w kontrolkach VCL:) Sam tego w praktycze nie stosuje ale jestem ciekawy co
powiesz;)
1.Niepotrzebny narzut.
2.Kontrola nad danymi, ich wieksze bezpieczesntwo -
nie zmienisz danych w trakcie obliczen, ogolnie, nie zmienisz
ich poza przewidzianymi przez programiste momentami
(wcisniecie guzika 'uaktualnij dane na podstawie tabelki').
3.Przetrzymywanie w takiej tabelce duzych danych (100MB
albo wiekszych) bedzie niewygodne.
pozdr
bartekltg
-
50. Data: 2010-02-11 17:02:57
Temat: Re: BCB Moj ulubiony kod;)
Od: bartekltg <b...@g...com>
On 11 Lut, 16:22, Mariusz Marszałkowski <m...@g...com> wrote:
> Dlaczego uwazasz ze to bzdura? Taki algorytm jest
> tym samym co maszyna turinga. Stan to pozycja glowicy,
> dane to tasma, pozostale tablice to funkjca przejsc.
Nie widze wlasciwie zadnej mozliwosci praktycznego
zastosowania takiego algorytmu.
Jesli chesz uzywac tego jako narzedzia teoretycznego,
jak maszyna turinga, to inna sprawa, ale tez bys
musial pokazac jakies ciekawe wlasciwosci
(bo jest oczko bardziej skomplikowana niz MT)
> Nie bylo mowy ze w tablice nie wolno wbic pomocniczych
> rozwiazan, albo dowolnych innych pomocniczych danych.
To w koncu moge tym algorytmem cokolwiek policzyc, czy
musze znac wynik i wstawic go do tabelki:)
Bo na razei to wyglada jak jakies wyszukiwanie
w przestrzeni rozwiazan. Mamy stan, mamy jakies funkcje
od stanu, jesli nam nie pasuja (u Ciebie sa za male lub za duze)
odpowiednio modyfikujemy stan. Na koncu wypisujemy
odpowiedz (stan lub jakas funkcje stanu).
Tylko po co w to angazowac tabelki:)
> No wlasnie dlatego to mnie tak bardzo ciekawi, ze znane sa tylko takie
> kosztowne sposoby. Interesuje mnie jaki jest najlepszy algorytm
> budowania takich tablic (czyli tak naprawde algorytm budowania
> innego algorytmu), o ograniczonych rozmiarach ktore dla dla
> wszystkich danych uczacych wypluja wlasciwe rozwiazanie.
Jesli dobrze wylapuje idee, chcesz znalesc tak tabelkowy algorytm
dla danego problemu i pozniej te probmely w ten sposob rozwiazywac.
W ogolnosci bedziesz mial z tym problem.
Pomysl, jak 'tabelkowo' znalesc najkrotsza droge w grafie (+z wagami).
Czasem sie da. Znajdz tym algorytmem chocby wysokosc drzewa
(to sie da dosc bezposrtednio, tylko po co).
> Sa ciekawsze przypadki. Np. mamy gre kolko i krzyzyk. Algorytm
> dostaje pary uczace w postaci opisu sytuacji w grze i najlepszego
> ruchu. Czyli
> tablica z danymi to bedzie:
> int plansza[9+rozszerzenie]
> tablica z odpowiedziami to bedzie numer pola z optymalnym ruchem
> int response[9] = {1,2,3...9}
> I algorytm genetyczny musialby dobrac parametry w pozostalych
> tablicach
> tak, aby w najmniejszej ilosci krokow zawsze podac optymalny ruch.
Stabelaryzowales gre. Super, ale to juz bylo. A tabelke lepiej
wypelnic zwyklym przeszukiwaniem drzewa gry.
Algorytmy genetyczne, sieci neuronowe i inne wynalazki
nie sa uniwersalna metoda rozwiazywanie wszytkiego.
Raczej ostatnia deska ratunku dla pewnej klasy zadan,
zeby znalesc rozwiazanie nieco lepsze niz losowe.
Ale jakis czas kazdy sie nimi zachwyca:-)
pozdrawiam
bartekltg