Hollosi Information eXchange /HIX/
HIX CODER 303
Copyright (C) HIX
1998-12-09
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 assembly (mind)  25 sor     (cikkei)
2 Re: Re: Re: ABC (mind)  50 sor     (cikkei)
3 Pi - 1 millio (mind)  10 sor     (cikkei)
4 Re: Gauss eliminacio (mind)  97 sor     (cikkei)

+ - assembly (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok !
Most kezdtem assemblyben tanulni, es meg nem nagyon megy. Ezert szeretnek
toletek megoldasokat kerni az alabbi problemakra. Nagyon fontos, es surgos
lenne. Elore is koszi mindenkinek. Ja a valasz johet maganban is.

Problemak : A Pascalban a heap far pointerer(4 byte). C-ben van lehetoseg
2 byte-os pointer. Olyan unit, kellene asm-ben ami lefoglal egy 64K-nal
kisebb) teruletet az adatszegmensbol, es abban megvalositja a foglalas,
felszabaditas es far pointerre alakitast. Pascal unitba lenne objectolva:

Function Malloc(Size:Word):Word;{Size:mekkora terulet kell,eredmeny:cime(0:hiba
)}
Procedure Free(Address: Word); 
Function ConvertToFarPointer(Address: Word):Pointer;

Egy masik : Com-kent megirva parancssorbol be filenev, ez turtle graf
neve, ezt vegerhajta, majd gombnyomra kilep. A file sorai ASCII, minde sor 
egy onallos parancs, mely teknocot iranyit. Amerre megy nyomot hagy, ha a
rajzolas be van kapcsolva. Parancsok : U-toll fel, D-toll le, Lxxx, Rxxx
fordul balra, jobbra xxx szoggel. Fxxx, Bxxx -nel xxx-et lep elor vagy
hatra. Ha toll nincs lent, akkor csak mozok, xxx: word. Kimehet a
keprol(640*480). Indulaskor teknoc kozep, felfele nez. A fileban
barmennyi szokoz lehet, hagyja el.

Elore is koszi, forras, kod resz, cim jol jonne.	Gyula
+ - Re: Re: Re: ABC (mind) VÁLASZ  Feladó: (cikkei)

>VAti irta a rendezesrol:
>> tankonyvben, 1000 folotti elemszamnal azonban csak a Quick Sort
>> nevre hallgato eljaras jon szoba. (a qsort is ezt valositja
>> meg, es egy beepitett fgv.nel gyorsabbat ugyse irsz)
> ...
>> QuickSort-nal gyorsabb algoritmus elmeletileg se nagyon
>> letezik. Csodak nincsenek.udv: VAti
>ezeknek a kategorikus kijelentéseknek nem tudtam ellenálni (en meg
>tanultam a nagy O-rol :-), ezért kísérleteztem egy picit. Knuth-ot 
>(A szamitogep-programozas muveszete 3, 1988-as magyar kiadas)
>csak az eredmenyek megszerzese utan konzultaltam.
>Ott megtalalhato az elmelet, en most inkabb arra voltam
>kivancsi, mire kepes egy (meglehetosen kommersz :-) C++ fordito es konyvtar.
 ...
>Eloszor is a platform: PII 300MHz, 144MB RAM, Win NT 4.0, MS VC 6.0,

A tesztelesi modszered kifogastalan.

A statisztikad nagyon imponalo, azonban en ebbol azt
az egy kovetkeztetest vonnam le, hogy a MS VC-ben
a qsort nagyon  van implementalva, mar az is
gyanus hogy a fenebe lehet az STLes fgv annyival gyorsabb.

Lehetnek gondok az optimalizalassal fordito es oprendszer
szinten, ennekem sok olyan tapasztalatom volt, amikor 
egy az egyben ugyanaz a kod ugyanazon a hw-en, teljesen maskepp
viselkedett Linux es Windows alatt. 
Leginkabb Lx alatt tobbszor olyan gyors volt:)

Szoval egy platform nem platform. Ugyanezt a tesztet
ugyanezekkel az inputokkal le kellene futtatni valami
jo kis Unixos WS-en vagy akar Linuxon, ugyanis a dolog
_SZERINTEM_ inkabb arra hegyezodik ki hogy melyik
fordito hogy implementalja az qsortot es tarsait es
mennyire van megtanitva kodot optimalizalni.

Azt ugye elismered hogy a qsort elmeletileg a jobbak
koze tartozik?

