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
|
|