Új hozzászólás Aktív témák
-
btraven
őstag
válasz
sztanozs #6388 üzenetére
A térkép külön adatfájlban van. A térképeket sikerült is kirajzolnom programmal, csak a rajta levő speciális helyeket nem. Mint üzenetek, teleportok, fel/lejárat stb. Pedig az is fontos lett volna.
De mindegy is mert a játék közben olyan bugos lett hogy elfogyott a türelmem és feladtam. -
-
jattila48
aktív tag
válasz
sztanozs #6349 üzenetére
"az új kód inkább turkál a (memória-) szemétben"
Ja, aztán valakinek eszébe jut újra buildelni új fordítóval, vagy más opciókkal (optimalizálás, stack check, debug, ...), és szószerint szemétben túrkálás lesz belőle, aztán megy a fejvakarás, hogy eddig működött, most már nem, biztos a fordító szar. Láttam már ilyet. És valóban: Time is money. -
pmonitor
aktív tag
válasz
sztanozs #6313 üzenetére
Tényleg, ezt nem is néztem, látod(csak kopiztam). A Wikipedia az első link, ami működik. Pont ezért is illene átnézni, és legalább a felülvizsgálatot elkövetni velük, mert a döglött linkek amúgy sem szépek egy oldalon.
De egyébként nem erre a problémára gondoltam, hanem hogy sztem. nem kéne 1 olyan oldalt reklámozni, mint a prog.hu. Ezzel kapcsolatban várom a véleményeket pro és kontra, hogy hánynak tetszik a prog.hu, és mennyinek nem. És főleg az indoko érdekelnének. Nekem pl. az említett dolgon kívül nagy problémám az oldallal, hogy csak úgy frissítgeti magát, önkéntesen.
-
pmonitor
aktív tag
válasz
sztanozs #6274 üzenetére
Lehet, hogy nevemfel csinálta jól. A #6199-#6200-as hsz-ében leírta a véleményét, aztán befejezte. De ha én is ezt csináltam volna, akkor meg nem jutottunk volna el az előző kódokhoz.
Na mind1. Az biztos, hogy én a goto ellenesek táborába tartozom. És ha valaki nem ír olyant, amivel válaszkényszert generál részemre, akkor én is megpróbálom nevemfel viselkedését követni.
-
pmonitor
aktív tag
válasz
sztanozs #6270 üzenetére
Kijelentettem. Nem vitatkozok. Főleg nem győzködök. Mint láthatod, megírtam a kódot. Nekem hasznos időtöltés volt, mert megpróbáltam megérteni az olyanokat, akik annyira oda vannak a goto-ért. Nem árt, ha az ember tanul más szemléletmódot is, még akkor is, ha nem szimpi. Már nem tudom ki írta, meg betű szerint nem is tudom idézni, de megpróbálom: "Programozni annyi, mint megérteni valamit". Teljesen igaza van.
-
pmonitor
aktív tag
válasz
sztanozs #6245 üzenetére
Egy példát tudnál mutatni? Mert amit én a #6219-ben írtam példát, ott egyetlenegy szinttel mélyült csak, nem többel. De ha a #6233-ban lévő behúzást használnánk, sztem alig lehetne ezt is észrevenni.
Meg a tapasztalatom szerint inkább ilyen szerkezetek lesznek:
if(feltétel1 || feltétel2 || feltétel3)
{
}Tehát inkább csak az if-ben növekszik a feltételek száma, nem a feltétel mélysége. Általában VAGY, de ritkán előfordul ÉS kapcsolat is.
-
pmonitor
aktív tag
válasz
sztanozs #6208 üzenetére
A megerőszakolt while ciklus sztem. egyértelműbb(ha ennél a példánál maradunk), mint a goto. Mert a while ciklus esetén kapásból látod, hogy itt f értékétől függő ciklusról van szó. Ráadásul ugye ott még a code syntax(behúzás) is segít a megértésben. Ha egy cimkét látsz, akkor azt nem tudhatod, hogy fentebbről jövő if, vagy else, vagy alulról jövő ciklustól téved-e oda a vezérlés. Ráadásul a cimkéknél nem nagyon van syntax(behúzás), illetve ha van, az meg még rosszabbul olvasható. Ugyanakkor a for-ban lévő goto esetén sem tudod egyből megmondani, hogy az előre, vagy hátra ugrik-e. Szóval a megerőszakolt while esetén egyből látszik a szerkezet, míg goto esetén nem.
Azért a vb6/vba/vbs esetén amit linkeltél, az nem ugyanaz, mint a Try/Catch/Finally. Ezt is figyelembe kell venni. Egyébként ezek közül én csak az On Error Resume Next-et szoktam használni. De amit linkeltem, az a pascal program végén látható "A goto eredménye" című kép, az sztem abszolút nem nyelvfüggő. Másrészt meg én úgy tudom, hogy a C-t is a magas szintű nyelvek közé sorolják.
-
pmonitor
aktív tag
válasz
sztanozs #6205 üzenetére
Technikailag nem ugyanazt csinálja, mert az
// utasítások
-ban lehet olyan is, ami átugorja a for és a while ciklust is egyben, vagy még hátrébb is mehet. Ezért értek egyet azzal az állásponttal, hogy goto-t soha, még ha durvább megfogalmazás is.Nézd meg légyszíves ezen oldal végén a "goto eredménye részt". Na ezért mondom, hogy gotot soha...
-
pmonitor
aktív tag
válasz
sztanozs #6202 üzenetére
Nem az implementációról beszéltem. Nem tudsz olyan kódot írni, hogy az implementációban break(vagy continue) legyen. Ott valóban minden goto(és ha tovább megyünk a kész kódra, akkor jmp) lesz. Arról a forráskódról beszéltem, amit a user ír. A példádban erről:
for (int i=k; i>l; i+=m)
Itt a continue visszafelé lép a törzsből az "i+=m"-re. Míg a break csak előre lép, a törzs utáni helyre. break-el nem tudsz visszafelé lépni. A goto-val meg össze-vissza tudsz lépkedni(akár hátrafelé is ki tudsz lépni a ciklusból(aztán vagy újra belelépsz, vagy akkor már kihagyhatod a ciklust is). Pl.:
cimke_1:
//utasítások
for (int i=k; i>l; i+=m) {
//utsítások
goto cimke_1;
}Ilyent a break-el nem tudsz csinálni. Az, hogy az implementációban mi van, az más kérdés.
Szerk:
A break esetén megvalósul a szekvencia - iteráció elv. Szekvenciálisan mennek az utasítások, amíg egy ciklushoz nem érsz. A ciklus más dimenzió, mint a szekvencia. Viszont a break tartja a szekvenciát(hiszen előre ugrik. Tehát az iteráció előtt és mögött is megmarad a szekvencia. Persze közben lehet szelekció bárhol, de a példámat nem akartam annyira bonyolítani. -
pmonitor
aktív tag
válasz
sztanozs #6195 üzenetére
Bármennyire is adott azonban a lehetőség a Goto használatára, ne használjuk. Nincs olyan probléma, amely ne lenne megoldható nélküle is, használatával azonban áttekinthetetlenné válik a programunk, és ezzel a hibalehetőségek száma növekszik.
Továbbá:
A Goto parancs sok nyelvben létezik, használatát azonban el kell kerülni. Léteztek olyan ősnyelvek, amelyekben nélkülözhetetlen volt, a mai magasszintű nyelvekbe azonban többnyire hagyománytiszteletből került be, nincs rá szükség. Léteznek olyan nyelvek is, amelyekből hiányzik ez a parancs.
Ezért hasonlítom össze a C-t meg a Pascalt(meg minden olyan nyelvet, amiben létezik). Mindenesetre a fenti idézetek sem Stroustrup nézőpontját hangoztatják, hanem László Józsefét. Sőt, a második idézet egyértelműen kimondja, hogy léteznek olyan nyelvek is amelyekből hiányzik. Ezek szerint azokban a nyelvekben nem is lehet programozni, igaz?
-
pmonitor
aktív tag
válasz
sztanozs #6193 üzenetére
Az első mondatom meg szerintem nem értetted meg. Azt a goto-ra írtam.
Csak azért leírtam, hogy komoly könyv írója is tiltja a goto-t nem véletlenül.
Meg leírtam, hogy ezzel virtuálisan jól összeugrasztottam Stroustrup-ot és László Józsefet.Még a szakik sem értenek mondjuk egyet. De László József nem egy könyvet írt meg goto nélkül. Ez azért valamit csak jelent, nem?
-
pmonitor
aktív tag
válasz
sztanozs #6188 üzenetére
A break nem goto. Nem lehet vele visszafelé ugrani, meg if-es szerkezetekből sem tudsz kilépni vele.
Ebben a könyvben László József a következőket írja(többek között):
>A Pascal programokban betartunk még néhány hasznosnak vélt egyéb konvenciót is:
1: Angol elnevezést adunk az eljárásoknak, függvényeknek, típusoknak, változóknak, stb.,
.
3: A megjegyzéseket magyarul írjuk, lehetőleg minél tömörebben,
.
5: A goto utasítást a Pascal-ban nem használjuk, mert ugye programozók vagyunk.Na, most virtuálisan jól összeugrasztottam Stroustrup-ot és László Józsefet.
-
pmonitor
aktív tag
válasz
sztanozs #6160 üzenetére
Nem pejoratív értelemben gondoltam, amit írtam. Csupán azt jelenti, hogy aki ezt írja magáról: "Elkezdtem csak úgy érdeklődés szinten c-t tanulni mert érdekel. Az elején vagyok nagyon"
Ha ő megérti, akkor nagyon tehetséges. Ezt értettem a "viheti valamire" alatt. Egyébként az sem baj, ha most nem érti meg, és később visszanéz(és akkor gondolkodik el rajt). Viszont az olvasók között is lehet olyan, aki már eljutott odáig, hogy magától nem jutna eszébe, de ha így látja, akkor egyrészt megérti a működését, másrészt hogy mely esetekben célszerű ezt a formát használni. Sztem. az olvasókat kevesen emlegetik(talán senki), pedig többen vannak, mint akik ide írnak. Pl. itt is szóba került, hogy a kérdező kezdő, azért nem kellene kész megoldást adni. Az ilyenre írom, hogy azért olvasók is vannak, akik már megértik a másfajta megoldást is. Nem biztos, hogy mindig csak a kérdezőt kellene nézni. De a kódot "konyhanyelven" pszeudo kóddal is le lehet írni, ha valaki nem akar teljesen kész kódot adni. -
Domonkos
addikt
válasz
sztanozs #6008 üzenetére
Mert a 0-val valo osztas UB, igy ezzel a lehetoseggel nem is kell a forditonak szamolnia. Mivel ezzel nem kell szamolnia, igy feltetelezheto, hogy j nem 0; am ekkor a feltetel mindig igaz, ezert az NOP-olhato. Ekkor viszont a masik return elerhetetlen, igy az is elhagyhato.
-
EQMontoya
veterán
-
buherton
őstag
válasz
sztanozs #4602 üzenetére
for(;fv(inputa()) || (fv(inputb()) - 1););
vagy
while(fv(inputa()) || (fv(inputb()) - 1));(#4590) Wyll: A fordító más megvilágítás alá helyezi a kódot, ha ternary operátor van benne. Ugyanez van a for(;;) és while(1) esetén is. Van olyan fordító ahol az utóbbinál tényleg érték ellenőrzés van. Ez mind fordító függő, illetve PC-n nem is kritikus ezzel foglalkozni, mert van bőven számítási kapacitás, illetve hely is.
-
Wyll
őstag
válasz
sztanozs #4598 üzenetére
Mire kell az fv() ?? -- Jaa, hogy az az én fv()-m?
Szerintem nem jó ez a megoldás. Mert pl. nem lép ki ha az első lépésben 2-es a visszatérési érték.
Nem használják egymás eredményét.
Annyiszor kéri be az értékeket, ahányszor a visszatérési érték függvényében lefutnak a függvények.
Háromfajta visszatérési érték van:
0 -> ok, továbbmehetünk
1 -> visszalépés az előző állapotba
2 -> megszakítjuk a folyamatot -
Peter789
senior tag
válasz
sztanozs #4353 üzenetére
Az udp-recv.c -t nézem mert mint írtam nekem a szerver oldalra lenne szükségem, az udp-send.c pedig a kliens lenne ami rácsatlakozik - nálam a kliens az a GPSGate, TCP-Com vagy hasonló lesz aminek megadom a szerver IP címét és portját.
A gondom az a példával, hogy a szerver addig nem képes küldeni semmit a kliens felé amíg nem kap tőle legalább 1 byte-ot, hiába csatlakozott be előtte sikeresen. Ezt a byte-ot viszont nem várhatom el a GPSGate-től és barátaitól - mint ahogy pl a ser2net nem is vár semmit, azonnal képes küldeni ahogy rácsatlakozott a kliens. Valami ehhez hasonló példát keresek, csak eddig még nem találtam...
-
Peter789
senior tag
válasz
sztanozs #4350 üzenetére
Persze, a példaprogram pár csak azt passzolgatja egymásnak, ami benne van a kódban, nem randomot... De ebben ahhoz hogy a szerver képes legyen küldeni, először mindenképpen érkeznie kell min 1 byte-nak a klienstől. Nekem ez nem jó, mert a kliens programok amelyekkel működnie kellene nem nagyon küldenek semmit a csatlakozás után... Pl a ser2net is képes arra hogy mindenféle beérkező byte nélkül is közvetíti a rácsatlakozó kliensnek azt, ami beérkezik a másik oldalán (megnyitott sorosport). Ezt hogyan oldják meg? Erre tudtok valami rövid példát mutatni?
-
Jester01
veterán
válasz
sztanozs #3498 üzenetére
Azért, hogy a kezdőket ne vezessük félre megjegyzem, hogy ez a megoldás nem teljesen tökéletes. A baj nem a konverzióval van, hanem azzal, hogy a string literálok nem írhatók. Tehát ez rossz: char* binary = "0000|0000|0000|0000"; és persze ez is binary[counter] = '1';
-
-
bandi0000
nagyúr
válasz
sztanozs #3459 üzenetére
while(x>1000)
{
printf("M");
x=x-1000;
}
if(x>900)
{
printf("CM");
x=x-900;
}
if (x >= 500)
{
printf("DC");
x = x - 500;
}
if (x>=400)
{
printf("CD");
x=x-400;
}
while (x>=100)
{
printf("C");
x=x-100;
}
if (x>=90)
{
printf("XC");
x=x-90;
}
if (x>=50)
{
printf("LC");
x=x-50;
}
if (x>=40)
{
printf("XL");
x=x-40;
}
while (x>=10)
{
printf("X");
x=x-10;
}
if (x=9)
{
printf("IX");
x=x-9;
}
if (x>=5)
{
printf("VL");
x=x-5;
}
if (x=4)
{
printf("IV");
x=x-4;
}
if (x>0)
{
printf("I");
x = x - 1;
igy se jó ha segít akkor fel tudom rakni az egész programot DEV C be csinálom -
bandi0000
nagyúr
válasz
sztanozs #3453 üzenetére
if (x>400)
{
printf("CD");
x=x-400;
}
continue;így gondoltad vagy ne zárjam le az if-et csak a végén az összeset?
mert ebben az esetben ezt irja: continue statement not within a loop
vagy netán kell ennek egy függvény?Am bocs hogy ilyen értetlen vagyok de nem tanítják meg rendesen de elvárják hogy megcsináljuk amit pl elöbb leírtál hogy úgy irjam le nem láttam még olyat csak úgy tudom ahogy én csináltam sajnos...
-
bandi0000
nagyúr
válasz
sztanozs #3450 üzenetére
if(x>1000)
{
printf("M");
x=x-1000;
if (x > 500)
printf("DC");
x = x - 500;
if (x>400)
{
printf("CD");
x=x-400;
if (x>100)
{
printf("C");
x=x-100;
if (x>90)
{
printf("XC");
x=x-90;
if (x>50)
{
printf("LC");
x=x-50;
if (x>40)
{
printf("XL");
x=x-40;
if (x>10)
{
printf("X");
x=x-10;
if (x=9)
{
printf("IX");
x=x-9;
if (x>5)
{
printf("VL");
x=x-5;
if (x=4)
{
printf("IV");
x=x-4;
if (x>0)
{
printf("I");
x=x-0;
igy irtam igy gondoltad? -
kispx
addikt
válasz
sztanozs #3447 üzenetére
Jogos, egy gyors wikipedia keresés alapján mondtam
És még egy kiegészítés, nem x>500 hanem x>=500
(#3446) Bobrooney
A WinForms-nak nincs magyar nyelvű irodalma. De tudtommal már nem fejlesztik tovább.(#3452) bandi0000
(#3447) sztanozs hozzászólásában szereplő számokat is tedd bele, mert a wikiből nem jól mondtam én sem. És vannak olyan számok pl I ami háromszor is előfordulhatnak, szóval azokat rakd bele egy ciklusba. -
kingabo
őstag
válasz
sztanozs #3429 üzenetére
Euklideszi algoritmus, van egy bővített változata is (ezt hirtelen csak tételsorokban találtam meg
). Ha tudsz angolul, akkor jóval többet írnak róla: Euklideszi algoritmus (angol wiki).
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Intel X540-T2 dual-port 10GbE RJ45 hálózati vezérlő (10Gbit, 2 port, áfás számla, garancia)
- ÁRGARANCIA!Épített KomPhone i3 10105F 8/16/32GB RAM RX 6500 XT 4GB GAMER PC termékbeszámítással
- AKCIÓ! MSI Z690 i7 12700K 32GB DDR4 1TB SSD RX 6800 16GB Phanteks P600S Cooler Master 750W
- AKCIÓ! Gigabyte AORUS 16X (2024) Gamer notebook - i7 14650HX 16GB RAM 1TB SSD RTX 4070 8GBWin11
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest