Új hozzászólás Aktív témák
-
Peter Kiss
őstag
válasz
Jester01 #2726 üzenetére
Ezt a new sorrendet nem lehet megvalósítani.
Csak egy gyenge példa rá:
IEnumerable<int> t = new[] { 12, 34};
Interface-t példányosítanék?IDictionary-t se írnám ki, hótzicher, mert minek. System.Collections.Generic.Dictionary implementálja az IDictionary-t, és még sok minden mást! Ha kiírom az IDictionary-t, akkor a többit (implementált interface-ek) ezzel el is veszítem.
Tahát, egy változtatás miatt lesz mondjuk int-ből double, de van rá overload-olt metódusom (ugyanaz a metódusnév), ami annyit tesz, hogy problem solved.
-
Peter Kiss
őstag
válasz
Jester01 #2724 üzenetére
Pont, hogy nem kavarhat be. Amikor teljesen egyértelmű az, hogy mi lesz a típus (pl. new Akarmi()), akkor miért írnám ki kétszer? Teljesen hülyeség.
Dictionary<NagyonHosszuNevuOsztalyDeKiirom, MegHosszabbNevuDeEztIsKiiromAkkorIs> d = new Dictionary<NagyonHosszuNevuOsztalyDeKiirom, MegHosszabbNevuDeEztIsKiiromAkkorIs>();
-
Dr. Student
senior tag
válasz
Jester01 #2692 üzenetére
Igen valszeg itt a baj, tehát van az az alapképlet, hogy
F(n-1)+F(n-2)Tehát magát a képletet nem értem, mert mondjuk ha 5-1+5-2 az mondjuk 7 és ilyen szám nincs a fib sorozatban... vagy lehet én vok ehhez teljesen hülye...tehát magát az egész fib. nem értem...
Mod: Jól megfogalmaztam
-
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();
}
} -
Atos23
senior tag
válasz
Jester01 #2571 üzenetére
Ugy tunik sikerult megoldani for-ral most az ajanlasod alapjan.
Sokszor ez a baj nalam, hogy tulbonyolitom a dolgokat, mikor ki kell talalni a szoveges leirasbol a forraskodba atirast.
Holnap atirom Whileba
Bar meg van 48 ilyen feladatom, de igyekszem kicsit egyszerubben gondolkodni
Console.WriteLine("Hany szamot akarsz beadni?");
int a = int.Parse(Console.ReadLine());
int i=0;Console.WriteLine("Kerem az elso szamot");
int b = int.Parse(Console.ReadLine());Console.WriteLine("Kerem a masodik szamot");
int c = int.Parse(Console.ReadLine());int sum = c - b;
for (i = 0; i < a-2; i++)
{
Console.WriteLine("Kerek egy tovabbi szamot");
int d = int.Parse(Console.ReadLine());
if (d == sum * (i + 3)) Console.WriteLine("Ezek a szamok eddig szamtani sort alkotnak");
else
{
Console.WriteLine("Ezek a szamok nem alkotnak szamtani sort");
break;
}}
Console.ReadLine();
-
válasz
Jester01 #2515 üzenetére
Azt lehet látni, hogy érti-e vagy sem a rekurziót, de azért nem hiszem, hogy kezdő programozónak azt kellene először megtanítani, hogy nem használunk dolgokat - a sebességről nem is beszélve. Az osztályok és interfészek kizárása pedig egyenesen bűntény. arra kell először rászoktatni a népet, nehogy rosszul rögzüljön bennük. A suliban nekünk se mondtak semmit például a DRY-ról vagy a SOLID-ról és így utólag dühös is vagyok a tanárok inkompetenciája miatt.
(#2511) Lacces:
Jól látod. Egy metódusnál a hívásban szereplő típus a lényeg, ahogy a kolléga írja. Ezért is lehetséges a túlterhelés, amikor egy metódusnak több formája létezik ugyanazon néven, csak más típusokkal. Híváskor az fogja eldönteni, hogy melyik fut le, hogy milyen paraméterekkel hívod meg. Mondjuk ez így önmagában nem az öröklés témaköre. -
Lacces
őstag
válasz
Jester01 #2470 üzenetére
a return az tényleg igaz, ott az else ágat kivettem. Amúgy melyik a jobb megoldás?
Ha return false vagy return true-t használok, vagy egy bool értéket, és azt adom át a return-nek? pl: bool result = flase; return result;RemoveAll-nál igaz, az elején még nekem while ciklus volt, ott lehet a beadandó miatt átnéztem :-D, Így while szépen veszi ki
While esetében melyikre gondoltál? Amelyik kommentelve van, vagy amelyik használatban?
-
ArchElf
addikt
válasz
Jester01 #2431 üzenetére
NP
Egyébként a példákat inkább csak az azonos megvalósítás kedvéért hoztam.
A példáim inkább egyszerű szemléltető kódocskák voltak, mint valós problémára írt csontra optimalizált kódok. Abban mondjuk egzet;rtek, hogy a tanulók inkább tanuljanak egy kicsit (nem is kicsit) optimalizálni, és problémamentes kódot írni.De had engedtessék meg nekem, hogy magyarázkodjam kicsit:
Természetesen plusz egy változóval sokkal hatékonyabban (nagy tömbelemszám esetén) megoldható a probléma, de ebben az esetben... Lássuk be, hogy három értékadás kb ugyanannyi erőforrást igényel, mint két értékadás plusz egy modulus osztás (ráadásul memóriában kevesebb is).
List / Sum (Linq) egyértelműen pazarlás erre a célra, ezekben az esetekben csak azt szerettem volna bemutatni, hogy nem csak a tömb létezik a .NET struktúrában, és List-tel lehet hasonló dolgokat csinálni (ráadásul úgy, hogy munka oroszlánrészét megcsinálja helyettünk a környezet).
Mondjuk a MOD-ot nem igazán értem. Az összeget mindig újra kell számolni, hiszen, ha mást nem a régi tagot ki kell vonni, az újat pedig hozzá kell adni, három tömbelem esetén ez sem biztos, hogy előnyösebb.Emellett feltételeztem, hogy a kolléga nem nagyon konyít a kivételkezeléshez (bocsánat a feltételezésért), viszont olyan kódot nem szeretek írni, ahol a kivételek nincsenek minimálisan sem lekezelve. A kivételkezelést pedig nem itt gondoltam bemutatni...
Feltételeztem azt is, hogy esetleg már valami offiszos tapasztalata (excel), ahol az =Int("szöveg") nullát ad vissza, ezért az általam írt kód is ezt a sémát követi. Természetesen megoldható volna az is, hogy a temp = 0; helyett egy Console.Error.WriteLine-al hibaüzenetet dobjon + continue segítségével újra bekérjen adatot a kód (mondjuk úgy rémlik, hogy a kivételkezelés módja nem volt lespecifikálva).
Végül (még egyszer?): nem egy általános megoldást akartam adni (ami kód mennyiségben valószínűleg több is, ráadásul egy kezdő számára sokkal nehezebben felfogható egészben, mint rész-példák összegeként).
Ja, és egyáltalán nem sértődtem, és köszönöm az építő kritikát.
AE
-
Gülredy
tag
válasz
Jester01 #2412 üzenetére
Volt egy feladat előtte de azzal sem mentem többre (más programozási feladat nem volt)
Itt a feltételezett előzmény:
A program inputja egyetlenegy kezdőállapot, outputja pedig a 10 lépés során az ágens által választott akciók, és mellé a világ aktuális állapotainak leírása. Pl.
Input: pozíció:A A: koszos B:tiszta
Output:
1 -- akció:szív pozíció:A A:tiszta B:tiszta
2 -- akció:jobbra pozícióA:tiszta B:tiszta akció:
3 -- akció:balra pozíció:A A:tiszta B:tiszta
4 -- ...........Tehát az lenne a lényege, hogy egy porszívó robotot kell készíteni, amely először bekér egy kezdőállapotot , majd a 10. lépés után kiírja hogy milyen lépést választott(?), és ha jól veszem ki akkor mind a 10et kiírja.
Ennyi volt az előzménye.Elég kezdő vagyok c#-ban így valószínűleg csak ezért okoz gondot ez, bár a tanár magyarázása is elég össze vissza. Tudnál segíteni hogy induljak el?
-
Lacces
őstag
válasz
Jester01 #2385 üzenetére
Köszi, a ref is jól jön ilyenkor, meg a kollega megoldása is
"This allows you to declare an array and assign any array of int objects to it, regardless of the array's length." - ezt olvastam fent msdn library-ben. Itt az int objects akkor mi akar lenni?
Utána eszembe jutott, hogy az int[] az referencia típus, mert a system.object-ből öröklődik.
-
C^^
őstag
válasz
Jester01 #2140 üzenetére
Pedig így működik.
A specifikáció azt mondja, hogy "Enumerators are positioned before the first element until the first MoveNext() call."
Jelen esetben ez az akt=null a konstruktorban.
Ha ezek után nincs benne a MoveNext()-ben az if (akt==null) akt=elso;, akkor soha nem fog ráállni az első elemre. (Dob is egy NullReferenceExeptiont.)Így is működik:
public bool MoveNext()
{
akt = akt.KovetkezoElem;
return akt != null;
}
Viszont akkor a konstruktorban egyből az első elemre kell állítani az aktot, ami szintén ellentmond a specifikációnak.Van egy olyan érzésem, hogy még mindig nem értek valamit.
-
Lakers
tag
válasz
Jester01 #1920 üzenetére
Köszönöm Jester,
Akkor mely könyveket ajánlod?
Egy kellene C/C++ nyelvre (elsősorban villamosmérnököknek, műszaki feladatok megvalósítása)
És egy C# amiből esetleg .Net alapjai.Így utólag Bruce Eckel - Thinking in C++ könyv-e tetszik átnézésre, mert sok benne a példakód
Ez a kód is egy könyvben volt...(Címe: Többnyelvű programozástechnika)
-
skybot
csendes tag
-
yash
senior tag
válasz
Jester01 #871 üzenetére
1) igen ki kell (kulonben nagyon egyszeru lenne olyan kodot irni, ami az elso osztonal kilep egy break-kel a for-bol pl
2) az Int64 remiszto, de pont emiatt lehet vele jatszani, ha valaki gyorsabb algoritmust tud ket reszre bontott Int32-vel, ugy is neki lehet allni, tehat jo otlet
3) 2GB RAM all rendelkezesre, szukseg eseten virtualis memoria szinten ennyi es fix.
4) eleg egy szamot ellenoriznihajra!
-
andriscs
aktív tag
válasz
Jester01 #408 üzenetére
Hi!
De, mielőt beleraktuk a pixel ill. vertex shader-eket, azelőtt kirajzolta a Sky-t meg a hajót, de a shader-ekkel nem rajzol semmit. Próbáltam csak a Sky-t kirajzolni, semmi mást, de azt sem rajzolja ki. Szóval elvileg valami logikai hiba lehet benne, hogy nem látszik semmi. Esetleg a rajzolási sorrend rossz?
A szigetrenderelési kódot úgy másoltam ki az útmutatóból. 3 példány esetén sem látszik semmi. :S -
andriscs
aktív tag
válasz
Jester01 #406 üzenetére
Hi!
Nem tudom, így volt kiadva a labor útmutató. Beállítottam None-ra a Cull mode-ot, de semmi változás. Először azt hittem, nem futnak le a Render-ek, de mennek, csak mindha semmit nem rajzolnának. Erre épül a többi labor is, szóval amíg ez nem működik, semmit nem tudok kezdeni a többi feladattal. -
manrick
tag
válasz
Jester01 #347 üzenetére
Köszi a segítséget megnézem, remélem jutok vele valamire.
Nem igazán találtam kész megoldást. A helyzet az, hogy logolni kell mindent. Ki milyen levelet nyit meg, szabályozni kell hogy visszazárhassa. Egy postafiókból dolgozik az osztály. A teljesítmény mérése a cél.
De ha van ötlet, szívesen veszem. -
andriscs
aktív tag
válasz
Jester01 #345 üzenetére
Hi!
Mikor kivettem a readString-et, akkor is rosszult működött. Igazából köztes megoldásanak azt csináltam, hogy beleraktam egy reader.readString-et, így eggyel több az olvasás. Emiatt most megy. Próbálkoztam azzal, hogy a while-ban a feltételt nem a Read-hez kötöm, hanem egyéb megoldásokhoz. Például:
while(reader.ReadState==ReadState.EndOfFile)
...
vagy
while(reader.EOF)
...
De ezeket használva nem olvasott be semmit.
Majd még átnézem, hogy mi a baj. -
whitewolf5
csendes tag
válasz
Jester01 #339 üzenetére
OK megoldottam így:
select BeszSorszám, Leírás,Tipus,Raktár,Évjárat=case when Raktár like 1 or Raktár like 2 or Raktár like 9 or Raktár like 13 or Raktár like 15 or Raktár like 17 then 'Új' else évjárat end,Szín,Térfogat,PicturePath,Extrák,Új,Kép1kicsi where ....
De ez akkor is hihetetlen számomra hogy DetailsView-val el lehet érni az oszlopok értékeit elég egyszerűen, GridView-nál meg senki sem tud róla..? -
kave
csendes tag
válasz
Jester01 #330 üzenetére
Hali,
Kicsit részletesebben a server kódja:
TcpListener server = null;
try
{
int port = 15000;
server = new TcpListener(IPAdress.Parse(''80.99.204.28'', port);
server.Start();
Console.Write(''Server started... '');
Byte[] bytes = new Byte[256];
String data = null;
while (true)
{
TcpClient client = server.AcceptTcpClient();
data = null; //Eddig már nem jut el
NetworkStream stream = client.GetStream();
stream.Read(bytes, 0, bytes.Length);
...
Az ip-címem jó, és figyel is a porton, de nekem mégis úgy tűnik, hogy a cliens nem találja meg a servert.
A kliens kódja:
Int32 port = 15000;
TcpClient client = new TcpClient(''80.99.204.28'', port);
Byte[] data = System.Text.Encoding.ASCII.GetBytes(''3 '' + textBox1.Text +'' ''+ textBox2.Text );
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);
... -
-
amargo
addikt
válasz
Jester01 #270 üzenetére
Maximum 9elemű a tömb, ami kell nekem, ennél a rendezés sem számít.. megnézetem, hogy úgy mit javúl, de semmi.
Ma átírtam a c++ os progit is ott vectoral oldottam meg. Iszonyat gyors lett! Nincsenek így már típus konvercióim valami 0,1mp alatt generál.
Viszont amit nem értek van egy olyan verzóm is, amiben 2szálon fut a program a generálás külön szál. De randomként mindig tök ugyan azt a számokat adja ki!
És lassabb is.. Nem értem.
Vagy csak a számláló, amit az egyszálúba raktam, nem tudja olyan gyorsan kiírni az időt?
Most viszont innen hiányolom a hashtable-t (hasonlót) mert pont jó lenne Builder alatt. Valami elneteműlt varriációt találtam, hogy matrixot csináljak vectorból.. de.
Tényleg sok információt elfelejtettem írni. Elnézést.
De ez az arraylist tünik a legjobbnak eddig. -
-
tomazin
veterán
válasz
Jester01 #211 üzenetére
Sztem kicsit félreértettük 1mást.
Annyit szeretnék,hogy várjon 1 picit majd rajzolja ki az éppen aktuális gráfot,majd megint várjon(hogy lássam 3mpig mi volt a lépés)majd megint rajzolja ki a már megváltozott gráfot.Csak annyi ideig szeretném késleltetni,hogy lássam a rajzon,hogy megcsinált egy lépést,mehetünk tovább.
Ú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!
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- LG 65C3 - 65" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9700X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- AKCIÓ! Épített KomPhone R5 4500 16GB RAM 240GB SSD RX 6500 XT 4GB GAMER PC termékbeszámítással
- DELL Thunderbolt Dock - WD19TB modul 02HV8N (ELKELT)
- Fujitsu USB Port Replicator PR09 docking station (1x5K vagy 2x4K felbontás) (DisplayLink)
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged