- Azonnali informatikai kérdések órája
- Milyen egeret válasszak?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Milyen videókártyát?
- Bluetooth hangszórók
- Milyen TV-t vegyek?
- NVIDIA GeForce RTX 3060 Ti / 3070 / 3070 Ti (GA104)
- Azonnali VGA-s kérdések órája
- Apple asztali gépek
- AMD K6-III, és minden ami RETRO - Oldschool tuning
Ú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!
- Azonnali informatikai kérdések órája
- Milyen egeret válasszak?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Milyen videókártyát?
- Kerékpárosok, bringások ide!
- One otthoni szolgáltatások (TV, internet, telefon)
- Bluetooth hangszórók
- Milyen TV-t vegyek?
- Víztisztító berendezések - kancsók - szűrőbetétek
- Budakeszi, Páty, Telki, Budajenő, Zsámbék, Tök, Perbál topik
- További aktív témák...
- Uhh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 16/1TB RTX A2000 4GB /1 Millió/
- Esport PC - i5 13400F, GTX 1080ti és 16gb DDR5
- Ohh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 32/1TB RTX A2000 4GB /1 Millió/
- AZTA! HP EliteBook 840 G8 Fémházas Laptop Ultrabook 14" -60% i7-1185G7 16/512 FHD IPS Iris Xe
- Sony PlayStation 5 (PS5) Játékkonzol - Lemezes verzió, dobozában!
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B450 R5 5500 16GB DDR4 512GB SSD RTX 2060 Super 8GB SilentiumPC Signum SG1V TT 500W
- ÁRGARANCIA! Épített KomPhone i5 14400F 32/64GB DDR5 RTX 5060Ti 8GB GAMER PC termékbeszámítással
- Apple iPad Air 4 64GB Kártyafüggetlen 1Év Garanciával
- HP 200W (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm töltők + tápkábel, 928429-002
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest