1. |
korbejaro planetas (mind) |
48 sor |
(cikkei) |
2. |
Nem kertetek: memcopy (mind) |
97 sor |
(cikkei) |
3. |
Cipper KEYBOARD C-ben (mind) |
58 sor |
(cikkei) |
4. |
Tartalmazas (mind) |
14 sor |
(cikkei) |
5. |
Re: karakterkisosztas-kulonbseg (szep szo...) (mind) |
85 sor |
(cikkei) |
|
+ - | korbejaro planetas (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hello,
Erdekes a feladvany a kis korbejaro planetassal, midnig erdekelt
milyen alapelvek szerint mukodik a karakterfeismeres.
Ime szerintem a megoldasok remelem megertettem a kerdest...
1) fordulasos indexelesre:
- teglalapra negyszer fordulunk balra -> valtozo = -4
- idealis kor eseten jobbra es balra egyforma utemben fordulunk
de a "fordulopontokon" ketszer fordulunk balra => egy plusz balra
per fordulo * negy fordulopont => valtozo = -4
- van egy olyan erzesem hogy minden konvex idomra ez a szam -4.
- konkav idomokra ugy nez ki hogy a konkavitas csucsaban van egy
plussz jobbra, az hogy a valtozo mennyivel nagyobb mint -4 a
konkavitasok szamat mutatja.
*szindbad homlokan az izzadsag gyulni kezd*
2) iranyindexeles:
- szabalyos tegalalap => 0
- barmilyen zart gorbe => 0
- nyilt gorbe = a legmagasabbpont es a vegpont kozotti
magassagkulonbseg.
Ezek a megoldasok (ha helyesek) topologiailag egy feluletet alkoto
formakra ervenyesek.
lepek mer' holnap vizsgam van.
szindbad.
ps.
> Skacok, ne kezdjetek ujra a rozsdas vitat... A Pascal ugyis jobb.
> mindket nyelvnek megvan a sajat erossege
Bocs, en tenyleg nem akarok flame-wart. Ezzel egyutt
itt nem jobb vagy rosszabrol van szo. Tobbszaz QuickBasic oldal
irasat nehany ev (6) es tobbezer(!) oldal Turbo Pascal programozas
kovetett es harom eve C-t nyomatva tisztam erzem a Pascalos evek
nagyon visszavettettek, sokkal jobb volnek, sokkal
profibb dolgokat tudnek csinalni ma ha hamarabb
atnyergeltem volna C-re. Igazan sajnalom hogy akkoriban senki
nem magyarazta el tisztan es szenvedelymentesen mi is a helyzet
ezekkel a nyelvekkel.
|
+ - | Nem kertetek: memcopy (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hi Coders!
Szovegeles helyett :)
-=- START
{$A+,B-,D-,E-,F+,G+,I-,L-,N+,O-,P-,Q-,R-,S-,T-,V-,X-}
Program
prgMemCopyTest; { (C) XiX 1987-98. All rights reserved. }
Const
limit = 1000000;
Var
Buffer1, Buffer2 : pointer;
Buffer1Seg, Buffer2Seg : word;
i, start, finish, elapsed : Longint;
Function Clockmsec : Longint; Assembler;
ASM
push ds; xor dx, dx; mov ds, dx; mov bx, $046C; mov dx,$43; mov al,$4; pushf;
les di, ds:[bx]; out dx,al; lds si, ds:[bx]; in al,$40; mov ah,al; in al,$40;
popf; xchg al,ah; mov cx, es; cmp di, si; je @n; or ax,ax; jns @n; mov di,si;
mov cx, ds; @n: not ax; mov bx, $36ED; mul bx; mov si, dx; mov ax,bx; mul di;
xchg bx, ax; mov di, dx; add bx,si; adc di, 0; xor si,si; mul cx; add ax, di;
adc dx,si; mov dh,dl; mov dl, ah; mov ah,al; mov al,bh; mov di, dx;mov cx,ax;
mov ax, $6216; mul dx; sub cx, dx; sbb di, si; xchg ax,cx; mov dx,di; pop ds;
END;
Procedure PutBufferNormal; Near; Assembler;
ASM
push ds;
mov es,Buffer2Seg;
mov ds,Buffer1Seg;
xor si,si;
xor di,di;
mov cx,16000;
db 66h; rep movsw;
pop ds;
END;
Procedure PutBufferSpecial; Near; Assembler;
ASM
{
memoriabol memoriaba FPU segedelmevel
opt. PPro! (original: Agner Fog)
[ds:si] = forras terulet
[es:di] = cel terulet
cx = byte-ok szama osztva 16-tal
}
push ds;
mov es, Buffer2SEG;
mov ax, Buffer1SEG;
mov ds, ax;
xor si, si;
xor di, di;
mov cx, 4000;
@Loop:
fild qword ptr [ds:si ];
fild qword ptr [ds:si+8];
fxch;
fistp qword ptr [es:di ];
fistp qword ptr [es:di+8];
add si, 16;
add di, 16;
dec cx;
jnz @Loop;
pop ds
END;
.
-=- END
udv: XiX
-=- -=-
-=- Minden masodik szavam hazugsag -=-
-=- Az orokevalosagnak kell elni. Na bumm, legfeljebb nem sikerul -=-
|
+ - | Cipper KEYBOARD C-ben (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hi CODEROK
Aki ismeri a Clipper KEYBOARD nevu rutinjat
es meg a C-t is az elemezze ki az alabbi C rutint
ami a Clipper KEYBOARD rutinjat hivatott megvalositani!
(Annak aki nem ismeri:
az eljaras egy billentyunyomast general mintha azt mi tettuk volna
pedig nem is.)
A kerdes a kovetkezo:
Nem e lehetne e, ezt a kis eljarast egyszerubben megoldani?
Ami egyebkent muxik es nallam nem akadt ossze semmivel.
//==========[ Stuff a value into the keyboard buffer ]===================
#include <dos.h>
#include <conio.h>
#pragma inline // van erre szuksegem egyaltalan? (asm Int 0x09)
void keyboard( unsigned int key_code )
{
unsigned int far *irok = 0x00000000L; // inicializa
lok
unsigned int far *olvasok = 0x00000000L; // szinten zenesz
//-----------------------------------------------
while ( kbhit() ) // kiuritjuk a key_buffert biztos
ami biztos
{
getch();
};
olvasok = (unsigned int far *)0x0040001C; // honnan
irok ?
irok = (unsigned int far *)MK_FP( 0x0040, *olvasok ); // hova irok ?
*irok = key_code;
// irok !!!!
if ( *olvasok == 0x003C )
// ha a key_buffer
*olvasok = 0x001E;
// vegere ertem
else
// vissza az
*olvasok+=2;
// elejere
asm Int 0x09
// megnyomom
}
// a billentyut pedig
// nem is
|
+ - | Tartalmazas (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Nem tul regen ismerem a codert, igy elnezest ha mar volt hasonlo jellegu
kerdes. Szoval... Adott 4 pont egy sikon kordinataikkal. Ez a negy pot
termeszetesen egy negyszoget hataroz meg. Hogyan tudom eldonteni a sik egy
otodik pontjarol, hogy az eleme-e a negy pont altal meghatarozott
sikidomnak vagy sem? Valami olyan megoldas kellene, ami konnyen
leprogramozhato. Mar csak a gyorsasag miatt is. Ha lehet algoritmust
kuldjetek, ne forraskodot. Legfeljebb Pascalos stilusut, vagy Delphit.
Megkoszonnem azt is, ha nem a coderba irnatok, hanem szemelyesen nekem.
Koszonom!
Kovacs Zsolt
mailto
|
+ - | Re: karakterkisosztas-kulonbseg (szep szo...) (mind) |
VÁLASZ |
Feladó: (cikkei)
|
On 10 Apr 98 at 3:01, Gyongyosi Peter > wrote:
> A helyzet a kovetkezo: van egy nagyobb adag Win95 dos modjaban megirt
> ekezetes szovegem. Ezt kene felhasznalnom Win95 GUI reszeben, azonban az
Tobbfele kiosztas is letezik dos alatt, nem tudom, melyik van nalad.
En cwi alatt szoktam dolgozni, de nagyon terjed a CP852 is. Win-ben
gyakorlatilag egyfele van.
cwi 852 win
a' 160 160 225
e' 130 130 233
i' 161 161 237
o' 162 162 243
u' 163 163 250
o: 148 148 246
o" 147 139 245
u: 129 129 252
u" 150 251 251
A' 143 181 193
E' 144 144 201
I' 141 214 205
O' 149 224 211
U' 151 233 218
O: 153 153 214
O" 167 138 213
U: 154 154 220
U" 152 235 219
Programot e miatt nem erdemes irni, egyszerubb hasznalni a tr nevu
(translate) unix utility dos-ra forditott valtozatat pl. Elerheto a
simtelnet barmelyik mirrorjan (pl. ftp.iif.hu) a /pub/gnu/gnuish
konyvtarban a text utilities (gnutut*.zip) alatt tobb utility-vel
egyutt. Hasznalni igy lehet:
tr ilyenbol ilyenlesz <input >output
ahol ilyenbol meg ilyenlesz egyszeruen betuk egymas utan, pl. dos-ban
ALT 160 stb. modon beirva a fenti tablazat szerint. A zip file-ban
egyebkent benne van a hasznalati utasitas is (tr.man neven), valamint
a program(ok) forrasa is :)
Unixok alatt van egyebkent egy recode nevu utility is, azt
hatarozottan karakterkeszlet konvertalasra irtak. Nem tudom, hogy
van-e dos-ra forditott valtozata, de ez is GNU GPL-es, szoval megvan
a forrasa is.
Annak ellenere, hogy nem erdemes programot irni ra, en is irtam :)
fokeppen azert, hogy teljes konverziot csinaljon (mind a 128 kodrol),
illetve ugy is konvertaljon, ha nem letezik egy betunek pontos
megfeleloje a masik karakterkeszletben (pl. az o" betut
tobbfelekeppen szoktak helyettesiteni, neha o^ neha o~ koddal, es
ezek kozott, ha nincs pontos illeszkedes, szabadon varial a program)
Ideteszem a rovid help szoveget, Peternek meg elkuldom a programot is.
> -------------------------------------------------------------------
Hasznalat: set2set [/q] [/o:<set>] [/i:<set>] <fromfile> [<tofile>]
ahol <set> lehet: asc 7 bites ascii
ans Win ANSI
hun Win Magyar
437 DOS cp437
850 DOS cp850
852 DOS cp852
cwi DOS CWI Magyar
Default ertekek: /i:ans /o:437
Az opcioknak kell elol allniuk
/q eseten nem jelzi a helyettesitest, csak a -> @ cseret
Ha nincs <tofile>, akkor helyben kodol, a meret viszont max 16k lehet!
> ---------------------------------------------------------------------
Ha olyan kodot talal, amit nem tud pontosan konvertalni, akkor vagy a
korabban jelzett helyettesitest vegzi, vagy teljesen ekezet nelkuli
beture helyettesit, vagy ha irasjelrol volt szo, akkor hasonlo
irasjelre cserel, vagy ha olyan sincs, akkor '@' lesz a betubol.
Mindegyik esetben kiirja, ha valamilyen helyettesitest csinalt,
erdemes figyelni ezekre, mert azt jelezhetik, hogy nem volt jo az
input karakterkeszlet beallitasa!!
István
-- Istvan Marosi -- http://www.sch.bme.hu/~marosi --
-- Recosoft Ltd. -- mailto: --
|
|