Uncategorized

Véletlenszerű karakterláncok előállítása

Véletlenszerűen előállított karakterláncokra számos esetben lehet szükség. Például hasznos lehet kereskedőknek promóciós kódok (kuponok) előállításához, vagy egy rendszer által biztosított jelszavak generálásához (pl. elfelejtett jelszó esetén). De használhatjuk véletlenszerűen előállított karakterláncok sorozatát egy program teszteléséhez is. Véletlenszerű karakterláncok két módon is lehetnek véletlenszerűek. Lehet az értékük, azaz a karakterláncban szereplő karakterek véletlenek, vagy lehet a …

Véletlenszerű karakterláncok előállítása Read More »

Négyzetrácsban elhelyezett alakzatok oldalhatáron és sarkokon érintkező szomszédainak meghatározása

Bizonyos táblázatos, mátrixos feladatokban, de különösen egyes négyzetrácsos táblás játékokban /pl. Blokus vagy Torpedó (angolul Battleship)/ szükség lehet a táblázatos formában elhelyezett elemek, illetve alakzatok szomszédos celláinak meghatározására. Ráadásul az igények, illetve játékszabályok eltérhetnek abban, hogy megengedett-e az alakzatok sarkokon érintkezése vagy sem. Ezért szükség lehet nem csak az összes szomszédos cella ismeretére, hanem külön …

Négyzetrácsban elhelyezett alakzatok oldalhatáron és sarkokon érintkező szomszédainak meghatározása Read More »

Összevont szorzás és összeadás (fused multiply-add, FMA) alkalmazása a pontosabb számításokhoz

Számítási feladatokban közvetlenül vagy műveletátalakítások után nem ritkán találkozhatunk azzal, hogy két számot össze kell szorozni és a szorzathoz egy harmadik számot kell adni (x*y+z). Ha ezt a kifejezést float típusú számokkal kell kiértékelni, akkor a véges számábrázolási pontosság miatt két kerekítés történhet. A balról jobbra kiértékelés során az első kerekítés a szorzás eredményére vonatkozik, …

Összevont szorzás és összeadás (fused multiply-add, FMA) alkalmazása a pontosabb számításokhoz Read More »

Tkinter Canvas grafikák elmentése és fájlból történő megjelenítése

A tkinter modul vászon (Canvas) grafikus elemén a különféle típusú rajzelemekkel (ellipszis, ellipszisív, sokszög, téglalap, vonal) akár meglehetősen összetett grafikákat is tudunk alkotni. A rajzelemek létrehozása általában a vászonelemre meghívott konstruktormetódusokkal történik. De lehetséges az is, hogy egy rajzszerkesztő programot készítünk és/vagy használunk, ahol a rajzelemeket a program által biztosított módon helyezzük a vászonra és …

Tkinter Canvas grafikák elmentése és fájlból történő megjelenítése Read More »

Geometriai pont modellezésére melyik megvalósítás a legmegfelelőbb: normál osztály, adatosztály, namedtuple vagy NamedTuple?

Ha geometriai feladatokkal van dolgunk, vagy grafikus felhasználói felületet készítünk, szükségünk lehet egy geometriai pontot modellező osztályra, illetve annak példányaira. A kérdés, hogy ezt hogyan valósítsuk meg? Ha csak így tesszük fel a kérdést, akkor a válasz persze az, hogy „attól függ”. Ahhoz, hogy érdemben lehessen válaszolni, tudni kell, hogy mit várunk el egy pont …

Geometriai pont modellezésére melyik megvalósítás a legmegfelelőbb: normál osztály, adatosztály, namedtuple vagy NamedTuple? Read More »

Forgatható ellipszis, ellipszisív és téglalap

Ha a tkinter modul Canvas példányán meghívott create_oval(), create_arc() és create_rectangle() metódusokkal létrehozott ellipszist, ellipszisívet és téglalapot egy adott forgáspont körül forgatjuk, akkor azt tapasztaljuk, hogy azok nem a vártnak megfelelően, vagyis nem alaktartó módon forognak el, hanem torzulnak, és az ellipszis tengelyei, valamint a téglalap oldalai továbbra is a vízszintes és függőleges koordináta-tengelyekkel lesznek …

Forgatható ellipszis, ellipszisív és téglalap Read More »

Aknakereső játék készítése

Az aknakereső (Minesweeper) egy logikai játék, mely adott sor- és oszlopszámú táblázatban elrendezett mezőcellákat tartalmaz, amelyek közül, meghatározott számú, „aknát” rejt. A cél az egyes cellák felfedésével az összes akna megtalálása, illetve azok elkerülése. Ha sikerül az összes nem aknát tartalmazó cellát felfedni, akkor a játék győzelemmel befejeződik. Ha egy felfedett cellában akna van, akkor …

Aknakereső játék készítése Read More »

Bináris mátrix megvalósítása

A mátrixok egy speciális fajtája az, ahol a mátrixelemek csak 0 vagy 1 értéket vehetnek fel. Az ilyen mátrixoknak több elnevezése ismert: bináris mátrix, logikai mátrix, relációs mátrix, vagy (0,1) mátrix. A bináris mátrixoknak számos alkalmazási területe van, többek között például: gráfok szomszédsági mátrixa, relációk jellemzése, kétszínű képek (pl. xbm típusú képfájlok) leírása, valamint olyan …

Bináris mátrix megvalósítása Read More »

Táblázatos elrendezésű grafikus elemek helyének meghatározása pontkoordináták alapján

Ha grafikus felhasználói felületet készítünk, akkor felmerülhet az a kérdés, illetve feladat, hogy egy grafikus elem (widget) helyét valamihez képest meghatározzuk. A hely azonosítása általában x, y koordinátákkal történik. Ha viszont a grafikus elem táblázatos elrendezésben lett lehelyezve (a tkinter grid() metódussal), akkor a pontkoordintákkal való jellemzés helyett vagy mellett igény lehet arra, hogy meghatározzuk, …

Táblázatos elrendezésű grafikus elemek helyének meghatározása pontkoordináták alapján Read More »

Valós értékű folytonos intervallum modellezése és alkalmazásai

Az intervallum azon valós számok halmaza, amelyek két adott szám mint korlát közé esnek. Ez eddig valószínűleg nem újdonság. Ha azonban programban modellezni akarjuk, akkor egy kicsit mélyebbre kell tekinteni. Valójában egy intervallum matematikailag egy speciális halmaznak tekinthető, ezért az alapvető halmazműveletek mint az unió, metszet, részintervallum és tartalmazásvizsgálat értelmezhetők. Ugyanakkor az intervallum el is …

Valós értékű folytonos intervallum modellezése és alkalmazásai Read More »