Strona Główna


UżytkownicyUżytkownicy  Regulamin  ProfilProfil
SzukajSzukaj  FAQFAQ  GrupyGrupy  AlbumAlbum  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj
Winieta

Poprzedni temat «» Następny temat
Gwożdziem w programistów
Autor Wiadomość
gorat 
Modegorator


Posty: 13855
Skąd: FF
Wysłany: 4 Marca 2007, 21:36   Gwożdziem w programistów

Czytam właśnie skrypt z tematyki mocno informatycznej - chciałem poznać bliżej metodę Householdera. Znalazłem realizację algorytmu - OK, będzie łatwiej zrozumieć. Po przejrzeniu coś zaczęło mi nie pasować:
Kod

for k:=1 to n do
begin
{ obliczanie kolejnego odbicia Householdera }
norm2:=0.0;
for l:=k to m do
begin
aa:=a[l,k];
norm2:=norm2 + aa*aa
end;
norm:=sqrt(norm2);
aa:=a[k,k];
if (aa>=0.0) then
begin
uu:=aa + norm;
akk:=-norm
end else
begin
uu:=aa - norm;
akk:=norm
end;
gamma:=norm2 + abs(aa)*norm;
u[k]:=uu;
gam[k]:=gamma;
{ modyfikacja kolumn macierzy }
a[k,k]:=akk;
for j:=k+1 to n do
begin
s:=uu*a[k,j];
for l:=k+1 to m do
s:=s + a[l,k]*a[l,j];
s:=s/gamma;
a[k,j]:=a[k,j] - s*uu;
for l:=k+1 to m do
a[l,j]:=a[l,j] - s*a[l,j];
end;
end;


Hm. Chyba jest tego trochę za dużo.

Kod

for k:=1 to n do
begin
{ obliczanie kolejnego odbicia Householdera }
norm2:=0.0;
for l:=k to m do
norm2:=norm2 + a[l,k]*a[l,k];
norm:=sqrt(norm2);
gam[k]:=norm2 + abs(a[k,k])*norm;
if (a[k,k]>=0.0) then
begin
u[k]:=a[k,k] + norm;
a[k,k]:=-norm
end
else
begin
u[k]:=a[k,k] - norm;
a[k,k]:=norm
end;
{ modyfikacja kolumn macierzy }
for j:=k+1 to n do
begin
s:=u[k]*a[k,j];
for l:=k+1 to m do
s:=s + a[l,k]*a[l,j];
s:=s/gam[k];
a[k,j]:=a[k,j] - s*u[k];
for l:=k+1 to m do
a[l,j]:=a[l,j] - s*a[l,j];
end;
end;


Jest różnica czy nie? :|



(BTW: może przyda się temat okołoprogramistyczny?)
_________________
Początkujący Wiatr wieje: Co mogę dla kogoś zrobić?
Zostań drzewem wiśni.
---
鼓動の秘密

U mnie działa.
 
 
Pako 
Adam Zamoyski


Posty: 10680
Skąd: Gliwice
Wysłany: 5 Marca 2007, 13:40   

Temat możę się i przyda, w perspektywie mam pisanie skomplikowanego programu zaliczeniowego ;)

A co do algorytmu - cholera, strasznie głupio się analizuje coś, nie do końca wiedząc, co ma robić ;)
 
 
Ixolite 
Admirał Zwiebellus


Posty: 6116
Skąd: oni wiedzieli?
Wysłany: 5 Marca 2007, 13:44   

Inżynieria Oprogramowania, a przez ostatnie dwa lata właściwie tylko php się dotykałem :roll:
_________________
Alchemia Słowa
Well, my days of not taking you seriously are certainly coming to a middle.
 
 
 
Pako 
Adam Zamoyski


Posty: 10680
Skąd: Gliwice
Wysłany: 5 Marca 2007, 13:46   

Ja z kolei php, pascal i teraz c... ale czytanie algorytmów jest śmieszne, nie wyznaję się w tym ;)
Najlepsza metoda - sprawdzić, czy dają takie same wyniki, dajmy na to na 100 próbek danych porównywać wyniki. Będą takie same, to mozna zalożyć, że jest ok. :)
 
 
gorbash 
Ufol


Posty: 4630
Skąd: Kraków
Wysłany: 5 Marca 2007, 13:47   

Ixolite, ciesz sie ze wogole kod piszesz ;-)
Bo po Inzynierii to Cie moze tylko design softu i testow czekac :D
_________________
You say coke I say caine.
 
 
 
Rafał 
.

Posty: 14552
Skąd: Że: Znowu:
Wysłany: 5 Marca 2007, 13:49   

To w Basicu już się nie pisze? :wink:
A czy coś pozostało z TP4S? Robiłem nawet w tym program na obliczanie naprężeń w płytach i tarczach na podstawie metody warunków brzegowych, ale jakieś sto lat temu to było.
 
 
Pako 
Adam Zamoyski


Posty: 10680
Skąd: Gliwice
Wysłany: 5 Marca 2007, 14:06   

TP4S? A nie TPS4? Tony Hawks Pro Skater? :P
TP to mi się tylko z Turbo Pascalem kojarzy, ale S na końcu nie pasuje mi nijak ;)
Na dzień dzisiejszy programuje się głównie w:
- c++ - praktycznie wszystko, każda gra, każdy program, ogromne możliwości itp. itd.
- Object Pascal - nadaje się głównie do programów użytkowych, nie gier i te pe, chyba raczej odchodzi do lamusa powoli
- C# - do programowania na platformie .Net, M$owy odpowiednik platformy Java
- Java - do platform, stron internetowych, komórek i tym podobnych, dobre, bo cholernie przenośne
- php - skrypty na strony internetowe

I chyba tyle... asemblerem bawią się jednostki, inne języi też raczej odchodzą... No, jeszcze C jest, ale też chyba zanika, na rzecz młodszego brata.
BASIC dawno zdechł :P BO głupi był ;)
 
 
hjeniu 
Wilq


Posty: 3913
Skąd: Zachodniopomorskie
Wysłany: 5 Marca 2007, 14:28   

Pako jest jeszcze Delphi, Python, ADA tak z pamięci mimo, że się programowania wystrzegam jak diabeł święconej wody :mrgreen:
_________________
Idioci są świetni. Nic dziwnego, że każda wioska chce mieć swojego by Dr. House
 
 
 
hrabek 
Kapo di tutti frutti


Posty: 12475
Skąd: Szczecin
Wysłany: 5 Marca 2007, 14:31   

Ja tez zawsze uciekalem przed programowaniem. Jak szedlem do pierwszej pracy (tej co mam obecnie, juz niedlugo), moj przyszly szef zrobil mi test. Test byl podzielony na dzialy, m. in. programowanie. Tylko ze programowanie to bylo w stylu: co robi petla for albo w jakim jezyku jest to napisane. W efekcie tylko z programowania mialem komplet punktow ;)
_________________
5 zdań na temat
 
 
Ixolite 
Admirał Zwiebellus


Posty: 6116
Skąd: oni wiedzieli?
Wysłany: 5 Marca 2007, 14:35   

gorbash napisał/a
Ixolite, ciesz sie ze wogole kod piszesz ;-)
Bo po Inzynierii to Cie moze tylko design softu i testow czekac :D


To akurat ciekawe jest, przynajmniej projektowanie systemów, uml, te sprawy.

Tyle, że ja w grafikę idę, po inżynierii oprogramowania będę miał pracę dyplomową z grafiki komputerowej :D
_________________
Alchemia Słowa
Well, my days of not taking you seriously are certainly coming to a middle.
 
 
 
Pako 
Adam Zamoyski


Posty: 10680
Skąd: Gliwice
Wysłany: 5 Marca 2007, 14:36   

Delphi to Object Pascal właśnie ;)
Python chyba tylko do skryptów jest używany, a i to nie w szerszym kontekście, jak mi się zdaje.
ADA - faktycznie, coś takiego było, coś się obiło o uszy ;)
Są jeszcze inne języki - ale te co wymieniłem, są najpopularniejsze dla ludu. Czy fachowi programiści nie korzystają jeszcze z jakichś cudeniek to nie wiem.

A programowanie fajne jest, ma się poczucie tworzenia czegoś, kreacji programu, który czasem może się przydać ;) Czy php - na któym można zarobić ;)
 
 
Ixolite 
Admirał Zwiebellus


Posty: 6116
Skąd: oni wiedzieli?
Wysłany: 5 Marca 2007, 14:40   

asp.net jest na przyklad :roll:
_________________
Alchemia Słowa
Well, my days of not taking you seriously are certainly coming to a middle.
 
 
 
hjeniu 
Wilq


Posty: 3913
Skąd: Zachodniopomorskie
Wysłany: 5 Marca 2007, 15:20   

Python jest dość popularny pod Linuksem, zdaje się :wink: Samo tworzenie algorytmów jest właściwie fajne (taka łamigłówka) ale jak mam coś napisać i uruchomić to ... Ixolite, standard ja miałem specjalizację (boże drogi jak to się nazywało :mrgreen: ) coś ze wspomaganiem zarządzania w każdym razie :wink: a pracę pisałem o metodach kompresji dźwięku :lol:
_________________
Idioci są świetni. Nic dziwnego, że każda wioska chce mieć swojego by Dr. House
 
 
 
