Hollosi Information eXchange /HIX/
HIX CODER 1530
Copyright (C) HIX
2002-05-26
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Nagy szamok osztasa (mind)  10 sor     (cikkei)
2 Help C++ Builder (mind)  17 sor     (cikkei)
3 Re: *** HIX CODER *** #1522 (mind)  60 sor     (cikkei)
4 Re: Re: szamfelbocolgatas (mind)  13 sor     (cikkei)
5 Re: szamfelbocolgatas (mind)  112 sor     (cikkei)
6 Re: Delphi vagy vb (mind)  35 sor     (cikkei)

+ - Nagy szamok osztasa (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

A kovetkezo keressel fordulok hozzatok.
Nagy szamok osztasara keresek egy algoritmust, ami gyors is.
Az osszeadas kivonas egyszeru a szorzasra az ugynevezett
"a la russe" algoritmust hasznalom. Az osztasra nem talaltam
meg semmit. 


Udv. Arpi
+ - Help C++ Builder (mind) VÁLASZ  Feladó: (cikkei)

Oriasi segitsegre van szuksegem!!!
A baratnom le szeretne adni a diplomamunkajat, amit Borland Visual C++
Builder 5-ben
irt.
A helyzet a kovetkezo:
a progit (adatbaziskezelo) majd egy eve irta meg. Volt valami hiba benne,
amitol a program egy helyen mindig kiakadt. Megkerte egy ismeroset, hogy
javitsa ki. Ez az ismeros azota eltunt. A program azota is hibas. Baratnom
meg itt all egy leadhatatlan programmal. En sajna nem tudok neki segiteni,
mert csak a Visual Basichoz konyitok valamit, az meg ettol teljesen elter.
NAgyon halas lennek, ha valami C++ guru jelentkezne, hogy zaros hataridon
belul elvallalja a program kooperativ kijavitasat, akar anyagi
ellenszolgaltatasert is.
Tolna megyeiek elonyben!

Udv: Salamon Gabor

+ - Re: *** HIX CODER *** #1522 (mind) VÁLASZ  Feladó: (cikkei)

szia!

lehet, hogy nem fogsz nagyon orulni, ha nem szereted az api fuggvenyeket, de ez
t
asszem azzal lenne celszeru megoldani

ha pl. egy tablazatbol veszegeted az ertekeket es egymas utan akarod kuldeni,
mintha megtortent volna fizikailag az esemeny, akkor
- billentyuzetre a keybd_event(),
- egerre a mouse_event()
lesz a megoldas

a peldad asszem egy kicsit felrevezetett, de remelem erre voltal kivancsi

a delphi-hez adott win32-es help allomanyt is erdemes neha lapozgatni
ha nem megy nagyon az angol, akkor van egy magyar api fuggv., rekordszerkezet,
macro, stb. gyujtemeny
win32_api.zip neven, kb. 13M
sajna mar nem emlekszem, hogy honnan toltottem le, de tobb cracker oldalon is
talalkoztam mar vele


csao,
slowr

ui: vagy esetleg, ha a sendmessage()-el minden ablaknak kuldozgeted az esemenye
ket
valszeg a broadcast szo is segit megtalalni a help-ekben




> Felado :  [Hungary]
> Temakor: egér billentyűzet használata DELPHI-ben ( 67 sor )
> Idopont: Thu May 16 21:33:45 CEST 2002 CODER #1522
> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> Hello!
>
> Perifériák eseményeit szeretném létrehozni, pl. mouse click, billentyűze
t
> leütés, tehát mintha a
>
> felhasználó klikkelne/billentyűt lenyomna fizikailag.
> Sajnos a Delphi súgójában nem találtam elről leírást, mindenhol csak azt
 t
> árgyalják, hogy mi van
>
> akkor ha a user képezi az eseményt, de én pont az ellenkezőjét szeretném
,
> a géppel irányitani az
>
> egeret, klikkelni, és a billentyűzetet használni.
>
>
> 
>
> Gerzson
>
> (webes bekuldes, a bekuldo gepe: line-109-1.dial.matav.net)
+ - Re: Re: szamfelbocolgatas (mind) VÁLASZ  Feladó: (cikkei)

Szia István!

Válaszod tanulságos, és elgondolkodtató volt. Belátom, igazad van. De akkor
sem tud megfogni egy ilyen példa. :o) Esetleg ha "beöltöztetik" valami
kézzelfogható formába. 
Tudom lányok, fiúk, ez a fórum nem erröl szól. Én csupán a példák
szárazságára utaltam. :o) Sokkal érdekesebb egy - aszem' nem régen volt
kérdés - egy repülö csillagokat megoldó progi megalkotása. Ott legalább a
végén kapsz egy élményt. Repülnek a csillagok. Lesz belöle képernyövédö.
Király. De itt? Kapsz egy, vagy több számkombinációt, és? :o)
Na mindegy! Biztos van valami érteleme :o)))... 

Szasztok!
+ - Re: szamfelbocolgatas (mind) VÁLASZ  Feladó: (cikkei)

On 21 May 02, at 11:55,  wrote:

> Itt kell megemlitenem marosi@... kollegat
> aki 1 kerdesre kb. 5-6 levelet eresztett meg
> es nagyon sokat lehetett belole tanulni. Sot!!!

Itt vagyok, csak eppen nincs idom reagalni mindenre. De ha mar 
igy provokaltal :)

Ez egy egyszeru backtrack feladat, amiben a backtrack feltetel az 
lehet, hogy a szamok osszege tul keves, vagy mar meghaladja a 
kivantat. Szoval ugy volt a feladat, hogy 'a' es 'b' kozotti szamokat 
kell osszeadogatni, max 'd' darabot, hogy az osszeg pontosan 'n' 
legyen. Es a sorrend is szamitott, ahogy lattam, szoval azzal se 
kell bibelodni, hogy az egyformakat (de mas sorrendueket) 
kihagyja az ember.

// csak hogy ne kelljen dinamikusan allokalni:
#define D_MAX 20
int bontas[D_MAX]			// ide tesszuk a bontasok szamait

void eredmeny(int d_act)	// ha keszen van egy eredmeny
{
	printf("%d", bontas[0]);
	for (int i = 1; i < d_act; i++)
		printf("+%d", bontas[i]);
	printf("\n");
}

// ez maga a backtrack rutin:
// n: ennyi legyen az osszeg
// osszeg: jelenleg ennyi
// a,b: ezek kozott legyen minden szam
// d: max ennyi szamra bontsunk
// d_act: ennyit raktunk mar le
// osszeg es d_act elso hivaskor 0 kell legyen!
void bont_kov(int n, int osszeg, int a, int b, int d, int d_act)
{
	if (osszeg == n)
		eredmeny(d_act);	// ez egy megoldas
	else if (osszeg > n || d_act == d)
		return;		// backrack
	else {
		// aktualis szamkent probaljunk mindent a es b kozott:
		for (int szam=a; szam<=b; szam++) {
			bontas[d_act] = szam;	// leteszunk egy uj probalkozast
			bont_kov(n, osszeg+szam, a,b,d, d_act+1);
		}
	}
}

void bont(int n, int a, int b, int d)
{
	if (d > D_MAX) {
		fprintf(stderr, "Ciki! Meg kell novelni D_MAX-ot\n");
		exit(1);
	}
	bont_kov(n, /* osszeg= */ 0, a, b, d, /* d_act= */ 0);
}

Ennyi az egesz. Ez igy fentebb egy konnyen lathatoan backtrack 
modszer. Viszont kiprobal egy csomo olyat is, aminek semmi 
eselye. Egy kis modositassal gyorsithato, csak akkor jobban el 
van benne dugva a backtrack feltetel, de attol backtrack az is. 
Minden rutin marad, csak a bont_kov modosul kicsit:

void bont_kov(int n, int osszeg, int a, int b, int d, int d_act)
{
	if (osszeg == n)
		eredmeny(d_act);	// ez egy megoldas
	else if (d_act == d)			// ITT NEM NEZZUK osszeg-ET!
		return;		// backrack, DE NEM EZ AZ IGAZI FELTETEL
	else {
		// CSAK A REALIS SZAMOKAT PROBALJUK:
		int b_max = min(b, n-osszeg);
		int a_min = max(a, n-osszeg-(d-d_act-1)*b);
		for (int szam=a_min; szam<=b_max; szam++) {
			bontas[d_act] = szam;	// leteszunk egy uj probalkozast
			bont_kov(n, osszeg+szam, a,b,d, d_act+1);
		}
	}
}

A b_max hasznalata valoszinu minden esetben gyorsit, az a_min 
nagyon fugghet attol, hogy mik az aktualis szamok. Ha pl. d=2, 
a=1, b=1000000, n=2000000, akkor hatarozottan megeri :) Ha 
a_min es b_max is ott van, akkor azt hiszem, az 'if (d_act == d)' 
feltetel ki is hagyhato, de nem gondoltam vegig rendesen, hazi 
feladat :) ... Kicsit most gondolkodtam rajta, igen, akkor nincs ra 
szukseg. Ebbol is latszik, hogy nem ott van az igazi backtrack 
feltetelvizsgalat!

Hazi feladat annak a belatasa is, hogy a_min miert epp annyi.

> p.s.: jo kis stack teszt.

A backtrack algoritmusok nem igazan nagyon stack igenyesek, ez 
is csak 'd' melysegig rekurzal. Idoigenye inkabb tud nagy lenni.

Es meg Misinek egy megjegyzes arrol, hogy ez tavfutonak valo 
feladat, vagy helybenfutas: Az oktatas, tanulas arra valo, hogy az 
ember megmozgassa az agyat, nem pedig arra, hogy bebiflazzon 
valamit. Ebben a peldaban pl. nagyon felre lehet menni, ha a 
tavfuto megall ott, amit tanult, hogy hogyan kell egy backtrack 
algoritmust megirni. Akkor a gep tenyleg erezhetoen helyben fog 
jarni, olyan lassu lesz, amig kiadja pl. az elozo pelda (n=ketmillio) 
egyetlen megoldasat. Ha viszont jaratja az agyat az ember 
mondjuk egy ilyen feladat megoldasan es kielemzesen, akkor az 
eletben elofordulo esetleg teljesen mas jellegu feladatokhoz is 
valoszinu szerencsesebben fog hozzalatni...

István
+ - Re: Delphi vagy vb (mind) VÁLASZ  Feladó: (cikkei)

>A Delphi 4 és a Delphi 6 teljesen kompatibilis, így a Teach Yourself Delphi
>in 21 Days könyv teljesen használható, én is tanultam belole.

Bar a konyvet nem ismerem nem teljesen kompatibilis. Mert pl ott vannak a clx-e
s 
komponensek, ami miatt a project fajl pl nem ua, sot a regi projecteket nem is
lehet visszaolvasni, csak a fajlokat egyenkent atemelni. Masreszt valoszinuleg
mas kulonbsegek is vannak. Mindenkeppen el tudsz kezdeni tanulni belole, de job
b
lenne ha valami ujabbat szereznel.

>Egyébként pedig a Visual C++ csak ajánlani tudom, én most kezdek neki, hogy
>elsajátítsam a dolgokat VC++-ban, és ez már egy igazi kihívásnak tunik.

Attol fugg mit akarsz csinalni. A VC++-al tenyleg mindent meg lehet csinalni
Windowsban, de az ember akkorakat kepes szivni, hogy na :)). Neha meg olyan
dolgokat is nehezkes megcsinalni, ami amugy egyszerunek tunik.

>Fentebb utaltam a "buta nyelv" terminus-ra, és sokan a Delphi-t is azért
>tartják annak, mert idehúzomakomponenst-és-rárakom-a-gombot stílust nem
>tartják programozásnak. Persze a hobbinak tökéltetesen megfelel, csak ahogy
>fejlodik az ember, úgy vágyik egyre többre.

Hat ez megint jo. A Delphi pont amiatt, hogy nehany dolgot gyorsan meg lehet
csinalni vele idot enged arra, hogy a valodi problemakra figyelj. Masreszt meg
igy is van eleg benaznivalo a felulettel, hiaba ad meg a delphi minden segitseg
et.
A delphi nem csak hobbira jo. Igenis lehet benne komoly programokat irni. Az
mar egy mas dolog, hogy nyilvan jatekot nem itt ir az ember, hacsak nem imadja
annyira. Ha neked a tobb a vc++, akkor hajra, de ha javasolhatom, akkor sima
GUI-s programokat ne azzal irj.

>
>
>

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