Hirdetés
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
- Apple TV+
- Windows 11
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- KAÜ/Ügyfélkapu – már elérhető a kétfaktoros hitelesítés
- SkyShowtime
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Mikrotik routerek
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- Linux kezdőknek
- Disney+
Új hozzászólás Aktív témák
-
Jhonny06
veterán
Sziasztok!
Ha egy feladat azt kéri, hogy a memóriában egyidejűleg való tárolás nélkül oldjam meg a részfeladatokat, akkor az pl. már nem jó, hogy a feladat elején beolvastam egy string tömbbe a .txt sorait és ennél a részfeladatnál simán nyomok egy string[].Length()-et, amikor a sorok számát kéri? Tehát itt inkább az a jó, ha végigmegyek egy egyszerű számlálóval a sorokon? Soha nem találkoztam még ezzel a kikötéssel, eléggé félrevezető (nekem).
Ugyanez pl., hogy a következő feladatnál meg kell állapítani, hogy a sor egy bizonyos CHAR-t tartalmaz-e és ha igen, akkor azt megszámolni. Ezt megint könnyedén meg lehet oldani úgy, hogy a feladat elején beolvasott tömböt átadom a függvénynek és végigmegyek for ciklussal, de gondolom akkor ez sem elfogadható. Akkor itt megint soronként végig kell menni tárolás nélkül?
[ Szerkesztve ]
-
Jhonny06
veterán
Sziasztok!
Van olyan függvény, amivel meg lehet állapítani, hogy mikor történik klikkelés az egérrel? Nem form-on belül értem, hanem mondjuk fut a számláló program a háttérben, de form-on kívül, bármilyen alkalmazásnál számolja. Kerestem, de ilyet sehol nem találok, mindenhol ablakon belüli példák vannak. Köszi!
-
Jhonny06
veterán
válasz jbauer05 #4853 üzenetére
A textBox1.Text property tartalmazza a textBox-ba írt szöveget. Ez ugye alapból string, de int.Parse-al át tudod alakítani egésszé a feltételben pl. és egyből ellenőrizni, kisebb-e, nagyobb-e, stb.
Már ha jól értettem, hogy mit akarsz.
if(int.Parse(textBox1.Text) > int.Parse(textBox2.Text))
{
összeadás..
}[ Szerkesztve ]
-
Jhonny06
veterán
Üdv!
Ha egy függvényben kiiratok valamit, majd egy másikban megint és csak itt hívom meg a Console.Clear()-t, akkor az első függvényben kiírt adatokat nem törli. Ezen lehet segíteni valahogy? Tehát az egész console-nak üresnek kéne lennie. Utálom használni ezt a módszert, de olyan beadandót kaptam, amit máshogy jelenleg nem tudok megoldani, szorít az idő is. Köszi.
[ Szerkesztve ]
-
Jhonny06
veterán
Az egy dolog, hogy ti abban fejlesztetek, de rendes támogatás már több, mint egy éve nincs rá. A kezdetektől fogva egy elbaszott technológia. Külön plugin kell hozzá, erőforrás igényes és semmi olyat nem lehet vele csinálni, amit mással ne lehetne megoldani. Kb. mint a Flash, csak rosszabb.
-
Jhonny06
veterán
válasz martonx #3281 üzenetére
Egy IntelliSense-hez vagy IntelliTrace-hez képest ezek az új feature-ök századrangú fejlesztéseknek tűnnek és azok is. Tehát egy 2005-ről 2008-ra vagy 2008-ról 2010-re való lépéshez képest ez így nulla.
"Miben tudjon többet a VS2012 ilyen fejlesztéskor, mint a VS2010"
Semmiben, mint ahogy nem is írtam ilyen. Mindenre kiterjedő, tényleg hasznos újításokat kell (kéne) beletenni, mint pl. a fentebb említett dolgok.
[ Szerkesztve ]
-
Jhonny06
veterán
válasz WonderCSabo #3204 üzenetére
Ez a HashSet kvázi a C++-os vector ekvivalense?
-
Jhonny06
veterán
válasz WonderCSabo #3202 üzenetére
Ilyeneket nem tudok, sorry.
-
Jhonny06
veterán
válasz atti1848 #3200 üzenetére
Dobhat, mert gyakorlatilag az idő függvényében generálódnak a számok, így minél kisebb az értéktartomány, annál valószínűbb, hogy lesz több ugyanolyan elem is. Ha késleltetés nélkül fut, akkor meg pláne, hiszen nincs idő nagyobb tartományban generálni, ezért érdemes.
Viszont a késleltetés megtétele után még mindig ott van a Te megoldásod, miszerint ellenőrizheted, hogy nincs-e két ugyanolyan érték a tömbben, egy egymásba ágyazott for ciklussal. Azért ajánlottam előbb a késleltetést, mert ha kicsi az értéktartomány és kvázi majdnem mindig hasonló értéket generál a kód, akkor szépen "végtelen" (persze nem teljesen) ciklus jön létre, mert ugye kap a tömb egy számot és összehasonlítja az következővel, ami ugyanaz, meg újra ugyanaz, stb. és csak akkor csinál valamit, ha a két szám nem egyezik meg, tehát ezzel nem árt vigyázni.
Szóval az a legjobb megoldás, ha először ellenőrzöd, hogy nincs-e benne már, majd generálsz és késleltetsz.
for (int i = 0; i < szamok.Length; i++)
{
for(int j = 0; j < szamok.Length; j++)
{
if(szamok[i] != szamok[j])
{
szamok[i] = rnd.Next(1, 90);
Thread.Sleep(100);
}
}
}[ Szerkesztve ]
-
Jhonny06
veterán
válasz atti1848 #3197 üzenetére
Nem árt késleltetni egy kicsit:
Thread.Sleep(1000);
A paramétert ezredmásodpercben kell megadni, azaz a fenti kód 1 másodperccel fogja késleltetni, de ez sok a program futásakor, azaz olyan 10-100 közötti érték már ideális. Túl gyorsan generálódnak az értékek.
Ilyesmit is lehet:
using System;
using System.Threading;
public static class RandomHelper
{
private static int seedCounter = new Random().Next();
[ThreadStatic]
private static Random rng;
public static Random Instance
{
get
{
if (rng == null)
{
int seed = Interlocked.Increment(ref seedCounter);
rng = new Random(seed);
}
return rng;
}
}
}Amúgy a dupla for ciklusnak semmi értelme, mert pont akkor nem tesz bele értéket, amikor nem egyenlő egy másik számmal és neked pont akkor kéne, amikor nem egyenlő. Így akkor tesz bele, amikor egyenlő.
Ennyi az egész:
Random rnd = new Random();
int[] szamok = new Int32[5];
for (int i = 0; i < szamok.Length; i++)
{
szamok[i] = rnd.Next(1, 90);
Thread.Sleep(100);
}
for (int i = 0; i < szamok.Length; i++)
Console.WriteLine(szamok[i]);System.Threading-et using-olni kell természetesen.
[ Szerkesztve ]
-
Jhonny06
veterán
Sziasztok!
Form alkalmazáshoz mi a legegyszerűbb módszer az idő mérésére (00:00 - másodperc:perc alapon, később átváltani másodpercre az egészet). Elindítani és megállítani kéne tudni, semmi extra.
Keresgéltem a neten, de nem találtam értelmes segítséget. Nem tudom, hogy a beépített timer erre mennyire alkalmas (?).
[ Szerkesztve ]
-
Jhonny06
veterán
Az hogy lehet, hogy írni akarok egy teljesen újonnan létrehozott file-ba és kiírja, hogy egy másik process használja?
Így próbáltam:
StreamWriter sw = new StreamWriter("path");
Aztán
sw.WriteLine(data);
-
Jhonny06
veterán
3X3-as amőba játékot próbálnék írni, ide bemásoltam a játék végét ellenőrző függvényt, ami minden lépés után lefut.
De ezzel az a baj, hogy csak azt érzékeli, amikor az általam kiválasztott karakterrel levő játékot nyer. Többjátékos módról van szó, azaz az elején kiválasztja az első valamelyik karaktert (X vagy O) és azzal kezdi a lépést, a másik meg automatikus a másik karaktert kapja meg és azzal lép. Tehát ha az elején kiválasztom az X-et és azzal nyerek, az OK. De ha játszik velem valaki és ő automatikusan az O-t kapja és ő nyer, akkor semmi.
A StepHappened kétdimenziós tömb reprezentálja azt, hogy hol történt a lépés, a Choice pedig egy char, ami a játék elején kiválasztott X-et vagy O-t tartalmazza.
Próbáltam kiterjeszteni a függvényt, a végén vagy 4X ekkora lett, de mindig összeakadt és olyan helyeken írt ki játék végét, ahol nem volt indokolt.
-
Jhonny06
veterán
válasz Realradical #3146 üzenetére
Ja. A sok spam meghozta gyümölcsét.
-
Jhonny06
veterán
válasz Realradical #3144 üzenetére
Valóban, köszi.
-
Jhonny06
veterán
válasz Realradical #3140 üzenetére
Paraméterbe simán this.függvénynév kell?
Sima kétparaméteres eventHandler egyékbént.
public void newGame(object sender, EventArgs e)
{
//...
}Bár lehet, hogy még a paraméterek se kellenek, nem is használom a függvényen belül.
-
Jhonny06
veterán
válasz Realradical #3140 üzenetére
Köszönöm, így megy.
-
Jhonny06
veterán
-
Jhonny06
veterán
Egy formon belül lehet használni egy másik form eseménykezelőjét? Mert ugye csak a sajátjait látja alapból. Próbáltam publiccá tenni, de nem megy.
-
Jhonny06
veterán
Egy pictureBox tartalmát hogy tudom törölni? Így próbáltam, de semmi.
pictureBox1.Image = null;
vagy
pictureBox1.Invalidate();
Egyik se megy. Próbáltam utána frissíteni a Formot, de még mindig benne van a kép. Ráadásul akkor újratölti az egész progit, ami nekem nem jó, mert van egy felugró ablak az elején, amit értelemszerűen nem akarok, hogy újra megjelenjen, mert annak csak a program indításakor kell felugrania. Bár ezt ki tudom védeni egy segédváltozóval, nem egy nagy kaland, de maga a kép akkor se tűnik el. Köszi.
[ Szerkesztve ]
-
Jhonny06
veterán
válasz WonderCSabo #3126 üzenetére
Köszönöm.
-
Jhonny06
veterán
Az lehet, hogy nem tudom elérni a DispatcherTimer classt? A System.Windows.Threading-en belül van, de nem tudok rá hivatkozni using-al. WindowsBase.dll assembly-ben van, valahogy hozzá kéne adni referenciaként a Visual Studio-ban?
-
Jhonny06
veterán
válasz Peter Kiss #3116 üzenetére
Nem ez volt az, de így is megy, köszi.
-
Jhonny06
veterán
Sziasztok!
Ezt hogy tudnám átkonvertálni, hogy működjön (utolsó sor)? Régen mintha castolással összejött volna, de most sehogy se megy.
Control s = sender as Control;
if (game.Choice == 'X')
s.BackgroundImage = "\\images\\char_x.png"; -
Jhonny06
veterán
válasz petersonal #3049 üzenetére
Azt is tolom, de nem.
-
Jhonny06
veterán
Vicces? Azt a pár controlt behúzod a toolbox-ból és oda helyezed, ahova akarod. Ebbe nem az UI a lényeg, hanem a logika (XAML-be kézzel írod be pl. az egyes button-ok koordinátáit és mindig nézed design nézetbe, hogy jó-e? ). Amúgy nem az én pályám a C# és WPF, csak azért foglalkozom vele most, mert muszáj.
-
Jhonny06
veterán
Sziasztok!
Egy WPF-es alkalmazásnál valahogy le lehet tiltani egyszerűen az átméretező gombot? A kis méret és a bezárás maradna, csak mivel egy kis ablakos alkalmazás lenne, ezért nem skálázódnának a control-ok (illetve WPF-en belül automatikusan nyilván igen), mármint nem lehetne nagyítani, így nincs értelme és csak megzavarná a felhasználót. Találtam mindenféle bonyolult kódsort, esetleg van egy egyszerű property erre?
Tehát a középső gombról van szó:
[ Szerkesztve ]
-
Jhonny06
veterán
Sziasztok!
WPF-be hogy lehet azt megoldani, hogy _egy_ függvényt írok mondjuk 9 imageBox-nak és mindegyikre ha rákattintok, akkor ugyanazt a képet hozza elő (mindegyikbe külön-külön)? Gomboknál ugye meg lehet a ((Button)sender)-el csinálni, de itt nem. Nincs valami általános megoldás erre (ami nem csak imageBox-al működik, hanem bármilyen control-al)? Mert ha megírom az elsőt és azt alkalmazom mindegyikre, akkor mivel az első nevével jött létre, mindegyik arra fogja alkalmazni. Naponta belefutok ebbe és kurva idegesítő.
[ Szerkesztve ]
-
Jhonny06
veterán
válasz Neil Watts #2721 üzenetére
ASCII kódtáblát ajánlom figyelmedbe, char típusú változóval lehet trükközni, mondjuk számként reprezentálni egy betűt.
Pl.: char c = (char) 100;
Ugyanúgy használhatod a Next függvényt az intervallum megadására, csak konvertálni kell a típusok között.
-
Jhonny06
veterán
válasz Dr. Student #2668 üzenetére
Ja hogy Sergyán (Ugyanarra az előadásra járunk) Amúgy igen, a "ciklus amíg" a while-ra vonatkozott, tehát az előző hsz-embe lévő első változattal jó lesz a prímszámos feladat. Ezeket az algoritmusokat egyébként nem kell szó szerint betanulni, mert sok fölösleges dolog van bennük, ami megzavar.
Illetve a while(i != szam) azért nem jó, mert önmagát már nem fogja figyelembe venni. Tehát inkább while(i <= szam) és ezzel jó.
A teljes programkód:
[ Szerkesztve ]
-
Jhonny06
veterán
válasz Dr. Student #2666 üzenetére
Most akkor ciklus amíg kell, vagy nem? Mert az elején azt írod, aztán meg hogy azért vontak le pontot. Mindegy, while-al is csak úgy lehet, ha van egy index változód, amit mindig növelsz. Belinkelhetnéd a diát.
while(i != szam)
{
...
i++;
}vagy
for(int i = 0; i < szam; i++)
{
...
}[ Szerkesztve ]
-
Jhonny06
veterán
válasz Dr. Student #2663 üzenetére
Bekérsz egy számot, majd írsz egy for ciklust ami addig a számig fog menni. A for cikluson belül lesz egy feltétel, ami megvizsgálja, hogy az adott index érték (i) osztható-e maradék nélkül a bekért számmal. Ha igen, akkor a program elején létrehozott mondjuk db nevű változódat növeled 1-el. Ha a ciklus végén a db == 2, akkor a szám prím. Nyilván vannak hatékony algoritmusok erre, de ez a legegyszerűbb, "no-brainer" fajta.
[ Szerkesztve ]
-
Jhonny06
veterán
Fölösleges az az a és b változó az elején, az if elágazásba egyszerűen x == 1-et és x == 2-t írj. Amúgy meg az if blokkokat érdemes teljes egészében elválasztani, mert bár egyértelműen továbbfut, okozhat kellemetlenséget és az olvashatósága sem a legjobb. Nekem így lefut szépen.
[ Szerkesztve ]
-
Jhonny06
veterán
válasz Jester01 #2605 üzenetére
A konstruktorba írva az egészet jó lenne, vagy muszáj az osztály adattagjaként megmaradnia? Igazából ezt így korábban is sikerült létrehozni, de a logikáját nem értem, hogy ezek után egy Adatbazis példánnyal mit lehet kezdeni, hogy lehet elérni a másik osztály objektumait?
class Adatbazis
{
public Adatbazis()
{
Random rand_adatbazis = new Random();
int tomb_hossz = rand_adatbazis.Next(20, 30);
Hallgato[] tomb = new Hallgato[tomb_hossz];
for (int i = 0; i < tomb_hossz; i++)
tomb[i] = new Hallgato();
}
} -
Jhonny06
veterán
Sziasztok!
Van egy feladat, amiben elakadtam. Idáig sikerült megírni, a következő lépést viszont nem értem.
"Az Adatbázis példányosításkor hozzon létre véletlenszerű Hallgatókat és azokból 20-30 darabot (maga a darabszám is legyen véletlenszerű)."
Megvan az üres Adatbázis osztályom. Példányosításkor, azaz nyilván a konstruktorba kell valamit mókolni. Az is világos, hogy az előző osztály (Hallgato) objektumaiból kellene egy tömb, hozzá egy Random érték, 20-30 között. De ezt hogy valósítom meg? Adattagként létrehozom az objektumtömböt és a konstruktorban egy for ciklusban kapják meg az "értéket"? Meg ezentúl a Adatbazis osztály példányával hogy érem el, mint tömb? Magát a szintaktikáját értem a dolognak, "csak" a logikáját nem, hogy mit akar megvalósítani. Valami ilyesmire gondoltam (a Random sincs túl jó helyen ):
class Adatbazis
{
public static Random rand_adatbazis = new Random();
public int tomb_hossz = rand_adatbazis.Next(20, 30);
private Hallgato[] tomb;
public Adatbazis()
{
for (int i = 0; i < tomb_hossz; i++)
{
tomb[i] = new Hallgato();
}
}
}[ Szerkesztve ]
-
Jhonny06
veterán
Nem az adott objektum, az adott példány. Nem egy osztály tagváltozóit akarom lekérdezni a függvénnyel, az nyilván evidens. Hanem létre akarok hozni egy függvényt, amelyet minden egyes példány elér és kiírja róla az infókat. Ezzel kapcsolatban kérdeztem azt, hogy a példány paraméter átadása nélkül el lehet-e érni a példány tagváltozóit a függvényben, de akkor gondolom nem.
Itt van konkrétan: [link] (30. sor)
[ Szerkesztve ]
-
Jhonny06
veterán
Van egy osztályom, annak tagváltozói. A konstruktorban beállítom, hogy ezek példányosításkor kapjanak egy bizonyos értéket. Létrehozok egy tagfüggvényt, ami ezeket egy string-be összevonva adja vissza, minden példányról külön, azaz példányszintű a függvény. Létrehozok egy új példányt és meghívom a függvényt. A kérdés arra vonatkozott, hogy muszáj ennek a függvénynek átadni paraméterként az adott objektumot (ami meghívja), hogy el tudjam érni az adott objektum tagváltozóit, vagy van valami okos trükk erre (mint a tagváltozókra a this)?
[ Szerkesztve ]
-
Jhonny06
veterán
Sziasztok!
Egy osztály tagfüggvényében ki tudom íratni egy adott példány adatait anélkül, hogy a példányt átadnám a függvénynek paraméterként? Érzem, hogy hülye kérdés, de csak van erre valami megoldás. Virtuális pofonokat elfogadok.
[ Szerkesztve ]
-
Jhonny06
veterán
Ennek a get/set-nek van valami lényegi értelme? Most tanultuk OOP-n, de ha értéket akarok rendelni egy változóhoz, simán hivatkozom rá, minek külön függvény, vagy úgy egyáltalán, minek ezzel foglalkozni? Get-el ugyanez. Én megyek el valami mellett?
-
Jhonny06
veterán
Ez a lehető legrosszabb tanács volt. Az a baj a C#-al, hogy sok minden már egyenesen túl egyszerű benne. Jobb, ha "szarakodik" azzal a bubble sort algoritmussal, mert ezekből tanul az ember, nem abból, hogy a beépített sort függvényekkel rendezget. Ha később át kell állnia C-re vagy C++-ra, nagy bajba lesz az ilyenek miatt. Vagy azt mondják, hogy VS meg IntelliSense nélkül jegyzettömbben írj meg valamit..
[ Szerkesztve ]
-
Jhonny06
veterán
1., A string egy karakterlánc, képzeld el úgy, mint egy tömböt, aminek nem egész (int) a típusa, hanem karakter (char). Egy string elemét is el tudod érni úgy, mintha karaktertömb lenne, azaz:
string nev = "Marci";
esetén: a nev 0. eleme (azaz az első elem) egy M betű lesz.
A többit szerintem fölösleges kitárgyalni. Nem tudom, hogy mit akarsz ezzel a kóddal, de egy string hosszát így tudod meghatározni (a String osztály minden objektuma el tud érni bizonyos tagfüggvényeket, a Length a hosszát adja vissza, angolból ismerős lehet), például:
String isbn = Console.ReadLine();
Console.WriteLine(isbn.Length);[ Szerkesztve ]
-
Jhonny06
veterán
Pl.:
static int m(int x, int[] y)
{
x = 3;
y[0] = 3;
return x; //!!!!!!!!!!
}
static void Main(string[] args)
{
int number = 0;
int[] numbers = new int[1];
System.Console.WriteLine("number is " + m(number, numbers) + " and numbers[0] is " + numbers[0]);
Console.ReadLine();
}[ Szerkesztve ]
-
Jhonny06
veterán
Nem állítottál be visszatérési értéket a függvényednek, azaz void. Érték szerinti paraméterátadásnál csak egy másolat készül a változóról, amit a függvénybeli értéke fel is vesz, de visszatérésnél a main() függvényben az eredetit írod ki, ami nem kapta meg. A tömböt dinamikusan foglaltad le, a függvényben egyből a memóriába írod, így az jó. A number változódat ne érték szerint add át, hanem mutatóval. Vagy legyen a függvényednek visszatérési értéke és akkor az x-el térj vissza.
-
Jhonny06
veterán
-
[ Szerkesztve ]
-
Jhonny06
veterán
-
Jhonny06
veterán
Úgy kell elképzelni, mint amikor egy beállításokkal kapcsolatos tabot bárhova húzhatsz, támogatva van a több monitoros megoldás, simán átmegy, ezt kóddal miért nem lehet megcsinálni?
Magyarul azt szeretném, hogy dockable legyen.
[ Szerkesztve ]
-
Jhonny06
veterán
Sziasztok!
Most került hozzám egy 2. monitor és úgy szeretnék dolgozni, hogy az egyik fájl az egyik monitoron legyen megnyitva (meg az egész VS úgy, ahogy szokott), a másikra pedig áthúznék egy másik fájlt, akár teljes képernyős nézetben, de ezt így elvileg nem lehet. Ha kétszer nyitom meg a VS-t, akkor ugye ott vannak a hozzáférési hibák, ez tehát kizárva. Nem akarom összevonni a két monitort, tehát az sem játszik, hogy az egyik tabra jobb egérgombbal kattintva vertikális nézetbe állítom őket.
Valami ötlet?
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Xiaomi Poco F3 5G 8/256 Ocean Blue
- Zalman ZM650-EBT (hibás) eladó
- Újszerű ASUS OLED Zenbook! Csak 1 kg! 13,3 coll/i5-1135g7/512SSD/16GB 4267Mhz RAM
- AKCIÓ!!! GAMER PC: RYZEN 9 5900X + RTX 3060 12GB GDDR6! GARANCIA/SZÁMLA!!!
- BONTATLAN Új Iphone 16 PRO 128Gb - 1TB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Axon Labs Kft.
Város: Budapest