Új hozzászólás Aktív témák
-
veterán
válasz Neil Watts #1687 üzenetére
MOD:
Kozben turom a Googlet/MSDN/Technetet, ejj de jokat talalok!
Hat ilyen osszeszedett dokumentaciot/peldafeledatokat nem nagyon talaltam mas nyelveknel -
nagyúr
válasz Neil Watts #1688 üzenetére
Épp akartam írni, de látom, Google barátunk már válaszolt.
Kezdj neki, tanulgass, írj mórickákat és ha elakadsz, szívesen segítünk.
-
veterán
válasz Neil Watts #1690 üzenetére
lol.
ugy nez ki, erre is kezdek rajonni -
nagyúr
válasz Neil Watts #1690 üzenetére
Igen, az irány már megvan, csupán pár apróság:
string s = "";
Ez esetben nem feltétlenül kell rögtön értéket is adni a változónak, elég, ha csak létrehozod. Majd később adsz neki értéket úgyis.Console.ReadLine("");
Ez nem nagyon szokás. Helyette inkább
Console.ReadKey(); -
veterán
válasz Neil Watts #1693 üzenetére
Na meg egy erdekes dolog, aztan befejeztem mara.
Ha volt egy valtozom string-kent, de azt megvaltoztatom int-re akkor ezt kapom hibakent:Cannot implicitly convert type 'string' to 'int'
Erre kisutottem egy kis Googlezas utan egy ilyet:
int s = "";
Convert.ToInt32(s);Mit cseszhetek el?
Valami nagyon apro dolog (bar lehet, hogy joval nagyobb), gondolom. (amit persze nem veszek eszre).Udv. core2
[ Szerkesztve ]
-
ArchElf
addikt
válasz Neil Watts #1694 üzenetére
A C# erosen tipusos nyelv, igy a kozvetlen konverzio nem mukodik. Amennyiben a valtozo tartalma konvertalhato, ugy azt konverter segitsegevel (idegen tipusok, pl. String es int kozott), vagy kozvetlenul int->float/double eseten.
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
j0k3r!
senior tag
válasz Neil Watts #1687 üzenetére
hello!
nemtudom eddig miket talaltal, de en ezeket olvasgattam/tom:
reiter fele c# konyv
.NET 3.5 indulokeszlet
linq indulokeszlet(#1694) core2: az ilyen konverziokat erdemes try - catch blokkokban hasznalni + TryParse metodust hasznalni.
[ Szerkesztve ]
some men just wanna watch the world burn...
-
RedSign
tag
válasz Neil Watts #1694 üzenetére
Pedig eléggé egyszerű , ehelyett:
int s = "";
Convert.ToInt32(s);talán így:
String s = "";
Convert.ToInt32(s);[ Szerkesztve ]
http://www.redsign.hu
-
Lortech
addikt
válasz Neil Watts #1702 üzenetére
Előszöris szerintem nem kéne var-t használnod ezen a szinten és konkrétan erre a feladatra.
Console.WriteLine(a);
-a változó értéke üres string, nincs mit kiírnia (egy sorvégén kívül - WriteLine).Console.ReadKey();
-[link]
Lásd a metódus dokumentációját. Ez nem azt csinálja, amit szerintem te szeretnél elérni, de amúgysem jól használod.
Ennek hatására annyit csinál a program, hogy vár 1 db leütésre. Nem kerül be "a" változóba a beírt szöveg/szám, meg semmi hasonló.
Írj a = Console.ReadLine(); -t helyette. És beolvasás után kéne kiiratni a tartalmát, hacsak nem a beolvasás előtti tartalmát akarod kiírni a változónak.Console.WriteLine(a + b);
- ez konkatenálni fogja a stringet ebben az esetben, mivel string típusok esetén a + operátor ezt jelenti, tehát ha a = "1", b = "2", akkor a + b == "12", nem pedig 3.
A stringet át kell alakítani a fent már említett módon pl. egy int vagy valamelyik szám típussá, és úgy összeadni őket.Olvass sokat az alapokról mielőtt kódot írsz szerintem, vagy nézegess meg egyszerű, működő példákat, ennek én így sok értelmét nem látom.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
nagyúr
válasz Neil Watts #2716 üzenetére
"also + (also - felso)"
Nem fordítva akartad a kivonást?
[ Szerkesztve ]
-
martonx
veterán
válasz Neil Watts #2719 üzenetére
Azt csinálja, amit kell? Mert akkor biztos nem volt helytelen az elgondolásod
Én kérek elnézést!
-
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.
-
válasz Neil Watts #2719 üzenetére
Kicsi észrevétel:
int[] egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
for (int i = 0; i < egesz.Length; i++)
{
listBox_adat.Items.Add(egesz[i]);
}Helyett:
listBox_adat.Items.AddRange(new object[] { 1, 2, 3, 4, 5, 6, 7, 8 });
Stringekkel egyszerűbb:
listBox_adat.Items.AddRange(new [] { "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc" });
);---------------------------
if (textBox1_adatbe.Text != "")
{ /* ... */ }Helyett:
int egesz_be;
if (!string.IsNullOrEmpty(textBox1_adatbe.Text) && int.TryParse(textBox1_adatbe.Text, out egesz_be))
{ /* ... */ }-----------------------
Ez gyakorlatilag nincs használva:
int[] egesz = new int[egesz_be];
----------------------
Használja mindenki a var kulcsszót, ahol csak lehet.
-
válasz Neil Watts #2730 üzenetére
Az egesz tömböt csak a hosszának a lekérésére használod, semmi másra, ezért hülyeség létrehozni is.
-
nagyúr
válasz Neil Watts #2734 üzenetére
A randomot még értem, de miért akarod a 10-et karakterként bevinni?
Az egészeknél feleslegesen megírtál egy műveletet fonákul, ami egyébként teljesen egyértelmű
"int[] egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
for (int i = 0; i < egesz.Length; i++)
{
listBox_adat.Items.Add(egesz(i));
}"helyett
for (int i = 1; i < 9; i++)
{
listBox_adat.Items.Add(i);
}bár a te számításodból a 9 továbbra is kimarad. Miért?
Amit feljebb linkeltem kód, pont azt csinálja, hogy randomol annyi számot, amennyit a taxtBoxba írtál. Ugyanez átültethető karakterre is.
[ Szerkesztve ]
-
nagyúr
válasz Neil Watts #2738 üzenetére
Ja, értem, akkor a feladat hülyesége. Ok. szóval a karakterekkel végül is mi a gond?
-
válasz Neil Watts #2740 üzenetére
Létrehozol egy ÜRES char[]-t.
Amit bejársz a ciklusoddal.
Elemet akarsz kivenni belőle, pedig ÜRES.
Ráadásul kivételnél fix indexet használsz, ami nem más, mint a tömb hossza, ami pontosan eggyel magasabb indexet jelent, mint a tömb utolsó elemének indexe. -
válasz Neil Watts #2744 üzenetére
Nem az értéke lesz egesz_be, hanem a hossza, nagy különbség.
int egesz_be;
if (int.TryParse(textBox1_adatbe.Text, out egesz_be))
{
var r = new Random();
for (int i = 0; i < egesz_be; i++)
{
listBox_adat.Items.Add((char)r.next(65, 90));
}
}
else
{
//hibakezelés :-)
} -
ArchElf
addikt
válasz Neil Watts #2765 üzenetére
if (KezdoVektor == nevBe[db][0])
helyett
if (KezdoVektor == nevBe[i][0])
nem?AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
martonx
veterán
válasz Neil Watts #2767 üzenetére
Sima debuggal seperc alatt ki tudnád vizsgálni, hogy mi is a baj. Hagy ne mi debugoljunk már fejben helyetted. Másrészt, ha már tanácsért fordultál ide, miért sima array-el szivatod magad? Hahó 2012 van. Javaslom valami fejlettebb collection használatát, amellyel a sorbarendezés egy szimpla parancs.
Én kérek elnézést!
-
amargo
addikt
válasz Neil Watts #2767 üzenetére
Az egész blokk érdekes, de most tekintsünk el, mert egy része így még működő képes lehet. De hozzáteszem, hemzseg az egész kód a hibáktól!
char KezdoVektor = Convert.ToChar(textBoxKezdoBetuBeVektor.Text);
if (textBoxKezdoBetuBeVektor.Text != "")
{
for (int i = 0; i < nevBe.Length; i++)
{
if (KezdoVektor == nevBe[db][0])
{
listBoxKezdobetuListazKi.Items.Add(nevBe[db]);
}
}
}
}Ellenben azért, amit ArchElf írt, azrt értelmezted is? Mert minek oda ciklus, ha mindig csak az aktuális db ellenőrződ? Semmi értelme 50x ugyanazt leellenőrizned. De a kutya is itt van elásva!
Nézd meg a felette lévő kódodat:
textBoxNevBeVektor.Clear();
if (textBoxNevBeVektor.Text != "")
{
nevBe[db] = textBoxNevBeVektor.Text;
db++;
}Tehát egyből törlöd a mező tartamát, majd nem adsz semmit semmihez.
Ezek után nézd meg az első általam írt kódodat:
nevBe.Length //Ez helyes, 50 elemű.
if (KezdoVektor == nevBe[db][0]) //Itt pedig 0. elemre hivatkozol, majd annak szeretnéd elkérni az első karakterét. De ez nem fog menni, mert az Null -> meg is kapod helyesen az üzeneted.Nem hiába írtam az elején és ne támadásnak vedd, de egyszerűen az egész kód hemzseg a hibáktól és hiányosságoktól. Ez tényleg csak figyelmetlenség, de mivel szemmel nem tudok olyan jól összehasonlítani - számomra a változónevek is feleslegesen hosszúak - így csak azon akadt meg a szemem, hogy ott minek akarsz törölni?
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
ArchElf
addikt
válasz Neil Watts #2778 üzenetére
A for ciklusba ne a tömb hosszáig iterálj, hanem csak a db-ig. Utána nincs semmi a tömbben, azért kapod a hibaüzenetet. Amúgy tényleg tilos List<string>-et használi (vagy sima List-et, ami még a .NET 1.0-ban is volt)???
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
martonx
veterán
válasz Neil Watts #2778 üzenetére
ha esetleg nem a működő kódot másolod be, hanem a nem működőt (külön jelölve azt a sort ahol a hibát kapod), talán többet látunk. Másrészt, kérem nézd meg a debug-os videót, majd e új tudásod alapján köved figyelemmel futásidőben a változóid értékét, és 90% hogy látni fogod a hibát.
Ha mégsem, akkor természetesen segítünk.Én kérek elnézést!
-
martonx
veterán
-
válasz Neil Watts #2833 üzenetére
Most páros kell vagy páratlan?
private void buttonOKrb_Click(object sender, EventArgs e)
{
if (radioButtonParatlan.Checked)
{
int q = 0;
for (int i = 0; i < veletlentar.Length; i++)
{
if (veletlentar[i] % 2 == 0) //páratlan vagy páros kell?
{
q++;
}
}
labelParatlParos.Text =q + " db páratlan számot sorsolt ki a program";
}
listBox_eredmenyKi.Items.Clear();
} -
ArchElf
addikt
válasz Neil Watts #2836 üzenetére
Nem félreérthető volt, hanem rossz.
A te megoldásodban minden páros számra kiírta a textboxba (felülirva az előző szöveget), hogy az adott szám páros.1. private void buttonOKrb_Click(object sender, EventArgs e)
2. {
3. if (radioButtonParatlan.Checked)
4. {
5. for (int i = 0; i < veletlentar.Length; i++)
6. {
7. if (veletlentar[i] % 2 == 0)
8. {
9. labelParatlParos.Text = veletlentar[i] + " db páratlan számot sorsolt ki a program";
10. }
11. }
12. }
13. listBox_eredmenyKi.Items.Clear();
14. }Ha kellene egy kis manuális debug:
3. radioButtonParatlan.Checked -> feltételezhetjük, hogy páratlan számokíat keresel
7. if (veletlentar % 2 == 0) -> itt viszont a párosakra ugrik be az if ágra (kettövel osztva nincs eredmény az páros. Ami neked kellett volna az a != 0.
9.c labelParatlParos.Text = veletlentar(i) + " db páratlan számot sorsolt ki a program"; -> itt az aktuális elemé értékét írja ki - még csak nem is a sorszámát, vagy a számosságot (ezt javította Athlon64+).+1 nem értem a fixációt a tömbökkel; rendes gyűjteményekkel (Collection), sokkal könnyebben/értelmesebben lehet dolgozni, mert flexibilisek és egy csomó már előre elkészített funkciót is biztosít.
AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
G3kko
tag
válasz Neil Watts #2868 üzenetére
Köszönöm, most már lesz elég induló anyag!
Majd még könyvesboltokban is szétnézek. -
veterán
válasz Neil Watts #2890 üzenetére
ja még annyi hogy a Benevek és a BeAzon tömbben még 25 név van.
-
drkbl
őstag
válasz Neil Watts #2890 üzenetére
Gondolom a Beolvas gombra kattintasz elsőre. elemszam=0, az i ciklus addig tart, amíg i kisebb, mint elemszam, nulláról indulva. Ez sosem teljesül, elemszam marad 0.
-
Chipi333
csendes tag
válasz Neil Watts #2893 üzenetére
Amikor indítod a ciklust akkor i és elemszam is 0, szóval nem lépsz be a ciklusba(egyenlőek => i<elemszam = false). Ráadásul utána minden iterációban mind2t növelnéd, ez így sehogy se jó.
for (int i = 0; i < BeNevek.Length; i++) - szerintem itt inkább ezt akarod csinálni. -
drkbl
őstag
válasz Neil Watts #2895 üzenetére
Hasonló esetben használd a debugger töréspontját, ha az elemszam++; sorra tettél volna egy töréspontot, láttad volna, hogy nem lép be a ciklusba
-
drkbl
őstag
válasz Neil Watts #2898 üzenetére
1) Felveszel egy boolean mezőt az osztályba, amit igazra állítasz az első lefutás előtt, majd az eseménykezelőben nézed, hogy hamis-e még, csak akkor fut le a ciklus
bool Feltoltve = false; // [L:http://msdn.microsoft.com/en-us/library/83fhsxwc(v=VS.80).aspx]a default false[/L], de így talán érthetőbb a kód
private void buttonBeolvas_Click-be az új kódod az alábbi, régi szerint:
if (!Feltoltve) {
for (int i = 0; i < elemszam; i++) {
Nevek[elemszam] = Benevek[i];
Azon[elemszam] = BeAzon[i];
elemszam++;
}
Feltoltve=true;
}vagy
2) buttonLista.Enabled = true; után buttonBeolvas.Enabled=false; így rá sem tud kattintani még1x
[ Szerkesztve ]
-
ArchElf
addikt
válasz Neil Watts #2954 üzenetére
Be van csatolva a metódus (btnLetoltes_Click) a Click eseményre?
Debugban belelép - ha nem lép bele, akkor valamit elcsesztél az esemény létrehozásásnál (btw itt nem elég létrehozni a "megfelelő" nevű metódust, mint régen a VB-ben, itt össze kell linkelni az eseményeket és az eljárásokat - többek között ezt is az InitializeComponent() eljárásban teszi meg a program, ha jól kattintgattad össze).AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
bpx
őstag
válasz Neil Watts #2986 üzenetére
pedig ez ránézésre működik, csak eléggé távol van az optimálistól
no meg az értelmét sem látom, mert egy ilyen bemenetből:A
.
B
..ilyen lesz a két tömb:
nevek: "A", null, "B", null
pontok: null, ".", null, ".."egyébként meg mi az hogy a for nem kap értéket? a ciklusváltozó kap értéket (i=0)
végtelen ciklus sincs, csak egymásba ágyazott, aminek semmi értelme nincs, és csak a feladat egyszerűsége miatt működik -
martonx
veterán
válasz Neil Watts #2988 üzenetére
miért két tömbben tárolod az egybe tartozó adatokat?
Másrészt a 20X-ozódás azért van, mert a a nevek tömb index-ét nem növeled. Az ott nem Nevek[j] akarna lenni Nevek helyett?
Ne mondd, hogy ezt a debugolás nem mutatta meg kapásból?Én kérek elnézést!
-
bpx
őstag
válasz Neil Watts #2991 üzenetére
-
kingabo
őstag
válasz Neil Watts #2986 üzenetére
Te, le tudnád írni saját szavaiddal, hogy mit csinál a beidézett kódod? Minek ehhez 2 ciklus? A 4. sorban minek a '{' ?
Ha jól értem neked ennyi kéne:
for (int i = 0; i < elemszam; i+=2)
{
Nevek[i] = Ossztomb[i];
Pontok[i] = Ossztomb[i + 1];
}Ill érdekelne hogy hogyan debuggolsz. Ha lépésenként futtatod a progid észre kellene venned, hogy valami nagyon nem kerek...
ui: nem sértésből írtam amit, csak sokadjára jönnek elő olyanok, amik minimális debuggal meg lehet találni.
[ Szerkesztve ]
-
bpx
őstag
válasz Neil Watts #2994 üzenetére
semmi, +2 sor
for (int i = 0; i < elemszam; i+=2)
{
Nevek[i] = Ossztomb[i];
Pontok[i+1] = Ossztomb[i+1];
listBoxFeltolt.Items.Add(Ossztomb[i] + " , " + Ossztomb[i+1]);
}(csak hogy az eredeti elképzeléssel legyen egyenértékű)
[ Szerkesztve ]
-
kingabo
őstag
válasz Neil Watts #2997 üzenetére
Nem teljesen
"Majd 0-tól indulva elmegyek kettesével elemszámig.
Ezt beleíratom a Nevek vektorba.Aztán egy másik for-ral - ami 1-től indul - elmegyek ugyancsak elemszámig, kettesével, ezzel rakom bele a pontokat a Pontok vektorba."
Ugyanis a második cilkus benne van az elsőben. Emiatt írodik ki a nevek rengetegszer a összes lehetséges pont-tal.szerk: most nézem a PasteBin-es kódod. Sokkal szebb lenne, ha az Ossztomb-öt a méret ismeretében (ezt nem tudom hol kapértéket) a beolvasás előtt, a Nevek és a Pontok tömböt a beolvasás után foglalnád le. Így nem pazaréloknál el rengeteg memóriát feleslegesen.
[ Szerkesztve ]
-
martonx
veterán
válasz Neil Watts #3000 üzenetére
konkatenálod a stringeket mondjuk így:
Listbox1.Add = nevek[valami] + " " + pontok[valami] + " pont";
Én kérek elnézést!
-
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...
-
kingabo
őstag
válasz Neil Watts #3027 üzenetére
A ciklus után a maxKezdoertek és a minKezdoertek fogja tartalmazni az adott tömbindexeket. Rosszul nevezted el a változókat, ezért vagy gondban, sokkal jobb lenne pl a minErtekIndex, MaxErtekIndex, a tárolt értéknek meg minErtek, maxErtek (beszédesebb).
[ Szerkesztve ]
-
bpx
őstag
válasz Neil Watts #3175 üzenetére
1.
minden gombnyomásnál új számot generál
és amúgy meg minek ide for ciklus ami 7-szer végigmegy az egészen?2.
JatekosValaszt = "papir";a papír hosszú í
-
válasz Neil Watts #3175 üzenetére
Amikor centire ugyanazt a kódot írjuk le újra meg újra, akkor kérdezzük meg magunkról: nem tudnám ezt úgy megcsinálni, hogy ne sokszorozzam a kódom mennyiségét?
-
veterán
válasz Neil Watts #3185 üzenetére
2. Mégsincs sajnos, még így sem.
-
bpx
őstag
válasz Neil Watts #3185 üzenetére
1. rakd oda, ami nem hívódik meg minden gombnyomásnál
2. a kívánt működést megvalósítja ránézésre, de gondolkodj rajta kicsit, és rájössz, hogy nem kell háromszor (kilencszer!) megírni ugyanazt
egy eseménykezelőt lehet több gombhoz is rendelni, nézd meg a Form1 generált részét (Form1.Designer.cs)
továbbá a szövegnek sincs semmi jelentősége a vizsgálatnál (főleg hogy ki sem írod a játékosnak, hogy a gép mit választott) -
bpx
őstag
válasz Neil Watts #3188 üzenetére
legyen a kitalálandó szám a Form tagváltozója, a Loadban adsz neki értéket random.next-tel
a Form egy másik változója legyen a próbák száma 0 kezdőértékkel
gombnyomásnál vizsgálsz + növeled a próbák számát, semmilyen for ciklus nem kell
ha a próbák száma elérte a 7 és nem találta ki, game over -
veterán
válasz Neil Watts #3191 üzenetére
Megoldva ez is... További jó napot!
MOD: Elnézést, a túl sok egymásutáni hszért.
[ Szerkesztve ]
-
őstag
válasz Neil Watts #3581 üzenetére
double.parse vagy double.tryparse-vel próbálkoznék inkább.
szerk: több mint valószínű, hogy a fentiek is elhasalnak majd nálad, mert a tizedes elválasztó az esetedben a pont lesz és nem a vessző. [link] definiálsz egy megfelelő providert, és menni fog.
[ Szerkesztve ]
¯\_(ツ)_/¯
-
őstag
válasz Neil Watts #3584 üzenetére
Ezt írtam le... hogy a rendszered a vesszőt veszi alapból elválasztónak, nem a pontot.
Ha te definiálod neki, hogy mit értelmezzen tizedes elválasztónak, akkor működni fog, ahogy a fenti mintakód is működik. Próbáld ki.¯\_(ツ)_/¯
Ú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!
- Formula-1
- Linux kezdőknek
- Háztartási gépek
- Futás, futópályák
- iPhone topik
- A fociról könnyedén, egy baráti társaságban
- E-roller topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Autós topik látogatók beszélgetős, offolós topikja
- Rendkívül ütőképesnek tűnik az újragondolt Apple tv
- További aktív témák...