Hirdetés
- GoodSpeed: Kell-e manapság egérpad vagy sem?
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- petipetya: Nagy chili topic. :)
- Meggyi001: Eldugott helyek Párizsban, amiket jó eséllyel még nem láttál... 2. rész.
- gerner1
- sziku69: Szólánc.
- bambano: Bambanő háza tája
-
LOGOUT

Új hozzászólás Aktív témák
-
kovisoft
őstag
válasz
s1999xx
#12668
üzenetére
Azért az kérdés, hogy a "Funkcionális programozás F# nyelven" tantárgyban mennyi a "Funkcionális programozás" és mennyi az "F# nyelv". És hogy mit értesz "programozni kell megtanulni alatt". Azt-e, hogy már mindenféle paradigmát el is sajátított (objektum orientált, funckionális, stb)? Mert akkor a nyelv tényleg nagyjából mellékes. De annak, aki eddig nem ismerte a funkcionális programozást, biztosan tartogat újdonságokat egy F# kurzus.
-
kovisoft
őstag
válasz
Ereshkigal
#12573
üzenetére
Mi nem csinálunk GUI-t C-ben.
-
kovisoft
őstag
válasz
bandi0000
#12568
üzenetére
Szerintem nagyon gyakori az, hogy több programnyelvet is kell napi szinten használni a munka során. Pl. a kolléga is említette már az SQL-t, de az is gyakori, hogy a "fő" nyelv mellett valamilyen szkript nyelvet kell használni (már akinek nem pont egy szkript nyelv a "fő"). Én pl. C-ben programozok, de gyakran kell bash, perl, python szkripteket írnom, ill. időnként PL-SQL kódot is. Ezenkívül van egy hobby projektem, ami egy vim szkript, ez értelemszerűen VimL-ben íródott. Ismerek még néhány másik nyelvet (C++, java, lisp, clojure), de ezeket nem használom napi szinten, úgyhogy ezeknél időnként utána kell néznem, hogyan is kell egy adott dolgot megcsinálni.
-
kovisoft
őstag
válasz
I02S3F
#12528
üzenetére
Linuxon kell dolgoznunk elég limitált rendszeren, igazán modern IDE nincs telepítve, de nekem nagyon kézre áll a vim, gyorsan tudok benne szöveget szerkeszteni. Hozzászoktam, hogy mindent billentyűzettel csinálok, sőt nemhogy az egérhez, de a kurrzornyilakhoz sem nyúlok ki, ezért nekem jobban bejön, mint egy IDE.
-
kovisoft
őstag
válasz
Norbiiiiiii
#12466
üzenetére
Azért nem működik, mert a feltételben (if nem: ) azt vizsgálod, hogy a nem nevű változóban van-e valami, és persze van, hiszen a 'Ne hazudj!' szöveget tetted bele előtte. A feltételben a válasz nevű változóba kerülő értéket kellene hasonlítani, pl: if válasz=='nem': és persze ugyanígy az elif-ben is: elif válasz=='igen':
-
kovisoft
őstag
Játsszunk egy kicsit, és a bejegyzésben cseréljük ki a foglalkozást egy másikra:
Sziasztok!
Teljesen nulláról szeretnék sebészetet tanulni és utána az EÜ szektorban elhelyezkedni. Tisztában vagyok vele hogy nem leszek nagy sebész ezzekkel a tanfolyamokkal. Nekem most elsődlegesen az lenne a célom, hogy ebben a szakmában tudjak elhelyezkedni és természetesen a későbbiekben tovább fejlődni.Nos mindezt munka mellett tenném, ezért olyan tanfolyamot keresek amit délután/este illtve hétvégén lehet elvégezni. Esetleg valaki tud ilyet?
Leginkább napközbeni tanfolyamokat találtam illetve szükséges volt mellé a gyakorlott angol nyelvtudás és/vagy piszkosul drága volt a képzés! A segítséget előre is köszönöm! -
kovisoft
őstag
válasz
Norbiiiiiii
#12444
üzenetére
Közben találtam még hibát: néhol userChoice.div van userChoice_div helyett.
-
kovisoft
őstag
válasz
Norbiiiiiii
#12441
üzenetére
Nem az a baj, hogy ezeken a helyeken querySelector() helyett getElementById() kellene?
const ko_div = document.getElementById("k");
const papir_div = document.getElementById("p");
const ollo_div = document.getElementById("o"); -
kovisoft
őstag
válasz
#83580928
#12430
üzenetére
Egy lehetséges megoldás (bár nem optimális, mert közel n-köbös, de nem volt szempont a gyorsaság):
Egy x változóval egyesével végigmész a karakterláncon. Minden egyes x pozícióra egy y változóval végigmész a rákövetkező karaktertől kezdve a fennmaradó pozíciókon. Egy h változóval addig mész, amíg az x és y kezdetű stringek karakterei megegyeznek, és amíg nincs átfedés (azaz x+h el nem éri az y-t). Tehát így h-ban lesz az aktuális ismétlődő szakasz hossza. Ha az így kapott h nagyobb, mint a korábban megjegyzett legnagyobb hossz, akkor megjegyzed a h hosszt és az x pozíciót egy-egy újabb változóban. Minden ciklus addig megy, amíg a string végére nem ér.
Ha ennél gyorsabb algoritmus kellene, akkor keress rá a "prefix tree"-re, egy ilyen struktúra felépítésével lényegesen gyorsabban lehet ismétlődéseket keresni egy stringben.
-
kovisoft
őstag
válasz
K1nG HuNp
#12392
üzenetére
Okozhatja még inicializálatlan változó használata is vagy valamilyen random felülírás (pl. túlcímzés egy tömb írásakor). Ilyen esetben előfordulhat, hogy egyik rendszeren elszáll, egy másikon nem, sőt akár ugyanazon a rendszeren is egyszer elszáll, máskor meg nem. Nem tudsz bemásolni valami módosított kódot, ahol megváltoztatod pl. a változó- és függvényneveket?
-
kovisoft
őstag
válasz
smallmer
#12268
üzenetére
Szerintem a namespace-szel lesz a probléma. Az egyik lehetőség, hogy a local-name()-et használod, és nem foglalkozol a namespace-szel, pl. valahogy így:
xPath.evaluate("/*[local-name()='complexType']/*[local-name()='sequence']/*[local-name()='element']", ... ):
A másik lehetőség, hogy beállítod a namespace-t az XPath-ban, itt találsz rá példát.
-
kovisoft
őstag
válasz
smallmer
#12257
üzenetére
A getElementsByTagName() a paraméterben megadott nevű node-oknak a listáját adja vissza, tehát ebből még közvetlenül nem kapod meg pl. a nevet. Először végig kell menni a kapott listán, és minden node-ra lekérni a megfelelő attribute értékét. Aztán hasonlóan a child node-okon is. Ha rákeresel a neten, rengeteg példát fogsz találni.
Vagy félreértelek és a namespace-szel (s:) van gondod?
-
kovisoft
őstag
válasz
kovisoft
#12159
üzenetére
Kicsit még továbbgondoltam, és O(N) lépésben is meg lehet csinálni, ha használhatunk még plusz tárhelyet:
Végigmegyünk a tömbön és minden elemet (az indexével együtt) beteszünk egy hashtáblába. De mielőtt betesszük, megnézzük, hogy a keresett összeg mínusz az adott elem benne van-e már a hashtáblában. Ha igen, akkor találtunk egy párt, és visszaadjuk ezeknek az indexeit.
Annyi csúsztatás van a dologban, hogy O(1) komplexitást feltételeztem a hashtábla elérésében.
-
kovisoft
őstag
válasz
Chesterfield
#12154
üzenetére
Amit írtál, az ugye N*N-es algoritmus, de meg lehet csinálni N*log(N) lépésben is:
(1) Lerendezed a listát úgy, hogy eltárolod az elemek eredeti indexeit is. Ez O(N*log(N)) lépés.
(2) Végigmész a rendezett listán a két végéről indulva, az első elemhez a végéről megkeresed azt, amivel az összegük már a keresett összeg alá esik, ekkor az alsóval lépkedsz felfelé, amíg az összegük túlnő a keresett összegen, aztán megint fentről lefelé, és így tovább. Ha bármikor megtaláltad a keresett összeget, akkor visszaadod az indexeket, különben null. Ez O(N) lépés.
Szerk: akkor ér véget az algoritmus, amikor a két végéről indulva összeérnek az elemek.
-
kovisoft
őstag
Valami ilyesmire gondoltam, a regiszter törlés is decrement-es ciklusokkal történik, ill. az R1=0 és R2=0 eset úgy van lekezelve, hogy először inkrementáljuk, majd rögtön dekrementáljuk a regisztert, és ha bármelyik 0, akkor rögtön vége:
CLEAR_R3:
DEC R3
JNZ CLEAR_R3
CLEAR_R4:
DEC R4
JNZ CLEAR_R4
INC R1
DEC R1
JZ END
INC R2
DEC R2
JZ END
LOOP1:
DEC R1
INC R3
INC R4
JNZ LOOP1
DEC R2
JZ END
LOOP2:
DEC R3
INC R1
INC R4
JNZ LOOP2
DEC R2
JZ END
JMP LOOP1
END:
; R4 = R1*R2 -
kovisoft
őstag
válasz
BTminishop
#12079
üzenetére
Előre szólok, hogy nagyon csúnya és nagyon nem hatákony megoldás következik:

Van az R1, R2 regiszterünk, R3=0, R4=0. Írsz egy ciklust, ami egyesével csökkenti (decrement) az R1-et, ezzel egyidőben egyesével növeli (increment) R3 és R4-et, amíg R1 el nem érte a 0-t. Ekkor R3 és R4-ben R1 van. Ezután kell egy másik ugyanilyen ciklus, ami ugyanazt csinálja, mint az első, csak most az R3-at dekrementálja, és az R1 és R4-et inkrementálja. Ennek a végén R4-ben már 2*(R1 kiinduló értéke) lesz, és R1 újra a kiinduló értéken van.
Na most ezt az egészet beágyazod egy külső ciklusba, ami az R2-n megy végig lefelé, minden egyes belső ciklus végrehajtásakor dekrementálva R2-t, amíg R2 is 0 nem lesz. Mivel igazából két belső ciklus van, ezért mindegyik végrehajtása előtt ellenőrizni kell, hogy elérte-e R2 a 0-t.
És a legvégén R4-ben ott lesz (R1 kiinduló értéke)*(R2 kiinduló értéke), miközben végig csak increment, decrement, feltételes jump utasításokat használtunk.
-
kovisoft
őstag
válasz
total90
#11907
üzenetére
Arra egyelőre nem jöttem még rá, hogy miért hagyja abba a számlálást egy db email után, de a Mennyiseg növelésénél mindig 1-et kellene hozzáadni, nem pedig oItem.Attachments.Count-ot, hiszen minden pdf-re 1-gyel akarod növelni a számlálót, nem annyival, amennyi akármilyen attachment-je van az adott email-nek:
Mennyiseg = Mennyiseg + 1Szerk: Látom, közben megoldódott.

