1. |
[opt.sign] Elojel fuggveny optimalizalas (mind) |
25 sor |
(cikkei) |
2. |
Ertelmes feladat ujra (mind) |
32 sor |
(cikkei) |
3. |
Elojel problema (mind) |
22 sor |
(cikkei) |
4. |
Re: Megszakitas hivas Windowsos programbol (mind) |
35 sor |
(cikkei) |
5. |
[SIGN] [JUBILALUNK???] egy kicsit offtopic (mind) |
27 sor |
(cikkei) |
6. |
Koszonet ! (mind) |
6 sor |
(cikkei) |
7. |
RE: Signum fgv? (mind) |
29 sor |
(cikkei) |
|
+ - | [opt.sign] Elojel fuggveny optimalizalas (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hi Coders!
> Felado : [Hungary] CODER #98
>
> mov ax,number
> cmp ax,1
xor dx, dx; Hi!, ez lemaradt :)
> sbb dx,0 ; neg, poz -> 0, 0 -> -1
> sar ax,16 ; neg -> -1 poz,0 -> 0
> inc dx
> or ax,dx
Koszonom Marosi Istvannak (thanx**n).
Ez nagyon cool algoritmus ;), de a problemam meg! mindig! (esetleg!)
fennall: Ez -1,+1,0 es kombinacioira MINDIG azonos sebeseggel
fut le (nem mertem ki de cca. 7-10 orajel lehet, P%tsai meg jobb).
En mar hasznalom is, de +1,-1,0-ra opt. ill. -1,+1,0-ra opt. lehet
egyaltalan ennel gyorsabbat irni? Me ha nem akko csak kotozkodom:)
udv: XiX
-=- -=-
-=- Minden masodik szavam hazugsag -=-
-=- Az orokevalosagnak kell elni. Na bumm, legfeljebb nem sikerul -=-
|
+ - | Ertelmes feladat ujra (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hali !
Mivel ugy tunik, hogy most nagyobb erdeklodes mutatkozik a feladat
irant, megismetlem a feladat "kiirast" :
A feladat :
Olyan TSR progit irni, ami kepes elore meghatarozott printerportra
kuldott adatfolyamot elfogni, es azon string cseret vegezve tovabb
kuldeni a portra.
A cserelendo stringeket egy TXT file-bol kellene venni, ami
szovegszekesztovel szerkesztheto.
A proginak a specialis karaktereket is tudni kell(lene) kezelni.
(ez utobbi egy komoly kitetel a txt file szerkezetenek megvalasztasa
szempontjabol !)
Kiindulasnak 16 stringpar kezelese elegendo. (de a bovithetoseg elonyt
jelent)
A stringekben a keresendo illetve a helyettesito stringek hossza 32
karakterben (byte) maximalhato.
Az elkepzelt inditasi szintaxis : TRANSLPT <LPT portszam> <filenev>
ahol <LPT portszam> a hasznalni /elfogni kivant port szama
<filenev> a stringparokat tartalmazo config file neve
Keszulhet: ASM, C, PASCAL-ban.
Gondolom nem kell elmagyarazni, hogy egy ilyen progi mire lenne jo ?!
Jutalom gyanant a kesz mu kozzetetlehez szukseges WEB lap elhelyezest
tudok felajanlani !
Ha valami esetleg nem lenne ertheto, szivesen valaszolok a kerdesekre.
Udv: Csiszar L.
|
+ - | Elojel problema (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szerintem a legegyszerubben igy lehet Pascalba:
{- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -}
Function elojel(x:longint):boolean;
{- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -}
begin
if x=abs(x) then elojel:=false else elojel:=true;
end;
az osztasos eljaras :
{- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -}
Function elojel2(x:longint):byte;
{- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -}
begin
if x=0 then elojel2:=0 else elojel2:=x div abs(x);
end;
ez pont ketszer annyi idot vesz igenybe mint a 1. Megoldas.
Igaz nem jelzi kulon a nullat.
Szabolcs
|
+ - | Re: Megszakitas hivas Windowsos programbol (mind) |
VÁLASZ |
Feladó: (cikkei)
|
On 5 May 98 at 15:37, > wrote:
> Egy olyan fuggvenyt kellene csinalnom, amely meghivja
> a DOS 21h megszakitast. Ezt egy 16 bites Windows
> programhoz kellene hozzaszerkesztenem, tehat .obj-ba
> kellene forditani a fuggvenyt. Viszont nem tudom, hogy
> itt kell-e valamilyen specialis hivasi konvenciot alkalmazni.
Nem kell semmi kulonos, szinte minden ugyanugy megy, mint real
modban, a windows leszimulalja (nem igazan jo szo, nem baj) a
majdnem teljes int21 APIt. Szoval:
_asm {
mov ah, kod
mov dx, cim
..stb...
int 21h
mov retAX,ax
sbb ax,ax
mov retCY,ax
}
if (retCY) ...ciki, cy volt...
Ja, vigyazz, ha kell a si vagy a di (nem is beszelve a bp-rol)
parameteratadasra, akkor azokat persze push-olni pop-olni kell!
Ami esetleg nincs leszimulalva (nem tudom, mik azok, talan a nem
dokumentalt fuggvenyek), es megis hasznalni kell, akkor kicsit
bonyolultabb a helyzet, a pufferek szamara GlobalDosAlloc-kal kell
helyet foglalni, es a DPMI int hivo hivasaval kell az int21-et
meghivni, stb. stb.
Istvßn
-- Istvan Marosi -- http://www.sch.bme.hu/~marosi --
-- Recosoft Ltd. -- mailto: --
|
+ - | [SIGN] [JUBILALUNK???] egy kicsit offtopic (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Udvozollek dicso Koder !
Egyebkent mar megint milyen szemetet olvasol???
Gondoltam, nem maradhatok ki a 100. szambol, ugyhogy egy kis
adag a elojel temahoz (avagy erdekes, de nem kivanok az optimizerek
dolgaba beleszolni :)
Function Sign(Number:Integer):Integer;
;
Arrrrrrrgggggggghhhh, valamit tudok :)
Meg a Commodore-s idokben volt az a divik, hogy lassu az
IF kiertekelese, s minden ilyet jo volt atalakitani valami
kifejezesse. Pl: egy jateknal mondjuk iranyitunk egy figurat,
s egy valtozot attol fuggoen kell novelni vagy csokkenteni
egyel, hogy az X vagy az Y billentyut nyomta le. (ha valaki
nem jott volna ra, ez mind basic)
Azok voltak az regi szep idok! Na nem a bezik, inkabb a assemblyre
gondolok, ott nem volt gond, hogy milyen geped volt, mindegyiken
ugyanolyan gyorsan (lassan) futott.
Bezzeg itt: ahany gep annyi tempo (ez nem rimel, ki kolti at?)
Na jol van, mara eleg a lelkizesbol :)
Hastalavista Koder!
BUMMMMMMMM! <---fejloves
|
+ - | Koszonet ! (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hi CODERek !
Nagyon koszono mindenkinek aki segitett megoldani
a "gotoxy()" problemam !!!!
Pati
|
+ - | RE: Signum fgv? (mind) |
VÁLASZ |
Feladó: (cikkei)
|
>From: Istvan Marosi[SMTP:]
>
>A LongInt szerintem nem lebegopontos szam!!! :))
Igaz, igaz... Bocs.
Viszont lebegopontosra lenne erdekes igazan gyors, low-level
megoldas ami nem hasznal FPUt.
>
>> Ennel gyorsabb elojelszamitas szerintem nem letezik, persze assemblyben
>> v. C-ben jo megirni.
>Egyebkent az eredeti kerdes mar asm-ben volt valamikor par napja, 2
>db. ugrassal, mint ahogy Te is csinalnad, es a srac azt kerdezte,
>hogy hogyan lehetne ezt tovabb optimalni. En is valaszoltam mar ra 2
>ujsaggal ezelott, ami egyetlen ugras nelkul csinalta meg ezt asm-ben.
Olvastam, az is egesz szamokra vonatkozik, teljesen egyetertek
Veletek.
De az en megoldasomban -sajna- van egy hiba amit Te sem vettel eszre:
Amikor a legalso byteot vizsgalom es nulla, meg nem biztos hogy az
egesz mantissza nulla, ahhoz sorra kell venni mind a nyolc byte-ot.
Helyesen, ha az elojelbit 0, el kell kezdeni a mantissza byte-okat
vizsgalni
es az elso nemnulla-nal meg lehet allni azzal, hogy >0 es signum=1,
ha mind a 8 byte nulla akkor signum=0.
Bar, lehet ez mar reg bele van drotozva az FPU-ba es kar vele
vacakolni...
VAti
|
|