Pako 
Adam Zamoyski


Posty: 10680
Skąd: Gliwice
Wysłany: 5 Marca 2007, 15:30   

Eh... napiasnie czegoś, co działa i jest przydatne do tego, to fajna sprawa :) Wlaśnie wymyślanie algorytmów, jak coś zrobić to kaszana ;)
 
 
ra66it 
Alien


Posty: 350
Skąd: src_ip
Wysłany: 5 Marca 2007, 20:39   

Co chcesz od kaszany. Smaczna jest.

Czasem dobry pomysł przychodzi, gdy patrzy się na coś w inny sposób, nie siedząc przez cały czas w temacie. Kilka razy podrzucałem w ten sposób rozwiązania swojemu teściowi, który musiał oprogramować jakieś urządzenie lub przeanalizować dane.

Też pisałem pracę z grafiki ale kilka ładnych wiosen temu.

Nie zawsze pisze się najkrótszy tekst kodu specjalnie, by łatwiej było odczytać co on robi (kompilator i tak to zoptymalizuje, np. usunie nic nie znaczące fragmenty). To bardzo się przydaje, gdy musisz coś poprawić w programie po jakimś roku od jego napisania.
 
 
Ixolite 
Admirał Zwiebellus


Posty: 6116
Skąd: oni wiedzieli?
Wysłany: 5 Marca 2007, 20:46   

ra66it napisał/a
Nie zawsze pisze się najkrótszy tekst kodu specjalnie, by łatwiej było odczytać co on robi (kompilator i tak to zoptymalizuje, np. usunie nic nie znaczące fragmenty). To bardzo się przydaje, gdy musisz coś poprawić w programie po jakimś roku od jego napisania.


No nie wiem, od tego jest dokumentacja i komentarze :roll:

Ale ja generalnie jestem perfekcjonistą i zawsze staram się osiągnąć cel możliwie najefektywniej, czyli skracając tam gdzie się tylko da.
_________________
Alchemia Słowa
Well, my days of not taking you seriously are certainly coming to a middle.
 
 
 
gorbash 
Ufol


Posty: 4630
Skąd: Kraków
Wysłany: 5 Marca 2007, 20:51   

Z doswiadczenia moge powiedziec ze im kod czytelniejszy tym lepiej.
Nie oszczedzisz procka na kilku linijkach, a dzieki jasnemu stylowi ktos kiedys (niekoniecznie Ty) kto bedzie musial cos z tym zrobic, nie bedzie szukal rozpaczliwie Twojego adresu i najblizszego handlarza z bronia:)

EDIT: no chyba ze jestes pewien ze tylko Ty bedziesz z niego korzystal ;-) Wtedy mozna szalec :)
_________________
You say coke I say caine.
 
 
 
Ixolite 
Admirał Zwiebellus


Posty: 6116
Skąd: oni wiedzieli?
Wysłany: 5 Marca 2007, 21:09   

Hmm, chyba trochę nieprecyzyjnie się wyraziłem - staram się żeby kod był czytelny przez usuwanie zbędnych elementów, niepotrzebnie się powtarzających, zastępuję pewne rozwiązania innymi, wymagającymi mniej kodu itp., a potencjalne niejasności to domena komentarzy i dokumentacji.
_________________
Alchemia Słowa
Well, my days of not taking you seriously are certainly coming to a middle.
 
 
 
gorbash 
Ufol


Posty: 4630
Skąd: Kraków
Wysłany: 5 Marca 2007, 22:38   

W takim razie, calkowicie sie zgadzam ;-)
_________________
You say coke I say caine.
 
 
 
hrabek 
Kapo di tutti frutti


Posty: 12475
Skąd: Szczecin
Wysłany: 6 Marca 2007, 10:37   

Trzeba jeszcze wziac pod uwage, ze nie zawsze im mniej kodu, tym szybciej. W zwiazku z tym wycinanie na potege moze przyniesc skutek odwrotny do zamierzonego. Co prawda w programie liczacym miejsca po przecinku dla liczby Pi nie ma to kompletnie zadnego znaczenia, ale, jak to mowia: "czego sie Jas nie nauczy...", tudziez: "czym skorupka za mlodu nasiaknie...".
_________________
5 zdań na temat
 
 
Pako 
Adam Zamoyski


Posty: 10680
Skąd: Gliwice
Wysłany: 6 Marca 2007, 18:02   

