Uncategorized

Hogyan töröljünk adott karaktereket egy karakterláncból?

Bizonyos esetekben szükség lehet arra, hogy egy karakterláncból adott karaktereket eltávolítsunk. Ilyen eset lehet például, ha egy szövegben csak a szavakat szeretnénk feldolgozni. Ehhez az írásjeleket először el kell távolítani. A feladat többféleképpen is megoldható, ahogy az alább látható. Azt, hogy ezek közül melyiket alkalmazzuk az függhet attól, hogy – mennyire vagyunk tájékozottak az alkalmazható …

Hogyan töröljünk adott karaktereket egy karakterláncból? Read More »

Hogyan valósítsunk meg írható és csak olvasható adatattribútumokat vegyesen?

A feladat tehát az, hogy egy osztályt úgy definiáljunk, hogy annak példányaiban bizonyos adatattribútumok írhatók és olvashatók, ugyanakkor más adatattribútumok csak olvashatók legyenek. Ez az igény olyan esetekben fordulhat elő, amikor a modellezett entitásnak vannak olyan jellemzői, adatai, amelyek a születése, létrejötte után nem változnak, és vannak olyanok, amelyek változhatnak. Vegyünk például egy embert, egy …

Hogyan valósítsunk meg írható és csak olvasható adatattribútumokat vegyesen? Read More »

Gráf rajzoló és elemző grafikus alkalmazás

Az előző bejegyzésekben gráfok reprezentációjával és az alapvető gráfalgoritmusokkal (szélességi és mélységi bejárás, legrövidebb út) foglalkoztunk. Ennek során a csúcsokat képviselő Vertex osztály mellett kifejlesztettük a gráfot modellező Graph osztályt. E két osztályt mint gráfmodellt fogjuk használni a továbbiakban, és ehhez ezeket egy graph_model nevű modulba helyezzük. E modul tartalma tehát ez: Most e modellhez …

Gráf rajzoló és elemző grafikus alkalmazás Read More »

Gráfok mélységi bejárása

Az előző bejegyzésben gráfok szélességi bejárásával foglalkoztunk. Most gráfok mélységi bejárását (depth first traversal) fogjuk megvalósítani. A mélységi bejárás alapelve: úgy járjuk be a gráfot, hogy egy kiinduló csúcstól kezdve először is az éppen aktuális csúcs szomszédait határozzuk meg, majd ezek közül a még meg nem látogatottakat vesszük nyilvántartásba egy LIFO konténerben, vagyis egy veremben. …

Gráfok mélységi bejárása Read More »

Gráfok szélességi bejárása

Az előző bejegyzésekben (itt és itt) gráfok ábrázolásával és alapimplementációjával foglalkoztunk és ezt bővítettük ki azzal a képességgel, hogy egy adott csúcspontból meg tudjuk határozni a többi csúcshoz vezető legrövidebb utat. Most gráfok bejárásával fogunk foglalkozni. Egy gráf bejárása azt jelenti, hogy egy kiinduló csúcstól, az élek által meghatározott irányokban levő csúcsokat valamilyen logika szerinti …

Gráfok szélességi bejárása Read More »

Legrövidebb út meghatározása gráfokban

Az előző bejegyzésben gráfok ábrázolásával és implementációjával foglalkoztunk. Most arra keressük a megoldást, hogy hogyan lehet meghatározni egy gráf egy adott csúcsából a többi csúcsba vezető legkisebb élsúlyösszegű, vagy más szóval legrövidebb utakat. Ez a kérdés számos, gyakorlatban felmerülő, gráffal modellezhető problémában felmerül. Például utazáskor a távolságban vagy időben legrövidebb út megtalálása, vagy számítógéphálózatokban a …

Legrövidebb út meghatározása gráfokban Read More »

Gráfok megvalósítása

Gráfokat több módon lehet matematikailag ábrázolni. A leggyakoribb reprezentációk a szomszédsági mátrix és a szomszédsági lista. Ezeket mutatja a következő ábra: A szomszédsági mátrixban a gráfban szereplő összes csúcsot (vertex) számba vesszük és megnézzük, hogy egy adott csúcsnak mely más csúcsok a közvetlen szomszédai. A vizsgált csúcsok a mátrix sorai, a szomszédos csúcsokat az oszlopok …

Gráfok megvalósítása Read More »

A super leutánzása, hogy jobban megértsük a használatát

Egy korábbi, „Tudáselmélyítés és gyakorlás kész függvények vagy metódusok leutánzásával” című bejegyzésben arról volt szó, hogy a nyelv használatát és a nyelvi elemek megértését nagyban segítheti, ha megpróbálunk már készen rendelkezésre álló függvényeket, metódusokat vagy osztályokat emulálni, vagyis a funkcionalitásukat saját készítésű kóddal utánozni. Ilyenkor ahhoz, hogy ez sikerüljön, alaposan meg kell értenünk az utánozni …

A super leutánzása, hogy jobban megértsük a használatát Read More »

Dekorálás osztállyal

Függvények dekorálásával korábban már foglalkoztunk a „Mi a függvénydekorátor és mikor használjuk?” című bejegyzésben. A dekorálást leginkább closure függvénnyel megvalósított dekorátorral szokták megvalósítani. Ez a megoldás akkor lesz egy kicsit kényelmetlen, ha paraméteres dekorátorra van szükség. Ilyenkor ugyanis több szinten beágyazott függvényeket kell definiálni, ami kevésbé könnyen átlátható kódot eredményez. Ezen tudunk valamelyest javítani, ha …

Dekorálás osztállyal Read More »

Sokszög forgatása és tükrözése vizuálisan grafikus alkalmazással – 2. rész

Az előző bejegyzésben egy olyan, egyszerű grafikus alkalmazást kezdtünk el felépíteni, amely egy csúcspontjaival definiálható sokszöget egy megadható forgáspont körül, szintén megadható szöggel elforgat, vagy egy kezdő- és végponttal meghatározható vonalra vonatkozóan tengelyesen tükröz. Az előző bejegyzésben az alkalmazás alapfelépítést kezdtük meg számos szükséges metódus definiálásával. Azzal hagytuk abba, hogy a geometriai elemek (pont, sokszög és …

Sokszög forgatása és tükrözése vizuálisan grafikus alkalmazással – 2. rész Read More »