-
kovisoft
őstag
válasz
total90
#11905
üzenetére
A Mennyiseg nevű változó értékét nem növeled minden egyes pdf megtalálásakor, így amikor kiteszed a message box-ot, akkor 0-t mutat.
Ahol az MsgBox sorod van, oda a Mennyiseg változó növelését kellene tenni, az MsgBox sorodat pedig ki kellene tenni a ciklusok utánra. És én inicializálnám a kód elején a Mennyiseg-et 0-ra. -
kovisoft
őstag
válasz
Lokids
#11675
üzenetére
Ha ezt pl. az Excel-ben akarod használni, akkor ott úgy vettem észre, hogy a Long csak 32 bites, ami előjelesen csak valamivel több, mint 2 milliárdot tud tárolni. Ha összeadod az a és b változódat, akkor az összeg már 3 milliárd fölött van, tehát itt szerintem az összeadás fog túlcsordulni és nem az osztás.
-
kovisoft
őstag
Jogos, én a C-ből (és hasonló nyelvekből) indultam ki, de most utánanéztem, és VBA-ban úgy van, ahogy írod. Akkor viszont a problémája is más lesz. Írta is, hogy kis értékekkel működik, és csak akkor van gond, ha milliárdos értékekkel számol.
@Lokids: tudnál írni egy konkrét példát, amikor hibát kapsz?
-
kovisoft
őstag
válasz
Lokids
#11670
üzenetére
Mi a célod a "double = long / long" művelettel? Ha a végén egy törtszámot akarsz kapni, akkor ez így nem lesz jó, mert a "long / long" egy egészértékű maradékos osztás, aminek az eredménye is egész (long) típusú lesz, tehát így elveszted a törtrészt, hiába teszed be utána egy double-be. Ahhoz, hogy törtszámot kapj, lebegőpontos műveletet kell végezz, amiben legalább az egyik változó valamilyen lebegőpontos formátumban van (pl. double). Tehát pl. valami ilyesmit:
double = double / long
double = long / double
double = double / doubleEhhez vagy az osztandót és/vagy az osztót is double-ként kell felvenned, vagy maradhatnak long-ok, és az osztáskor kell típuskonverziót alkalmazni.
-
kovisoft
őstag
válasz
K1nG HuNp
#11652
üzenetére
+1 nélkül azért lesz üres a válasz, mert az olyasmit jelentene, hogy "melyik a legkisebb év, amikor indult az osztály, azon évek közül, amikor nem indult az osztály". Ez nyilván ellentmondás, így csak üres halmazt eredményezhet.
A +1 azért kell, hogy azon évek közül, amikor indult az osztály, a rákövetkezőket nézze, és ezek közül válassza ki a legkisebb olyat, amelyikben nem indult az osztály.
-
kovisoft
őstag
válasz
Chesterfield
#11646
üzenetére
Néhány ötlet:
Ha magadnak csinálod (vagy belefér az, hogy nem teljesen automatikus, hanem a usernek ki kell adnia ehhez egy parancsot), akkor így:
git update-index --assume-unchanged path/to/fileHa kvázi-automatikusra akarod, és belefér, hogy két config file-od van, akkor csinálsz egy (tracked) default config file-t és másik néven egy (untracked) local config file-t, azaz erről csak tudatod a felhasználót, mert ez nem lesz a repositoryban. Beolvasáskor megnézed, hogy van-e local config, és ha van, akkor az abban levő beállításokat használod, minden más beállítást a default config-ból veszel. És bele kell tenni a .gitignore-ba a local config nevét, hogy figyelmen kívül hagyja a git.
Vagy a fenti annyiban módosítva, hogy a default config file igazából csak egy sample, és ha még nem létezik az igazi config file, akkor deploy-kor átmásolod az igazi config file-ba (aminek a nevét szintén beleteszed a .gitignore-ba). Ezt a user már szabadon módosíthatja. És ekkor csak egy config file-t kell olvasni, de vagy kell egy deploy lépés vagy a usernek kézzel kell átmásolnia a file-t.
-
kovisoft
őstag
válasz
dangerzone
#11614
üzenetére
Leginkább talán C++. A Tesla pl. C/C++ programozókat keres az önvezérlő szoftverek fejlesztéséhez (C-t a firmware-hez, C++-t a vezérléshez). De tudtommal a Google-nél is hasonló a helyzet.
-
kovisoft
őstag
-
kovisoft
őstag
válasz
bandi0000
#11571
üzenetére
Ha 4 elemről van szó, akkor gondolom 16 bites word-öknek kell négyesével a maximumát venni, így a pmaxsw utasítást kell használni. Írnod kellene egy ciklust, ami 8 byte-onként (64 bitenként) végigmegy a tömbödön, és végrehajtja a pmaxsw utasítást a tömb legelején, ill. a tömb i-edit 8 byte-os szegmensén. Így a legvégén a tömböd legelejében benne lesz a 4 maximális érték.
Ha a folyamat során nem szabad elrontani a tömböt, akkor annyi plusz teendő van, hogy először át kell valahová másolni a tömb első 8 byte-ját, és aztán mindig ez a memóriaterület legyen a pmaxsw első operandusa (ugyanis ide íródik vissza a maximum érték), a második operandus továbbra is a tömb i-edik 8 byte-os szegmense.
-
kovisoft
őstag
válasz
Mr Dini
#11555
üzenetére
Igen, most már látom, hogy a "[^"]+" típusú kifejezések azt akarják jelenteni, hogy "idézőjelek között bármi, ami nem idézőjel". Esetleg be tudnál másolni egy html részletet, amiben az adott reguláris kifejezés találatot kellene jelezzen? Csak mert ez a kifejezés nem túl általános, pl. kell egy sortörés legyen az "a" és az "img" tagek között, a kulcsszavak között pontosan egy szóköz lehet, a kulcsszavak egy adott sorrendben jöhetnek, stb, tehát ez nem egy általános html parszoló.
Viszont ha kipróbáltam egy kamu html szövegrészlettel, ami megfelel a fenti feltételeknek, akkor arra jelzett is találatot:
> for x,y in string.gmatch('<a href="aaa" class="bbb">\n<img src="ccc" class="ddd" alt="eee"','<a href="([^"]+)" class="[^"]+">\n<img src="([^"]+)" class="[^"]+" alt="([^\"]+)"') do print(x,y) end
aaa ccc -
-
kovisoft
őstag
válasz
bandi0000
#11480
üzenetére
A psub-nak mindegy, hogy előjeles vagy unsigned számokkal dolgozol, de a túlcsordulást ill. a negatív előjelet neked kell lekezelned (pl. csak viszonylag kis számokat vonsz ki, és akkor a legfelső bit mindig az előjel lesz).
A psubs csak előjeles számokat kezel, mert a túlcsordulást mindkét irányban a szélsőérték beállításával kezeli (szaturáció, telítés). Ezt leszámítva szerintem mindegy, hogy melyiket használod kellően kis számok kivonására. Viszont a végén kell még egy abszolút érték, ez a pabsb/pabsw/pabsd. Mármint ha jó értelmeztem a feladatot.
-
kovisoft
őstag
válasz
bandi0000
#11476
üzenetére
Túlcsordulás mindig lesz, csak az a kérdés, hogy milyen nagy számoknál következik be. Byte-os összeadásnál akkor, amikor az összeg eléri a 256-ot, word-nél 65536 elérésekor, stb. Mivel a padd tud 64 bittel műveletet végezni, ezért ha két 4 elemű tömböt akarsz összeadni, akkor definiálhatod őket short-ként, ahogy a korábbi példádban volt, de használd hozzá a word-ös paddw-t, ami 4 db 16 bites word-öt ad össze.
-
kovisoft
őstag
válasz
bandi0000
#11473
üzenetére
Nem mindegy, hogy char-ként vagy short-ként, stb. adod össze a számokat, mert mindegyiknek más a tartománya, ami fölött túlcsordul a művelet. Byte-osan összeadva pl. a 250+10=4 lesz, mert max. 255-öt tudsz tárolni egy byte-on, de short-ként elfér ugyanez az összeg. Az sem mindegy, hogy hány elemű tömböket tudsz így összeadni, mert byte-ból egyszerre 8-at, de short-ból csak 4-et.
Az mm0-ban ugyanúgy tömbként lesz tárolva az eredmény, mint amilyen a bemenő operandus volt, innen ugyanúgy egy movq-val tudod kiírni memóriába (mondjuk egy C tömbbe).
-
kovisoft
őstag
Még néhány gyakori feladat:
- faktoriális számítás
- állapítsd meg két szám legnagyobb közös osztóját
- döntsd el egy számról, hogy prímszám-e
- döntsd el egy számról vagy stringről, hogy palindrom-e
- cseréld fel két változó értékét harmadik változó használata nélkül
- döntsd el egy láncolt listáról, hogy tartalmaz-e hurkot, ill. ugyanez extra memória (segédtömb, stb) használata nélkül
- fordíts meg egy egyszeresen láncolt listát
- fordíts meg egy számot
- bináris kereséssel keress meg egy elemet egy rendezett tömbben
- hagyd ki egy tömbből a duplikált elemeket
- állítsd elő egy string összes permutációjátMeg persze a szokásos "mit csinál az adott program", "mi a hiba az adott programban" típusú kérdések.
-
kovisoft
őstag
-
kovisoft
őstag
válasz
K1nG HuNp
#11376
üzenetére
Szerintem tedd be az if-be az strcmp-t, és minden egyes új parancsot egy új "else if" ágban vizsgálj, pl. valahogy így:
...
if (strcmp(input, "help") == 0) {
printf("Jelenleg elerheto parancsok: korkt, szupermatekfv\n");
}
else if (strcmp(input, "korkt") == 0) {
korkt();
}
else if (strcmp(input, "szupermatekfv") == 0) {
szupermatekfv();
}
else {
printf("Nincs ilyen parancs.\nAz elerheto parancskhoz irj helpet.\n");
}Ha nem akarod, hogy a cmd ablak becsukódjon, akkor az egyik lehetőség, nem közvetlenül az exe-t futtatod, hanem nyitsz egy cmd ablakot, és abból indítod az exe-t. Másik lehetőség, hogy (ahogy írtad) a program végére beraksz valamilyen inputra várakozást, pl. egy getchar() vagy scanf() hívást, esetleg egy system("pause") parancsot.
-
kovisoft
őstag
válasz
axioma
#11374
üzenetére
Nem, ez nem fordítói jófejség, és nem csak a scanf-ben működik így, az egésznek mélyebb oka van. A char *ptr egy pointer, ahol a változó tartalma egy memóriacím, amire mutat. A változó értékét módosíthatod, és akkor egy másik memóriaterületre fog mutatni.
A char str[10] változó ezzel szemben ténylegesen azt a 10 byte-ot jelenti, amit lefoglalt számára a fordító, és nem változtathatod meg, hogy milyen memóriacímre mutasson. Tehát amíg ez legális: ptr=str, addig ez nem legális: str=ptr. De másként működik rájuk a sizeof is: sizeof(str)=10 lesz, nem pedig a pointer mérete (pl. 8).
Abban viszont tökéletesen egyetértünk, hogy nem jó gyakorlat a konkrét esetben &-tel használni, én sem szoktam, és nem is buzdítottam senkit erre. Ahogy írtad, egy kezdőnek az &input[0] a legbiztonságosabb forma.
-
kovisoft
őstag
válasz
dabadab
#11372
üzenetére
Akkor van az, amit írsz, amikor a stringre egy char* típusú pointer mutat. A konkrét esetben viszont egy char input[10] típusú változóról, illetve annak a címéről van szó, és ennél input ugyanaz, mint &input. Lásd pl. ezt a választ.
-
kovisoft
őstag
válasz
bandi0000
#11369
üzenetére
A scanf-nek a változóra mutató pointert kell átadni, amilyen címre a beolvasott értéket tenni kell. Tömbök esetében (a string is egy karakter tömb) a változó neve egyben a tömb első elemére mutató pointer is, tehát az input ugyanaz, mint az &input[0]. Más jellegű (pl. char vagy int) változók esetében természetesen kell az & a scanf-be, mivel ezeknél a változó nevét beírva a változó értékére hivatkozunk (tehát char-nál is kell & a scanf-be).
-
kovisoft
őstag
válasz
bandi0000
#11367
üzenetére
Néhány megjegyzés:
A string változó neve egyben a stringre mutató pointer is, tehát string bekérésekor nem kell & a változó neve elé (de persze lehet elé tenni &-t, ugyanaz lesz az eredmény).
Az if-ben az input változót kell hasonlítani a "help" stringgel.
Az strncmp-nek van egy harmadik (hossz) paramétere is. De szerintem ilyen esetben nem indokolt az strncmp. Az strncmp(input, "help", 4) ugyanaz lesz, mint az strcmp(input, "help").
-
kovisoft
őstag
-
kovisoft
őstag
válasz
K1nG HuNp
#11351
üzenetére
Szigorúan a magánvéleményem, de szerintem akinek nem ment a középiskolai matek, annak méginkább meg fog gyűlni a baja a felsőbb matematikával. Az érettségi csak arra jó visszajelzés, hogy a középiskolai szintet megugrottad, de ha ehhez már eleve egy csomót kellett pluszban küzdened, akkor mi lesz majd később?
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- LG OLED65C31LA 65" OLED 4K UHD evo TV! G-Sync / 100Hz
- LG OLED65B49LA AI 4K HDR 120HZ Smart Gaming 65" OLED TV!
- GAMER PC! Intel i7-13700 / RX 7900 XT / 32GB DDR5 / 1TB Gen4 / B760 Tomahawk / 750w! BeszámítOK
- RTX 5070 Ti OC 16G/ új, bontatlan/ 3 év garancia/ beszámítás/ ingyen foxpost
- Csere-Beszámítás! Garancia! Steam Deck LCD 512GB + 256GB Ajándék Micro SD Kártya!
- Bomba Ár! Lenovo ThinkPad E14 G2 AMD - Ryzen 5 I 8GB I 256SSD I 14" FHD I HDMI I W11 I Gari
- Nokia 5.3 64GB, Kártyafüggetlen, 1 Év Garanciával
- LG 55C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
- LG 77G4 - 77" OLED evo - 4K 144Hz 0.1ms - MLA - 3000 Nits - NVIDIA G-Sync - AMD FreeSync - HDMI 2.1
- Xiaomi Redmi 12C 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



