Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Protezis
    őstag

    Én azért szeretem, mert elérhető Windows és Linux alatt is. Persze Eclipse is, de futottam már bele olyan hibába Eclipse-ben, ami NetBeans alatt nem jelentkezett. Ami egyedüli probléma NetBeans-ben, hogy Windows-Linux verziók valamiért összevesznek az ékezetes betűkön...mondjuk shev7 kolléga lehet, hogy mindjárt kioktat a megoldásról, bár ezért nem sértődnék meg. :)

    Sianis

    Nem tudom, hogy NetBeans alatt hogy lehet beallitani, de a lenyeg, hogy UTF-8 kodolasu legyenek a forrasfajlok.

  • Protezis
    őstag


    Persze hogy egyértelmű. Az lenne a csuda, ha nem az lenne.

    Azonban cseppet sem logikus.

    Láthatod, a bemásolt leírásod is körmönfont:
    beginIndex-ről és endIndex-ről ír, holott a substring vége _nem_ az endIndex-nél van, hanem endIndex-1 -nél.

    Ugyanilyen ''logikával'' akár lehetne a string vége endIndex-17 -nél. Ekkor pl.
    substring(0,17)-re kapnánk meg az első karakterét a stringnek.



    [Szerkesztve]

    Itt van meg par erdekes eszrevetel a Javaval kapcsolatban: [link] ;)

  • Protezis
    őstag

    Eclipse-ben hasznalok Visual Editort. Kerdesem az lenne, hogy tudom elrejteni az elemeket a formban? Tehat szerkesztes kozben el szeretnem rejteni, hogy lassam az ''alatta'' levo elemeket.

  • Protezis
    őstag

    Nagyon szimpatikus, de majd az Eclipse-re is rávetek egy pillantást... A NetBeans, nem azt mondom, jó volt eleinte, mindent kitalált helyetted, meg minden; de mostanra már inkább bosszant, mint segít. Köszönöm mindenkinek a segítséget. :)

    Eclipse nem tudom, tud -e ilyet, de ConTEXT-ben a napokban bukkantam rá a kód sablonokra. Példával talán jobban szemléltethető, mi ez:
    Kód sablonokban beírsz egy sablon nevet, meg hozzá megjegyzést. Legyen mindkettő If.
    A sablonba beírsz egy általános if szerkezetet, a zárójelek kozé teszel egy | jelet.
    Elmented. Kódolás közben nyomsz egy ctrl+j-t, elkezded írni a sablon nevét, vagyis if (kis menüben odaugrik), enter, és a kódban odd díszeleg az if szerkezet, a kurzor a zárójelek között, várja a feltételt.

    Bonyolultabb struktúrák esetén, amiket sűrűn használ az ember, szerintem rengeteg idő és nem utolsó sorban kézi munka megtakarítható :)
    De php-ben is hasznos egy sql lekérdezésre, stb, csak a képzelet szab határt. (meg a memóriánk, hogy megjegyezzük a sablonok nevét)

  • Protezis
    őstag

    Olyanra volna szükségem, amiben fordítani is lehet... Az se baj, ha olyan komplex, mint a NetBeans, de könyörgöm, ne Java-ban legyen megírva... Megőszülök, mire egy-két dolgot végrehajt...

    ConTEXT (bár nem nevezném fejlesztőkörnyezetnek :) )
    Megadod benne a java kiterjesztésre a parancsokat. Nálam pl. F9-re fordít.

  • Protezis
    őstag

    Hi!

    Ez csak az én szubjektív véleményem, de úgy vélem, hogy egy viszonylag egyszerű problémát nem kell túl sok osztályra felbontani, így jelen esetben is érdemes inkább egy Taylor osztállyal számoltatni. Sok osztály akkor kell, ha valóban összetett a program.

    [Szerkesztve]

    Köszi, beadtam a 2 osztályos verziót. Remélem ilyenen nem fog szőrözni :)

  • Protezis
    őstag

    Feladatom, hogy a paraméterben átadott számnak kiszámítsam a sinusát, cosinusát, valamint gyök2-őt. Taylor-polinom segítségével meg is oldottam, viszont lenne egy kérdésem.

    Melyik megoldás szebb? Az, amikor van egy sinus, cosinus, és gyok2 osztályom, és szépen példányosítom mindegyiket, vagy ha van egy Taylor osztályom, az csinál minden számolást, és a futó osztályban csak ezt példányosítom, és írom ki a toString felüldefiniált metódussal az eredményeket. :F

    Tudom, hogy működés szempontjából mindegy, megvan mindkétféleképpen, de melyik a jobb, szebb?

    ZUP!
    Ma el kellene küldenem valamelyiket :)

  • Protezis
    őstag

    Feladatom, hogy a paraméterben átadott számnak kiszámítsam a sinusát, cosinusát, valamint gyök2-őt. Taylor-polinom segítségével meg is oldottam, viszont lenne egy kérdésem.

    Melyik megoldás szebb? Az, amikor van egy sinus, cosinus, és gyok2 osztályom, és szépen példányosítom mindegyiket, vagy ha van egy Taylor osztályom, az csinál minden számolást, és a futó osztályban csak ezt példányosítom, és írom ki a toString felüldefiniált metódussal az eredményeket. :F

    Tudom, hogy működés szempontjából mindegy, megvan mindkétféleképpen, de melyik a jobb, szebb?

  • Protezis
    őstag

    Megjegyzéseim:

    mod: amikor elkezdődik a dőlt szöveg, ott volt egy [ i ]. Lesz több is, de semmi kedvem kijavítani mindenhol :)

    - a Kartya.PIN-t inicializáld a véletlen számmal.

    - a Penzintezet.befizet(int osszeg, Szamla szamla) metódusban a szamla.egyenleg+=osszeg; ronda. Elvileg eléred, ha nem private, de akkor is szebb egy szamla.addEgyenleg(osszeg);. Későbbi hülyeségektől menthet meg.

    - itt hasonlóan:
    public int kivesz(int osszeg, Szamla szamla) {
    int kivet;
    if (szamla.egyenleg<osszeg) {
    kivet=szamla.egyenleg;
    szamla.egyenleg=0;
    return kivet;
    }
    szamla.egyenleg-=kivet;
    return kivet;
    }
    (ez kicsit rövidebben is írható, de ez most mind1)

    - Itt kezdődnek a problémáid (NullPointerException démon képében):
    public void befizet(int osszeg, int szamlaID, String nev) {
    for (int i=0; i<=MAX_UGYFEL_SZAM; i++) {
    // oops, mért MAX_UGYFEL_SZAM-ig? a tömb tele lehet null-okkal. ráadásul túlindexeled a tömböt eggyel!
    if (szamlak.getSzamlaID()==szamlaID) {
    if (szamlak
    .getTulajdonos()==nev) {
    szamla.egyenleg+=osszeg;
    }
    }
    }
    }
    helyesen:
    public void befizet(int osszeg, int szamlaID, String nev) {
    for (int i=0; i<ugyfelekSzama; i++) {
    // ugyfelekSzama használandó, ha már van, és tudod hogy addig nem null a tömb.
    // esetlegesen egy if (szamlak
    !=null) is betehető ide, ha össze-vissza lennének, ami nem igaz.
    if (szamlak.getSzamlaID()==szamlaID) {
    // használhatnál && operátort, nem muszáj külön ifeket.
    if (szamlak
    .getTulajdonos()==nev) {
    // itt sejted mit kommentálnék ismét :)
    szamla.egyenleg+=osszeg;
    }
    }
    }
    }
    a kivesz(...) metódusra hasonlóan.

    - a szamlaletrehoz(...)-ban ugye illene egy allokáció, vagy kapsz egy gigantikus NullPointerExceptiont a fejedbe, mint véres fejdísz. :)
    így: new Szamla(...), aztán azon operálva, majd beletéve a tömbbe. Megint, nem írunk át más osztálybeli adattagokat, ha aranyosak vagyunk.

    - Takarekpenztar.szamlaletrehoz(...): felüldefiniálást nem úgy kell feltétlenül érteni, hogy copy-paste-1-sor-módosít. :) Meg lehet hívni a felüldefiniált metódust.
    pl: {
    if (egyenleg==0) return null;
    return super.szamlaletrehoz(egyenleg, nev);
    }
    Amúgy ez a struktúra amit a feladatban kijelölnek, kicsit rossz lenne komoly alkalmazásnál, dehát csak egy feladat.

    - public Terminal(String bank) {
    // NullPointerException: bankmezo==null
    bankmezo.terminalokSzama++;
    // intezetNeve: undefined symbol
    intezetNeve=bank;
    }

    - Terminal.kivesz hiány :)

    Ja, ha jól értem itt befejezted. További sok sikert!
    Annyival kommentálnám még az egészet, hogy egy valós alkalmazásban megfelelő adatstruktúrákat alkalmaznék (ami itt ellentmond a feladattal, mert tömböket kell használni), ami nem lineáris keresést tud (Hash, Tree). Tudom, tudom, ez a feladat, bocs hogy beszólok.

    [Szerkesztve]

    mail ment

  • Protezis
    őstag

    Megjegyzéseim:

    mod: amikor elkezdődik a dőlt szöveg, ott volt egy [ i ]. Lesz több is, de semmi kedvem kijavítani mindenhol :)

    - a Kartya.PIN-t inicializáld a véletlen számmal.

    - a Penzintezet.befizet(int osszeg, Szamla szamla) metódusban a szamla.egyenleg+=osszeg; ronda. Elvileg eléred, ha nem private, de akkor is szebb egy szamla.addEgyenleg(osszeg);. Későbbi hülyeségektől menthet meg.

    - itt hasonlóan:
    public int kivesz(int osszeg, Szamla szamla) {
    int kivet;
    if (szamla.egyenleg<osszeg) {
    kivet=szamla.egyenleg;
    szamla.egyenleg=0;
    return kivet;
    }
    szamla.egyenleg-=kivet;
    return kivet;
    }
    (ez kicsit rövidebben is írható, de ez most mind1)

    - Itt kezdődnek a problémáid (NullPointerException démon képében):
    public void befizet(int osszeg, int szamlaID, String nev) {
    for (int i=0; i<=MAX_UGYFEL_SZAM; i++) {
    // oops, mért MAX_UGYFEL_SZAM-ig? a tömb tele lehet null-okkal. ráadásul túlindexeled a tömböt eggyel!
    if (szamlak.getSzamlaID()==szamlaID) {
    if (szamlak
    .getTulajdonos()==nev) {
    szamla.egyenleg+=osszeg;
    }
    }
    }
    }
    helyesen:
    public void befizet(int osszeg, int szamlaID, String nev) {
    for (int i=0; i<ugyfelekSzama; i++) {
    // ugyfelekSzama használandó, ha már van, és tudod hogy addig nem null a tömb.
    // esetlegesen egy if (szamlak
    !=null) is betehető ide, ha össze-vissza lennének, ami nem igaz.
    if (szamlak.getSzamlaID()==szamlaID) {
    // használhatnál && operátort, nem muszáj külön ifeket.
    if (szamlak
    .getTulajdonos()==nev) {
    // itt sejted mit kommentálnék ismét :)
    szamla.egyenleg+=osszeg;
    }
    }
    }
    }
    a kivesz(...) metódusra hasonlóan.

    - a szamlaletrehoz(...)-ban ugye illene egy allokáció, vagy kapsz egy gigantikus NullPointerExceptiont a fejedbe, mint véres fejdísz. :)
    így: new Szamla(...), aztán azon operálva, majd beletéve a tömbbe. Megint, nem írunk át más osztálybeli adattagokat, ha aranyosak vagyunk.

    - Takarekpenztar.szamlaletrehoz(...): felüldefiniálást nem úgy kell feltétlenül érteni, hogy copy-paste-1-sor-módosít. :) Meg lehet hívni a felüldefiniált metódust.
    pl: {
    if (egyenleg==0) return null;
    return super.szamlaletrehoz(egyenleg, nev);
    }
    Amúgy ez a struktúra amit a feladatban kijelölnek, kicsit rossz lenne komoly alkalmazásnál, dehát csak egy feladat.

    - public Terminal(String bank) {
    // NullPointerException: bankmezo==null
    bankmezo.terminalokSzama++;
    // intezetNeve: undefined symbol
    intezetNeve=bank;
    }

    - Terminal.kivesz hiány :)

    Ja, ha jól értem itt befejezted. További sok sikert!
    Annyival kommentálnám még az egészet, hogy egy valós alkalmazásban megfelelő adatstruktúrákat alkalmaznék (ami itt ellentmond a feladattal, mert tömböket kell használni), ami nem lineáris keresést tud (Hash, Tree). Tudom, tudom, ez a feladat, bocs hogy beszólok.

    [Szerkesztve]

    Jó, hogy mindig részeg valamelyikünk :DDD
    Kösz, hogy átnézted, tényleg nem fél perc lehetett!
    Megyek kajálni, aztán nekiállok.
    A többit szerintem mailben kellene, nem akarok hsz-gyűjtőnek tűnni ;)
    (Igen, lehetne kétirányú dinamikus láncolt listát is használni - C-ben így hívták -, de azt sajnos még Javaból nem tanultam. Majd ZH után arra is sor kerül :) )

  • Protezis
    őstag

    Részegség, fél egészség :D

    Teljesen jól gondolkozol, csak láss a szöveg mögé: a Szamla osztálynál nem tiltja meg, hogy csinálj egy int getSzamlaID() metódust, amivel lekérdezheted a kívánt adatot. Sőt, egy int getEgyenleg(), void setEgyenleg(int), de még void addToEgyenleg(int) sincs megtiltva. Hajrá! :)

    Köszi a segítséget. Egy-két dolog világosabban áll előttem, de sokszor olyan, mintha sötétben tapogatóznék :) (nem, most nem vagyok részeg :D)
    Félig-meddig megcsináltam a gyakorló feladataimat. Ha szépen megkérlek, és ha időd engedi, megnéznéd, hogy miket rontottam el? Fordítani nem is próbáltam, mert még kész sincs, szintaktikai hiba nem érdekel, hanem ''csak'' az elvi hibák.

    Itt vannak az általam írt forráskódok: Bővebben: link
    És itt maga a feladat: Bővebben: link
    Nem azt kérem, hogy old meg helyettem, mert ezek csak a ZH-ra való gyakorlás miatt kerültek kiadásra, semmi pontot, jegyet nem kapok értük. Még mielőtt felháborodna valaki, hogy mással akarom megcsináltatni a feladatomat ;]

    Tényleg jó lenne, ha megnéznéd, órákon még csak hasonlókat se csináltunk. Ja, hétfőn lesz ZH, úgyhogy ha lehet, addig. :B

  • Protezis
    őstag

    Reflection mondtam hogy advanced topic :D

    Tehát, egyenletes eloszlású int változó [1000; 9999] intervallumban:

    int veletlen=Random.nextInt(9000)+1000;

    Eszetekbe nem jutott hozzáadni egy számot. Érdekes :)

    Okok. Köszi mindkettőtöknek! Most seggrészeg vagyok, de holnap kipróbálom, plusz lenne 1 kérdésem, amit most szzóban talán el tudnék mondani, de írásbannn :D
    Hát igen, sokat ittam. Ahogy Pázsit barátom mondaná: aki másnak vermet ás, nem kap rétest estére :D
    Na megpróbálkozok. Itt a feladat: Bővebben: link
    3. feladatnál tartok, és a 2. befizet metódussal van problémám.
    Ugye a későbbiekben valószínűleg példányosítani fogom a penzintezet osztályzt. És meghívom a befizet metódust. Ezt a 2.-at. Úgy godolom, hogy olyan objektumot kellene keressek, aminek a szamlaID-je megegyezik a paraméterben kapottal. És utána ezen ojjektum egyenleg adattagját kellene változatnom. Hogy lehet ezt? Vagy én gondolom ezt hülyén? Má beszélni (írni) se tudok, de asszem ezt nem értem. Szóval objektumok adattagjaiban kellene keresgéljek, melyiknek egyezik meg a számlaID-je a paraméterben kapottal. Biztos, hogy hülyén gondolkozok, de ezt már ivás előtt se értettem, szóval ez legyen a mentségem :)
    ó éjt, holnap itt... [ OFF] :D

  • Protezis
    őstag

    ha csak megszorzod 9999-el?
    mármint a 0 és 1 közötti számot, és kerekíted egészre

    Nem jó sajnos, mert ha pl. 0.0000000000000001 a szám, azt beszorzod 9999-cel, és kerekíted, 1 jön ki :(

    Mod: Talán 0.1-1 intervallummal már lehet jó lenne :)

    [Szerkesztve]

  • Protezis
    őstag

    Hogy lehet int típusú véletlenszámot generálni, ami 4 jegyű! ?

    Találtam ilyet, de ez 0, és a megadott szám között generál egy számot.
    // Random integers that range from from 0 to n
    int n = 10;
    i = rand.nextInt(n+1);

    Előre is köszi.

    BaLinux: nekem ez magas egyelőre :D

  • Protezis
    őstag

    Jóra gondolsz. Akkor máshogy próbálom meg a dolgot :)
    A Java nem scriptnyelv, nem erre való, tudom csak kíváncsi vagy. Ha valamire ilyen megoldást agyaltál ki, gondolj ki mást, mert nagy valószínűséggel rossz módszer. :)
    Ettől függetlenül van kivétel (pl RPC vagy hasonló dolgok implementálása), és ezért van is megoldás minderre. Nézd meg a Java API doksiban a java.lang.reflect csomag tartalmát, mindent tartalmaz ami a nyelvi reflekcióhoz szükséges lehet. Metódusok, konstruktorok, kivételek, tömbök, mindent tud. Advanced topic!
    Hogy lássad, kb. ennyiből állna a dolog:
    ha van egy Osztaly nevű class-od, annak float function(int) metódusa, és annak egy o1 instance-ja, akkor a következő rész meghívja a függvényt, és a visszatérő értéket is megkapod.

    Method m=Osztaly.getMethod(''function'', new Class[] {int.class});
    Object ret=m.invoke(o1, new Object[] {new Integer(1)});
    float vissza=((Float)ret).floatValue();

    Kész. Persze semmi értelme ennek, mert írhatnád ezt is, ez ugyanaz:

    float vissza=o1.function(1);

    Csak az előbbinél észre se veszed ha elírtad a függvénynevet, vagy bármilyen hibát vétettél, csak futási időben, míg az utóbbinál már fordításnál. A típusbiztonság nagyon fontos a jó programban, úgyhogy törekedni kell rá. :D

    Akkor ezt most elteszem holnapra :D

  • Protezis
    őstag

    Ha így akarod megcsinálni, akkor levonhatom azt a következtetést hogy új neked az OO szemlélet? :)
    Ja, a javascriptnek annyi köze a java-hoz, hogy kb. semmi.

    Tehát, van két osztályod, és uazt a metódusát akarod meghívni. Tipikus eset az interface-es absztrakcióra:

    interface KozosTudas
    {
    public void fuggeny();
    }

    class Osztaly1 implements KozosTudas
    {
    public void fuggveny() {
    System.out.println(''osztaly1'');
    }
    }

    class Osztaly2 implements KozosTudas
    {
    public void fuggveny() {
    System.out.println(''osztaly2'');
    }
    }

    Ezek után valahol vannak ilyen cuccaink:
    Osztaly1 o1;
    Osztaly2 o2;
    Ezek mindketten implementaljak a KozosTudas-t, tehát:
    KozosTudas[] tomb=new KozosTudas[2]; //hulye pelda...
    tomb[0]=o1; tomb[1]=o2;
    for(int k=0; k<tomb.length; k++) {
    tomb[k].fuggveny();
    }

    SZVSZ keress egy tutorialt ilyen temabol, esetleg ajanlok 1-2 konyvet maganban...

    szerk: kénytelen voltam a ciklusváltozót k-nak nevezni mer amúgy italic-ba nyomta a fórum az egészet ami az indexelés után van :)

    [Szerkesztve]

    Kösz a választ, végre valaki.
    Igen, új az OO. Amit te írtál, az nem polimorfizmus?
    Nekem mindegyik változó ugyanabba az osztályba tartozik. És mindegyiknek meg akartam változtatni ugyanazt az adattagját. Átírtam én is tömbre, úgy tökéletesen működik, csak ilyen összerakósdira lennék kíváncsi :)
    Nem lehet egy objektum nevét valahogy összerakni stringből?

    Mod:Mellesleg van könyvem: Angster Erzsébet-féle

    [Szerkesztve]

  • Protezis
    őstag

    Üdv!
    Van egy e2, és egy e3 nevű, azonos osztályú objektumom.
    Gondoltam, írok egy for ciklust, ami a ciklusváltozótól függően meghívja ezen objektumok ugyanazon metódusát.

    for (int j=2; j<4; j++) {
    e'j'.metodus();
    }

    Így olyan, mintha ezt írtam volna be:

    e2.metodus();
    e3.metodus();

    Persze sajnos nem jó, az aposztróf nem jött be :B
    Hogy kellene átírjam, hogy normásian működjön. Csak kezdő vagyok, most ültem le gyakorolni, nem leszólni légyszíves :)

    Tömbbel sikerült könnyedén megoldanom a problémát, de azért még mindig érdekelne a dolog. JavaScriptben már láttam hasonlót, fájl neve lett összerakva két beviteli mező-be írt szövegből. Vagy a 2 dolog teljesen más, még elviekben is :F

  • Protezis
    őstag

    Üdv!
    Van egy e2, és egy e3 nevű, azonos osztályú objektumom.
    Gondoltam, írok egy for ciklust, ami a ciklusváltozótól függően meghívja ezen objektumok ugyanazon metódusát.

    for (int j=2; j<4; j++) {
    e'j'.metodus();
    }

    Így olyan, mintha ezt írtam volna be:

    e2.metodus();
    e3.metodus();

    Persze sajnos nem jó, az aposztróf nem jött be :B
    Hogy kellene átírjam, hogy normásian működjön. Csak kezdő vagyok, most ültem le gyakorolni, nem leszólni légyszíves :)

    ZUP!

  • Protezis
    őstag

    Üdv!
    Van egy e2, és egy e3 nevű, azonos osztályú objektumom.
    Gondoltam, írok egy for ciklust, ami a ciklusváltozótól függően meghívja ezen objektumok ugyanazon metódusát.

    for (int j=2; j<4; j++) {
    e'j'.metodus();
    }

    Így olyan, mintha ezt írtam volna be:

    e2.metodus();
    e3.metodus();

    Persze sajnos nem jó, az aposztróf nem jött be :B
    Hogy kellene átírjam, hogy normásian működjön. Csak kezdő vagyok, most ültem le gyakorolni, nem leszólni légyszíves :)

Új hozzászólás Aktív témák