Close
Duke shfaqur rezultatin -9 deri 0 prej 7
  1. #1
    ReSpEcT Maska e Neo_AS
    Anëtarësuar
    08-04-2005
    Vendndodhja
    i cik ne Shqipri, i cik ne Itali...
    Postime
    74

    Exclamation Java - Algoritëm për vizatimin e trekëndëshit

    Pas 2 javesh duhet te dorzoj nje projekt ne Java per te kaluar provimin! Me ka lindur nje problem "i vogel" gjat punes.

    Ne njeren pjese te projektit behet fjale per ndertim figurash gjeometrike (Katror, Drejtkendesh dhe Trekendesh barabrinjes) duke perdorur Matrica (Array te Array-ve).
    Kto figura kan 2 gjendje "te mbushura/te zbrazura"! Mbushjen e Matrices se Drejtkendeshit dhe Katrorit e bera shum thjesht (me 2 cikle "for" dhe "if" per kontrollin e gjendjes) ndersa per trekndeshin barabrinjes kam disa probleme. Nuk gjej dot menyren se si te mbush matrices. Kodi i ndertimit te trekendeshit esht vijuesi:

    class Trekendesh{

    int x;
    boolean plot;
    char c = '*';

    public Trekendesh(int brinja) {
    x=brinja;
    }

    public void plot() {
    plot = true;
    }

    public void bosh() {
    plot = false;
    }

    public char[][] figura() { //pjesa e ndertimit te figures, duke plotesuar matricen

    char[][] fig = new char[2x-1][x]
    // [2x-1] <-- eshte baza e figures se trekendeshit
    // [x] <-- eshte lartesia

    if (plot) {
    // 1- kush mundet te vazhdoj ket pjesen ktu me algoritmin qe ploteson
    // matricen e trekendeshit barabrinjes kur esht i mbushur

    }

    else { // mnjf, ne qofte se esht bosh, ka vetem konturin
    // 2- kush mundet te vazhdoj ket pjesen ktu me algoritmin qe ploteson
    // matricen e trekendeshit barabrinjes kur esht i zbrazur

    } }

    E cila ben te mundur krijim e figures se meposhtme

    Trekendesh t = new Trekendesh(6);
    t.bosh();________t.plote();
    Emri:  Fig.JPG

Shikime: 789

Madhësia:  8.1 KB

    Kini parasysh qe pjeset e bardha ne figure jane hapsira boshe (psh, char b = ' ')

    Per cfaredo informacioni qe mund te mungoje me dergoni PM... (ose email: cyber-cowboy@hotmail.com , ne IrC.Albasoul.Com me nick |N|E|O|).

    Faleminderit!
    Ndryshuar për herë të fundit nga edspace : 10-04-2006 më 15:54

  2. #2
    Larguar Maska e cunimartum
    Anëtarësuar
    07-06-2002
    Vendndodhja
    Canada
    Postime
    678
    Menyra si e ke bere klasen eshte e gabuar ne rradhe te pare.
    Nuk ka kuptim qe modifikuesit te ndryshojne celesat "bosh" dhe "plot". Pasi nese dikush deshiron te zbrasi apo mbushi Trekendeshin, pra te perdore klasen tende, nuk mundet ta bej.
    Nese nuk e ke te qarte paragrafin siper, nderto nje klase qe te perdori Trekendeshin tend. Pra ta mbushi dhe zbrazi ate.



    Megjithate une s'po ta ndryshoj klasen qe ta kuptosh vete.

    Kodi PHP:

    if(plot)
    {
        
    mbush();
    }
    else
    {
        
    zbraz();
    }

    public 
    void zbraz()
    {
        for(
    0xi++)
        {
            for(
    02x-1++)
            {
                if( 
    == 0fig[0][j] = '*';
                else if(
    == jfig[i][j] = '*';
                else if(
    && ( ( ) == 2x ) ) fig[i][j] = '*';
                else 
    fig[i][j] = ' ';
            }
        }

    Heren e fundit qe i bera dikujt detyren ngeli ne provim perfundimtar
    Provo te besh vete metoden mbush.
    Vetem nese i nxore trute dhe s'doli gje na thuaj.

    Hint: Shfrytezo faktin qe per c'do rresht nga i == j deri ne 2x - i te gjitha qelizat mund te mbushen. Pra nese i == j dhe i < 2x - i atehere mbush rreshtin.
    Ndryshuar për herë të fundit nga cunimartum : 10-04-2006 më 19:22

  3. #3
    ReSpEcT Maska e Neo_AS
    Anëtarësuar
    08-04-2005
    Vendndodhja
    i cik ne Shqipri, i cik ne Itali...
    Postime
    74

    Smile Java - Algoritëm për vizatimin e trekëndëshit

    Te kisha shpjeguar me siper qe ky objekt me duhet per te perfunduar nje projekt te tere, dhe ashtu sic e kam ndertuar ne fillim esht ne rregull sepse me nevojitet ajo var boolean per gjera te tjera. Sic mund te shohesh asnje nga var nuk esht deklaruar private, dhe kjo eshte nenklase (zgjeron nje superklase nga e cila merr edhe disa metoda te tjera...). Gjithsesi do e provoj sapo te kthehem ne shpi ate pjese te kodit...
    Faleminderit per mundimin

  4. #4
    ReSpEcT Maska e Neo_AS
    Anëtarësuar
    08-04-2005
    Vendndodhja
    i cik ne Shqipri, i cik ne Itali...
    Postime
    74

    Cool Zgjidhja...

    Gabimet qe kishte bere cunimartum me dhan spunton....
    Ja edhe zgjidhja e ketij problemi:

    Kodi PHP:
      public char[][] figura() {
        
    char[][] figura = new char[x][2*x-1];

        if (!
    plote && !permbys) {
          for (
    int i 0xi++) {
            for (
    int j 02*x-1j++) {
              if (
    == x-|| == x-1-|| == j-x+1)
                  
    figura[i][j] = c;
              else
                
    figura[i][j] = ' ';
        } }
        }
        else if (!
    plote && permbys) {
          for (
    int i 0xi++) {
            for (
    int j 02*x-1j++) {
              if (
    == || == || == 2*(x-1)-j)
                
    figura[i][j] = c;
              else
                
    figura[i][j] = ' ';
        } }    
        }
        else if (
    plote && !permbys) {
          for (
    int i 0xi++) {
            for (
    int j 02*x-1j++) {
              if (
    >= x-i-&& x+i)
                
    figura[i][j] = c;
              else
                
    figura[i][j] = ' ';
        } }
        }
        else if (
    plote && permbys) {
          for (
    int i 0xi++) {
            for (
    int j 02*x-1j++) {
              if (
    2*x-1-&& >= i)
                
    figura[i][j] = c;
              else
                
    figura[i][j] = ' ';
        } }
        }
        return 
    figura;
      } 
    Plote dhe permbys jan 2 var boolean qe modifikohen nga metodat mbush() dhe permbys()

  5. #5
    Larguar Maska e cunimartum
    Anëtarësuar
    07-06-2002
    Vendndodhja
    Canada
    Postime
    678
    Gabimet qe kishte bere cunimartum
    Mos e ke fjalen ideja, se harrimi i "- 1" s'ma merr mendia te te kete dhene ndonje mbushje ( e kam harruar ca italishten, mbase keshtu perkthehet kjo spunto). LOL

    ps. +1 -1 ne Arrays i kap testi, s'para merret shume njeri me to. Paske rruge te gjate per te bere miku im.
    Ndryshuar për herë të fundit nga cunimartum : 17-04-2006 më 00:05

  6. #6
    ReSpEcT Maska e Neo_AS
    Anëtarësuar
    08-04-2005
    Vendndodhja
    i cik ne Shqipri, i cik ne Itali...
    Postime
    74

    Cool Lol!

    Kodi PHP:
    {
        for(
    0xi++)
        {
            for(
    02x-1++)
            {
                if( 
    == 0fig[0][j] = '*';
                else if(
    == jfig[i][j] = '*';
                else if(
    && ( ( ) == 2x ) ) fig[i][j] = '*';
                else 
    fig[i][j] = ' ';
            }
        }

    Tek kjo pjese e kodit qe me dergove ndodhet problemi... po te shofesh ciklin e pare for ke kushtin qe "i < x" ndersa tek kontrolli qe ben ti tek else if i dyte ke "i > x" gje qe nuk arrihet kurre! Pervec ksaj, te gjitha else if qe ke vendosur pas if-it te pare mund te thejeshtohen me || brenda kontollit if sepse te gjitha kan 1 perfundim (mnjf te mbushin qelizen me char '*')
    Kto ti hskrujta sa per te sqaru ate qe kishe postu!
    Gjithsesi ti rrofsh edhe i her per mundimin! E di qe kom shum rrug per te ber po i her per i her e hoqa qafe JAVA, tani kur ti vij rradha C ose Assembly!

  7. #7
    Larguar Maska e cunimartum
    Anëtarësuar
    07-06-2002
    Vendndodhja
    Canada
    Postime
    678
    Ke te drejte j > x duhej te ishte. E shkruajta direkt nga faqja e forumit dhe nuk i kontrollova. Perdora else if per te qene me qarte, po ti qeke bere mjeshter, keshtu qe kur te kerkosh ndonje detyre ne C do te jap nje kod qe te te dalin trut lol
    Bejme shaka, po meqenese nuk ma more per ters po te them pse e kritikova menyren e ndertimit te klases. Ti perdor 2 metoda te jashtme per te fikur ose ndezur celesin plot. Nderkohe qe metoda figura() duhej te ishte quajtur ndertoFiguren(boolean (ose int) menyra) dhe une te garantoj qe sido qe ta kishe klasen qe do perdorte kete metode kjo do ishte menyra me e qarte dhe e mire. Ka shume argumenta te tjera qe madje kalojne ne ekstreme shpesh duke i ndertuar klasat vetem me "getters", "setters", dhe fields.
    Vetem nese klasa Trekendesh do perdorej si "singleton" (pra instance "objekt" qe e gezojne disa klasa ne te njejten kohe) nga disa klasa te ndryshme prej te cilave, njera duhej psh. te vendoste gjendjen dhe tjetra te ndertonteFiguren, vetem ne kete rast mundej qe Diagrama UML te kishte me sens te ndertohej ne menyre te tille.

    Megjithate suksese

Tema të Ngjashme

  1. C++ - Algoritëm për mbrojtjen e programit
    Nga Neritan Hyso në forumin Arti i programimit
    Përgjigje: 34
    Postimi i Fundit: 27-04-2007, 17:44
  2. Algoritëm për një seri numerike
    Nga Olimp në forumin Arti i programimit
    Përgjigje: 5
    Postimi i Fundit: 11-01-2007, 09:00
  3. Algoritem për numrat Fibonaci
    Nga flerfler në forumin Arti i programimit
    Përgjigje: 11
    Postimi i Fundit: 24-11-2006, 13:01
  4. Java - Pyetje per nje algoritem
    Nga demolition man në forumin Arti i programimit
    Përgjigje: 1
    Postimi i Fundit: 08-09-2005, 10:55

Regullat e Postimit

  • Ju nuk mund të hapni tema të reja.
  • Ju nuk mund të postoni në tema.
  • Ju nuk mund të bashkëngjitni skedarë.
  • Ju nuk mund të ndryshoni postimet tuaja.
  •