Heh... jak się kumpel męczył na ligę zadaniową, poprawiał, przemieniał, udziwniał... aż w końcu osiągnął czas najkrótszy z możliwych (znaczy najlepszy na liście, pierwsze miejsce ;)

A kaszana może i smaczna, ale robić to nie... od tego mam ojca ;) Niestety, algorytmów za mnie nie opracuje ;)
 
 
ra66it 
Alien


Posty: 350
Skąd: src_ip
Wysłany: 6 Marca 2007, 20:42   

Teoretycznie macie z tymi komentarzami i dokumentacją rację. W praktyce miałem kilka razy do czynienia z poprawianiem lub uzupełnianiem czegoś co napisali inni. Niestety komentarze może i były zrozumiałe - tyle, że wyłącznie dla autora, a dokumentacja nijak miała się do rzeczywistości.

Zgadzam się z countem. Najlepszym przykładem jest tzw. rekursja. W praktycznych rozwiązaniach, przy dużej liczbie danych znacznie szybciej działa kilkadziesiąt razy większy kod wykorzystujący zwykłe iteracje (przy okazji nie potrzebuje tyle pamięci).
 
 
Ixolite 
Admirał Zwiebellus


Posty: 6116
Skąd: oni wiedzieli?
Wysłany: 6 Marca 2007, 21:12   

Tak na prawdę to wszystko zależy od sytuacji, a i tak prędzej czy później robi się burdel :lol:

Kiedyś próbowałem się bawić Brainfuck'iem, ale z braku czasu musiałem odpuścić, choć to interesujące wyzwanie :roll:
_________________
Alchemia Słowa
Well, my days of not taking you seriously are certainly coming to a middle.
 
 
 
Szara opończa 
Alien


Posty: 368
Skąd: Skątownia
Wysłany: 31 Lipca 2007, 10:58   

DO SPECJALISTOW OD VISTY!!!!!

Blagam o pomoc bo juz mi wszystkie rece opadly i sily juz nie mam... na priw prosze jak ktos chce sie podjac:)
_________________
In the name of God, impure souls of the living dead shall be banished into eternal damnation. Amen
 
 
GAndrel 
Admirał Ackbar

Posty: 2486
Skąd: Wrocław
Wysłany: 31 Lipca 2007, 11:00   

Zainstaluj Ubuntu. ;>
_________________
GAndrel
 
 
Ixolite 
Admirał Zwiebellus


Posty: 6116
Skąd: oni wiedzieli?
Wysłany: 31 Lipca 2007, 11:43   

Popieram przedpiścę ;)
_________________
Alchemia Słowa
Well, my days of not taking you seriously are certainly coming to a middle.
 
 
 
hjeniu 
Wilq


Posty: 3913
Skąd: Zachodniopomorskie
Wysłany: 31 Lipca 2007, 11:46   

Ja także :mrgreen:
_________________
Idioci są świetni. Nic dziwnego, że każda wioska chce mieć swojego by Dr. House
 
 
 
gorat 
Modegorator


Posty: 13855
Skąd: FF
Wysłany: 7 Sierpnia 2007, 14:13   jscalendar

Ostatnio walczyłem z jscalendarem - wywalał "Stack overflow at line 1797" i się czasem zapętlał z błędem. Tym większe brawa dla duffBeera i tym bardziej dziwi to, że przez dwa lata (!) poprawka nie została wprowadzona do pełnego kodu.

http://www.dynarch.com/forums/637 :bravo
_________________
Początkujący Wiatr wieje: Co mogę dla kogoś zrobić?
Zostań drzewem wiśni.
---
鼓動の秘密

U mnie działa.
 
 
Ixolite 
Admirał Zwiebellus


Posty: 6116
Skąd: oni wiedzieli?
Wysłany: 9 Stycznia 2008, 21:03   

Wskrzeszę nieco ten temat:

Miał może ktoś, zwłaszcza z linuksowców, styczność z Flexem i Bisonem? (lex i YACC)
_________________
Alchemia Słowa
Well, my days of not taking you seriously are certainly coming to a middle.
 
 
 
Piech 
Hieronim Berbelek


Posty: 3569
Skąd: Poznań
Wysłany: 20 Sierpnia 2008, 21:36   

Jak zakodować takie cuś, że jak się najedzie wskaźnikiem na obrazek na stronie WWW, to on się zmienia na inny obrazek? (a jak się zjedzie, to wraca do poprzedniej wersji)
_________________
Nie wyrabiam psychicznie, gdy skarpetki są nie do pary.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Partner forum
Powered by phpBB modified by Przemo © 2003 phpBB Group