>Erdekes lenne ezeket az adatokat mas platformon (hw, oprszr, fordito,
>konyvtar) is ellenorizni; nekem most sajnos csak NT-hez 
>van hozzaferesem (ill. a tobbi gepunkon nincs jo 
>C++ forditonk). Forrast kuldhetek (nem a listara, mert kb.
>400 sor).

Kuldd maganba, en szivesen kiprobalnam. Ha tudsz doksit is hozzajuk
meg jobb. (szegyenlem, de nincs meg a Knuth...)
Masoktol is kivancsi vagyok az eredmenyekre.

udv: VAti
+ - Pi - 1 millio (mind) VÁLASZ  Feladó: (cikkei)

Na, feltettem ahogy igertem a textet, amiben pi 1 millio
jegyig van kiszamolva. Publikus ftp-vel a
szerver 195.199.32.130 a domain ha jol emlekszem
akkor linda.varga-szolnok.sulinet.hu. Es ott a /pub/pi konyvtarban
van gzippel tomoritve. (690k)

 Zoli

 mailto:       http://w3.externet.hu/~kiss
 mailto:    http://www.cab.u-szeged.hu/~h734673
+ - Re: Gauss eliminacio (mind) VÁLASZ  Feladó: (cikkei)

Szia David!

Emlekeim szerint a linearis egyenletrendszerek megoldasi
modszerei kozul az egyik a Gauss fele eliminacio. Ez egy
algoritmus, az egyenletrendszert leiro matrix inverzenek
meghatarozasara.
Tehat ha a feladott egyenletrendszerbol kepzed a
A*x = b
matrix egyenletet és kepzed az A matrix inverzet (a Gauss fele
eliminacioval), akkor az inverz matrix segitsegevel meg tudod oldani
az egyenletrendszert (amennyiben az megoldhato) a kovetkezo
egyenlettel (az inverz matrixot most itt nem a szokasos A-1-gyel
jelolom, hanem legyen C a jele, mert nem tudok also-felso indexeket
irni.)
x = C*b

Tehát a feladatod azon resze a Gauss fele eliminacio, ami az inverz
matrixot hatarozza meg.

A modszer harom kulonbozo lepes tobbszori alkalmazasaval operal.
1. Ket egyenlet helyenek felcserelese (matrix sorok csereje).
2. Egy egyenlet c <> 0 szammal valo szorzasa.
3. Az egyik egyenlet c <> 0 szorosanak hozzaadasa egy masik egyenlethez.

Egy hosszabb peldan keresztul tudnam ezt elmagyarazni.
Legyen a kiindulo egyenletrendszer matrix alakban a kovetkezo

3  2  1     x1     5
1  0  2     x2     0
4  1  3     x3     10

a. Az invertalando matrix melle irjunk egy egysegmatrixot

3  2  1  1  0  0
1  0  2  0  1  0
4  1  3  0  0  1

Ezen a matrixon alkalmazzuk a fenti harom ekvivalens atlakitast.
A celunk az, hogy ezekkel a lepesekkel a bal oldalon kialakuljon az
egysegmatrix, a jobb oldalon pedig ezzel adodik az inverz matrix.

Eloszor felcserelem az elso es masodik sort.

1  0  2  0  1  0
3  2  1  1  0  0
4  1  3  0  0  1

Az 1. sor 3 szorosat vonjuk ki a 2. sorbol.

1  0  2  0  1  0
0  2 -5  1 -3  0
4  1  3  0  0  1

Az 1. sor 4 szereset vonjuk ki a 3. sorbol.

1  0  2  0  1  0
0  2 -5  1 -3  0
0  1 -5  0 -4  1

Csereljuk fel a 2. es 3. sort.

1  0  2  0  1  0
0  1 -5  0 -4  1
0  2 -5  1 -3  0

A 2. sor 2 szereset vonjuk ki a 3. sorbol.

1  0  2  0  1  0
0  1 -5  0 -4  1
0  0  5  1  5 -2

A 3. sort adjuk hozza a 2. sorhoz.

1  0  2  0  1  0
0  1  0  1  1 -1
0  0  5  1  5 -2

A 3. sort osszuk el 5-tel.

1  0  2    0   1   0
0  1  0    1   1  -1
0  0  1  1/5  1 -2/5

Vegul a 3. sor 2 szereset vonjuk ki az 1. sorbol.

1  0  0 -2/5 -1  4/5
0  1  0    1    1  -1
0  0  1  1/5   1 -2/5

Ezzel eloalt az inverz matrix. Ezt balrol megszorozva a
b vektorral kapjuk az egyenletrendszer megoldasat.
x1 = 6; x2 = -5; x3 = -3.

Bocs a hosszura nyult magyarazatert, de remelem segitett.

Udv.
Joco

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS