Új hozzászólás Aktív témák
-
Karma
félisten
válasz sirszevenap #7150 üzenetére
Magyar esetén semmi, bármelyiket választhatod, és elég az egyik.
“All nothings are not equal.”
-
zulu_mester
tag
Sziasztok!
Tudnátok ajánlani programozással kapcsolatos könyveket, amelyek viszonylag egyszerűen érthető és gyorsan lehet haladni vele? Elsősorban C# nyelvvel foglalkozó könyvek érdekelnének. Előre is köszönöm segítségeteket
[ Szerkesztve ]
"Te is fiam Bluethooth!"
-
haromegesz14
aktív tag
válasz zulu_mester #7152 üzenetére
[ Szerkesztve ]
10 féle ember létezik, aki ismeri a bináris számrendszert, és aki nem!
-
vlevi
nagyúr
válasz zulu_mester #7152 üzenetére
7063 hozzászólásban említett Reiter István könyvet tudom ajanlani. Netről letölthető.
Igaz, a C#6.0 ujdonságai nincsenek benne, de az alapok megtanulásához nagyonjó. -
zulu_mester
tag
Köszönööm a válaszokat!
"Te is fiam Bluethooth!"
-
mrhitoshi
veterán
Üdv! Belefutottam egy probléma, és ez akadályozza c# fejlődésemet, de úgy érzem ha ezt a problémát megoldom, akkor szintet lépek.
Szóval adott egy feladat: Textboxba ír a user egy mondatot, és meg kell mondani, hogy mondjuk mennyi e betű volt benne. Elkezdtem megírni, de itt jött a gond. A mondatot listben tudom tárolni, ilyenkor ugye nem kell megadnom, hogy mekkora lesz a mondat, ha jól gondolom. Viszont mikor számolni akarok, akkor nem tudom a pontos procedúrát. Tömbbel simán megtudnám csinálni, de egyrészt az nem elég mókás már másrészt pedig nem tudom előre hogy mennyi karaktert akar megadni a felhasználó.
Szóval hogyan lehet végigfutni a mondaton hogy megmondjam mennyi e betűt tartalmazott ?PS4
-
netpeti98
addikt
válasz mrhitoshi #7159 üzenetére
Nem kell neki külön lista vagy tömb és a mérettel se kell törődni, mert a stringeket tudod char tömbként kezelni.
Pl.:
string s = "Hello";
Console.WriteLine(s[1]); //eA hosszát egy normál tömbhöz hasonlóan a s.Lenght property adja meg. Pl.:
Console.WriteLine(s.Length); //5
Ugyanúgy bejaárhatod for vagy foreach segítségével, de még a LINQ is működik rajta.
[ Szerkesztve ]
-
mrhitoshi
veterán
Aha. Volt egy ilyen gondolatom még C-s időkből, de nem voltam ebben biztos. Akkor marad ez a megoldás. Köszönöm a gyors segítséget!
PS4
-
#40351744
törölt tag
válasz haromegesz14 #7153 üzenetére
Hát ez marha jó Láttam már ilyen fajta oldalakat, de ez a legjobb mind közül.
zulu_mester egyébként igen, én is a Reiter István féle 2 könyvet ajánlom, alap elsajátításhoz tökéletes. Ha kell valami segítség, itt várunk
-
alratar
addikt
Sziasztok,
Valahol azt olvastam, hogy a var kulcsszó használatát lehetőleg kerülni kell. Mégis azt latom, hogy egy csomóan használják.
Most akkor, hogy van ez?10 féle ember van: aki ismeri a bináris számrendszert, és aki nem
-
Alexios
veterán
válasz alratar #7165 üzenetére
nincs semmi ok a kerülésére, illetve sok helyzetben, pl. linq meg hasonló esetekben egyszerűbb is mint kitalálni mi lesz az eredmény.
Igazából semmi varázslat nincs benne, intellisense behelyettesíti helyetted kb, ha ráviszed a kurzorod a var szóra is kiírja milyen típus van mögötte.
[ Szerkesztve ]
-
vlevi
nagyúr
válasz alratar #7165 üzenetére
Linq-nál elkerülhetetlen a használata, mert nem tudod a visszaadott tipust.
De az észnélnküli, mindent var-al veszek fel, majd a fordito megoldja, sem jó, mert nem tudod mi micsoda.
Főleg, ha hosszu ideig használod azt a változót, amikor már a harmadik helyre adod át paraméterként, akkor elveszel az ismeretlen tipusokban. Lehet, hogy rossz overload metodust hiv majd meg, vagy te azt hiszed, hogy double, mikozben a fordito csak int tipusként hozta létre, satöbbi.
Egy foreach-en belül a var item in collection teljesen rendben van. -
-
MODERÁTOR
válasz alratar #7165 üzenetére
A var egy olyan speciális "típus" amit a fordító behelyettesít a megfelelőre. Ezzel el lehet kerülni két oldalas castolást. Egyszer kaphat "normális típust", ebben különbözik az object-től.
[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
vlevi
nagyúr
string az tényleg elég dúúúrva lehet, de ha beírod, hogy
var szam=0; (int32 lesz)
var szam=0.0; (ez double)
De ha simán el tudom képzelni, hogy van két overloaded metódus, az egyik int-t ad vissza, a másik stringet, és ha nem figyelsz a paraméterezésnél, akkor a var walami=metodus(); a rosszabbikat fogja neked választani.
De elég az is, ha double helyett int adattípust definiál a var k=0; és nem érted, miért számol baromságot. -
Alexios
veterán
Nyílván a var k=0 esetben doublet szeretnél akkor nem ezt használod, vagy eletszerubb esetben mondjuk mint ososztaly/interfész szeretnél rá hivatkozni de ezek azért nem a kifejezett hiba esetek, bár az overloaded esetben nem értelek hiszen vissza teresi értékkel nem lehet overloadolni, ha meg rossz paramétert adsz meg akkor nem a neked rosszabbat fogja adni, hanem azt amit meghivtal.
Én pl mindig vart használok, azokkal a kivetelekkel amikor vagy nem lenne egyértelmű ezek alapján mi az, vagy tényleg csak valamelyik interfész részét akarom mondjuk láttatni.
[ Szerkesztve ]
-
MODERÁTOR
válasz Alexios #7172 üzenetére
Az is lehet, hogy rosszul emlékszem. Sokat nem C#-oztam, a linq-t meg még annyit sem használtam. Szerintem nektek lesz igazatok!
Szerk.: igen, inkább visszatöröltem a dolgokat, hogy hülyeség ne maradjon meg. Elkövettem azt a hibát, hogy nem voltam alapos és nem nézem utána. Elnézést.
[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
harylmu
őstag
De ha simán el tudom képzelni, hogy van két overloaded metódus, az egyik int-t ad vissza, a másik stringet, és ha nem figyelsz a paraméterezésnél, akkor a var walami=metodus(); a rosszabbikat fogja neked választani.
Azért az kemény lenne.
Type 'Program' already defines a member called 'Get' with the same parameter types
ja, sorry, te "hasonló" paraméterekről beszéltél és figyelmetlenségről. ebben az esetben nem fogadom el az érved.
[ Szerkesztve ]
-
harylmu
őstag
Nem ide tartozik, de érdekességképp.Tervbe van egy ilyen feature:
(string, string, string) LookupName(long id) // tuple return type
{
... // retrieve first, middle and last from data storage
return (first, middle, last); // tuple literal
} -
harylmu
őstag
Ez és a tuple milyen helyzetekben hasznos? Separation of concerns-t meg az olvashatóságot nem hágja át csúnyán?
Mármint ha pl nevet és hozzátartozó id-t szeretnék visszaadni, szerintem azt se Tuple-el csinálnám. Inkább csinálnék egy person osztályt, és akkor a tagjai nem anonymousok (Item1,Item2,Item3) -
fatal`
titán
Szerintem kevered a vart a dynamic-kal. Maximum olyan eset tud előfordulni, hogy object lesz a konkrét típus helyett (pl. a Regex osztályon van ilyen a Matches property esetében).
(#7182) harylmu: Az említett szintaxis sokkal olvashatóbb, mint az hogy .Item1, .Item2 stb.
Olyan helyzetben tud hasznos lenni, amikor 1-2 helyen kéne pár elemű összetett típus (de nem kulcs-érték pár) és nem akarsz külön osztályt definiálni. Nem túl gyakori de azért néha előfordul.
[ Szerkesztve ]
-
amargo
addikt
válasz harylmu #7182 üzenetére
Nehéz olyan helyzetet talalni, amikor a Tuple hasznos.. lustaság vagy amikor tényleg nem fontos, hogy legyen rá valami kezzel fogható dolgod. Sokan ilyenkor a key value-hoz menekülnek és abba gyomoszolik bele a problémát.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
xors
senior tag
Lenne egy igazából sima algoritmizálós problémám, de mésis C# -ban dolgozok, így ide tartozik.
A feladat az lenne, hogy van egy tömbünk amikbe vannak fej (F) meg írás (I) pénzfeldobás eredményei, persze jó sok.
Meg kéne keresnem a leghosszabb F sorozatot a tömbben, hogy hol kezdődik, és milyen hosszú.Ehhez kérném a segítségeteket, mert hiába agyalok rajta, nem tudok rájönni hogyan kellene. -
Ukeve
tag
Sziasztok!
Kb. 3 hete kezdtem el C# programozással foglalkozni, és az egyik gyakorló feladatban elakadtam.
A feladat: "Addig kérjünk be számokat billentyűzetről, amíg azok összege el nem éri a 100-at. A végén írjuk ki a képernyőre a számok összegét.
Lehetséges módosítások:
- a bekérést hagyjuk abba, ha elérjük a 100 összeget, de legfeljebb 10 db számot
- csak a pozitív számokat vegyük figyelembe az összegképzés során
- írjuk ki a legkisebb és legnagyobb értéket amelyet beírtak
- határozzuk meg, volt-e a beírt értékek között páros szám (igen/nem)"
A min. és max. kiíratásra megtaláltam a megfelelő tételt, viszont arra sehogy se jövök rá, hogy miként lehetne az összes bekért érték az a tömb, amiben keresni fog.
Előre is köszi a segítséget! -
Alexios
veterán
A tömböt még a beolvasás előtt hozd létre, mivel max 10db-ot olvashatsz be ezért egy 10 elemű tömb tök jó neked(vagy használhatnál listát is, de gondolom itt tömböt kell)
ez esetben:int[] tomb = new int[10];
Ezzel létrehoztál egy új, 10 elemből álló tömböt, a mostani kódodnál egy egy elemű tömböt hozol létre, amiben az egyetlen elem a szam változó tartalma.
Minden sikeres beolvasásnál el tudod menteni ebbe a tömbbe az elemeket, és onnantól tudsz keresni rajta, meg amit akarsz. -
lord.lakli
őstag
1) Hibakezelés hiányzik (pl.: int konverzió)
2) Tömbbe nem pakolod be az értéket.
3) Páros/páratlan vizsgálatnál az utolsó számot vizsgálod csak meg és nem az összeset.
4) tomb[k] kap értéket és nem a min. Képen nem látszik, de gondolom ugyanez van a max-al is.
Érdemes lenne Linq-et is megnézni, ha az engedélyezett.[ Szerkesztve ]
-
netpeti98
addikt
válasz lord.lakli #7195 üzenetére
Azt írta, hogy 3 hete kezdte. Szerintem nem érdemes rögtön az alap algoritmusokat átugrani LINQ-val.
-
Ukeve
tag
válasz lord.lakli #7197 üzenetére
Köszi mindenkinek a segítséget!
Már csak egyetlen gond van vele, hogy ha 10-nél kevesebb értéket írok be, akkor nem működik megfelelően a program, ha pontosan 10-t, akkor igen.
A feladat leírása:
Addig kérjünk be számokat billentyűzetről, amíg azok összege el nem éri a 100-at. A végén írjuk ki a képernyőre a számok összegét.
Lehetséges módosítások:
a bekérést hagyjuk abba, ha elérjük a 100 összeget, de legfeljebb 10 db számot
csak a pozitív számokat vegyük figyelembe az összegképzés során
írjuk ki a legkisebb és legnagyobb értéket amelyet beírtak
határozzuk meg, volt-e a beírt értékek között páros szám (igen/nem) -
harylmu
őstag
Szia.
Berakod pastebin-re és feltöltöd megint azt a részt? A max-min algoritmusnak 1nél nagyobb tömbben mennie kell. Lord.rakli 4)-es pontját is fixáltad?
+ csak egy tipp: nem csak a min-t, hanem a max-ot is megkaphatod ugyanazon a cikluson belül, ha a kacsacsőrt a másik irányba fordítod. És akkor nem kell 2x végigmenni a tömbön.
edit: látok arra esélyt, hogy a probléma az lesz hogy azelőtt elérted a 100as szummát mielőtt feltöltötted a tömb mind a 10 tagját. Majd mikor végigiterálsz rajta a keresőn dob egy null exceptiont, a fel nem töltött elemre.
Pl. tomb[9]-re dob egy null reference-t, mert nem töltötted fel az első ciklusban, mert csak tomb[5]-ig jutottál el, de a tomb[6],tomb[7],tomb[8],tomb[9],tomb[10] mind null (ami nem nulla!).[ Szerkesztve ]
Ú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!
- iPhone 14 Pro 128 GB Space Black, 11 hónapos, kártyafüggetlen, 2024. május végéig garis , akku 91%
- Asus VivoBook X509JA-BQ904T
- HP EliteBook 640 G9 Ezüst (14" / Intel i5-1235U / 16GB / 512GB SSD / Win 11 Pro) -10% Most 203.990 F
- Lenovo M810z AIO Core I5 6400 4x2700/8GB/120G SSD/wifi/cam 21,5 -10% 66.950 ft
- Microsoft Surface Book 2 - i7-8650u/8GB/256GB SSD/Windows 11 -. 10% Most Csak 125990 Forint