Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
mono Forumaš(ica)
Pridružen/a: 16. 09. 2011. (13:04:01) Postovi: (E)16
|
Postano: 20:58 pet, 20. 1. 2012 Naslov: |
|
|
Znam da je već nešto slično pisano na ovoj temi ali nikako si nemogu pronaći grešku pa bi bio zahvalan kada bi mi netko ispravio grešku.javlja mi ju u funkciji JELCLAN kod usporedbe current->element,x.
typedef struct cell_tag{
char element;
struct cell_tag *next;
}celltype;
typedef celltype **DICTIONARY;
int h(char s[])
{
int sum=0,i;
for (i=0;i<strlen(s);i++) sum+=s[i];
return (sum%B);
}
int JELCLAN( char x[], DICTIONARY A)
{
celltype *current;
current=A[h(x)];
while(current!=NULL)
if(strcmp(current->element,x)==0)
printf("%s : DA\n",x);
else
{
current = current->next;
printf("x: NE\n");
return 0;
}
}
Znam da je već nešto slično pisano na ovoj temi ali nikako si nemogu pronaći grešku pa bi bio zahvalan kada bi mi netko ispravio grešku.javlja mi ju u funkciji JELCLAN kod usporedbe current→element,x.
typedef struct cell_tag{
char element;
struct cell_tag *next;
}celltype;
typedef celltype **DICTIONARY;
int h(char s[])
{
int sum=0,i;
for (i=0;i<strlen(s);i++) sum+=s[i];
return (sum%B);
}
int JELCLAN( char x[], DICTIONARY A)
{
celltype *current;
current=A[h(x)];
while(current!=NULL)
if(strcmp(current→element,x)==0)
printf("%s : DA\n",x);
else
{
current = current→next;
printf("x: NE\n");
return 0;
}
}
|
|
[Vrh] |
|
pupi Forumaš(ica)
Pridružen/a: 20. 12. 2009. (11:03:15) Postovi: (92)16
Spol:
|
|
[Vrh] |
|
Bole13 Forumaš(ica)
Pridružen/a: 01. 11. 2008. (00:33:50) Postovi: (5A)16
Spol:
|
Postano: 15:01 sub, 21. 1. 2012 Naslov: |
|
|
Može pomoć pls oko funkcije kojom unosim stablo. Radi se o implementaciji atp TREE na osnovi čvor -> roditelj. Sve implementirane fje rade koliko sam istestirao i preorder radi, ali nikako da ispadne unos kako spada. Ovo je fja koju sam napravio:
[code:1]void UNOS_STABLA(node i, int broj_djece, TREE *T) {
int j, djeca;
labeltype label;
node m, n;
for(j = 1; j <= broj_djece; j++) {
printf("Unesite oznaku i broj djece %d. djeteta cvora %d: ", j, i);
scanf("%c %d", &label, &djeca);
if(j == 1) m = INSERT_CHILD(label, i, T);
else {
n = INSERT_SIBLING(label, m, T);
m = n;
}
UNOS_STABLA(m, djeca, T);
}
}[/code:1]
Za root na poziciji 0 s oznakom a prvi poziv fje pita oznaku 1. djeteta od root i broj njegove djece te nakon toga ispiše na ekran:
"Unesite oznaku i broj djece 1. djeteta cvora 1: Unesite oznaku i broj djece 1. djeteta cvora 2:"
Znaći uopće mi neda mogućnost da unesem oznaku čvora 1 i broj njegove djece...
Može pomoć pls oko funkcije kojom unosim stablo. Radi se o implementaciji atp TREE na osnovi čvor → roditelj. Sve implementirane fje rade koliko sam istestirao i preorder radi, ali nikako da ispadne unos kako spada. Ovo je fja koju sam napravio:
Kod: | void UNOS_STABLA(node i, int broj_djece, TREE *T) {
int j, djeca;
labeltype label;
node m, n;
for(j = 1; j <= broj_djece; j++) {
printf("Unesite oznaku i broj djece %d. djeteta cvora %d: ", j, i);
scanf("%c %d", &label, &djeca);
if(j == 1) m = INSERT_CHILD(label, i, T);
else {
n = INSERT_SIBLING(label, m, T);
m = n;
}
UNOS_STABLA(m, djeca, T);
}
} |
Za root na poziciji 0 s oznakom a prvi poziv fje pita oznaku 1. djeteta od root i broj njegove djece te nakon toga ispiše na ekran:
"Unesite oznaku i broj djece 1. djeteta cvora 1: Unesite oznaku i broj djece 1. djeteta cvora 2:"
Znaći uopće mi neda mogućnost da unesem oznaku čvora 1 i broj njegove djece...
|
|
[Vrh] |
|
slonic~tonic Forumaš(ica)
Pridružen/a: 26. 10. 2011. (14:16:34) Postovi: (84)16
Spol:
|
|
[Vrh] |
|
PermutiranoPrase Forumaš(ica)
Pridružen/a: 10. 09. 2011. (16:08:19) Postovi: (F4)16
Spol:
|
|
[Vrh] |
|
slonic~tonic Forumaš(ica)
Pridružen/a: 26. 10. 2011. (14:16:34) Postovi: (84)16
Spol:
|
|
[Vrh] |
|
PermutiranoPrase Forumaš(ica)
Pridružen/a: 10. 09. 2011. (16:08:19) Postovi: (F4)16
Spol:
|
Postano: 12:50 ned, 30. 12. 2012 Naslov: |
|
|
Zadaća objavljena... A ja marljiva pa već imam pitanja. :)
Dobih zadatak:
[quote]Implementirajte a.t.p. SET pomoću nesortirane liste (lista je implementirana pomoću polja) i pretpostavku da skupovi sadrže podatke tipa char.
Ulazni podaci: dva niza znakova koji predstavljaju elemente dvaju skupova A i B.
Izlazni podaci: 5 nizova znakova, svaki u jednom redu – unija, presjek, razlika A∖ B, maximalni element skupa A; zadnji string je DA ako je A⊆ B, a NE u protivnom. Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!
Na primjer, za ulazne podatke:
MIRKO
SLAVKO
treba ispisati:
unija: RKAVILMOS
presjek: OK
razlika: RIM
max. element prvog skupa: R
podskup: NE[/quote]
1) Trebam li raditi baš sa stringovima (tj.uključiti nul-znakove) ili samo s 'običnim' znakovima? Npr. je li A = {'M', 'I', 'R', 'K', 'O', '\n' } ili je A bez tog nulznaka ili je svejedno?
2) Smijem li u definiciji skupa imati i duljinu da mi olakša stvari, tj. je li ovo ok:
[code:1]typedef struct
{
elementtype elements[N];
int duljina;
} SET;[/code:1]
3) Funkcija za ispis mi isprazni skup koje ispisuje (uniju, presjek, razliku) pa su na kraju ti skupovi prazni. Je l to ok?
Samo mi dajte potvrdne odgovore, ovako mi sve savršeno radi. :yesss:
Zadaća objavljena... A ja marljiva pa već imam pitanja.
Dobih zadatak:
Citat: | Implementirajte a.t.p. SET pomoću nesortirane liste (lista je implementirana pomoću polja) i pretpostavku da skupovi sadrže podatke tipa char.
Ulazni podaci: dva niza znakova koji predstavljaju elemente dvaju skupova A i B.
Izlazni podaci: 5 nizova znakova, svaki u jednom redu – unija, presjek, razlika A∖ B, maximalni element skupa A; zadnji string je DA ako je A⊆ B, a NE u protivnom. Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!
Na primjer, za ulazne podatke:
MIRKO
SLAVKO
treba ispisati:
unija: RKAVILMOS
presjek: OK
razlika: RIM
max. element prvog skupa: R
podskup: NE |
1) Trebam li raditi baš sa stringovima (tj.uključiti nul-znakove) ili samo s 'običnim' znakovima? Npr. je li A = {'M', 'I', 'R', 'K', 'O', '\n' } ili je A bez tog nulznaka ili je svejedno?
2) Smijem li u definiciji skupa imati i duljinu da mi olakša stvari, tj. je li ovo ok:
Kod: | typedef struct
{
elementtype elements[N];
int duljina;
} SET; |
3) Funkcija za ispis mi isprazni skup koje ispisuje (uniju, presjek, razliku) pa su na kraju ti skupovi prazni. Je l to ok?
Samo mi dajte potvrdne odgovore, ovako mi sve savršeno radi.
|
|
[Vrh] |
|
kiara Forumaš(ica)
Pridružen/a: 15. 11. 2011. (23:22:57) Postovi: (55)16
|
|
[Vrh] |
|
Loo Forumaš(ica)
Pridružen/a: 11. 06. 2012. (16:02:07) Postovi: (D0)16
Spol:
|
|
[Vrh] |
|
pedro Forumaš(ica)
Pridružen/a: 21. 10. 2010. (14:08:21) Postovi: (19B)16
|
Postano: 9:36 pon, 31. 12. 2012 Naslov: |
|
|
trebam upisati riječ i ubacit je u atp LIST
ovako sam ja napravila:
[code:1]LIST L;
MAKE_NULL_LIST(&L);
char rijec[100];
printf("Ulazni podatak:\n");
scanf("%s", rijec);
while( rijec != "\t" )
{
INSERT_LIST(rijec, END_LIST(L), &L);
scanf("%s", rijec);
}[/code:1]
ne kužim zašto neće :S
IMPLEMENTACIJA IZGLEDA OVAKO:
[code:1]typedef char elementtype;
typedef struct cell_tagL
{
elementtype elementL;
struct cell_tagL *next;
} celltypeL;
typedef celltypeL *LIST;
typedef celltypeL *position;
position END_LIST(LIST L)
{
position q;
q = L;
while(q->next != NULL)
q = q->next;
return q;
}
position MAKE_NULL_LIST(LIST *L)
{
*L = (celltypeL*) malloc(sizeof(celltypeL));
(*L)->next = NULL;
return (*L);
}
void INSERT_LIST(elementtype x, position p, LIST *L)
{
position temp;
temp = p->next;
p->next = (celltypeL*) malloc(sizeof(celltypeL));
p->next->elementL = x;
p->next->next = temp;
}
void DELETE_LIST(position p, LIST *L)
{
position temp;
temp = p->next;
p->next = p->next->next;
free(temp);
}
position FIRST_LIST(LIST L)
{
return L;
}
position NEXT_LIST(position p, LIST L)
{
return p->next;
}
position PREVIOUS_LIST(position p, LIST L)
{
position q = L;
while(q->next != p)
q = q->next;
return q;
}
elementtype RETRIEVE_LIST(position p, LIST L)
{
return p->elementL;
}[/code:1]
trebam upisati riječ i ubacit je u atp LIST
ovako sam ja napravila:
Kod: | LIST L;
MAKE_NULL_LIST(&L);
char rijec[100];
printf("Ulazni podatak:\n");
scanf("%s", rijec);
while( rijec != "\t" )
{
INSERT_LIST(rijec, END_LIST(L), &L);
scanf("%s", rijec);
} |
ne kužim zašto neće :S
IMPLEMENTACIJA IZGLEDA OVAKO:
Kod: | typedef char elementtype;
typedef struct cell_tagL
{
elementtype elementL;
struct cell_tagL *next;
} celltypeL;
typedef celltypeL *LIST;
typedef celltypeL *position;
position END_LIST(LIST L)
{
position q;
q = L;
while(q->next != NULL)
q = q->next;
return q;
}
position MAKE_NULL_LIST(LIST *L)
{
*L = (celltypeL*) malloc(sizeof(celltypeL));
(*L)->next = NULL;
return (*L);
}
void INSERT_LIST(elementtype x, position p, LIST *L)
{
position temp;
temp = p->next;
p->next = (celltypeL*) malloc(sizeof(celltypeL));
p->next->elementL = x;
p->next->next = temp;
}
void DELETE_LIST(position p, LIST *L)
{
position temp;
temp = p->next;
p->next = p->next->next;
free(temp);
}
position FIRST_LIST(LIST L)
{
return L;
}
position NEXT_LIST(position p, LIST L)
{
return p->next;
}
position PREVIOUS_LIST(position p, LIST L)
{
position q = L;
while(q->next != p)
q = q->next;
return q;
}
elementtype RETRIEVE_LIST(position p, LIST L)
{
return p->elementL;
} |
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 11:49 pon, 31. 12. 2012 Naslov: |
|
|
[quote="pedro"]trebam upisati riječ i ubacit je u atp LIST
ovako sam ja napravila:
[code:1]LIST L;
MAKE_NULL_LIST(&L);
char rijec[100];
printf("Ulazni podatak:\n");
scanf("%s", rijec);
while( [b]rijec != "\t"[/b] )
{
INSERT_LIST(rijec, END_LIST(L), &L);
scanf("%s", rijec);
}[/code:1]
ne kužim zašto neće :S
[/quote]
Koliko se sjećam za uspoređivanje stringova se koristi funkcija strcmp iz string.h
:)
Ostatak nisam ni gledao, moguće da nije samo to...
pedro (napisa): | trebam upisati riječ i ubacit je u atp LIST
ovako sam ja napravila:
Kod: | LIST L;
MAKE_NULL_LIST(&L);
char rijec[100];
printf("Ulazni podatak:\n");
scanf("%s", rijec);
while( [b]rijec != "\t"[/b] )
{
INSERT_LIST(rijec, END_LIST(L), &L);
scanf("%s", rijec);
} |
ne kužim zašto neće :S
|
Koliko se sjećam za uspoređivanje stringova se koristi funkcija strcmp iz string.h
Ostatak nisam ni gledao, moguće da nije samo to...
|
|
[Vrh] |
|
mamba Forumaš(ica)
Pridružen/a: 09. 07. 2012. (17:11:16) Postovi: (16)16
|
|
[Vrh] |
|
sasha.f Forumaš(ica)
Pridružen/a: 25. 10. 2011. (20:04:19) Postovi: (3D)16
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
|
[Vrh] |
|
sasha.f Forumaš(ica)
Pridružen/a: 25. 10. 2011. (20:04:19) Postovi: (3D)16
|
|
[Vrh] |
|
JJ Forumaš(ica)
Pridružen/a: 05. 10. 2010. (14:35:40) Postovi: (34)16
Spol:
|
|
[Vrh] |
|
sasha.f Forumaš(ica)
Pridružen/a: 25. 10. 2011. (20:04:19) Postovi: (3D)16
|
|
[Vrh] |
|
sasha.f Forumaš(ica)
Pridružen/a: 25. 10. 2011. (20:04:19) Postovi: (3D)16
|
|
[Vrh] |
|
Ryssa Forumaš(ica)
Pridružen/a: 18. 12. 2011. (00:10:28) Postovi: (57)16
|
|
[Vrh] |
|
malalodacha Forumaš(ica)
Pridružen/a: 11. 10. 2011. (17:06:13) Postovi: (79)16
|
Postano: 19:38 sri, 2. 1. 2013 Naslov: |
|
|
Implementirajte a.t.p. MAPPING pomoću sortiranog polja sa M elemenata i napišite potprogram koji će provjeriti da li je funkcija injekcija. Pretpostavite da je domena skup imena duljine max. 20 slova, a kodomena skup telefonskih brojeva (cijeli brojevi).
Ulazni podaci: niz naredbi oblika:
BROJ OD s JE p, gdje je s neko ime, a p neki broj – ova naredba pridružuje imenu s broj p.
OBRISI BROJ OD s, gdje je s neko ime – ova naredba briše iz preslikavanja tel. broj je pridružen imenu p.
NADJI BROJ OD s, gdje je s neko ime – ova naredba ispisuje tel. broj je pridružen imenu p.
INJEKCIJA – ova naredba ispisuje DA ako je trenutno preslikavanje injekcija (tj. različitim imenima su pridruženi različiti brojevi), a NE ako nije.
Izlazni podaci: nakon svake naredbe oblika NADJI BROJ OD s i INJEKCIJA treba ispisati odgovarajuću poruku.
Na primjer, za ulazne podatke:
BROJ OD Mirko JE 3628472
BROJ OD Slavko JE 6284164
NADJI BROJ OD Mirko
NADJI BROJ OD Ivica
INJEKCIJA
BROJ OD Pero JE 3628472
INJEKCIJA
treba ispisati:
BROJ OD Mirko JE: 3628472
BROJ OD Ivica JE: nedefiniran
TRENUTNO DEFINIRANA FUNKCIJA JE INJEKCIJA
TRENUTNO DEFINIRANA FUNKCIJA NIJE INJEKCIJA
Može li pomoć ili kod od ovog zadatka ako netko ima?
Implementirajte a.t.p. MAPPING pomoću sortiranog polja sa M elemenata i napišite potprogram koji će provjeriti da li je funkcija injekcija. Pretpostavite da je domena skup imena duljine max. 20 slova, a kodomena skup telefonskih brojeva (cijeli brojevi).
Ulazni podaci: niz naredbi oblika:
BROJ OD s JE p, gdje je s neko ime, a p neki broj – ova naredba pridružuje imenu s broj p.
OBRISI BROJ OD s, gdje je s neko ime – ova naredba briše iz preslikavanja tel. broj je pridružen imenu p.
NADJI BROJ OD s, gdje je s neko ime – ova naredba ispisuje tel. broj je pridružen imenu p.
INJEKCIJA – ova naredba ispisuje DA ako je trenutno preslikavanje injekcija (tj. različitim imenima su pridruženi različiti brojevi), a NE ako nije.
Izlazni podaci: nakon svake naredbe oblika NADJI BROJ OD s i INJEKCIJA treba ispisati odgovarajuću poruku.
Na primjer, za ulazne podatke:
BROJ OD Mirko JE 3628472
BROJ OD Slavko JE 6284164
NADJI BROJ OD Mirko
NADJI BROJ OD Ivica
INJEKCIJA
BROJ OD Pero JE 3628472
INJEKCIJA
treba ispisati:
BROJ OD Mirko JE: 3628472
BROJ OD Ivica JE: nedefiniran
TRENUTNO DEFINIRANA FUNKCIJA JE INJEKCIJA
TRENUTNO DEFINIRANA FUNKCIJA NIJE INJEKCIJA
Može li pomoć ili kod od ovog zadatka ako netko ima?
|
|
[Vrh] |
|
|