- Az Euronics is elkezd használt mobilokkal foglalkozni
- Az Oppo Find X8 Ultra lett a legvékonyabb kameramobil
- Xiaomi 15 - kicsi telefon nagy energiával
- Keretmentesít a Galaxy S25 FE
- Samsung Galaxy Watch6 Classic - tekerd!
- Samsung Galaxy A52s 5G - jó S-tehetség
- iPhone topik
- Xiaomi 15 Ultra - kamera, telefon
- Hammer 6 LTE - ne butáskodj!
- Magisk
Új hozzászólás Aktív témák
-
WonderCSabo
félisten
A cél az lenne, hogy az első form textbox-ából adja át a szöveget a második formban található labelnek.
Nem értem mi ezzel a gondod:
public partial class Form1 : Form
{
private Form2 frm2;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
frm2 = new Form2();
frm2.Show();
}
private void button1_Click(object sender, EventArgs e)
{
frm2.LabelText = textBox1.Text;
}
}public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public String LabelText { set { label1.Text = value; } }
}Szabesz: Jaja, pont most akartam írni. Nem végtelen ciklus, hanem végtelen rekurzió, de mindegy is.
-
WonderCSabo
félisten
válasz
Jester01 #3329 üzenetére
Én mindjárt megnézem, ha VS elé kerülök. Én teljesen tisztán emlékszem arra, hogy felhasználói bezárás után exceptiont kaptam újbóli megnyitás miatt. Viszont most az télleg homályos, hogy WinForms vagy WPF alatt (ugyanazt az alkalmazást kellet megírnom mindkét felületen, ezért mosódik össze).
-
WonderCSabo
félisten
Én a static class helyett gondoltam a propertyre a form osztályában.
Mert gondolom példányosítva van, bár a kérdésből nem teljesen tiszta.
De több különböző formról beszéltünk itt, vagy nem?
Mert kicsit feleslegesnek tartom mindig újra létrehozni a formokat, ha pl. a főablakból nyitják, bár lehet, hogy teljesen rosszul gondolkodom.
Sajnos sok esetben kötelező újra létrehozni őket. Pl. ha megjeleníted a Form-ot Show(Dialog) metódussal, aztán a user bezárja, akkor már nem is jelenítheted meg újra Show-al.
-
WonderCSabo
félisten
Pl. definiálsz egy osztályt, amiben van egy statikus változó, a Te stringed. Mindegyik formban el tudod érni ezt a változód Osztálynév.változónév szintaktikával, és mivel a vált. statikus, mindenhol ugyanarra hivatkozol.
A WinForms-ot nem ismerem annyira, lehet, hogy van vmi speckóbb megoldás is rá.
-
WonderCSabo
félisten
Sztem borzalmas lett az új felület, mintha visszaugrottunk volna az időben.
-
WonderCSabo
félisten
válasz
trisztan94 #3241 üzenetére
Nem is értem miért kell ezt ennyire túlbonyolítani. Egyszerűen egy db int-ben tárolod elsőnek felforgatott gomb indexét. Ha gombok[lastIndex].Text == sender.Text, akkor mindkettőt fehérre állítod. Minden második kattintás után meg mondjuk a lastIndex-et -1 -re állíthatod, ezzel tudod magadnak jelezni, hogy még nem kattintottak először.
A magyar elnevezéseket, főleg az ékezetes
elnevezéseket nagyon messziről kerüld el.
Bazzeg nem igaz, hogy Jester leírta már ugyanezt előttem.
-
WonderCSabo
félisten
Nyilván valamit valamiért alapon megy ez is, mivel karban kell tartani a index-et.
Nem, nem kell karbantartani semmiféle indexet. Az elem címe lekéréskor, hozzáadáskor, törléskor is a kulcs alapján a hash fv-el képződik le, ez O(1) - es művelet. Itt hozzáadáskor lehet csak egy kis probléma: ha kezd betelni a hashtábla, akkor nagyobbat kell lefoglalni, és átmásolni az elemeket. Ha pedig a hash fv már meglévő elem indexét képezi, akkor ezt az ütközést fel kell oldani. A HashTable ezt újrahasheléssel oldja meg, a Dictionary pedig láncolással. Vagy erre értetted az index karbantartását?
-
WonderCSabo
félisten
válasz
martonx #3223 üzenetére
Sztem a kérdés arra vonatkozott, hogy hogyan lehet generáltatni.
-
-
WonderCSabo
félisten
Elírtam, úgy értettem, hogy a HashSet is az, a HashTable osztály valóban nem az. A többinél pedig direkt magyarul kisbetűvel írtam, mert általánosságban beszéltem a hashtáblálról, nem a HashTable osztályról.
Mellesleg természetesen a HashTable annyival tud többet a HashSetnél, hogy az előbbi kulcs-érték párokat tárol, az utóbbi csak kulcsokat. De HashTable helyett akkor inkább Dictionary.
-
WonderCSabo
félisten
A hashtábla is generikus.
Már leírtam az előnyeit. Konstans idejű hozzáadás (majdnem mindig), eltávolítás és lekérés, asszem ezek önmagukban bőven elegendő érvek.
Szerk.: A második részre: a kód is sokkal tisztább vele, plusz miért ne oldhatnánk meg elegánsabban a dolgot, ha már van mód rá. Én csak beposztoltam a kódot, hogy ezt megmutassam. Meg amúgy is ezek a kis programok csak példák, a való életben nem 10 elemű listákkal fog csak foglalkozni a tanuló.
(#3217) Szabesz: Okés.
-
WonderCSabo
félisten
Te most vmit nagyon elnézel... És még idézted is azt, hogy
A set is a collection that contains no duplicate elements
Tehát: nem lehetnek benne duplikált kulcsok. Pont ezt használtam ki ennél a kis kódnál. A hashtábláknak pedig óriási előnyei vannak más adatszerkezetekkel szemben, egy kis ízelítőért lásd előző hszemet...
Szerk.: Ja látom már kiderült a dolog.
Szabesz: Az if is feleslegs, az csak azért van ott, hogy dupkilálás esetén várjon picit a progi, de teljesen felesleges várni.
stevve: de akkor már inkább vizsgálnám, hogy van-e már ilyen a kollekcióban
Ez az amit a hashtábla konstans idő alatt tesz meg a hozzáadással, Te pedig minden egyes új szám hozzáadásánál lineáris keresést végeznél...
-
WonderCSabo
félisten
válasz
Jester01 #3207 üzenetére
Ez természetesen így van, de 10 db (vagy sokkal több) szám esetén 1-hez nagyon közeli valószínűséggel nagyon rövid idő alatt fut le. Én tesztelgettem ezt, és még sosem sikerült elhúzni az időt ezzel. Persze ha biztosra akarsz menni, akkor csinálsz egy láncolt listát 1-n-ig, megkevered őket, aztán random indexeket választasz és a választottad kiszeded a listából, csinálod ezt amíg üres nem lesz a lista.
-
WonderCSabo
félisten
válasz
Jhonny06 #3205 üzenetére
Nem, egyáltalán nem. Az STL vector egy sima tömb, csak van rá húzva egy pár fv, növeli a méretét, hogy ha kell, stb. A HashSet pedig egy hashtáblán alapuló adatszerkezet. És amiért jó nekünk ide a hashtábla:
- nem lehet duplikált kulcsokat belerakni
- a berakás (az esetek nagy részében), és a többi alapművelet mindig (persze ezek most nem is kellenek) konstans komplexitásúTermészetesen az STL vectorra egyik sem igaz (kivéve a berakást), hisz az csak egy tömb. Ami miatt viszont gondot okozhat a hashtábla, az az, hogy az elemek semmilyen sorrendiséget nem fognak megtartani (tehát se a kulcsok rendezése alapján, se a berakás szerint), de jelenleg ez sem probléma.
-
WonderCSabo
félisten
Bajban vagyok. KeyDown eventet akarok elkapni, de az istennek se akar működni. Ha a form-ra bmit rápakolok, nem működik a cucc, csak üres form esetén. A KeyPreview propertyt True -ra állítottam. Mi lehet a gond?
-
-
WonderCSabo
félisten
válasz
Neil Watts #3020 üzenetére
Miért ez így miért nem jó? Attól eltekintve, hogy a max/min keresés ciklusában n-szer kiirod a még be nem fejezett max/min keresés eredményét...
-
WonderCSabo
félisten
válasz
martonx #2969 üzenetére
ööö, ez egy baromi egyszerű probléma, ennyire bonyolultan írtam le ?
A stringben csak a kövi 3 karakter lehet: n, f, e . Ha bmi egyéb más akár csak egyszer is előfordul benne, akkor már nem valid.
Egyébként közben rájöttem, hogy regexel baromi egyszerűen megoldható. Esetleg van még egyszerűbb megoldás?
-
WonderCSabo
félisten
Hello!
Hogyan tudnám okosan ellenőrizni, hogy a stringem tartalmaz-e általam nem érvényesnek tartott karaktereket (az érvényesek ismeretében). Az okos alatt úgy értem, hogy nem for -al és if - el, hanem mondjuk LINQ-val.
Köszi!
-
WonderCSabo
félisten
válasz
Gülredy #2461 üzenetére
A % operátor a modulus operátor, nem az osztás eredményét adja vissza, hanem hogy mennyi a maradék. Pl. 5 % 2 == 1.
Ergó ez a kifejezés : x % x == 1 && x%1 == x semmilyen számra nem lesz igaz, hiszen egy számot önmagával leosztva a maradék mindig 0, illetve egyel osztva szintén.
Továbbá, a prímszákat a nem prímszámoktól az különbözteti meg, hogy a prímszámoknak pontosan 2 osztója van: 1 és önmaga. A nem prímeknek minimum 3.
"ha önmagával osztom akkor az 1, ha 1 el osztom akkor önmaga"
Ez minden számra igaz, nem csak a prímekre.
A prímség eldöntését első körben úgy szokták megírni, hogy egy ciklusban modulussal osztogatják a számot, és ha a modulus 0-át ad, akkor ugye egy osztót találtak. Ekkor a számlálót megnövelik egyel. A végén megnézik, hogy a számláló 2-e vagy sem.
-
WonderCSabo
félisten
válasz
WonderCSabo #2188 üzenetére
for (int i = 0; i<3; i++)
{
for (int j = 0; j<3; j++)
{
if (i == j || j == i-1)
M[i, j] = 3.14;
else
M[i, j] = rndm.Next(100, 200);
}
} -
WonderCSabo
félisten
-
WonderCSabo
félisten
válasz
prog1000 #2182 üzenetére
A megoldás pofonegyszerű, ha ismered a mellékátló és a főátló definícióját...
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Autós topik
- Kerékpárosok, bringások ide!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Az Euronics is elkezd használt mobilokkal foglalkozni
- Interactive Brokers társalgó
- Az Oppo Find X8 Ultra lett a legvékonyabb kameramobil
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Napelem
- Xiaomi 15 - kicsi telefon nagy energiával
- ASUS routerek
- További aktív témák...
- AKCIÓ! AMD Ryzen 9 7950X 16 mag 32 szál processzor garanciával hibátlan működéssel
- LG 65QNED86T / 65" - 164 cm QNED / 4K UHD / 120Hz & 3ms / HDR 10 Pro / FreeSync Premium / HDMI 2.1
- Keresem : Lenovo Legion 5 16IRX9 83DG0037HV
- Csere-Beszámítás! Felsőkategóriás számítógép PC Játékra! I9 13900KF / RTX 4080 / 32GB RAM / 1TB SSD
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged