Hollosi Information eXchange /HIX/
HIX CODER 80
Copyright (C) HIX
1998-04-17
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
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:  --

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