Close
Faqja 3 prej 6 FillimFillim 12345 ... FunditFundit
Duke shfaqur rezultatin 21 deri 30 prej 53
  1. #21
    mos e luaj; I DEBUAR! Maska e qoska
    Anëtarësuar
    17-05-2004
    Vendndodhja
    tirane
    Postime
    837
    epo per mua edi ka bere punen e vet por nuk mund te pretendosh qe ti te krijosh nje file qe te mund ta lexoje vetem programi jot, megjithese ne Microsoft world kjo eshte pikepamja une do ta kisha bere kete program thjesht duke marre disa sugjerime nga implementimi i komandes sort ne *nix, per ata qe se dine rradhit nje text stream ne baze te rekordit te pare ose celseit e i jepet, dhe cdo gje ngelej text mode.
    Nuk besoj qe ata qe e kerkuan kete ushtrim te kene kerkesa shpejtesie panvaresisht se une garantoj qe me 1,500,000 rekorde dhe me algoritmin e duhur ky program me nje implementim te reduktuar te komandes sort brenda do te harxhonte me shume se dy sek per radhitje e nje rekordi te ri te shtuar ne fund te skedarit gjithsesi per tju bindur do postoj kodin ne c nga fundjava

  2. #22
    Analog Brain Maska e josif
    Anëtarësuar
    26-02-2004
    Vendndodhja
    madagaskar
    Postime
    245
    Nuk e di mendimin tuaj por array-et statike ne C per mendimin tim jane nje
    humbje kohe plus qe jane edhe te papershtatshem. Te pakten duhet te moderohen pak.

    Si ne rastin e array-eve dinamike ashtu edhe ne ata statike emri i arrayit statik
    deklarohet nga perpiluesi si nje pointer tek kufiza e 0-t e array-it (kuptohet nese nuk eshte NULL). E keqja e array-eve static eshte se emri deklarohet si pointer konstant vlera e te cilit nuk mund te ndryshohet.

    Pyetja eshte : A mundet dikush te me shpjegoje se per cfare perfitimi emrat e array-eve
    statike jane pointera te pandryshueshem.

    P.S: Personalisht nuk perdor fare array statike, por gjithsesi me cudit pse akoma jane ne qarkullim.
    He walks among us, but He is not one of us ...

  3. #23
    Programues Softueresh Maska e edspace
    Anëtarësuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Matricat (array) kanë dekada që përdoren në programim dhe sigurisht që kanë të mirat e tyre, si ato statiket, ashtu dhe dinamiket. Tani ka struktura më të përshtatshme por gjithësesi matricat vazhdojnë të jenë të dobishme.

    Mbi të gjitha, matricat të lejojnë përdorimin e indekseve (matrica[1], matrica[9]) që të lejojnë të lexosh elemtët në kohë konstante. Indekset janë të thjeshtë për t'u përdorur dhe vijnë në ndihmë kur të duhet të lexosh të gjithë elementët me radhë.

    Në C dhe C++ ka funksione të gatshme dhe shumë të shpejta për renditjen dhe kopjimin e matricave. Mbi matricat janë ndërtuar edhe vargjet (strings) e vjetër të C-së si dhe shumë funksione str__ që i përdorin ato.

    Në lidhje me treguesit statikë të matricave, mendoj se kjo është bërë për të mbrojtur programuesit e pakujdesshëm që lenë mbeturina në memorje dhe mund të lexojnë memorje të gabuar.
    P. Sh. Kemi krijuar një matricë me 10 elementë long (4 bajt). Nëse gjuha do na lejonte të ndryshonim emrin e matricës tek një adresë tjetër, 10 elementët me long do braktiseshin në memorje. Ky gabim mbase nuk bëhet nga profesionistët por ndeshet shpesh nga fillestarët.

    Duke vazhduar me shëmbullin më lart, nëse do kishim lirinë të ndryshonim adresën e elementit të parë të matricës me një matricë me short (2 bajt), llogaritë për leximin me indeks nuk do bëhen më me 4 bajt por me 2 bajt dhe indeksi do lexonte memorje të gabuar.

    Përcaktimi i nr të elementëve në matricat statike e lejojnë përpiluesin (compiler) të optimizojë kodin që të jetë sa më i shpejtë. Në anën tjetër, rezervimi dinamik i memorjes bëhet gjatë kohës së ekzekutimit dhe është më i ngadaltë.

    Sot kemi struktura të tjera, që mund ti përshtaten më mirë një programi sesa matricat, por matricat janë shpikur dekada më parë, në atë kohë kur memorja ishte e shtrenjtë. Kompjuterat kishin shumë pak memorje dhe programuesit duhet të tregonin kujdes se si e përdornin atë. Gabimet që mund të bëhen sot me treguesit nuk mund të toleroheshin në atë kohë.

    Treguesit nuk janë të lehtë për të mësuar dhe të gjithë fillestarët, ndonjëherë edhe profesionistët, bëjnë gabime me ato, prandaj është gjë e mirë që matricat nuk të lejojnë të ndryshosh adresën.

    Pra, matricat, edhe pse me përdorim të kufizuar, kanë avantazhet e tyre dhe për mendimin tim vazhdojnë të jenë të dobishme edhe sot.

    Nuk e di nëse ke lexuar temën që bën krahasimin midis matricës dhe pemës. Aty duket qartë shpejtësia e matricave statike dhe kufizimet mund të thuash se nuk ekzistojnë fare.
    Ndryshuar për herë të fundit nga edspace : 05-01-2005 më 02:26
    Edi

  4. #24
    Analog Brain Maska e josif
    Anëtarësuar
    26-02-2004
    Vendndodhja
    madagaskar
    Postime
    245
    Edi, faleminderit per pergjigjen.

    Si fillim doja te te korrigjoja pak mbi perdorimin e fjales matrice/array. Duhet ta kishe specifikuar "matrice/array statike" apo "matrice/array dinamike", pasi qe te dyja jane matrica/array.

    "Paragjykimet statike" jane nje minus i madh ne boten kompjuterike dhe ti e di mire kete. Nje nga te metat me te medha qe kemi hasur ne lloje te ndryshme "data structures" ne shkolle ka qene mungesa e flexibilitetit, "resize"-imit dhe riperdorimit, po ta mbash mend.

    Po i hedh nje veshtrim qortues shkrimit tend. ASGJE PERSONALE !!

    Citim Postuar më parë nga edspace
    Matricat (array) kanë dekada që përdoren në programim dhe sigurisht që kanë të mirat e tyre, si ato statiket, ashtu dhe dinamiket. Tani ka struktura më të përshtatshme por gjithësesi matricat vazhdojnë të jenë të dobishme.
    Ok, po te degjoj.

    Citim Postuar më parë nga edspace
    Mbi të gjitha, matricat të lejojnë përdorimin e indekseve (matrica[1], matrica[9]) që të lejojnë të lexosh elemtët në kohë konstante. Indekset janë të thjeshtë për t'u përdorur dhe vijnë në ndihmë kur të duhet të lexosh të gjithë elementët me radhë.
    Kjo eshte e 100 % e realizueshme edhe me ane te arrayeve dinamike. Mos harro qe a[i] = *(a + i) . Per shembull:

    char* a= "bla";

    printf("%c", a[2] ); /* eshte plotesisht legal dhe ekuivelente me*/
    printf("%c", *(a+2) );


    Citim Postuar më parë nga edspace
    Në C dhe C++ ka funksione të gatshme dhe shumë të shpejta për renditjen dhe kopjimin e matricave. Mbi matricat janë ndërtuar edhe vargjet (strings) e vjetër të C-së si dhe shumë funksione str__ që i përdorin ato.
    Sic e permendem arrayet statike dhe dinamike ndryshojne vetem tek cilesite e
    emrit si pointer, i cili tek statiket nuk mund te ndryshohet. Por aksesi tek te dy llojet eshte i mundshem. Atehere perse keta funksione nuk mund te punojne njelloj edhe me array-e dinamike ???

    Te gjitha funksionet str... punojne shkelqyer me array-e (blloqe konsekutive), dhe nuk ka rendesi fare nese eshte dinamik, statik .

    Citim Postuar më parë nga edspace
    Në lidhje me treguesit statikë të matricave, mendoj se kjo është bërë për të mbrojtur programuesit e pakujdesshëm që lenë mbeturina në memorje dhe mund të lexojnë memorje të gabuar.
    P. Sh. Kemi krijuar një matricë me 10 elementë long (4 bajt). Nëse gjuha do na lejonte të ndryshonim emrin e matricës tek një adresë tjetër, 10 elementët me long do braktiseshin në memorje. Ky gabim mbase nuk bëhet nga profesionistët por ndeshet shpesh nga fillestarët.
    (*) Gabime do te besh derisa te mesosh, jo perjete ! Me mire te besh shume gabime dhe te mesosh dicka, sesa te jesh gjithe jeten i cunguar nga "paragjykimet" statike.

    (Perdorimi i Valgrind (http://valgrind.kde.org), nje program i thjeshte qe krahas funksioneve te tjera ka edhe aftesi te rregulloje te ashtuquajturat "memory leaks", e thjeshtezon shume kete diskutim.)

    Citim Postuar më parë nga edspace
    Duke vazhduar me shëmbullin më lart, nëse do kishim lirinë të ndryshonim adresën e elementit të parë të matricës me një matricë me short (2 bajt), llogaritë për leximin me indeks nuk do bëhen më me 4 bajt por me 2 bajt dhe indeksi do lexonte memorje të gabuar.
    Perse duhet ta bejme nje gje te tille ??? Nese e ke fjalen gabimisht, lexo (*)

    Citim Postuar më parë nga edspace
    Përcaktimi i nr të elementëve në matricat statike e lejojnë përpiluesin (compiler) të optimizojë kodin që të jetë sa më i shpejtë. Në anën tjetër, rezervimi dinamik i memorjes bëhet gjatë kohës së ekzekutimit dhe është më i ngadaltë.
    Sa mundesi ke qe parashikimi i nr. te elementeve te jete optimal ?

    Perkundrazi, gjithmone rezervimi i memorjes behet gjate run-time.
    Gjate "separate compiling", (thjesht compil-im pa thirrur linker) sipas teje duhet qe arrayet statike te "alloc"-ohen dhe pastaj te hidhen ne kosh te plehrave ???

    Ajo cka ndodh gjate compile-time eshte thjesht nje kost i tepert i deklarimit te
    emrit te array-it si pointer konstant + veprimet shtese per te testuar "re-assigment"-in e emrit + veprimet shtese per te testuar "re-size"-imin e "memory block"-ut qe tregon (point) emri.

    Pra sic e shikon arrayet statike kane koste shume me te larta se dinamiket.

    Ti e di qe fuqia dhe performanca shume e larte C-se eshte fale "pointer arithmetics", aftesia per te manage-uar lirisht memorjen !!!



    Citim Postuar më parë nga edspace
    Sot kemi struktura të tjera, që mund ti përshtaten më mirë një programi sesa matricat, por matricat janë shpikur dekada më parë, në atë kohë kur memorja ishte e shtrenjtë. Kompjuterat kishin shumë pak memorje dhe programuesit duhet të tregonin kujdes se si e përdornin atë. Gabimet që mund të bëhen sot me treguesit nuk mund të toleroheshin në atë kohë.


    Ketu po ke te drejte, por kjo nuk e arsyeton faktin qe duhet te vazhdojne te perdoren.


    Citim Postuar më parë nga edspace
    Treguesit nuk janë të lehtë për të mësuar dhe të gjithë fillestarët, ndonjëherë edhe profesionistët, bëjnë gabime me ato, prandaj është gjë e mirë që matricat nuk të lejojnë të ndryshosh adresën.


    Gabimet jane njerezore, pra sic e thashe gabimet te ndihmojne te mesosh.



    Citim Postuar më parë nga edspace
    Pra, matricat, edhe pse me përdorim të kufizuar, kanë avantazhet e tyre dhe për mendimin tim vazhdojnë të jenë të dobishme edhe sot.

    E respektoj mendimin tend ... (briret jane shaka )


    Citim Postuar më parë nga edspace
    Nuk e di nëse ke lexuar temën që bën krahasimin midis matricës dhe pemës. Aty duket qartë shpejtësia e matricave statike dhe kufizimet mund të thuash se nuk ekzistojnë fare.

    Krahasim midis matrices edhe pemes (arrays vs trees) ???
    Njera eshte mjet tjetra "abstract data type". Nderkohe qe, edhe vete pema mund te ndertohet me ane te matricave. Diskutimi me duket i jashtellogjikshem.
    Ndryshuar për herë të fundit nga josif : 05-01-2005 më 14:51
    He walks among us, but He is not one of us ...

  5. #25
    Programues Softueresh Maska e edspace
    Anëtarësuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Më duket se jemi keqkuptuar me fjalët dinamike dhe statike. Nga postimi yt i parë mendova se ti po hidhje poshtë të gjitha matricat dhe po përdorje struktura abstrakte të matricave me funksionet përkatëse për zmadhimin, zvogëlimin, vendosjen e përmasave, etj, siç ndodh me String, dhe Vector në STL. Kjo ishte dhe arsyeja pse po përdorja fjalën matricë.

    Kjo është statike:
    int m[10];

    Kjo është dinamike vetëm sepse 10 mund ta zëvëndësosh me një variabël.
    int * m = calloc( 10, sizeof(int) );

    C dhe C++ nuk të japin funksione për zgjerimin e këtyre matricave, prandaj për mendimin tim ato ngelen statike. Për të dytën mund të shkruash funksione shtesë për zgjerim por edhe në atë rast, zgjerimi nuk bëhet duke rezervuar memorje në fund të matricës, por duhet të rezervosh një bllok më të madh që të kopjosh elementët e vjetër dhe të lësh vënd për elementë të rinj.

    Me matricat statike:
    - Nuk është nevoja të rezervosh memorje me malloc(), calloc() apo të pastrosh memorjen me free().
    - Indekset janë të gatshëm dhe nuk duhet të bësh aritmetikë me treguesit për të lexuar një element.
    - Rezervimi i memorjes bëhet vetëm njëherë dhe gjatë ekzekutimit nuk ngadalësohesh nga kopjimi O(n) i elementëve nga një matricë në tjetrën
    - Nuk eshte nevoja te shkruash funksione për zgjerimin dhe ngushtimin e matricës


    Me matricat dinamike:
    - Duhet të rezervosh memorjen me malloc(), calloc() dhe ta lirosh atë me free().
    Këto mund të jenë gjëra te thjeshta por përsëri dalim tek pika që jo të gjithë programuesit janë profesionistë dhe do ketë gjithnjë të pakujdesshëm që nuk kontrollojnë rezultatet e malloc() dhe harrojnë të lirojnë memorjen me free().
    - Në versionet e vjetra të C nuk ka qënë i mundur përdorimi i indekseve, por edhe tani, indekset punojnë vetëm për matricat 1-dimensionale. Për matrica 2 ose 3-dimensionale, leximi i një elementi komplikohet disa herë më shumë.
    Krahaso m[i] me *(a + i)
    Krahaso m[i][j][k] me m[k + x * (j + y * i)]
    - Vërtet mund te zësh pak memorje në fillim por nqs programi kërkon memorje tjetër, atëherë ekzekutimi ngadalësohet nga kopjimi i elementëve. Nëse nuk përdor një algoritëm të mirë, funksionet e zgjerimit ngadalësojnë së tepërmi programin.

    Në lidhje me funksionet e gatshme e kisha fjalën që nqs ti do përdorje një strukturë abstrakte për matricat dinamike (psh. String, Vector, List), ateherë do të duhej të shtoje metoda të tjera për renditjen, kopjimin, etj.

    Në lidhje me përpiluesit, është mirë që ata të kenë sa më shumë informacion gjatë përpilimit. Kontrolli i indekseve dhe ndryshimit të treguesit konstant bëhet vetëm gjatë përpilimit dhe jo gjatë ekzekutimit. Ajo kohë që ty të duket e tepërt, është mëse e nevojshme për fillestarët. Ke provuar të shkruash në Java? Në Java përpiluesi të detyron të shkruash try-catch për të gjitha exceptions dhe për këte arsye, programet e Java-s janë më të qëndrueshëm (stable). Sado eksperiencë të kesh, kur shkruan me orë të tëra, apo kur je duke nxituar, patjetër që do bësh gabime dhe në ato raste përpiluesi është shoku tënd i ngushtë.

    E përsëris edhe njëherë që kosto më të lartë kanë matricat dinamike dhe funksionet e zgjerimit me O(n).


    Nuk e kuptoj pse të çudit kaq shumë krahasimi midis matricave dhe pemëve. Që të dyja janë struktura dhe nuk ka shumë rëndësi si janë ndërtuar në brëndësi. Nuk bëhet fjalë për krahasimin e një klase të komplikuar por një struct primitive. Po ke kohë, lexoje atë temë dhe shkruaj një program më të shpejtë me matrica dinamike (dmth të rezervosh memorjen pak e nga pak) që të bindem unë që matricat dinamike na qënkan më të shpejta se ato statike.
    Edi

  6. #26
    Analog Brain Maska e josif
    Anëtarësuar
    26-02-2004
    Vendndodhja
    madagaskar
    Postime
    245
    Kjo eshte nje zgjidhje e mundshme, por kuptohet jo optimale ...
    Pata pak kohe per ta shkruar.

    Kodi PHP:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>

    typedef struct{
     
    charname;
     
    int num;
    }
    record;


    void       _initialize(record *);
    record **  read(FILE* , int no_records);
    void       write(FILE* , record **, int);
    void       print_record(FILE* , record r);
    record **  selection_sort(record **, int);
    int        print_str(FILE *, char *);
    void       __delete(record **, int);
    int        compare(record ** , intint );
    void       swap(record ** , intint);
    int        name_acceptable(char c);
    int        num_acceptable(char c);

    void _initialize(record r)
     { 
    r->nameNULLr->num 0; }

    /* reading */ 
    record ** read(FILEinint no_records){

     
    record ** records=NULL;
     
     while( !
    feof(in) ){
         
       
    record *r=(record*)malloc(sizeof(record));
       
    char bufferNULLc=0length_name=0length_buffer=0name_allocated=0num_allocated=0
       
        
    _initialize(r);
           
       while( (
    c=fgetc(in)), name_acceptable(c) ){
         
    name_allocated++;
         
    r->name =(char *)realloc(r->name, (length_name 2)*sizeof(char));
         *(
    r->name+length_name++) = c;
       }
       
       while( (
    c=fgetc(in)), num_acceptable(c)){
         
    num_allocated++;
                   
    buffer =(char *)realloc(buffer, (length_buffer 2)*sizeof(char));
         *(
    buffer+length_buffer++) = c;
       }
       
          if(
    name_allocated && num_allocated){ 
        *(
    r->name+length_name) = '\0';
        *(
    buffer+length_buffer) = '\0';
        
        
    r->numatoi(buffer);
         
        
    records=(record**)realloc(records, (*no_records 1)*sizeof(record*));
        *(
    records + *no_records) = r;
        *
    no_records += 1;
       }

       
    free(buffer); 
       
    rNULLbuffer=NULL
       
    length_namelength_buffer name_allocated num_allocated 0;
     }
     
    return 
    records
    }

    int name_acceptable(char c)
     { return ( (
    c>='a' && c<='z') ||  (c>='A' && c<='Z') || == ' ' ) && != '\t'; }
    int num_acceptable(char c)
     { return (  
    c>='0' && c<='9' ) && c!='\n'; }

    /* writing */ 
    void write(FILE frecord ** recordsint no_records){
     
    int i;for(i=0no_records i++)
       if( 
    records iprint_record(f, *(records i));
    }
        
    void print_record(FILEfrecord r){
      
    print_str(fr->name);
      
    fprintf(f"\t%d\n"r->num);
    }
    int print_str(FILEfchar str){
      if(
    str && *str!='\0'){
       
    fprintf(f,"%c", *str);
       
    print_str(fstr+1);
      }
    }

    /* sorting */
    record ** selection_sort(record ** recordsint no_records){

     
    int tmp_minij
      
     
    record ** sorted_records=(record**)malloc(no_records*sizeof(record *));
     for(
    i=0ino_records i++) 
       
    sorted_records [i] = records[i];


     for( 
    0no_recordsi++) {
       
    tmp_min i;
      for( 
    i+1no_recordsj++) {
          if (
    compare(sorted_recordsjtmp_min)< 0)
             
    tmp_min=j;
         }
      if (
    tmp_min != i)
       
    swap(sorted_recordstmp_mini);
       }
     
    return 
    sorted_records
    }
    int compare(record ** sorted_recordsint rank1int rank2){
     return  
    strcmpsorted_records[rank1]->namesorted_records[rank2]->name);
    }
    void swap(record ** sorted_recordsint rank1int rank2){
     
    record tmp = *(sorted_records rank1);
     *(
    sorted_records rank1) = *(sorted_records rank2);
     *(
    sorted_records rank2) = tmp;
    }

    void __delete(record ** recordsint no_records){
     
    int i; for(i=0ino_records i++) 
      if(
    records+ifree(*(records i));
    }
      
    int main(void){
     
     
    clock_t aclock(); 
     
     
    FILEinfopen("input.txt","r");
     
    FILEoutfopen("output.txt","w");
     
     
    int no_records=0;
     
     
    record ** records read(in, &no_records);

     
    record ** sorted_records selection_sort(recordsno_records); 
     
     
    write(outsorted_recordsno_records);
     
     
    __delete(recordsno_records); 
     
    __delete(sorted_recordsno_records); 

     
    fclose(in); fclose(out);
     

     
    printf("Run time: %ld\n"clock() -a);

    return 
    0;

    Ndryshuar për herë të fundit nga edspace : 07-01-2005 më 14:41 Arsyeja: gabim sintaksor
    He walks among us, but He is not one of us ...

  7. #27
    Analog Brain Maska e josif
    Anëtarësuar
    26-02-2004
    Vendndodhja
    madagaskar
    Postime
    245
    Per fat te keq kam perdorur "selection sort" O(n*n), e cila ma demton shume performancen.
    Plus kesaj nuk kam perdorur shume funksione librarish por jam munduar ti shkruaj vete per hobi.
    Megjithate e testova programin me inpute te vogla dhe rezultatet jane:

    700 rekorde:
    Implementimi dinamik: 0
    Implementimi statik i Edit: 70000

    1300 rekorde:
    Implementimi dinamik: 20000
    Implementimi statik i Edit: 70000

    1800 rekorde:
    Implementimi dinamik: 40000
    Implementimi statik i Edit: 70000

    Pas 3000 rekordesh implementimi O(n*n) i selection sort-it fillon te kushtoje, por gjithsesi shihet qe implementimi dinamik eshte shume i shpejte.

    "edspace a mund te me realizosh nje implementim te "selection sort"-it tek programi jot,
    ne menyre qe te mund ti krahasojme ?"
    He walks among us, but He is not one of us ...

  8. #28
    Programues Softueresh Maska e edspace
    Anëtarësuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Përpilohet mirë por kur mundohem ta ekzekutoj më nxjerr gabime ne shkrimin e memorjes. ("The memory could not be written")

    Cfarë formati të duhet skedari. Hidhe në forum atë që ke përdorur për të testuar.

    Unë po mundohem të përdor këtë:
    Skedarët e Bashkëngjitur Skedarët e Bashkëngjitur
    Edi

  9. #29
    Analog Brain Maska e josif
    Anëtarësuar
    26-02-2004
    Vendndodhja
    madagaskar
    Postime
    245
    Citim Postuar më parë nga edspace
    Përpilohet mirë por kur mundohem ta ekzekutoj më nxjerr gabime ne shkrimin e memorjes. ("The memory could not be written")

    Cfarë formati të duhet skedari. Hidhe në forum atë që ke përdorur për të testuar.

    Unë po mundohem të përdor këtë:
    Databaza qe ke bashkengjitur tek une punon mire

    Koha e egzekutimit eshte 230000

    Duhet te shtoj qe une perdor gcc 3.3 ne platforme Linux.

    Ndoshta mund te kesh harruar te ndryshosh emrin e dosjes input.
    Programi im e kerkon "input.txt".
    Ndryshuar për herë të fundit nga josif : 07-01-2005 më 14:47
    He walks among us, but He is not one of us ...

  10. #30
    Programues Softueresh Maska e edspace
    Anëtarësuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Unë po përdor Dev-C++ 4.9.9.1 - gcc 3.3.1

    Mos e posto kodin në forum. Ndryshoi prapashtesën në txt dhe postoje si skedar të bashkëngjitur.
    Edi

Faqja 3 prej 6 FillimFillim 12345 ... FunditFundit

Tema të Ngjashme

  1. Strukturat paralele të Serbiisë
    Nga Sabriu në forumin Çështja kombëtare
    Përgjigje: 1
    Postimi i Fundit: 20-03-2009, 04:27
  2. Listat e Zgjedhesve
    Nga shefqeti11 në forumin Problematika shqiptare
    Përgjigje: 0
    Postimi i Fundit: 14-02-2007, 06:14
  3. Zgjidhet kriza elektorale, arrihet marëveshja në zyrën e presidentit Moisiu
    Nga Xhuxh Xhumaku në forumin Tema e shtypit të ditës
    Përgjigje: 312
    Postimi i Fundit: 03-02-2007, 14:05
  4. Kuvendi që na la trashëgim ADN-në e Dushkut
    Nga Kosovari_78_Ca në forumin Tema e shtypit të ditës
    Përgjigje: 1
    Postimi i Fundit: 22-05-2005, 01:24

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