Përshëndetje të gjithëve,përshëndetje edhe anonimit 2: nëse nuk ke mundësi/nuk dëshiron të ndihmosh dikë (edhe thjesht duke i kërkuar të shprehet më mirë), mjafton të mos shkruash.Nuk ka nevojë t´i kërkosh falje anonimit 1, i kërkoj unë, në emër të gjithë përdoruesve të AlbLinux!.Anonimi 1:a- E kuptoj që proçedura e regjistrimit në AlbLinux është tepër e komplikuar (!?!) por, sidoqoftë, mjafton të shtosh një nick/emër në fund të mesazhit. Kush kërkon ndihmë është mirë të mos e kërkojë si anonim.b- Mos kërko/shpreso asnjëherë të marrësh zgjidhje të gatshme në forum: shumë-shumë mund t´ju jepet ndonjë skemë për t´ju ndihmuar në zgjidhjen e problemit (kur ky i fundit shtrohet në menyrë korrekte).c- Dhe e fundit, po të jap adresën nga ku mund të shkarkosh në formatin PDF njërin prej teksteve më të plotë mbi C: shpresoj që italishtja të mos jetë problem për Ju.Kliko këtu. Janë rreth 650 faqe: printoje dhe mbaje afër.
Ndihme per nje Fuksion ne gjuhen C
Ne radhe te pare me vjen keq per kete shprehje sepse zoti anonim asnje nuk ka lindur i ditur dhe ai qe kerkoi ndihme eshte shprehur mjaft mire.
Ne fakt dy zgjidhjet e mepareshme mu duken me shume si ne gjuhen java dhe nuk ishin ne ANSI C
Ne C nuk mund te te besh:
String fjala=""; //nuk ka tip te tille primitive ne C
fjala+=´c´; //nuk lejohet, sepse nje string eshte thjesht nje array karakteresh me gjatesi fikse e pandryshueshme
Te pakten mos shkruani kot me kot.
Per ate qe pyeti shpresoj te mos jem vone sepse sapo e pashe mesazhin
Do mundohem te kthej pergjigje sa me pare.
Ndihme per nje Fuksion ne gjuhen C
Atehere, te dashur zoterinj. Fajin me sa duket e paskam une........!
Kush ka pershkruar algoritmin(pseudokod) dhe kush ka shkruar kodin qe e ndjek, eshte i njejti person. COReE
Efektivisht kodi eshte ne Java (faleminderit atyre qe ma thane!), dhe ne mos gaboj siper kodit eshte shkruajtur me te medha, dhe per njerez me syze si "bythe kavanozi", qe duhet perkthyer ne C. Pastaj po hani kokat me nje problem qe te interesuarit me siguri nuk i duhet me.
Shenim: shprehja eshte e qellimshme.
x_files, je plot kurajo mor djale me pelqen, por lexo ato dreq mesazhe deri ne fund per nje here ne jeten tende.
Me respekt COReE
Ahh, sapo me erdhi nje ide idiote, laurent po pse shkrimin ne furume nuk e ben me regjistrim te detyruar? Do evitoje keto mesazhe te kota dhe forumi do merrte nje hije me serioze, apo e kam gabim?
[ Ky Mesazh është ndryshuar nga: COReE më 08-09-2005 00:37 ]
Ndihme per nje Fuksion ne gjuhen C
[ Ky Mesazh është ndryshuar nga: x_files më 08-09-2005 11:07 ]
Ndihme per nje Fuksion ne gjuhen C
Ne rregull COReE
Faleminderit per Verejtjen dhe respektin
por fatkeqesisht nuk mbaj syze
nuk e kuptova ate "shprehjen e qellimshme"
jam dakord qe duhet te lejohen vetem mesazhe te regjistruara
sepse do ishte me serioze
Edhe pse atij personit mbase nuk i duhet me kjo zgjidhje problemi
une e bera timen dhe po e jap:
/*
Atehere sipas kerkeses me shume se nen stringa duhej gjetur nen bashkesia me e madhe e perbashket
por duke respektuar rendin e germave.
Fjala1={n,s,d,e,n,s,g,h,t,r,i,n,g,a}
Fjala2={s,w,q,t,r,i,f,n,g}
rezultati do te jete ´string´
nje zgjidhje do ishte kjo:
1-gjejme fjalen me gjatesi me te vogel dhe e emerojme fjala1
2-fjalen tjeter e emerojme fjala2
3-meqenese rezultati nuk mund te jete me i madh se fjala me gjatesi me te vogel
me ane te malloc() ose calloc() marrim dinamikisht nje array me gjatesi
sa ajo e fjales 1.
4-per cdo germe te fjales 1 kontrollojme cdo germe te fjales 2 duke filluar nga pozicioni i germes qe u gjet e fundit.
5-nese gjate ciklit germa1==germa2
axhornojme pozicionin e fundit ne fjalen 2
i shtojme nje germe rezultatit
axhornojme indeksin e rezultatit
Ne kete menyre respektojme renditjen e germave duke qene te sigurt se cdo shkronje e fjales 2 eshte kontrolluar
kontrolli nuk behet para pozicionit te fundit te gjetur sepse do te thyhej renditja.
Kodi i plote me poshte
*/
/****************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* gjejNenStringen(char *fjala1,char *fjala2){
char * rezultati;
//ku do te memorizojme rezultatin
char * ndihmese;
//ndryshore ndihmese
int gjatesia1,gjatesia2,i,j,k,pos;
/*
nese fjala1 eshte me e madhe se fjala2
ndryshojme vendet qe fjala1 te jete me gjatesine me te vogel
*/
if(strlen(fjala1)>strlen(fjala2)){
ndihmese=fjala1;
fjala1=fjala2;
fjala2=ndihmese;
}
//gjejme gjatesite perkatese sepse do na duhen gjate programit
gjatesia1=strlen(fjala1);
gjatesia2=strlen(fjala2);
/*
gjatesia e rezultatit nuk mund te jete me e madhe se gjatesia
e fjales me te vogel keshtu qe marrim dinamikisht nje array karakteresh
me gjatesine e fjales se pare
kujtoj qe calloc(int gjatesia,int permasa) perfton nje array elementesh me gjatesine "gjatesia" dhe
masen e c´do elementi sa "permasa"
*/
rezultati=(char*)calloc(gjatesia1,sizeof(char));
pos=0;
//inicializojme pozicionin e shkronjes se fundit te gjetur
k=0;
//dhe indeksin e rezultatit
//per cdo shkronje te fjales se pare
for(i=0;i<gjatesia1;i++){
//kontrollo cdo shkronje te fjales se dyte duke filluar aty ku u gjet
//shkronja e fundit dmth pos
for(j=pos;j<gjatesia2 && pos<gjatesia2;j++){
//nese jane te njejta
if(fjala1
==fjala2[j]){
rezultati[k]=fjala1[i]; [i]//memorizo shkronjen ne rezultat
k++;
//rrit indeksin e rezultatit
pos=j+1;
//modifiko pozicionin nje me siper se shkronja qe u gjet
break; //dil nga cikli se nuk ka me nevoje te vazhdoje[/i]
}
}
}
rezultati[k]=´\0´;
//shkronjen e fundit te rezultatit e bejme null per te
//shenuar fundin e fjales
return rezultati;
//kthejme adresen e fjales qe perftuam
//kujtojme qe kemi nje char pointer
}
/*
testojme funksionin e krijuar
ne nje main e cila merr si parametra fjalet nga rreshti i komandes
duke mos pasur nevoje rikompilimin sa here duam te testojme fjale te reja
*/
int main(int argc,char **argv){
char *res;
if(argc!=3){
//argv[0] eshte emri i exe-se qe po ekzekutoni
printf("Perdorimi: %s fjala1 fjala2",argv[0]);
return 0;
}
res=gjejNenStringen(argv[1],argv[2]);
printf("%s",res);
return 1;
}
/******************************************************************/
kopjo kodin ,kompiloje dhe testoje
funksionon mjaft mire
[ Ky Mesazh është ndryshuar nga: x_files më 08-09-2005 11:09 ]
Ndihme per nje Fuksion ne gjuhen C
Do shtoja edhe nje verejtje vetes
mbas calloc() malloc() ose realloc()
ne fund te programit ose kur nuk na sherben me, eshte
e nevojshme te leshojme memorien e zene me free()
pra funksionit te mesiperm i shtojme perpara mbylljes:
free(rezultati);
[ Ky Mesazh është ndryshuar nga: x_files më 11-09-2005 16:44 ]