- Nvidia GPU-k jövője - amit tudni vélünk
- Nem tetszik a Procon-SP-nek, hogy a Nintendo távolról kivégezheti a Switch 2-t
- NTFS, exFAT, FAT32 – Melyiket válaszd és miért?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- VR topik
- Milyen billentyűzetet vegyek?
- TCL LCD és LED TV-k
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Milyen CPU léghűtést vegyek?
Új hozzászólás Aktív témák
-
oO7
őstag
válasz
h1ght3chzor #4417 üzenetére
Kezdésnek egy kis C# nyelvi alapozásként Reiter István C# jegyzetét ajánlanám, aztán pedig elég szerteágazó irányok vannak kliens és szerveroldali fejlesztésekben
-
oO7
őstag
Rx - Aszinkron programozás magas fokon - Ingyen szakkönyvet a népnek
-
oO7
őstag
válasz
leximester #4400 üzenetére
csinálj egy TextBlock típusú listát, és abba rakosgasd bele a felületen lévő TextBlockokat (a referenciájukat ugye), és akkor el fogod tudni érni ciklusból őket...
var textBlocks = new List<TextBlock> { tb1, tb2, tb3, tb4, ... };
és akkor ezen a textBlocks listán már végig tudsz menni for vagy foreach ciklussal...
ha esetleg azonos szinten helyezkednek el a vizuális fában, akkor a TextBlock-okat tartalmazó konténernek le lehetne kérdezni a Children tulajdonságát és rászírnű az OfType<TextBlock>() operátorral, hogy csak a TextBlock-okat adja vissza... ez is egy listát eredményez, amiben benne vannak, de ez elég csúf megoldás meg olyan textblock is belecsúszhat, amit nem is biztos, hogy manipulálni szeretnél... ha meg a panelen belül nem közvetlenül helyezkedik el a textblock hanem még egy másik panelben vagy ilyesmi, akkor már nem is működne ez ilyen egyszerűen...
szóval inkább az első megoldást javasolnám így hirtelen, bár egyetértek Karma-val, ez csak tüneti kezelés a problémára
-
oO7
őstag
-
oO7
őstag
válasz
Brianiac #4348 üzenetére
ez még lemaradt: a csoportosításos lekérdezés a tiéd helyett mondjuk így nézne ki:
// PÉLDA
var termekek = new List<string>();
var kategoriak = new List<int>();
var eredmeny = termekek
.Join(kategoriak, t => t.Length, k => k.ToString().Length, (t, k) => new { Termek = t, Kategoria = k })
.GroupBy(x => x.Kategoria);Itt a Join-nál a karakterszám szerint párosítom a stringeket és számokat, de nyilván ez nálad valamivel kifinomultabb kategória szerinti joinolást jelent, a végén pedig ott van a "ResultSelector" függvény, amiben a kis anonimusztípust összedobod...
a lényeg, hogy a végén lesz egy két szintű listád: az első szinten a kategóriák lesznek, a kategóriák alatt pedig ott lesznek a beléjük tartozó termékek
-
oO7
őstag
válasz
Brianiac #4348 üzenetére
most hirtelen azt mondanám, hogy eressz rá egy GroupBy -t az egészre és csoportosítsd kategóriák szerint, és a gombokkal pedig lépkedj a kategóriák között (növeld/csökkentsd az indexet)... de lehet, hogy ennél van frappánsabb válasz is, már nagyon rég volt, hogy Winforms-sal foglalkoztam...
a gombok amúgy a toolbar-on vannak ha ez esetleg segítség
-> ToolStrip
-> Button -> aztán adsz neki képet... szerintem beépítetten nincs olyan, valahonnan a nyilakat elő kell halászni -
oO7
őstag
válasz
hoffman_ #4342 üzenetére
az első feladatnál egy "manuális for ciklust" kell összeraknod a bekérésre, és addig kell bekérned számokat amíg nem jön össze 10 ami megfelel a kritériumoknak...
leellenőrzöd, hogy a megadott szöveg az szám e,
aztán string műveletekkel megnézed, hogy 4 karakterből áll e, azaz 4 jegyű szám e,
illetve, hogy a 2. (1-es index) és 4. (3-as index) karakter (számjegy) különbözik e...
ha szám is volt meg négyjegyű is meg különböznek is a helyiértékek, akkor hozzáadod a listához és növeled az indexet, hogy akkor most te az n+1-dik helyre keresel új számot... ezt egészen addig csinálod (while ciklus) amíg össze nem jön a 10 elem...// Elso feladat elso resze
int[] s1 = new int[10];
int s1Index = 0;
while (s1Index < 10)
{
string s = Console.ReadLine();
int number = 0;
bool isNumber = int.TryParse(s, out number);
if (isNumber && s.Length == 4 && s[1] != s[3])
{
s1[s1Index] = number;
s1Index++;
}
}A következő résznél a bináris formátumra alakításhoz a Convert.ToString() metódust érdemes használni... ez egy számból elkészíti a bináris megfelelőjét stringként... ezen pedig már tudod vizsgálni az utolsó és utolsó előtti biteket és a feltételnek megfelelően egy új tömbbe pakolni... itt nem tudhatod előre, hogy hány eleme lesz a tömbnek szóval inicializáld 10 hosszúnak, készülj fel a legrosszabbra, aztán majd az indexet úgyis megint manuálisan kell kezelni a feltételek miatt, és azzal fogod tudni nyomonkövetni, hogy hány elem van a listában.
a végén pedig az utolsó maximum 4 elemnek kiszámolni az átlagát úgy, hogy visszafele járjuk be a tömböt...
// Elso feladat masodik resz
int[] s2 = new int[10];
int s2Index = 0;
for (int i = 0; i < s1.Length; i++)
{
string binary = Convert.ToString(s1[i], 2);
if (binary[binary.Length - 1] == '0' &&
binary[binary.Length - 2] == '1')
{
s2[s2Index] = s1[i];
s2Index++;
}
}
int s2Length = Math.Min(s2Index, 4);
int startIndex = s2Index - 1;
int endIndex = s2Index - s2Length;
int osszeg = 0;
for (int i = startIndex; i >= endIndex; i--)
{
osszeg += s2[i];
}
double atlag = osszeg / (double)s2Length;Bár lehetne ezt sokkal szebben is a rendelkezésre álló technológiákkal, de a feladat jellegéből arra tippelnék, hogy azokat a függvényeket nem használhatjátok
második feladathoz még gyűjtenem kell egy kis türelmet, kínzás ilyen kódot írni
-
oO7
őstag
Ahhoz, hogy "szép kódolást" lehessen tanítani, előbb meg kell tanulni kódolni és eljutni addig, hogy képes legyen az ember komplexebb "csúnya" kódot írni. Teljesen felesleges addig design patternekről beszélni meg objektum orientáltságról, amíg a program üzleti logikája átláthatóan elfér egy winforms alkalmazás code-behind-jában...
Egyet értek veled, hogy szülség lenne ezeknek is a tanítására - sokkal nagyobb szükség, mint azt sokan gondolják - de az ilyen bugyuta "írjunk saját rendezőalgoritmust" jellegű feladatok sem hasztalanok.
Én tanítottam már elég sok helyen Windows 8 meg Windows Phone fejéesztést és hát láttam durva dolgokat, és hidd el, nem az MVVM pattern nem ismerése volt a legnagyobb probléma
-
oO7
őstag
Szerintem nem hülyeség az, ha algoritmikus gondolkodásra tanítják őket. Igen, ott van a LINQ, de azért nem árt ha tudja, hogy mi törtémik mögötte, vagy ha valami speciális esettel találkozik amire nem lehet ráhúzni a beépített eszközöket, akkor nem fog széttett karokkal ülni, hogy hát ő nem tud minimumkiválasztást írni vagy rendezni vagy csoportosítani vagy ilyesmi...
Nyílván án is levágnám a kezét annak aki éles kódban leimplementál egy rendezést, de azért tudjuk már, hogy mi történik a színfalak mögött...
-
oO7
őstag
válasz
trisztan94 #4305 üzenetére
te egy darab könyv címében lévő betűket szeretnéd sorbarendezni?
azt javasolnám, hogy vagy nézz utána pl egy buborék rendezésnek vagy pl csinálhatod azt, hogy csinálsz egy üres eredménylistát, belerakod az eredeti lista első elemét, és aztán minden további elem hozzáadásánál megkeresed, hogy hova kellene azt beszúrni az eredménylistába...
tehát valami ilyesmi:var eredmenyLista = new List<Konyv>();
eredmenyLista.Add(raktar[0]);
for (int i=1; i<raktar.Count; i++)
{
// és akkor itt minden egyes elemnél levizsgálod, hogy hova kellene kerülnie az eredménylistában, pl így
var index = 0;
while (index < eredmenyLista.Count && raktar[i].cim.CompareTo(eredmenyLista[index].cim) > 0) index++;
eredmenyLista.Insert(index, raktar[i]);
}Amit még érdemes beletenni az az, hogy leellenőrizd, hogy van e legalább két elem a raktárban, mert különben az indexelés miatt szórja majd a kivételeket
Ú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!
- Nvidia GPU-k jövője - amit tudni vélünk
- Automata kávégépek
- Kínai és egyéb olcsó órák topikja
- One otthoni szolgáltatások (TV, internet, telefon)
- Asztalos klub
- Microsoft Office és Office 365 topic
- Magisk
- Luck Dragon: Asszociációs játék. :)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Google Pixel 8a - kis telefon kis késéssel
- További aktív témák...
- Csere-Beszámítás! MSI Suprim X RTX 3080 10GB Videokártya!
- Csere-Beszámítás! Sapphire Nitro+ RX 6700XT 12GB Videokártya!
- SZÉP Lenovo ThinkPad P15 G2 Tervező Laptop -75% 15,6" i9-11950H 64/2TB RTX A4000 8GB UHD OLED
- Szép! Lenovo Thinkpad T14s G2 Üzleti "Golyóálló" Laptop 14" -50% i7-1185G7 4Mag 16GB/512GB FHD IPS
- Eladó Apple MacBook Pro 13" A1706 (Late 2017, Silver - EMC 3163)
- HATALMAS AKCIÓK! GARANCIA, SZÁMLA - Windows 10 11, Office 2016 2019 2021,2024, vírusírtók, VPN
- Bomba ár! HP ProBook 440 G7 - i5-10GEN I 8GB I 256SSD I HDMI I 14" FHD I Cam I W11 I Gar
- AKCÓÓÓ!!! Panasonic CF-XZ6 AIO all-in-one laptop tablet 2k touch i5-7300u speciális ütésálló
- Azonnali készpénzes nVidia RTX 4000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest