Close
Duke shfaqur rezultatin -19 deri 0 prej 7
  1. #1
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,573

    Sfida nga Pr-Tech: Shtėpi Letrash

    Sfida ėshtė hapur nga Grupi Teknologjik i Prishtinės. Po e hedhim nė forum qė anėtarėt tė mund tė diskutojnė zgjidhjet dhe tė mėsojnė nga eksperienca e njėri-tjetrit. Tema do qėndrojė e mbyllur gjatė kohės qė sfida ėshtė e hapur dhe zgjidhja juaj nuk duhet bėrė publike gjatė kėsaj kohe. Kur tė skadojė afati i lejuar, tema do hapet dhe pastaj mund tė postoni pėrgjigjet tuaja dhe tė diskutoni me anėtarėt e tjerė.

    Shtėpi Letrash
    Problemi eshte i hapur
    Prej:24/12/2004 Deri:10/01/2005


    Kjo sfidė bazohet nė konceptin e ndėrtimit tė njė shtėpie letrash. Ēka kėrkohet nga ju ėshtė qė t'a krijoni njė skriptė e cila do tė pyetė pėr numrin e letrave. Pas pranimit tė numrit tė letrave, skripta duhet t'a bėj validimin. Pra, skripta dhuet tė shfaq njė mesazh nė rast se numri i letrave nuk ėshtė i mjaftueshėm. Nė rast se numri i letrave ėshtė i mjaftueshėm, p.sh. 30, atėherė skripta do t'a gjeneroj njė skedė tė titulluar "dalja.txt" dhe nė tė do t'a fuse daljėn adekuate. Nė rast se vlera e numrit tė letrave ėshtė 30 atėherė pėrmbajtja e skedės "dalja.txt" do tė jetė:

    Kodi:
        /\
       /\/\
      /\/\/\
     /\/\/\/\
    /\/\/\/\/\
    Programi mundet tė shkruhet nė C, C++, Java, Perl, Visual Basic (VB.NET), C# . Kėsaj rradhe ju mund tė perdorni edhe Scheme/Lisp si dhe Prolog pėr shkak tė natyrės sė problemit. Nėse programi juaj pėrmbanė mė shumė se njė skedar atėherė le tė arkivohet si tar.gz apo zip dhe si i tillė le tė dėrgohet nė programim ET pr-tech PIKĖ net.
    Edi

  2. #2
    i/e regjistruar Maska e Gepardi
    Anėtarėsuar
    30-10-2002
    Vendndodhja
    Tiranė
    Postime
    169
    Edhe pse nuk perfshihej ne liste une i dhashe nje zgjidhje ketij ushtrimi ne pascal. Po bashkangjis dhe programin e kompiluar per ata qe nuk kane nje kompilator per pascal.

    Kodi:
    (*----------------------------------------------------------
    
    Programi: Shtėpi Letrash
    Data: 07-01-05
    Pershkrimi : Sfida e javes nga PR-TECH
    Gjuha: Pascal
    Perpiluesi: Dev Pascal
    Autori: Klesti Hoxha
    -----------------------------------------------------------*)
    
    program ShtepiLetrash;
    var
    nr : integer;
    s : string;
    
    (* Funksion boolean per te vleresuar (validuar) numrin e letrave te futur *)
    
    function kontroll(nr : integer) : boolean;
    var
      d : real;
    begin
      d := sqrt(1+4*nr);  { dallori }
      if trunc(d) - d = 0 then  { kontrollo nese dallori eshte vlere e plote }
        kontroll := TRUE
      else
        kontroll := FALSE;
    end; {function}
    
    (* funksion per perseritjen e nje string (perdoret gjate programit *)
    function perserit(st:string;nr:integer) : string;
    var
      i : integer;
      s : string;
    begin
      s := '';
      for i:= 1 to nr do
        s := s + st;
      perserit := s;
    end; {function perserit}
    
     (* Procedura e nxjerrjes se Shtėpise se letrave *)
    procedure nxirr(nr: integer);
    var
      i : integer;
      rreshta : integer;
      f : text;
    
    
    begin
      assign(f, 'Shtepi.txt');
      rewrite(f);
    
    
      rreshta := round((-1 + sqrt(1+4*nr))/2);
    
      for i:=1 to rreshta do
        begin
        s := perserit(' ',round(rreshta-i)) + perserit('/\',i);
        writeln(f, s);
        end;
      close(f);
    end; { fundi i procedures }
    
    begin
    
      write('Fusni numrin e letrave: ');
      readln(nr);
     if kontroll(nr) = TRUE then
       begin
       nxirr(nr);
       writeln('Skedari u formua!');
       end
     else writeln('Vlera eshte gabim');
       readln;
    end.
    Skedarėt e Bashkėngjitur Skedarėt e Bashkėngjitur

  3. #3
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,573

    Zgjidhja ime nė C++

    Sė pari, pėr tė ndėrtuar njė shtėpi na duhen tė pakten 2 letra. /\
    Sė dyti, mund tė kemi vetėm njė numėr ēift letrash dhe kjo na ndihmon tė eliminojmė numrat tek si tė pavlefshėm.
    Sė treti, numri i letrave duhet tė jetė prodhim i dy numrave tė njėpasnjėshėm.
    psh. 5x6=30, 6x7=42, 7x8=56

    Kodi:
        /\
       /\/\
      /\/\/\
     /\/\/\/\
    /\/\/\/\/\
    Nėse i kthejmė tė gjitha letrat vertikalisht, ėshtė mė e lehtė pėr tė parė zgjidhjen.
    Letrat mė ngjyrė gri i zhvendosim tek letrat me ngjyrė tė kuqe.


    ||
    ||||
    ||||||
    ||||||||
    ||||||||||

    ||
    ||||||
    ||||||
    ||||||||
    ||||||||||

    ||||
    ||||||
    ||||||
    ||||||||
    ||||||||||


    ||||||
    ||||||
    ||||||
    ||||||||
    ||||||||||



    Pra, shtėpinė me 30 letra e shndėrruam nė njė drejtkėndėsh me brinjėt 5 dhe 6.
    Tė njėjtėn gjė mund tė bėsh pėr tė gjitha shtėpitė me letra.

    Nė C++ ndjekim kėto hapa:
    1. Marrim numrin e letrave nga pėrdoruesi
    2. Gjejmė rėnjėn katrore
    ---- (psh: renja katrore e 30 =~ 5,4)
    3. Gjejmė brinjėt e njėpasnjėshme duke rrumbullakosur rėnjėn katrore lart dhe posht.
    ---- (psh: 5,4 =~ 5 dhe 5,4 =~ 6)
    4. Kushtet pėr numrin e saktė tė letrave
    ---- numri i letrave >= 2
    ---- numri i letrave ėshtė ēift (mbetja zero kur pjestojmė me 2)
    ---- prodhimi i skajeve tė rėnjės katrore = numrin e letrave
    -------- (psh: 5x6 = 30)


    Kodi PHP:
    // Programi: Shtepi Letrash
    // Data: 04/01/05 
    // Pershkrim: Sfida e Javes nga Grupi Teknologjik i Prishtines 
    // Perpiluesi: Dev-C++ 4.9.9.1 
    // Perdorimi: 
    //  Kerkon numrin e letrave per ndertimin e shtepise. 
    //  Nese nuk ka letra te mjaftueshme, programi nxjerr gabim. 
    //  Nese numri i letrave eshte i sakte, nderton shtepine ne skedarin dalja.txt
    //

    #include <iostream>
    #include <cmath> // sqrt, ceil, floor
    #include <string>
    #include <fstream> // per skedarin

    using namespace std;

    int main()
    {
        
    unsigned int nr_letrave 0;
        
        
    cout << "Sa letra? " << endl;
        
    cin >> nr_letrave
        
        
    // gjejme renjen katrore dhe 
        // shtojme 0.0001 per te shmangur numrat e plote (psh: 12 * 12 = 144)
        
    double renja_katrore sqrt( (double)nr_letrave ) + 0.001;    
        
        
    // Nr. i sakte i letrave duhet te jete prodhim i dy faktoreve te njepasnjeshem
        // psh: 5*6=30, 6*7=42, 10*11=110
        
        // rrumbullakimi posht * rrumbullakimin lart = numrin e letrave
        
    bool nr_i_sakte = (unsigned int)(ceil(renja_katrore) * floor(renja_katrore)) == nr_letrave;
        
        
    // nese kemi me pak se 2 letra, nr tek, ose nuk kemi letra te mjaftueshe
        // kushti per numrin tek mund te hiqet por eshte shtuar per siguri
        
    if( nr_letrave || (nr_letrave 2) == || !nr_i_sakte )
        {
            
    cout << "GABIM: Shtepia nuk mund te ndertohet me kaq letra." << endl;
            return 
    EXIT_SUCCESS
        }
        
        
    ofstream sked;           
        
    sked.open("dalja.txt");  // hapim skedarin
        
        // nr i kateve ose nr i shtepizave /\ ne katin e pare
        
    int nr_kateve = (int)floor(renja_katrore); 

        
    string bosh "";    // per printimin e vendeve bosh (spaces)
        
    string letrat "";  // per printimin e letrave /\/\/\
        
        // printojme katet e shtepise duke filluar nga lart
        
    for( int i 1<= nr_katevei++ )
        {
            
    bosh.assign((nr_kateve i), ' '); // llogarisim vendet bosh
            
    letrat.append("/\\");                  // shtojme nje shtepize me shume
            
    sked << bosh << letrat << endl;        // i printojme ne skedar
        
    }
        
        return 
    EXIT_SUCCESS;  // mbyllim programin

    Kodi ėshtė bashkėngjitur edhe mė poshtė. Hiqni prapashtesėn txt para se ta pėrpiloni.
    Skedarėt e Bashkėngjitur Skedarėt e Bashkėngjitur
    Ndryshuar pėr herė tė fundit nga edspace : 11-01-2005 mė 12:22
    Edi

  4. #4
    i/e regjistruar Maska e Gepardi
    Anėtarėsuar
    30-10-2002
    Vendndodhja
    Tiranė
    Postime
    169
    Do te doja te jepja dhe une sqarimet e mia per zgjidhjen time pasi nuk mund te kuptohet ne kod:

    Po te vini re numri i letrave te duhura eshte vargu me poshte:

    2,6,12,20,30,...n(n+1)
    ose 1*2, 2*3, 3*4... n*(n+1) ku n eshte numri i rreshtave te shtepise

    Pra kufiza e pergjithshme e vargut jepet me an = n(n+1)

    A eshte vlera e futur kufize e vargut?

    dalim ne zgjidhjen e ekuzcionit n(n+1) = c ku c eshte vlera e futur

    n^2 + n - c = 0 (Ekuacion i grades se dyte)

    Gjejme dallorin (b^2-4ac) qe ne kete rast eshte 1 + 4c.
    Nese vlera e dallorit eshte e plote (integer) atehere ekuacioni ka zgjidhje nr te plote. Pra dhe numri i letrave mjafton.

    gjejme numrin e rreshtave

    Kjo tashme eshte e thjeshte. Zgjidhim ekuacionin e grades se dyte.

    n = ( -1 + rrenja_katrore(1+4c) ) / 2;

    Tani sna mbetet gje tjeter vetem te formojme pemen.
    Ndryshuar pėr herė tė fundit nga Gepardi : 11-01-2005 mė 12:23

  5. #5
    Programues Softueresh Maska e edspace
    Anėtarėsuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,573
    Mė pėlqeu mėnyra si e ke zgjidhur me dallorin.

    Nė lidhje me kodin duhet tė kishe kontrolluar pėr vlerat 0 dhe negative tė letrave.
    E ekzekutova programin tėnd me kėto vlera dhe mora kėto rezultate:

    Kodi:
    H:\>Shtepi_Letrash.exe
    Fusni numrin e letrave: -0
    Skedari u formua!
    
    
    H:\>Shtepi_Letrash.exe
    Fusni numrin e letrave: 0
    Skedari u formua!
    
    
    H:\>Shtepi_Letrash.exe
    Fusni numrin e letrave: -56
    Runtime error 207 at 0x00401030
      0x00401030
      0x004013B8
      0x00401535
    Nė rastin kur numri i letrave ėshtė 0 programi thotė qė ka krijuar skedarin por nė fakt nuk e bėn kėtė gjė. Nė rastin kur numri ėshtė negativ, dalin gabime nė memorje.

    Nuk ka arsye pse pėrdoruesi tė shkruaj numra negativ por ėshtė mirė qė programi tė jetė i pėrgatitur pėr gjithēka.
    Ndryshuar pėr herė tė fundit nga edspace : 11-01-2005 mė 13:10
    Edi

  6. #6
    Analog Brain Maska e josif
    Anėtarėsuar
    26-02-2004
    Vendndodhja
    madagaskar
    Postime
    245
    Nje zgjidhje ne C.

    Version me optimal O(1) per te gjetur nese no i letrave eshte i sakte apo jo eshte

    int no_letrave_i_sakte(int no_letrave){
    return ( no_letrave == sqrt(no_letrave)*( sqrt(no_letrave) + 1) );
    }

    Kodi PHP:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    void   pyet_no_letrave(int *);
    char  no_letrave_i_sakte(int int *);
    void   nderto_shtepine(intFILE*);
    charkrijo_model(int);
    void   printo(char *,intFILE*);
    void   printo_hapesirat(char*, intFILE* ); 

    void pyet_no_letrave(int *no_letrave){
     
    fprintf(stdout"hyni numrin e letrave: ");
        
    fscanf (stdin "%d"no_letrave);
    }

    char no_letrave_i_sakte(int no_letraveint baza_e_rekursionit){
       
    char i=0no_gjithsej=0;
     
       for( ; ; 
    no_gjithsej+=ii+=2)
      if(
    no_gjithsej == no_letrave){ 
       *
    baza_e_rekursionit i-2;  
       return 
    1
      }
      else if(
    no_gjithsej >= no_letrave){ 
       
    printf("Gabim. Provo %d.\n"no_gjithsej); 
       return 
    0;
      }
    }

    char krijo_model(int baza_e_rekursionit){
     
    char *modeli=(char*)malloc((baza_e_rekursionit+2)*sizeof(char)), i=0;
     
     for( ; 
    ibaza_e_rekursioniti++){
           if(( 
    ) ==  0modeli[i]= '/';
           else           
    modeli[i]= '\\';
      }  
          
    modeli[i]='\0';
                
    return 
    modeli;
    }

    void nderto_shtepine(int baza_e_rekursionitFILE f){
     
    int i2; for( ; i<= baza_e_rekursioniti+=2
             
    printo(krijo_model(i),baza_e_rekursionitf);
    }

    void printo(char *strint baza_e_rekursionitFILEf){  
      
    printo_hapesirat(strbaza_e_rekursionitf);  
      
    fprintf(f"%s\n"str);  
      
    free(str); 
    }
     
    void printo_hapesirat(char *strint bFILEf){ 
        
    int i=0s_gjstrlen(str); 
        for( ; 
    i< (b-s_gj)/i++) fprintf(f" ");
    }


    int main(void){

     
    int no_letrave=baza_e_rekursionit=4;
     
     
    FILE dalja fopen("dalja.txt""w");
     
     
    pyet_no_letrave(&no_letrave);

     if(
    no_letrave_i_sakte(no_letrave, &baza_e_rekursionit))
        
    nderto_shtepine(baza_e_rekursionitdalja);  
     else 
    main();

     
    fclose(dalja);

    return 
    0;

    Ndryshuar pėr herė tė fundit nga josif : 12-01-2005 mė 11:19
    He walks among us, but He is not one of us ...

  7. #7
    Analog Brain Maska e josif
    Anėtarėsuar
    26-02-2004
    Vendndodhja
    madagaskar
    Postime
    245
    Algoritmi im:

    Shtepia mund te ndertohet me n numer letrash ku n >= 0.
    -Ne rast se n=0 printo 0 rreshta.

    Merr nga perdoruesi no_letrave
    Kontrollo , ne O(1) ose O(rrenja n), nese no_letrave eshte i sakte
    dhe kthe numrin e letrave te themelit te shtepise.

    Duke patur parasysh no e letrave te themelit itero duke
    Printuar hapesirat majtas
    dhe me pas printo modelin { i * "/\" } ku i=2,4,...,no_letrave_te_themelit
    He walks among us, but He is not one of us ...

Tema tė Ngjashme

  1. Mirė se tė urdhėroni nė sofrėn e Dibrės sė madhe e tė vogėl
    Nga biligoa nė forumin Bashkėpatriotėt e mi nė botė
    Pėrgjigje: 129
    Postimi i Fundit: 17-05-2010, 17:53
  2. Kush janė Dibranėt ?
    Nga biligoa nė forumin Bashkėpatriotėt e mi nė botė
    Pėrgjigje: 33
    Postimi i Fundit: 23-05-2009, 17:37
  3. Raporti Zyrtar, Ja masakrat serbe tė 1913 nė Dibėr
    Nga Apollyon nė forumin Historia shqiptare
    Pėrgjigje: 0
    Postimi i Fundit: 29-11-2008, 09:44
  4. Kreditė pėr shtėpi, interesat nė ulje, afati nė rritje
    Nga ganoid nė forumin Ekonomi & biznes
    Pėrgjigje: 0
    Postimi i Fundit: 14-02-2005, 09:25
  5. Islamizimi I Popullit Shqiptar
    Nga altin55 nė forumin Toleranca fetare
    Pėrgjigje: 0
    Postimi i Fundit: 16-04-2004, 04:51

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.
  •